├── .nvmrc ├── .env.example ├── .husky ├── pre-commit └── commit-msg ├── .browserslistrc ├── .npmrc ├── bun.lockb ├── .gitattributes ├── example ├── bun.lockb ├── src │ ├── main.ts │ ├── vite-env.d.ts │ ├── style.css │ └── App.vue ├── vite.config.ts ├── tsconfig.node.json ├── index.html ├── .gitignore ├── tsconfig.json ├── package.json └── README.md ├── commitlint.config.cjs ├── prettier.config.cjs ├── .vscode ├── extensions.json └── settings.json ├── src ├── index.ts ├── install.ts └── components │ └── VOffline.vue ├── lint-staged.config.cjs ├── ship.config.cjs ├── jsr.json ├── .editorconfig ├── shims └── ping.d.ts ├── stylelint.config.cjs ├── scripts └── bump-jsr-version.cjs ├── .github ├── workflows │ ├── lint-pr.yml │ ├── demo.yml │ ├── codeql.yml │ ├── stale.yml │ ├── automerger.yml │ ├── ci.yml │ └── shipjs-trigger.yml └── dependabot.yml ├── tsconfig.json ├── .eslintrc.cjs ├── LICENSE ├── vite.config.ts ├── .gitignore ├── CODE_OF_CONDUCT.md ├── package.json ├── README.md └── CHANGELOG.md /.nvmrc: -------------------------------------------------------------------------------- 1 | 20 2 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | GITHUB_TOKEN= 2 | -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- 1 | bun lint-staged --no-stash 2 | -------------------------------------------------------------------------------- /.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- 1 | registry=https://registry.npmjs.org 2 | @jsr:registry=https://npm.jsr.io 3 | -------------------------------------------------------------------------------- /bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vinayakkulkarni/v-offline/HEAD/bun.lockb -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /example/bun.lockb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vinayakkulkarni/v-offline/HEAD/example/bun.lockb -------------------------------------------------------------------------------- /commitlint.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: ['@commitlint/config-conventional'], 3 | }; 4 | -------------------------------------------------------------------------------- /prettier.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | ...require('@vinayakkulkarni/prettier-config-vue'), 3 | }; 4 | -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- 1 | { 2 | "recommendations": [ 3 | "Vue.volar", 4 | "heybourn.headwind" 5 | ] 6 | } 7 | -------------------------------------------------------------------------------- /src/index.ts: -------------------------------------------------------------------------------- 1 | import VOffline from './components/VOffline.vue'; 2 | export { default } from './install'; 3 | export { VOffline }; 4 | -------------------------------------------------------------------------------- /lint-staged.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | '*.{js,ts,vue}': 'bun run lint:js', 3 | '*.{css,vue}': 'bun run lint:css', 4 | }; 5 | -------------------------------------------------------------------------------- /ship.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | installCommand: () => 'bun i', 3 | beforeCommitChanges: ({ exec }) => { 4 | exec('./scripts/bump-jsr-version.cjs'); 5 | }, 6 | }; 7 | -------------------------------------------------------------------------------- /example/src/main.ts: -------------------------------------------------------------------------------- 1 | import { createApp } from 'vue'; 2 | import 'virtual:uno.css'; 3 | import './style.css'; 4 | import App from './App.vue'; 5 | 6 | createApp(App).mount('#app'); 7 | -------------------------------------------------------------------------------- /jsr.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vinayakkulkarni/v-offline", 3 | "version": "3.5.0", 4 | "exports": "./dist/v-offline.js", 5 | "publish": { 6 | "exclude": [ 7 | "!dist" 8 | ] 9 | } 10 | } -------------------------------------------------------------------------------- /example/vite.config.ts: -------------------------------------------------------------------------------- 1 | import { defineConfig } from 'vite'; 2 | import vue from '@vitejs/plugin-vue'; 3 | import UnoCSS from 'unocss/vite'; 4 | 5 | export default defineConfig({ 6 | plugins: [vue(), UnoCSS()], 7 | }); 8 | -------------------------------------------------------------------------------- /example/tsconfig.node.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "composite": true, 4 | "module": "ESNext", 5 | "moduleResolution": "Node", 6 | "allowSyntheticDefaultImports": true 7 | }, 8 | "include": ["vite.config.ts"] 9 | } 10 | -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- 1 | # editorconfig.org 2 | root = true 3 | 4 | [*] 5 | indent_style = space 6 | indent_size = 2 7 | end_of_line = lf 8 | charset = utf-8 9 | trim_trailing_whitespace = true 10 | insert_final_newline = true 11 | 12 | [*.md] 13 | trim_trailing_whitespace = false 14 | -------------------------------------------------------------------------------- /shims/ping.d.ts: -------------------------------------------------------------------------------- 1 | declare module 'ping.js' { 2 | export type CallbackFunc = (err: boolean, ping: number) => void; 3 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 4 | export type PingFunc = (source: string, cb?: CallbackFunc) => Promise; 5 | export default class Ping { 6 | ping: PingFunc; 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/install.ts: -------------------------------------------------------------------------------- 1 | import { App as Application } from 'vue'; 2 | import VOffline from './components/VOffline.vue'; 3 | 4 | let installed = false; 5 | 6 | const install = (app: Application) => { 7 | if (!installed) { 8 | app.component('VOffline', VOffline); 9 | installed = true; 10 | } 11 | }; 12 | 13 | export default install; 14 | -------------------------------------------------------------------------------- /example/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | V-Offline Demo 7 | 8 | 9 |
10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /example/src/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /* eslint-disable @typescript-eslint/ban-types */ 2 | /// 3 | 4 | declare module '*.vue' { 5 | import type { DefineComponent } from 'vue'; 6 | // eslint-disable-next-line @typescript-eslint/no-explicit-any 7 | const component: DefineComponent<{}, {}, any>; 8 | export default component; 9 | } 10 | -------------------------------------------------------------------------------- /stylelint.config.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: ['stylelint-prettier'], 3 | extends: ['stylelint-config-recommended-vue'], 4 | ignoreFiles: ['node_modules/*', 'src/assets/**'], 5 | rules: { 6 | 'prettier/prettier': [ 7 | true, 8 | { 9 | singleQuote: true, 10 | tabWidth: 2, 11 | }, 12 | ], 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /example/.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | pnpm-debug.log* 8 | lerna-debug.log* 9 | 10 | node_modules 11 | dist 12 | dist-ssr 13 | *.local 14 | 15 | # Editor directories and files 16 | .vscode/* 17 | !.vscode/extensions.json 18 | .idea 19 | .DS_Store 20 | *.suo 21 | *.ntvs* 22 | *.njsproj 23 | *.sln 24 | *.sw? 25 | -------------------------------------------------------------------------------- /.husky/commit-msg: -------------------------------------------------------------------------------- 1 | NAME=$(git config user.name) 2 | EMAIL=$(git config user.email) 3 | 4 | if [ -z "$NAME" ]; then 5 | echo "empty git config user.name" 6 | exit 1 7 | fi 8 | 9 | if [ -z "$EMAIL" ]; then 10 | echo "empty git config user.email" 11 | exit 1 12 | fi 13 | 14 | git interpret-trailers --if-exists doNothing --trailer \ 15 | "Signed-off-by: $NAME <$EMAIL>" \ 16 | --in-place "$1" 17 | 18 | bun commitlint --edit $1 19 | -------------------------------------------------------------------------------- /scripts/bump-jsr-version.cjs: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | const fs = require('fs'); 4 | 5 | // Read package.json and parse the version 6 | const pkg = JSON.parse(fs.readFileSync('package.json').toString()); 7 | 8 | // Read jsr.json and parse it 9 | const jsr = JSON.parse(fs.readFileSync('jsr.json').toString()); 10 | 11 | // Update the version property in jsr object 12 | jsr.version = pkg.version; 13 | 14 | // Write the updated jsr.json file 15 | fs.writeFileSync('jsr.json', JSON.stringify(jsr, null, 2)); 16 | -------------------------------------------------------------------------------- /example/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ESNext", 4 | "useDefineForClassFields": true, 5 | "module": "ESNext", 6 | "moduleResolution": "Node", 7 | "strict": true, 8 | "jsx": "preserve", 9 | "resolveJsonModule": true, 10 | "isolatedModules": true, 11 | "esModuleInterop": true, 12 | "lib": ["ESNext", "DOM"], 13 | "skipLibCheck": true, 14 | "noEmit": true 15 | }, 16 | "include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"], 17 | "references": [ 18 | { 19 | "path": "./tsconfig.node.json" 20 | } 21 | ] 22 | } 23 | -------------------------------------------------------------------------------- /example/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@vinayakkulkarni/v-offline-example", 3 | "private": true, 4 | "version": "0.0.0", 5 | "type": "module", 6 | "scripts": { 7 | "dev": "vite", 8 | "build": "vue-tsc && vite build", 9 | "preview": "vite preview" 10 | }, 11 | "dependencies": { 12 | "ping.js": "^0.3.0", 13 | "unocss": "^0.62.3", 14 | "v-github-icon": "^3.2.2", 15 | "v-offline": "^3.5.0", 16 | "vue": "^3.4.30" 17 | }, 18 | "devDependencies": { 19 | "@vitejs/plugin-vue": "^5.0.4", 20 | "sass": "^1.77.6", 21 | "typescript": "^5.4.5", 22 | "vite": "^5.3.1", 23 | "vue-tsc": "^2.0.29" 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /example/src/style.css: -------------------------------------------------------------------------------- 1 | @import '@unocss/reset/tailwind.css'; 2 | 3 | :root { 4 | font-family: Inter, Avenir, Helvetica, Arial, sans-serif; 5 | font-size: 16px; 6 | line-height: 24px; 7 | font-weight: 400; 8 | color-scheme: light dark; 9 | color: rgb(255 255 255 / 87%); 10 | background-color: #242424; 11 | font-synthesis: none; 12 | text-rendering: optimizelegibility; 13 | -webkit-font-smoothing: antialiased; 14 | -moz-osx-font-smoothing: grayscale; 15 | text-size-adjust: 100%; 16 | } 17 | 18 | body { 19 | margin: 0; 20 | display: flex; 21 | place-items: center; 22 | place-content: center; 23 | overflow: hidden; 24 | min-width: 100vw; 25 | min-height: 100vh; 26 | } 27 | -------------------------------------------------------------------------------- /.vscode/settings.json: -------------------------------------------------------------------------------- 1 | { 2 | "files.eol": "\n", 3 | "editor.formatOnSave": true, 4 | "editor.codeActionsOnSave": { 5 | "source.fixAll": "explicit", 6 | "source.organizeImports": "never" 7 | }, 8 | "[vue]": { 9 | "editor.defaultFormatter": "esbenp.prettier-vscode" 10 | }, 11 | "[html]": { 12 | "editor.defaultFormatter": "esbenp.prettier-vscode" 13 | }, 14 | "[yaml]": { 15 | "editor.defaultFormatter": "esbenp.prettier-vscode" 16 | }, 17 | "[json]": { 18 | "editor.defaultFormatter": "esbenp.prettier-vscode" 19 | }, 20 | "[typescript]": { 21 | "editor.defaultFormatter": "esbenp.prettier-vscode" 22 | }, 23 | "[css]": { 24 | "editor.defaultFormatter": "stylelint.vscode-stylelint" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /.github/workflows/lint-pr.yml: -------------------------------------------------------------------------------- 1 | name: 'Lint PR' 2 | 3 | on: 4 | pull_request_target: 5 | types: 6 | - opened 7 | - edited 8 | - synchronize 9 | 10 | jobs: 11 | validate-pr-title: 12 | name: Validate PR title 13 | runs-on: ubuntu-latest 14 | steps: 15 | - uses: amannn/action-semantic-pull-request@v5.5.3 16 | env: 17 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 18 | 19 | check-sign-off: 20 | if: startsWith(github.head_ref, 'releases/v') == false 21 | name: Write comment if unsigned commits found 22 | env: 23 | FORCE_COLOR: 1 24 | runs-on: ubuntu-latest 25 | steps: 26 | - uses: live627/check-pr-signoff-action@v1 27 | with: 28 | token: ${{ secrets.GITHUB_TOKEN }} 29 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "strict": true, 6 | "importHelpers": true, 7 | "moduleResolution": "node", 8 | "skipLibCheck": true, 9 | "esModuleInterop": true, 10 | "allowSyntheticDefaultImports": true, 11 | "sourceMap": true, 12 | "allowJs": true, 13 | "noEmit": false, 14 | "resolveJsonModule": true, 15 | "experimentalDecorators": true, 16 | "baseUrl": ".", 17 | "outDir": "./dist", 18 | "jsx": "preserve", 19 | "lib": [ 20 | "esnext", 21 | "dom", 22 | "dom.iterable", 23 | "scripthost", 24 | "esnext.asynciterable" 25 | ], 26 | "paths": { 27 | "~/*": ["./*"], 28 | "@/*": ["src/*"] 29 | } 30 | }, 31 | "include": ["src", "shims"], 32 | "exclude": ["node_modules", "dist"] 33 | } 34 | -------------------------------------------------------------------------------- /.github/workflows/demo.yml: -------------------------------------------------------------------------------- 1 | name: 'Deploy to Pages' 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | 8 | jobs: 9 | deploy-demo: 10 | runs-on: ubuntu-latest 11 | defaults: 12 | run: 13 | working-directory: './example/' 14 | steps: 15 | - name: Checkout 🛎️ 16 | uses: actions/checkout@v4 17 | with: 18 | persist-credentials: false 19 | 20 | - name: Setup bun env 🐰 21 | uses: oven-sh/setup-bun@v1 22 | 23 | - name: Install dependencies 🚀 24 | run: bun install 25 | 26 | - name: Run build 🏁 27 | run: bun run build 28 | 29 | - name: Deploy to GitHub Pages 🚀 30 | uses: peaceiris/actions-gh-pages@v4.0.0 31 | with: 32 | github_token: ${{ secrets.GITHUB_TOKEN }} 33 | publish_dir: ./example/dist 34 | cname: v-offline.netlify.app 35 | -------------------------------------------------------------------------------- /.github/workflows/codeql.yml: -------------------------------------------------------------------------------- 1 | name: CodeQL 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | schedule: 11 | - cron: '45 23 * * 2' 12 | 13 | jobs: 14 | analyze: 15 | name: Analyze 16 | runs-on: ubuntu-latest 17 | permissions: 18 | actions: read 19 | contents: read 20 | security-events: write 21 | 22 | strategy: 23 | fail-fast: false 24 | matrix: 25 | language: [javascript] 26 | 27 | steps: 28 | - name: Checkout repository 29 | uses: actions/checkout@v4 30 | 31 | - name: Initialize CodeQL 32 | uses: github/codeql-action/init@v3 33 | with: 34 | languages: ${{ matrix.language }} 35 | queries: +security-and-quality 36 | 37 | - name: Autobuild 38 | uses: github/codeql-action/autobuild@v3 39 | 40 | - name: Perform CodeQL Analysis 41 | uses: github/codeql-action/analyze@v3 42 | with: 43 | category: /language:${{ matrix.language }} 44 | -------------------------------------------------------------------------------- /.eslintrc.cjs: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | root: true, 3 | env: { 4 | browser: true, 5 | node: false, 6 | es2022: true, 7 | }, 8 | parserOptions: { 9 | parser: '@typescript-eslint/parser', 10 | ecmaVersion: 2022, 11 | sourceType: 'module', 12 | lib: ['es2022'], 13 | ecmaFeatures: { 14 | jsx: true, 15 | tsx: true, 16 | }, 17 | extraFileExtensions: ['.vue'], 18 | }, 19 | plugins: [ 20 | '@typescript-eslint', 21 | 'import', 22 | 'jsdoc', 23 | 'prettier', 24 | 'security', 25 | 'vue', 26 | ], 27 | extends: [ 28 | 'plugin:@typescript-eslint/recommended', 29 | 'plugin:import/recommended', 30 | 'plugin:import/typescript', 31 | 'plugin:jsdoc/recommended', 32 | 'plugin:security/recommended', 33 | 'plugin:vue/vue3-recommended', 34 | 'prettier', 35 | ], 36 | // add your custom rules here 37 | rules: { 38 | 'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off', 39 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off', 40 | 'import/no-unresolved': 'off', 41 | }, 42 | }; 43 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: Mark stale issues and pull requests 2 | 3 | on: 4 | workflow_dispatch: 5 | schedule: 6 | - cron: '45 2 * * *' 7 | 8 | jobs: 9 | stale: 10 | runs-on: ubuntu-latest 11 | 12 | steps: 13 | - uses: actions/stale@v9 14 | with: 15 | stale-issue-message: | 16 | A stale label has been added to this issue because it has been open 15 days with no activity. To keep this issue open, add a comment within 5 days. 17 | stale-issue-label: 'stale' 18 | exempt-issue-labels: 'bug,blocked,in progress,never-stale' 19 | days-before-issue-stale: 15 20 | days-before-issue-close: 5 21 | stale-pr-message: | 22 | Thank you for your contribution to this project! 23 | A stale label has been added to this pull request because it has been open 45 days with no activity. To keep this PR open, add a comment or push a commit within 10 days. 24 | stale-pr-label: 'stale' 25 | exempt-pr-labels: 'waiting for review,never-stale' 26 | days-before-pr-stale: 45 27 | days-before-pr-close: 10 28 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017-current Vinayak Kulkarni 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. -------------------------------------------------------------------------------- /.github/workflows/automerger.yml: -------------------------------------------------------------------------------- 1 | name: 'Automerge Dependabot PRs' 2 | 3 | on: pull_request_target 4 | 5 | permissions: 6 | pull-requests: write 7 | contents: write 8 | 9 | jobs: 10 | dependabot: 11 | runs-on: ubuntu-latest 12 | if: ${{ github.actor == 'dependabot[bot]' }} 13 | steps: 14 | - name: Dependabot metadata 🤖 15 | id: metadata 16 | uses: dependabot/fetch-metadata@v2.4.0 17 | with: 18 | alert-lookup: true 19 | compat-lookup: true 20 | github-token: ${{ secrets.DEPENDABOT_TOKEN }} 21 | 22 | - name: Authenticate CLI with PAT 🔐 23 | run: echo "${{ secrets.DEPENDABOT_TOKEN }}" | gh auth login --with-token 24 | 25 | - name: Approve Dependabot PRs 👍 26 | run: gh pr review --approve "$PR_URL" 27 | env: 28 | PR_URL: ${{ github.event.pull_request.html_url }} 29 | GITHUB_TOKEN: ${{ secrets.DEPENDABOT_TOKEN }} 30 | 31 | - name: Auto-merge Dependabot PRs 🕺 32 | if: steps.metadata.outputs.update-type == 'version-update:semver-minor' || steps.metadata.outputs.update-type == 'version-update:semver-patch' 33 | run: gh pr merge --auto --merge "$PR_URL" 34 | env: 35 | PR_URL: ${{ github.event.pull_request.html_url }} 36 | GITHUB_TOKEN: ${{ secrets.DEPENDABOT_TOKEN }} 37 | -------------------------------------------------------------------------------- /.github/workflows/ci.yml: -------------------------------------------------------------------------------- 1 | name: 'Continuous Integration' 2 | 3 | on: 4 | push: 5 | branches: 6 | - main 7 | pull_request: 8 | branches: 9 | - main 10 | 11 | permissions: 12 | checks: write 13 | contents: read 14 | 15 | jobs: 16 | ci: 17 | name: 'CI' 18 | runs-on: ubuntu-latest 19 | steps: 20 | - name: Check out repository 🎉 21 | uses: actions/checkout@v4 22 | with: 23 | ref: ${{ github.event.pull_request.head.sha }} 24 | 25 | - name: Setup bun env 🐰 26 | uses: oven-sh/setup-bun@v1 27 | with: 28 | bun-version: latest 29 | 30 | - name: Install dependencies 🚀 31 | run: bun install 32 | 33 | - name: Run linter(s) 👀 34 | uses: wearerequired/lint-action@v2 35 | with: 36 | github_token: ${{ secrets.GITHUB_TOKEN }} 37 | continue_on_error: false 38 | git_name: github-actions[bot] 39 | git_email: github-actions[bot]@users.noreply.github.com 40 | auto_fix: false 41 | neutral_check_on_warning: true 42 | stylelint: false 43 | stylelint_extensions: css,scss,vue 44 | eslint: true 45 | eslint_extensions: js,ts,vue 46 | prettier: true 47 | prettier_extensions: js,ts,vue 48 | 49 | - name: Build the package 🎉 50 | run: bun run build 51 | -------------------------------------------------------------------------------- /example/README.md: -------------------------------------------------------------------------------- 1 | # Vue 3 + TypeScript + Vite 2 | 3 | This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` 59 | 62 | -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: npm 4 | versioning-strategy: increase 5 | directory: '/' 6 | schedule: 7 | interval: daily 8 | time: '00:00' 9 | timezone: Asia/Calcutta 10 | groups: 11 | npm-development: 12 | dependency-type: development 13 | update-types: 14 | - minor 15 | - patch 16 | npm-production: 17 | dependency-type: production 18 | update-types: 19 | - patch 20 | reviewers: 21 | - vinayakkulkarni 22 | assignees: 23 | - vinayakkulkarni 24 | commit-message: 25 | prefix: fix 26 | prefix-development: chore 27 | include: scope 28 | - package-ecosystem: npm 29 | versioning-strategy: increase 30 | directory: '/example' 31 | schedule: 32 | interval: daily 33 | time: '00:00' 34 | timezone: Asia/Calcutta 35 | groups: 36 | npm-development: 37 | dependency-type: development 38 | update-types: 39 | - minor 40 | - patch 41 | npm-production: 42 | dependency-type: production 43 | update-types: 44 | - patch 45 | reviewers: 46 | - vinayakkulkarni 47 | assignees: 48 | - vinayakkulkarni 49 | commit-message: 50 | prefix: fix 51 | prefix-development: chore 52 | include: scope 53 | - package-ecosystem: github-actions 54 | directory: '/' 55 | schedule: 56 | interval: daily 57 | time: '00:00' 58 | timezone: Asia/Calcutta 59 | groups: 60 | actions-minor: 61 | update-types: 62 | - minor 63 | - patch 64 | reviewers: 65 | - vinayakkulkarni 66 | assignees: 67 | - vinayakkulkarni 68 | commit-message: 69 | prefix: fix 70 | prefix-development: chore 71 | include: scope 72 | -------------------------------------------------------------------------------- /.github/workflows/shipjs-trigger.yml: -------------------------------------------------------------------------------- 1 | name: Ship js trigger 2 | 3 | on: 4 | pull_request: 5 | types: 6 | - closed 7 | 8 | jobs: 9 | publish-to-npm: 10 | name: 'Publishing to NPM ✨' 11 | runs-on: ubuntu-latest 12 | if: github.event.pull_request.merged == true && startsWith(github.head_ref, 'releases/v') 13 | steps: 14 | - name: Checkout code 🛎 15 | uses: actions/checkout@v4 16 | with: 17 | fetch-depth: 0 18 | ref: main 19 | 20 | - name: Setup GitHub Actor 21 | run: | 22 | git config --global user.email "action@github.com" 23 | git config --global user.name "GitHub Action" 24 | 25 | - name: Setup bun env 🐰 26 | uses: oven-sh/setup-bun@v1 27 | with: 28 | bun-version: 1.0.25+a8ff7be64 29 | 30 | - name: Install dependencies 🚀 31 | run: bun install 32 | 33 | - name: Trigger a release (NPM) 🥳 34 | run: bunx shipjs trigger 35 | env: 36 | GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} 37 | NPM_AUTH_TOKEN: ${{ secrets.NPM_AUTH_TOKEN }} 38 | SLACK_INCOMING_HOOK: ${{ secrets.SLACK_INCOMING_HOOK }} 39 | 40 | publish-to-jsr: 41 | name: 'Publishing to JSR ✨' 42 | runs-on: ubuntu-latest 43 | needs: publish-to-npm 44 | permissions: 45 | contents: read 46 | id-token: write 47 | steps: 48 | - name: Checkout code 🛎 49 | uses: actions/checkout@v4 50 | with: 51 | fetch-depth: 0 52 | ref: main 53 | 54 | - name: Setup bun env 🐰 55 | uses: oven-sh/setup-bun@v1 56 | with: 57 | bun-version: latest 58 | 59 | - name: Install dependencies 🚀 60 | run: bun install 61 | 62 | - name: Build the package 🎉 63 | run: bun run build 64 | 65 | - name: Trigger a release (JSR) 🥳 66 | run: bunx jsr publish 67 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Logs 2 | logs 3 | *.log 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | lerna-debug.log* 8 | 9 | # Diagnostic reports (https://nodejs.org/api/report.html) 10 | report.[0-9]*.[0-9]*.[0-9]*.[0-9]*.json 11 | 12 | # Runtime data 13 | pids 14 | *.pid 15 | *.seed 16 | *.pid.lock 17 | 18 | # Directory for instrumented libs generated by jscoverage/JSCover 19 | lib-cov 20 | 21 | # Coverage directory used by tools like istanbul 22 | coverage 23 | *.lcov 24 | 25 | # nyc test coverage 26 | .nyc_output 27 | 28 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 29 | .grunt 30 | 31 | # Bower dependency directory (https://bower.io/) 32 | bower_components 33 | 34 | # node-waf configuration 35 | .lock-wscript 36 | 37 | # Compiled binary addons (https://nodejs.org/api/addons.html) 38 | build/Release 39 | 40 | # Dependency directories 41 | node_modules/ 42 | jspm_packages/ 43 | 44 | # TypeScript v1 declaration files 45 | typings/ 46 | 47 | # TypeScript cache 48 | *.tsbuildinfo 49 | 50 | # Optional npm cache directory 51 | .npm 52 | 53 | # Optional eslint cache 54 | .eslintcache 55 | 56 | # Microbundle cache 57 | .rpt2_cache/ 58 | .rts2_cache_cjs/ 59 | .rts2_cache_es/ 60 | .rts2_cache_umd/ 61 | 62 | # Optional REPL history 63 | .node_repl_history 64 | 65 | # Output of 'npm pack' 66 | *.tgz 67 | 68 | # Yarn Integrity file 69 | .yarn-integrity 70 | 71 | # dotenv environment variables file 72 | .env 73 | .env.test 74 | 75 | # parcel-bundler cache (https://parceljs.org/) 76 | .cache 77 | 78 | # Next.js build output 79 | .next 80 | 81 | # Nuxt.js build / generate output 82 | .nuxt 83 | dist 84 | 85 | # Gatsby files 86 | .cache/ 87 | # Comment in the public line in if your project uses Gatsby and *not* Next.js 88 | # https://nextjs.org/blog/next-9-1#public-directory-support 89 | # public 90 | 91 | # vuepress build output 92 | .vuepress/dist 93 | 94 | # Serverless directories 95 | .serverless/ 96 | 97 | # FuseBox cache 98 | .fusebox/ 99 | 100 | # DynamoDB Local files 101 | .dynamodb/ 102 | 103 | # TernJS port file 104 | .tern-port 105 | .DS_Store 106 | 107 | sw.* 108 | -------------------------------------------------------------------------------- /src/components/VOffline.vue: -------------------------------------------------------------------------------- 1 | 84 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Covenant Code of Conduct 2 | 3 | ## Our Pledge 4 | 5 | In the interest of fostering an open and welcoming environment, we as 6 | contributors and maintainers pledge to making participation in our project and 7 | our community a harassment-free experience for everyone, regardless of age, body 8 | size, disability, ethnicity, sex characteristics, gender identity and expression, 9 | level of experience, education, socio-economic status, nationality, personal 10 | appearance, race, religion, or sexual identity and orientation. 11 | 12 | ## Our Standards 13 | 14 | Examples of behavior that contributes to creating a positive environment 15 | include: 16 | 17 | * Using welcoming and inclusive language 18 | * Being respectful of differing viewpoints and experiences 19 | * Gracefully accepting constructive criticism 20 | * Focusing on what is best for the community 21 | * Showing empathy towards other community members 22 | 23 | Examples of unacceptable behavior by participants include: 24 | 25 | * The use of sexualized language or imagery and unwelcome sexual attention or 26 | advances 27 | * Trolling, insulting/derogatory comments, and personal or political attacks 28 | * Public or private harassment 29 | * Publishing others' private information, such as a physical or electronic 30 | address, without explicit permission 31 | * Other conduct which could reasonably be considered inappropriate in a 32 | professional setting 33 | 34 | ## Our Responsibilities 35 | 36 | Project maintainers are responsible for clarifying the standards of acceptable 37 | behavior and are expected to take appropriate and fair corrective action in 38 | response to any instances of unacceptable behavior. 39 | 40 | Project maintainers have the right and responsibility to remove, edit, or 41 | reject comments, commits, code, wiki edits, issues, and other contributions 42 | that are not aligned to this Code of Conduct, or to ban temporarily or 43 | permanently any contributor for other behaviors that they deem inappropriate, 44 | threatening, offensive, or harmful. 45 | 46 | ## Scope 47 | 48 | This Code of Conduct applies both within project spaces and in public spaces 49 | when an individual is representing the project or its community. Examples of 50 | representing a project or community include using an official project e-mail 51 | address, posting via an official social media account, or acting as an appointed 52 | representative at an online or offline event. Representation of a project may be 53 | further defined and clarified by project maintainers. 54 | 55 | ## Enforcement 56 | 57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be 58 | reported by contacting the project team at inbox.vinayak@gmail.com. All 59 | complaints will be reviewed and investigated and will result in a response that 60 | is deemed necessary and appropriate to the circumstances. The project team is 61 | obligated to maintain confidentiality with regard to the reporter of an incident. 62 | Further details of specific enforcement policies may be posted separately. 63 | 64 | Project maintainers who do not follow or enforce the Code of Conduct in good 65 | faith may face temporary or permanent repercussions as determined by other 66 | members of the project's leadership. 67 | 68 | ## Attribution 69 | 70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, 71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html 72 | 73 | [homepage]: https://www.contributor-covenant.org 74 | 75 | For answers to common questions about this code of conduct, see 76 | https://www.contributor-covenant.org/faq 77 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "v-offline", 3 | "version": "3.5.0", 4 | "description": "Offline and Online components for Vue", 5 | "main": "./dist/v-offline.js", 6 | "module": "./dist/v-offline.js", 7 | "umd": "./dist/v-offline.umd.cjs", 8 | "unpkg": "./dist/v-offline.cjs", 9 | "jsdelivr": "./dist/v-offline.cjs", 10 | "cdn": "./dist/v-offline.iife.js", 11 | "exports": { 12 | ".": { 13 | "import": "./dist/v-offline.js", 14 | "require": "./dist/v-offline.umd.js" 15 | } 16 | }, 17 | "files": [ 18 | "dist" 19 | ], 20 | "types": "./dist/index.d.ts", 21 | "type": "module", 22 | "scripts": { 23 | "build": "vite build && vue-tsc --declaration --emitDeclarationOnly && prettier --write dist/*{js,js,ts}", 24 | "test": "echo 'test!'", 25 | "prepare": "is-ci || husky install", 26 | "lint": "npm run lint:prettier && npm run lint:eslint && npm run lint:css", 27 | "lintfix": "npm run lint:prettier:fix && npm run lint:eslint:fix && npm run lint:css:fix", 28 | "lint:js": "npm run lint:eslint && npm run lint:prettier", 29 | "lint:eslint": "eslint \"{,!(node_modules|dist)/**/}*.{js,ts,vue}\"", 30 | "lint:eslint:fix": "eslint --fix \"{,!(node_modules|dist)/**/}*.{js,ts,vue}\"", 31 | "lint:prettier": "prettier --check \"{,!(node_modules|dist)/**/}*.{js,ts,vue}\"", 32 | "lint:prettier:fix": "prettier --write \"{,!(node_modules|dist)/**/}*.{js,ts,vue}\"", 33 | "lint:css": "stylelint \"{,!(node_modules|dist)/**/}*.{css,scss,vue}\"", 34 | "lint:css:fix": "stylelint --fix \"{,!(node_modules|dist)/**/}*.{css,scss,vue}\"", 35 | "release": "shipjs prepare", 36 | "release:auto": "shipjs prepare --yes", 37 | "release:dry": "shipjs prepare --dry-run" 38 | }, 39 | "dependencies": { 40 | "ping.js": "^0.3.0" 41 | }, 42 | "peerDependencies": { 43 | "ping.js": "^0.3.0", 44 | "vue": "^3.4.21" 45 | }, 46 | "devDependencies": { 47 | "@commitlint/cli": "^19.3.0", 48 | "@commitlint/config-conventional": "^19.2.2", 49 | "@types/node": "^20.12.8", 50 | "@typescript-eslint/eslint-plugin": "^7.8.0", 51 | "@typescript-eslint/parser": "^7.8.0", 52 | "@vinayakkulkarni/prettier-config-vue": "^1.0.0", 53 | "@vitejs/plugin-vue": "^5.2.1", 54 | "@vue/runtime-dom": "^3.4.21", 55 | "eslint": "^8.57.0", 56 | "eslint-config-prettier": "^9.1.0", 57 | "eslint-plugin-import": "^2.29.1", 58 | "eslint-plugin-jsdoc": "^48.2.3", 59 | "eslint-plugin-prettier": "^5.2.1", 60 | "eslint-plugin-security": "^1.7.1", 61 | "eslint-plugin-vue": "^9.32.0", 62 | "husky": "^9.0.11", 63 | "is-ci": "^3.0.1", 64 | "lint-staged": "^15.2.11", 65 | "postcss-html": "^1.6.0", 66 | "prettier": "^3.3.3", 67 | "sass": "^1.76.0", 68 | "shipjs": "^0.27.0", 69 | "stylelint": "^16.5.0", 70 | "stylelint-config-recommended-vue": "^1.5.0", 71 | "stylelint-prettier": "^5.0.0", 72 | "typescript": "^5.4.5", 73 | "vite": "^5.3.1", 74 | "vue": "^3.4.21", 75 | "vue-tsc": "^2.0.16" 76 | }, 77 | "keywords": [ 78 | "vuejs", 79 | "offline", 80 | "online", 81 | "detect", 82 | "internet-connectivity", 83 | "disconnect" 84 | ], 85 | "author": { 86 | "name": "Vinayak Kulkarni", 87 | "email": "inbox.vinayak@gmail.com", 88 | "url": "https://vinayakkulkarni.dev" 89 | }, 90 | "license": "MIT", 91 | "access": "public", 92 | "engines": { 93 | "node": ">=18.13.0", 94 | "npm": ">=9.0.0" 95 | }, 96 | "repository": { 97 | "type": "git", 98 | "url": "git+https://github.com/vinayakkulkarni/v-offline.git" 99 | }, 100 | "private": false, 101 | "sideEffects": false, 102 | "bugs": { 103 | "url": "https://github.com/vinayakkulkarni/v-offline/issues" 104 | }, 105 | "homepage": "https://github.com/vinayakkulkarni/v-offline#readme" 106 | } 107 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # V-Offline ⚡️ 2 | 3 | [![CI](https://img.shields.io/github/actions/workflow/status/vinayakkulkarni/v-offline/ci.yml?label=CI&branch=main&logo=github-actions)](https://github.com/vinayakkulkarni/v-offline/actions/workflows/ci.yml) 4 | [![CodeQL](https://img.shields.io/github/actions/workflow/status/vinayakkulkarni/v-offline/codeql.yml?label=CodeQL&branch=main&logo=github-actions)](https://github.com/vinayakkulkarni/v-offline/actions/workflows/codeql.yml) 5 | [![Ship.js Trigger](https://img.shields.io/github/actions/workflow/status/vinayakkulkarni/v-offline/shipjs-trigger.yml?label=⛴%20Ship.js%20trigger)](https://github.com/vinayakkulkarni/v-offline/actions/workflows/shipjs-trigger.yml) 6 | [![npm](https://img.shields.io/npm/dm/v-offline?logo=npm)](http://npm-stat.com/charts.html?package=v-offline) 7 | [![npm](https://img.shields.io/npm/v/v-offline/latest?logo=npm)](https://www.npmjs.com/package/v-offline) 8 | [![npm bundle size (version)](https://img.shields.io/bundlephobia/min/v-offline/latest?label=@latest%20size&logo=vue.js)](https://bundlephobia.com/package/v-offline@latest) 9 | [![npm](https://img.shields.io/npm/v/v-offline/legacy?logo=npm)](https://www.npmjs.com/package/v-offline) 10 | [![npm bundle size (version)](https://img.shields.io/bundlephobia/min/v-offline/legacy?label=@legacy%20size&logo=vue.js)](https://bundlephobia.com/package/v-offline@legacy) 11 | [![npm type definitions](https://img.shields.io/npm/types/v-offline)](https://github.com/vinayakkulkarni/v-offline/blob/master/package.json) 12 | [![DeepScan grade](https://deepscan.io/api/teams/9055/projects/16121/branches/339368/badge/grade.svg)](https://deepscan.io/dashboard#view=project&tid=9055&pid=16121&bid=339368) 13 | [![Snyk Vulnerabilities for GitHub Repo](https://img.shields.io/snyk/vulnerabilities/github/vinayakkulkarni/v-offline)](https://snyk.io/test/github/vinayakkulkarni/v-offline) 14 | [![GitHub contributors](https://img.shields.io/github/contributors/vinayakkulkarni/v-offline?logo=github)](https://github.com/vinayakkulkarni/v-offline/graphs/contributors) 15 | [![FOSSA](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fv-offline.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fv-offline?ref=badge_shield) 16 | 17 | [![eslint](https://img.shields.io/npm/dependency-version/v-offline/dev/eslint?logo=eslint)](https://eslint.org/) 18 | [![prettier](https://img.shields.io/npm/dependency-version/v-offline/dev/prettier?logo=prettier)](https://prettier.io/) 19 | [![vite](https://img.shields.io/npm/dependency-version/v-offline/dev/vite?logo=vite)](https://vitejs.dev/) 20 | [![vue](https://img.shields.io/npm/dependency-version/v-offline/dev/vue?logo=vue.js)](https://vuejs.org/) 21 | [![typescript](https://img.shields.io/npm/dependency-version/v-offline/dev/typescript?logo=TypeScript)](https://www.typescriptlang.org/) 22 | 23 | ⚠️ Docs are for Vue 3, for Vue 2 docs, [click here](https://github.com/vinayakkulkarni/v-offline#v-offline-%EF%B8%8F) 24 | 25 | ## Features 26 | 27 | - Detect offline & online events for your vue app. 28 | - Built from scratch usign Vue 2 & Composition API with TypeScript 29 | - For Vue >3.x version – `npm i v-offline@latest` 30 | - For Vue >=2.7 version – `npm i v-offline@legacy` 31 | - For Vue <2.7 version – `npm i v-offline@2.3.0` 32 | 33 | ## Table of Contents 34 | 35 | - [V-Offline ⚡️](#v-offline-️) 36 | - [Features](#features) 37 | - [Table of Contents](#table-of-contents) 38 | - [Demo](#demo) 39 | - [Requirements](#requirements) 40 | - [Installation](#installation) 41 | - [Build Setup](#build-setup) 42 | - [Usage](#usage) 43 | - [Example](#example) 44 | - [API](#api) 45 | - [Props](#props) 46 | - [Events](#events) 47 | - [Contributing](#contributing) 48 | - [Author](#author) 49 | - [License](#license) 50 | 51 | ## Demo 52 | 53 | [![Edit v-offline demo](https://developer.stackblitz.com/img/open_in_stackblitz.svg)](https://stackblitz.com/edit/v-offline?file=src/App.vue) 54 | 55 | ## Requirements 56 | 57 | - [vue](https://vuejs.org/) `^3.x` 58 | 59 | ### Installation 60 | 61 | ```sh 62 | npm install --save v-offline ping.js 63 | ``` 64 | 65 | CDN: [UNPKG](https://unpkg.com/v-offline/dist/) | [jsDelivr](https://cdn.jsdelivr.net/npm/v-offline/dist/) (available as `window.VOffline`) 66 | 67 | ### Build Setup 68 | 69 | ```bash 70 | # install dependencies 71 | $ npm install 72 | 73 | # package the library 74 | $ npm run build 75 | ``` 76 | 77 | ### Usage 78 | 79 | Global component: 80 | 81 | ```js 82 | // main.ts 83 | import { VOffline } from 'v-offline'; 84 | import { createApp } from 'vue'; 85 | 86 | const app = createApp({}); 87 | app.component('VOffline', VOffline); 88 | ``` 89 | 90 | Or use locally 91 | 92 | ```js 93 | // component.vue 94 | 104 | ``` 105 | 106 | For Nuxt 3, create a file in `plugins/v-offline.ts` 107 | 108 | ```js 109 | import { VOffline } from 'v-offline'; 110 | 111 | export default defineNuxtPlugin((nuxtApp) => { 112 | nuxtApp.vueApp.component('VOffline', VOffline); 113 | }); 114 | ``` 115 | 116 | then import the file in `nuxt.config.{j|t}s`: 117 | 118 | ```js 119 | export default { 120 | // ... 121 | plugins: [ 122 | // ... 123 | { src: '~/plugins/v-offline', mode: 'client' }, 124 | // ... 125 | ], 126 | // ... 127 | }; 128 | ``` 129 | 130 | ### Example 131 | 132 | ```html 133 | 166 | 167 | 185 | 188 | ``` 189 | 190 | ## API 191 | 192 | ### Props 193 | 194 | | Name | Type | Required? | Default | Description | 195 | | --------------- | ------ | --------- | ------------------ | ----------------------------------------------------------- | 196 | | `online-class` | String | No | '' | Styling the `div` which you want to give if you're online. | 197 | | `offline-class` | String | No | '' | Styling the `div` which you want to give if you're offline. | 198 | | `ping-url` | String | No | https://google.com | Pinging any url to double check if you're online or not. | 199 | 200 | ### Events 201 | 202 | | Name | Returns | Description | 203 | | --------------------- | ------- | --------------------- | 204 | | `@detected-condition` | String | Emits a boolean value | 205 | 206 | ## Contributing 207 | 208 | 1. Fork it ( [https://github.com/vinayakkulkarni/v-offline/fork](https://github.com/vinayakkulkarni/v-offline/fork) ) 209 | 2. Create your feature branch (`git checkout -b feat/new-feature`) 210 | 3. Commit your changes (`git commit -Sam 'feat: add feature'`) 211 | 4. Push to the branch (`git push origin feat/new-feature`) 212 | 5. Create a new [Pull Request](https://github.com/vinayakkulkarni/v-offline/compare) 213 | 214 | _Note_: 215 | 216 | 1. Please contribute using [GitHub Flow](https://web.archive.org/web/20191104103724/https://guides.github.com/introduction/flow/) 217 | 2. Commits & PRs will be allowed only if the commit messages & PR titles follow the [conventional commit standard](https://www.conventionalcommits.org/), _read more about it [here](https://github.com/conventional-changelog/commitlint/tree/master/%40commitlint/config-conventional#type-enum)_ 218 | 3. PS. Ensure your commits are signed. _[Read why](https://withblue.ink/2020/05/17/how-and-why-to-sign-git-commits.html)_ 219 | 220 | ## Author 221 | 222 | **v-offline** © [Vinayak](https://vinayakkulkarni.dev), Released under the [MIT](./LICENSE) License.
223 | Authored and maintained by Vinayak Kulkarni with help from contributors ([list](https://github.com/vinayakkulkarni/v-offline/contributors)). 224 | 225 | > [vinayakkulkarni.dev](https://vinayakkulkarni.dev) · GitHub [@vinayakkulkarni](https://github.com/vinayakkulkarni) · Twitter [@\_vinayak_k](https://twitter.com/_vinayak_k) 226 | 227 | ## License 228 | 229 | [![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fv-offline.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2Fvinayakkulkarni%2Fv-offline?ref=badge_large) 230 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # [3.5.0](https://github.com/vinayakkulkarni/v-offline/compare/v3.4.0...v3.5.0) (2024-03-24) 2 | 3 | 4 | ### Bug Fixes 5 | 6 | * bun lockfile conflict ([487f846](https://github.com/vinayakkulkarni/v-offline/commit/487f8465b0fbff8b25595b93401aee97b2c8876c)) 7 | * **deps:** bump @antfu/utils from 0.7.2 to 0.7.4 in /example ([710e7cc](https://github.com/vinayakkulkarni/v-offline/commit/710e7ccbfc38aeea45457a6e7700e2b531aacb8e)) 8 | * **deps:** bump actions/checkout from 3 to 4 ([bea5738](https://github.com/vinayakkulkarni/v-offline/commit/bea57389d5fc3589694b19d0202267e0cfe0b3d7)) 9 | * **deps:** bump actions/setup-node from 3 to 4 ([8674c36](https://github.com/vinayakkulkarni/v-offline/commit/8674c3690a37e9c02acaf3f528004602599409f3)) 10 | * **deps:** bump amannn/action-semantic-pull-request from 5.1.0 to 5.2.0 ([8cf6108](https://github.com/vinayakkulkarni/v-offline/commit/8cf6108306f75fdfc01df4afb6e6fd4366c6fc3b)) 11 | * **deps:** bump amannn/action-semantic-pull-request from 5.2.0 to 5.3.0 ([38525db](https://github.com/vinayakkulkarni/v-offline/commit/38525db5bab34a325cbd1c4474f69fe61a064cf0)) 12 | * **deps:** bump amannn/action-semantic-pull-request from 5.3.0 to 5.4.0 ([48632de](https://github.com/vinayakkulkarni/v-offline/commit/48632de0b776a2bbf0250ccfe01f21f62c471049)) 13 | * **deps:** bump dependabot/fetch-metadata from 1.3.6 to 1.4.0 ([3be60e1](https://github.com/vinayakkulkarni/v-offline/commit/3be60e10646d9f4ff2a9a3fe272555e97e9e2a22)) 14 | * **deps:** bump dependabot/fetch-metadata from 1.4.0 to 1.5.0 ([4c277ca](https://github.com/vinayakkulkarni/v-offline/commit/4c277cabb3f5c8f74db92c1a29885a74ae94c6c5)) 15 | * **deps:** bump dependabot/fetch-metadata from 1.5.0 to 1.5.1 ([90730e6](https://github.com/vinayakkulkarni/v-offline/commit/90730e672c8a875d23eccdf89f93e72b14353197)) 16 | * **deps:** bump dependabot/fetch-metadata from 1.5.1 to 1.6.0 ([3c33b0c](https://github.com/vinayakkulkarni/v-offline/commit/3c33b0cffde1b9c22ab5774e908507e4f6da1d4c)) 17 | * **deps:** bump github/codeql-action from 2 to 3 ([d45c5b0](https://github.com/vinayakkulkarni/v-offline/commit/d45c5b01cc9a757f3538878ffc91333eafc3b7f7)) 18 | * **deps:** bump peaceiris/actions-gh-pages from 3.9.2 to 3.9.3 ([8e8d67f](https://github.com/vinayakkulkarni/v-offline/commit/8e8d67fb64bf2e8a71d81c89d665b521c45b7049)) 19 | * **deps:** bump postcss from 8.4.27 to 8.4.31 in /example ([e585578](https://github.com/vinayakkulkarni/v-offline/commit/e585578a2e72fe96f468f84b924ec1d4ae60b515)) 20 | * **deps:** bump v-github-icon from 3.0.2 to 3.1.1 in /example ([f1f5b6f](https://github.com/vinayakkulkarni/v-offline/commit/f1f5b6f7acd4e3a665fe599105a8f528409d9ce0)) 21 | * **deps:** bump v-github-icon from 3.1.1 to 3.1.2 in /example ([e73d5fc](https://github.com/vinayakkulkarni/v-offline/commit/e73d5fcc75c1091ce5729e0762ae243efaa2cc5f)) 22 | * **deps:** bump v-github-icon from 3.1.2 to 3.1.3 in /example ([c398e94](https://github.com/vinayakkulkarni/v-offline/commit/c398e94843c7455c120e9941f54883625acaed81)) 23 | * **deps:** bump v-github-icon from 3.1.3 to 3.2.1 in /example ([5229303](https://github.com/vinayakkulkarni/v-offline/commit/522930329fcaaa7c794b23f7da2d228b90ef00f8)) 24 | * **deps:** bump v-offline from 3.3.1 to 3.4.0 in /example ([cca3e36](https://github.com/vinayakkulkarni/v-offline/commit/cca3e366b572588710bb4885ec22dd6f80f2bbc9)) 25 | * **deps:** bump vue from 3.2.47 to 3.3.1 in /example ([401df33](https://github.com/vinayakkulkarni/v-offline/commit/401df3367c1eab604d312ab7ee755604dba26bbc)) 26 | * **deps:** bump vue from 3.3.1 to 3.3.2 in /example ([b4e77f2](https://github.com/vinayakkulkarni/v-offline/commit/b4e77f2dcbe1520825394e9d4991387b8a1e9252)) 27 | * **deps:** bump vue from 3.3.10 to 3.3.11 in /example ([a22cd66](https://github.com/vinayakkulkarni/v-offline/commit/a22cd660f8ce02128ef536f96e0425b6f4caa747)) 28 | * **deps:** bump vue from 3.3.11 to 3.3.12 in /example ([83f4b89](https://github.com/vinayakkulkarni/v-offline/commit/83f4b896e445f8adfb8db6973b2602de7318a6e8)) 29 | * **deps:** bump vue from 3.3.12 to 3.3.13 in /example ([56dfdab](https://github.com/vinayakkulkarni/v-offline/commit/56dfdabe7e9c294777ab1fd48adcc87c5a92ea35)) 30 | * **deps:** bump vue from 3.3.13 to 3.4.3 in /example ([66ad5a5](https://github.com/vinayakkulkarni/v-offline/commit/66ad5a5784bc8d96d9307af5643fa57b1bdd6be5)) 31 | * **deps:** bump vue from 3.3.2 to 3.3.4 in /example ([13ab771](https://github.com/vinayakkulkarni/v-offline/commit/13ab771cc71777c44c021d51159af6f6910c5509)) 32 | * **deps:** bump vue from 3.3.4 to 3.3.6 in /example ([2d6a08a](https://github.com/vinayakkulkarni/v-offline/commit/2d6a08a28df9219a3528bdb1745a510307363b23)) 33 | * **deps:** bump vue from 3.3.6 to 3.3.7 in /example ([069b19a](https://github.com/vinayakkulkarni/v-offline/commit/069b19a5199d4b0652fbb81028c3579572976d5c)) 34 | * **deps:** bump vue from 3.3.7 to 3.3.8 in /example ([edf7dbf](https://github.com/vinayakkulkarni/v-offline/commit/edf7dbfa77ee95db562a3c65fb05d341b63c4b73)) 35 | * **deps:** bump vue from 3.3.8 to 3.3.9 in /example ([b3a80a5](https://github.com/vinayakkulkarni/v-offline/commit/b3a80a5f362269cf5de3e661bfb4dd18544efc2f)) 36 | * **deps:** bump vue from 3.3.9 to 3.3.10 in /example ([33d1911](https://github.com/vinayakkulkarni/v-offline/commit/33d1911c17e0dcf5b3467614ae5acadde0ec2082)) 37 | * **deps:** bump vue from 3.4.10 to 3.4.13 in /example ([084be88](https://github.com/vinayakkulkarni/v-offline/commit/084be882d55d8f0da025870f947e374a175ef4d1)) 38 | * **deps:** bump vue from 3.4.13 to 3.4.14 in /example ([3388279](https://github.com/vinayakkulkarni/v-offline/commit/338827965b16e596c76c27f28c0fd4b2b88b7f21)) 39 | * **deps:** bump vue from 3.4.14 to 3.4.15 in /example ([8893c55](https://github.com/vinayakkulkarni/v-offline/commit/8893c55660abe168f8101629b9fb22928fddd2f2)) 40 | * **deps:** bump vue from 3.4.15 to 3.4.17 in /example ([c82c35c](https://github.com/vinayakkulkarni/v-offline/commit/c82c35c1c844563e6756392eb8c7212bdab131a4)) 41 | * **deps:** bump vue from 3.4.17 to 3.4.18 in /example ([906f702](https://github.com/vinayakkulkarni/v-offline/commit/906f702776cfed7aece8c9714d7497fdb93f9a39)) 42 | * **deps:** bump vue from 3.4.18 to 3.4.19 in /example ([da3c755](https://github.com/vinayakkulkarni/v-offline/commit/da3c7556412d2df29c09cfb3a10ee00fb7bcbf3b)) 43 | * **deps:** bump vue from 3.4.19 to 3.4.20 in /example ([8898136](https://github.com/vinayakkulkarni/v-offline/commit/88981364da3737084b55e9d249aeb4aa46b9d948)) 44 | * **deps:** bump vue from 3.4.20 to 3.4.21 in /example ([01a8bb6](https://github.com/vinayakkulkarni/v-offline/commit/01a8bb673d38cc74f984e8d22fa42c08a2e56a06)) 45 | * **deps:** bump vue from 3.4.3 to 3.4.4 in /example ([8a71837](https://github.com/vinayakkulkarni/v-offline/commit/8a71837c8bdfb722565f004fe5f83cf1becc3139)) 46 | * **deps:** bump vue from 3.4.4 to 3.4.5 in /example ([0cdf377](https://github.com/vinayakkulkarni/v-offline/commit/0cdf377db2fbcf2c2e46975864c4c9fa7685f0a5)) 47 | * **deps:** bump vue from 3.4.5 to 3.4.6 in /example ([af395ff](https://github.com/vinayakkulkarni/v-offline/commit/af395ff6d6909e9bb061193be3a0f75e7e7f7519)) 48 | * **deps:** bump vue from 3.4.6 to 3.4.7 in /example ([52d8cb5](https://github.com/vinayakkulkarni/v-offline/commit/52d8cb5fd2ec270542d5299ebcaaa8eafae4fbf8)) 49 | * **deps:** bump vue from 3.4.7 to 3.4.8 in /example ([75e0648](https://github.com/vinayakkulkarni/v-offline/commit/75e06488797cb5c93bb7941029e547a7b55b8aa2)) 50 | * **deps:** bump vue from 3.4.8 to 3.4.10 in /example ([0b224d2](https://github.com/vinayakkulkarni/v-offline/commit/0b224d22a3c932b6c3f17f7236884db5b8a7dea7)) 51 | * **deps:** bump yaml from 2.2.1 to 2.2.2 ([1d3f5d3](https://github.com/vinayakkulkarni/v-offline/commit/1d3f5d3e17e5f35cbf643633b3eae4e7aa49b7be)) 52 | * disable any rule on shims ([4c6a475](https://github.com/vinayakkulkarni/v-offline/commit/4c6a4752cf26627652cd7389b4778f33a5b1711d)) 53 | 54 | 55 | 56 | # [3.4.0](https://github.com/vinayakkulkarni/v-offline/compare/v3.3.1...v3.4.0) (2023-03-10) 57 | 58 | 59 | ### Bug Fixes 60 | 61 | * **deps:** bump amannn/action-semantic-pull-request from 5.0.2 to 5.1.0 ([9f7fbdb](https://github.com/vinayakkulkarni/v-offline/commit/9f7fbdb8d398c6b56b96e2669ca43d0c038c6e9c)) 62 | * **deps:** bump v-offline from 3.3.0 to 3.3.1 in /example ([6affeff](https://github.com/vinayakkulkarni/v-offline/commit/6affeff8d65e10e33525419cbfdb2d21e7809708)) 63 | * **deps:** bump vue from 3.2.45 to 3.2.47 in /example ([bd05878](https://github.com/vinayakkulkarni/v-offline/commit/bd05878bc4b1373b282cc6e36d192f068f19af09)) 64 | * issue with typings ([a708f45](https://github.com/vinayakkulkarni/v-offline/commit/a708f459ae4fc9d2bea77572391ff38a889e55cc)) 65 | * update publishCommand ([2257adb](https://github.com/vinayakkulkarni/v-offline/commit/2257adb746266f4212a4f46a2a7cf2cc098ec318)) 66 | 67 | 68 | ### Features 69 | 70 | * add `.npmrc` ([c3ce20a](https://github.com/vinayakkulkarni/v-offline/commit/c3ce20ad090ccf78c7b1b7365bf89fe14fb6cab8)) 71 | * add automerger workflow 🎉 ([555e331](https://github.com/vinayakkulkarni/v-offline/commit/555e331d6fe7b5ac2abdeccd39d7d2b61e6a39b6)) 72 | 73 | 74 | 75 | ## [3.3.1](https://github.com/vinayakkulkarni/v-offline/compare/v3.3.0...v3.3.1) (2023-01-28) 76 | 77 | 78 | ### Bug Fixes 79 | 80 | * **deps:** bump peaceiris/actions-gh-pages from 3.9.0 to 3.9.1 ([c06cacc](https://github.com/vinayakkulkarni/v-offline/commit/c06cacce7a0cb9d63c231b2034d3e9ed8becfbf2)) 81 | * **deps:** bump peaceiris/actions-gh-pages from 3.9.1 to 3.9.2 ([e5ae2a0](https://github.com/vinayakkulkarni/v-offline/commit/e5ae2a0c3cb4eae38b3b91f63d6ff865a7975834)) 82 | * **deps:** bump vue from 3.2.41 to 3.2.44 in /example ([ed9568d](https://github.com/vinayakkulkarni/v-offline/commit/ed9568d044fa1bea4f20d39dcec0338194098c37)) 83 | * **deps:** bump vue from 3.2.44 to 3.2.45 in /example ([2572f13](https://github.com/vinayakkulkarni/v-offline/commit/2572f139b981970751b54fbfff7dc688c1c7dfc7)) 84 | * update git settings in ship.js trigger ([164670a](https://github.com/vinayakkulkarni/v-offline/commit/164670a5967f24aba9a49f25ed727741f6929def)) 85 | 86 | 87 | 88 | # [3.3.0](https://github.com/vinayakkulkarni/v-offline/compare/v3.2.1...v3.3.0) (2022-11-05) 89 | 90 | 91 | ### Bug Fixes 92 | 93 | * **badge:** remove rollup & add vite badge ([2af4c2a](https://github.com/vinayakkulkarni/v-offline/commit/2af4c2ac2753d97e326eb96f73944b630302efdd)) 94 | * **deps:** bump amannn/action-semantic-pull-request from 4 to 5.0.1 ([8c7e1bf](https://github.com/vinayakkulkarni/v-offline/commit/8c7e1bfc06e70be298ec6a9ced0724eda3785f1f)) 95 | * **deps:** bump amannn/action-semantic-pull-request from 5.0.1 to 5.0.2 ([2eb34be](https://github.com/vinayakkulkarni/v-offline/commit/2eb34be29b8dfa28498d39e845f0e099c0d558e1)) 96 | * remove types directory ❤️ ([e0e2009](https://github.com/vinayakkulkarni/v-offline/commit/e0e20099d6f0c218df6360a5ad72b3799f680736)) 97 | 98 | 99 | ### Features 100 | 101 | * add extensions ([f66b1ea](https://github.com/vinayakkulkarni/v-offline/commit/f66b1eaf63e1b778630038865ee58ec910e2d76b)) 102 | * add netlify deploy ([6f05fb9](https://github.com/vinayakkulkarni/v-offline/commit/6f05fb95c3cb05e5311d1af8c8d738724bc6a1fd)) 103 | 104 | 105 | 106 | ## [3.2.1](https://github.com/vinayakkulkarni/v-offline/compare/v3.2.0...v3.2.1) (2022-10-04) 107 | 108 | 109 | 110 | # [3.2.0](https://github.com/vinayakkulkarni/v-offline/compare/v3.1.0...v3.2.0) (2022-10-04) 111 | 112 | 113 | ### Bug Fixes 114 | 115 | * **deps:** bump wearerequired/lint-action from 1 to 2 ([66bbeaf](https://github.com/vinayakkulkarni/v-offline/commit/66bbeaf67f05e61f4b5d197efc47a2b414670e35)) 116 | * remove semantic-pr github probot app ([37f8c54](https://github.com/vinayakkulkarni/v-offline/commit/37f8c549f172b41ce2dbbd00785cd0b6c194237b)) 117 | 118 | 119 | ### Features 120 | 121 | * **types:** auto-generated types using vue-tsc 🎉 ([93fbaf4](https://github.com/vinayakkulkarni/v-offline/commit/93fbaf443dac873c17fe0327490dc67697524f55)) 122 | 123 | 124 | 125 | # [3.1.0](https://github.com/vinayakkulkarni/v-offline/compare/v3.0.3...v3.1.0) (2022-01-26) 126 | 127 | 128 | ### Bug Fixes 129 | 130 | * remove volar settings for vscode ([3fc1422](https://github.com/vinayakkulkarni/v-offline/commit/3fc142281bc2ada0f9baba8b57870387e4c34f04)) 131 | * run lint-staged via npx ([fdc75de](https://github.com/vinayakkulkarni/v-offline/commit/fdc75de9b435af505aa0242a60302ee176fc8f84)) 132 | * update eslintrc config to support security plugin ([e4b6720](https://github.com/vinayakkulkarni/v-offline/commit/e4b672017a529beda3e0c8f95626ed6fdfada530)) 133 | 134 | 135 | ### Features 136 | 137 | * add `.nvmrc` ([f014666](https://github.com/vinayakkulkarni/v-offline/commit/f01466663acbd00ef1b6ace0d2a1b1e340ee06d2)) 138 | 139 | 140 | 141 | ## [3.0.3](https://github.com/vinayakkulkarni/v-offline/compare/v3.0.2...v3.0.3) (2021-09-29) 142 | 143 | 144 | 145 | ## [3.0.2](https://github.com/vinayakkulkarni/v-offline/compare/v3.0.1...v3.0.2) (2021-09-25) 146 | 147 | 148 | 149 | ## [3.0.1](https://github.com/vinayakkulkarni/v-offline/compare/v3.0.0...v3.0.1) (2021-08-30) 150 | 151 | 152 | 153 | ## [2.2.1](https://github.com/vinayakkulkarni/v-offline/compare/v2.2.0...v2.2.1) (2021-08-18) 154 | 155 | 156 | ### Bug Fixes 157 | 158 | * **ci:** workflow for dependabot ([0ac0417](https://github.com/vinayakkulkarni/v-offline/commit/0ac04177ce1944bc96d610f1dd0ee9d951368cb0)) 159 | * **deps:** bump actions/setup-node from 2.3.0 to 2.4.0 ([5278c11](https://github.com/vinayakkulkarni/v-offline/commit/5278c1165d2943bcf4e32266ce01bd4d6e6f26ca)) 160 | 161 | 162 | 163 | # [2.2.0](https://github.com/vinayakkulkarni/v-offline/compare/v2.1.0...v2.2.0) (2021-07-27) 164 | 165 | 166 | ### Bug Fixes 167 | 168 | * remove the d.ts for `rollup-plugin-sucrase` ([f92e096](https://github.com/vinayakkulkarni/v-offline/commit/f92e0963d41b6a6d87f429f17f3154667a990dc3)) 169 | * update file name convention ✨ ([f4167a4](https://github.com/vinayakkulkarni/v-offline/commit/f4167a4a98f3164f4bf747dee6a9fb42bbd27a91)) 170 | 171 | 172 | ### Features 173 | 174 | * enable support for semantic pull request ([d7413b5](https://github.com/vinayakkulkarni/v-offline/commit/d7413b570b5aba91f90c83f034139db7492f6257)) 175 | 176 | 177 | 178 | # [2.1.0](https://github.com/vinayakkulkarni/v-offline/compare/v2.0.0...v2.1.0) (2021-07-23) 179 | 180 | 181 | ### Bug Fixes 182 | 183 | * better error handling of ping response ⚡️ ([4d40b40](https://github.com/vinayakkulkarni/v-offline/commit/4d40b407b6aa46d1cc8294d6b81f7e4b0e9f9f93)) 184 | 185 | 186 | ### Features 187 | 188 | * remove unnecessary dynamic slots, use `v-if` instead 🥳 ([c3c370e](https://github.com/vinayakkulkarni/v-offline/commit/c3c370e91644fc2a417950d170fee9d80dfced03)) 189 | 190 | 191 | 192 | # [2.0.0](https://github.com/vinayakkulkarni/v-offline/compare/v1.3.0...v2.0.0) (2021-07-23) 193 | 194 | 195 | ### Bug Fixes 196 | 197 | * add `defineComponent()` wrapper when exporting the component ([d4e4b49](https://github.com/vinayakkulkarni/v-offline/commit/d4e4b49d57ba824222ab0b9872fa298ea60199b0)) 198 | * **ci:** remove `travis-ci` support cause GitHub actions ([b3b9d1a](https://github.com/vinayakkulkarni/v-offline/commit/b3b9d1a378cac352ce27ee774788d6e54ac104fb)) 199 | * **deps:** bump actions/cache from v2 to v2.1.4 ([5a36274](https://github.com/vinayakkulkarni/v-offline/commit/5a36274e4d8706e7d822a5e60d3a52f74982dbe8)) 200 | * **deps:** bump actions/cache from v2.1.4 to v2.1.5 ([fe74388](https://github.com/vinayakkulkarni/v-offline/commit/fe74388b63aa054eabc27ff687c21a8a4449f915)) 201 | * **deps:** bump actions/setup-node from v2.1.1 to v2.1.2 ([3affbf8](https://github.com/vinayakkulkarni/v-offline/commit/3affbf8c3ff898a31af92608620cccdd6008ad01)) 202 | * **deps:** bump actions/setup-node from v2.1.2 to v2.1.3 ([73a4b3f](https://github.com/vinayakkulkarni/v-offline/commit/73a4b3fab0d126ace032621350e93ee538876890)) 203 | * **deps:** bump actions/setup-node from v2.1.3 to v2.1.4 ([efcc167](https://github.com/vinayakkulkarni/v-offline/commit/efcc16781cd03f288c08a898c046a64f432b94f9)) 204 | * **deps:** bump actions/setup-node from v2.1.4 to v2.1.5 ([adec907](https://github.com/vinayakkulkarni/v-offline/commit/adec907f8c38836902463014c0e7334a0d6dec1a)) 205 | * **deps:** bump elliptic from 6.5.3 to 6.5.4 ([7c9bb5e](https://github.com/vinayakkulkarni/v-offline/commit/7c9bb5e666a5343ff52d86a8f368e2c929e79d0b)) 206 | * **deps:** bump hosted-git-info from 2.8.8 to 2.8.9 ([102d724](https://github.com/vinayakkulkarni/v-offline/commit/102d724fa6d783cc19cefe68d2548f1e254b242a)) 207 | * **deps:** bump ini from 1.3.5 to 1.3.8 ([8234a51](https://github.com/vinayakkulkarni/v-offline/commit/8234a515733d281bce59f23dfb547ef8250415a6)) 208 | * **deps:** bump lodash from 4.17.20 to 4.17.21 ([1585b81](https://github.com/vinayakkulkarni/v-offline/commit/1585b817cfddc58611783dd923d8777f737ee2b6)) 209 | * **deps:** bump ping.js from 0.2.3 to 0.3.0 ([a1d729e](https://github.com/vinayakkulkarni/v-offline/commit/a1d729e8c556b27e6b835012ab18b998a6dcd92a)) 210 | * **deps:** bump pug-code-gen from 2.0.2 to 2.0.3 ([4beb051](https://github.com/vinayakkulkarni/v-offline/commit/4beb0511fafdb6b81c28d474d6e7fc20e2d6a486)) 211 | * **deps:** bump socket.io from 2.3.0 to 2.4.1 ([922ed17](https://github.com/vinayakkulkarni/v-offline/commit/922ed178b143d4f5cd6e932434d9a6410f8ce9ec)) 212 | * **deps:** bump y18n from 4.0.0 to 4.0.1 ([6a01b25](https://github.com/vinayakkulkarni/v-offline/commit/6a01b252933127c1100db53b5461b00e481e8373)) 213 | * minor housekeeping of jsconfig & tsconfig 🎉 ([40db05d](https://github.com/vinayakkulkarni/v-offline/commit/40db05d6d9df58b56df29760cd4d5ce731e0cb51)) 214 | * update node version ([030b53a](https://github.com/vinayakkulkarni/v-offline/commit/030b53ab928a13570efcb3e76d26cc8fb2709047)) 215 | 216 | 217 | ### Features 218 | 219 | * add `tsconfig` for TS intellisense 🥳 ([5528ec0](https://github.com/vinayakkulkarni/v-offline/commit/5528ec08d3583fd5abe503d4903b87bf935b58d4)) 220 | * add stylelint config file 👀 ([2060677](https://github.com/vinayakkulkarni/v-offline/commit/2060677a57a341aa6cdbb92ed7147432faae3af4)) 221 | * add vscode config(s) 👨‍🔧 ([b4d79b5](https://github.com/vinayakkulkarni/v-offline/commit/b4d79b58fe1527b18e76f5b3fb6d8082bcc8ce35)) 222 | * **deps:** update lockfile with typings ([e271bd3](https://github.com/vinayakkulkarni/v-offline/commit/e271bd355f54bd58ec4c804de0bd70aaac9431bf)) 223 | * **husky:** upgrade husky to v7 🐶 ([85e1b97](https://github.com/vinayakkulkarni/v-offline/commit/85e1b972132fbce253f0e82a458551c505538cb5)) 224 | * update `eslintrc` 🧽 ([c5a77e5](https://github.com/vinayakkulkarni/v-offline/commit/c5a77e5430cf59395778d95c4bfc3c7dee14cc86)) 225 | * update `types` for VOffline ([8f6cd51](https://github.com/vinayakkulkarni/v-offline/commit/8f6cd513db8a996b0c815c8ade42c5a1cdcabebf)) 226 | * update to TS based source ([e0a4103](https://github.com/vinayakkulkarni/v-offline/commit/e0a410388eb621e4409064e326a466e0af28e30c)) 227 | 228 | 229 | 230 | # [1.3.0](https://github.com/vinayakkulkarni/v-offline/compare/1.2.1...1.3.0) (2020-09-19) 231 | 232 | 233 | ### Bug Fixes 234 | 235 | * minor fix in referencing `this` in source ([65d32cf](https://github.com/vinayakkulkarni/v-offline/commit/65d32cf0e0c1af4ab66eca27495ea8e16e4d0197)) 236 | * remove `dist` directory from repo ([f0ebb73](https://github.com/vinayakkulkarni/v-offline/commit/f0ebb73176271b0690ba23e71081da28fa797b6e)) 237 | * **bundle:** remove `dist` from git repo ([ec467f3](https://github.com/vinayakkulkarni/v-offline/commit/ec467f3b7c1422c75eff0306ae78e91751c3c4fc)) 238 | * **deps:** bump elliptic from 6.5.2 to 6.5.3 ([1381404](https://github.com/vinayakkulkarni/v-offline/commit/13814046b34fae3d42ba6f2a3815018968e28d22)) 239 | * **deps:** bump lodash from 4.17.14 to 4.17.19 ([612b274](https://github.com/vinayakkulkarni/v-offline/commit/612b274eb63f113a001e7fc3d5202ea6ee6f4004)) 240 | * **deps:** bump pkg versions ([5a25cc9](https://github.com/vinayakkulkarni/v-offline/commit/5a25cc91d46546d8c36ca3d14a507a1c3ea6da48)) 241 | * update dependabot configuration ([41136ff](https://github.com/vinayakkulkarni/v-offline/commit/41136ffd5a0873c5f5ec259652ccc6679ee5e79c)) 242 | 243 | 244 | ### Features 245 | 246 | * add `commitlint` config file ([bba21b1](https://github.com/vinayakkulkarni/v-offline/commit/bba21b157b3e6f335b388031733f9ffafdedb292)) 247 | * add `husky` config file ([e5be996](https://github.com/vinayakkulkarni/v-offline/commit/e5be996ec55207130bbf961a6067be826ec5d37d)) 248 | 249 | 250 | 251 | --------------------------------------------------------------------------------