diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 1db79d71..fb67423a 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -47,7 +47,6 @@ jobs: ./app-config-config/coverage/coverage-final.json, ./app-config-core/coverage/coverage-final.json, ./app-config-cypress/coverage/coverage-final.json, - ./app-config-default-extensions/coverage/coverage-final.json, ./app-config-encryption/coverage/coverage-final.json, ./app-config-exec/coverage/coverage-final.json, ./app-config-extension-utils/coverage/coverage-final.json, diff --git a/.github/workflows/publishing.yml b/.github/workflows/publishing.yml index 3673bb01..25e20f31 100644 --- a/.github/workflows/publishing.yml +++ b/.github/workflows/publishing.yml @@ -22,174 +22,175 @@ jobs: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-config/package.json + tag: next - name: app-config-core uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-core/package.json + tag: next - name: app-config-cypress uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-cypress/package.json + tag: next - name: app-config-electron uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-electron/package.json - - name: app-config-default-extensions - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - access: public - package: ./app-config-default-extensions/package.json + tag: next - name: app-config-encryption uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-encryption/package.json + tag: next - name: app-config-exec uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-exec/package.json + tag: next - name: app-config-extension-utils uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-extension-utils/package.json + tag: next - name: app-config-extensions uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-extensions/package.json + tag: next - name: app-config-generate uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-generate/package.json + tag: next - name: app-config-git uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-git/package.json + tag: next - name: app-config-inject uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-inject/package.json + tag: next - name: app-config-js uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-js/package.json + tag: next - name: app-config-logging uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-logging/package.json + tag: next - name: app-config-meta uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-meta/package.json + tag: next - name: app-config-node uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-node/package.json + tag: next - name: app-config-react-native uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-react-native/package.json + tag: next - name: app-config-schema uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-schema/package.json + tag: next - name: app-config-settings uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-settings/package.json + tag: next - name: app-config-utils uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-utils/package.json + tag: next - name: app-config-v1-compat uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-v1-compat/package.json + tag: next - name: app-config-vault uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-vault/package.json + tag: next - name: app-config-webpack uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-webpack/package.json + tag: next - name: app-config-rollup uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-rollup/package.json + tag: next - name: app-config-vite uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-vite/package.json + tag: next - name: app-config-esbuild uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-esbuild/package.json - - name: lcdev-app-config-inject - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - access: public - package: ./lcdev-app-config-inject/package.json - - name: lcdev-app-config-webpack-plugin - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - access: public - package: ./lcdev-app-config-webpack-plugin/package.json - - name: lcdev-react-native-app-config-transformer - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - access: public - package: ./lcdev-react-native-app-config-transformer/package.json + tag: next # Do these last, since they're most commonly used by consumers - name: app-config-cli @@ -198,15 +199,11 @@ jobs: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-cli/package.json + tag: next - name: app-config-main uses: JS-DevTools/npm-publish@v1 with: token: ${{ secrets.NPM_TOKEN }} access: public package: ./app-config-main/package.json - - name: lcdev-app-config - uses: JS-DevTools/npm-publish@v1 - with: - token: ${{ secrets.NPM_TOKEN }} - access: public - package: ./lcdev-app-config/package.json + tag: next diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 560f6683..7e9d4933 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -43,7 +43,6 @@ If you are adding anything new or changing behavior, please add applicable tests - `@app-config/git`: `$git` parsing extension - `@app-config/v1-compat`: v1 version compatibility extension - `@app-config/extensions`: common parsing extensions -- `@app-config/default-extensions`: all default parsing extensions - `@app-config/generate`: code generation - `@app-config/config`: config loading - `@app-config/meta`: meta file loading diff --git a/app-config-cli/package.json b/app-config-cli/package.json index 5ef28e80..7a797808 100644 --- a/app-config-cli/package.json +++ b/app-config-cli/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/cli", "description": "CLI for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -36,15 +36,15 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/config": "^2.8.0", - "@app-config/core": "^2.8.0", - "@app-config/encryption": "^2.8.0", - "@app-config/generate": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/schema": "^2.8.0", - "@app-config/utils": "^2.8.0", - "ajv": "7", + "@app-config/config": "^3.0.0-alpha.6", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/encryption": "^3.0.0-alpha.6", + "@app-config/generate": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/schema": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", + "ajv": "8", "clipboardy": "2", "common-tags": "1", "execa": "5", @@ -53,7 +53,7 @@ "yargs": "16" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0", + "@app-config/test-utils": "^3.0.0-alpha.6", "@types/common-tags": "1", "@types/fs-extra": "9" }, diff --git a/app-config-cli/src/validation.ts b/app-config-cli/src/validation.ts index 672d4cb3..63f6e3d4 100644 --- a/app-config-cli/src/validation.ts +++ b/app-config-cli/src/validation.ts @@ -43,7 +43,7 @@ export async function validateAllConfigVariants({ await Promise.all( appConfigFiles.map(async (filename) => { - const parsed = await new FileSource(filename).read(); + const parsed = await new FileSource(filename).read(undefined, { environmentAliases }); parsed.visitAll((value) => { const obj = value.asObject(); diff --git a/app-config-config/package.json b/app-config-config/package.json index fa9cd6bf..e399d018 100644 --- a/app-config-config/package.json +++ b/app-config-config/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/config", "description": "The config in @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,17 +30,16 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/default-extensions": "^2.8.0", - "@app-config/extensions": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/meta": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/schema": "^2.8.0", - "@app-config/utils": "^2.8.0" + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/extensions": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/meta": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/schema": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0" + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-config/src/index.test.ts b/app-config-config/src/index.test.ts index a5aa5a63..293c6516 100644 --- a/app-config-config/src/index.test.ts +++ b/app-config-config/src/index.test.ts @@ -342,154 +342,6 @@ describe('CI Environment Variable Extension', () => { }); }); -describe('V1 Compatibility', () => { - it('retains nested properties called app-config', async () => { - await withTempFiles( - { - '.app-config.yml': ` - nested: - app-config: - extends: base-file.yml - `, - }, - async (inDir) => { - const { fullConfig } = await loadUnvalidatedConfig({ directory: inDir('.') }); - - // keeps config intact, since app-config isn't at the root - expect(fullConfig).toEqual({ nested: { 'app-config': { extends: 'base-file.yml' } } }); - }, - ); - }); - - it('uses special app-config property for $extends', async () => { - await withTempFiles( - { - '.app-config.yml': ` - app-config: { extends: "base-file.yml" } - foo: 88 - `, - 'base-file.yml': ` - foo: 42 - bar: foo - `, - }, - async (inDir) => { - const { fullConfig } = await loadUnvalidatedConfig({ directory: inDir('.') }); - - expect(fullConfig).toEqual({ foo: 88, bar: 'foo' }); - }, - ); - }); - - it('uses special app-config property for $extendsOptional', async () => { - await withTempFiles( - { - '.app-config.yml': ` - app-config: { extendsOptional: "base-file.yml" } - foo: 88 - `, - 'base-file.yml': ` - foo: 42 - bar: foo - `, - }, - async (inDir) => { - const { fullConfig } = await loadUnvalidatedConfig({ directory: inDir('.') }); - - expect(fullConfig).toEqual({ foo: 88, bar: 'foo' }); - }, - ); - - await withTempFiles( - { - '.app-config.yml': ` - app-config: { extendsOptional: "base-file.yml" } - foo: 88 - `, - }, - async (inDir) => { - const { fullConfig } = await loadUnvalidatedConfig({ directory: inDir('.') }); - - expect(fullConfig).toEqual({ foo: 88 }); - }, - ); - }); - - it('uses special app-config property for $override', async () => { - await withTempFiles( - { - '.app-config.yml': ` - app-config: { override: "base-file.yml" } - foo: 88 - `, - 'base-file.yml': ` - foo: 42 - bar: foo - `, - }, - async (inDir) => { - const { fullConfig } = await loadUnvalidatedConfig({ directory: inDir('.') }); - - expect(fullConfig).toEqual({ foo: 42, bar: 'foo' }); - }, - ); - }); - - it('uses special app-config property for $overrideOptional', async () => { - await withTempFiles( - { - '.app-config.yml': ` - app-config: { overrideOptional: "base-file.yml" } - foo: 88 - `, - 'base-file.yml': ` - foo: 42 - bar: foo - `, - }, - async (inDir) => { - const { fullConfig } = await loadUnvalidatedConfig({ directory: inDir('.') }); - - expect(fullConfig).toEqual({ foo: 42, bar: 'foo' }); - }, - ); - - await withTempFiles( - { - '.app-config.yml': ` - app-config: { overrideOptional: "base-file.yml" } - foo: 88 - `, - }, - async (inDir) => { - const { fullConfig } = await loadUnvalidatedConfig({ directory: inDir('.') }); - - expect(fullConfig).toEqual({ foo: 88 }); - }, - ); - }); - - it('uses an ambiguous path in special app-config property', async () => { - await withTempFiles( - { - '.app-config.yml': ` - app-config: { extends: "base-file" } - foo: 88 - `, - 'base-file.yml': ` - foo: 42 - bar: foo - `, - }, - async (inDir) => { - const { fullConfig } = await loadUnvalidatedConfig({ directory: inDir('.') }); - - expect(fullConfig).toEqual({ foo: 88, bar: 'foo' }); - }, - ); - }); -}); - describe('Special values', () => { it('fails to loadUnvalidatedConfig when a $ prefixed key is seen', async () => { process.env.APP_CONFIG = JSON.stringify({ a: { b: { $c: true } } }); diff --git a/app-config-config/src/index.ts b/app-config-config/src/index.ts index e77c49c0..2ec7356a 100644 --- a/app-config-config/src/index.ts +++ b/app-config-config/src/index.ts @@ -18,8 +18,11 @@ import { asEnvOptions, currentEnvironment, } from '@app-config/node'; -import { markAllValuesAsSecret } from '@app-config/extensions'; -import { defaultExtensions, defaultEnvExtensions } from '@app-config/default-extensions'; +import { + defaultExtensions, + defaultEnvExtensions, + markAllValuesAsSecret, +} from '@app-config/extensions'; import { loadSchema, JSONSchema, SchemaLoadingOptions, Schema } from '@app-config/schema'; import { loadMetaConfig, loadExtraParsingExtensions } from '@app-config/meta'; @@ -111,9 +114,7 @@ export async function loadUnvalidatedConfig({ environmentSourceNames, ); - const parsingExtensions = - parsingExtensionsArg ?? - defaultExtensions(environmentAliases, environmentOverride, undefined, environmentSourceNames); + const parsingExtensions = parsingExtensionsArg ?? defaultExtensions(); const secretsFileExtensions = secretsFileExtensionsArg ?? parsingExtensions.concat(markAllValuesAsSecret()); diff --git a/app-config-core/package.json b/app-config-core/package.json index c37d6f62..06d4d9a9 100644 --- a/app-config-core/package.json +++ b/app-config-core/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/core", "description": "Core logic for App Config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,15 +30,15 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/logging": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "@iarna/toml": "3", "js-yaml": "^3.13.1", "json5": "2", "lodash.merge": "^4.6.2" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0", + "@app-config/test-utils": "^3.0.0-alpha.6", "@types/js-yaml": "3", "@types/lodash.merge": "4" }, diff --git a/app-config-core/src/parsed-value.ts b/app-config-core/src/parsed-value.ts index 5a57419d..6e76ac0f 100644 --- a/app-config-core/src/parsed-value.ts +++ b/app-config-core/src/parsed-value.ts @@ -436,12 +436,12 @@ async function parseValueInner( } if (applicableExtension) { - const parse = ( - inner: Json, - metadataOverride?: ParsedValueMetadata, - sourceOverride?: ConfigSource, - extensionsOverride?: ParsingExtension[], - contextOverride?: ParsingContext, + const parse: Parameters[0] = ( + inner, + metadataOverride, + sourceOverride, + extensionsOverride, + contextOverride, ) => parseValueInner( inner, diff --git a/app-config-cypress/package.json b/app-config-cypress/package.json index 2ae1dcb4..0e960990 100644 --- a/app-config-cypress/package.json +++ b/app-config-cypress/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/cypress", "description": "Cypress testing plugin for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -31,11 +31,11 @@ }, "dependencies": {}, "peerDependencies": { - "@app-config/main": "^2.8.0", + "@app-config/main": "^3.0.0-alpha.6", "cypress": "6" }, "devDependencies": { - "@app-config/main": "^2.8.0", + "@app-config/main": "^3.0.0-alpha.6", "cypress": "6" }, "prettier": "@lcdev/prettier", diff --git a/app-config-default-extensions/.eslintrc.js b/app-config-default-extensions/.eslintrc.js deleted file mode 100644 index 10bb3e63..00000000 --- a/app-config-default-extensions/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@lcdev/eslint-config/cwd')(__dirname); diff --git a/app-config-default-extensions/README.md b/app-config-default-extensions/README.md deleted file mode 100644 index bbaef4e9..00000000 --- a/app-config-default-extensions/README.md +++ /dev/null @@ -1,8 +0,0 @@ -## App Config Default Extensions - -This is a package for combining all parsing extensions that are used by default in [App Config](https://app-config.dev). - -The API of this module is documented via TypeScript definitions. - -Read the [Introduction](https://app-config.dev/guide/intro/) or -[Quick Start](https://app-config.dev/guide/intro/quick-start/) guides on our website. diff --git a/app-config-default-extensions/index.d.ts b/app-config-default-extensions/index.d.ts deleted file mode 100644 index 090abc2f..00000000 --- a/app-config-default-extensions/index.d.ts +++ /dev/null @@ -1,24 +0,0 @@ -// NOTE: This module "breaks" the circular dependency between different packages. -// By not being a TypeScript project with project references, we can use this -// tiny module as a glue between @app-config/node and @app-config/* extensions. - -import type { ParsingExtension } from '@app-config/core'; - -interface EnvironmentAliases { - [alias: string]: string; -} - -interface DecryptedSymmetricKey { - revision: number; - key: Uint8Array; -} - -export function defaultExtensions( - aliases?: EnvironmentAliases, - environmentOverride?: string, - symmetricKey?: DecryptedSymmetricKey, - environmentSourceNames?: string[] | string, -): ParsingExtension[]; - -export function defaultEnvExtensions(): ParsingExtension[]; -export function defaultMetaExtensions(): ParsingExtension[]; diff --git a/app-config-default-extensions/index.js b/app-config-default-extensions/index.js deleted file mode 100644 index ac6b6cea..00000000 --- a/app-config-default-extensions/index.js +++ /dev/null @@ -1,85 +0,0 @@ -// NOTE: This module "breaks" the circular dependency between different packages. -// By not being a TypeScript project with project references, we can use this -// tiny module as a glue between @app-config/node and @app-config/* extensions. - -// NOTE: Also, we don't require modules up-front - lazy load them instead. -// This avoids circular dependency chains. -const { defaultAliases } = require('@app-config/node'); - -module.exports = { - defaultExtensions( - aliases = defaultAliases, - environmentOverride, - symmetricKey, - environmentSourceNames, - ) { - const { - unescape$Directives, - tryDirective, - ifDirective, - eqDirective, - parseDirective, - hiddenDirective, - envDirective, - envVarDirective, - extendsDirective, - extendsSelfDirective, - overrideDirective, - timestampDirective, - substituteDirective, - } = require('@app-config/extensions'); - - const { default: encryptedDirective } = require('@app-config/encryption'); - const { default: v1Compat } = require('@app-config/v1-compat'); - const { default: gitRefDirectives } = require('@app-config/git'); - - return [ - unescape$Directives(), - tryDirective(), - ifDirective(), - eqDirective(), - parseDirective(), - hiddenDirective(), - envDirective(aliases, environmentOverride, environmentSourceNames), - envVarDirective(aliases, environmentOverride, environmentSourceNames), - extendsDirective(), - extendsSelfDirective(), - overrideDirective(), - timestampDirective(), - substituteDirective(aliases, environmentOverride, environmentSourceNames), - - // these will be removed in v3 - v1Compat(true), - gitRefDirectives(undefined, true), - encryptedDirective(symmetricKey, true), - ]; - }, - defaultEnvExtensions() { - const { unescape$Directives, markAllValuesAsSecret } = require('@app-config/extensions'); - - return [unescape$Directives(), markAllValuesAsSecret()]; - }, - defaultMetaExtensions() { - const { - unescape$Directives, - tryDirective, - ifDirective, - eqDirective, - hiddenDirective, - extendsDirective, - extendsSelfDirective, - overrideDirective, - } = require('@app-config/extensions'); - - return [ - unescape$Directives(), - tryDirective(), - ifDirective(), - eqDirective(), - hiddenDirective(), - extendsDirective(), - extendsSelfDirective(), - overrideDirective(), - ]; - }, -}; diff --git a/app-config-default-extensions/package.json b/app-config-default-extensions/package.json deleted file mode 100644 index f77e198b..00000000 --- a/app-config-default-extensions/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@app-config/default-extensions", - "description": "Default parsing extensions for @app-config", - "version": "2.8.0", - "license": "MPL-2.0", - "author": { - "name": "Launchcode", - "email": "admin@lc.dev", - "url": "https://lc.dev" - }, - "repository": { - "type": "git", - "url": "https://github.com/launchcodedev/app-config.git" - }, - "main": "index.js", - "types": "index.d.ts", - "files": [ - "index.js", - "index.d.ts" - ], - "scripts": { - "test": "jest" - }, - "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/encryption": "^2.8.0", - "@app-config/extensions": "^2.8.0", - "@app-config/git": "^2.8.0", - "@app-config/v1-compat": "^2.1.4" - }, - "devDependencies": {}, - "prettier": "@lcdev/prettier", - "jest": { - "preset": "@lcdev/jest" - } -} diff --git a/app-config-default-extensions/tsconfig.json b/app-config-default-extensions/tsconfig.json deleted file mode 100644 index 0bf0d055..00000000 --- a/app-config-default-extensions/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "@lcdev/tsconfig", - "compilerOptions": { - "rootDir": "." - }, - "include": ["src"], - "exclude": ["node_modules"], - "references": [ - { "path": "../app-config-core" }, - { "path": "../app-config-v1-compat" }, - { "path": "../app-config-git" } - ] -} diff --git a/app-config-electron/package.json b/app-config-electron/package.json index a476890d..04654e1a 100644 --- a/app-config-electron/package.json +++ b/app-config-electron/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/electron", "description": "Exposes app-config values to Electron render processes", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", diff --git a/app-config-encryption/package.json b/app-config-encryption/package.json index 779c0158..a32ce6ae 100644 --- a/app-config-encryption/package.json +++ b/app-config-encryption/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/encryption", "description": "Secret value encryption for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,13 +30,13 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/extension-utils": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/meta": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/settings": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/extension-utils": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/meta": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/settings": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "@lcdev/ws-rpc": "0.4", "@types/openpgp": "4", "common-tags": "1", @@ -47,7 +47,7 @@ "ws": "7" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0", + "@app-config/test-utils": "^3.0.0-alpha.6", "get-port": "5" }, "prettier": "@lcdev/prettier", diff --git a/app-config-encryption/src/index.ts b/app-config-encryption/src/index.ts index 7ad0fc17..faa3220a 100644 --- a/app-config-encryption/src/index.ts +++ b/app-config-encryption/src/index.ts @@ -1,6 +1,5 @@ import type { ParsingExtension } from '@app-config/core'; import { named } from '@app-config/extension-utils'; -import { logger } from '@app-config/logging'; import { DecryptedSymmetricKey, decryptValue } from './encryption'; export * from './encryption'; @@ -8,19 +7,10 @@ export * from './secret-agent'; export * from './secret-agent-tls'; /** Decrypts inline encrypted values */ -export default function encryptedDirective( - symmetricKey?: DecryptedSymmetricKey, - shouldShowDeprecationNotice?: true, -): ParsingExtension { +export default function encryptedDirective(symmetricKey?: DecryptedSymmetricKey): ParsingExtension { return named('encryption', (value) => { if (typeof value === 'string' && value.startsWith('enc:')) { return async (parse) => { - if (shouldShowDeprecationNotice) { - logger.warn( - 'Detected deprecated use of @app-config/encryption parsing extension. Please install @app-config/encryption and add it to your meta file "parsingExtensions".', - ); - } - const decrypted = await decryptValue(value, symmetricKey); return parse(decrypted, { fromSecrets: true, parsedFromEncryptedValue: true }); diff --git a/app-config-esbuild/package.json b/app-config-esbuild/package.json index 2676f87d..e8b1c336 100644 --- a/app-config-esbuild/package.json +++ b/app-config-esbuild/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/esbuild", "description": "esbuild module resolution support for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,11 +30,11 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/config": "^2.8.0", - "@app-config/utils": "^2.8.0" + "@app-config/config": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0", + "@app-config/test-utils": "^3.0.0-alpha.6", "esbuild": "0.13" }, "prettier": "@lcdev/prettier", diff --git a/app-config-esbuild/src/__snapshots__/index.test.ts.snap b/app-config-esbuild/src/__snapshots__/index.test.ts.snap index 6db03de8..2a5d957b 100644 --- a/app-config-esbuild/src/__snapshots__/index.test.ts.snap +++ b/app-config-esbuild/src/__snapshots__/index.test.ts.snap @@ -6,11 +6,11 @@ exports[`loads config correctly 1`] = ` `; exports[`loads currentEnvironment 1`] = ` -"(()=>{var t={foo:\\"bar\\"},e=(typeof window==\\"undefined\\"?globalThis:window)||{},r=e._appConfig||t;(typeof e._appConfig==\\"undefined\\"||!Object.isFrozen(e._appConfig))&&(e._appConfig=r);function o(){return\\"test\\"}console.log(o());})(); +"(()=>{var o={foo:\\"bar\\"},e=(typeof window==\\"undefined\\"?globalThis:window)||{},r=e._appConfig||o;(typeof e._appConfig==\\"undefined\\"||!Object.isFrozen(e._appConfig))&&(e._appConfig=r);function t(){return\\"test\\"}console.log(t());})(); " `; exports[`loads validation function 1`] = ` -"(()=>{var v={foo:\\"bar\\"},n=(typeof window==\\"undefined\\"?globalThis:window)||{},m=n._appConfig||v;(typeof n._appConfig==\\"undefined\\"||!Object.isFrozen(n._appConfig))&&(n._appConfig=m);function P(){let s={};return function(p){\\"use strict\\";p.exports=i,p.exports.default=i;var b={type:\\"object\\",additionalProperties:!1,properties:{foo:{type:\\"string\\"}},$schema:\\"http://json-schema.org/draft-07/schema#\\"};function i(o,t){\\"use strict\\";if(t)var a=t.dataPath,g=t.parentData,h=t.parentDataProperty,y=t.rootData;else var a=\\"\\",g=void 0,h=void 0,y=o;var e=null,r=0;if(o&&typeof o==\\"object\\"&&!Array.isArray(o)){for(var f in o)if(f!==\\"foo\\"){var d={keyword:\\"additionalProperties\\",dataPath:a,schemaPath:\\"#/additionalProperties\\",params:{additionalProperty:f},message:\\"should NOT have additional properties\\"};e===null?e=[d]:e.push(d),r++}if(o.foo!==void 0&&typeof o.foo!=\\"string\\"){var l={keyword:\\"type\\",dataPath:a+\\"/foo\\",schemaPath:\\"#/properties/foo/type\\",params:{type:\\"string\\"},message:\\"should be string\\"};e===null?e=[l]:e.push(l),r++}}else{var c={keyword:\\"type\\",dataPath:a,schemaPath:\\"#/type\\",params:{type:\\"object\\"},message:\\"should be object\\"};e===null?e=[c]:e.push(c),r++}return i.errors=e,r===0}}(s),s.exports}var u=P();u({foo:12});})(); +"(()=>{var h={foo:\\"bar\\"},n=(typeof window==\\"undefined\\"?globalThis:window)||{},v=n._appConfig||h;(typeof n._appConfig==\\"undefined\\"||!Object.isFrozen(n._appConfig))&&(n._appConfig=v);function P(){let s={};return function(p){\\"use strict\\";p.exports=i,p.exports.default=i;var b={type:\\"object\\",additionalProperties:!1,properties:{foo:{type:\\"string\\"}},$schema:\\"http://json-schema.org/draft-07/schema#\\"};function i(t,o){\\"use strict\\";if(o)var a=o.instancePath,g=o.parentData,m=o.parentDataProperty,y=o.rootData;else var a=\\"\\",g=void 0,m=void 0,y=t;var e=null,r=0;if(t&&typeof t==\\"object\\"&&!Array.isArray(t)){for(var f in t)if(f!==\\"foo\\"){var c={instancePath:a,schemaPath:\\"#/additionalProperties\\",keyword:\\"additionalProperties\\",params:{additionalProperty:f},message:\\"must NOT have additional properties\\"};e===null?e=[c]:e.push(c),r++}if(t.foo!==void 0&&typeof t.foo!=\\"string\\"){var u={instancePath:a+\\"/foo\\",schemaPath:\\"#/properties/foo/type\\",keyword:\\"type\\",params:{type:\\"string\\"},message:\\"must be string\\"};e===null?e=[u]:e.push(u),r++}}else{var d={instancePath:a,schemaPath:\\"#/type\\",keyword:\\"type\\",params:{type:\\"object\\"},message:\\"must be object\\"};e===null?e=[d]:e.push(d),r++}return i.errors=e,r===0}}(s),s.exports}var l=P();l({foo:12});})(); " `; diff --git a/app-config-esbuild/src/index.test.ts b/app-config-esbuild/src/index.test.ts index 8aef53df..5af986a3 100644 --- a/app-config-esbuild/src/index.test.ts +++ b/app-config-esbuild/src/index.test.ts @@ -55,7 +55,7 @@ it('fails when config is incorrect', () => write: false, }), ).rejects.toThrow( - 'error: [plugin: @app-config/esbuild] Config is invalid: config should NOT have additional properties', + 'error: [plugin: @app-config/esbuild] Config is invalid: config must NOT have additional properties', ); }, )); diff --git a/app-config-exec/package.json b/app-config-exec/package.json index a9c1a0c7..0425fe98 100644 --- a/app-config-exec/package.json +++ b/app-config-exec/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/exec", "description": "Generate config by running arbitrary programs", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,14 +30,14 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/extension-utils": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/utils": "^2.8.0" + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/extension-utils": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6" }, "devDependencies": { - "@app-config/main": "^2.8.0", - "@app-config/test-utils": "^2.8.0" + "@app-config/main": "^3.0.0-alpha.6", + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-extension-utils/package.json b/app-config-extension-utils/package.json index 47ab2c0a..73735398 100644 --- a/app-config-extension-utils/package.json +++ b/app-config-extension-utils/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/extension-utils", "description": "Utilities for writing @app-config parsing extensions", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,7 +30,7 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", + "@app-config/core": "^3.0.0-alpha.6", "@serafin/schema-builder": "0.14" }, "devDependencies": {}, diff --git a/app-config-extension-utils/src/index.ts b/app-config-extension-utils/src/index.ts index 4297bcde..3684b982 100644 --- a/app-config-extension-utils/src/index.ts +++ b/app-config-extension-utils/src/index.ts @@ -5,6 +5,7 @@ import type { ParsingExtensionTransform, } from '@app-config/core'; import { parseValue, Root, AppConfigError } from '@app-config/core'; +import { Json } from '@app-config/utils'; import { SchemaBuilder } from '@serafin/schema-builder'; export function composeExtensions(extensions: ParsingExtension[]): ParsingExtension { @@ -69,7 +70,7 @@ export function keysToPath(keys: ParsingExtensionKey[]): string { export class ParsingExtensionInvalidOptions extends AppConfigError {} -export function validateOptions( +export function validateOptions( builder: (builder: typeof SchemaBuilder) => SchemaBuilder, extension: ( value: T, diff --git a/app-config-extensions/package.json b/app-config-extensions/package.json index 667d2d8f..17d464e3 100644 --- a/app-config-extensions/package.json +++ b/app-config-extensions/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/extensions", "description": "Common parsing extensions for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,15 +30,15 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/extension-utils": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/extension-utils": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "lodash.isequal": "4" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0", + "@app-config/test-utils": "^3.0.0-alpha.6", "@types/lodash.isequal": "4" }, "prettier": "@lcdev/prettier", diff --git a/app-config-extensions/src/env-var-directive.test.ts b/app-config-extensions/src/env-var-directive.test.ts index a12a4704..0e79ea1a 100644 --- a/app-config-extensions/src/env-var-directive.test.ts +++ b/app-config-extensions/src/env-var-directive.test.ts @@ -95,86 +95,6 @@ describe('$envVar directive', () => { expect(parsed.toJSON()).toEqual({ foo: null, bar: 'foo' }); }); - it('parses ints', async () => { - process.env.FOO = '11'; - - const source = new LiteralSource({ - $envVar: { name: 'FOO', parseInt: true }, - }); - - expect(await source.readToJSON([envVarDirective()])).toEqual(11); - }); - - it('fails when int is invalid', async () => { - process.env.FOO = 'not a number'; - - const source = new LiteralSource({ - $envVar: { name: 'FOO', parseInt: true }, - }); - - await expect(source.read([envVarDirective()])).rejects.toThrow(); - }); - - it('parses float', async () => { - process.env.FOO = '11.2'; - - const source = new LiteralSource({ - $envVar: { name: 'FOO', parseFloat: true }, - }); - - expect(await source.readToJSON([envVarDirective()])).toEqual(11.2); - }); - - it('fails when float is invalid', async () => { - process.env.FOO = 'not a number'; - - const source = new LiteralSource({ - $envVar: { name: 'FOO', parseFloat: true }, - }); - - await expect(source.read([envVarDirective()])).rejects.toThrow(); - }); - - it('parses boolean = true', async () => { - process.env.FOO = 'true'; - - const source = new LiteralSource({ - $envVar: { name: 'FOO', parseBool: true }, - }); - - expect(await source.readToJSON([envVarDirective()])).toEqual(true); - }); - - it('parses boolean = 1', async () => { - process.env.FOO = '1'; - - const source = new LiteralSource({ - $envVar: { name: 'FOO', parseBool: true }, - }); - - expect(await source.readToJSON([envVarDirective()])).toEqual(true); - }); - - it('parses boolean = 0', async () => { - process.env.FOO = '0'; - - const source = new LiteralSource({ - $envVar: { name: 'FOO', parseBool: true }, - }); - - expect(await source.readToJSON([envVarDirective()])).toEqual(false); - }); - - it('parses boolean = false', async () => { - process.env.FOO = 'false'; - - const source = new LiteralSource({ - $envVar: { name: 'FOO', parseBool: true }, - }); - - expect(await source.readToJSON([envVarDirective()])).toEqual(false); - }); - it('doesnt visit fallback if name is defined', async () => { const failDirective = forKey('$fail', () => () => { throw new Error(); @@ -202,12 +122,4 @@ describe('$envVar directive', () => { expect(parsed.toJSON()).toEqual({ foo: 'qa' }); }); - - it('parses boolean from fallback', async () => { - const source = new LiteralSource({ - $envVar: { name: 'FOO', parseBool: true, fallback: 'true' }, - }); - - expect(await source.readToJSON([envVarDirective()])).toEqual(true); - }); }); diff --git a/app-config-extensions/src/env-var-directive.ts b/app-config-extensions/src/env-var-directive.ts index d04e5649..a89376b7 100644 --- a/app-config-extensions/src/env-var-directive.ts +++ b/app-config-extensions/src/env-var-directive.ts @@ -7,7 +7,6 @@ import { defaultAliases, EnvironmentAliases, } from '@app-config/node'; -import { logger } from '@app-config/logging'; /** Substitutes environment variables */ export function envVarDirective( @@ -19,9 +18,6 @@ export function envVarDirective( '$envVar', forKey('$envVar', (value, key, parentKeys, context) => async (parse) => { let name: string; - let parseInt = false; - let parseFloat = false; - let parseBool = false; if (typeof value === 'string') { name = value; @@ -32,62 +28,14 @@ export function envVarDirective( const resolved = (await parse(value.name)).toJSON(); validateString(resolved, [...parentKeys, key, [InObject, 'name']]); - parseInt = !!(await parse(value.parseInt)).toJSON(); - parseFloat = !!(await parse(value.parseFloat)).toJSON(); - parseBool = !!(await parse(value.parseBool)).toJSON(); name = resolved; - - if (parseInt) { - logger.warn( - `Detected use of deprecated of 'parseInt' option in $envVar - use $parseInt directive instead`, - ); - } - - if (parseFloat) { - logger.warn( - `Detected use of deprecated of 'parseFloat' option in $envVar - use $parseFloat directive instead`, - ); - } - - if (parseBool) { - logger.warn( - `Detected use of deprecated of 'parseBool' option in $envVar - use $parseBool directive instead`, - ); - } } const parseValue = (strValue: string | null) => { - if (parseBool) { - const parsed = - strValue !== null && (strValue.toLowerCase() === 'true' || strValue === '1'); - - return parse(parsed, { shouldFlatten: true }); - } - if (strValue === null) { return parse(null, { shouldFlatten: true }); } - if (parseInt) { - const parsed = Number.parseInt(strValue, 10); - - if (Number.isNaN(parsed)) { - throw new AppConfigError(`Failed to parseInt(${strValue})`); - } - - return parse(parsed, { shouldFlatten: true }); - } - - if (parseFloat) { - const parsed = Number.parseFloat(strValue); - - if (Number.isNaN(parsed)) { - throw new AppConfigError(`Failed to parseFloat(${strValue})`); - } - - return parse(parsed, { shouldFlatten: true }); - } - return parse(strValue, { shouldFlatten: true }); }; diff --git a/app-config-extensions/src/index.ts b/app-config-extensions/src/index.ts index b976684a..0415ca0c 100644 --- a/app-config-extensions/src/index.ts +++ b/app-config-extensions/src/index.ts @@ -1,18 +1,31 @@ import { named } from '@app-config/extension-utils'; import { ParsingExtension } from '@app-config/core'; -export { tryDirective } from './try-directive'; -export { ifDirective } from './if-directive'; -export { eqDirective } from './eq-directive'; -export { hiddenDirective } from './hidden-directive'; -export { envDirective } from './env-directive'; -export { extendsDirective, extendsSelfDirective, overrideDirective } from './extends-directive'; -export { timestampDirective } from './timestamp-directive'; - -export { envVarDirective } from './env-var-directive'; -export { substituteDirective } from './substitute-directive'; -export { substituteDirective as environmentVariableSubstitution } from './substitute-directive'; -export { parseDirective } from './parse-directive'; +import { tryDirective } from './try-directive'; +import { ifDirective } from './if-directive'; +import { eqDirective } from './eq-directive'; +import { hiddenDirective } from './hidden-directive'; +import { envDirective } from './env-directive'; +import { extendsDirective, extendsSelfDirective, overrideDirective } from './extends-directive'; +import { timestampDirective } from './timestamp-directive'; +import { envVarDirective } from './env-var-directive'; +import { substituteDirective } from './substitute-directive'; +import { parseDirective } from './parse-directive'; + +export { + tryDirective, + ifDirective, + eqDirective, + hiddenDirective, + envDirective, + extendsDirective, + extendsSelfDirective, + overrideDirective, + timestampDirective, + envVarDirective, + substituteDirective, + parseDirective, +}; /** Marks all values recursively as fromSecrets, so they do not trigger schema errors */ export function markAllValuesAsSecret(): ParsingExtension { @@ -31,3 +44,38 @@ export function unescape$Directives(): ParsingExtension { return false; }); } + +export function defaultExtensions() { + return [ + unescape$Directives(), + tryDirective(), + ifDirective(), + eqDirective(), + parseDirective(), + hiddenDirective(), + envDirective(), + envVarDirective(), + extendsDirective(), + extendsSelfDirective(), + overrideDirective(), + timestampDirective(), + substituteDirective(), + ]; +} + +export function defaultEnvExtensions() { + return [unescape$Directives(), markAllValuesAsSecret()]; +} + +export function defaultMetaExtensions() { + return [ + unescape$Directives(), + tryDirective(), + ifDirective(), + eqDirective(), + hiddenDirective(), + extendsDirective(), + extendsSelfDirective(), + overrideDirective(), + ]; +} diff --git a/app-config-extensions/src/substitute-directive.test.ts b/app-config-extensions/src/substitute-directive.test.ts index 13cc8f1d..c3bb8f8f 100644 --- a/app-config-extensions/src/substitute-directive.test.ts +++ b/app-config-extensions/src/substitute-directive.test.ts @@ -152,162 +152,6 @@ describe('$substitute directive', () => { expect(parsed.toJSON()).toEqual({ foo: 'qa' }); }); - it('reads object with $name', async () => { - process.env.FOO = 'foo'; - - const source = new LiteralSource({ - foo: { $substitute: { $name: 'FOO' } }, - }); - - const parsed = await source.read([substituteDirective()]); - - expect(parsed.toJSON()).toEqual({ foo: 'foo' }); - }); - - it('fails with $name when not defined', async () => { - const source = new LiteralSource({ - foo: { $substitute: { $name: 'FOO' } }, - }); - - await expect(source.read([substituteDirective()])).rejects.toThrow(); - }); - - it('uses $name when $fallback is defined', async () => { - process.env.FOO = 'foo'; - - const source = new LiteralSource({ - foo: { $substitute: { $name: 'FOO', $fallback: 'bar' } }, - }); - - const parsed = await source.read([substituteDirective()]); - - expect(parsed.toJSON()).toEqual({ foo: 'foo' }); - }); - - it('uses $fallback when $name was not found', async () => { - const source = new LiteralSource({ - foo: { $substitute: { $name: 'FOO', $fallback: 'bar' } }, - }); - - const parsed = await source.read([substituteDirective()]); - - expect(parsed.toJSON()).toEqual({ foo: 'bar' }); - }); - - it('allows null value when $allowNull', async () => { - const source = new LiteralSource({ - foo: { $substitute: { $name: 'FOO', $fallback: null, $allowNull: true } }, - }); - - const parsed = await source.read([substituteDirective()]); - - expect(parsed.toJSON()).toEqual({ foo: null }); - }); - - it('does not allow number even when $allowNull', async () => { - const source = new LiteralSource({ - foo: { $substitute: { $name: 'FOO', $fallback: 42, $allowNull: true } }, - }); - - await expect(source.read([substituteDirective()])).rejects.toThrow(); - }); - - it('parses ints', async () => { - process.env.FOO = '11'; - - const source = new LiteralSource({ - $substitute: { $name: 'FOO', $parseInt: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(11); - }); - - it('fails when int is invalid', async () => { - process.env.FOO = 'not a number'; - - const source = new LiteralSource({ - $substitute: { $name: 'FOO', $parseInt: true }, - }); - - await expect(source.read([substituteDirective()])).rejects.toThrow(); - }); - - it('parses float', async () => { - process.env.FOO = '11.2'; - - const source = new LiteralSource({ - $substitute: { $name: 'FOO', $parseFloat: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(11.2); - }); - - it('fails when float is invalid', async () => { - process.env.FOO = 'not a number'; - - const source = new LiteralSource({ - $substitute: { $name: 'FOO', $parseFloat: true }, - }); - - await expect(source.read([substituteDirective()])).rejects.toThrow(); - }); - - it('parses boolean = true', async () => { - process.env.FOO = 'true'; - - const source = new LiteralSource({ - $substitute: { $name: 'FOO', $parseBool: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(true); - }); - - it('parses boolean = 1', async () => { - process.env.FOO = '1'; - - const source = new LiteralSource({ - $substitute: { $name: 'FOO', $parseBool: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(true); - }); - - it('parses boolean = 0', async () => { - process.env.FOO = '0'; - - const source = new LiteralSource({ - $substitute: { $name: 'FOO', $parseBool: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(false); - }); - - it('parses boolean = false', async () => { - process.env.FOO = 'false'; - - const source = new LiteralSource({ - $substitute: { $name: 'FOO', $parseBool: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(false); - }); - - it('doesnt visit fallback if name is defined', async () => { - const failDirective = forKey('$fail', () => () => { - throw new Error(); - }); - - process.env.FOO = 'foo'; - - const source = new LiteralSource({ - foo: { $substitute: { $name: 'FOO', $fallback: { $fail: true } } }, - }); - - const parsed = await source.read([substituteDirective(), failDirective]); - - expect(parsed.toJSON()).toEqual({ foo: 'foo' }); - }); - it('reads object with name', async () => { process.env.FOO = 'foo'; @@ -368,86 +212,6 @@ describe('$substitute directive', () => { await expect(source.read([substituteDirective()])).rejects.toThrow(); }); - it('parses ints', async () => { - process.env.FOO = '11'; - - const source = new LiteralSource({ - $substitute: { name: 'FOO', parseInt: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(11); - }); - - it('fails when int is invalid', async () => { - process.env.FOO = 'not a number'; - - const source = new LiteralSource({ - $substitute: { name: 'FOO', parseInt: true }, - }); - - await expect(source.read([substituteDirective()])).rejects.toThrow(); - }); - - it('parses float', async () => { - process.env.FOO = '11.2'; - - const source = new LiteralSource({ - $substitute: { name: 'FOO', parseFloat: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(11.2); - }); - - it('fails when float is invalid', async () => { - process.env.FOO = 'not a number'; - - const source = new LiteralSource({ - $substitute: { name: 'FOO', parseFloat: true }, - }); - - await expect(source.read([substituteDirective()])).rejects.toThrow(); - }); - - it('parses boolean = true', async () => { - process.env.FOO = 'true'; - - const source = new LiteralSource({ - $substitute: { name: 'FOO', parseBool: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(true); - }); - - it('parses boolean = 1', async () => { - process.env.FOO = '1'; - - const source = new LiteralSource({ - $substitute: { name: 'FOO', parseBool: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(true); - }); - - it('parses boolean = 0', async () => { - process.env.FOO = '0'; - - const source = new LiteralSource({ - $substitute: { name: 'FOO', parseBool: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(false); - }); - - it('parses boolean = false', async () => { - process.env.FOO = 'false'; - - const source = new LiteralSource({ - $substitute: { name: 'FOO', parseBool: true }, - }); - - expect(await source.readToJSON([substituteDirective()])).toEqual(false); - }); - it('doesnt visit fallback if name is defined', async () => { const failDirective = forKey('$fail', () => () => { throw new Error(); diff --git a/app-config-extensions/src/substitute-directive.ts b/app-config-extensions/src/substitute-directive.ts index 4aeb8a65..35029b55 100644 --- a/app-config-extensions/src/substitute-directive.ts +++ b/app-config-extensions/src/substitute-directive.ts @@ -29,74 +29,15 @@ export function substituteDirective( validateObject(value, [...parentKeys, key]); if (Array.isArray(value)) throw new AppConfigError('$substitute was given an array'); - if (value.$name) { - logger.warn( - `Detected deprecated use of $name in a $substitute directive. Use 'name' instead.`, - ); - } - - const name = (await parse(selectDefined(value.name, value.$name))).toJSON(); + const name = (await parse(value.name)).toJSON(); validateString(name, [...parentKeys, key, [InObject, 'name']]); const parseValue = async (strValue: string | null) => { - const parseBool = (await parse(selectDefined(value.parseBool, value.$parseBool))).toJSON(); - - if (value.$parseBool) { - logger.warn( - `Detected deprecated use of $parseBool in a $substitute directive - use $parseBool directive instead`, - ); - } - - if (parseBool) { - const parsed = - strValue !== null && (strValue.toLowerCase() === 'true' || strValue === '1'); - - return parse(parsed, { shouldFlatten: true }); - } - if (strValue === null) { return parse(null, { shouldFlatten: true }); } - const parseInt = (await parse(selectDefined(value.parseInt, value.$parseInt))).toJSON(); - - if (value.$parseInt) { - logger.warn( - `Detected deprecated use of $parseInt in a $substitute directive - use $parseInt directive instead`, - ); - } - - if (parseInt) { - const parsed = Number.parseInt(strValue, 10); - - if (Number.isNaN(parsed)) { - throw new AppConfigError(`Failed to parseInt(${strValue})`); - } - - return parse(parsed, { shouldFlatten: true }); - } - - if (value.$parseFloat) { - logger.warn( - `Detected deprecated use of $parseFloat in a $substitute directive - use $parseFloat directive instead`, - ); - } - - const parseFloat = ( - await parse(selectDefined(value.parseFloat, value.$parseFloat)) - ).toJSON(); - - if (parseFloat) { - const parsed = Number.parseFloat(strValue); - - if (Number.isNaN(parsed)) { - throw new AppConfigError(`Failed to parseFloat(${strValue})`); - } - - return parse(parsed, { shouldFlatten: true }); - } - return parse(strValue, { shouldFlatten: true }); }; @@ -110,21 +51,9 @@ export function substituteDirective( return parseValue(resolvedValue); } - if (value.fallback !== undefined || value.$fallback !== undefined) { - const fallback = (await parse(selectDefined(value.fallback, value.$fallback))).toJSON(); - const allowNull = (await parse(selectDefined(value.allowNull, value.$allowNull))).toJSON(); - - if (value.$fallback) { - logger.warn( - `Detected deprecated use of $fallback in a $substitute directive. Use 'fallback' instead.`, - ); - } - - if (value.$allowNull) { - logger.warn( - `Detected deprecated use of $allowNull in a $substitute directive. Use 'allowNull' instead.`, - ); - } + if (value.fallback !== undefined) { + const fallback = (await parse(value.fallback)).toJSON(); + const allowNull = (await parse(value.allowNull)).toJSON(); if (allowNull) { validateStringOrNull(fallback, [...parentKeys, key, [InObject, 'fallback']]); @@ -188,14 +117,6 @@ function performAllSubstitutions(text: string, envType?: string): string { return output; } -function selectDefined(...args: (T | null | undefined)[]): T | null { - for (const a of args) { - if (a !== undefined) return a; - } - - return undefined as any as T; -} - const validateObject: ValidationFunction> = validationFunction( ({ emptySchema }) => emptySchema().addAdditionalProperties(), ); diff --git a/app-config-generate/package.json b/app-config-generate/package.json index 43891ed5..e6aaee5a 100644 --- a/app-config-generate/package.json +++ b/app-config-generate/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/generate", "description": "Code generation for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,9 +30,9 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/logging": "^2.8.0", - "@app-config/meta": "^2.8.0", - "@app-config/schema": "^2.8.0", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/meta": "^3.0.0-alpha.6", + "@app-config/schema": "^3.0.0-alpha.6", "@types/readable-stream": "2", "@types/urijs": "1", "common-tags": "1", @@ -41,7 +41,7 @@ "quicktype-core": "6.0.70" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0" + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-git/package.json b/app-config-git/package.json index 69ceda72..da3ddba2 100644 --- a/app-config-git/package.json +++ b/app-config-git/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/git", "description": "$git directive parsing extension for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,13 +30,13 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/extension-utils": "^2.8.0", - "@app-config/logging": "^2.8.0", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/extension-utils": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", "simple-git": "2" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0" + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-git/src/index.ts b/app-config-git/src/index.ts index c6be0649..2cee7b46 100644 --- a/app-config-git/src/index.ts +++ b/app-config-git/src/index.ts @@ -1,14 +1,12 @@ import simpleGit from 'simple-git'; import { ParsingExtension, AppConfigError, Fallbackable } from '@app-config/core'; import { named, forKey, validateOptions } from '@app-config/extension-utils'; -import { logger } from '@app-config/logging'; class GitError extends Fallbackable {} /** Access to the git branch and commit ref */ export default function gitRefDirectives( getStatus: typeof gitStatus = gitStatus, - shouldShowDeprecationNotice?: true, ): ParsingExtension { return named( '$git', @@ -17,12 +15,6 @@ export default function gitRefDirectives( validateOptions( (SchemaBuilder) => SchemaBuilder.stringSchema(), (value) => async (parse) => { - if (shouldShowDeprecationNotice) { - logger.warn( - 'Detected deprecated use of @app-config/git parsing extension. Please install @app-config/git and add it to your meta file "parsingExtensions".', - ); - } - switch (value) { case 'commit': return getStatus().then(({ commitRef }) => parse(commitRef, { shouldFlatten: true })); diff --git a/app-config-inject/package.json b/app-config-inject/package.json index cce8d2c2..472cfae1 100644 --- a/app-config-inject/package.json +++ b/app-config-inject/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/inject", "description": "Runtime injection of app-config into static HTML files", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -34,10 +34,10 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/config": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/schema": "^2.8.0", + "@app-config/config": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/schema": "^3.0.0-alpha.6", "@types/yargs": "16", "node-html-parser": "1", "yargs": "16" diff --git a/app-config-js/package.json b/app-config-js/package.json index 8e474c30..bda6cea0 100644 --- a/app-config-js/package.json +++ b/app-config-js/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/js", "description": "Loads a JavaScript module to inject configuration", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,12 +30,12 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/extension-utils": "^2.8.0", - "@app-config/node": "^2.8.0" + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/extension-utils": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0" + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-logging/package.json b/app-config-logging/package.json index b7fda8b1..a316d189 100644 --- a/app-config-logging/package.json +++ b/app-config-logging/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/logging", "description": "Logging for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,7 +30,7 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/utils": "^2.8.0" + "@app-config/utils": "^3.0.0-alpha.6" }, "devDependencies": {}, "prettier": "@lcdev/prettier", diff --git a/app-config-main/package.json b/app-config-main/package.json index 14473045..396f406f 100644 --- a/app-config-main/package.json +++ b/app-config-main/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/main", "description": "Easy to use configuration loader with schema validation", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -35,21 +35,20 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/cli": "^2.8.0", - "@app-config/config": "^2.8.0", - "@app-config/core": "^2.8.0", - "@app-config/default-extensions": "^2.8.0", - "@app-config/encryption": "^2.8.0", - "@app-config/extensions": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/meta": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/schema": "^2.8.0", - "@app-config/utils": "^2.8.0", - "ajv": "7" + "@app-config/cli": "^3.0.0-alpha.6", + "@app-config/config": "^3.0.0-alpha.6", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/encryption": "^3.0.0-alpha.6", + "@app-config/extensions": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/meta": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/schema": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", + "ajv": "8" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0" + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-main/src/index.ts b/app-config-main/src/index.ts index 1d71e777..312b4077 100644 --- a/app-config-main/src/index.ts +++ b/app-config-main/src/index.ts @@ -94,23 +94,6 @@ export default config; */ export const validateConfig: ValidateFunction = null as any; // eslint-disable-line -export { Json } from '@app-config/utils'; - -export { - ParsedValue, - ParsedValueMetadata, - ParsingExtension, - ParsingExtensionTransform, - ConfigSource, - LiteralSource, - CombinedSource, - FallbackSource, - FileType, - stringify, - filePathAssumedType, - parseRawString, -} from '@app-config/core'; - export { setLogLevel, LogLevel } from '@app-config/logging'; export { @@ -131,21 +114,11 @@ export { EnvironmentSource, } from '@app-config/node'; -export { - environmentVariableSubstitution, - envDirective, - extendsDirective, - extendsSelfDirective, - overrideDirective, -} from '@app-config/extensions'; - -export { default as encryptedDirective } from '@app-config/encryption'; - export { defaultExtensions, defaultEnvExtensions, defaultMetaExtensions, -} from '@app-config/default-extensions'; +} from '@app-config/extensions'; /** @hidden Please don't rely on this. */ export function resetConfigInternal() { diff --git a/app-config-meta/package.json b/app-config-meta/package.json index 7334764d..1cfc320e 100644 --- a/app-config-meta/package.json +++ b/app-config-meta/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/meta", "description": "Meta file parsing for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,15 +30,14 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/default-extensions": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "fs-extra": "7" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0" + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-meta/src/index.ts b/app-config-meta/src/index.ts index be316677..0924282d 100644 --- a/app-config-meta/src/index.ts +++ b/app-config-meta/src/index.ts @@ -12,7 +12,7 @@ import { import { logger } from '@app-config/logging'; import { FlexibleFileSource, FileSource } from '@app-config/node'; -import { defaultMetaExtensions } from '@app-config/default-extensions'; +import { defaultMetaExtensions } from '@app-config/extensions'; export interface MetaLoadingOptions { directory?: string; diff --git a/app-config-meta/tsconfig.json b/app-config-meta/tsconfig.json index 0807f8cf..f21b84ac 100644 --- a/app-config-meta/tsconfig.json +++ b/app-config-meta/tsconfig.json @@ -9,6 +9,6 @@ "references": [ { "path": "../app-config-test-utils" }, { "path": "../app-config-node" }, - { "path": "../app-config-default-extensions" } + { "path": "../app-config-extensions" } ] } diff --git a/app-config-node/package.json b/app-config-node/package.json index e8b42b63..7a6066cc 100644 --- a/app-config-node/package.json +++ b/app-config-node/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/node", "description": "Node.js API for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,14 +30,14 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/logging": "^2.8.0", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", "@types/prompts": "2", "fs-extra": "9", "prompts": "2" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0", + "@app-config/test-utils": "^3.0.0-alpha.6", "@types/fs-extra": "9" }, "prettier": "@lcdev/prettier", diff --git a/app-config-node/src/environment.test.ts b/app-config-node/src/environment.test.ts index 9f0bbe5e..92dd5b4a 100644 --- a/app-config-node/src/environment.test.ts +++ b/app-config-node/src/environment.test.ts @@ -7,25 +7,6 @@ import { } from './environment'; describe('currentEnvironment', () => { - describe('deprecated currentEnvironment', () => { - it('uses environmentSourceNames', () => { - process.env.NODE_ENV = 'foo'; - process.env.FOO = 'bar'; - - expect(currentEnvironment(undefined, ['FOO', 'BAR'])).toBe('bar'); - expect(currentEnvironment(undefined, ['BAR'])).toBe(undefined); - }); - - it('uses environmentAliases', () => { - process.env.FOO = 'bar'; - process.env.NODE_ENV = 'bar'; - - expect(currentEnvironment({}, ['FOO'])).toBe('bar'); - expect(currentEnvironment({ bar: 'foo' })).toBe('foo'); - expect(currentEnvironment({ bar: 'foo' }, ['FOO'])).toBe('foo'); - }); - }); - it('uses envVarNames', () => { process.env.NODE_ENV = 'foo'; process.env.FOO = 'bar'; @@ -49,8 +30,14 @@ describe('currentEnvironment', () => { it('uses override', () => { process.env.NODE_ENV = 'foo'; - expect(currentEnvironment({})).toBe('foo'); - expect(currentEnvironment({ override: 'bar' })).toBe('bar'); + expect(currentEnvironment()).toBe('foo'); + expect( + currentEnvironment({ + override: 'bar', + aliases: defaultAliases, + envVarNames: defaultEnvVarNames, + }), + ).toBe('bar'); }); }); diff --git a/app-config-node/src/environment.ts b/app-config-node/src/environment.ts index 5b006202..241a8a58 100644 --- a/app-config-node/src/environment.ts +++ b/app-config-node/src/environment.ts @@ -1,5 +1,4 @@ import { ParsingContext } from '@app-config/core'; -import { logger } from '@app-config/logging'; /** A mapping for "alias" names of environments, like "dev" => "development" */ export interface EnvironmentAliases { @@ -48,50 +47,21 @@ export function asEnvOptions( } /** Retrieve what app-config thinks the current deployment environment is (ie QA, dev, staging, production) */ -export function currentEnvironment(options?: EnvironmentOptions): string | undefined; - -/** @deprecated use currentEnvironment(EnvironmentOptions) instead */ -export function currentEnvironment( - environmentAliases?: EnvironmentAliases, - environmentSourceNames?: string[] | string, -): string | undefined; - -export function currentEnvironment(...args: any[]): string | undefined { +export function currentEnvironment(options?: EnvironmentOptions): string | undefined { let environmentSourceNames: string[] = defaultEnvVarNames; let environmentAliases: EnvironmentAliases = defaultAliases; let environmentOverride: string | undefined; - if ( - args[0] && - typeof args[0] === 'object' && - ('override' in args[0] || 'aliases' in args[0] || 'envVarNames' in args[0]) - ) { - const options = args[0] as EnvironmentOptions; - - if (options.override) { - environmentOverride = options.override; - } - - if (options.aliases) { - environmentAliases = options.aliases; - } + if (options?.override) { + environmentOverride = options.override; + } - if (options.envVarNames) { - environmentSourceNames = options.envVarNames; - } - } else { - if (args[0]) { - environmentAliases = args[0] as EnvironmentAliases; - logger.warn('Detected deprecated usage of currentEnvironment'); - } + if (options?.aliases) { + environmentAliases = options.aliases; + } - if (Array.isArray(args[1])) { - environmentSourceNames = args[1] as string[]; - logger.warn('Detected deprecated usage of currentEnvironment'); - } else if (typeof args[1] === 'string') { - environmentSourceNames = [args[1]]; - logger.warn('Detected deprecated usage of currentEnvironment'); - } + if (options?.envVarNames) { + environmentSourceNames = options.envVarNames; } if (environmentOverride) { diff --git a/app-config-node/src/file-source.ts b/app-config-node/src/file-source.ts index 271fad4f..afe23e46 100644 --- a/app-config-node/src/file-source.ts +++ b/app-config-node/src/file-source.ts @@ -13,10 +13,8 @@ import { import { logger } from '@app-config/logging'; import { aliasesFor, - asEnvOptions, currentEnvFromContext, defaultEnvOptions, - EnvironmentAliases, EnvironmentOptions, } from './environment'; @@ -54,54 +52,16 @@ export class FlexibleFileSource extends ConfigSource { private readonly fileExtensions: string[]; private readonly environmentOptions: EnvironmentOptions; - constructor(filePath: string, fileExtensions?: string[], environmentOptions?: EnvironmentOptions); - - /** @deprecated use constructor with environmentOptions instead */ - constructor( - filePath: string, - environmentOverride?: string, - environmentAliases?: EnvironmentAliases, - fileExtensions?: string[], - environmentSourceNames?: string[] | string, - ); - constructor( filePath: string, - environmentOverrideOrFileExtensions?: string | string[], - environmentAliasesOrEnvironmentOptions?: EnvironmentAliases | EnvironmentOptions, fileExtensions?: string[], - environmentSourceNames?: string[] | string, + environmentOptions?: EnvironmentOptions, ) { super(); this.filePath = filePath; - const defaultFileExtensions = ['yml', 'yaml', 'toml', 'json', 'json5']; - - if ( - (Array.isArray(environmentOverrideOrFileExtensions) || - environmentOverrideOrFileExtensions === undefined) && - (environmentAliasesOrEnvironmentOptions - ? 'aliases' in environmentAliasesOrEnvironmentOptions || - 'envVarNames' in environmentAliasesOrEnvironmentOptions - : true) && - fileExtensions === undefined && - environmentSourceNames === undefined - ) { - this.fileExtensions = environmentOverrideOrFileExtensions ?? defaultFileExtensions; - this.environmentOptions = - (environmentAliasesOrEnvironmentOptions as EnvironmentOptions) ?? defaultEnvOptions; - } else { - logger.warn( - `Detected deprecated usage of FlexibleFileSource constructor loading ${filePath}`, - ); - - this.fileExtensions = fileExtensions ?? defaultFileExtensions; - this.environmentOptions = asEnvOptions( - environmentOverrideOrFileExtensions as string, - environmentAliasesOrEnvironmentOptions as EnvironmentAliases, - environmentSourceNames, - ); - } + this.fileExtensions = fileExtensions ?? ['yml', 'yaml', 'toml', 'json', 'json5']; + this.environmentOptions = environmentOptions ?? defaultEnvOptions; } // share 'resolveSource' so that read() returns a ParsedValue pointed to the FileSource, not FlexibleFileSource diff --git a/app-config-react-native/package.json b/app-config-react-native/package.json index 65335a92..ed48f831 100644 --- a/app-config-react-native/package.json +++ b/app-config-react-native/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/react-native", "description": "React Native Metro transformer that loads your app-config values into bundles statically", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,12 +30,12 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/node": "^2.8.0", + "@app-config/node": "^3.0.0-alpha.6", "semver": "7" }, "peerDependencies": { - "@app-config/config": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/config": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "react-native": ">=0.45.0" }, "devDependencies": { diff --git a/app-config-rollup/package.json b/app-config-rollup/package.json index b5f59918..b63bfbd2 100644 --- a/app-config-rollup/package.json +++ b/app-config-rollup/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/rollup", "description": "Rollup plugin that resolves @app-config for you", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -34,8 +34,8 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/config": "^2.8.0", - "@app-config/utils": "^2.8.0" + "@app-config/config": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6" }, "peerDependencies": {}, "devDependencies": { diff --git a/app-config-schema/package.json b/app-config-schema/package.json index b61f9048..63233ed8 100644 --- a/app-config-schema/package.json +++ b/app-config-schema/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/schema", "description": "Schema validation for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,19 +30,19 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "@types/json-schema": "7", - "ajv": "7", - "ajv-formats": "1", + "ajv": "8", + "ajv-formats": "2", "json-schema-ref-parser": "9" }, "devDependencies": { - "@app-config/encryption": "^2.8.0", - "@app-config/extensions": "^2.8.0", - "@app-config/test-utils": "^2.8.0" + "@app-config/encryption": "^3.0.0-alpha.6", + "@app-config/extensions": "^3.0.0-alpha.6", + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-schema/src/__snapshots__/index.test.ts.snap b/app-config-schema/src/__snapshots__/index.test.ts.snap index 04da5b58..151014c7 100644 --- a/app-config-schema/src/__snapshots__/index.test.ts.snap +++ b/app-config-schema/src/__snapshots__/index.test.ts.snap @@ -3,9 +3,9 @@ exports[`Code Generation validates using the generated code 1`] = ` Array [ Object { - "dataPath": "", + "instancePath": "", "keyword": "required", - "message": "should have required property 'foo'", + "message": "must have required property 'foo'", "params": Object { "missingProperty": "foo", }, diff --git a/app-config-schema/src/index.ts b/app-config-schema/src/index.ts index 9c2982ba..dbd45065 100644 --- a/app-config-schema/src/index.ts +++ b/app-config-schema/src/index.ts @@ -128,11 +128,11 @@ export async function loadSchema({ message: 'should not be present in non-secret files (and not encrypted)', }, validate(value: boolean, _data, _parentSchema, ctx): boolean { - const { dataPath } = ctx ?? {}; + const { instancePath } = ctx ?? {}; - if (!dataPath || !value) return true; + if (!instancePath || !value) return true; - const [, ...key] = dataPath.split('/'); + const [, ...key] = instancePath.split('/'); // check that any properties marked as secret were from secrets file const found = currentlyParsing?.property(key); diff --git a/app-config-settings/package.json b/app-config-settings/package.json index 45978f9a..d5862e83 100644 --- a/app-config-settings/package.json +++ b/app-config-settings/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/settings", "description": "User settings for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,15 +30,15 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "env-paths": "2", "fs-extra": "7" }, "devDependencies": { - "@app-config/test-utils": "^2.8.0" + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-test-utils/package.json b/app-config-test-utils/package.json index 4979dea7..07c8bf1b 100644 --- a/app-config-test-utils/package.json +++ b/app-config-test-utils/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/test-utils", "description": "Internal test utilities", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,8 +30,8 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/logging": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "@types/fs-extra": "9", "@types/tmp": "0.2", "fs-extra": "9", diff --git a/app-config-utils/package.json b/app-config-utils/package.json index 7cae9a6e..0b34dbe5 100644 --- a/app-config-utils/package.json +++ b/app-config-utils/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/utils", "description": "Common utilities used in @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", diff --git a/app-config-v1-compat/package.json b/app-config-v1-compat/package.json index 869f4e43..33a0a21d 100644 --- a/app-config-v1-compat/package.json +++ b/app-config-v1-compat/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/v1-compat", "description": "Version 1 compatibility layer for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,16 +30,16 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/core": "^2.8.0", - "@app-config/extension-utils": "^2.8.0", - "@app-config/logging": "^2.8.0", - "@app-config/node": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/core": "^3.0.0-alpha.6", + "@app-config/extension-utils": "^3.0.0-alpha.6", + "@app-config/logging": "^3.0.0-alpha.6", + "@app-config/node": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "fs-extra": "7" }, "devDependencies": { - "@app-config/extensions": "^2.8.0", - "@app-config/test-utils": "^2.8.0" + "@app-config/extensions": "^3.0.0-alpha.6", + "@app-config/test-utils": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-v1-compat/src/index.ts b/app-config-v1-compat/src/index.ts index 453824e8..43941dfe 100644 --- a/app-config-v1-compat/src/index.ts +++ b/app-config-v1-compat/src/index.ts @@ -4,10 +4,9 @@ import { isObject } from '@app-config/utils'; import { named } from '@app-config/extension-utils'; import { ParsingExtension, Root } from '@app-config/core'; import { FileSource } from '@app-config/node'; -import { logger } from '@app-config/logging'; /** V1 app-config compatibility */ -export default function v1Compat(shouldShowDeprecationNotice?: true): ParsingExtension { +export default function v1Compat(): ParsingExtension { return named('v1-compat', (value, [_, key], parentKeys) => { // only apply in top-level app-config property if (parentKeys[parentKeys.length - 1]?.[0] !== Root) { @@ -46,12 +45,6 @@ export default function v1Compat(shouldShowDeprecationNotice?: true): ParsingExt // TODO: multiple properties defined if ('extends' in value) { - if (shouldShowDeprecationNotice) { - logger.warn( - 'Detected deprecated use of @app-config/v1-compat parsing extension. Please install @app-config/v1-compat and add it to your meta file "parsingExtensions".', - ); - } - return parse( { $extends: await resolveAmbiguousFilename(value.extends as string) }, { shouldMerge: true }, @@ -59,12 +52,6 @@ export default function v1Compat(shouldShowDeprecationNotice?: true): ParsingExt } if ('extendsOptional' in value) { - if (shouldShowDeprecationNotice) { - logger.warn( - 'Detected deprecated use of @app-config/v1-compat parsing extension. Please install @app-config/v1-compat and add it to your meta file "parsingExtensions".', - ); - } - return parse( { $extends: { @@ -77,12 +64,6 @@ export default function v1Compat(shouldShowDeprecationNotice?: true): ParsingExt } if ('override' in value) { - if (shouldShowDeprecationNotice) { - logger.warn( - 'Detected deprecated use of @app-config/v1-compat parsing extension. Please install @app-config/v1-compat and add it to your meta file "parsingExtensions".', - ); - } - return parse( { $override: await resolveAmbiguousFilename(value.override as string) }, { shouldOverride: true }, @@ -90,12 +71,6 @@ export default function v1Compat(shouldShowDeprecationNotice?: true): ParsingExt } if ('overrideOptional' in value) { - if (shouldShowDeprecationNotice) { - logger.warn( - 'Detected deprecated use of @app-config/v1-compat parsing extension. Please install @app-config/v1-compat and add it to your meta file "parsingExtensions".', - ); - } - return parse( { $override: { diff --git a/app-config-vault/package.json b/app-config-vault/package.json index 3dfd418f..3aa03c51 100644 --- a/app-config-vault/package.json +++ b/app-config-vault/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/vault", "description": "Hashicorp Vault support for App Config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -30,16 +30,16 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/extension-utils": "^2.8.0", + "@app-config/extension-utils": "^3.0.0-alpha.6", "@lcdev/fetch": "^0.1.10", "cross-fetch": "3", "node-vault": "0.9" }, "peerDependencies": { - "@app-config/main": "^2.8.0" + "@app-config/main": "^3.0.0-alpha.6" }, "devDependencies": { - "@app-config/main": "^2.8.0" + "@app-config/main": "^3.0.0-alpha.6" }, "prettier": "@lcdev/prettier", "jest": { diff --git a/app-config-vault/src/index.ts b/app-config-vault/src/index.ts index 5fc72cec..9c331cef 100644 --- a/app-config-vault/src/index.ts +++ b/app-config-vault/src/index.ts @@ -1,7 +1,8 @@ import fetch from 'cross-fetch'; import { api, buildPath, setGlobalFetch } from '@lcdev/fetch'; import type { JsonObject } from '@lcdev/ts'; -import type { ParsingExtension, Json } from '@app-config/main'; +import type { Json } from '@app-config/utils'; +import type { ParsingExtension } from '@app-config/core'; import { named, forKey, validateOptions } from '@app-config/extension-utils'; setGlobalFetch(fetch); diff --git a/app-config-vite/package.json b/app-config-vite/package.json index ef4c7555..541dd9b6 100644 --- a/app-config-vite/package.json +++ b/app-config-vite/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/vite", "description": "Vite plugin for @app-config", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -34,7 +34,7 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/rollup": "^2.8.0" + "@app-config/rollup": "^3.0.0-alpha.6" }, "devDependencies": {}, "prettier": "@lcdev/prettier", diff --git a/app-config-webpack/package.json b/app-config-webpack/package.json index 06896864..d9397d16 100644 --- a/app-config-webpack/package.json +++ b/app-config-webpack/package.json @@ -1,7 +1,7 @@ { "name": "@app-config/webpack", "description": "Webpack plugin that loads your app-config values into bundles statically", - "version": "2.8.0", + "version": "3.0.0-alpha.6", "license": "MPL-2.0", "author": { "name": "Launchcode", @@ -31,17 +31,17 @@ "prepublishOnly": "yarn clean && yarn build && yarn build:es" }, "dependencies": { - "@app-config/config": "^2.8.0", - "@app-config/utils": "^2.8.0", + "@app-config/config": "^3.0.0-alpha.6", + "@app-config/utils": "^3.0.0-alpha.6", "loader-utils": "2" }, "peerDependencies": { - "@app-config/main": "^2.8.0", + "@app-config/main": "^3.0.0-alpha.6", "html-webpack-plugin": "4 || 5", "webpack": "4 || 5" }, "devDependencies": { - "@app-config/main": "^2.8.0", + "@app-config/main": "^3.0.0-alpha.6", "@types/loader-utils": "1", "@webpack-cli/serve": "1", "html-webpack-plugin": "5", diff --git a/app-config-webpack/src/index.test.ts b/app-config-webpack/src/index.test.ts index 5e343074..252beb9a 100644 --- a/app-config-webpack/src/index.test.ts +++ b/app-config-webpack/src/index.test.ts @@ -131,7 +131,7 @@ describe('frontend-webpack-project example', () => { done(); }); }), - ).rejects.toMatch('config/externalApiUrl should match format "uri"'); + ).rejects.toMatch('config/externalApiUrl must match format "uri"'); }); it('uses custom loading options to read a specific environment variable', async () => { diff --git a/examples/cli-project/package.json b/examples/cli-project/package.json index d4ba6a16..5e50bcdc 100644 --- a/examples/cli-project/package.json +++ b/examples/cli-project/package.json @@ -10,7 +10,7 @@ "clean": "rm -rf dist *.tsbuildinfo" }, "dependencies": { - "@app-config/main": "2" + "@app-config/main": "3.0.0-alpha.6" }, "devDependencies": { "@lcdev/tsconfig": "0.2", diff --git a/examples/frontend-webpack-project/package.json b/examples/frontend-webpack-project/package.json index 590b0112..8aefafe9 100644 --- a/examples/frontend-webpack-project/package.json +++ b/examples/frontend-webpack-project/package.json @@ -10,10 +10,10 @@ "test": "jest" }, "dependencies": { - "@app-config/main": "2" + "@app-config/main": "3.0.0-alpha.6" }, "devDependencies": { - "@app-config/webpack": "2", + "@app-config/webpack": "3.0.0-alpha.6", "@lcdev/tsconfig": "0.2", "cross-env": "7", "cypress": "6", diff --git a/examples/nodejs-server/package.json b/examples/nodejs-server/package.json index b472dcc9..fac102c0 100644 --- a/examples/nodejs-server/package.json +++ b/examples/nodejs-server/package.json @@ -13,7 +13,7 @@ "clean": "rm -rf dist *.tsbuildinfo" }, "dependencies": { - "@app-config/main": "2", + "@app-config/main": "3.0.0-alpha.6", "fastify": "3" }, "devDependencies": { diff --git a/examples/react-native-project/package.json b/examples/react-native-project/package.json index 77e50a07..b060e2d1 100644 --- a/examples/react-native-project/package.json +++ b/examples/react-native-project/package.json @@ -12,7 +12,7 @@ "eject": "expo eject" }, "dependencies": { - "@app-config/main": "2", + "@app-config/main": "3.0.0-alpha.6", "expo": "39", "expo-status-bar": "1", "expo-yarn-workspaces": "1", @@ -22,8 +22,8 @@ }, "devDependencies": { "@babel/core": "7", - "@app-config/main": "2", - "@app-config/react-native": "2", + "@app-config/main": "3.0.0-alpha.6", + "@app-config/react-native": "3.0.0-alpha.6", "@lcdev/tsconfig": "0.1", "@types/react": "16", "@types/react-native": "0.63", diff --git a/lcdev-app-config-inject/.eslintrc.js b/lcdev-app-config-inject/.eslintrc.js deleted file mode 100644 index 10bb3e63..00000000 --- a/lcdev-app-config-inject/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@lcdev/eslint-config/cwd')(__dirname); diff --git a/lcdev-app-config-inject/README.md b/lcdev-app-config-inject/README.md deleted file mode 100644 index a0f44833..00000000 --- a/lcdev-app-config-inject/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## App Config Inject - -This is a package that re-exports `@app-config/inject`, maintained for backwards compatibility. diff --git a/lcdev-app-config-inject/package.json b/lcdev-app-config-inject/package.json deleted file mode 100644 index 1fede033..00000000 --- a/lcdev-app-config-inject/package.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "name": "@lcdev/app-config-inject", - "description": "Alias for @app-config/inject", - "version": "2.8.0", - "license": "MPL-2.0", - "author": { - "name": "Launchcode", - "email": "admin@lc.dev", - "url": "https://lc.dev" - }, - "repository": { - "type": "git", - "url": "https://github.com/launchcodedev/app-config.git" - }, - "main": "dist/index.js", - "module": "dist/es/index.js", - "types": "dist/index.d.ts", - "files": [ - "/dist", - "!**/*.tsbuildinfo", - "!**/*.test.*" - ], - "bin": { - "app-config-inject": "dist/cli.js" - }, - "scripts": { - "start": "node ./dist/cli.js", - "build": "tsc -b", - "build:es": "tsc -b tsconfig.es.json", - "clean": "rm -rf dist *.tsbuildinfo", - "lint": "eslint src", - "fix": "eslint --fix src", - "test": "jest", - "prepublishOnly": "yarn clean && yarn build && yarn build:es" - }, - "dependencies": { - "@app-config/inject": "^2.8.0" - }, - "devDependencies": {}, - "prettier": "@lcdev/prettier", - "jest": { - "preset": "@lcdev/jest" - } -} diff --git a/lcdev-app-config-inject/src/cli.ts b/lcdev-app-config-inject/src/cli.ts deleted file mode 100644 index d2e65d19..00000000 --- a/lcdev-app-config-inject/src/cli.ts +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -import { cli } from '@app-config/inject'; - -cli.parse(); diff --git a/lcdev-app-config-inject/src/index.ts b/lcdev-app-config-inject/src/index.ts deleted file mode 100644 index c7c79dd2..00000000 --- a/lcdev-app-config-inject/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from '@app-config/inject'; -export { default } from '@app-config/inject'; diff --git a/lcdev-app-config-inject/tsconfig.es.json b/lcdev-app-config-inject/tsconfig.es.json deleted file mode 100644 index 774628e3..00000000 --- a/lcdev-app-config-inject/tsconfig.es.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "target": "es2019", - "module": "es2020", - "outDir": "./dist/es" - } -} diff --git a/lcdev-app-config-inject/tsconfig.json b/lcdev-app-config-inject/tsconfig.json deleted file mode 100644 index 4c79d7d9..00000000 --- a/lcdev-app-config-inject/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ - -{ - "extends": "@lcdev/tsconfig", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "include": ["src"], - "exclude": ["node_modules"], - "references": [ - { "path": "../app-config-inject" } - ] -} - diff --git a/lcdev-app-config-webpack-plugin/.eslintrc.js b/lcdev-app-config-webpack-plugin/.eslintrc.js deleted file mode 100644 index 10bb3e63..00000000 --- a/lcdev-app-config-webpack-plugin/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@lcdev/eslint-config/cwd')(__dirname); diff --git a/lcdev-app-config-webpack-plugin/README.md b/lcdev-app-config-webpack-plugin/README.md deleted file mode 100644 index 6b057d2f..00000000 --- a/lcdev-app-config-webpack-plugin/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## App Config Webpack Plugin - -This is a package that re-exports `@app-config/webpack`, maintained for backwards compatibility. diff --git a/lcdev-app-config-webpack-plugin/package.json b/lcdev-app-config-webpack-plugin/package.json deleted file mode 100644 index 5e89c52d..00000000 --- a/lcdev-app-config-webpack-plugin/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "@lcdev/app-config-webpack-plugin", - "description": "Alias for @app-config/webpack", - "version": "2.8.0", - "license": "MPL-2.0", - "author": { - "name": "Launchcode", - "email": "admin@lc.dev", - "url": "https://lc.dev" - }, - "repository": { - "type": "git", - "url": "https://github.com/launchcodedev/app-config.git" - }, - "main": "dist/index.js", - "module": "dist/es/index.js", - "types": "dist/index.d.ts", - "files": [ - "/dist", - "!**/*.tsbuildinfo", - "!**/*.test.*" - ], - "scripts": { - "build": "tsc -b", - "build:es": "tsc -b tsconfig.es.json", - "clean": "rm -rf dist *.tsbuildinfo", - "lint": "eslint src", - "fix": "eslint --fix src", - "test": "jest", - "prepublishOnly": "yarn clean && yarn build && yarn build:es" - }, - "dependencies": { - "@app-config/webpack": "^2.8.0" - }, - "devDependencies": {}, - "prettier": "@lcdev/prettier", - "jest": { - "preset": "@lcdev/jest" - } -} diff --git a/lcdev-app-config-webpack-plugin/src/index.ts b/lcdev-app-config-webpack-plugin/src/index.ts deleted file mode 100644 index 5c1167b8..00000000 --- a/lcdev-app-config-webpack-plugin/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from '@app-config/webpack'; -export { default } from '@app-config/webpack'; diff --git a/lcdev-app-config-webpack-plugin/tsconfig.es.json b/lcdev-app-config-webpack-plugin/tsconfig.es.json deleted file mode 100644 index 774628e3..00000000 --- a/lcdev-app-config-webpack-plugin/tsconfig.es.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "target": "es2019", - "module": "es2020", - "outDir": "./dist/es" - } -} diff --git a/lcdev-app-config-webpack-plugin/tsconfig.json b/lcdev-app-config-webpack-plugin/tsconfig.json deleted file mode 100644 index 931dacc4..00000000 --- a/lcdev-app-config-webpack-plugin/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ - -{ - "extends": "@lcdev/tsconfig", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "include": ["src"], - "exclude": ["node_modules"], - "references": [ - { "path": "../app-config-webpack" } - ] -} - diff --git a/lcdev-app-config/.eslintrc.js b/lcdev-app-config/.eslintrc.js deleted file mode 100644 index 10bb3e63..00000000 --- a/lcdev-app-config/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@lcdev/eslint-config/cwd')(__dirname); diff --git a/lcdev-app-config/README.md b/lcdev-app-config/README.md deleted file mode 100644 index 103df61b..00000000 --- a/lcdev-app-config/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## App Config - -This is a package that re-exports `@app-config/main`, maintained for backwards compatibility. diff --git a/lcdev-app-config/package.json b/lcdev-app-config/package.json deleted file mode 100644 index addb3819..00000000 --- a/lcdev-app-config/package.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "name": "@lcdev/app-config", - "description": "Alias for @app-config/main", - "version": "2.8.0", - "license": "MPL-2.0", - "author": { - "name": "Launchcode", - "email": "admin@lc.dev", - "url": "https://lc.dev" - }, - "repository": { - "type": "git", - "url": "https://github.com/launchcodedev/app-config.git" - }, - "main": "dist/index.js", - "module": "dist/es/index.js", - "types": "dist/index.d.ts", - "files": [ - "/dist", - "!**/*.tsbuildinfo", - "!**/*.test.*" - ], - "bin": { - "ac": "dist/cli.js", - "app-config": "dist/cli.js" - }, - "scripts": { - "build": "tsc -b", - "build:es": "tsc -b tsconfig.es.json", - "clean": "rm -rf dist *.tsbuildinfo", - "lint": "eslint src", - "fix": "eslint --fix src", - "test": "jest", - "prepublishOnly": "yarn clean && yarn build && yarn build:es" - }, - "dependencies": { - "@app-config/cli": "^2.8.0", - "@app-config/main": "^2.8.0" - }, - "devDependencies": {}, - "prettier": "@lcdev/prettier", - "jest": { - "preset": "@lcdev/jest" - } -} diff --git a/lcdev-app-config/src/cli.ts b/lcdev-app-config/src/cli.ts deleted file mode 100644 index 3f38628b..00000000 --- a/lcdev-app-config/src/cli.ts +++ /dev/null @@ -1,5 +0,0 @@ -#!/usr/bin/env node - -import { cli } from '@app-config/cli'; - -cli.parse(); diff --git a/lcdev-app-config/src/index.ts b/lcdev-app-config/src/index.ts deleted file mode 100644 index 6b4115fa..00000000 --- a/lcdev-app-config/src/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from '@app-config/main'; -export { default } from '@app-config/main'; diff --git a/lcdev-app-config/tsconfig.es.json b/lcdev-app-config/tsconfig.es.json deleted file mode 100644 index 774628e3..00000000 --- a/lcdev-app-config/tsconfig.es.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "target": "es2019", - "module": "es2020", - "outDir": "./dist/es" - } -} diff --git a/lcdev-app-config/tsconfig.json b/lcdev-app-config/tsconfig.json deleted file mode 100644 index 9d6f06dd..00000000 --- a/lcdev-app-config/tsconfig.json +++ /dev/null @@ -1,14 +0,0 @@ - -{ - "extends": "@lcdev/tsconfig", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "include": ["src"], - "exclude": ["node_modules"], - "references": [ - { "path": "../app-config-test-utils" } - ] -} - diff --git a/lcdev-react-native-app-config-transformer/.eslintrc.js b/lcdev-react-native-app-config-transformer/.eslintrc.js deleted file mode 100644 index 10bb3e63..00000000 --- a/lcdev-react-native-app-config-transformer/.eslintrc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = require('@lcdev/eslint-config/cwd')(__dirname); diff --git a/lcdev-react-native-app-config-transformer/README.md b/lcdev-react-native-app-config-transformer/README.md deleted file mode 100644 index c6f7bc80..00000000 --- a/lcdev-react-native-app-config-transformer/README.md +++ /dev/null @@ -1,4 +0,0 @@ -## App Config React Native - -This is a package that re-exports `@app-config/react-native`, maintained for backwards compatibility. - diff --git a/lcdev-react-native-app-config-transformer/package.json b/lcdev-react-native-app-config-transformer/package.json deleted file mode 100644 index 55cb3591..00000000 --- a/lcdev-react-native-app-config-transformer/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "@lcdev/react-native-app-config-transformer", - "description": "Alias for @app-config/react-native", - "version": "2.8.0", - "license": "MPL-2.0", - "author": { - "name": "Launchcode", - "email": "admin@lc.dev", - "url": "https://lc.dev" - }, - "repository": { - "type": "git", - "url": "https://github.com/launchcodedev/app-config.git" - }, - "main": "dist/index.js", - "module": "dist/es/index.js", - "types": "dist/index.d.ts", - "files": [ - "/dist", - "!**/*.tsbuildinfo", - "!**/*.test.*" - ], - "scripts": { - "build": "tsc -b", - "build:es": "tsc -b tsconfig.es.json", - "clean": "rm -rf dist *.tsbuildinfo", - "lint": "eslint src", - "fix": "eslint --fix src", - "test": "jest", - "prepublishOnly": "yarn clean && yarn build && yarn build:es" - }, - "dependencies": { - "@app-config/react-native": "^2.8.0" - }, - "devDependencies": {}, - "prettier": "@lcdev/prettier", - "jest": { - "preset": "@lcdev/jest" - } -} diff --git a/lcdev-react-native-app-config-transformer/src/index.ts b/lcdev-react-native-app-config-transformer/src/index.ts deleted file mode 100644 index 6a7c79d4..00000000 --- a/lcdev-react-native-app-config-transformer/src/index.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '@app-config/react-native'; diff --git a/lcdev-react-native-app-config-transformer/tsconfig.es.json b/lcdev-react-native-app-config-transformer/tsconfig.es.json deleted file mode 100644 index 774628e3..00000000 --- a/lcdev-react-native-app-config-transformer/tsconfig.es.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "extends": "./tsconfig.json", - "compilerOptions": { - "target": "es2019", - "module": "es2020", - "outDir": "./dist/es" - } -} diff --git a/lcdev-react-native-app-config-transformer/tsconfig.json b/lcdev-react-native-app-config-transformer/tsconfig.json deleted file mode 100644 index 58436a8a..00000000 --- a/lcdev-react-native-app-config-transformer/tsconfig.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "extends": "@lcdev/tsconfig", - "compilerOptions": { - "rootDir": "./src", - "outDir": "./dist" - }, - "include": ["src"], - "exclude": ["node_modules"], - "references": [ - { "path": "../app-config-test-utils" }, - { "path": "../app-config-react-native" } - ] -} diff --git a/lerna.json b/lerna.json index 219e7b82..c000b574 100644 --- a/lerna.json +++ b/lerna.json @@ -1,7 +1,6 @@ { "packages": [ "app-config-*", - "lcdev-*", "tests/parsing-extensions/*", "tests/webpack-projects/*", "examples/*", diff --git a/new-version.sh b/new-version.sh index c728cfe1..698d160b 100755 --- a/new-version.sh +++ b/new-version.sh @@ -41,7 +41,6 @@ new_version app-config-cli new_version app-config-config new_version app-config-core new_version app-config-cypress -new_version app-config-default-extensions new_version app-config-electron new_version app-config-encryption new_version app-config-esbuild @@ -66,10 +65,6 @@ new_version app-config-v1-compat new_version app-config-vault new_version app-config-vite new_version app-config-webpack -new_version lcdev-app-config -new_version lcdev-app-config-inject -new_version lcdev-app-config-webpack-plugin -new_version lcdev-react-native-app-config-transformer git commit -m "chore: release v$VERSION" git tag v$VERSION diff --git a/package.json b/package.json index 037b3b02..12db7959 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,6 @@ "workspaces": { "packages": [ "app-config-*", - "lcdev-*", "tests/parsing-extensions/*", "tests/webpack-projects/*", "examples/*", diff --git a/tests/standalone-project/package.json b/tests/standalone-project/package.json index d620aec8..54838bb2 100644 --- a/tests/standalone-project/package.json +++ b/tests/standalone-project/package.json @@ -10,7 +10,7 @@ "clean": "rm -rf dist *.tsbuildinfo" }, "dependencies": { - "@app-config/main": "2" + "@app-config/main": "3.0.0-alpha.6" }, "devDependencies": { "typescript": "*" diff --git a/tests/webpack-projects/app-config-core-in-browser/package.json b/tests/webpack-projects/app-config-core-in-browser/package.json index 4b717faf..7de8e190 100644 --- a/tests/webpack-projects/app-config-core-in-browser/package.json +++ b/tests/webpack-projects/app-config-core-in-browser/package.json @@ -10,8 +10,8 @@ "clean": "rm -rf ./dist" }, "dependencies": { - "@app-config/core": "2", - "@app-config/utils": "2" + "@app-config/core": "3.0.0-alpha.6", + "@app-config/utils": "3.0.0-alpha.6" }, "devDependencies": { "@lcdev/tsconfig": "0.2", diff --git a/tests/webpack-projects/cypress-plugin/cypress/integration/main.spec.ts b/tests/webpack-projects/cypress-plugin/cypress/integration/main.spec.ts index 8ff9fdb4..a084d8cd 100644 --- a/tests/webpack-projects/cypress-plugin/cypress/integration/main.spec.ts +++ b/tests/webpack-projects/cypress-plugin/cypress/integration/main.spec.ts @@ -32,7 +32,7 @@ describe('Config Loading', () => { cy.visit('/'); - cy.get('body').should('contain', `Config Error: should NOT have fewer than 10 characters`); + cy.get('body').should('contain', `Config Error: must NOT have fewer than 10 characters`); }); it('uses config from webpack preprocessor', () => { diff --git a/tests/webpack-projects/cypress-plugin/package.json b/tests/webpack-projects/cypress-plugin/package.json index ca11c729..6cfe6f2e 100644 --- a/tests/webpack-projects/cypress-plugin/package.json +++ b/tests/webpack-projects/cypress-plugin/package.json @@ -10,11 +10,11 @@ "clean": "rm -rf ./dist" }, "dependencies": { - "@app-config/main": "2", - "@app-config/cypress": "2" + "@app-config/main": "3.0.0-alpha.6", + "@app-config/cypress": "3.0.0-alpha.6" }, "devDependencies": { - "@app-config/webpack": "2", + "@app-config/webpack": "3.0.0-alpha.6", "@babel/core": "7", "@babel/preset-env": "7", "@cypress/webpack-preprocessor": "5", diff --git a/tests/webpack-projects/extending-other-files/package.json b/tests/webpack-projects/extending-other-files/package.json index 9ff25e95..653e5cd2 100644 --- a/tests/webpack-projects/extending-other-files/package.json +++ b/tests/webpack-projects/extending-other-files/package.json @@ -10,10 +10,10 @@ "clean": "rm -rf ./dist" }, "dependencies": { - "@app-config/main": "2" + "@app-config/main": "3.0.0-alpha.6" }, "devDependencies": { - "@app-config/webpack": "2", + "@app-config/webpack": "3.0.0-alpha.6", "@lcdev/tsconfig": "0.2", "cross-env": "7", "cypress": "6", diff --git a/tests/webpack-projects/query-parameter-overrides/cypress/integration/main.spec.ts b/tests/webpack-projects/query-parameter-overrides/cypress/integration/main.spec.ts index cd7ff597..aa322bef 100644 --- a/tests/webpack-projects/query-parameter-overrides/cypress/integration/main.spec.ts +++ b/tests/webpack-projects/query-parameter-overrides/cypress/integration/main.spec.ts @@ -22,12 +22,12 @@ describe('Config Loading', () => { it('should not accept invalid query parameter override', () => { cy.visit(`/?config=${JSON.stringify({ urlProperty: 'not a url' })}`); - cy.get('body').should('contain', `Config Error: should match format "uri"`); + cy.get('body').should('contain', `Config Error: must match format "uri"`); }); it('should not accept invalid longStringProperty', () => { cy.visit(`/?config=${JSON.stringify({ longStringProperty: 'short' })}`); - cy.get('body').should('contain', `Config Error: should NOT have fewer than 10 characters`); + cy.get('body').should('contain', `Config Error: must NOT have fewer than 10 characters`); }); }); diff --git a/tests/webpack-projects/query-parameter-overrides/package.json b/tests/webpack-projects/query-parameter-overrides/package.json index 9a7e2067..8250e18d 100644 --- a/tests/webpack-projects/query-parameter-overrides/package.json +++ b/tests/webpack-projects/query-parameter-overrides/package.json @@ -10,11 +10,11 @@ "clean": "rm -rf ./dist" }, "dependencies": { - "@app-config/main": "2", + "@app-config/main": "3.0.0-alpha.6", "lodash.merge": "^4.6.2" }, "devDependencies": { - "@app-config/webpack": "2", + "@app-config/webpack": "3.0.0-alpha.6", "@lcdev/tsconfig": "0.2", "cross-env": "7", "cypress": "6", diff --git a/tests/webpack-projects/two-app-config-sources/package.json b/tests/webpack-projects/two-app-config-sources/package.json index 3ee7a28b..15aec0ea 100644 --- a/tests/webpack-projects/two-app-config-sources/package.json +++ b/tests/webpack-projects/two-app-config-sources/package.json @@ -10,10 +10,10 @@ "clean": "rm -rf ./dist" }, "dependencies": { - "@app-config/main": "2" + "@app-config/main": "3.0.0-alpha.6" }, "devDependencies": { - "@app-config/webpack": "2", + "@app-config/webpack": "3.0.0-alpha.6", "@lcdev/tsconfig": "0.2", "cross-env": "7", "cypress": "6", diff --git a/tests/webpack-projects/webpack5/cypress/integration/main.spec.ts b/tests/webpack-projects/webpack5/cypress/integration/main.spec.ts index 132b6b85..07cf0a43 100644 --- a/tests/webpack-projects/webpack5/cypress/integration/main.spec.ts +++ b/tests/webpack-projects/webpack5/cypress/integration/main.spec.ts @@ -32,7 +32,7 @@ describe('Config Loading', () => { cy.visit('/'); - cy.get('body').should('contain', `Config Error: should NOT have fewer than 10 characters`); + cy.get('body').should('contain', `Config Error: must NOT have fewer than 10 characters`); }); it('uses config from webpack preprocessor', () => { diff --git a/tests/webpack-projects/webpack5/package.json b/tests/webpack-projects/webpack5/package.json index a0951b9c..cfb0d45b 100644 --- a/tests/webpack-projects/webpack5/package.json +++ b/tests/webpack-projects/webpack5/package.json @@ -10,11 +10,11 @@ "clean": "rm -rf ./dist" }, "dependencies": { - "@app-config/main": "2", - "@app-config/cypress": "2" + "@app-config/main": "3.0.0-alpha.6", + "@app-config/cypress": "3.0.0-alpha.6" }, "devDependencies": { - "@app-config/webpack": "2", + "@app-config/webpack": "3.0.0-alpha.6", "@babel/core": "7", "@babel/preset-env": "7", "@cypress/webpack-preprocessor": "5", diff --git a/tsconfig.es.json b/tsconfig.es.json index ca89aae0..e91ecb5c 100644 --- a/tsconfig.es.json +++ b/tsconfig.es.json @@ -31,10 +31,6 @@ { "path": "app-config-v1-compat/tsconfig.es.json" }, { "path": "app-config-vault/tsconfig.es.json" }, { "path": "app-config-vite/tsconfig.es.json" }, - { "path": "app-config-webpack/tsconfig.es.json" }, - { "path": "lcdev-app-config/tsconfig.es.json" }, - { "path": "lcdev-app-config-inject/tsconfig.es.json" }, - { "path": "lcdev-app-config-webpack-plugin/tsconfig.es.json" }, - { "path": "lcdev-react-native-app-config-transformer/tsconfig.es.json" } + { "path": "app-config-webpack/tsconfig.es.json" } ] } diff --git a/tsconfig.json b/tsconfig.json index c53b1c93..09148427 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -31,10 +31,6 @@ { "path": "app-config-v1-compat/tsconfig.json" }, { "path": "app-config-vault/tsconfig.json" }, { "path": "app-config-vite/tsconfig.json" }, - { "path": "app-config-webpack/tsconfig.json" }, - { "path": "lcdev-app-config/tsconfig.json" }, - { "path": "lcdev-app-config-inject/tsconfig.json" }, - { "path": "lcdev-app-config-webpack-plugin/tsconfig.json" }, - { "path": "lcdev-react-native-app-config-transformer/tsconfig.json" } + { "path": "app-config-webpack/tsconfig.json" } ] } diff --git a/yarn.lock b/yarn.lock index 317512d6..b3b3779c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,321 @@ call-me-maybe "^1.0.1" js-yaml "^4.1.0" +"@app-config/cli@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/cli/-/cli-2.8.0.tgz#bef5f3079e8ac06fa046f612ef2209c60646a78f" + integrity sha512-URvHu0MgT1gLo5L8UMqW3LNStJHhyvLSqS1vLzQSarGSRV+W7Gg4Yoks7Vc66aGnC+7MVLxRjwfVIMPxEpX6Ag== + dependencies: + "@app-config/config" "^2.8.0" + "@app-config/core" "^2.8.0" + "@app-config/encryption" "^2.8.0" + "@app-config/generate" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@app-config/node" "^2.8.0" + "@app-config/schema" "^2.8.0" + "@app-config/utils" "^2.8.0" + ajv "7" + clipboardy "2" + common-tags "1" + execa "5" + fs-extra "9" + json-schema-ref-parser "9" + yargs "16" + +"@app-config/config@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/config/-/config-2.8.0.tgz#05b530b16572d53b93375a2166e38482d7582318" + integrity sha512-XOcOQCr4UYZyKpLptyfEohYXBZSt1gzBK3A+c/uOmAaBZzSt+T3LTGX/kUfcEHnGPdO6b2FTozKLc3zQ4MeWiQ== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/default-extensions" "^2.8.0" + "@app-config/extensions" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@app-config/meta" "^2.8.0" + "@app-config/node" "^2.8.0" + "@app-config/schema" "^2.8.0" + "@app-config/utils" "^2.8.0" + +"@app-config/core@3.0.0-alpha.4": + version "3.0.0-alpha.4" + resolved "https://registry.yarnpkg.com/@app-config/core/-/core-3.0.0-alpha.4.tgz#c823a48a7d3cb2bea0ad5b69d6cc37d36b0fa9ce" + integrity sha512-ZB+ywDpLU9iXl8quMu9w3Z0mpT/CujhhdlgyegvrBO3WHX73zhwc3DJ/PDLyzJzLcNCo8085/KDfwWemopIg9A== + dependencies: + "@app-config/logging" "^3.0.0-alpha.4" + "@app-config/utils" "^3.0.0-alpha.4" + "@iarna/toml" "3" + js-yaml "^3.13.1" + json5 "2" + lodash.merge "^4.6.2" + +"@app-config/core@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/core/-/core-2.8.0.tgz#ebd2434682fb9796857537df4cc846b7cc4b7a70" + integrity sha512-d8AGY0lRwkGXwkKvC2xLdxwWWPa4TQHcaCaVo8RgO3DMkBJTFB7l1eSPQprAS7QrZXnAU/HuCHVnyqdU6jsN7Q== + dependencies: + "@app-config/logging" "^2.8.0" + "@app-config/utils" "^2.8.0" + "@iarna/toml" "3" + js-yaml "^3.13.1" + json5 "2" + lodash.merge "^4.6.2" + +"@app-config/cypress@2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/cypress/-/cypress-2.8.0.tgz#c015ed70147dde5a085e2f92dbf1394b22f10ee2" + integrity sha512-T1IXFgoQ3cS0n6X8Xy/jscX0Hyh3c1jShxgi6JPoIdiJ3z3tpS4gGXFF5nRjOYDsmQ4bixG6Pz+ikEXfgYQYCw== + +"@app-config/cypress@3.0.0-alpha.4": + version "3.0.0-alpha.4" + resolved "https://registry.yarnpkg.com/@app-config/cypress/-/cypress-3.0.0-alpha.4.tgz#9558866c16b57ecd9b8138b462ef2a416c02cc27" + integrity sha512-342XaFBZxHTuIquyrEodWsX9iozQuLOYkgHgB6mbNN2ng6bxDoJrUAEomY7aD/n5vb2U1Gv16dWYLvUc75eDDg== + +"@app-config/default-extensions@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/default-extensions/-/default-extensions-2.8.0.tgz#3dd96e04dd949b0a174e25fe8079bfd965453a46" + integrity sha512-Gi3pezdDLNXoSEDVHN48F9gFk/RP1UNlFjC1Bz9/5JVktMYINn2PYbKqKpgVp0A+uw6Qrm1VX/4RlAaFV1xg4A== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/encryption" "^2.8.0" + "@app-config/extensions" "^2.8.0" + "@app-config/git" "^2.8.0" + "@app-config/v1-compat" "^2.1.4" + +"@app-config/electron@^2.6.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/electron/-/electron-2.8.0.tgz#7e30db5f0f6b3bc2f49ff17590333d4c293b0c8a" + integrity sha512-YPvKCTIcHJs+O8OZC+H2AUxiIBac9qSxD2pPHnSFMfhctSnrP/9SSB7G09qSe0QSvoIiC4XC/SigPeu8iWXU6A== + dependencies: + "@app-config/logging" "^2.6.0" + "@app-config/main" "^2.6.0" + +"@app-config/encryption@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/encryption/-/encryption-2.8.0.tgz#1b840c3c70b1f7b1580e5b3baad0f28db02f5ff1" + integrity sha512-E+SqoMTshCmPjcUvoCr/Cvir5+oOjt7q643CKMPipTDl2QEA5lekMKGBYwa4KybL+kWDx81t9tbmgREf8+IEbQ== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/extension-utils" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@app-config/meta" "^2.8.0" + "@app-config/node" "^2.8.0" + "@app-config/settings" "^2.8.0" + "@app-config/utils" "^2.8.0" + "@lcdev/ws-rpc" "0.4" + "@types/openpgp" "4" + common-tags "1" + fs-extra "7" + openpgp "^4.3.0" + selfsigned "1" + text-encoding-utf-8 "1" + ws "7" + +"@app-config/esbuild@2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/esbuild/-/esbuild-2.8.0.tgz#63babd2ad1c136631a224d31d7854a2a0e73beb9" + integrity sha512-KrzECu3fN+Q+7K1ieMvpEE0H/+ijXbkSvOEGd0881Y1PLRT8N6+0F2gDxz5FC9BDFOwyjrjcKoaDBz5X85C5MQ== + dependencies: + "@app-config/config" "^2.8.0" + "@app-config/utils" "^2.8.0" + +"@app-config/extension-utils@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/extension-utils/-/extension-utils-2.8.0.tgz#73c80d0a6aac6059353977697541f13e190e5320" + integrity sha512-hw2BylemWyVKu9ubKzgSORfEln7MUeRmiWJ7SDAzr8xHz6qNvYqTtjbceiFE2MqFsDfDix1Xt306u8e9X134LA== + dependencies: + "@app-config/core" "^2.8.0" + "@serafin/schema-builder" "0.14" + +"@app-config/extensions@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/extensions/-/extensions-2.8.0.tgz#19bae110527515928e3391c0b010d975cda98eb2" + integrity sha512-p/4+OKpGh832cLi7xsOgjOm732A5YRkEDubYJ7W+93elDaRD+phvhweIITTQ4wZVbSqGXB4rVDjCAaj3G8UHJw== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/extension-utils" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@app-config/node" "^2.8.0" + "@app-config/utils" "^2.8.0" + lodash.isequal "4" + +"@app-config/generate@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/generate/-/generate-2.8.0.tgz#7408c4e919cc1bf3b78259d783f87899675707b3" + integrity sha512-ijr4VWQ3Hucaxg5L8yX5tK57q8SdK1BGgtCu4Q34mCqhgoblyIfbws2KjOCkYsfR9mtGY8YxieonSgmT1zGqmQ== + dependencies: + "@app-config/logging" "^2.8.0" + "@app-config/meta" "^2.8.0" + "@app-config/schema" "^2.8.0" + "@types/readable-stream" "2" + "@types/urijs" "1" + common-tags "1" + fs-extra "7" + lodash "4" + quicktype-core "6.0.70" + +"@app-config/git@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/git/-/git-2.8.0.tgz#b382e8dcd92a7765fcad59ea0e2b865c3ae214a1" + integrity sha512-4vc7OGSqaChUOt4WkFNWeo9PwQcFZhfO/Um0cKKD7ES+8Nu/NZpOEn4g5bleK7sKrsr/16bJJhv0/rN6dzzehQ== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/extension-utils" "^2.8.0" + "@app-config/logging" "^2.8.0" + simple-git "2" + +"@app-config/logging@2", "@app-config/logging@^2.6.0", "@app-config/logging@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/logging/-/logging-2.8.0.tgz#16cd1e10f82f8310d06358adc5a5642987e4941b" + integrity sha512-rtVznu+uOtaaD3djHmdEW7gcSS2aUCr0Sb1Og6KwoLtCleIQ4UNNhV6HlHySv1ty3jodSOKe9Nl1+mtBV0BFUw== + dependencies: + "@app-config/utils" "^2.8.0" + +"@app-config/main@3.0.0-alpha.4": + version "3.0.0-alpha.4" + resolved "https://registry.yarnpkg.com/@app-config/main/-/main-3.0.0-alpha.4.tgz#b3dd4e68d683ea6ab2dcb74ce2bac338503f816d" + integrity sha512-9DAuj7uS9EPrCGe9zLcREFWow5pH+xhzblcgRbYHjkTdHUy4e/6edhne7BgcsaW9/+VRCi33NvX5b6VyciFtaw== + dependencies: + "@app-config/cli" "^3.0.0-alpha.4" + "@app-config/config" "^3.0.0-alpha.4" + "@app-config/core" "^3.0.0-alpha.4" + "@app-config/extensions" "^3.0.0-alpha.4" + "@app-config/logging" "^3.0.0-alpha.4" + "@app-config/meta" "^3.0.0-alpha.4" + "@app-config/node" "^3.0.0-alpha.4" + "@app-config/schema" "^3.0.0-alpha.4" + "@app-config/utils" "^3.0.0-alpha.4" + ajv "8" + +"@app-config/main@^2.6.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/main/-/main-2.8.0.tgz#ce56cd165d8418a8fd0b747bfc71b7aee194f245" + integrity sha512-Qe7zxIvYQDJUiL/WtNyDU+o9zz4lAqGYlt+XsdeJGCE0MoymTQH9Zd0tuVJqwsoxf36ezoLDAf5jrXlX8CBSIA== + dependencies: + "@app-config/cli" "^2.8.0" + "@app-config/config" "^2.8.0" + "@app-config/core" "^2.8.0" + "@app-config/default-extensions" "^2.8.0" + "@app-config/encryption" "^2.8.0" + "@app-config/extensions" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@app-config/meta" "^2.8.0" + "@app-config/node" "^2.8.0" + "@app-config/schema" "^2.8.0" + "@app-config/utils" "^2.8.0" + ajv "7" + +"@app-config/meta@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/meta/-/meta-2.8.0.tgz#cea3d209eb6df5870cacfec25f1a5961c226c36f" + integrity sha512-6WfjxXiFzAcG2odHgb1hrvM963iEAA5OQQy/xm7OfTse1mS/TvRUpLdLNAccQef50386ytCVUPah6IadThBzhg== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/default-extensions" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@app-config/node" "^2.8.0" + "@app-config/utils" "^2.8.0" + fs-extra "7" + +"@app-config/node@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/node/-/node-2.8.0.tgz#096be7568b13cfc4faf93c987ea2815a161a3f9a" + integrity sha512-Ud9dQAUBMFhVXwJPrTxrfwnck8z9mvl/Zsrx+xH1rXvV8ENRia0sHUlHihZqkGyRZ/aiLpFuxjPUNNXSGkSThA== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@types/prompts" "2" + fs-extra "9" + prompts "2" + +"@app-config/react-native@3.0.0-alpha.4": + version "3.0.0-alpha.4" + resolved "https://registry.yarnpkg.com/@app-config/react-native/-/react-native-3.0.0-alpha.4.tgz#af0550539dfce1d9c9358ea34170e7f89cbdb68f" + integrity sha512-+w6Hsy+pZGUL2uAjdBVzc4vnmqjDo3j/ItTtEFQ4X1MFXfMN5NIiY7Z6me2ZcRFO4nBszp8z2/CAKX40JznweA== + dependencies: + semver "7" + +"@app-config/rollup@2", "@app-config/rollup@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/rollup/-/rollup-2.8.0.tgz#b363a9a5969a053d8d31d24a06af742f8dc99d36" + integrity sha512-tdd7YNYEbMW8n74RzrKZuEUtmXs8G5B1HclO2Nh7Qa04t9SARJenKeDiLrRqHsb0O3RrixT7I50JzMdToORQkg== + dependencies: + "@app-config/config" "^2.8.0" + "@app-config/utils" "^2.8.0" + +"@app-config/schema@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/schema/-/schema-2.8.0.tgz#30e894fcb10279e9dbca296df8dfb00d43b6f238" + integrity sha512-ivXdXlHcH9QLwutiSJVkCW7E9rp7IqzU7wMb50SUy6Up3JaLo9ArPHPKvIKNSs9lTgvpo4bMmSrztnjmbYYlIg== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@app-config/node" "^2.8.0" + "@app-config/utils" "^2.8.0" + "@types/json-schema" "7" + ajv "7" + ajv-formats "1" + json-schema-ref-parser "9" + +"@app-config/settings@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/settings/-/settings-2.8.0.tgz#b14f90332a0395ffa0b64ea2984d3e83420791d6" + integrity sha512-3xqu1OUMmtV/WSrxFY0pHL4Z/BV0apdbDtDz9Im1oSRCvIMJgQ2c0SsVak6pgjQCI1qh7uZrzU+7Tsscohl60A== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@app-config/node" "^2.8.0" + "@app-config/utils" "^2.8.0" + env-paths "2" + fs-extra "7" + +"@app-config/test-utils@*": + version "2.0.0" + resolved "https://registry.yarnpkg.com/@app-config/test-utils/-/test-utils-2.0.0.tgz#e84d46505bf7283be1811f669a0ab5c8ad27d28e" + integrity sha512-BWnJmj8ImMfpVhSN51ztAiv5D/iej5C8NsaY3RhLUuNV5Jo415w4WjEa2K9E9iLOcmVDEKxk8M+MLP3j9hD9IQ== + dependencies: + "@app-config/logging" "2" + "@types/fs-extra" "9" + "@types/tmp" "0.2" + fs-extra "9" + mock-stdin "1" + tmp-promise "3" + +"@app-config/utils@3.0.0-alpha.4": + version "3.0.0-alpha.4" + resolved "https://registry.yarnpkg.com/@app-config/utils/-/utils-3.0.0-alpha.4.tgz#36d8cc06fda8484b6174bb9a18d5fad57fa0df9e" + integrity sha512-WGRf80ho32EaFiXUDkJlZmFqTq3iARx2GFSZPNwE4httKhtwqG6+ll5RYmy5wzCdNM/5UAB1w4idXXgAjZKxiw== + +"@app-config/utils@^2.8.0": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/utils/-/utils-2.8.0.tgz#56f3aa3083d4cb6375901f9320434c04b8070572" + integrity sha512-CVVcaUACnVRW5uEcpluyLiMFNvzsDF/AowM0sGIgPDhr31cbBVR+ic5rNUKY/FXTBsCcYpv1N/TUaaQ8WQaEcw== + +"@app-config/v1-compat@^2.1.4": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/v1-compat/-/v1-compat-2.8.0.tgz#2a5029be81c14942eb622460cfd94d631eb38394" + integrity sha512-nrTzPLQ2SayN3/s8v/6htl4OjnPPuLvpmmUcmD/htdxPMddTP8P/WHMgNm/KCxK61aKJKwdvhU9aF0y+G9cjlw== + dependencies: + "@app-config/core" "^2.8.0" + "@app-config/extension-utils" "^2.8.0" + "@app-config/logging" "^2.8.0" + "@app-config/node" "^2.8.0" + "@app-config/utils" "^2.8.0" + fs-extra "7" + +"@app-config/vite@2": + version "2.8.0" + resolved "https://registry.yarnpkg.com/@app-config/vite/-/vite-2.8.0.tgz#5a46f7b9f62126c4003a0aa25f2d0b64e15a7d86" + integrity sha512-Zfc2UaPifvzj0of+vYcaLX1j8umR3ewcImuIXmTxD3UAsCqFZNXUsSkPPk0nlA4zh5QIJM/1UiT7oXuoiXWVXQ== + dependencies: + "@app-config/rollup" "^2.8.0" + +"@app-config/webpack@3.0.0-alpha.4": + version "3.0.0-alpha.4" + resolved "https://registry.yarnpkg.com/@app-config/webpack/-/webpack-3.0.0-alpha.4.tgz#45e6dadc3592020b506baae808ec1427503c1a71" + integrity sha512-NiBWs9cZdyCA+OcRPNKDwoaEOkYnqmN0EdPX1DHiVXnN0itsxyWzG2yjYI6VozZCn0VvOOXC0xxi6YbTV/HSiw== + dependencies: + loader-utils "2" + "@babel/code-frame@7.10.4", "@babel/code-frame@~7.10.4": version "7.10.4" resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz#168da1a36e90da68ae8d49c0f1b48c7c6249213a" @@ -3160,10 +3475,10 @@ is-plain-object "^5.0.0" universal-user-agent "^6.0.0" -"@octokit/openapi-types@^10.3.0": - version "10.3.0" - resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-10.3.0.tgz#c168e6904055bf637a43c79331ad280b142c7762" - integrity sha512-mThN3aLK9BXPKdVUNxmQLv6nCJMmp7mrfTNvw9NevzvXhM3ObGg6NWsAfCtP6t3fCcpNhkL1fwbbm4pF55DmXg== +"@octokit/openapi-types@^10.5.0": + version "10.6.0" + resolved "https://registry.yarnpkg.com/@octokit/openapi-types/-/openapi-types-10.6.0.tgz#13278af3cbe7bb141dc4ae02c24eaff209efadfb" + integrity sha512-/iQtZq+zuQJrwawFyjixh333xPu4/KJKk0bFM/Omm4kFlTGw0dWXfq6xCOe5DqONW0faW29Cc9r6p2mvl72aTQ== "@octokit/plugin-enterprise-rest@^6.0.1": version "6.0.1" @@ -3250,11 +3565,11 @@ "@types/node" ">= 8" "@octokit/types@^6.0.3", "@octokit/types@^6.16.1": - version "6.29.0" - resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.29.0.tgz#0261a7f0aea05d4b348845f8d763821e5c661072" - integrity sha512-+6DczLm2ryGbMmJspCA26gt0OGonhCwVrp9wqku486SCo6/SjbI2ipbJm8TSKWuQ6LJgftRC+Q236v6tVgaa1w== + version "6.31.0" + resolved "https://registry.yarnpkg.com/@octokit/types/-/types-6.31.0.tgz#b444852100090d1c5d0015614860c6131dc217e8" + integrity sha512-xobpvYmMYoFSxZB6jL1TPTMMZkxZIBlY145ZKibBJDKCczP1FrLLougtuVOZywGVZdcYs8oq2Bxb3aMjqIFeiw== dependencies: - "@octokit/openapi-types" "^10.3.0" + "@octokit/openapi-types" "^10.5.0" "@pmmmwh/react-refresh-webpack-plugin@^0.3.3": version "0.3.3" @@ -3612,9 +3927,9 @@ "@types/lodash" "*" "@types/lodash@*": - version "4.14.173" - resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.173.tgz#9d3b674c67a26cf673756f6aca7b429f237f91ed" - integrity sha512-vv0CAYoaEjCw/mLy96GBTnRoZrSxkGE0BKzKimdR8P3OzrNYNvBgtW7p055A+E8C31vXNUhWKoFCbhq7gbyhFg== + version "4.14.174" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.174.tgz#b4b06b6eced9850eed6b6a8f1abdd0f5192803c1" + integrity sha512-KMBLT6+g9qrGXpDt7ohjWPUD34WA/jasrtjTEHStF0NPdEwJ1N9SZ+4GaMVDeuk/y0+X5j9xFm6mNiXS7UoaLQ== "@types/minimatch@*": version "3.0.5" @@ -3627,9 +3942,9 @@ integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== "@types/node@*", "@types/node@>= 8": - version "16.9.6" - resolved "https://registry.yarnpkg.com/@types/node/-/node-16.9.6.tgz#040a64d7faf9e5d9e940357125f0963012e66f04" - integrity sha512-YHUZhBOMTM3mjFkXVcK+WwAcYmyhe1wL4lfqNtzI0b3qAy7yuSetnM7QJazgE5PFmgVTNGiLOgRFfJMqW7XpSQ== + version "16.10.1" + resolved "https://registry.yarnpkg.com/@types/node/-/node-16.10.1.tgz#f3647623199ca920960006b3dccf633ea905f243" + integrity sha512-4/Z9DMPKFexZj/Gn3LylFgamNKHm4K3QDi0gz9B26Uk0c8izYf97B5fxfpspMNkWlFupblKM/nV8+NA9Ffvr+w== "@types/node@12.12.50": version "12.12.50" @@ -3637,9 +3952,9 @@ integrity sha512-5ImO01Fb8YsEOYpV+aeyGYztcYcjGsBvN4D7G5r1ef2cuQOpymjWNQi5V0rKHE6PC2ru3HkoUr/Br2/8GUA84w== "@types/node@^14.6.2": - version "14.17.18" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.18.tgz#0198489a751005f71217744aa966cd1f29447c81" - integrity sha512-haYyibw4pbteEhkSg0xdDLAI3679L75EJ799ymVrPxOA922bPx3ML59SoDsQ//rHlvqpu+e36kcbR3XRQtFblA== + version "14.17.19" + resolved "https://registry.yarnpkg.com/@types/node/-/node-14.17.19.tgz#7341e9ac1b5d748d7a3ddc04336ed536a6f91c31" + integrity sha512-jjYI6NkyfXykucU6ELEoT64QyKOdvaA6enOqKtP4xUsGY0X0ZUZz29fUmrTRo+7v7c6TgDu82q3GHHaCEkqZwA== "@types/normalize-package-data@^2.4.0": version "2.4.1" @@ -3659,9 +3974,9 @@ integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== "@types/prettier@^2.0.0": - version "2.3.2" - resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.3.2.tgz#fc8c2825e4ed2142473b4a81064e6e081463d1b3" - integrity sha512-eI5Yrz3Qv4KPUa/nSIAi0h+qX0XyewOliug5F2QAtuRg6Kjg6jfmxe1GIwoIRhZspD1A0RP8ANrPwvEXXtRFog== + version "2.4.0" + resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.4.0.tgz#900b13362610ccd3570fb6eefb911a6732973d00" + integrity sha512-WHRsy5nMpjXfU9B0LqOqPT06EI2+8Xv5NERy0pLxJLbU98q7uhcGogQzfX+rXpU7S5mgHsLxHrLCufZcV/P8TQ== "@types/prompts@2": version "2.0.14" @@ -4634,6 +4949,13 @@ ajv-formats@1: dependencies: ajv "^7.0.0" +ajv-formats@2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ajv-formats/-/ajv-formats-2.1.1.tgz#6e669400659eb74973bbf2e33327180a0996b520" + integrity sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA== + dependencies: + ajv "^8.0.0" + ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: version "3.5.2" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" @@ -4659,6 +4981,16 @@ ajv@7, ajv@^7.0.0: require-from-string "^2.0.2" uri-js "^4.2.2" +ajv@8, ajv@^8.0.0, ajv@^8.0.1, ajv@^8.1.0: + version "8.6.3" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" + integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== + dependencies: + fast-deep-equal "^3.1.1" + json-schema-traverse "^1.0.0" + require-from-string "^2.0.2" + uri-js "^4.2.2" + ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.11.0, ajv@^6.12.3, 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" @@ -4669,16 +5001,6 @@ ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.11.0, ajv@^6.12.3, ajv@^6.12.4, ajv json-schema-traverse "^0.4.1" uri-js "^4.2.2" -ajv@^8.0.1, ajv@^8.1.0: - version "8.6.3" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.6.3.tgz#11a66527761dc3e9a3845ea775d2d3c0414e8764" - integrity sha512-SMJOdDP6LqTkD0Uq8qLi+gMwSt0imXLSV080qFVwJCpH9U6Mb+SUGHAXM0KNbcBPguytWyvFxcHgMLe2D2XSpw== - dependencies: - fast-deep-equal "^3.1.1" - json-schema-traverse "^1.0.0" - require-from-string "^2.0.2" - uri-js "^4.2.2" - algoliasearch@^3.24.5: version "3.35.1" resolved "https://registry.yarnpkg.com/algoliasearch/-/algoliasearch-3.35.1.tgz#297d15f534a3507cab2f5dfb996019cac7568f0c" @@ -4803,7 +5125,7 @@ ansi-regex@^4.0.0, ansi-regex@^4.1.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== -ansi-regex@^5.0.0: +ansi-regex@^5.0.0, ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== @@ -5166,13 +5488,13 @@ autocomplete.js@0.36.0: immediate "^3.2.3" autoprefixer@^9.5.1: - version "9.8.6" - resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.6.tgz#3b73594ca1bf9266320c5acf1588d74dea74210f" - integrity sha512-XrvP4VVHdRBCdX1S3WXVD8+RyG9qeb1D5Sn1DeLiG2xfSpzellk5k54xbUERJ3M5DggQxes39UGOTP8CFrEGbg== + version "9.8.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.8.7.tgz#e3c12de18a800af1a1a8155fbc01dc7de29ea184" + integrity sha512-7Hg99B1eTH5+LgmUBUSmov1Z3bsggQJS7v3IMGo6wcScnbRuvtMc871J9J+4bSbIqa9LSX/zypFXJ8sXHpMJeQ== dependencies: browserslist "^4.12.0" caniuse-lite "^1.0.30001109" - colorette "^1.2.1" + nanocolors "^0.2.8" normalize-range "^0.1.2" num2fraction "^1.2.2" postcss "^7.0.32" @@ -5316,12 +5638,12 @@ babel-plugin-polyfill-corejs2@^0.2.2: semver "^6.1.1" babel-plugin-polyfill-corejs3@^0.2.2: - version "0.2.4" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9" - integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ== + version "0.2.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.5.tgz#2779846a16a1652244ae268b1e906ada107faf92" + integrity sha512-ninF5MQNwAX9Z7c9ED+H2pGt1mXdP4TqzlHKyPIYmJIYz0N+++uwdM7RnJukklhzJ54Q84vA4ZJkgs7lu5vqcw== dependencies: "@babel/helper-define-polyfill-provider" "^0.2.2" - core-js-compat "^3.14.0" + core-js-compat "^3.16.2" babel-plugin-polyfill-regenerator@^0.2.2: version "0.2.2" @@ -5524,9 +5846,9 @@ bluebird@^3.1.1, bluebird@^3.5.1, bluebird@^3.5.3, bluebird@^3.5.5, bluebird@^3. integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== blueimp-md5@^2.10.0: - version "2.18.0" - resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.18.0.tgz#1152be1335f0c6b3911ed9e36db54f3e6ac52935" - integrity sha512-vE52okJvzsVWhcgUHOv+69OG3Mdg151xyn41aVQN/5W5S+S43qZhxECtYLAEHMSFWX6Mv5IZrzj3T5+JqXfj5Q== + version "2.19.0" + resolved "https://registry.yarnpkg.com/blueimp-md5/-/blueimp-md5-2.19.0.tgz#b53feea5498dcb53dc6ec4b823adb84b729c4af0" + integrity sha512-DRQrD6gJyy8FbiE4s+bDoXS9hiW3Vbx5uCdwvcCf3zLHL+Iv7LtGHLpr+GZV8rHG8tK766FGYBwRbu8pELTt+w== bmp-js@^0.1.0: version "0.1.0" @@ -5749,16 +6071,16 @@ browserslist@4.14.2: escalade "^3.0.2" node-releases "^1.1.61" -browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.0: - version "4.17.0" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.0.tgz#1fcd81ec75b41d6d4994fb0831b92ac18c01649c" - integrity sha512-g2BJ2a0nEYvEFQC208q8mVAhfNwpZ5Mu8BwgtCdZKO3qx98HChmeg448fPdUzld8aFmfLgVh7yymqV+q1lJZ5g== +browserslist@^4.0.0, browserslist@^4.12.0, browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.17.1.tgz#a98d104f54af441290b7d592626dd541fa642eb9" + integrity sha512-aLD0ZMDSnF4lUt4ZDNgqi5BUn9BZ7YdQdI/cYlILrhdSSZJLU9aNZoD5/NBmM4SK34APB2e83MOsRt1EnkuyaQ== dependencies: - caniuse-lite "^1.0.30001254" - colorette "^1.3.0" - electron-to-chromium "^1.3.830" + caniuse-lite "^1.0.30001259" + electron-to-chromium "^1.3.846" escalade "^3.1.1" - node-releases "^1.1.75" + nanocolors "^0.1.5" + node-releases "^1.1.76" bs-logger@0.x: version "0.2.6" @@ -6085,10 +6407,12 @@ caniuse-api@^3.0.0: lodash.memoize "^4.1.2" lodash.uniq "^4.5.0" -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001254: - version "1.0.30001259" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001259.tgz#ae21691d3da9c4be6144403ac40f71d9f6efd790" - integrity sha512-V7mQTFhjITxuk9zBpI6nYsiTXhcPe05l+364nZjK7MFK/E7ibvYBSAXr4YcA6oPR8j3ZLM/LN+lUqUVAQEUZFg== +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001125, caniuse-lite@^1.0.30001259: + version "1.0.30001260" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001260.tgz#e3be3f34ddad735ca4a2736fa9e768ef34316270" + integrity sha512-Fhjc/k8725ItmrvW5QomzxLeojewxvqiYCKeFcfFEhut28IVLdpHU19dneOmltZQIE5HNbawj1HYD+1f2bM1Dg== + dependencies: + nanocolors "^0.1.0" capture-exit@^2.0.0: version "2.0.0" @@ -6476,7 +6800,7 @@ color@^3.0.0: color-convert "^1.9.3" color-string "^1.6.0" -colorette@^1.0.7, colorette@^1.2.1, colorette@^1.2.2, colorette@^1.3.0: +colorette@^1.0.7, colorette@^1.2.1: version "1.4.0" resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.4.0.tgz#5190fbb87276259a86ad700bff2c6d6faa3fca40" integrity sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g== @@ -6521,6 +6845,11 @@ commander@2.20.0: resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.0.tgz#d58bb2b5c1ee8f87b0d340027e9e94e222c5a422" integrity sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ== +commander@7, commander@^7.0.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" + integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== + commander@^4.0.0, commander@^4.1.1: version "4.1.1" resolved "https://registry.yarnpkg.com/commander/-/commander-4.1.1.tgz#9fd602bd936294e9e9ef46a3f4d6964044b18068" @@ -6536,11 +6865,6 @@ commander@^6.1.0: resolved "https://registry.yarnpkg.com/commander/-/commander-6.2.1.tgz#0792eb682dfbc325999bb2b84fddddba110ac73c" integrity sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA== -commander@^7.0.0: - version "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.13.0: version "2.13.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" @@ -6886,18 +7210,18 @@ copy-webpack-plugin@~6.0.3: serialize-javascript "^4.0.0" webpack-sources "^1.4.3" -core-js-compat@^3.14.0, core-js-compat@^3.16.0, core-js-compat@^3.6.5, core-js-compat@^3.8.0: - version "3.18.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.0.tgz#fb360652201e8ac8da812718c008cd0482ed9b42" - integrity sha512-tRVjOJu4PxdXjRMEgbP7lqWy1TWJu9a01oBkn8d+dNrhgmBwdTkzhHZpVJnEmhISLdoJI1lX08rcBcHi3TZIWg== +core-js-compat@^3.16.0, core-js-compat@^3.16.2, core-js-compat@^3.6.5, core-js-compat@^3.8.0: + version "3.18.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.1.tgz#01942a0877caf9c6e5007c027183cf0bdae6a191" + integrity sha512-XJMYx58zo4W0kLPmIingVZA10+7TuKrMLPt83+EzDmxFJQUMcTVVmQ+n5JP4r6Z14qSzhQBRi3NSWoeVyKKXUg== dependencies: - browserslist "^4.17.0" + browserslist "^4.17.1" semver "7.0.0" core-js-pure@^3.16.0: - version "3.18.0" - resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.18.0.tgz#e5187347bae66448c9e2d67c01c34c4df3261dc5" - integrity sha512-ZnK+9vyuMhKulIGqT/7RHGRok8RtkHMEX/BGPHkHx+ouDkq+MUvf9mfIgdqhpmPDu8+V5UtRn/CbCRc9I4lX4w== + version "3.18.1" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.18.1.tgz#097d34d24484be45cea700a448d1e74622646c80" + integrity sha512-kmW/k8MaSuqpvA1xm2l3TVlBuvW+XBkcaOroFUpO3D4lsTGQWBTb/tBDCf/PNkkPLrwgrkQRIYNPB0CeqGJWGQ== core-js@^1.0.0: version "1.2.7" @@ -6910,9 +7234,9 @@ core-js@^2.4.0, core-js@^2.4.1: integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== core-js@^3.6.1, core-js@^3.6.4, core-js@^3.6.5: - version "3.18.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.0.tgz#9af3f4a6df9ba3428a3fb1b171f1503b3f40cc49" - integrity sha512-WJeQqq6jOYgVgg4NrXKL0KLQhi0CT4ZOCvFL+3CQ5o7I6J8HkT5wd53EadMfqTDp1so/MT1J+w2ujhWcCJtN7w== + version "3.18.1" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.18.1.tgz#289d4be2ce0085d40fc1244c0b1a54c00454622f" + integrity sha512-vJlUi/7YdlCZeL6fXvWNaLUPh/id12WXj3MbkMw5uOyF0PfWPBNOCNbs53YqgrvtujLNlt9JQpruyIKkUZ+PKA== core-util-is@1.0.2: version "1.0.2" @@ -7350,11 +7674,23 @@ d3-array@1, d3-array@^1.1.1, d3-array@^1.2.0: resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-1.2.4.tgz#635ce4d5eea759f6f605863dbcfc30edc737f71f" integrity sha512-KHW6M86R+FUPYGb3R5XiYjXPq7VzwxZ22buHhAEVG5ztoEcZZMLov530mmccaqA1GghZArjQV46fuc8kUqhhHw== +"d3-array@2 - 3", "d3-array@2.10.0 - 3", "d3-array@2.5.0 - 3", d3-array@3: + version "3.0.4" + resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.0.4.tgz#60550bcc9818be9ace88d269ccd97038fc399b55" + integrity sha512-ShFl90cxNqDaSynDF/Bik/kTzISqePqU3qo2fv6kSJEvF7y7tDCDpcU6WiT01rPO6zngZnrvJ/0j4q6Qg+5EQg== + dependencies: + internmap "1 - 2" + d3-axis@1: version "1.0.12" resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-1.0.12.tgz#cdf20ba210cfbb43795af33756886fb3638daac9" integrity sha512-ejINPfPSNdGFKEOAtnBtdkpr24c4d4jsei6Lg98mxf424ivoDP2956/5HDpIAtmHo85lqT4pruy+zEgvRUBqaQ== +d3-axis@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-axis/-/d3-axis-3.0.0.tgz#c42a4a13e8131d637b745fc2973824cfeaf93322" + integrity sha512-IH5tgjV4jE/GhHkRV0HiVYPDtvfjHQlQfJHs0usq7M30XcSBvOotpmH1IgkcXsO/5gEQZD43B//fc7SRT5S+xw== + d3-brush@1: version "1.1.6" resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-1.1.6.tgz#b0a22c7372cabec128bdddf9bddc058592f89e9b" @@ -7366,6 +7702,17 @@ d3-brush@1: d3-selection "1" d3-transition "1" +d3-brush@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-brush/-/d3-brush-3.0.0.tgz#6f767c4ed8dcb79de7ede3e1c0f89e63ef64d31c" + integrity sha512-ALnjWlVYkXsVIGlOsuWH1+3udkYFI48Ljihfnh8FZPF2QS9o+PzGLBslO0PjzVoHLZ2KCVgAM8NVkXPJB2aNnQ== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "3" + d3-transition "3" + d3-chord@1: version "1.0.6" resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-1.0.6.tgz#309157e3f2db2c752f0280fedd35f2067ccbb15f" @@ -7374,6 +7721,13 @@ d3-chord@1: d3-array "1" d3-path "1" +d3-chord@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-chord/-/d3-chord-3.0.1.tgz#d156d61f485fce8327e6abf339cb41d8cbba6966" + integrity sha512-VE5S6TNa+j8msksl7HwjxMHDM2yNK3XCkusIlpX5kwauBfXuyLAtNg9jCp/iHH61tgI4sb6R/EIMWCqEIdjT/g== + dependencies: + d3-path "1 - 3" + d3-collection@1: version "1.0.7" resolved "https://registry.yarnpkg.com/d3-collection/-/d3-collection-1.0.7.tgz#349bd2aa9977db071091c13144d5e4f16b5b310e" @@ -7384,6 +7738,11 @@ d3-color@1: resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-1.4.1.tgz#c52002bf8846ada4424d55d97982fef26eb3bc8a" integrity sha512-p2sTHSLCJI2QKunbGb7ocOh7DgTAn8IrLx21QRc/BSnodXM4sv6aLQlnfpvehFMLZEfBc6g9pH9SWQccFYfJ9Q== +"d3-color@1 - 3", d3-color@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.0.1.tgz#03316e595955d1fcd39d9f3610ad41bb90194d0a" + integrity sha512-6/SlHkDOBLyQSJ1j1Ghs82OIUXpKWlR0hCsw0XrLSQhuUPuCSmLQ1QPH98vpnQxMUQM2/gfAkUEWsupVpd9JGw== + d3-contour@1: version "1.3.2" resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-1.3.2.tgz#652aacd500d2264cb3423cee10db69f6f59bead3" @@ -7391,11 +7750,30 @@ d3-contour@1: dependencies: d3-array "^1.1.1" +d3-contour@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-contour/-/d3-contour-3.0.1.tgz#2c64255d43059599cd0dba8fe4cc3d51ccdd9bbd" + integrity sha512-0Oc4D0KyhwhM7ZL0RMnfGycLN7hxHB8CMmwZ3+H26PWAG0ozNuYG5hXSDNgmP1SgJkQMrlG6cP20HoaSbvcJTQ== + dependencies: + d3-array "2 - 3" + +d3-delaunay@6: + version "6.0.2" + resolved "https://registry.yarnpkg.com/d3-delaunay/-/d3-delaunay-6.0.2.tgz#7fd3717ad0eade2fc9939f4260acfb503f984e92" + integrity sha512-IMLNldruDQScrcfT+MWnazhHbDJhcRJyOEBAJfwQnHle1RPh6WDuLvxNArUju2VSMSUuKlY5BGHRJ2cYyoFLQQ== + dependencies: + delaunator "5" + d3-dispatch@1: version "1.0.6" resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-1.0.6.tgz#00d37bcee4dd8cd97729dd893a0ac29caaba5d58" integrity sha512-fVjoElzjhCEy+Hbn8KygnmMS7Or0a9sI2UzGwoB7cCtvI1XpVN9GpoYlnb3xt2YV66oXYb1fLJ8GMvP4hdU1RA== +"d3-dispatch@1 - 3", d3-dispatch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" + integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== + d3-drag@1: version "1.2.5" resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-1.2.5.tgz#2537f451acd39d31406677b7dc77c82f7d988f70" @@ -7404,6 +7782,14 @@ d3-drag@1: d3-dispatch "1" d3-selection "1" +"d3-drag@2 - 3", d3-drag@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-drag/-/d3-drag-3.0.0.tgz#994aae9cd23c719f53b5e10e3a0a6108c69607ba" + integrity sha512-pWbUJLdETVA8lQNJecMxoXfH6x+mO2UQo8rSmZ+QqxcbyA3hfeprFgIT//HW2nlHChWeIIMwS2Fq+gEARkhTkg== + dependencies: + d3-dispatch "1 - 3" + d3-selection "3" + d3-dsv@1: version "1.2.0" resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-1.2.0.tgz#9d5f75c3a5f8abd611f74d3f5847b0d4338b885c" @@ -7413,11 +7799,25 @@ d3-dsv@1: iconv-lite "0.4" rw "1" +"d3-dsv@1 - 3", d3-dsv@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-dsv/-/d3-dsv-3.0.1.tgz#c63af978f4d6a0d084a52a673922be2160789b73" + integrity sha512-UG6OvdI5afDIFP9w4G0mNq50dSOsXHJaRE8arAS5o9ApWnIElp8GZw1Dun8vP8OyHOZ/QJUKUJwxiiCCnUwm+Q== + dependencies: + commander "7" + iconv-lite "0.6" + rw "1" + d3-ease@1: version "1.0.7" resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-1.0.7.tgz#9a834890ef8b8ae8c558b2fe55bd57f5993b85e2" integrity sha512-lx14ZPYkhNx0s/2HX5sLFUI3mbasHjSSpwO/KaaNACweVwxUruKyWVcb293wMv1RqTPZyZ8kSZ2NogUZNcLOFQ== +"d3-ease@1 - 3", d3-ease@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" + integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== + d3-fetch@1: version "1.2.0" resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-1.2.0.tgz#15ce2ecfc41b092b1db50abd2c552c2316cf7fc7" @@ -7425,6 +7825,13 @@ d3-fetch@1: dependencies: d3-dsv "1" +d3-fetch@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-fetch/-/d3-fetch-3.0.1.tgz#83141bff9856a0edb5e38de89cdcfe63d0a60a22" + integrity sha512-kpkQIM20n3oLVBKGg6oHrUchHM3xODkTzjMoj7aWQFq5QEM+R6E4WkzT5+tojDY7yjez8KgCBRoj4aEr99Fdqw== + dependencies: + d3-dsv "1 - 3" + d3-force@1: version "1.2.1" resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-1.2.1.tgz#fd29a5d1ff181c9e7f0669e4bd72bdb0e914ec0b" @@ -7435,11 +7842,25 @@ d3-force@1: d3-quadtree "1" d3-timer "1" +d3-force@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-force/-/d3-force-3.0.0.tgz#3e2ba1a61e70888fe3d9194e30d6d14eece155c4" + integrity sha512-zxV/SsA+U4yte8051P4ECydjD/S+qeYtnaIyAs9tgHCqfguma/aAQDjo85A9Z6EKhBirHRJHXIgJUlffT4wdLg== + dependencies: + d3-dispatch "1 - 3" + d3-quadtree "1 - 3" + d3-timer "1 - 3" + d3-format@1: version "1.4.5" resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-1.4.5.tgz#374f2ba1320e3717eb74a9356c67daee17a7edb4" integrity sha512-J0piedu6Z8iB6TbIGfZgDzfXxUFN3qQRMofy2oPdXzQibYGqPB/9iMcxr/TGalU+2RsyDO+U4f33id8tbnSRMQ== +"d3-format@1 - 3", d3-format@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.0.1.tgz#e41b81b2ab79277141ec1404aa5d05001da64084" + integrity sha512-hdL7+HBIohpgfolhBxr1KX47VMD6+vVD/oEFrxk5yhmzV2prk99EkFKYpXuhVkFpTgHdJ6/4bYcjdLPPXV4tIA== + d3-geo@1: version "1.12.1" resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-1.12.1.tgz#7fc2ab7414b72e59fbcbd603e80d9adc029b035f" @@ -7447,11 +7868,23 @@ d3-geo@1: dependencies: d3-array "1" +d3-geo@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-geo/-/d3-geo-3.0.1.tgz#4f92362fd8685d93e3b1fae0fd97dc8980b1ed7e" + integrity sha512-Wt23xBych5tSy9IYAM1FR2rWIBFWa52B/oF/GYe5zbdHrg08FU8+BuI6X4PvTwPDdqdAdq04fuWJpELtsaEjeA== + dependencies: + d3-array "2.5.0 - 3" + d3-hierarchy@1: version "1.1.9" resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-1.1.9.tgz#2f6bee24caaea43f8dc37545fa01628559647a83" integrity sha512-j8tPxlqh1srJHAtxfvOUwKNYJkQuBFdM1+JAUfq6xqH5eAqf93L7oG1NVqDa4CpFZNvnNKtCYEUC8KY9yEn9lQ== +d3-hierarchy@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.0.1.tgz#0365342d54972e38ca05e9143e0ab1c60846b3b5" + integrity sha512-RlLTaofEoOrMK1JoXYIGhKTkJFI/6rFrYPgxy6QlZo2BcVc4HGTqEU0rPpzuMq5T/5XcMtAzv1XiLA3zRTfygw== + d3-interpolate@1: version "1.4.0" resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-1.4.0.tgz#526e79e2d80daa383f9e0c1c1c7dcc0f0583e987" @@ -7459,26 +7892,53 @@ d3-interpolate@1: dependencies: d3-color "1" +"d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3", d3-interpolate@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" + integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== + dependencies: + d3-color "1 - 3" + d3-path@1: version "1.0.9" resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-1.0.9.tgz#48c050bb1fe8c262493a8caf5524e3e9591701cf" integrity sha512-VLaYcn81dtHVTjEHd8B+pbe9yHWpXKZUC87PzoFmsFrJqgFwDe/qxfp5MlfsfM1V5E/iVt0MmEbWQ7FVIXh/bg== +"d3-path@1 - 3", d3-path@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.0.1.tgz#f09dec0aaffd770b7995f1a399152bf93052321e" + integrity sha512-gq6gZom9AFZby0YLduxT1qmrp4xpBA1YZr19OI717WIdKE2OM5ETq5qrHLb301IgxhLwcuxvGZVLeeWc/k1I6w== + d3-polygon@1: version "1.0.6" resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-1.0.6.tgz#0bf8cb8180a6dc107f518ddf7975e12abbfbd38e" integrity sha512-k+RF7WvI08PC8reEoXa/w2nSg5AUMTi+peBD9cmFc+0ixHfbs4QmxxkarVal1IkVkgxVuk9JSHhJURHiyHKAuQ== +d3-polygon@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-polygon/-/d3-polygon-3.0.1.tgz#0b45d3dd1c48a29c8e057e6135693ec80bf16398" + integrity sha512-3vbA7vXYwfe1SYhED++fPUQlWSYTTGmFmQiany/gdbiWgU/iEyQzyymwL9SkJjFFuCS4902BSzewVGsHHmHtXg== + d3-quadtree@1: version "1.0.7" resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-1.0.7.tgz#ca8b84df7bb53763fe3c2f24bd435137f4e53135" integrity sha512-RKPAeXnkC59IDGD0Wu5mANy0Q2V28L+fNe65pOCXVdVuTJS3WPKaJlFHer32Rbh9gIo9qMuJXio8ra4+YmIymA== +"d3-quadtree@1 - 3", d3-quadtree@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-quadtree/-/d3-quadtree-3.0.1.tgz#6dca3e8be2b393c9a9d514dabbd80a92deef1a4f" + integrity sha512-04xDrxQTDTCFwP5H6hRhsRcb9xxv2RzkcsygFzmkSIOJy3PeRJP7sNk3VRIbKXcog561P9oU0/rVH6vDROAgUw== + d3-random@1: version "1.1.2" resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-1.1.2.tgz#2833be7c124360bf9e2d3fd4f33847cfe6cab291" integrity sha512-6AK5BNpIFqP+cx/sreKzNjWbwZQCSUatxq+pPRmFIQaWuoD+NrbVWw7YWpHiXpCQ/NanKdtGDuB+VQcZDaEmYQ== +d3-random@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-random/-/d3-random-3.0.1.tgz#d4926378d333d9c0bfd1e6fa0194d30aebaa20f4" + integrity sha512-FXMe9GfxTxqd5D6jFsQ+DJ8BJS4E/fT5mqqdjovykEB2oFbTMDVdg1MGFxfQW+FBOGoB++k8swBrgwSHT1cUXQ== + d3-scale-chromatic@1: version "1.5.0" resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-1.5.0.tgz#54e333fc78212f439b14641fb55801dd81135a98" @@ -7487,6 +7947,14 @@ d3-scale-chromatic@1: d3-color "1" d3-interpolate "1" +d3-scale-chromatic@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-scale-chromatic/-/d3-scale-chromatic-3.0.0.tgz#15b4ceb8ca2bb0dcb6d1a641ee03d59c3b62376a" + integrity sha512-Lx9thtxAKrO2Pq6OO2Ua474opeziKr279P/TKZsMAhYyNDD3EnCffdbgeSYN5O7m2ByQsxtuP2CSDczNUIZ22g== + dependencies: + d3-color "1 - 3" + d3-interpolate "1 - 3" + d3-scale@2: version "2.2.2" resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-2.2.2.tgz#4e880e0b2745acaaddd3ede26a9e908a9e17b81f" @@ -7499,11 +7967,27 @@ d3-scale@2: d3-time "1" d3-time-format "2" +d3-scale@4: + version "4.0.2" + resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" + integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== + dependencies: + d3-array "2.10.0 - 3" + d3-format "1 - 3" + d3-interpolate "1.2.0 - 3" + d3-time "2.1.1 - 3" + d3-time-format "2 - 4" + d3-selection@1, d3-selection@^1.1.0: version "1.4.2" resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-1.4.2.tgz#dcaa49522c0dbf32d6c1858afc26b6094555bc5c" integrity sha512-SJ0BqYihzOjDnnlfyeHT0e30k0K1+5sR3d5fNueCNeuhZTnGw4M4o8mqJchSwgKMXCNFo+e2VTChiSJ0vYtXkg== +"d3-selection@2 - 3", d3-selection@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" + integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== + d3-shape@1: version "1.3.7" resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-1.3.7.tgz#df63801be07bc986bc54f63789b4fe502992b5d7" @@ -7511,6 +7995,13 @@ d3-shape@1: dependencies: d3-path "1" +d3-shape@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.0.1.tgz#9ccdfb28fd9b0d12f2d8aec234cd5c4a9ea27931" + integrity sha512-HNZNEQoDhuCrDWEc/BMbF/hKtzMZVoe64TvisFLDp2Iyj0UShB/E6/lBsLlJTfBMbYgftHj90cXJ0SEitlE6Xw== + dependencies: + d3-path "1 - 3" + d3-time-format@2: version "2.3.0" resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-2.3.0.tgz#107bdc028667788a8924ba040faf1fbccd5a7850" @@ -7518,16 +8009,35 @@ d3-time-format@2: dependencies: d3-time "1" +"d3-time-format@2 - 4", d3-time-format@4: + version "4.0.0" + resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.0.0.tgz#930ded86a9de761702344760d8a25753467f28b7" + integrity sha512-nzaCwlj+ZVBIlFuVOT1RmU+6xb/7D5IcnhHzHQcBgS/aTa5K9fWZNN5LCXA27LgF5WxoSNJqKBbLcGMtM6Ca6A== + dependencies: + d3-time "1 - 3" + d3-time@1: version "1.1.0" resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-1.1.0.tgz#b1e19d307dae9c900b7e5b25ffc5dcc249a8a0f1" integrity sha512-Xh0isrZ5rPYYdqhAVk8VLnMEidhz5aP7htAADH6MfzgmmicPkTo8LhkLxci61/lCB7n7UmE3bN0leRt+qvkLxA== +"d3-time@1 - 3", "d3-time@2.1.1 - 3", d3-time@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.0.0.tgz#65972cb98ae2d4954ef5c932e8704061335d4975" + integrity sha512-zmV3lRnlaLI08y9IMRXSDshQb5Nj77smnfpnd2LrBa/2K281Jijactokeak14QacHs/kKq0AQ121nidNYlarbQ== + dependencies: + d3-array "2 - 3" + d3-timer@1: version "1.0.10" resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-1.0.10.tgz#dfe76b8a91748831b13b6d9c793ffbd508dd9de5" integrity sha512-B1JDm0XDaQC+uvo4DT79H0XmBskgS3l6Ve+1SBCfxgmtIb1AVrPIoqd+nPSv+loMX8szQ0sVUhGngL7D5QPiXw== +"d3-timer@1 - 3", d3-timer@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" + integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== + d3-transition@1: version "1.3.2" resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-1.3.2.tgz#a98ef2151be8d8600543434c1ca80140ae23b398" @@ -7540,6 +8050,17 @@ d3-transition@1: d3-selection "^1.1.0" d3-timer "1" +"d3-transition@2 - 3", d3-transition@3: + version "3.0.1" + resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" + integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== + dependencies: + d3-color "1 - 3" + d3-dispatch "1 - 3" + d3-ease "1 - 3" + d3-interpolate "1 - 3" + d3-timer "1 - 3" + d3-voronoi@1: version "1.1.4" resolved "https://registry.yarnpkg.com/d3-voronoi/-/d3-voronoi-1.1.4.tgz#dd3c78d7653d2bb359284ae478645d95944c8297" @@ -7556,7 +8077,18 @@ d3-zoom@1: d3-selection "1" d3-transition "1" -d3@^5.14, d3@^5.16.0: +d3-zoom@3: + version "3.0.0" + resolved "https://registry.yarnpkg.com/d3-zoom/-/d3-zoom-3.0.0.tgz#d13f4165c73217ffeaa54295cd6969b3e7aee8f3" + integrity sha512-b8AmV3kfQaqWAuacbPuNbL6vahnOJflOhexLzMMNLga62+/nh0JzvJ0aO/5a5MVgUFGS7Hu1P9P03o3fJkDCyw== + dependencies: + d3-dispatch "1 - 3" + d3-drag "2 - 3" + d3-interpolate "1 - 3" + d3-selection "2 - 3" + d3-transition "2 - 3" + +d3@^5.14: version "5.16.0" resolved "https://registry.yarnpkg.com/d3/-/d3-5.16.0.tgz#9c5e8d3b56403c79d4ed42fbd62f6113f199c877" integrity sha512-4PL5hHaHwX4m7Zr1UapXW23apo6pexCgdetdJ5kTmADpG/7T9Gkxw0M0tf/pjoB63ezCCm0u5UaFYy2aMt0Mcw== @@ -7593,6 +8125,42 @@ d3@^5.14, d3@^5.16.0: d3-voronoi "1" d3-zoom "1" +d3@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/d3/-/d3-7.0.4.tgz#37dfeb3b526f64a0de2ddb705ea61649325207bd" + integrity sha512-ruRiyPYZEGeJBOOjVS5pHliNUZM2HAllEY7HKB2ff+9ENxOti4N+S+WZqo9ggUMr8tSPMm+riqKpJd1oYEDN5Q== + dependencies: + d3-array "3" + d3-axis "3" + d3-brush "3" + d3-chord "3" + d3-color "3" + d3-contour "3" + d3-delaunay "6" + d3-dispatch "3" + d3-drag "3" + d3-dsv "3" + d3-ease "3" + d3-fetch "3" + d3-force "3" + d3-format "3" + d3-geo "3" + d3-hierarchy "3" + d3-interpolate "3" + d3-path "3" + d3-polygon "3" + d3-quadtree "3" + d3-random "3" + d3-scale "4" + d3-scale-chromatic "3" + d3-selection "3" + d3-shape "3" + d3-time "3" + d3-time-format "4" + d3-timer "3" + d3-transition "3" + d3-zoom "3" + dagre-d3@^0.6.4: version "0.6.4" resolved "https://registry.yarnpkg.com/dagre-d3/-/dagre-d3-0.6.4.tgz#0728d5ce7f177ca2337df141ceb60fbe6eeb7b29" @@ -7867,6 +8435,13 @@ del@^4.1.1: pify "^4.0.1" rimraf "^2.6.3" +delaunator@5: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delaunator/-/delaunator-5.0.0.tgz#60f052b28bd91c9b4566850ebf7756efe821d81b" + integrity sha512-AyLvtyJdbv/U1GkiS6gUUzclRoAY4Gs75qkMygJJhU75LW4DNuSF2RMzpxs9jw9Oz1BobHjTdkG3zdP55VxAqw== + dependencies: + robust-predicates "^3.0.0" + delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -8177,10 +8752,10 @@ ee-first@1.1.1: resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= -electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.830: - version "1.3.846" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.846.tgz#a55fd59613dbcaed609e965e3e88f42b08c401d3" - integrity sha512-2jtSwgyiRzybHRxrc2nKI+39wH3AwQgn+sogQ+q814gv8hIFwrcZbV07Ea9f8AmK0ufPVZUvvAG1uZJ+obV4Jw== +electron-to-chromium@^1.3.564, electron-to-chromium@^1.3.846: + version "1.3.850" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.850.tgz#c56c72abfeab051b4b328beb894461c5912d0456" + integrity sha512-ZzkDcdzePeF4dhoGZQT77V2CyJOpwfTZEOg4h0x6R/jQhGt/rIRpbRyVreWLtD7B/WsVxo91URm2WxMKR9JQZA== electron@^13.1.4: version "13.4.0" @@ -8267,7 +8842,7 @@ enhanced-resolve@^4.0.0, enhanced-resolve@^4.1.0, enhanced-resolve@^4.1.1, enhan memory-fs "^0.5.0" tapable "^1.0.0" -enhanced-resolve@^5.8.0: +enhanced-resolve@^5.8.3: version "5.8.3" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.8.3.tgz#6d552d465cce0423f5b3d718511ea53826a7b2f0" integrity sha512-EGAbGvH7j7Xt2nc0E7D99La1OiEs8LnyimkRgwExpUMScN6O+3x9tIWs7PLQZVNx4YD+00skHXPXi1yQHpAmZA== @@ -8382,10 +8957,10 @@ es-get-iterator@^1.1.1: is-string "^1.0.5" isarray "^2.0.5" -es-module-lexer@^0.7.1: - version "0.7.1" - resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.7.1.tgz#c2c8e0f46f2df06274cdaf0dd3f3b33e0a0b267d" - integrity sha512-MgtWFl5No+4S3TmhDmCz2ObFGm6lEpTnzbQi+Dd+pw4mlTIZTmM2iAs5gRlmx5zS9luzobCSBSI90JM/1/JgOw== +es-module-lexer@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-0.9.0.tgz#fe4c4621977bc668e285c5f1f70ca3b451095fda" + integrity sha512-qU2eN/XHsrl3E4y7mK1wdWnyy5c8gXtCbfP6Xcsemm7fPUR1PIV1JhZfP7ojcN0Fzp69CfrS3u76h2tusvfKiQ== es-to-primitive@^1.2.1: version "1.2.1" @@ -8516,9 +9091,9 @@ esbuild@0.13: esbuild-windows-arm64 "0.13.2" esbuild@^0.12.17: - version "0.12.28" - resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.28.tgz#84da0d2a0d0dee181281545271e0d65cf6fab1ef" - integrity sha512-pZ0FrWZXlvQOATlp14lRSk1N9GkeJ3vLIwOcUoo3ICQn9WNR4rWoNi81pbn6sC1iYUy7QPqNzI3+AEzokwyVcA== + version "0.12.29" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.12.29.tgz#be602db7c4dc78944a9dbde0d1ea19d36c1f882d" + integrity sha512-w/XuoBCSwepyiZtIRsKsetiLDUVGPVw1E/R3VTFSecIy8UR7Cq3SOtwKHJMFoVqqVG36aGkzh4e8BvpO1Fdc7g== escalade@^3.0.2, escalade@^3.1.1: version "3.1.1" @@ -9408,9 +9983,9 @@ fastify-warning@^0.2.0: integrity sha512-s1EQguBw/9qtc1p/WTY4eq9WMRIACkj+HTcOIK1in4MV5aFaQC9ZCIt0dJ7pr5bIf4lPpHvAtP2ywpTNgs7hqw== fastify@3: - version "3.21.3" - resolved "https://registry.yarnpkg.com/fastify/-/fastify-3.21.3.tgz#2c32124d82489b7cf5ee7a546e5ab85f647cdf57" - integrity sha512-4PuuCCcGZpcD9ERc8x6H7GHElcHQxHVouyANAVw/Nd9h07X63QQJ2EpHeQtuiDCjcs0pf9wKb6KIul3qCYh+1g== + version "3.21.6" + resolved "https://registry.yarnpkg.com/fastify/-/fastify-3.21.6.tgz#a8235518147ea469a98ec3e5d4599f56eac3ff09" + integrity sha512-PextZFavEZaqn2ZYbVGBPAI0AiElnVdfqo9sN1wlOi0mhGtYuec4KT82MHe5npCf3Lz++6i7jLl7YKyYidPrMg== dependencies: "@fastify/ajv-compiler" "^1.0.0" abstract-logging "^2.0.0" @@ -10172,9 +10747,9 @@ glob@7.1.6: path-is-absolute "^1.0.0" glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: - version "7.1.7" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.7.tgz#3b193e9233f01d42d0b3f78294bbeeb418f94a90" - integrity sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ== + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" @@ -10906,7 +11481,7 @@ iconv-lite@0.4, iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@^0.6.2: +iconv-lite@0.6, iconv-lite@^0.6.2: version "0.6.3" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== @@ -11165,6 +11740,11 @@ internal-slot@^1.0.3: has "^1.0.3" side-channel "^1.0.4" +"internmap@1 - 2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" + integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== + interpret@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" @@ -11410,9 +11990,9 @@ is-glob@^3.1.0: is-extglob "^2.1.0" is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + version "4.0.2" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.2.tgz#859fc2e731e58c902f99fcabccb75a7dd07d29d8" + integrity sha512-ZZTOjRcDjuAAAv2cTBQP/lL59ZTArx77+7UzHdWW/XB1mrfp7DEaVpKmZ0XIzx+M7AxfhKcqV+nMetUQmFifwg== dependencies: is-extglob "^2.1.1" @@ -11710,9 +12290,9 @@ isstream@~0.1.2: integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= istanbul-lib-coverage@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz#f5944a37c70b550b02a78a5c3b2055b280cec8ec" - integrity sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg== + version "3.0.1" + resolved "https://registry.yarnpkg.com/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.1.tgz#e8900b3ed6069759229cf30f7067388d148aeb5e" + integrity sha512-GvCYYTxaCPqwMjobtVcVKvSHtAGe48MNhGjpK8LtVF8K0ISX7hCKl85LgtuaSneWVyQmaGcW3iXVV3GaZSLpmQ== istanbul-lib-instrument@^4.0.0, istanbul-lib-instrument@^4.0.3: version "4.0.3" @@ -12213,9 +12793,9 @@ jest-worker@^26.2.1, jest-worker@^26.6.2: supports-color "^7.0.0" jest-worker@^27.0.6: - version "27.2.0" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.0.tgz#11eef39f1c88f41384ca235c2f48fe50bc229bc0" - integrity sha512-laB0ZVIBz+voh/QQy9dmUuuDsadixeerrKqyVpgPz+CCWiOYjOBabUXHIXZhsdvkWbLqSHbgkAHWl5cg24Q6RA== + version "27.2.2" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-27.2.2.tgz#636deeae8068abbf2b34b4eb9505f8d4e5bd625c" + integrity sha512-aG1xq9KgWB2CPC8YdMIlI8uZgga2LFNcGbHJxO8ctfXAydSaThR4EewKQGg3tBOC+kS3vhPGgymsBdi9VINjPw== dependencies: "@types/node" "*" merge-stream "^2.0.0" @@ -13264,12 +13844,12 @@ merge2@^1.2.3, merge2@^1.3.0: integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== mermaid@^8.8.3: - version "8.12.1" - resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.12.1.tgz#6b55617bcfc970a7bf724e027368b281feb62539" - integrity sha512-0UCcSF0FLoNcPBsRF4f9OIV32t41fV18//z8o3S+FDz2PbDA1CRGKdQF9IX84VP4Tv9kcgJI/oqJdcBEtB/GPA== + version "8.13.0" + resolved "https://registry.yarnpkg.com/mermaid/-/mermaid-8.13.0.tgz#2a65bb65d806323dfd813980cff6265181dbc4ad" + integrity sha512-/b8tCqyGhb+yiCQQ5cwpGcaesAfZV057kRBaUx+g6LHctebWaMvo5WmIPN+/jMHfLtAgCJIaQDZ1EsECz7FJIQ== dependencies: "@braintree/sanitize-url" "^3.1.0" - d3 "^5.16.0" + d3 "^7.0.0" dagre "^0.8.5" dagre-d3 "^0.6.4" dompurify "2.3.1" @@ -13880,10 +14460,20 @@ nan@^2.12.1: resolved "https://registry.yarnpkg.com/nan/-/nan-2.15.0.tgz#3f34a473ff18e15c1b5626b62903b5ad6e665fee" integrity sha512-8ZtvEnA2c5aYCZYd1cvgdnU6cqwixRoYg70xPLWUws5ORTa/lnw+u4amixRS/Ac5U5mQVgp9pnlSUnbNWFaWZQ== -nanoid@3, nanoid@^3.1.23: - version "3.1.25" - resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152" - integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q== +nanocolors@^0.1.0, nanocolors@^0.1.5: + version "0.1.12" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.1.12.tgz#8577482c58cbd7b5bb1681db4cf48f11a87fd5f6" + integrity sha512-2nMHqg1x5PU+unxX7PGY7AuYxl2qDx7PSrTRjizr8sxdd3l/3hBuWWaki62qmtYm2U5i4Z5E7GbjlyDFhs9/EQ== + +nanocolors@^0.2.2, nanocolors@^0.2.8: + version "0.2.9" + resolved "https://registry.yarnpkg.com/nanocolors/-/nanocolors-0.2.9.tgz#319c5e7a73571abd60e4d273150c2cb95017ac5b" + integrity sha512-aymgS4Xe0LMqHOHl7jSUEkFh/6O/pcF0j61dBtreQZ1nmbyYdYjSYSJzz0iPLbKPkMtSmdRgyBGywNZGjKOEfw== + +nanoid@3, nanoid@^3.1.25: + version "3.1.28" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.28.tgz#3c01bac14cb6c5680569014cc65a2f26424c6bd4" + integrity sha512-gSu9VZ2HtmoKYe/lmyPFES5nknFrHa+/DT9muUFWFMi6Jh9E1I7bkvlQ8xxf1Kos9pi9o8lBnIOkatMhKX/YUw== nanomatch@^1.2.9: version "1.2.13" @@ -13972,9 +14562,9 @@ node-fetch@^1.0.1: is-stream "^1.0.1" node-fetch@^2.1.2, node-fetch@^2.2.0, node-fetch@^2.5.0, node-fetch@^2.6.0, node-fetch@^2.6.1: - version "2.6.4" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.4.tgz#7f1d13b8f9ff0c1a994dc6f73c69f7d652c7ace2" - integrity sha512-aD1fO+xtLiSCc9vuD+sYMxpIuQyhHscGSkBEo2o5LTV/3bTEAYvdUii29n8LlO5uLCmWdGP7uVUVXFo5SRdkLA== + version "2.6.5" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.5.tgz#42735537d7f080a7e5f78b6c549b7146be1742fd" + integrity sha512-mmlIVHJEu5rnIxgEgez6b9GgWXbkZj5YZ7fx+2r94a2E+Uirsp6HsPTPlomfdHtpt/B0cdKviwkoaM6pyvUOpQ== dependencies: whatwg-url "^5.0.0" @@ -14065,7 +14655,7 @@ node-notifier@^8.0.0: uuid "^8.3.0" which "^2.0.2" -node-releases@^1.1.61, node-releases@^1.1.75: +node-releases@^1.1.61, node-releases@^1.1.76: version "1.1.76" resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.76.tgz#df245b062b0cafbd5282ab6792f7dccc2d97f36e" integrity sha512-9/IECtNr8dXNmPWmFXepT0/7o5eolGesHUa3mtr0KlgnCvnZxwh2qensKL42JJY2vQKC3nIBXetFAqR+PW1CmA== @@ -15050,9 +15640,9 @@ pino-std-serializers@^3.1.0: integrity sha512-EqX4pwDPrt3MuOAAUBMU0Tk5kR/YcCM5fNPEzgCO2zJ5HfX0vbiH9HbJglnyeQsN96Kznae6MWD47pZB5avTrg== pino@^6.13.0: - version "6.13.2" - resolved "https://registry.yarnpkg.com/pino/-/pino-6.13.2.tgz#948a0fcadca668f3b5fb8a427f2854b08661eccf" - integrity sha512-vmD/cabJ4xKqo9GVuAoAEeQhra8XJ7YydPV/JyIP+0zDtFTu5JSKdtt8eksGVWKtTSrNGcRrzJ4/IzvUWep3FA== + version "6.13.3" + resolved "https://registry.yarnpkg.com/pino/-/pino-6.13.3.tgz#60b93bcda1541f92fb37b3f2be0a25cf1d05b6fe" + integrity sha512-tJy6qVgkh9MwNgqX1/oYi3ehfl2Y9H0uHyEEMsBe74KinESIjdMrMQDWpcZPpPicg3VV35d/GLQZmo4QgU2Xkg== dependencies: fast-redact "^3.0.0" fast-safe-stringify "^2.0.8" @@ -15549,21 +16139,20 @@ postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0: integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.14, postcss@^7.0.26, postcss@^7.0.27, postcss@^7.0.32, postcss@^7.0.36, postcss@^7.0.5, postcss@^7.0.6: - version "7.0.36" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.36.tgz#056f8cffa939662a8f5905950c07d5285644dfcb" - integrity sha512-BebJSIUMwJHRH0HAQoxN4u1CN86glsrwsW0q7T+/m44eXOUAxSNdHRkNZPYz5vVUbg17hFgOQDE7fZk7li3pZw== + version "7.0.38" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.38.tgz#5365a9c5126643d977046ad239f60eadda2491d6" + integrity sha512-wNrSHWjHDQJR/IZL5IKGxRtFgrYNaAA/UrkW2WqbtZO6uxSLMxMN+s2iqUMwnAWm3fMROlDYZB41dr0Mt7vBwQ== dependencies: - chalk "^2.4.2" + nanocolors "^0.2.2" source-map "^0.6.1" - supports-color "^6.1.0" postcss@^8.3.6: - version "8.3.6" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.6.tgz#2730dd76a97969f37f53b9a6096197be311cc4ea" - integrity sha512-wG1cc/JhRgdqB6WHEuyLTedf3KIRuD0hG6ldkFEZNCjRxiC+3i6kkWUUbiJQayP28iwG35cEmAbe98585BYV0A== + version "8.3.8" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.8.tgz#9ebe2a127396b4b4570ae9f7770e7fb83db2bac1" + integrity sha512-GT5bTjjZnwDifajzczOC+r3FI3Cu+PgPvrsjhQdRqa2kTJ4968/X9CUce9xttIB0xOs5c6xf0TCWZo/y9lF6bA== dependencies: - colorette "^1.2.2" - nanoid "^3.1.23" + nanocolors "^0.2.2" + nanoid "^3.1.25" source-map-js "^0.6.2" pouchdb-collections@^1.0.1: @@ -16761,10 +17350,15 @@ roarr@^2.15.3: semver-compare "^1.0.0" sprintf-js "^1.1.2" +robust-predicates@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.1.tgz#ecde075044f7f30118682bd9fb3f123109577f9a" + integrity sha512-ndEIpszUHiG4HtDsQLeIuMvRsDnn8c8rYStabochtUeCvfuvNptb5TUbVD68LRAILPX7p9nqQGh4xJgn3EHS/g== + rollup@2, rollup@^2, rollup@^2.38.5: - version "2.56.3" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.56.3.tgz#b63edadd9851b0d618a6d0e6af8201955a77aeff" - integrity sha512-Au92NuznFklgQCUcV96iXlxUbHuB1vQMaH76DHl5M11TotjOHwqk9CwcrT78+Tnv4FN9uTBxq6p4EJoYkpyekg== + version "2.57.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.57.0.tgz#c1694475eb22e1022477c0f4635fd0ac80713173" + integrity sha512-bKQIh1rWKofRee6mv8SrF2HdP6pea5QkwBZSMImJysFj39gQuiV8MEPBjXOCpzk3wSYp63M2v2wkWBmFC8O/rg== optionalDependencies: fsevents "~2.3.2" @@ -17726,13 +18320,13 @@ string-width@^3.0.0, string-width@^3.1.0: strip-ansi "^5.1.0" string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.2" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.2.tgz#dafd4f9559a7585cfba529c6a0a4f73488ebd4c5" - integrity sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA== + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== dependencies: emoji-regex "^8.0.0" is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" + strip-ansi "^6.0.1" string.prototype.matchall@^4.0.5: version "4.0.5" @@ -17794,7 +18388,7 @@ stringify-object@^3.2.2: is-obj "^1.0.1" is-regexp "^1.0.0" -strip-ansi@6.0.0, strip-ansi@^6.0.0: +strip-ansi@6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== @@ -17822,6 +18416,13 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: dependencies: ansi-regex "^4.1.0" +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + strip-bom-string@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-bom-string/-/strip-bom-string-1.0.0.tgz#e5211e9224369fbb81d633a2f00044dc8cedad92" @@ -19636,9 +20237,9 @@ webpack@4.43.0: webpack-sources "^1.4.1" webpack@5: - version "5.53.0" - resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.53.0.tgz#f463cd9c6fc1356ae4b9b7ac911fd1f5b2df86af" - integrity sha512-RZ1Z3z3ni44snoWjfWeHFyzvd9HMVYDYC5VXmlYUT6NWgEOWdCNpad5Fve2CzzHoRED7WtsKe+FCyP5Vk4pWiQ== + version "5.54.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-5.54.0.tgz#629f0cd14c7a4340af758a3c7cef25c50670ae4d" + integrity sha512-MAVKJMsIUotOQKzFOmN8ZkmMlj7BOyjDU6t1lomW9dWOme5WTStzGa3HMLdV1KYD1AiFETGsznL4LMSvj4tukw== dependencies: "@types/eslint-scope" "^3.7.0" "@types/estree" "^0.0.50" @@ -19649,8 +20250,8 @@ webpack@5: acorn-import-assertions "^1.7.6" browserslist "^4.14.5" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.8.0" - es-module-lexer "^0.7.1" + enhanced-resolve "^5.8.3" + es-module-lexer "^0.9.0" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1"