├── .eslintrc.js ├── .gitignore ├── LICENSE ├── README.md ├── demo-app ├── .gitignore ├── .meteor │ ├── .finished-upgraders │ ├── .gitignore │ ├── .id │ ├── packages │ ├── platforms │ ├── release │ └── versions ├── client │ ├── head.html │ ├── main.js │ └── main.less ├── imports │ ├── api │ │ └── links │ │ │ ├── links.js │ │ │ ├── links.tests.js │ │ │ ├── methods.js │ │ │ ├── methods.tests.js │ │ │ └── server │ │ │ ├── publications.js │ │ │ └── publications.tests.js │ ├── startup │ │ ├── both │ │ │ └── index.js │ │ ├── client │ │ │ ├── index.js │ │ │ └── routes.js │ │ └── server │ │ │ ├── fixtures.js │ │ │ ├── index.js │ │ │ └── register-api.js │ └── ui │ │ ├── components │ │ ├── App.vue │ │ ├── Counter.vue │ │ ├── Info.vue │ │ ├── ScriptSetup.vue │ │ ├── hello │ │ │ ├── hello.html │ │ │ └── hello.js │ │ └── info │ │ │ ├── info.html │ │ │ └── info.js │ │ ├── layouts │ │ └── body │ │ │ ├── body.html │ │ │ └── body.js │ │ ├── pages │ │ ├── home │ │ │ ├── home.html │ │ │ └── home.js │ │ └── not-found │ │ │ ├── not-found.html │ │ │ └── not-found.js │ │ └── stylesheets │ │ └── not-found.less ├── package.json ├── packages ├── private │ └── README.md ├── public │ └── img │ │ ├── 404.svg │ │ └── bg-footer.svg ├── server │ └── main.js └── yarn.lock ├── package.json ├── packages └── vue3 │ ├── .versions │ ├── README.md │ ├── package.js │ ├── src │ ├── build │ │ ├── compiler.js │ │ ├── error.js │ │ ├── hmr.js │ │ ├── index.js │ │ └── source-map.js │ ├── dev-server.ts │ └── index.ts │ └── tsconfig.json ├── tsconfig.json └── yarn.lock /.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | extends: 'standard-with-typescript', 3 | parserOptions: { 4 | project: './tsconfig.json', 5 | }, 6 | env: { 7 | browser: true, 8 | }, 9 | globals: { 10 | Package: true, 11 | Npm: true, 12 | Meteor: true, 13 | Tracker: true, 14 | MultiFileCachingCompiler: true, 15 | Babel: true, 16 | }, 17 | rules: { 18 | 'comma-dangle': ['error', 'always-multiline'], 19 | }, 20 | } 21 | -------------------------------------------------------------------------------- /.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 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 meteor-vue 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 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Meteor + Vue 3 2 | 3 | ## Packages 4 | 5 | [vuejs:vue3](./packages/vue3) 6 | -------------------------------------------------------------------------------- /demo-app/.gitignore: -------------------------------------------------------------------------------- 1 | node_modules/ 2 | -------------------------------------------------------------------------------- /demo-app/.meteor/.finished-upgraders: -------------------------------------------------------------------------------- 1 | # This file contains information which helps Meteor properly upgrade your 2 | # app when you run 'meteor update'. You should check it into version control 3 | # with your project. 4 | 5 | notices-for-0.9.0 6 | notices-for-0.9.1 7 | 0.9.4-platform-file 8 | notices-for-facebook-graph-api-2 9 | 1.2.0-standard-minifiers-package 10 | 1.2.0-meteor-platform-split 11 | 1.2.0-cordova-changes 12 | 1.2.0-breaking-changes 13 | 1.3.0-split-minifiers-package 14 | 1.4.0-remove-old-dev-bundle-link 15 | 1.4.1-add-shell-server-package 16 | 1.4.3-split-account-service-packages 17 | 1.5-add-dynamic-import-package 18 | 1.7-split-underscore-from-meteor-base 19 | 1.8.3-split-jquery-from-blaze 20 | -------------------------------------------------------------------------------- /demo-app/.meteor/.gitignore: -------------------------------------------------------------------------------- 1 | local 2 | -------------------------------------------------------------------------------- /demo-app/.meteor/.id: -------------------------------------------------------------------------------- 1 | # This file contains a token that is unique to your project. 2 | # Check it into your repository along with the rest of this directory. 3 | # It can be used for purposes such as: 4 | # - ensuring you don't accidentally deploy one app on top of another 5 | # - providing package authors with aggregated statistics 6 | 7 | gxew4jvlrson.k6lce27wvq8v 8 | -------------------------------------------------------------------------------- /demo-app/.meteor/packages: -------------------------------------------------------------------------------- 1 | # Meteor packages used by this project, one per line. 2 | # Check this file (and the other files in this directory) into your repository. 3 | # 4 | # 'meteor add' and 'meteor remove' will edit this file for you, 5 | # but you can also edit it by hand. 6 | 7 | meteor-base@1.5.1 # Packages every Meteor app needs to have 8 | mobile-experience@1.1.0 # Packages for a great mobile UX 9 | mongo@1.12.0 # The database Meteor supports right now 10 | blaze-html-templates # Compile .html files into Meteor Blaze views 11 | jquery # Wrapper package for npm-installed jquery 12 | reactive-var@1.0.11 # Reactive variable for tracker 13 | tracker@1.2.0 # Meteor's client-side reactive programming library 14 | 15 | standard-minifier-css@1.7.3 # CSS minifier run for production mode 16 | standard-minifier-js@2.6.1 # JS minifier run for production mode 17 | es5-shim@4.8.0 # ECMAScript 5 compatibility for older browsers 18 | ecmascript@0.15.3 # Enable ECMAScript2015+ syntax in app code 19 | typescript@4.3.5 # Enable TypeScript syntax in .ts and .tsx modules 20 | shell-server@0.5.0 # Server-side component of the `meteor shell` command 21 | 22 | ostrio:flow-router-extra # FlowRouter is a very simple router for Meteor 23 | less # Leaner CSS language 24 | 25 | meteortesting:mocha # A package for writing and running your meteor app and package tests with mocha 26 | johanbrook:publication-collector # Test a Meteor publication by collecting its output 27 | hot-module-replacement@0.3.0 28 | 29 | vuejs:vue3 30 | -------------------------------------------------------------------------------- /demo-app/.meteor/platforms: -------------------------------------------------------------------------------- 1 | server 2 | browser 3 | -------------------------------------------------------------------------------- /demo-app/.meteor/release: -------------------------------------------------------------------------------- 1 | METEOR@2.3.5 2 | -------------------------------------------------------------------------------- /demo-app/.meteor/versions: -------------------------------------------------------------------------------- 1 | allow-deny@1.1.0 2 | autoupdate@1.7.0 3 | babel-compiler@7.7.0 4 | babel-runtime@1.5.0 5 | base64@1.0.12 6 | binary-heap@1.0.11 7 | blaze@2.5.0 8 | blaze-html-templates@1.2.1 9 | blaze-tools@1.1.2 10 | boilerplate-generator@1.7.1 11 | caching-compiler@1.2.2 12 | caching-html-compiler@1.2.0 13 | callback-hook@1.3.1 14 | check@1.3.1 15 | ddp@1.4.0 16 | ddp-client@2.5.0 17 | ddp-common@1.4.0 18 | ddp-server@2.4.1 19 | diff-sequence@1.1.1 20 | dynamic-import@0.7.1 21 | ecmascript@0.15.3 22 | ecmascript-runtime@0.7.0 23 | ecmascript-runtime-client@0.11.1 24 | ecmascript-runtime-server@0.10.1 25 | ejson@1.1.1 26 | es5-shim@4.8.0 27 | fetch@0.1.1 28 | geojson-utils@1.0.10 29 | hot-code-push@1.0.4 30 | hot-module-replacement@0.3.0 31 | html-tools@1.1.2 32 | htmljs@1.1.1 33 | http@1.0.10 34 | id-map@1.1.1 35 | inter-process-messaging@0.1.1 36 | johanbrook:publication-collector@1.1.0 37 | jquery@3.0.0 38 | launch-screen@1.3.0 39 | less@4.0.0 40 | logging@1.2.0 41 | meteor@1.9.3 42 | meteor-base@1.5.1 43 | meteortesting:browser-tests@1.3.4 44 | meteortesting:mocha@2.0.2 45 | meteortesting:mocha-core@8.0.1 46 | minifier-css@1.5.4 47 | minifier-js@2.6.1 48 | minimongo@1.7.0 49 | mobile-experience@1.1.0 50 | mobile-status-bar@1.1.0 51 | modern-browsers@0.1.5 52 | modules@0.16.0 53 | modules-runtime@0.12.0 54 | modules-runtime-hot@0.13.0 55 | mongo@1.12.0 56 | mongo-decimal@0.1.2 57 | mongo-dev-server@1.1.0 58 | mongo-id@1.0.8 59 | npm-mongo@3.9.1 60 | observe-sequence@1.0.19 61 | ordered-dict@1.1.0 62 | ostrio:flow-router-extra@3.7.5 63 | promise@0.12.0 64 | random@1.2.0 65 | react-fast-refresh@0.1.1 66 | reactive-dict@1.3.0 67 | reactive-var@1.0.11 68 | reload@1.3.1 69 | retry@1.1.0 70 | routepolicy@1.1.1 71 | shell-server@0.5.0 72 | socket-stream-client@0.4.0 73 | spacebars@1.2.0 74 | spacebars-compiler@1.2.1 75 | standard-minifier-css@1.7.3 76 | standard-minifier-js@2.6.1 77 | templating@1.4.1 78 | templating-compiler@1.4.1 79 | templating-runtime@1.5.0 80 | templating-tools@1.2.0 81 | tmeasday:check-npm-versions@1.0.2 82 | tracker@1.2.0 83 | typescript@4.3.5 84 | ui@1.0.13 85 | underscore@1.0.10 86 | url@1.3.2 87 | vuejs:vue3@0.0.1 88 | webapp@1.11.1 89 | webapp-hashing@1.1.0 90 | -------------------------------------------------------------------------------- /demo-app/client/head.html: -------------------------------------------------------------------------------- 1 | 2 | demo-app 3 | 4 | -------------------------------------------------------------------------------- /demo-app/client/main.js: -------------------------------------------------------------------------------- 1 | // Client entry point, imports all client code 2 | 3 | import '/imports/startup/client'; 4 | import '/imports/startup/both'; 5 | -------------------------------------------------------------------------------- /demo-app/client/main.less: -------------------------------------------------------------------------------- 1 | @import "{}/imports/ui/stylesheets/not-found.less"; 2 | -------------------------------------------------------------------------------- /demo-app/imports/api/links/links.js: -------------------------------------------------------------------------------- 1 | // Definition of the links collection 2 | 3 | import { Mongo } from 'meteor/mongo'; 4 | 5 | export const Links = new Mongo.Collection('links'); 6 | -------------------------------------------------------------------------------- /demo-app/imports/api/links/links.tests.js: -------------------------------------------------------------------------------- 1 | // Tests for the behavior of the links collection 2 | // 3 | // https://guide.meteor.com/testing.html 4 | 5 | import { Meteor } from 'meteor/meteor'; 6 | import { assert } from 'chai'; 7 | import { Links } from './links.js'; 8 | 9 | if (Meteor.isServer) { 10 | describe('links collection', function () { 11 | it('insert correctly', function () { 12 | const linkId = Links.insert({ 13 | title: 'meteor homepage', 14 | url: 'https://www.meteor.com', 15 | }); 16 | const added = Links.find({ _id: linkId }); 17 | const collectionName = added._getCollectionName(); 18 | const count = added.count(); 19 | 20 | assert.equal(collectionName, 'links'); 21 | assert.equal(count, 1); 22 | }); 23 | }); 24 | } 25 | -------------------------------------------------------------------------------- /demo-app/imports/api/links/methods.js: -------------------------------------------------------------------------------- 1 | // Methods related to links 2 | 3 | import { Meteor } from 'meteor/meteor'; 4 | import { check } from 'meteor/check'; 5 | import { Links } from './links.js'; 6 | 7 | Meteor.methods({ 8 | 'links.insert'(title, url) { 9 | check(url, String); 10 | check(title, String); 11 | 12 | return Links.insert({ 13 | url, 14 | title, 15 | createdAt: new Date(), 16 | }); 17 | }, 18 | }); 19 | -------------------------------------------------------------------------------- /demo-app/imports/api/links/methods.tests.js: -------------------------------------------------------------------------------- 1 | // Tests for links methods 2 | // 3 | // https://guide.meteor.com/testing.html 4 | 5 | import { Meteor } from 'meteor/meteor'; 6 | import { assert } from 'chai'; 7 | import { Links } from './links.js'; 8 | import './methods.js'; 9 | 10 | if (Meteor.isServer) { 11 | describe('links methods', function () { 12 | beforeEach(function () { 13 | Links.remove({}); 14 | }); 15 | 16 | it('can add a new link', function () { 17 | const addLink = Meteor.server.method_handlers['links.insert']; 18 | 19 | addLink.apply({}, ['meteor.com', 'https://www.meteor.com']); 20 | 21 | assert.equal(Links.find().count(), 1); 22 | }); 23 | }); 24 | } 25 | -------------------------------------------------------------------------------- /demo-app/imports/api/links/server/publications.js: -------------------------------------------------------------------------------- 1 | // All links-related publications 2 | 3 | import { Meteor } from 'meteor/meteor'; 4 | import { Links } from '../links.js'; 5 | 6 | Meteor.publish('links.all', function () { 7 | return Links.find(); 8 | }); 9 | -------------------------------------------------------------------------------- /demo-app/imports/api/links/server/publications.tests.js: -------------------------------------------------------------------------------- 1 | // Tests for the links publications 2 | // 3 | // https://guide.meteor.com/testing.html 4 | 5 | import { assert } from 'chai'; 6 | import { Links } from '../links.js'; 7 | import { PublicationCollector } from 'meteor/johanbrook:publication-collector'; 8 | import './publications.js'; 9 | 10 | describe('links publications', function () { 11 | beforeEach(function () { 12 | Links.remove({}); 13 | Links.insert({ 14 | title: 'meteor homepage', 15 | url: 'https://www.meteor.com', 16 | }); 17 | }); 18 | 19 | describe('links.all', function () { 20 | it('sends all links', function (done) { 21 | const collector = new PublicationCollector(); 22 | collector.collect('links.all', (collections) => { 23 | assert.equal(collections.links.length, 1); 24 | done(); 25 | }); 26 | }); 27 | }); 28 | }); 29 | -------------------------------------------------------------------------------- /demo-app/imports/startup/both/index.js: -------------------------------------------------------------------------------- 1 | // Import modules used by both client and server through a single index entry point 2 | // e.g. useraccounts configuration file. 3 | -------------------------------------------------------------------------------- /demo-app/imports/startup/client/index.js: -------------------------------------------------------------------------------- 1 | // Import client startup through a single index entry point 2 | 3 | import './routes.js'; 4 | -------------------------------------------------------------------------------- /demo-app/imports/startup/client/routes.js: -------------------------------------------------------------------------------- 1 | import { FlowRouter } from 'meteor/ostrio:flow-router-extra'; 2 | 3 | // Import needed templates 4 | import '../../ui/layouts/body/body.js'; 5 | import '../../ui/pages/home/home.js'; 6 | import '../../ui/pages/not-found/not-found.js'; 7 | 8 | // Set up all routes in the app 9 | FlowRouter.route('/', { 10 | name: 'App.home', 11 | action() { 12 | this.render('App_body', 'App_home'); 13 | }, 14 | }); 15 | 16 | FlowRouter.notFound = { 17 | action() { 18 | this.render('App_body', 'App_notFound'); 19 | }, 20 | }; 21 | -------------------------------------------------------------------------------- /demo-app/imports/startup/server/fixtures.js: -------------------------------------------------------------------------------- 1 | // Fill the DB with example data on startup 2 | 3 | import { Meteor } from 'meteor/meteor'; 4 | import { Links } from '../../api/links/links.js'; 5 | 6 | Meteor.startup(() => { 7 | // if the Links collection is empty 8 | if (Links.find().count() === 0) { 9 | const data = [ 10 | { 11 | title: 'Do the Tutorial', 12 | url: 'https://www.meteor.com/try', 13 | createdAt: new Date(), 14 | }, 15 | { 16 | title: 'Follow the Guide', 17 | url: 'http://guide.meteor.com', 18 | createdAt: new Date(), 19 | }, 20 | { 21 | title: 'Read the Docs', 22 | url: 'https://docs.meteor.com', 23 | createdAt: new Date(), 24 | }, 25 | { 26 | title: 'Discussions', 27 | url: 'https://forums.meteor.com', 28 | createdAt: new Date(), 29 | }, 30 | ]; 31 | 32 | data.forEach(link => Links.insert(link)); 33 | } 34 | }); 35 | -------------------------------------------------------------------------------- /demo-app/imports/startup/server/index.js: -------------------------------------------------------------------------------- 1 | // Import server startup through a single index entry point 2 | 3 | import './fixtures.js'; 4 | import './register-api.js'; 5 | -------------------------------------------------------------------------------- /demo-app/imports/startup/server/register-api.js: -------------------------------------------------------------------------------- 1 | // Register your apis here 2 | 3 | import '../../api/links/methods.js'; 4 | import '../../api/links/server/publications.js'; 5 | -------------------------------------------------------------------------------- /demo-app/imports/ui/components/App.vue: -------------------------------------------------------------------------------- 1 | 14 | 15 | 22 | -------------------------------------------------------------------------------- /demo-app/imports/ui/components/Counter.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 26 | 27 | 37 | -------------------------------------------------------------------------------- /demo-app/imports/ui/components/Info.vue: -------------------------------------------------------------------------------- 1 | 25 | 26 | 44 | -------------------------------------------------------------------------------- /demo-app/imports/ui/components/ScriptSetup.vue: -------------------------------------------------------------------------------- 1 | 11 | 12 | 16 | 17 | 27 | -------------------------------------------------------------------------------- /demo-app/imports/ui/components/hello/hello.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /demo-app/imports/ui/components/hello/hello.js: -------------------------------------------------------------------------------- 1 | import './hello.html'; 2 | 3 | Template.hello.onCreated(function helloOnCreated() { 4 | // counter starts at 0 5 | this.counter = new ReactiveVar(0); 6 | }); 7 | 8 | Template.hello.helpers({ 9 | counter() { 10 | return Template.instance().counter.get(); 11 | }, 12 | }); 13 | 14 | Template.hello.events({ 15 | 'click button'(event, instance) { 16 | // increment the counter when button is clicked 17 | instance.counter.set(instance.counter.get() + 1); 18 | }, 19 | }); 20 | -------------------------------------------------------------------------------- /demo-app/imports/ui/components/info/info.html: -------------------------------------------------------------------------------- 1 | 16 | -------------------------------------------------------------------------------- /demo-app/imports/ui/components/info/info.js: -------------------------------------------------------------------------------- 1 | import { Links } from '/imports/api/links/links.js'; 2 | import { Meteor } from 'meteor/meteor'; 3 | import './info.html'; 4 | 5 | Template.info.onCreated(function () { 6 | Meteor.subscribe('links.all'); 7 | }); 8 | 9 | Template.info.helpers({ 10 | links() { 11 | return Links.find({}); 12 | }, 13 | }); 14 | 15 | Template.info.events({ 16 | 'submit .info-link-add'(event) { 17 | event.preventDefault(); 18 | 19 | const target = event.target; 20 | const title = target.title; 21 | const url = target.url; 22 | 23 | Meteor.call('links.insert', title.value, url.value, (error) => { 24 | if (error) { 25 | alert(error.error); 26 | } else { 27 | title.value = ''; 28 | url.value = ''; 29 | } 30 | }); 31 | }, 32 | }); 33 | -------------------------------------------------------------------------------- /demo-app/imports/ui/layouts/body/body.html: -------------------------------------------------------------------------------- 1 | 6 | -------------------------------------------------------------------------------- /demo-app/imports/ui/layouts/body/body.js: -------------------------------------------------------------------------------- 1 | import './body.html' 2 | import { Meteor } from 'meteor/meteor' 3 | import { createApp } from 'vue' 4 | import App from '../../components/App.vue' 5 | 6 | Meteor.startup(() => { 7 | const app = createApp(App) 8 | app.mount('#vue-app') 9 | }) 10 | -------------------------------------------------------------------------------- /demo-app/imports/ui/pages/home/home.html: -------------------------------------------------------------------------------- 1 | 5 | -------------------------------------------------------------------------------- /demo-app/imports/ui/pages/home/home.js: -------------------------------------------------------------------------------- 1 | import './home.html'; 2 | 3 | import '../../components/hello/hello.js'; 4 | import '../../components/info/info.js'; 5 | -------------------------------------------------------------------------------- /demo-app/imports/ui/pages/not-found/not-found.html: -------------------------------------------------------------------------------- 1 | 12 | -------------------------------------------------------------------------------- /demo-app/imports/ui/pages/not-found/not-found.js: -------------------------------------------------------------------------------- 1 | import './not-found.html'; 2 | -------------------------------------------------------------------------------- /demo-app/imports/ui/stylesheets/not-found.less: -------------------------------------------------------------------------------- 1 | #not-found { 2 | width: 700px; 3 | margin: 0 auto; 4 | .not-found-image { 5 | width: 25%; 6 | float: left; 7 | } 8 | .not-found-title { 9 | width: 70%; 10 | float: right; 11 | background: url(/img/bg-footer.svg); 12 | background-repeat: no-repeat; 13 | background-position: center; 14 | background-size: contain; 15 | min-height: 400px; 16 | h1 { 17 | font-size: 30px; 18 | color: #1f2128; 19 | margin-bottom: 20px; 20 | margin-top: 155px; 21 | } 22 | a.gotohomepage { 23 | background-color: #de4f4f; 24 | color: #fff; 25 | width: 180px; 26 | line-height: 40px; 27 | display: block; 28 | text-align: center; 29 | font-size: 14px; 30 | text-decoration: none; 31 | text-transform: uppercase; 32 | height: 40px; 33 | } 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /demo-app/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "demo-app", 3 | "private": true, 4 | "scripts": { 5 | "start": "meteor run", 6 | "test": "meteor test --once --driver-package meteortesting:mocha" 7 | }, 8 | "dependencies": { 9 | "@babel/runtime": "^7.14.8", 10 | "jquery": "^3.6.0", 11 | "meteor-node-stubs": "^1.0.3", 12 | "vue": "^3.1.0" 13 | }, 14 | "devDependencies": { 15 | "@vue/compiler-sfc": "^3.1.5", 16 | "chai": "^4.2.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /demo-app/packages: -------------------------------------------------------------------------------- 1 | ../packages -------------------------------------------------------------------------------- /demo-app/private/README.md: -------------------------------------------------------------------------------- 1 | **private folder** 2 | 3 | All files inside a top-level directory called `private/` are only accessible from server code and can be loaded via the [`Assets`](http://docs.meteor.com/#/full/assets_getText) API. This can be used for private data files and any files that are in your project directory that you don't want to be accessible from the outside. 4 | -------------------------------------------------------------------------------- /demo-app/public/img/404.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 13 | 14 | 15 | 17 | 18 | 19 | 21 | 22 | 23 | + 24 | + 25 | + 26 | + 27 | + 28 | . 29 | . 30 | . 31 | . 32 | + 33 | + 34 | . 35 | . 36 | + 37 | . 38 | . 39 | + 40 | . 41 | . 42 | . 43 | . 44 | 45 | 47 | 49 | 52 | 53 | 55 | 57 | 58 | 59 | 60 | 61 | 63 | 65 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 77 | 79 | 80 | 81 | 82 | 83 | 86 | 89 | 90 | 91 | 96 | 98 | 101 | 104 | 110 | 111 | 112 | 113 | 114 | -------------------------------------------------------------------------------- /demo-app/public/img/bg-footer.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /demo-app/server/main.js: -------------------------------------------------------------------------------- 1 | // Server entry point, imports all server code 2 | 3 | import '/imports/startup/server'; 4 | import '/imports/startup/both'; 5 | -------------------------------------------------------------------------------- /demo-app/yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@babel/helper-validator-identifier@^7.14.9": 6 | version "7.14.9" 7 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.9.tgz#6654d171b2024f6d8ee151bf2509699919131d48" 8 | integrity sha512-pQYxPY0UP6IHISRitNe8bsijHex4TWZXi2HwKVsjPiltzlhse2znVcm9Ace510VT1kxIHjGJCZZQBX2gJDbo0g== 9 | 10 | "@babel/parser@^7.12.0", "@babel/parser@^7.13.9": 11 | version "7.15.2" 12 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.2.tgz#08d4ffcf90d211bf77e7cc7154c6f02d468d2b1d" 13 | integrity sha512-bMJXql1Ss8lFnvr11TZDH4ArtwlAS5NG9qBmdiFW2UHHm6MVoR+GDc5XE2b9K938cyjc9O6/+vjjcffLDtfuDg== 14 | 15 | "@babel/runtime@^7.14.8": 16 | version "7.14.8" 17 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.14.8.tgz#7119a56f421018852694290b9f9148097391b446" 18 | integrity sha512-twj3L8Og5SaCRCErB4x4ajbvBIVV77CGeFglHpeg5WC5FF8TZzBWXtTJ4MqaD9QszLYTtr+IsaAL2rEUevb+eg== 19 | dependencies: 20 | regenerator-runtime "^0.13.4" 21 | 22 | "@babel/types@^7.12.0", "@babel/types@^7.13.0": 23 | version "7.15.0" 24 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.0.tgz#61af11f2286c4e9c69ca8deb5f4375a73c72dcbd" 25 | integrity sha512-OBvfqnllOIdX4ojTHpwZbpvz4j3EWyjkZEdmjH0/cgsd6QOdSgU8rLSk6ard/pcW7rlmjdVSX/AWOaORR1uNOQ== 26 | dependencies: 27 | "@babel/helper-validator-identifier" "^7.14.9" 28 | to-fast-properties "^2.0.0" 29 | 30 | "@types/estree@^0.0.48": 31 | version "0.0.48" 32 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.48.tgz#18dc8091b285df90db2f25aa7d906cfc394b7f74" 33 | integrity sha512-LfZwXoGUDo0C3me81HXgkBg5CTQYb6xzEl+fNmbO4JdRiSKQ8A0GD1OBBvKAIsbCUgoyAty7m99GqqMQe784ew== 34 | 35 | "@vue/compiler-core@3.1.5": 36 | version "3.1.5" 37 | resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.1.5.tgz#298f905b6065d6d81ff63756f98c60876b393c87" 38 | integrity sha512-TXBhFinoBaXKDykJzY26UEuQU1K07FOp/0Ie+OXySqqk0bS0ZO7Xvl7UmiTUPYcLrWbxWBR7Bs/y55AI0MNc2Q== 39 | dependencies: 40 | "@babel/parser" "^7.12.0" 41 | "@babel/types" "^7.12.0" 42 | "@vue/shared" "3.1.5" 43 | estree-walker "^2.0.1" 44 | source-map "^0.6.1" 45 | 46 | "@vue/compiler-dom@3.1.5": 47 | version "3.1.5" 48 | resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.1.5.tgz#cbb97020c62a5faa3fbc2a97916bd98041ac9856" 49 | integrity sha512-ZsL3jqJ52OjGU/YiT/9XiuZAmWClKInZM2aFJh9gnsAPqOrj2JIELMbkIFpVKR/CrVO/f2VxfPiiQdQTr65jcQ== 50 | dependencies: 51 | "@vue/compiler-core" "3.1.5" 52 | "@vue/shared" "3.1.5" 53 | 54 | "@vue/compiler-sfc@^3.1.5": 55 | version "3.1.5" 56 | resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.1.5.tgz#e61e54f3a963b0f4a8e523fbb8632390dc52b0d6" 57 | integrity sha512-mtMY6xMvZeSRx9MTa1+NgJWndrkzVTdJ1pQAmAKQuxyb5LsHVvrgP7kcQFvxPHVpLVTORbTJWHaiqoKrJvi1iA== 58 | dependencies: 59 | "@babel/parser" "^7.13.9" 60 | "@babel/types" "^7.13.0" 61 | "@types/estree" "^0.0.48" 62 | "@vue/compiler-core" "3.1.5" 63 | "@vue/compiler-dom" "3.1.5" 64 | "@vue/compiler-ssr" "3.1.5" 65 | "@vue/shared" "3.1.5" 66 | consolidate "^0.16.0" 67 | estree-walker "^2.0.1" 68 | hash-sum "^2.0.0" 69 | lru-cache "^5.1.1" 70 | magic-string "^0.25.7" 71 | merge-source-map "^1.1.0" 72 | postcss "^8.1.10" 73 | postcss-modules "^4.0.0" 74 | postcss-selector-parser "^6.0.4" 75 | source-map "^0.6.1" 76 | 77 | "@vue/compiler-ssr@3.1.5": 78 | version "3.1.5" 79 | resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.1.5.tgz#f068652774293256a1e53084bed48a67682df9d2" 80 | integrity sha512-CU5N7Di/a4lyJ18LGJxJYZS2a8PlLdWpWHX9p/XcsjT2TngMpj3QvHVRkuik2u8QrIDZ8OpYmTyj1WDNsOV+Dg== 81 | dependencies: 82 | "@vue/compiler-dom" "3.1.5" 83 | "@vue/shared" "3.1.5" 84 | 85 | "@vue/reactivity@3.1.5": 86 | version "3.1.5" 87 | resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.1.5.tgz#dbec4d9557f7c8f25c2635db1e23a78a729eb991" 88 | integrity sha512-1tdfLmNjWG6t/CsPldh+foumYFo3cpyCHgBYQ34ylaMsJ+SNHQ1kApMIa8jN+i593zQuaw3AdWH0nJTARzCFhg== 89 | dependencies: 90 | "@vue/shared" "3.1.5" 91 | 92 | "@vue/runtime-core@3.1.5": 93 | version "3.1.5" 94 | resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.1.5.tgz#a545b7f146092929cb5e833e85439150f17ac87b" 95 | integrity sha512-YQbG5cBktN1RowQDKA22itmvQ+b40f0WgQ6CXK4VYoYICAiAfu6Cc14777ve8zp1rJRGtk5oIeS149TOculrTg== 96 | dependencies: 97 | "@vue/reactivity" "3.1.5" 98 | "@vue/shared" "3.1.5" 99 | 100 | "@vue/runtime-dom@3.1.5": 101 | version "3.1.5" 102 | resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.1.5.tgz#4fa28947d408aa368fa17ea0edc1beb9af1472a1" 103 | integrity sha512-tNcf3JhVR0RfW0kw1p8xZgv30nvX8Y9rsz7eiQ0dHe273sfoCngAG0y4GvMaY4Xd8FsjUwFedd4suQ8Lu8meXg== 104 | dependencies: 105 | "@vue/runtime-core" "3.1.5" 106 | "@vue/shared" "3.1.5" 107 | csstype "^2.6.8" 108 | 109 | "@vue/shared@3.1.5": 110 | version "3.1.5" 111 | resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.1.5.tgz#74ee3aad995d0a3996a6bb9533d4d280514ede03" 112 | integrity sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA== 113 | 114 | asn1.js@^5.2.0: 115 | version "5.4.1" 116 | resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" 117 | integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== 118 | dependencies: 119 | bn.js "^4.0.0" 120 | inherits "^2.0.1" 121 | minimalistic-assert "^1.0.0" 122 | safer-buffer "^2.1.0" 123 | 124 | assert@^2.0.0: 125 | version "2.0.0" 126 | resolved "https://registry.yarnpkg.com/assert/-/assert-2.0.0.tgz#95fc1c616d48713510680f2eaf2d10dd22e02d32" 127 | integrity sha512-se5Cd+js9dXJnu6Ag2JFc00t+HmHOen+8Q+L7O9zI0PqQXr20uk2J0XQqMxZEeo5U50o8Nvmmx7dZrl+Ufr35A== 128 | dependencies: 129 | es6-object-assign "^1.1.0" 130 | is-nan "^1.2.1" 131 | object-is "^1.0.1" 132 | util "^0.12.0" 133 | 134 | assertion-error@^1.1.0: 135 | version "1.1.0" 136 | resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" 137 | integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== 138 | 139 | available-typed-arrays@^1.0.4: 140 | version "1.0.4" 141 | resolved "https://registry.yarnpkg.com/available-typed-arrays/-/available-typed-arrays-1.0.4.tgz#9e0ae84ecff20caae6a94a1c3bc39b955649b7a9" 142 | integrity sha512-SA5mXJWrId1TaQjfxUYghbqQ/hYioKmLJvPJyDuYRtXXenFNMjj4hSSt1Cf1xsuXSXrtxrVC5Ot4eU6cOtBDdA== 143 | 144 | base64-js@^1.3.1: 145 | version "1.5.1" 146 | resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" 147 | integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== 148 | 149 | big.js@^5.2.2: 150 | version "5.2.2" 151 | resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" 152 | integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== 153 | 154 | bluebird@^3.7.2: 155 | version "3.7.2" 156 | resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" 157 | integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== 158 | 159 | bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: 160 | version "4.12.0" 161 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" 162 | integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== 163 | 164 | bn.js@^5.0.0, bn.js@^5.1.1: 165 | version "5.2.0" 166 | resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" 167 | integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== 168 | 169 | brorand@^1.0.1, brorand@^1.1.0: 170 | version "1.1.0" 171 | resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" 172 | integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= 173 | 174 | browserify-aes@^1.0.0, browserify-aes@^1.0.4: 175 | version "1.2.0" 176 | resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" 177 | integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== 178 | dependencies: 179 | buffer-xor "^1.0.3" 180 | cipher-base "^1.0.0" 181 | create-hash "^1.1.0" 182 | evp_bytestokey "^1.0.3" 183 | inherits "^2.0.1" 184 | safe-buffer "^5.0.1" 185 | 186 | browserify-cipher@^1.0.0: 187 | version "1.0.1" 188 | resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" 189 | integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== 190 | dependencies: 191 | browserify-aes "^1.0.4" 192 | browserify-des "^1.0.0" 193 | evp_bytestokey "^1.0.0" 194 | 195 | browserify-des@^1.0.0: 196 | version "1.0.2" 197 | resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" 198 | integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== 199 | dependencies: 200 | cipher-base "^1.0.1" 201 | des.js "^1.0.0" 202 | inherits "^2.0.1" 203 | safe-buffer "^5.1.2" 204 | 205 | browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: 206 | version "4.1.0" 207 | resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" 208 | integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== 209 | dependencies: 210 | bn.js "^5.0.0" 211 | randombytes "^2.0.1" 212 | 213 | browserify-sign@^4.0.0: 214 | version "4.2.1" 215 | resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" 216 | integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== 217 | dependencies: 218 | bn.js "^5.1.1" 219 | browserify-rsa "^4.0.1" 220 | create-hash "^1.2.0" 221 | create-hmac "^1.1.7" 222 | elliptic "^6.5.3" 223 | inherits "^2.0.4" 224 | parse-asn1 "^5.1.5" 225 | readable-stream "^3.6.0" 226 | safe-buffer "^5.2.0" 227 | 228 | browserify-zlib@^0.2.0: 229 | version "0.2.0" 230 | resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" 231 | integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== 232 | dependencies: 233 | pako "~1.0.5" 234 | 235 | buffer-xor@^1.0.3: 236 | version "1.0.3" 237 | resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" 238 | integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= 239 | 240 | buffer@^6.0.3: 241 | version "6.0.3" 242 | resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" 243 | integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== 244 | dependencies: 245 | base64-js "^1.3.1" 246 | ieee754 "^1.2.1" 247 | 248 | builtin-status-codes@^3.0.0: 249 | version "3.0.0" 250 | resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" 251 | integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= 252 | 253 | call-bind@^1.0.0, call-bind@^1.0.2: 254 | version "1.0.2" 255 | resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" 256 | integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== 257 | dependencies: 258 | function-bind "^1.1.1" 259 | get-intrinsic "^1.0.2" 260 | 261 | chai@^4.2.0: 262 | version "4.3.4" 263 | resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.4.tgz#b55e655b31e1eac7099be4c08c21964fce2e6c49" 264 | integrity sha512-yS5H68VYOCtN1cjfwumDSuzn/9c+yza4f3reKXlE5rUg7SFcCEy90gJvydNgOYtblyf4Zi6jIWRnXOgErta0KA== 265 | dependencies: 266 | assertion-error "^1.1.0" 267 | check-error "^1.0.2" 268 | deep-eql "^3.0.1" 269 | get-func-name "^2.0.0" 270 | pathval "^1.1.1" 271 | type-detect "^4.0.5" 272 | 273 | check-error@^1.0.2: 274 | version "1.0.2" 275 | resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" 276 | integrity sha1-V00xLt2Iu13YkS6Sht1sCu1KrII= 277 | 278 | cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: 279 | version "1.0.4" 280 | resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" 281 | integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== 282 | dependencies: 283 | inherits "^2.0.1" 284 | safe-buffer "^5.0.1" 285 | 286 | colorette@^1.2.2: 287 | version "1.2.2" 288 | resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" 289 | integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== 290 | 291 | console-browserify@^1.2.0: 292 | version "1.2.0" 293 | resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" 294 | integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== 295 | 296 | consolidate@^0.16.0: 297 | version "0.16.0" 298 | resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.16.0.tgz#a11864768930f2f19431660a65906668f5fbdc16" 299 | integrity sha512-Nhl1wzCslqXYTJVDyJCu3ODohy9OfBMB5uD2BiBTzd7w+QY0lBzafkR8y8755yMYHAaMD4NuzbAw03/xzfw+eQ== 300 | dependencies: 301 | bluebird "^3.7.2" 302 | 303 | constants-browserify@^1.0.0: 304 | version "1.0.0" 305 | resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" 306 | integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= 307 | 308 | create-ecdh@^4.0.0: 309 | version "4.0.4" 310 | resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" 311 | integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== 312 | dependencies: 313 | bn.js "^4.1.0" 314 | elliptic "^6.5.3" 315 | 316 | create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: 317 | version "1.2.0" 318 | resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" 319 | integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== 320 | dependencies: 321 | cipher-base "^1.0.1" 322 | inherits "^2.0.1" 323 | md5.js "^1.3.4" 324 | ripemd160 "^2.0.1" 325 | sha.js "^2.4.0" 326 | 327 | create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: 328 | version "1.1.7" 329 | resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" 330 | integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== 331 | dependencies: 332 | cipher-base "^1.0.3" 333 | create-hash "^1.1.0" 334 | inherits "^2.0.1" 335 | ripemd160 "^2.0.0" 336 | safe-buffer "^5.0.1" 337 | sha.js "^2.4.8" 338 | 339 | crypto-browserify@^3.12.0: 340 | version "3.12.0" 341 | resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" 342 | integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== 343 | dependencies: 344 | browserify-cipher "^1.0.0" 345 | browserify-sign "^4.0.0" 346 | create-ecdh "^4.0.0" 347 | create-hash "^1.1.0" 348 | create-hmac "^1.1.0" 349 | diffie-hellman "^5.0.0" 350 | inherits "^2.0.1" 351 | pbkdf2 "^3.0.3" 352 | public-encrypt "^4.0.0" 353 | randombytes "^2.0.0" 354 | randomfill "^1.0.3" 355 | 356 | cssesc@^3.0.0: 357 | version "3.0.0" 358 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" 359 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 360 | 361 | csstype@^2.6.8: 362 | version "2.6.17" 363 | resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.17.tgz#4cf30eb87e1d1a005d8b6510f95292413f6a1c0e" 364 | integrity sha512-u1wmTI1jJGzCJzWndZo8mk4wnPTZd1eOIYTYvuEyOQGfmDl3TrabCCfKnOC86FZwW/9djqTl933UF/cS425i9A== 365 | 366 | deep-eql@^3.0.1: 367 | version "3.0.1" 368 | resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-3.0.1.tgz#dfc9404400ad1c8fe023e7da1df1c147c4b444df" 369 | integrity sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw== 370 | dependencies: 371 | type-detect "^4.0.0" 372 | 373 | define-properties@^1.1.3: 374 | version "1.1.3" 375 | resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" 376 | integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== 377 | dependencies: 378 | object-keys "^1.0.12" 379 | 380 | des.js@^1.0.0: 381 | version "1.0.1" 382 | resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" 383 | integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== 384 | dependencies: 385 | inherits "^2.0.1" 386 | minimalistic-assert "^1.0.0" 387 | 388 | diffie-hellman@^5.0.0: 389 | version "5.0.3" 390 | resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" 391 | integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== 392 | dependencies: 393 | bn.js "^4.1.0" 394 | miller-rabin "^4.0.0" 395 | randombytes "^2.0.0" 396 | 397 | domain-browser@^4.19.0: 398 | version "4.22.0" 399 | resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-4.22.0.tgz#6ddd34220ec281f9a65d3386d267ddd35c491f9f" 400 | integrity sha512-IGBwjF7tNk3cwypFNH/7bfzBcgSCbaMOD3GsaY1AU/JRrnHnYgEM0+9kQt52iZxjNsjBtJYtao146V+f8jFZNw== 401 | 402 | elliptic@^6.5.3, elliptic@^6.5.4: 403 | version "6.5.4" 404 | resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" 405 | integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== 406 | dependencies: 407 | bn.js "^4.11.9" 408 | brorand "^1.1.0" 409 | hash.js "^1.0.0" 410 | hmac-drbg "^1.0.1" 411 | inherits "^2.0.4" 412 | minimalistic-assert "^1.0.1" 413 | minimalistic-crypto-utils "^1.0.1" 414 | 415 | emojis-list@^3.0.0: 416 | version "3.0.0" 417 | resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" 418 | integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== 419 | 420 | es-abstract@^1.18.5: 421 | version "1.18.5" 422 | resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.5.tgz#9b10de7d4c206a3581fd5b2124233e04db49ae19" 423 | integrity sha512-DDggyJLoS91CkJjgauM5c0yZMjiD1uK3KcaCeAmffGwZ+ODWzOkPN4QwRbsK5DOFf06fywmyLci3ZD8jLGhVYA== 424 | dependencies: 425 | call-bind "^1.0.2" 426 | es-to-primitive "^1.2.1" 427 | function-bind "^1.1.1" 428 | get-intrinsic "^1.1.1" 429 | has "^1.0.3" 430 | has-symbols "^1.0.2" 431 | internal-slot "^1.0.3" 432 | is-callable "^1.2.3" 433 | is-negative-zero "^2.0.1" 434 | is-regex "^1.1.3" 435 | is-string "^1.0.6" 436 | object-inspect "^1.11.0" 437 | object-keys "^1.1.1" 438 | object.assign "^4.1.2" 439 | string.prototype.trimend "^1.0.4" 440 | string.prototype.trimstart "^1.0.4" 441 | unbox-primitive "^1.0.1" 442 | 443 | es-to-primitive@^1.2.1: 444 | version "1.2.1" 445 | resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" 446 | integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== 447 | dependencies: 448 | is-callable "^1.1.4" 449 | is-date-object "^1.0.1" 450 | is-symbol "^1.0.2" 451 | 452 | es6-object-assign@^1.1.0: 453 | version "1.1.0" 454 | resolved "https://registry.yarnpkg.com/es6-object-assign/-/es6-object-assign-1.1.0.tgz#c2c3582656247c39ea107cb1e6652b6f9f24523c" 455 | integrity sha1-wsNYJlYkfDnqEHyx5mUrb58kUjw= 456 | 457 | estree-walker@^2.0.1: 458 | version "2.0.2" 459 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 460 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 461 | 462 | events@^3.3.0: 463 | version "3.3.0" 464 | resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" 465 | integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== 466 | 467 | evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: 468 | version "1.0.3" 469 | resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" 470 | integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== 471 | dependencies: 472 | md5.js "^1.3.4" 473 | safe-buffer "^5.1.1" 474 | 475 | foreach@^2.0.5: 476 | version "2.0.5" 477 | resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" 478 | integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= 479 | 480 | function-bind@^1.1.1: 481 | version "1.1.1" 482 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" 483 | integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== 484 | 485 | generic-names@^2.0.1: 486 | version "2.0.1" 487 | resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-2.0.1.tgz#f8a378ead2ccaa7a34f0317b05554832ae41b872" 488 | integrity sha512-kPCHWa1m9wGG/OwQpeweTwM/PYiQLrUIxXbt/P4Nic3LbGjCP0YwrALHW1uNLKZ0LIMg+RF+XRlj2ekT9ZlZAQ== 489 | dependencies: 490 | loader-utils "^1.1.0" 491 | 492 | get-func-name@^2.0.0: 493 | version "2.0.0" 494 | resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" 495 | integrity sha1-6td0q+5y4gQJQzoGY2YCPdaIekE= 496 | 497 | get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1: 498 | version "1.1.1" 499 | resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" 500 | integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== 501 | dependencies: 502 | function-bind "^1.1.1" 503 | has "^1.0.3" 504 | has-symbols "^1.0.1" 505 | 506 | has-bigints@^1.0.1: 507 | version "1.0.1" 508 | resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" 509 | integrity sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA== 510 | 511 | has-symbols@^1.0.1, has-symbols@^1.0.2: 512 | version "1.0.2" 513 | resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.2.tgz#165d3070c00309752a1236a479331e3ac56f1423" 514 | integrity sha512-chXa79rL/UC2KlX17jo3vRGz0azaWEx5tGqZg5pO3NUyEJVB17dMruQlzCCOfUvElghKcm5194+BCRvi2Rv/Gw== 515 | 516 | has-tostringtag@^1.0.0: 517 | version "1.0.0" 518 | resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.0.tgz#7e133818a7d394734f941e73c3d3f9291e658b25" 519 | integrity sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ== 520 | dependencies: 521 | has-symbols "^1.0.2" 522 | 523 | has@^1.0.3: 524 | version "1.0.3" 525 | resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" 526 | integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== 527 | dependencies: 528 | function-bind "^1.1.1" 529 | 530 | hash-base@^3.0.0: 531 | version "3.1.0" 532 | resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" 533 | integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== 534 | dependencies: 535 | inherits "^2.0.4" 536 | readable-stream "^3.6.0" 537 | safe-buffer "^5.2.0" 538 | 539 | hash-sum@^2.0.0: 540 | version "2.0.0" 541 | resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" 542 | integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== 543 | 544 | hash.js@^1.0.0, hash.js@^1.0.3: 545 | version "1.1.7" 546 | resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" 547 | integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== 548 | dependencies: 549 | inherits "^2.0.3" 550 | minimalistic-assert "^1.0.1" 551 | 552 | hmac-drbg@^1.0.1: 553 | version "1.0.1" 554 | resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" 555 | integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= 556 | dependencies: 557 | hash.js "^1.0.3" 558 | minimalistic-assert "^1.0.0" 559 | minimalistic-crypto-utils "^1.0.1" 560 | 561 | https-browserify@^1.0.0: 562 | version "1.0.0" 563 | resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" 564 | integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= 565 | 566 | icss-replace-symbols@^1.1.0: 567 | version "1.1.0" 568 | resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" 569 | integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= 570 | 571 | icss-utils@^5.0.0: 572 | version "5.1.0" 573 | resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" 574 | integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== 575 | 576 | ieee754@^1.2.1: 577 | version "1.2.1" 578 | resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" 579 | integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== 580 | 581 | inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.4: 582 | version "2.0.4" 583 | resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" 584 | integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== 585 | 586 | internal-slot@^1.0.3: 587 | version "1.0.3" 588 | resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.3.tgz#7347e307deeea2faac2ac6205d4bc7d34967f59c" 589 | integrity sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA== 590 | dependencies: 591 | get-intrinsic "^1.1.0" 592 | has "^1.0.3" 593 | side-channel "^1.0.4" 594 | 595 | is-arguments@^1.0.4: 596 | version "1.1.1" 597 | resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" 598 | integrity sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA== 599 | dependencies: 600 | call-bind "^1.0.2" 601 | has-tostringtag "^1.0.0" 602 | 603 | is-bigint@^1.0.1: 604 | version "1.0.3" 605 | resolved "https://registry.yarnpkg.com/is-bigint/-/is-bigint-1.0.3.tgz#fc9d9e364210480675653ddaea0518528d49a581" 606 | integrity sha512-ZU538ajmYJmzysE5yU4Y7uIrPQ2j704u+hXFiIPQExpqzzUbpe5jCPdTfmz7jXRxZdvjY3KZ3ZNenoXQovX+Dg== 607 | 608 | is-boolean-object@^1.1.0: 609 | version "1.1.2" 610 | resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719" 611 | integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA== 612 | dependencies: 613 | call-bind "^1.0.2" 614 | has-tostringtag "^1.0.0" 615 | 616 | is-callable@^1.1.4, is-callable@^1.2.3: 617 | version "1.2.4" 618 | resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" 619 | integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== 620 | 621 | is-date-object@^1.0.1: 622 | version "1.0.5" 623 | resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" 624 | integrity sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ== 625 | dependencies: 626 | has-tostringtag "^1.0.0" 627 | 628 | is-generator-function@^1.0.7: 629 | version "1.0.10" 630 | resolved "https://registry.yarnpkg.com/is-generator-function/-/is-generator-function-1.0.10.tgz#f1558baf1ac17e0deea7c0415c438351ff2b3c72" 631 | integrity sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A== 632 | dependencies: 633 | has-tostringtag "^1.0.0" 634 | 635 | is-nan@^1.2.1: 636 | version "1.3.2" 637 | resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d" 638 | integrity sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w== 639 | dependencies: 640 | call-bind "^1.0.0" 641 | define-properties "^1.1.3" 642 | 643 | is-negative-zero@^2.0.1: 644 | version "2.0.1" 645 | resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" 646 | integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== 647 | 648 | is-number-object@^1.0.4: 649 | version "1.0.6" 650 | resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.6.tgz#6a7aaf838c7f0686a50b4553f7e54a96494e89f0" 651 | integrity sha512-bEVOqiRcvo3zO1+G2lVMy+gkkEm9Yh7cDMRusKKu5ZJKPUYSJwICTKZrNKHA2EbSP0Tu0+6B/emsYNHZyn6K8g== 652 | dependencies: 653 | has-tostringtag "^1.0.0" 654 | 655 | is-regex@^1.1.3: 656 | version "1.1.4" 657 | resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.4.tgz#eef5663cd59fa4c0ae339505323df6854bb15958" 658 | integrity sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg== 659 | dependencies: 660 | call-bind "^1.0.2" 661 | has-tostringtag "^1.0.0" 662 | 663 | is-string@^1.0.5, is-string@^1.0.6: 664 | version "1.0.7" 665 | resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.7.tgz#0dd12bf2006f255bb58f695110eff7491eebc0fd" 666 | integrity sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg== 667 | dependencies: 668 | has-tostringtag "^1.0.0" 669 | 670 | is-symbol@^1.0.2, is-symbol@^1.0.3: 671 | version "1.0.4" 672 | resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.4.tgz#a6dac93b635b063ca6872236de88910a57af139c" 673 | integrity sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg== 674 | dependencies: 675 | has-symbols "^1.0.2" 676 | 677 | is-typed-array@^1.1.3, is-typed-array@^1.1.6: 678 | version "1.1.7" 679 | resolved "https://registry.yarnpkg.com/is-typed-array/-/is-typed-array-1.1.7.tgz#881ddc660b13cb8423b2090fa88c0fe37a83eb2f" 680 | integrity sha512-VxlpTBGknhQ3o7YiVjIhdLU6+oD8dPz/79vvvH4F+S/c8608UCVa9fgDpa1kZgFoUST2DCgacc70UszKgzKuvA== 681 | dependencies: 682 | available-typed-arrays "^1.0.4" 683 | call-bind "^1.0.2" 684 | es-abstract "^1.18.5" 685 | foreach "^2.0.5" 686 | has-tostringtag "^1.0.0" 687 | 688 | jquery@^3.6.0: 689 | version "3.6.0" 690 | resolved "https://registry.yarnpkg.com/jquery/-/jquery-3.6.0.tgz#c72a09f15c1bdce142f49dbf1170bdf8adac2470" 691 | integrity sha512-JVzAR/AjBvVt2BmYhxRCSYysDsPcssdmTFnzyLEts9qNwmjmu4JTAMYubEfwVOSwpQ1I1sKKFcxhZCI2buerfw== 692 | 693 | json5@^1.0.1: 694 | version "1.0.1" 695 | resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" 696 | integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== 697 | dependencies: 698 | minimist "^1.2.0" 699 | 700 | loader-utils@^1.1.0: 701 | version "1.4.0" 702 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" 703 | integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== 704 | dependencies: 705 | big.js "^5.2.2" 706 | emojis-list "^3.0.0" 707 | json5 "^1.0.1" 708 | 709 | lodash.camelcase@^4.3.0: 710 | version "4.3.0" 711 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" 712 | integrity sha1-soqmKIorn8ZRA1x3EfZathkDMaY= 713 | 714 | lru-cache@^5.1.1: 715 | version "5.1.1" 716 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 717 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 718 | dependencies: 719 | yallist "^3.0.2" 720 | 721 | magic-string@^0.25.7: 722 | version "0.25.7" 723 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" 724 | integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== 725 | dependencies: 726 | sourcemap-codec "^1.4.4" 727 | 728 | md5.js@^1.3.4: 729 | version "1.3.5" 730 | resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" 731 | integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== 732 | dependencies: 733 | hash-base "^3.0.0" 734 | inherits "^2.0.1" 735 | safe-buffer "^5.1.2" 736 | 737 | merge-source-map@^1.1.0: 738 | version "1.1.0" 739 | resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646" 740 | integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw== 741 | dependencies: 742 | source-map "^0.6.1" 743 | 744 | meteor-node-stubs@^1.0.3: 745 | version "1.1.0" 746 | resolved "https://registry.yarnpkg.com/meteor-node-stubs/-/meteor-node-stubs-1.1.0.tgz#cbb9656a37eb08ab52f577201920fe5e0137c2bb" 747 | integrity sha512-YvMQb4zcfWA82wFdRVTyxq28GO+Us7GSdtP+bTtC/mV35yipKnWo4W4665O57AmLVFnz4zR+WIZW11b4sfCtJw== 748 | dependencies: 749 | assert "^2.0.0" 750 | browserify-zlib "^0.2.0" 751 | buffer "^6.0.3" 752 | console-browserify "^1.2.0" 753 | constants-browserify "^1.0.0" 754 | crypto-browserify "^3.12.0" 755 | domain-browser "^4.19.0" 756 | elliptic "^6.5.4" 757 | events "^3.3.0" 758 | https-browserify "^1.0.0" 759 | os-browserify "^0.3.0" 760 | path-browserify "^1.0.0" 761 | process "^0.11.10" 762 | punycode "^2.1.1" 763 | querystring-es3 "^0.2.1" 764 | readable-stream "^3.6.0" 765 | stream-browserify "^3.0.0" 766 | stream-http "^3.2.0" 767 | string_decoder "^1.3.0" 768 | timers-browserify "^2.0.12" 769 | tty-browserify "0.0.1" 770 | url "^0.11.0" 771 | util "^0.12.4" 772 | vm-browserify "^1.1.2" 773 | 774 | miller-rabin@^4.0.0: 775 | version "4.0.1" 776 | resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" 777 | integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== 778 | dependencies: 779 | bn.js "^4.0.0" 780 | brorand "^1.0.1" 781 | 782 | minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: 783 | version "1.0.1" 784 | resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" 785 | integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== 786 | 787 | minimalistic-crypto-utils@^1.0.1: 788 | version "1.0.1" 789 | resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" 790 | integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= 791 | 792 | minimist@^1.2.0: 793 | version "1.2.5" 794 | resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" 795 | integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== 796 | 797 | nanoid@^3.1.23: 798 | version "3.1.23" 799 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" 800 | integrity sha512-FiB0kzdP0FFVGDKlRLEQ1BgDzU87dy5NnzjeW9YZNt+/c3+q82EQDUwniSAUxp/F0gFNI1ZhKU1FqYsMuqZVnw== 801 | 802 | object-inspect@^1.11.0, object-inspect@^1.9.0: 803 | version "1.11.0" 804 | resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.11.0.tgz#9dceb146cedd4148a0d9e51ab88d34cf509922b1" 805 | integrity sha512-jp7ikS6Sd3GxQfZJPyH3cjcbJF6GZPClgdV+EFygjFLQ5FmW/dRUnTd9PQ9k0JhoNDabWFbpF1yCdSWCC6gexg== 806 | 807 | object-is@^1.0.1: 808 | version "1.1.5" 809 | resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac" 810 | integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw== 811 | dependencies: 812 | call-bind "^1.0.2" 813 | define-properties "^1.1.3" 814 | 815 | object-keys@^1.0.12, object-keys@^1.1.1: 816 | version "1.1.1" 817 | resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" 818 | integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== 819 | 820 | object.assign@^4.1.2: 821 | version "4.1.2" 822 | resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" 823 | integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== 824 | dependencies: 825 | call-bind "^1.0.0" 826 | define-properties "^1.1.3" 827 | has-symbols "^1.0.1" 828 | object-keys "^1.1.1" 829 | 830 | os-browserify@^0.3.0: 831 | version "0.3.0" 832 | resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" 833 | integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= 834 | 835 | pako@~1.0.5: 836 | version "1.0.11" 837 | resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" 838 | integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== 839 | 840 | parse-asn1@^5.0.0, parse-asn1@^5.1.5: 841 | version "5.1.6" 842 | resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" 843 | integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== 844 | dependencies: 845 | asn1.js "^5.2.0" 846 | browserify-aes "^1.0.0" 847 | evp_bytestokey "^1.0.0" 848 | pbkdf2 "^3.0.3" 849 | safe-buffer "^5.1.1" 850 | 851 | path-browserify@^1.0.0: 852 | version "1.0.1" 853 | resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" 854 | integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== 855 | 856 | pathval@^1.1.1: 857 | version "1.1.1" 858 | resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" 859 | integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== 860 | 861 | pbkdf2@^3.0.3: 862 | version "3.1.2" 863 | resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" 864 | integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== 865 | dependencies: 866 | create-hash "^1.1.2" 867 | create-hmac "^1.1.4" 868 | ripemd160 "^2.0.1" 869 | safe-buffer "^5.0.1" 870 | sha.js "^2.4.8" 871 | 872 | postcss-modules-extract-imports@^3.0.0: 873 | version "3.0.0" 874 | resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz#cda1f047c0ae80c97dbe28c3e76a43b88025741d" 875 | integrity sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw== 876 | 877 | postcss-modules-local-by-default@^4.0.0: 878 | version "4.0.0" 879 | resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz#ebbb54fae1598eecfdf691a02b3ff3b390a5a51c" 880 | integrity sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ== 881 | dependencies: 882 | icss-utils "^5.0.0" 883 | postcss-selector-parser "^6.0.2" 884 | postcss-value-parser "^4.1.0" 885 | 886 | postcss-modules-scope@^3.0.0: 887 | version "3.0.0" 888 | resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz#9ef3151456d3bbfa120ca44898dfca6f2fa01f06" 889 | integrity sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg== 890 | dependencies: 891 | postcss-selector-parser "^6.0.4" 892 | 893 | postcss-modules-values@^4.0.0: 894 | version "4.0.0" 895 | resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" 896 | integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== 897 | dependencies: 898 | icss-utils "^5.0.0" 899 | 900 | postcss-modules@^4.0.0: 901 | version "4.2.2" 902 | resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.2.2.tgz#5e7777c5a8964ea176919d90b2e54ef891321ce5" 903 | integrity sha512-/H08MGEmaalv/OU8j6bUKi/kZr2kqGF6huAW8m9UAgOLWtpFdhA14+gPBoymtqyv+D4MLsmqaF2zvIegdCxJXg== 904 | dependencies: 905 | generic-names "^2.0.1" 906 | icss-replace-symbols "^1.1.0" 907 | lodash.camelcase "^4.3.0" 908 | postcss-modules-extract-imports "^3.0.0" 909 | postcss-modules-local-by-default "^4.0.0" 910 | postcss-modules-scope "^3.0.0" 911 | postcss-modules-values "^4.0.0" 912 | string-hash "^1.1.1" 913 | 914 | postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4: 915 | version "6.0.6" 916 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.6.tgz#2c5bba8174ac2f6981ab631a42ab0ee54af332ea" 917 | integrity sha512-9LXrvaaX3+mcv5xkg5kFwqSzSH1JIObIx51PrndZwlmznwXRfxMddDvo9gve3gVR8ZTKgoFDdWkbRFmEhT4PMg== 918 | dependencies: 919 | cssesc "^3.0.0" 920 | util-deprecate "^1.0.2" 921 | 922 | postcss-value-parser@^4.1.0: 923 | version "4.1.0" 924 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" 925 | integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== 926 | 927 | postcss@^8.1.10: 928 | version "8.3.6" 929 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" 930 | integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== 931 | dependencies: 932 | colorette "^1.2.2" 933 | nanoid "^3.1.23" 934 | source-map-js "^0.6.2" 935 | 936 | process@^0.11.10: 937 | version "0.11.10" 938 | resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" 939 | integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= 940 | 941 | public-encrypt@^4.0.0: 942 | version "4.0.3" 943 | resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" 944 | integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== 945 | dependencies: 946 | bn.js "^4.1.0" 947 | browserify-rsa "^4.0.0" 948 | create-hash "^1.1.0" 949 | parse-asn1 "^5.0.0" 950 | randombytes "^2.0.1" 951 | safe-buffer "^5.1.2" 952 | 953 | punycode@1.3.2: 954 | version "1.3.2" 955 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" 956 | integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= 957 | 958 | punycode@^2.1.1: 959 | version "2.1.1" 960 | resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" 961 | integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== 962 | 963 | querystring-es3@^0.2.1: 964 | version "0.2.1" 965 | resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" 966 | integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= 967 | 968 | querystring@0.2.0: 969 | version "0.2.0" 970 | resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" 971 | integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= 972 | 973 | randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: 974 | version "2.1.0" 975 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 976 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 977 | dependencies: 978 | safe-buffer "^5.1.0" 979 | 980 | randomfill@^1.0.3: 981 | version "1.0.4" 982 | resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" 983 | integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== 984 | dependencies: 985 | randombytes "^2.0.5" 986 | safe-buffer "^5.1.0" 987 | 988 | readable-stream@^3.5.0, readable-stream@^3.6.0: 989 | version "3.6.0" 990 | resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" 991 | integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== 992 | dependencies: 993 | inherits "^2.0.3" 994 | string_decoder "^1.1.1" 995 | util-deprecate "^1.0.1" 996 | 997 | regenerator-runtime@^0.13.4: 998 | version "0.13.9" 999 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52" 1000 | integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA== 1001 | 1002 | ripemd160@^2.0.0, ripemd160@^2.0.1: 1003 | version "2.0.2" 1004 | resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" 1005 | integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== 1006 | dependencies: 1007 | hash-base "^3.0.0" 1008 | inherits "^2.0.1" 1009 | 1010 | safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: 1011 | version "5.2.1" 1012 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 1013 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 1014 | 1015 | safer-buffer@^2.1.0: 1016 | version "2.1.2" 1017 | resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" 1018 | integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== 1019 | 1020 | setimmediate@^1.0.4: 1021 | version "1.0.5" 1022 | resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" 1023 | integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= 1024 | 1025 | sha.js@^2.4.0, sha.js@^2.4.8: 1026 | version "2.4.11" 1027 | resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" 1028 | integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== 1029 | dependencies: 1030 | inherits "^2.0.1" 1031 | safe-buffer "^5.0.1" 1032 | 1033 | side-channel@^1.0.4: 1034 | version "1.0.4" 1035 | resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" 1036 | integrity sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw== 1037 | dependencies: 1038 | call-bind "^1.0.0" 1039 | get-intrinsic "^1.0.2" 1040 | object-inspect "^1.9.0" 1041 | 1042 | source-map-js@^0.6.2: 1043 | version "0.6.2" 1044 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e" 1045 | integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug== 1046 | 1047 | source-map@^0.6.1: 1048 | version "0.6.1" 1049 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 1050 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 1051 | 1052 | sourcemap-codec@^1.4.4: 1053 | version "1.4.8" 1054 | resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" 1055 | integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== 1056 | 1057 | stream-browserify@^3.0.0: 1058 | version "3.0.0" 1059 | resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-3.0.0.tgz#22b0a2850cdf6503e73085da1fc7b7d0c2122f2f" 1060 | integrity sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA== 1061 | dependencies: 1062 | inherits "~2.0.4" 1063 | readable-stream "^3.5.0" 1064 | 1065 | stream-http@^3.2.0: 1066 | version "3.2.0" 1067 | resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-3.2.0.tgz#1872dfcf24cb15752677e40e5c3f9cc1926028b5" 1068 | integrity sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A== 1069 | dependencies: 1070 | builtin-status-codes "^3.0.0" 1071 | inherits "^2.0.4" 1072 | readable-stream "^3.6.0" 1073 | xtend "^4.0.2" 1074 | 1075 | string-hash@^1.1.1: 1076 | version "1.1.3" 1077 | resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" 1078 | integrity sha1-6Kr8CsGFW0Zmkp7X3RJ1311sgRs= 1079 | 1080 | string.prototype.trimend@^1.0.4: 1081 | version "1.0.4" 1082 | resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" 1083 | integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== 1084 | dependencies: 1085 | call-bind "^1.0.2" 1086 | define-properties "^1.1.3" 1087 | 1088 | string.prototype.trimstart@^1.0.4: 1089 | version "1.0.4" 1090 | resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" 1091 | integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== 1092 | dependencies: 1093 | call-bind "^1.0.2" 1094 | define-properties "^1.1.3" 1095 | 1096 | string_decoder@^1.1.1, string_decoder@^1.3.0: 1097 | version "1.3.0" 1098 | resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" 1099 | integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== 1100 | dependencies: 1101 | safe-buffer "~5.2.0" 1102 | 1103 | timers-browserify@^2.0.12: 1104 | version "2.0.12" 1105 | resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" 1106 | integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== 1107 | dependencies: 1108 | setimmediate "^1.0.4" 1109 | 1110 | to-fast-properties@^2.0.0: 1111 | version "2.0.0" 1112 | resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" 1113 | integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= 1114 | 1115 | tty-browserify@0.0.1: 1116 | version "0.0.1" 1117 | resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.1.tgz#3f05251ee17904dfd0677546670db9651682b811" 1118 | integrity sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw== 1119 | 1120 | type-detect@^4.0.0, type-detect@^4.0.5: 1121 | version "4.0.8" 1122 | resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" 1123 | integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== 1124 | 1125 | unbox-primitive@^1.0.1: 1126 | version "1.0.1" 1127 | resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471" 1128 | integrity sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw== 1129 | dependencies: 1130 | function-bind "^1.1.1" 1131 | has-bigints "^1.0.1" 1132 | has-symbols "^1.0.2" 1133 | which-boxed-primitive "^1.0.2" 1134 | 1135 | url@^0.11.0: 1136 | version "0.11.0" 1137 | resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" 1138 | integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= 1139 | dependencies: 1140 | punycode "1.3.2" 1141 | querystring "0.2.0" 1142 | 1143 | util-deprecate@^1.0.1, util-deprecate@^1.0.2: 1144 | version "1.0.2" 1145 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 1146 | integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= 1147 | 1148 | util@^0.12.0, util@^0.12.4: 1149 | version "0.12.4" 1150 | resolved "https://registry.yarnpkg.com/util/-/util-0.12.4.tgz#66121a31420df8f01ca0c464be15dfa1d1850253" 1151 | integrity sha512-bxZ9qtSlGUWSOy9Qa9Xgk11kSslpuZwaxCg4sNIDj6FLucDab2JxnHwyNTCpHMtK1MjoQiWQ6DiUMZYbSrO+Sw== 1152 | dependencies: 1153 | inherits "^2.0.3" 1154 | is-arguments "^1.0.4" 1155 | is-generator-function "^1.0.7" 1156 | is-typed-array "^1.1.3" 1157 | safe-buffer "^5.1.2" 1158 | which-typed-array "^1.1.2" 1159 | 1160 | vm-browserify@^1.1.2: 1161 | version "1.1.2" 1162 | resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" 1163 | integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== 1164 | 1165 | vue@^3.1.0: 1166 | version "3.1.5" 1167 | resolved "https://registry.yarnpkg.com/vue/-/vue-3.1.5.tgz#12879b11d0685ee4478c8869551799630a52f9fe" 1168 | integrity sha512-Ho7HNb1nfDoO+HVb6qYZgeaobt1XbY6KXFe4HGs1b9X6RhkWG/113n4/SrtM1LUclM6OrP/Se5aPHHvAPG1iVQ== 1169 | dependencies: 1170 | "@vue/compiler-dom" "3.1.5" 1171 | "@vue/runtime-dom" "3.1.5" 1172 | "@vue/shared" "3.1.5" 1173 | 1174 | which-boxed-primitive@^1.0.2: 1175 | version "1.0.2" 1176 | resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6" 1177 | integrity sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg== 1178 | dependencies: 1179 | is-bigint "^1.0.1" 1180 | is-boolean-object "^1.1.0" 1181 | is-number-object "^1.0.4" 1182 | is-string "^1.0.5" 1183 | is-symbol "^1.0.3" 1184 | 1185 | which-typed-array@^1.1.2: 1186 | version "1.1.6" 1187 | resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.6.tgz#f3713d801da0720a7f26f50c596980a9f5c8b383" 1188 | integrity sha512-DdY984dGD5sQ7Tf+x1CkXzdg85b9uEel6nr4UkFg1LoE9OXv3uRuZhe5CoWdawhGACeFpEZXH8fFLQnDhbpm/Q== 1189 | dependencies: 1190 | available-typed-arrays "^1.0.4" 1191 | call-bind "^1.0.2" 1192 | es-abstract "^1.18.5" 1193 | foreach "^2.0.5" 1194 | has-tostringtag "^1.0.0" 1195 | is-typed-array "^1.1.6" 1196 | 1197 | xtend@^4.0.2: 1198 | version "4.0.2" 1199 | resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" 1200 | integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== 1201 | 1202 | yallist@^3.0.2: 1203 | version "3.1.1" 1204 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 1205 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 1206 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "meteor-vue3", 3 | "version": "0.0.0", 4 | "private": true, 5 | "scripts": { 6 | "release": "cd packages/vue3 && PUBLISHING_METEOR_VUE=true meteor publish" 7 | }, 8 | "devDependencies": { 9 | "@types/meteor": "^1.4.67", 10 | "@vue/compiler-sfc": "^3.1.5", 11 | "@typescript-eslint/eslint-plugin": "^4.16.1", 12 | "eslint": "^7.21.0", 13 | "eslint-config-standard-with-typescript": "^20.0.0", 14 | "eslint-plugin-import": "^2.22.1", 15 | "eslint-plugin-node": "^11.1.0", 16 | "eslint-plugin-promise": "^4.3.1", 17 | "eslint-plugin-standard": "^5.0.0", 18 | "typescript": "^4.2.3", 19 | "vue": "^3.2.0" 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /packages/vue3/.versions: -------------------------------------------------------------------------------- 1 | babel-compiler@7.7.0 2 | babel-runtime@1.5.0 3 | caching-compiler@1.2.2 4 | dynamic-import@0.7.1 5 | ecmascript@0.15.3 6 | ecmascript-runtime@0.7.0 7 | ecmascript-runtime-client@0.11.1 8 | ecmascript-runtime-server@0.10.1 9 | fetch@0.1.1 10 | inter-process-messaging@0.1.1 11 | meteor@1.9.3 12 | modern-browsers@0.1.5 13 | modules@0.16.0 14 | modules-runtime@0.12.0 15 | promise@0.12.0 16 | random@1.2.0 17 | react-fast-refresh@0.1.1 18 | tmeasday:check-npm-versions@1.0.2 19 | typescript@4.3.5 20 | vuejs:vue3@0.0.1 21 | -------------------------------------------------------------------------------- /packages/vue3/README.md: -------------------------------------------------------------------------------- 1 | # vuejs:vue3 2 | 3 | ## Installation 4 | 5 | ```sh 6 | meteor add vuejs:vue3 7 | ``` 8 | 9 | ## Basic usage 10 | 11 | Start a subscription (with static parameters): 12 | 13 | ```js 14 | import { subscribe } from 'meteor/vuejs:vue3' 15 | 16 | export default { 17 | setup () { 18 | const { ready, stop } = subscribe('links.all' /*, 'some', 'params', 'here' */) 19 | 20 | watch(ready, value => { 21 | console.log('loading:', !value) 22 | }) 23 | } 24 | } 25 | ``` 26 | 27 | Star a subscription (with reactive parameters): 28 | 29 | ```js 30 | import { ref } from 'vue' 31 | import { autoSubscribe } from 'meteor/vuejs:vue3' 32 | 33 | export default { 34 | setup () { 35 | const filter = ref('meow') 36 | 37 | autoSubscribe(() => ['links.some', filter.value]) 38 | } 39 | } 40 | ``` 41 | 42 | Use Tracker: 43 | 44 | ```js 45 | import { autorun } from 'meteor/vuejs:vue3' 46 | // Import some collection 47 | import { Links } from '/imports/api/links/links.js' 48 | 49 | export default { 50 | setup () { 51 | const { result: links, stop } = autorun(() => Links.find({})) 52 | 53 | return { 54 | links, 55 | } 56 | } 57 | } 58 | ``` 59 | 60 | If you don't plan on manually controlling the `autorun`, you can use `autoResult` instead which only returns the result: 61 | 62 | ```js 63 | import { autoResult } from 'meteor/vuejs:vue3' 64 | // Import some collection 65 | import { Links } from '/imports/api/links/links.js' 66 | 67 | export default { 68 | setup () { 69 | const links = autoResult(() => Links.find({})) 70 | 71 | return { 72 | links, 73 | } 74 | } 75 | } 76 | ``` 77 | 78 | Full example: 79 | 80 | ```vue 81 | 104 | 105 | 123 | ``` 124 | -------------------------------------------------------------------------------- /packages/vue3/package.js: -------------------------------------------------------------------------------- 1 | Package.describe({ 2 | name: 'vuejs:vue3', 3 | version: '0.0.1', 4 | summary: 'Vue 3 components', 5 | git: 'https://github.com/meteor-vue/meteor-vue3', 6 | documentation: 'README.md', 7 | }) 8 | 9 | Package.registerBuildPlugin({ 10 | name: 'vue3', 11 | use: [ 12 | 'ecmascript@0.15.2', 13 | 'caching-compiler@1.2.2', 14 | 'babel-compiler@7.6.2', 15 | 'tmeasday:check-npm-versions@1.0.2', 16 | ], 17 | sources: [ 18 | 'src/build/index.js', 19 | ], 20 | npmDependencies: { 21 | chalk: '4.1.2', 22 | 'hash-sum': '2.0.0', 23 | 'source-map': '0.7.3', 24 | }, 25 | }) 26 | 27 | Npm.depends({ 28 | 'launch-editor-middleware': '2.2.1', 29 | }) 30 | 31 | Package.onUse(function (api) { 32 | api.versionsFrom('2.3.4') 33 | api.use('isobuild:compiler-plugin@1.0.0') 34 | api.use('typescript') 35 | api.mainModule('src/index.ts') 36 | if (process.env.NODE_ENV !== 'production') { 37 | api.addFiles([ 38 | 'src/dev-server.ts', 39 | ], 'server') 40 | } 41 | }) 42 | -------------------------------------------------------------------------------- /packages/vue3/src/build/compiler.js: -------------------------------------------------------------------------------- 1 | import { parse, compileScript, compileTemplate, compileStyleAsync } from '@vue/compiler-sfc' 2 | import hash from 'hash-sum' 3 | import { genHotReloadCode } from './hmr' 4 | import path from 'path' 5 | import { appendSourceMaps, combineSourceMaps } from './source-map' 6 | import { formatError } from './error' 7 | 8 | export class VueCompiler extends MultiFileCachingCompiler { 9 | constructor () { 10 | super({ 11 | compilerName: 'vue3-components', 12 | defaultCacheSize: 1024 * 1024 * 10, 13 | }) 14 | } 15 | 16 | getCacheKey (inputFile) { 17 | return [ 18 | inputFile.getSourceHash(), 19 | inputFile.getPathInPackage(), 20 | ] 21 | } 22 | 23 | async compileOneFile (inputFile) { 24 | const contents = inputFile.getContentsAsString() 25 | const filename = inputFile.getPathInPackage() 26 | const { errors, descriptor } = parse(contents, { 27 | filename, 28 | }) 29 | if (errors.length) { 30 | for (const error of errors) { 31 | console.error(formatError(error, contents, filename)) 32 | } 33 | throw new Error(`Parsing failed for ${inputFile.getDisplayPath()} (${errors.length} error(s))`) 34 | } 35 | 36 | const compileResult = { 37 | source: '', 38 | sourceMap: null, 39 | styles: [], 40 | } 41 | const referencedImportPaths = [] 42 | 43 | const isProd = process.env.NODE_ENV === 'production' 44 | const hasScoped = descriptor.styles.some((s) => s.scoped) 45 | const scopeId = hash(filename) 46 | 47 | if (descriptor.script || descriptor.scriptSetup) { 48 | const scriptResult = compileScript(descriptor, { 49 | id: scopeId, 50 | isProd, 51 | }) 52 | compileResult.source += scriptResult.content.replace(/export default/, 'const __script__ = ') 53 | compileResult.sourceMap = scriptResult.map 54 | } 55 | 56 | if (descriptor.template) { 57 | const templateResult = compileTemplate({ 58 | id: scopeId, 59 | filename, 60 | source: descriptor.template.content, 61 | scoped: hasScoped, 62 | isProd, 63 | inMap: descriptor.template.map, 64 | compilerOptions: { 65 | scopeId: hasScoped ? `data-v-${scopeId}` : undefined, 66 | }, 67 | }) 68 | if (templateResult.errors && templateResult.errors.length) { 69 | for (const error of templateResult.errors) { 70 | console.error(formatError(error, contents, filename)) 71 | } 72 | throw new Error(`Compiling template failed for ${inputFile.getDisplayPath()} (${templateResult.errors.length} error(s))`) 73 | } 74 | if (!compileResult.source) { 75 | compileResult.source = 'const __script__ = {};' 76 | } else { 77 | compileResult.source += '\n' 78 | } 79 | const lines = compileResult.source.split('\n').length 80 | compileResult.source += templateResult.code 81 | .replace(/export function render/, '__script__.render = function') 82 | .replace(/export const render/, '__script__.render') 83 | 84 | if (templateResult.map) { 85 | if (compileResult.sourceMap) { 86 | compileResult.sourceMap = await appendSourceMaps(templateResult.map, compileResult.sourceMap, lines - 1) 87 | } else { 88 | compileResult.sourceMap = templateResult.map 89 | } 90 | } 91 | } 92 | 93 | // Scope id 94 | if (hasScoped) { 95 | compileResult.source += `\n__script__.__scopeId = 'data-v-${scopeId}'` 96 | } 97 | 98 | // HMR 99 | if (process.env.NODE_ENV !== 'production' && inputFile.hmrAvailable()) { 100 | compileResult.source += genHotReloadCode(scopeId) 101 | } 102 | 103 | // File (devtools) 104 | if (process.env.NODE_ENV !== 'production') { 105 | compileResult.source += `\n__script__.__file = ${JSON.stringify(path.resolve(process.cwd(), filename))}` 106 | } 107 | 108 | // Default export 109 | compileResult.source += '\nexport default __script__' 110 | 111 | const babelOptions = Babel.getDefaultOptions() 112 | babelOptions.babelrc = true 113 | babelOptions.sourceMaps = true 114 | babelOptions.filename = babelOptions.sourceFileName = filename 115 | const transpiled = Babel.compile(compileResult.source, babelOptions, { 116 | cacheDirectory: this._diskCache, 117 | }) 118 | compileResult.source = transpiled.code 119 | if (transpiled.map && compileResult.sourceMap) { 120 | compileResult.sourceMap = await combineSourceMaps(transpiled.map, compileResult.sourceMap) 121 | } 122 | 123 | for (const style of descriptor.styles) { 124 | const styleResult = await compileStyleAsync({ 125 | id: scopeId, 126 | filename, 127 | source: style.content, 128 | scoped: style.scoped, 129 | isProd, 130 | inMap: style.map, 131 | }) 132 | 133 | compileResult.styles.push({ 134 | source: styleResult.code, 135 | sourceMap: styleResult.map, 136 | }) 137 | } 138 | 139 | return { 140 | compileResult, 141 | referencedImportPaths, 142 | } 143 | } 144 | 145 | addCompileResult (inputFile, result) { 146 | if (result.source) { 147 | inputFile.addJavaScript({ 148 | path: inputFile.getPathInPackage() + '.js', 149 | sourcePath: inputFile.getPathInPackage(), 150 | data: result.source, 151 | sourceMap: result.sourceMap, 152 | }) 153 | } 154 | 155 | for (const style of result.styles) { 156 | inputFile.addStylesheet({ 157 | path: inputFile.getPathInPackage(), 158 | sourcePath: inputFile.getPathInPackage(), 159 | data: style.source, 160 | sourceMap: style.sourceMap, 161 | lazy: false, 162 | }) 163 | } 164 | } 165 | 166 | compileResultSize (result) { 167 | const styleSize = result.styles.reduce((total, style) => total + style.source.length + (style.sourceMap ? style.sourceMap.length : 0), 0) 168 | return result.source.length + (result.sourceMap ? result.sourceMap.length : 0) + styleSize 169 | } 170 | } 171 | -------------------------------------------------------------------------------- /packages/vue3/src/build/error.js: -------------------------------------------------------------------------------- 1 | import { generateCodeFrame } from '@vue/compiler-sfc' 2 | import chalk from 'chalk' 3 | 4 | export function formatError (err, source, file) { 5 | const loc = err.loc 6 | if (!loc) { 7 | return 8 | } 9 | const locString = `:${loc.start.line}:${loc.start.column}` 10 | const filePath = chalk.gray(`at ${file}${locString}`) 11 | const codeframe = generateCodeFrame(source, loc.start.offset, loc.end.offset) 12 | return `\n${chalk.red( 13 | `VueCompilerError: ${err.message}`, 14 | )}\n${filePath}\n${chalk.yellow(codeframe)}\n` 15 | } 16 | -------------------------------------------------------------------------------- /packages/vue3/src/build/hmr.js: -------------------------------------------------------------------------------- 1 | // __VUE_HMR_RUNTIME__ is injected to global scope by @vue/runtime-core 2 | 3 | export function genHotReloadCode (id) { 4 | return ` 5 | /* hot reload */ 6 | if (module.hot) { 7 | __script__.__hmrId = "${id}" 8 | const api = __VUE_HMR_RUNTIME__ 9 | module.hot.accept() 10 | if (!api.createRecord('${id}', __script__)) { 11 | api.reload('${id}', __script__) 12 | } 13 | } 14 | ` 15 | } 16 | 17 | // @TODO Meteor doesn't support specific HMR requests 18 | 19 | // function genTemplateHotReloadCode (id, request) { 20 | // return ` 21 | // module.hot.accept(${request}, () => { 22 | // api.rerender('${id}', render) 23 | // }) 24 | // ` 25 | // } 26 | -------------------------------------------------------------------------------- /packages/vue3/src/build/index.js: -------------------------------------------------------------------------------- 1 | import { checkNpmVersions } from 'meteor/tmeasday:check-npm-versions' 2 | 3 | checkNpmVersions({ 4 | vue: '^3.1.0', 5 | '@vue/compiler-sfc': '^3.1.0', 6 | }, 'vuejs:vue3') 7 | 8 | if (process.env.PUBLISHING_METEOR_VUE !== 'true') { 9 | const { VueCompiler } = require('./compiler') 10 | 11 | Plugin.registerCompiler({ 12 | extensions: ['vue'], 13 | filenames: ['.vueignore'], 14 | }, () => new VueCompiler()) 15 | } 16 | -------------------------------------------------------------------------------- /packages/vue3/src/build/source-map.js: -------------------------------------------------------------------------------- 1 | // Forked from https://github.com/meteor-svelte/meteor-svelte/blob/2ecd24c50ee98629c0502cf1c28562505a0b5afe/SvelteCompiler.js#L192 2 | 3 | import { SourceMapGenerator, SourceMapConsumer } from 'source-map' 4 | 5 | export async function combineSourceMaps (babelMap, vueMap) { 6 | const result = new SourceMapGenerator() 7 | 8 | const babelConsumer = await new SourceMapConsumer(babelMap) 9 | const vueConsumer = await new SourceMapConsumer(vueMap) 10 | 11 | babelConsumer.eachMapping(mapping => { 12 | // Ignore mappings that don't have a source 13 | if (!mapping.source) { 14 | return 15 | } 16 | 17 | const position = vueConsumer.originalPositionFor({ 18 | line: mapping.originalLine, 19 | column: mapping.originalColumn, 20 | }) 21 | 22 | // Ignore mappings that don't map to the original HTML 23 | if (!position.source) { 24 | return 25 | } 26 | 27 | result.addMapping({ 28 | source: position.source, 29 | original: { 30 | line: position.line, 31 | column: position.column, 32 | }, 33 | generated: { 34 | line: mapping.generatedLine, 35 | column: mapping.generatedColumn, 36 | }, 37 | }) 38 | }) 39 | 40 | // Only one file 41 | result.setSourceContent( 42 | vueMap.sources[0], 43 | vueMap.sourcesContent[0], 44 | ) 45 | 46 | babelConsumer.destroy() 47 | vueConsumer.destroy() 48 | 49 | return result.toJSON() 50 | } 51 | 52 | export async function appendSourceMaps (additionalMap, initialMap, lineOffset) { 53 | const initialConsumer = await new SourceMapConsumer(initialMap) 54 | const additionalConsumer = await new SourceMapConsumer(additionalMap) 55 | 56 | const result = SourceMapGenerator.fromSourceMap(initialConsumer) 57 | 58 | additionalConsumer.eachMapping(mapping => { 59 | // Ignore mappings that don't have a source 60 | if (!mapping.source) { 61 | return 62 | } 63 | 64 | result.addMapping({ 65 | source: mapping.source, 66 | original: { 67 | line: mapping.originalLine, 68 | column: mapping.originalColumn, 69 | }, 70 | generated: { 71 | line: mapping.generatedLine + lineOffset, 72 | column: mapping.generatedColumn, 73 | }, 74 | }) 75 | }) 76 | 77 | // Only one file 78 | result.setSourceContent( 79 | initialMap.sources[0], 80 | initialMap.sourcesContent[0], 81 | ) 82 | 83 | initialConsumer.destroy() 84 | additionalConsumer.destroy() 85 | 86 | return result.toJSON() 87 | } 88 | -------------------------------------------------------------------------------- /packages/vue3/src/dev-server.ts: -------------------------------------------------------------------------------- 1 | import { WebApp } from 'meteor/webapp' 2 | import launchMiddleware from 'launch-editor-middleware' 3 | 4 | WebApp.connectHandlers.use('/__open-in-editor', launchMiddleware()) 5 | -------------------------------------------------------------------------------- /packages/vue3/src/index.ts: -------------------------------------------------------------------------------- 1 | import { Tracker } from 'meteor/tracker' 2 | import { Meteor } from 'meteor/meteor' 3 | import { computed, ComputedRef, onUnmounted, ref, watch, watchEffect } from 'vue' 4 | 5 | export interface AutorunEffect { 6 | result: ComputedRef 7 | stop: () => void 8 | } 9 | 10 | export function autorun (callback: () => TResult): AutorunEffect { 11 | const result = ref() 12 | const stop = watchEffect((onInvalidate) => { 13 | const computation = Tracker.autorun(() => { 14 | let value: any = callback() 15 | if (value != null && typeof value.fetch === 'function') { 16 | value = value.fetch() 17 | } 18 | result.value = value 19 | }) 20 | onInvalidate(() => { 21 | computation.stop() 22 | }) 23 | }) 24 | return { 25 | result: computed(() => result.value as TResult), 26 | stop, 27 | } 28 | } 29 | 30 | export function autoResult (callback: () => TResult): ComputedRef { 31 | return autorun(callback).result 32 | } 33 | 34 | export interface ReactiveMeteorSubscription { 35 | stop: () => void 36 | ready: ComputedRef 37 | } 38 | 39 | export function subscribe (name: string, ...args: any[]): ReactiveMeteorSubscription { 40 | const sub = Meteor.subscribe(name, ...args) 41 | const ready = autorun(() => sub.ready()) 42 | 43 | function stop (): void { 44 | ready.stop() 45 | sub.stop() 46 | } 47 | 48 | onUnmounted(() => { 49 | stop() 50 | }) 51 | 52 | return { 53 | stop, 54 | ready: ready.result, 55 | } 56 | } 57 | 58 | export function autoSubscribe (callback: () => [name: string, ...args: any[]]): ReactiveMeteorSubscription { 59 | const ready = ref(false) 60 | const stop = watch(callback, (value, oldValue, onInvalidate) => { 61 | const sub = Meteor.subscribe(...value) 62 | 63 | const computation = Tracker.autorun(() => { 64 | ready.value = sub.ready() 65 | }) 66 | 67 | onInvalidate(() => { 68 | sub.stop() 69 | computation.stop() 70 | }) 71 | }, { 72 | immediate: true, 73 | deep: true, 74 | }) 75 | 76 | return { 77 | stop, 78 | ready: computed(() => ready.value), 79 | } 80 | } 81 | -------------------------------------------------------------------------------- /packages/vue3/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | /* Basic Options */ 4 | "target": "es2018", 5 | "module": "esNext", 6 | "lib": ["esnext", "dom"], 7 | "allowJs": true, 8 | "checkJs": false, 9 | "jsx": "preserve", 10 | "noEmit": true, 11 | 12 | /* Strict Type-Checking Options */ 13 | "strict": true, 14 | "noImplicitAny": true, 15 | "strictNullChecks": true, 16 | 17 | /* Additional Checks */ 18 | "noUnusedLocals": true, 19 | "noUnusedParameters": false, 20 | "noImplicitReturns": false, 21 | "noFallthroughCasesInSwitch": false, 22 | 23 | /* Module Resolution Options */ 24 | "baseUrl": ".", 25 | "paths": { 26 | /* Support absolute /imports/* with a leading '/' */ 27 | "/*": ["*"] 28 | }, 29 | "moduleResolution": "node", 30 | "resolveJsonModule": true, 31 | "types": ["node"], 32 | "esModuleInterop": true, 33 | "preserveSymlinks": true 34 | }, 35 | "include": [ 36 | "src/**/*.ts" 37 | ] 38 | } 39 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "strictNullChecks": true 4 | }, 5 | "include": [ 6 | "packages/*/src/**/*.ts" 7 | ], 8 | "exclude": [ 9 | ".meteor/**" 10 | ] 11 | } 12 | --------------------------------------------------------------------------------