diff --git a/.eslintignore b/.eslintignore index 96eab461a6a..4d34e5a61eb 100644 --- a/.eslintignore +++ b/.eslintignore @@ -3,6 +3,8 @@ blueprints-js/*/*files/**/*.js blueprints/*/*files/**/*.ts node-tests/fixtures/**/*.js /docs/ +/docs-out/ dist/ tmp/ +/types smoke-tests/ diff --git a/.eslintrc.js b/.eslintrc.js index 921dc164dd6..a2109b09984 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -136,6 +136,7 @@ module.exports = { 'testem.js', 'testem.ci-browsers.js', 'testem.browserstack.js', + 'build-docs.js', 'd8-runner.js', 'broccoli/**/*.js', 'ember-cli-build.js', diff --git a/.gitignore b/.gitignore index f2f07319406..b587c33262c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,3 @@ -*.bpkg -*.gem *.rbc .DS_Store .bpm @@ -7,13 +5,7 @@ .config .eslintcache .github-upload-token -.yardoc InstalledFiles -_site -_yardoc -assets -assets/bpm_libs.js -assets/bpm_styles.css coverage dist /docs @@ -21,24 +13,18 @@ lib/*/tests/all.js lib/*/tests/qunit* lib/bundler/man pkg -rdoc -spade-boot.js spec/reports test/tmp test/version_tmp test_*.html /tests/ember-tests.js +tsconfig.tsbuildinfo tmp -tmp*.gem -tmp.bpm -tmp.spade tests/source +/types node_modules yarn-error.log -bundle/ *~ -publish_to_bower/ -bower_components/ npm-debug.log .ember-cli /DEBUG/ @@ -46,4 +32,4 @@ npm-debug.log *.tar.gz *.log /.vscode - +/.rollup* \ No newline at end of file diff --git a/build-docs.js b/build-docs.js new file mode 100644 index 00000000000..f80a773a78b --- /dev/null +++ b/build-docs.js @@ -0,0 +1,332 @@ +/* eslint-disable no-console */ + +const path = require('path'); +const klaw = require('klaw'); +const { Extractor, ExtractorConfig } = require('@microsoft/api-extractor'); +const { rollup } = require('rollup'); +const typescript = require('@rollup/plugin-typescript'); +const { default: dts } = require('rollup-plugin-dts'); +const { existsSync } = require('fs'); +const { writeFile, mkdir, cp, rm } = require('fs/promises'); +const TypeDoc = require('typedoc'); +const { exit } = require('process'); + +class Package { + constructor(filePath) { + this.absolutePath = filePath; + + const relativeSrcPath = path.relative(__dirname, filePath); + this.srcPath = path.parse(relativeSrcPath); + + const relativeOutPath = path.relative(path.join(__dirname, 'packages'), filePath); + this.outPath = path.parse(relativeOutPath); + + this.name = + this.outPath.name === 'index' ? this.outPath.dir : `${this.outPath.dir}/${this.outPath.name}`; + + this.rollup = { + dir: `tmp/rollup-types/${this.outPath.dir}`, + name: this.outPath.name, + ext: '.d.ts', + }; + } + + get fileSafeName() { + if (!this._fileSafeName) { + this._fileSafeName = this.name.replace(/\//g, '.'); + } + return this._fileSafeName; + } + + get docsPackageName() { + if (!this._docsPackageName) { + if (this.name.startsWith('@')) { + let parts = this.name.split('/'); + this._docsPackageName = `${parts[0]}/${parts.slice(1).join('-')}`; + } else { + this._docsPackageName = this.name.replace(/\//g, '.'); + } + } + return this._docsPackageName; + } +} + +async function build(path) { + // HACKS + // To build we can't just rely on .d.ts files, we need actual .ts. + let createdFiles = []; + for await (const item of klaw('packages/@ember/-internals/glimmer/lib/templates')) { + if (item.stats.isFile()) { + if (item.path.endsWith('.d.ts')) { + let dest = item.path.replace('.d.ts', '.ts'); + await cp(item.path, dest); + createdFiles.push(dest); + } + } + } + + let bundle = await rollup({ + input: path, + plugins: [ + typescript({ + tsconfig: './tsconfig.json', + cacheDir: `.rollup.tscache`, + compilerOptions: { + declaration: true, + declarationMap: true, + sourceMap: true, + incremental: true, + outDir: 'tmp/build-types', + declarationDir: 'tmp/build-types', + }, + }), + ], + }); + + await bundle.write({ + output: { + dir: 'tmp/build-types', + format: 'es', + sourcemap: true, + }, + }); + + // CLEANUP HACKS + for (let file of createdFiles) { + await rm(file); + } +} + +async function rollupTypes(package) { + console.log('TYPES', package.absolutePath); + + try { + const bundle = await rollup({ + input: path.format({ + dir: `${__dirname}/tmp/build-types/${package.outPath.dir}`, + name: package.outPath.name, + ext: '.d.ts', + }), + plugins: [ + dts({ + compilerOptions: { + // Unless explicit, we don't want anything other than relative imports to be picked up + baseUrl: null, + incremental: true, + paths: { + // We want to inline these types + '@ember/-internals/*': [`${__dirname}/tmp/build-types/@ember/-internals/*`], + }, + }, + }), + ], + }); + + return bundle.write({ + output: { + file: path.format(package.rollup), + format: 'es', + }, + }); + } catch (e) { + console.error('ROLLUP ERROR', e); + exit(1); + } +} + +function extract(package) { + console.log('EXTRACT', package.absolutePath); + try { + const config = ExtractorConfig.prepare({ + configObject: { + mainEntryPointFilePath: `/${path.format(package.rollup)}`, + dtsRollup: { + enabled: true, + untrimmedFilePath: `/tmp/trimmed-types/${package.fileSafeName}.untrimmed.d.ts`, + betaTrimmedFilePath: `/tmp/trimmed-types/${package.fileSafeName}.beta.d.ts`, + publicTrimmedFilePath: `/tmp/trimmed-types/${package.fileSafeName}.release.d.ts`, + }, + compiler: { + tsconfigFilePath: '/tsconfig.json', + overrideTsconfig: { + include: [], + files: [package.absolutePath], + }, + }, + projectFolder: __dirname, + }, + }); + + config.packageFolder = __dirname; + config.packageJson = { + name: package.docsPackageName, + }; + + Extractor.invoke(config, { + localBuild: true, + // showVerboseMessages: true, + }); + } catch (e) { + console.log('EXTRACT ERROR', e); + exit(1); + } +} + +async function run() { + const packages = [ + '@ember/application', + '@ember/application/instance', + '@ember/application/namespace', + '@ember/array', + '@ember/array/mutable', + '@ember/array/proxy', + '@ember/canary-features', + '@ember/component', + '@ember/component/helper', + '@ember/component/template-only', + '@ember/controller', + '@ember/debug', + '@ember/destroyable', + '@ember/engine', + '@ember/engine/instance', + '@ember/error', + '@ember/helper', + '@ember/object', + '@ember/object/compat', + '@ember/object/computed', + '@ember/object/core', + '@ember/object/evented', + '@ember/object/events', + '@ember/object/mixin', + '@ember/object/observable', + '@ember/object/observers', + '@ember/polyfills', + '@ember/routing', + '@ember/routing/auto-location', + '@ember/routing/hash-location', + '@ember/routing/history-location', + '@ember/routing/location', + '@ember/routing/none-location', + '@ember/routing/route', + '@ember/routing/router', + '@ember/routing/router-service', + '@ember/runloop', + '@ember/service', + '@ember/template', + '@ember/utils', + '@ember/version', + // 'ember', + ].map((p) => { + let path = ['.ts', '.js', '/index.ts', '/index.js'] + .map((ext) => `${__dirname}/packages/${p}${ext}`) + .find(existsSync); + return new Package(path); + }); + + await mkdir('tmp/build-types', { recursive: true }); + await writeFile( + 'tmp/build-types/index.ts', + packages.map((p, idx) => `import _PKG${idx} from '${p.name}';`).join('\n') + ); + + await build('tmp/build-types/index.ts'); + + // Copy over all pre-existing .d.ts paths + for await (const item of klaw(path.join(__dirname, 'packages'))) { + if (item.stats.isFile()) { + if ( + item.path.endsWith('.d.ts') && + !item.path.includes('/tests/') && + !item.path.includes('/type-tests/') + ) { + let dest = `tmp/build-types/${path.relative(`${__dirname}/packages`, item.path)}`; + await cp(item.path, dest); + } + } + } + + for (let pkg of packages) { + await rollupTypes(pkg); + } + + // Ideally we'd parallelize this. My first go didn't work. + for (let pkg of packages) { + await extract(pkg); + } + + for (let pkg of packages) { + for (let r of ['beta', 'release', 'untrimmed']) { + await mkdir(`types/${r}/${pkg.outPath.dir}`, { recursive: true }); + await cp( + `tmp/trimmed-types/${pkg.fileSafeName}.${r}.d.ts`, + `types/${r}/${pkg.outPath.dir}/${pkg.outPath.name}.d.ts` + ); + } + } + + for (let r of ['beta', 'release', 'untrimmed']) { + writeFile( + `types/${r}/tsconfig.json`, + JSON.stringify({ + compilerOptions: { + baseUrl: '.', + paths: { + '*': ['*'], + backburner: ['../../node_modules/backburner.js/dist/backburner.d.ts'], + }, + }, + include: ['**/*.ts'], + }) + ); + } + + let packageGroups = {}; + + for (let pkg of packages) { + packageGroups[pkg.outPath.dir] ??= []; + packageGroups[pkg.outPath.dir].push(pkg.absolutePath); + } + + for (let [group, entryPoints] of Object.entries(packageGroups)) { + const app = new TypeDoc.Application(); + + app.options.addReader(new TypeDoc.TSConfigReader()); + // app.options.addReader(new TypeDoc.TypeDocReader()); + + app.bootstrap({ + // tsconfig: 'tsconfig.typedoc.json', + name: group, + readme: 'none', + entryPoints: entryPoints.map((ep) => path.relative(__dirname, ep.replace(/\.js$/, '.d.ts'))), + excludeInternal: true, + }); + + const project = app.convert(); + + if (project) { + // Project may not have converted correctly + const outputDir = `docs/${group}`; + + // Rendered docs + await app.generateDocs(project, outputDir); + // Alternatively generate JSON output + await app.generateJson(project, outputDir + '/documentation.json'); + } + } + + let docsIndex = ` + + +
    + ${Object.keys(packageGroups) + .map((group) => `
  • ${group}
  • `) + .join('\n')} +
+ + + `; + + writeFile('docs/index.html', docsIndex); +} + +run(); diff --git a/package.json b/package.json index f232b29a9ae..fd12eb80dc2 100644 --- a/package.json +++ b/package.json @@ -47,13 +47,16 @@ "test:blueprints:ts": "EMBER_TYPESCRIPT_BLUEPRINTS=true yarn test:blueprints:js", "test:blueprints": "yarn test:blueprints:js && yarn test:blueprints:ts", "test:node": "qunit tests/node/**/*-test.js", - "test:browserstack": "node bin/run-browserstack-tests.js" + "test:browserstack": "node bin/run-browserstack-tests.js", + "docs:ts": "yarn docs:clean && node build-docs.js && prettier --write types", + "docs:clean": "rimraf docs types tmp" }, "dependencies": { "@babel/helper-module-imports": "^7.16.7", "@babel/plugin-transform-block-scoping": "^7.16.0", "@ember/edition-utils": "^1.2.0", "@glimmer/vm-babel-plugins": "0.84.2", + "@microsoft/api-documenter": "^7.17.3", "babel-plugin-debug-macros": "^0.3.4", "babel-plugin-filter-imports": "^4.0.0", "broccoli-concat": "^4.2.5", @@ -92,7 +95,10 @@ "@glimmer/reference": "0.84.2", "@glimmer/runtime": "0.84.2", "@glimmer/validator": "0.84.2", + "@microsoft/api-extractor": "^7.23.2", + "@rollup/plugin-typescript": "^8.3.1", "@simple-dom/document": "^1.4.0", + "@types/node": "^17.0.18", "@types/qunit": "^2.11.3", "@types/rsvp": "^4.0.4", "@typescript-eslint/eslint-plugin": "^5.22.0", @@ -136,6 +142,7 @@ "github": "^0.2.3", "glob": "^8.0.3", "html-differ": "^1.4.0", + "klaw": "^4.0.1", "lodash.uniq": "^4.5.0", "mkdirp": "^1.0.4", "mocha": "^9.2.2", @@ -143,8 +150,13 @@ "prettier": "^2.7.1", "puppeteer": "^13.5.1", "qunit": "^2.18.1", + "rimraf": "^3.0.2", + "rollup": "^2.67.2", "rollup-plugin-commonjs": "^9.3.4", + "rollup-plugin-dts": "^4.1.1", "rollup-plugin-node-resolve": "^4.2.4", + "rollup-plugin-ts": "^2.0.7", + "rollup-plugin-typescript2": "^0.31.2", "route-recognizer": "^0.3.4", "router_js": "^8.0.3", "rsvp": "^4.8.5", @@ -152,6 +164,8 @@ "simple-dom": "^1.4.0", "testem": "^3.8.0", "testem-failure-only-reporter": "^1.0.0", + "tslib": "^2.4.0", + "typedoc": "^0.22.15", "typescript": "~4.6.4" }, "engines": { diff --git a/packages/@ember/-internals/glimmer/lib/component.ts b/packages/@ember/-internals/glimmer/lib/component.ts index 12c2ca543e6..c72acc3138c 100644 --- a/packages/@ember/-internals/glimmer/lib/component.ts +++ b/packages/@ember/-internals/glimmer/lib/component.ts @@ -14,7 +14,7 @@ import { } from '@ember/-internals/views'; import { assert } from '@ember/debug'; import { DEBUG } from '@glimmer/env'; -import type { Environment, Template, TemplateFactory } from '@glimmer/interfaces'; +import type { Bounds, Environment, Template, TemplateFactory } from '@glimmer/interfaces'; import { setInternalComponentManager } from '@glimmer/manager'; import { isUpdatableRef, updateRef } from '@glimmer/reference'; import { normalizeProperty } from '@glimmer/runtime'; @@ -28,6 +28,7 @@ import { DIRTY_TAG, IS_DISPATCHING_ATTRS, } from './component-managers/curly'; +import type { View } from './renderer'; // Keep track of which component classes have already been processed for lazy event setup. let lazyEventsProcessed = new WeakMap>(); @@ -822,15 +823,15 @@ class Component willUpdate() {}, } as ComponentMethods ) - implements PropertyDidChange + implements PropertyDidChange, View { isComponent = true; - // SAFTEY: This is set in `init`. + // SAFTEY: These are set in `init`. declare _superRerender: ViewMixin['rerender']; - declare [IS_DISPATCHING_ATTRS]: boolean; declare [DIRTY_TAG]: DirtyableTag; + declare [BOUNDS]: Bounds | null; init(properties: object | undefined) { super.init(properties); diff --git a/packages/@ember/-internals/metal/lib/dependent_keys.ts b/packages/@ember/-internals/metal/lib/dependent_keys.ts deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/packages/@ember/-internals/package.json b/packages/@ember/-internals/package.json deleted file mode 100644 index c7b8434726e..00000000000 --- a/packages/@ember/-internals/package.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "name": "@ember/-internals", - "version": "0.0.0", - "description": "Internal APIs shared by Ember packages. Warning: this package does not follow SemVer and is subject to break at any time!" -} \ No newline at end of file diff --git a/packages/@ember/-internals/utils/lib/make-array.ts b/packages/@ember/-internals/utils/lib/make-array.ts index 12f628eed78..1c218081fce 100644 --- a/packages/@ember/-internals/utils/lib/make-array.ts +++ b/packages/@ember/-internals/utils/lib/make-array.ts @@ -29,6 +29,33 @@ const { isArray } = Array; @return {Array} @private */ +/** + * Forces the passed object to be part of an array. + * + * @remarks + * If the object is already an array, it will return the object. Otherwise, it + * will add the object to an array. If object is `null` or `undefined`, it will + * return an empty array. + * + * @example + * + * ```javascript + * import { makeArray } from '@ember/array'; + * import ArrayProxy from '@ember/array/proxy'; + * + * makeArray(); // [] + * makeArray(null); // [] + * makeArray(undefined); // [] + * makeArray('lindsay'); // ['lindsay'] + * makeArray([1, 2, 42]); // [1, 2, 42] + * + * let proxy = ArrayProxy.create({ content: [] }); + * + * makeArray(proxy) === proxy; // false + * ``` + * + * @internal + */ function makeArray(obj: T): T extends TT[] ? T : T extends null | undefined ? [] : [T]; function makeArray(obj: any | null | undefined): Array { if (obj === null || obj === undefined) { diff --git a/packages/@ember/array/index.ts b/packages/@ember/array/index.ts index f3c1d72de66..2a8804451d6 100644 --- a/packages/@ember/array/index.ts +++ b/packages/@ember/array/index.ts @@ -1474,6 +1474,24 @@ const EmberArray = Mixin.create(Enumerable, { @uses MutableEnumerable @public */ +/** + * This mixin defines the API for modifying array-like objects. + * + * @remarks + * These methods can be applied only to a collection that keeps its items in an + * ordered set. It builds upon the Array mixin and adds methods to modify the array. + * One concrete implementation of this class is {@link proxy.default | ArrayProxy}. + * + * It is important to use the methods in this class to modify arrays so that + * changes are observable. This allows the binding system in Ember to function + * correctly. + * + * Note that an Array can change even if it does not implement this mixin. + * For example, one might implement a SparseArray that cannot be directly + * modified, but if its underlying enumerable changes, it will change also. + * + * @public + */ interface MutableArray extends EmberArray, MutableEnumerable { replace(idx: number, amt: number, objects?: readonly T[]): void; clear(): this; @@ -1905,6 +1923,17 @@ const MutableArray = Mixin.create(EmberArray, MutableEnumerable, { @uses Observable @public */ +/** + * The NativeArray mixin contains the properties needed to make the native + * Array support {@link mutable.default | MutableArray} and all of its dependent APIs. + * + * @remarks + * Unless you have `EmberENV.EXTEND_PROTOTYPES` or `EmberENV.EXTEND_PROTOTYPES.Array` + * set to false, this will be applied automatically. Otherwise you can apply the mixin + * at anytime by calling `NativeArray.apply(Array.prototype)`. + * + * @public + */ interface NativeArray extends Omit, 'every' | 'filter' | 'find' | 'forEach' | 'map' | 'reduce' | 'slice'>, MutableArray {} @@ -1935,6 +1964,40 @@ NativeArray.keys().forEach((methodName) => { NativeArray = NativeArray.without(...ignore); +/** + * Creates a {@link index.NativeArray | NativeArray} from an Array-like object. + * + * @remarks + * Does not modify the original object's contents. `A()` is not needed if + * `EmberENV.EXTEND_PROTOTYPES` is `true` (the default value). However, + * it is recommended that you use `A()` when creating addons for + * ember or when you can not guarantee that `EmberENV.EXTEND_PROTOTYPES` + * will be `true`. + * + * @example + * + * # app/components/my-component.js + * ```js + * import Component from '@ember/component'; + * import { A } from '@ember/array'; + * + * export default Component.extend({ + * tagName: 'ul', + * classNames: ['pagination'], + * + * init() { + * this._super(...arguments); + * + * if (!this.get('content')) { + * this.set('content', A()); + * this.set('otherContent', A([1,2,3])); + * } + * } + * }); + * ``` + * + * @public + */ let A: (arr?: Array) => NativeArray; if (ENV.EXTEND_PROTOTYPES.Array) { diff --git a/packages/@ember/controller/index.ts b/packages/@ember/controller/index.ts index 91f19feb48b..759260bd5ba 100644 --- a/packages/@ember/controller/index.ts +++ b/packages/@ember/controller/index.ts @@ -27,6 +27,7 @@ const MODEL = symbol('MODEL'); @uses Ember.ActionHandler @private */ +/** @internal */ interface ControllerMixin extends ActionHandler { /** @internal */ _qpDelegate: unknown | null; diff --git a/packages/@ember/debug/index.ts b/packages/@ember/debug/index.ts index c458b3e4be2..30b8337303d 100644 --- a/packages/@ember/debug/index.ts +++ b/packages/@ember/debug/index.ts @@ -26,7 +26,6 @@ export type DebugFunctionType = | 'runInDebug' | 'deprecateFunc'; -export type AssertFunc = (desc: string, condition?: unknown) => asserts condition; export type DebugFunc = (message: string) => void; export type DebugSealFunc = (obj: object) => void; export type DebugFreezeFunc = (obj: object) => void; @@ -39,7 +38,7 @@ export type DeprecateFuncFunc = ( ) => Function; export type GetDebugFunction = { - (type: 'assert'): AssertFunc; + (type: 'assert'): typeof assert; (type: 'info'): InfoFunc; (type: 'warn'): WarnFunc; (type: 'debug'): DebugFunc; @@ -51,7 +50,7 @@ export type GetDebugFunction = { }; export type SetDebugFunction = { - (type: 'assert', func: AssertFunc): AssertFunc; + (type: 'assert', func: typeof assert): typeof assert; (type: 'info', func: InfoFunc): InfoFunc; (type: 'warn', func: WarnFunc): WarnFunc; (type: 'debug', func: DebugFunc): DebugFunc; @@ -65,7 +64,43 @@ export type SetDebugFunction = { // These are the default production build versions: const noop = () => {}; -let assert: AssertFunc = noop; +/** + * Verify that a certain expectation is met, or throw a exception otherwise. + * + * @remarks + * This is useful for communicating assumptions in the code to other human + * readers as well as catching bugs that accidentally violates these + * expectations. + * + * Assertions are removed from production builds, so they can be freely added + * for documentation and debugging purposes without worries of incuring any + * performance penalty. However, because of that, they should not be used for + * checks that could reasonably fail during normal usage. Furthermore, care + * should be taken to avoid accidentally relying on side-effects produced from + * evaluating the condition itself, since the code will not run in production. + * + * @param description - Describes the expectation. This will become the + * text of the Error thrown if the assertion fails. + * @param condition - Must be truthy for the assertion to pass. If + * falsy, an exception will be thrown. + * + * @public + * @since 1.0.0 + * + * @example Testing for truthiness + * + * ```js + * // Test for truthiness + * assert('Must pass a string', typeof str === 'string'); + * ``` + * + * @example Failing unconditionally + * + * ```js + * assert('This code path should never be run'); + * ``` + */ +let assert: (desc: string, condition?: unknown) => asserts condition = noop; let info: InfoFunc = noop; let warn: WarnFunc = noop; let debug: DebugFunc = noop; @@ -81,10 +116,44 @@ let deprecateFunc: DeprecateFuncFunc = function () { }; if (DEBUG) { + /** + Verify that a certain expectation is met, or throw a exception otherwise. + + This is useful for communicating assumptions in the code to other human + readers as well as catching bugs that accidentally violates these + expectations. + + Assertions are removed from production builds, so they can be freely added + for documentation and debugging purposes without worries of incuring any + performance penalty. However, because of that, they should not be used for + checks that could reasonably fail during normal usage. Furthermore, care + should be taken to avoid accidentally relying on side-effects produced from + evaluating the condition itself, since the code will not run in production. + + ```javascript + import { assert } from '@ember/debug'; + + // Test for truthiness + assert('Must pass a string', typeof str === 'string'); + + // Fail unconditionally + assert('This code path should never be run'); + ``` + + @method assert + @static + @for @ember/debug + @param {String} description Describes the expectation. This will become the + text of the Error thrown if the assertion fails. + @param {any} condition Must be truthy for the assertion to pass. If + falsy, an exception will be thrown. + @public + @since 1.0.0 + */ setDebugFunction = function (type: DebugFunctionType, callback: Function) { switch (type) { case 'assert': - return (assert = callback as AssertFunc); + return (assert = callback as typeof assert); case 'info': return (info = callback as InfoFunc); case 'warn': @@ -133,40 +202,6 @@ if (DEBUG) { */ if (DEBUG) { - /** - Verify that a certain expectation is met, or throw a exception otherwise. - - This is useful for communicating assumptions in the code to other human - readers as well as catching bugs that accidentally violates these - expectations. - - Assertions are removed from production builds, so they can be freely added - for documentation and debugging purposes without worries of incuring any - performance penalty. However, because of that, they should not be used for - checks that could reasonably fail during normal usage. Furthermore, care - should be taken to avoid accidentally relying on side-effects produced from - evaluating the condition itself, since the code will not run in production. - - ```javascript - import { assert } from '@ember/debug'; - - // Test for truthiness - assert('Must pass a string', typeof str === 'string'); - - // Fail unconditionally - assert('This code path should never be run'); - ``` - - @method assert - @static - @for @ember/debug - @param {String} description Describes the expectation. This will become the - text of the Error thrown if the assertion fails. - @param {any} condition Must be truthy for the assertion to pass. If - falsy, an exception will be thrown. - @public - @since 1.0.0 - */ setDebugFunction('assert', function assert(desc, test) { if (!test) { throw new EmberError(`Assertion Failed: ${desc}`); @@ -314,8 +349,6 @@ if (DEBUG) { setDebugFunction('warn', _warn); } -let _warnIfUsingStrippedFeatureFlags; - if (DEBUG && !isTesting()) { if (typeof window !== 'undefined' && (isFirefox || isChrome) && window.addEventListener) { window.addEventListener( @@ -355,5 +388,4 @@ export { deprecateFunc, setDebugFunction, getDebugFunction, - _warnIfUsingStrippedFeatureFlags, }; diff --git a/packages/@ember/object/core.ts b/packages/@ember/object/core.ts index f616ca0bb7b..9ecac0a0167 100644 --- a/packages/@ember/object/core.ts +++ b/packages/@ember/object/core.ts @@ -235,7 +235,8 @@ interface CoreObject { _super(...args: any[]): any; } class CoreObject { - [OWNER]?: Owner; + // Technically this should be here but it causes issue for type declaration exports. + // [OWNER]?: Owner; constructor(owner?: Owner) { this[OWNER] = owner; diff --git a/packages/@ember/routing/route.ts b/packages/@ember/routing/route.ts index 1e22eebda1d..a7a00f2b571 100644 --- a/packages/@ember/routing/route.ts +++ b/packages/@ember/routing/route.ts @@ -84,7 +84,7 @@ const RENDER = Symbol('render'); @since 1.0.0 @public */ -interface Route extends IRoute { +interface Route extends IRoute, Evented { /** The `willTransition` action is fired at the beginning of any attempted transition with a `Transition` object as the sole @@ -255,10 +255,7 @@ interface Route extends IRoute { error?(error: Error, transition: Transition): boolean | void; } -class Route - extends EmberObject.extend(ActionHandler, Evented) - implements IRoute, Evented -{ +class Route extends EmberObject.extend(ActionHandler, Evented) implements IRoute { static isRouteFactory = true; context = {} as T; @@ -292,13 +289,6 @@ class Route } } - // Implement Evented - declare on: (name: string, method: ((...args: any[]) => void) | string) => this; - declare one: (name: string, method: string | ((...args: any[]) => void)) => this; - declare trigger: (name: string, ...args: any[]) => any; - declare off: (name: string, method: string | ((...args: any[]) => void)) => this; - declare has: (name: string) => boolean; - /** A hook you can implement to convert the route's model into parameters for the URL. diff --git a/packages/@ember/routing/router.ts b/packages/@ember/routing/router.ts index 73947ae2c30..ec3cffbd206 100644 --- a/packages/@ember/routing/router.ts +++ b/packages/@ember/routing/router.ts @@ -146,7 +146,8 @@ const { slice } = Array.prototype; @uses Evented @public */ -class EmberRouter extends EmberObject.extend(Evented) implements Evented { +interface EmberRouter extends EmberObject, Evented {} +class EmberRouter extends EmberObject.extend(Evented) { /** Represents the URL of the root of the application, often '/'. This prefix is assumed on all routes defined on this router. @@ -205,14 +206,6 @@ class EmberRouter extends EmberObject.extend(Evented) i private namespace: any; - // Begin Evented - declare on: (name: string, method: ((...args: any[]) => void) | string) => this; - declare one: (name: string, method: string | ((...args: any[]) => void)) => this; - declare trigger: (name: string, ...args: any[]) => unknown; - declare off: (name: string, method: string | ((...args: any[]) => void)) => this; - declare has: (name: string) => boolean; - // End Evented - // Set with reopenClass private static dslCallbacks?: DSLCallback[]; diff --git a/packages/@ember/runloop/type-tests.ts/begin-end.test.ts b/packages/@ember/runloop/type-tests/begin-end.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/begin-end.test.ts rename to packages/@ember/runloop/type-tests/begin-end.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/bind.test.ts b/packages/@ember/runloop/type-tests/bind.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/bind.test.ts rename to packages/@ember/runloop/type-tests/bind.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/cancel.test.ts b/packages/@ember/runloop/type-tests/cancel.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/cancel.test.ts rename to packages/@ember/runloop/type-tests/cancel.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/debounce.test.ts b/packages/@ember/runloop/type-tests/debounce.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/debounce.test.ts rename to packages/@ember/runloop/type-tests/debounce.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/join.test.ts b/packages/@ember/runloop/type-tests/join.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/join.test.ts rename to packages/@ember/runloop/type-tests/join.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/later.test.ts b/packages/@ember/runloop/type-tests/later.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/later.test.ts rename to packages/@ember/runloop/type-tests/later.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/next.test.ts b/packages/@ember/runloop/type-tests/next.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/next.test.ts rename to packages/@ember/runloop/type-tests/next.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/once.test.ts b/packages/@ember/runloop/type-tests/once.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/once.test.ts rename to packages/@ember/runloop/type-tests/once.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/run.test.ts b/packages/@ember/runloop/type-tests/run.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/run.test.ts rename to packages/@ember/runloop/type-tests/run.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/schedule-once.test.ts b/packages/@ember/runloop/type-tests/schedule-once.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/schedule-once.test.ts rename to packages/@ember/runloop/type-tests/schedule-once.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/schedule.test.ts b/packages/@ember/runloop/type-tests/schedule.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/schedule.test.ts rename to packages/@ember/runloop/type-tests/schedule.test.ts diff --git a/packages/@ember/runloop/type-tests.ts/throttle.test.ts b/packages/@ember/runloop/type-tests/throttle.test.ts similarity index 100% rename from packages/@ember/runloop/type-tests.ts/throttle.test.ts rename to packages/@ember/runloop/type-tests/throttle.test.ts diff --git a/packages/@ember/utils/lib/compare.ts b/packages/@ember/utils/lib/compare.ts index d4d963b0516..798fbfe3836 100644 --- a/packages/@ember/utils/lib/compare.ts +++ b/packages/@ember/utils/lib/compare.ts @@ -20,7 +20,7 @@ const TYPE_ORDER: Record = { error: 13, }; -type Compare = -1 | 0 | 1; +type Comparison = -1 | 0 | 1; // // the spaceship operator @@ -39,11 +39,10 @@ type Compare = -1 | 0 | 1; // | `._ `. \ // `._________`-. `. `.___ // SSt `------'` -function spaceship(a: number, b: number): Compare { - // SAFETY: `Math.sign` always returns `-1` for negative, `0` for zero, and `1` - // for positive numbers. (The extra precision is useful for the way we use - // this in the context of `compare`.) - return Math.sign(a - b) as Compare; +function spaceship(a: number, b: number): Comparison { + let diff = a - b; + // SAFETY: Number casts true into 1 and false into 0. Therefore, this must end up as one of the Comparison values. + return (Number(diff > 0) - Number(diff < 0)) as Comparison; } /** @@ -96,7 +95,55 @@ function spaceship(a: number, b: number): Compare { @return {Number} -1 if v < w, 0 if v = w and 1 if v > w. @public */ -export default function compare(v: unknown, w: unknown): Compare { +/** + * Compares two javascript values. + * + * @remarks + * Returns: + * + * - -1 if the first is smaller than the second, + * - 0 if both are equal, + * - 1 if the first is greater than the second. + * + * @example + * ```javascript + * import { compare } from '@ember/utils'; + * + * compare('hello', 'hello'); // 0 + * compare('abc', 'dfg'); // -1 + * compare(2, 1); // 1 + * ``` + * + * @example + * If the types of the two objects are different precedence occurs in the + * following order, with types earlier in the list considered `<` types + * later in the list: + * + * - undefined + * - null + * - boolean + * - number + * - string + * - array + * - object + * - instance + * - function + * - class + * - date + * + * ```javascript + * import { compare } from '@ember/utils'; + * + * compare('hello', 50); // 1 + * compare(50, 'hello'); // -1 + * ``` + * + * @param v - First value to compare + * @param w - Second value to compare + * @return -1 if v < w, 0 if v = w and 1 if v > w. + * @public + */ +export default function compare(v: unknown, w: unknown): Comparison { if (v === w) { return 0; } @@ -110,7 +157,7 @@ export default function compare(v: unknown, w: unknown): Compare { if (type2 === 'instance' && isComparable(w) && w.constructor.compare) { // SAFETY: Multiplying by a negative just changes the sign - return (w.constructor.compare(w, v) * -1) as Compare; + return (w.constructor.compare(w, v) * -1) as Comparison; } let res = spaceship(TYPE_ORDER[type1], TYPE_ORDER[type2]); diff --git a/packages/@ember/utils/lib/is-equal.ts b/packages/@ember/utils/lib/is-equal.ts index 41bddd71378..9748b1f1f2b 100644 --- a/packages/@ember/utils/lib/is-equal.ts +++ b/packages/@ember/utils/lib/is-equal.ts @@ -47,6 +47,51 @@ @return {Boolean} @public */ +/** + * Compares two objects, returning true if they are equal. + * + * @example + * ```javascript + * import { isEqual } from '@ember/utils'; + * + * isEqual('hello', 'hello'); // true + * isEqual(1, 2); // false + * ``` + * + * @example + * `isEqual` is a more specific comparison than a triple equal comparison. + * It will call the `isEqual` instance method on the objects being + * compared, allowing finer control over when objects should be considered + * equal to each other. + * + * ```javascript + * import { isEqual } from '@ember/utils'; + * import EmberObject from '@ember/object'; + * + * let Person = EmberObject.extend({ + * isEqual(other) { return this.ssn == other.ssn; } + * }); + * + * let personA = Person.create({name: 'Muhammad Ali', ssn: '123-45-6789'}); + * let personB = Person.create({name: 'Cassius Clay', ssn: '123-45-6789'}); + * + * isEqual(personA, personB); // true + * ``` + * + * @example + * Due to the expense of array comparisons, collections will never be equal to + * each other even if each of their items are equal to each other. + * + * ```javascript + * import { isEqual } from '@ember/utils'; + * + * isEqual([4, 2], [4, 2]); // false + * ``` + * + * @param a - first object to compare + * @param b - second object to compare + * @public + */ export default function isEqual(a: unknown, b: unknown): boolean { if (a && typeof (a as IsEqual).isEqual === 'function') { return (a as IsEqual).isEqual(b); diff --git a/packages/@ember/utils/lib/is_blank.ts b/packages/@ember/utils/lib/is_blank.ts index 2caef0a9043..72339f81576 100644 --- a/packages/@ember/utils/lib/is_blank.ts +++ b/packages/@ember/utils/lib/is_blank.ts @@ -28,6 +28,28 @@ import isEmpty from './is_empty'; @since 1.5.0 @public */ +/** + * A value is blank if it is empty or a whitespace string. + * + * @example + * ```javascript + * import { isBlank } from '@ember/utils'; + * + * isBlank(null); // true + * isBlank(undefined); // true + * isBlank(''); // true + * isBlank([]); // true + * isBlank('\n\t'); // true + * isBlank(' '); // true + * isBlank({}); // false + * isBlank('\n\t Hello'); // false + * isBlank('Hello world'); // false + * isBlank([1,2,3]); // false + * ``` + * + * @since 1.5.0 + * @public + */ export default function isBlank(obj: unknown): boolean { return isEmpty(obj) || (typeof obj === 'string' && /\S/.test(obj) === false); } diff --git a/packages/@ember/utils/lib/is_empty.ts b/packages/@ember/utils/lib/is_empty.ts index 9bc46e82c08..3273f113737 100644 --- a/packages/@ember/utils/lib/is_empty.ts +++ b/packages/@ember/utils/lib/is_empty.ts @@ -35,6 +35,35 @@ import { hasUnknownProperty } from '@ember/-internals/metal'; @return {Boolean} @public */ +/** + * Verifies that a value is `null` or `undefined`, an empty string, or an empty + * array. + * + * @remarks + * Constrains the rules on `isNone` by returning true for empty strings and + * empty arrays. + * + * If the value is an object with a `size` property of type number, it is used + * to check emptiness. + * + * @example + * ```javascript + * isEmpty(null); // true + * isEmpty(undefined); // true + * isEmpty(''); // true + * isEmpty([]); // true + * isEmpty({ size: 0}); // true + * isEmpty({}); // false + * isEmpty('Adam Hawkins'); // false + * isEmpty([0,1,2]); // false + * isEmpty('\n\t'); // false + * isEmpty(' '); // false + * isEmpty({ size: 1 }) // false + * isEmpty({ size: () => 0 }) // false + * ``` + * + * @public + */ export default function isEmpty(obj: unknown): boolean { if (obj === null || obj === undefined) { return true; diff --git a/packages/@ember/utils/lib/is_none.ts b/packages/@ember/utils/lib/is_none.ts index 2b29252a21b..17823973f7d 100644 --- a/packages/@ember/utils/lib/is_none.ts +++ b/packages/@ember/utils/lib/is_none.ts @@ -21,6 +21,23 @@ @return {Boolean} @public */ +/** + * Returns true if the passed value is null or undefined. This avoids errors + * from JSLint complaining about use of ==, which can be technically + * confusing. + * + * @example + * ```javascript + * isNone(null); // true + * isNone(undefined); // true + * isNone(''); // false + * isNone([]); // false + * isNone(function() {}); // false + * ``` + * + * @param obj - Value to test + * @public + */ export default function isNone(obj: any): obj is null | undefined { return obj === null || obj === undefined; } diff --git a/packages/@ember/utils/lib/is_present.ts b/packages/@ember/utils/lib/is_present.ts index 62327739e65..b253f467726 100644 --- a/packages/@ember/utils/lib/is_present.ts +++ b/packages/@ember/utils/lib/is_present.ts @@ -31,6 +31,32 @@ import isBlank from './is_blank'; @since 1.8.0 @public */ +/** + * A value is present if it not `isBlank`. + * + * @example + * ```javascript + * isPresent(null); // false + * isPresent(undefined); // false + * isPresent(''); // false + * isPresent(' '); // false + * isPresent('\n\t'); // false + * isPresent([]); // false + * isPresent({ length: 0 }); // false + * isPresent(false); // true + * isPresent(true); // true + * isPresent('string'); // true + * isPresent(0); // true + * isPresent(function() {}); // true + * isPresent({}); // true + * isPresent('\n\t Hello'); // true + * isPresent([1, 2, 3]); // true + * ``` + * + * @param obj - Value to test + * @since 1.8.0 + * @public + */ export default function isPresent(obj: T | null | undefined): obj is T { return !isBlank(obj); } diff --git a/packages/@ember/utils/lib/type-of.ts b/packages/@ember/utils/lib/type-of.ts index b43888a3bf8..ee6fb9a07a8 100644 --- a/packages/@ember/utils/lib/type-of.ts +++ b/packages/@ember/utils/lib/type-of.ts @@ -98,7 +98,65 @@ const { toString } = Object.prototype; @public @static */ -export default function typeOf(item: unknown): TypeName { +/** + * Returns a consistent type for the passed object. + * + * @remarks + * Use this instead of the built-in `typeof` to get the type of an item. + * It will return the same result across all browsers and includes a bit + * more detail. Here is what will be returned: + * + * | Return Value | Meaning | + * |---------------|------------------------------------------------------| + * | 'string' | String primitive or String object. | + * | 'number' | Number primitive or Number object. | + * | 'boolean' | Boolean primitive or Boolean object. | + * | 'null' | Null value | + * | 'undefined' | Undefined value | + * | 'function' | A function | + * | 'array' | An instance of Array | + * | 'regexp' | An instance of RegExp | + * | 'date' | An instance of Date | + * | 'filelist' | An instance of FileList | + * | 'class' | An Ember class (created using EmberObject.extend()) | + * | 'instance' | An Ember object instance | + * | 'error' | An instance of the Error object | + * | 'object' | A JavaScript object not inheriting from EmberObject | + * + * @example + * ```javascript + * import { A } from '@ember/array'; + * import { typeOf } from '@ember/utils'; + * import EmberObject from '@ember/object'; + * + * typeOf(); // 'undefined' + * typeOf(null); // 'null' + * typeOf(undefined); // 'undefined' + * typeOf('michael'); // 'string' + * typeOf(new String('michael')); // 'string' + * typeOf(101); // 'number' + * typeOf(new Number(101)); // 'number' + * typeOf(true); // 'boolean' + * typeOf(new Boolean(true)); // 'boolean' + * typeOf(A); // 'function' + * typeOf(A()); // 'array' + * typeOf([1, 2, 90]); // 'array' + * typeOf(/abc/); // 'regexp' + * typeOf(new Date()); // 'date' + * typeOf(event.target.files); // 'filelist' + * typeOf(EmberObject.extend()); // 'class' + * typeOf(EmberObject.create()); // 'instance' + * typeOf(new Error('teamocil')); // 'error' + * + * // 'normal' JavaScript object + * typeOf({ a: 'b' }); // 'object' + * ``` + * + * @param item - the item to check + * @return - the type + * @public + */ + export default function typeOf(item: unknown): TypeName { if (item === null) { return 'null'; } diff --git a/packages/ember/index.js b/packages/ember/index.js index 76febd1bef6..10dd17915dc 100644 --- a/packages/ember/index.js +++ b/packages/ember/index.js @@ -19,7 +19,6 @@ import { capitalize, classify, decamelize, - loc, underscore, w, } from '@ember/string'; @@ -305,7 +304,6 @@ Ember._Backburner = Backburner; // ****@ember/-internals/runtime**** Ember.A = A; Ember.String = { - loc, w, dasherize, decamelize, diff --git a/packages/ember/version.d.ts b/packages/ember/version.d.ts index 5982ce4a7cf..e032b378627 100644 --- a/packages/ember/version.d.ts +++ b/packages/ember/version.d.ts @@ -1,2 +1,6 @@ +/** + * The semantic version + * @public + */ declare const VERSION: string; export default VERSION; diff --git a/packages/ember/version.js b/packages/ember/version.js new file mode 100644 index 00000000000..cd95c9d0eb1 --- /dev/null +++ b/packages/ember/version.js @@ -0,0 +1 @@ +export default 'FAKE-VERSION'; diff --git a/tsconfig.json b/tsconfig.json index 240bde985ab..1c61e230e9c 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -22,6 +22,9 @@ "esModuleInterop": false, "allowSyntheticDefaultImports": false, + // FIXME: Remove this + "suppressImplicitAnyIndexErrors": true, + "newLine": "LF", "noEmit": true, @@ -35,5 +38,5 @@ "include": ["packages/**/*.ts"], - "exclude": ["dist", "node_modules", "tmp"] + "exclude": ["dist", "node_modules", "temp", "tmp"] } diff --git a/tsconfig.typedoc.json b/tsconfig.typedoc.json new file mode 100644 index 00000000000..eb9477639b3 --- /dev/null +++ b/tsconfig.typedoc.json @@ -0,0 +1,12 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "baseUrl": ".", + "paths": { + "backburner": ["node_modules/backburner.js/dist/backburner.d.ts"], + "*": ["types/untrimmed/*", "packages/*"] + }, + "skipLibCheck": true + }, + "include": ["types/**/*.ts"] +} diff --git a/tsdoc.json b/tsdoc.json new file mode 100644 index 00000000000..404b22b57a6 --- /dev/null +++ b/tsdoc.json @@ -0,0 +1,13 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/tsdoc/v0/tsdoc.schema.json", + "extends": ["@microsoft/api-extractor/extends/tsdoc-base.json"], + "tagDefinitions": [ + { + "tagName": "@since", + "syntaxKind": "block" + } + ], + "supportForTags": { + "@since": true + } +} diff --git a/yarn.lock b/yarn.lock index c51f83e4b7b..a73d18bf93a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1253,6 +1253,66 @@ "@jridgewell/resolve-uri" "^3.0.3" "@jridgewell/sourcemap-codec" "^1.4.10" +"@mdn/browser-compat-data@^4.1.16": + version "4.1.20" + resolved "https://registry.yarnpkg.com/@mdn/browser-compat-data/-/browser-compat-data-4.1.20.tgz#771c2a987c8d2cb7f454118d34cda5922b97ec1c" + integrity sha512-9VOi5TU0xE/XhShmGQpNAa3PduouSxDrEK0p7mVZe4ndhH8xV87fYb3vyYyL8i4wyRT7fHG8vyecVTRMLy04Mg== + +"@microsoft/api-documenter@^7.17.3": + version "7.17.13" + resolved "https://registry.yarnpkg.com/@microsoft/api-documenter/-/api-documenter-7.17.13.tgz#a3b397f3192b584185077282693c01adbae2587a" + integrity sha512-EGH1M70QS/NibdlmC33/wj5a9rSbzdWNQekvd/RdD0nDB/tNOamjmaBISEOg5y7DFLn18sZhwDKD/Q9jtYtN3g== + dependencies: + "@microsoft/api-extractor-model" "7.17.3" + "@microsoft/tsdoc" "0.14.1" + "@rushstack/node-core-library" "3.45.5" + "@rushstack/ts-command-line" "4.11.0" + colors "~1.2.1" + js-yaml "~3.13.1" + resolve "~1.17.0" + +"@microsoft/api-extractor-model@7.17.3": + version "7.17.3" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor-model/-/api-extractor-model-7.17.3.tgz#06899902ab1c10b85690232f21c1585cc158d983" + integrity sha512-ETslFxVEZTEK6mrOARxM34Ll2W/5H2aTk9Pe9dxsMCnthE8O/CaStV4WZAGsvvZKyjelSWgPVYGowxGVnwOMlQ== + dependencies: + "@microsoft/tsdoc" "0.14.1" + "@microsoft/tsdoc-config" "~0.16.1" + "@rushstack/node-core-library" "3.45.5" + +"@microsoft/api-extractor@^7.23.2": + version "7.23.2" + resolved "https://registry.yarnpkg.com/@microsoft/api-extractor/-/api-extractor-7.23.2.tgz#fb3c4a94751ba6759b8038d3405dda5da17c82b1" + integrity sha512-0LABOAmsHDomKihjoqLvY0mR1dh7R7fqB0O6qrjqAgQGBPxlRJCDH1tzFzlDS2OdeCxhMtFB3xd8EAr44huujg== + dependencies: + "@microsoft/api-extractor-model" "7.17.3" + "@microsoft/tsdoc" "0.14.1" + "@microsoft/tsdoc-config" "~0.16.1" + "@rushstack/node-core-library" "3.45.5" + "@rushstack/rig-package" "0.3.11" + "@rushstack/ts-command-line" "4.11.0" + colors "~1.2.1" + lodash "~4.17.15" + resolve "~1.17.0" + semver "~7.3.0" + source-map "~0.6.1" + typescript "~4.6.3" + +"@microsoft/tsdoc-config@~0.16.1": + version "0.16.1" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc-config/-/tsdoc-config-0.16.1.tgz#4de11976c1202854c4618f364bf499b4be33e657" + integrity sha512-2RqkwiD4uN6MLnHFljqBlZIXlt/SaUT6cuogU1w2ARw4nKuuppSmR0+s+NC+7kXBQykd9zzu0P4HtBpZT5zBpQ== + dependencies: + "@microsoft/tsdoc" "0.14.1" + ajv "~6.12.6" + jju "~1.4.0" + resolve "~1.19.0" + +"@microsoft/tsdoc@0.14.1": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@microsoft/tsdoc/-/tsdoc-0.14.1.tgz#155ef21065427901994e765da8a0ba0eaae8b8bd" + integrity sha512-6Wci+Tp3CgPt/B9B0a3J4s3yMgLNSku6w5TV6mN+61C71UqsRBv2FUibBf3tPGlNxebgPHMEUzKpb1ggE8KCKw== + "@nodelib/fs.scandir@2.1.3": version "2.1.3" resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" @@ -1274,6 +1334,72 @@ "@nodelib/fs.scandir" "2.1.3" fastq "^1.6.0" +"@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.1.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b" + integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg== + dependencies: + "@types/estree" "0.0.39" + estree-walker "^1.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^4.1.2": + version "4.1.2" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.1.2.tgz#ed5821c15e5e05e32816f5fb9ec607cdf5a75751" + integrity sha512-ROn4qvkxP9SyPeHaf7uQC/GPFY6L/OWy9+bd9AwcjOAWQwxRscoEyAUD8qCY5o5iL4jqQwoLk2kaTKJPb/HwzQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@rollup/pluginutils@^4.2.0": + version "4.2.1" + resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-4.2.1.tgz#e6c6c3aba0744edce3fb2074922d3776c0af2a6d" + integrity sha512-iKnFXr7NkdZAIHiIWE+BX5ULi/ucVFYWD6TbAV+rZctiRTY2PL6tsIKhoIOaoskiWAkgu+VsbXgUVDNLHf+InQ== + dependencies: + estree-walker "^2.0.1" + picomatch "^2.2.2" + +"@rushstack/node-core-library@3.45.5": + version "3.45.5" + resolved "https://registry.yarnpkg.com/@rushstack/node-core-library/-/node-core-library-3.45.5.tgz#00f92143cc21c3ad94fcd81ba168a40ac8cb77f2" + integrity sha512-KbN7Hp9vH3bD3YJfv6RnVtzzTAwGYIBl7y2HQLY4WEQqRbvE3LgI78W9l9X+cTAXCX//p0EeoiUYNTFdqJrMZg== + dependencies: + "@types/node" "12.20.24" + colors "~1.2.1" + fs-extra "~7.0.1" + import-lazy "~4.0.0" + jju "~1.4.0" + resolve "~1.17.0" + semver "~7.3.0" + timsort "~0.3.0" + z-schema "~5.0.2" + +"@rushstack/rig-package@0.3.11": + version "0.3.11" + resolved "https://registry.yarnpkg.com/@rushstack/rig-package/-/rig-package-0.3.11.tgz#92a05929822610e8b42f2ad330d9ea20afae5165" + integrity sha512-uI1/g5oQPtyrT9nStoyX/xgZSLa2b+srRFaDk3r1eqC7zA5th4/bvTGl2QfV3C9NcP+coSqmk5mFJkUfH6i3Lw== + dependencies: + resolve "~1.17.0" + strip-json-comments "~3.1.1" + +"@rushstack/ts-command-line@4.11.0": + version "4.11.0" + resolved "https://registry.yarnpkg.com/@rushstack/ts-command-line/-/ts-command-line-4.11.0.tgz#4cd3b9f59b41aed600042936260fdaa55ca0184d" + integrity sha512-ptG9L0mjvJ5QtK11GsAFY+jGfsnqHDS6CY6Yw1xT7a9bhjfNYnf6UPwjV+pF6UgiucfNcMDNW9lkDLxvZKKxMg== + dependencies: + "@types/argparse" "1.0.38" + argparse "~1.0.9" + colors "~1.2.1" + string-argv "~0.3.1" + "@simple-dom/document@^1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@simple-dom/document/-/document-1.4.0.tgz#af60855f957f284d436983798ef1006cca1a1678" @@ -1324,6 +1450,11 @@ dependencies: "@types/estree" "*" +"@types/argparse@1.0.38": + version "1.0.38" + resolved "https://registry.yarnpkg.com/@types/argparse/-/argparse-1.0.38.tgz#a81fd8606d481f873a3800c6ebae4f1d768a56a9" + integrity sha512-ebDJ9b0e702Yr7pWgB0jzm+CX4Srzz8RcXtLJDJB+BSccqMa36uyH/zUsSYao5+BD1ytv3k3rPYCq4mAE1hsXA== + "@types/body-parser@*": version "1.19.2" resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.2.tgz#aea2059e28b7658639081347ac4fab3de166e6f0" @@ -1371,6 +1502,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.38.tgz#c1be40aa933723c608820a99a373a16d215a1ca2" integrity "sha1-wb5AqpM3I8YIggqZo3OhbSFaHKI= sha512-F/v7t1LwS4vnXuPooJQGBRKRGIoxWUTmA4VHfqjOccFsNDThD5bfUNpITive6s352O7o384wcpEaDV8rHCehDA==" +"@types/estree@0.0.39": + version "0.0.39" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f" + integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw== + "@types/express-serve-static-core@^4.17.18": version "4.17.28" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.28.tgz#c47def9f34ec81dc6328d0b1b5303d1ec98d86b8" @@ -1442,6 +1578,21 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-16.7.10.tgz#7aa732cc47341c12a16b7d562f519c2383b6d4fc" integrity sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA== +"@types/node@12.20.24": + version "12.20.24" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.24.tgz#c37ac69cb2948afb4cef95f424fa0037971a9a5c" + integrity sha512-yxDeaQIAJlMav7fH5AQqPH1u8YIuhYJXYBzxaQ4PifsU0GDO38MSdmEDeRlIxrKbC6NbEaaEHDanWb+y30U8SQ== + +"@types/node@^16.11.7": + version "16.11.26" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.26.tgz#63d204d136c9916fb4dcd1b50f9740fe86884e47" + integrity sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ== + +"@types/node@^17.0.18": + version "17.0.21" + resolved "https://registry.yarnpkg.com/@types/node/-/node-17.0.21.tgz#864b987c0c68d07b4345845c3e63b75edd143644" + integrity sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ== + "@types/node@^9.6.0": version "9.6.0" resolved "https://registry.yarnpkg.com/@types/node/-/node-9.6.0.tgz#d3480ee666df9784b1001a1872a2f6ccefb6c2d7" @@ -1452,6 +1603,11 @@ resolved "https://registry.yarnpkg.com/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz#d3357479a0fdfdd5907fe67e17e0a85c906e1301" integrity sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw== +"@types/object-path@^0.11.1": + version "0.11.1" + resolved "https://registry.yarnpkg.com/@types/object-path/-/object-path-0.11.1.tgz#eea5b357518597fc9c0a067ea3147f599fc1514f" + integrity sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg== + "@types/qs@*": version "6.9.7" resolved "https://registry.yarnpkg.com/@types/qs/-/qs-6.9.7.tgz#63bb7d067db107cc1e457c303bc25d511febf6cb" @@ -1487,6 +1643,11 @@ resolved "https://registry.yarnpkg.com/@types/rsvp/-/rsvp-4.0.4.tgz#55e93e7054027f1ad4b4ebc1e60e59eb091e2d32" integrity sha512-J3Ol++HCC7/hwZhanDvggFYU/GtxHxE/e7cGRWxR04BF7Tt3TqJZ84BkzQgDxmX0uu8IagiyfmfoUlBACh2Ilg== +"@types/semver@^7.3.9": + version "7.3.9" + resolved "https://registry.yarnpkg.com/@types/semver/-/semver-7.3.9.tgz#152c6c20a7688c30b967ec1841d31ace569863fc" + integrity sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ== + "@types/serve-static@*": version "1.13.10" resolved "https://registry.yarnpkg.com/@types/serve-static/-/serve-static-1.13.10.tgz#f5e0ce8797d2d7cc5ebeda48a52c96c4fa47a8d9" @@ -1500,6 +1661,11 @@ resolved "https://registry.yarnpkg.com/@types/symlink-or-copy/-/symlink-or-copy-1.2.0.tgz#4151a81b4052c80bc2becbae09f3a9ec010a9c7a" integrity sha512-Lja2xYuuf2B3knEsga8ShbOdsfNOtzT73GyJmZyY7eGl2+ajOqrs8yM5ze0fsSoYwvA6bw7/Qr7OZ7PEEmYwWg== +"@types/ua-parser-js@^0.7.36": + version "0.7.36" + resolved "https://registry.yarnpkg.com/@types/ua-parser-js/-/ua-parser-js-0.7.36.tgz#9bd0b47f26b5a3151be21ba4ce9f5fa457c5f190" + integrity sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ== + "@types/yauzl@^2.9.1": version "2.9.1" resolved "https://registry.yarnpkg.com/@types/yauzl/-/yauzl-2.9.1.tgz#d10f69f9f522eef3cf98e30afb684a1e1ec923af" @@ -1626,11 +1792,25 @@ resolved "https://registry.yarnpkg.com/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz#aa58042711d6e3275dd37dc597e5d31e8c290a44" integrity sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q== +"@wessberg/stringutil@^1.0.19": + version "1.0.19" + resolved "https://registry.yarnpkg.com/@wessberg/stringutil/-/stringutil-1.0.19.tgz#baadcb6f4471fe2d46462a7d7a8294e4b45b29ad" + integrity sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg== + "@xmldom/xmldom@^0.8.0": version "0.8.2" resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.2.tgz#b695ff674e8216efa632a3d36ad51ae9843380c0" integrity sha512-+R0juSseERyoPvnBQ/cZih6bpF7IpCXlWbHRoCRzYzqpz6gWHOgf8o4MOEf6KBVuOyqU+gCNLkCWVIJAro8XyQ== +"@yarn-tool/resolve-package@^1.0.40": + version "1.0.45" + resolved "https://registry.yarnpkg.com/@yarn-tool/resolve-package/-/resolve-package-1.0.45.tgz#4d9716a67903f46a76c8691eff546dafe55bf66f" + integrity sha512-xnfY8JceApkSTliZtr7X6yl1wZYhGbRp0beBMi1OtmvTVTm/ZSt3881Fw1M3ZwhHqr7OEfl8828LJK2q62BvoQ== + dependencies: + pkg-dir "< 6 >= 5" + tslib "^2.3.1" + upath2 "^3.1.12" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -1704,7 +1884,7 @@ ajv-keywords@^5.0.0: dependencies: fast-deep-equal "^3.1.3" -ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: +ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5, ajv@~6.12.6: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -1830,7 +2010,7 @@ are-we-there-yet@^3.0.0: delegates "^1.0.0" readable-stream "^3.6.0" -argparse@^1.0.7, argparse@~1.0.2: +argparse@^1.0.7, argparse@~1.0.2, argparse@~1.0.9: version "1.0.10" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity "sha1-vNZ5HqWuCXJeF+WtmIE0zUCz2RE= sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==" @@ -2865,6 +3045,33 @@ browser-stdout@1.3.1: resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" integrity "sha1-uqVZ7hTO1zRSIputcyZGfGH6vWA= sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" +browserslist-generator@^1.0.66: + version "1.0.66" + resolved "https://registry.yarnpkg.com/browserslist-generator/-/browserslist-generator-1.0.66.tgz#14f3f2cbf09e9a82e7c53a62f8cc18ce6c35eca3" + integrity sha512-aFDax4Qzh29DdyhHQBD2Yu2L5OvaDnvYFMbmpLrLwwaNK4H6dHEhC/Nxv93/+mfAA+a/t94ln0P2JZvHO6LZDA== + dependencies: + "@mdn/browser-compat-data" "^4.1.16" + "@types/object-path" "^0.11.1" + "@types/semver" "^7.3.9" + "@types/ua-parser-js" "^0.7.36" + browserslist "4.20.2" + caniuse-lite "^1.0.30001328" + isbot "3.4.5" + object-path "^0.11.8" + semver "^7.3.7" + ua-parser-js "^1.0.2" + +browserslist@4.20.2: + version "4.20.2" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88" + integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA== + dependencies: + caniuse-lite "^1.0.30001317" + electron-to-chromium "^1.4.84" + escalade "^3.1.1" + node-releases "^2.0.2" + picocolors "^1.0.0" + browserslist@^4.17.5, browserslist@^4.19.1: version "4.19.1" resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3" @@ -2876,6 +3083,17 @@ browserslist@^4.17.5, browserslist@^4.19.1: node-releases "^2.0.1" picocolors "^1.0.0" +browserslist@^4.20.2: + version "4.20.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf" + integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg== + dependencies: + caniuse-lite "^1.0.30001332" + electron-to-chromium "^1.4.118" + escalade "^3.1.1" + node-releases "^2.0.3" + picocolors "^1.0.0" + browserstack-local@^1.4.8: version "1.4.8" resolved "https://registry.yarnpkg.com/browserstack-local/-/browserstack-local-1.4.8.tgz#07f74a19b324cf2de69ffe65f9c2baa3a2dd9a0e" @@ -3031,6 +3249,11 @@ caniuse-lite@^1.0.30001286: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz#d753bf6444ed401eb503cbbe17aa3e1451b5a68c" integrity sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw== +caniuse-lite@^1.0.30001317, caniuse-lite@^1.0.30001328, caniuse-lite@^1.0.30001332: + version "1.0.30001340" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001340.tgz#029a2f8bfc025d4820fafbfaa6259fd7778340c7" + integrity sha512-jUNz+a9blQTQVu4uFcn17uAD8IDizPzQkIKh3LCJfg9BkyIqExYYdyc/ZSlWUSKb8iYiXxKsxbv4zYSvkqjrxw== + capture-exit@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/capture-exit/-/capture-exit-2.0.0.tgz#fb953bfaebeb781f62898239dabb426d08a509a4" @@ -3099,6 +3322,14 @@ chalk@1.0.0: strip-ansi "^2.0.1" supports-color "^1.3.0" +chalk@4.1.2, chalk@^4.0.0, chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^1.0.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -3119,14 +3350,6 @@ chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.0, chalk@^2.4.1, chalk@^2.4 escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.0.0, chalk@^4.1.0: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - charcodes@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4" @@ -3311,6 +3534,11 @@ colors@1.0.3: resolved "https://registry.yarnpkg.com/colors/-/colors-1.0.3.tgz#0433f44d809680fdeb60ed260f1b0c262e82a40b" integrity "sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs= sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==" +colors@~1.2.1: + version "1.2.5" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" + integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== + combined-stream@~0.0.4: version "0.0.7" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-0.0.7.tgz#0137e657baa5a7541c57ac37ac5fc07d73b4dc1f" @@ -3330,7 +3558,7 @@ 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@^2.20.0, commander@^2.6.0: +commander@^2.20.0, commander@^2.6.0, commander@^2.7.1: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity "sha1-/UhehMA+tIgcIHIrpIA16FMa6zM= sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" @@ -3350,6 +3578,13 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= +compatfactory@^0.0.13: + version "0.0.13" + resolved "https://registry.yarnpkg.com/compatfactory/-/compatfactory-0.0.13.tgz#3862c967623c8976eb1a11208f5cf84520c03346" + integrity sha512-k9Sl/Qal3xQPnjAFZaRpl7jlCh0hDEhVaxyiTMfiHKC/w5TYn4Nds+7340X/v1OrAQC5xGBtaD2JpWgPhXWaAw== + dependencies: + helpertypes "^0.0.18" + component-emitter@^1.2.1, component-emitter@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" @@ -3529,6 +3764,13 @@ cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: shebang-command "^2.0.0" which "^2.0.1" +crosspath@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crosspath/-/crosspath-1.0.0.tgz#0892ebb51676eb57df56db8c7c46d3344555051b" + integrity sha512-mpjkSErNO6vioL/Cde2aF4UBysPFEMyn+1AN1t7Oc4yqvzSRWe8iBte4P8BHyjo64OmC+ZBxwjIqmpSpIWiQ7Q== + dependencies: + "@types/node" "^16.11.7" + cryptiles@0.2.x: version "0.2.2" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-0.2.2.tgz#ed91ff1f17ad13d3748288594f8a48a0d26f325c" @@ -3805,6 +4047,11 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==" +electron-to-chromium@^1.4.118, electron-to-chromium@^1.4.84: + version "1.4.137" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.137.tgz#186180a45617283f1c012284458510cd99d6787f" + integrity sha512-0Rcpald12O11BUogJagX3HsCN3FE83DSqWjgXoHo5a72KUKMSfI39XBgJpgNNxS9fuGzytaFjE06kZkiVFy2qA== + electron-to-chromium@^1.4.17: version "1.4.44" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.44.tgz#8a41923afdd6ef5ddabe001626036ba5d1d64ae6" @@ -4560,6 +4807,16 @@ estree-walker@^0.6.0: resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.0.tgz#5d865327c44a618dde5699f763891ae31f257dae" integrity "sha1-XYZTJ8RKYY3eVpn3Y4ka4x8lfa4= sha512-peq1RfVAVzr3PU/jL31RaOjUKLoZJpObQWJJ+LgfcxDUifyLZ1RjPQZTl0pzj2uJ45b7A7XpyppXvxdEqzo4rw==" +estree-walker@^1.0.1: + version "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: + 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== + esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" @@ -4930,7 +5187,7 @@ find-babel-config@^1.1.0, find-babel-config@^1.2.0: json5 "^0.5.1" path-exists "^3.0.0" -find-cache-dir@^3.3.1: +find-cache-dir@^3.3.1, find-cache-dir@^3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.2.tgz#b30c5b6eff0730731aea9bbd9dbecbd80256d64b" integrity sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig== @@ -5141,9 +5398,9 @@ fs-extra@^0.30.0: rimraf "^2.2.8" fs-extra@^10.0.0, fs-extra@^10.0.1: - version "10.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" - integrity sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ== + version "10.0.1" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.0.1.tgz#27de43b4320e833f6867cc044bfce29fdf0ef3b8" + integrity sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag== dependencies: graceful-fs "^4.2.0" jsonfile "^6.0.1" @@ -5167,7 +5424,7 @@ fs-extra@^5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@^7.0.0, fs-extra@^7.0.1: +fs-extra@^7.0.0, fs-extra@^7.0.1, fs-extra@~7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== @@ -5705,6 +5962,11 @@ heimdalljs@^0.2.0, heimdalljs@^0.2.1, heimdalljs@^0.2.3, heimdalljs@^0.2.5, heim dependencies: rsvp "~3.2.1" +helpertypes@^0.0.18: + version "0.0.18" + resolved "https://registry.yarnpkg.com/helpertypes/-/helpertypes-0.0.18.tgz#fd2bf5d3351cc7d80f7876732361d3adba63e5b4" + integrity sha512-XRhfbSEmR+poXUC5/8AbmYNJb2riOT6qPzjGJZr0S9YedHiaY+/tzPYzWMUclYMEdCYo/1l8PDYrQFCj02v97w== + hoek@0.9.x: version "0.9.1" resolved "https://registry.yarnpkg.com/hoek/-/hoek-0.9.1.tgz#3d322462badf07716ea7eb85baf88079cddce505" @@ -5860,6 +6122,11 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: parent-module "^1.0.0" resolve-from "^4.0.0" +import-lazy@~4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-4.0.0.tgz#e8eb627483a0a43da3c03f3e35548be5cb0cc153" + integrity sha512-rKtvo6a868b5Hu3heneU+L4yEQ4jYKLtjpnPeUdK7h0yzXGmyBTypknlkCvHFBqfX9YlorEiMM6Dnq/5atfHkw== + imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -6010,7 +6277,7 @@ is-callable@^1.1.4, is-callable@^1.2.4: resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.4.tgz#47301d58dd0259407865547853df6d61fe471945" integrity sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w== -is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1: +is-core-module@^2.1.0, is-core-module@^2.5.0, is-core-module@^2.8.0, is-core-module@^2.8.1: version "2.8.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.8.1.tgz#f59fdfca701d5879d0a6b100a40aa1560ce27211" integrity sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA== @@ -6278,6 +6545,11 @@ isbinaryfile@^4.0.8: resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.8.tgz#5d34b94865bd4946633ecc78a026fc76c5b11fcf" integrity sha512-53h6XFniq77YdW+spoRrebh0mnmTxRPTlcuIArO57lmMdq4uBKFKaeTjnb92oYWrSn/LVL+LT+Hap2tFQj8V+w== +isbot@3.4.5: + version "3.4.5" + resolved "https://registry.yarnpkg.com/isbot/-/isbot-3.4.5.tgz#69554585b725238692d9cc41d9a842c5b37fa33d" + integrity sha512-+KD6q1BBtw0iK9aGBGSfxJ31/ZgizKRjhm8ebgJUBMx0aeeQuIJ1I72beCoIrltIZGrSm4vmrxRxrG5n1aUTtw== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -6304,6 +6576,11 @@ istextorbinary@2.1.0: editions "^1.1.1" textextensions "1 || 2" +jju@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= + jmespath@0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/jmespath/-/jmespath-0.16.0.tgz#b15b0a85dfd4d930d43e69ed605943c802785076" @@ -6339,6 +6616,14 @@ js-yaml@^3.14.0, js-yaml@^3.2.5, js-yaml@^3.2.7: argparse "^1.0.7" esprima "^4.0.0" +js-yaml@~3.13.1: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsesc@^2.5.1: version "2.5.2" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" @@ -6415,6 +6700,11 @@ json5@^2.1.2: dependencies: minimist "^1.2.5" +jsonc-parser@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.0.0.tgz#abdd785701c7e7eaca8a9ec8cf070ca51a745a22" + integrity sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA== + jsonfile@^2.1.0: version "2.4.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" @@ -6481,6 +6771,11 @@ klaw@^1.0.0: optionalDependencies: graceful-fs "^4.1.9" +klaw@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-4.0.1.tgz#8dc6f5723f05894e8e931b516a8ff15c2976d368" + integrity sha512-pgsE40/SvC7st04AHiISNewaIMUbY5V/K8b21ekiPiFoYs/EYSdsGa+FJArB1d441uq4Q8zZyIxvAzkGNlBdRw== + lazy-cache@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-2.0.2.tgz#b9190a4f913354694840859f8a8f7084d8822264" @@ -6866,6 +7161,11 @@ lodash.forown@~2.3.0: lodash._objecttypes "~2.3.0" lodash.keys "~2.3.0" +lodash.get@^4.4.2: + version "4.4.2" + resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + lodash.identity@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.identity/-/lodash.identity-2.3.0.tgz#6b01a210c9485355c2a913b48b6711219a173ded" @@ -6881,6 +7181,11 @@ lodash.isarray@^3.0.0: resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" integrity "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U= sha512-JwObCrNJuT0Nnbuecmqr5DgtuBppuCvGD9lxjFpAzwnVtdGoDQ1zig+5W8k5/6Gcn0gZ3936HDAlGd28i7sOGQ==" +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + lodash.isfunction@~2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-2.3.0.tgz#6b2973e47a647cf12e70d676aea13643706e5267" @@ -6991,7 +7296,7 @@ lodash.values@~2.3.0: dependencies: lodash.keys "~2.3.0" -lodash@^4.0.0, lodash@^4.16.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.21, lodash@^4.17.4: +lodash@^4.0.0, lodash@^4.16.1, lodash@^4.17.11, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.2, lodash@^4.17.21, lodash@^4.17.4, lodash@~4.17.15: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -7035,6 +7340,11 @@ lru-cache@^6.0.0: dependencies: yallist "^4.0.0" +lunr@^2.3.9: + version "2.3.9" + resolved "https://registry.yarnpkg.com/lunr/-/lunr-2.3.9.tgz#18b123142832337dd6e964df1a5a7707b25d35e1" + integrity sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow== + magic-string@^0.24.0: version "0.24.0" resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.24.0.tgz#1b396d26406188f1fa3730a68229562d36a1c2f2" @@ -7049,6 +7359,13 @@ magic-string@^0.25.2, magic-string@^0.25.7: dependencies: sourcemap-codec "^1.4.4" +magic-string@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.26.1.tgz#ba9b651354fa9512474199acecf9c6dbe93f97fd" + integrity sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg== + dependencies: + sourcemap-codec "^1.4.8" + make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" @@ -7134,6 +7451,11 @@ markdown-it@^8.3.1: mdurl "^1.0.1" uc.micro "^1.0.5" +marked@^4.0.12: + version "4.0.12" + resolved "https://registry.yarnpkg.com/marked/-/marked-4.0.12.tgz#2262a4e6fd1afd2f13557726238b69a48b982f7d" + integrity sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ== + matcher-collection@^1.0.0, matcher-collection@^1.1.1: version "1.1.2" resolved "https://registry.yarnpkg.com/matcher-collection/-/matcher-collection-1.1.2.tgz#1076f506f10ca85897b53d14ef54f90a5c426838" @@ -7325,9 +7647,9 @@ minimatch@4.2.1: brace-expansion "^1.1.7" minimatch@^5.0.1: - version "5.1.0" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.0.tgz#1717b464f4971b144f6aabe8f2d0b8e4511e09c7" - integrity sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg== + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== dependencies: brace-expansion "^2.0.1" @@ -7541,6 +7863,11 @@ node-releases@^2.0.1: resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5" integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA== +node-releases@^2.0.2, node-releases@^2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476" + integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ== + node-uuid@~1.4.0: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" @@ -7677,6 +8004,11 @@ object-keys@^1.0.12, object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity "sha1-HEfyct8nfzsdrwYWd9nILiMixg4= sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" +object-path@^0.11.8: + version "0.11.8" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.8.tgz#ed002c02bbdd0070b78a27455e8ae01fc14d4742" + integrity sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA== + object-visit@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" @@ -7944,6 +8276,13 @@ path-is-absolute@1.0.1, path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= +path-is-network-drive@^1.0.13: + version "1.0.13" + resolved "https://registry.yarnpkg.com/path-is-network-drive/-/path-is-network-drive-1.0.13.tgz#c9aa0183eb72c328aa83f43def93ddcb9d7ec4d4" + integrity sha512-Hg74mRN6mmXV+gTm3INjFK40ncAmC/Lo4qoQaSZ+GT3hZzlKdWQSqAjqyPeW0SvObP2W073WyYEBWY9d3wOm3A== + dependencies: + tslib "^2.3.1" + path-key@^2.0.0, path-key@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" @@ -7954,7 +8293,7 @@ path-key@^3.0.0, path-key@^3.1.0: resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" integrity "sha1-WB9q3mWMu6ZaDTOA3ndTKVBU83U= sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" -path-parse@^1.0.7: +path-parse@^1.0.6, path-parse@^1.0.7: version "1.0.7" resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== @@ -7976,6 +8315,13 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" +path-strip-sep@^1.0.10: + version "1.0.10" + resolved "https://registry.yarnpkg.com/path-strip-sep/-/path-strip-sep-1.0.10.tgz#2be4e789406b298af8709ff79af716134b733b98" + integrity sha512-JpCy+8LAJQQTO1bQsb/84s1g+/Stm3h39aOpPRBQ/paMUGVPPZChLTOTKHoaCkc/6sKuF7yVsnq5Pe1S6xQGcA== + dependencies: + tslib "^2.3.1" + path-to-regexp@0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" @@ -8015,7 +8361,7 @@ picocolors@^1.0.0: resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c" integrity sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ== -picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.3: +picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.2.2, picomatch@^2.2.3: version "2.3.1" resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== @@ -8049,6 +8395,13 @@ pkg-dir@4.2.0, pkg-dir@^4.1.0: dependencies: find-up "^4.0.0" +"pkg-dir@< 6 >= 5": + version "5.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-5.0.0.tgz#a02d6aebe6ba133a928f74aec20bafdfe6b8e760" + integrity sha512-NPE8TDbzl/3YQYY7CSS228s3g2ollTFnc+Qi3tqmqJp9Vg2ovUpixcJEo2HJScN2Ez+kEaal6y70c0ehqJBJeA== + dependencies: + find-up "^5.0.0" + pkg-up@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" @@ -8676,6 +9029,21 @@ resolve@^1.10.0, resolve@^1.10.1, resolve@^1.11.1, resolve@^1.13.1, resolve@^1.1 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" +resolve@~1.17.0: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +resolve@~1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.19.0.tgz#1af5bf630409734a067cae29318aac7fa29a267c" + integrity sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg== + dependencies: + is-core-module "^2.1.0" + path-parse "^1.0.6" + responselike@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" @@ -8739,6 +9107,15 @@ rollup-plugin-commonjs@^9.3.4: resolve "^1.10.0" rollup-pluginutils "^2.6.0" +rollup-plugin-dts@^4.1.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-4.2.1.tgz#c17968a0f7c5ae70a9e0ab37e715f3ef63da01c7" + integrity sha512-eaxQZNUJ5iQcxNGlpJ1CUgG4OSVqWjDZ3nNSWBIoGrpcote2aNphSe1RJOaSYkb8dwn3o+rYm1vvld/5z3EGSQ== + dependencies: + magic-string "^0.26.1" + optionalDependencies: + "@babel/code-frame" "^7.16.7" + rollup-plugin-node-resolve@^4.2.4: version "4.2.4" resolved "https://registry.yarnpkg.com/rollup-plugin-node-resolve/-/rollup-plugin-node-resolve-4.2.4.tgz#7d370f8d6fd3031006a0032c38262dd9be3c6250" @@ -8749,6 +9126,34 @@ rollup-plugin-node-resolve@^4.2.4: is-module "^1.0.0" resolve "^1.10.0" +rollup-plugin-ts@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/rollup-plugin-ts/-/rollup-plugin-ts-2.0.7.tgz#6994a656b096660f58eb24669f4e30b773f7a680" + integrity sha512-M9sppRKX6y/b2KXbGdUdHid0tshAEK/sEeYLBHBJiBa4swukSsoFVXKGGZasLcjaXhgUnnizFuvFFj6znxwvSA== + dependencies: + "@rollup/pluginutils" "^4.2.0" + "@wessberg/stringutil" "^1.0.19" + browserslist "^4.20.2" + browserslist-generator "^1.0.66" + chalk "4.1.2" + compatfactory "^0.0.13" + crosspath "1.0.0" + magic-string "^0.26.1" + ts-clone-node "^0.3.32" + tslib "^2.3.1" + +rollup-plugin-typescript2@^0.31.2: + version "0.31.2" + resolved "https://registry.yarnpkg.com/rollup-plugin-typescript2/-/rollup-plugin-typescript2-0.31.2.tgz#463aa713a7e2bf85b92860094b9f7fb274c5a4d8" + integrity sha512-hRwEYR1C8xDGVVMFJQdEVnNAeWRvpaY97g5mp3IeLnzhNXzSVq78Ye/BJ9PAaUfN4DXa/uDnqerifMOaMFY54Q== + dependencies: + "@rollup/pluginutils" "^4.1.2" + "@yarn-tool/resolve-package" "^1.0.40" + find-cache-dir "^3.3.2" + fs-extra "^10.0.0" + resolve "^1.20.0" + tslib "^2.3.1" + rollup-pluginutils@^2.0.1, rollup-pluginutils@^2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.6.0.tgz#203706edd43dfafeaebc355d7351119402fc83ad" @@ -8774,6 +9179,13 @@ rollup@^0.57.1: signal-exit "^3.0.2" sourcemap-codec "^1.4.1" +rollup@^2.67.2: + version "2.69.1" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.69.1.tgz#d37f8bf9c9d60018df58c5c9ec36705a7b90dc6e" + integrity sha512-xaQKTomUVZBopk38EIshM/kOoPFkKWisgBV7Emy80coP9MOSLUDrba1jKZhqH0iS5DoGcRbbcuyl/BzblV8w5w== + optionalDependencies: + fsevents "~2.3.2" + route-recognizer@^0.3.4: version "0.3.4" resolved "https://registry.yarnpkg.com/route-recognizer/-/route-recognizer-0.3.4.tgz#39ab1ffbce1c59e6d2bdca416f0932611e4f3ca3" @@ -8935,7 +9347,14 @@ semver@^6.0.0, semver@^6.1.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semve resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== -semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7: +semver@^7.0.0, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@~7.3.0: + version "7.3.5" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7" + integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ== + dependencies: + lru-cache "^6.0.0" + +semver@^7.3.7: version "7.3.7" resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f" integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g== @@ -9054,6 +9473,15 @@ shellwords@^0.1.1: resolved "https://registry.yarnpkg.com/shellwords/-/shellwords-0.1.1.tgz#d6b9181c1a48d397324c84871efbcfc73fc0654b" integrity "sha1-1rkYHBpI05cyTISHHvvPxz/AZUs= sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==" +shiki@^0.10.1: + version "0.10.1" + resolved "https://registry.yarnpkg.com/shiki/-/shiki-0.10.1.tgz#6f9a16205a823b56c072d0f1a0bcd0f2646bef14" + integrity sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng== + dependencies: + jsonc-parser "^3.0.0" + vscode-oniguruma "^1.6.1" + vscode-textmate "5.2.0" + side-channel@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.4.tgz#efce5c8fdc104ee751b25c58d4290011fa5ea2cf" @@ -9252,6 +9680,11 @@ sourcemap-codec@^1.4.1, sourcemap-codec@^1.4.4: resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.4.tgz#c63ea927c029dd6bd9a2b7fa03b3fec02ad56e9f" integrity "sha1-xj6pJ8Ap3WvZorf6A7P+wCrVbp8= sha512-CYAPYdBu34781kLHkaW3m6b/uUSyMOC2R61gcYMWooeuaGtjof86ZA/8T+qVPPt7np1085CR9hmMGrySwEc8Xg==" +sourcemap-codec@^1.4.8: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + sourcemap-validator@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/sourcemap-validator/-/sourcemap-validator-1.1.0.tgz#00454547d1682186e1498a7208e022e8dfa8738f" @@ -9338,6 +9771,11 @@ stream-combiner@~0.0.4: dependencies: duplexer "~0.1.1" +string-argv@~0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/string-argv/-/string-argv-0.3.1.tgz#95e2fbec0427ae19184935f816d74aaa4c5c19da" + integrity sha512-a1uQGz7IyVy9YwhqjZIZu1c8JO8dNIe20xBmSS6qu9kv++k3JGzCVmprbNN5Kn+BgzD5E7YYwg1CcjuJMRNsvg== + string-template@~0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/string-template/-/string-template-0.2.1.tgz#42932e598a352d01fc22ec3367d9d84eec6c9add" @@ -9481,7 +9919,7 @@ strip-indent@^3.0.0: dependencies: min-indent "^1.0.0" -strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@3.1.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1, strip-json-comments@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity "sha1-MfEoGzgyYwQ0gxwxDAHMzajL4AY= sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" @@ -9696,6 +10134,11 @@ time-zone@^1.0.0: resolved "https://registry.yarnpkg.com/time-zone/-/time-zone-1.0.0.tgz#99c5bf55958966af6d06d83bdf3800dc82faec5d" integrity "sha1-mcW/VZWJZq9tBtg73zgA3IL67F0= sha512-TIsDdtKo6+XrPtiTm1ssmMngN1sAhyKnTO2kunQWqNPWIVvCm15Wmw4SWInwTVgJ5u/Tr04+8Ei9TNcw4x4ONA==" +timsort@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + tiny-glob@0.2.9: version "0.2.9" resolved "https://registry.yarnpkg.com/tiny-glob/-/tiny-glob-0.2.9.tgz#2212d441ac17928033b110f8b3640683129d31e2" @@ -9843,6 +10286,13 @@ trim-newlines@^3.0.0: resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" integrity sha512-c1PTsA3tYrIsLGkJkzHF+w9F2EyxfXGo4UyJc4pFL++FMjnq0HJS69T3M7d//gKrFKwy429bouPescbjecU+Zw== +ts-clone-node@^0.3.32: + version "0.3.32" + resolved "https://registry.yarnpkg.com/ts-clone-node/-/ts-clone-node-0.3.32.tgz#daf7f941282a6c8f89b2053bf7326d67d01401f4" + integrity sha512-YYGvoWy2Ba98/YC/0leD7IRsU/q5pu/KRg9dD8omzkbgoZ8g7gfYfED9mWMTyNp7J3CQiiKyvM62B7mXXHKU7Q== + dependencies: + compatfactory "^0.0.13" + tsconfig-paths@^3.12.0: version "3.12.0" resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz#19769aca6ee8f6a1a341e38c8fa45dd9fb18899b" @@ -9858,6 +10308,16 @@ tslib@^1.8.1, tslib@^1.9.0: resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.9.3.tgz#d7e4dd79245d85428c4d7e4822a79917954ca286" integrity "sha1-1+TdeSRdhUKMTX5IIqeZF5VMooY= sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ==" +tslib@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01" + integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw== + +tslib@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.4.0.tgz#7cecaa7f073ce680a05847aa77be941098f36dc3" + integrity sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ== + tsutils@^3.21.0: version "3.21.0" resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623" @@ -9932,16 +10392,32 @@ typedarray-to-buffer@^3.1.5: dependencies: is-typedarray "^1.0.0" +typedoc@^0.22.15: + version "0.22.15" + resolved "https://registry.yarnpkg.com/typedoc/-/typedoc-0.22.15.tgz#c6ad7ed9d017dc2c3a06c9189cb392bd8e2d8c3f" + integrity sha512-CMd1lrqQbFvbx6S9G6fL4HKp3GoIuhujJReWqlIvSb2T26vGai+8Os3Mde7Pn832pXYemd9BMuuYWhFpL5st0Q== + dependencies: + glob "^7.2.0" + lunr "^2.3.9" + marked "^4.0.12" + minimatch "^5.0.1" + shiki "^0.10.1" + typescript-memoize@^1.0.0-alpha.3, typescript-memoize@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/typescript-memoize/-/typescript-memoize-1.1.0.tgz#4a8f512d06fc995167c703a3592219901db8bc79" integrity sha512-LQPKVXK8QrBBkL/zclE6YgSWn0I8ew5m0Lf+XL00IwMhlotqRLlzHV+BRrljVQIc+NohUAuQP7mg4HQwrx5Xbg== -typescript@~4.6.4: +typescript@~4.6.3, typescript@~4.6.4: version "4.6.4" resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9" integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg== +ua-parser-js@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.2.tgz#e2976c34dbfb30b15d2c300b2a53eac87c57a775" + integrity sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg== + uc.micro@^1.0.0, uc.micro@^1.0.1, uc.micro@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/uc.micro/-/uc.micro-1.0.6.tgz#9c411a802a409a91fc6cf74081baba34b24499ac" @@ -10058,6 +10534,15 @@ untildify@^2.1.0: dependencies: os-homedir "^1.0.0" +upath2@^3.1.12: + version "3.1.12" + resolved "https://registry.yarnpkg.com/upath2/-/upath2-3.1.12.tgz#441b3dfbadde21731017bd1b7beb169498efd0a9" + integrity sha512-yC3eZeCyCXFWjy7Nu4pgjLhXNYjuzuUmJiRgSSw6TJp8Emc+E4951HGPJf+bldFC5SL7oBLeNbtm1fGzXn2gxw== + dependencies: + path-is-network-drive "^1.0.13" + path-strip-sep "^1.0.10" + tslib "^2.3.1" + uri-js@^4.2.2: version "4.2.2" resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" @@ -10149,6 +10634,11 @@ validate-npm-package-name@^3.0.0: dependencies: builtins "^1.0.3" +validator@^13.7.0: + version "13.7.0" + resolved "https://registry.yarnpkg.com/validator/-/validator-13.7.0.tgz#4f9658ba13ba8f3d82ee881d3516489ea85c0857" + integrity sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw== + vary@^1, vary@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" @@ -10181,6 +10671,16 @@ vow@^0.4.17, vow@^0.4.7: resolved "https://registry.yarnpkg.com/vow/-/vow-0.4.18.tgz#18a77994ce30790ccd22d57a3a25cf5e131d8d1b" integrity "sha1-GKd5lM4weQzNItV6OiXPXhMdjRs= sha512-7QGozxlOhour77BCQbbyW5XFP8ioIz/DPK67IyO3DnJtF0WXrXueMwqrYFM9yqyfgENcyxL+vktz2oJeZfdWtw==" +vscode-oniguruma@^1.6.1: + version "1.6.2" + resolved "https://registry.yarnpkg.com/vscode-oniguruma/-/vscode-oniguruma-1.6.2.tgz#aeb9771a2f1dbfc9083c8a7fdd9cccaa3f386607" + integrity sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA== + +vscode-textmate@5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/vscode-textmate/-/vscode-textmate-5.2.0.tgz#01f01760a391e8222fe4f33fbccbd1ad71aed74e" + integrity sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ== + walk-sync@^0.2.0: version "0.2.7" resolved "https://registry.yarnpkg.com/walk-sync/-/walk-sync-0.2.7.tgz#b49be4ee6867657aeb736978b56a29d10fa39969" @@ -10495,3 +10995,14 @@ yuidocjs@^0.10.0: minimatch "^3.0.2" rimraf "^2.4.1" yui "^3.18.1" + +z-schema@~5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/z-schema/-/z-schema-5.0.2.tgz#f410394b2c9fcb9edaf6a7511491c0bb4e89a504" + integrity sha512-40TH47ukMHq5HrzkeVE40Ad7eIDKaRV2b+Qpi2prLc9X9eFJFzV7tMe5aH12e6avaSS/u5l653EQOv+J9PirPw== + dependencies: + lodash.get "^4.4.2" + lodash.isequal "^4.5.0" + validator "^13.7.0" + optionalDependencies: + commander "^2.7.1"