├── template ├── src │ ├── templates │ │ └── .gitkeep │ ├── install.js │ ├── uninstall.js │ ├── index.js │ └── prompts.js ├── .gitignore ├── package.json └── README.md ├── .gitignore ├── package.json ├── .github ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md ├── CODE_OF_CONDUCT.md ├── PULL_REQUEST_TEMPLATE.md └── CONTRIBUTING.md ├── utils └── index.js ├── LICENSE ├── meta.js └── README.md /template/src/templates/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /template/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .thumbs.db 3 | node_modules 4 | npm-debug.log* 5 | yarn-debug.log* 6 | yarn-error.log* 7 | 8 | # Editor directories and files 9 | .idea 10 | .vscode 11 | *.suo 12 | *.ntvs* 13 | *.njsproj 14 | *.sln 15 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .thumbs.db 3 | node_modules 4 | yarn.lock 5 | npm-debug.log* 6 | yarn-debug.log* 7 | yarn-error.log* 8 | 9 | # Editor directories and files 10 | .idea 11 | .vscode 12 | *.suo 13 | *.ntvs* 14 | *.njsproj 15 | *.sln 16 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "@quasar/starter-kit-app-extension", 3 | "private": true, 4 | "version": "1.0.0-alpha.0", 5 | "license": "MIT", 6 | "description": "The official Quasar starter kit for creating APP Extensions", 7 | "engines": { 8 | "node": ">= 12.22.1", 9 | "npm": ">= 5.6.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /template/src/install.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Quasar App Extension install script 3 | * 4 | * Docs: https://quasar.dev/app-extensions/development-guide/install-api 5 | * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/InstallAPI.js 6 | */ 7 | 8 | module.exports = function (api) { 9 | // 10 | } 11 | -------------------------------------------------------------------------------- /template/src/uninstall.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Quasar App Extension uninstall script 3 | * 4 | * Docs: https://quasar.dev/app-extensions/development-guide/uninstall-api 5 | * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/UninstallAPI.js 6 | */ 7 | 8 | module.exports = function (api) { 9 | // 10 | } 11 | -------------------------------------------------------------------------------- /template/src/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Quasar App Extension index/runner script 3 | * (runs on each dev/build) 4 | * 5 | * Docs: https://quasar.dev/app-extensions/development-guide/index-api 6 | * API: https://github.com/quasarframework/quasar/blob/master/app/lib/app-extension/IndexAPI.js 7 | */ 8 | 9 | module.exports = function (api) { 10 | // 11 | } 12 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: rstoenescu 4 | patreon: # quasarframework 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: # Replace with a single Ko-fi username 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | custom: # Replace with a single custom sponsorship URL 9 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for Quasar 4 | title: '' 5 | labels: feature request 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /template/package.json: -------------------------------------------------------------------------------- 1 | { 2 | {{#if needOrgName}} 3 | "name": "@{{ orgName }}/quasar-app-extension-{{ name }}", 4 | {{else}} 5 | "name": "quasar-app-extension-{{ name }}", 6 | {{/if}} 7 | "version": "0.0.1", 8 | "description": "{{ description }}", 9 | "author": "{{ author }}", 10 | "license": "{{ license }}", 11 | "main": "src/index.js", 12 | "scripts": { 13 | "test": "echo \"No test specified\" && exit 0" 14 | }, 15 | "repository": { 16 | "type": "{{ repositoryType }}", 17 | "url": "{{ repositoryURL }}" 18 | }, 19 | "bugs": "{{ bugs }}", 20 | "homepage": "{{ homepage }}", 21 | "engines": { 22 | "node": ">= 8.9.0", 23 | "npm": ">= 5.6.0", 24 | "yarn": ">= 1.6.0" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve Quasar 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Platform (please complete the following information):** 27 | OS: 28 | Node: 29 | NPM: 30 | Yarn: 31 | Browsers: 32 | iOS: 33 | Android: 34 | Electron: 35 | 36 | **Additional context** 37 | Add any other context about the problem here. 38 | -------------------------------------------------------------------------------- /utils/index.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Prints the final message with instructions of necessary next steps. 3 | * @param {Object} data Data from questionnaire. 4 | */ 5 | module.exports.printMessage = function (data, { green, yellow }) { 6 | const message = ` 7 | ${green('[*] Quasar App Extension project initialization finished!')} 8 | 9 | To get started: 10 | 11 | ${yellow( 12 | `${data.inPlace ? '' : `cd ${data.destDirName}\n `}` 13 | )} 14 | 15 | Documentation can be found at: https://quasar.dev 16 | 17 | Quasar is relying on donations to evolve. We'd be very grateful if you can 18 | read our manifest on "Why donations are important": https://quasar.dev/why-donate 19 | Donation campaign: https://donate.quasar.dev 20 | Any amount is very welcomed. 21 | If invoices are required, please first contact razvan@quasar.dev 22 | 23 | Please give us a star on Github if you appreciate our work: 24 | https://github.com/quasarframework/quasar 25 | 26 | Enjoy! - Quasar Team 27 | ` 28 | console.log(message) 29 | } 30 | -------------------------------------------------------------------------------- /template/README.md: -------------------------------------------------------------------------------- 1 | Quasar App Extension {{ name }} 2 | === 3 | 4 | _Be sure to change this readme as appropriate for your app extension._ 5 | 6 | _Think about the organization of this file and how the information will be beneficial to the user._ 7 | 8 | > Add a short description of your App Extension. What does it do? How is it beneficial? Why would someone want to use it? 9 | 10 | {{ description }} 11 | 12 | # Install 13 | ```bash 14 | quasar ext add {{ name }} 15 | ``` 16 | Quasar CLI will retrieve it from the NPM registry and install the extension to your project. 17 | 18 | {{#preset.prompts}} 19 | ## Prompts 20 | 21 | > Explain the prompts here 22 | 23 | {{/preset.prompts}} 24 | # Uninstall 25 | ```bash 26 | quasar ext remove {{ name }} 27 | ``` 28 | 29 | # Info 30 | > Add longer information here that will help the user of your app extension. 31 | 32 | # Other Info 33 | > Add other information that's not as important to know 34 | 35 | # Donate 36 | If you appreciate the work that went into this App Extension, please consider [donating to Quasar](https://donate.quasar.dev). 37 | -------------------------------------------------------------------------------- /template/src/prompts.js: -------------------------------------------------------------------------------- 1 | /** 2 | * Quasar App Extension prompts script 3 | * 4 | * Docs: https://quasar.dev/app-extensions/development-guide/prompts-api 5 | * 6 | * Inquirer prompts 7 | * (answers are available as "api.prompts" in the other scripts) 8 | * https://www.npmjs.com/package/inquirer#question 9 | * 10 | * Example: 11 | 12 | return [ 13 | { 14 | name: 'name', 15 | type: 'input', 16 | required: true, 17 | message: 'Quasar CLI Extension name (without prefix)', 18 | }, 19 | { 20 | name: 'preset', 21 | type: 'checkbox', 22 | message: 'Check the features needed for your project:', 23 | choices: [ 24 | { 25 | name: 'Install script', 26 | value: 'install' 27 | }, 28 | { 29 | name: 'Prompts script', 30 | value: 'prompts' 31 | }, 32 | { 33 | name: 'Uninstall script', 34 | value: 'uninstall' 35 | } 36 | ] 37 | } 38 | ] 39 | 40 | */ 41 | 42 | module.exports = function () { 43 | return [] 44 | } 45 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016-present Razvan Stoenescu 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. 22 | -------------------------------------------------------------------------------- /.github/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Contributor Code of Conduct 2 | 3 | As contributors and maintainers of this project, we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. 4 | 5 | We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, age, or religion. 6 | 7 | Examples of unacceptable behavior by participants include the use of sexual language or imagery, derogatory comments or personal attacks, trolling, public or private harassment, insults, or other unprofessional conduct. 8 | 9 | Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct. Project maintainers who do not follow the Code of Conduct may be removed from the project team. 10 | 11 | Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. 12 | 13 | This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at [http://contributor-covenant.org/version/1/0/0/](http://contributor-covenant.org/version/1/0/0/) 14 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 5 | 6 | 7 | 8 | 9 | **What kind of change does this PR introduce?** (check at least one) 10 | 11 | - [ ] Bugfix 12 | - [ ] Feature 13 | - [ ] Code style update 14 | - [ ] Refactor 15 | - [ ] Build-related changes 16 | - [ ] Other, please describe: 17 | 18 | **Does this PR introduce a breaking change?** (check one) 19 | 20 | - [ ] Yes 21 | - [ ] No 22 | 23 | If yes, please describe the impact and migration path for existing applications: 24 | 25 | **The PR fulfills these requirements:** 26 | 27 | - [ ] It's submitted to the `dev` branch and _not_ the `master` branch 28 | - [ ] When resolving a specific issue, it's referenced in the PR's title (e.g. `fix: #xxx[,#xxx]`, where "xxx" is the issue number) 29 | - [ ] It's been tested with all Quasar themes 30 | - [ ] It's been tested on a Cordova (iOS, Android) app 31 | - [ ] It's been tested on a Electron app 32 | - [ ] Any necessary documentation has been added or updated [in the docs](https://github.com/quasarframework/quasar/tree/dev/docs) (for faster update click on "Suggest an edit on GitHub" at bottom of page) or explained in the PR's description. 33 | 34 | If adding a **new feature**, the PR's description includes: 35 | - [ ] A convincing reason for adding this feature (to avoid wasting your time, it's best to open a suggestion issue first and wait for approval before working on it) 36 | 37 | **Other information:** 38 | -------------------------------------------------------------------------------- /meta.js: -------------------------------------------------------------------------------- 1 | const { printMessage } = require('./utils') 2 | 3 | module.exports = { 4 | prompts: { 5 | needOrgName: { 6 | type: 'confirm', 7 | message: 'Will you use an organization to publish it? Eg. "@my-org/..."', 8 | default: false 9 | }, 10 | orgName: { 11 | when: 'needOrgName', 12 | type: 'input', 13 | message: 'Organization name, eg. "my-org"', 14 | validate: val => val && val.length > 0 15 | }, 16 | name: { 17 | type: 'input', 18 | message: 'Quasar App Extension ext-id (without "quasar-app-extension" prefix), eg. "my-ext"', 19 | validate: val => val && val.length > 0 20 | }, 21 | 22 | description: { 23 | type: 'input', 24 | message: 'Project description', 25 | default: 'A Quasar App Extension' 26 | }, 27 | 28 | author: { 29 | type: 'input', 30 | message: 'Author' 31 | }, 32 | 33 | license: { 34 | type: 'input', 35 | message: 'License type', 36 | default: 'MIT' 37 | }, 38 | 39 | preset: { 40 | type: 'checkbox', 41 | message: 'Pick the needed scripts:', 42 | choices: [ 43 | { 44 | name: 'Prompts script', 45 | value: 'prompts' 46 | }, 47 | { 48 | name: 'Install script', 49 | value: 'install' 50 | }, 51 | { 52 | name: 'Uninstall script', 53 | value: 'uninstall' 54 | } 55 | ] 56 | }, 57 | 58 | repositoryType: { 59 | type: 'input', 60 | message: 'Repository type', 61 | default: 'git' 62 | }, 63 | repositoryURL: { 64 | type: 'input', 65 | message: 'Repository URL (eg: https://github.com/quasarframework/quasar)' 66 | }, 67 | homepage: { 68 | type: 'input', 69 | message: 'Homepage URL' 70 | }, 71 | bugs: { 72 | type: 'input', 73 | message: 'Issue reporting URL (eg: https://github.com/quasarframework/quasar/issues)' 74 | } 75 | }, 76 | 77 | filters: { 78 | 'src/install.js': 'preset.install', 79 | 'src/prompts.js': 'preset.prompts', 80 | 'src/uninstall.js': 'preset.uninstall' 81 | }, 82 | 83 | complete: function(data, { chalk }) { 84 | printMessage(data, chalk) 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | ![Quasar Framework logo](https://cdn.quasar.dev/logo-v2/header.png) 3 | 4 | # DEPRECATED 5 | **DEPRECATED in favor of https://github.com/quasarframework/quasar/tree/dev/create-quasar** 6 | 7 | # Quasar Framework App Extension starter kit 8 | > Starter Kit for a Quasar App Extension. 9 | 10 | ## Usage 11 | 12 | First, make sure you have Node (>= 8) and Yarn (> 1.6) or NPM (>= 5). 13 | 14 | ``` bash 15 | # remove old CLI if you have it 16 | $ npm uninstall -g quasar-cli 17 | 18 | # install the latest Quasar CLI version: 19 | $ npm install -g @quasar/cli 20 | 21 | # outside of a Quasar project folder,scaffold a new extension project 22 | # with this CLI command 23 | $ quasar create my-extension --kit app-extension --branch next 24 | 25 | $ cd my-extension 26 | ``` 27 | 28 | # Quasar Framework 29 | > Build responsive Single Page Apps, **SSR Apps**, PWAs, Hybrid Mobile Apps and Electron Apps, all using the same codebase!, powered with Vue. 30 | 31 | ## Supporting Quasar 32 | Quasar Framework is an MIT-licensed open source project. Its ongoing development is made possible thanks to the support by these awesome [backers](https://github.com/rstoenescu/quasar-framework/blob/dev/backers.md). 33 | 34 | **Please read our manifest on [Why donations are important](https://quasar.dev/why-donate)**. If you'd like to become a donator, check out [Quasar Framework's Donator campaign](https://donate.quasar.dev). 35 | 36 | ## Documentation 37 | 38 | Head on to the Quasar Framework official website: [https://quasar.dev](https://quasar.dev) 39 | 40 | ## Community Forum 41 | 42 | Head on to the official community forum: [https://forum.quasar.dev](https://forum.quasar.dev) 43 | 44 | ## Contributing 45 | 46 | I'm excited if you want to contribute to Quasar under any form (report bugs, write a plugin, fix an issue, write a new feature). 47 | 48 | ### Issue Reporting Guidelines 49 | 50 | **Please use the appropriate Github repo to report issues. See "Related Components" above.** For example, a bug related to CLI should be reported to the CLI repo, one related to build issues to Quasar Framework Templates repo and so on. 51 | 52 | - The issue list of the repository is **exclusively** for bug reports and feature requests. For anything else please use the [Community Forum](https://forum.quasar.dev). 53 | 54 | - Try to search for your issue, it may have already been fixed in the development branch or it may have a resolution. 55 | 56 | - Check if the issue is reproducible with the latest stable version of Quasar. If you are using a pre-release, please indicate the specific version you are using. 57 | 58 | - It is **required** that you clearly describe the steps necessary to reproduce the issue you are running into. Issues with no clear repro steps will not be triaged. If an issue labeled "need repro" receives no further input from the issue author for more than 5 days, it will be closed. 59 | 60 | - If your issue is resolved but still open, don’t hesitate to close it. In case you found a solution by yourself, it could be helpful to explain how you fixed it. 61 | 62 | ## License 63 | 64 | Copyright (c) 2016-present Razvan Stoenescu 65 | 66 | [MIT License](http://en.wikipedia.org/wiki/MIT_License) 67 | -------------------------------------------------------------------------------- /.github/CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Quasar Contributing Guide 2 | 3 | Hi! I’m really excited that you are interested in contributing to Quasar. Before submitting your contribution though, please make sure to take a moment and read through the following guidelines. 4 | 5 | - [Code of Conduct](https://github.com/quasarframework/quasar/blob/dev/.github/CODE_OF_CONDUCT.md) 6 | - [Issue Reporting Guidelines](#issue-reporting-guidelines) 7 | - [Pull Request Guidelines](#pull-request-guidelines) 8 | - [Development Setup](#development-setup) 9 | 10 | ## Issue Reporting Guidelines 11 | 12 | - The issue list of this repo is **exclusively** for bug reports and feature requests. Non-conforming issues will be closed immediately. 13 | 14 | - For simple beginner questions, you can get quick answers from the [Quasar Discord chat room](https://chat.quasar.dev). 15 | 16 | - For more complicated questions, you can use [the official forum](https://forum.quasar.dev/). Make sure to provide enough information when asking your questions - this makes it easier for others to help you! 17 | 18 | - Try to search for your issue, it may have already been answered or even fixed in the development branch (`dev`). 19 | 20 | - Check if the issue is reproducible with the latest stable version of Quasar. If you are using a pre-release, please indicate the specific version you are using. 21 | 22 | - It is **required** that you clearly describe the steps necessary to reproduce the issue you are running into. Although we would love to help our users as much as possible, diagnosing issues without clear reproduction steps is extremely time-consuming and simply not sustainable. 23 | 24 | - Use only the minimum amount of code necessary to reproduce the unexpected behavior. A good bug report should isolate specific methods that exhibit unexpected behavior and precisely define how expectations were violated. What did you expect the method or methods to do, and how did the observed behavior differ? The more precisely you isolate the issue, the faster we can investigate. 25 | 26 | - Issues with no clear repro steps will not be triaged. If an issue labeled "need repro" receives no further input from the issue author for more than 5 days, it will be closed. 27 | 28 | - If your issue is resolved but still open, don’t hesitate to close it. In case you found a solution by yourself, it could be helpful to explain how you fixed it. 29 | 30 | - Most importantly, we beg your patience: the team must balance your request against many other responsibilities — fixing other bugs, answering other questions, new features, new documentation, etc. The issue list is not paid support and we cannot make guarantees about how fast your issue can be resolved. 31 | 32 | ## Pull Request Guidelines 33 | 34 | - Checkout a topic branch from the `master` branch and merge back against this branch. 35 | 36 | - Work in the `/template` folder. 37 | 38 | - It's OK to have multiple small commits as you work on the PR - we will let GitHub automatically squash it before merging. 39 | 40 | - If adding new feature: 41 | - Provide convincing reason to add this feature. Ideally you should open a suggestion issue first and have it green-lighted before working on it. 42 | 43 | - If fixing a bug: 44 | - If you are resolving a special issue, add `(fix: #xxxx[,#xxx])` (#xxxx is the issue id) in your PR title for a better release log, e.g. `fix: update entities encoding/decoding (fix #3899)`. 45 | - Provide detailed description of the bug in the PR. Live demo preferred. 46 | 47 | ## Development Setup 48 | 49 | You will need [Node.js](http://nodejs.org) **version 8.9+** along [Yarn](https://yarnpkg.com/) or [NPM](https://docs.npmjs.com/getting-started/installing-node). Read `package.json` and take notice of the scripts you can use. 50 | 51 | --------------------------------------------------------------------------------