From 882e7ea944d566f817e2fb1bc9215085f1945286 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Fri, 22 Mar 2024 10:59:27 -0500 Subject: [PATCH 01/19] Updated build. --- src/experimental/index.ts | 4 +++- src/experimental/model/Model.ts | 2 +- src/experimental/model/NestedArrayModel.ts | 2 +- src/experimental/model/NestedDataModel.ts | 5 ++++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/experimental/index.ts b/src/experimental/index.ts index eda6c5b6..942185a5 100644 --- a/src/experimental/index.ts +++ b/src/experimental/index.ts @@ -1,2 +1,4 @@ export * from './template'; -export * from './core'; \ No newline at end of file +export * from './core'; +export * from './base'; +export * from './model'; \ No newline at end of file diff --git a/src/experimental/model/Model.ts b/src/experimental/model/Model.ts index 9892bab0..b80d0020 100644 --- a/src/experimental/model/Model.ts +++ b/src/experimental/model/Model.ts @@ -96,7 +96,7 @@ export function Model(props: any = {}) : ModelDecoratorInterface { * Returns the data value for this component. */ public get dataValue(): any { - return get(this.data, this.component.key); + return this.component.key ? get(this.data, this.component.key) : this.data; } /** diff --git a/src/experimental/model/NestedArrayModel.ts b/src/experimental/model/NestedArrayModel.ts index 501fd000..17a1486f 100644 --- a/src/experimental/model/NestedArrayModel.ts +++ b/src/experimental/model/NestedArrayModel.ts @@ -130,7 +130,7 @@ export function NestedArrayModel(props: any = {}) : ModelDecoratorInterface { * Returns the dataValue for this component. */ public get dataValue() { - return get(this.data, this.component.key); + return this.component.key ? get(this.data, this.component.key) : this.data; } /** diff --git a/src/experimental/model/NestedDataModel.ts b/src/experimental/model/NestedDataModel.ts index f1ccfa9b..1563f07c 100644 --- a/src/experimental/model/NestedDataModel.ts +++ b/src/experimental/model/NestedDataModel.ts @@ -15,6 +15,9 @@ export function NestedDataModel(props: any = {}) : ModelDecoratorInterface { * Get the component data. */ componentData() { + if (!this.component.key) { + return this.data; + } const compData: any = get(this.data, this.component.key, this.defaultValue); if (!Object.keys(compData).length) { set(this.data, this.component.key, compData); @@ -23,7 +26,7 @@ export function NestedDataModel(props: any = {}) : ModelDecoratorInterface { } public get dataValue() { - return get(this.data, this.component.key); + return this.component.key ? get(this.data, this.component.key) : this.data; } public set dataValue(value: any) { From 20307d45f9b4bc6ba83e63ec2c352e4c9d19ed34 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Sat, 23 Mar 2024 08:20:28 -0500 Subject: [PATCH 02/19] Changes to experimental exports. --- src/experimental/core.ts | 189 ++++++++++++++++++-------------------- src/experimental/index.ts | 9 +- 2 files changed, 93 insertions(+), 105 deletions(-) diff --git a/src/experimental/core.ts b/src/experimental/core.ts index c1429566..9f851f26 100644 --- a/src/experimental/core.ts +++ b/src/experimental/core.ts @@ -3,112 +3,97 @@ import { Formio } from '../sdk'; import { Evaluator, Utils } from '../utils'; import { Components, render } from './base'; import { Template } from './template'; -(Formio as any).render = render; -(Formio as any).Components = Components; -(Formio as any).Evaluator = Evaluator; -(Formio as any).Utils = Utils; -(Formio as any).Templates = Template; import { merge } from 'lodash'; +import components from './components'; +import modules from '../modules'; -/** - * Register a specific plugin. - * - * @param key - * @param plugin - * @returns - */ -export function usePlugin(key: string, plugin: any) { - switch (key) { - case 'options': - if (!(Formio as any).options) { - return; - } - (Formio as any).options = merge((Formio as any).options, plugin); - break; - case 'templates': - if (!(Formio as any).Templates) { - return; - } - const current = (Formio as any).Templates.framework || 'bootstrap'; - for (const framework of Object.keys(plugin)) { - (Formio as any).Templates.extendTemplate(framework, plugin[framework]); - } - if (plugin[current]) { - (Formio as any).Templates.current = plugin[current]; - } - break; - case 'components': - if (!(Formio as any).Components) { - return; - } - (Formio as any).Components.setComponents(plugin); - break; - case 'framework': - if (!(Formio as any).Templates) { - return; - } - (Formio as any).Templates.framework = plugin; - break; - case 'fetch': - for (const name of Object.keys(plugin)) { - Formio.registerPlugin(plugin[name], name); - } - break; - case 'rules': - if (!(Formio as any).Rules) { - return; - } - (Formio as any).Rules.addRules(plugin); - break; - case 'evaluator': - if (!(Formio as any).Evaluator) { - return; - } - (Formio as any).Evaluator.registerEvaluator(plugin); - break; - default: - console.log('Unknown plugin option', key); - } -}; - -/** - * Register a new module. - * - * @param module - * @returns - */ -export function useModule(module: any) { - // Sanity check. - if (typeof module !== 'object') { - return; - } - for (const key of Object.keys(module)) { - usePlugin(key, module[key]); +export default class FormioCore extends Formio { + static Components = Components; + static render = render; + static Evaluator = Evaluator; + static Utils = Utils; + static Templates = Template; + static usePlugin(key: string, plugin: any) { + switch (key) { + case 'options': + if (!(Formio as any).options) { + return; + } + (Formio as any).options = merge((Formio as any).options, plugin); + break; + case 'templates': + if (!(Formio as any).Templates) { + return; + } + const current = (Formio as any).Templates.framework || 'bootstrap'; + for (const framework of Object.keys(plugin)) { + (Formio as any).Templates.extendTemplate(framework, plugin[framework]); + } + if (plugin[current]) { + (Formio as any).Templates.current = plugin[current]; + } + break; + case 'components': + if (!(Formio as any).Components) { + return; + } + (Formio as any).Components.setComponents(plugin); + break; + case 'framework': + if (!(Formio as any).Templates) { + return; + } + (Formio as any).Templates.framework = plugin; + break; + case 'fetch': + for (const name of Object.keys(plugin)) { + Formio.registerPlugin(plugin[name], name); + } + break; + case 'rules': + if (!(Formio as any).Rules) { + return; + } + (Formio as any).Rules.addRules(plugin); + break; + case 'evaluator': + if (!(Formio as any).Evaluator) { + return; + } + (Formio as any).Evaluator.registerEvaluator(plugin); + break; + default: + console.log('Unknown plugin option', key); + } } -}; -/** -* Allows passing in plugins as multiple arguments or an array of plugins. -* -* Formio.plugins(plugin1, plugin2, etc); -* Formio.plugins([plugin1, plugin2, etc]); -*/ -export function use(...mods: any) { - mods.forEach((mod: any) => { - if (Array.isArray(mod)) { - mod.forEach(p => useModule(p)); + static useModule(module: any) { + // Sanity check. + if (typeof module !== 'object') { + return; } - else { - useModule(mod); + for (const key of Object.keys(module)) { + FormioCore.usePlugin(key, module[key]); } - }); -}; + } -(Formio as any).useModule = useModule; -(Formio as any).usePlugin = usePlugin; -(Formio as any).use = use; -import components from './components'; -(Formio as any).use(components); -import modules from '../modules'; -(Formio as any).use(modules); -export { Formio }; + /** + * Allows passing in plugins as multiple arguments or an array of plugins. + * + * Formio.plugins(plugin1, plugin2, etc); + * Formio.plugins([plugin1, plugin2, etc]); + */ + static use(...mods: any) { + mods.forEach((mod: any) => { + if (Array.isArray(mod)) { + mod.forEach(p => FormioCore.useModule(p)); + } + else { + FormioCore.useModule(mod); + } + }); + } +} + +FormioCore.use(components); +FormioCore.use(modules); diff --git a/src/experimental/index.ts b/src/experimental/index.ts index 942185a5..ab6d228d 100644 --- a/src/experimental/index.ts +++ b/src/experimental/index.ts @@ -1,4 +1,7 @@ -export * from './template'; -export * from './core'; +import FormioCore from './core'; export * from './base'; -export * from './model'; \ No newline at end of file +export * from './model'; +export * from './components'; +export * from './template'; +export { FormioCore as Formio }; +export default FormioCore; \ No newline at end of file From c91cc0502018f3852e30e5a5bc68f0f2f61ded12 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Tue, 2 Apr 2024 11:09:41 -0500 Subject: [PATCH 03/19] Adding the experimental exports. --- experimental.d.ts | 1 + experimental.js | 17 +++++++++++++++++ src/experimental/base/component/Component.ts | 2 +- src/experimental/template/Template.ts | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) create mode 100644 experimental.d.ts create mode 100644 experimental.js diff --git a/experimental.d.ts b/experimental.d.ts new file mode 100644 index 00000000..420e6cb4 --- /dev/null +++ b/experimental.d.ts @@ -0,0 +1 @@ +export * from './lib/experimental'; \ No newline at end of file diff --git a/experimental.js b/experimental.js new file mode 100644 index 00000000..2404d976 --- /dev/null +++ b/experimental.js @@ -0,0 +1,17 @@ +"use strict"; +var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + var desc = Object.getOwnPropertyDescriptor(m, k); + if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { + desc = { enumerable: true, get: function() { return m[k]; } }; + } + Object.defineProperty(o, k2, desc); +}) : (function(o, m, k, k2) { + if (k2 === undefined) k2 = k; + o[k2] = m[k]; +})); +var __exportStar = (this && this.__exportStar) || function(m, exports) { + for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p); +}; +Object.defineProperty(exports, "__esModule", { value: true }); +__exportStar(require("./lib/experimental"), exports); \ No newline at end of file diff --git a/src/experimental/base/component/Component.ts b/src/experimental/base/component/Component.ts index 60f34ebf..4eb0cef9 100644 --- a/src/experimental/base/component/Component.ts +++ b/src/experimental/base/component/Component.ts @@ -1,7 +1,7 @@ import { merge } from 'lodash'; import { Components } from '../Components'; import { Template } from '../../template'; -import { Evaluator } from 'utils'; +import { Evaluator } from 'utils/Evaluator'; import * as dom from 'utils/dom'; import { sanitize } from 'utils/sanitize'; import { Model, ModelDecoratorInterface, ModelInterface } from '../../model'; diff --git a/src/experimental/template/Template.ts b/src/experimental/template/Template.ts index 8938fa7a..2974b21f 100644 --- a/src/experimental/template/Template.ts +++ b/src/experimental/template/Template.ts @@ -4,7 +4,7 @@ import { merge } from 'lodash'; * Manages all the available templates which can be rendered. */ export class Template { - public static templates: any = []; + public static templates: any = {}; public static _current: any = {}; public static _framework: string = 'bootstrap'; From 5f3adc58c7e54d1266f1634b3912ed09a54da6cd Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Tue, 2 Apr 2024 12:04:21 -0500 Subject: [PATCH 04/19] Add experimental to the package.json files. --- package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c846a2ec..a693b54e 100644 --- a/package.json +++ b/package.json @@ -43,7 +43,9 @@ "dist", "lib", "types.js", - "types.d.ts" + "types.d.ts", + "experimental.js", + "experimental.d.ts" ], "homepage": "https://github.com/formio/core#readme", "devDependencies": { From 25c5db8aef839640e27c49a31451057a9e8b89e5 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Tue, 23 Apr 2024 13:03:09 -0500 Subject: [PATCH 05/19] Updated build. --- package.json | 26 ++-- yarn.lock | 353 +++++++++++++++++++++++++++++---------------------- 2 files changed, 214 insertions(+), 165 deletions(-) diff --git a/package.json b/package.json index 15ab4a4f..7f8cef35 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.0.0-rc.24", + "version": "2.1.0-dev.tt.3", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { @@ -50,18 +50,18 @@ ], "homepage": "https://github.com/formio/core#readme", "devDependencies": { - "@types/chai": "^4.3.10", + "@types/chai": "^4.3.14", "@types/chance": "^1.1.6", "@types/dompurify": "^3.0.5", "@types/fetch-mock": "^7.3.8", "@types/flatpickr": "^3.1.2", "@types/inputmask": "^5.0.7", - "@types/lodash": "^4.14.201", + "@types/lodash": "^4.17.0", "@types/lodash.template": "^4.5.3", "@types/mocha": "^10.0.4", "@types/power-assert": "^1.5.11", - "@types/sinon": "^17.0.1", - "@types/uuid": "^9.0.7", + "@types/sinon": "^17.0.3", + "@types/uuid": "^9.0.8", "chai": "^4.3.10", "chance": "^1.1.8", "fetch-mock": "^9.11.0", @@ -71,7 +71,7 @@ "gulp-template": "^5.0.0", "jsdom": "^22.1.0", "jsdom-global": "^3.0.2", - "mocha": "^10.0.0", + "mocha": "^10.4.0", "mocha-jsdom": "^2.0.0", "mock-local-storage": "^1.1.20", "power-assert": "^1.6.1", @@ -81,21 +81,21 @@ "tsc-alias": "^1.8.8", "tsconfig-paths": "^4.1.2", "tsconfig-paths-webpack-plugin": "^4.1.0", - "typedoc": "^0.25.3", - "typescript": "^5.2.2", - "webpack": "^5.89.0", + "typedoc": "^0.25.13", + "typescript": "^5.4.5", + "webpack": "^5.91.0", "webpack-cli": "^5.1.4" }, "dependencies": { - "@types/json-logic-js": "^2.0.5", + "@types/json-logic-js": "^2.0.7", "browser-cookies": "^1.2.0", - "core-js": "^3.33.2", + "core-js": "^3.37.0", "dayjs": "^1.11.10", - "dompurify": "^3.0.6", + "dompurify": "^3.1.0", "eventemitter3": "^5.0.0", "fast-json-patch": "^3.1.1", "fetch-ponyfill": "^7.1.0", - "inputmask": "^5.0.9-beta.45", + "inputmask": "^5.0.8", "json-logic-js": "^2.0.2", "lodash": "^4.17.21", "moment": "^2.29.4" diff --git a/yarn.lock b/yarn.lock index d9217b39..fd552909 100644 --- a/yarn.lock +++ b/yarn.lock @@ -246,6 +246,11 @@ resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== +"@jridgewell/resolve-uri@^3.1.0": + version "3.1.2" + resolved "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" + integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== + "@jridgewell/set-array@^1.0.0", "@jridgewell/set-array@^1.0.1": version "1.1.2" resolved "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz" @@ -264,7 +269,7 @@ resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz#add4c98d341472a289190b424efbdb096991bb24" integrity sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw== -"@jridgewell/sourcemap-codec@^1.4.10": +"@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14": version "1.4.15" resolved "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== @@ -285,6 +290,14 @@ "@jridgewell/resolve-uri" "3.1.0" "@jridgewell/sourcemap-codec" "1.4.14" +"@jridgewell/trace-mapping@^0.3.20": + version "0.3.25" + resolved "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" + integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== + dependencies: + "@jridgewell/resolve-uri" "^3.1.0" + "@jridgewell/sourcemap-codec" "^1.4.14" + "@nodelib/fs.scandir@2.1.5": version "2.1.5" resolved "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz#7619c2eb21b25483f6d167548b4cfd5a7488c3d5" @@ -373,10 +386,10 @@ resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@types/chai@^4.3.10": - version "4.3.11" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.11.tgz#e95050bf79a932cb7305dd130254ccdf9bde671c" - integrity sha512-qQR1dr2rGIHYlJulmr8Ioq3De0Le9E4MJ5AiaeAETJJpndT1uUNHsGFK3L/UIu+rbkQSdj8J/w2bCsBZc/Y5fQ== +"@types/chai@^4.3.14": + version "4.3.14" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz#ae3055ea2be43c91c9fd700a36d67820026d96e6" + integrity sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w== "@types/chance@^1.1.6": version "1.1.6" @@ -421,11 +434,16 @@ "@types/estree" "*" "@types/json-schema" "*" -"@types/estree@*", "@types/estree@^1.0.0": +"@types/estree@*": version "1.0.1" resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.1.tgz#aa22750962f3bf0e79d753d3cc067f010c95f194" integrity sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA== +"@types/estree@^1.0.5": + version "1.0.5" + resolved "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/fetch-mock@^7.3.8": version "7.3.8" resolved "https://registry.npmjs.org/@types/fetch-mock/-/fetch-mock-7.3.8.tgz#2fd769cb7881ac029d06ab2c23a254a9f208a034" @@ -443,10 +461,10 @@ resolved "https://registry.npmjs.org/@types/inputmask/-/inputmask-5.0.7.tgz#ae1afdbb0a7b825b90703e0b08b4ef5be7d2c34e" integrity sha512-uojbVPWzBQ/n/0jc/d16fLqmGasFIptbrLD2WrCPWArlk+5PgblOqH4EDkI3AoobXLAlOK5yF01V8jMmvMG5qg== -"@types/json-logic-js@^2.0.5": - version "2.0.6" - resolved "https://registry.npmjs.org/@types/json-logic-js/-/json-logic-js-2.0.6.tgz#ceb090bcaf7ec4d5c7c4c3b5225cf53733e76624" - integrity sha512-X8f94UmgbRE9kRs83J/Jf+fndEVbBGuZLIeLHBOKYGxAX2g8dMAV41RqwkvoMdybRZ3vZoHEdnMnF8VPiP0OOA== +"@types/json-logic-js@^2.0.7": + version "2.0.7" + resolved "https://registry.npmjs.org/@types/json-logic-js/-/json-logic-js-2.0.7.tgz#09a70a932d0be937618a9fc791291b069e637fb0" + integrity sha512-fucvZmbjqa1+gpw/nIwcP+ZIYHTvmwxuQQFKw/yU7+ZSD63z/xgY5pWN7sYUDRzg2Wf9STapL+7c66FNzhU6+Q== "@types/json-schema@*", "@types/json-schema@^7.0.8": version "7.0.12" @@ -465,10 +483,10 @@ resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz" integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== -"@types/lodash@^4.14.201": - version "4.14.202" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.202.tgz#f09dbd2fb082d507178b2f2a5c7e74bd72ff98f8" - integrity sha512-OvlIYQK9tNneDlS0VN54LLd5uiPCBOp7gS5Z0f1mjoJYBrtStzgmJBxONW3U6OZqdtNzZPmn9BS/7WI7BFFcFQ== +"@types/lodash@^4.17.0": + version "4.17.0" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz#d774355e41f372d5350a4d0714abb48194a489c3" + integrity sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA== "@types/mocha@^10.0.4": version "10.0.6" @@ -493,10 +511,10 @@ "@types/empower" "*" "@types/power-assert-formatter" "*" -"@types/sinon@^17.0.1": - version "17.0.2" - resolved "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.2.tgz#9a769f67e62b45b7233f1fe01cb1f231d2393e1c" - integrity sha512-Zt6heIGsdqERkxctIpvN5Pv3edgBrhoeb3yHyxffd4InN0AX2SVNKSrhdDZKGQICVOxWP/q4DyhpfPNMSrpIiA== +"@types/sinon@^17.0.3": + version "17.0.3" + resolved "https://registry.npmjs.org/@types/sinon/-/sinon-17.0.3.tgz#9aa7e62f0a323b9ead177ed23a36ea757141a5fa" + integrity sha512-j3uovdn8ewky9kRBG19bOwaZbexJu/XjtkHyjvUgt4xfPFz18dcORIMqnYh66Fx3Powhcr85NT5+er3+oViapw== dependencies: "@types/sinonjs__fake-timers" "*" @@ -510,15 +528,15 @@ resolved "https://registry.npmjs.org/@types/trusted-types/-/trusted-types-2.0.3.tgz#a136f83b0758698df454e328759dbd3d44555311" integrity sha512-NfQ4gyz38SL8sDNrSixxU2Os1a5xcdFxipAFxYEuLUlvU2uDwS4NUpsImcf1//SlWItCVMMLiylsxbmNMToV/g== -"@types/uuid@^9.0.7": - version "9.0.7" - resolved "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.7.tgz#b14cebc75455eeeb160d5fe23c2fcc0c64f724d8" - integrity sha512-WUtIVRUZ9i5dYXefDEAI7sh9/O7jGvHg7Df/5O/gtH3Yabe5odI3UWopVR1qbPXQtvOxWu3mM4XxlYeZtMWF4g== +"@types/uuid@^9.0.8": + version "9.0.8" + resolved "https://registry.npmjs.org/@types/uuid/-/uuid-9.0.8.tgz#7545ba4fc3c003d6c756f651f3bf163d8f0f29ba" + integrity sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA== -"@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.6.tgz#db046555d3c413f8966ca50a95176a0e2c642e24" - integrity sha512-IN1xI7PwOvLPgjcf180gC1bqn3q/QaOCwYUahIOhbYUu8KA/3tw2RT/T0Gidi1l7Hhj5D/INhJxiICObqpMu4Q== +"@webassemblyjs/ast@1.12.1", "@webassemblyjs/ast@^1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.12.1.tgz#bb16a0e8b1914f979f45864c23819cc3e3f0d4bb" + integrity sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg== dependencies: "@webassemblyjs/helper-numbers" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" @@ -533,10 +551,10 @@ resolved "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.6.tgz#6132f68c4acd59dcd141c44b18cbebbd9f2fa768" integrity sha512-o0YkoP4pVu4rN8aTJgAyj9hC2Sv5UlkzCHhxqWj8butaLvnpdc2jOwh4ewE6CX0txSfLn/UYaV/pheS2Txg//Q== -"@webassemblyjs/helper-buffer@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.6.tgz#b66d73c43e296fd5e88006f18524feb0f2c7c093" - integrity sha512-z3nFzdcp1mb8nEOFFk8DrYLpHvhKC3grJD2ardfKOzmbmJvEf/tPIqCY+sNcwZIY8ZD7IkB2l7/pqhUhqm7hLA== +"@webassemblyjs/helper-buffer@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.12.1.tgz#6df20d272ea5439bf20ab3492b7fb70e9bfcb3f6" + integrity sha512-nzJwQw99DNDKr9BVCOZcLuJJUlqkJh+kVzVl6Fmq/tI5ZtEyWT1KZMyOXltXLZJmDtvLCDgwsyrkohEtopTXCw== "@webassemblyjs/helper-numbers@1.11.6": version "1.11.6" @@ -552,15 +570,15 @@ resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.6.tgz#bb2ebdb3b83aa26d9baad4c46d4315283acd51e9" integrity sha512-sFFHKwcmBprO9e7Icf0+gddyWYDViL8bpPjJJl0WHxCdETktXdmtWLGVzoHbqUcY4Be1LkNfwTmXOJUFZYSJdA== -"@webassemblyjs/helper-wasm-section@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.6.tgz#ff97f3863c55ee7f580fd5c41a381e9def4aa577" - integrity sha512-LPpZbSOwTpEC2cgn4hTydySy1Ke+XEu+ETXuoyvuyezHO3Kjdu90KK95Sh9xTbmjrCsUwvWwCOQQNta37VrS9g== +"@webassemblyjs/helper-wasm-section@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.12.1.tgz#3da623233ae1a60409b509a52ade9bc22a37f7bf" + integrity sha512-Jif4vfB6FJlUlSbgEMHUyk1j234GTNG9dBJ4XJdOySoj518Xj0oGsNi59cUQF4RRMS9ouBUxDDdyBVfPTypa5g== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" + "@webassemblyjs/wasm-gen" "1.12.1" "@webassemblyjs/ieee754@1.11.6": version "1.11.6" @@ -581,59 +599,59 @@ resolved "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.6.tgz#90f8bc34c561595fe156603be7253cdbcd0fab5a" integrity sha512-vtXf2wTQ3+up9Zsg8sa2yWiQpzSsMyXj0qViVP6xKGCUT8p8YJ6HqI7l5eCnWx1T/FYdsv07HQs2wTFbbof/RA== -"@webassemblyjs/wasm-edit@^1.11.5": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.6.tgz#c72fa8220524c9b416249f3d94c2958dfe70ceab" - integrity sha512-Ybn2I6fnfIGuCR+Faaz7YcvtBKxvoLV3Lebn1tM4o/IAJzmi9AWYIPWpyBfU8cC+JxAO57bk4+zdsTjJR+VTOw== +"@webassemblyjs/wasm-edit@^1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.12.1.tgz#9f9f3ff52a14c980939be0ef9d5df9ebc678ae3b" + integrity sha512-1DuwbVvADvS5mGnXbE+c9NfA8QRcZ6iKquqjjmR10k6o+zzsRVesil54DKexiowcFCPdr/Q0qaMgB01+SQ1u6g== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" - "@webassemblyjs/helper-wasm-section" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-opt" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" - "@webassemblyjs/wast-printer" "1.11.6" - -"@webassemblyjs/wasm-gen@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.6.tgz#fb5283e0e8b4551cc4e9c3c0d7184a65faf7c268" - integrity sha512-3XOqkZP/y6B4F0PBAXvI1/bky7GryoogUtfwExeP/v7Nzwo1QLcq5oQmpKlftZLbT+ERUOAZVQjuNVak6UXjPA== - dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/helper-wasm-section" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-opt" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" + "@webassemblyjs/wast-printer" "1.12.1" + +"@webassemblyjs/wasm-gen@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.12.1.tgz#a6520601da1b5700448273666a71ad0a45d78547" + integrity sha512-TDq4Ojh9fcohAw6OIMXqiIcTq5KUXTGRkVxbSo1hQnSy6lAM5GSdfwWeSxpAo0YzgsgF182E/U0mDNhuA0tW7w== + dependencies: + "@webassemblyjs/ast" "1.12.1" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wasm-opt@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.6.tgz#d9a22d651248422ca498b09aa3232a81041487c2" - integrity sha512-cOrKuLRE7PCe6AsOVl7WasYf3wbSo4CeOk6PkrjS7g57MFfVUF9u6ysQBBODX0LdgSvQqRiGz3CXvIDKcPNy4g== +"@webassemblyjs/wasm-opt@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.12.1.tgz#9e6e81475dfcfb62dab574ac2dda38226c232bc5" + integrity sha512-Jg99j/2gG2iaz3hijw857AVYekZe2SAskcqlWIZXjji5WStnOpVoat3gQfT/Q5tb2djnCjBtMocY/Su1GfxPBg== dependencies: - "@webassemblyjs/ast" "1.11.6" - "@webassemblyjs/helper-buffer" "1.11.6" - "@webassemblyjs/wasm-gen" "1.11.6" - "@webassemblyjs/wasm-parser" "1.11.6" + "@webassemblyjs/ast" "1.12.1" + "@webassemblyjs/helper-buffer" "1.12.1" + "@webassemblyjs/wasm-gen" "1.12.1" + "@webassemblyjs/wasm-parser" "1.12.1" -"@webassemblyjs/wasm-parser@1.11.6", "@webassemblyjs/wasm-parser@^1.11.5": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.6.tgz#bb85378c527df824004812bbdb784eea539174a1" - integrity sha512-6ZwPeGzMJM3Dqp3hCsLgESxBGtT/OeCvCZ4TA1JUPYgmhAx38tTPR9JaKy0S5H3evQpO/h2uWs2j6Yc/fjkpTQ== +"@webassemblyjs/wasm-parser@1.12.1", "@webassemblyjs/wasm-parser@^1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.12.1.tgz#c47acb90e6f083391e3fa61d113650eea1e95937" + integrity sha512-xikIi7c2FHXysxXe3COrVUPSheuBtpcfhbpFj4gmu7KRLYOzANztwUU0IbsqvMqzuNK2+glRGWCEqZo1WCLyAQ== dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/ast" "1.12.1" "@webassemblyjs/helper-api-error" "1.11.6" "@webassemblyjs/helper-wasm-bytecode" "1.11.6" "@webassemblyjs/ieee754" "1.11.6" "@webassemblyjs/leb128" "1.11.6" "@webassemblyjs/utf8" "1.11.6" -"@webassemblyjs/wast-printer@1.11.6": - version "1.11.6" - resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.6.tgz#a7bf8dd7e362aeb1668ff43f35cb849f188eff20" - integrity sha512-JM7AhRcE+yW2GWYaKeHL5vt4xqee5N2WcezptmgyhNS+ScggqcT1OtXykhAb13Sn5Yas0j2uv9tHgrjwvzAP4A== +"@webassemblyjs/wast-printer@1.12.1": + version "1.12.1" + resolved "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.12.1.tgz#bcecf661d7d1abdaf989d8341a4833e33e2b31ac" + integrity sha512-+X4WAlOisVWQMikjbcvY2e0rwPsKQ9F688lksZhBcPycBBuii3O7m8FACbDMWDojpAqvjIncrG8J0XHKyQfVeA== dependencies: - "@webassemblyjs/ast" "1.11.6" + "@webassemblyjs/ast" "1.12.1" "@xtuc/long" "4.2.2" "@webpack-cli/configtest@^2.1.1": @@ -1121,15 +1139,15 @@ browser-stdout@1.3.1: resolved "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz" integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== -browserslist@^4.14.5: - version "4.21.7" - resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.21.7.tgz#e2b420947e5fb0a58e8f4668ae6e23488127e551" - integrity sha512-BauCXrQ7I2ftSqd2mvKHGo85XR0u7Ru3C/Hxsy/0TkfCtjrmAbPdzLGasmoiBxplpDXlPvdjX9u7srIMfgasNA== +browserslist@^4.21.10: + version "4.23.0" + resolved "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz#8f3acc2bbe73af7213399430890f86c63a5674ab" + integrity sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ== dependencies: - caniuse-lite "^1.0.30001489" - electron-to-chromium "^1.4.411" - node-releases "^2.0.12" - update-browserslist-db "^1.0.11" + caniuse-lite "^1.0.30001587" + electron-to-chromium "^1.4.668" + node-releases "^2.0.14" + update-browserslist-db "^1.0.13" browserslist@^4.21.3: version "4.21.5" @@ -1189,11 +1207,16 @@ camelcase@^6.0.0: resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== -caniuse-lite@^1.0.30001449, caniuse-lite@^1.0.30001489: +caniuse-lite@^1.0.30001449: version "1.0.30001492" resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001492.tgz#4a06861788a52b4c81fd3344573b68cc87fe062b" integrity sha512-2efF8SAZwgAX1FJr87KWhvuJxnGJKOnctQa8xLOskAXNXq8oiuqgl6u1kk3fFpsp3GgvzlRjiK1sl63hNtFADw== +caniuse-lite@^1.0.30001587: + version "1.0.30001612" + resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001612.tgz#d34248b4ec1f117b70b24ad9ee04c90e0b8a14ae" + integrity sha512-lFgnZ07UhaCcsSZgWW0K5j4e69dK1u/ltrL9lTUiFOwNHs12S3UMIEYgBV0Z6C6hRDev7iRnMzzYmKabYdXF9g== + caseless@~0.12.0: version "0.12.0" resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" @@ -1472,10 +1495,10 @@ core-js@^3.30.2: resolved "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== -core-js@^3.33.2: - version "3.35.0" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.35.0.tgz#58e651688484f83c34196ca13f099574ee53d6b4" - integrity sha512-ntakECeqg81KqMueeGJ79Q5ZgQNR+6eaE8sxGCx62zMbAIj65q+uYvatToew3m6eAGdU4gNZwpZ34NMe4GYswg== +core-js@^3.37.0: + version "3.37.0" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.37.0.tgz#d8dde58e91d156b2547c19d8a4efd5c7f6c426bb" + integrity sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug== core-util-is@1.0.2: version "1.0.2" @@ -1702,10 +1725,10 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" -dompurify@^3.0.6: - version "3.0.6" - resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.0.6.tgz#925ebd576d54a9531b5d76f0a5bef32548351dae" - integrity sha512-ilkD8YEnnGh1zJ240uJsW7AzE+2qpbOUYjacomn3AvJ6J4JhKGSZ2nh4wUIXPZrEPppaCLx5jFe8T89Rk8tQ7w== +dompurify@^3.1.0: + version "3.1.0" + resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.1.0.tgz#8c6b9fe986969a33aa4686bd829cbe8e14dd9445" + integrity sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA== duplexify@^3.6.0: version "3.7.1" @@ -1738,11 +1761,16 @@ ecc-jsbn@~0.1.1: jsbn "~0.1.0" safer-buffer "^2.1.0" -electron-to-chromium@^1.4.284, electron-to-chromium@^1.4.411: +electron-to-chromium@^1.4.284: version "1.4.419" resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.419.tgz#6fbea1f3abb65bf46e8ad874b5c1f0816ce2f8ce" integrity sha512-jdie3RiEgygvDTyS2sgjq71B36q2cDSBfPlwzUyuOrfYTNoYWyBxxjGJV/HAu3A2hB0Y+HesvCVkVAFoCKwCSw== +electron-to-chromium@^1.4.668: + version "1.4.747" + resolved "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.747.tgz#e37fa5b7b7e4c22607c5f59b5cf78f947266e77d" + integrity sha512-+FnSWZIAvFHbsNVmUxhEqWiaOiPMcfum1GQzlWCg/wLigVtshOsjXHyEFfmt6cFK6+HkS3QOJBv6/3OPumbBfw== + emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz" @@ -1771,7 +1799,7 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -enhanced-resolve@^5.0.0, enhanced-resolve@^5.15.0: +enhanced-resolve@^5.0.0: version "5.15.0" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" integrity sha512-LXYT42KJ7lpIKECr2mAXIaMldcNCh/7E0KBKOu4KSfkHmP+mZmSs+8V5gBAqisWBy0OO4W5Oyys0GO1Y8KtdKg== @@ -1779,6 +1807,14 @@ enhanced-resolve@^5.0.0, enhanced-resolve@^5.15.0: graceful-fs "^4.2.4" tapable "^2.2.0" +enhanced-resolve@^5.16.0: + version "5.16.0" + resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.16.0.tgz#65ec88778083056cb32487faa9aef82ed0864787" + integrity sha512-O+QWCviPNSSLAD9Ucn8Awv+poAkqn3T1XY5/N7kR7rQO9yfSGWkYZDwpJ+iKF7B8rxaQKWngSqACpgzeapSyoA== + dependencies: + graceful-fs "^4.2.4" + tapable "^2.2.0" + enhanced-resolve@^5.7.0: version "5.12.0" resolved "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.12.0.tgz" @@ -2346,17 +2382,16 @@ glob-watcher@^5.0.3: normalize-path "^3.0.0" object.defaults "^1.1.0" -glob@7.2.0: - version "7.2.0" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz" - integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== +glob@8.1.0: + version "8.1.0" + resolved "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz#d388f656593ef708ee3e34640fdfb99a9fd1c33e" + integrity sha512-r8hpEjiQEYlF2QU0df3dS+nxxSIreXQS1qRhMJM0Q5NDdR386C7jb7Hwwod8Fgiuex+k0GFjgft18yvxm5XoCQ== dependencies: fs.realpath "^1.0.0" inflight "^1.0.4" inherits "2" - minimatch "^3.0.4" + minimatch "^5.0.1" once "^1.3.0" - path-is-absolute "^1.0.0" glob@^7.1.1: version "7.2.3" @@ -2427,7 +2462,7 @@ graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.6: resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== -graceful-fs@^4.1.2, graceful-fs@^4.2.4, graceful-fs@^4.2.9: +graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== @@ -2676,10 +2711,10 @@ ini@^1.3.4: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inputmask@^5.0.9-beta.45: - version "5.0.9-beta.45" - resolved "https://registry.npmjs.org/inputmask/-/inputmask-5.0.9-beta.45.tgz#2699ebfd1e99f572815fb8f2ac23c548198f9ec6" - integrity sha512-Nh6RHifykvEfPvnpCiwEER8LcDTAWvWKWUnVsRjqOyutGwAdjFuucCDI3YAm8tTVmhsmAydqEs+ORwllkN7Pfw== +inputmask@^5.0.8: + version "5.0.8" + resolved "https://registry.npmjs.org/inputmask/-/inputmask-5.0.8.tgz#cd0f70b058c3291a0d4f27de25dbfc179c998bb4" + integrity sha512-1WcbyudPTXP1B28ozWWyFa6QRIUG4KiLoyR6LFHlpT4OfTzRqFfWgHFadNvRuMN1S9XNVz9CdNvCGjJi+uAMqQ== interpret@^1.4.0: version "1.4.0" @@ -3372,13 +3407,20 @@ minimatch@5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^3.0.4, minimatch@^3.1.1: +minimatch@^3.1.1: version "3.1.2" resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== dependencies: brace-expansion "^1.1.7" +minimatch@^5.0.1: + version "5.1.6" + resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" + integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== + dependencies: + brace-expansion "^2.0.1" + minimatch@^9.0.3: version "9.0.3" resolved "https://registry.npmjs.org/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" @@ -3406,10 +3448,10 @@ mocha-jsdom@^2.0.0: dependencies: jsdom "^11.11.0" -mocha@^10.0.0: - version "10.2.0" - resolved "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz" - integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== +mocha@^10.4.0: + version "10.4.0" + resolved "https://registry.npmjs.org/mocha/-/mocha-10.4.0.tgz#ed03db96ee9cfc6d20c56f8e2af07b961dbae261" + integrity sha512-eqhGB8JKapEYcC4ytX/xrzKforgEc3j1pGlAXVy3eRwrtAy5/nIfT1SvgGzfN0XZZxeLq0aQWkOUAmqIJiv+bA== dependencies: ansi-colors "4.1.1" browser-stdout "1.3.1" @@ -3418,13 +3460,12 @@ mocha@^10.0.0: diff "5.0.0" escape-string-regexp "4.0.0" find-up "5.0.0" - glob "7.2.0" + glob "8.1.0" he "1.2.0" js-yaml "4.1.0" log-symbols "4.1.0" minimatch "5.0.1" ms "2.1.3" - nanoid "3.3.3" serialize-javascript "6.0.0" strip-json-comments "3.1.1" supports-color "8.1.1" @@ -3476,11 +3517,6 @@ nan@^2.12.1: resolved "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz" integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== -nanoid@3.3.3: - version "3.3.3" - resolved "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz" - integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== - nanomatch@^1.2.9: version "1.2.13" resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" @@ -3526,7 +3562,12 @@ node-fetch@~2.6.1: dependencies: whatwg-url "^5.0.0" -node-releases@^2.0.12, node-releases@^2.0.8: +node-releases@^2.0.14: + version "2.0.14" + resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz#2ffb053bceb8b2be8495ece1ab6ce600c4461b0b" + integrity sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw== + +node-releases@^2.0.8: version "2.0.12" resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== @@ -4753,21 +4794,21 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== -terser-webpack-plugin@^5.3.7: - version "5.3.9" - resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.9.tgz#832536999c51b46d468067f9e37662a3b96adfe1" - integrity sha512-ZuXsqE07EcggTWQjXUj+Aot/OMcD0bMKGgF63f7UxYcu5/AJF53aIpK1YoP5xR9l6s/Hy2b+t1AM0bLNPRuhwA== +terser-webpack-plugin@^5.3.10: + version "5.3.10" + resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" + integrity sha512-BKFPWlPDndPs+NGGCr1U59t0XScL5317Y0UReNrHaw9/FwhPENlq6bfgs+4yPfyP51vqC1bQ4rp1EfXW5ZSH9w== dependencies: - "@jridgewell/trace-mapping" "^0.3.17" + "@jridgewell/trace-mapping" "^0.3.20" jest-worker "^27.4.5" schema-utils "^3.1.1" serialize-javascript "^6.0.1" - terser "^5.16.8" + terser "^5.26.0" -terser@^5.16.8: - version "5.17.7" - resolved "https://registry.npmjs.org/terser/-/terser-5.17.7.tgz#2a8b134826fe179b711969fd9d9a0c2479b2a8c3" - integrity sha512-/bi0Zm2C6VAexlGgLlVxA0P2lru/sdLyfCVaRMfKVo9nWxbmz7f/sD8VPybPeSUJaJcwmCJis9pBIhcVcG1QcQ== +terser@^5.26.0: + version "5.30.4" + resolved "https://registry.npmjs.org/terser/-/terser-5.30.4.tgz#62b4d16a819424e6317fd5ceffb4ee8dc769803a" + integrity sha512-xRdd0v64a8mFK9bnsKVdoNP9GQIKUAaJPTaqEQDL4w/J8WaW4sWXXoMZ+6SimPkfT5bElreXf8m9HnmPc3E1BQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -4993,20 +5034,20 @@ typedarray@^0.0.6: resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== -typedoc@^0.25.3: - version "0.25.6" - resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.25.6.tgz#1505538aecea511dd669652c71d042a2427bd4fc" - integrity sha512-1rdionQMpOkpA58qfym1J+YD+ukyA1IEIa4VZahQI2ZORez7dhOvEyUotQL/8rSoMBopdzOS+vAIsORpQO4cTA== +typedoc@^0.25.13: + version "0.25.13" + resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz#9a98819e3b2d155a6d78589b46fa4c03768f0922" + integrity sha512-pQqiwiJ+Z4pigfOnnysObszLiU3mVLWAExSPf+Mu06G/qsc3wzbuM56SZQvONhHLncLUhYzOVkjFFpFfL5AzhQ== dependencies: lunr "^2.3.9" marked "^4.3.0" minimatch "^9.0.3" shiki "^0.14.7" -typescript@^5.2.2: - version "5.3.3" - resolved "https://registry.npmjs.org/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" - integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== +typescript@^5.4.5: + version "5.4.5" + resolved "https://registry.npmjs.org/typescript/-/typescript-5.4.5.tgz#42ccef2c571fdbd0f6718b1d1f5e6e5ef006f611" + integrity sha512-vcI4UpRgg81oIRUFwR0WSIHKt11nJ7SAVlYNIu+QpqeyXP+gpQJy/Z4+F0aGxSE4MqwjyXvW/TzgkLAx2AGHwQ== unc-path-regex@^0.1.2: version "0.1.2" @@ -5079,7 +5120,7 @@ upath@^1.1.1: resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== -update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.11: +update-browserslist-db@^1.0.10: version "1.0.11" resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" integrity sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA== @@ -5087,6 +5128,14 @@ update-browserslist-db@^1.0.10, update-browserslist-db@^1.0.11: escalade "^3.1.1" picocolors "^1.0.0" +update-browserslist-db@^1.0.13: + version "1.0.13" + resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz#3c5e4f5c083661bd38ef64b6328c26ed6c8248c4" + integrity sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg== + dependencies: + escalade "^3.1.1" + picocolors "^1.0.0" + uri-js@^4.2.2: version "4.4.1" resolved "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" @@ -5228,10 +5277,10 @@ w3c-xmlserializer@^4.0.0: dependencies: xml-name-validator "^4.0.0" -watchpack@^2.4.0: - version "2.4.0" - resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" - integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== +watchpack@^2.4.1: + version "2.4.1" + resolved "https://registry.npmjs.org/watchpack/-/watchpack-2.4.1.tgz#29308f2cac150fa8e4c92f90e0ec954a9fed7fff" + integrity sha512-8wrBCMtVhqcXP2Sup1ctSkga6uc2Bx0IIvKyT7yTFier5AXHooSI+QyQQAtTb7+E0IUCCKyTFmXqdqgum2XWGg== dependencies: glob-to-regexp "^0.4.1" graceful-fs "^4.1.2" @@ -5283,34 +5332,34 @@ webpack-sources@^3.2.3: resolved "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz#2d4daab8451fd4b240cc27055ff6a0c2ccea0cde" integrity sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w== -webpack@^5.89.0: - version "5.89.0" - resolved "https://registry.npmjs.org/webpack/-/webpack-5.89.0.tgz#56b8bf9a34356e93a6625770006490bf3a7f32dc" - integrity sha512-qyfIC10pOr70V+jkmud8tMfajraGCZMBWJtrmuBymQKCrLTRejBI8STDp1MCyZu/QTdZSeacCQYpYNQVOzX5kw== +webpack@^5.91.0: + version "5.91.0" + resolved "https://registry.npmjs.org/webpack/-/webpack-5.91.0.tgz#ffa92c1c618d18c878f06892bbdc3373c71a01d9" + integrity sha512-rzVwlLeBWHJbmgTC/8TvAcu5vpJNII+MelQpylD4jNERPwpBJOE2lEcko1zJX3QJeLjTTAnQxn/OJ8bjDzVQaw== dependencies: "@types/eslint-scope" "^3.7.3" - "@types/estree" "^1.0.0" - "@webassemblyjs/ast" "^1.11.5" - "@webassemblyjs/wasm-edit" "^1.11.5" - "@webassemblyjs/wasm-parser" "^1.11.5" + "@types/estree" "^1.0.5" + "@webassemblyjs/ast" "^1.12.1" + "@webassemblyjs/wasm-edit" "^1.12.1" + "@webassemblyjs/wasm-parser" "^1.12.1" acorn "^8.7.1" acorn-import-assertions "^1.9.0" - browserslist "^4.14.5" + browserslist "^4.21.10" chrome-trace-event "^1.0.2" - enhanced-resolve "^5.15.0" + enhanced-resolve "^5.16.0" es-module-lexer "^1.2.1" eslint-scope "5.1.1" events "^3.2.0" glob-to-regexp "^0.4.1" - graceful-fs "^4.2.9" + graceful-fs "^4.2.11" json-parse-even-better-errors "^2.3.1" loader-runner "^4.2.0" mime-types "^2.1.27" neo-async "^2.6.2" schema-utils "^3.2.0" tapable "^2.1.1" - terser-webpack-plugin "^5.3.7" - watchpack "^2.4.0" + terser-webpack-plugin "^5.3.10" + watchpack "^2.4.1" webpack-sources "^3.2.3" whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.3: From 3261972b95235fcf3fef26633810329e50618904 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Fri, 26 Apr 2024 19:26:39 -0500 Subject: [PATCH 06/19] Updated build. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 7f8cef35..6c78e566 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.3", + "version": "2.1.0-dev.tt.4", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { From 95f20bf55448c5691be754cd3b2ff0694387b7e0 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Sun, 5 May 2024 16:07:31 -0500 Subject: [PATCH 07/19] Fixed issues with mocking browser context. --- package.json | 4 ++-- src/process/validation/rules/validateMask.ts | 2 ++ src/utils/index.ts | 1 + src/utils/mockBrowserContext.ts | 25 ++++++++++++++++++++ yarn.lock | 8 +++---- 5 files changed, 34 insertions(+), 6 deletions(-) create mode 100644 src/utils/mockBrowserContext.ts diff --git a/package.json b/package.json index 6c78e566..ee940c73 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.4", + "version": "2.1.0-dev.tt.5", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { @@ -95,7 +95,7 @@ "eventemitter3": "^5.0.0", "fast-json-patch": "^3.1.1", "fetch-ponyfill": "^7.1.0", - "inputmask": "^5.0.8", + "inputmask": "4.0.9", "json-logic-js": "^2.0.2", "lodash": "^4.17.21", "moment": "^2.29.4" diff --git a/src/process/validation/rules/validateMask.ts b/src/process/validation/rules/validateMask.ts index 6ee92d36..8f122871 100644 --- a/src/process/validation/rules/validateMask.ts +++ b/src/process/validation/rules/validateMask.ts @@ -3,6 +3,8 @@ import _, { isEmpty } from 'lodash'; import { FieldError } from 'error'; import { TextFieldComponent, DataObject, RuleFn, RuleFnSync, ValidationContext } from 'types'; import { ProcessorInfo } from 'types/process/ProcessorInfo'; +import mockBrowserContext from 'utils/mockBrowserContext'; +mockBrowserContext(); import Inputmask from 'inputmask'; const isMaskType = (obj: any): obj is DataObject & { maskName: string; value: string } => { diff --git a/src/utils/index.ts b/src/utils/index.ts index f7ef4494..109e8547 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -9,3 +9,4 @@ export * from './date'; export * from './mask'; export * from './fastCloneDeep'; export * from './Database'; +export * from './mockBrowserContext'; diff --git a/src/utils/mockBrowserContext.ts b/src/utils/mockBrowserContext.ts new file mode 100644 index 00000000..9c22f860 --- /dev/null +++ b/src/utils/mockBrowserContext.ts @@ -0,0 +1,25 @@ +declare const globalThis: any; +export default function mockBrowserContext() { + if (!globalThis) return; + if (!globalThis.Text) globalThis.Text = class {}; + if (!globalThis.HTMLElement) globalThis.HTMLElement = class {}; + if (!globalThis.HTMLInputElement) globalThis.HTMLInputElement = class {}; + if (!globalThis.HTMLTextAreaElement) globalThis.HTMLTextAreaElement = class {}; + if (!globalThis.navigator) globalThis.navigator = {userAgent: ''}; + if (!globalThis.document) globalThis.document = { + createElement: () => ({}), + cookie: '', + getElementsByTagName: () => [], + documentElement: { + style: [], + firstElementChild: {appendChild: () => {}} + } + }; + if (!globalThis.window) globalThis.window = {addEventListener: () => {}, Event: function() {}, navigator: globalThis.navigator}; + if (!globalThis.btoa) globalThis.btoa = (str: any) => { + return (str instanceof Buffer) ? + str.toString('base64') : + Buffer.from(str.toString(), 'binary').toString('base64'); + } + if (!globalThis.self) globalThis.self = global; +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index fd552909..d928b542 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2711,10 +2711,10 @@ ini@^1.3.4: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inputmask@^5.0.8: - version "5.0.8" - resolved "https://registry.npmjs.org/inputmask/-/inputmask-5.0.8.tgz#cd0f70b058c3291a0d4f27de25dbfc179c998bb4" - integrity sha512-1WcbyudPTXP1B28ozWWyFa6QRIUG4KiLoyR6LFHlpT4OfTzRqFfWgHFadNvRuMN1S9XNVz9CdNvCGjJi+uAMqQ== +inputmask@4.0.9: + version "4.0.9" + resolved "https://registry.npmjs.org/inputmask/-/inputmask-4.0.9.tgz#a60fc46cee52a35a0ba5f50b5cca3a6733ece18c" + integrity sha512-EodaYhJKncXRBwvCE8YrRmAFmBJ6bWdgX4Qw8QSnK5GBDXE03jgpJhrS+a2N0v2Zsgp+OjKXy7qACktjYD83Uw== interpret@^1.4.0: version "1.4.0" From d5bb8a605db18d571e895839613b2342797c1afc Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Sun, 5 May 2024 16:38:29 -0500 Subject: [PATCH 08/19] Updated build. --- package.json | 2 +- src/process/validation/rules/validateMask.ts | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/package.json b/package.json index ee940c73..bbb32c57 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.5", + "version": "2.1.0-dev.tt.6", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { diff --git a/src/process/validation/rules/validateMask.ts b/src/process/validation/rules/validateMask.ts index 8f122871..eeaf8c21 100644 --- a/src/process/validation/rules/validateMask.ts +++ b/src/process/validation/rules/validateMask.ts @@ -3,9 +3,6 @@ import _, { isEmpty } from 'lodash'; import { FieldError } from 'error'; import { TextFieldComponent, DataObject, RuleFn, RuleFnSync, ValidationContext } from 'types'; import { ProcessorInfo } from 'types/process/ProcessorInfo'; -import mockBrowserContext from 'utils/mockBrowserContext'; -mockBrowserContext(); -import Inputmask from 'inputmask'; const isMaskType = (obj: any): obj is DataObject & { maskName: string; value: string } => { return ( @@ -137,8 +134,16 @@ export const validateMaskSync: RuleFnSync = (context: ValidationContext) => { if (!inputMask) { return null; } - if (value && inputMask && typeof value === 'string' && component.type === 'textfield' ) { - return Inputmask.isValid(value, {mask: inputMask.toString()}) ? null : new FieldError('mask', context); + if ( + value && + inputMask && + typeof value === 'string' && + component.type === 'textfield' && + typeof window !== 'undefined' && + typeof document !== 'undefined' + ) { + const InputMask = require('inputmask'); + return InputMask.isValid(value, {mask: inputMask.toString()}) ? null : new FieldError('mask', context); } let inputMaskArr = getInputMask(inputMask); if (value != null && inputMaskArr) { From 479082a7121879d1f94682fc736634e1f8f62e72 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Tue, 7 May 2024 15:42:05 -0500 Subject: [PATCH 09/19] Upgrades and also fixed lodash imports. --- config/webpack.config.js | 15 +- package.json | 14 +- src/modules/jsonlogic/jsonLogic.ts | 11 +- src/modules/jsonlogic/operators.ts | 746 ++++++++++++------ src/process/__tests__/fixtures/util.ts | 2 +- src/process/calculation/index.ts | 4 +- src/process/clearHidden.ts | 2 +- src/process/conditions/index.ts | 2 +- src/process/defaultValue/index.ts | 3 +- src/process/fetch/index.ts | 3 +- src/process/filter/index.ts | 2 +- src/process/normalize/index.ts | 7 +- src/process/populate/index.ts | 3 +- .../validation/__tests__/Validator.test.ts | 2 +- src/process/validation/__tests__/util.test.ts | 2 +- .../rules/validateAvailableItems.ts | 2 +- src/process/validation/rules/validateMask.ts | 14 +- .../validation/rules/validateMaximumWords.ts | 2 - src/types/Component.ts | 30 +- src/utils/formUtil.ts | 43 +- src/utils/index.ts | 1 - src/utils/mockBrowserContext.ts | 25 - 22 files changed, 566 insertions(+), 369 deletions(-) delete mode 100644 src/utils/mockBrowserContext.ts diff --git a/config/webpack.config.js b/config/webpack.config.js index 33525411..b917746c 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -1,4 +1,5 @@ const path = require('path'); +const webpack = require('webpack'); const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin'); module.exports = { mode: 'development', @@ -20,11 +21,19 @@ module.exports = { arrowFunction: false }, }, + plugins: [ + new webpack.IgnorePlugin({ + resourceRegExp: /^\.\/locale$/, + contextRegExp: /moment$/, + }) + ], resolve: { extensions: ['.ts', '.js'], - plugins: [new TsconfigPathsPlugin({ - configFile: path.resolve(__dirname, '..', 'tsconfig.json') - })] + plugins: [ + new TsconfigPathsPlugin({ + configFile: path.resolve(__dirname, '..', 'tsconfig.json') + }) + ] }, module: { rules: [ diff --git a/package.json b/package.json index bbb32c57..5d36fc54 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.6", + "version": "2.1.0-dev.tt.7", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { @@ -18,8 +18,8 @@ "replace": "node -r tsconfig-paths/register -r ts-node/register ./lib/base/array/ArrayComponent.js", "test:debug": "mocha -r ts-node/register -r tsconfig-paths/register -r mock-local-storage -r jsdom-global/register --debug-brk --inspect '**/*.spec.ts'", "docs": "./node_modules/typedoc/bin/typedoc --exclude '*.spec.ts' src/*.ts src/**/*.ts src/**/**/*.ts", - "build:dev": "webpack --config config/webpack.config.js", - "build:prod": "webpack --config config/webpack.prod.js", + "build:dev": "npx webpack --config config/webpack.config.js", + "build:prod": "npx webpack --config config/webpack.prod.js", "clean": "rm -rf lib && rm -rf dist && rm -rf docs", "build": "npm run clean && gulp templates && npm run docs && npm run lib && npm run build:dev && npm run build:prod", "prepublish": "npm run build && npm run test" @@ -50,13 +50,13 @@ ], "homepage": "https://github.com/formio/core#readme", "devDependencies": { - "@types/chai": "^4.3.14", + "@types/chai": "^4.3.16", "@types/chance": "^1.1.6", "@types/dompurify": "^3.0.5", "@types/fetch-mock": "^7.3.8", "@types/flatpickr": "^3.1.2", "@types/inputmask": "^5.0.7", - "@types/lodash": "^4.17.0", + "@types/lodash": "^4.17.1", "@types/lodash.template": "^4.5.3", "@types/mocha": "^10.0.4", "@types/power-assert": "^1.5.11", @@ -90,8 +90,8 @@ "@types/json-logic-js": "^2.0.7", "browser-cookies": "^1.2.0", "core-js": "^3.37.0", - "dayjs": "^1.11.10", - "dompurify": "^3.1.0", + "dayjs": "^1.11.11", + "dompurify": "^3.1.2", "eventemitter3": "^5.0.0", "fast-json-patch": "^3.1.1", "fetch-ponyfill": "^7.1.0", diff --git a/src/modules/jsonlogic/jsonLogic.ts b/src/modules/jsonlogic/jsonLogic.ts index a97f1384..c8830b4f 100644 --- a/src/modules/jsonlogic/jsonLogic.ts +++ b/src/modules/jsonlogic/jsonLogic.ts @@ -1,14 +1,11 @@ import jsonLogic from 'json-logic-js'; -import * as _ from 'lodash'; import { dayjs } from 'utils/date'; -import { lodashOperators } from './operators'; +import { _ } from './operators'; // Configure JsonLogic -lodashOperators.forEach((name: string) => { - if ((_ as any)[name]) { - jsonLogic.add_operation(`_${name}`, (_ as any)[name]); - } -}); +for (let operator in _) { + jsonLogic.add_operation(`_${operator}`, _[operator]); +} // Retrieve Any Date jsonLogic.add_operation('getDate', (date: any) => { diff --git a/src/modules/jsonlogic/operators.ts b/src/modules/jsonlogic/operators.ts index 992cf654..7ba431dc 100644 --- a/src/modules/jsonlogic/operators.ts +++ b/src/modules/jsonlogic/operators.ts @@ -1,258 +1,494 @@ // Use only immutable useful functions from Lodash. // Visit https://lodash.com/docs for more info. -export const lodashOperators = [ - // Array - 'chunk', - 'compact', - 'concat', - 'difference', - 'drop', - 'dropRight', - 'findIndex', - 'findLastIndex', - 'first', - 'flatten', - 'flattenDeep', - 'flattenDepth', - 'fromPairs', - 'head', - 'indexOf', - 'initial', - 'intersection', - 'intersectionBy', - 'intersectionWith', - 'join', - 'last', - 'lastIndexOf', - 'nth', - 'slice', - 'sortedIndex', - 'sortedIndexBy', - 'sortedIndexOf', - 'sortedLastIndex', - 'sortedLastIndexBy', - 'sortedLastIndexOf', - 'sortedUniq', - 'sortedUniqBy', - 'tail', - 'take', - 'takeRight', - 'takeRightWhile', - 'takeWhile', - 'union', - 'unionBy', - 'unionWith', - 'uniq', - 'uniqBy', - 'uniqWith', - 'unzip', - 'unzipWith', - 'without', - 'xor', - 'xorBy', - 'xorWith', - 'zip', - 'zipObject', - 'zipObjectDeep', - 'zipWith', - // Collection - 'countBy', - 'every', - 'filter', - 'find', - 'findLast', - 'flatMap', - 'flatMapDeep', - 'flatMapDepth', - 'groupBy', - 'includes', - 'invokeMap', - 'keyBy', - 'map', - 'orderBy', - 'partition', - 'reduce', - 'reduceRight', - 'reject', - 'sample', - 'sampleSize', - 'shuffle', - 'size', - 'some', - 'sortBy', - // Date - 'now', - // Function - 'flip', - 'negate', - 'overArgs', - 'partial', - 'partialRight', - 'rearg', - 'rest', - 'spread', - // Lang - 'castArray', - 'clone', - 'cloneDeep', - 'cloneDeepWith', - 'cloneDeep', - 'conformsTo', - 'eq', - 'gt', - 'gte', - 'isArguments', - 'isArray', - 'isArrayBuffer', - 'isArrayLike', - 'isArrayLikeObject', - 'isBoolean', - 'isBuffer', - 'isDate', - 'isElement', - 'isEmpty', - 'isEqual', - 'isEqualWith', - 'isError', - 'isFinite', - 'isFunction', - 'isInteger', - 'isLength', - 'isMap', - 'isMatch', - 'isMatchWith', - 'isNaN', - 'isNative', - 'isNil', - 'isNull', - 'isNumber', - 'isObject', - 'isObjectLike', - 'isPlainObject', - 'isRegExp', - 'isSafeInteger', - 'isSet', - 'isString', - 'isSymbol', - 'isTypedArray', - 'isUndefined', - 'isWeakMap', - 'isWeakSet', - 'lt', - 'lte', - 'toArray', - 'toFinite', - 'toInteger', - 'toLength', - 'toNumber', - 'toPlainObject', - 'toSafeInteger', - 'toString', +import { + chunk, + compact, + concat, + difference, + drop, + dropRight, + findIndex, + findLastIndex, + first, + flatten, + flattenDeep, + flattenDepth, + fromPairs, + head, + indexOf, + initial, + intersection, + intersectionBy, + intersectionWith, + join, + last, + lastIndexOf, + nth, + slice, + sortedIndex, + sortedIndexBy, + sortedIndexOf, + sortedLastIndex, + sortedLastIndexBy, + sortedLastIndexOf, + sortedUniq, + sortedUniqBy, + tail, + take, + takeRight, + takeRightWhile, + takeWhile, + union, + unionBy, + unionWith, + uniq, + uniqBy, + uniqWith, + unzip, + unzipWith, + without, + xor, + xorBy, + xorWith, + zip, + zipObject, + zipObjectDeep, + zipWith, + countBy, + every, + filter, + find, + findLast, + flatMap, + flatMapDeep, + flatMapDepth, + groupBy, + includes, + invokeMap, + keyBy, + map, + orderBy, + partition, + reduce, + reduceRight, + reject, + sample, + sampleSize, + shuffle, + size, + some, + sortBy, + now, + flip, + negate, + overArgs, + partial, + partialRight, + rearg, + rest, + spread, + castArray, + clone, + cloneDeepWith, + cloneDeep, + conformsTo, + eq, + gt, + gte, + isArguments, + isArray, + isArrayBuffer, + isArrayLike, + isArrayLikeObject, + isBoolean, + isBuffer, + isDate, + isElement, + isEmpty, + isEqual, + isEqualWith, + isError, + isFinite, + isFunction, + isInteger, + isLength, + isMap, + isMatch, + isMatchWith, + isNaN, + isNative, + isNil, + isNull, + isNumber, + isObject, + isObjectLike, + isPlainObject, + isRegExp, + isSafeInteger, + isSet, + isString, + isSymbol, + isTypedArray, + isUndefined, + isWeakMap, + isWeakSet, + lt, + lte, + toArray, + toFinite, + toInteger, + toLength, + toNumber, + toPlainObject, + toSafeInteger, + toString, // Math - 'add', - 'ceil', - 'divide', - 'floor', - 'max', - 'maxBy', - 'mean', - 'meanBy', - 'min', - 'minBy', - 'multiply', - 'round', - 'subtract', - 'sum', - 'sumBy', - // Number - 'clamp', - 'inRange', - 'random', - // Object - 'at', - 'entries', - 'entriesIn', - 'findKey', - 'findLastKey', - 'functions', - 'functionsIn', - 'get', - 'has', - 'hasIn', - 'invert', - 'invertBy', - 'invoke', - 'keys', - 'keysIn', - 'mapKeys', - 'mapValues', - 'omit', - 'omitBy', - 'pick', - 'pickBy', - 'result', - 'toPairs', - 'toPairsIn', - 'transform', - 'values', - 'valuesIn', - // String - 'camelCase', - 'capitalize', - 'deburr', - 'endsWith', - 'escape', - 'escapeRegExp', - 'kebabCase', - 'lowerCase', - 'lowerFirst', - 'pad', - 'padEnd', - 'padStart', - 'parseInt', - 'repeat', - 'replace', - 'snakeCase', - 'split', - 'startCase', - 'startsWith', - 'toLower', - 'toUpper', - 'trim', - 'trimEnd', - 'trimStart', - 'truncate', - 'unescape', - 'upperCase', - 'upperFirst', - 'words', - // Util - 'cond', - 'conforms', - 'constant', - 'defaultTo', - 'flow', - 'flowRight', - 'identity', - 'iteratee', - 'matches', - 'matchesProperty', - 'method', - 'methodOf', - 'nthArg', - 'over', - 'overEvery', - 'overSome', - 'property', - 'propertyOf', - 'range', - 'rangeRight', - 'stubArray', - 'stubFalse', - 'stubObject', - 'stubString', - 'stubTrue', - 'times', - 'toPath', - 'uniqueId', -]; + add, + ceil, + divide, + floor, + max, + maxBy, + mean, + meanBy, + min, + minBy, + multiply, + round, + subtract, + sum, + sumBy, + clamp, + inRange, + random, + at, + entries, + entriesIn, + findKey, + findLastKey, + functions, + functionsIn, + get, + has, + hasIn, + invert, + invertBy, + invoke, + keys, + keysIn, + mapKeys, + mapValues, + omit, + omitBy, + pick, + pickBy, + result, + toPairs, + toPairsIn, + transform, + values, + valuesIn, + camelCase, + capitalize, + deburr, + endsWith, + escape, + escapeRegExp, + kebabCase, + lowerCase, + lowerFirst, + pad, + padEnd, + padStart, + parseInt, + repeat, + replace, + snakeCase, + split, + startCase, + startsWith, + toLower, + toUpper, + trim, + trimEnd, + trimStart, + truncate, + unescape, + upperCase, + upperFirst, + words, + cond, + conforms, + constant, + defaultTo, + flow, + flowRight, + identity, + iteratee, + matches, + matchesProperty, + method, + methodOf, + nthArg, + over, + overEvery, + overSome, + property, + propertyOf, + range, + rangeRight, + stubArray, + stubFalse, + stubObject, + stubString, + stubTrue, + times, + toPath, + uniqueId +} from 'lodash'; +export const _: any = { + chunk, + compact, + concat, + difference, + drop, + dropRight, + findIndex, + findLastIndex, + first, + flatten, + flattenDeep, + flattenDepth, + fromPairs, + head, + indexOf, + initial, + intersection, + intersectionBy, + intersectionWith, + join, + last, + lastIndexOf, + nth, + slice, + sortedIndex, + sortedIndexBy, + sortedIndexOf, + sortedLastIndex, + sortedLastIndexBy, + sortedLastIndexOf, + sortedUniq, + sortedUniqBy, + tail, + take, + takeRight, + takeRightWhile, + takeWhile, + union, + unionBy, + unionWith, + uniq, + uniqBy, + uniqWith, + unzip, + unzipWith, + without, + xor, + xorBy, + xorWith, + zip, + zipObject, + zipObjectDeep, + zipWith, + countBy, + every, + filter, + find, + findLast, + flatMap, + flatMapDeep, + flatMapDepth, + groupBy, + includes, + invokeMap, + keyBy, + map, + orderBy, + partition, + reduce, + reduceRight, + reject, + sample, + sampleSize, + shuffle, + size, + some, + sortBy, + now, + flip, + negate, + overArgs, + partial, + partialRight, + rearg, + rest, + spread, + castArray, + clone, + cloneDeepWith, + cloneDeep, + conformsTo, + eq, + gt, + gte, + isArguments, + isArray, + isArrayBuffer, + isArrayLike, + isArrayLikeObject, + isBoolean, + isBuffer, + isDate, + isElement, + isEmpty, + isEqual, + isEqualWith, + isError, + isFinite, + isFunction, + isInteger, + isLength, + isMap, + isMatch, + isMatchWith, + isNaN, + isNative, + isNil, + isNull, + isNumber, + isObject, + isObjectLike, + isPlainObject, + isRegExp, + isSafeInteger, + isSet, + isString, + isSymbol, + isTypedArray, + isUndefined, + isWeakMap, + isWeakSet, + lt, + lte, + toArray, + toFinite, + toInteger, + toLength, + toNumber, + toPlainObject, + toSafeInteger, + toString, + add, + ceil, + divide, + floor, + max, + maxBy, + mean, + meanBy, + min, + minBy, + multiply, + round, + subtract, + sum, + sumBy, + clamp, + inRange, + random, + at, + entries, + entriesIn, + findKey, + findLastKey, + functions, + functionsIn, + get, + has, + hasIn, + invert, + invertBy, + invoke, + keys, + keysIn, + mapKeys, + mapValues, + omit, + omitBy, + pick, + pickBy, + result, + toPairs, + toPairsIn, + transform, + values, + valuesIn, + camelCase, + capitalize, + deburr, + endsWith, + escape, + escapeRegExp, + kebabCase, + lowerCase, + lowerFirst, + pad, + padEnd, + padStart, + parseInt, + repeat, + replace, + snakeCase, + split, + startCase, + startsWith, + toLower, + toUpper, + trim, + trimEnd, + trimStart, + truncate, + unescape, + upperCase, + upperFirst, + words, + cond, + conforms, + constant, + defaultTo, + flow, + flowRight, + identity, + iteratee, + matches, + matchesProperty, + method, + methodOf, + nthArg, + over, + overEvery, + overSome, + property, + propertyOf, + range, + rangeRight, + stubArray, + stubFalse, + stubObject, + stubString, + stubTrue, + times, + toPath, + uniqueId +}; + diff --git a/src/process/__tests__/fixtures/util.ts b/src/process/__tests__/fixtures/util.ts index be91b99b..958a145b 100644 --- a/src/process/__tests__/fixtures/util.ts +++ b/src/process/__tests__/fixtures/util.ts @@ -1,4 +1,4 @@ -import get from 'lodash/get'; +import { get } from 'lodash'; import { ProcessorContext, ProcessorScope, Component } from 'types'; export const generateProcessorContext = (component: Component, data: any): ProcessorContext => { return { diff --git a/src/process/calculation/index.ts b/src/process/calculation/index.ts index 6e053628..4bc8dd47 100644 --- a/src/process/calculation/index.ts +++ b/src/process/calculation/index.ts @@ -1,6 +1,6 @@ import JSONLogic from 'modules/jsonlogic'; import { ProcessorFn, ProcessorFnSync, CalculationScope, CalculationContext, ProcessorInfo, FilterScope } from 'types'; -import _set from 'lodash/set'; +import { set } from 'lodash'; const Evaluator = JSONLogic.evaluator; export const shouldCalculate = (context: CalculationContext): boolean => { @@ -30,7 +30,7 @@ export const calculateProcessSync: ProcessorFnSync = (context: path, value: newValue }); - _set(data, path, newValue); + set(data, path, newValue); } return; }; diff --git a/src/process/clearHidden.ts b/src/process/clearHidden.ts index f0c17bab..e2e12598 100644 --- a/src/process/clearHidden.ts +++ b/src/process/clearHidden.ts @@ -1,4 +1,4 @@ -import unset from 'lodash/unset'; +import { unset } from 'lodash'; import { ProcessorScope, ProcessorContext, diff --git a/src/process/conditions/index.ts b/src/process/conditions/index.ts index 673477cb..a3d83d7b 100644 --- a/src/process/conditions/index.ts +++ b/src/process/conditions/index.ts @@ -1,6 +1,6 @@ import { ProcessorFn, ProcessorFnSync, ConditionsScope, ProcessorInfo, ConditionsContext, SimpleConditional, JSONConditional, LegacyConditional, SimpleConditionalConditions, Component, NestedComponent, FilterScope } from 'types'; import { Utils } from 'utils'; -import set from 'lodash/set'; +import { set } from 'lodash'; import { componentInfo, getComponentKey, getComponentPath } from 'utils/formUtil'; import { checkCustomConditional, diff --git a/src/process/defaultValue/index.ts b/src/process/defaultValue/index.ts index dc72fb93..f23e5f84 100644 --- a/src/process/defaultValue/index.ts +++ b/src/process/defaultValue/index.ts @@ -1,7 +1,6 @@ import JSONLogic from 'modules/jsonlogic'; import { ProcessorFn, ProcessorFnSync, ConditionsScope, ProcessorInfo, DefaultValueContext, FilterScope } from 'types'; -import has from 'lodash/has'; -import set from 'lodash/set'; +import { set, has } from 'lodash'; import { getComponentKey } from 'utils/formUtil'; const Evaluator = JSONLogic.evaluator; diff --git a/src/process/fetch/index.ts b/src/process/fetch/index.ts index 576cbe88..5316d51a 100644 --- a/src/process/fetch/index.ts +++ b/src/process/fetch/index.ts @@ -1,6 +1,5 @@ import { ProcessorFn, ProcessorInfo, FetchContext, FetchScope, FetchFn, DataSourceComponent, FilterContext } from 'types'; -import get from 'lodash/get'; -import set from 'lodash/set'; +import { get, set } from 'lodash'; import { Evaluator } from 'utils'; import { getComponentKey } from 'utils/formUtil'; diff --git a/src/process/filter/index.ts b/src/process/filter/index.ts index 60b136d5..25441462 100644 --- a/src/process/filter/index.ts +++ b/src/process/filter/index.ts @@ -1,5 +1,5 @@ import { FilterContext, FilterScope, ProcessorFn, ProcessorFnSync, ProcessorInfo } from "types"; -import set from 'lodash/set'; +import { set } from 'lodash'; import { Utils } from "utils"; import { get, isObject } from "lodash"; import { getComponentAbsolutePath } from "utils/formUtil"; diff --git a/src/process/normalize/index.ts b/src/process/normalize/index.ts index 8cc6127e..529b62bf 100644 --- a/src/process/normalize/index.ts +++ b/src/process/normalize/index.ts @@ -1,9 +1,4 @@ -import get from 'lodash/get'; -import set from 'lodash/set'; -import isString from 'lodash/isString'; -import toString from 'lodash/toString'; -import isNil from 'lodash/isNil'; -import isObject from 'lodash/isObject'; +import { get, set, isString, toString, isNil, isObject } from 'lodash'; import dayjs from 'dayjs'; import customParseFormat from 'dayjs/plugin/customParseFormat'; import { diff --git a/src/process/populate/index.ts b/src/process/populate/index.ts index 46e2a51b..ece6c9e3 100644 --- a/src/process/populate/index.ts +++ b/src/process/populate/index.ts @@ -1,5 +1,4 @@ -import set from 'lodash/set'; -import get from 'lodash/get'; +import { get, set } from 'lodash'; import { PopulateContext, PopulateScope, ProcessorFnSync } from 'types'; import { componentPath, getContextualRowPath, getModelType } from 'utils/formUtil'; diff --git a/src/process/validation/__tests__/Validator.test.ts b/src/process/validation/__tests__/Validator.test.ts index 23751f25..0f9331ff 100644 --- a/src/process/validation/__tests__/Validator.test.ts +++ b/src/process/validation/__tests__/Validator.test.ts @@ -1,4 +1,4 @@ -import get from 'lodash/get'; +import { get } from 'lodash'; import { expect } from 'chai'; import { validateProcess } from '../index'; import { rules } from "../rules"; diff --git a/src/process/validation/__tests__/util.test.ts b/src/process/validation/__tests__/util.test.ts index 7847ec14..240fc6a0 100644 --- a/src/process/validation/__tests__/util.test.ts +++ b/src/process/validation/__tests__/util.test.ts @@ -1,4 +1,4 @@ -import get from 'lodash/get'; +import { get } from 'lodash'; import { expect } from 'chai'; import { interpolateErrors } from '../util'; import { validateProcess } from '../'; diff --git a/src/process/validation/rules/validateAvailableItems.ts b/src/process/validation/rules/validateAvailableItems.ts index 069311e4..3b146c86 100644 --- a/src/process/validation/rules/validateAvailableItems.ts +++ b/src/process/validation/rules/validateAvailableItems.ts @@ -1,4 +1,4 @@ -import isEmpty from 'lodash/isEmpty'; +import { isEmpty } from 'lodash'; import { FieldError, ProcessorError } from 'error'; import { Evaluator } from 'utils'; import { RadioComponent, SelectComponent, RuleFn, RuleFnSync, ValidationContext } from 'types'; diff --git a/src/process/validation/rules/validateMask.ts b/src/process/validation/rules/validateMask.ts index eeaf8c21..a30c4ff3 100644 --- a/src/process/validation/rules/validateMask.ts +++ b/src/process/validation/rules/validateMask.ts @@ -1,8 +1,8 @@ -import _, { isEmpty } from 'lodash'; - +import { isEmpty } from 'lodash'; import { FieldError } from 'error'; import { TextFieldComponent, DataObject, RuleFn, RuleFnSync, ValidationContext } from 'types'; import { ProcessorInfo } from 'types/process/ProcessorInfo'; +import InputMask from 'inputmask'; const isMaskType = (obj: any): obj is DataObject & { maskName: string; value: string } => { return ( @@ -134,15 +134,7 @@ export const validateMaskSync: RuleFnSync = (context: ValidationContext) => { if (!inputMask) { return null; } - if ( - value && - inputMask && - typeof value === 'string' && - component.type === 'textfield' && - typeof window !== 'undefined' && - typeof document !== 'undefined' - ) { - const InputMask = require('inputmask'); + if (value && inputMask && typeof value === 'string' && component.type === 'textfield') { return InputMask.isValid(value, {mask: inputMask.toString()}) ? null : new FieldError('mask', context); } let inputMaskArr = getInputMask(inputMask); diff --git a/src/process/validation/rules/validateMaximumWords.ts b/src/process/validation/rules/validateMaximumWords.ts index 0aeeabbf..ef152b86 100644 --- a/src/process/validation/rules/validateMaximumWords.ts +++ b/src/process/validation/rules/validateMaximumWords.ts @@ -1,5 +1,3 @@ -import _, { get } from 'lodash'; - import { FieldError } from 'error'; import { TextFieldComponent, RuleFn, RuleFnSync, ValidationContext } from 'types'; import { ProcessorInfo } from 'types/process/ProcessorInfo'; diff --git a/src/types/Component.ts b/src/types/Component.ts index 63ebfebe..25aa84e7 100644 --- a/src/types/Component.ts +++ b/src/types/Component.ts @@ -9,6 +9,7 @@ export type Component = | ButtonComponent | CheckboxComponent | ColumnsComponent + | TableComponent | ContentComponent | NumberComponent | NestedArrayComponent @@ -35,7 +36,6 @@ export type Component = | SelectBoxesComponent | SignatureComponent | SurveyComponent - | RowComponent | TabsComponent | TagsComponent | TextAreaComponent @@ -127,6 +127,19 @@ export type ColumnsComponent = NestedComponent & { autoAdjust: boolean; }; +export type TableComponent = NestedComponent & { + rows: Component[][]; + numRows: number; + numCols: number; + header: []; + caption: string; + cloneRows: boolean; + striped: boolean; + bordered: boolean; + hover: boolean; + condensed: boolean; +}; + export type ContentComponent = BaseComponent & { html: string; }; @@ -474,21 +487,6 @@ export type SurveyComponent = BaseComponent & { }[]; }; -export type RowComponent = NestedComponent & { - numRows: number; - numCols: number; - rows: { - components: []; - }[][]; - header: []; // TODO: not sure what this is - caption: string; - cloneRows: boolean; - striped: boolean; - bordered: boolean; - hover: boolean; - condensed: boolean; -}; - export type TabsComponent = NestedComponent & { components: { label: string; diff --git a/src/utils/formUtil.ts b/src/utils/formUtil.ts index 7ccf4eac..7591091b 100644 --- a/src/utils/formUtil.ts +++ b/src/utils/formUtil.ts @@ -31,6 +31,11 @@ import { Component, ComponentDataCallback, DataObject, + ColumnsComponent, + TableComponent, + LegacyConditional, + JSONConditional, + SimpleConditional, } from "types"; import { Evaluator } from "./Evaluator"; @@ -599,11 +604,11 @@ export function getComponentActualValue(component: Component, compPath: string, * @returns {Boolean} * Whether or not the component is a layout component. */ -export function isLayoutComponent(component: any) { +export function isLayoutComponent(component: Component) { return Boolean( - (component.columns && Array.isArray(component.columns)) || - (component.rows && Array.isArray(component.rows)) || - (component.components && Array.isArray(component.components)) + ((component as ColumnsComponent).columns && Array.isArray((component as ColumnsComponent).columns)) || + ((component as TableComponent).rows && Array.isArray((component as TableComponent).rows)) || + ((component as HasChildComponents).components && Array.isArray((component as HasChildComponents).components)) ); } @@ -614,7 +619,7 @@ export function isLayoutComponent(component: any) { * @param query * @return {boolean} */ -export function matchComponent(component: any, query: any) { +export function matchComponent(component: Component, query: any) { if (isString(query)) { return (component.key === query) || (component.path === query); } @@ -633,17 +638,13 @@ export function matchComponent(component: any, query: any) { /** * Get a component by its key * - * @param {Object} components - * The components to iterate. - * @param {String|Object} key - * The key of the component to get, or a query of the component to search. - * - * @returns {Object} - * The component that matches the given key, or undefined if not found. + * @param {Object} components - The components to iterate. + * @param {String|Object} key - The key of the component to get, or a query of the component to search. + * @returns {Component} - The component that matches the given key, or undefined if not found. */ -export function getComponent(components: any, key: any, includeAll: any) { +export function getComponent(components: Component[], key: any, includeAll: any): (Component | undefined) { let result; - eachComponent(components, (component: any, path: any) => { + eachComponent(components, (component: Component, path: any) => { if ((path === key) || (component.path === key)) { result = component; return true; @@ -659,8 +660,8 @@ export function getComponent(components: any, key: any, includeAll: any) { * @param query * @return {*} */ -export function searchComponents(components: any, query: any) { - const results: any[] = []; +export function searchComponents(components: Component[], query: any): Component[] { + const results: Component[] = []; eachComponent(components, (component: any) => { if (matchComponent(component, query)) { results.push(component); @@ -676,7 +677,7 @@ export function searchComponents(components: any, query: any) { * @param components * @param path */ -export function removeComponent(components: any, path: string) { +export function removeComponent(components: Component[], path: string) { // Using _.unset() leave a null value. Use Array splice instead. // @ts-ignore var index = path.pop(); @@ -693,13 +694,13 @@ export function removeComponent(components: any, path: string) { * * @returns {boolean} - TRUE - This component has a conditional, FALSE - No conditional provided. */ -export function hasCondition(component: any) { +export function hasCondition(component: Component) { return Boolean( (component.customConditional) || (component.conditional && ( - component.conditional.when || - component.conditional.json || - component.conditional.condition + (component.conditional as LegacyConditional).when || + (component.conditional as JSONConditional).json || + (component.conditional as SimpleConditional).conjunction )) ); } diff --git a/src/utils/index.ts b/src/utils/index.ts index 109e8547..f7ef4494 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -9,4 +9,3 @@ export * from './date'; export * from './mask'; export * from './fastCloneDeep'; export * from './Database'; -export * from './mockBrowserContext'; diff --git a/src/utils/mockBrowserContext.ts b/src/utils/mockBrowserContext.ts deleted file mode 100644 index 9c22f860..00000000 --- a/src/utils/mockBrowserContext.ts +++ /dev/null @@ -1,25 +0,0 @@ -declare const globalThis: any; -export default function mockBrowserContext() { - if (!globalThis) return; - if (!globalThis.Text) globalThis.Text = class {}; - if (!globalThis.HTMLElement) globalThis.HTMLElement = class {}; - if (!globalThis.HTMLInputElement) globalThis.HTMLInputElement = class {}; - if (!globalThis.HTMLTextAreaElement) globalThis.HTMLTextAreaElement = class {}; - if (!globalThis.navigator) globalThis.navigator = {userAgent: ''}; - if (!globalThis.document) globalThis.document = { - createElement: () => ({}), - cookie: '', - getElementsByTagName: () => [], - documentElement: { - style: [], - firstElementChild: {appendChild: () => {}} - } - }; - if (!globalThis.window) globalThis.window = {addEventListener: () => {}, Event: function() {}, navigator: globalThis.navigator}; - if (!globalThis.btoa) globalThis.btoa = (str: any) => { - return (str instanceof Buffer) ? - str.toString('base64') : - Buffer.from(str.toString(), 'binary').toString('base64'); - } - if (!globalThis.self) globalThis.self = global; -} \ No newline at end of file From 08af60812274d38834bfeca8689ddaa2f86916b7 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Tue, 7 May 2024 16:02:09 -0500 Subject: [PATCH 10/19] Updated versions. --- package.json | 12 +- yarn.lock | 2322 +++++++++++--------------------------------------- 2 files changed, 497 insertions(+), 1837 deletions(-) diff --git a/package.json b/package.json index 5d36fc54..659fc140 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.7", + "version": "2.1.0-dev.tt.8", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { @@ -62,20 +62,20 @@ "@types/power-assert": "^1.5.11", "@types/sinon": "^17.0.3", "@types/uuid": "^9.0.8", - "chai": "^4.3.10", + "chai": "4.4.1", "chance": "^1.1.8", "fetch-mock": "^9.11.0", - "gulp": "^4.0.2", + "gulp": "^5.0.0", "gulp-insert": "^0.5.0", "gulp-rename": "^2.0.0", "gulp-template": "^5.0.0", - "jsdom": "^22.1.0", + "jsdom": "22.1.0", "jsdom-global": "^3.0.2", "mocha": "^10.4.0", "mocha-jsdom": "^2.0.0", "mock-local-storage": "^1.1.20", "power-assert": "^1.6.1", - "sinon": "^17.0.1", + "sinon": "^17.0.2", "ts-loader": "^9.5.0", "ts-node": "^10.5.0", "tsc-alias": "^1.8.8", @@ -95,7 +95,7 @@ "eventemitter3": "^5.0.0", "fast-json-patch": "^3.1.1", "fetch-ponyfill": "^7.1.0", - "inputmask": "4.0.9", + "inputmask": "5.0.8", "json-logic-js": "^2.0.2", "lodash": "^4.17.21", "moment": "^2.29.4" diff --git a/yarn.lock b/yarn.lock index d928b542..05480c0f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -210,6 +210,18 @@ resolved "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz#1d572bfbbe14b7704e0ba0f39b74815b84870d70" integrity sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw== +"@gulpjs/messages@^1.1.0": + version "1.1.0" + resolved "https://registry.npmjs.org/@gulpjs/messages/-/messages-1.1.0.tgz#94e70978ff676ade541faab459c37ae0c7095e5a" + integrity sha512-Ys9sazDatyTgZVb4xPlDufLweJ/Os2uHWOv+Caxvy2O85JcnT4M3vc73bi8pdLWlv3fdWQz3pdI9tVwo8rQQSg== + +"@gulpjs/to-absolute-glob@^4.0.0": + version "4.0.0" + resolved "https://registry.npmjs.org/@gulpjs/to-absolute-glob/-/to-absolute-glob-4.0.0.tgz#1fc2460d3953e1d9b9f2dfdb4bcc99da4710c021" + integrity sha512-kjotm7XJrJ6v+7knhPaRgaT6q8F8K2jiafwYdNHLzmV0uGLuZY43FK6smNSHUPrhq5kX2slCUy+RGG/xGqmIKA== + dependencies: + is-negated-glob "^1.0.0" + "@jridgewell/gen-mapping@^0.1.0": version "0.1.1" resolved "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz" @@ -333,12 +345,12 @@ dependencies: type-detect "4.0.8" -"@sinonjs/fake-timers@^10.0.2": - version "10.2.0" - resolved "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.2.0.tgz#b3e322a34c5f26e3184e7f6115695f299c1b1194" - integrity sha512-OPwQlEdg40HAj5KNF8WW6q2KG4Z+cBCZb3m4ninfTZKaBmbIJodviQsDBoYMPHkOyJJMHnOJo5j2+LKDOhOACg== +"@sinonjs/commons@^3.0.1": + version "3.0.1" + resolved "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz#1029357e44ca901a615585f6d27738dbc89084cd" + integrity sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ== dependencies: - "@sinonjs/commons" "^3.0.0" + type-detect "4.0.8" "@sinonjs/fake-timers@^11.2.2": version "11.2.2" @@ -356,7 +368,7 @@ lodash.get "^4.4.2" type-detect "^4.0.8" -"@sinonjs/text-encoding@^0.7.1": +"@sinonjs/text-encoding@^0.7.2": version "0.7.2" resolved "https://registry.npmjs.org/@sinonjs/text-encoding/-/text-encoding-0.7.2.tgz#5981a8db18b56ba38ef0efb7d995b12aa7b51918" integrity sha512-sXXKG+uL9IrKqViTtao2Ws6dy0znu9sOaP1di/jKGW1M6VssO8vlpXCQcpZ+jisQ1tTFAC5Jo/EOzFbggBagFQ== @@ -386,10 +398,10 @@ resolved "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9" integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA== -"@types/chai@^4.3.14": - version "4.3.14" - resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.14.tgz#ae3055ea2be43c91c9fd700a36d67820026d96e6" - integrity sha512-Wj71sXE4Q4AkGdG9Tvq1u/fquNz9EdG4LIJMwVVII7ashjD/8cf8fyIfJAjRr6YcsXnSE8cOGQPq1gqeR8z+3w== +"@types/chai@^4.3.16": + version "4.3.16" + resolved "https://registry.npmjs.org/@types/chai/-/chai-4.3.16.tgz#b1572967f0b8b60bf3f87fe1d854a5604ea70c82" + integrity sha512-PatH4iOdyh3MyWtmHVFXLWCCIhUbopaltqddG9BzB+gMIzee2MJrvd+jouii9Z3wzQJruGWAm7WOMjgfG8hQlQ== "@types/chance@^1.1.6": version "1.1.6" @@ -483,10 +495,10 @@ resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz" integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== -"@types/lodash@^4.17.0": - version "4.17.0" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.0.tgz#d774355e41f372d5350a4d0714abb48194a489c3" - integrity sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA== +"@types/lodash@^4.17.1": + version "4.17.1" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.1.tgz#0fabfcf2f2127ef73b119d98452bd317c4a17eb8" + integrity sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q== "@types/mocha@^10.0.4": version "10.0.6" @@ -681,7 +693,7 @@ abab@^2.0.0, abab@^2.0.6: version "2.0.6" - resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz" + resolved "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== acorn-es7-plugin@^1.0.12: @@ -759,13 +771,6 @@ ansi-colors@4.1.1: resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz" integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== -ansi-colors@^1.0.1: - version "1.1.0" - resolved "https://registry.npmjs.org/ansi-colors/-/ansi-colors-1.1.0.tgz" - integrity sha512-SFKX67auSNoVR38N3L+nvsPjOE0bybKTYbkf5tRvushrAPQ9V75huw0ZxBkKVeRU9kqH3d6HA4xTckbwZ4ixmA== - dependencies: - ansi-wrap "^0.1.0" - ansi-cyan@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/ansi-cyan/-/ansi-cyan-0.1.1.tgz#538ae528af8982f28ae30d86f2f17456d2609873" @@ -773,13 +778,6 @@ ansi-cyan@^0.1.1: dependencies: ansi-wrap "0.1.0" -ansi-gray@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz" - integrity sha512-HrgGIZUl8h2EHuZaU9hTR/cU5nhKxpVE1V6kdGsQ8e4zirElJ5fvtfc8N7Q1oq1aatO275i8pUFUCpNWCAnVWw== - dependencies: - ansi-wrap "0.1.0" - ansi-red@^0.1.1: version "0.1.1" resolved "https://registry.npmjs.org/ansi-red/-/ansi-red-0.1.1.tgz#8c638f9d1080800a353c9c28c8a81ca4705d946c" @@ -787,11 +785,6 @@ ansi-red@^0.1.1: dependencies: ansi-wrap "0.1.0" -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz" - integrity sha512-TIGnTpdo+E3+pCyAluZvtED5p5wCqLdezCyhPZzKPcxvFplEt4i+W7OONCKgeZFT3+y5NZZfOOS/Bdcanm1MYA== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz" @@ -816,20 +809,12 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: dependencies: color-convert "^2.0.1" -ansi-wrap@0.1.0, ansi-wrap@^0.1.0: +ansi-wrap@0.1.0: version "0.1.0" resolved "https://registry.npmjs.org/ansi-wrap/-/ansi-wrap-0.1.0.tgz" integrity sha512-ZyznvL8k/FZeQHr2T6LzcJ/+vBApDnMNZvfVFy3At0knswWd6rJ3/0Hhmpu8oqa6C92npmozs890sX9Dl6q+Qw== -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -anymatch@~3.1.2: +anymatch@^3.1.3, anymatch@~3.1.2: version "3.1.3" resolved "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== @@ -837,18 +822,6 @@ anymatch@~3.1.2: normalize-path "^3.0.0" picomatch "^2.0.4" -append-buffer@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/append-buffer/-/append-buffer-1.0.2.tgz" - integrity sha512-WLbYiXzD3y/ATLZFufV/rZvWdZOs+Z/+5v1rBZ463Jn398pa6kcde27cvozYnBoxXblGZTFfoPpsaEw0orU5BA== - dependencies: - buffer-equal "^1.0.0" - -archy@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/archy/-/archy-1.0.0.tgz" - integrity sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw== - arg@^4.1.0: version "4.1.3" resolved "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" @@ -867,41 +840,17 @@ arr-diff@^1.0.1: arr-flatten "^1.0.1" array-slice "^0.2.3" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -arr-filter@^1.1.1: - version "1.1.2" - resolved "https://registry.npmjs.org/arr-filter/-/arr-filter-1.1.2.tgz" - integrity sha512-A2BETWCqhsecSvCkWAeVBFLH6sXEUGASuzkpjL3GR1SlL/PWL6M3J8EAAld2Uubmh39tvkJTqC9LeLHCUKmFXA== - dependencies: - make-iterator "^1.0.0" - -arr-flatten@^1.0.1, arr-flatten@^1.1.0: +arr-flatten@^1.0.1: version "1.1.0" resolved "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz" integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== -arr-map@^2.0.0, arr-map@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/arr-map/-/arr-map-2.0.2.tgz" - integrity sha512-tVqVTHt+Q5Xb09qRkbu+DidW1yYzz5izWS2Xm2yFm7qJnmUfz4HPzNxbHkdRJbz2lrqI7S+z17xNYdFcBBO8Hw== - dependencies: - make-iterator "^1.0.0" - arr-union@^2.0.1: version "2.1.0" resolved "https://registry.npmjs.org/arr-union/-/arr-union-2.1.0.tgz#20f9eab5ec70f5c7d215b1077b1c39161d292c7d" integrity sha512-t5db90jq+qdgk8aFnxEkjqta0B/GHrM1pxzuuZz2zWsOXc5nKu3t+76s/PQBA8FTcM/ipspIH9jWG4OxCBc2eA== -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - -array-each@^1.0.0, array-each@^1.0.1: +array-each@^1.0.1: version "1.0.1" resolved "https://registry.npmjs.org/array-each/-/array-each-1.0.1.tgz" integrity sha512-zHjL5SZa68hkKHBFBK6DJCTtr9sfTCPCaph/L7tMSLcTFgy+zX7E+6q5UArbtOtMBCtxdICpfTCspRse+ywyXA== @@ -916,21 +865,6 @@ array-filter@^1.0.0: resolved "https://registry.npmjs.org/array-filter/-/array-filter-1.0.0.tgz" integrity sha512-Ene1hbrinPZ1qPoZp7NSx4jQnh4nr7MtY78pHNb+yr8yHbxmTS7ChGW0a55JKA7TkRDeoQxK4GcJaCvBYplSKA== -array-initial@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/array-initial/-/array-initial-1.1.0.tgz" - integrity sha512-BC4Yl89vneCYfpLrs5JU2aAu9/a+xWbeKhvISg9PT7eWFB9UlRvI+rKEtk6mgxWr3dSkk9gQ8hCrdqt06NXPdw== - dependencies: - array-slice "^1.0.0" - is-number "^4.0.0" - -array-last@^1.1.1: - version "1.3.0" - resolved "https://registry.npmjs.org/array-last/-/array-last-1.3.0.tgz" - integrity sha512-eOCut5rXlI6aCOS7Z7kCplKRKyiFQ6dHFBem4PwlwKeNFk2/XxTrhRh5T9PyaEWGy/NHTZWbY+nsZlNFJu9rYg== - dependencies: - is-number "^4.0.0" - array-slice@^0.2.3: version "0.2.3" resolved "https://registry.npmjs.org/array-slice/-/array-slice-0.2.3.tgz#dd3cfb80ed7973a75117cdac69b0b99ec86186f5" @@ -941,25 +875,11 @@ array-slice@^1.0.0: resolved "https://registry.npmjs.org/array-slice/-/array-slice-1.1.0.tgz" integrity sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w== -array-sort@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/array-sort/-/array-sort-1.0.0.tgz" - integrity sha512-ihLeJkonmdiAsD7vpgN3CRcx2J2S0TiYW+IS/5zHBI7mKUq3ySvBdzzBfD236ubDBQFiiyG3SWCPc+msQ9KoYg== - dependencies: - default-compare "^1.0.0" - get-value "^2.0.6" - kind-of "^5.0.2" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== - asn1@~0.2.3: version "0.2.6" resolved "https://registry.npmjs.org/asn1/-/asn1-0.2.6.tgz" @@ -974,51 +894,35 @@ assert-plus@1.0.0, assert-plus@^1.0.0: assertion-error@^1.1.0: version "1.1.0" - resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz" + resolved "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - -async-done@^1.2.0, async-done@^1.2.2: - version "1.3.2" - resolved "https://registry.npmjs.org/async-done/-/async-done-1.3.2.tgz" - integrity sha512-uYkTP8dw2og1tu1nmza1n1CMW0qb8gWWlwqMmLb7MhBVs4BXrFziT6HXUd+/RlRA/i4H9AkofYloUbs1fwMqlw== +async-done@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/async-done/-/async-done-2.0.0.tgz#f1ec5df738c6383a52b0a30d0902fd897329c15a" + integrity sha512-j0s3bzYq9yKIVLKGE/tWlCpa3PfFLcrDZLTSVdnnCTGagXuXBJO4SsY9Xdk/fQBirCkH4evW5xOeJXqlAQFdsw== dependencies: - end-of-stream "^1.1.0" - once "^1.3.2" - process-nextick-args "^2.0.0" - stream-exhaust "^1.0.1" - -async-each@^1.0.1: - version "1.0.6" - resolved "https://registry.npmjs.org/async-each/-/async-each-1.0.6.tgz" - integrity sha512-c646jH1avxr+aVpndVMeAfYw7wAa6idufrlN3LPA4PmKS0QEGp6PIC9nwz0WQkkvBGAMEki3pFdtxaF39J9vvg== + end-of-stream "^1.4.4" + once "^1.4.0" + stream-exhaust "^1.0.2" async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz" integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== -async-settle@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz" - integrity sha512-VPXfB4Vk49z1LHHodrEQ6Xf7W4gg1w0dAPROHngx7qgDjqmIQ+fXmwgGXTW/ITLai0YLSvWepJOP9EVpMnEAcw== +async-settle@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/async-settle/-/async-settle-2.0.0.tgz#c695ad14e070f6a755d019d32d6eb38029020287" + integrity sha512-Obu/KE8FurfQRN6ODdHN9LuXqwC+JFIM9NRyZqJJ4ZfLJmIYN9Rg0/kb+wF70VV5+fJusTMQlJ1t5rF7J/ETdg== dependencies: - async-done "^1.2.2" + async-done "^2.0.0" asynckit@^0.4.0: version "0.4.0" resolved "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - aws-sign2@~0.7.0: version "0.7.0" resolved "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz" @@ -1029,38 +933,29 @@ aws4@^1.8.0: resolved "https://registry.npmjs.org/aws4/-/aws4-1.12.0.tgz" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -bach@^1.0.0: - version "1.2.0" - resolved "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz" - integrity sha512-bZOOfCb3gXBXbTFXq3OZtGR88LwGeJvzu6szttaIzymOTS4ZttBNOWSv7aLZja2EMycKtRYV0Oa8SNKH/zkxvg== +bach@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/bach/-/bach-2.0.1.tgz#45a3a3cbf7dbba3132087185c60357482b988972" + integrity sha512-A7bvGMGiTOxGMpNupYl9HQTf0FFDNF4VCmks4PJpFyN1AX2pdKuxuwdvUz2Hu388wcgp+OvGFNsumBfFNkR7eg== dependencies: - arr-filter "^1.1.1" - arr-flatten "^1.0.1" - arr-map "^2.0.0" - array-each "^1.0.0" - array-initial "^1.0.0" - array-last "^1.1.1" - async-done "^1.2.2" - async-settle "^1.0.0" - now-and-later "^2.0.0" + async-done "^2.0.0" + async-settle "^2.0.0" + now-and-later "^3.0.0" balanced-match@^1.0.0: version "1.0.2" resolved "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.npmjs.org/base/-/base-0.11.2.tgz" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" +bare-events@^2.2.0: + version "2.2.2" + resolved "https://registry.npmjs.org/bare-events/-/bare-events-2.2.2.tgz#a98a41841f98b2efe7ecc5c5468814469b018078" + integrity sha512-h7z00dWdG0PYOQEvChhOSWvOfkIKsdZGkWr083FgN/HyoQuebSew/cgirYqh9SCuy/hRvxc5Vy6Fw8xAmYHLkQ== + +base64-js@^1.3.1: + version "1.5.1" + resolved "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== bcrypt-pbkdf@^1.0.0: version "1.0.2" @@ -1069,30 +964,19 @@ bcrypt-pbkdf@^1.0.0: dependencies: tweetnacl "^0.14.3" -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - binary-extensions@^2.0.0: version "2.2.0" resolved "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== +bl@^5.0.0: + version "5.1.0" + resolved "https://registry.npmjs.org/bl/-/bl-5.1.0.tgz#183715f678c7188ecef9fe475d90209400624273" + integrity sha512-tv1ZJHLfTDnXE6tMHv73YgSJaWR2AFuPwMntBe7XL/GBFHnT0CLnsHMogfk5+GzCDC5ZWarSCYaIGATZt9dNsQ== dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" + buffer "^6.0.3" + inherits "^2.0.4" + readable-stream "^3.4.0" brace-expansion@^2.0.1: version "2.0.1" @@ -1101,22 +985,6 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -1159,49 +1027,24 @@ browserslist@^4.21.3: node-releases "^2.0.8" update-browserslist-db "^1.0.10" -buffer-equal@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/buffer-equal/-/buffer-equal-1.0.1.tgz" - integrity sha512-QoV3ptgEaQpvVwbXdSO39iqPQTCxSF7A5U99AxbHYqUdCizL/lH2Z0A2y6nbZucxMEOtNyZfG2s6gsVugGpKkg== - buffer-from@^1.0.0: version "1.1.2" resolved "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== +buffer@^6.0.3: + version "6.0.3" + resolved "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" + base64-js "^1.3.1" + ieee754 "^1.2.1" call-signature@0.0.2: version "0.0.2" resolved "https://registry.npmjs.org/call-signature/-/call-signature-0.0.2.tgz" integrity sha512-qvYvkAVcoae0obt8OsZn0VEBHeEpvYIZDy1gGYtZDJG0fHawew+Mi0dBjieFz8F8dzQ2Kr19+nsDm+T5XFVs+Q== -camelcase@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz" - integrity sha512-4nhGqUkc4BqbBBB4Q6zLuD7lzzrHYrjKGeYaEji/3tFR5VdJu9v+LilhGIVe8wxEJPPOeWo7eg8dwY13TZ1BNg== - camelcase@^6.0.0: version "6.3.0" resolved "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz" @@ -1222,10 +1065,10 @@ caseless@~0.12.0: resolved "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz" integrity sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw== -chai@^4.3.10: - version "4.3.10" - resolved "https://registry.npmjs.org/chai/-/chai-4.3.10.tgz#d784cec635e3b7e2ffb66446a63b4e33bd390384" - integrity sha512-0UXG04VuVbruMUYbJ6JctvH0YnC/4q3/AkT18q4NaITo91CUm0liMS9VqzT9vZhVQ/1eqPanMWjBM+Juhfb/9g== +chai@4.4.1: + version "4.4.1" + resolved "https://registry.npmjs.org/chai/-/chai-4.4.1.tgz#3603fa6eba35425b0f2ac91a009fe924106e50d1" + integrity sha512-13sOfMv2+DWduEU+/xbun3LScLoqN17nBeTLUsmDfKdoiC1fr0n9PU4guu4AhRcOVFk/sW8LyZWHuhWtQZiF+g== dependencies: assertion-error "^1.1.0" check-error "^1.0.3" @@ -1244,7 +1087,7 @@ chalk@^2.0.0: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@^4.1.0: +chalk@^4.1.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1279,49 +1122,11 @@ chokidar@3.5.3, chokidar@^3.5.3: optionalDependencies: fsevents "~2.3.2" -chokidar@^2.0.0: - version "2.1.8" - resolved "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - chrome-trace-event@^1.0.2: version "1.0.3" resolved "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz#1015eced4741e15d06664a957dbbf50d041e26ac" integrity sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg== -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cliui@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz" - integrity sha512-0yayqDxWQbqk3ojkYqUKqaAQ6AfNKeKWRNA8kR0WXzAsdHpP4BIaOmMAG87JGuO6qcobyW4GjxHd9PmhEd+T9w== - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi "^2.0.0" - cliui@^7.0.2: version "7.0.4" resolved "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz" @@ -1331,11 +1136,6 @@ cliui@^7.0.2: strip-ansi "^6.0.0" wrap-ansi "^7.0.0" -clone-buffer@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz" - integrity sha512-KLLTJWrvwIP+OPfMn0x2PheDEP20RPUcGXj/ERegTgdmPEZylALQldygiqrPPu8P45uNuPs7ckmReLY6v/iA5g== - clone-deep@^4.0.1: version "4.0.1" resolved "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz#c19fd9bdbbf85942b4fd979c84dcf7d5f07c2387" @@ -1350,42 +1150,11 @@ clone-stats@^1.0.0: resolved "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz" integrity sha512-au6ydSpg6nsrigcZ4m8Bc9hxjeW+GJ8xh5G3BJCMt4WXe1H10UNaVOamqQTmrx1kjVuxAHIQSNU6hY4Nsn9/ag== -clone@^2.1.1: +clone@^2.1.2: version "2.1.2" - resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz" + resolved "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" integrity sha512-3Pe/CF1Nn94hyhIYpjtiLhdCoEoz0DqQ+988E9gmeEdQZlojxnOb74wctFyuwWQHzqyf9X7C7MG8juUpqBJT8w== -cloneable-readable@^1.0.0: - version "1.1.3" - resolved "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.3.tgz" - integrity sha512-2EF8zTQOxYq70Y4XKtorQupqF0m49MBz2/yf5Bj+MHjvpG3Hy7sImifnqD6UA+TKYxeSV+u6qqQPawN5UvnpKQ== - dependencies: - inherits "^2.0.1" - process-nextick-args "^2.0.0" - readable-stream "^2.3.5" - -code-point-at@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz" - integrity sha512-RpAVKQA5T63xEj6/giIbUEtZwJ4UFIc3ZtvEkiaUERylqe8xb5IvqcgOurZLahv93CLKfxcw5YI+DZcUBRyLXA== - -collection-map@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-map/-/collection-map-1.0.0.tgz" - integrity sha512-5D2XXSpkOnleOI21TG7p3T0bGAsZ/XknZpKBmGYyluO8pw4zA3K8ZlrBIbC4FXg3m6z/RNFiUFfT2sQK01+UHA== - dependencies: - arr-map "^2.0.2" - for-own "^1.0.0" - make-iterator "^1.0.0" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz" @@ -1410,11 +1179,6 @@ color-name@~1.1.4: resolved "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== -color-support@^1.1.3: - version "1.1.3" - resolved "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz" - integrity sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg== - colorette@^2.0.14: version "2.0.20" resolved "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz#9eb793e6833067f7235902fcd3b09917a000a95a" @@ -1442,42 +1206,22 @@ commander@^9.0.0: resolved "https://registry.npmjs.org/commander/-/commander-9.5.0.tgz#bc08d1eb5cedf7ccb797a96199d41c7bc3e60d30" integrity sha512-KRs7WVDKg86PWiuAqhDrAQnTXZKraVcCc6vFdL14qrZ/DcWwuRo7VoiYXalXO7S5GKpqYiVEwCbgFDfxNHKJBQ== -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz" - integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== - -concat-stream@^1.6.0: - version "1.6.2" - resolved "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -convert-source-map@^1.5.0, convert-source-map@^1.7.0: +convert-source-map@^1.7.0: version "1.9.0" resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.9.0.tgz" integrity sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A== -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== +convert-source-map@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" + integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== -copy-props@^2.0.1: - version "2.0.5" - resolved "https://registry.npmjs.org/copy-props/-/copy-props-2.0.5.tgz" - integrity sha512-XBlx8HSqrT0ObQwmSzM7WE5k8FxTV75h1DX1Z3n6NhQ/UYYAvInWYmG06vFt7hQZArE2fuO62aihiWIVQwh1sw== +copy-props@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/copy-props/-/copy-props-4.0.0.tgz#01d249198b8c2e4d8a5e87b90c9630f52c99a9c9" + integrity sha512-bVWtw1wQLzzKiYROtvNlbJgxgBYt2bMJpkCbKmXM3xyijvcjjWXEk5nyrrT3bgJ7ODb19ZohE2T0Y3FgNPyoTw== dependencies: - each-props "^1.3.2" + each-props "^3.0.0" is-plain-object "^5.0.0" core-js@^2.0.0: @@ -1543,14 +1287,6 @@ cssstyle@^3.0.0: dependencies: rrweb-cssom "^0.6.0" -d@1, d@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/d/-/d-1.0.1.tgz" - integrity sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA== - dependencies: - es5-ext "^0.10.50" - type "^1.0.1" - dashdash@^1.12.0: version "1.14.1" resolved "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz" @@ -1576,10 +1312,10 @@ data-urls@^4.0.0: whatwg-mimetype "^3.0.0" whatwg-url "^12.0.0" -dayjs@^1.11.10: - version "1.11.10" - resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" - integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== +dayjs@^1.11.11: + version "1.11.11" + resolved "https://registry.npmjs.org/dayjs/-/dayjs-1.11.11.tgz#dfe0e9d54c5f8b68ccf8ca5f72ac603e7e5ed59e" + integrity sha512-okzr3f11N6WuqYtZSvm+F776mB41wRZMhKP+hc34YdW+KmtYYK9iqvHSwo2k9FEH3fhGXvOPV6yz2IcSrfRUDg== debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1: version "4.3.4" @@ -1588,18 +1324,6 @@ debug@4, debug@4.3.4, debug@^4.1.0, debug@^4.1.1: dependencies: ms "2.1.2" -debug@^2.2.0, debug@^2.3.3: - version "2.6.9" - resolved "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -decamelize@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - decamelize@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz" @@ -1610,11 +1334,6 @@ decimal.js@^10.4.3: resolved "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.2.tgz" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - deep-eql@^4.1.3: version "4.1.3" resolved "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" @@ -1627,19 +1346,7 @@ deep-is@~0.1.3: resolved "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz" integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ== -default-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/default-compare/-/default-compare-1.0.0.tgz" - integrity sha512-QWfXlM0EkAbqOCbD/6HjdwT19j7WCkMyiRhWilc4H9/5h/RzTF9gv5LYh1+CmDV5d1rki6KAWLtQale0xt20eQ== - dependencies: - kind-of "^5.0.2" - -default-resolution@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz" - integrity sha512-2xaP6GiwVwOEbXCGoJ4ufgC76m8cj805jrghScewJC2ZDsb9U0b4BIrba+xt/Uytyd0HvQ6+WymSRTfnYj59GQ== - -define-properties@^1.1.2, define-properties@^1.1.4: +define-properties@^1.1.2: version "1.2.0" resolved "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz" integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== @@ -1647,28 +1354,6 @@ define-properties@^1.1.2, define-properties@^1.1.4: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz" @@ -1694,10 +1379,10 @@ diff@^4.0.1: resolved "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== -diff@^5.1.0: - version "5.1.0" - resolved "https://registry.npmjs.org/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" - integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== +diff@^5.2.0: + version "5.2.0" + resolved "https://registry.npmjs.org/diff/-/diff-5.2.0.tgz#26ded047cd1179b78b9537d5ef725503ce1ae531" + integrity sha512-uIFDxqpRZGZ6ThOk84hEfqWoHx2devRFvpTZcTHur85vImfaxUbTW9Ryh4CpCuDnToOP1CEtXKIgytHBPVff5A== dir-glob@^3.0.1: version "3.0.1" @@ -1725,27 +1410,17 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" -dompurify@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.1.0.tgz#8c6b9fe986969a33aa4686bd829cbe8e14dd9445" - integrity sha512-yoU4rhgPKCo+p5UrWWWNKiIq+ToGqmVVhk0PmMYBK4kRsR3/qhemNFL8f6CFmBd4gMwm3F4T7HBoydP5uY07fA== - -duplexify@^3.6.0: - version "3.7.1" - resolved "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz" - integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== - dependencies: - end-of-stream "^1.0.0" - inherits "^2.0.1" - readable-stream "^2.0.0" - stream-shift "^1.0.0" +dompurify@^3.1.2: + version "3.1.2" + resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.1.2.tgz#d1e158457e00666ab40c9c3d8aab57586a072bd1" + integrity sha512-hLGGBI1tw5N8qTELr3blKjAML/LY4ANxksbS612UiJyDfyf/2D092Pvm+S7pmeTGJRqvlJkFzBoHBQKgQlOQVg== -each-props@^1.3.2: - version "1.3.2" - resolved "https://registry.npmjs.org/each-props/-/each-props-1.3.2.tgz" - integrity sha512-vV0Hem3zAGkJAyU7JSjixeU66rwdynTAa1vofCrSA5fEln+m67Az9CcnkVD776/fsN/UjIWmBDoNRS6t6G9RfA== +each-props@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/each-props/-/each-props-3.0.0.tgz#a88fb17634a4828307610ec68269fba2f7280cd8" + integrity sha512-IYf1hpuWrdzse/s/YJOrFmU15lyhSzxelNVAHTEG3DtP4QsLTWZUzcUL3HMXmKQxXpa4EIrBPpwRgj0aehdvAw== dependencies: - is-plain-object "^2.0.1" + is-plain-object "^5.0.0" object.defaults "^1.1.0" eastasianwidth@^0.2.0: @@ -1792,9 +1467,9 @@ empower@^1.3.1: core-js "^2.0.0" empower-core "^1.2.0" -end-of-stream@^1.0.0, end-of-stream@^1.1.0: +end-of-stream@^1.4.4: version "1.4.4" - resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz" + resolved "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== dependencies: once "^1.4.0" @@ -1833,54 +1508,11 @@ envinfo@^7.7.3: resolved "https://registry.npmjs.org/envinfo/-/envinfo-7.8.1.tgz#06377e3e5f4d379fea7ac592d5ad8927e0c4d475" integrity sha512-/o+BXHmB7ocbHEAs6F2EnG0ogybVVUdkRunTT2glZU9XAaGmhqskrvKwqXuDfNjEO0LZKWdejEEpnq8aM0tOaw== -error-ex@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - es-module-lexer@^1.2.1: version "1.2.1" resolved "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.2.1.tgz#ba303831f63e6a394983fde2f97ad77b22324527" integrity sha512-9978wrXM50Y4rTMmW5kXIC09ZdXQZqkE4mxhwkd8VbzsGkXGPgV4zWuqQJgCEzYngdo2dYDa0l8xhX4fkSwJSg== -es5-ext@^0.10.35, es5-ext@^0.10.46, es5-ext@^0.10.50: - version "0.10.62" - resolved "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.62.tgz" - integrity sha512-BHLqn0klhEpnOKSrzn/Xsz2UIW8j+cGmo9JLzr8BiUapV8hPL9+FliFqjwr9ngW7jWdnxv6eO+/LqyhJVqgrjA== - dependencies: - es6-iterator "^2.0.3" - es6-symbol "^3.1.3" - next-tick "^1.1.0" - -es6-iterator@^2.0.1, es6-iterator@^2.0.3: - version "2.0.3" - resolved "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz" - integrity sha512-zw4SRzoUkd+cl+ZoE15A9o1oQd920Bb0iOJMQkQhl3jNc03YqVjAhG7scf9C5KWRU/R13Orf588uCC6525o02g== - dependencies: - d "1" - es5-ext "^0.10.35" - es6-symbol "^3.1.1" - -es6-symbol@^3.1.1, es6-symbol@^3.1.3: - version "3.1.3" - resolved "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz" - integrity sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA== - dependencies: - d "^1.0.1" - ext "^1.1.2" - -es6-weak-map@^2.0.1: - version "2.0.3" - resolved "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz" - integrity sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA== - dependencies: - d "1" - es5-ext "^0.10.46" - es6-iterator "^2.0.3" - es6-symbol "^3.1.1" - escalade@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -1960,19 +1592,6 @@ events@^3.2.0: resolved "https://registry.npmjs.org/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - expand-tilde@^2.0.0, expand-tilde@^2.0.2: version "2.0.2" resolved "https://registry.npmjs.org/expand-tilde/-/expand-tilde-2.0.2.tgz" @@ -1980,13 +1599,6 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2: dependencies: homedir-polyfill "^1.0.1" -ext@^1.1.2: - version "1.7.0" - resolved "https://registry.npmjs.org/ext/-/ext-1.7.0.tgz" - integrity sha512-6hxeJYaL110a9b5TEJSj0gojyHQAmA2ch5Os+ySCiA1QGdS697XWY1pzsrSjqA9LDEEgdB/KypIlR59RcLuHYw== - dependencies: - type "^2.7.2" - extend-shallow@^1.1.2: version "1.1.4" resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-1.1.4.tgz#19d6bf94dfc09d76ba711f39b872d21ff4dd9071" @@ -1994,40 +1606,11 @@ extend-shallow@^1.1.2: dependencies: kind-of "^1.1.0" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@^3.0.0, extend@~3.0.2: +extend@^3.0.2, extend@~3.0.2: version "3.0.2" resolved "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz" @@ -2038,21 +1621,16 @@ extsprintf@^1.2.0: resolved "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz" integrity sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA== -fancy-log@^1.3.2: - version "1.3.3" - resolved "https://registry.npmjs.org/fancy-log/-/fancy-log-1.3.3.tgz" - integrity sha512-k9oEhlyc0FrVh25qYuSELjr8oxsCoc4/LEZfg2iJJrfEk/tZL9bCoJE47gqAvI2m/AUjluCS4+3I0eTx8n3AEw== - dependencies: - ansi-gray "^0.1.1" - color-support "^1.1.3" - parse-node-version "^1.0.0" - time-stamp "^1.0.0" - fast-deep-equal@^3.1.1: version "3.1.3" resolved "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== +fast-fifo@^1.1.0: + version "1.3.2" + resolved "https://registry.npmjs.org/fast-fifo/-/fast-fifo-1.3.2.tgz#286e31de96eb96d38a97899815740ba2a4f3640c" + integrity sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ== + fast-glob@^3.2.9: version "3.2.12" resolved "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80" @@ -2074,21 +1652,30 @@ fast-json-stable-stringify@^2.0.0: resolved "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== -fast-levenshtein@^1.0.0: - version "1.1.4" - resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-1.1.4.tgz" - integrity sha512-Ia0sQNrMPXXkqVFt6w6M1n1oKo3NfKs+mvaV811Jwir7vAk9a6PVV9VPYf6X3BU97QiLEmuW3uXH9u87zDFfdw== +fast-levenshtein@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-3.0.0.tgz#37b899ae47e1090e40e3fd2318e4d5f0142ca912" + integrity sha512-hKKNajm46uNmTlhHSyZkmToAc56uZJwYq7yrciZjqOxnlfQwERDQJmHPUp7m1m9wx8vgOe8IaCKZ5Kv2k1DdCQ== + dependencies: + fastest-levenshtein "^1.0.7" fast-levenshtein@~2.0.6: version "2.0.6" resolved "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz" integrity sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw== -fastest-levenshtein@^1.0.12: +fastest-levenshtein@^1.0.12, fastest-levenshtein@^1.0.7: version "1.0.16" resolved "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5" integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg== +fastq@^1.13.0: + version "1.17.1" + resolved "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz#2a523f07a4e7b1e81a42b91b8bf2254107753b47" + integrity sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w== + dependencies: + reusify "^1.0.4" + fastq@^1.6.0: version "1.15.0" resolved "https://registry.npmjs.org/fastq/-/fastq-1.15.0.tgz#d04d07c6a2a68fe4599fea8d2e103a937fae6b3a" @@ -2119,21 +1706,6 @@ fetch-ponyfill@^7.1.0: dependencies: node-fetch "~2.6.1" -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -2149,14 +1721,6 @@ find-up@5.0.0: locate-path "^6.0.0" path-exists "^4.0.0" -find-up@^1.0.0: - version "1.1.2" - resolved "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz" - integrity sha512-jvElSjyuo4EMQGoTwo1uJU5pQMwTW5lS1x05zzfJuTIyLR3zwO27LYrxNg+dlvKpGOuGy/MzBdXh80g0ve5+HA== - dependencies: - path-exists "^2.0.0" - pinkie-promise "^2.0.0" - find-up@^4.0.0: version "4.1.0" resolved "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" @@ -2165,41 +1729,31 @@ find-up@^4.0.0: locate-path "^5.0.0" path-exists "^4.0.0" -findup-sync@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-2.0.0.tgz" - integrity sha512-vs+3unmJT45eczmcAZ6zMJtxN3l/QXeccaXQx5cu/MeJMhewVfoWZqibRkOxPnmoR59+Zy5hjabfQc6JLSah4g== - dependencies: - detect-file "^1.0.0" - is-glob "^3.1.0" - micromatch "^3.0.4" - resolve-dir "^1.0.1" - -findup-sync@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-3.0.0.tgz" - integrity sha512-YbffarhcicEhOrm4CtrwdKBdCuz576RLdhJDsIfvNtxUuhdRet1qZcsMjqbePtAseKdAnDyM/IyXbu7PRPRLYg== +findup-sync@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/findup-sync/-/findup-sync-5.0.0.tgz#54380ad965a7edca00cc8f63113559aadc541bd2" + integrity sha512-MzwXju70AuyflbgeOhzvQWAvvQdo1XL0A9bVvlXsYcFEBM87WR4OakL4OfZq+QRmr+duJubio+UtNQCPsVESzQ== dependencies: detect-file "^1.0.0" - is-glob "^4.0.0" - micromatch "^3.0.4" + is-glob "^4.0.3" + micromatch "^4.0.4" resolve-dir "^1.0.1" -fined@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/fined/-/fined-1.2.0.tgz" - integrity sha512-ZYDqPLGxDkDhDZBjZBb+oD1+j0rA4E0pXY50eplAAOPg2N/gUBSSk5IM1/QhPfyVo19lJ+CvXpqfvk+b2p/8Ng== +fined@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/fined/-/fined-2.0.0.tgz#6846563ed96879ce6de6c85c715c42250f8d8089" + integrity sha512-OFRzsL6ZMHz5s0JrsEr+TpdGNCtrVtnuG3x1yzGNiQHT0yaDnXAj8V/lWcpJVrnoDpcwXcASxAZYbuXda2Y82A== dependencies: expand-tilde "^2.0.2" - is-plain-object "^2.0.3" + is-plain-object "^5.0.0" object.defaults "^1.1.0" - object.pick "^1.2.0" - parse-filepath "^1.0.1" + object.pick "^1.3.0" + parse-filepath "^1.0.2" -flagged-respawn@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-1.0.1.tgz" - integrity sha512-lNaHNVymajmk0OJMBn8fVUAU1BtDeKIqKoVhk4xAALB57aALg6b4W0MfJ/cUE0g9YBXy5XhSlPIpYIJ7HaY/3Q== +flagged-respawn@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/flagged-respawn/-/flagged-respawn-2.0.0.tgz#abf39719dcfe1ac06c86c9466081c541c682987b" + integrity sha512-Gq/a6YCi8zexmGHMuJwahTGzXlAZAOsbCVKduWXC6TlLCjjFRlExMJc4GC2NYPYZ0r/brw9P7CpRgQmlPVeOoA== flat@^5.0.2: version "5.0.2" @@ -2211,15 +1765,7 @@ flatpickr@*: resolved "https://registry.npmjs.org/flatpickr/-/flatpickr-4.6.13.tgz#8a029548187fd6e0d670908471e43abe9ad18d94" integrity sha512-97PMG/aywoYpB4IvbvUJi0RQi8vearvU0oov1WW3k0WZPBMrTQVqekSX5CjSG/M4Q3i6A/0FKXC7RyAoAUUSPw== -flush-write-stream@^1.0.2: - version "1.1.1" - resolved "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz" - integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== - dependencies: - inherits "^2.0.3" - readable-stream "^2.3.6" - -for-in@^1.0.1, for-in@^1.0.2: +for-in@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz" integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== @@ -2254,34 +1800,19 @@ form-data@~2.3.2: combined-stream "^1.0.6" mime-types "^2.1.12" -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - -fs-mkdirp-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-1.0.0.tgz" - integrity sha512-+vSd9frUnapVC2RZYfL3FCB2p3g4TBhaUmrsWlSudsGdnxIuUvBB2QM1VZeBtc49QFwrp+wQLrDs3+xxDgI5gQ== +fs-mkdirp-stream@^2.0.1: + version "2.0.1" + resolved "https://registry.npmjs.org/fs-mkdirp-stream/-/fs-mkdirp-stream-2.0.1.tgz#1e82575c4023929ad35cf69269f84f1a8c973aa7" + integrity sha512-UTOY+59K6IA94tec8Wjqm0FSh5OVudGNB0NL/P6fB3HiE3bYOY3VYBGijsnOHNkQSwC1FKkU77pmq7xp9CskLw== dependencies: - graceful-fs "^4.1.11" - through2 "^2.0.3" + graceful-fs "^4.2.8" + streamx "^2.12.0" fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - fsevents@~2.3.2: version "2.3.2" resolved "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" @@ -2297,11 +1828,6 @@ gensync@^1.0.0-beta.2: resolved "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz" @@ -2312,7 +1838,7 @@ get-func-name@^2.0.1, get-func-name@^2.0.2: resolved "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.2.tgz#0d7cf20cd13fda808669ffa88f4ffc7a3943fc41" integrity sha512-8vXOvuE167CtIc3OyItco7N/dpRtBbYOsPsXCz7X/PMnlGjYjSGuZJgM1Y7mmew7BKf9BqvLX2tnOVy1BBUsxQ== -get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: +get-intrinsic@^1.1.1: version "1.2.0" resolved "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz" integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== @@ -2321,11 +1847,6 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.1: has "^1.0.3" has-symbols "^1.0.3" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - getpass@^0.1.1: version "0.1.7" resolved "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz" @@ -2333,14 +1854,6 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz" - integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -2348,39 +1861,39 @@ glob-parent@^5.1.2, glob-parent@~5.1.2: dependencies: is-glob "^4.0.1" -glob-stream@^6.1.0: - version "6.1.0" - resolved "https://registry.npmjs.org/glob-stream/-/glob-stream-6.1.0.tgz" - integrity sha512-uMbLGAP3S2aDOHUDfdoYcdIePUCfysbAd0IAoWVZbeGU/oNQ8asHVSshLDJUPWxfzj8zsCG7/XeHPHTtow0nsw== +glob-parent@^6.0.2: + version "6.0.2" + resolved "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz#6d237d99083950c79290f24c7642a3de9a28f9e3" + integrity sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A== + dependencies: + is-glob "^4.0.3" + +glob-stream@^8.0.0: + version "8.0.2" + resolved "https://registry.npmjs.org/glob-stream/-/glob-stream-8.0.2.tgz#09e5818e41c16dd85274d72c7a7158d307426313" + integrity sha512-R8z6eTB55t3QeZMmU1C+Gv+t5UnNRkA55c5yo67fAVfxODxieTwsjNG7utxS/73NdP1NbDgCrhVEg2h00y4fFw== dependencies: - extend "^3.0.0" - glob "^7.1.1" - glob-parent "^3.1.0" + "@gulpjs/to-absolute-glob" "^4.0.0" + anymatch "^3.1.3" + fastq "^1.13.0" + glob-parent "^6.0.2" + is-glob "^4.0.3" is-negated-glob "^1.0.0" - ordered-read-streams "^1.0.0" - pumpify "^1.3.5" - readable-stream "^2.1.5" - remove-trailing-separator "^1.0.1" - to-absolute-glob "^2.0.0" - unique-stream "^2.0.2" + normalize-path "^3.0.0" + streamx "^2.12.5" glob-to-regexp@^0.4.0, glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob-watcher@^5.0.3: - version "5.0.5" - resolved "https://registry.npmjs.org/glob-watcher/-/glob-watcher-5.0.5.tgz" - integrity sha512-zOZgGGEHPklZNjZQaZ9f41i7F2YwE+tS5ZHrDhbBCk3stwahn5vQxnFmBJZHoYdusR6R1bLSXeGUy/BhctwKzw== +glob-watcher@^6.0.0: + version "6.0.0" + resolved "https://registry.npmjs.org/glob-watcher/-/glob-watcher-6.0.0.tgz#8565341978a92233fb3881b8857b4d1e9c6bf080" + integrity sha512-wGM28Ehmcnk2NqRORXFOTOR064L4imSw3EeOqU5bIwUf62eXGwg89WivH6VMahL8zlQHeodzvHpXplrqzrz3Nw== dependencies: - anymatch "^2.0.0" - async-done "^1.2.0" - chokidar "^2.0.0" - is-negated-glob "^1.0.0" - just-debounce "^1.0.0" - normalize-path "^3.0.0" - object.defaults "^1.1.0" + async-done "^2.0.0" + chokidar "^3.5.3" glob@8.1.0: version "8.1.0" @@ -2393,18 +1906,6 @@ glob@8.1.0: minimatch "^5.0.1" once "^1.3.0" -glob@^7.1.1: - version "7.2.3" - resolved "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz" - integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.1.1" - once "^1.3.0" - path-is-absolute "^1.0.0" - global-modules@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz" @@ -2450,46 +1951,35 @@ globby@^11.0.4: merge2 "^1.4.1" slash "^3.0.0" -glogg@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/glogg/-/glogg-1.0.2.tgz" - integrity sha512-5mwUoSuBk44Y4EshyiqcH95ZntbDdTQqA3QYSrxmzj28Ai0vXBGMH1ApSANH14j2sIRtqCEyg6PfsuP7ElOEDA== +glogg@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/glogg/-/glogg-2.2.0.tgz#956ceb855a05a2aa1fa668d748f2be8e7361c11c" + integrity sha512-eWv1ds/zAlz+M1ioHsyKJomfY7jbDDPpwSkv14KQj89bycx1nvK5/2Cj/T9g7kzJcX5Bc7Yv22FjfBZS/jl94A== dependencies: - sparkles "^1.0.0" - -graceful-fs@^4.0.0, graceful-fs@^4.1.11, graceful-fs@^4.1.6: - version "4.2.10" - resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz" - integrity sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA== + sparkles "^2.1.0" -graceful-fs@^4.1.2, graceful-fs@^4.2.11, graceful-fs@^4.2.4: +graceful-fs@^4.1.2, graceful-fs@^4.2.10, graceful-fs@^4.2.11, graceful-fs@^4.2.4, graceful-fs@^4.2.8: version "4.2.11" resolved "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -gulp-cli@^2.2.0: - version "2.3.0" - resolved "https://registry.npmjs.org/gulp-cli/-/gulp-cli-2.3.0.tgz" - integrity sha512-zzGBl5fHo0EKSXsHzjspp3y5CONegCm8ErO5Qh0UzFzk2y4tMvzLWhoDokADbarfZRL2pGpRp7yt6gfJX4ph7A== - dependencies: - ansi-colors "^1.0.1" - archy "^1.0.0" - array-sort "^1.0.0" - color-support "^1.1.3" - concat-stream "^1.6.0" - copy-props "^2.0.1" - fancy-log "^1.3.2" - gulplog "^1.0.0" - interpret "^1.4.0" - isobject "^3.0.1" - liftoff "^3.1.0" - matchdep "^2.0.0" - mute-stdout "^1.0.0" - pretty-hrtime "^1.0.0" - replace-homedir "^1.0.0" - semver-greatest-satisfied-range "^1.1.0" - v8flags "^3.2.0" - yargs "^7.1.0" +gulp-cli@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/gulp-cli/-/gulp-cli-3.0.0.tgz#577008f5323fad6106b44db24803c27c3a649841" + integrity sha512-RtMIitkT8DEMZZygHK2vEuLPqLPAFB4sntSxg4NoDta7ciwGZ18l7JuhCTiS5deOJi2IoK0btE+hs6R4sfj7AA== + dependencies: + "@gulpjs/messages" "^1.1.0" + chalk "^4.1.2" + copy-props "^4.0.0" + gulplog "^2.2.0" + interpret "^3.1.1" + liftoff "^5.0.0" + mute-stdout "^2.0.0" + replace-homedir "^2.0.0" + semver-greatest-satisfied-range "^2.0.0" + string-width "^4.2.3" + v8flags "^4.0.0" + yargs "^16.2.0" gulp-insert@^0.5.0: version "0.5.0" @@ -2514,22 +2004,22 @@ gulp-template@^5.0.0: safe-buffer "^5.1.1" through2 "^2.0.0" -gulp@^4.0.2: - version "4.0.2" - resolved "https://registry.npmjs.org/gulp/-/gulp-4.0.2.tgz" - integrity sha512-dvEs27SCZt2ibF29xYgmnwwCYZxdxhQ/+LFWlbAW8y7jt68L/65402Lz3+CKy0Ov4rOs+NERmDq7YlZaDqUIfA== +gulp@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/gulp/-/gulp-5.0.0.tgz#78f4b8ac48a0bf61b354d39e5be844de2c5cc3f3" + integrity sha512-S8Z8066SSileaYw1S2N1I64IUc/myI2bqe2ihOBzO6+nKpvNSg7ZcWJt/AwF8LC/NVN+/QZ560Cb/5OPsyhkhg== dependencies: - glob-watcher "^5.0.3" - gulp-cli "^2.2.0" - undertaker "^1.2.1" - vinyl-fs "^3.0.0" + glob-watcher "^6.0.0" + gulp-cli "^3.0.0" + undertaker "^2.0.0" + vinyl-fs "^4.0.0" -gulplog@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/gulplog/-/gulplog-1.0.0.tgz" - integrity sha512-hm6N8nrm3Y08jXie48jsC55eCZz9mnb4OirAStEk2deqeyhXU3C1otDVh+ccttMuc1sBi6RX6ZJ720hs9RCvgw== +gulplog@^2.2.0: + version "2.2.0" + resolved "https://registry.npmjs.org/gulplog/-/gulplog-2.2.0.tgz#71adf43ea5cd07c23ded0fb8af4a844b67c63be8" + integrity sha512-V2FaKiOhpR3DRXZuYdRLn/qiY0yI5XmqbTKrYbdemJ+xOh2d2MOweI/XFgMzd/9+1twdvMwllnZbWZNJ+BOm4A== dependencies: - glogg "^1.0.0" + glogg "^2.2.0" har-schema@^2.0.0: version "2.0.0" @@ -2566,37 +2056,6 @@ has-symbols@^1.0.3: resolved "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz" integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - has@^1.0.3: version "1.0.3" resolved "https://registry.npmjs.org/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" @@ -2616,11 +2075,6 @@ homedir-polyfill@^1.0.1: dependencies: parse-passwd "^1.0.0" -hosted-git-info@^2.1.4: - version "2.8.9" - resolved "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz" - integrity sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw== - html-encoding-sniffer@^1.0.2: version "1.0.2" resolved "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz" @@ -2668,13 +2122,18 @@ iconv-lite@0.4.24: dependencies: safer-buffer ">= 2.1.2 < 3" -iconv-lite@0.6.3: +iconv-lite@0.6.3, iconv-lite@^0.6.3: version "0.6.3" resolved "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== dependencies: safer-buffer ">= 2.1.2 < 3.0.0" +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + ignore@^5.2.0: version "5.2.4" resolved "https://registry.npmjs.org/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" @@ -2701,7 +2160,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: version "2.0.4" resolved "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz" integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== @@ -2711,26 +2170,16 @@ ini@^1.3.4: resolved "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz" integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== -inputmask@4.0.9: - version "4.0.9" - resolved "https://registry.npmjs.org/inputmask/-/inputmask-4.0.9.tgz#a60fc46cee52a35a0ba5f50b5cca3a6733ece18c" - integrity sha512-EodaYhJKncXRBwvCE8YrRmAFmBJ6bWdgX4Qw8QSnK5GBDXE03jgpJhrS+a2N0v2Zsgp+OjKXy7qACktjYD83Uw== - -interpret@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz" - integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== +inputmask@5.0.8: + version "5.0.8" + resolved "https://registry.npmjs.org/inputmask/-/inputmask-5.0.8.tgz#cd0f70b058c3291a0d4f27de25dbfc179c998bb4" + integrity sha512-1WcbyudPTXP1B28ozWWyFa6QRIUG4KiLoyR6LFHlpT4OfTzRqFfWgHFadNvRuMN1S9XNVz9CdNvCGjJi+uAMqQ== interpret@^3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/interpret/-/interpret-3.1.1.tgz#5be0ceed67ca79c6c4bc5cf0d7ee843dcea110c4" integrity sha512-6xwYfHbajpoF0xLW+iwLkhwgvLoZDfjYfoFNu8ftMoXINzwuymNLd9u/KmwtdT2GbR+/Cz66otEGEVVUHX9QLQ== -invert-kv@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz" - integrity sha512-xgs2NH9AE66ucSq4cNG1nhSFghr5l6tdL15Pk+jl46bmmBapgoaY/AacXyaDznAqmGL99TiLSQgO/XazFSKYeQ== - is-absolute@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-absolute/-/is-absolute-1.0.0.tgz" @@ -2739,32 +2188,6 @@ is-absolute@^1.0.0: is-relative "^1.0.0" is-windows "^1.0.1" -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz" - integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz" - integrity sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz" - integrity sha512-9fRVlXc0uCxEDj1nQzaWONSpbTfx0FmJfzHF7pwlI8DkWGoHBBea4Pg5Ky0ojwwxQmnSifgbKkI06Qv0Ljgj+Q== - dependencies: - binary-extensions "^1.0.0" - is-binary-path@~2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" @@ -2772,87 +2195,24 @@ is-binary-path@~2.1.0: dependencies: binary-extensions "^2.0.0" -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-core-module@^2.11.0, is-core-module@^2.9.0: +is-core-module@^2.11.0: version "2.12.1" resolved "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.1.tgz#0c0b6885b6f80011c71541ce15c8d66cf5a4f9fd" integrity sha512-Q4ZuBAe2FUsKtyQJoQHlvP8OvBERxO3jEmy1I7hcRXcJBGGHFh/aJBswbXuS9sgrDH2QUO8ilkwNPHvHMd8clg== dependencies: has "^1.0.3" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz" - integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== -is-fullwidth-code-point@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz" - integrity sha512-1pqUqRjkhPJ9miNq9SwMfdvi6lBJcd6eFxvfaivQhaH3SgisfiuudvFntdKOmxuee/77l+FPjKrQjWvmPjWrRw== - dependencies: - number-is-nan "^1.0.0" - is-fullwidth-code-point@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz" integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz" - integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: +is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz" integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== @@ -2864,18 +2224,6 @@ is-negated-glob@^1.0.0: resolved "https://registry.npmjs.org/is-negated-glob/-/is-negated-glob-1.0.0.tgz" integrity sha512-czXVVn/QEmgvej1f50BZ648vUI+em0xqMq2Sn+QncCLN4zj1UAxlT+kw/6ggQTOaZPd1HqKQGEqbpQVtJucWug== -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - dependencies: - kind-of "^3.0.2" - -is-number@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz" - integrity sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ== - is-number@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -2886,7 +2234,7 @@ is-plain-obj@^2.1.0: resolved "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz" integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== -is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -2932,17 +2280,12 @@ is-unicode-supported@^0.1.0: resolved "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz" integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== -is-utf8@^0.2.0, is-utf8@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz" - integrity sha512-rMYPYvCzsXywIsldgLaSoPlw5PfoB/ssr7hY4pLfcodrA5M/eArza1a9VmTiNIBNMjOGr1Ow9mTyU2o69U6U9Q== - is-valid-glob@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/is-valid-glob/-/is-valid-glob-1.0.0.tgz" integrity sha512-AhiROmoEFDSsjx8hW+5sGwgKVIORcXnrlAx/R0ZSeaPw70Vw0CqkGBBhHGL58Uox2eXnU1AnvXJl1XlyedO5bA== -is-windows@^1.0.1, is-windows@^1.0.2: +is-windows@^1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz" integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== @@ -2952,7 +2295,7 @@ isarray@0.0.1: resolved "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== -isarray@1.0.0, isarray@~1.0.0: +isarray@~1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz" integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== @@ -2962,13 +2305,6 @@ isexe@^2.0.0: resolved "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - isobject@^3.0.0, isobject@^3.0.1: version "3.0.1" resolved "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz" @@ -3010,6 +2346,35 @@ jsdom-global@^3.0.2: resolved "https://registry.npmjs.org/jsdom-global/-/jsdom-global-3.0.2.tgz#6bd299c13b0c4626b2da2c0393cd4385d606acb9" integrity sha512-t1KMcBkz/pT5JrvcJbpUR2u/w1kO9jXctaaGJ0vZDzwFnIvGWw9IDSRciT83kIs8Bnw4qpOl8bQK08V01YgMPg== +jsdom@22.1.0: + version "22.1.0" + resolved "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz#0fca6d1a37fbeb7f4aac93d1090d782c56b611c8" + integrity sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw== + dependencies: + abab "^2.0.6" + cssstyle "^3.0.0" + data-urls "^4.0.0" + decimal.js "^10.4.3" + domexception "^4.0.0" + form-data "^4.0.0" + html-encoding-sniffer "^3.0.0" + http-proxy-agent "^5.0.0" + https-proxy-agent "^5.0.1" + is-potential-custom-element-name "^1.0.1" + nwsapi "^2.2.4" + parse5 "^7.1.2" + rrweb-cssom "^0.6.0" + saxes "^6.0.0" + symbol-tree "^3.2.4" + tough-cookie "^4.1.2" + w3c-xmlserializer "^4.0.0" + webidl-conversions "^7.0.0" + whatwg-encoding "^2.0.0" + whatwg-mimetype "^3.0.0" + whatwg-url "^12.0.1" + ws "^8.13.0" + xml-name-validator "^4.0.0" + jsdom@^11.11.0: version "11.12.0" resolved "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz" @@ -3042,35 +2407,6 @@ jsdom@^11.11.0: ws "^5.2.0" xml-name-validator "^3.0.0" -jsdom@^22.1.0: - version "22.1.0" - resolved "https://registry.npmjs.org/jsdom/-/jsdom-22.1.0.tgz#0fca6d1a37fbeb7f4aac93d1090d782c56b611c8" - integrity sha512-/9AVW7xNbsBv6GfWho4TTNjEo9fe6Zhf9O7s0Fhhr3u+awPwAJMKwAMXnkk5vBxflqLW9hTHX/0cs+P3gW+cQw== - dependencies: - abab "^2.0.6" - cssstyle "^3.0.0" - data-urls "^4.0.0" - decimal.js "^10.4.3" - domexception "^4.0.0" - form-data "^4.0.0" - html-encoding-sniffer "^3.0.0" - http-proxy-agent "^5.0.0" - https-proxy-agent "^5.0.1" - is-potential-custom-element-name "^1.0.1" - nwsapi "^2.2.4" - parse5 "^7.1.2" - rrweb-cssom "^0.6.0" - saxes "^6.0.0" - symbol-tree "^3.2.4" - tough-cookie "^4.1.2" - w3c-xmlserializer "^4.0.0" - webidl-conversions "^7.0.0" - whatwg-encoding "^2.0.0" - whatwg-mimetype "^3.0.0" - whatwg-url "^12.0.1" - ws "^8.13.0" - xml-name-validator "^4.0.0" - jsesc@^2.5.1: version "2.5.2" resolved "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz" @@ -3096,11 +2432,6 @@ json-schema@0.4.0: resolved "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz" integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA== -json-stable-stringify-without-jsonify@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz" - integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw== - json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz" @@ -3126,73 +2457,30 @@ jsprim@^1.2.2: json-schema "0.4.0" verror "1.10.0" -just-debounce@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/just-debounce/-/just-debounce-1.1.0.tgz" - integrity sha512-qpcRocdkUmf+UTNBYx5w6dexX5J31AKK1OmPwH630a83DdVVUIngk55RSAiIGpQyoH0dlr872VHfPjnQnK1qDQ== - -just-extend@^4.0.2: - version "4.2.1" - resolved "https://registry.npmjs.org/just-extend/-/just-extend-4.2.1.tgz#ef5e589afb61e5d66b24eca749409a8939a8c744" - integrity sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg== +just-extend@^6.2.0: + version "6.2.0" + resolved "https://registry.npmjs.org/just-extend/-/just-extend-6.2.0.tgz#b816abfb3d67ee860482e7401564672558163947" + integrity sha512-cYofQu2Xpom82S6qD778jBDpwvvy39s1l/hrYij2u9AMdQcGRpaBu6kY4mVhuno5kJVi1DAz4aiphA2WI1/OAw== kind-of@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/kind-of/-/kind-of-1.1.0.tgz#140a3d2d41a36d2efcfa9377b62c24f8495a5c44" integrity sha512-aUH6ElPnMGon2/YkxRIigV32MOpTVcoXQ1Oo8aYn40s+sJ3j+0gFZsT8HKDcxNy7Fi9zuquWtGaGAahOdv5p/g== -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0, kind-of@^5.0.2: - version "5.1.0" - resolved "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== -last-run@^1.1.0: - version "1.1.1" - resolved "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz" - integrity sha512-U/VxvpX4N/rFvPzr3qG5EtLKEnNI0emvIQB3/ecEwv+8GHaUKbIB8vxv1Oai5FAF0d0r7LXHhLLe5K/yChm5GQ== - dependencies: - default-resolution "^2.0.0" - es6-weak-map "^2.0.1" - -lazystream@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/lazystream/-/lazystream-1.0.1.tgz" - integrity sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw== - dependencies: - readable-stream "^2.0.5" - -lcid@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz" - integrity sha512-YiGkH6EnGrDGqLMITnGjXtGmNtjoXw9SVUzcaos8RBi7Ps0VBylkq+vOcY9QE5poLasPCR849ucFUkl0UzUyOw== - dependencies: - invert-kv "^1.0.0" +last-run@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/last-run/-/last-run-2.0.0.tgz#f82dcfbfce6e63d041bd83d64c82e34cdba6572e" + integrity sha512-j+y6WhTLN4Itnf9j5ZQos1BGPCS8DAwmgMroR3OzfxAsBxam0hMw7J8M3KqZl0pLQJ1jNnwIexg5DYpC/ctwEQ== -lead@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/lead/-/lead-1.0.0.tgz" - integrity sha512-IpSVCk9AYvLHo5ctcIXxOBpMWUe+4TKN3VPWAKUbJikkmsGp0VrSM8IttVc32D6J4WUsiPE6aEFRNmIoF/gdow== - dependencies: - flush-write-stream "^1.0.2" +lead@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/lead/-/lead-4.0.0.tgz#5317a49effb0e7ec3a0c8fb9c1b24fb716aab939" + integrity sha512-DpMa59o5uGUWWjruMp71e6knmwKU3jRBBn1kjuLWN9EeIOxNeSAwvHf03WIl8g/ZMR2oSQC9ej3yeLBwdDc/pg== left-pad@^1.3.0: version "1.3.0" @@ -3207,30 +2495,18 @@ levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -liftoff@^3.1.0: - version "3.1.0" - resolved "https://registry.npmjs.org/liftoff/-/liftoff-3.1.0.tgz" - integrity sha512-DlIPlJUkCV0Ips2zf2pJP0unEoT1kwYhiiPUGF3s/jtxTCjziNLoiVVh+jqWOWeFi6mmwQ5fNxvAUyPad4Dfog== - dependencies: - extend "^3.0.0" - findup-sync "^3.0.0" - fined "^1.0.1" - flagged-respawn "^1.0.0" - is-plain-object "^2.0.4" - object.map "^1.0.0" - rechoir "^0.6.2" - resolve "^1.1.7" - -load-json-file@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz" - integrity sha512-cy7ZdNRXdablkXYNI049pthVeXFurRyb9+hA/dZzerZ0pGTx42z+y+ssxBaVV2l70t1muq5IdKhn4UtcoGUY9A== +liftoff@^5.0.0: + version "5.0.0" + resolved "https://registry.npmjs.org/liftoff/-/liftoff-5.0.0.tgz#0e5ed275bc334caec0e551ecf08bb22be583e236" + integrity sha512-a5BQjbCHnB+cy+gsro8lXJ4kZluzOijzJ1UVVfyJYZC+IP2pLv1h4+aysQeKuTmyO8NAqfyQAk4HWaP/HjcKTg== dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - pinkie-promise "^2.0.0" - strip-bom "^2.0.0" + extend "^3.0.2" + findup-sync "^5.0.0" + fined "^2.0.0" + flagged-respawn "^2.0.0" + is-plain-object "^5.0.0" + rechoir "^0.8.0" + resolve "^1.20.0" loader-runner@^4.2.0: version "4.3.0" @@ -3310,40 +2586,16 @@ make-error@^1.1.1: resolved "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== -make-iterator@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/make-iterator/-/make-iterator-1.0.1.tgz" - integrity sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw== - dependencies: - kind-of "^6.0.2" - -map-cache@^0.2.0, map-cache@^0.2.2: +map-cache@^0.2.0: version "0.2.2" resolved "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz" integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - marked@^4.3.0: version "4.3.0" resolved "https://registry.npmjs.org/marked/-/marked-4.3.0.tgz#796362821b019f734054582038b116481b456cf3" integrity sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A== -matchdep@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz" - integrity sha512-LFgVbaHIHMqCRuCZyfCtUOq9/Lnzhi7Z0KFUE2fhD54+JN2jLh3hC02RLkqauJ3U4soU6H1J3tfj/Byk7GoEjA== - dependencies: - findup-sync "^2.0.0" - micromatch "^3.0.4" - resolve "^1.4.0" - stack-trace "0.0.10" - merge-stream@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" @@ -3354,25 +2606,6 @@ merge2@^1.3.0, merge2@^1.4.1: resolved "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - micromatch@^4.0.0, micromatch@^4.0.4: version "4.0.5" resolved "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -3407,13 +2640,6 @@ minimatch@5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^3.1.1: - version "3.1.2" - resolved "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz" - integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== - dependencies: - brace-expansion "^1.1.7" - minimatch@^5.0.1: version "5.1.6" resolved "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" @@ -3433,14 +2659,6 @@ minimist@^1.2.6: resolved "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - mocha-jsdom@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/mocha-jsdom/-/mocha-jsdom-2.0.0.tgz" @@ -3487,11 +2705,6 @@ moment@^2.29.4: resolved "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae" integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how== -ms@2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz" - integrity sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A== - ms@2.1.2: version "2.1.2" resolved "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz" @@ -3502,58 +2715,31 @@ ms@2.1.3: resolved "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz" integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== -mute-stdout@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/mute-stdout/-/mute-stdout-1.0.1.tgz" - integrity sha512-kDcwXR4PS7caBpuRYYBUz9iVixUk3anO3f5OYFiIPwK/20vCzKCHyKoulbiDY1S53zD2bxUpxN/IJ+TnXjfvxg== +mute-stdout@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/mute-stdout/-/mute-stdout-2.0.0.tgz#c6a9b4b6185d3b7f70d3ffcb734cbfc8b0f38761" + integrity sha512-32GSKM3Wyc8dg/p39lWPKYu8zci9mJFzV1Np9Of0ZEpe6Fhssn/FbI7ywAMd40uX+p3ZKh3T5EeCFv81qS3HmQ== mylas@^2.1.9: version "2.1.13" resolved "https://registry.npmjs.org/mylas/-/mylas-2.1.13.tgz#1e23b37d58fdcc76e15d8a5ed23f9ae9fc0cbdf4" integrity sha512-+MrqnJRtxdF+xngFfUUkIMQrUUL0KsxbADUkn23Z/4ibGg192Q+z+CQyiYwvWTsYjJygmMR8+w3ZDa98Zh6ESg== -nan@^2.12.1: - version "2.17.0" - resolved "https://registry.npmjs.org/nan/-/nan-2.17.0.tgz" - integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - neo-async@^2.6.2: version "2.6.2" resolved "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -next-tick@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz" - integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ== - -nise@^5.1.5: - version "5.1.5" - resolved "https://registry.npmjs.org/nise/-/nise-5.1.5.tgz#f2aef9536280b6c18940e32ba1fbdc770b8964ee" - integrity sha512-VJuPIfUFaXNRzETTQEEItTOP8Y171ijr+JLq42wHes3DiryR8vT+1TXQW/Rx8JNUhyYYWyIvjXTU6dOhJcs9Nw== +nise@^5.1.9: + version "5.1.9" + resolved "https://registry.npmjs.org/nise/-/nise-5.1.9.tgz#0cb73b5e4499d738231a473cd89bd8afbb618139" + integrity sha512-qOnoujW4SV6e40dYxJOb3uvuoPHtmLzIk4TFo+j0jPJoC+5Z9xja5qH5JZobEPsa8+YYphMrOSwnrshEhG2qww== dependencies: - "@sinonjs/commons" "^2.0.0" - "@sinonjs/fake-timers" "^10.0.2" - "@sinonjs/text-encoding" "^0.7.1" - just-extend "^4.0.2" - path-to-regexp "^1.7.0" + "@sinonjs/commons" "^3.0.0" + "@sinonjs/fake-timers" "^11.2.2" + "@sinonjs/text-encoding" "^0.7.2" + just-extend "^6.2.0" + path-to-regexp "^6.2.1" node-fetch@~2.6.1: version "2.6.9" @@ -3572,39 +2758,17 @@ node-releases@^2.0.8: resolved "https://registry.npmjs.org/node-releases/-/node-releases-2.0.12.tgz#35627cc224a23bfb06fb3380f2b3afaaa7eb1039" integrity sha512-QzsYKWhXTWx8h1kIvqfnC++o0pEmpRQA/aenALsL2F4pqNVr7YzcdMlDij5WBnwftRbJCNJL/O7zdKaxKPHqgQ== -normalize-package-data@^2.3.2: - version "2.5.0" - resolved "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz" - integrity sha512-3pKJwH184Xo/lnH6oyP1q2pMd7HcypqqmRs91/6/i2CGtWwIKGCkOOMTm/zXbgTEWHw1uNpNi/igc3ePOYHb6w== - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0, normalize-path@~3.0.0: +normalize-path@3.0.0, normalize-path@^3.0.0, normalize-path@~3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== -now-and-later@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/now-and-later/-/now-and-later-2.0.1.tgz" - integrity sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ== +now-and-later@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/now-and-later/-/now-and-later-3.0.0.tgz#cdc045dc5b894b35793cf276cc3206077bb7302d" + integrity sha512-pGO4pzSdaxhWTGkfSfHx3hVzJVslFPwBp2Myq9MYN/ChfJZF87ochMAXnvz6/58RJSf5ik2q9tXprBBrk2cpcg== dependencies: - once "^1.3.2" - -number-is-nan@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz" - integrity sha512-4jbtZXNAsfZbAHiiqjLPBiCl16dES1zI4Hpzzxw61Tk+loF+sBDBKx1ICKKKwIqQ7M0mFn1TmkN7euSncWgHiQ== + once "^1.4.0" nwsapi@^2.0.7: version "2.2.2" @@ -3612,47 +2776,21 @@ nwsapi@^2.0.7: integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw== nwsapi@^2.2.4: - version "2.2.7" - resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" - integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== + version "2.2.9" + resolved "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.9.tgz#7f3303218372db2e9f27c27766bcfc59ae7e61c6" + integrity sha512-2f3F0SEEer8bBu0dsNCFF50N0cTThV1nWFYcEYFZttdW0lDAoybv9cQoK7X7/68Z89S7FoRrVjP1LPX4XRf9vg== oauth-sign@~0.9.0: version "0.9.0" resolved "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz" integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - object-keys@^1.0.0, object-keys@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - -object.assign@^4.0.4, object.assign@^4.1.0: - version "4.1.4" - resolved "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz" - integrity sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.4" - has-symbols "^1.0.3" - object-keys "^1.1.1" - -object.defaults@^1.0.0, object.defaults@^1.1.0: +object.defaults@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/object.defaults/-/object.defaults-1.1.0.tgz" integrity sha512-c/K0mw/F11k4dEUBMW8naXUuBuhxRCfG7W+yFy8EcijU/rSmazOUd1XAEEe6bC0OuXY4HUKjTJv7xbxIMqdxrA== @@ -3662,30 +2800,14 @@ object.defaults@^1.0.0, object.defaults@^1.1.0: for-own "^1.0.0" isobject "^3.0.0" -object.map@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object.map/-/object.map-1.0.1.tgz" - integrity sha512-3+mAJu2PLfnSVGHwIWubpOFLscJANBKuB/6A4CxBstc4aqwQY0FWcsppuy4jU5GSB95yES5JHSI+33AWuS4k6w== - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - -object.pick@^1.2.0, object.pick@^1.3.0: +object.pick@^1.3.0: version "1.3.0" resolved "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz" integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== dependencies: isobject "^3.0.1" -object.reduce@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/object.reduce/-/object.reduce-1.0.1.tgz" - integrity sha512-naLhxxpUESbNkRqc35oQ2scZSJueHGQNUfMW/0U37IgN6tE2dgDWg3whf+NEliy3F/QysrO48XKUz/nGPe+AQw== - dependencies: - for-own "^1.0.0" - make-iterator "^1.0.0" - -once@^1.3.0, once@^1.3.1, once@^1.3.2, once@^1.4.0: +once@^1.3.0, once@^1.4.0: version "1.4.0" resolved "https://registry.npmjs.org/once/-/once-1.4.0.tgz" integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== @@ -3704,20 +2826,6 @@ optionator@^0.8.1: type-check "~0.3.2" word-wrap "~1.2.3" -ordered-read-streams@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/ordered-read-streams/-/ordered-read-streams-1.0.1.tgz" - integrity sha512-Z87aSjx3r5c0ZB7bcJqIgIRX5bxR7A4aSzvIbaxd0oTkWBCOoKfuGHiKj60CHVUgg1Phm5yMZzBdt8XqRs73Mw== - dependencies: - readable-stream "^2.0.1" - -os-locale@^1.4.0: - version "1.4.0" - resolved "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz" - integrity sha512-PRT7ZORmwu2MEFt4/fv3Q+mEfN4zetKxufQrkShY2oGvUms9r8otu5HfdyIFHkYXjO7laNsoVGmM2MANfuTA8g== - dependencies: - lcid "^1.0.0" - p-limit@^2.2.0: version "2.3.0" resolved "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -3751,27 +2859,15 @@ p-try@^2.0.0: resolved "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -parse-filepath@^1.0.1: +parse-filepath@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz" + resolved "https://registry.npmjs.org/parse-filepath/-/parse-filepath-1.0.2.tgz#a632127f53aaf3d15876f5872f3ffac763d6c891" integrity sha512-FwdRXKCohSVeXqwtYonZTXtbGJKrn+HNyWDYVcp5yuJlesTwNH4rsmRZ+GrKAPJ5bLpRxESMeS+Rl0VCHRvB2Q== dependencies: is-absolute "^1.0.0" map-cache "^0.2.0" path-root "^0.1.1" -parse-json@^2.2.0: - version "2.2.0" - resolved "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz" - integrity sha512-QR/GGaKCkhwk1ePQNYDRKYZ3mwU9ypsKhB0XyFnLQdomyEqk3e8wpW3V5Jp88zbxK4n5ST1nqo+g9juTpownhQ== - dependencies: - error-ex "^1.2.0" - -parse-node-version@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz" - integrity sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA== - parse-passwd@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/parse-passwd/-/parse-passwd-1.0.0.tgz" @@ -3789,33 +2885,11 @@ parse5@^7.1.2: dependencies: entities "^4.4.0" -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz" - integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== - -path-exists@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz" - integrity sha512-yTltuKuhtNeFJKa1PiRzfLAU5182q1y4Eb4XCJ3PBqyzEDkAZRzBrKKBct682ls9reBVHf9udYLN5Nd+K1B9BQ== - dependencies: - pinkie-promise "^2.0.0" - path-exists@^4.0.0: version "4.0.0" resolved "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz" - integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== - path-key@^3.1.0: version "3.1.1" resolved "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -3838,26 +2912,15 @@ path-root@^0.1.1: dependencies: path-root-regex "^0.1.0" -path-to-regexp@^1.7.0: - version "1.8.0" - resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz#887b3ba9d84393e87a0a0b9f4cb756198b53548a" - integrity sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA== - dependencies: - isarray "0.0.1" - path-to-regexp@^2.2.1: version "2.4.0" resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-2.4.0.tgz" integrity sha512-G6zHoVqC6GGTQkZwF4lkuEyMbVOjoBKAEybQUypI1WTkqinCOrq2x6U2+phkJ1XsEMTy4LjtwPI7HW+NVrRR2w== -path-type@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz" - integrity sha512-S4eENJz1pkiQn9Znv33Q+deTOKmbl+jj1Fl+qiP/vYezj+S8x+J3Uo0ISrx/QoEvIlOaDWJhPaRd1flJ9HXZqg== - dependencies: - graceful-fs "^4.1.2" - pify "^2.0.0" - pinkie-promise "^2.0.0" +path-to-regexp@^6.2.1: + version "6.2.2" + resolved "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.2.tgz#324377a83e5049cbecadc5554d6a63a9a4866b36" + integrity sha512-GQX3SSMokngb36+whdpRXE+3f9V8UzyAorlYvOGx87ufGHehNTn5lCxrKtLyZ4Yl/wEKnNnr98ZzOwwDZV5ogw== path-type@^4.0.0: version "4.0.0" @@ -3866,7 +2929,7 @@ path-type@^4.0.0: pathval@^1.1.1: version "1.1.1" - resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz" + resolved "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== performance-now@^2.1.0: @@ -3884,23 +2947,6 @@ picomatch@^2.0.4, picomatch@^2.2.1, picomatch@^2.3.1: resolved "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== -pify@^2.0.0: - version "2.3.0" - resolved "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz" - integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== - -pinkie-promise@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz" - integrity sha512-0Gni6D4UcLTbv9c57DfxDGdr41XfgUjqWZu492f0cIGr16zDU06BWP/RAEvOuo7CQ0CNjHaLlM59YJJFm3NWlw== - dependencies: - pinkie "^2.0.0" - -pinkie@^2.0.0: - version "2.0.4" - resolved "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz" - integrity sha512-MnUuEycAemtSaeFSjXKW/aroV7akBbY+Sv+RkyqFjgAe73F+MR0TBWKBRDkmfWq/HiFmdavfZ1G7h4SPZXaCSg== - pkg-dir@^4.2.0: version "4.2.0" resolved "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" @@ -3931,11 +2977,6 @@ pn@^1.1.0: resolved "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz" integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - power-assert-context-formatter@^1.0.7: version "1.2.0" resolved "https://registry.npmjs.org/power-assert-context-formatter/-/power-assert-context-formatter-1.2.0.tgz" @@ -4040,12 +3081,7 @@ prelude-ls@~1.1.2: resolved "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz" integrity sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w== -pretty-hrtime@^1.0.0: - version "1.0.3" - resolved "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz" - integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== - -process-nextick-args@^2.0.0, process-nextick-args@~2.0.0: +process-nextick-args@~2.0.0: version "2.0.1" resolved "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz" integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== @@ -4060,28 +3096,16 @@ psl@^1.1.28, psl@^1.1.33: resolved "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz" integrity sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag== -pump@^2.0.0: - version "2.0.1" - resolved "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz" - integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -pumpify@^1.3.5: - version "1.5.1" - resolved "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz" - integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== - dependencies: - duplexify "^3.6.0" - inherits "^2.0.3" - pump "^2.0.0" - -punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.0: +punycode@^2.1.0, punycode@^2.1.1: version "2.3.0" resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz#f67fa67c94da8f4d0cfff981aee4118064199b8f" integrity sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA== +punycode@^2.3.0: + version "2.3.1" + resolved "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5" + integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg== + qs@~6.5.2: version "6.5.3" resolved "https://registry.npmjs.org/qs/-/qs-6.5.3.tgz" @@ -4107,6 +3131,11 @@ queue-microtask@^1.2.2: resolved "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243" integrity sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A== +queue-tick@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/queue-tick/-/queue-tick-1.0.1.tgz#f6f07ac82c1fd60f82e098b417a80e52f1f4c142" + integrity sha512-kJt5qhMxoszgU/62PLP1CJytzd2NKetjSRnyuj31fDd3Rlcz3fzlFdFLD1SItunPwyqEOkca6GbV612BWfaBag== + randombytes@^2.1.0: version "2.1.0" resolved "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" @@ -4114,23 +3143,6 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -read-pkg-up@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz" - integrity sha512-WD9MTlNtI55IwYUS27iHh9tK3YoIVhxis8yKhLpTqWtml739uXc9NWTpxoHkfZf3+DkCCsXox94/VWZniuZm6A== - dependencies: - find-up "^1.0.0" - read-pkg "^1.0.0" - -read-pkg@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz" - integrity sha512-7BGwRHqt4s/uVbuyoeejRn4YmFnYZiFl4AuaeXHlgZf3sONF0SOGlxs2Pw8g6hCKupo08RafIO5YXFNOKTfwsQ== - dependencies: - load-json-file "^1.0.0" - normalize-package-data "^2.3.2" - path-type "^1.0.0" - readable-stream@^1.0.26-2, readable-stream@^1.0.26-4: version "1.1.14" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz" @@ -4141,7 +3153,16 @@ readable-stream@^1.0.26-2, readable-stream@^1.0.26-4: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.5, readable-stream@^2.3.6, readable-stream@~2.3.6: +readable-stream@^3.4.0: + version "3.6.2" + resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~2.3.6: version "2.3.8" resolved "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz" integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== @@ -4154,15 +3175,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - readdirp@~3.6.0: version "3.6.0" resolved "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" @@ -4170,13 +3182,6 @@ readdirp@~3.6.0: dependencies: picomatch "^2.2.1" -rechoir@^0.6.2: - version "0.6.2" - resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz" - integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== - dependencies: - resolve "^1.1.6" - rechoir@^0.8.0: version "0.8.0" resolved "https://registry.npmjs.org/rechoir/-/rechoir-0.8.0.tgz#49f866e0d32146142da3ad8f0eff352b3215ff22" @@ -4189,59 +3194,20 @@ regenerator-runtime@^0.13.11: resolved "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz" integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -remove-bom-buffer@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/remove-bom-buffer/-/remove-bom-buffer-3.0.0.tgz" - integrity sha512-8v2rWhaakv18qcvNeli2mZ/TMTL2nEyAKRvzo1WtnZBl15SHyEhrCu2/xKlJyUFKHiHgfXIyuY6g2dObJJycXQ== - dependencies: - is-buffer "^1.1.5" - is-utf8 "^0.2.1" - -remove-bom-stream@^1.2.0: - version "1.2.0" - resolved "https://registry.npmjs.org/remove-bom-stream/-/remove-bom-stream-1.2.0.tgz" - integrity sha512-wigO8/O08XHb8YPzpDDT+QmRANfW6vLqxfaXm1YXhnFf3AkSLyjfG3GEFg4McZkmgL7KvCj5u2KczkvSP6NfHA== - dependencies: - remove-bom-buffer "^3.0.0" - safe-buffer "^5.1.0" - through2 "^2.0.3" - -remove-trailing-separator@^1.0.1, remove-trailing-separator@^1.1.0: +remove-trailing-separator@^1.1.0: version "1.1.0" resolved "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz" integrity sha512-/hS+Y0u3aOfIETiaiirUFwDBDzmXPvO+jAfKTitUngIPzdKc6Z0LoFjM/CK5PL4C+eKwHohlHAb6H0VFfmmUsw== -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz" - integrity sha512-PV0dzCYDNfRi1jCDbJzpW7jNNDRuCOG/jI5ctQcGKt/clZD+YcPS3yIlWuTJMmESC8aevCFmWJy5wjAFgNqN6w== - -replace-ext@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.1.tgz" - integrity sha512-yD5BHCe7quCgBph4rMQ+0KkIRKwWCrHDOX1p1Gp6HwjPM5kVoCdKGNhN7ydqqsX6lJEnQDKZ/tFMiEdQ1dvPEw== +replace-ext@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/replace-ext/-/replace-ext-2.0.0.tgz#9471c213d22e1bcc26717cd6e50881d88f812b06" + integrity sha512-UszKE5KVK6JvyD92nzMn9cDapSk6w/CaFZ96CnmDMUqH9oowfxF/ZjRITD25H4DnOQClLA4/j7jLGXXLVKxAug== -replace-homedir@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/replace-homedir/-/replace-homedir-1.0.0.tgz" - integrity sha512-CHPV/GAglbIB1tnQgaiysb8H2yCy8WQ7lcEwQ/eT+kLj0QHV8LnJW0zpqpE7RSkrMSRoa+EBoag86clf7WAgSg== - dependencies: - homedir-polyfill "^1.0.1" - is-absolute "^1.0.0" - remove-trailing-separator "^1.1.0" +replace-homedir@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/replace-homedir/-/replace-homedir-2.0.0.tgz#245bd9c909275e0beee75eae85bb40780cd61903" + integrity sha512-bgEuQQ/BHW0XkkJtawzrfzHFSN70f/3cNOiHa2QsYxqrjaC30X1k74FJ6xswVBP0sr0SpGIdVFuPwfrYziVeyw== request-promise-core@1.1.4: version "1.1.4" @@ -4290,11 +3256,6 @@ require-directory@^2.1.1: resolved "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz" integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz" - integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== - requires-port@^1.0.0: version "1.0.0" resolved "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -4320,26 +3281,12 @@ resolve-from@^5.0.0: resolved "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== -resolve-options@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/resolve-options/-/resolve-options-1.1.0.tgz" - integrity sha512-NYDgziiroVeDC29xq7bp/CacZERYsA9bXYd1ZmcJlF3BcrZv5pTb4NG7SjdyKDnXZ84aC4vo2u6sNKIA1LCu/A== - dependencies: - value-or-function "^3.0.0" - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - -resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.4.0: - version "1.22.1" - resolved "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz" - integrity sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw== +resolve-options@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/resolve-options/-/resolve-options-2.0.0.tgz#a1a57a9949db549dd075de3f5550675f02f1e4c5" + integrity sha512-/FopbmmFOQCfsCx77BRFdKOniglTiHumLgwvd6IDPihy1GKkadZbgQJBcTb2lMzSR1pndzd96b1nZrreZ7+9/A== dependencies: - is-core-module "^2.9.0" - path-parse "^1.0.7" - supports-preserve-symlinks-flag "^1.0.0" + value-or-function "^4.0.0" resolve@^1.20.0: version "1.22.2" @@ -4350,11 +3297,6 @@ resolve@^1.20.0: path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - reusify@^1.0.4: version "1.0.4" resolved "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" @@ -4372,7 +3314,7 @@ run-parallel@^1.1.9: dependencies: queue-microtask "^1.2.2" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2: +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: version "5.2.1" resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== @@ -4382,13 +3324,6 @@ safe-buffer@~5.1.0, safe-buffer@~5.1.1: resolved "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz" integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz" @@ -4424,17 +3359,12 @@ schema-utils@^3.2.0: ajv "^6.12.5" ajv-keywords "^3.5.2" -semver-greatest-satisfied-range@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-1.1.0.tgz" - integrity sha512-Ny/iyOzSSa8M5ML46IAx3iXc6tfOsYU2R4AXi2UpHk60Zrgyq6eqPj/xiOfS0rRl/iiQ/rdJkVjw/5cdUyCntQ== +semver-greatest-satisfied-range@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/semver-greatest-satisfied-range/-/semver-greatest-satisfied-range-2.0.0.tgz#4b62942a7a1ccbdb252e5329677c003bac546fe7" + integrity sha512-lH3f6kMbwyANB7HuOWRMlLCa2itaCrZJ+SAqqkSZrZKO/cAsk2EOyaKHUtNkVLFyFW9pct22SFesFp3Z7zpA0g== dependencies: - sver-compat "^1.5.0" - -"semver@2 || 3 || 4 || 5": - version "5.7.1" - resolved "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + sver "^1.8.3" semver@^6.3.0: version "6.3.0" @@ -4462,21 +3392,6 @@ serialize-javascript@^6.0.1: dependencies: randombytes "^2.1.0" -set-blocking@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz" - integrity sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw== - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - shallow-clone@^3.0.0: version "3.0.1" resolved "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz#8f2981ad92531f55035b01fb230769a40e02efa3" @@ -4506,64 +3421,23 @@ shiki@^0.14.7: vscode-oniguruma "^1.7.0" vscode-textmate "^8.0.0" -sinon@^17.0.1: - version "17.0.1" - resolved "https://registry.npmjs.org/sinon/-/sinon-17.0.1.tgz#26b8ef719261bf8df43f925924cccc96748e407a" - integrity sha512-wmwE19Lie0MLT+ZYNpDymasPHUKTaZHUH/pKEubRXIzySv9Atnlw+BUMGCzWgV7b7wO+Hw6f1TEOr0IUnmU8/g== +sinon@^17.0.2: + version "17.0.2" + resolved "https://registry.npmjs.org/sinon/-/sinon-17.0.2.tgz#470894bcc2d24b01bad539722ea46da949892405" + integrity sha512-uihLiaB9FhzesElPDFZA7hDcNABzsVHwr3YfmM9sBllVwab3l0ltGlRV1XhpNfIacNDLGD1QRZNLs5nU5+hTuA== dependencies: - "@sinonjs/commons" "^3.0.0" + "@sinonjs/commons" "^3.0.1" "@sinonjs/fake-timers" "^11.2.2" "@sinonjs/samsam" "^8.0.0" - diff "^5.1.0" - nise "^5.1.5" - supports-color "^7.2.0" + diff "^5.2.0" + nise "^5.1.9" + supports-color "^7" slash@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - source-map-support@~0.5.20: version "0.5.21" resolved "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" @@ -4572,16 +3446,6 @@ source-map-support@~0.5.20: buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz" - integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== - source-map@^0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz" @@ -4592,43 +3456,10 @@ source-map@^0.7.4: resolved "https://registry.npmjs.org/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -sparkles@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/sparkles/-/sparkles-1.0.1.tgz" - integrity sha512-dSO0DDYUahUt/0/pD/Is3VIm5TGJjludZ0HVymmhYF6eNA53PVLhnUk0znSYbH8IYBuJdCE+1luR22jNLMaQdw== - -spdx-correct@^3.0.0: - version "3.2.0" - resolved "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz" - integrity sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.13" - resolved "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.13.tgz" - integrity sha512-XkD+zwiqXHikFZm4AX/7JSCXA98U5Db4AFd5XUg/+9UNtnH75+Z9KxtpYiJZx36mUDVOwH83pl7yvCer6ewM3w== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" +sparkles@^2.1.0: + version "2.1.0" + resolved "https://registry.npmjs.org/sparkles/-/sparkles-2.1.0.tgz#8ad4e8cecba7e568bba660c39b6db46625ecf1ad" + integrity sha512-r7iW1bDw8R/cFifrD3JnQJX0K1jqT0kprL48BiBpLZLJPmAm34zsVBsK5lc7HirZYZqMW65dOXZgbAGt/I6frg== sshpk@^1.7.0: version "1.17.0" @@ -4645,33 +3476,22 @@ sshpk@^1.7.0: safer-buffer "^2.0.2" tweetnacl "~0.14.0" -stack-trace@0.0.10: - version "0.0.10" - resolved "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz" - integrity sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg== - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - stealthy-require@^1.1.1: version "1.1.1" resolved "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz" integrity sha512-ZnWpYnYugiOVEY5GkcuJK1io5V8QmNYChG62gSit9pQVGErXtrKuPC55ITaVSukmMta5qpMU7vqLt2Lnni4f/g== -stream-exhaust@^1.0.1: +stream-composer@^1.0.2: version "1.0.2" - resolved "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz" - integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== + resolved "https://registry.npmjs.org/stream-composer/-/stream-composer-1.0.2.tgz#7ee61ca1587bf5f31b2e29aa2093cbf11442d152" + integrity sha512-bnBselmwfX5K10AH6L4c8+S5lgZMWI7ZYrz2rvYjCPB2DIMC4Ig8OpxGpNJSxRZ58oti7y1IcNvjBAz9vW5m4w== + dependencies: + streamx "^2.13.2" -stream-shift@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz" - integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== +stream-exhaust@^1.0.2: + version "1.0.2" + resolved "https://registry.npmjs.org/stream-exhaust/-/stream-exhaust-1.0.2.tgz#acdac8da59ef2bc1e17a2c0ccf6c320d120e555d" + integrity sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw== streamqueue@0.0.6: version "0.0.6" @@ -4680,16 +3500,17 @@ streamqueue@0.0.6: dependencies: readable-stream "^1.0.26-2" -string-width@^1.0.1, string-width@^1.0.2: - version "1.0.2" - resolved "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz" - integrity sha512-0XsVpQLnVCXHJfyEs8tC0zpTVIr5PKKsQtkT29IwupnPTjtPmQ3xT/4yCREF9hYkV/3M3kzcUTSAZT6a6h81tw== +streamx@^2.12.0, streamx@^2.12.5, streamx@^2.13.2, streamx@^2.14.0: + version "2.16.1" + resolved "https://registry.npmjs.org/streamx/-/streamx-2.16.1.tgz#2b311bd34832f08aa6bb4d6a80297c9caef89614" + integrity sha512-m9QYj6WygWyWa3H1YY69amr4nVgy61xfjys7xO7kviL5rfIEc2naf+ewFiOA+aEJD7y0JO3h2GoiUv4TDwEGzQ== dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - strip-ansi "^3.0.0" + fast-fifo "^1.1.0" + queue-tick "^1.0.1" + optionalDependencies: + bare-events "^2.2.0" -string-width@^4.1.0, string-width@^4.2.0: +string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.3: version "4.2.3" resolved "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -4698,6 +3519,13 @@ string-width@^4.1.0, string-width@^4.2.0: is-fullwidth-code-point "^3.0.0" strip-ansi "^6.0.1" +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz" @@ -4719,13 +3547,6 @@ stringifier@^1.3.0: traverse "^0.6.6" type-name "^2.0.1" -strip-ansi@^3.0.0, strip-ansi@^3.0.1: - version "3.0.1" - resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz" - integrity sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg== - dependencies: - ansi-regex "^2.0.0" - strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz" @@ -4733,13 +3554,6 @@ strip-ansi@^6.0.0, strip-ansi@^6.0.1: dependencies: ansi-regex "^5.0.1" -strip-bom@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz" - integrity sha512-kwrX1y7czp1E69n2ajbG65mIo9dqvJ+8aBQXOGVxqwvNbsXdFM6Lq37dLAY3mknUwru8CfcCbfOLL/gMo+fi3g== - dependencies: - is-utf8 "^0.2.0" - strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" @@ -4764,7 +3578,7 @@ supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@^7.1.0, supports-color@^7.2.0: +supports-color@^7, supports-color@^7.1.0: version "7.2.0" resolved "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== @@ -4776,13 +3590,12 @@ supports-preserve-symlinks-flag@^1.0.0: resolved "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== -sver-compat@^1.5.0: - version "1.5.0" - resolved "https://registry.npmjs.org/sver-compat/-/sver-compat-1.5.0.tgz" - integrity sha512-aFTHfmjwizMNlNE6dsGmoAM4lHjL0CyiobWaFiXWSlD7cIxshW422Nb8KbXCmR6z+0ZEPY+daXJrDyh/vuwTyg== - dependencies: - es6-iterator "^2.0.1" - es6-symbol "^3.1.1" +sver@^1.8.3: + version "1.8.4" + resolved "https://registry.npmjs.org/sver/-/sver-1.8.4.tgz#9bd6f6265263f01aab152df935dc7a554c15673f" + integrity sha512-71o1zfzyawLfIWBOmw8brleKyvnbn73oVHNCsu51uPMz/HWiKkkXsI31JjHW5zqXEqnPYkIiHd8ZmL7FCimLEA== + optionalDependencies: + semver "^6.3.0" symbol-tree@^3.2.2, symbol-tree@^3.2.4: version "3.2.4" @@ -4794,6 +3607,13 @@ tapable@^2.1.1, tapable@^2.2.0: resolved "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" integrity sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ== +teex@^1.0.1: + version "1.0.1" + resolved "https://registry.npmjs.org/teex/-/teex-1.0.1.tgz#b8fa7245ef8e8effa8078281946c85ab780a0b12" + integrity sha512-eYE6iEI62Ni1H8oIa7KlDU6uQBtqr4Eajni3wX7rpfXD8ysFx8z0+dri+KWEPWpBsxXfxu58x/0jvTVT1ekOSg== + dependencies: + streamx "^2.12.5" + terser-webpack-plugin@^5.3.10: version "5.3.10" resolved "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.10.tgz#904f4c9193c6fd2a03f693a2150c62a92f40d199" @@ -4815,15 +3635,7 @@ terser@^5.26.0: commander "^2.20.0" source-map-support "~0.5.20" -through2-filter@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/through2-filter/-/through2-filter-3.0.0.tgz" - integrity sha512-jaRjI2WxN3W1V8/FMZ9HKIBXixtiqs3SQSX4/YGIiP3gL6djW48VoZq9tDqeCWs3MT8YY5wb/zli8VW8snY1CA== - dependencies: - through2 "~2.0.0" - xtend "~4.0.0" - -through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: +through2@^2.0.0: version "2.0.5" resolved "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz" integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== @@ -4831,39 +3643,11 @@ through2@^2.0.0, through2@^2.0.3, through2@~2.0.0: readable-stream "~2.3.6" xtend "~4.0.1" -time-stamp@^1.0.0: - version "1.1.0" - resolved "https://registry.npmjs.org/time-stamp/-/time-stamp-1.1.0.tgz" - integrity sha512-gLCeArryy2yNTRzTGKbZbloctj64jkZ57hj5zdraXue6aFgd6PmvVtEyiUU+hvU0v7q08oVv8r8ev0tRo6bvgw== - -to-absolute-glob@^2.0.0: - version "2.0.2" - resolved "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz" - integrity sha512-rtwLUQEwT8ZeKQbyFJyomBRYXyE16U5VKuy0ftxLMK/PZb2fkOsg5r9kHdauuVDbsNdIBoC/HCthpidamQFXYA== - dependencies: - is-absolute "^1.0.0" - is-negated-glob "^1.0.0" - to-fast-properties@^2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -4871,22 +3655,12 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -to-through@^2.0.0: - version "2.0.0" - resolved "https://registry.npmjs.org/to-through/-/to-through-2.0.0.tgz" - integrity sha512-+QIz37Ly7acM4EMdw2PRN389OneM5+d844tirkGp4dPKzI5OE72V9OsbFp+CIYJDahZ41ZV05hNtcPAQUAm9/Q== +to-through@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/to-through/-/to-through-3.0.0.tgz#bf4956eaca5a0476474850a53672bed6906ace54" + integrity sha512-y8MN937s/HVhEoBU1SxfHC+wxCHkV1a9gW8eAdTadYh/bGyesZIVcbjI+mSpFbSVwQici/XjBjuUyri1dnXwBw== dependencies: - through2 "^2.0.3" + streamx "^2.12.5" tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: version "2.5.0" @@ -4897,9 +3671,9 @@ tough-cookie@^2.3.3, tough-cookie@^2.3.4, tough-cookie@~2.5.0: punycode "^2.1.1" tough-cookie@^4.1.2: - version "4.1.3" - resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.3.tgz#97b9adb0728b42280aa3d814b6b999b2ff0318bf" - integrity sha512-aX/y5pVRkfRnfmuX+OdbSdXvPe6ieKX/G2s7e98f4poJHnqH3281gDPm/metm6E/WRamfx7WC4HUqkWHfQHprw== + version "4.1.4" + resolved "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.4.tgz#945f1461b45b5a8c76821c33ea49c3ac192c1b36" + integrity sha512-Loo5UUvLD9ScZ6jh8beX1T6sO1w2/MpCRpEP7V280GKMVUQ0Jzar2U3UJPsrdbziLEMMhu3Ujnq//rhiFuIeag== dependencies: psl "^1.1.33" punycode "^2.1.1" @@ -5019,21 +3793,6 @@ type-name@^2.0.1: resolved "https://registry.npmjs.org/type-name/-/type-name-2.0.2.tgz" integrity sha512-kkgkuqR/jKdKO5oh/I2SMu2dGbLXoJq0zkdgbxaqYK+hr9S9edwVVGf+tMUFTx2gH9TN2+Zu9JZ/Njonb3cjhA== -type@^1.0.1: - version "1.2.0" - resolved "https://registry.npmjs.org/type/-/type-1.2.0.tgz" - integrity sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg== - -type@^2.7.2: - version "2.7.2" - resolved "https://registry.npmjs.org/type/-/type-2.7.2.tgz" - integrity sha512-dzlvlNlt6AXU7EBSfpAscydQ7gXB+pPGsPnfJnZpiNJBDj7IaJzQlBZYGdEi4R9HmPdBv2XmWJ6YUtoTa7lmCw== - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz" - integrity sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA== - typedoc@^0.25.13: version "0.25.13" resolved "https://registry.npmjs.org/typedoc/-/typedoc-0.25.13.tgz#9a98819e3b2d155a6d78589b46fa4c03768f0922" @@ -5054,44 +3813,20 @@ unc-path-regex@^0.1.2: resolved "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz" integrity sha512-eXL4nmJT7oCpkZsHZUOJo8hcX3GbsiDOa0Qu9F646fi8dT3XuSVopVqAcEiVzSKKH7UoDti23wNX3qGFxcW5Qg== -undertaker-registry@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-1.0.1.tgz" - integrity sha512-UR1khWeAjugW3548EfQmL9Z7pGMlBgXteQpr1IZeZBtnkCJQJIJ1Scj0mb9wQaPvUZ9Q17XqW6TIaPchJkyfqw== - -undertaker@^1.2.1: - version "1.3.0" - resolved "https://registry.npmjs.org/undertaker/-/undertaker-1.3.0.tgz" - integrity sha512-/RXwi5m/Mu3H6IHQGww3GNt1PNXlbeCuclF2QYR14L/2CHPz3DFZkvB5hZ0N/QUkiXWCACML2jXViIQEQc2MLg== - dependencies: - arr-flatten "^1.0.1" - arr-map "^2.0.0" - bach "^1.0.0" - collection-map "^1.0.0" - es6-weak-map "^2.0.1" - fast-levenshtein "^1.0.0" - last-run "^1.1.0" - object.defaults "^1.0.0" - object.reduce "^1.0.0" - undertaker-registry "^1.0.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" +undertaker-registry@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/undertaker-registry/-/undertaker-registry-2.0.0.tgz#d434246e398444740dd7fe4c9543e402ad99e4ca" + integrity sha512-+hhVICbnp+rlzZMgxXenpvTxpuvA67Bfgtt+O9WOE5jo7w/dyiF1VmoZVIHvP2EkUjsyKyTwYKlLhA+j47m1Ew== -unique-stream@^2.0.2: - version "2.3.1" - resolved "https://registry.npmjs.org/unique-stream/-/unique-stream-2.3.1.tgz" - integrity sha512-2nY4TnBE70yoxHkDli7DMazpWiP7xMdCYqU2nBRO0UB+ZpEkGsSija7MvmvnZFUeC+mrgiUfcHSr3LmRFIg4+A== +undertaker@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/undertaker/-/undertaker-2.0.0.tgz#fe4d40dc71823ce5a80f1ecc63ec8b88ad40b54a" + integrity sha512-tO/bf30wBbTsJ7go80j0RzA2rcwX6o7XPBpeFcb+jzoeb4pfMM2zUeSDIkY1AWqeZabWxaQZ/h8N9t35QKDLPQ== dependencies: - json-stable-stringify-without-jsonify "^1.0.1" - through2-filter "^3.0.0" + bach "^2.0.1" + fast-levenshtein "^3.0.0" + last-run "^2.0.0" + undertaker-registry "^2.0.0" universal-deep-strict-equal@^1.2.1: version "1.2.2" @@ -5107,19 +3842,6 @@ universalify@^0.2.0: resolved "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg== -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - update-browserslist-db@^1.0.10: version "1.0.11" resolved "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.11.tgz#9a2a641ad2907ae7b3616506f4b977851db5b940" @@ -5143,11 +3865,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - url-parse@^1.5.3: version "1.5.10" resolved "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1" @@ -5156,12 +3873,7 @@ url-parse@^1.5.3: querystringify "^2.1.1" requires-port "^1.0.0" -use@^3.1.0: - version "3.1.1" - resolved "https://registry.npmjs.org/use/-/use-3.1.1.tgz" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -util-deprecate@~1.0.1: +util-deprecate@^1.0.1, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz" integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== @@ -5176,25 +3888,15 @@ v8-compile-cache-lib@^3.0.1: resolved "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== -v8flags@^3.2.0: - version "3.2.0" - resolved "https://registry.npmjs.org/v8flags/-/v8flags-3.2.0.tgz" - integrity sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg== - dependencies: - homedir-polyfill "^1.0.1" - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" +v8flags@^4.0.0: + version "4.0.1" + resolved "https://registry.npmjs.org/v8flags/-/v8flags-4.0.1.tgz#98fe6c4308317c5f394d85a435eb192490f7e132" + integrity sha512-fcRLaS4H/hrZk9hYwbdRM35D0U8IYMfEClhXxCivOojl+yTRAZH3Zy2sSy6qVCiGbV9YAtPssP6jaChqC9vPCg== -value-or-function@^3.0.0: - version "3.0.0" - resolved "https://registry.npmjs.org/value-or-function/-/value-or-function-3.0.0.tgz" - integrity sha512-jdBB2FrWvQC/pnPtIqcLsMaQgjhdb6B7tk1MMyTKapox+tQZbdRP4uLxu/JY0t7fbfDCUMnuelzEYv5GsxHhdg== +value-or-function@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/value-or-function/-/value-or-function-4.0.0.tgz#70836b6a876a010dc3a2b884e7902e9db064378d" + integrity sha512-aeVK81SIuT6aMJfNo9Vte8Dw0/FZINGBV8BfCraGtqVxIeLAEhJyoWs8SmvRVmXfGss2PmmOwZCuBPbZR+IYWg== verror@1.10.0: version "1.10.0" @@ -5205,53 +3907,56 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vinyl-fs@^3.0.0: - version "3.0.3" - resolved "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-3.0.3.tgz" - integrity sha512-vIu34EkyNyJxmP0jscNzWBSygh7VWhqun6RmqVfXePrOwi9lhvRs//dOaGOTRUQr4tx7/zd26Tk5WeSVZitgng== +vinyl-contents@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/vinyl-contents/-/vinyl-contents-2.0.0.tgz#cc2ba4db3a36658d069249e9e36d9e2b41935d89" + integrity sha512-cHq6NnGyi2pZ7xwdHSW1v4Jfnho4TEGtxZHw01cmnc8+i7jgR6bRnED/LbrKan/Q7CvVLbnvA5OepnhbpjBZ5Q== dependencies: - fs-mkdirp-stream "^1.0.0" - glob-stream "^6.1.0" - graceful-fs "^4.0.0" + bl "^5.0.0" + vinyl "^3.0.0" + +vinyl-fs@^4.0.0: + version "4.0.0" + resolved "https://registry.npmjs.org/vinyl-fs/-/vinyl-fs-4.0.0.tgz#06cb36efc911c6e128452f230b96584a9133c3a1" + integrity sha512-7GbgBnYfaquMk3Qu9g22x000vbYkOex32930rBnc3qByw6HfMEAoELjCjoJv4HuEQxHAurT+nvMHm6MnJllFLw== + dependencies: + fs-mkdirp-stream "^2.0.1" + glob-stream "^8.0.0" + graceful-fs "^4.2.11" + iconv-lite "^0.6.3" is-valid-glob "^1.0.0" - lazystream "^1.0.0" - lead "^1.0.0" - object.assign "^4.0.4" - pumpify "^1.3.5" - readable-stream "^2.3.3" - remove-bom-buffer "^3.0.0" - remove-bom-stream "^1.2.0" - resolve-options "^1.1.0" - through2 "^2.0.0" - to-through "^2.0.0" - value-or-function "^3.0.0" - vinyl "^2.0.0" - vinyl-sourcemap "^1.1.0" + lead "^4.0.0" + normalize-path "3.0.0" + resolve-options "^2.0.0" + stream-composer "^1.0.2" + streamx "^2.14.0" + to-through "^3.0.0" + value-or-function "^4.0.0" + vinyl "^3.0.0" + vinyl-sourcemap "^2.0.0" + +vinyl-sourcemap@^2.0.0: + version "2.0.0" + resolved "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-2.0.0.tgz#422f410a0ea97cb54cebd698d56a06d7a22e0277" + integrity sha512-BAEvWxbBUXvlNoFQVFVHpybBbjW1r03WhohJzJDSfgrrK5xVYIDTan6xN14DlyImShgDRv2gl9qhM6irVMsV0Q== + dependencies: + convert-source-map "^2.0.0" + graceful-fs "^4.2.10" + now-and-later "^3.0.0" + streamx "^2.12.5" + vinyl "^3.0.0" + vinyl-contents "^2.0.0" -vinyl-sourcemap@^1.1.0: - version "1.1.0" - resolved "https://registry.npmjs.org/vinyl-sourcemap/-/vinyl-sourcemap-1.1.0.tgz" - integrity sha512-NiibMgt6VJGJmyw7vtzhctDcfKch4e4n9TBeoWlirb7FMg9/1Ov9k+A5ZRAtywBpRPiyECvQRQllYM8dECegVA== - dependencies: - append-buffer "^1.0.2" - convert-source-map "^1.5.0" - graceful-fs "^4.1.6" - normalize-path "^2.1.1" - now-and-later "^2.0.0" - remove-bom-buffer "^3.0.0" - vinyl "^2.0.0" - -vinyl@^2.0.0: - version "2.2.1" - resolved "https://registry.npmjs.org/vinyl/-/vinyl-2.2.1.tgz" - integrity sha512-LII3bXRFBZLlezoG5FfZVcXflZgWP/4dCwKtxd5ky9+LOtM4CS3bIRQsmR1KMnMW07jpE8fqR2lcxPZ+8sJIcw== +vinyl@^3.0.0: + version "3.0.0" + resolved "https://registry.npmjs.org/vinyl/-/vinyl-3.0.0.tgz#11e14732bf56e2faa98ffde5157fe6c13259ff30" + integrity sha512-rC2VRfAVVCGEgjnxHUnpIVh3AGuk62rP3tqVrn+yab0YH7UULisC085+NYH+mnqf3Wx4SpSi1RQMwudL89N03g== dependencies: - clone "^2.1.1" - clone-buffer "^1.0.0" + clone "^2.1.2" clone-stats "^1.0.0" - cloneable-readable "^1.0.0" - remove-trailing-separator "^1.0.1" - replace-ext "^1.0.0" + remove-trailing-separator "^1.1.0" + replace-ext "^2.0.0" + teex "^1.0.1" vscode-oniguruma@^1.7.0: version "1.7.0" @@ -5420,11 +4125,6 @@ whatwg-url@^7.0.0: tr46 "^1.0.1" webidl-conversions "^4.0.2" -which-module@^1.0.0: - version "1.0.0" - resolved "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz" - integrity sha512-F6+WgncZi/mJDrammbTuHe1q0R5hOXv/mBaiNA2TCNT/LTHusX0V+CJnj9XT8ki5ln2UZyyddDgHfCzyrOH7MQ== - which@^1.2.14: version "1.3.1" resolved "https://registry.npmjs.org/which/-/which-1.3.1.tgz" @@ -5454,14 +4154,6 @@ workerpool@6.2.1: resolved "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz" integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz" - integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi@^7.0.0: version "7.0.0" resolved "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz" @@ -5484,9 +4176,9 @@ ws@^5.2.0: async-limiter "~1.0.0" ws@^8.13.0: - version "8.14.2" - resolved "https://registry.npmjs.org/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" - integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== + version "8.17.0" + resolved "https://registry.npmjs.org/ws/-/ws-8.17.0.tgz#d145d18eca2ed25aaf791a183903f7be5e295fea" + integrity sha512-uJq6108EgZMAl20KagGkzCKfMEjxmKvZHG7Tlq0Z6nOky7YF7aq4mOx6xK8TJ/i1LeK4Qus7INktacctDgY8Ow== xml-name-validator@^3.0.0: version "3.0.0" @@ -5503,16 +4195,11 @@ xmlchars@^2.2.0: resolved "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== -xtend@^4.0.0, xtend@~4.0.0, xtend@~4.0.1: +xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -y18n@^3.2.1: - version "3.2.2" - resolved "https://registry.npmjs.org/y18n/-/y18n-3.2.2.tgz" - integrity sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz" @@ -5538,14 +4225,6 @@ yargs-parser@^20.2.2: resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz" integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== -yargs-parser@^5.0.1: - version "5.0.1" - resolved "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.1.tgz" - integrity sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA== - dependencies: - camelcase "^3.0.0" - object.assign "^4.1.0" - yargs-unparser@2.0.0: version "2.0.0" resolved "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz" @@ -5556,7 +4235,7 @@ yargs-unparser@2.0.0: flat "^5.0.2" is-plain-obj "^2.1.0" -yargs@16.2.0: +yargs@16.2.0, yargs@^16.2.0: version "16.2.0" resolved "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz" integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== @@ -5569,25 +4248,6 @@ yargs@16.2.0: y18n "^5.0.5" yargs-parser "^20.2.2" -yargs@^7.1.0: - version "7.1.2" - resolved "https://registry.npmjs.org/yargs/-/yargs-7.1.2.tgz" - integrity sha512-ZEjj/dQYQy0Zx0lgLMLR8QuaqTihnxirir7EwUHp1Axq4e3+k8jXU5K0VLbNvedv1f4EWtBonDIZm0NUr+jCcA== - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^5.0.1" - yn@3.1.1: version "3.1.1" resolved "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" From b0d3564dc3023afc1c6d6931c70a66abcc46510a Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Tue, 21 May 2024 10:24:54 -0500 Subject: [PATCH 11/19] Fixing the eachComponent method to have same signature as 4.x renderer eachComponent. --- package.json | 3 +- .../validation/rules/validateRequired.ts | 15 +- src/utils/__tests__/fixtures/components.json | 90 +++ src/utils/__tests__/fixtures/components2.json | 512 +++++++++++++++++ src/utils/__tests__/fixtures/components3.json | 517 ++++++++++++++++++ src/utils/__tests__/fixtures/components4.json | 94 ++++ src/utils/__tests__/fixtures/components5.json | 27 + src/utils/__tests__/fixtures/submission1.json | 19 + src/utils/__tests__/formUtil.test.ts | 279 +++++++++- src/utils/__tests__/unwind.test.ts | 4 +- src/utils/formUtil.ts | 62 ++- yarn.lock | 5 + 12 files changed, 1598 insertions(+), 29 deletions(-) create mode 100644 src/utils/__tests__/fixtures/components.json create mode 100644 src/utils/__tests__/fixtures/components2.json create mode 100644 src/utils/__tests__/fixtures/components3.json create mode 100644 src/utils/__tests__/fixtures/components4.json create mode 100644 src/utils/__tests__/fixtures/components5.json create mode 100644 src/utils/__tests__/fixtures/submission1.json diff --git a/package.json b/package.json index 659fc140..9c2a48ff 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,8 @@ "typedoc": "^0.25.13", "typescript": "^5.4.5", "webpack": "^5.91.0", - "webpack-cli": "^5.1.4" + "webpack-cli": "^5.1.4", + "written-number": "^0.11.1" }, "dependencies": { "@types/json-logic-js": "^2.0.7", diff --git a/src/process/validation/rules/validateRequired.ts b/src/process/validation/rules/validateRequired.ts index 96fb872e..bf83a247 100644 --- a/src/process/validation/rules/validateRequired.ts +++ b/src/process/validation/rules/validateRequired.ts @@ -8,6 +8,7 @@ import { DayComponent } from 'types'; import { isEmptyObject } from '../util'; +import { isComponentNestedDataType } from 'utils/formUtil' import { ProcessorInfo } from 'types/process/ProcessorInfo'; const isAddressComponent = (component: any): component is AddressComponent => { @@ -28,7 +29,11 @@ const isComponentThatCannotHaveFalseValue = (component: any): boolean => { return component.type === 'checkbox' || component.type === 'selectboxes' } -const valueIsPresent = (value: any, considerFalseTruthy: boolean): boolean => { +const valueIsPresent = ( + value: any, + considerFalseTruthy: boolean, + isNestedDataType?: boolean +): boolean => { // Evaluate for 3 out of 6 falsy values ("", null, undefined), don't check for 0 // and only check for false under certain conditions if (value === null || value === undefined || value === "" || (!considerFalseTruthy && value === false)) { @@ -43,8 +48,8 @@ const valueIsPresent = (value: any, considerFalseTruthy: boolean): boolean => { return false; } // Recursively evaluate - else if (typeof value === 'object') { - return Object.values(value).some((val) => valueIsPresent(val, considerFalseTruthy)); + else if (typeof value === 'object' && !isNestedDataType) { + return Object.values(value).some((val) => valueIsPresent(val, considerFalseTruthy, isNestedDataType)); } return true; } @@ -74,9 +79,9 @@ export const validateRequiredSync: RuleFnSync = (context: ValidationContext) => return error; } else if (isComponentThatCannotHaveFalseValue(component)) { - return !valueIsPresent(value, false) ? error : null; + return !valueIsPresent(value, false, isComponentNestedDataType(component)) ? error : null; } - return !valueIsPresent(value, true) ? error : null; + return !valueIsPresent(value, true, isComponentNestedDataType(component)) ? error : null; }; export const validateRequiredInfo: ProcessorInfo = { diff --git a/src/utils/__tests__/fixtures/components.json b/src/utils/__tests__/fixtures/components.json new file mode 100644 index 00000000..292726cf --- /dev/null +++ b/src/utils/__tests__/fixtures/components.json @@ -0,0 +1,90 @@ +[ + { + "type": "textfield", + "key": "one", + "order": 1 + }, + { + "input": false, + "key": "parent1", + "components": [ + { + "type": "textfield", + "key": "two", + "order": 2 + }, + { + "input": false, + "key": "parent2", + "columns": [ + { + "components": [ + { + "type": "textfield", + "key": "three", + "order": 3 + } + ] + }, + { + "components": [ + { + "rows": [ + [ + { + "components": [ + { + "key": "four", + "order": 4, + "type": "textfield" + } + ] + }, + { + "components": [ + { + "key": "five", + "order": 5, + "type": "textfield" + } + ] + } + ], + [ + { + "components": [ + { + "key": "six", + "order": 6, + "type": "textfield" + } + ] + }, + { + "components": [ + { + "key": "seven", + "order": 7, + "type": "textarea", + "rows": 3 + } + ] + } + ] + ], + "type": "table" + } + ] + } + ], + "type": "columns" + } + ], + "type": "well" + }, + { + "key": "eight", + "order": 8, + "type": "button" + } +] diff --git a/src/utils/__tests__/fixtures/components2.json b/src/utils/__tests__/fixtures/components2.json new file mode 100644 index 00000000..12d5f4f9 --- /dev/null +++ b/src/utils/__tests__/fixtures/components2.json @@ -0,0 +1,512 @@ +[ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "a", + "label": "A", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "lockKey": true, + "key": "b", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "type": "fieldset", + "components": [ + { + "lockKey": true, + "key": "c", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "type": "columns", + "columns": [ + { + "components": [ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "d", + "label": "D", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "type": "container", + "persistent": true, + "protected": false, + "key": "f", + "label": "F", + "tableView": true, + "components": [ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "g", + "label": "G", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "h", + "label": "H", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "i", + "label": "I", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ], + "tree": true, + "input": true + } + ] + }, + { + "components": [ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "e", + "label": "E", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ] + } + ], + "input": false + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "j", + "label": "J", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ], + "legend": "B", + "tableView": true, + "input": false + }, + { + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "type": "datagrid", + "persistent": true, + "protected": false, + "key": "k", + "label": "K", + "tableView": true, + "components": [ + { + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "hideLabel": true, + "type": "container", + "persistent": true, + "protected": false, + "key": "n", + "label": "N", + "tableView": true, + "components": [ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "o", + "label": "O", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "p", + "label": "P", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "q", + "label": "Q", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ], + "tree": true, + "input": true + }, + { + "hideLabel": true, + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "m", + "label": "M", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "hideLabel": true, + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "l", + "label": "L", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ], + "tree": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "r", + "label": "R", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "button", + "theme": "primary", + "disableOnInvalid": true, + "action": "submit", + "block": false, + "rightIcon": "", + "leftIcon": "", + "size": "md", + "key": "submit", + "tableView": false, + "label": "Submit", + "input": true + }, + { + "label": "Tagpad", + "tableView": false, + "key": "tagpad", + "type": "tagpad", + "input": true, + "components": [ + { + "label": "Text Field", + "tableView": true, + "key": "a", + "type": "textfield", + "input": true + } + ] + } +] diff --git a/src/utils/__tests__/fixtures/components3.json b/src/utils/__tests__/fixtures/components3.json new file mode 100644 index 00000000..4dfaba8b --- /dev/null +++ b/src/utils/__tests__/fixtures/components3.json @@ -0,0 +1,517 @@ +[ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "properties": { + "path": "b" + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "a", + "label": "A", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "lockKey": true, + "key": "b", + "properties": { + "path": "a" + }, + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "type": "fieldset", + "components": [ + { + "lockKey": true, + "key": "c", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "type": "columns", + "columns": [ + { + "components": [ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "d", + "label": "D", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "properties": { + "path": "b" + }, + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "type": "container", + "persistent": true, + "protected": false, + "key": "f", + "label": "F", + "tableView": true, + "components": [ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "g", + "label": "G", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "h", + "label": "H", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "i", + "label": "I", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ], + "tree": true, + "input": true + } + ] + }, + { + "components": [ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "properties": { + "path": "a" + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "e", + "label": "E", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ] + } + ], + "input": false + }, + { + "properties": { + "path": "a" + }, + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "j", + "label": "J", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ], + "legend": "B", + "tableView": true, + "input": false + }, + { + "properties": { + "path": "b" + }, + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "type": "datagrid", + "persistent": true, + "protected": false, + "key": "k", + "label": "K", + "tableView": true, + "components": [ + { + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "hideLabel": true, + "type": "container", + "persistent": true, + "protected": false, + "key": "n", + "label": "N", + "tableView": true, + "components": [ + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "o", + "label": "O", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "p", + "label": "P", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "q", + "label": "Q", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ], + "tree": true, + "input": true + }, + { + "hideLabel": true, + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "properties": { + "path": "a" + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "m", + "label": "M", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "hideLabel": true, + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "l", + "label": "L", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + } + ], + "tree": true, + "input": true + }, + { + "type": "textfield", + "conditional": { + "eq": "", + "when": null, + "show": null + }, + "validate": { + "customPrivate": false, + "custom": "", + "pattern": "", + "maxLength": "", + "minLength": "", + "required": false + }, + "persistent": true, + "unique": false, + "protected": false, + "defaultValue": "", + "multiple": false, + "suffix": "", + "prefix": "", + "placeholder": "", + "key": "r", + "label": "R", + "inputMask": "", + "inputType": "text", + "tableView": true, + "input": true + }, + { + "type": "button", + "theme": "primary", + "disableOnInvalid": true, + "action": "submit", + "block": false, + "rightIcon": "", + "leftIcon": "", + "size": "md", + "key": "submit", + "tableView": false, + "label": "Submit", + "input": true + } +] diff --git a/src/utils/__tests__/fixtures/components4.json b/src/utils/__tests__/fixtures/components4.json new file mode 100644 index 00000000..9c04ad4e --- /dev/null +++ b/src/utils/__tests__/fixtures/components4.json @@ -0,0 +1,94 @@ +[ + { + "type": "textfield", + "key": "one", + "label": "1", + "order": 1 + }, + { + "input": false, + "key": "parent1", + "components": [ + { + "type": "textfield", + "key": "two", + "label": "2", + "order": 2 + }, + { + "input": false, + "key": "parent2", + "columns": [ + { + "components": [ + { + "type": "textfield", + "key": "three", + "label": "3", + "order": 3 + } + ] + }, + { + "components": [ + { + "rows": [ + [ + { + "components": [ + { + "key": "four", + "order": 4, + "label": "4", + "type": "textfield" + } + ] + }, + { + "components": [ + { + "key": "five", + "order": 5, + "type": "textfield" + } + ] + } + ], + [ + { + "components": [ + { + "key": "six", + "order": 6, + "type": "textfield" + } + ] + }, + { + "components": [ + { + "key": "seven", + "order": 7, + "type": "textarea", + "rows": 3 + } + ] + } + ] + ], + "type": "table" + } + ] + } + ], + "type": "columns" + } + ], + "type": "well" + }, + { + "key": "eight", + "order": 8, + "type": "button" + } +] diff --git a/src/utils/__tests__/fixtures/components5.json b/src/utils/__tests__/fixtures/components5.json new file mode 100644 index 00000000..d33299ab --- /dev/null +++ b/src/utils/__tests__/fixtures/components5.json @@ -0,0 +1,27 @@ +[ + { + "label": "HTML", + "tag": "p", + "content": "", + "key": "html", + "type": "htmlelement" + }, + { + "html": "

some text

", + "label": "Content", + "key": "content", + "type": "content" + }, + { + "label": "Text Field", + "key": "textField", + "type": "textfield", + "input": true + }, + { + "label": "Number", + "key": "number", + "type": "number", + "input": true + } +] diff --git a/src/utils/__tests__/fixtures/submission1.json b/src/utils/__tests__/fixtures/submission1.json new file mode 100644 index 00000000..eecd04b6 --- /dev/null +++ b/src/utils/__tests__/fixtures/submission1.json @@ -0,0 +1,19 @@ +{ + "data": { + "name": "John Smith", + "age": "30", + "colors": [ + {"value": "red", "label": "Red"}, + {"value": "blue", "label": "Blue"}, + {"value": "green", "label": "Green"} + ], + "selectboxes": { + "car": false, + "boat": true + }, + "mycontainer": { + "checked": true, + "animalname": "Fluffy" + } + } +} diff --git a/src/utils/__tests__/formUtil.test.ts b/src/utils/__tests__/formUtil.test.ts index 706341c7..8a86f0e1 100644 --- a/src/utils/__tests__/formUtil.test.ts +++ b/src/utils/__tests__/formUtil.test.ts @@ -1,14 +1,277 @@ +import * as fs from 'fs'; import get from "lodash/get"; import { expect } from "chai"; -import { Component } from "types"; - +import { Component, HasChildComponents, NestedComponent, TableComponent } from "types"; +const writtenNumber = require('written-number'); +const components = JSON.parse(fs.readFileSync(__dirname + '/fixtures/components.json').toString()); +const components2 = JSON.parse(fs.readFileSync(__dirname + '/fixtures/components2.json').toString()); +const components3 = JSON.parse(fs.readFileSync(__dirname + '/fixtures/components3.json').toString()); +const components4 = JSON.parse(fs.readFileSync(__dirname + '/fixtures/components4.json').toString()); +const components5 = JSON.parse(fs.readFileSync(__dirname + '/fixtures/components5.json').toString()); +const submission1 = JSON.parse(fs.readFileSync(__dirname + '/fixtures/submission1.json').toString()); import { getContextualRowData, eachComponentDataAsync, isComponentDataEmpty, eachComponent, - eachComponentData + eachComponentData, + isLayoutComponent, + findComponent, + findComponents, + getComponent, + flattenComponents } from "../formUtil"; +import { fastCloneDeep } from 'utils/fastCloneDeep'; + +describe('eachComponent', () => { + it('should iterate through nested components in the right order', () => { + let n = 1; + eachComponent(components, (component: Component) => { + expect((component as any).order).to.equal(n); + n += 1; + }); + }); + + it('should include layouts components if provided', () => { + let numComps = 0; + let numLayout = 0; + eachComponent(components, (component: Component) => { + if (isLayoutComponent(component)) { + numLayout++; + } + else { + numComps++; + } + }, true); + expect(numLayout).to.be.equal(3); + expect(numComps).to.be.equal(8); + }); + + it('Should provide the paths to all of the components', () => { + const paths = [ + 'one', + 'parent1', + 'two', + 'parent2', + 'three', + '', + 'four', + 'five', + 'six', + 'seven', + 'eight' + ]; + const testPaths: string[] = []; + eachComponent(components, (component: Component, path: string) => { + testPaths.push(path); + }, true); + expect(paths).to.deep.equal(testPaths); + }); + + describe('findComponent', () => { + it('should find correct component in nested structure', () => { + findComponent(components4, 'four', null, (component: Component) => { + expect(component.label).to.equal('4'); + }); + }); + it('should find correct component in flat structure', () => { + findComponent(components4, 'one', null, (component: Component) => { + expect(component.label).to.equal('1'); + }); + }); + }); + + it('Should be able to find all textfield components', () => { + const comps = findComponents(components, { type: 'textfield' }); + expect(comps.length).to.equal(6); + }); + + it('Should be able to find components with special properties.', () => { + const comps = findComponents(components3, { 'properties.path': 'a' }); + expect(comps.length).to.equal(4); + expect(comps[0].key).to.equal('b'); + expect(comps[1].key).to.equal('e'); + expect(comps[2].key).to.equal('j'); + expect(comps[3].key).to.equal('m'); + }); + + it('Should be able to generate paths based on component types', () => { + const paths = [ + 'a', + 'b', + 'c', + 'd', + 'f', + 'f.g', + 'f.h', + 'f.i', + 'e', + 'j', + 'k', + 'k.n', + 'k.n.o', + 'k.n.p', + 'k.n.q', + 'k.m', + 'k.l', + 'r', + 'submit', + 'tagpad', + 'tagpad.a', + ]; + const testPaths: string[] = []; + eachComponent(components2, (component: Component, path: string) => { + testPaths.push(path); + }, true); + expect(paths).to.deep.equal(testPaths); + }); + + it('Should still provide the correct paths when it is not recursive', () => { + const paths = [ + 'a', + 'd', + 'f', + 'f.g', + 'f.h', + 'f.i', + 'e', + 'j', + 'k', + 'k.n', + 'k.n.o', + 'k.n.p', + 'k.n.q', + 'k.m', + 'k.l', + 'r', + 'submit', + 'tagpad', + 'tagpad.a', + ]; + const testPaths: string[] = []; + eachComponent(components2, (component: Component, path: string) => { + testPaths.push(path); + }); + expect(paths).to.deep.equal(testPaths); + }); + + it('should be able to block recursion', () => { + let numComps = 0; + let numLayout = 0; + eachComponent(components, (component: Component) => { + if (isLayoutComponent(component)) { + numLayout++; + } + else { + numComps++; + } + + if (component.type === 'table') { + let numInTable = 0; + const tableComponent: TableComponent = component as TableComponent; + tableComponent.rows.forEach((row: Component[]) => { + row.forEach((comp: Component) => { + eachComponent((comp as HasChildComponents).components, () => { + numInTable++; + }); + }); + }); + expect(numInTable).to.be.equal(4); + return true; + } + }, true); + expect(numLayout).to.be.equal(3); + expect(numComps).to.be.equal(4); + }); + + it('should not include `htmlelement` components when `includeAll` is not provided', () => { + let htmlComponentsAmount = 0; + eachComponent(components5, (component: Component) => { + if (component.type === 'htmlelement') { + htmlComponentsAmount++; + } + }); + expect(htmlComponentsAmount).to.be.equal(0); + }); + + it('should include `htmlelement` components when `includeAll` is provided', () => { + let htmlComponentsAmount = 0; + eachComponent(components5, (component: Component) => { + if (component.type === 'htmlelement') { + htmlComponentsAmount++; + } + }, true); + expect(htmlComponentsAmount).to.be.equal(1); + }); + + it('should not include `content` components when `includeAll` is not provided', () => { + let contentComponentsAmount = 0; + eachComponent(components5, (component: Component) => { + if (component.type === 'content') { + contentComponentsAmount++; + } + }); + expect(contentComponentsAmount).to.be.equal(0); + }); + + it('should include `content` components when `includeAll` is provided', () => { + let contentComponentsAmount = 0; + eachComponent(components5, (component: Component) => { + if (component.type === 'content') { + contentComponentsAmount++; + } + }, true); + expect(contentComponentsAmount).to.be.equal(1); + }); + }); + + describe('getComponent', () => { + it('should return the correct components', () => { + for (let n = 1; n <= 8; n += 1) { + const component = getComponent(components, writtenNumber(n)); + expect(component).not.to.be.null; + expect(component).not.to.be.undefined; + expect(component).to.be.an('object'); + expect((component as any).order).to.equal(n); + expect(component?.key).to.equal(writtenNumber(n)); + } + }); + + it('should work with a different this context', () => { + for (let n = 1; n <= 8; n += 1) { + const component = getComponent.call({}, components, writtenNumber(n)); + expect(component).not.to.be.null; + expect(component).not.to.be.undefined; + expect(component).to.be.an('object'); + expect((component as any).order).to.equal(n); + expect(component?.key).to.equal(writtenNumber(n)); + } + }); + }); + + describe('flattenComponents', () => { + it('should return an object of flattened components', () => { + const flattened = flattenComponents(components); + for (let n = 1; n <= 8; n += 1) { + const component = flattened[writtenNumber(n)]; + expect(component).not.to.be.undefined; + expect(component).to.be.an('object'); + expect((component as any).order).to.equal(n); + expect(component.key).to.equal(writtenNumber(n)); + } + }); + + it('should work with a different this context', () => { + const flattened = flattenComponents.call({}, components); + for (let n = 1; n <= 8; n += 1) { + const component = flattened[writtenNumber(n)]; + expect(component).not.to.be.undefined; + expect(component).to.be.an('object'); + expect(component.order).to.equal(n); + expect(component.key).to.equal(writtenNumber(n)); + } + }); + }); describe('getContextualRowData', () => { it('Should return the data at path without the last element given nested containers', () => { @@ -1147,12 +1410,12 @@ describe('eachComponent', () => { } ] }); - expect(rowResults.get('dataGrid[0].nestedTextField')).to.deep.equal({ + expect(rowResults.get('dataGrid.nestedTextField')).to.deep.equal({ type: 'textfield', key: 'nestedTextField', input: true, }); - expect(rowResults.get('dataGrid[0].nestedTextArea')).to.deep.equal({ + expect(rowResults.get('dataGrid.nestedTextArea')).to.deep.equal({ type: 'textarea', key: 'nestedTextArea', input: true, @@ -1182,14 +1445,14 @@ describe('eachComponent', () => { const rowResults: Map = new Map(); eachComponent(components[0].components, (component: Component, path: string) => { rowResults.set(path, component); - }, true, 'dataGrid[0]'); + }, true, 'dataGrid'); expect(rowResults.size).to.equal(2); - expect(rowResults.get('dataGrid[0].nestedTextField')).to.deep.equal({ + expect(rowResults.get('dataGrid.nestedTextField')).to.deep.equal({ type: 'textfield', key: 'nestedTextField', input: true, }); - expect(rowResults.get('dataGrid[0].nestedTextArea')).to.deep.equal({ + expect(rowResults.get('dataGrid.nestedTextArea')).to.deep.equal({ type: 'textarea', key: 'nestedTextArea', input: true, diff --git a/src/utils/__tests__/unwind.test.ts b/src/utils/__tests__/unwind.test.ts index b4283100..bccbe126 100644 --- a/src/utils/__tests__/unwind.test.ts +++ b/src/utils/__tests__/unwind.test.ts @@ -54,8 +54,8 @@ describe('Test Unwinder', () => { const submissions = unwind(form, submission); assert.equal(submissions.length, 3); - assert.equal(form.components[0].components[0].key, 'units[0].a'); - assert.equal(form.components[0].components[1].key, 'units[0].b'); + assert.equal(form.components[0].components[0].key, 'units.a'); + assert.equal(form.components[0].components[1].key, 'units.b'); assert.deepEqual(submissions[0], { data: { units: [ diff --git a/src/utils/formUtil.ts b/src/utils/formUtil.ts index 7591091b..1c4248b5 100644 --- a/src/utils/formUtil.ts +++ b/src/utils/formUtil.ts @@ -50,7 +50,10 @@ import { Evaluator } from "./Evaluator"; * @returns {Object} * The flattened components map. */ -export function flattenComponents(components: Component[], includeAll: boolean) { +export function flattenComponents( + components: Component[], + includeAll: boolean = false +) { const flattened: any = {}; eachComponent( components, @@ -106,6 +109,7 @@ export const MODEL_TYPES: Record = { 'editgrid', 'datatable', 'dynamicWizard', + 'tagpad' ], dataObject: [ 'form' @@ -199,7 +203,7 @@ export function componentPath(component: Component, parentPath?: string): string return parentPath ? `${parentPath}.${key}` : key; } -export const componentChildPath = (component: any, parentPath?: string, path?: string): string => { +export const componentDataPath = (component: any, parentPath: string, path: string): string => { parentPath = component.parentPath || parentPath; path = path || componentPath(component, parentPath); // See if we are a nested component. @@ -213,11 +217,23 @@ export const componentChildPath = (component: any, parentPath?: string, path?: s if (isComponentNestedDataType(component)) { return path; } - return parentPath === undefined ? path : parentPath; + return parentPath; } return path; } +export const componentFormPath = (component: any, parentPath: string, path: string): string => { + parentPath = component.parentPath || parentPath; + path = path || componentPath(component, parentPath); + if (isComponentModelType(component, 'dataObject')) { + return `${path}.data`; + } + if (isComponentNestedDataType(component)) { + return path; + } + return parentPath; +} + // Async each component data. export const eachComponentDataAsync = async ( components: Component[], @@ -261,14 +277,14 @@ export const eachComponentDataAsync = async ( // No need to bother processing all the children data if there is no data for this form. if (has(data, component.path)) { // For nested forms, we need to reset the "data" and "path" objects for all of the children components, and then re-establish the data when it is done. - const childPath: string = componentChildPath(component, path, compPath); + const childPath: string = componentDataPath(component, path, compPath); const childData: any = get(data, childPath, null); await eachComponentDataAsync(component.components, childData, fn, '', index, component, includeAll); set(data, childPath, childData); } } else { - await eachComponentDataAsync(component.components, data, fn, componentChildPath(component, path, compPath), index, component, includeAll); + await eachComponentDataAsync(component.components, data, fn, componentDataPath(component, path, compPath), index, component, includeAll); } return true; } else { @@ -315,14 +331,14 @@ export const eachComponentData = ( // No need to bother processing all the children data if there is no data for this form. if (has(data, component.path)) { // For nested forms, we need to reset the "data" and "path" objects for all of the children components, and then re-establish the data when it is done. - const childPath: string = componentChildPath(component, path, compPath); + const childPath: string = componentDataPath(component, path, compPath); const childData: any = get(data, childPath, {}); eachComponentData(component.components, childData, fn, '', index, component, includeAll); set(data, childPath, childData); } } else { - eachComponentData(component.components, data, fn, componentChildPath(component, path, compPath), index, component, includeAll); + eachComponentData(component.components, data, fn, componentDataPath(component, path, compPath), index, component, includeAll); } return true; } else { @@ -360,11 +376,15 @@ export function componentInfo(component: any) { const hasColumns = component.columns && Array.isArray(component.columns); const hasRows = component.rows && Array.isArray(component.rows); const hasComps = component.components && Array.isArray(component.components); + const isContent = isComponentModelType(component, 'content'); + const isLayout = isComponentModelType(component, 'layout'); + const isInput = !component.hasOwnProperty('input') || !!component.input; return { hasColumns, hasRows, hasComps, - iterable: hasColumns || hasRows || hasComps || isComponentModelType(component, 'content'), + layout: hasColumns || hasRows || (hasComps && !isInput) || isLayout || isContent, + iterable: hasColumns || hasRows || hasComps || isContent, } } @@ -427,7 +447,7 @@ export function eachComponent( value: componentPath(component, path) }); - if (includeAll || component.tree || !info.iterable) { + if (includeAll || component.tree || !info.layout) { noRecurse = fn(component, component.path, components, parent); } @@ -461,7 +481,7 @@ export function eachComponent( component.components, fn, includeAll, - componentChildPath(component, path), + componentFormPath(component, path, component.path), parent ? component : null ); } @@ -512,7 +532,7 @@ export async function eachComponentAsync( writable: true, value: componentPath(component, path) }); - if (includeAll || component.tree || !info.iterable) { + if (includeAll || component.tree || !info.layout) { if (await fn(component, component.path, components, parent)) { continue; } @@ -546,7 +566,7 @@ export async function eachComponentAsync( component.components, fn, includeAll, - componentChildPath(component, path), + componentFormPath(component, path, component.path), parent ? component : null ); } @@ -640,9 +660,14 @@ export function matchComponent(component: Component, query: any) { * * @param {Object} components - The components to iterate. * @param {String|Object} key - The key of the component to get, or a query of the component to search. + * @param {boolean} includeAll - Whether or not to include layout components. * @returns {Component} - The component that matches the given key, or undefined if not found. */ -export function getComponent(components: Component[], key: any, includeAll: any): (Component | undefined) { +export function getComponent( + components: Component[], + key: any, + includeAll: any = false +): (Component | undefined) { let result; eachComponent(components, (component: Component, path: any) => { if ((path === key) || (component.path === key)) { @@ -670,6 +695,17 @@ export function searchComponents(components: Component[], query: any): Component return results; } +/** + * Deprecated version of findComponents. Renamed to searchComponents. + * @param {import('@formio/core').Component[]} components - The components to find components within. + * @param {object} query - The query to use when searching for the components. + * @returns {import('@formio/core').Component[]} - The result of the component that is found. + */ +export function findComponents(components: Component[], query: any): Component[] { + console.warn('formio.js/utils findComponents is deprecated. Use searchComponents instead.'); + return searchComponents(components, query); +} + /** * Remove a component by path. diff --git a/yarn.lock b/yarn.lock index 05480c0f..8b2a64c8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4168,6 +4168,11 @@ wrappy@1: resolved "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz" integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== +written-number@^0.11.1: + version "0.11.1" + resolved "https://registry.npmjs.org/written-number/-/written-number-0.11.1.tgz#ef060a7b5ad5ff8fbf4ff88daa8fb2260726ecc9" + integrity sha512-LhQ68uUnzHH0bwm/QiGA9JwqgadSDOwqB2AIs/LBsrOY6ScqVXKRN2slTCeKAhstDBJ/Of/Yxcjn0pnQmVlmtg== + ws@^5.2.0: version "5.2.3" resolved "https://registry.npmjs.org/ws/-/ws-5.2.3.tgz" From c9966959c2d5c3f63bcdf5dcfe3e28d6636807ad Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Tue, 21 May 2024 10:25:38 -0500 Subject: [PATCH 12/19] Updated build and version. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 9c2a48ff..fae22b84 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.8", + "version": "2.1.0-dev.tt.9", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { From 18082517699542252d8c9b63290872bc2dc795e2 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Tue, 21 May 2024 10:32:16 -0500 Subject: [PATCH 13/19] Updated build and version. --- package.json | 8 ++++---- yarn.lock | 32 ++++++++++++++++---------------- 2 files changed, 20 insertions(+), 20 deletions(-) diff --git a/package.json b/package.json index fae22b84..75eb6983 100644 --- a/package.json +++ b/package.json @@ -56,7 +56,7 @@ "@types/fetch-mock": "^7.3.8", "@types/flatpickr": "^3.1.2", "@types/inputmask": "^5.0.7", - "@types/lodash": "^4.17.1", + "@types/lodash": "^4.17.4", "@types/lodash.template": "^4.5.3", "@types/mocha": "^10.0.4", "@types/power-assert": "^1.5.11", @@ -78,7 +78,7 @@ "sinon": "^17.0.2", "ts-loader": "^9.5.0", "ts-node": "^10.5.0", - "tsc-alias": "^1.8.8", + "tsc-alias": "^1.8.10", "tsconfig-paths": "^4.1.2", "tsconfig-paths-webpack-plugin": "^4.1.0", "typedoc": "^0.25.13", @@ -90,9 +90,9 @@ "dependencies": { "@types/json-logic-js": "^2.0.7", "browser-cookies": "^1.2.0", - "core-js": "^3.37.0", + "core-js": "^3.37.1", "dayjs": "^1.11.11", - "dompurify": "^3.1.2", + "dompurify": "^3.1.4", "eventemitter3": "^5.0.0", "fast-json-patch": "^3.1.1", "fetch-ponyfill": "^7.1.0", diff --git a/yarn.lock b/yarn.lock index 8b2a64c8..fdf9e8dd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -495,10 +495,10 @@ resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.191.tgz" integrity sha512-BdZ5BCCvho3EIXw6wUCXHe7rS53AIDPLE+JzwgT+OsJk53oBfbSmZZ7CX4VaRoN78N+TJpFi9QPlfIVNmJYWxQ== -"@types/lodash@^4.17.1": - version "4.17.1" - resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.1.tgz#0fabfcf2f2127ef73b119d98452bd317c4a17eb8" - integrity sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q== +"@types/lodash@^4.17.4": + version "4.17.4" + resolved "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz#0303b64958ee070059e3a7184048a55159fe20b7" + integrity sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ== "@types/mocha@^10.0.4": version "10.0.6" @@ -1239,10 +1239,10 @@ core-js@^3.30.2: resolved "https://registry.npmjs.org/core-js/-/core-js-3.30.2.tgz#6528abfda65e5ad728143ea23f7a14f0dcf503fc" integrity sha512-uBJiDmwqsbJCWHAwjrx3cvjbMXP7xD72Dmsn5LOJpiRmE3WbBbN5rCqQ2Qh6Ek6/eOrjlWngEynBWo4VxerQhg== -core-js@^3.37.0: - version "3.37.0" - resolved "https://registry.npmjs.org/core-js/-/core-js-3.37.0.tgz#d8dde58e91d156b2547c19d8a4efd5c7f6c426bb" - integrity sha512-fu5vHevQ8ZG4og+LXug8ulUtVxjOcEYvifJr7L5Bfq9GOztVqsKd9/59hUk2ZSbCrS3BqUr3EpaYGIYzq7g3Ug== +core-js@^3.37.1: + version "3.37.1" + resolved "https://registry.npmjs.org/core-js/-/core-js-3.37.1.tgz#d21751ddb756518ac5a00e4d66499df981a62db9" + integrity sha512-Xn6qmxrQZyB0FFY8E3bgRXei3lWDJHhvI+u0q9TKIYM49G8pAr0FgnnrFRAmsbptZL1yxRADVXn+x5AGsbBfyw== core-util-is@1.0.2: version "1.0.2" @@ -1410,10 +1410,10 @@ domexception@^4.0.0: dependencies: webidl-conversions "^7.0.0" -dompurify@^3.1.2: - version "3.1.2" - resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.1.2.tgz#d1e158457e00666ab40c9c3d8aab57586a072bd1" - integrity sha512-hLGGBI1tw5N8qTELr3blKjAML/LY4ANxksbS612UiJyDfyf/2D092Pvm+S7pmeTGJRqvlJkFzBoHBQKgQlOQVg== +dompurify@^3.1.4: + version "3.1.4" + resolved "https://registry.npmjs.org/dompurify/-/dompurify-3.1.4.tgz#42121304b2b3a6bae22f80131ff8a8f3f3c56be2" + integrity sha512-2gnshi6OshmuKil8rMZuQCGiUF3cUxHY3NGDzUAdUx/NPEe5DVnO8BDoAQouvgwnx0R/+a6jUn36Z0FSdq8vww== each-props@^3.0.0: version "3.0.0" @@ -3734,10 +3734,10 @@ ts-node@^10.5.0: v8-compile-cache-lib "^3.0.1" yn "3.1.1" -tsc-alias@^1.8.8: - version "1.8.8" - resolved "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.8.tgz#48696af442b7656dd7905e37ae0bc332d80be3fe" - integrity sha512-OYUOd2wl0H858NvABWr/BoSKNERw3N9GTi3rHPK8Iv4O1UyUXIrTTOAZNHsjlVpXFOhpJBVARI1s+rzwLivN3Q== +tsc-alias@^1.8.10: + version "1.8.10" + resolved "https://registry.npmjs.org/tsc-alias/-/tsc-alias-1.8.10.tgz#279f9bf0dd8bc10fb27820393d4881db5a303938" + integrity sha512-Ibv4KAWfFkFdKJxnWfVtdOmB0Zi1RJVxcbPGiCDsFpCQSsmpWyuzHG3rQyI5YkobWwxFPEyQfu1hdo4qLG2zPw== dependencies: chokidar "^3.5.3" commander "^9.0.0" From e7ce062f6d99412dbf948e270ca2b51d28c4657f Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Tue, 21 May 2024 10:33:51 -0500 Subject: [PATCH 14/19] Updated version. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 75eb6983..1eae43f9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.9", + "version": "2.1.0-dev.tt.10", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { From ba2999f07e73aaf2f36c1ee1ee44170c857d876e Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Wed, 22 May 2024 13:03:39 -0500 Subject: [PATCH 15/19] Fixing core jsonlogic evaluate context. --- src/modules/jsonlogic/index.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/modules/jsonlogic/index.ts b/src/modules/jsonlogic/index.ts index a25ba649..1747e257 100644 --- a/src/modules/jsonlogic/index.ts +++ b/src/modules/jsonlogic/index.ts @@ -42,8 +42,7 @@ export function evaluate( } fnName = fnName || 'evaluate'; if (instance && (instance as any)[fnName]) { - evaluation = `var ${ret}; ${ret} = ${evaluation}; return ${ret}`; - return (instance as any)[fnName](evaluation, evalContextValue, options); + return (instance as any)[fnName](evaluation, evalContextValue, ret, options); } return (JSONLogicEvaluator as any)[fnName](evaluation, evalContextValue, ret); } From b08482ad0529ed14f3677509fd41dceda5bc5097 Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Wed, 22 May 2024 13:04:18 -0500 Subject: [PATCH 16/19] updated version. --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 1eae43f9..5cf36449 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.10", + "version": "2.1.0-dev.tt.11", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { From e4ddc8535cf8313fa759c4d97d73407eb695d8dd Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Wed, 22 May 2024 13:47:37 -0500 Subject: [PATCH 17/19] Fixing the evaluation and interpolation through jsonlogic. --- src/modules/jsonlogic/index.ts | 35 ++++++++++++++++++++++++---------- src/utils/Evaluator.ts | 13 +++++++++---- src/utils/index.ts | 2 +- src/utils/logic.ts | 1 - 4 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/modules/jsonlogic/index.ts b/src/modules/jsonlogic/index.ts index 1747e257..194e96af 100644 --- a/src/modules/jsonlogic/index.ts +++ b/src/modules/jsonlogic/index.ts @@ -1,7 +1,14 @@ -import { BaseEvaluator } from 'utils'; +import { BaseEvaluator, EvaluatorOptions } from 'utils'; import { jsonLogic } from './jsonLogic'; class JSONLogicEvaluator extends BaseEvaluator { - public static evaluate(func: any, args: any = {}, ret: any = '', tokenize: boolean = false, context: any = {}) { + public static evaluate( + func: any, + args: any = {}, + ret: any = '', + interpolate: boolean = false, + context: any = {}, + options: EvaluatorOptions = {} + ) { let returnVal = null; if (typeof func === 'object') { try { @@ -13,7 +20,7 @@ class JSONLogicEvaluator extends BaseEvaluator { } } else { - returnVal = BaseEvaluator.evaluate(func, args, ret, tokenize, context); + returnVal = BaseEvaluator.evaluate(func, args, ret, interpolate, context, options); } return returnVal; } @@ -32,19 +39,17 @@ export function evaluate( evaluation: string, ret: string = 'result', evalContextFn?: EvaluatorFn, - fnName?: string, - options: any = {} + options: EvaluatorOptions = {} ) { const { evalContext, instance } = context; const evalContextValue = evalContext ? evalContext(context) : context; if (evalContextFn) { evalContextFn(evalContextValue); } - fnName = fnName || 'evaluate'; - if (instance && (instance as any)[fnName]) { - return (instance as any)[fnName](evaluation, evalContextValue, ret, options); + if (instance && (instance as any).evaluate) { + return (instance as any).evaluate(evaluation, evalContextValue, ret, false, options); } - return (JSONLogicEvaluator as any)[fnName](evaluation, evalContextValue, ret); + return (JSONLogicEvaluator as any).evaluate(evaluation, evalContextValue, ret, false, context, options); } export function interpolate( @@ -52,7 +57,17 @@ export function interpolate( evaluation: string, evalContextFn?: EvaluatorFn ) : string { - return evaluate(context, evaluation, undefined, evalContextFn, 'interpolate', { + const { evalContext, instance } = context; + const evalContextValue = evalContext ? evalContext(context) : context; + if (evalContextFn) { + evalContextFn(evalContextValue); + } + if (instance && (instance as any).evaluate) { + return (instance as any).interpolate(evaluation, evalContextValue, { + noeval: true + }); + } + return (JSONLogicEvaluator as any).interpolate(evaluation, evalContextValue, { noeval: true }); } diff --git a/src/utils/Evaluator.ts b/src/utils/Evaluator.ts index 327a911e..234c7fd7 100644 --- a/src/utils/Evaluator.ts +++ b/src/utils/Evaluator.ts @@ -1,5 +1,10 @@ import { noop, trim, keys, get, set, isObject, values } from 'lodash'; +export interface EvaluatorOptions { + noeval?: boolean; + data?: any; +} + // BaseEvaluator is for extending. export class BaseEvaluator { static templateSettings = { @@ -22,7 +27,7 @@ export class BaseEvaluator { return new Function(...params, func); }; - public static interpolateString(rawTemplate: string, data: any, options: any = {}) { + public static interpolateString(rawTemplate: string, data: any, options: EvaluatorOptions = {}) { if (!rawTemplate) { return ''; } @@ -74,7 +79,7 @@ export class BaseEvaluator { }); } - public static interpolate(rawTemplate: any, data: any, options: any = {}) { + public static interpolate(rawTemplate: any, data: any, options: EvaluatorOptions = {}) { if (typeof rawTemplate === 'function' && !(Evaluator.noeval || options.noeval)) { try { return rawTemplate(data); @@ -101,7 +106,7 @@ export class BaseEvaluator { ret: any = '', interpolate: boolean = false, context: any = {}, - options: any = {} + options: EvaluatorOptions = {} ): any { let returnVal = null; options = isObject(options) ? options : { noeval: options }; @@ -158,7 +163,7 @@ export class BaseEvaluator { * @param args * @returns */ - public static execute(func: string | any, args: any, context: any = {}, options: any = {}) { + public static execute(func: string | any, args: any, context: any = {}, options: EvaluatorOptions = {}) { options = isObject(options) ? options : { noeval: options }; if (Evaluator.noeval || options.noeval) { console.warn('No evaluations allowed for this renderer.'); diff --git a/src/utils/index.ts b/src/utils/index.ts index f7ef4494..04071fab 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,4 +1,4 @@ -export { Evaluator, BaseEvaluator } from './Evaluator'; +export { Evaluator, EvaluatorOptions, BaseEvaluator } from './Evaluator'; export { sanitize } from './sanitize'; export { override } from './override'; export { unwind } from './unwind'; diff --git a/src/utils/logic.ts b/src/utils/logic.ts index 5c6c7b72..3cf641d8 100644 --- a/src/utils/logic.ts +++ b/src/utils/logic.ts @@ -3,7 +3,6 @@ import { checkCustomConditional, checkJsonConditional, checkLegacyConditional, c import { LogicActionCustomAction, LogicActionMergeComponentSchema, LogicActionProperty, LogicActionPropertyBoolean, LogicActionPropertyString, LogicActionValue } from "types/AdvancedLogic"; import { get, set, clone, isEqual, assign } from 'lodash'; import { evaluate, interpolate } from 'modules/jsonlogic'; -import { getComponentKey } from "./formUtil"; export const hasLogic = (context: LogicContext): boolean => { const { component } = context; From 7018209ce0f78df7a20b6bb2329b86480ec6191d Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Wed, 22 May 2024 14:18:38 -0500 Subject: [PATCH 18/19] Fixing evaluator and jsonlogic evaluator exports. --- package.json | 2 +- src/modules/index.ts | 4 ++-- src/modules/jsonlogic/index.ts | 8 ++++---- src/process/calculation/index.ts | 5 ++--- src/process/defaultValue/index.ts | 7 +++---- src/process/validation/rules/validateJson.ts | 4 ++-- src/utils/conditions.ts | 3 +-- src/utils/index.ts | 1 + 8 files changed, 16 insertions(+), 18 deletions(-) diff --git a/package.json b/package.json index 5cf36449..d902b6c3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.11", + "version": "2.1.0-dev.tt.12", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { diff --git a/src/modules/index.ts b/src/modules/index.ts index 909532f0..29b6ccce 100644 --- a/src/modules/index.ts +++ b/src/modules/index.ts @@ -1,4 +1,4 @@ -import jsonlogic from './jsonlogic'; +import { JSONLogicModule } from './jsonlogic'; export default [ - jsonlogic + JSONLogicModule ]; \ No newline at end of file diff --git a/src/modules/jsonlogic/index.ts b/src/modules/jsonlogic/index.ts index 194e96af..43dbb31c 100644 --- a/src/modules/jsonlogic/index.ts +++ b/src/modules/jsonlogic/index.ts @@ -1,6 +1,6 @@ import { BaseEvaluator, EvaluatorOptions } from 'utils'; import { jsonLogic } from './jsonLogic'; -class JSONLogicEvaluator extends BaseEvaluator { +export class JSONLogicEvaluator extends BaseEvaluator { public static evaluate( func: any, args: any = {}, @@ -72,7 +72,7 @@ export function interpolate( }); } -export default { +export * from './jsonLogic'; +export const JSONLogicModule = { evaluator: JSONLogicEvaluator, - jsonLogic: jsonLogic -} +}; diff --git a/src/process/calculation/index.ts b/src/process/calculation/index.ts index 4bc8dd47..349805e7 100644 --- a/src/process/calculation/index.ts +++ b/src/process/calculation/index.ts @@ -1,7 +1,6 @@ -import JSONLogic from 'modules/jsonlogic'; +import { JSONLogicEvaluator } from 'modules/jsonlogic'; import { ProcessorFn, ProcessorFnSync, CalculationScope, CalculationContext, ProcessorInfo, FilterScope } from 'types'; import { set } from 'lodash'; -const Evaluator = JSONLogic.evaluator; export const shouldCalculate = (context: CalculationContext): boolean => { const { component, config } = context; @@ -22,7 +21,7 @@ export const calculateProcessSync: ProcessorFnSync = (context: const evalContextValue = evalContext ? evalContext(context) : context; evalContextValue.value = value || null; if (!scope.calculated) scope.calculated = []; - let newValue = Evaluator.evaluate(component.calculateValue, evalContextValue, 'value'); + let newValue = JSONLogicEvaluator.evaluate(component.calculateValue, evalContextValue, 'value'); // Only set a new value if it is not "null" which would be the case if no calculation occurred. if (newValue !== null) { diff --git a/src/process/defaultValue/index.ts b/src/process/defaultValue/index.ts index f23e5f84..60f19a84 100644 --- a/src/process/defaultValue/index.ts +++ b/src/process/defaultValue/index.ts @@ -1,8 +1,7 @@ -import JSONLogic from 'modules/jsonlogic'; -import { ProcessorFn, ProcessorFnSync, ConditionsScope, ProcessorInfo, DefaultValueContext, FilterScope } from 'types'; +import { JSONLogicEvaluator } from 'modules/jsonlogic'; +import { ProcessorFn, ProcessorFnSync, ConditionsScope, ProcessorInfo, DefaultValueContext } from 'types'; import { set, has } from 'lodash'; import { getComponentKey } from 'utils/formUtil'; -const Evaluator = JSONLogic.evaluator; export const hasCustomDefaultValue = (context: DefaultValueContext): boolean => { const { component } = context; @@ -41,7 +40,7 @@ export const customDefaultValueProcessSync: ProcessorFnSync = ( if (component.customDefaultValue) { const evalContextValue = evalContext ? evalContext(context) : context; evalContextValue.value = null; - defaultValue = Evaluator.evaluate(component.customDefaultValue, evalContextValue, 'value'); + defaultValue = JSONLogicEvaluator.evaluate(component.customDefaultValue, evalContextValue, 'value'); if (component.multiple && !Array.isArray(defaultValue)) { defaultValue = defaultValue ? [defaultValue] : []; } diff --git a/src/process/validation/rules/validateJson.ts b/src/process/validation/rules/validateJson.ts index cef3f8be..a9b83ab8 100644 --- a/src/process/validation/rules/validateJson.ts +++ b/src/process/validation/rules/validateJson.ts @@ -1,4 +1,4 @@ -import jsonLogic from 'modules/jsonlogic'; +import { JSONLogicEvaluator } from 'modules/jsonlogic'; import { FieldError } from 'error'; import { RuleFn, RuleFnSync, ValidationContext } from 'types'; import { ProcessorInfo } from 'types/process/ProcessorInfo'; @@ -25,7 +25,7 @@ export const validateJsonSync: RuleFnSync = (context: ValidationContext) => { const func = component?.validate?.json; const evalContextValue = evalContext ? evalContext(context) : context; evalContextValue.value = value || null; - const valid: true | string = jsonLogic.evaluator.evaluate( + const valid: true | string = JSONLogicEvaluator.evaluate( func, { ...evalContextValue, diff --git a/src/utils/conditions.ts b/src/utils/conditions.ts index 010767a5..d0198a98 100644 --- a/src/utils/conditions.ts +++ b/src/utils/conditions.ts @@ -1,8 +1,7 @@ import { ConditionsContext, JSONConditional, LegacyConditional, SimpleConditional } from "types"; -import JSONLogic, { EvaluatorFn, evaluate } from 'modules/jsonlogic'; +import { EvaluatorFn, evaluate, JSONLogicEvaluator } from 'modules/jsonlogic'; import { getComponentActualValue } from "./formUtil"; import { has, isObject, map, every, some, find, filter } from 'lodash'; -const JSONLogicEvaluator = JSONLogic.evaluator; import ConditionOperators from './operators'; export const isJSONConditional = (conditional: any): conditional is JSONConditional => { diff --git a/src/utils/index.ts b/src/utils/index.ts index 04071fab..a1fdbfe6 100644 --- a/src/utils/index.ts +++ b/src/utils/index.ts @@ -1,4 +1,5 @@ export { Evaluator, EvaluatorOptions, BaseEvaluator } from './Evaluator'; +export { JSONLogicEvaluator } from 'modules/jsonlogic'; export { sanitize } from './sanitize'; export { override } from './override'; export { unwind } from './unwind'; From 42720baaf37827fa16b7024b365f44d8158f5a0e Mon Sep 17 00:00:00 2001 From: Travis Tidwell Date: Fri, 7 Jun 2024 14:09:32 -0500 Subject: [PATCH 19/19] Updated version. --- package.json | 2 +- src/process/validation/rules/validateRequired.ts | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/package.json b/package.json index d32781e2..20b16004 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@formio/core", - "version": "2.1.0-dev.tt.12", + "version": "2.1.0-dev.tt.13", "description": "The core Form.io renderering framework.", "main": "lib/index.js", "exports": { diff --git a/src/process/validation/rules/validateRequired.ts b/src/process/validation/rules/validateRequired.ts index 5294f481..23733e8a 100644 --- a/src/process/validation/rules/validateRequired.ts +++ b/src/process/validation/rules/validateRequired.ts @@ -8,11 +8,7 @@ import { DayComponent } from 'types'; import { isEmptyObject } from '../util'; -<<<<<<< HEAD -import { isComponentNestedDataType } from 'utils/formUtil' -======= import { isComponentNestedDataType } from 'utils/formUtil'; ->>>>>>> 73c7c1ec076f88b1d3ef940f41422f04a3aaaafa import { ProcessorInfo } from 'types/process/ProcessorInfo'; const isAddressComponent = (component: any): component is AddressComponent => {