diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 9be7790..5e8bbeb 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,6 +1,6 @@ # This workflow will run tests using node and then publish a package to GitHub Packages when a release is created # For more information see: https://help.github.com/actions/language-and-framework-guides/publishing-nodejs-packages -# Fork from: https://github.com/actions/starter-workflows/blob/master/ci/npm-publish.yml +# Fork from: https://github.com/actions/starter-workflows/blob/main/ci/npm-publish.yml name: Publish diff --git a/CHANGELOG.md b/CHANGELOG.md index e25da20..a38d12d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,17 @@ All notable changes to this project will be documented in this file. +### v0.2.0 (2022-03-09) + +**Feature** + +- New creator function `createMongoDBDataAPI` + +**Fix** + +- [#3 Adjust typescript generics](https://github.com/surmon-china/mongodb-data-api/pull/3) +- [#4 Disable parameter inference](https://github.com/surmon-china/mongodb-data-api/pull/4) + ### v0.1.0 (2022-01-31) - Implements Beta API diff --git a/README.md b/README.md index 298ab67..60718f8 100644 --- a/README.md +++ b/README.md @@ -10,9 +10,9 @@   [![Test Codecov](https://img.shields.io/codecov/c/github/surmon-china/mongodb-data-api?style=for-the-badge)](https://codecov.io/gh/surmon-china/mongodb-data-api)   -[![GitHub license](https://img.shields.io/github/license/surmon-china/mongodb-data-api.svg?style=for-the-badge)](https://github.com/surmon-china/mongodb-data-api/blob/master/LICENSE) +[![GitHub license](https://img.shields.io/github/license/surmon-china/mongodb-data-api.svg?style=for-the-badge)](/LICENSE) -> MongoDB Atlas [Data API](https://docs.atlas.mongodb.com/api/data-api/) SDK for Node.js. +MongoDB Atlas [Data API](https://docs.atlas.mongodb.com/api/data-api/) SDK for Node.js. --- @@ -33,22 +33,22 @@ yarn add mongodb-data-api #### Init ```ts -import { MongoDBDataAPI, Region } from 'mongodb-data-api' +import { createMongoDBDataAPI, Region } from 'mongodb-data-api' // init by URL Endpoint -const api = new MongoDBDataAPI({ +const api = createMongoDBDataAPI({ apiKey: '', urlEndpoint: 'https://data.mongodb-api.com/app//endpoint/data/beta' }) // or init by app ID -const api = new MongoDBDataAPI({ +const api = createMongoDBDataAPI({ apiKey: '', appId: '' }) // specific region of app -const api = new MongoDBDataAPI({ +const api = createMongoDBDataAPI({ apiKey: '', appId: '', region: Region.Virginia @@ -126,27 +126,30 @@ api #### Method chaining ```ts -// api.$cluster +// select cluster const clusterA = api.$cluster('a') - -// api.$cluster.$database +// select database const databaseB = clusterA.$database('b') -const databaseC = clusterA.$database('c') - -// api.$cluster.$database.$collection -const bItemCollection = databaseB.$collection('item') -const cItemCollection = databaseC.$collection('item') - -// actions -bItemCollection.findOne({ filter: {/*...*/} }) -cItemCollection.insertOne({ document: {/*...*/} }) +// select collection +const collectionC = databaseB.$collection('c') +// data actions +const data = await collectionC.findOne({ + filter: { + /*...*/ + } +}) +const result = await collectionC.insertOne({ + document: { + /*...*/ + } +}) // ------------- // chaining is equivalent to the api call -api.$cluster('a').$database('b').$collection('c').findOne({ filter: {} }) +api.$cluster('a').$database('b').$collection('c').findOne({ filter: {} }) // the same as -api.findOne({ +api.findOne({ dataSource: 'a', database: 'b', collection: 'c', @@ -167,6 +170,28 @@ api.$$action('findOne', { }) ``` +#### Original Class + +You can use the original Class to implement some special requirements. + +```ts +import { MongoDBDataAPI } from 'mongodb-data-api' + +const customerCollection = new MongoDBDataAPI( + { + apiKey: '', + appId: '' + }, + { + dataSource: '', + database: '', + collection: '' + } +) + +const customer = await customerCollection.findOne({ ... }) +``` + ### Development ```bash @@ -185,8 +210,8 @@ yarn build ### Changelog -Detailed changes for each release are documented in the [release notes](https://github.com/surmon-china/mongodb-data-api/blob/master/CHANGELOG.md). +Detailed changes for each release are documented in the [release notes](/CHANGELOG.md). ### License -[MIT](https://github.com/surmon-china/mongodb-data-api/blob/master/LICENSE) +[MIT](/LICENSE) diff --git a/libundler.config.js b/libundler.config.ts similarity index 60% rename from libundler.config.js rename to libundler.config.ts index 021812e..51eddbc 100644 --- a/libundler.config.js +++ b/libundler.config.ts @@ -1,11 +1,12 @@ -/** @type {import('@surmon-china/libundler/lib/interface').LibundlerConfigObject} */ -module.exports = { +import { defineConfig } from '@surmon-china/libundler' + +export default defineConfig({ libName: 'MongoDBDataAPI', outFileName: 'mongodb-data-api', targets: ['cjs', 'esm'], entry: './src/index.ts', outDir: './dist', external: ['axios', 'mongodb'], - minimize: false, + terser: false, sourcemap: false -} +}) diff --git a/package.json b/package.json index fe16934..58ab5b2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "mongodb-data-api", - "version": "0.1.0", + "version": "0.2.0", "description": "MongoDB atlas data API SDK for Node.js", "keywords": [ "MongoDB data API", @@ -24,7 +24,9 @@ "scripts": { "lint": "eslint --ext .ts src/**", "format": "prettier --write --parser typescript \"src/**/*.ts\"", - "test": "jest", + "test": "npm run test:type && npm run test:unit", + "test:unit": "jest", + "test:type": "tsc -p ./tests-dts/tsconfig.json && tsc -p ./tests-dts/tsconfig.build.json", "build": "libundler", "rebirth": "npm run lint && npm run test && npm run build", "release": ". ./scripts/release.sh" @@ -34,7 +36,7 @@ "mongodb": "^4.0.0" }, "devDependencies": { - "@surmon-china/libundler": "^1.1.1", + "@surmon-china/libundler": "^2.2.0", "@types/jest": "^27.4.0", "@typescript-eslint/eslint-plugin": "^5.9.1", "@typescript-eslint/parser": "^5.9.1", diff --git a/src/index.ts b/src/index.ts index 7b37215..4eead8a 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,5 +1,11 @@ import _axios, { AxiosInstance, AxiosRequestConfig } from 'axios' -import type { Filter, Projection, Sort, UpdateFilter, Document } from 'mongodb' +import type { Filter, FindOptions, Sort, UpdateFilter, Document } from 'mongodb' + +// https://github.com/surmon-china/mongodb-data-api/pull/3/files @maxfi +type Projection = FindOptions['projection'] + +// https://github.com/surmon-china/mongodb-data-api/pull/4/files @maxfi +type NoInfer = [A][A extends any ? 0 : never] type AnyKeys = { [P in keyof T]?: T[P] | any } type Without = { [P in Exclude]?: never } @@ -59,7 +65,7 @@ interface PackEndpointConfig extends BaseConfig { export type Config = XOR -export class MongoDBDataAPI { +export class MongoDBDataAPI { #config: Config #baseParams: BaseParams #axios: AxiosInstance @@ -84,11 +90,11 @@ export class MongoDBDataAPI { ) } - /** Select a collection. */ - public $collection(collection: string) { - return this.#newAPI({ collection }) as Omit< - MongoDBDataAPI, - '$cluster' | '$database' | '$collection' + /** Select a cluster. */ + public $cluster(clusterName: string) { + return this.#newAPI({ dataSource: clusterName }) as Omit< + MongoDBDataAPI, + '$cluster' | '$collection' > } @@ -100,11 +106,11 @@ export class MongoDBDataAPI { > } - /** Select a cluster. */ - public $cluster(clusterName: string) { - return this.#newAPI({ dataSource: clusterName }) as Omit< - MongoDBDataAPI, - '$cluster' | '$collection' + /** Select a collection. */ + public $collection(collection: string) { + return this.#newAPI({ collection }) as Omit< + MongoDBDataAPI, + '$cluster' | '$database' | '$collection' > } @@ -112,7 +118,7 @@ export class MongoDBDataAPI { * Execute a API action. * @link https://docs.atlas.mongodb.com/api/data-api-resources/ */ - public $$action( + public $$action( name: string, params: BaseParams = {}, axiosConfig?: AxiosRequestConfig @@ -156,8 +162,11 @@ export class MongoDBDataAPI { * Find a Single Document. * @link https://docs.atlas.mongodb.com/api/data-api-resources/#find-a-single-document */ - public findOne( - params?: ExtendBaseParams<{ filter?: Filter; projection?: Projection }> + public findOne>( + params?: ExtendBaseParams<{ + filter?: Filter + projection?: Projection + }> ) { return this.$$action<{ document: D | null }>('findOne', params) } @@ -166,10 +175,10 @@ export class MongoDBDataAPI { * Find Multiple Documents. * @link https://docs.atlas.mongodb.com/api/data-api-resources/#find-multiple-documents */ - public find( + public find>( params?: ExtendBaseParams<{ - filter?: Filter - projection?: Projection + filter?: Filter + projection?: Projection sort?: Sort limit?: number skip?: number @@ -182,8 +191,8 @@ export class MongoDBDataAPI { * Insert a Single Document. * @link https://docs.atlas.mongodb.com/api/data-api-resources/#insert-a-single-document */ - public insertOne( - params: ExtendBaseParams<{ document: AnyKeys | Document }> + public insertOne>( + params: ExtendBaseParams<{ document: AnyKeys | Document }> ) { return this.$$action<{ insertedId: string }>('insertOne', params) } @@ -192,8 +201,8 @@ export class MongoDBDataAPI { * Insert Multiple Documents. * @link https://docs.atlas.mongodb.com/api/data-api-resources/#insert-multiple-documents */ - public insertMany( - params: ExtendBaseParams<{ documents: Array | Document> }> + public insertMany>( + params: ExtendBaseParams<{ documents: Array | Document> }> ) { return this.$$action<{ insertedIds: Array }>('insertMany', params) } @@ -202,10 +211,10 @@ export class MongoDBDataAPI { * Update a Single Document. * @link https://docs.atlas.mongodb.com/api/data-api-resources/#update-a-single-document */ - public updateOne( + public updateOne>( params: ExtendBaseParams<{ - filter: Filter - update: UpdateFilter + filter: Filter + update: UpdateFilter upsert?: boolean }> ) { @@ -220,10 +229,10 @@ export class MongoDBDataAPI { * Update Multiple Documents. * @link https://docs.atlas.mongodb.com/api/data-api-resources/#update-multiple-documents */ - public updateMany( + public updateMany>( params: ExtendBaseParams<{ - filter: Filter - update: UpdateFilter + filter: Filter + update: UpdateFilter upsert?: boolean }> ) { @@ -238,9 +247,9 @@ export class MongoDBDataAPI { * Replace a Single Document. * @link https://docs.atlas.mongodb.com/api/data-api-resources/#replace-a-single-document */ - public replaceOne( + public replaceOne>( params: ExtendBaseParams<{ - filter: Filter + filter: Filter replacement: any upsert?: boolean }> @@ -256,7 +265,9 @@ export class MongoDBDataAPI { * Delete a Single Document. * @link https://docs.atlas.mongodb.com/api/data-api-resources/#delete-a-single-document */ - public deleteOne(params: ExtendBaseParams<{ filter: Filter }>) { + public deleteOne>( + params: ExtendBaseParams<{ filter: Filter }> + ) { return this.$$action<{ deletedCount: number }>('deleteOne', params) } @@ -264,7 +275,9 @@ export class MongoDBDataAPI { * Delete Multiple Documents. * @link https://docs.atlas.mongodb.com/api/data-api-resources/#delete-multiple-documents */ - public deleteMany(params: ExtendBaseParams<{ filter: Filter }>) { + public deleteMany>( + params: ExtendBaseParams<{ filter: Filter }> + ) { return this.$$action<{ deletedCount: number }>('deleteMany', params) } @@ -278,3 +291,7 @@ export class MongoDBDataAPI { return this.$$action<{ documents: T }>('pipeline', params) } } + +export const createMongoDBDataAPI = (config: Config, axios?: AxiosInstance) => { + return new MongoDBDataAPI(config, void 0, axios) +} diff --git a/tests-dts/index.test-d.ts b/tests-dts/index.test-d.ts new file mode 100644 index 0000000..d750049 --- /dev/null +++ b/tests-dts/index.test-d.ts @@ -0,0 +1,185 @@ +import type { Document } from 'mongodb' +import { createMongoDBDataAPI, MongoDBDataAPI, Region } from '../src' +import { + describe, + expectError, + expectType, + expectAssignable, + IsAny, + IsUnion +} from './type' + +interface FooString { + foo: string +} + +interface BarString { + bar: string +} + +describe('Class creator', () => { + // @ts-expect-error + expectError(new MongoDBDataAPI()) + // @ts-expect-error + expectError(new MongoDBDataAPI({ apiKey: '', appId: '', urlEndpoint: '' })) + // @ts-expect-error + expectError(new MongoDBDataAPI({ apiKey: '', appId: '', region: '' })) + + // @ts-expect-error + expectError(createMongoDBDataAPI()) + expectType(createMongoDBDataAPI({ apiKey: '', urlEndpoint: '' })) + + const api = new MongoDBDataAPI({ apiKey: '', urlEndpoint: '' }) + expectType(api) + expectAssignable(api) + + const api2 = new MongoDBDataAPI({ apiKey: '', appId: '', region: Region.Virginia }) + expectType(api2) + expectAssignable(api2) +}) + +describe('Class baseParams', async () => { + const api = new MongoDBDataAPI( + { apiKey: '', appId: '' }, + { dataSource: '', database: '' } + ) + const result = await api.findOne() + expectType>(false) + expectType(result.document) + + const result2 = await api.findOne({ filter: { id: '1' } }) + expectType>(false) + expectType(result2.document) + + const result3 = await api.findOne({ filter: { id: '1' } }) + expectType>(false) + expectType(result3.document) +}) + +describe('action type', async () => { + const api = createMongoDBDataAPI({ apiKey: '', appId: '' }) + const result = await api.findOne() + expectType>(false) + expectType>(true) + if (result.document) { + expectType(result.document) + } + + const result2 = await api.findOne({ + dataSource: 'a', + database: 'b', + collection: 'c', + filter: { name: 'Surmon' } + }) + expectType>(false) + expectType>(true) + expectType(result2.document) + + const result3 = await api.findOne() + expectType>(false) + expectType(result3.document) + + const result4 = await api.findOne({ filter: { bar: '' } }) + expectType>(false) + expectType(result4.document) +}) + +describe('method chaining', async () => { + const api = createMongoDBDataAPI({ apiKey: '', appId: '' }) + const clusterA = api.$cluster('a') + + const databaseB = clusterA.$database('b') + const databaseC = clusterA.$database('c') + + const resultB = await databaseB + .$collection('item') + .findOne({ filter: { key: 'test' } }) + expectType>(false) + expectType(resultB.document) + + const resultC = await databaseC + .$collection('item') + .findOne<{ bar: string; foo: number }>({ filter: {} }) + expectType>(false) + if (resultC.document) { + expectType(resultC.document.foo) + expectType(resultC.document.bar) + } +}) + +// https://github.com/surmon-china/mongodb-data-api/pull/3/files @maxfi +describe('actions', async () => { + interface Person { + _id: string + name: string + age: number + } + + interface Car { + _id: string + make: string + } + + const api = createMongoDBDataAPI({ apiKey: '', appId: '' }) + const docCollection = api.$collection('test') + const carCollection = api.$collection('car') + + docCollection + .findOne({ filter: { make: 'test' } }) + .then((result) => expectType<{ document: Document | null }>(result)) + + carCollection + .findOne({ filter: { make: 'test' } }) + .then((result) => expectType<{ document: Car | null }>(result)) + + carCollection + .findOne({ filter: { name: 'person' } }) + .then((result) => expectType<{ document: Person | null }>(result)) + + api + .findOne({ filter: { _id: '123' }, projection: {} }) + .then((result) => expectType<{ document: Person | null }>(result)) + + api + .find({ filter: { age: { $gt: 30 } }, projection: { _id: 1 } }) + .then((result) => expectType<{ documents: Person[] }>(result)) + + api + .insertOne({ document: { _id: '123', name: 'John', age: 30 } }) + .then((result) => expectType<{ insertedId: string }>(result)) + + api + .insertMany({ documents: [{ _id: '123', name: 'John', age: 30 }] }) + .then((result) => expectType<{ insertedIds: string[] }>(result)) + + api + .updateOne({ filter: { _id: '123' }, update: { $set: { name: 'John' } } }) + .then((result) => + expectType<{ + matchedCount: number + modifiedCount: number + upsertedId?: string + }>(result) + ) + + api + .updateMany({ filter: { age: { $gt: 30 } }, update: { $set: { name: 'John' } } }) + .then((result) => + expectType<{ + matchedCount: number + modifiedCount: number + upsertedId?: string + }>(result) + ) + + api + .replaceOne({ + filter: { _id: '123' }, + replacement: { _id: '123', name: 'John', age: 30 } + }) + .then((result) => + expectType<{ matchedCount: number; modifiedCount: number; upsertedId?: string }>( + result + ) + ) +}) diff --git a/tests-dts/tsconfig.build.json b/tests-dts/tsconfig.build.json new file mode 100644 index 0000000..c39764e --- /dev/null +++ b/tests-dts/tsconfig.build.json @@ -0,0 +1,11 @@ +{ + "compilerOptions": { + "noEmit": true, + "strict": true, + "module": "esnext", + "target": "ES6", + "moduleResolution": "node", + "lib": ["esnext", "dom"] + }, + "include": ["./*"] +} diff --git a/tests-dts/tsconfig.json b/tests-dts/tsconfig.json new file mode 100644 index 0000000..e7c86ae --- /dev/null +++ b/tests-dts/tsconfig.json @@ -0,0 +1,7 @@ +{ + "extends": "../tsconfig.json", + "compilerOptions": { + "noEmit": true, + "declaration": true + } +} diff --git a/tests-dts/type.d.ts b/tests-dts/type.d.ts new file mode 100644 index 0000000..cce992a --- /dev/null +++ b/tests-dts/type.d.ts @@ -0,0 +1,16 @@ +// This directory contains d.ts assertions +// use \@ts-expect-error where errors are expected. + +export function describe(_name: string, _fn: () => void): void + +export function expectType(value: T): void +export function expectError(value: T): void +export function expectAssignable(value: T2): void + +export type IsUnion = ( + T extends any ? (U extends T ? false : true) : never +) extends false + ? false + : true + +export type IsAny = 0 extends 1 & T ? true : false diff --git a/tests/index.spec.ts b/tests/index.spec.ts index 68d0bc1..f1a084b 100644 --- a/tests/index.spec.ts +++ b/tests/index.spec.ts @@ -1,22 +1,49 @@ -import { MongoDBDataAPI } from '../src' +import { createMongoDBDataAPI, MongoDBDataAPI } from '../src' test(' should be function type', () => { const hooksTargetType = 'function' expect(typeof MongoDBDataAPI).toBe(hooksTargetType) - const mdaInstance = new MongoDBDataAPI({ apiKey: 'test_key', appId: '' }) - expect(typeof mdaInstance.$$action).toBe(hooksTargetType) - expect(typeof mdaInstance.$cluster).toBe(hooksTargetType) - expect(typeof mdaInstance.$database).toBe(hooksTargetType) - expect(typeof mdaInstance.$collection).toBe(hooksTargetType) + const apiInstance1 = createMongoDBDataAPI({ apiKey: 'test_key', appId: '' }) + expect(typeof apiInstance1.$$action).toBe(hooksTargetType) + expect(typeof apiInstance1.$cluster).toBe(hooksTargetType) + expect(typeof apiInstance1.$database).toBe(hooksTargetType) + expect(typeof apiInstance1.$collection).toBe(hooksTargetType) + + const apiInstance2 = new MongoDBDataAPI({ apiKey: 'test_key', appId: '' }) + expect(typeof apiInstance2.$$action).toBe(hooksTargetType) + expect(typeof apiInstance2.$cluster).toBe(hooksTargetType) + expect(typeof apiInstance2.$database).toBe(hooksTargetType) + expect(typeof apiInstance2.$collection).toBe(hooksTargetType) }) test(' should not be empty params', () => { const logs = [] + try { new MongoDBDataAPI({ apiKey: null as unknown as string, urlEndpoint: '' }) } catch (error) { logs.push(error) } + + try { + createMongoDBDataAPI({ apiKey: null as unknown as string, urlEndpoint: '' }) + } catch (error) { + logs.push(error) + } + + expect(logs.length).toBe(2) +}) + +test(' should be valid params', async () => { + const logs = [] + + try { + const api = createMongoDBDataAPI({ apiKey: 'test_key', urlEndpoint: '' }) + await api.$$action('test') + } catch (error) { + logs.push(error) + } + expect(logs.length).toBe(1) }) diff --git a/tsconfig.json b/tsconfig.json index 21eb126..ab71b1a 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -3,16 +3,16 @@ "module": "esnext", "target": "ES6", "lib": ["ESNext"], + "moduleResolution": "node", "strict": true, + "strictNullChecks": true, "esModuleInterop": true, - "moduleResolution": "node", "declaration": true, - "skipLibCheck": true, "noUnusedLocals": true, "noUnusedParameters": true, "noImplicitReturns": true, "outDir": "dist" }, - "include": ["src/**/*", "test/**/*"], + "include": ["src/**/*", "test/**/*", "tests-dts"], "exclude": ["node_modules", "dist"] } diff --git a/yarn.lock b/yarn.lock index 358f8a0..081a9ca 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,6 +2,13 @@ # yarn lockfile v1 +"@ampproject/remapping@^2.1.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34" + integrity sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg== + dependencies: + "@jridgewell/trace-mapping" "^0.3.0" + "@babel/code-frame@7.12.11": version "7.12.11" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f" @@ -21,7 +28,12 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.16.8.tgz#31560f9f29fdf1868de8cb55049538a1b9732a60" integrity sha512-m7OkX0IdKLKPpBlJtF561YJal5y/jyI5fNfWbPxh2D/nbzzGI4qRyrD8xO2jB24u7l+5I2a43scCG2IrfjC50Q== -"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.16", "@babel/core@^7.7.2", "@babel/core@^7.8.0": +"@babel/compat-data@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.7.tgz#078d8b833fbbcc95286613be8c716cef2b519fa2" + integrity sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ== + +"@babel/core@^7.1.0", "@babel/core@^7.12.3", "@babel/core@^7.7.2", "@babel/core@^7.8.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.7.tgz#db990f931f6d40cb9b87a0dc7d2adc749f1dcbcf" integrity sha512-aeLaqcqThRNZYmbMqtulsetOQZ/5gbR/dWruUCJcpas4Qoyy+QeagfDsPdMrqwsPRDNxJvBlRiZxxX7THO7qtA== @@ -42,6 +54,27 @@ semver "^6.3.0" source-map "^0.5.0" +"@babel/core@^7.17": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.17.8.tgz#3dac27c190ebc3a4381110d46c80e77efe172e1a" + integrity sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ== + dependencies: + "@ampproject/remapping" "^2.1.0" + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.7" + "@babel/helper-compilation-targets" "^7.17.7" + "@babel/helper-module-transforms" "^7.17.7" + "@babel/helpers" "^7.17.8" + "@babel/parser" "^7.17.8" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.1.2" + semver "^6.3.0" + "@babel/generator@^7.16.7", "@babel/generator@^7.16.8", "@babel/generator@^7.7.2": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.16.8.tgz#359d44d966b8cd059d543250ce79596f792f2ebe" @@ -51,6 +84,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.17.3", "@babel/generator@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" + integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== + dependencies: + "@babel/types" "^7.17.0" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/helper-compilation-targets@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.16.7.tgz#06e66c5f299601e6c7da350049315e83209d551b" @@ -61,6 +103,16 @@ browserslist "^4.17.5" semver "^6.3.0" +"@babel/helper-compilation-targets@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.17.7.tgz#a3c2924f5e5f0379b356d4cfb313d1414dc30e46" + integrity sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w== + dependencies: + "@babel/compat-data" "^7.17.7" + "@babel/helper-validator-option" "^7.16.7" + browserslist "^4.17.5" + semver "^6.3.0" + "@babel/helper-environment-visitor@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7" @@ -112,6 +164,20 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helper-module-transforms@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.17.7.tgz#3943c7f777139e7954a5355c815263741a9c1cbd" + integrity sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw== + dependencies: + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-module-imports" "^7.16.7" + "@babel/helper-simple-access" "^7.17.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/helper-validator-identifier" "^7.16.7" + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.8.0": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.16.7.tgz#aa3a8ab4c3cceff8e65eb9e73d87dc4ff320b2f5" @@ -124,6 +190,13 @@ dependencies: "@babel/types" "^7.16.7" +"@babel/helper-simple-access@^7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367" + integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA== + dependencies: + "@babel/types" "^7.17.0" + "@babel/helper-split-export-declaration@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b" @@ -150,6 +223,15 @@ "@babel/traverse" "^7.16.7" "@babel/types" "^7.16.7" +"@babel/helpers@^7.17.8": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.17.8.tgz#288450be8c6ac7e4e44df37bcc53d345e07bc106" + integrity sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw== + dependencies: + "@babel/template" "^7.16.7" + "@babel/traverse" "^7.17.3" + "@babel/types" "^7.17.0" + "@babel/highlight@^7.10.4", "@babel/highlight@^7.16.7": version "7.16.7" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b" @@ -159,11 +241,16 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.4", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8": +"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.16.8": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.8.tgz#61c243a3875f7d0b0962b0543a33ece6ff2f1f17" integrity sha512-i7jDUfrVBWc+7OKcBzEe5n7fbv3i2fWtxKzzCvOjnzSxMfWMigAhtfJ7qzZNGFNMsCCd67+uz553dYKWXPvCKw== +"@babel/parser@^7.17.3", "@babel/parser@^7.17.8": + version "7.17.8" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.8.tgz#2817fb9d885dd8132ea0f8eb615a6388cca1c240" + integrity sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ== + "@babel/plugin-syntax-async-generators@^7.8.4": version "7.8.4" resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" @@ -280,6 +367,22 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.17.3.tgz#0ae0f15b27d9a92ba1f2263358ea7c4e7db47b57" + integrity sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw== + dependencies: + "@babel/code-frame" "^7.16.7" + "@babel/generator" "^7.17.3" + "@babel/helper-environment-visitor" "^7.16.7" + "@babel/helper-function-name" "^7.16.7" + "@babel/helper-hoist-variables" "^7.16.7" + "@babel/helper-split-export-declaration" "^7.16.7" + "@babel/parser" "^7.17.3" + "@babel/types" "^7.17.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.3.0", "@babel/types@^7.3.3": version "7.16.8" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.8.tgz#0ba5da91dd71e0a4e7781a30f22770831062e3c1" @@ -288,6 +391,14 @@ "@babel/helper-validator-identifier" "^7.16.7" to-fast-properties "^2.0.0" +"@babel/types@^7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + "@bcoe/v8-coverage@^0.2.3": version "0.2.3" resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" @@ -531,6 +642,24 @@ "@types/yargs" "^16.0.0" chalk "^4.0.0" +"@jridgewell/resolve-uri@^3.0.3": + version "3.0.5" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.5.tgz#68eb521368db76d040a6315cdb24bf2483037b9c" + integrity sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.11" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.11.tgz#771a1d8d744eeb71b6adb35808e1a6c7b9b8c8ec" + integrity sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg== + +"@jridgewell/trace-mapping@^0.3.0": + version "0.3.4" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.4.tgz#f6a0832dffd5b8a6aaa633b7d9f8e8e94c83a0c3" + integrity sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + "@mdn/browser-compat-data@^4.0.11": version "4.1.3" resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-4.1.3.tgz#988fffa6fbd1fb5468f4e99cc89f51c30527720d" @@ -609,7 +738,7 @@ dependencies: "@rollup/pluginutils" "^3.0.8" -"@rollup/plugin-node-resolve@^13.0": +"@rollup/plugin-node-resolve@^13.1": version "13.1.3" resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.3.tgz#2ed277fb3ad98745424c1d2ba152484508a92d79" integrity sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ== @@ -621,14 +750,22 @@ is-module "^1.0.0" resolve "^1.19.0" -"@rollup/plugin-replace@^3.0": - version "3.0.1" - resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-3.0.1.tgz#f774550f482091719e52e9f14f67ffc0046a883d" - integrity sha512-989J5oRzf3mm0pO/0djTijdfEh9U3n63BIXN5X7T4U9BP+fN4oxQ6DvDuBvFaHA6scaHQRclqmKQEkBhB7k7Hg== +"@rollup/plugin-replace@^4.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-4.0.0.tgz#e34c457d6a285f0213359740b43f39d969b38a67" + integrity sha512-+rumQFiaNac9y64OHtkHGmdjm7us9bo1PlbgQfdihQtuNxzjpaB064HbRnewUOggLQxVCCyINfStkgmBeQpv1g== dependencies: "@rollup/pluginutils" "^3.1.0" magic-string "^0.25.7" +"@rollup/plugin-typescript@^8.3.1": + version "8.3.1" + resolved "https://registry.yarnpkg.com/@rollup/plugin-typescript/-/plugin-typescript-8.3.1.tgz#b7dc75ed6b4876e260b9e80624fab23bc98e4ac1" + integrity sha512-84rExe3ICUBXzqNX48WZV2Jp3OddjTMX97O2Py6D1KJaGSwWp0mDHXj+bCGNJqWHIEKDIT2U0sDjhP4czKi6cA== + dependencies: + "@rollup/pluginutils" "^3.1.0" + resolve "^1.17.0" + "@rollup/pluginutils@^3.0.8", "@rollup/pluginutils@^3.1.0": version "3.1.0" resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" @@ -660,31 +797,31 @@ dependencies: "@sinonjs/commons" "^1.7.0" -"@surmon-china/libundler@^1.1.1": - version "1.1.1" - resolved "https://registry.yarnpkg.com/@surmon-china/libundler/-/libundler-1.1.1.tgz#f84c065e4f967dbedf8dd236ddd1a3a1f520d3ed" - integrity sha512-Hsm7FmrfVrSm6HauRPgvzDbALALb3I/aoRC3jlP2C/uM99itQIsKTOukNoigK3/OPMD4JQtgHfEHSHFyNhfokw== +"@surmon-china/libundler@^2.2.0": + version "2.2.0" + resolved "https://registry.yarnpkg.com/@surmon-china/libundler/-/libundler-2.2.0.tgz#e60aa9db97ab5c32ea8d2e0163f45dea4b5ce44d" + integrity sha512-GgdLgmRDygvII8k8qlORe308dCUVStc0j1CFC7RCmRQ8uO2bPijEaV4M5jRt1d4yspT2KjMPTGYlCcbE03Dg0A== dependencies: - "@babel/core" "^7.16" + "@babel/core" "^7.17" "@rollup/plugin-alias" "^3.1" "@rollup/plugin-babel" "^5.3" "@rollup/plugin-buble" "^0.21" "@rollup/plugin-commonjs" "^21.0" "@rollup/plugin-eslint" "^8.0" "@rollup/plugin-json" "^4.1" - "@rollup/plugin-node-resolve" "^13.0" - "@rollup/plugin-replace" "^3.0" - "@vue/compiler-sfc" "^3" + "@rollup/plugin-node-resolve" "^13.1" + "@rollup/plugin-replace" "^4.0" + "@rollup/plugin-typescript" "^8.3.1" chalk "^4.1.2" - commander "^8.3" + commander "^9.0" consola "^2.15" - postcss "^8.4.4" - rollup "^2.60" + esbuild "^0.14.27" + postcss "^8.4.11" + rollup "^2.70" rollup-plugin-postcss "^4.0" rollup-plugin-terser "^7.0" - rollup-plugin-ts "^2.0.4" - rollup-plugin-visualizer "^5.5" - rollup-plugin-vue "^6.0" + rollup-plugin-ts "^2.0.5" + rollup-plugin-visualizer "^5.6" tslib "^2.3.1" "@tootallnate/once@1": @@ -933,64 +1070,6 @@ "@typescript-eslint/types" "5.9.1" eslint-visitor-keys "^3.0.0" -"@vue/compiler-core@3.2.27": - version "3.2.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.27.tgz#01bd5e5071f58f43e4184ba7fa810226799a5383" - integrity sha512-JyxAglSM/pb9paG5ZNuKrf5IUpzLzQA3khjWGF9oESELCLQlt6O3YyPMR2A69wIpYWrf5mScZ8YY8TJKOI/1kQ== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/shared" "3.2.27" - estree-walker "^2.0.2" - source-map "^0.6.1" - -"@vue/compiler-dom@3.2.27": - version "3.2.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.27.tgz#a12163e3f3f1d5ff1969253eba4b4ea3e67bbd0f" - integrity sha512-NyQ7nEbopUBPUMHM4c3FPCbFbnQwptoPjW5Y5qfJ7hfiCNhOuhQsDNqi5JYKBxfpxiFNwjcN9F8t1AsnLrDloQ== - dependencies: - "@vue/compiler-core" "3.2.27" - "@vue/shared" "3.2.27" - -"@vue/compiler-sfc@^3": - version "3.2.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.27.tgz#43bf23fe24feacba334636fa7a332f9d8a532c8c" - integrity sha512-WyecUhLN5UAQAr2QlmG2nA56OEnhZJaBnSw0G1tazb9rwDuK0V9tnbIXbQgmQlx+x4sJxgg61yWGcIXfilTl3A== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.27" - "@vue/compiler-dom" "3.2.27" - "@vue/compiler-ssr" "3.2.27" - "@vue/reactivity-transform" "3.2.27" - "@vue/shared" "3.2.27" - estree-walker "^2.0.2" - magic-string "^0.25.7" - postcss "^8.1.10" - source-map "^0.6.1" - -"@vue/compiler-ssr@3.2.27": - version "3.2.27" - resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.27.tgz#49aa3afd1602275aba3c3e331764984111a460bf" - integrity sha512-+l09t319iV7HVSrXfBw9OLwMZIPOFTXmHjZ61Bc5ZcwKqOYAR4uTurKpoXAfcSc5qs/q6WdE9jY3nrP0LUEMQQ== - dependencies: - "@vue/compiler-dom" "3.2.27" - "@vue/shared" "3.2.27" - -"@vue/reactivity-transform@3.2.27": - version "3.2.27" - resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.27.tgz#610b6df174cdceba6de1376f3218736c3b0e753d" - integrity sha512-67//61ObGxGnVrPhjygocb24eYUh+TFMhkm7szm8v5XdKXjkNl7qgIOflwGvUnwuIRJmr9nZ7+PvY0fL+H2upA== - dependencies: - "@babel/parser" "^7.16.4" - "@vue/compiler-core" "3.2.27" - "@vue/shared" "3.2.27" - estree-walker "^2.0.2" - magic-string "^0.25.7" - -"@vue/shared@3.2.27": - version "3.2.27" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.27.tgz#d5c6e574ee1afd55043470bf70b15772da4e19a2" - integrity sha512-rpAn9k6O08Lvo7ekBIAnkOukX/4EsEQLPrRJBKhIEasMsOI5eX0f6mq1sDUSY7cgAqWw2d7QtP74CWxdXoyKxA== - "@wessberg/stringutil@^1.0.19": version "1.0.19" resolved "https://registry.yarnpkg.com/@wessberg/stringutil/-/stringutil-1.0.19.tgz#baadcb6f4471fe2d46462a7d7a8294e4b45b29ad" @@ -1462,10 +1541,10 @@ commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^8.3: - version "8.3.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-8.3.0.tgz#4837ea1b2da67b9c616a67afbb0fafee567bca66" - integrity sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww== +commander@^9.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-9.1.0.tgz#a6b263b2327f2e188c6402c42623327909f2dbec" + integrity sha512-i0/MaqBtdbnJ4XQs4Pmyb+oFQl+q0lsAmokVUH92SlSw4fkeAcG3bVon+Qt7hmtF+u3Het6o4VgrcY3qAoEB6w== commondir@^1.0.1: version "1.0.1" @@ -1767,6 +1846,132 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== +esbuild-android-64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-android-64/-/esbuild-android-64-0.14.27.tgz#b868bbd9955a92309c69df628d8dd1945478b45c" + integrity sha512-LuEd4uPuj/16Y8j6kqy3Z2E9vNY9logfq8Tq+oTE2PZVuNs3M1kj5Qd4O95ee66yDGb3isaOCV7sOLDwtMfGaQ== + +esbuild-android-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-android-arm64/-/esbuild-android-arm64-0.14.27.tgz#e7d6430555e8e9c505fd87266bbc709f25f1825c" + integrity sha512-E8Ktwwa6vX8q7QeJmg8yepBYXaee50OdQS3BFtEHKrzbV45H4foMOeEE7uqdjGQZFBap5VAqo7pvjlyA92wznQ== + +esbuild-darwin-64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-darwin-64/-/esbuild-darwin-64-0.14.27.tgz#4dc7484127564e89b4445c0a560a3cb50b3d68e1" + integrity sha512-czw/kXl/1ZdenPWfw9jDc5iuIYxqUxgQ/Q+hRd4/3udyGGVI31r29LCViN2bAJgGvQkqyLGVcG03PJPEXQ5i2g== + +esbuild-darwin-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.27.tgz#469e59c665f84a8ed323166624c5e7b9b2d22ac1" + integrity sha512-BEsv2U2U4o672oV8+xpXNxN9bgqRCtddQC6WBh4YhXKDcSZcdNh7+6nS+DM2vu7qWIWNA4JbRG24LUUYXysimQ== + +esbuild-freebsd-64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.27.tgz#895df03bf5f87094a56c9a5815bf92e591903d70" + integrity sha512-7FeiFPGBo+ga+kOkDxtPmdPZdayrSzsV9pmfHxcyLKxu+3oTcajeZlOO1y9HW+t5aFZPiv7czOHM4KNd0tNwCA== + +esbuild-freebsd-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.27.tgz#0b72a41a6b8655e9a8c5608f2ec1afdcf6958441" + integrity sha512-8CK3++foRZJluOWXpllG5zwAVlxtv36NpHfsbWS7TYlD8S+QruXltKlXToc/5ZNzBK++l6rvRKELu/puCLc7jA== + +esbuild-linux-32@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-linux-32/-/esbuild-linux-32-0.14.27.tgz#43b8ba3803b0bbe7f051869c6a8bf6de1e95de28" + integrity sha512-qhNYIcT+EsYSBClZ5QhLzFzV5iVsP1YsITqblSaztr3+ZJUI+GoK8aXHyzKd7/CKKuK93cxEMJPpfi1dfsOfdw== + +esbuild-linux-64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-linux-64/-/esbuild-linux-64-0.14.27.tgz#dc8072097327ecfadba1735562824ce8c05dd0bd" + integrity sha512-ESjck9+EsHoTaKWlFKJpPZRN26uiav5gkI16RuI8WBxUdLrrAlYuYSndxxKgEn1csd968BX/8yQZATYf/9+/qg== + +esbuild-linux-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.27.tgz#c52b58cbe948426b1559910f521b0a3f396f10b8" + integrity sha512-no6Mi17eV2tHlJnqBHRLekpZ2/VYx+NfGxKcBE/2xOMYwctsanCaXxw4zapvNrGE9X38vefVXLz6YCF8b1EHiQ== + +esbuild-linux-arm@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-linux-arm/-/esbuild-linux-arm-0.14.27.tgz#df869dbd67d4ee3a04b3c7273b6bd2b233e78a18" + integrity sha512-JnnmgUBdqLQO9hoNZQqNHFWlNpSX82vzB3rYuCJMhtkuaWQEmQz6Lec1UIxJdC38ifEghNTBsF9bbe8dFilnCw== + +esbuild-linux-mips64le@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.27.tgz#a2b646d9df368b01aa970a7b8968be6dd6b01d19" + integrity sha512-NolWP2uOvIJpbwpsDbwfeExZOY1bZNlWE/kVfkzLMsSgqeVcl5YMen/cedRe9mKnpfLli+i0uSp7N+fkKNU27A== + +esbuild-linux-ppc64le@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.27.tgz#9a21af766a0292578a3009c7408b8509cac7cefd" + integrity sha512-/7dTjDvXMdRKmsSxKXeWyonuGgblnYDn0MI1xDC7J1VQXny8k1qgNp6VmrlsawwnsymSUUiThhkJsI+rx0taNA== + +esbuild-linux-riscv64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.27.tgz#344a27f91568056a5903ad5841b447e00e78d740" + integrity sha512-D+aFiUzOJG13RhrSmZgrcFaF4UUHpqj7XSKrIiCXIj1dkIkFqdrmqMSOtSs78dOtObWiOrFCDDzB24UyeEiNGg== + +esbuild-linux-s390x@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.27.tgz#73a7309bd648a07ef58f069658f989a5096130db" + integrity sha512-CD/D4tj0U4UQjELkdNlZhQ8nDHU5rBn6NGp47Hiz0Y7/akAY5i0oGadhEIg0WCY/HYVXFb3CsSPPwaKcTOW3bg== + +esbuild-netbsd-64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.27.tgz#482a587cdbd18a6c264a05136596927deb46c30a" + integrity sha512-h3mAld69SrO1VoaMpYl3a5FNdGRE/Nqc+E8VtHOag4tyBwhCQXxtvDDOAKOUQexBGca0IuR6UayQ4ntSX5ij1Q== + +esbuild-openbsd-64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.27.tgz#e99f8cdc63f1628747b63edd124d53cf7796468d" + integrity sha512-xwSje6qIZaDHXWoPpIgvL+7fC6WeubHHv18tusLYMwL+Z6bEa4Pbfs5IWDtQdHkArtfxEkIZz77944z8MgDxGw== + +esbuild-sunos-64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-sunos-64/-/esbuild-sunos-64-0.14.27.tgz#8611d825bcb8239c78d57452e83253a71942f45c" + integrity sha512-/nBVpWIDjYiyMhuqIqbXXsxBc58cBVH9uztAOIfWShStxq9BNBik92oPQPJ57nzWXRNKQUEFWr4Q98utDWz7jg== + +esbuild-windows-32@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-windows-32/-/esbuild-windows-32-0.14.27.tgz#c06374206d4d92dd31d4fda299b09f51a35e82f6" + integrity sha512-Q9/zEjhZJ4trtWhFWIZvS/7RUzzi8rvkoaS9oiizkHTTKd8UxFwn/Mm2OywsAfYymgUYm8+y2b+BKTNEFxUekw== + +esbuild-windows-64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-windows-64/-/esbuild-windows-64-0.14.27.tgz#756631c1d301dfc0d1a887deed2459ce4079582f" + integrity sha512-b3y3vTSl5aEhWHK66ngtiS/c6byLf6y/ZBvODH1YkBM+MGtVL6jN38FdHUsZasCz9gFwYs/lJMVY9u7GL6wfYg== + +esbuild-windows-arm64@0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.27.tgz#ad7e187193dcd18768b16065a950f4441d7173f4" + integrity sha512-I/reTxr6TFMcR5qbIkwRGvldMIaiBu2+MP0LlD7sOlNXrfqIl9uNjsuxFPGEG4IRomjfQ5q8WT+xlF/ySVkqKg== + +esbuild@^0.14.27: + version "0.14.27" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.14.27.tgz#41fe0f1b6b68b9f77cac025009bc54bb96e616f1" + integrity sha512-MZQt5SywZS3hA9fXnMhR22dv0oPGh6QtjJRIYbgL1AeqAoQZE+Qn5ppGYQAoHv/vq827flj4tIJ79Mrdiwk46Q== + optionalDependencies: + esbuild-android-64 "0.14.27" + esbuild-android-arm64 "0.14.27" + esbuild-darwin-64 "0.14.27" + esbuild-darwin-arm64 "0.14.27" + esbuild-freebsd-64 "0.14.27" + esbuild-freebsd-arm64 "0.14.27" + esbuild-linux-32 "0.14.27" + esbuild-linux-64 "0.14.27" + esbuild-linux-arm "0.14.27" + esbuild-linux-arm64 "0.14.27" + esbuild-linux-mips64le "0.14.27" + esbuild-linux-ppc64le "0.14.27" + esbuild-linux-riscv64 "0.14.27" + esbuild-linux-s390x "0.14.27" + esbuild-netbsd-64 "0.14.27" + esbuild-openbsd-64 "0.14.27" + esbuild-sunos-64 "0.14.27" + esbuild-windows-32 "0.14.27" + esbuild-windows-64 "0.14.27" + esbuild-windows-arm64 "0.14.27" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -2000,7 +2205,7 @@ estree-walker@^1.0.1: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700" integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg== -estree-walker@^2.0.1, estree-walker@^2.0.2: +estree-walker@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== @@ -2258,11 +2463,6 @@ has@^1.0.3: dependencies: function-bind "^1.1.1" -hash-sum@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a" - integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg== - helpertypes@^0.0.17: version "0.0.17" resolved "https://registry.yarnpkg.com/helpertypes/-/helpertypes-0.0.17.tgz#6a0c2dc773888845b5fbeab3487b9f55a4919bc0" @@ -3198,11 +3398,16 @@ ms@2.1.2: resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== -nanoid@^3.1.30, nanoid@^3.1.32: +nanoid@^3.1.32: version "3.2.0" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c" integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA== +nanoid@^3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.1.tgz#6347a18cac88af88f58af0b3594b723d5e99bb35" + integrity sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw== + natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" @@ -3664,14 +3869,14 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@^8.1.10, postcss@^8.4.4: - version "8.4.5" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.5.tgz#bae665764dfd4c6fcc24dc0fdf7e7aa00cc77f95" - integrity sha512-jBDboWM8qpaqwkMwItqTQTiFikhs/67OYVvblFFTM7MrZjt6yMKd6r2kgXizEbTTljacm4NldIlZnhbjr84QYg== +postcss@^8.4.11: + version "8.4.12" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.12.tgz#1e7de78733b28970fa4743f7da6f3763648b1905" + integrity sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg== dependencies: - nanoid "^3.1.30" + nanoid "^3.3.1" picocolors "^1.0.0" - source-map-js "^1.0.1" + source-map-js "^1.0.2" prelude-ls@^1.2.1: version "1.2.1" @@ -3872,7 +4077,7 @@ rollup-plugin-terser@^7.0: serialize-javascript "^4.0.0" terser "^5.0.0" -rollup-plugin-ts@^2.0.4: +rollup-plugin-ts@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/rollup-plugin-ts/-/rollup-plugin-ts-2.0.5.tgz#35a23bbcd24deb8c5594e89a8fb1a7cdab3fa5c4" integrity sha512-yLfu46XsheAEDs+OxCMnHszble9pYwGYDML82lpMw3x/65kgwd9UQSkPX0HZGk+6L+MN8hFgqeh+SPmv+uOz1w== @@ -3888,25 +4093,16 @@ rollup-plugin-ts@^2.0.4: ts-clone-node "^0.3.30" tslib "^2.3.1" -rollup-plugin-visualizer@^5.5: - version "5.5.4" - resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.5.4.tgz#ce3461fdcbfdf784f52aa5205e1d166e2152bab0" - integrity sha512-CJQFUuZ75S1daGEkk62UH7lL6UFCoP86Sn/iz4gXBdamdwFeD5nPGCHHXfXCrly/wNgQOYTH7cdcxk4+OG3Xjw== +rollup-plugin-visualizer@^5.6: + version "5.6.0" + resolved "https://registry.yarnpkg.com/rollup-plugin-visualizer/-/rollup-plugin-visualizer-5.6.0.tgz#06aa7cf3fd504a29d404335700f2a3f28ebb33f3" + integrity sha512-CKcc8GTUZjC+LsMytU8ocRr/cGZIfMR7+mdy4YnlyetlmIl/dM8BMnOEpD4JPIGt+ZVW7Db9ZtSsbgyeBH3uTA== dependencies: nanoid "^3.1.32" open "^8.4.0" source-map "^0.7.3" yargs "^17.3.1" -rollup-plugin-vue@^6.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/rollup-plugin-vue/-/rollup-plugin-vue-6.0.0.tgz#e379e93e5ae9a8648522f698be2e452e8672aaf2" - integrity sha512-oVvUd84d5u73M2HYM3XsMDLtZRIA/tw2U0dmHlXU2UWP5JARYHzh/U9vcxaN/x/9MrepY7VH3pHFeOhrWpxs/Q== - dependencies: - debug "^4.1.1" - hash-sum "^2.0.0" - rollup-pluginutils "^2.8.2" - rollup-pluginutils@^2.8.2: version "2.8.2" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" @@ -3914,10 +4110,10 @@ rollup-pluginutils@^2.8.2: dependencies: estree-walker "^0.6.1" -rollup@^2.60: - version "2.64.0" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.64.0.tgz#f0f59774e21fbb56de438a37d06a2189632b207a" - integrity sha512-+c+lbw1lexBKSMb1yxGDVfJ+vchJH3qLbmavR+awDinTDA2C5Ug9u7lkOzj62SCu0PKUExsW36tpgW7Fmpn3yQ== +rollup@^2.70: + version "2.70.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.70.1.tgz#824b1f1f879ea396db30b0fc3ae8d2fead93523e" + integrity sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA== optionalDependencies: fsevents "~2.3.2" @@ -4030,10 +4226,10 @@ socks@^2.6.1: ip "^1.1.5" smart-buffer "^4.1.0" -source-map-js@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf" - integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA== +source-map-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" + integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== source-map-support@^0.5.6, source-map-support@~0.5.20: version "0.5.21"