From 101881146ea7753fc3cf896de9d40f7ec9999aa2 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 10 May 2023 15:53:32 +0200 Subject: [PATCH 01/68] rebased --- @navikt/aksel-stylelint/.gitignore | 1 + @navikt/aksel-stylelint/index.ts | 5 + @navikt/aksel-stylelint/package.json | 44 +++++++ .../aksel-stylelint/plugins/plugin-test.ts | 54 +++++++++ @navikt/aksel-stylelint/tsconfig.json | 109 ++++++++++++++++++ package.json | 11 +- 6 files changed, 221 insertions(+), 3 deletions(-) create mode 100644 @navikt/aksel-stylelint/.gitignore create mode 100644 @navikt/aksel-stylelint/index.ts create mode 100644 @navikt/aksel-stylelint/package.json create mode 100644 @navikt/aksel-stylelint/plugins/plugin-test.ts create mode 100644 @navikt/aksel-stylelint/tsconfig.json diff --git a/@navikt/aksel-stylelint/.gitignore b/@navikt/aksel-stylelint/.gitignore new file mode 100644 index 0000000000..4c43fe68f6 --- /dev/null +++ b/@navikt/aksel-stylelint/.gitignore @@ -0,0 +1 @@ +*.js \ No newline at end of file diff --git a/@navikt/aksel-stylelint/index.ts b/@navikt/aksel-stylelint/index.ts new file mode 100644 index 0000000000..b8850ef050 --- /dev/null +++ b/@navikt/aksel-stylelint/index.ts @@ -0,0 +1,5 @@ +// why doesn't this work? +export default { + ruleName: "plugin/aksel-all-rules", + plugins: [".plugins/plugin-test"], +}; diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json new file mode 100644 index 0000000000..b3305d17fa --- /dev/null +++ b/@navikt/aksel-stylelint/package.json @@ -0,0 +1,44 @@ +{ + "name": "@navikt/aksel-stylelint", + "version": "1.0.0", + "author": "Aksel | NAV", + "homepage": "https://aksel.nav.no/lint", + "repository": { + "type": "git", + "url": "git+https://github.com/navikt/aksel.git", + "directory": "@navikt/aksel-icons" + }, + "keywords": [ + "aksel", + "stylelint" + ], + "publishConfig": { + "access": "public", + "provenance": true + }, + "license": "MIT", + "main": "./index.js", + "exports": "./index.js", + "files": [ + "./index.js" + ], + "scripts": { + "test": "jest", + "build": "tsc -p .", + "watch:lint": "tsc --watch -p ." + }, + "devDependencies": { + "postcss-media-query-parser": "^0.2.3", + "postcss-value-parser": "^4.2.0", + "stylelint": "^14.8.5" + }, + "jest": { + "transformIgnorePatterns": [ + "node_modules/unified/*" + ], + "testMatch": [ + "**/__tests__/*.js", + "**/__tests__/*.mjs" + ] + } +} diff --git a/@navikt/aksel-stylelint/plugins/plugin-test.ts b/@navikt/aksel-stylelint/plugins/plugin-test.ts new file mode 100644 index 0000000000..236283307b --- /dev/null +++ b/@navikt/aksel-stylelint/plugins/plugin-test.ts @@ -0,0 +1,54 @@ +import stylelint from "stylelint"; + +const ruleName = "rule/aksel-stylelint-test"; +const messages = stylelint.utils.ruleMessages(ruleName, { + expected: "Expected ...", +}); +const meta = { + url: "https://github.com/aksel/stylelint-foo/blob/main/src/rules/foo-bar/README.md", + // deprecated: true, +}; + +const ruleFunction: stylelint.Rule = ( + primaryOption, + secondaryOptionObject +) => { + console.log(primaryOption, secondaryOptionObject); + return (postcssRoot, postcssResult) => { + // console.log(postcssRoot) + // const validOptions = stylelint.utils.validateOptions( + // postcssResult, + // ruleName, + // { + // /* .. */ + // } + // ); + + // if (!validOptions) { + // return; + // } + + // console.log('TEST!') + // console.log("##### ",!!stylelint, !!(stylelint.utils), !!(stylelint.utils.report)); + + postcssRoot.walk((node) => { + if (Math.random() > 0.9) { + stylelint.utils.report({ + ruleName, + message: "unlucky (TEST)", + severity: "error", + node, + result: postcssResult, + }); + } + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = messages; +ruleFunction.meta = meta; + +const plugin = stylelint.createPlugin(ruleName, ruleFunction); + +export default plugin; diff --git a/@navikt/aksel-stylelint/tsconfig.json b/@navikt/aksel-stylelint/tsconfig.json new file mode 100644 index 0000000000..bb2f7f6625 --- /dev/null +++ b/@navikt/aksel-stylelint/tsconfig.json @@ -0,0 +1,109 @@ +{ + "compilerOptions": { + /* Visit https://aka.ms/tsconfig to read more about this file */ + + /* Projects */ + // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ + // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ + // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ + // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ + // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ + // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ + + /* Language and Environment */ + "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, + // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ + // "jsx": "preserve", /* Specify what JSX code is generated. */ + // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ + // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ + // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ + // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ + // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ + // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ + // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ + // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ + // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ + + /* Modules */ + "module": "commonjs" /* Specify what module code is generated. */, + // "rootDir": "./", /* Specify the root folder within your source files. */ + // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ + // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ + // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ + // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ + // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ + // "types": [], /* Specify type package names to be included without being referenced in a source file. */ + // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ + // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ + // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ + // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ + // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ + // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ + // "resolveJsonModule": true, /* Enable importing .json files. */ + // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ + // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ + + /* JavaScript Support */ + // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ + // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ + // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ + + /* Emit */ + // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ + // "declarationMap": true, /* Create sourcemaps for d.ts files. */ + // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ + // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ + // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ + // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ + // "outDir": "./", /* Specify an output folder for all emitted files. */ + // "removeComments": true, /* Disable emitting comments. */ + // "noEmit": true, /* Disable emitting files from a compilation. */ + // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ + // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ + // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ + // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ + // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ + // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ + // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ + // "newLine": "crlf", /* Set the newline character for emitting files. */ + // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ + // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ + // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ + // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ + // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ + // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ + + /* Interop Constraints */ + // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ + // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ + // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ + "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, + // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ + "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, + + /* Type Checking */ + "strict": true /* Enable all strict type-checking options. */, + // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ + // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ + // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ + // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ + // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ + // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ + // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ + // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ + // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ + // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ + // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ + // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ + // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ + // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ + // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ + // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ + // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ + // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ + + /* Completeness */ + // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ + "skipLibCheck": true /* Skip type checking all .d.ts files. */ + } +} diff --git a/package.json b/package.json index b44212af61..1112906eba 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "build:storybook": "storybook build", "test": "yarn workspaces foreach -p run test", "lint": "yarn eslint . && yarn stylelint @navikt/**/*.css", + "lint:css": "yarn stylelint @navikt/**/*.css", "changeset": "changeset", "version": "changeset version", "release": "yarn boot && yarn docgen && changeset publish" @@ -26,6 +27,7 @@ "@navikt/icons", "@navikt/aksel-icons", "@navikt/aksel-icons/figma-plugin", + "@navikt/aksel-stylelint", "@navikt/aksel", "@navikt/community/*", "examples/*", @@ -141,11 +143,13 @@ "stylelint": { "extends": [ "stylelint-config-standard", - "stylelint-config-prettier" + "stylelint-config-prettier", + "@navikt/aksel-stylelint" ], "plugins": [ "stylelint-value-no-unknown-custom-properties", - "stylelint-declaration-block-no-ignored-properties" + "stylelint-declaration-block-no-ignored-properties", + "@navikt/aksel-stylelint" ], "rules": { "plugin/declaration-block-no-ignored-properties": true, @@ -181,7 +185,8 @@ "@navikt/core/tokens/dist/tokens.css" ] } - ] + ], + "plugin/aksel-all-rules": true }, "ignoreFiles": [ "**/dist/**", From 0f344044977936cd1781cb44b9798c8faea607e2 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Thu, 25 May 2023 14:21:21 +0200 Subject: [PATCH 02/68] rebase --- @navikt/aksel-stylelint/index.ts | 263 +++++++++++++++++- @navikt/aksel-stylelint/package.json | 22 +- .../aksel-stylelint/plugins/at-rule/index.ts | 73 +++++ .../aksel-stylelint/plugins/plugin-test.ts | 54 ---- @navikt/aksel-stylelint/tsconfig.json | 121 +------- package.json | 6 +- yarn.lock | 10 + 7 files changed, 366 insertions(+), 183 deletions(-) create mode 100644 @navikt/aksel-stylelint/plugins/at-rule/index.ts delete mode 100644 @navikt/aksel-stylelint/plugins/plugin-test.ts diff --git a/@navikt/aksel-stylelint/index.ts b/@navikt/aksel-stylelint/index.ts index b8850ef050..e32968003e 100644 --- a/@navikt/aksel-stylelint/index.ts +++ b/@navikt/aksel-stylelint/index.ts @@ -1,5 +1,260 @@ -// why doesn't this work? -export default { - ruleName: "plugin/aksel-all-rules", - plugins: [".plugins/plugin-test"], +/** + * @type {import('./plugins/coverage').PrimaryOptions} The stylelint-polaris/coverage rule expects a 3-dimensional rule config that groups Stylelint rules by coverage categories. It reports problems with dynamic rule names by appending the category to the coverage plugin's rule name + +(e.g., Unexpected named color "blue" - Please use a Polaris color token Stylelint(polaris/colors/color-named)") +*/ +/* const stylelintPolarisCoverageOptions = { + border: [ + { + "declaration-property-unit-disallowed-list": [], + "polaris/at-rule-disallowed-list": { + include: [ + "high-contrast-border", + "high-contrast-button-outline", + "high-contrast-outline", + "focus-ring", + "no-focus-ring", + ].map(matchNameRegExp), + }, + "polaris/custom-property-disallowed-list": {}, + }, + { + message: "Please use a Polaris border token", + }, + ], + color: [ + { + "color-named": "never", + "color-no-hex": true, + "scss/function-color-relative": true, + "function-disallowed-list": [ + // Include Sass namespace + // https://regex101.com/r/UdW0oV/1 + "brightness", + "contrast", + "hue-rotate", + "hsl", + "hsla", + "invert", + "rgb", + "rgba", + "sepia", + ...["color-multiply", "color", "filter"].map(matchNameRegExp), + ], + "polaris/at-rule-disallowed-list": { + include: [ + // Legacy mixins + "recolor-icon", + "ms-high-contrast-color", + ].map(matchNameRegExp), + }, + "polaris/custom-property-disallowed-list": {}, + "polaris/global-disallowed-list": [], + }, + { + message: "Please use a Polaris color token", + }, + ], + conventions: { + "selector-disallowed-list": [ + [/class[*^~]?='Polaris-[a-z_-]+'/gi], + { + message: + "Overriding Polaris styles is disallowed. Please consider contributing instead", + }, + ], + "polaris/custom-property-allowed-list": { + // Allows definition of custom properties not prefixed with `--p-`, `--pc-`, or `--polaris-version-` + allowedProperties: [/--(?!(p|pc|polaris-version)-).+/], + // Allows use of custom properties prefixed with `--p-` that are valid Polaris tokens + allowedValues: { + "/.+/": [ + // Note: Order is important + // This pattern allows use of `--p-*` custom properties that are valid Polaris tokens + ...getCustomPropertyNames(tokens), + // This pattern flags unknown `--p-*` custom properties or usage of deprecated `--pc-*` custom properties private to polaris-react + /--(?!(p|pc)-).+/, + ], + }, + }, + }, + layout: [ + { + "declaration-property-value-disallowed-list": [], + "property-disallowed-list": [], + "function-disallowed-list": [ + "nav-min-window-corrected", + "control-height", + "control-slim-height", + "mobile-nav-width", + "thumbnail-size", + "top-bar-height", + ].map(matchNameRegExp), + "polaris/at-rule-disallowed-list": { + include: ["layout-flex-fix", "safe-area-for"].map(matchNameRegExp), + }, + "polaris/custom-property-disallowed-list": {}, + "polaris/global-disallowed-list": [], + }, + { + message: + "Consider using a Polaris layout component if applicable for this layout style", + }, + ], + legacy: [ + {}, + { + message: "Please use a Polaris token or component", + }, + ], + "media-queries": [ + { + "polaris/media-query-allowed-list": {}, + // Legacy functions + "function-disallowed-list": [], + // Legacy mixins + "polaris/at-rule-disallowed-list": {}, + }, + { + message: "Please use a Polaris breakpoint token", + }, + ], + motion: [ + {}, + { + message: "Please use a Polaris motion token", + }, + ], + shadow: [ + { + "function-disallowed-list": ["shadow"].map(matchNameRegExp), + "declaration-property-unit-disallowed-list": [ + { + "box-shadow": disallowedUnits, + }, + ], + "property-disallowed-list": ["text-shadow"], + "polaris/custom-property-disallowed-list": { + disallowedProperties: disallowedVarsShadow, + disallowedValues: { "/.+/": disallowedVarsShadow }, + }, + "polaris/global-disallowed-list": [ + // Legacy mixin map-get data + /\$shadows-data/, + ], + }, + { + message: "Please use a Polaris shadow token", + }, + ], + space: [ + { + "function-disallowed-list": ["control-vertical-padding"].map( + matchNameRegExp + ), + "declaration-property-unit-disallowed-list": [{}], + "polaris/custom-property-disallowed-list": {}, + "polaris/global-disallowed-list": [], + }, + { + message: "Please use a Polaris space token", + }, + ], + typography: [ + { + "polaris/declaration-property-value-disallowed-list": { + "font-weight": [/(\$.*|[0-9]+)/], + }, + "declaration-property-unit-disallowed-list": [ + { + "/^font/": disallowedUnits, + "line-height": disallowedUnits, + }, + ], + "property-disallowed-list": ["text-transform"], + "function-disallowed-list": ["font-size", "line-height"].map( + matchNameRegExp + ), + "polaris/at-rule-disallowed-list": { + include: [ + "truncate", + "text-breakword", + "text-emphasis-normal", + "text-emphasis-strong", + "text-emphasis-subdued", + "text-style-body", + "text-style-button-large", + "text-style-button", + "text-style-caption", + "text-style-display-large", + "text-style-display-medium", + "text-style-display-small", + "text-style-display-x-large", + "text-style-heading", + "text-style-input", + "text-style-subheading", + ].map(matchNameRegExp), + }, + "polaris/global-disallowed-list": [ + // Legacy mixin map-get data + /\$base-font-size/, + /\$line-height-data/, + /\$font-size-data/, + /\$default-browser-font-size/, + ], + }, + { + message: "Please use a Polaris font token or typography component", + }, + ], + "z-index": [ + { + "declaration-property-value-allowed-list": [ + { + "z-index": Object.keys(tokens.zIndex).map( + (token) => `var(${createVar(token)})` + ), + }, + ], + "function-disallowed-list": ["z-index"].map(matchNameRegExp), + "polaris/custom-property-disallowed-list": { + disallowedProperties: disallowedVarsZIndex, + disallowedValues: { "/.+/": disallowedVarsZIndex }, + }, + "polaris/global-disallowed-list": [ + // Legacy mixin map-get data + /\$fixed-element-stacking-order/, + /\$global-elements/, + ], + }, + { + message: "Please use a Polaris z-index token", + }, + ], +}; */ + +/** @type {import('stylelint').Config} */ +module.exports = { + /* reportDescriptionlessDisables: true, + reportNeedlessDisables: true, */ + reportInvalidScopeDisables: [ + true, + { + // Report invalid scope disables for all rules except coverage rules + // Note: This doesn't affect the default Stylelint behavior/reporting + // and is only need because we dynamically create these rule names + except: /^polaris\/.+?\/.+$/, + }, + ], + plugins: ["./plugins/coverage", "./plugins/at-rule"], + rules: { + "aksel/coverage": { + test: [ + { "aksel/at-rule-disallowed-list": {} }, + { + message: "Please work 🙏", + }, + ], + }, + }, }; diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index b3305d17fa..c281e6572e 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -17,28 +17,20 @@ "provenance": true }, "license": "MIT", - "main": "./index.js", - "exports": "./index.js", + "main": "./dist/index.js", + "exports": "./dist/index.js", "files": [ - "./index.js" + "./dist" ], "scripts": { "test": "jest", "build": "tsc -p .", - "watch:lint": "tsc --watch -p ." + "watch:lint": "tsc --watch -p .", + "dev": "yarn watch:lint" }, "devDependencies": { - "postcss-media-query-parser": "^0.2.3", - "postcss-value-parser": "^4.2.0", + "@types/jest": "^29.0.0", + "jest": "^29.0.0", "stylelint": "^14.8.5" - }, - "jest": { - "transformIgnorePatterns": [ - "node_modules/unified/*" - ], - "testMatch": [ - "**/__tests__/*.js", - "**/__tests__/*.mjs" - ] } } diff --git a/@navikt/aksel-stylelint/plugins/at-rule/index.ts b/@navikt/aksel-stylelint/plugins/at-rule/index.ts new file mode 100644 index 0000000000..a9346d7723 --- /dev/null +++ b/@navikt/aksel-stylelint/plugins/at-rule/index.ts @@ -0,0 +1,73 @@ +const stylelint = require("stylelint"); + +const ruleName = "aksel/at-rule-disallowed-list"; + +const messages = stylelint.utils.ruleMessages(ruleName, { + /** + * @type {stylelint.RuleMessageFunc} + */ + rejected: (atRuleName, atRuleParams) => { + return `Unexpected @${atRuleName} rule${ + atRuleParams ? ` "${atRuleParams}"` : "" + }`; + }, +}); + +/** @typedef {(string | RegExp)[]} DisallowedPatterns */ + +/** + * @typedef {{[atRuleName: string]: DisallowedPatterns}} PrimaryOptions + */ + +const { rule } = stylelint.createPlugin( + ruleName, + /** @param {PrimaryOptions} primary */ + (primary) => { + return (root, result) => { + console.count(`Running: ${ruleName}`); + const validOptions = stylelint.utils.validateOptions(result, ruleName, { + actual: primary, + possible: validateAllowedValuesOption, + }); + + if (!validOptions) { + throw new Error( + `Invalid options were provided to the [${ruleName}] stylelint plugin.\n` + ); + } + + root.walkAtRules((atRule) => { + const atRuleName = atRule.name; + const disallowedPatterns = primary[atRuleName]; + + if (!disallowedPatterns) return; + + const atRuleId = atRule.params; + + const found = ["test1", "test2"]; + + found.forEach(() => { + stylelint.utils.report({ + ruleName, + result, + node: atRule, + message: messages.rejected(atRuleName, atRuleId), + }); + }); + }); + }; + } +); + +module.exports = { + rule, + ruleName, + messages, +}; + +/** + * @param {unknown} option - `primary` option. + */ +function validateAllowedValuesOption(option) { + return true; +} diff --git a/@navikt/aksel-stylelint/plugins/plugin-test.ts b/@navikt/aksel-stylelint/plugins/plugin-test.ts deleted file mode 100644 index 236283307b..0000000000 --- a/@navikt/aksel-stylelint/plugins/plugin-test.ts +++ /dev/null @@ -1,54 +0,0 @@ -import stylelint from "stylelint"; - -const ruleName = "rule/aksel-stylelint-test"; -const messages = stylelint.utils.ruleMessages(ruleName, { - expected: "Expected ...", -}); -const meta = { - url: "https://github.com/aksel/stylelint-foo/blob/main/src/rules/foo-bar/README.md", - // deprecated: true, -}; - -const ruleFunction: stylelint.Rule = ( - primaryOption, - secondaryOptionObject -) => { - console.log(primaryOption, secondaryOptionObject); - return (postcssRoot, postcssResult) => { - // console.log(postcssRoot) - // const validOptions = stylelint.utils.validateOptions( - // postcssResult, - // ruleName, - // { - // /* .. */ - // } - // ); - - // if (!validOptions) { - // return; - // } - - // console.log('TEST!') - // console.log("##### ",!!stylelint, !!(stylelint.utils), !!(stylelint.utils.report)); - - postcssRoot.walk((node) => { - if (Math.random() > 0.9) { - stylelint.utils.report({ - ruleName, - message: "unlucky (TEST)", - severity: "error", - node, - result: postcssResult, - }); - } - }); - }; -}; - -ruleFunction.ruleName = ruleName; -ruleFunction.messages = messages; -ruleFunction.meta = meta; - -const plugin = stylelint.createPlugin(ruleName, ruleFunction); - -export default plugin; diff --git a/@navikt/aksel-stylelint/tsconfig.json b/@navikt/aksel-stylelint/tsconfig.json index bb2f7f6625..6d86115f65 100644 --- a/@navikt/aksel-stylelint/tsconfig.json +++ b/@navikt/aksel-stylelint/tsconfig.json @@ -1,109 +1,18 @@ { "compilerOptions": { - /* Visit https://aka.ms/tsconfig to read more about this file */ - - /* Projects */ - // "incremental": true, /* Save .tsbuildinfo files to allow for incremental compilation of projects. */ - // "composite": true, /* Enable constraints that allow a TypeScript project to be used with project references. */ - // "tsBuildInfoFile": "./.tsbuildinfo", /* Specify the path to .tsbuildinfo incremental compilation file. */ - // "disableSourceOfProjectReferenceRedirect": true, /* Disable preferring source files instead of declaration files when referencing composite projects. */ - // "disableSolutionSearching": true, /* Opt a project out of multi-project reference checking when editing. */ - // "disableReferencedProjectLoad": true, /* Reduce the number of projects loaded automatically by TypeScript. */ - - /* Language and Environment */ - "target": "es2016" /* Set the JavaScript language version for emitted JavaScript and include compatible library declarations. */, - // "lib": [], /* Specify a set of bundled library declaration files that describe the target runtime environment. */ - // "jsx": "preserve", /* Specify what JSX code is generated. */ - // "experimentalDecorators": true, /* Enable experimental support for legacy experimental decorators. */ - // "emitDecoratorMetadata": true, /* Emit design-type metadata for decorated declarations in source files. */ - // "jsxFactory": "", /* Specify the JSX factory function used when targeting React JSX emit, e.g. 'React.createElement' or 'h'. */ - // "jsxFragmentFactory": "", /* Specify the JSX Fragment reference used for fragments when targeting React JSX emit e.g. 'React.Fragment' or 'Fragment'. */ - // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory functions when using 'jsx: react-jsx*'. */ - // "reactNamespace": "", /* Specify the object invoked for 'createElement'. This only applies when targeting 'react' JSX emit. */ - // "noLib": true, /* Disable including any library files, including the default lib.d.ts. */ - // "useDefineForClassFields": true, /* Emit ECMAScript-standard-compliant class fields. */ - // "moduleDetection": "auto", /* Control what method is used to detect module-format JS files. */ - - /* Modules */ - "module": "commonjs" /* Specify what module code is generated. */, - // "rootDir": "./", /* Specify the root folder within your source files. */ - // "moduleResolution": "node10", /* Specify how TypeScript looks up a file from a given module specifier. */ - // "baseUrl": "./", /* Specify the base directory to resolve non-relative module names. */ - // "paths": {}, /* Specify a set of entries that re-map imports to additional lookup locations. */ - // "rootDirs": [], /* Allow multiple folders to be treated as one when resolving modules. */ - // "typeRoots": [], /* Specify multiple folders that act like './node_modules/@types'. */ - // "types": [], /* Specify type package names to be included without being referenced in a source file. */ - // "allowUmdGlobalAccess": true, /* Allow accessing UMD globals from modules. */ - // "moduleSuffixes": [], /* List of file name suffixes to search when resolving a module. */ - // "allowImportingTsExtensions": true, /* Allow imports to include TypeScript file extensions. Requires '--moduleResolution bundler' and either '--noEmit' or '--emitDeclarationOnly' to be set. */ - // "resolvePackageJsonExports": true, /* Use the package.json 'exports' field when resolving package imports. */ - // "resolvePackageJsonImports": true, /* Use the package.json 'imports' field when resolving imports. */ - // "customConditions": [], /* Conditions to set in addition to the resolver-specific defaults when resolving imports. */ - // "resolveJsonModule": true, /* Enable importing .json files. */ - // "allowArbitraryExtensions": true, /* Enable importing files with any extension, provided a declaration file is present. */ - // "noResolve": true, /* Disallow 'import's, 'require's or ''s from expanding the number of files TypeScript should add to a project. */ - - /* JavaScript Support */ - // "allowJs": true, /* Allow JavaScript files to be a part of your program. Use the 'checkJS' option to get errors from these files. */ - // "checkJs": true, /* Enable error reporting in type-checked JavaScript files. */ - // "maxNodeModuleJsDepth": 1, /* Specify the maximum folder depth used for checking JavaScript files from 'node_modules'. Only applicable with 'allowJs'. */ - - /* Emit */ - // "declaration": true, /* Generate .d.ts files from TypeScript and JavaScript files in your project. */ - // "declarationMap": true, /* Create sourcemaps for d.ts files. */ - // "emitDeclarationOnly": true, /* Only output d.ts files and not JavaScript files. */ - // "sourceMap": true, /* Create source map files for emitted JavaScript files. */ - // "inlineSourceMap": true, /* Include sourcemap files inside the emitted JavaScript. */ - // "outFile": "./", /* Specify a file that bundles all outputs into one JavaScript file. If 'declaration' is true, also designates a file that bundles all .d.ts output. */ - // "outDir": "./", /* Specify an output folder for all emitted files. */ - // "removeComments": true, /* Disable emitting comments. */ - // "noEmit": true, /* Disable emitting files from a compilation. */ - // "importHelpers": true, /* Allow importing helper functions from tslib once per project, instead of including them per-file. */ - // "importsNotUsedAsValues": "remove", /* Specify emit/checking behavior for imports that are only used for types. */ - // "downlevelIteration": true, /* Emit more compliant, but verbose and less performant JavaScript for iteration. */ - // "sourceRoot": "", /* Specify the root path for debuggers to find the reference source code. */ - // "mapRoot": "", /* Specify the location where debugger should locate map files instead of generated locations. */ - // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted JavaScript. */ - // "emitBOM": true, /* Emit a UTF-8 Byte Order Mark (BOM) in the beginning of output files. */ - // "newLine": "crlf", /* Set the newline character for emitting files. */ - // "stripInternal": true, /* Disable emitting declarations that have '@internal' in their JSDoc comments. */ - // "noEmitHelpers": true, /* Disable generating custom helper functions like '__extends' in compiled output. */ - // "noEmitOnError": true, /* Disable emitting files if any type checking errors are reported. */ - // "preserveConstEnums": true, /* Disable erasing 'const enum' declarations in generated code. */ - // "declarationDir": "./", /* Specify the output directory for generated declaration files. */ - // "preserveValueImports": true, /* Preserve unused imported values in the JavaScript output that would otherwise be removed. */ - - /* Interop Constraints */ - // "isolatedModules": true, /* Ensure that each file can be safely transpiled without relying on other imports. */ - // "verbatimModuleSyntax": true, /* Do not transform or elide any imports or exports not marked as type-only, ensuring they are written in the output file's format based on the 'module' setting. */ - // "allowSyntheticDefaultImports": true, /* Allow 'import x from y' when a module doesn't have a default export. */ - "esModuleInterop": true /* Emit additional JavaScript to ease support for importing CommonJS modules. This enables 'allowSyntheticDefaultImports' for type compatibility. */, - // "preserveSymlinks": true, /* Disable resolving symlinks to their realpath. This correlates to the same flag in node. */ - "forceConsistentCasingInFileNames": true /* Ensure that casing is correct in imports. */, - - /* Type Checking */ - "strict": true /* Enable all strict type-checking options. */, - // "noImplicitAny": true, /* Enable error reporting for expressions and declarations with an implied 'any' type. */ - // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined'. */ - // "strictFunctionTypes": true, /* When assigning functions, check to ensure parameters and the return values are subtype-compatible. */ - // "strictBindCallApply": true, /* Check that the arguments for 'bind', 'call', and 'apply' methods match the original function. */ - // "strictPropertyInitialization": true, /* Check for class properties that are declared but not set in the constructor. */ - // "noImplicitThis": true, /* Enable error reporting when 'this' is given the type 'any'. */ - // "useUnknownInCatchVariables": true, /* Default catch clause variables as 'unknown' instead of 'any'. */ - // "alwaysStrict": true, /* Ensure 'use strict' is always emitted. */ - // "noUnusedLocals": true, /* Enable error reporting when local variables aren't read. */ - // "noUnusedParameters": true, /* Raise an error when a function parameter isn't read. */ - // "exactOptionalPropertyTypes": true, /* Interpret optional property types as written, rather than adding 'undefined'. */ - // "noImplicitReturns": true, /* Enable error reporting for codepaths that do not explicitly return in a function. */ - // "noFallthroughCasesInSwitch": true, /* Enable error reporting for fallthrough cases in switch statements. */ - // "noUncheckedIndexedAccess": true, /* Add 'undefined' to a type when accessed using an index. */ - // "noImplicitOverride": true, /* Ensure overriding members in derived classes are marked with an override modifier. */ - // "noPropertyAccessFromIndexSignature": true, /* Enforces using indexed accessors for keys declared using an indexed type. */ - // "allowUnusedLabels": true, /* Disable error reporting for unused labels. */ - // "allowUnreachableCode": true, /* Disable error reporting for unreachable code. */ - - /* Completeness */ - // "skipDefaultLibCheck": true, /* Skip type checking .d.ts files that are included with TypeScript. */ - "skipLibCheck": true /* Skip type checking all .d.ts files. */ - } + "module": "CommonJS", + "sourceMap": false, + "esModuleInterop": true, + "target": "es2015", + "preserveWatchOutput": true, + "declaration": false, + "types": ["node", "jest", "@types/jest"], + "outDir": "dist", + "rootDir": ".", + "resolveJsonModule": true, + "allowJs": true, + "skipLibCheck": true + }, + "include": ["**/*.ts"], + "exclude": ["node_modules", "dist", "**/tests/**"] } diff --git a/package.json b/package.json index 1112906eba..cb307bb610 100644 --- a/package.json +++ b/package.json @@ -148,8 +148,7 @@ ], "plugins": [ "stylelint-value-no-unknown-custom-properties", - "stylelint-declaration-block-no-ignored-properties", - "@navikt/aksel-stylelint" + "stylelint-declaration-block-no-ignored-properties" ], "rules": { "plugin/declaration-block-no-ignored-properties": true, @@ -185,8 +184,7 @@ "@navikt/core/tokens/dist/tokens.css" ] } - ], - "plugin/aksel-all-rules": true + ] }, "ignoreFiles": [ "**/dist/**", diff --git a/yarn.lock b/yarn.lock index 9acafc40a4..07d5218921 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4110,6 +4110,16 @@ __metadata: languageName: unknown linkType: soft +"@navikt/aksel-stylelint@workspace:@navikt/aksel-stylelint": + version: 0.0.0-use.local + resolution: "@navikt/aksel-stylelint@workspace:@navikt/aksel-stylelint" + dependencies: + "@types/jest": ^29.0.0 + jest: ^29.0.0 + stylelint: ^14.8.5 + languageName: unknown + linkType: soft + "@navikt/aksel@workspace:@navikt/aksel": version: 0.0.0-use.local resolution: "@navikt/aksel@workspace:@navikt/aksel" From 0c958d64ad53747151373d0e9dd6a0341ddaab8e Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Thu, 11 May 2023 11:49:38 +0200 Subject: [PATCH 03/68] working stylelint config + test rule this commit is a good "base" for developing future stylelint rules --- @navikt/aksel-stylelint/index.ts | 264 +----------------- .../rules/aksel-test-rule/index.ts | 27 ++ @navikt/aksel-stylelint/rules/index.ts | 6 + package.json | 2 +- 4 files changed, 40 insertions(+), 259 deletions(-) create mode 100644 @navikt/aksel-stylelint/rules/aksel-test-rule/index.ts create mode 100644 @navikt/aksel-stylelint/rules/index.ts diff --git a/@navikt/aksel-stylelint/index.ts b/@navikt/aksel-stylelint/index.ts index e32968003e..da9de022fd 100644 --- a/@navikt/aksel-stylelint/index.ts +++ b/@navikt/aksel-stylelint/index.ts @@ -1,260 +1,8 @@ -/** - * @type {import('./plugins/coverage').PrimaryOptions} The stylelint-polaris/coverage rule expects a 3-dimensional rule config that groups Stylelint rules by coverage categories. It reports problems with dynamic rule names by appending the category to the coverage plugin's rule name +import { createPlugin } from "stylelint"; +import { rules } from "./rules"; -(e.g., Unexpected named color "blue" - Please use a Polaris color token Stylelint(polaris/colors/color-named)") -*/ -/* const stylelintPolarisCoverageOptions = { - border: [ - { - "declaration-property-unit-disallowed-list": [], - "polaris/at-rule-disallowed-list": { - include: [ - "high-contrast-border", - "high-contrast-button-outline", - "high-contrast-outline", - "focus-ring", - "no-focus-ring", - ].map(matchNameRegExp), - }, - "polaris/custom-property-disallowed-list": {}, - }, - { - message: "Please use a Polaris border token", - }, - ], - color: [ - { - "color-named": "never", - "color-no-hex": true, - "scss/function-color-relative": true, - "function-disallowed-list": [ - // Include Sass namespace - // https://regex101.com/r/UdW0oV/1 - "brightness", - "contrast", - "hue-rotate", - "hsl", - "hsla", - "invert", - "rgb", - "rgba", - "sepia", - ...["color-multiply", "color", "filter"].map(matchNameRegExp), - ], - "polaris/at-rule-disallowed-list": { - include: [ - // Legacy mixins - "recolor-icon", - "ms-high-contrast-color", - ].map(matchNameRegExp), - }, - "polaris/custom-property-disallowed-list": {}, - "polaris/global-disallowed-list": [], - }, - { - message: "Please use a Polaris color token", - }, - ], - conventions: { - "selector-disallowed-list": [ - [/class[*^~]?='Polaris-[a-z_-]+'/gi], - { - message: - "Overriding Polaris styles is disallowed. Please consider contributing instead", - }, - ], - "polaris/custom-property-allowed-list": { - // Allows definition of custom properties not prefixed with `--p-`, `--pc-`, or `--polaris-version-` - allowedProperties: [/--(?!(p|pc|polaris-version)-).+/], - // Allows use of custom properties prefixed with `--p-` that are valid Polaris tokens - allowedValues: { - "/.+/": [ - // Note: Order is important - // This pattern allows use of `--p-*` custom properties that are valid Polaris tokens - ...getCustomPropertyNames(tokens), - // This pattern flags unknown `--p-*` custom properties or usage of deprecated `--pc-*` custom properties private to polaris-react - /--(?!(p|pc)-).+/, - ], - }, - }, - }, - layout: [ - { - "declaration-property-value-disallowed-list": [], - "property-disallowed-list": [], - "function-disallowed-list": [ - "nav-min-window-corrected", - "control-height", - "control-slim-height", - "mobile-nav-width", - "thumbnail-size", - "top-bar-height", - ].map(matchNameRegExp), - "polaris/at-rule-disallowed-list": { - include: ["layout-flex-fix", "safe-area-for"].map(matchNameRegExp), - }, - "polaris/custom-property-disallowed-list": {}, - "polaris/global-disallowed-list": [], - }, - { - message: - "Consider using a Polaris layout component if applicable for this layout style", - }, - ], - legacy: [ - {}, - { - message: "Please use a Polaris token or component", - }, - ], - "media-queries": [ - { - "polaris/media-query-allowed-list": {}, - // Legacy functions - "function-disallowed-list": [], - // Legacy mixins - "polaris/at-rule-disallowed-list": {}, - }, - { - message: "Please use a Polaris breakpoint token", - }, - ], - motion: [ - {}, - { - message: "Please use a Polaris motion token", - }, - ], - shadow: [ - { - "function-disallowed-list": ["shadow"].map(matchNameRegExp), - "declaration-property-unit-disallowed-list": [ - { - "box-shadow": disallowedUnits, - }, - ], - "property-disallowed-list": ["text-shadow"], - "polaris/custom-property-disallowed-list": { - disallowedProperties: disallowedVarsShadow, - disallowedValues: { "/.+/": disallowedVarsShadow }, - }, - "polaris/global-disallowed-list": [ - // Legacy mixin map-get data - /\$shadows-data/, - ], - }, - { - message: "Please use a Polaris shadow token", - }, - ], - space: [ - { - "function-disallowed-list": ["control-vertical-padding"].map( - matchNameRegExp - ), - "declaration-property-unit-disallowed-list": [{}], - "polaris/custom-property-disallowed-list": {}, - "polaris/global-disallowed-list": [], - }, - { - message: "Please use a Polaris space token", - }, - ], - typography: [ - { - "polaris/declaration-property-value-disallowed-list": { - "font-weight": [/(\$.*|[0-9]+)/], - }, - "declaration-property-unit-disallowed-list": [ - { - "/^font/": disallowedUnits, - "line-height": disallowedUnits, - }, - ], - "property-disallowed-list": ["text-transform"], - "function-disallowed-list": ["font-size", "line-height"].map( - matchNameRegExp - ), - "polaris/at-rule-disallowed-list": { - include: [ - "truncate", - "text-breakword", - "text-emphasis-normal", - "text-emphasis-strong", - "text-emphasis-subdued", - "text-style-body", - "text-style-button-large", - "text-style-button", - "text-style-caption", - "text-style-display-large", - "text-style-display-medium", - "text-style-display-small", - "text-style-display-x-large", - "text-style-heading", - "text-style-input", - "text-style-subheading", - ].map(matchNameRegExp), - }, - "polaris/global-disallowed-list": [ - // Legacy mixin map-get data - /\$base-font-size/, - /\$line-height-data/, - /\$font-size-data/, - /\$default-browser-font-size/, - ], - }, - { - message: "Please use a Polaris font token or typography component", - }, - ], - "z-index": [ - { - "declaration-property-value-allowed-list": [ - { - "z-index": Object.keys(tokens.zIndex).map( - (token) => `var(${createVar(token)})` - ), - }, - ], - "function-disallowed-list": ["z-index"].map(matchNameRegExp), - "polaris/custom-property-disallowed-list": { - disallowedProperties: disallowedVarsZIndex, - disallowedValues: { "/.+/": disallowedVarsZIndex }, - }, - "polaris/global-disallowed-list": [ - // Legacy mixin map-get data - /\$fixed-element-stacking-order/, - /\$global-elements/, - ], - }, - { - message: "Please use a Polaris z-index token", - }, - ], -}; */ +const rulesPlugins = Object.keys(rules).map((ruleName) => { + return createPlugin(`@navikt/${ruleName}`, rules[ruleName]); +}); -/** @type {import('stylelint').Config} */ -module.exports = { - /* reportDescriptionlessDisables: true, - reportNeedlessDisables: true, */ - reportInvalidScopeDisables: [ - true, - { - // Report invalid scope disables for all rules except coverage rules - // Note: This doesn't affect the default Stylelint behavior/reporting - // and is only need because we dynamically create these rule names - except: /^polaris\/.+?\/.+$/, - }, - ], - plugins: ["./plugins/coverage", "./plugins/at-rule"], - rules: { - "aksel/coverage": { - test: [ - { "aksel/at-rule-disallowed-list": {} }, - { - message: "Please work 🙏", - }, - ], - }, - }, -}; +export default rulesPlugins; diff --git a/@navikt/aksel-stylelint/rules/aksel-test-rule/index.ts b/@navikt/aksel-stylelint/rules/aksel-test-rule/index.ts new file mode 100644 index 0000000000..6705f81a19 --- /dev/null +++ b/@navikt/aksel-stylelint/rules/aksel-test-rule/index.ts @@ -0,0 +1,27 @@ +import stylelint from "stylelint"; + +const ruleName = "@navikt/aksel-test-rule"; + +const ruleFunction: stylelint.Rule = ( + primaryOption, + secondaryOptionObject +) => { + return (postcssRoot, postcssResult) => { + postcssRoot.walk((node) => { + if (Math.random() > 0.9) { + stylelint.utils.report({ + ruleName, + message: "unlucky (TEST)", + severity: "error", + node, + result: postcssResult, + }); + } + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = {}; + +export default ruleFunction; diff --git a/@navikt/aksel-stylelint/rules/index.ts b/@navikt/aksel-stylelint/rules/index.ts new file mode 100644 index 0000000000..d7301864ba --- /dev/null +++ b/@navikt/aksel-stylelint/rules/index.ts @@ -0,0 +1,6 @@ +import { Rule } from "stylelint"; +import testRule from "./aksel-test-rule"; + +export const rules: Record = { + "aksel-test-rule": testRule, +}; diff --git a/package.json b/package.json index cb307bb610..4909cf7359 100644 --- a/package.json +++ b/package.json @@ -144,7 +144,7 @@ "extends": [ "stylelint-config-standard", "stylelint-config-prettier", - "@navikt/aksel-stylelint" + "./@navikt/aksel-stylelint/recommended" ], "plugins": [ "stylelint-value-no-unknown-custom-properties", From 3ec4624a859500b6516e580b13b144d27db1c157 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Thu, 11 May 2023 12:24:55 +0200 Subject: [PATCH 04/68] merge ideas (sortof) --- @navikt/aksel-stylelint/.gitignore | 2 +- .../aksel-stylelint/plugins/at-rule/index.ts | 73 ------------------- @navikt/aksel-stylelint/recommended.ts | 6 ++ package.json | 2 +- 4 files changed, 8 insertions(+), 75 deletions(-) delete mode 100644 @navikt/aksel-stylelint/plugins/at-rule/index.ts create mode 100644 @navikt/aksel-stylelint/recommended.ts diff --git a/@navikt/aksel-stylelint/.gitignore b/@navikt/aksel-stylelint/.gitignore index 4c43fe68f6..3e22129247 100644 --- a/@navikt/aksel-stylelint/.gitignore +++ b/@navikt/aksel-stylelint/.gitignore @@ -1 +1 @@ -*.js \ No newline at end of file +/dist \ No newline at end of file diff --git a/@navikt/aksel-stylelint/plugins/at-rule/index.ts b/@navikt/aksel-stylelint/plugins/at-rule/index.ts deleted file mode 100644 index a9346d7723..0000000000 --- a/@navikt/aksel-stylelint/plugins/at-rule/index.ts +++ /dev/null @@ -1,73 +0,0 @@ -const stylelint = require("stylelint"); - -const ruleName = "aksel/at-rule-disallowed-list"; - -const messages = stylelint.utils.ruleMessages(ruleName, { - /** - * @type {stylelint.RuleMessageFunc} - */ - rejected: (atRuleName, atRuleParams) => { - return `Unexpected @${atRuleName} rule${ - atRuleParams ? ` "${atRuleParams}"` : "" - }`; - }, -}); - -/** @typedef {(string | RegExp)[]} DisallowedPatterns */ - -/** - * @typedef {{[atRuleName: string]: DisallowedPatterns}} PrimaryOptions - */ - -const { rule } = stylelint.createPlugin( - ruleName, - /** @param {PrimaryOptions} primary */ - (primary) => { - return (root, result) => { - console.count(`Running: ${ruleName}`); - const validOptions = stylelint.utils.validateOptions(result, ruleName, { - actual: primary, - possible: validateAllowedValuesOption, - }); - - if (!validOptions) { - throw new Error( - `Invalid options were provided to the [${ruleName}] stylelint plugin.\n` - ); - } - - root.walkAtRules((atRule) => { - const atRuleName = atRule.name; - const disallowedPatterns = primary[atRuleName]; - - if (!disallowedPatterns) return; - - const atRuleId = atRule.params; - - const found = ["test1", "test2"]; - - found.forEach(() => { - stylelint.utils.report({ - ruleName, - result, - node: atRule, - message: messages.rejected(atRuleName, atRuleId), - }); - }); - }); - }; - } -); - -module.exports = { - rule, - ruleName, - messages, -}; - -/** - * @param {unknown} option - `primary` option. - */ -function validateAllowedValuesOption(option) { - return true; -} diff --git a/@navikt/aksel-stylelint/recommended.ts b/@navikt/aksel-stylelint/recommended.ts new file mode 100644 index 0000000000..be3998a32c --- /dev/null +++ b/@navikt/aksel-stylelint/recommended.ts @@ -0,0 +1,6 @@ +module.exports = { + plugins: ["."], + rules: { + "@navikt/aksel-test-rule": true, + }, +}; diff --git a/package.json b/package.json index 4909cf7359..c17471aae1 100644 --- a/package.json +++ b/package.json @@ -144,7 +144,7 @@ "extends": [ "stylelint-config-standard", "stylelint-config-prettier", - "./@navikt/aksel-stylelint/recommended" + "./@navikt/aksel-stylelint/dist/recommended" ], "plugins": [ "stylelint-value-no-unknown-custom-properties", From 63d77c772e4a10f20fda6180542b651a4a061f53 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Mon, 15 May 2023 15:19:49 +0200 Subject: [PATCH 05/68] wip commit --- @navikt/aksel-stylelint/recommended.ts | 5 +- .../rules/aksel-design-tokens/index.ts | 155 ++++++++++++++++++ .../rules/aksel-design-tokens/utils.ts | 73 +++++++++ @navikt/aksel-stylelint/rules/index.ts | 2 + @navikt/core/css/TESTLINTER.css | 14 ++ package.json | 1 + 6 files changed, 249 insertions(+), 1 deletion(-) create mode 100644 @navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts create mode 100644 @navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts create mode 100644 @navikt/core/css/TESTLINTER.css diff --git a/@navikt/aksel-stylelint/recommended.ts b/@navikt/aksel-stylelint/recommended.ts index be3998a32c..4f21d23bf8 100644 --- a/@navikt/aksel-stylelint/recommended.ts +++ b/@navikt/aksel-stylelint/recommended.ts @@ -1,6 +1,9 @@ module.exports = { plugins: ["."], rules: { - "@navikt/aksel-test-rule": true, + "@navikt/aksel-design-tokens": { + tokenDefinitionsFile: "@navikt/core/css/dist/index.css", + controlledPrefixes: [/--ac-.+/, /--a-.+/], + }, }, }; diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts new file mode 100644 index 0000000000..3820a49612 --- /dev/null +++ b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts @@ -0,0 +1,155 @@ +import stylelint from "stylelint"; +import valueParser from "postcss-value-parser"; +import { isCustomProperty } from "./utils"; + +import { readFileSync } from "node:fs"; + +const ruleName = "@navikt/aksel-design-tokens"; + +let allowedTokenNames = []; + +const errorMessage = ( + type: "prop" | "value", + node, + controlledPrefixes, + invalidValues?: string[] +) => { + if (type === "value") { + return ( + `property "${node.prop}" has offending value(s) "${invalidValues}", ` + + `and the value seems like it intends to reference a design token by ` + + `using one of the following prefixes [${controlledPrefixes}]. ` + + `However, that token doesn't seem to exist in the design system.` + ); + } + return ( + `property "${node.prop}" has a name that seems like it intends to override a design token by ` + + `using one of the following prefixes [${controlledPrefixes}]. ` + + `However, that token doesn't seem to exist in the design system.` + ); +}; + +const isValidToken = ( + tokenDefinitionsFile: string, + controlledPrefixes, + inputToken: string +) => { + if (!allowedTokenNames.length) { + const fileBuffer = readFileSync(tokenDefinitionsFile); + const fileString = fileBuffer.toString(); + + valueParser(fileString).walk((node) => { + if ( + node.type === "word" && + isCustomProperty(node.value) && + controlledPrefixes.some((prefix) => node.value.match(prefix) !== null) + ) { + allowedTokenNames.push(node.value); + } + }); + } + + return allowedTokenNames.some((element) => element === inputToken); +}; + +const getInvalidPropName = ( + tokenDefinitionsFile: string, + controlledPrefixes, + prop: string +) => { + const invalidValues: string[] = []; + + if ( + isCustomProperty(prop) && + controlledPrefixes.some((prefix) => prop.match(prefix) !== null) && + !isValidToken(tokenDefinitionsFile, controlledPrefixes, prop) + ) { + invalidValues.push(prop); + } + + if (invalidValues.length > 0) return invalidValues; +}; + +const getInvalidVariableNames = ( + tokenDefinitionsFile: string, + controlledPrefixes, + value +): string[] => { + const invalidValues: string[] = []; + + valueParser(value).walk((node) => { + if ( + node.type === "word" && + isCustomProperty(node.value) && + controlledPrefixes.some((prefix) => node.value.match(prefix) !== null) && + !isValidToken(tokenDefinitionsFile, controlledPrefixes, node.value) + ) { + invalidValues.push(node.value); + } + }); + + if (invalidValues.length > 0) return invalidValues; +}; + +type PrimaryOptions = { + controlledPrefixes?: (string | RegExp)[]; + tokenDefinitionsFile: string; +}; + +const ruleFunction: stylelint.Rule = ( + primaryOption, + _secondaryOptionObject +) => { + return (postcssRoot, postcssResult) => { + const { controlledPrefixes = [], tokenDefinitionsFile } = primaryOption; + + postcssRoot.walkDecls((node) => { + const prop = node.prop; + const value = node.value; + + const invalidPropNames = getInvalidPropName( + tokenDefinitionsFile, + controlledPrefixes, + prop + ); + + const invalidCustomProperties = getInvalidVariableNames( + tokenDefinitionsFile, + controlledPrefixes, + value + ); + + if (invalidCustomProperties) { + stylelint.utils.report({ + message: errorMessage( + "value", + node, + controlledPrefixes, + invalidCustomProperties + ), + node, + result: postcssResult, + ruleName, + // start: node.source.start, + // end: { column: node.source.end.column + node.prop.length, line: node.source.end.line} + }); + } + + if (invalidPropNames) { + stylelint.utils.report({ + message: errorMessage("prop", node, controlledPrefixes), + node, + result: postcssResult, + ruleName, + // start: node.source.start, + // end: { column: node.source.end.column + node.prop.length, line: node.source.end.line} + }); + } + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = {}; + +export default ruleFunction; diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts b/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts new file mode 100644 index 0000000000..170813010a --- /dev/null +++ b/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts @@ -0,0 +1,73 @@ +export const isCustomProperty = (property) => { + return property.startsWith("--"); +}; + +export const matchesStringOrRegExp = (input, comparison) => { + if (!Array.isArray(input)) { + return testAgainstStringOrRegExpOrArray(input, comparison); + } + + for (const inputItem of input) { + const testResult = testAgainstStringOrRegExpOrArray(inputItem, comparison); + + if (testResult) { + return testResult; + } + } + + return false; +}; + +export const testAgainstStringOrRegExpOrArray = (value, comparison) => { + if (!Array.isArray(comparison)) { + return testAgainstStringOrRegExp(value, comparison); + } + + for (const comparisonItem of comparison) { + const testResult = testAgainstStringOrRegExp(value, comparisonItem); + + if (testResult) { + return testResult; + } + } + + return false; +}; + +export const testAgainstStringOrRegExp = (value, comparison) => { + // If it's a RegExp, test directly + if (comparison instanceof RegExp) { + return comparison.test(value) + ? { match: value, pattern: comparison } + : false; + } + + // Check if it's RegExp in a string + const firstComparisonChar = comparison[0]; + const lastComparisonChar = comparison[comparison.length - 1]; + const secondToLastComparisonChar = comparison[comparison.length - 2]; + + const comparisonIsRegex = + firstComparisonChar === "/" && + (lastComparisonChar === "/" || + (secondToLastComparisonChar === "/" && lastComparisonChar === "i")); + + const hasCaseInsensitiveFlag = + comparisonIsRegex && lastComparisonChar === "i"; + + // If so, create a new RegExp from it + if (comparisonIsRegex) { + const valueMatches = hasCaseInsensitiveFlag + ? new RegExp(comparison.slice(1, -2), "i").test(value) + : new RegExp(comparison.slice(1, -1)).test(value); + + return valueMatches ? { match: value, pattern: comparison } : false; + } + + // Otherwise, it's a string. Do a strict comparison + return value === comparison ? { match: value, pattern: comparison } : false; +}; + +export const vendorUnprefixed = (prop) => { + return prop.replace(/^-\w+-/, ""); +}; diff --git a/@navikt/aksel-stylelint/rules/index.ts b/@navikt/aksel-stylelint/rules/index.ts index d7301864ba..17e24fa799 100644 --- a/@navikt/aksel-stylelint/rules/index.ts +++ b/@navikt/aksel-stylelint/rules/index.ts @@ -1,6 +1,8 @@ import { Rule } from "stylelint"; import testRule from "./aksel-test-rule"; +import designTokens from "./aksel-design-tokens"; export const rules: Record = { "aksel-test-rule": testRule, + "aksel-design-tokens": designTokens, }; diff --git a/@navikt/core/css/TESTLINTER.css b/@navikt/core/css/TESTLINTER.css new file mode 100644 index 0000000000..4f49c4f5ad --- /dev/null +++ b/@navikt/core/css/TESTLINTER.css @@ -0,0 +1,14 @@ +.navds-accordion__header:hover { + background-color: var(--ac-accordion-header-bg-hover, var(--a-surface-action)); + text-decoration: underline; + color: var(--legal-token, inherit); +} + +* { + color: var(--a-illegal-token, inherit); + + --ac-illegal-token: 4px; + --a-illegal-token: 5px; + --aca-legal-token: 6px; + --b-legal-token: 6px; +} diff --git a/package.json b/package.json index c17471aae1..d34be1df47 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,7 @@ "test": "yarn workspaces foreach -p run test", "lint": "yarn eslint . && yarn stylelint @navikt/**/*.css", "lint:css": "yarn stylelint @navikt/**/*.css", + "lint:csstest": "yarn stylelint @navikt/core/css/TESTLINTER.css", "changeset": "changeset", "version": "changeset version", "release": "yarn boot && yarn docgen && changeset publish" From 7637d2f25309f20db73a781e5753069752476e58 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Mon, 15 May 2023 15:51:15 +0200 Subject: [PATCH 06/68] wip commit --- @navikt/aksel-stylelint/recommended.ts | 1 + .../rules/aksel-design-tokens/index.ts | 49 +++++++++++++++---- 2 files changed, 41 insertions(+), 9 deletions(-) diff --git a/@navikt/aksel-stylelint/recommended.ts b/@navikt/aksel-stylelint/recommended.ts index 4f21d23bf8..65bcb6e12f 100644 --- a/@navikt/aksel-stylelint/recommended.ts +++ b/@navikt/aksel-stylelint/recommended.ts @@ -3,6 +3,7 @@ module.exports = { rules: { "@navikt/aksel-design-tokens": { tokenDefinitionsFile: "@navikt/core/css/dist/index.css", + overrideableTokenDefinitionsJSONFile: "@navikt/core/css/tokens.json", controlledPrefixes: [/--ac-.+/, /--a-.+/], }, }, diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts index 3820a49612..3c458157dc 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts @@ -11,7 +11,7 @@ let allowedTokenNames = []; const errorMessage = ( type: "prop" | "value", node, - controlledPrefixes, + controlledPrefixes: PrimaryOptions["controlledPrefixes"], invalidValues?: string[] ) => { if (type === "value") { @@ -31,14 +31,16 @@ const errorMessage = ( const isValidToken = ( tokenDefinitionsFile: string, - controlledPrefixes, + overrideableTokenDefinitionsJSONFile: string, + controlledPrefixes: PrimaryOptions["controlledPrefixes"], inputToken: string ) => { + // "singleton" if statement (attempt at caching file parsing) if (!allowedTokenNames.length) { - const fileBuffer = readFileSync(tokenDefinitionsFile); - const fileString = fileBuffer.toString(); + const cssFileBuffer = readFileSync(tokenDefinitionsFile); + const cssFileString = cssFileBuffer.toString(); - valueParser(fileString).walk((node) => { + valueParser(cssFileString).walk((node) => { if ( node.type === "word" && isCustomProperty(node.value) && @@ -47,6 +49,16 @@ const isValidToken = ( allowedTokenNames.push(node.value); } }); + + const jsonFileBuffer = readFileSync(overrideableTokenDefinitionsJSONFile); + const fileString = jsonFileBuffer.toString(); + + const jsonObject = JSON.parse(fileString); + for (const value of Object.values(jsonObject)) { + for (const tokenName of Object.keys(value)) { + allowedTokenNames.push(tokenName); + } + } } return allowedTokenNames.some((element) => element === inputToken); @@ -54,7 +66,8 @@ const isValidToken = ( const getInvalidPropName = ( tokenDefinitionsFile: string, - controlledPrefixes, + overrideableTokenDefinitionsJSONFile: string, + controlledPrefixes: PrimaryOptions["controlledPrefixes"], prop: string ) => { const invalidValues: string[] = []; @@ -62,7 +75,12 @@ const getInvalidPropName = ( if ( isCustomProperty(prop) && controlledPrefixes.some((prefix) => prop.match(prefix) !== null) && - !isValidToken(tokenDefinitionsFile, controlledPrefixes, prop) + !isValidToken( + tokenDefinitionsFile, + overrideableTokenDefinitionsJSONFile, + controlledPrefixes, + prop + ) ) { invalidValues.push(prop); } @@ -72,6 +90,7 @@ const getInvalidPropName = ( const getInvalidVariableNames = ( tokenDefinitionsFile: string, + overrideableTokenDefinitionsJSONFile: string, controlledPrefixes, value ): string[] => { @@ -82,7 +101,12 @@ const getInvalidVariableNames = ( node.type === "word" && isCustomProperty(node.value) && controlledPrefixes.some((prefix) => node.value.match(prefix) !== null) && - !isValidToken(tokenDefinitionsFile, controlledPrefixes, node.value) + !isValidToken( + tokenDefinitionsFile, + overrideableTokenDefinitionsJSONFile, + controlledPrefixes, + node.value + ) ) { invalidValues.push(node.value); } @@ -94,6 +118,7 @@ const getInvalidVariableNames = ( type PrimaryOptions = { controlledPrefixes?: (string | RegExp)[]; tokenDefinitionsFile: string; + overrideableTokenDefinitionsJSONFile: string; }; const ruleFunction: stylelint.Rule = ( @@ -101,7 +126,11 @@ const ruleFunction: stylelint.Rule = ( _secondaryOptionObject ) => { return (postcssRoot, postcssResult) => { - const { controlledPrefixes = [], tokenDefinitionsFile } = primaryOption; + const { + controlledPrefixes = [], + tokenDefinitionsFile, + overrideableTokenDefinitionsJSONFile, + } = primaryOption; postcssRoot.walkDecls((node) => { const prop = node.prop; @@ -109,12 +138,14 @@ const ruleFunction: stylelint.Rule = ( const invalidPropNames = getInvalidPropName( tokenDefinitionsFile, + overrideableTokenDefinitionsJSONFile, controlledPrefixes, prop ); const invalidCustomProperties = getInvalidVariableNames( tokenDefinitionsFile, + overrideableTokenDefinitionsJSONFile, controlledPrefixes, value ); From 4f2c706a2690b4131265179cb8406b32bff03894 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 16 May 2023 11:56:01 +0200 Subject: [PATCH 07/68] wip commit --- @navikt/aksel-stylelint/README.md | 52 +++++++++++++++++++ .../rules/aksel-design-tokens/index.ts | 6 ++- @navikt/core/css/TESTLINTER.css | 2 + 3 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 @navikt/aksel-stylelint/README.md diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md new file mode 100644 index 0000000000..750e8883b6 --- /dev/null +++ b/@navikt/aksel-stylelint/README.md @@ -0,0 +1,52 @@ +# Aksel stylelint rules & plugins + +## aksel-design-tokens + +This stylelint rule will help you referrence or override a design token in the Aksel design system by making sure that it exists. + +### Install + +```bash +yarn add @navikt/aksel-stylelint +npm install -D @navikt/aksel-stylelint +``` + +### Options + +```ts +interface PrimaryOptions { + type PrimaryOptions = { + controlledPrefixes?: (string | RegExp)[]; + tokenDefinitionsFile: string; + overrideableTokenDefinitionsJSONFile: string; + }; +} +``` + +### How to configure + +It should be sufficient for most cases to extend the recommended defaults. + +```js + "stylelint": { + "extends": [ + ... + "./@navikt/aksel-stylelint/dist/recommended" + ], + ... + } +``` + +If you want to configure it further, or tweak the behaviour of the rule, you can look inside `@navikt/aksel-stylelint/recommended.ts` + +```js +const stylelintConfig = { + rules: { + "@navikt/aksel-design-tokens": { + tokenDefinitionsFile: "@navikt/core/css/dist/index.css", + overrideableTokenDefinitionsJSONFile: "@navikt/core/css/tokens.json", + controlledPrefixes: [/--ac-.+/, /--a-.+/], + }, + }, +}; +``` diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts index 3c458157dc..6b9de431fc 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts @@ -19,13 +19,15 @@ const errorMessage = ( `property "${node.prop}" has offending value(s) "${invalidValues}", ` + `and the value seems like it intends to reference a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system.` + `However, that token doesn't seem to exist in the design system. ` + + `https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-tokens` ); } return ( `property "${node.prop}" has a name that seems like it intends to override a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system.` + `However, that token doesn't seem to exist in the design system. ` + + `https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-tokens` ); }; diff --git a/@navikt/core/css/TESTLINTER.css b/@navikt/core/css/TESTLINTER.css index 4f49c4f5ad..a86fabcc8a 100644 --- a/@navikt/core/css/TESTLINTER.css +++ b/@navikt/core/css/TESTLINTER.css @@ -2,6 +2,7 @@ background-color: var(--ac-accordion-header-bg-hover, var(--a-surface-action)); text-decoration: underline; color: var(--legal-token, inherit); + background-image: var(--a-illegal-image); } * { @@ -11,4 +12,5 @@ --a-illegal-token: 5px; --aca-legal-token: 6px; --b-legal-token: 6px; + --a-tokenthing: 42; } From e46d1f185b38bd162a413374c713385facc1c3d2 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 16 May 2023 12:05:13 +0200 Subject: [PATCH 08/68] delete test-rule + add URL to readme section --- .../rules/aksel-design-tokens/index.ts | 9 ++++--- .../rules/aksel-test-rule/index.ts | 27 ------------------- @navikt/aksel-stylelint/rules/index.ts | 2 -- @navikt/core/css/TESTLINTER.css | 1 - 4 files changed, 5 insertions(+), 34 deletions(-) delete mode 100644 @navikt/aksel-stylelint/rules/aksel-test-rule/index.ts diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts index 6b9de431fc..aff8b194ec 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts @@ -19,15 +19,13 @@ const errorMessage = ( `property "${node.prop}" has offending value(s) "${invalidValues}", ` + `and the value seems like it intends to reference a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system. ` + - `https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-tokens` + `However, that token doesn't seem to exist in the design system. ` ); } return ( `property "${node.prop}" has a name that seems like it intends to override a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system. ` + - `https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-tokens` + `However, that token doesn't seem to exist in the design system. ` ); }; @@ -184,5 +182,8 @@ const ruleFunction: stylelint.Rule = ( ruleFunction.ruleName = ruleName; ruleFunction.messages = {}; +ruleFunction.meta = { + url: 'https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-tokens', +}; export default ruleFunction; diff --git a/@navikt/aksel-stylelint/rules/aksel-test-rule/index.ts b/@navikt/aksel-stylelint/rules/aksel-test-rule/index.ts deleted file mode 100644 index 6705f81a19..0000000000 --- a/@navikt/aksel-stylelint/rules/aksel-test-rule/index.ts +++ /dev/null @@ -1,27 +0,0 @@ -import stylelint from "stylelint"; - -const ruleName = "@navikt/aksel-test-rule"; - -const ruleFunction: stylelint.Rule = ( - primaryOption, - secondaryOptionObject -) => { - return (postcssRoot, postcssResult) => { - postcssRoot.walk((node) => { - if (Math.random() > 0.9) { - stylelint.utils.report({ - ruleName, - message: "unlucky (TEST)", - severity: "error", - node, - result: postcssResult, - }); - } - }); - }; -}; - -ruleFunction.ruleName = ruleName; -ruleFunction.messages = {}; - -export default ruleFunction; diff --git a/@navikt/aksel-stylelint/rules/index.ts b/@navikt/aksel-stylelint/rules/index.ts index 17e24fa799..eeec7b3d18 100644 --- a/@navikt/aksel-stylelint/rules/index.ts +++ b/@navikt/aksel-stylelint/rules/index.ts @@ -1,8 +1,6 @@ import { Rule } from "stylelint"; -import testRule from "./aksel-test-rule"; import designTokens from "./aksel-design-tokens"; export const rules: Record = { - "aksel-test-rule": testRule, "aksel-design-tokens": designTokens, }; diff --git a/@navikt/core/css/TESTLINTER.css b/@navikt/core/css/TESTLINTER.css index a86fabcc8a..142f58e825 100644 --- a/@navikt/core/css/TESTLINTER.css +++ b/@navikt/core/css/TESTLINTER.css @@ -7,7 +7,6 @@ * { color: var(--a-illegal-token, inherit); - --ac-illegal-token: 4px; --a-illegal-token: 5px; --aca-legal-token: 6px; From 8f76170befc770846765c5c2c0ed528eb2f7e133 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 16 May 2023 12:27:48 +0200 Subject: [PATCH 09/68] flatten json object --- .../rules/aksel-design-tokens/index.ts | 10 +++------- .../rules/aksel-design-tokens/utils.ts | 13 +++++++++++++ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts index aff8b194ec..419b7c486e 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts @@ -1,6 +1,6 @@ import stylelint from "stylelint"; import valueParser from "postcss-value-parser"; -import { isCustomProperty } from "./utils"; +import { flattenObject, isCustomProperty } from "./utils"; import { readFileSync } from "node:fs"; @@ -53,12 +53,8 @@ const isValidToken = ( const jsonFileBuffer = readFileSync(overrideableTokenDefinitionsJSONFile); const fileString = jsonFileBuffer.toString(); - const jsonObject = JSON.parse(fileString); - for (const value of Object.values(jsonObject)) { - for (const tokenName of Object.keys(value)) { - allowedTokenNames.push(tokenName); - } - } + const flattened = flattenObject(JSON.parse(fileString)); + flattened.forEach(token => allowedTokenNames.push(token)); } return allowedTokenNames.some((element) => element === inputToken); diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts b/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts index 170813010a..791ccd6fdb 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts @@ -71,3 +71,16 @@ export const testAgainstStringOrRegExp = (value, comparison) => { export const vendorUnprefixed = (prop) => { return prop.replace(/^-\w+-/, ""); }; + +// write a function that flattens the object to an array of keys +export const flattenObject = (obj) => { + const flattened = Object.keys(obj).reduce((acc, key) => { + if (typeof obj[key] === 'string') { + acc.push(key) + } else { + acc.push(flattenObject(obj[key])) + } + return acc + }, []) + return flattened.flat() +} \ No newline at end of file From 0c536b9550d6ac413060f4682f6a620993243570 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 16 May 2023 15:04:42 +0200 Subject: [PATCH 10/68] bundle token files at build time --- @navikt/aksel-stylelint/package.json | 6 ++++-- @navikt/aksel-stylelint/recommended.ts | 4 ++-- @navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts | 4 ---- @navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts | 1 - 4 files changed, 6 insertions(+), 9 deletions(-) diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index c281e6572e..a144db100a 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -1,6 +1,6 @@ { "name": "@navikt/aksel-stylelint", - "version": "1.0.0", + "version": "3.0.0", "author": "Aksel | NAV", "homepage": "https://aksel.nav.no/lint", "repository": { @@ -24,12 +24,14 @@ ], "scripts": { "test": "jest", - "build": "tsc -p .", + "copy": "copyfiles -E -f ../core/css/dist/index.css -f ../core/css/tokens.json dist", + "build": "tsc -p . && yarn copy", "watch:lint": "tsc --watch -p .", "dev": "yarn watch:lint" }, "devDependencies": { "@types/jest": "^29.0.0", + "copyfiles": "2.4.1", "jest": "^29.0.0", "stylelint": "^14.8.5" } diff --git a/@navikt/aksel-stylelint/recommended.ts b/@navikt/aksel-stylelint/recommended.ts index 65bcb6e12f..3d099f28b5 100644 --- a/@navikt/aksel-stylelint/recommended.ts +++ b/@navikt/aksel-stylelint/recommended.ts @@ -2,8 +2,8 @@ module.exports = { plugins: ["."], rules: { "@navikt/aksel-design-tokens": { - tokenDefinitionsFile: "@navikt/core/css/dist/index.css", - overrideableTokenDefinitionsJSONFile: "@navikt/core/css/tokens.json", + tokenDefinitionsFile: "./index.css", + overrideableTokenDefinitionsJSONFile: "./tokens.json", controlledPrefixes: [/--ac-.+/, /--a-.+/], }, }, diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts index 419b7c486e..2292224d53 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts @@ -157,8 +157,6 @@ const ruleFunction: stylelint.Rule = ( node, result: postcssResult, ruleName, - // start: node.source.start, - // end: { column: node.source.end.column + node.prop.length, line: node.source.end.line} }); } @@ -168,8 +166,6 @@ const ruleFunction: stylelint.Rule = ( node, result: postcssResult, ruleName, - // start: node.source.start, - // end: { column: node.source.end.column + node.prop.length, line: node.source.end.line} }); } }); diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts b/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts index 791ccd6fdb..0318ce1efb 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts @@ -72,7 +72,6 @@ export const vendorUnprefixed = (prop) => { return prop.replace(/^-\w+-/, ""); }; -// write a function that flattens the object to an array of keys export const flattenObject = (obj) => { const flattened = Object.keys(obj).reduce((acc, key) => { if (typeof obj[key] === 'string') { From ceb04beef379db56bdde4a028497b145f922fb08 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 16 May 2023 15:07:58 +0200 Subject: [PATCH 11/68] update lock file deps --- yarn.lock | 1 + 1 file changed, 1 insertion(+) diff --git a/yarn.lock b/yarn.lock index 07d5218921..6bf3e4254a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4115,6 +4115,7 @@ __metadata: resolution: "@navikt/aksel-stylelint@workspace:@navikt/aksel-stylelint" dependencies: "@types/jest": ^29.0.0 + copyfiles: 2.4.1 jest: ^29.0.0 stylelint: ^14.8.5 languageName: unknown From 0adc7c44000e04d8fb2c13eb0d74a225d2850e37 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 16 May 2023 16:05:02 +0200 Subject: [PATCH 12/68] package distribution & version in error message --- @navikt/aksel-stylelint/README.md | 4 ++-- @navikt/aksel-stylelint/recommended.ts | 2 +- .../index.ts | 21 ++++++++++++------- .../utils.ts | 0 @navikt/aksel-stylelint/rules/index.ts | 4 ++-- @navikt/aksel-stylelint/tsconfig.json | 2 +- 6 files changed, 19 insertions(+), 14 deletions(-) rename @navikt/aksel-stylelint/rules/{aksel-design-tokens => aksel-design-token-exists}/index.ts (90%) rename @navikt/aksel-stylelint/rules/{aksel-design-tokens => aksel-design-token-exists}/utils.ts (100%) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 750e8883b6..bc9e8a6ece 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -1,6 +1,6 @@ # Aksel stylelint rules & plugins -## aksel-design-tokens +## aksel-design-token-exists This stylelint rule will help you referrence or override a design token in the Aksel design system by making sure that it exists. @@ -42,7 +42,7 @@ If you want to configure it further, or tweak the behaviour of the rule, you can ```js const stylelintConfig = { rules: { - "@navikt/aksel-design-tokens": { + "@navikt/aksel-design-token-exists": { tokenDefinitionsFile: "@navikt/core/css/dist/index.css", overrideableTokenDefinitionsJSONFile: "@navikt/core/css/tokens.json", controlledPrefixes: [/--ac-.+/, /--a-.+/], diff --git a/@navikt/aksel-stylelint/recommended.ts b/@navikt/aksel-stylelint/recommended.ts index 3d099f28b5..db6c353107 100644 --- a/@navikt/aksel-stylelint/recommended.ts +++ b/@navikt/aksel-stylelint/recommended.ts @@ -1,7 +1,7 @@ module.exports = { plugins: ["."], rules: { - "@navikt/aksel-design-tokens": { + "@navikt/aksel-design-token-exists": { tokenDefinitionsFile: "./index.css", overrideableTokenDefinitionsJSONFile: "./tokens.json", controlledPrefixes: [/--ac-.+/, /--a-.+/], diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts similarity index 90% rename from @navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts rename to @navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts index 2292224d53..b3bebe5f14 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts @@ -1,13 +1,16 @@ import stylelint from "stylelint"; import valueParser from "postcss-value-parser"; -import { flattenObject, isCustomProperty } from "./utils"; - import { readFileSync } from "node:fs"; -const ruleName = "@navikt/aksel-design-tokens"; +import { flattenObject, isCustomProperty } from "./utils"; + +const ruleName = "@navikt/aksel-design-token-exists"; let allowedTokenNames = []; +const packageJson = JSON.parse(readFileSync(`${__dirname}/../../../package.json`).toString()); +const packageVersion = packageJson.version; + const errorMessage = ( type: "prop" | "value", node, @@ -19,13 +22,15 @@ const errorMessage = ( `property "${node.prop}" has offending value(s) "${invalidValues}", ` + `and the value seems like it intends to reference a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system. ` + `However, that token doesn't seem to exist in the design system. ` + + `\n\nVersion: ${packageVersion}` ); } return ( `property "${node.prop}" has a name that seems like it intends to override a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system. ` + `However, that token doesn't seem to exist in the design system. ` + + `\n\nVersion: ${packageVersion}` ); }; @@ -37,7 +42,7 @@ const isValidToken = ( ) => { // "singleton" if statement (attempt at caching file parsing) if (!allowedTokenNames.length) { - const cssFileBuffer = readFileSync(tokenDefinitionsFile); + const cssFileBuffer = readFileSync(`${__dirname}/../../${tokenDefinitionsFile}`); const cssFileString = cssFileBuffer.toString(); valueParser(cssFileString).walk((node) => { @@ -50,7 +55,7 @@ const isValidToken = ( } }); - const jsonFileBuffer = readFileSync(overrideableTokenDefinitionsJSONFile); + const jsonFileBuffer = readFileSync(`${__dirname}/../../${overrideableTokenDefinitionsJSONFile}`); const fileString = jsonFileBuffer.toString(); const flattened = flattenObject(JSON.parse(fileString)); @@ -175,7 +180,7 @@ const ruleFunction: stylelint.Rule = ( ruleFunction.ruleName = ruleName; ruleFunction.messages = {}; ruleFunction.meta = { - url: 'https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-tokens', + url: 'https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-token-exists', }; export default ruleFunction; diff --git a/@navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/utils.ts similarity index 100% rename from @navikt/aksel-stylelint/rules/aksel-design-tokens/utils.ts rename to @navikt/aksel-stylelint/rules/aksel-design-token-exists/utils.ts diff --git a/@navikt/aksel-stylelint/rules/index.ts b/@navikt/aksel-stylelint/rules/index.ts index eeec7b3d18..ed62870b6d 100644 --- a/@navikt/aksel-stylelint/rules/index.ts +++ b/@navikt/aksel-stylelint/rules/index.ts @@ -1,6 +1,6 @@ import { Rule } from "stylelint"; -import designTokens from "./aksel-design-tokens"; +import designTokenExists from "./aksel-design-token-exists"; export const rules: Record = { - "aksel-design-tokens": designTokens, + "aksel-design-token-exists": designTokenExists, }; diff --git a/@navikt/aksel-stylelint/tsconfig.json b/@navikt/aksel-stylelint/tsconfig.json index 6d86115f65..2e4683dc5c 100644 --- a/@navikt/aksel-stylelint/tsconfig.json +++ b/@navikt/aksel-stylelint/tsconfig.json @@ -3,7 +3,7 @@ "module": "CommonJS", "sourceMap": false, "esModuleInterop": true, - "target": "es2015", + "target": "es2020", "preserveWatchOutput": true, "declaration": false, "types": ["node", "jest", "@types/jest"], From 1c730ea19bd9df15d56f9295a5ff2abead0c3922 Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Mon, 22 May 2023 10:22:42 +0200 Subject: [PATCH 13/68] rule for internal tokens --- @navikt/aksel-stylelint/recommended.ts | 8 ++- .../rules/aksel-no-internal-tokens/index.ts | 61 +++++++++++++++++++ @navikt/aksel-stylelint/rules/index.ts | 2 + @navikt/core/css/TESTLINTER.css | 8 +++ 4 files changed, 78 insertions(+), 1 deletion(-) create mode 100644 @navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts diff --git a/@navikt/aksel-stylelint/recommended.ts b/@navikt/aksel-stylelint/recommended.ts index db6c353107..891998d26c 100644 --- a/@navikt/aksel-stylelint/recommended.ts +++ b/@navikt/aksel-stylelint/recommended.ts @@ -4,7 +4,13 @@ module.exports = { "@navikt/aksel-design-token-exists": { tokenDefinitionsFile: "./index.css", overrideableTokenDefinitionsJSONFile: "./tokens.json", - controlledPrefixes: [/--ac-.+/, /--a-.+/], + controlledPrefixes: [/^--ac-.+/, /^--a-.+/], }, + "@navikt/aksel-no-internal-tokens": [ + true, + { + controlledPrefixes: [/^--__ac-.+/], + }, + ], }, }; diff --git a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts new file mode 100644 index 0000000000..f459278014 --- /dev/null +++ b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts @@ -0,0 +1,61 @@ +import stylelint from "stylelint"; +import valueParser from "postcss-value-parser"; + +const ruleName = "@navikt/aksel-no-internal-tokens"; +const url = + "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-no-internal-tokens"; + +const getInternalTokensUsed = (controlledPrefixes: RegExp[], value: string) => { + const invalidValues: string[] = []; + + valueParser(value).walk((node) => { + if ( + node.type === "word" && + controlledPrefixes.some((prefix) => node.value.match(prefix)) + ) { + invalidValues.push(node.value); + } + }); + + return invalidValues; +}; + +const ruleFunction: stylelint.Rule = (primaryOption, secondaryOptionObject) => { + return (postcssRoot, postcssResult) => { + const options = Object.assign( + { controlledPrefixes: [/^--__ac-.+/] }, + secondaryOptionObject + ); + const { controlledPrefixes } = options; + + postcssRoot.walkDecls((node) => { + getInternalTokensUsed(controlledPrefixes, node.value).forEach((token) => { + stylelint.utils.report({ + message: `Unexpected internal Aksel design token "${token}" inside decleration "${node.prop}".`, + node, + result: postcssResult, + ruleName, + word: token, + }); + }); + + const isTokenOverride = controlledPrefixes.some( + (prefix) => node.prop.match(prefix) !== null + ); + if (isTokenOverride) { + stylelint.utils.report({ + message: `Unexpected internal Aksel design token "${node.prop}".`, + node, + result: postcssResult, + ruleName, + }); + } + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = {}; +ruleFunction.meta = { url }; + +export default ruleFunction; diff --git a/@navikt/aksel-stylelint/rules/index.ts b/@navikt/aksel-stylelint/rules/index.ts index ed62870b6d..3994165c4f 100644 --- a/@navikt/aksel-stylelint/rules/index.ts +++ b/@navikt/aksel-stylelint/rules/index.ts @@ -1,6 +1,8 @@ import { Rule } from "stylelint"; import designTokenExists from "./aksel-design-token-exists"; +import internalTokens from "./aksel-no-internal-tokens"; export const rules: Record = { "aksel-design-token-exists": designTokenExists, + "aksel-no-internal-tokens": internalTokens, }; diff --git a/@navikt/core/css/TESTLINTER.css b/@navikt/core/css/TESTLINTER.css index 142f58e825..caa0a48480 100644 --- a/@navikt/core/css/TESTLINTER.css +++ b/@navikt/core/css/TESTLINTER.css @@ -13,3 +13,11 @@ --b-legal-token: 6px; --a-tokenthing: 42; } + +.navds-button { + --__ac-button-padding: 23px; + --__ac-custom-token: 10px; + --foo--__ac-legal: 20px; + + padding: var(--__ac-button-padding) var(--__ac-custom-token); +} From 92e6edbfda48cb0d5680ef449065b811ecf7c584 Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Mon, 22 May 2023 11:13:03 +0200 Subject: [PATCH 14/68] rule for class name override --- @navikt/aksel-stylelint/recommended.ts | 1 + .../rules/aksel-no-class-override/index.ts | 37 +++++++++++++++++++ @navikt/aksel-stylelint/rules/index.ts | 2 + @navikt/core/css/TESTLINTER.css | 21 +++++++++++ 4 files changed, 61 insertions(+) create mode 100644 @navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts diff --git a/@navikt/aksel-stylelint/recommended.ts b/@navikt/aksel-stylelint/recommended.ts index 891998d26c..a75a8aad5f 100644 --- a/@navikt/aksel-stylelint/recommended.ts +++ b/@navikt/aksel-stylelint/recommended.ts @@ -12,5 +12,6 @@ module.exports = { controlledPrefixes: [/^--__ac-.+/], }, ], + "@navikt/aksel-no-class-override": [true, { severity: "warning" }], }, }; diff --git a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts new file mode 100644 index 0000000000..d51b928d64 --- /dev/null +++ b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts @@ -0,0 +1,37 @@ +import stylelint from "stylelint"; +import selectorParser from "postcss-selector-parser"; + +const ruleName = "@navikt/aksel-no-class-override"; +const url = + "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-no-class-override"; +const classnameRegex = new RegExp(/^navdsi?-.+/); + +export const messages = stylelint.utils.ruleMessages(ruleName, { + unexpected: (value) => `Unexpected class name "${value}"`, +}); + +const ruleFunction: stylelint.Rule = () => { + return (postcssRoot, postcssResult) => { + postcssRoot.walkRules((node) => { + selectorParser((selectors) => { + selectors.walkClasses((className) => { + if (!classnameRegex.test(className.value)) return; + + stylelint.utils.report({ + message: messages.unexpected(className.value), + node, + result: postcssResult, + ruleName, + word: className.value, + }); + }); + }).processSync(node.selector); + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = messages; +ruleFunction.meta = { url }; + +export default ruleFunction; diff --git a/@navikt/aksel-stylelint/rules/index.ts b/@navikt/aksel-stylelint/rules/index.ts index 3994165c4f..f8fb535179 100644 --- a/@navikt/aksel-stylelint/rules/index.ts +++ b/@navikt/aksel-stylelint/rules/index.ts @@ -1,8 +1,10 @@ import { Rule } from "stylelint"; import designTokenExists from "./aksel-design-token-exists"; import internalTokens from "./aksel-no-internal-tokens"; +import classOverride from "./aksel-no-class-override"; export const rules: Record = { "aksel-design-token-exists": designTokenExists, "aksel-no-internal-tokens": internalTokens, + "aksel-no-class-override": classOverride, }; diff --git a/@navikt/core/css/TESTLINTER.css b/@navikt/core/css/TESTLINTER.css index caa0a48480..4fe6ee1bed 100644 --- a/@navikt/core/css/TESTLINTER.css +++ b/@navikt/core/css/TESTLINTER.css @@ -21,3 +21,24 @@ padding: var(--__ac-button-padding) var(--__ac-custom-token); } + +.navds-illegal a { + color: red; +} + +.foo .navdsi-illegal { + color: red; +} + +.foo .navds-illegal a { + color: red; +} + +.foo .navds-illegal a, +.navdsi-illegal { + color: red; +} + +.allowed-navds-foo { + color: red; +} From 2de89266f492d6fd80d8f5ce04cd44d4bf15ad7f Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Mon, 22 May 2023 11:30:29 +0200 Subject: [PATCH 15/68] remove config props --- @navikt/aksel-stylelint/recommended.ts | 13 +---- .../rules/aksel-design-token-exists/index.ts | 51 +++++++++---------- .../rules/aksel-no-class-override/index.ts | 2 +- .../rules/aksel-no-internal-tokens/index.ts | 22 +++----- 4 files changed, 32 insertions(+), 56 deletions(-) diff --git a/@navikt/aksel-stylelint/recommended.ts b/@navikt/aksel-stylelint/recommended.ts index a75a8aad5f..76ee1ab505 100644 --- a/@navikt/aksel-stylelint/recommended.ts +++ b/@navikt/aksel-stylelint/recommended.ts @@ -1,17 +1,8 @@ module.exports = { plugins: ["."], rules: { - "@navikt/aksel-design-token-exists": { - tokenDefinitionsFile: "./index.css", - overrideableTokenDefinitionsJSONFile: "./tokens.json", - controlledPrefixes: [/^--ac-.+/, /^--a-.+/], - }, - "@navikt/aksel-no-internal-tokens": [ - true, - { - controlledPrefixes: [/^--__ac-.+/], - }, - ], + "@navikt/aksel-design-token-exists": true, + "@navikt/aksel-no-internal-tokens": true, "@navikt/aksel-no-class-override": [true, { severity: "warning" }], }, }; diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts index b3bebe5f14..3f93638370 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts @@ -6,15 +6,21 @@ import { flattenObject, isCustomProperty } from "./utils"; const ruleName = "@navikt/aksel-design-token-exists"; +const tokenDefinitionsFile = "./index.css"; +const overrideableTokenDefinitionsJSONFile = "./tokens.json"; +const controlledPrefixes = [/^--ac-.+/, /^--a-.+/]; + let allowedTokenNames = []; -const packageJson = JSON.parse(readFileSync(`${__dirname}/../../../package.json`).toString()); +const packageJson = JSON.parse( + readFileSync(`${__dirname}/../../../package.json`).toString() +); const packageVersion = packageJson.version; const errorMessage = ( type: "prop" | "value", node, - controlledPrefixes: PrimaryOptions["controlledPrefixes"], + controlledPrefixes: RegExp[], invalidValues?: string[] ) => { if (type === "value") { @@ -22,14 +28,14 @@ const errorMessage = ( `property "${node.prop}" has offending value(s) "${invalidValues}", ` + `and the value seems like it intends to reference a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system. ` + + `However, that token doesn't seem to exist in the design system. ` + `\n\nVersion: ${packageVersion}` ); } return ( `property "${node.prop}" has a name that seems like it intends to override a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system. ` + + `However, that token doesn't seem to exist in the design system. ` + `\n\nVersion: ${packageVersion}` ); }; @@ -37,12 +43,14 @@ const errorMessage = ( const isValidToken = ( tokenDefinitionsFile: string, overrideableTokenDefinitionsJSONFile: string, - controlledPrefixes: PrimaryOptions["controlledPrefixes"], + controlledPrefixes: RegExp[], inputToken: string ) => { // "singleton" if statement (attempt at caching file parsing) if (!allowedTokenNames.length) { - const cssFileBuffer = readFileSync(`${__dirname}/../../${tokenDefinitionsFile}`); + const cssFileBuffer = readFileSync( + `${__dirname}/../../${tokenDefinitionsFile}` + ); const cssFileString = cssFileBuffer.toString(); valueParser(cssFileString).walk((node) => { @@ -55,11 +63,13 @@ const isValidToken = ( } }); - const jsonFileBuffer = readFileSync(`${__dirname}/../../${overrideableTokenDefinitionsJSONFile}`); + const jsonFileBuffer = readFileSync( + `${__dirname}/../../${overrideableTokenDefinitionsJSONFile}` + ); const fileString = jsonFileBuffer.toString(); const flattened = flattenObject(JSON.parse(fileString)); - flattened.forEach(token => allowedTokenNames.push(token)); + flattened.forEach((token) => allowedTokenNames.push(token)); } return allowedTokenNames.some((element) => element === inputToken); @@ -68,7 +78,7 @@ const isValidToken = ( const getInvalidPropName = ( tokenDefinitionsFile: string, overrideableTokenDefinitionsJSONFile: string, - controlledPrefixes: PrimaryOptions["controlledPrefixes"], + controlledPrefixes: RegExp[], prop: string ) => { const invalidValues: string[] = []; @@ -92,8 +102,8 @@ const getInvalidPropName = ( const getInvalidVariableNames = ( tokenDefinitionsFile: string, overrideableTokenDefinitionsJSONFile: string, - controlledPrefixes, - value + controlledPrefixes: RegExp[], + value: string ): string[] => { const invalidValues: string[] = []; @@ -116,23 +126,8 @@ const getInvalidVariableNames = ( if (invalidValues.length > 0) return invalidValues; }; -type PrimaryOptions = { - controlledPrefixes?: (string | RegExp)[]; - tokenDefinitionsFile: string; - overrideableTokenDefinitionsJSONFile: string; -}; - -const ruleFunction: stylelint.Rule = ( - primaryOption, - _secondaryOptionObject -) => { +const ruleFunction: stylelint.Rule = () => { return (postcssRoot, postcssResult) => { - const { - controlledPrefixes = [], - tokenDefinitionsFile, - overrideableTokenDefinitionsJSONFile, - } = primaryOption; - postcssRoot.walkDecls((node) => { const prop = node.prop; const value = node.value; @@ -180,7 +175,7 @@ const ruleFunction: stylelint.Rule = ( ruleFunction.ruleName = ruleName; ruleFunction.messages = {}; ruleFunction.meta = { - url: 'https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-token-exists', + url: "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-token-exists", }; export default ruleFunction; diff --git a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts index d51b928d64..00342c4c79 100644 --- a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts @@ -7,7 +7,7 @@ const url = const classnameRegex = new RegExp(/^navdsi?-.+/); export const messages = stylelint.utils.ruleMessages(ruleName, { - unexpected: (value) => `Unexpected class name "${value}"`, + unexpected: (value) => `Unexpected design system class name "${value}"`, }); const ruleFunction: stylelint.Rule = () => { diff --git a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts index f459278014..d813f5cdf5 100644 --- a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts @@ -4,15 +4,13 @@ import valueParser from "postcss-value-parser"; const ruleName = "@navikt/aksel-no-internal-tokens"; const url = "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-no-internal-tokens"; +const prefixRegex = new RegExp(/^--__ac-.+/); -const getInternalTokensUsed = (controlledPrefixes: RegExp[], value: string) => { +const getInternalTokensUsed = (value: string) => { const invalidValues: string[] = []; valueParser(value).walk((node) => { - if ( - node.type === "word" && - controlledPrefixes.some((prefix) => node.value.match(prefix)) - ) { + if (node.type === "word" && prefixRegex.test(node.value)) { invalidValues.push(node.value); } }); @@ -20,16 +18,10 @@ const getInternalTokensUsed = (controlledPrefixes: RegExp[], value: string) => { return invalidValues; }; -const ruleFunction: stylelint.Rule = (primaryOption, secondaryOptionObject) => { +const ruleFunction: stylelint.Rule = () => { return (postcssRoot, postcssResult) => { - const options = Object.assign( - { controlledPrefixes: [/^--__ac-.+/] }, - secondaryOptionObject - ); - const { controlledPrefixes } = options; - postcssRoot.walkDecls((node) => { - getInternalTokensUsed(controlledPrefixes, node.value).forEach((token) => { + getInternalTokensUsed(node.value).forEach((token) => { stylelint.utils.report({ message: `Unexpected internal Aksel design token "${token}" inside decleration "${node.prop}".`, node, @@ -39,9 +31,7 @@ const ruleFunction: stylelint.Rule = (primaryOption, secondaryOptionObject) => { }); }); - const isTokenOverride = controlledPrefixes.some( - (prefix) => node.prop.match(prefix) !== null - ); + const isTokenOverride = prefixRegex.test(node.prop); if (isTokenOverride) { stylelint.utils.report({ message: `Unexpected internal Aksel design token "${node.prop}".`, From 1bef442226d3c0e5dd4ff3a80295a71c0b633ad7 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Mon, 22 May 2023 13:56:07 +0200 Subject: [PATCH 16/68] fix: emit multiple errors for nodes in postcss-value-parser --- .../rules/aksel-design-token-exists/index.ts | 44 ++++++++++--------- @navikt/core/css/TESTLINTER.css | 2 +- 2 files changed, 24 insertions(+), 22 deletions(-) diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts index 3f93638370..403a65ac10 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts @@ -3,6 +3,7 @@ import valueParser from "postcss-value-parser"; import { readFileSync } from "node:fs"; import { flattenObject, isCustomProperty } from "./utils"; +import { Node as PostCSSNode } from "postcss"; const ruleName = "@navikt/aksel-design-token-exists"; @@ -21,11 +22,11 @@ const errorMessage = ( type: "prop" | "value", node, controlledPrefixes: RegExp[], - invalidValues?: string[] + invalidValues?: string ) => { if (type === "value") { return ( - `property "${node.prop}" has offending value(s) "${invalidValues}", ` + + `property "${node.prop}" has offending value "${invalidValues}", ` + `and the value seems like it intends to reference a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + `However, that token doesn't seem to exist in the design system. ` + @@ -99,11 +100,13 @@ const getInvalidPropName = ( if (invalidValues.length > 0) return invalidValues; }; -const getInvalidVariableNames = ( +const checkInvalidVariableNames = ( tokenDefinitionsFile: string, overrideableTokenDefinitionsJSONFile: string, controlledPrefixes: RegExp[], - value: string + value: string, + postcssResult: stylelint.PostcssResult, + rootNode: PostCSSNode ): string[] => { const invalidValues: string[] = []; @@ -119,7 +122,18 @@ const getInvalidVariableNames = ( node.value ) ) { - invalidValues.push(node.value); + stylelint.utils.report({ + message: errorMessage( + "value", + rootNode, + controlledPrefixes, + node.value + ), + node: rootNode, + result: postcssResult, + ruleName, + word: node.value, + }); } }); @@ -139,27 +153,15 @@ const ruleFunction: stylelint.Rule = () => { prop ); - const invalidCustomProperties = getInvalidVariableNames( + checkInvalidVariableNames( tokenDefinitionsFile, overrideableTokenDefinitionsJSONFile, controlledPrefixes, - value + value, + postcssResult, + node ); - if (invalidCustomProperties) { - stylelint.utils.report({ - message: errorMessage( - "value", - node, - controlledPrefixes, - invalidCustomProperties - ), - node, - result: postcssResult, - ruleName, - }); - } - if (invalidPropNames) { stylelint.utils.report({ message: errorMessage("prop", node, controlledPrefixes), diff --git a/@navikt/core/css/TESTLINTER.css b/@navikt/core/css/TESTLINTER.css index 4fe6ee1bed..24de455a7c 100644 --- a/@navikt/core/css/TESTLINTER.css +++ b/@navikt/core/css/TESTLINTER.css @@ -2,7 +2,7 @@ background-color: var(--ac-accordion-header-bg-hover, var(--a-surface-action)); text-decoration: underline; color: var(--legal-token, inherit); - background-image: var(--a-illegal-image); + background-image: var(--a-illegal-image, --a-illegal-image-2); } * { From 0c642df006b53f7cd3d7e23c6fc79ea56ef5c8cf Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Mon, 22 May 2023 13:59:02 +0200 Subject: [PATCH 17/68] adjust error messages --- .../rules/aksel-no-class-override/index.ts | 4 +++- .../rules/aksel-no-internal-tokens/index.ts | 11 ++++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts index 00342c4c79..a54de020cd 100644 --- a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts @@ -7,7 +7,9 @@ const url = const classnameRegex = new RegExp(/^navdsi?-.+/); export const messages = stylelint.utils.ruleMessages(ruleName, { - unexpected: (value) => `Unexpected design system class name "${value}"`, + unexpected: (value) => + `"${value}" looks like a class name used in the design system, because it starts with "navds-" or "navdsi-".` + + "It is not recommended to override the styling in the design system.", }); const ruleFunction: stylelint.Rule = () => { diff --git a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts index d813f5cdf5..f83d700de2 100644 --- a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts @@ -4,7 +4,8 @@ import valueParser from "postcss-value-parser"; const ruleName = "@navikt/aksel-no-internal-tokens"; const url = "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-no-internal-tokens"; -const prefixRegex = new RegExp(/^--__ac-.+/); +const prefix = "--__ac-"; +const prefixRegex = new RegExp(`^${prefix}.+`); const getInternalTokensUsed = (value: string) => { const invalidValues: string[] = []; @@ -23,7 +24,9 @@ const ruleFunction: stylelint.Rule = () => { postcssRoot.walkDecls((node) => { getInternalTokensUsed(node.value).forEach((token) => { stylelint.utils.report({ - message: `Unexpected internal Aksel design token "${token}" inside decleration "${node.prop}".`, + message: + `"${token}" (inside decleration "${node.prop}") looks like an internal design token, ` + + `because it starts with "${prefix}". Internal tokens should not be used outside the design system.`, node, result: postcssResult, ruleName, @@ -34,7 +37,9 @@ const ruleFunction: stylelint.Rule = () => { const isTokenOverride = prefixRegex.test(node.prop); if (isTokenOverride) { stylelint.utils.report({ - message: `Unexpected internal Aksel design token "${node.prop}".`, + message: + `"${node.prop}" looks like an internal design token, because it starts with "${prefix}". ` + + `Internal tokens should not be overridden.`, node, result: postcssResult, ruleName, From ab4a4639de2ee6fb7c63ec3b1437c1d0a53acc17 Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Tue, 23 May 2023 10:14:39 +0200 Subject: [PATCH 18/68] some tests --- @navikt/aksel-stylelint/package.json | 15 +++- .../aksel-no-class-override/index.test.ts | 31 +++++++ .../rules/aksel-no-class-override/index.ts | 2 +- .../aksel-no-internal-tokens/index.test.ts | 80 +++++++++++++++++++ .../rules/aksel-no-internal-tokens/index.ts | 17 ++-- yarn.lock | 11 +++ 6 files changed, 147 insertions(+), 9 deletions(-) create mode 100644 @navikt/aksel-stylelint/rules/aksel-no-class-override/index.test.ts create mode 100644 @navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index a144db100a..1c7d5f13be 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -17,7 +17,7 @@ "provenance": true }, "license": "MIT", - "main": "./dist/index.js", + "main": "./index.js", "exports": "./dist/index.js", "files": [ "./dist" @@ -33,6 +33,17 @@ "@types/jest": "^29.0.0", "copyfiles": "2.4.1", "jest": "^29.0.0", - "stylelint": "^14.8.5" + "jest-preset-stylelint": "^6.1.0", + "stylelint": "^14.8.5", + "typescript": "^4.8.0" + }, + "jest": { + "preset": "jest-preset-stylelint", + "testMatch": [ + "**/*.test.ts" + ], + "transform": { + "^.+\\.ts?$": "ts-jest" + } } } diff --git a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.test.ts b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.test.ts new file mode 100644 index 0000000000..0c16a3034f --- /dev/null +++ b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.test.ts @@ -0,0 +1,31 @@ +import { getTestRule } from "jest-preset-stylelint"; +import rule, { messages } from "."; + +getTestRule()({ + plugins: ["./dist/index.js"], + ruleName: rule.ruleName, + config: true, + + accept: [{ code: ".foo-navds-bar {}", description: "allowed class name" }], + + reject: [ + { + code: ".foo, \n .navds-button \n .bar {}", + description: "selector with disallowed class name .navds-*", + message: messages.unexpected("navds-button"), + line: 2, + endLine: 2, + column: 3, + endColumn: 15, + }, + { + code: ".foo .navdsi-button \n .bar {}", + description: "selector with disallowed class name .navdsi-*", + message: messages.unexpected("navdsi-button"), + line: 1, + endLine: 1, + column: 7, + endColumn: 20, + }, + ], +}); diff --git a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts index a54de020cd..395c267794 100644 --- a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts @@ -8,7 +8,7 @@ const classnameRegex = new RegExp(/^navdsi?-.+/); export const messages = stylelint.utils.ruleMessages(ruleName, { unexpected: (value) => - `"${value}" looks like a class name used in the design system, because it starts with "navds-" or "navdsi-".` + + `"${value}" looks like a class name used in the design system, because it starts with "navds-" or "navdsi-". ` + "It is not recommended to override the styling in the design system.", }); diff --git a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts new file mode 100644 index 0000000000..a4b63c99ad --- /dev/null +++ b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts @@ -0,0 +1,80 @@ +import { getTestRule } from "jest-preset-stylelint"; +import rule, { messages } from "."; + +getTestRule()({ + plugins: ["./dist/index.js"], + ruleName: rule.ruleName, + config: true, + + accept: [ + { + code: ".foo { --bar--__ac-baz: 1px }", + description: "non-internal token defined", + }, + { + code: ".foo { font-size: var(--bar--__ac-baz) }", + description: "non-internal token used", + }, + ], + + reject: [ + { + code: ".foo { --__ac-bar: 1px; }", + description: "internal token overridden", + message: messages.tokenOverridden("--__ac-bar"), + line: 1, + endLine: 1, + column: 8, + endColumn: 24, + }, + { + code: ".foo { color: var(--__ac-bar) }", + description: "one internal token used", + message: messages.tokenUsed("--__ac-bar", "color"), + line: 1, + endLine: 1, + column: 19, + endColumn: 29, + }, + { + code: ".foo { width: var(--__ac-bar, --__ac-baz) }", + description: "two internal token used in one var()", + warnings: [ + { + message: messages.tokenUsed("--__ac-bar", "width"), + line: 1, + endLine: 1, + column: 19, + endColumn: 29, + }, + { + message: messages.tokenUsed("--__ac-baz", "width"), + line: 1, + endLine: 1, + column: 31, + endColumn: 41, + }, + ], + }, + { + code: ".foo { padding: var(--__ac-bar) var(--__ac-baz); }", + description: "two internal token used as separate vars", + warnings: [ + { + message: messages.tokenUsed("--__ac-bar", "padding"), + line: 1, + endLine: 1, + column: 21, + endColumn: 31, + }, + { + message: messages.tokenUsed("--__ac-baz", "padding"), + line: 1, + endLine: 1, + column: 37, + endColumn: 47, + }, + ], + }, + ], +}); diff --git a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts index f83d700de2..ed889b6a9c 100644 --- a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts @@ -7,6 +7,15 @@ const url = const prefix = "--__ac-"; const prefixRegex = new RegExp(`^${prefix}.+`); +export const messages = stylelint.utils.ruleMessages(ruleName, { + tokenUsed: (token, prop) => + `"${token}" (inside decleration "${prop}") looks like an internal design token, ` + + `because it starts with "${prefix}". Internal tokens should not be used outside the design system.`, + tokenOverridden: (token) => + `"${token}" looks like an internal design token, because it starts with "${prefix}". ` + + `Internal tokens should not be overridden.`, +}); + const getInternalTokensUsed = (value: string) => { const invalidValues: string[] = []; @@ -24,9 +33,7 @@ const ruleFunction: stylelint.Rule = () => { postcssRoot.walkDecls((node) => { getInternalTokensUsed(node.value).forEach((token) => { stylelint.utils.report({ - message: - `"${token}" (inside decleration "${node.prop}") looks like an internal design token, ` + - `because it starts with "${prefix}". Internal tokens should not be used outside the design system.`, + message: messages.tokenUsed(token, node.prop), node, result: postcssResult, ruleName, @@ -37,9 +44,7 @@ const ruleFunction: stylelint.Rule = () => { const isTokenOverride = prefixRegex.test(node.prop); if (isTokenOverride) { stylelint.utils.report({ - message: - `"${node.prop}" looks like an internal design token, because it starts with "${prefix}". ` + - `Internal tokens should not be overridden.`, + message: messages.tokenOverridden(node.prop), node, result: postcssResult, ruleName, diff --git a/yarn.lock b/yarn.lock index 6bf3e4254a..118b3f390d 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4117,7 +4117,9 @@ __metadata: "@types/jest": ^29.0.0 copyfiles: 2.4.1 jest: ^29.0.0 + jest-preset-stylelint: ^6.1.0 stylelint: ^14.8.5 + typescript: ^4.8.0 languageName: unknown linkType: soft @@ -17248,6 +17250,15 @@ __metadata: languageName: node linkType: hard +"jest-preset-stylelint@npm:^6.1.0": + version: 6.1.0 + resolution: "jest-preset-stylelint@npm:6.1.0" + peerDependencies: + jest: ^29.0.2 + checksum: 43d6d28b48dcf87ac4001afa8babe7be776da964ec12f635d0aac470097c647fedce07d907299ada0b8a3bfb2236ed25320574f92e75d273a3074802d07977b2 + languageName: node + linkType: hard + "jest-regex-util@npm:^29.2.0": version: 29.2.0 resolution: "jest-regex-util@npm:29.2.0" From 30207794e1c9c089c66d8169010ab1339727ba30 Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Tue, 23 May 2023 11:46:19 +0200 Subject: [PATCH 19/68] final tests --- .../aksel-design-token-exists/index.test.ts | 123 ++++++++++++++++++ .../rules/aksel-design-token-exists/index.ts | 8 +- .../aksel-no-internal-tokens/index.test.ts | 4 +- 3 files changed, 128 insertions(+), 7 deletions(-) create mode 100644 @navikt/aksel-stylelint/rules/aksel-design-token-exists/index.test.ts diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.test.ts b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.test.ts new file mode 100644 index 0000000000..3f0f900383 --- /dev/null +++ b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.test.ts @@ -0,0 +1,123 @@ +import { getTestRule } from "jest-preset-stylelint"; +import rule, { errorMessage, controlledPrefixes } from "."; + +getTestRule()({ + plugins: ["./dist/index.js"], + ruleName: rule.ruleName, + config: true, + + accept: [ + { + code: ".foo { --a-surface-action: 1px }", + description: "existing '--a' token overridden", + }, + { + code: ".foo { --ac-accordion-header-bg-hover: 1px }", + description: "existing '--ac' token overridden", + }, + ], + + reject: [ + { + code: ".foo { --a-does-not-exist: 1px }", + description: "attempt to override nonexisting '--a' token", + message: errorMessage( + "prop", + { prop: "--a-does-not-exist" }, + controlledPrefixes + ), + line: 1, + endLine: 1, + column: 8, + endColumn: 31, + }, + { + code: ".foo \n { \n --ac-does-not-exist: 1px; \n }", + description: "attempt to override nonexisting '--ac' token", + message: errorMessage( + "prop", + { prop: "--ac-does-not-exist" }, + controlledPrefixes + ), + line: 3, + endLine: 3, + column: 2, + endColumn: 27, + }, + + { + code: ".foo { color: var(--a-bar) }", + description: "attempt to use nonexsiting token", + message: errorMessage( + "value", + { prop: "color" }, + controlledPrefixes, + "--a-bar" + ), + line: 1, + endLine: 1, + column: 19, + endColumn: 26, + }, + { + code: ".foo { width: var(--ac-bar, --a-baz) }", + description: "attempt to use two nonexsiting tokens in one var()", + warnings: [ + { + message: errorMessage( + "value", + { prop: "width" }, + controlledPrefixes, + "--ac-bar" + ), + line: 1, + endLine: 1, + column: 19, + endColumn: 27, + }, + { + message: errorMessage( + "value", + { prop: "width" }, + controlledPrefixes, + "--a-baz" + ), + line: 1, + endLine: 1, + column: 29, + endColumn: 36, + }, + ], + }, + { + code: ".foo { padding: var(--a-bar) var(--a-baz); }", + description: "attempt to use two tokens as separate vars", + warnings: [ + { + message: errorMessage( + "value", + { prop: "padding" }, + controlledPrefixes, + "--a-bar" + ), + line: 1, + endLine: 1, + column: 21, + endColumn: 28, + }, + { + message: errorMessage( + "value", + { prop: "padding" }, + controlledPrefixes, + "--a-baz" + ), + line: 1, + endLine: 1, + column: 34, + endColumn: 41, + }, + ], + }, + ], +}); diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts index 403a65ac10..3eae13da18 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts @@ -2,6 +2,7 @@ import stylelint from "stylelint"; import valueParser from "postcss-value-parser"; import { readFileSync } from "node:fs"; +import packageJson from "../../package.json"; import { flattenObject, isCustomProperty } from "./utils"; import { Node as PostCSSNode } from "postcss"; @@ -9,16 +10,13 @@ const ruleName = "@navikt/aksel-design-token-exists"; const tokenDefinitionsFile = "./index.css"; const overrideableTokenDefinitionsJSONFile = "./tokens.json"; -const controlledPrefixes = [/^--ac-.+/, /^--a-.+/]; +export const controlledPrefixes = [/^--ac-.+/, /^--a-.+/]; let allowedTokenNames = []; -const packageJson = JSON.parse( - readFileSync(`${__dirname}/../../../package.json`).toString() -); const packageVersion = packageJson.version; -const errorMessage = ( +export const errorMessage = ( type: "prop" | "value", node, controlledPrefixes: RegExp[], diff --git a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts index a4b63c99ad..bc871a1a0f 100644 --- a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts +++ b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts @@ -38,7 +38,7 @@ getTestRule()({ }, { code: ".foo { width: var(--__ac-bar, --__ac-baz) }", - description: "two internal token used in one var()", + description: "two internal tokens used in one var()", warnings: [ { message: messages.tokenUsed("--__ac-bar", "width"), @@ -58,7 +58,7 @@ getTestRule()({ }, { code: ".foo { padding: var(--__ac-bar) var(--__ac-baz); }", - description: "two internal token used as separate vars", + description: "two internal tokens used as separate vars", warnings: [ { message: messages.tokenUsed("--__ac-bar", "padding"), From a693f225dea1cbae1c28d6d7d0c9b7dc2030e914 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 12:47:09 +0200 Subject: [PATCH 20/68] refactor --- .../aksel-stylelint/rules/aksel-design-token-exists/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts index 3eae13da18..c7eae4cc85 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts @@ -71,7 +71,7 @@ const isValidToken = ( flattened.forEach((token) => allowedTokenNames.push(token)); } - return allowedTokenNames.some((element) => element === inputToken); + return allowedTokenNames.includes(inputToken); }; const getInvalidPropName = ( From 6974711e12b7c2281277ed4bcb6425ba36a6c64e Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Tue, 23 May 2023 13:11:32 +0200 Subject: [PATCH 21/68] no more regex --- .../rules/aksel-design-token-exists/index.ts | 16 ++++++++-------- .../rules/aksel-no-class-override/index.ts | 10 ++++++---- .../rules/aksel-no-internal-tokens/index.ts | 5 ++--- 3 files changed, 16 insertions(+), 15 deletions(-) diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts index c7eae4cc85..17fbd2eef7 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts @@ -10,7 +10,7 @@ const ruleName = "@navikt/aksel-design-token-exists"; const tokenDefinitionsFile = "./index.css"; const overrideableTokenDefinitionsJSONFile = "./tokens.json"; -export const controlledPrefixes = [/^--ac-.+/, /^--a-.+/]; +export const controlledPrefixes = ["--ac-", "--a-"]; let allowedTokenNames = []; @@ -19,7 +19,7 @@ const packageVersion = packageJson.version; export const errorMessage = ( type: "prop" | "value", node, - controlledPrefixes: RegExp[], + controlledPrefixes: string[], invalidValues?: string ) => { if (type === "value") { @@ -42,7 +42,7 @@ export const errorMessage = ( const isValidToken = ( tokenDefinitionsFile: string, overrideableTokenDefinitionsJSONFile: string, - controlledPrefixes: RegExp[], + controlledPrefixes: string[], inputToken: string ) => { // "singleton" if statement (attempt at caching file parsing) @@ -56,7 +56,7 @@ const isValidToken = ( if ( node.type === "word" && isCustomProperty(node.value) && - controlledPrefixes.some((prefix) => node.value.match(prefix) !== null) + controlledPrefixes.some((prefix) => node.value.startsWith(prefix)) ) { allowedTokenNames.push(node.value); } @@ -77,14 +77,14 @@ const isValidToken = ( const getInvalidPropName = ( tokenDefinitionsFile: string, overrideableTokenDefinitionsJSONFile: string, - controlledPrefixes: RegExp[], + controlledPrefixes: string[], prop: string ) => { const invalidValues: string[] = []; if ( isCustomProperty(prop) && - controlledPrefixes.some((prefix) => prop.match(prefix) !== null) && + controlledPrefixes.some((prefix) => prop.startsWith(prefix)) && !isValidToken( tokenDefinitionsFile, overrideableTokenDefinitionsJSONFile, @@ -101,7 +101,7 @@ const getInvalidPropName = ( const checkInvalidVariableNames = ( tokenDefinitionsFile: string, overrideableTokenDefinitionsJSONFile: string, - controlledPrefixes: RegExp[], + controlledPrefixes: string[], value: string, postcssResult: stylelint.PostcssResult, rootNode: PostCSSNode @@ -112,7 +112,7 @@ const checkInvalidVariableNames = ( if ( node.type === "word" && isCustomProperty(node.value) && - controlledPrefixes.some((prefix) => node.value.match(prefix) !== null) && + controlledPrefixes.some((prefix) => node.value.startsWith(prefix)) && !isValidToken( tokenDefinitionsFile, overrideableTokenDefinitionsJSONFile, diff --git a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts index 395c267794..19ae51268a 100644 --- a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts @@ -4,11 +4,12 @@ import selectorParser from "postcss-selector-parser"; const ruleName = "@navikt/aksel-no-class-override"; const url = "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-no-class-override"; -const classnameRegex = new RegExp(/^navdsi?-.+/); +const prefixes = ["navds-", "navdsi-"]; export const messages = stylelint.utils.ruleMessages(ruleName, { unexpected: (value) => - `"${value}" looks like a class name used in the design system, because it starts with "navds-" or "navdsi-". ` + + `"${value}" looks like a class name used in the design system, ` + + `because it starts with "${prefixes.join('" or "')}". ` + "It is not recommended to override the styling in the design system.", }); @@ -17,8 +18,9 @@ const ruleFunction: stylelint.Rule = () => { postcssRoot.walkRules((node) => { selectorParser((selectors) => { selectors.walkClasses((className) => { - if (!classnameRegex.test(className.value)) return; - + if (!prefixes.some((prefix) => className.value.startsWith(prefix))) { + return; + } stylelint.utils.report({ message: messages.unexpected(className.value), node, diff --git a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts index ed889b6a9c..f0df1b7884 100644 --- a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts +++ b/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts @@ -5,7 +5,6 @@ const ruleName = "@navikt/aksel-no-internal-tokens"; const url = "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-no-internal-tokens"; const prefix = "--__ac-"; -const prefixRegex = new RegExp(`^${prefix}.+`); export const messages = stylelint.utils.ruleMessages(ruleName, { tokenUsed: (token, prop) => @@ -20,7 +19,7 @@ const getInternalTokensUsed = (value: string) => { const invalidValues: string[] = []; valueParser(value).walk((node) => { - if (node.type === "word" && prefixRegex.test(node.value)) { + if (node.type === "word" && node.value.startsWith(prefix)) { invalidValues.push(node.value); } }); @@ -41,7 +40,7 @@ const ruleFunction: stylelint.Rule = () => { }); }); - const isTokenOverride = prefixRegex.test(node.prop); + const isTokenOverride = node.prop.startsWith(prefix); if (isTokenOverride) { stylelint.utils.report({ message: messages.tokenOverridden(node.prop), From 4ebdd1f219fc2a187df49ae298e0b6aa1343787d Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 14:08:44 +0200 Subject: [PATCH 22/68] update README.md --- @navikt/aksel-stylelint/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index bc9e8a6ece..46f5c3be89 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -45,7 +45,7 @@ const stylelintConfig = { "@navikt/aksel-design-token-exists": { tokenDefinitionsFile: "@navikt/core/css/dist/index.css", overrideableTokenDefinitionsJSONFile: "@navikt/core/css/tokens.json", - controlledPrefixes: [/--ac-.+/, /--a-.+/], + controlledPrefixes: ["--ac-", "--a-"], }, }, }; From 547278ebfa8711e92014f115ea9726bc6f48b90e Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 14:09:35 +0200 Subject: [PATCH 23/68] update README.md (again) --- @navikt/aksel-stylelint/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 46f5c3be89..7d12419ae4 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -45,7 +45,6 @@ const stylelintConfig = { "@navikt/aksel-design-token-exists": { tokenDefinitionsFile: "@navikt/core/css/dist/index.css", overrideableTokenDefinitionsJSONFile: "@navikt/core/css/tokens.json", - controlledPrefixes: ["--ac-", "--a-"], }, }, }; From 4cf44c875ef40fab7b4c90b3645bcb551ec09332 Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Tue, 23 May 2023 14:48:42 +0200 Subject: [PATCH 24/68] readme --- @navikt/aksel-stylelint/README.md | 53 +++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 7d12419ae4..25f1936270 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -4,6 +4,59 @@ This stylelint rule will help you referrence or override a design token in the Aksel design system by making sure that it exists. +## aksel-no-internal-tokens + +Disallows use or override of internal Aksel design tokens. Internal tokens are not supposed to be used outside the design system, and they may be changed or removed without warning. Be aware that the rule simply checks the prefix of the token, and not if it actually exists in the design system. Even if it doesn't exist, using design system prefixes should be avoided. + +❌ Incorrect: + +```css +a { --__ac-some-property: pink; } + ^^^^^^^ +``` + +```css +a { color: var(--__ac-some-property); } + ^^^^^^^ +``` + +✅ Correct: + +```css +a { + --some-property: pink; +} +``` + +```css +a { + color: var(--some-property); +} +``` + +## aksel-no-class-override + +Warns when trying to override design system styling by using class selectors that starts with "navds-" or "navdsi-". Overriding styles in the design system is discouraged. We want to have consistent look and feel across applications. Even if it seems to work fine now, it might break on subsequent updates in the design system. + +❌ Incorrect: + +```css +.navds-button {} + ^^^^^^ +``` + +```css +.some-class .navdsi-header {} + ^^^^^^^ +``` + +✅ Correct: + +```css +.some-class { +} +``` + ### Install ```bash From 9bf58665b5d2e0cdcdc48ff3172188ee304e4bc0 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 14:57:06 +0200 Subject: [PATCH 25/68] readme and usage example for aksel-design-token-exists --- .../rules/aksel-design-token-exists/README.md | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 @navikt/aksel-stylelint/rules/aksel-design-token-exists/README.md diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/README.md b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/README.md new file mode 100644 index 0000000000..9ac1d8bec5 --- /dev/null +++ b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/README.md @@ -0,0 +1,22 @@ +# Aksel-design-token-exists + +## Examples + +This rule checks that if you use one of the reserved token prefixes `--a-` or `--ac-` then the token itself _must_ be provided by design system itself. + +### Incorrect +```javascript +html h1 { + --a-my-own-color-bg-hover: #f2f2f2; + ^^^^^^^^^^^^^^^^^^^^^^^^^ + background-color: var(--a-my-own-color-bg-hover, #ffffff); + ^^^^^^^^^^^^^^^^^^^^^^^^^ +} +``` + +### Correct +```javascript +html h1 { + background-color: var(--ac-accordion-header-bg-hover, #ffffff); +} +``` From a0bbde7fc9e7cfc39374359b209e72d78487d94e Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 15:03:20 +0200 Subject: [PATCH 26/68] move README of rule into top-level README --- @navikt/aksel-stylelint/README.md | 26 ++++++++++++++++++- .../rules/aksel-design-token-exists/README.md | 22 ---------------- 2 files changed, 25 insertions(+), 23 deletions(-) delete mode 100644 @navikt/aksel-stylelint/rules/aksel-design-token-exists/README.md diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 25f1936270..a27a1d5517 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -2,7 +2,30 @@ ## aksel-design-token-exists -This stylelint rule will help you referrence or override a design token in the Aksel design system by making sure that it exists. +This rule checks that if you use one of the reserved token prefixes `--a-` or `--ac-` then the token itself _must_ be provided by design system itself. + + +❌ Incorrect: + +```css +html h1 { + --a-my-own-color-bg-hover: #f2f2f2; + ^^^^^^^^^^^^^^^^^^^^^^^^^ + background-color: var(--a-my-own-color-bg-hover, #ffffff); + ^^^^^^^^^^^^^^^^^^^^^^^^^ +} +``` + +✅ Correct: + +```css +html h1 { + background-color: var(--ac-accordion-header-bg-hover, #ffffff); +} +``` + +## aksel-design-token-exists + ## aksel-no-internal-tokens @@ -102,3 +125,4 @@ const stylelintConfig = { }, }; ``` + diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/README.md b/@navikt/aksel-stylelint/rules/aksel-design-token-exists/README.md deleted file mode 100644 index 9ac1d8bec5..0000000000 --- a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/README.md +++ /dev/null @@ -1,22 +0,0 @@ -# Aksel-design-token-exists - -## Examples - -This rule checks that if you use one of the reserved token prefixes `--a-` or `--ac-` then the token itself _must_ be provided by design system itself. - -### Incorrect -```javascript -html h1 { - --a-my-own-color-bg-hover: #f2f2f2; - ^^^^^^^^^^^^^^^^^^^^^^^^^ - background-color: var(--a-my-own-color-bg-hover, #ffffff); - ^^^^^^^^^^^^^^^^^^^^^^^^^ -} -``` - -### Correct -```javascript -html h1 { - background-color: var(--ac-accordion-header-bg-hover, #ffffff); -} -``` From 62f41a1be26c1c7cd8bde3116983e2179a5a4885 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 15:06:48 +0200 Subject: [PATCH 27/68] update README --- @navikt/aksel-stylelint/README.md | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index a27a1d5517..c89310591a 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -24,9 +24,6 @@ html h1 { } ``` -## aksel-design-token-exists - - ## aksel-no-internal-tokens Disallows use or override of internal Aksel design tokens. Internal tokens are not supposed to be used outside the design system, and they may be changed or removed without warning. Be aware that the rule simply checks the prefix of the token, and not if it actually exists in the design system. Even if it doesn't exist, using design system prefixes should be avoided. @@ -80,7 +77,7 @@ Warns when trying to override design system styling by using class selectors tha } ``` -### Install +# Install ```bash yarn add @navikt/aksel-stylelint From 42e8ba93f2b5dfdef110b19f585bc3cbbd8a42e9 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 15:37:17 +0200 Subject: [PATCH 28/68] update README --- @navikt/aksel-stylelint/README.md | 52 +++++++++---------------------- 1 file changed, 14 insertions(+), 38 deletions(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index c89310591a..0301670b45 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -4,7 +4,6 @@ This rule checks that if you use one of the reserved token prefixes `--a-` or `--ac-` then the token itself _must_ be provided by design system itself. - ❌ Incorrect: ```css @@ -20,7 +19,7 @@ html h1 { ```css html h1 { - background-color: var(--ac-accordion-header-bg-hover, #ffffff); + background-color: var(--ac-accordion-header-bg-hover, #ffffff); } ``` @@ -31,13 +30,15 @@ Disallows use or override of internal Aksel design tokens. Internal tokens are n ❌ Incorrect: ```css -a { --__ac-some-property: pink; } - ^^^^^^^ +a { + --__ac-some-property: pink; +} ^^^^^^^^^^^^^^^^^^^^ ``` ```css -a { color: var(--__ac-some-property); } - ^^^^^^^ +a { + color: var(--__ac-some-property); +} ^^^^^^^^^^^^^^^^^^^^ ``` ✅ Correct: @@ -61,13 +62,14 @@ Warns when trying to override design system styling by using class selectors tha ❌ Incorrect: ```css -.navds-button {} - ^^^^^^ +.navds-button { +^^^^^^^^^^^^^ +} ``` ```css -.some-class .navdsi-header {} - ^^^^^^^ +.some-class .navdsi-header { +} ^^^^^^^^^^^^^^ ``` ✅ Correct: @@ -80,22 +82,10 @@ Warns when trying to override design system styling by using class selectors tha # Install ```bash -yarn add @navikt/aksel-stylelint +yarn add -D @navikt/aksel-stylelint npm install -D @navikt/aksel-stylelint ``` -### Options - -```ts -interface PrimaryOptions { - type PrimaryOptions = { - controlledPrefixes?: (string | RegExp)[]; - tokenDefinitionsFile: string; - overrideableTokenDefinitionsJSONFile: string; - }; -} -``` - ### How to configure It should be sufficient for most cases to extend the recommended defaults. @@ -104,22 +94,8 @@ It should be sufficient for most cases to extend the recommended defaults. "stylelint": { "extends": [ ... - "./@navikt/aksel-stylelint/dist/recommended" + "@navikt/aksel-stylelint/recommended" ], ... } ``` - -If you want to configure it further, or tweak the behaviour of the rule, you can look inside `@navikt/aksel-stylelint/recommended.ts` - -```js -const stylelintConfig = { - rules: { - "@navikt/aksel-design-token-exists": { - tokenDefinitionsFile: "@navikt/core/css/dist/index.css", - overrideableTokenDefinitionsJSONFile: "@navikt/core/css/tokens.json", - }, - }, -}; -``` - From 132827cb664c48b872c17ada7d3716102ba124ab Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 16:26:59 +0200 Subject: [PATCH 29/68] move sources into /src, bookkeeping --- @navikt/aksel-stylelint/package.json | 7 +++---- @navikt/aksel-stylelint/{ => src}/index.ts | 0 @navikt/aksel-stylelint/{ => src}/recommended.ts | 0 .../rules/aksel-design-token-exists/index.test.ts | 0 .../rules/aksel-design-token-exists/index.ts | 5 ++++- .../rules/aksel-design-token-exists/utils.ts | 14 +++++++------- .../rules/aksel-no-class-override/index.test.ts | 0 .../rules/aksel-no-class-override/index.ts | 0 .../rules/aksel-no-internal-tokens/index.test.ts | 0 .../rules/aksel-no-internal-tokens/index.ts | 0 @navikt/aksel-stylelint/{ => src}/rules/index.ts | 0 @navikt/aksel-stylelint/tsconfig.json | 2 +- 12 files changed, 15 insertions(+), 13 deletions(-) rename @navikt/aksel-stylelint/{ => src}/index.ts (100%) rename @navikt/aksel-stylelint/{ => src}/recommended.ts (100%) rename @navikt/aksel-stylelint/{ => src}/rules/aksel-design-token-exists/index.test.ts (100%) rename @navikt/aksel-stylelint/{ => src}/rules/aksel-design-token-exists/index.ts (98%) rename @navikt/aksel-stylelint/{ => src}/rules/aksel-design-token-exists/utils.ts (93%) rename @navikt/aksel-stylelint/{ => src}/rules/aksel-no-class-override/index.test.ts (100%) rename @navikt/aksel-stylelint/{ => src}/rules/aksel-no-class-override/index.ts (100%) rename @navikt/aksel-stylelint/{ => src}/rules/aksel-no-internal-tokens/index.test.ts (100%) rename @navikt/aksel-stylelint/{ => src}/rules/aksel-no-internal-tokens/index.ts (100%) rename @navikt/aksel-stylelint/{ => src}/rules/index.ts (100%) diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index 1c7d5f13be..64c9bb97c5 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -1,6 +1,6 @@ { "name": "@navikt/aksel-stylelint", - "version": "3.0.0", + "version": "3.0.0-beta.1", "author": "Aksel | NAV", "homepage": "https://aksel.nav.no/lint", "repository": { @@ -13,11 +13,10 @@ "stylelint" ], "publishConfig": { - "access": "public", - "provenance": true + "access": "public" }, "license": "MIT", - "main": "./index.js", + "main": "./dist/index.js", "exports": "./dist/index.js", "files": [ "./dist" diff --git a/@navikt/aksel-stylelint/index.ts b/@navikt/aksel-stylelint/src/index.ts similarity index 100% rename from @navikt/aksel-stylelint/index.ts rename to @navikt/aksel-stylelint/src/index.ts diff --git a/@navikt/aksel-stylelint/recommended.ts b/@navikt/aksel-stylelint/src/recommended.ts similarity index 100% rename from @navikt/aksel-stylelint/recommended.ts rename to @navikt/aksel-stylelint/src/recommended.ts diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts similarity index 100% rename from @navikt/aksel-stylelint/rules/aksel-design-token-exists/index.test.ts rename to @navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts similarity index 98% rename from @navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts rename to @navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index 17fbd2eef7..6496064e6d 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -2,10 +2,13 @@ import stylelint from "stylelint"; import valueParser from "postcss-value-parser"; import { readFileSync } from "node:fs"; -import packageJson from "../../package.json"; import { flattenObject, isCustomProperty } from "./utils"; import { Node as PostCSSNode } from "postcss"; +const packageJson = JSON.parse( + readFileSync(`${__dirname}/../../../package.json`).toString() +); + const ruleName = "@navikt/aksel-design-token-exists"; const tokenDefinitionsFile = "./index.css"; diff --git a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/utils.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/utils.ts similarity index 93% rename from @navikt/aksel-stylelint/rules/aksel-design-token-exists/utils.ts rename to @navikt/aksel-stylelint/src/rules/aksel-design-token-exists/utils.ts index 0318ce1efb..3aa50be928 100644 --- a/@navikt/aksel-stylelint/rules/aksel-design-token-exists/utils.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/utils.ts @@ -74,12 +74,12 @@ export const vendorUnprefixed = (prop) => { export const flattenObject = (obj) => { const flattened = Object.keys(obj).reduce((acc, key) => { - if (typeof obj[key] === 'string') { - acc.push(key) + if (typeof obj[key] === "string") { + acc.push(key); } else { - acc.push(flattenObject(obj[key])) + acc.push(flattenObject(obj[key])); } - return acc - }, []) - return flattened.flat() -} \ No newline at end of file + return acc; + }, []); + return flattened.flat(); +}; diff --git a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.test.ts similarity index 100% rename from @navikt/aksel-stylelint/rules/aksel-no-class-override/index.test.ts rename to @navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.test.ts diff --git a/@navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts similarity index 100% rename from @navikt/aksel-stylelint/rules/aksel-no-class-override/index.ts rename to @navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts diff --git a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.test.ts similarity index 100% rename from @navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.test.ts rename to @navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.test.ts diff --git a/@navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts similarity index 100% rename from @navikt/aksel-stylelint/rules/aksel-no-internal-tokens/index.ts rename to @navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts diff --git a/@navikt/aksel-stylelint/rules/index.ts b/@navikt/aksel-stylelint/src/rules/index.ts similarity index 100% rename from @navikt/aksel-stylelint/rules/index.ts rename to @navikt/aksel-stylelint/src/rules/index.ts diff --git a/@navikt/aksel-stylelint/tsconfig.json b/@navikt/aksel-stylelint/tsconfig.json index 2e4683dc5c..4207e2c4b7 100644 --- a/@navikt/aksel-stylelint/tsconfig.json +++ b/@navikt/aksel-stylelint/tsconfig.json @@ -8,7 +8,7 @@ "declaration": false, "types": ["node", "jest", "@types/jest"], "outDir": "dist", - "rootDir": ".", + "rootDir": "./src", "resolveJsonModule": true, "allowJs": true, "skipLibCheck": true From 9da8d0f83c57053f78f709180c917fac25e165ad Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 16:28:52 +0200 Subject: [PATCH 30/68] add aksel-stylelint to changeset.fixed --- .changeset/config.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.changeset/config.json b/.changeset/config.json index 0afe4815ce..ab37463513 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -13,7 +13,8 @@ "@navikt/ds-codemod", "@navikt/aksel-icons", "@navikt/aksel", - "@navikt/ds-icons" + "@navikt/ds-icons", + "@navikt/aksel-stylelint" ] ], "linked": [], From 33f296b91868cb9cdf2304239a6b30f04af398f8 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 23 May 2023 17:14:28 +0200 Subject: [PATCH 31/68] set exports correctly (exposes ./recommended) --- @navikt/aksel-stylelint/package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index 64c9bb97c5..8cf7edee7c 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -17,7 +17,9 @@ }, "license": "MIT", "main": "./dist/index.js", - "exports": "./dist/index.js", + "exports": { + "./recommended": "./dist/recommended.js" + }, "files": [ "./dist" ], From 1d158e95cd67ca30c709065d735e1b01e44ec6c1 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 24 May 2023 13:09:20 +0200 Subject: [PATCH 32/68] bookkeeping, cleanup, refactor, remove test files --- @navikt/aksel-stylelint/package.json | 12 ++- .../rules/aksel-design-token-exists/index.ts | 74 ++++++------------- @navikt/core/css/TESTLINTER.css | 44 ----------- package.json | 14 +++- yarn.lock | 1 + 5 files changed, 43 insertions(+), 102 deletions(-) delete mode 100644 @navikt/core/css/TESTLINTER.css diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index 8cf7edee7c..46928df946 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -1,6 +1,6 @@ { "name": "@navikt/aksel-stylelint", - "version": "3.0.0-beta.1", + "version": "3.0.0-beta.3", "author": "Aksel | NAV", "homepage": "https://aksel.nav.no/lint", "repository": { @@ -25,8 +25,11 @@ ], "scripts": { "test": "jest", - "copy": "copyfiles -E -f ../core/css/dist/index.css -f ../core/css/tokens.json dist", - "build": "tsc -p . && yarn copy", + "copy-internal-tokens": "node -e \"require('fs').copyFileSync('../internal/css/tokens.json','dist/internal-tokens.json')\"", + "copy-css": "node -e \"require('fs').copyFileSync('../core/css/dist/index.css','dist/index.css')\"", + "copy-tokens": "node -e \"require('fs').copyFileSync('../core/css/tokens.json','dist/tokens.json')\"", + "copy": "yarn copy-internal-tokens && yarn copy-css && yarn copy-tokens", + "build": "tsc -p . && concurrently \"yarn:copy-*\"", "watch:lint": "tsc --watch -p .", "dev": "yarn watch:lint" }, @@ -36,7 +39,8 @@ "jest": "^29.0.0", "jest-preset-stylelint": "^6.1.0", "stylelint": "^14.8.5", - "typescript": "^4.8.0" + "typescript": "^4.8.0", + "concurrently": "7.2.1" }, "jest": { "preset": "jest-preset-stylelint", diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index 6496064e6d..c624ef3c12 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -11,8 +11,10 @@ const packageJson = JSON.parse( const ruleName = "@navikt/aksel-design-token-exists"; -const tokenDefinitionsFile = "./index.css"; -const overrideableTokenDefinitionsJSONFile = "./tokens.json"; +const tokenCSSFile = "./index.css"; +const tokenJsonFile = "./tokens.json"; +const internalTokensJSONFile = "./internal-tokens.json"; + export const controlledPrefixes = ["--ac-", "--a-"]; let allowedTokenNames = []; @@ -42,17 +44,17 @@ export const errorMessage = ( ); }; -const isValidToken = ( - tokenDefinitionsFile: string, - overrideableTokenDefinitionsJSONFile: string, - controlledPrefixes: string[], - inputToken: string -) => { +const addTokens = (tokenJSONFile: string, allowedTokenNames: string[]) => { + const jsonFileBuffer = readFileSync(`${__dirname}/../../${tokenJSONFile}`); + const fileString = jsonFileBuffer.toString(); + const flattened = flattenObject(JSON.parse(fileString)); + flattened.forEach((token) => allowedTokenNames.push(token)); +}; + +const isValidToken = (controlledPrefixes: string[], inputToken: string) => { // "singleton" if statement (attempt at caching file parsing) if (!allowedTokenNames.length) { - const cssFileBuffer = readFileSync( - `${__dirname}/../../${tokenDefinitionsFile}` - ); + const cssFileBuffer = readFileSync(`${__dirname}/../../${tokenCSSFile}`); const cssFileString = cssFileBuffer.toString(); valueParser(cssFileString).walk((node) => { @@ -65,35 +67,20 @@ const isValidToken = ( } }); - const jsonFileBuffer = readFileSync( - `${__dirname}/../../${overrideableTokenDefinitionsJSONFile}` - ); - const fileString = jsonFileBuffer.toString(); - - const flattened = flattenObject(JSON.parse(fileString)); - flattened.forEach((token) => allowedTokenNames.push(token)); + addTokens(tokenJsonFile, allowedTokenNames); + addTokens(internalTokensJSONFile, allowedTokenNames); } return allowedTokenNames.includes(inputToken); }; -const getInvalidPropName = ( - tokenDefinitionsFile: string, - overrideableTokenDefinitionsJSONFile: string, - controlledPrefixes: string[], - prop: string -) => { +const getInvalidPropName = (controlledPrefixes: string[], prop: string) => { const invalidValues: string[] = []; if ( isCustomProperty(prop) && controlledPrefixes.some((prefix) => prop.startsWith(prefix)) && - !isValidToken( - tokenDefinitionsFile, - overrideableTokenDefinitionsJSONFile, - controlledPrefixes, - prop - ) + !isValidToken(controlledPrefixes, prop) ) { invalidValues.push(prop); } @@ -102,8 +89,6 @@ const getInvalidPropName = ( }; const checkInvalidVariableNames = ( - tokenDefinitionsFile: string, - overrideableTokenDefinitionsJSONFile: string, controlledPrefixes: string[], value: string, postcssResult: stylelint.PostcssResult, @@ -116,12 +101,7 @@ const checkInvalidVariableNames = ( node.type === "word" && isCustomProperty(node.value) && controlledPrefixes.some((prefix) => node.value.startsWith(prefix)) && - !isValidToken( - tokenDefinitionsFile, - overrideableTokenDefinitionsJSONFile, - controlledPrefixes, - node.value - ) + !isValidToken(controlledPrefixes, node.value) ) { stylelint.utils.report({ message: errorMessage( @@ -147,21 +127,9 @@ const ruleFunction: stylelint.Rule = () => { const prop = node.prop; const value = node.value; - const invalidPropNames = getInvalidPropName( - tokenDefinitionsFile, - overrideableTokenDefinitionsJSONFile, - controlledPrefixes, - prop - ); - - checkInvalidVariableNames( - tokenDefinitionsFile, - overrideableTokenDefinitionsJSONFile, - controlledPrefixes, - value, - postcssResult, - node - ); + const invalidPropNames = getInvalidPropName(controlledPrefixes, prop); + + checkInvalidVariableNames(controlledPrefixes, value, postcssResult, node); if (invalidPropNames) { stylelint.utils.report({ diff --git a/@navikt/core/css/TESTLINTER.css b/@navikt/core/css/TESTLINTER.css deleted file mode 100644 index 24de455a7c..0000000000 --- a/@navikt/core/css/TESTLINTER.css +++ /dev/null @@ -1,44 +0,0 @@ -.navds-accordion__header:hover { - background-color: var(--ac-accordion-header-bg-hover, var(--a-surface-action)); - text-decoration: underline; - color: var(--legal-token, inherit); - background-image: var(--a-illegal-image, --a-illegal-image-2); -} - -* { - color: var(--a-illegal-token, inherit); - --ac-illegal-token: 4px; - --a-illegal-token: 5px; - --aca-legal-token: 6px; - --b-legal-token: 6px; - --a-tokenthing: 42; -} - -.navds-button { - --__ac-button-padding: 23px; - --__ac-custom-token: 10px; - --foo--__ac-legal: 20px; - - padding: var(--__ac-button-padding) var(--__ac-custom-token); -} - -.navds-illegal a { - color: red; -} - -.foo .navdsi-illegal { - color: red; -} - -.foo .navds-illegal a { - color: red; -} - -.foo .navds-illegal a, -.navdsi-illegal { - color: red; -} - -.allowed-navds-foo { - color: red; -} diff --git a/package.json b/package.json index d34be1df47..ab42c205c0 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,6 @@ "test": "yarn workspaces foreach -p run test", "lint": "yarn eslint . && yarn stylelint @navikt/**/*.css", "lint:css": "yarn stylelint @navikt/**/*.css", - "lint:csstest": "yarn stylelint @navikt/core/css/TESTLINTER.css", "changeset": "changeset", "version": "changeset version", "release": "yarn boot && yarn docgen && changeset publish" @@ -142,6 +141,19 @@ ] }, "stylelint": { + "overrides": [ + { + "files": [ + "@navikt/core/css/**/*", + "@navikt/internal/css/**/*" + ], + "rules": { + "@navikt/aksel-design-token-exists": true, + "@navikt/aksel-no-internal-tokens": null, + "@navikt/aksel-no-class-override": null + } + } + ], "extends": [ "stylelint-config-standard", "stylelint-config-prettier", diff --git a/yarn.lock b/yarn.lock index 118b3f390d..8afaf170ba 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4115,6 +4115,7 @@ __metadata: resolution: "@navikt/aksel-stylelint@workspace:@navikt/aksel-stylelint" dependencies: "@types/jest": ^29.0.0 + concurrently: 7.2.1 copyfiles: 2.4.1 jest: ^29.0.0 jest-preset-stylelint: ^6.1.0 From bd18ff63afdb3890323c91c789ed9cc290b644b1 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 24 May 2023 13:23:34 +0200 Subject: [PATCH 33/68] Update README.md --- @navikt/aksel-stylelint/README.md | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 0301670b45..e40100dd7b 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -1,8 +1,18 @@ # Aksel stylelint rules & plugins +This stylelint plugin is useful when working with the [Aksel design system](https://aksel.nav.no/). + +It is designed to be useful for both _internal_ and _external_ developers. + +🐛 Found a bug? https://github.com/navikt/aksel/issues + +> **Warning** +> The version of this plugin should **_match_** the version of the design system packages used in your project for best results! +> Otherwise you might get incorrect errors that tell you to use the wrong token names. + ## aksel-design-token-exists -This rule checks that if you use one of the reserved token prefixes `--a-` or `--ac-` then the token itself _must_ be provided by design system itself. +This rule checks that if you use one of the reserved token prefixes `--a-` or `--ac-` then the token itself _must_ be provided by design system. ❌ Incorrect: @@ -30,13 +40,13 @@ Disallows use or override of internal Aksel design tokens. Internal tokens are n ❌ Incorrect: ```css -a { +a { --__ac-some-property: pink; } ^^^^^^^^^^^^^^^^^^^^ ``` ```css -a { +a { color: var(--__ac-some-property); } ^^^^^^^^^^^^^^^^^^^^ ``` From 7c1da733cf46d7f1056e6943ac37b0f2948cd2a8 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 24 May 2023 13:33:05 +0200 Subject: [PATCH 34/68] Update README.md --- @navikt/aksel-stylelint/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index e40100dd7b..85bb4dc261 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -2,13 +2,13 @@ This stylelint plugin is useful when working with the [Aksel design system](https://aksel.nav.no/). -It is designed to be useful for both _internal_ and _external_ developers. - -🐛 Found a bug? https://github.com/navikt/aksel/issues +It is designed to be useful for both _internal_ and _external_ developers, so _everyone_ should install this 🙌. > **Warning** -> The version of this plugin should **_match_** the version of the design system packages used in your project for best results! -> Otherwise you might get incorrect errors that tell you to use the wrong token names. +> The version of this plugin **_MUST MATCH_** the version of the other design system packages used in your project for the linting to make sense! +> Otherwise you are very likely to get _incorrect_ errors that tell you to use the wrong token names. + +🐛 Found a bug? https://github.com/navikt/aksel/issues ## aksel-design-token-exists From 9d0c90e12837e7e122ac77bf1d0024f570f62f21 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 24 May 2023 14:08:49 +0200 Subject: [PATCH 35/68] changeset --- .changeset/shy-days-walk.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/shy-days-walk.md diff --git a/.changeset/shy-days-walk.md b/.changeset/shy-days-walk.md new file mode 100644 index 0000000000..2e433483d9 --- /dev/null +++ b/.changeset/shy-days-walk.md @@ -0,0 +1,5 @@ +--- +"@navikt/aksel-stylelint": minor +--- + +add stylelint plugin From 146b9162655bfe02b32be8620cc2e8f297aab0a1 Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Wed, 24 May 2023 14:19:25 +0200 Subject: [PATCH 36/68] fix urls --- .../src/rules/aksel-design-token-exists/index.ts | 2 +- .../aksel-stylelint/src/rules/aksel-no-class-override/index.ts | 2 +- .../aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index c624ef3c12..b0fb928eca 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -146,7 +146,7 @@ const ruleFunction: stylelint.Rule = () => { ruleFunction.ruleName = ruleName; ruleFunction.messages = {}; ruleFunction.meta = { - url: "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-design-token-exists", + url: "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-design-token-exists", }; export default ruleFunction; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts index 19ae51268a..f9b72468aa 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts @@ -3,7 +3,7 @@ import selectorParser from "postcss-selector-parser"; const ruleName = "@navikt/aksel-no-class-override"; const url = - "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-no-class-override"; + "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-class-override"; const prefixes = ["navds-", "navdsi-"]; export const messages = stylelint.utils.ruleMessages(ruleName, { diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts index f0df1b7884..21b053adb7 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts @@ -3,7 +3,7 @@ import valueParser from "postcss-value-parser"; const ruleName = "@navikt/aksel-no-internal-tokens"; const url = - "https://github.com/navikt/aksel/@navikt/aksel-stylelint/README.md#aksel-no-internal-tokens"; + "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-internal-tokens"; const prefix = "--__ac-"; export const messages = stylelint.utils.ruleMessages(ruleName, { From 76f13b3890e6efc0b782a1b3220c9a23b04c2d6f Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Wed, 24 May 2023 14:29:03 +0200 Subject: [PATCH 37/68] update test for aksel-design-token-exists to cover all token files --- .../src/rules/aksel-design-token-exists/index.test.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts index 3f0f900383..bbfee27e6d 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts @@ -12,8 +12,8 @@ getTestRule()({ description: "existing '--a' token overridden", }, { - code: ".foo { --ac-accordion-header-bg-hover: 1px }", - description: "existing '--ac' token overridden", + code: ".foo { --ac-accordion-header-bg-hover: 1px; --ac-header-bg: red; }", + description: "existing '--ac' tokens overridden", }, ], From f9281a915aa683b096b178212f8f00eb98370e15 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 24 May 2023 17:38:50 +0200 Subject: [PATCH 38/68] add more granular error catching --- .../aksel-design-token-exists/index.test.ts | 49 +----- .../rules/aksel-design-token-exists/index.ts | 160 +++++++++++------- 2 files changed, 111 insertions(+), 98 deletions(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts index bbfee27e6d..c993f4d567 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts @@ -1,5 +1,5 @@ import { getTestRule } from "jest-preset-stylelint"; -import rule, { errorMessage, controlledPrefixes } from "."; +import rule, { messages } from "."; getTestRule()({ plugins: ["./dist/index.js"], @@ -21,11 +21,7 @@ getTestRule()({ { code: ".foo { --a-does-not-exist: 1px }", description: "attempt to override nonexisting '--a' token", - message: errorMessage( - "prop", - { prop: "--a-does-not-exist" }, - controlledPrefixes - ), + message: messages.propNotExist({ prop: "--a-does-not-exist" }), line: 1, endLine: 1, column: 8, @@ -34,11 +30,7 @@ getTestRule()({ { code: ".foo \n { \n --ac-does-not-exist: 1px; \n }", description: "attempt to override nonexisting '--ac' token", - message: errorMessage( - "prop", - { prop: "--ac-does-not-exist" }, - controlledPrefixes - ), + message: messages.propNotExist({ prop: "--ac-does-not-exist" }), line: 3, endLine: 3, column: 2, @@ -48,12 +40,7 @@ getTestRule()({ { code: ".foo { color: var(--a-bar) }", description: "attempt to use nonexsiting token", - message: errorMessage( - "value", - { prop: "color" }, - controlledPrefixes, - "--a-bar" - ), + message: messages.valueWrong({ prop: "color" }, "--a-bar"), line: 1, endLine: 1, column: 19, @@ -64,24 +51,14 @@ getTestRule()({ description: "attempt to use two nonexsiting tokens in one var()", warnings: [ { - message: errorMessage( - "value", - { prop: "width" }, - controlledPrefixes, - "--ac-bar" - ), + message: messages.valueWrong({ prop: "width" }, "--ac-bar"), line: 1, endLine: 1, column: 19, endColumn: 27, }, { - message: errorMessage( - "value", - { prop: "width" }, - controlledPrefixes, - "--a-baz" - ), + message: messages.valueWrong({ prop: "width" }, "--a-baz"), line: 1, endLine: 1, column: 29, @@ -94,24 +71,14 @@ getTestRule()({ description: "attempt to use two tokens as separate vars", warnings: [ { - message: errorMessage( - "value", - { prop: "padding" }, - controlledPrefixes, - "--a-bar" - ), + message: messages.valueWrong({ prop: "padding" }, "--a-bar"), line: 1, endLine: 1, column: 21, endColumn: 28, }, { - message: errorMessage( - "value", - { prop: "padding" }, - controlledPrefixes, - "--a-baz" - ), + message: messages.valueWrong({ prop: "padding" }, "--a-baz"), line: 1, endLine: 1, column: 34, diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index b0fb928eca..248351123c 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -16,33 +16,37 @@ const tokenJsonFile = "./tokens.json"; const internalTokensJSONFile = "./internal-tokens.json"; export const controlledPrefixes = ["--ac-", "--a-"]; +const prefix_a = "--a-"; +const prefix_ac = "--ac-"; let allowedTokenNames = []; const packageVersion = packageJson.version; -export const errorMessage = ( - type: "prop" | "value", - node, - controlledPrefixes: string[], - invalidValues?: string -) => { - if (type === "value") { - return ( - `property "${node.prop}" has offending value "${invalidValues}", ` + - `and the value seems like it intends to reference a design token by ` + - `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system. ` + - `\n\nVersion: ${packageVersion}` - ); - } - return ( +export const messages = stylelint.utils.ruleMessages(ruleName, { + propNotExist: (node: any) => `property "${node.prop}" has a name that seems like it intends to override a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + `However, that token doesn't seem to exist in the design system. ` + - `\n\nVersion: ${packageVersion}` - ); -}; + `\n\nVersion: ${packageVersion}`, + propOverride: (node: any) => + `property "${node.prop}" tries to override a global design token, this is highly discouraged. ` + + `\n\nVersion: ${packageVersion}`, + propOverrideNotExist: (node: any) => + `property "${node.prop}" tries to override a global design token, this is highly discouraged. ` + + `Also, that token doesn't exist. ` + + `\n\nVersion: ${packageVersion}`, + valueWrong: (node: any, invalidValues: string) => + `property "${node.prop}" has offending value "${invalidValues}". ` + + `The value references a component level token. It is better to reference a global level token instead. ` + + `\n\nVersion: ${packageVersion}`, + valueNotExist: (node: any, invalidValues: string) => + `property "${node.prop}" has offending value "${invalidValues}", ` + + `and the value seems like it intends to reference a design token by ` + + `using one of the following prefixes [${prefix_ac}]. ` + + `However, that token doesn't seem to exist in the design system. ` + + `\n\nVersion: ${packageVersion}`, +}); const addTokens = (tokenJSONFile: string, allowedTokenNames: string[]) => { const jsonFileBuffer = readFileSync(`${__dirname}/../../${tokenJSONFile}`); @@ -51,7 +55,7 @@ const addTokens = (tokenJSONFile: string, allowedTokenNames: string[]) => { flattened.forEach((token) => allowedTokenNames.push(token)); }; -const isValidToken = (controlledPrefixes: string[], inputToken: string) => { +const tokenExists = (controlledPrefixes: string[], inputToken: string) => { // "singleton" if statement (attempt at caching file parsing) if (!allowedTokenNames.length) { const cssFileBuffer = readFileSync(`${__dirname}/../../${tokenCSSFile}`); @@ -74,20 +78,6 @@ const isValidToken = (controlledPrefixes: string[], inputToken: string) => { return allowedTokenNames.includes(inputToken); }; -const getInvalidPropName = (controlledPrefixes: string[], prop: string) => { - const invalidValues: string[] = []; - - if ( - isCustomProperty(prop) && - controlledPrefixes.some((prefix) => prop.startsWith(prefix)) && - !isValidToken(controlledPrefixes, prop) - ) { - invalidValues.push(prop); - } - - if (invalidValues.length > 0) return invalidValues; -}; - const checkInvalidVariableNames = ( controlledPrefixes: string[], value: string, @@ -100,25 +90,91 @@ const checkInvalidVariableNames = ( if ( node.type === "word" && isCustomProperty(node.value) && - controlledPrefixes.some((prefix) => node.value.startsWith(prefix)) && - !isValidToken(controlledPrefixes, node.value) + node.value.startsWith(prefix_ac) + ) { + if (tokenExists(controlledPrefixes, node.value)) { + stylelint.utils.report({ + message: messages.valueWrong(rootNode, node.value), + node: rootNode, + result: postcssResult, + ruleName, + word: node.value, + }); + } + if (!tokenExists(controlledPrefixes, node.value)) + stylelint.utils.report({ + message: messages.valueNotExist(rootNode, node.value), + node: rootNode, + result: postcssResult, + ruleName, + word: node.value, + }); + } else if ( + node.type === "word" && + isCustomProperty(node.value) && + node.value.startsWith(prefix_a) + ) { + if (!tokenExists(controlledPrefixes, node.value)) { + stylelint.utils.report({ + message: messages.valueNotExist(rootNode, node.value), + node: rootNode, + result: postcssResult, + ruleName, + word: node.value, + }); + } else if (tokenExists(controlledPrefixes, node.value)) { + stylelint.utils.report({ + message: messages.valueWrong(rootNode, node.value), + node: rootNode, + result: postcssResult, + ruleName, + word: node.value, + }); + } + } + }); + + if (invalidValues.length > 0) return invalidValues; +}; + +const checkInvalidPropNames = ( + controlledPrefixes: string[], + prop: string, + postcssResult: stylelint.PostcssResult, + rootNode: PostCSSNode +) => { + if (isCustomProperty(prop)) { + if (prop.startsWith(prefix_a)) { + if (tokenExists(controlledPrefixes, prop)) { + stylelint.utils.report({ + message: messages.propOverride(rootNode), + node: rootNode, + result: postcssResult, + ruleName, + word: prop, + }); + } else { + stylelint.utils.report({ + message: messages.propOverrideNotExist(rootNode), + node: rootNode, + result: postcssResult, + ruleName, + word: prop, + }); + } + } else if ( + controlledPrefixes.some((prefix) => prop.startsWith(prefix)) && + !tokenExists(controlledPrefixes, prop) ) { stylelint.utils.report({ - message: errorMessage( - "value", - rootNode, - controlledPrefixes, - node.value - ), + message: messages.propNotExist(rootNode), node: rootNode, result: postcssResult, ruleName, - word: node.value, + word: prop, }); } - }); - - if (invalidValues.length > 0) return invalidValues; + } }; const ruleFunction: stylelint.Rule = () => { @@ -127,18 +183,8 @@ const ruleFunction: stylelint.Rule = () => { const prop = node.prop; const value = node.value; - const invalidPropNames = getInvalidPropName(controlledPrefixes, prop); - checkInvalidVariableNames(controlledPrefixes, value, postcssResult, node); - - if (invalidPropNames) { - stylelint.utils.report({ - message: errorMessage("prop", node, controlledPrefixes), - node, - result: postcssResult, - ruleName, - }); - } + checkInvalidPropNames(controlledPrefixes, prop, postcssResult, node); }); }; }; From cad0c4556cbc324cb78991a4ec54f76114e90b1e Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Thu, 25 May 2023 09:22:45 +0200 Subject: [PATCH 39/68] cleanup, improve error message --- .../rules/aksel-design-token-exists/index.ts | 41 +++++++++---------- 1 file changed, 20 insertions(+), 21 deletions(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index 248351123c..efcdf32bb9 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -30,15 +30,13 @@ export const messages = stylelint.utils.ruleMessages(ruleName, { `However, that token doesn't seem to exist in the design system. ` + `\n\nVersion: ${packageVersion}`, propOverride: (node: any) => - `property "${node.prop}" tries to override a global design token, this is highly discouraged. ` + - `\n\nVersion: ${packageVersion}`, - propOverrideNotExist: (node: any) => - `property "${node.prop}" tries to override a global design token, this is highly discouraged. ` + - `Also, that token doesn't exist. ` + + `property "${node.prop}" tries to override a global level token, this is highly discouraged. ` + + `It is better to override a component level token ('--ac-') or create a custom token instead. ` + `\n\nVersion: ${packageVersion}`, valueWrong: (node: any, invalidValues: string) => `property "${node.prop}" has offending value "${invalidValues}". ` + - `The value references a component level token. It is better to reference a global level token instead. ` + + `The value references a component level token. It is better to either reference a global level token ('--a-') or ` + + `create a custom token instead. ` + `\n\nVersion: ${packageVersion}`, valueNotExist: (node: any, invalidValues: string) => `property "${node.prop}" has offending value "${invalidValues}", ` + @@ -144,8 +142,8 @@ const checkInvalidPropNames = ( rootNode: PostCSSNode ) => { if (isCustomProperty(prop)) { - if (prop.startsWith(prefix_a)) { - if (tokenExists(controlledPrefixes, prop)) { + if (controlledPrefixes.some((prefix) => prop.startsWith(prefix))) { + if (prop.startsWith(prefix_a) && tokenExists(controlledPrefixes, prop)) { stylelint.utils.report({ message: messages.propOverride(rootNode), node: rootNode, @@ -153,26 +151,27 @@ const checkInvalidPropNames = ( ruleName, word: prop, }); - } else { + if (!tokenExists(controlledPrefixes, prop)) { + stylelint.utils.report({ + message: messages.propNotExist(rootNode), + node: rootNode, + result: postcssResult, + ruleName, + word: prop, + }); + } + } else if ( + controlledPrefixes.some((prefix) => prop.startsWith(prefix)) && + !tokenExists(controlledPrefixes, prop) + ) { stylelint.utils.report({ - message: messages.propOverrideNotExist(rootNode), + message: messages.propNotExist(rootNode), node: rootNode, result: postcssResult, ruleName, word: prop, }); } - } else if ( - controlledPrefixes.some((prefix) => prop.startsWith(prefix)) && - !tokenExists(controlledPrefixes, prop) - ) { - stylelint.utils.report({ - message: messages.propNotExist(rootNode), - node: rootNode, - result: postcssResult, - ruleName, - word: prop, - }); } } }; From 7db714428d588899ba90911309ae26b2b24817c8 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Thu, 25 May 2023 09:45:30 +0200 Subject: [PATCH 40/68] update tests + fix code that broke tests --- .../aksel-design-token-exists/index.test.ts | 41 +++++++++++-------- .../rules/aksel-design-token-exists/index.ts | 26 ++++-------- 2 files changed, 34 insertions(+), 33 deletions(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts index c993f4d567..561a869e2a 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts @@ -8,39 +8,48 @@ getTestRule()({ accept: [ { - code: ".foo { --a-surface-action: 1px }", - description: "existing '--a' token overridden", + code: ".foo { --ac-accordion-header-bg-hover: 1px; --ac-header-bg: red; }", + description: "existing '--ac-' tokens overridden", }, { - code: ".foo { --ac-accordion-header-bg-hover: 1px; --ac-header-bg: red; }", - description: "existing '--ac' tokens overridden", + code: ".foo { --my-custom-color: var(--a-orange-800); }", + description: "existing '--a-' token referenced", }, ], reject: [ + { + code: ".foo { --a-surface-action: 1px }", + description: "existing '--a' token overridden", + message: messages.propOverrideGlobal({ prop: "--a-surface-action" }), + line: 1, + endLine: 1, + column: 8, + endColumn: 26, + }, { code: ".foo { --a-does-not-exist: 1px }", - description: "attempt to override nonexisting '--a' token", + description: "attempt to override nonexistent '--a' token", message: messages.propNotExist({ prop: "--a-does-not-exist" }), line: 1, endLine: 1, column: 8, - endColumn: 31, + endColumn: 26, }, { code: ".foo \n { \n --ac-does-not-exist: 1px; \n }", - description: "attempt to override nonexisting '--ac' token", + description: "attempt to override nonexistent '--ac' token", message: messages.propNotExist({ prop: "--ac-does-not-exist" }), line: 3, endLine: 3, column: 2, - endColumn: 27, + endColumn: 21, }, { code: ".foo { color: var(--a-bar) }", - description: "attempt to use nonexsiting token", - message: messages.valueWrong({ prop: "color" }, "--a-bar"), + description: "attempt to use nonexistent token", + message: messages.valueNotExist({ prop: "color" }, "--a-bar"), line: 1, endLine: 1, column: 19, @@ -48,17 +57,17 @@ getTestRule()({ }, { code: ".foo { width: var(--ac-bar, --a-baz) }", - description: "attempt to use two nonexsiting tokens in one var()", + description: "attempt to use two nonexistent tokens in one var()", warnings: [ { - message: messages.valueWrong({ prop: "width" }, "--ac-bar"), + message: messages.valueNotExist({ prop: "width" }, "--ac-bar"), line: 1, endLine: 1, column: 19, endColumn: 27, }, { - message: messages.valueWrong({ prop: "width" }, "--a-baz"), + message: messages.valueNotExist({ prop: "width" }, "--a-baz"), line: 1, endLine: 1, column: 29, @@ -68,17 +77,17 @@ getTestRule()({ }, { code: ".foo { padding: var(--a-bar) var(--a-baz); }", - description: "attempt to use two tokens as separate vars", + description: "attempt to use two nonexistent tokens as separate vars", warnings: [ { - message: messages.valueWrong({ prop: "padding" }, "--a-bar"), + message: messages.valueNotExist({ prop: "padding" }, "--a-bar"), line: 1, endLine: 1, column: 21, endColumn: 28, }, { - message: messages.valueWrong({ prop: "padding" }, "--a-baz"), + message: messages.valueNotExist({ prop: "padding" }, "--a-baz"), line: 1, endLine: 1, column: 34, diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index efcdf32bb9..e2b02f1080 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -29,11 +29,11 @@ export const messages = stylelint.utils.ruleMessages(ruleName, { `using one of the following prefixes [${controlledPrefixes}]. ` + `However, that token doesn't seem to exist in the design system. ` + `\n\nVersion: ${packageVersion}`, - propOverride: (node: any) => + propOverrideGlobal: (node: any) => `property "${node.prop}" tries to override a global level token, this is highly discouraged. ` + `It is better to override a component level token ('--ac-') or create a custom token instead. ` + `\n\nVersion: ${packageVersion}`, - valueWrong: (node: any, invalidValues: string) => + valueRefComponent: (node: any, invalidValues: string) => `property "${node.prop}" has offending value "${invalidValues}". ` + `The value references a component level token. It is better to either reference a global level token ('--a-') or ` + `create a custom token instead. ` + @@ -41,7 +41,7 @@ export const messages = stylelint.utils.ruleMessages(ruleName, { valueNotExist: (node: any, invalidValues: string) => `property "${node.prop}" has offending value "${invalidValues}", ` + `and the value seems like it intends to reference a design token by ` + - `using one of the following prefixes [${prefix_ac}]. ` + + `using one of the following prefixes [${controlledPrefixes}]. ` + `However, that token doesn't seem to exist in the design system. ` + `\n\nVersion: ${packageVersion}`, }); @@ -76,7 +76,7 @@ const tokenExists = (controlledPrefixes: string[], inputToken: string) => { return allowedTokenNames.includes(inputToken); }; -const checkInvalidVariableNames = ( +const checkDeclValue = ( controlledPrefixes: string[], value: string, postcssResult: stylelint.PostcssResult, @@ -92,7 +92,7 @@ const checkInvalidVariableNames = ( ) { if (tokenExists(controlledPrefixes, node.value)) { stylelint.utils.report({ - message: messages.valueWrong(rootNode, node.value), + message: messages.valueRefComponent(rootNode, node.value), node: rootNode, result: postcssResult, ruleName, @@ -120,14 +120,6 @@ const checkInvalidVariableNames = ( ruleName, word: node.value, }); - } else if (tokenExists(controlledPrefixes, node.value)) { - stylelint.utils.report({ - message: messages.valueWrong(rootNode, node.value), - node: rootNode, - result: postcssResult, - ruleName, - word: node.value, - }); } } }); @@ -135,7 +127,7 @@ const checkInvalidVariableNames = ( if (invalidValues.length > 0) return invalidValues; }; -const checkInvalidPropNames = ( +const checkDeclProp = ( controlledPrefixes: string[], prop: string, postcssResult: stylelint.PostcssResult, @@ -145,7 +137,7 @@ const checkInvalidPropNames = ( if (controlledPrefixes.some((prefix) => prop.startsWith(prefix))) { if (prop.startsWith(prefix_a) && tokenExists(controlledPrefixes, prop)) { stylelint.utils.report({ - message: messages.propOverride(rootNode), + message: messages.propOverrideGlobal(rootNode), node: rootNode, result: postcssResult, ruleName, @@ -182,8 +174,8 @@ const ruleFunction: stylelint.Rule = () => { const prop = node.prop; const value = node.value; - checkInvalidVariableNames(controlledPrefixes, value, postcssResult, node); - checkInvalidPropNames(controlledPrefixes, prop, postcssResult, node); + checkDeclValue(controlledPrefixes, value, postcssResult, node); + checkDeclProp(controlledPrefixes, prop, postcssResult, node); }); }; }; From 58975055c0b2e3a0c76ce4d66404f3b1150d0219 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Thu, 25 May 2023 12:07:26 +0200 Subject: [PATCH 41/68] add rule: deprecate classes --- @navikt/aksel-stylelint/src/deprecations.ts | 8 ++++ @navikt/aksel-stylelint/src/recommended.ts | 1 + .../aksel-no-deprecated-classes/index.test.ts | 38 ++++++++++++++++ .../aksel-no-deprecated-classes/index.ts | 44 +++++++++++++++++++ @navikt/aksel-stylelint/src/rules/index.ts | 2 + 5 files changed, 93 insertions(+) create mode 100644 @navikt/aksel-stylelint/src/deprecations.ts create mode 100644 @navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts create mode 100644 @navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts diff --git a/@navikt/aksel-stylelint/src/deprecations.ts b/@navikt/aksel-stylelint/src/deprecations.ts new file mode 100644 index 0000000000..2f48140a6a --- /dev/null +++ b/@navikt/aksel-stylelint/src/deprecations.ts @@ -0,0 +1,8 @@ +type DeprecatedList = { classes: string[]; message: string }[]; + +export const deprecations: DeprecatedList = [ + { + classes: ["navdsi-deprecated-example", "navdsi-other-deprecated-example"], + message: "Removed in vX.X.X, see documentation [link] for more information", + }, +]; diff --git a/@navikt/aksel-stylelint/src/recommended.ts b/@navikt/aksel-stylelint/src/recommended.ts index 76ee1ab505..a3b7bbd3c5 100644 --- a/@navikt/aksel-stylelint/src/recommended.ts +++ b/@navikt/aksel-stylelint/src/recommended.ts @@ -4,5 +4,6 @@ module.exports = { "@navikt/aksel-design-token-exists": true, "@navikt/aksel-no-internal-tokens": true, "@navikt/aksel-no-class-override": [true, { severity: "warning" }], + "@navikt/aksel-no-deprecated-classes": true, }, }; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts new file mode 100644 index 0000000000..ddf1f34d94 --- /dev/null +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts @@ -0,0 +1,38 @@ +import { getTestRule } from "jest-preset-stylelint"; +import rule, { messages } from "."; +import { deprecations } from "../../deprecations"; + +getTestRule()({ + plugins: ["./dist/index.js"], + ruleName: rule.ruleName, + config: true, + + accept: [{ code: ".foo-navds-bar {}", description: "allowed class name" }], + + reject: [ + { + code: ".foo, \n .navdsi-deprecated-example \n .bar {}", + description: "selector with disallowed class name .navds-*", + message: messages.unexpected( + "navdsi-deprecated-example", + deprecations[0].message + ), + line: 2, + endLine: 2, + column: 3, + endColumn: 28, + }, + { + code: ".foo .navdsi-other-deprecated-example \n .bar {}", + description: "selector with disallowed class name .navdsi-*", + message: messages.unexpected( + "navdsi-other-deprecated-example", + deprecations[0].message + ), + line: 1, + endLine: 1, + column: 7, + endColumn: 38, + }, + ], +}); diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts new file mode 100644 index 0000000000..d5989bc24b --- /dev/null +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts @@ -0,0 +1,44 @@ +import stylelint from "stylelint"; +import selectorParser from "postcss-selector-parser"; +import { deprecations } from "../../deprecations"; + +const ruleName = "@navikt/aksel-no-deprecated-classes"; +const url = + "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-deprecated-classes"; + +export const messages = stylelint.utils.ruleMessages(ruleName, { + unexpected: (value, secondaryOption) => + `Class "${value}" is deprecated. ` + secondaryOption, +}); + +const ruleFunction: stylelint.Rule = () => { + return (postcssRoot, postcssResult) => { + postcssRoot.walkRules((node) => { + selectorParser((selectors) => { + selectors.walkClasses((className) => { + for (const deprecation of deprecations) { + if (!deprecation.classes.includes(className.value)) { + return; + } + stylelint.utils.report({ + message: messages.unexpected( + className.value, + deprecation.message + ), + node, + result: postcssResult, + ruleName, + word: className.value, + }); + } + }); + }).processSync(node.selector); + }); + }; +}; + +ruleFunction.ruleName = ruleName; +ruleFunction.messages = messages; +ruleFunction.meta = { url }; + +export default ruleFunction; diff --git a/@navikt/aksel-stylelint/src/rules/index.ts b/@navikt/aksel-stylelint/src/rules/index.ts index f8fb535179..7630b4fd4c 100644 --- a/@navikt/aksel-stylelint/src/rules/index.ts +++ b/@navikt/aksel-stylelint/src/rules/index.ts @@ -2,9 +2,11 @@ import { Rule } from "stylelint"; import designTokenExists from "./aksel-design-token-exists"; import internalTokens from "./aksel-no-internal-tokens"; import classOverride from "./aksel-no-class-override"; +import deprecatedClasses from "./aksel-no-deprecated-classes"; export const rules: Record = { "aksel-design-token-exists": designTokenExists, "aksel-no-internal-tokens": internalTokens, "aksel-no-class-override": classOverride, + "aksel-no-deprecated-classes": deprecatedClasses, }; From fa4bc69198ce8d908c87a0a2d58a4c453d27462f Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Thu, 25 May 2023 12:20:23 +0200 Subject: [PATCH 42/68] adjust aksel-design-token-exists --- .../aksel-design-token-exists/index.test.ts | 40 +++++++++++++++---- .../rules/aksel-design-token-exists/index.ts | 17 ++------ 2 files changed, 35 insertions(+), 22 deletions(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts index 561a869e2a..30916ef524 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts @@ -20,7 +20,7 @@ getTestRule()({ reject: [ { code: ".foo { --a-surface-action: 1px }", - description: "existing '--a' token overridden", + description: "existing '--a-' token overridden", message: messages.propOverrideGlobal({ prop: "--a-surface-action" }), line: 1, endLine: 1, @@ -29,16 +29,27 @@ getTestRule()({ }, { code: ".foo { --a-does-not-exist: 1px }", - description: "attempt to override nonexistent '--a' token", - message: messages.propNotExist({ prop: "--a-does-not-exist" }), - line: 1, - endLine: 1, - column: 8, - endColumn: 26, + description: "attempt to override nonexistent '--a-' token", + warnings: [ + { + message: messages.propOverrideGlobal({ prop: "--a-does-not-exist" }), + line: 1, + endLine: 1, + column: 8, + endColumn: 26, + }, + { + message: messages.propNotExist({ prop: "--a-does-not-exist" }), + line: 1, + endLine: 1, + column: 8, + endColumn: 26, + }, + ], }, { code: ".foo \n { \n --ac-does-not-exist: 1px; \n }", - description: "attempt to override nonexistent '--ac' token", + description: "attempt to override nonexistent '--ac-' token", message: messages.propNotExist({ prop: "--ac-does-not-exist" }), line: 3, endLine: 3, @@ -46,6 +57,19 @@ getTestRule()({ endColumn: 21, }, + { + code: ".foo { width: var(--ac-button-padding) }", + description: "attempt to use '--ac-' token", + message: messages.valueRefComponent( + { prop: "width" }, + "--ac-button-padding" + ), + line: 1, + endLine: 1, + column: 19, + endColumn: 38, + }, + { code: ".foo { color: var(--a-bar) }", description: "attempt to use nonexistent token", diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index e2b02f1080..596820ae29 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -135,7 +135,7 @@ const checkDeclProp = ( ) => { if (isCustomProperty(prop)) { if (controlledPrefixes.some((prefix) => prop.startsWith(prefix))) { - if (prop.startsWith(prefix_a) && tokenExists(controlledPrefixes, prop)) { + if (prop.startsWith(prefix_a)) { stylelint.utils.report({ message: messages.propOverrideGlobal(rootNode), node: rootNode, @@ -143,19 +143,8 @@ const checkDeclProp = ( ruleName, word: prop, }); - if (!tokenExists(controlledPrefixes, prop)) { - stylelint.utils.report({ - message: messages.propNotExist(rootNode), - node: rootNode, - result: postcssResult, - ruleName, - word: prop, - }); - } - } else if ( - controlledPrefixes.some((prefix) => prop.startsWith(prefix)) && - !tokenExists(controlledPrefixes, prop) - ) { + } + if (!tokenExists(controlledPrefixes, prop)) { stylelint.utils.report({ message: messages.propNotExist(rootNode), node: rootNode, From 764e8aaf7c967814bb31a7d7a6c049a871ac56f0 Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Thu, 25 May 2023 13:01:30 +0200 Subject: [PATCH 43/68] adjust test for no-deprecated-classes --- .../rules/aksel-no-deprecated-classes/index.test.ts | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts index ddf1f34d94..dcbc7d7eec 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts @@ -7,12 +7,18 @@ getTestRule()({ ruleName: rule.ruleName, config: true, - accept: [{ code: ".foo-navds-bar {}", description: "allowed class name" }], + accept: [ + { + code: ".navds-foo, navdsi-bar, .baz {}", + description: "allowed class names", + // Allowed because this rule only checks deprecated class names. See also aksel-no-class-override. + }, + ], reject: [ { code: ".foo, \n .navdsi-deprecated-example \n .bar {}", - description: "selector with disallowed class name .navds-*", + description: "selector with deprecated class name 1", message: messages.unexpected( "navdsi-deprecated-example", deprecations[0].message @@ -24,7 +30,7 @@ getTestRule()({ }, { code: ".foo .navdsi-other-deprecated-example \n .bar {}", - description: "selector with disallowed class name .navdsi-*", + description: "selector with deprecated class name 2", message: messages.unexpected( "navdsi-other-deprecated-example", deprecations[0].message From c70db3e9066abd441b506c00c2425f50e99e72d9 Mon Sep 17 00:00:00 2001 From: Halvor Haugan Date: Thu, 25 May 2023 13:07:24 +0200 Subject: [PATCH 44/68] refactor design-token-exists --- .../rules/aksel-design-token-exists/index.ts | 47 ++++++++++--------- 1 file changed, 24 insertions(+), 23 deletions(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index 596820ae29..3c5410ff68 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -15,9 +15,9 @@ const tokenCSSFile = "./index.css"; const tokenJsonFile = "./tokens.json"; const internalTokensJSONFile = "./internal-tokens.json"; -export const controlledPrefixes = ["--ac-", "--a-"]; const prefix_a = "--a-"; const prefix_ac = "--ac-"; +export const controlledPrefixes = [prefix_a, prefix_ac]; let allowedTokenNames = []; @@ -98,8 +98,7 @@ const checkDeclValue = ( ruleName, word: node.value, }); - } - if (!tokenExists(controlledPrefixes, node.value)) + } else { stylelint.utils.report({ message: messages.valueNotExist(rootNode, node.value), node: rootNode, @@ -107,6 +106,7 @@ const checkDeclValue = ( ruleName, word: node.value, }); + } } else if ( node.type === "word" && isCustomProperty(node.value) && @@ -133,26 +133,27 @@ const checkDeclProp = ( postcssResult: stylelint.PostcssResult, rootNode: PostCSSNode ) => { - if (isCustomProperty(prop)) { - if (controlledPrefixes.some((prefix) => prop.startsWith(prefix))) { - if (prop.startsWith(prefix_a)) { - stylelint.utils.report({ - message: messages.propOverrideGlobal(rootNode), - node: rootNode, - result: postcssResult, - ruleName, - word: prop, - }); - } - if (!tokenExists(controlledPrefixes, prop)) { - stylelint.utils.report({ - message: messages.propNotExist(rootNode), - node: rootNode, - result: postcssResult, - ruleName, - word: prop, - }); - } + if ( + isCustomProperty(prop) && + controlledPrefixes.some((prefix) => prop.startsWith(prefix)) + ) { + if (prop.startsWith(prefix_a)) { + stylelint.utils.report({ + message: messages.propOverrideGlobal(rootNode), + node: rootNode, + result: postcssResult, + ruleName, + word: prop, + }); + } + if (!tokenExists(controlledPrefixes, prop)) { + stylelint.utils.report({ + message: messages.propNotExist(rootNode), + node: rootNode, + result: postcssResult, + ruleName, + word: prop, + }); } } }; From 4fbc220ca1dcb595233019eecec4d682387797ba Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Thu, 25 May 2023 16:05:35 +0200 Subject: [PATCH 45/68] update README --- @navikt/aksel-stylelint/README.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 85bb4dc261..80437575c8 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -89,6 +89,25 @@ Warns when trying to override design system styling by using class selectors tha } ``` +## aksel-no-deprecated-classes + +Warns when you try to use deprecated class names. + +❌ Incorrect: + +```css +.navdsi-deprecated-example { +^^^^^^^^^^^^^^^^^^^^^^^^^^ +} +``` + +✅ Correct: + +```css +.guaranteed-not-deprecated { +} +``` + # Install ```bash From 8e35264ceb0aa0f9d5598e0e715ef310066fcd8f Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Fri, 26 May 2023 10:33:58 +0200 Subject: [PATCH 46/68] :memo: update README --- @navikt/aksel-stylelint/README.md | 42 +++++++++++++++---------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 80437575c8..dcb331c0ac 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -8,7 +8,26 @@ It is designed to be useful for both _internal_ and _external_ developers, so _e > The version of this plugin **_MUST MATCH_** the version of the other design system packages used in your project for the linting to make sense! > Otherwise you are very likely to get _incorrect_ errors that tell you to use the wrong token names. -🐛 Found a bug? https://github.com/navikt/aksel/issues +# Install + +```bash +yarn add -D @navikt/aksel-stylelint +npm install -D @navikt/aksel-stylelint +``` + +### How to configure + +It should be sufficient for most cases to extend the recommended defaults. + +```js + "stylelint": { + "extends": [ + ... + "@navikt/aksel-stylelint/recommended" + ], + ... + } +``` ## aksel-design-token-exists @@ -108,23 +127,4 @@ Warns when you try to use deprecated class names. } ``` -# Install - -```bash -yarn add -D @navikt/aksel-stylelint -npm install -D @navikt/aksel-stylelint -``` - -### How to configure - -It should be sufficient for most cases to extend the recommended defaults. - -```js - "stylelint": { - "extends": [ - ... - "@navikt/aksel-stylelint/recommended" - ], - ... - } -``` +🐛 Found a bug? https://github.com/navikt/aksel/issues From 14c3ea62ce3f5a53f715db447d940743d2d9676c Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Fri, 26 May 2023 10:55:39 +0200 Subject: [PATCH 47/68] update readme --- @navikt/aksel-stylelint/README.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index dcb331c0ac..7999b95077 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -33,6 +33,11 @@ It should be sufficient for most cases to extend the recommended defaults. This rule checks that if you use one of the reserved token prefixes `--a-` or `--ac-` then the token itself _must_ be provided by design system. +In addition it checks that you: + +- don't **_reference_** a component level token. As they are only supposed to be overridden. +- don't **_override_** a global level token. As they are only supposed to be referenced. + ❌ Incorrect: ```css @@ -41,6 +46,8 @@ html h1 { ^^^^^^^^^^^^^^^^^^^^^^^^^ background-color: var(--a-my-own-color-bg-hover, #ffffff); ^^^^^^^^^^^^^^^^^^^^^^^^^ + stroke: var(--ac-button-loader-stroke)); + ^^^^^^^^^^^^^^^^^^^^^^^^^ } ``` @@ -48,7 +55,8 @@ html h1 { ```css html h1 { - background-color: var(--ac-accordion-header-bg-hover, #ffffff); + background-color: var(--a-surface-default, #ffffff); + --ac-button-loader-stroke: lawngreen; } ``` From 143b17d01a00e948603eb2ded242ce53be59080e Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Fri, 26 May 2023 13:52:06 +0200 Subject: [PATCH 48/68] refactor: split rules into smaller rules --- @navikt/aksel-stylelint/src/recommended.ts | 2 + .../rules/aksel-design-token-exists/index.ts | 131 +++--------------- .../index.test.ts | 123 ++++++++++++++++ .../index.ts | 60 ++++++++ .../index.test.ts | 123 ++++++++++++++++ .../index.ts | 62 +++++++++ @navikt/aksel-stylelint/src/rules/index.ts | 4 + .../aksel-design-token-exists => }/utils.ts | 53 +++++++ 8 files changed, 450 insertions(+), 108 deletions(-) create mode 100644 @navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.test.ts create mode 100644 @navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts create mode 100644 @navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.test.ts create mode 100644 @navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts rename @navikt/aksel-stylelint/src/{rules/aksel-design-token-exists => }/utils.ts (60%) diff --git a/@navikt/aksel-stylelint/src/recommended.ts b/@navikt/aksel-stylelint/src/recommended.ts index a3b7bbd3c5..de14453c2b 100644 --- a/@navikt/aksel-stylelint/src/recommended.ts +++ b/@navikt/aksel-stylelint/src/recommended.ts @@ -5,5 +5,7 @@ module.exports = { "@navikt/aksel-no-internal-tokens": true, "@navikt/aksel-no-class-override": [true, { severity: "warning" }], "@navikt/aksel-no-deprecated-classes": true, + "@navikt/aksel-design-token-no-global-override": true, + "@navikt/aksel-design-token-no-component-reference": true, }, }; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index 3c5410ff68..93851173f8 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -1,26 +1,20 @@ import stylelint from "stylelint"; import valueParser from "postcss-value-parser"; import { readFileSync } from "node:fs"; - -import { flattenObject, isCustomProperty } from "./utils"; import { Node as PostCSSNode } from "postcss"; +import { isCustomProperty, tokenExists } from "../../utils"; + const packageJson = JSON.parse( readFileSync(`${__dirname}/../../../package.json`).toString() ); const ruleName = "@navikt/aksel-design-token-exists"; -const tokenCSSFile = "./index.css"; -const tokenJsonFile = "./tokens.json"; -const internalTokensJSONFile = "./internal-tokens.json"; - const prefix_a = "--a-"; const prefix_ac = "--ac-"; export const controlledPrefixes = [prefix_a, prefix_ac]; -let allowedTokenNames = []; - const packageVersion = packageJson.version; export const messages = stylelint.utils.ruleMessages(ruleName, { @@ -29,15 +23,6 @@ export const messages = stylelint.utils.ruleMessages(ruleName, { `using one of the following prefixes [${controlledPrefixes}]. ` + `However, that token doesn't seem to exist in the design system. ` + `\n\nVersion: ${packageVersion}`, - propOverrideGlobal: (node: any) => - `property "${node.prop}" tries to override a global level token, this is highly discouraged. ` + - `It is better to override a component level token ('--ac-') or create a custom token instead. ` + - `\n\nVersion: ${packageVersion}`, - valueRefComponent: (node: any, invalidValues: string) => - `property "${node.prop}" has offending value "${invalidValues}". ` + - `The value references a component level token. It is better to either reference a global level token ('--a-') or ` + - `create a custom token instead. ` + - `\n\nVersion: ${packageVersion}`, valueNotExist: (node: any, invalidValues: string) => `property "${node.prop}" has offending value "${invalidValues}", ` + `and the value seems like it intends to reference a design token by ` + @@ -46,85 +31,28 @@ export const messages = stylelint.utils.ruleMessages(ruleName, { `\n\nVersion: ${packageVersion}`, }); -const addTokens = (tokenJSONFile: string, allowedTokenNames: string[]) => { - const jsonFileBuffer = readFileSync(`${__dirname}/../../${tokenJSONFile}`); - const fileString = jsonFileBuffer.toString(); - const flattened = flattenObject(JSON.parse(fileString)); - flattened.forEach((token) => allowedTokenNames.push(token)); -}; - -const tokenExists = (controlledPrefixes: string[], inputToken: string) => { - // "singleton" if statement (attempt at caching file parsing) - if (!allowedTokenNames.length) { - const cssFileBuffer = readFileSync(`${__dirname}/../../${tokenCSSFile}`); - const cssFileString = cssFileBuffer.toString(); - - valueParser(cssFileString).walk((node) => { - if ( - node.type === "word" && - isCustomProperty(node.value) && - controlledPrefixes.some((prefix) => node.value.startsWith(prefix)) - ) { - allowedTokenNames.push(node.value); - } - }); - - addTokens(tokenJsonFile, allowedTokenNames); - addTokens(internalTokensJSONFile, allowedTokenNames); - } - - return allowedTokenNames.includes(inputToken); -}; - const checkDeclValue = ( controlledPrefixes: string[], value: string, postcssResult: stylelint.PostcssResult, rootNode: PostCSSNode -): string[] => { - const invalidValues: string[] = []; - +) => { valueParser(value).walk((node) => { if ( node.type === "word" && isCustomProperty(node.value) && - node.value.startsWith(prefix_ac) - ) { - if (tokenExists(controlledPrefixes, node.value)) { - stylelint.utils.report({ - message: messages.valueRefComponent(rootNode, node.value), - node: rootNode, - result: postcssResult, - ruleName, - word: node.value, - }); - } else { - stylelint.utils.report({ - message: messages.valueNotExist(rootNode, node.value), - node: rootNode, - result: postcssResult, - ruleName, - word: node.value, - }); - } - } else if ( - node.type === "word" && - isCustomProperty(node.value) && - node.value.startsWith(prefix_a) + controlledPrefixes.some((prefix) => node.value.startsWith(prefix)) && + !tokenExists(controlledPrefixes, node.value) ) { - if (!tokenExists(controlledPrefixes, node.value)) { - stylelint.utils.report({ - message: messages.valueNotExist(rootNode, node.value), - node: rootNode, - result: postcssResult, - ruleName, - word: node.value, - }); - } + stylelint.utils.report({ + message: messages.valueNotExist(rootNode, node.value), + node: rootNode, + result: postcssResult, + ruleName, + word: node.value, + }); } }); - - if (invalidValues.length > 0) return invalidValues; }; const checkDeclProp = ( @@ -135,37 +63,24 @@ const checkDeclProp = ( ) => { if ( isCustomProperty(prop) && - controlledPrefixes.some((prefix) => prop.startsWith(prefix)) + controlledPrefixes.some((prefix) => prop.startsWith(prefix)) && + !tokenExists(controlledPrefixes, prop) ) { - if (prop.startsWith(prefix_a)) { - stylelint.utils.report({ - message: messages.propOverrideGlobal(rootNode), - node: rootNode, - result: postcssResult, - ruleName, - word: prop, - }); - } - if (!tokenExists(controlledPrefixes, prop)) { - stylelint.utils.report({ - message: messages.propNotExist(rootNode), - node: rootNode, - result: postcssResult, - ruleName, - word: prop, - }); - } + stylelint.utils.report({ + message: messages.propNotExist(rootNode), + node: rootNode, + result: postcssResult, + ruleName, + word: prop, + }); } }; const ruleFunction: stylelint.Rule = () => { return (postcssRoot, postcssResult) => { postcssRoot.walkDecls((node) => { - const prop = node.prop; - const value = node.value; - - checkDeclValue(controlledPrefixes, value, postcssResult, node); - checkDeclProp(controlledPrefixes, prop, postcssResult, node); + checkDeclValue(controlledPrefixes, node.value, postcssResult, node); + checkDeclProp(controlledPrefixes, node.prop, postcssResult, node); }); }; }; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.test.ts new file mode 100644 index 0000000000..30916ef524 --- /dev/null +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.test.ts @@ -0,0 +1,123 @@ +import { getTestRule } from "jest-preset-stylelint"; +import rule, { messages } from "."; + +getTestRule()({ + plugins: ["./dist/index.js"], + ruleName: rule.ruleName, + config: true, + + accept: [ + { + code: ".foo { --ac-accordion-header-bg-hover: 1px; --ac-header-bg: red; }", + description: "existing '--ac-' tokens overridden", + }, + { + code: ".foo { --my-custom-color: var(--a-orange-800); }", + description: "existing '--a-' token referenced", + }, + ], + + reject: [ + { + code: ".foo { --a-surface-action: 1px }", + description: "existing '--a-' token overridden", + message: messages.propOverrideGlobal({ prop: "--a-surface-action" }), + line: 1, + endLine: 1, + column: 8, + endColumn: 26, + }, + { + code: ".foo { --a-does-not-exist: 1px }", + description: "attempt to override nonexistent '--a-' token", + warnings: [ + { + message: messages.propOverrideGlobal({ prop: "--a-does-not-exist" }), + line: 1, + endLine: 1, + column: 8, + endColumn: 26, + }, + { + message: messages.propNotExist({ prop: "--a-does-not-exist" }), + line: 1, + endLine: 1, + column: 8, + endColumn: 26, + }, + ], + }, + { + code: ".foo \n { \n --ac-does-not-exist: 1px; \n }", + description: "attempt to override nonexistent '--ac-' token", + message: messages.propNotExist({ prop: "--ac-does-not-exist" }), + line: 3, + endLine: 3, + column: 2, + endColumn: 21, + }, + + { + code: ".foo { width: var(--ac-button-padding) }", + description: "attempt to use '--ac-' token", + message: messages.valueRefComponent( + { prop: "width" }, + "--ac-button-padding" + ), + line: 1, + endLine: 1, + column: 19, + endColumn: 38, + }, + + { + code: ".foo { color: var(--a-bar) }", + description: "attempt to use nonexistent token", + message: messages.valueNotExist({ prop: "color" }, "--a-bar"), + line: 1, + endLine: 1, + column: 19, + endColumn: 26, + }, + { + code: ".foo { width: var(--ac-bar, --a-baz) }", + description: "attempt to use two nonexistent tokens in one var()", + warnings: [ + { + message: messages.valueNotExist({ prop: "width" }, "--ac-bar"), + line: 1, + endLine: 1, + column: 19, + endColumn: 27, + }, + { + message: messages.valueNotExist({ prop: "width" }, "--a-baz"), + line: 1, + endLine: 1, + column: 29, + endColumn: 36, + }, + ], + }, + { + code: ".foo { padding: var(--a-bar) var(--a-baz); }", + description: "attempt to use two nonexistent tokens as separate vars", + warnings: [ + { + message: messages.valueNotExist({ prop: "padding" }, "--a-bar"), + line: 1, + endLine: 1, + column: 21, + endColumn: 28, + }, + { + message: messages.valueNotExist({ prop: "padding" }, "--a-baz"), + line: 1, + endLine: 1, + column: 34, + endColumn: 41, + }, + ], + }, + ], +}); diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts new file mode 100644 index 0000000000..721fedc35f --- /dev/null +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts @@ -0,0 +1,60 @@ +import stylelint from "stylelint"; +import { Node as PostCSSNode } from "postcss"; +import valueParser from "postcss-value-parser"; + +import { getPackageVersion, isCustomProperty, tokenExists } from "../../utils"; + +const ruleName = "aksel-design-token-exists"; +const ruleNamePackage = `@navikt/${ruleName}`; +const packageVersion = getPackageVersion(); + +const prefix_ac = "--ac-"; + +export const messages = stylelint.utils.ruleMessages(ruleName, { + valueRefComponent: (node: any, invalidValue: string) => + `property "${node.prop}" has offending value "${invalidValue}". ` + + `The value references a component level token ('${prefix_ac}'). ` + + `It is better to either reference a global level token ('--a-') or ` + + `create a custom token instead. ` + + `\n\nVersion: ${packageVersion}`, +}); + +const checkDeclValue = ( + controlledPrefixes: string[], + value: string, + postcssResult: stylelint.PostcssResult, + rootNode: PostCSSNode +) => { + valueParser(value).walk((node) => { + if ( + node.type === "word" && + isCustomProperty(node.value) && + node.value.startsWith(prefix_ac) && + tokenExists(controlledPrefixes, node.value) + ) { + stylelint.utils.report({ + message: messages.valueRefComponent(rootNode, node.value), + node: rootNode, + result: postcssResult, + ruleName, + word: node.value, + }); + } + }); +}; + +const ruleFunction: stylelint.Rule = () => { + return (postcssRoot, postcssResult) => { + postcssRoot.walkDecls((node) => { + checkDeclValue([prefix_ac], node.value, postcssResult, node); + }); + }; +}; + +ruleFunction.ruleName = ruleNamePackage; +ruleFunction.messages = {}; +ruleFunction.meta = { + url: `https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#${ruleName}`, +}; + +export default ruleFunction; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.test.ts new file mode 100644 index 0000000000..30916ef524 --- /dev/null +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.test.ts @@ -0,0 +1,123 @@ +import { getTestRule } from "jest-preset-stylelint"; +import rule, { messages } from "."; + +getTestRule()({ + plugins: ["./dist/index.js"], + ruleName: rule.ruleName, + config: true, + + accept: [ + { + code: ".foo { --ac-accordion-header-bg-hover: 1px; --ac-header-bg: red; }", + description: "existing '--ac-' tokens overridden", + }, + { + code: ".foo { --my-custom-color: var(--a-orange-800); }", + description: "existing '--a-' token referenced", + }, + ], + + reject: [ + { + code: ".foo { --a-surface-action: 1px }", + description: "existing '--a-' token overridden", + message: messages.propOverrideGlobal({ prop: "--a-surface-action" }), + line: 1, + endLine: 1, + column: 8, + endColumn: 26, + }, + { + code: ".foo { --a-does-not-exist: 1px }", + description: "attempt to override nonexistent '--a-' token", + warnings: [ + { + message: messages.propOverrideGlobal({ prop: "--a-does-not-exist" }), + line: 1, + endLine: 1, + column: 8, + endColumn: 26, + }, + { + message: messages.propNotExist({ prop: "--a-does-not-exist" }), + line: 1, + endLine: 1, + column: 8, + endColumn: 26, + }, + ], + }, + { + code: ".foo \n { \n --ac-does-not-exist: 1px; \n }", + description: "attempt to override nonexistent '--ac-' token", + message: messages.propNotExist({ prop: "--ac-does-not-exist" }), + line: 3, + endLine: 3, + column: 2, + endColumn: 21, + }, + + { + code: ".foo { width: var(--ac-button-padding) }", + description: "attempt to use '--ac-' token", + message: messages.valueRefComponent( + { prop: "width" }, + "--ac-button-padding" + ), + line: 1, + endLine: 1, + column: 19, + endColumn: 38, + }, + + { + code: ".foo { color: var(--a-bar) }", + description: "attempt to use nonexistent token", + message: messages.valueNotExist({ prop: "color" }, "--a-bar"), + line: 1, + endLine: 1, + column: 19, + endColumn: 26, + }, + { + code: ".foo { width: var(--ac-bar, --a-baz) }", + description: "attempt to use two nonexistent tokens in one var()", + warnings: [ + { + message: messages.valueNotExist({ prop: "width" }, "--ac-bar"), + line: 1, + endLine: 1, + column: 19, + endColumn: 27, + }, + { + message: messages.valueNotExist({ prop: "width" }, "--a-baz"), + line: 1, + endLine: 1, + column: 29, + endColumn: 36, + }, + ], + }, + { + code: ".foo { padding: var(--a-bar) var(--a-baz); }", + description: "attempt to use two nonexistent tokens as separate vars", + warnings: [ + { + message: messages.valueNotExist({ prop: "padding" }, "--a-bar"), + line: 1, + endLine: 1, + column: 21, + endColumn: 28, + }, + { + message: messages.valueNotExist({ prop: "padding" }, "--a-baz"), + line: 1, + endLine: 1, + column: 34, + endColumn: 41, + }, + ], + }, + ], +}); diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts new file mode 100644 index 0000000000..a533ab1626 --- /dev/null +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts @@ -0,0 +1,62 @@ +import stylelint from "stylelint"; +import { readFileSync } from "node:fs"; + +import { Node as PostCSSNode } from "postcss"; +import { isCustomProperty } from "../../utils"; + +const packageJson = JSON.parse( + readFileSync(`${__dirname}/../../../package.json`).toString() +); + +const ruleName = "aksel-design-token-no-global-override"; +const ruleNamePackage = `@navikt/${ruleName}`; + +const prefix_a = "--a-"; + +const packageVersion = packageJson.version; + +export const messages = stylelint.utils.ruleMessages(ruleName, { + propOverrideGlobal: (node: any) => + `property "${node.prop}" tries to override a global level token ('${prefix_a}'), this is highly discouraged. ` + + `It is better to override a component level token ('--ac-') or create a custom token instead. ` + + `Overriding global tokens should only be done when creating custom global themes.` + + `\n\nVersion: ${packageVersion}`, +}); + +const checkDeclProp = ( + controlledPrefixes: string[], + prop: string, + postcssResult: stylelint.PostcssResult, + rootNode: PostCSSNode +) => { + if ( + isCustomProperty(prop) && + controlledPrefixes.some((prefix) => prop.startsWith(prefix)) + ) { + if (prop.startsWith(prefix_a)) { + stylelint.utils.report({ + message: messages.propOverrideGlobal(rootNode), + node: rootNode, + result: postcssResult, + ruleName, + word: prop, + }); + } + } +}; + +const ruleFunction: stylelint.Rule = () => { + return (postcssRoot, postcssResult) => { + postcssRoot.walkDecls((node) => { + checkDeclProp([prefix_a], node.prop, postcssResult, node); + }); + }; +}; + +ruleFunction.ruleName = ruleNamePackage; +ruleFunction.messages = {}; +ruleFunction.meta = { + url: `https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#${ruleName}`, +}; + +export default ruleFunction; diff --git a/@navikt/aksel-stylelint/src/rules/index.ts b/@navikt/aksel-stylelint/src/rules/index.ts index 7630b4fd4c..b5304544ff 100644 --- a/@navikt/aksel-stylelint/src/rules/index.ts +++ b/@navikt/aksel-stylelint/src/rules/index.ts @@ -3,9 +3,13 @@ import designTokenExists from "./aksel-design-token-exists"; import internalTokens from "./aksel-no-internal-tokens"; import classOverride from "./aksel-no-class-override"; import deprecatedClasses from "./aksel-no-deprecated-classes"; +import noGlobalOverride from "./aksel-design-token-no-global-override"; +import noComponentReference from "./aksel-design-token-no-component-reference"; export const rules: Record = { "aksel-design-token-exists": designTokenExists, + "aksel-design-token-no-global-override": noGlobalOverride, + "aksel-design-token-no-component-reference": noComponentReference, "aksel-no-internal-tokens": internalTokens, "aksel-no-class-override": classOverride, "aksel-no-deprecated-classes": deprecatedClasses, diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/utils.ts b/@navikt/aksel-stylelint/src/utils.ts similarity index 60% rename from @navikt/aksel-stylelint/src/rules/aksel-design-token-exists/utils.ts rename to @navikt/aksel-stylelint/src/utils.ts index 3aa50be928..233130ca1e 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/utils.ts +++ b/@navikt/aksel-stylelint/src/utils.ts @@ -1,3 +1,6 @@ +import { readFileSync } from "node:fs"; +import valueParser from "postcss-value-parser"; + export const isCustomProperty = (property) => { return property.startsWith("--"); }; @@ -83,3 +86,53 @@ export const flattenObject = (obj) => { }, []); return flattened.flat(); }; + +const tokenCSSFile = "./index.css"; +const tokenJsonFile = "./tokens.json"; +const internalTokensJSONFile = "./internal-tokens.json"; + +let allowedTokenNames = []; + +export const addTokens = ( + tokenJSONFile: string, + allowedTokenNames: string[] +) => { + const jsonFileBuffer = readFileSync(`${__dirname}/../../${tokenJSONFile}`); + const fileString = jsonFileBuffer.toString(); + const flattened = flattenObject(JSON.parse(fileString)); + flattened.forEach((token) => allowedTokenNames.push(token)); +}; + +export const tokenExists = ( + controlledPrefixes: string[], + inputToken: string +) => { + // "singleton" if statement (attempt at caching file parsing) + if (!allowedTokenNames.length) { + const cssFileBuffer = readFileSync(`${__dirname}/../../${tokenCSSFile}`); + const cssFileString = cssFileBuffer.toString(); + + valueParser(cssFileString).walk((node) => { + if ( + node.type === "word" && + isCustomProperty(node.value) && + controlledPrefixes.some((prefix) => node.value.startsWith(prefix)) + ) { + allowedTokenNames.push(node.value); + } + }); + + addTokens(tokenJsonFile, allowedTokenNames); + addTokens(internalTokensJSONFile, allowedTokenNames); + } + + return allowedTokenNames.includes(inputToken); +}; + +const packageJson = JSON.parse( + readFileSync(`${__dirname}/../package.json`).toString() +); + +export const getPackageVersion = () => { + return packageJson.version; +}; From 857089066d19234e289add278e77ba1e76adfa78 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 30 May 2023 14:59:31 +0200 Subject: [PATCH 49/68] fix tests (deduplicate from refactor), fix plugin too --- @navikt/aksel-stylelint/package.json | 6 +- .../aksel-design-token-exists/index.test.ts | 29 ------ .../index.test.ts | 89 ------------------- .../index.test.ts | 79 ---------------- @navikt/aksel-stylelint/src/utils.ts | 4 +- yarn.lock | 56 ++++++------ 6 files changed, 33 insertions(+), 230 deletions(-) diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index 46928df946..b6cad49eb6 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -1,6 +1,6 @@ { "name": "@navikt/aksel-stylelint", - "version": "3.0.0-beta.3", + "version": "3.0.0-beta.8", "author": "Aksel | NAV", "homepage": "https://aksel.nav.no/lint", "repository": { @@ -35,12 +35,12 @@ }, "devDependencies": { "@types/jest": "^29.0.0", + "concurrently": "7.2.1", "copyfiles": "2.4.1", "jest": "^29.0.0", "jest-preset-stylelint": "^6.1.0", "stylelint": "^14.8.5", - "typescript": "^4.8.0", - "concurrently": "7.2.1" + "typescript": "^4.8.0" }, "jest": { "preset": "jest-preset-stylelint", diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts index 30916ef524..a106d6a548 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.test.ts @@ -18,26 +18,10 @@ getTestRule()({ ], reject: [ - { - code: ".foo { --a-surface-action: 1px }", - description: "existing '--a-' token overridden", - message: messages.propOverrideGlobal({ prop: "--a-surface-action" }), - line: 1, - endLine: 1, - column: 8, - endColumn: 26, - }, { code: ".foo { --a-does-not-exist: 1px }", description: "attempt to override nonexistent '--a-' token", warnings: [ - { - message: messages.propOverrideGlobal({ prop: "--a-does-not-exist" }), - line: 1, - endLine: 1, - column: 8, - endColumn: 26, - }, { message: messages.propNotExist({ prop: "--a-does-not-exist" }), line: 1, @@ -57,19 +41,6 @@ getTestRule()({ endColumn: 21, }, - { - code: ".foo { width: var(--ac-button-padding) }", - description: "attempt to use '--ac-' token", - message: messages.valueRefComponent( - { prop: "width" }, - "--ac-button-padding" - ), - line: 1, - endLine: 1, - column: 19, - endColumn: 38, - }, - { code: ".foo { color: var(--a-bar) }", description: "attempt to use nonexistent token", diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.test.ts index 30916ef524..2eb0a5e505 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.test.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.test.ts @@ -18,45 +18,6 @@ getTestRule()({ ], reject: [ - { - code: ".foo { --a-surface-action: 1px }", - description: "existing '--a-' token overridden", - message: messages.propOverrideGlobal({ prop: "--a-surface-action" }), - line: 1, - endLine: 1, - column: 8, - endColumn: 26, - }, - { - code: ".foo { --a-does-not-exist: 1px }", - description: "attempt to override nonexistent '--a-' token", - warnings: [ - { - message: messages.propOverrideGlobal({ prop: "--a-does-not-exist" }), - line: 1, - endLine: 1, - column: 8, - endColumn: 26, - }, - { - message: messages.propNotExist({ prop: "--a-does-not-exist" }), - line: 1, - endLine: 1, - column: 8, - endColumn: 26, - }, - ], - }, - { - code: ".foo \n { \n --ac-does-not-exist: 1px; \n }", - description: "attempt to override nonexistent '--ac-' token", - message: messages.propNotExist({ prop: "--ac-does-not-exist" }), - line: 3, - endLine: 3, - column: 2, - endColumn: 21, - }, - { code: ".foo { width: var(--ac-button-padding) }", description: "attempt to use '--ac-' token", @@ -69,55 +30,5 @@ getTestRule()({ column: 19, endColumn: 38, }, - - { - code: ".foo { color: var(--a-bar) }", - description: "attempt to use nonexistent token", - message: messages.valueNotExist({ prop: "color" }, "--a-bar"), - line: 1, - endLine: 1, - column: 19, - endColumn: 26, - }, - { - code: ".foo { width: var(--ac-bar, --a-baz) }", - description: "attempt to use two nonexistent tokens in one var()", - warnings: [ - { - message: messages.valueNotExist({ prop: "width" }, "--ac-bar"), - line: 1, - endLine: 1, - column: 19, - endColumn: 27, - }, - { - message: messages.valueNotExist({ prop: "width" }, "--a-baz"), - line: 1, - endLine: 1, - column: 29, - endColumn: 36, - }, - ], - }, - { - code: ".foo { padding: var(--a-bar) var(--a-baz); }", - description: "attempt to use two nonexistent tokens as separate vars", - warnings: [ - { - message: messages.valueNotExist({ prop: "padding" }, "--a-bar"), - line: 1, - endLine: 1, - column: 21, - endColumn: 28, - }, - { - message: messages.valueNotExist({ prop: "padding" }, "--a-baz"), - line: 1, - endLine: 1, - column: 34, - endColumn: 41, - }, - ], - }, ], }); diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.test.ts index 30916ef524..ca61ef3c08 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.test.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.test.ts @@ -38,85 +38,6 @@ getTestRule()({ column: 8, endColumn: 26, }, - { - message: messages.propNotExist({ prop: "--a-does-not-exist" }), - line: 1, - endLine: 1, - column: 8, - endColumn: 26, - }, - ], - }, - { - code: ".foo \n { \n --ac-does-not-exist: 1px; \n }", - description: "attempt to override nonexistent '--ac-' token", - message: messages.propNotExist({ prop: "--ac-does-not-exist" }), - line: 3, - endLine: 3, - column: 2, - endColumn: 21, - }, - - { - code: ".foo { width: var(--ac-button-padding) }", - description: "attempt to use '--ac-' token", - message: messages.valueRefComponent( - { prop: "width" }, - "--ac-button-padding" - ), - line: 1, - endLine: 1, - column: 19, - endColumn: 38, - }, - - { - code: ".foo { color: var(--a-bar) }", - description: "attempt to use nonexistent token", - message: messages.valueNotExist({ prop: "color" }, "--a-bar"), - line: 1, - endLine: 1, - column: 19, - endColumn: 26, - }, - { - code: ".foo { width: var(--ac-bar, --a-baz) }", - description: "attempt to use two nonexistent tokens in one var()", - warnings: [ - { - message: messages.valueNotExist({ prop: "width" }, "--ac-bar"), - line: 1, - endLine: 1, - column: 19, - endColumn: 27, - }, - { - message: messages.valueNotExist({ prop: "width" }, "--a-baz"), - line: 1, - endLine: 1, - column: 29, - endColumn: 36, - }, - ], - }, - { - code: ".foo { padding: var(--a-bar) var(--a-baz); }", - description: "attempt to use two nonexistent tokens as separate vars", - warnings: [ - { - message: messages.valueNotExist({ prop: "padding" }, "--a-bar"), - line: 1, - endLine: 1, - column: 21, - endColumn: 28, - }, - { - message: messages.valueNotExist({ prop: "padding" }, "--a-baz"), - line: 1, - endLine: 1, - column: 34, - endColumn: 41, - }, ], }, ], diff --git a/@navikt/aksel-stylelint/src/utils.ts b/@navikt/aksel-stylelint/src/utils.ts index 233130ca1e..b99585ac16 100644 --- a/@navikt/aksel-stylelint/src/utils.ts +++ b/@navikt/aksel-stylelint/src/utils.ts @@ -97,7 +97,7 @@ export const addTokens = ( tokenJSONFile: string, allowedTokenNames: string[] ) => { - const jsonFileBuffer = readFileSync(`${__dirname}/../../${tokenJSONFile}`); + const jsonFileBuffer = readFileSync(`${__dirname}/${tokenJSONFile}`); const fileString = jsonFileBuffer.toString(); const flattened = flattenObject(JSON.parse(fileString)); flattened.forEach((token) => allowedTokenNames.push(token)); @@ -109,7 +109,7 @@ export const tokenExists = ( ) => { // "singleton" if statement (attempt at caching file parsing) if (!allowedTokenNames.length) { - const cssFileBuffer = readFileSync(`${__dirname}/../../${tokenCSSFile}`); + const cssFileBuffer = readFileSync(`${__dirname}/${tokenCSSFile}`); const cssFileString = cssFileBuffer.toString(); valueParser(cssFileString).walk((node) => { diff --git a/yarn.lock b/yarn.lock index 8afaf170ba..6dd7eb06ae 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4087,7 +4087,7 @@ __metadata: languageName: node linkType: hard -"@navikt/aksel-icons@^3.3.0, @navikt/aksel-icons@workspace:@navikt/aksel-icons": +"@navikt/aksel-icons@^3.3.1, @navikt/aksel-icons@workspace:@navikt/aksel-icons": version: 0.0.0-use.local resolution: "@navikt/aksel-icons@workspace:@navikt/aksel-icons" dependencies: @@ -4128,7 +4128,7 @@ __metadata: version: 0.0.0-use.local resolution: "@navikt/aksel@workspace:@navikt/aksel" dependencies: - "@navikt/ds-css": 3.3.0 + "@navikt/ds-css": 3.3.1 "@types/inquirer": ^9.0.3 "@types/jest": ^29.0.0 axios: 1.3.6 @@ -4152,7 +4152,7 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-codemod@^3.3.0, @navikt/ds-codemod@workspace:@navikt/codemod": +"@navikt/ds-codemod@^3.3.1, @navikt/ds-codemod@workspace:@navikt/codemod": version: 0.0.0-use.local resolution: "@navikt/ds-codemod@workspace:@navikt/codemod" dependencies: @@ -4179,7 +4179,7 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-css-internal@^3.3.0, @navikt/ds-css-internal@workspace:@navikt/internal/css": +"@navikt/ds-css-internal@^3.3.1, @navikt/ds-css-internal@workspace:@navikt/internal/css": version: 0.0.0-use.local resolution: "@navikt/ds-css-internal@workspace:@navikt/internal/css" dependencies: @@ -4190,11 +4190,11 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-css@*, @navikt/ds-css@3.3.0, @navikt/ds-css@^3.3.0, @navikt/ds-css@workspace:@navikt/core/css": +"@navikt/ds-css@*, @navikt/ds-css@3.3.1, @navikt/ds-css@^3.3.1, @navikt/ds-css@workspace:@navikt/core/css": version: 0.0.0-use.local resolution: "@navikt/ds-css@workspace:@navikt/core/css" dependencies: - "@navikt/ds-tokens": ^3.3.0 + "@navikt/ds-tokens": ^3.3.1 cssnano: 6.0.0 fast-glob: 3.2.11 lodash: 4.17.21 @@ -4207,7 +4207,7 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-icons@^3.3.0, @navikt/ds-icons@workspace:@navikt/icons": +"@navikt/ds-icons@^3.3.1, @navikt/ds-icons@workspace:@navikt/icons": version: 0.0.0-use.local resolution: "@navikt/ds-icons@workspace:@navikt/icons" dependencies: @@ -4243,8 +4243,8 @@ __metadata: "@babel/preset-env": 7.19.4 "@babel/preset-react": 7.18.6 "@babel/preset-typescript": 7.18.6 - "@navikt/ds-icons": ^3.3.0 - "@navikt/ds-react": ^3.3.0 + "@navikt/ds-icons": ^3.3.1 + "@navikt/ds-react": ^3.3.1 "@rollup/plugin-babel": 6.0.2 "@rollup/plugin-commonjs": 23.0.2 "@rollup/plugin-node-resolve": ^15.0.1 @@ -4269,13 +4269,13 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-react-internal@^3.3.0, @navikt/ds-react-internal@workspace:@navikt/internal/react": +"@navikt/ds-react-internal@^3.3.1, @navikt/ds-react-internal@workspace:@navikt/internal/react": version: 0.0.0-use.local resolution: "@navikt/ds-react-internal@workspace:@navikt/internal/react" dependencies: "@floating-ui/react": 0.24.1 - "@navikt/aksel-icons": ^3.3.0 - "@navikt/ds-react": ^3.3.0 + "@navikt/aksel-icons": ^3.3.1 + "@navikt/ds-react": ^3.3.1 clsx: ^1.1.1 concurrently: 7.2.1 copy-to-clipboard: ^3.3.1 @@ -4291,12 +4291,12 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-react@*, @navikt/ds-react@3.3.0, @navikt/ds-react@^3.3.0, @navikt/ds-react@workspace:@navikt/core/react": +"@navikt/ds-react@*, @navikt/ds-react@3.3.1, @navikt/ds-react@^3.3.1, @navikt/ds-react@workspace:@navikt/core/react": version: 0.0.0-use.local resolution: "@navikt/ds-react@workspace:@navikt/core/react" dependencies: "@floating-ui/react": 0.24.1 - "@navikt/aksel-icons": ^3.3.0 + "@navikt/aksel-icons": ^3.3.1 "@radix-ui/react-tabs": 1.0.0 "@radix-ui/react-toggle-group": 1.0.0 "@testing-library/dom": 8.13.0 @@ -4332,11 +4332,11 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-tailwind@^3.3.0, @navikt/ds-tailwind@workspace:@navikt/core/tailwind": +"@navikt/ds-tailwind@^3.3.1, @navikt/ds-tailwind@workspace:@navikt/core/tailwind": version: 0.0.0-use.local resolution: "@navikt/ds-tailwind@workspace:@navikt/core/tailwind" dependencies: - "@navikt/ds-tokens": ^3.3.0 + "@navikt/ds-tokens": ^3.3.1 "@types/jest": ^29.0.0 color: 4.2.3 jest: ^29.0.0 @@ -4347,7 +4347,7 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-tokens@^3.3.0, @navikt/ds-tokens@workspace:@navikt/core/tokens": +"@navikt/ds-tokens@^3.3.1, @navikt/ds-tokens@workspace:@navikt/core/tokens": version: 0.0.0-use.local resolution: "@navikt/ds-tokens@workspace:@navikt/core/tokens" dependencies: @@ -8548,15 +8548,15 @@ __metadata: version: 0.0.0-use.local resolution: "aksel.nav.no@workspace:aksel.nav.no" dependencies: - "@navikt/aksel-icons": ^3.3.0 - "@navikt/ds-codemod": ^3.3.0 - "@navikt/ds-css": ^3.3.0 - "@navikt/ds-css-internal": ^3.3.0 - "@navikt/ds-icons": ^3.3.0 - "@navikt/ds-react": ^3.3.0 - "@navikt/ds-react-internal": ^3.3.0 - "@navikt/ds-tailwind": ^3.3.0 - "@navikt/ds-tokens": ^3.3.0 + "@navikt/aksel-icons": ^3.3.1 + "@navikt/ds-codemod": ^3.3.1 + "@navikt/ds-css": ^3.3.1 + "@navikt/ds-css-internal": ^3.3.1 + "@navikt/ds-icons": ^3.3.1 + "@navikt/ds-react": ^3.3.1 + "@navikt/ds-react-internal": ^3.3.1 + "@navikt/ds-tailwind": ^3.3.1 + "@navikt/ds-tokens": ^3.3.1 prettier-plugin-tailwindcss: ^0.2.3 languageName: unknown linkType: soft @@ -23765,8 +23765,8 @@ __metadata: version: 0.0.0-use.local resolution: "shadow-dom@workspace:examples/shadow-dom" dependencies: - "@navikt/ds-css": 3.3.0 - "@navikt/ds-react": 3.3.0 + "@navikt/ds-css": 3.3.1 + "@navikt/ds-react": 3.3.1 "@types/react": ^18.0.0 "@types/react-dom": ^18.0.0 "@vitejs/plugin-react": ^2.1.0 From 45b3c0583aa8b2b6dbd6d2da451d72186e3bf028 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 30 May 2023 15:13:17 +0200 Subject: [PATCH 50/68] fix meta name / ruleName -> ruleNamePackage refactor --- @navikt/aksel-stylelint/package.json | 2 +- .../src/rules/aksel-design-token-exists/index.ts | 13 +++++++------ .../index.ts | 4 ++-- .../aksel-design-token-no-global-override/index.ts | 4 ++-- 4 files changed, 12 insertions(+), 11 deletions(-) diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index b6cad49eb6..9c0c733547 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -1,6 +1,6 @@ { "name": "@navikt/aksel-stylelint", - "version": "3.0.0-beta.8", + "version": "3.0.0-beta.11", "author": "Aksel | NAV", "homepage": "https://aksel.nav.no/lint", "repository": { diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index 93851173f8..bd806af794 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -9,7 +9,8 @@ const packageJson = JSON.parse( readFileSync(`${__dirname}/../../../package.json`).toString() ); -const ruleName = "@navikt/aksel-design-token-exists"; +const ruleName = "aksel-design-token-exists"; +const ruleNamePackage = `@navikt/${ruleName}`; const prefix_a = "--a-"; const prefix_ac = "--ac-"; @@ -17,7 +18,7 @@ export const controlledPrefixes = [prefix_a, prefix_ac]; const packageVersion = packageJson.version; -export const messages = stylelint.utils.ruleMessages(ruleName, { +export const messages = stylelint.utils.ruleMessages(ruleNamePackage, { propNotExist: (node: any) => `property "${node.prop}" has a name that seems like it intends to override a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + @@ -48,7 +49,7 @@ const checkDeclValue = ( message: messages.valueNotExist(rootNode, node.value), node: rootNode, result: postcssResult, - ruleName, + ruleName: ruleNamePackage, word: node.value, }); } @@ -70,7 +71,7 @@ const checkDeclProp = ( message: messages.propNotExist(rootNode), node: rootNode, result: postcssResult, - ruleName, + ruleName: ruleNamePackage, word: prop, }); } @@ -85,10 +86,10 @@ const ruleFunction: stylelint.Rule = () => { }; }; -ruleFunction.ruleName = ruleName; +ruleFunction.ruleName = ruleNamePackage; ruleFunction.messages = {}; ruleFunction.meta = { - url: "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-design-token-exists", + url: `https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#${ruleName}`, }; export default ruleFunction; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts index 721fedc35f..c8ff2b4c71 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts @@ -10,7 +10,7 @@ const packageVersion = getPackageVersion(); const prefix_ac = "--ac-"; -export const messages = stylelint.utils.ruleMessages(ruleName, { +export const messages = stylelint.utils.ruleMessages(ruleNamePackage, { valueRefComponent: (node: any, invalidValue: string) => `property "${node.prop}" has offending value "${invalidValue}". ` + `The value references a component level token ('${prefix_ac}'). ` + @@ -36,7 +36,7 @@ const checkDeclValue = ( message: messages.valueRefComponent(rootNode, node.value), node: rootNode, result: postcssResult, - ruleName, + ruleName: ruleNamePackage, word: node.value, }); } diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts index a533ab1626..70b3feda2e 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts @@ -15,7 +15,7 @@ const prefix_a = "--a-"; const packageVersion = packageJson.version; -export const messages = stylelint.utils.ruleMessages(ruleName, { +export const messages = stylelint.utils.ruleMessages(ruleNamePackage, { propOverrideGlobal: (node: any) => `property "${node.prop}" tries to override a global level token ('${prefix_a}'), this is highly discouraged. ` + `It is better to override a component level token ('--ac-') or create a custom token instead. ` + @@ -38,7 +38,7 @@ const checkDeclProp = ( message: messages.propOverrideGlobal(rootNode), node: rootNode, result: postcssResult, - ruleName, + ruleName: ruleNamePackage, word: prop, }); } From 2332a441abd636f562cd4243cea4d97a56b9fa3d Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 30 May 2023 16:02:55 +0200 Subject: [PATCH 51/68] set internal dependencies (build time) --- @navikt/aksel-stylelint/package.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index 9c0c733547..effd5423e8 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -40,7 +40,9 @@ "jest": "^29.0.0", "jest-preset-stylelint": "^6.1.0", "stylelint": "^14.8.5", - "typescript": "^4.8.0" + "typescript": "^4.8.0", + "@navikt/ds-css": "file:../../core/css/package.json", + "@navikt/ds-tokens": "file:../../core/tokens/package.json" }, "jest": { "preset": "jest-preset-stylelint", From d2edb661a1b03fe6e3d150e8634e3e30ab1e5c61 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 30 May 2023 16:16:34 +0200 Subject: [PATCH 52/68] set internal dependencies (build time) --- @navikt/aksel-stylelint/package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index effd5423e8..29547534b4 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -41,8 +41,8 @@ "jest-preset-stylelint": "^6.1.0", "stylelint": "^14.8.5", "typescript": "^4.8.0", - "@navikt/ds-css": "file:../../core/css/package.json", - "@navikt/ds-tokens": "file:../../core/tokens/package.json" + "@navikt/ds-css": "3.3.1", + "@navikt/ds-tokens": "3.3.1" }, "jest": { "preset": "jest-preset-stylelint", From 30c61a39e1668b383ad6fcb832b0b554a854b8ce Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Tue, 30 May 2023 16:53:11 +0200 Subject: [PATCH 53/68] when building stylelint, always pull latest css & token files --- @navikt/aksel-stylelint/package.json | 6 +++--- yarn.lock | 4 +++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index 29547534b4..5a8851eb8a 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -34,15 +34,15 @@ "dev": "yarn watch:lint" }, "devDependencies": { + "@navikt/ds-css": "*", + "@navikt/ds-tokens": "*", "@types/jest": "^29.0.0", "concurrently": "7.2.1", "copyfiles": "2.4.1", "jest": "^29.0.0", "jest-preset-stylelint": "^6.1.0", "stylelint": "^14.8.5", - "typescript": "^4.8.0", - "@navikt/ds-css": "3.3.1", - "@navikt/ds-tokens": "3.3.1" + "typescript": "^4.8.0" }, "jest": { "preset": "jest-preset-stylelint", diff --git a/yarn.lock b/yarn.lock index 6dd7eb06ae..3c83a0fad4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4114,6 +4114,8 @@ __metadata: version: 0.0.0-use.local resolution: "@navikt/aksel-stylelint@workspace:@navikt/aksel-stylelint" dependencies: + "@navikt/ds-css": "*" + "@navikt/ds-tokens": "*" "@types/jest": ^29.0.0 concurrently: 7.2.1 copyfiles: 2.4.1 @@ -4347,7 +4349,7 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-tokens@^3.3.1, @navikt/ds-tokens@workspace:@navikt/core/tokens": +"@navikt/ds-tokens@*, @navikt/ds-tokens@^3.3.1, @navikt/ds-tokens@workspace:@navikt/core/tokens": version: 0.0.0-use.local resolution: "@navikt/ds-tokens@workspace:@navikt/core/tokens" dependencies: From 3660fe57317a3fdee92e5bbead850913e450e692 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 31 May 2023 09:13:02 +0200 Subject: [PATCH 54/68] new lock --- yarn.lock | 5469 +++++++++++++++++++++++++---------------------------- 1 file changed, 2527 insertions(+), 2942 deletions(-) diff --git a/yarn.lock b/yarn.lock index 3c83a0fad4..ba1a6b7e71 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6,18 +6,23 @@ __metadata: cacheKey: 8 "@adobe/css-tools@npm:^4.0.1": - version: 4.1.0 - resolution: "@adobe/css-tools@npm:4.1.0" - checksum: 50d0098461af146e112bdc700959fac473cce31ad25f5077b11c87bc66529c4aeb5a1e6f30f4a9646efe003c242f52f181f042e21f9cc137703ffde54a9d1fb5 + version: 4.2.0 + resolution: "@adobe/css-tools@npm:4.2.0" + checksum: dc5cc92ba3d562e7ffddb79d6d222c7e00b65f255fd2725b3d71490ff268844be322f917415d8c4ab39eca646343b632058db8bd5b1d646193fcc94d1d3e420b + languageName: node + linkType: hard + +"@alloc/quick-lru@npm:^5.2.0": + version: 5.2.0 + resolution: "@alloc/quick-lru@npm:5.2.0" + checksum: bdc35758b552bcf045733ac047fb7f9a07c4678b944c641adfbd41f798b4b91fffd0fdc0df2578d9b0afc7b4d636aa6e110ead5d6281a2adc1ab90efd7f057f8 languageName: node linkType: hard "@amplitude/analytics-connector@npm:^1.4.6": - version: 1.4.6 - resolution: "@amplitude/analytics-connector@npm:1.4.6" - dependencies: - "@amplitude/ua-parser-js": 0.7.31 - checksum: 0a2acfa54e02b405e1b66ec522aa5802f938f525ad0e81a864f9370b53a3a18f166962d891a5372c12938ec7c3fbbb3453304261845bd57e5617963c8285c2dc + version: 1.4.8 + resolution: "@amplitude/analytics-connector@npm:1.4.8" + checksum: 72b94cc2018af4d7bec48acf2129a933bee8268fee53d737408a058eef98ac84e7239265d53885f0d8fc73774657a6620db401a44674137486ebc550b320d6e4 languageName: node linkType: hard @@ -28,10 +33,10 @@ __metadata: languageName: node linkType: hard -"@amplitude/ua-parser-js@npm:0.7.31": - version: 0.7.31 - resolution: "@amplitude/ua-parser-js@npm:0.7.31" - checksum: c72e7c8656dd77a6c2ece9e3817929022aeadf731470e53fecddce03232d87977fd5b09d76c570a2a5bed97f5dd463fe6379aac7a6c4b2d2393f14486d385eec +"@amplitude/ua-parser-js@npm:0.7.33": + version: 0.7.33 + resolution: "@amplitude/ua-parser-js@npm:0.7.33" + checksum: b08ce4cd4e96fed9eebffadb4060d24751cea80caf4265e6b829b7cfdb6561431386015674b3ac330a8987b990e2ca70725d4298eb1438beccb85264848b0b34 languageName: node linkType: hard @@ -45,13 +50,13 @@ __metadata: languageName: node linkType: hard -"@ampproject/remapping@npm:^2.1.0, @ampproject/remapping@npm:^2.2.0": - version: 2.2.0 - resolution: "@ampproject/remapping@npm:2.2.0" +"@ampproject/remapping@npm:^2.2.0": + version: 2.2.1 + resolution: "@ampproject/remapping@npm:2.2.1" dependencies: - "@jridgewell/gen-mapping": ^0.1.0 + "@jridgewell/gen-mapping": ^0.3.0 "@jridgewell/trace-mapping": ^0.3.9 - checksum: d74d170d06468913921d72430259424b7e4c826b5a7d39ff839a29d547efb97dc577caa8ba3fb5cf023624e9af9d09651afc3d4112a45e2050328abc9b3a2292 + checksum: 03c04fd526acc64a1f4df22651186f3e5ef0a9d6d6530ce4482ec9841269cf7a11dbb8af79237c282d721c5312024ff17529cd72cc4768c11e999b58e2302079 languageName: node linkType: hard @@ -67,88 +72,81 @@ __metadata: linkType: hard "@axe-core/playwright@npm:^4.5.2": - version: 4.6.0 - resolution: "@axe-core/playwright@npm:4.6.0" + version: 4.7.1 + resolution: "@axe-core/playwright@npm:4.7.1" dependencies: - axe-core: ^4.6.1 + axe-core: ^4.7.0 peerDependencies: playwright: ">= 1.0.0" - checksum: 5a1de27285f812861026cd5db9fe154ae6c35e14b048da9adf6c2a938d40dd0d7a3aeef1a0cd9bbbf28873265bfb41bf31a92786852f02f5c187ba7e4dcd6dad + checksum: 2e7ea973b747ec91314d28053a56c07453af91114b63bc0d1e0f810e43673a837ab3cc0a4ea75d43676b23c9c1405615559ee80055037b4bcd82f29a55c2da0e languageName: node linkType: hard -"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/code-frame@npm:7.18.6" +"@babel/code-frame@npm:^7.0.0, @babel/code-frame@npm:^7.10.4, @babel/code-frame@npm:^7.12.13, @babel/code-frame@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/code-frame@npm:7.21.4" dependencies: "@babel/highlight": ^7.18.6 - checksum: 195e2be3172d7684bf95cff69ae3b7a15a9841ea9d27d3c843662d50cdd7d6470fd9c8e64be84d031117e4a4083486effba39f9aef6bbb2c89f7f21bcfba33ba + checksum: e5390e6ec1ac58dcef01d4f18eaf1fd2f1325528661ff6d4a5de8979588b9f5a8e852a54a91b923846f7a5c681b217f0a45c2524eb9560553160cd963b7d592c languageName: node linkType: hard -"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.19.4, @babel/compat-data@npm:^7.20.1, @babel/compat-data@npm:^7.20.5": - version: 7.20.14 - resolution: "@babel/compat-data@npm:7.20.14" - checksum: 6c9efe36232094e4ad0b70d165587f21ca718e5d011f7a52a77a18502a7524e90e2855aa5a2e086395bcfd21bd2c7c99128dcd8d9fdffe94316b72acf5c66f2c - languageName: node - linkType: hard - -"@babel/compat-data@npm:^7.21.4": - version: 7.21.4 - resolution: "@babel/compat-data@npm:7.21.4" - checksum: 5f8b98c66f2ffba9f3c3a82c0cf354c52a0ec5ad4797b370dc32bdcd6e136ac4febe5e93d76ce76e175632e2dbf6ce9f46319aa689fcfafa41b6e49834fa4b66 +"@babel/compat-data@npm:^7.17.7, @babel/compat-data@npm:^7.19.4, @babel/compat-data@npm:^7.20.5, @babel/compat-data@npm:^7.21.5, @babel/compat-data@npm:^7.22.0, @babel/compat-data@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/compat-data@npm:7.22.3" + checksum: eb001646f41459f42ccb0d39ee8bb3c3c495bc297234817044c0002689c625e3159a6678c53fd31bd98cf21f31472b73506f350fc6906e3bdfa49cb706e2af8d languageName: node linkType: hard "@babel/core@npm:^7.11.6, @babel/core@npm:^7.12.10, @babel/core@npm:^7.12.3, @babel/core@npm:^7.13.16, @babel/core@npm:^7.16.0, @babel/core@npm:^7.19.0, @babel/core@npm:^7.19.6, @babel/core@npm:^7.20.12, @babel/core@npm:^7.20.2, @babel/core@npm:^7.7.5": - version: 7.20.12 - resolution: "@babel/core@npm:7.20.12" + version: 7.22.1 + resolution: "@babel/core@npm:7.22.1" dependencies: - "@ampproject/remapping": ^2.1.0 - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.20.7 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helpers": ^7.20.7 - "@babel/parser": ^7.20.7 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.12 - "@babel/types": ^7.20.7 + "@ampproject/remapping": ^2.2.0 + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.22.0 + "@babel/helper-compilation-targets": ^7.22.1 + "@babel/helper-module-transforms": ^7.22.1 + "@babel/helpers": ^7.22.0 + "@babel/parser": ^7.22.0 + "@babel/template": ^7.21.9 + "@babel/traverse": ^7.22.1 + "@babel/types": ^7.22.0 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.2 semver: ^6.3.0 - checksum: 62e6c3e2149a70b5c9729ef5f0d3e2e97e9dcde89fc039c8d8e3463d5d7ba9b29ee84d10faf79b61532ac1645aa62f2bd42338320617e6e3a8a4d8e2a27076e7 + checksum: bbe45e791f223a7e692d2ea6597a73f48050abd24b119c85c48ac6504c30ce63343a2ea3f79b5847bf4b409ddd8a68b6cdc4f0272ded1d2ef6f6b1e9663432f0 languageName: node linkType: hard "@babel/core@npm:~7.21.0": - version: 7.21.3 - resolution: "@babel/core@npm:7.21.3" + version: 7.21.8 + resolution: "@babel/core@npm:7.21.8" dependencies: "@ampproject/remapping": ^2.2.0 - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.3 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-module-transforms": ^7.21.2 - "@babel/helpers": ^7.21.0 - "@babel/parser": ^7.21.3 + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.21.5 + "@babel/helper-compilation-targets": ^7.21.5 + "@babel/helper-module-transforms": ^7.21.5 + "@babel/helpers": ^7.21.5 + "@babel/parser": ^7.21.8 "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.3 - "@babel/types": ^7.21.3 + "@babel/traverse": ^7.21.5 + "@babel/types": ^7.21.5 convert-source-map: ^1.7.0 debug: ^4.1.0 gensync: ^1.0.0-beta.2 json5: ^2.2.2 semver: ^6.3.0 - checksum: bef25fbea96f461bf79bd1d0e4f0cdce679fd5ada464a89c1141ddba59ae1adfdbb23e04440c266ed525712d33d5ffd818cd8b0c25b1dee0e648d5559516153a + checksum: f28118447355af2a90bd340e2e60699f94c8020517eba9b71bf8ebff62fa9e00d63f076e033f9dfb97548053ad62ada45fafb0d96584b1a90e8aef5a3b8241b1 languageName: node linkType: hard "@babel/eslint-parser@npm:^7.16.3": - version: 7.19.1 - resolution: "@babel/eslint-parser@npm:7.19.1" + version: 7.21.8 + resolution: "@babel/eslint-parser@npm:7.21.8" dependencies: "@nicolo-ribaudo/eslint-scope-5-internals": 5.1.1-v1 eslint-visitor-keys: ^2.1.0 @@ -156,34 +154,35 @@ __metadata: peerDependencies: "@babel/core": ">=7.11.0" eslint: ^7.5.0 || ^8.0.0 - checksum: 6d5360f62f25ed097250657deb1bc4c4f51a5f5f2fe456e98cda13727753fdf7a11a109b4cfa03ef0dd6ced3beaeb703b76193c1141e29434d1f91f1bac0517d + checksum: 6d870f53808682b9d7e3c2a69a832b2095963103bb2d686daee3fcf1df49a0b3dfe58e95c773cab8cf59f2657ec432dfd5e47b9f1835c264eb84d2ec5ab2ad35 languageName: node linkType: hard -"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.20.7, @babel/generator@npm:^7.7.2": - version: 7.20.14 - resolution: "@babel/generator@npm:7.20.14" +"@babel/generator@npm:^7.12.11, @babel/generator@npm:^7.21.5, @babel/generator@npm:^7.22.0, @babel/generator@npm:^7.22.3, @babel/generator@npm:^7.7.2": + version: 7.22.3 + resolution: "@babel/generator@npm:7.22.3" dependencies: - "@babel/types": ^7.20.7 + "@babel/types": ^7.22.3 "@jridgewell/gen-mapping": ^0.3.2 + "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: 5f6aa2d86af26e76d276923a5c34191124a119b16ee9ccc34aef654a7dec84fbd7d2daed2e6458a6a06bf87f3661deb77c9fea59b8f67faff5c90793c96d76d6 + checksum: ccb6426ca5b5a38f0d47a3ac9628e223d2aaaa489cbf90ffab41468795c22afe86855f68a58667f0f2673949f1810d4d5a57b826c17984eab3e28fdb34a909e6 languageName: node linkType: hard -"@babel/generator@npm:^7.21.3, @babel/generator@npm:~7.21.1": - version: 7.21.3 - resolution: "@babel/generator@npm:7.21.3" +"@babel/generator@npm:~7.21.1": + version: 7.21.9 + resolution: "@babel/generator@npm:7.21.9" dependencies: - "@babel/types": ^7.21.3 + "@babel/types": ^7.21.5 "@jridgewell/gen-mapping": ^0.3.2 "@jridgewell/trace-mapping": ^0.3.17 jsesc: ^2.5.1 - checksum: be6bb5a32a0273260b91210d4137b7b5da148a2db8dd324654275cb0af865ae59de5e1536e93ac83423b2586415059e1c24cf94293026755cf995757238da749 + checksum: 5bd10334ebdf7f2a30eb4a1fd99d369a57703aa2234527784449187512c254a1174fa739c9d4c31bcbb6018732012a0664bec7c314f12b5ec2458737ddbb01c7 languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.16.0, @babel/helper-annotate-as-pure@npm:^7.18.6": +"@babel/helper-annotate-as-pure@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-annotate-as-pure@npm:7.18.6" dependencies: @@ -193,90 +192,58 @@ __metadata: linkType: hard "@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.18.6": - version: 7.18.9 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.18.9" + version: 7.22.3 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.22.3" dependencies: - "@babel/helper-explode-assignable-expression": ^7.18.6 - "@babel/types": ^7.18.9 - checksum: b4bc214cb56329daff6cc18a7f7a26aeafb55a1242e5362f3d47fe3808421f8c7cd91fff95d6b9b7ccb67e14e5a67d944e49dbe026942bfcbfda19b1c72a8e72 + "@babel/types": ^7.22.3 + checksum: 3622d942f86e292d37f06cceec39b47919967677eb5553e3d58ee06f533b2688b62287489950957c7c589f7ff304f40778b3d74093566c2376360dc15ba46a30 languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.19.3, @babel/helper-compilation-targets@npm:^7.20.0, @babel/helper-compilation-targets@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-compilation-targets@npm:7.20.7" +"@babel/helper-compilation-targets@npm:^7.17.7, @babel/helper-compilation-targets@npm:^7.18.9, @babel/helper-compilation-targets@npm:^7.19.3, @babel/helper-compilation-targets@npm:^7.20.7, @babel/helper-compilation-targets@npm:^7.21.5, @babel/helper-compilation-targets@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-compilation-targets@npm:7.22.1" dependencies: - "@babel/compat-data": ^7.20.5 - "@babel/helper-validator-option": ^7.18.6 - browserslist: ^4.21.3 - lru-cache: ^5.1.1 - semver: ^6.3.0 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 8c32c873ba86e2e1805b30e0807abd07188acbe00ebb97576f0b09061cc65007f1312b589eccb4349c5a8c7f8bb9f2ab199d41da7030bf103d9f347dcd3a3cf4 - languageName: node - linkType: hard - -"@babel/helper-compilation-targets@npm:^7.21.4": - version: 7.21.4 - resolution: "@babel/helper-compilation-targets@npm:7.21.4" - dependencies: - "@babel/compat-data": ^7.21.4 + "@babel/compat-data": ^7.22.0 "@babel/helper-validator-option": ^7.21.0 browserslist: ^4.21.3 lru-cache: ^5.1.1 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: bf9c7d3e7e6adff9222c05d898724cd4ee91d7eb9d52222c7ad2a22955620c2872cc2d9bdf0e047df8efdb79f4e3af2a06b53f509286145feccc4d10ddc318be + checksum: a686a01bd3288cf95ca26faa27958d34c04e2501c4b0858c3a6558776dec20317b5635f33d64c5a635b6fbdfe462a85c30d4bfa0ae7e7ffe3467e4d06442d7c8 languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.20.12, @babel/helper-create-class-features-plugin@npm:^7.20.5, @babel/helper-create-class-features-plugin@npm:^7.20.7": - version: 7.20.12 - resolution: "@babel/helper-create-class-features-plugin@npm:7.20.12" +"@babel/helper-create-class-features-plugin@npm:^7.18.6, @babel/helper-create-class-features-plugin@npm:^7.21.0, @babel/helper-create-class-features-plugin@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-create-class-features-plugin@npm:7.22.1" dependencies: "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.19.0 - "@babel/helper-member-expression-to-functions": ^7.20.7 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/helper-replace-supers": ^7.20.7 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/helper-split-export-declaration": ^7.18.6 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: 1e9ed4243b75278fa24deb40dc62bf537b79307987223a2d2d2ae5abf7ba6dc8435d6e3bb55d52ceb30d3e1eba88e7eb6a1885a8bb519e5cfc3e9dedb97d43e6 - languageName: node - linkType: hard - -"@babel/helper-create-class-features-plugin@npm:^7.21.0": - version: 7.21.4 - resolution: "@babel/helper-create-class-features-plugin@npm:7.21.4" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-environment-visitor": ^7.18.9 + "@babel/helper-environment-visitor": ^7.22.1 "@babel/helper-function-name": ^7.21.0 - "@babel/helper-member-expression-to-functions": ^7.21.0 + "@babel/helper-member-expression-to-functions": ^7.22.0 "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/helper-replace-supers": ^7.20.7 + "@babel/helper-replace-supers": ^7.22.1 "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 "@babel/helper-split-export-declaration": ^7.18.6 + semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 9123ca80a4894aafdb1f0bc08e44f6be7b12ed1fbbe99c501b484f9b1a17ff296b6c90c18c222047d53c276f07f17b4de857946fa9d0aa207023b03e4cc716f2 + checksum: a132d940c345effc55f4d018db4d113be56528cc5f9bdc12d14da311d27febdde9c606c62e81d17c7ab06b44fb7995d6116ed2aceee75ffa6c5e4e2da3c106ba languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.20.5": - version: 7.20.5 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.20.5" +"@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.1" dependencies: "@babel/helper-annotate-as-pure": ^7.18.6 - regexpu-core: ^5.2.1 + regexpu-core: ^5.3.1 + semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 7f29c3cb7447cca047b0d394f8ab98e4923d00e86a7afa56e5df9770c48ec107891505d2d1f06b720ecc94ed24bf58d90986cc35fe4a43b549eb7b7a5077b693 + checksum: 52d875762110d5dac41ce21fa30a2aaa47c119ca58add190a5123b7a843da096854c0b6358c327b8e0dc2f2219a47eace69332d8a26f165f529ec402a4e6f974 languageName: node linkType: hard @@ -296,33 +263,30 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.18.9": - version: 7.18.9 - resolution: "@babel/helper-environment-visitor@npm:7.18.9" - checksum: b25101f6162ddca2d12da73942c08ad203d7668e06663df685634a8fde54a98bc015f6f62938e8554457a592a024108d45b8f3e651fd6dcdb877275b73cc4420 - languageName: node - linkType: hard - -"@babel/helper-explode-assignable-expression@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" +"@babel/helper-define-polyfill-provider@npm:^0.4.0": + version: 0.4.0 + resolution: "@babel/helper-define-polyfill-provider@npm:0.4.0" dependencies: - "@babel/types": ^7.18.6 - checksum: 225cfcc3376a8799023d15dc95000609e9d4e7547b29528c7f7111a0e05493ffb12c15d70d379a0bb32d42752f340233c4115bded6d299bc0c3ab7a12be3d30f + "@babel/helper-compilation-targets": ^7.17.7 + "@babel/helper-plugin-utils": ^7.16.7 + debug: ^4.1.1 + lodash.debounce: ^4.0.8 + resolve: ^1.14.2 + semver: ^6.1.2 + peerDependencies: + "@babel/core": ^7.4.0-0 + checksum: 5dca4c5e78457c5ced366bea601efa4e8c69bf5d53b0fe540283897575c49b1b88191c8ef062110de9046e886703ed3270fcda3a87f0886cdbb549204d3ff63f languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0": - version: 7.19.0 - resolution: "@babel/helper-function-name@npm:7.19.0" - dependencies: - "@babel/template": ^7.18.10 - "@babel/types": ^7.19.0 - checksum: eac1f5db428ba546270c2b8d750c24eb528b8fcfe50c81de2e0bdebf0e20f24bec688d4331533b782e4a907fad435244621ca2193cfcf80a86731299840e0f6e +"@babel/helper-environment-visitor@npm:^7.18.9, @babel/helper-environment-visitor@npm:^7.21.5, @babel/helper-environment-visitor@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-environment-visitor@npm:7.22.1" + checksum: a6b4bb5505453bff95518d361ac1de393f0029aeb8b690c70540f4317934c53c43cc4afcda8c752ffa8c272e63ed6b929a56eca28e4978424177b24238b21bf9 languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.21.0": +"@babel/helper-function-name@npm:^7.18.9, @babel/helper-function-name@npm:^7.19.0, @babel/helper-function-name@npm:^7.21.0": version: 7.21.0 resolution: "@babel/helper-function-name@npm:7.21.0" dependencies: @@ -341,62 +305,37 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-member-expression-to-functions@npm:7.20.7" +"@babel/helper-member-expression-to-functions@npm:^7.22.0": + version: 7.22.3 + resolution: "@babel/helper-member-expression-to-functions@npm:7.22.3" dependencies: - "@babel/types": ^7.20.7 - checksum: cec17aab7e964830b0146e575bd141127032319f26ed864a65b35abd75ad618d264d3e11449b9b4e29cfd95bb1a7e774afddd4884fdcc29c36ac9cbd2b66359f - languageName: node - linkType: hard - -"@babel/helper-member-expression-to-functions@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helper-member-expression-to-functions@npm:7.21.0" - dependencies: - "@babel/types": ^7.21.0 - checksum: 49cbb865098195fe82ba22da3a8fe630cde30dcd8ebf8ad5f9a24a2b685150c6711419879cf9d99b94dad24cff9244d8c2a890d3d7ec75502cd01fe58cff5b5d - languageName: node - linkType: hard - -"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.16.0, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-module-imports@npm:7.18.6" - dependencies: - "@babel/types": ^7.18.6 - checksum: f393f8a3b3304b1b7a288a38c10989de754f01d29caf62ce7c4e5835daf0a27b81f3ac687d9d2780d39685aae7b55267324b512150e7b2be967b0c493b6a1def + "@babel/types": ^7.22.3 + checksum: c31b7c8096e722ab7717a1e2343b26afa469172aeb1a8643e9387a14bb50d77dd032fafedf282fcde37b90dcadd2e770c0dfea745a3b1de893d607f2ccba7c0f languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11": - version: 7.20.11 - resolution: "@babel/helper-module-transforms@npm:7.20.11" +"@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.21.4": + version: 7.21.4 + resolution: "@babel/helper-module-imports@npm:7.21.4" dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-simple-access": ^7.20.2 - "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/helper-validator-identifier": ^7.19.1 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.10 - "@babel/types": ^7.20.7 - checksum: 29319ebafa693d48756c6ba0d871677bb0037e0da084fbe221a17c38d57093fc8aa38543c07d76e788266a937976e37ab4901971ca7f237c5ab45f524b9ecca0 + "@babel/types": ^7.21.4 + checksum: bd330a2edaafeb281fbcd9357652f8d2666502567c0aad71db926e8499c773c9ea9c10dfaae30122452940326d90c8caff5c649ed8e1bf15b23f858758d3abc6 languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.21.2": - version: 7.21.2 - resolution: "@babel/helper-module-transforms@npm:7.21.2" +"@babel/helper-module-transforms@npm:^7.18.6, @babel/helper-module-transforms@npm:^7.20.11, @babel/helper-module-transforms@npm:^7.21.5, @babel/helper-module-transforms@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-module-transforms@npm:7.22.1" dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-simple-access": ^7.20.2 + "@babel/helper-environment-visitor": ^7.22.1 + "@babel/helper-module-imports": ^7.21.4 + "@babel/helper-simple-access": ^7.21.5 "@babel/helper-split-export-declaration": ^7.18.6 "@babel/helper-validator-identifier": ^7.19.1 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.2 - "@babel/types": ^7.21.2 - checksum: 8a1c129a4f90bdf97d8b6e7861732c9580f48f877aaaafbc376ce2482febebcb8daaa1de8bc91676d12886487603f8c62a44f9e90ee76d6cac7f9225b26a49e1 + "@babel/template": ^7.21.9 + "@babel/traverse": ^7.22.1 + "@babel/types": ^7.22.0 + checksum: dfa084211a93c9f0174ab07385fdbf7831bbf5c1ff3d4f984effc489f48670825ad8b817b9e9d2ec6492fde37ed6518c15944e9dd7a60b43a3d9874c9250f5f8 languageName: node linkType: hard @@ -409,10 +348,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": - version: 7.20.2 - resolution: "@babel/helper-plugin-utils@npm:7.20.2" - checksum: f6cae53b7fdb1bf3abd50fa61b10b4470985b400cc794d92635da1e7077bb19729f626adc0741b69403d9b6e411cddddb9c0157a709cc7c4eeb41e663be5d74b +"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.16.7, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.18.9, @babel/helper-plugin-utils@npm:^7.19.0, @babel/helper-plugin-utils@npm:^7.20.2, @babel/helper-plugin-utils@npm:^7.21.5, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3": + version: 7.21.5 + resolution: "@babel/helper-plugin-utils@npm:7.21.5" + checksum: 6f086e9a84a50ea7df0d5639c8f9f68505af510ea3258b3c8ac8b175efdfb7f664436cb48996f71791a1350ba68f47ad3424131e8e718c5e2ad45564484cbb36 languageName: node linkType: hard @@ -430,26 +369,26 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.18.6, @babel/helper-replace-supers@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/helper-replace-supers@npm:7.20.7" +"@babel/helper-replace-supers@npm:^7.18.6, @babel/helper-replace-supers@npm:^7.20.7, @babel/helper-replace-supers@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/helper-replace-supers@npm:7.22.1" dependencies: - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-member-expression-to-functions": ^7.20.7 + "@babel/helper-environment-visitor": ^7.22.1 + "@babel/helper-member-expression-to-functions": ^7.22.0 "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.7 - "@babel/types": ^7.20.7 - checksum: b8e0087c9b0c1446e3c6f3f72b73b7e03559c6b570e2cfbe62c738676d9ebd8c369a708cf1a564ef88113b4330750a50232ee1131d303d478b7a5e65e46fbc7c + "@babel/template": ^7.21.9 + "@babel/traverse": ^7.22.1 + "@babel/types": ^7.22.0 + checksum: 4179090f7010cf9456d17ec354df10f4f647d9b57f6e0b021519d504afca977f67ca39ffe04b47369ea671a744309d0d58f436cb4c18aef000f1df3c0e1162ba languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/helper-simple-access@npm:7.20.2" +"@babel/helper-simple-access@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-simple-access@npm:7.21.5" dependencies: - "@babel/types": ^7.20.2 - checksum: ad1e96ee2e5f654ffee2369a586e5e8d2722bf2d8b028a121b4c33ebae47253f64d420157b9f0a8927aea3a9e0f18c0103e74fdd531815cf3650a0a4adca11a1 + "@babel/types": ^7.21.5 + checksum: ad212beaa24be3864c8c95bee02f840222457ccf5419991e2d3e3e39b0f75b77e7e857e0bf4ed428b1cd97acefc87f3831bdb0b9696d5ad0557421f398334fc3 languageName: node linkType: hard @@ -471,10 +410,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.19.4": - version: 7.19.4 - resolution: "@babel/helper-string-parser@npm:7.19.4" - checksum: b2f8a3920b30dfac81ec282ac4ad9598ea170648f8254b10f475abe6d944808fb006aab325d3eb5a8ad3bea8dfa888cfa6ef471050dae5748497c110ec060943 +"@babel/helper-string-parser@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/helper-string-parser@npm:7.21.5" + checksum: 36c0ded452f3858e67634b81960d4bde1d1cd2a56b82f4ba2926e97864816021c885f111a7cf81de88a0ed025f49d84a393256700e9acbca2d99462d648705d8 languageName: node linkType: hard @@ -485,14 +424,7 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/helper-validator-option@npm:7.18.6" - checksum: f9cc6eb7cc5d759c5abf006402180f8d5e4251e9198197428a97e05d65eb2f8ae5a0ce73b1dfd2d35af41d0eb780627a64edf98a4e71f064eeeacef8de58f2cf - languageName: node - linkType: hard - -"@babel/helper-validator-option@npm:^7.21.0": +"@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.21.0": version: 7.21.0 resolution: "@babel/helper-validator-option@npm:7.21.0" checksum: 8ece4c78ffa5461fd8ab6b6e57cc51afad59df08192ed5d84b475af4a7193fc1cb794b59e3e7be64f3cdc4df7ac78bf3dbb20c129d7757ae078e6279ff8c2f07 @@ -511,25 +443,14 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.20.7": - version: 7.20.13 - resolution: "@babel/helpers@npm:7.20.13" +"@babel/helpers@npm:^7.21.5, @babel/helpers@npm:^7.22.0": + version: 7.22.3 + resolution: "@babel/helpers@npm:7.22.3" dependencies: - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.20.13 - "@babel/types": ^7.20.7 - checksum: d62076fa834f342798f8c3fd7aec0870cc1725d273d99e540cbaa8d6c3ed10258228dd14601c8e66bfeabbb9424c3b31090ecc467fe855f7bd72c4734df7fb09 - languageName: node - linkType: hard - -"@babel/helpers@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/helpers@npm:7.21.0" - dependencies: - "@babel/template": ^7.20.7 - "@babel/traverse": ^7.21.0 - "@babel/types": ^7.21.0 - checksum: 9370dad2bb665c551869a08ac87c8bdafad53dbcdce1f5c5d498f51811456a3c005d9857562715151a0f00b2e912ac8d89f56574f837b5689f5f5072221cdf54 + "@babel/template": ^7.21.9 + "@babel/traverse": ^7.22.1 + "@babel/types": ^7.22.3 + checksum: 385289ee8b87cf9af448bbb9fcf747f6e67600db5f7f64eb4ad97761ee387819bf2212b6a757008286c6bfacf4f3fc0b6de88686f2e517a70fb59996bdfbd1e9 languageName: node linkType: hard @@ -544,21 +465,21 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.13, @babel/parser@npm:^7.20.7": - version: 7.20.15 - resolution: "@babel/parser@npm:7.20.15" +"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.13.16, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.5, @babel/parser@npm:^7.21.8, @babel/parser@npm:^7.21.9, @babel/parser@npm:^7.22.0, @babel/parser@npm:^7.22.4": + version: 7.22.4 + resolution: "@babel/parser@npm:7.22.4" bin: parser: ./bin/babel-parser.js - checksum: 1d0f47ca67ff2652f1c0ff1570bed8deccbc4b53509e7cd73476af9cc7ed23480c99f1179bd6d0be01612368b92b39e206d330ad6054009d699934848a89298b + checksum: 0ca6d3a2d9aae2504ba1bc494704b64a83140884f7379f609de69bd39b60adb58a4f8ec692fe53fef8657dd82705d01b7e6efb65e18296326bdd66f71d52d9a9 languageName: node linkType: hard -"@babel/parser@npm:^7.21.3, @babel/parser@npm:~7.21.2": - version: 7.21.3 - resolution: "@babel/parser@npm:7.21.3" +"@babel/parser@npm:~7.21.2": + version: 7.21.9 + resolution: "@babel/parser@npm:7.21.9" bin: parser: ./bin/babel-parser.js - checksum: a71e6456a1260c2a943736b56cc0acdf5f2a53c6c79e545f56618967e51f9b710d1d3359264e7c979313a7153741b1d95ad8860834cc2ab4ce4f428b13cc07be + checksum: 985ccc311eb286a320331fd21ff54d94935df76e081abdb304cd4591ea2051a6c799c6b0d8e26d09a9dd041797d9a91ebadeb0c50699d0101bd39fc565082d5c languageName: node linkType: hard @@ -573,20 +494,20 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.20.7" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.18.9, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.20.7, @babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.22.3" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.21.5 "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/plugin-proposal-optional-chaining": ^7.20.7 + "@babel/plugin-transform-optional-chaining": ^7.22.3 peerDependencies: "@babel/core": ^7.13.0 - checksum: d610f532210bee5342f5b44a12395ccc6d904e675a297189bc1e401cc185beec09873da523466d7fec34ae1574f7a384235cba1ccc9fe7b89ba094167897c845 + checksum: d786e4d89c0674cab4fb65e804920782b2ff8319a3e6c561c81b0265451f4ac9f8ce1f9699303398636352b5177730e31c219a086b72980bf39f98faadeab3c1 languageName: node linkType: hard -"@babel/plugin-proposal-async-generator-functions@npm:^7.19.1, @babel/plugin-proposal-async-generator-functions@npm:^7.20.1, @babel/plugin-proposal-async-generator-functions@npm:^7.20.7": +"@babel/plugin-proposal-async-generator-functions@npm:^7.19.1, @babel/plugin-proposal-async-generator-functions@npm:^7.20.7": version: 7.20.7 resolution: "@babel/plugin-proposal-async-generator-functions@npm:7.20.7" dependencies: @@ -612,20 +533,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-class-static-block@npm:^7.18.6": - version: 7.20.7 - resolution: "@babel/plugin-proposal-class-static-block@npm:7.20.7" - dependencies: - "@babel/helper-create-class-features-plugin": ^7.20.7 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-class-static-block": ^7.14.5 - peerDependencies: - "@babel/core": ^7.12.0 - checksum: ce1f3e8fd96437d820aa36323b7b3a0cb65b5f2600612665129880d5a4eb7194ce6a298ed2a5a4d3a9ea49bd33089ab95503c4c5b3ba9cea251a07d1706453d9 - languageName: node - linkType: hard - -"@babel/plugin-proposal-class-static-block@npm:^7.21.0": +"@babel/plugin-proposal-class-static-block@npm:^7.18.6, @babel/plugin-proposal-class-static-block@npm:^7.21.0": version: 7.21.0 resolution: "@babel/plugin-proposal-class-static-block@npm:7.21.0" dependencies: @@ -639,17 +547,17 @@ __metadata: linkType: hard "@babel/plugin-proposal-decorators@npm:^7.16.4": - version: 7.20.13 - resolution: "@babel/plugin-proposal-decorators@npm:7.20.13" + version: 7.22.3 + resolution: "@babel/plugin-proposal-decorators@npm:7.22.3" dependencies: - "@babel/helper-create-class-features-plugin": ^7.20.12 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-replace-supers": ^7.20.7 + "@babel/helper-create-class-features-plugin": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/helper-replace-supers": ^7.22.1 "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/plugin-syntax-decorators": ^7.19.0 + "@babel/plugin-syntax-decorators": ^7.22.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 445723b410627d52ab2d195589eb9fe5fbd66a00ebfc9bedcf63b6cbfdfc42e163d77ac391f8738ab9f632779e6f2aa427fe468fbbd6661177ef0cdca735a7d5 + checksum: e68d9311924095d6e35a8ed52dfaa06ec8a24bbfa2ca2a241a9ef31a543b014eaf32e6434b737cf87368ffc3051d80091d8640554f99f34211caaa7e90985ea9 languageName: node linkType: hard @@ -725,7 +633,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-object-rest-spread@npm:^7.19.4, @babel/plugin-proposal-object-rest-spread@npm:^7.20.2, @babel/plugin-proposal-object-rest-spread@npm:^7.20.7": +"@babel/plugin-proposal-object-rest-spread@npm:^7.19.4, @babel/plugin-proposal-object-rest-spread@npm:^7.20.7": version: 7.20.7 resolution: "@babel/plugin-proposal-object-rest-spread@npm:7.20.7" dependencies: @@ -752,20 +660,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-optional-chaining@npm:^7.13.12, @babel/plugin-proposal-optional-chaining@npm:^7.16.0, @babel/plugin-proposal-optional-chaining@npm:^7.18.9, @babel/plugin-proposal-optional-chaining@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-proposal-optional-chaining@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 - "@babel/plugin-syntax-optional-chaining": ^7.8.3 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 274b8932335bd064ca24cf1a4da2b2c20c92726d4bfa8b0cb5023857479b8481feef33505c16650c7b9239334e5c6959babc924816324c4cf223dd91c7ca79bc - languageName: node - linkType: hard - -"@babel/plugin-proposal-optional-chaining@npm:^7.21.0": +"@babel/plugin-proposal-optional-chaining@npm:^7.13.12, @babel/plugin-proposal-optional-chaining@npm:^7.16.0, @babel/plugin-proposal-optional-chaining@npm:^7.18.9, @babel/plugin-proposal-optional-chaining@npm:^7.21.0": version: 7.21.0 resolution: "@babel/plugin-proposal-optional-chaining@npm:7.21.0" dependencies: @@ -790,21 +685,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-proposal-private-property-in-object@npm:^7.16.0, @babel/plugin-proposal-private-property-in-object@npm:^7.18.6": - version: 7.20.5 - resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.20.5" - dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-create-class-features-plugin": ^7.20.5 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-private-property-in-object": ^7.14.5 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 513b5e0e2c1b2846be5336cf680e932ae17924ef885aa1429e1a4f7924724bdd99b15f28d67187d0a006d5f18a0c4b61d96c3ecb4902fed3c8fe2f0abfc9753a - languageName: node - linkType: hard - -"@babel/plugin-proposal-private-property-in-object@npm:^7.21.0": +"@babel/plugin-proposal-private-property-in-object@npm:^7.16.0, @babel/plugin-proposal-private-property-in-object@npm:^7.18.6, @babel/plugin-proposal-private-property-in-object@npm:^7.21.0": version: 7.21.0 resolution: "@babel/plugin-proposal-private-property-in-object@npm:7.21.0" dependencies: @@ -874,14 +755,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-decorators@npm:^7.19.0": - version: 7.19.0 - resolution: "@babel/plugin-syntax-decorators@npm:7.19.0" +"@babel/plugin-syntax-decorators@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-syntax-decorators@npm:7.22.3" dependencies: - "@babel/helper-plugin-utils": ^7.19.0 + "@babel/helper-plugin-utils": ^7.21.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 105a13d581a8643ba145d4d0d31f34a492b352defa5b155e785702da6ce9c3ff0c1843ba9bee176e35f6e38afa19dc7bd12c120220af0495de4b128f1dd27f6e + checksum: 1886778ae5284202329e60f5be3322307dc77d0764a75e23f8fc222bc05409f4153035eb817cabd40265cc1c20eb201ca539c8cd2e883b312024dbb6480cdd95 languageName: node linkType: hard @@ -908,13 +789,13 @@ __metadata: linkType: hard "@babel/plugin-syntax-flow@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-syntax-flow@npm:7.18.6" + version: 7.21.4 + resolution: "@babel/plugin-syntax-flow@npm:7.21.4" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.20.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: abe82062b3eef14de7d2b3c0e4fecf80a3e796ca497e9df616d12dd250968abf71495ee85a955b43a6c827137203f0c409450cf792732ed0d6907c806580ea71 + checksum: fe4ba7b285965c62ff820d55d260cb5b6e5282dbedddd1fb0a0f2667291dcf0fa1b3d92fa9bf90946b02b307926a0a5679fbdd31d80ceaed5971293aa1fc5744 languageName: node linkType: hard @@ -929,7 +810,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-meta@npm:^7.8.3": +"@babel/plugin-syntax-import-attributes@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": ^7.21.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 48cf66ba1b6772134f4e638c42ff51a0e8037cea540733642146e031641641e8a03e4f43e6be613e2313d174f95d9b3a1f14f41db0a9fa78a8330282b5aad03c + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-meta@npm:^7.10.4, @babel/plugin-syntax-import-meta@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-import-meta@npm:7.10.4" dependencies: @@ -951,14 +843,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-jsx@npm:^7.17.12, @babel/plugin-syntax-jsx@npm:^7.18.6, @babel/plugin-syntax-jsx@npm:^7.7.2": - version: 7.18.6 - resolution: "@babel/plugin-syntax-jsx@npm:7.18.6" +"@babel/plugin-syntax-jsx@npm:^7.21.4, @babel/plugin-syntax-jsx@npm:^7.7.2": + version: 7.21.4 + resolution: "@babel/plugin-syntax-jsx@npm:7.21.4" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.20.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6d37ea972970195f1ffe1a54745ce2ae456e0ac6145fae9aa1480f297248b262ea6ebb93010eddb86ebfacb94f57c05a1fc5d232b9a67325b09060299d515c67 + checksum: bb7309402a1d4e155f32aa0cf216e1fa8324d6c4cfd248b03280028a015a10e46b6efd6565f515f8913918a3602b39255999c06046f7d4b8a5106be2165d724a languageName: node linkType: hard @@ -1050,25 +942,51 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-typescript@npm:^7.20.0, @babel/plugin-syntax-typescript@npm:^7.7.2": - version: 7.20.0 - resolution: "@babel/plugin-syntax-typescript@npm:7.20.0" +"@babel/plugin-syntax-typescript@npm:^7.21.4, @babel/plugin-syntax-typescript@npm:^7.7.2": + version: 7.21.4 + resolution: "@babel/plugin-syntax-typescript@npm:7.21.4" dependencies: - "@babel/helper-plugin-utils": ^7.19.0 + "@babel/helper-plugin-utils": ^7.20.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6189c0b5c32ba3c9a80a42338bd50719d783b20ef29b853d4f03929e971913d3cefd80184e924ae98ad6db09080be8fe6f1ffde9a6db8972523234f0274d36f7 + checksum: a59ce2477b7ae8c8945dc37dda292fef9ce46a6507b3d76b03ce7f3a6c9451a6567438b20a78ebcb3955d04095fd1ccd767075a863f79fcc30aa34dcfa441fe0 languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.18.6, @babel/plugin-transform-arrow-functions@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.20.7" +"@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-create-regexp-features-plugin": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: a651d700fe63ff0ddfd7186f4ebc24447ca734f114433139e3c027bc94a900d013cf1ef2e2db8430425ba542e39ae160c3b05f06b59fd4656273a3df97679e9c + languageName: node + linkType: hard + +"@babel/plugin-transform-arrow-functions@npm:^7.18.6, @babel/plugin-transform-arrow-functions@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.21.5" + dependencies: + "@babel/helper-plugin-utils": ^7.21.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c7c281cdf37c33a584102d9fd1793e85c96d4d320cdfb7c43f1ce581323d057f13b53203994fcc7ee1f8dc1ff013498f258893aa855a06c6f830fcc4c33d6e44 + languageName: node + linkType: hard + +"@babel/plugin-transform-async-generator-functions@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.22.3" + dependencies: + "@babel/helper-environment-visitor": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/helper-remap-async-to-generator": ^7.18.9 + "@babel/plugin-syntax-async-generators": ^7.8.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b43cabe3790c2de7710abe32df9a30005eddb2050dadd5d122c6872f679e5710e410f1b90c8f99a2aff7b614cccfecf30e7fd310236686f60d3ed43fd80b9847 + checksum: 0ea339f9e484df0b72eb962dca81f5e6291d674eb4de7af2cde2a7e2ff728fbc4fdad662f2e77bf5bdbd2b628e111b9a7c71c3165684147ca1bf1f891fc30a4b languageName: node linkType: hard @@ -1096,48 +1014,43 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.19.4, @babel/plugin-transform-block-scoping@npm:^7.20.2": - version: 7.20.15 - resolution: "@babel/plugin-transform-block-scoping@npm:7.20.15" +"@babel/plugin-transform-block-scoping@npm:^7.19.4, @babel/plugin-transform-block-scoping@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/plugin-transform-block-scoping@npm:7.21.0" dependencies: "@babel/helper-plugin-utils": ^7.20.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1dddf7be578306837074cb5059f8408af0b1c0bfcf922ed920d4aa65d08fb7c6e6129ca254e9879c4c6d2a6be4937111551f51922e8b0e071ed16eb6564a4dbb + checksum: 15aacaadbecf96b53a750db1be4990b0d89c7f5bc3e1794b63b49fb219638c1fd25d452d15566d7e5ddf5b5f4e1a0a0055c35c1c7aee323c7b114bf49f66f4b0 languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/plugin-transform-block-scoping@npm:7.21.0" +"@babel/plugin-transform-class-properties@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-class-properties@npm:7.22.3" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-create-class-features-plugin": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 15aacaadbecf96b53a750db1be4990b0d89c7f5bc3e1794b63b49fb219638c1fd25d452d15566d7e5ddf5b5f4e1a0a0055c35c1c7aee323c7b114bf49f66f4b0 + checksum: 4037397badb5d537d87c092da99a0278f735e66dc667a31495aa2dd5fcf1315bfe8981773d2ce502ff8048c68ab32a7c3019df714945520443e28380fa5e7f74 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.19.0, @babel/plugin-transform-classes@npm:^7.20.2": - version: 7.20.7 - resolution: "@babel/plugin-transform-classes@npm:7.20.7" +"@babel/plugin-transform-class-static-block@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-class-static-block@npm:7.22.3" dependencies: - "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-compilation-targets": ^7.20.7 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.19.0 - "@babel/helper-optimise-call-expression": ^7.18.6 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-replace-supers": ^7.20.7 - "@babel/helper-split-export-declaration": ^7.18.6 - globals: ^11.1.0 + "@babel/helper-create-class-features-plugin": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-class-static-block": ^7.14.5 peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 4cf55ad88e52c7c66a991add4c8e1c3324384bd52df7085962d396879561456a44352e5ab1725cc80f4e83737a2931e847c4a96c7aa4a549357f23631ff31799 + "@babel/core": ^7.12.0 + checksum: f407a3354ee0720803cd3366d7d081643d37201892243deed1aa76eb9330c11bf4e548441fa6a77637262a1b61890c1aacea176ad828650b8eb3f5b4d2da9c97 languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.21.0": +"@babel/plugin-transform-classes@npm:^7.19.0, @babel/plugin-transform-classes@npm:^7.21.0": version: 7.21.0 resolution: "@babel/plugin-transform-classes@npm:7.21.0" dependencies: @@ -1156,30 +1069,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.18.9, @babel/plugin-transform-computed-properties@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-transform-computed-properties@npm:7.20.7" +"@babel/plugin-transform-computed-properties@npm:^7.18.9, @babel/plugin-transform-computed-properties@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/plugin-transform-computed-properties@npm:7.21.5" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.21.5 "@babel/template": ^7.20.7 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: be70e54bda8b469146459f429e5f2bd415023b87b2d5af8b10e48f465ffb02847a3ed162ca60378c004b82db848e4d62e90010d41ded7e7176b6d8d1c2911139 + checksum: e819780ab30fc40d7802ffb75b397eff63ca4942a1873058f81c80f660189b78e158fa03fd3270775f0477c4c33cee3d8d40270e64404bbf24aa6cdccb197e7b languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.19.4, @babel/plugin-transform-destructuring@npm:^7.20.2": - version: 7.20.7 - resolution: "@babel/plugin-transform-destructuring@npm:7.20.7" - dependencies: - "@babel/helper-plugin-utils": ^7.20.2 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: bd8affdb142c77662037215e37128b2110a786c92a67e1f00b38223c438c1610bd84cbc0386e9cd3479245ea811c5ca6c9838f49be4729b592159a30ce79add2 - languageName: node - linkType: hard - -"@babel/plugin-transform-destructuring@npm:^7.21.3": +"@babel/plugin-transform-destructuring@npm:^7.19.4, @babel/plugin-transform-destructuring@npm:^7.21.3": version: 7.21.3 resolution: "@babel/plugin-transform-destructuring@npm:7.21.3" dependencies: @@ -1213,6 +1115,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-dynamic-import@npm:^7.22.1": + version: 7.22.1 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.22.1" + dependencies: + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-dynamic-import": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e322a08f01cedddcd7c70aa6a74342e900df39ab13dbaa2c8175af660b1786dd26b582546fc37e16bec47181931963e173ff53ffd7c41d5f54687da5f8d457bb + languageName: node + linkType: hard + "@babel/plugin-transform-exponentiation-operator@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.18.6" @@ -1225,37 +1139,38 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-flow-strip-types@npm:^7.16.0, @babel/plugin-transform-flow-strip-types@npm:^7.18.6": - version: 7.19.0 - resolution: "@babel/plugin-transform-flow-strip-types@npm:7.19.0" +"@babel/plugin-transform-export-namespace-from@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.22.3" dependencies: - "@babel/helper-plugin-utils": ^7.19.0 - "@babel/plugin-syntax-flow": ^7.18.6 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-export-namespace-from": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c35339bf80c2a2b9abb9e2ce0382e1d9cc3ef7db2af127f4ec3d184bad2aec3269f3fcac5fdcd565439732803acad72eb9e7d5a18e439221526fdc041c9e8e1e + checksum: 7bb031ea6e05e8090ac18dc03c62527be29f541e9ec0c93031d77d4540c736b43384a2f2a9aef1f72b7867989f1ce2aaefb325dbc7cc49c59f55aed87a96d488 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.18.8": - version: 7.18.8 - resolution: "@babel/plugin-transform-for-of@npm:7.18.8" +"@babel/plugin-transform-flow-strip-types@npm:^7.16.0, @babel/plugin-transform-flow-strip-types@npm:^7.21.0": + version: 7.21.0 + resolution: "@babel/plugin-transform-flow-strip-types@npm:7.21.0" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/plugin-syntax-flow": ^7.18.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ca64c623cf0c7a80ab6f07ebd3e6e4ade95e2ae806696f70b43eafe6394fa8ce21f2b1ffdd15df2067f7363d2ecfe26472a97c6c774403d2163fa05f50c98f17 + checksum: a45951c57265c366f95db9a5e70a62cfc3eafafa3f3d23295357577b5fc139d053d45416cdbdf4a0a387e41cefc434ab94dd6c3048d03b094ff6d041dd10a0b0 languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.21.0": - version: 7.21.0 - resolution: "@babel/plugin-transform-for-of@npm:7.21.0" +"@babel/plugin-transform-for-of@npm:^7.18.8, @babel/plugin-transform-for-of@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/plugin-transform-for-of@npm:7.21.5" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.21.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 2f3f86ca1fab2929fcda6a87e4303d5c635b5f96dc9a45fd4ca083308a3020c79ac33b9543eb4640ef2b79f3586a00ab2d002a7081adb9e9d7440dce30781034 + checksum: b6666b24e8ca1ffbf7452a0042149724e295965aad55070dc9ee992451d69d855fc9db832c1c5fb4d3dc532f4a18a2974d5f8524f5c2250dda888d05f6f3cadb languageName: node linkType: hard @@ -1272,6 +1187,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-json-strings@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-json-strings@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-json-strings": ^7.8.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 2b09a549bdd80020b390dbc91aaf0be624e42fff64026a38abad1ec6c7714551edad8a84edb555288778aa9e3bb20e9df535587466b30347b63532fb1f404731 + languageName: node + linkType: hard + "@babel/plugin-transform-literals@npm:^7.18.9": version: 7.18.9 resolution: "@babel/plugin-transform-literals@npm:7.18.9" @@ -1283,6 +1210,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-logical-assignment-operators@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b2452c6804aa440bd3fc662ee4f477c3acfa4a7f768ac66a6084a9e0774ac52cfff7cc6ea72495cc4e0728d2d7f98b65555927484dc96e9564adf1bcc5aa956e + languageName: node + linkType: hard + "@babel/plugin-transform-member-expression-literals@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-member-expression-literals@npm:7.18.6" @@ -1294,7 +1233,7 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.18.6, @babel/plugin-transform-modules-amd@npm:^7.19.6, @babel/plugin-transform-modules-amd@npm:^7.20.11": +"@babel/plugin-transform-modules-amd@npm:^7.18.6, @babel/plugin-transform-modules-amd@npm:^7.20.11": version: 7.20.11 resolution: "@babel/plugin-transform-modules-amd@npm:7.20.11" dependencies: @@ -1306,112 +1245,178 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.18.6, @babel/plugin-transform-modules-commonjs@npm:^7.19.6": - version: 7.20.11 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.20.11" +"@babel/plugin-transform-modules-commonjs@npm:^7.13.8, @babel/plugin-transform-modules-commonjs@npm:^7.18.6, @babel/plugin-transform-modules-commonjs@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.21.5" dependencies: - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-simple-access": ^7.20.2 + "@babel/helper-module-transforms": ^7.21.5 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/helper-simple-access": ^7.21.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d9ff7a21baaa60c08a0c86c5e468bb4b2bd85caf51ba78712d8f45e9afa2498d50d6cdf349696e08aa820cafed65f19b70e5938613db9ebb095f7aba1127f282 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-systemjs@npm:^7.19.0, @babel/plugin-transform-modules-systemjs@npm:^7.20.11, @babel/plugin-transform-modules-systemjs@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.22.3" + dependencies: + "@babel/helper-hoist-variables": ^7.18.6 + "@babel/helper-module-transforms": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/helper-validator-identifier": ^7.19.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a12a063dad61cccf50686d3f394f9f3f6c06261160c897a4b3423309aa7c40d37bd88126cf8535701f3490b99ac93b34c947f664465d63a74477ba66ab1d82e9 + languageName: node + linkType: hard + +"@babel/plugin-transform-modules-umd@npm:^7.18.6": + version: 7.18.6 + resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" + dependencies: + "@babel/helper-module-transforms": ^7.18.6 + "@babel/helper-plugin-utils": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c3b6796c6f4579f1ba5ab0cdcc73910c1e9c8e1e773c507c8bb4da33072b3ae5df73c6d68f9126dab6e99c24ea8571e1563f8710d7c421fac1cde1e434c20153 + languageName: node + linkType: hard + +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.20.5, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.22.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: baf3d8d785ab36df2d7396b8a255e1209eecf83ad5334121fbb9e966a95353fe2100dd3683436f4c74b3c848ec0b34817491c4d14b074e3e539e2040076173d8 + languageName: node + linkType: hard + +"@babel/plugin-transform-new-target@npm:^7.18.6, @babel/plugin-transform-new-target@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-new-target@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": ^7.21.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a28043575aae52127b7287711cf0b244a28279464d979858408ca6197169b6f7e6341e5b4554a894d409245fcd696c9bf38d5f1f1c64f84a82f479bf35659920 + languageName: node + linkType: hard + +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ddd0623e2ad4b5c0faaa0ae30d3407a3fa484d911c968ed33cfb1b339ac3691321c959db60b66dc136dbd67770fff586f7e48a7ce0d7d357f92d6ef6fb7ed1a7 + checksum: 404c3c7eb8b99f226ce40147d350ad3df55b38ffe39856356f7cfbbb1626ce060bc1daff0663c090d53160d39fdb26ea67ca291d47211ff7746a8a0c3bbc1639 languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.21.2": - version: 7.21.2 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.21.2" +"@babel/plugin-transform-numeric-separator@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.22.3" dependencies: - "@babel/helper-module-transforms": ^7.21.2 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-simple-access": ^7.20.2 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-numeric-separator": ^7.10.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 65aa06e3e3792f39b99eb5f807034693ff0ecf80438580f7ae504f4c4448ef04147b1889ea5e6f60f3ad4a12ebbb57c6f1f979a249dadbd8d11fe22f4441918b + checksum: 2cbcf21d040cb9ab6ded383586620f3a84e8619fecdc222d8b3d462c706b1e8ceae2dddf530d9177291c155c80dd67100142e76a11f1e230aeda6d90273a2890 languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.19.0, @babel/plugin-transform-modules-systemjs@npm:^7.19.6, @babel/plugin-transform-modules-systemjs@npm:^7.20.11": - version: 7.20.11 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.20.11" +"@babel/plugin-transform-object-rest-spread@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.3" dependencies: - "@babel/helper-hoist-variables": ^7.18.6 - "@babel/helper-module-transforms": ^7.20.11 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-validator-identifier": ^7.19.1 + "@babel/compat-data": ^7.22.3 + "@babel/helper-compilation-targets": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.22.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4546c47587f88156d66c7eb7808e903cf4bb3f6ba6ac9bc8e3af2e29e92eb9f0b3f44d52043bfd24eb25fa7827fd7b6c8bfeac0cac7584e019b87e1ecbd0e673 + checksum: 43f4cb8eb60e76bb506cab86a6c9a98b2f4f986296a20a01f93c6a7bf3835621a22e3e85eaca094c86b03580f93e583391f4c0da0af0c9408ff1a2b35f2e96ca languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.18.6": +"@babel/plugin-transform-object-super@npm:^7.18.6": version: 7.18.6 - resolution: "@babel/plugin-transform-modules-umd@npm:7.18.6" + resolution: "@babel/plugin-transform-object-super@npm:7.18.6" dependencies: - "@babel/helper-module-transforms": ^7.18.6 "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-replace-supers": ^7.18.6 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c3b6796c6f4579f1ba5ab0cdcc73910c1e9c8e1e773c507c8bb4da33072b3ae5df73c6d68f9126dab6e99c24ea8571e1563f8710d7c421fac1cde1e434c20153 + checksum: 0fcb04e15deea96ae047c21cb403607d49f06b23b4589055993365ebd7a7d7541334f06bf9642e90075e66efce6ebaf1eb0ef066fbbab802d21d714f1aac3aef languageName: node linkType: hard -"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.19.1, @babel/plugin-transform-named-capturing-groups-regex@npm:^7.20.5": - version: 7.20.5 - resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.20.5" +"@babel/plugin-transform-optional-catch-binding@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.22.3" dependencies: - "@babel/helper-create-regexp-features-plugin": ^7.20.5 - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-optional-catch-binding": ^7.8.3 peerDependencies: - "@babel/core": ^7.0.0 - checksum: 528c95fb1087e212f17e1c6456df041b28a83c772b9c93d2e407c9d03b72182b0d9d126770c1d6e0b23aab052599ceaf25ed6a2c0627f4249be34a83f6fae853 + "@babel/core": ^7.0.0-0 + checksum: e766bd2ac74fcd2226c8816500c788268a1fa5200498a288f10854253addb36871cd7b415e20736819e7fcb996a0e33312bc1ce6db9b540ec9dd7b946cb37dda languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-new-target@npm:7.18.6" +"@babel/plugin-transform-optional-chaining@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.22.3" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/helper-skip-transparent-expression-wrappers": ^7.20.0 + "@babel/plugin-syntax-optional-chaining": ^7.8.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: bd780e14f46af55d0ae8503b3cb81ca86dcc73ed782f177e74f498fff934754f9e9911df1f8f3bd123777eed7c1c1af4d66abab87c8daae5403e7719a6b845d1 + checksum: 9b50a28b59250ecabeae928b8237c596e6f81f5fcdacd03a99a3777bbfea2447773936f4b5091e63b2d46e707429d9bdf22fcd0fb4b05a702bf08f554bea3ae2 languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-object-super@npm:7.18.6" +"@babel/plugin-transform-parameters@npm:^7.18.8, @babel/plugin-transform-parameters@npm:^7.20.7, @babel/plugin-transform-parameters@npm:^7.21.3, @babel/plugin-transform-parameters@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-parameters@npm:7.22.3" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/helper-replace-supers": ^7.18.6 + "@babel/helper-plugin-utils": ^7.21.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0fcb04e15deea96ae047c21cb403607d49f06b23b4589055993365ebd7a7d7541334f06bf9642e90075e66efce6ebaf1eb0ef066fbbab802d21d714f1aac3aef + checksum: 68a30f630f5d99be7675fab23d009205302f33f1eac015418d5344983fe8f97f4eae0130f6e4f3c21b8dd8971d516346fba90b01ba3c2c15f23b47c6f4b7161a languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.18.8, @babel/plugin-transform-parameters@npm:^7.20.1, @babel/plugin-transform-parameters@npm:^7.20.7": - version: 7.20.7 - resolution: "@babel/plugin-transform-parameters@npm:7.20.7" +"@babel/plugin-transform-private-methods@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-private-methods@npm:7.22.3" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-create-class-features-plugin": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 6ffe0dd9afb2d2b9bc247381aa2e95dd9997ff5568a0a11900528919a4e073ac68f46409431455badb8809644d47cff180045bc2b9700e3f36e3b23554978947 + checksum: 048501cfdf86c3de5750dc0728cf73d65f1ec4ad932e16e55b238ac0b5b805882c1fbbdb63077d95ce8beadae840cee11b767cc6918264517245e7f04baf9f63 languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.21.3": - version: 7.21.3 - resolution: "@babel/plugin-transform-parameters@npm:7.21.3" +"@babel/plugin-transform-private-property-in-object@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.22.3" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-create-class-features-plugin": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-private-property-in-object": ^7.14.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: c92128d7b1fcf54e2cab186c196bbbf55a9a6de11a83328dc2602649c9dc6d16ef73712beecd776cd49bfdc624b5f56740f4a53568d3deb9505ec666bc869da3 + checksum: ea3c347687672119305ba2f2ef7ca66905c1713c6652bb01deacc057178bedcf07c46b6b75e1fe8688ffed8fcabe312a735eeb0fef21dd9ab61a61db23ef6ba5 languageName: node linkType: hard @@ -1427,13 +1432,13 @@ __metadata: linkType: hard "@babel/plugin-transform-react-constant-elements@npm:^7.12.1": - version: 7.20.2 - resolution: "@babel/plugin-transform-react-constant-elements@npm:7.20.2" + version: 7.22.3 + resolution: "@babel/plugin-transform-react-constant-elements@npm:7.22.3" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.21.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7b041b726e7c14b8c26a0dd240defac5f93a1f449371c6bdc5e6b46d581211300cc1a79da4140bdf20347f49e175dcb4f469812399206864024d1fdc81171193 + checksum: 33a1849de4c1993a666e835022ee7f55691778458f05f0f1b053b12a8e11ccad2659ac21160ee05072d9661507087b7152c0b02d607af2856920739e2514f8f7 languageName: node linkType: hard @@ -1460,13 +1465,13 @@ __metadata: linkType: hard "@babel/plugin-transform-react-jsx-self@npm:^7.18.6": - version: 7.18.6 - resolution: "@babel/plugin-transform-react-jsx-self@npm:7.18.6" + version: 7.21.0 + resolution: "@babel/plugin-transform-react-jsx-self@npm:7.21.0" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 + "@babel/helper-plugin-utils": ^7.20.2 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7d24e29c63869bb23495c163a92678c1c3341ecf74db420a20c6d3db74cbf5000fe908943f6106494e7225c0168945c150e528162274fd8fc7721966ad26930a + checksum: 696f74c04a265409ccd46e333ff762e6011d394e6972128b5d97db4c1647289141bc7ebd45ab2bab99b60932f9793e8f89ee9432d3bde19962de2100456f6147 languageName: node linkType: hard @@ -1481,18 +1486,18 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-react-jsx@npm:^7.18.6, @babel/plugin-transform-react-jsx@npm:^7.19.0": - version: 7.20.13 - resolution: "@babel/plugin-transform-react-jsx@npm:7.20.13" +"@babel/plugin-transform-react-jsx@npm:^7.18.6, @babel/plugin-transform-react-jsx@npm:^7.19.0, @babel/plugin-transform-react-jsx@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-react-jsx@npm:7.22.3" dependencies: "@babel/helper-annotate-as-pure": ^7.18.6 - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-jsx": ^7.18.6 - "@babel/types": ^7.20.7 + "@babel/helper-module-imports": ^7.21.4 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-jsx": ^7.21.4 + "@babel/types": ^7.22.3 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: b1daaa9b093ab59f71572dde7ad05ed3490433a47de103fc866f60347da55fa7fe84cf9b4c9fa22917517d52f70ab5e05ec631bba1c348733c0d8ebbd7de8c68 + checksum: 063243f5767de490d10ed671223f27baababa4b89b67d1d77207f8f91f8915c485b877773472c97398aef3ce898c3570d367994d5598a0686e18ff5bf3472f31 languageName: node linkType: hard @@ -1508,15 +1513,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.18.6, @babel/plugin-transform-regenerator@npm:^7.20.5": - version: 7.20.5 - resolution: "@babel/plugin-transform-regenerator@npm:7.20.5" +"@babel/plugin-transform-regenerator@npm:^7.18.6, @babel/plugin-transform-regenerator@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/plugin-transform-regenerator@npm:7.21.5" dependencies: - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-plugin-utils": ^7.21.5 regenerator-transform: ^0.15.1 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 13164861e71fb23d84c6270ef5330b03c54d5d661c2c7468f28e21c4f8598558ca0c8c3cb1d996219352946e849d270a61372bc93c8fbe9676e78e3ffd0dea07 + checksum: 5291f6871276f57a6004f16d50ae9ad57f22a6aa2a183b8c84de8126f1066c6c9f9bbeadb282b5207fa9e7b0f57e40a8421d46cb5c60caf7e2848e98224d5639 languageName: node linkType: hard @@ -1532,18 +1537,18 @@ __metadata: linkType: hard "@babel/plugin-transform-runtime@npm:^7.16.4": - version: 7.19.6 - resolution: "@babel/plugin-transform-runtime@npm:7.19.6" - dependencies: - "@babel/helper-module-imports": ^7.18.6 - "@babel/helper-plugin-utils": ^7.19.0 - babel-plugin-polyfill-corejs2: ^0.3.3 - babel-plugin-polyfill-corejs3: ^0.6.0 - babel-plugin-polyfill-regenerator: ^0.4.1 + version: 7.22.4 + resolution: "@babel/plugin-transform-runtime@npm:7.22.4" + dependencies: + "@babel/helper-module-imports": ^7.21.4 + "@babel/helper-plugin-utils": ^7.21.5 + babel-plugin-polyfill-corejs2: ^0.4.3 + babel-plugin-polyfill-corejs3: ^0.8.1 + babel-plugin-polyfill-regenerator: ^0.5.0 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ef93efbcbb00dcf4da6dcc55bda698a2a57fca3fb05a6a13e932ecfdb7c1c5d2f0b5b245c1c4faca0318853937caba0d82442f58b7653249f64275d08052fbd8 + checksum: e51400ffeccfc8875c6d136510aa6145e44d825ee7fb52da462401388b4303a6a274ca94fad4aa46b06870c6fdc6141dafa51f681423160d924a21212daa8792 languageName: node linkType: hard @@ -1603,27 +1608,40 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typescript@npm:^7.18.6": - version: 7.20.13 - resolution: "@babel/plugin-transform-typescript@npm:7.20.13" +"@babel/plugin-transform-typescript@npm:^7.18.6, @babel/plugin-transform-typescript@npm:^7.21.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-typescript@npm:7.22.3" dependencies: - "@babel/helper-create-class-features-plugin": ^7.20.12 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/plugin-syntax-typescript": ^7.20.0 + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-create-class-features-plugin": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/plugin-syntax-typescript": ^7.21.4 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 0b0c3a3e53268d4feb35eb17d57873f2488392e404a0b32735d51c49b08462dc738ebd860f0ff3a3dc5cd1b1fa70340bb6c072239c86afca635831b930593b3b + checksum: b32fdb7ba0902b0c271bec3e0ee678d745a5c33037f0ed62b00db212d94c24b4ca5d523578f2cf557697c959aeb6354d2615a141379fb3bd0a58e4b6a3bd4b3c languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.18.10": - version: 7.18.10 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.18.10" +"@babel/plugin-transform-unicode-escapes@npm:^7.18.10, @babel/plugin-transform-unicode-escapes@npm:^7.21.5": + version: 7.21.5 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.21.5" dependencies: - "@babel/helper-plugin-utils": ^7.18.9 + "@babel/helper-plugin-utils": ^7.21.5 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 6504d642d0449a275191b624bd94d3e434ae154e610bf2f0e3c109068b287d2474f68e1da64b47f21d193cd67b27ee4643877d530187670565cac46e29fd257d + languageName: node + linkType: hard + +"@babel/plugin-transform-unicode-property-regex@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.22.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: f5baca55cb3c11bc08ec589f5f522d85c1ab509b4d11492437e45027d64ae0b22f0907bd1381e8d7f2a436384bb1f9ad89d19277314242c5c2671a0f91d0f9cd + checksum: 666592f5f5496e7dc267fb32e5c0d1ca620a5a1b7dcfec4fec517a625d2413213f795d3905aea05f45639285578ef13351cedfc5b699aaa482841866089863f6 languageName: node linkType: hard @@ -1639,6 +1657,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-unicode-sets-regex@npm:^7.22.3": + version: 7.22.3 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.22.3" + dependencies: + "@babel/helper-create-regexp-features-plugin": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 992f6ae2764b1ee3bea9d948132daed22f042517cd6109a8fd2c52c03e7b930fac5a9e6e28130b0ed5a6f1cbf809c9735985352de0484b4c95fb0f6dd88614a2 + languageName: node + linkType: hard + "@babel/preset-env@npm:7.19.4": version: 7.19.4 resolution: "@babel/preset-env@npm:7.19.4" @@ -1725,36 +1755,24 @@ __metadata: linkType: hard "@babel/preset-env@npm:^7.0.0, @babel/preset-env@npm:^7.12.1, @babel/preset-env@npm:^7.16.4, @babel/preset-env@npm:^7.20.2": - version: 7.20.2 - resolution: "@babel/preset-env@npm:7.20.2" + version: 7.22.4 + resolution: "@babel/preset-env@npm:7.22.4" dependencies: - "@babel/compat-data": ^7.20.1 - "@babel/helper-compilation-targets": ^7.20.0 - "@babel/helper-plugin-utils": ^7.20.2 - "@babel/helper-validator-option": ^7.18.6 + "@babel/compat-data": ^7.22.3 + "@babel/helper-compilation-targets": ^7.22.1 + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/helper-validator-option": ^7.21.0 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.18.6 - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.18.9 - "@babel/plugin-proposal-async-generator-functions": ^7.20.1 - "@babel/plugin-proposal-class-properties": ^7.18.6 - "@babel/plugin-proposal-class-static-block": ^7.18.6 - "@babel/plugin-proposal-dynamic-import": ^7.18.6 - "@babel/plugin-proposal-export-namespace-from": ^7.18.9 - "@babel/plugin-proposal-json-strings": ^7.18.6 - "@babel/plugin-proposal-logical-assignment-operators": ^7.18.9 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.6 - "@babel/plugin-proposal-numeric-separator": ^7.18.6 - "@babel/plugin-proposal-object-rest-spread": ^7.20.2 - "@babel/plugin-proposal-optional-catch-binding": ^7.18.6 - "@babel/plugin-proposal-optional-chaining": ^7.18.9 - "@babel/plugin-proposal-private-methods": ^7.18.6 - "@babel/plugin-proposal-private-property-in-object": ^7.18.6 - "@babel/plugin-proposal-unicode-property-regex": ^7.18.6 + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.22.3 + "@babel/plugin-proposal-private-property-in-object": ^7.21.0 "@babel/plugin-syntax-async-generators": ^7.8.4 "@babel/plugin-syntax-class-properties": ^7.12.13 "@babel/plugin-syntax-class-static-block": ^7.14.5 "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 "@babel/plugin-syntax-import-assertions": ^7.20.0 + "@babel/plugin-syntax-import-attributes": ^7.22.3 + "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.3 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 @@ -1764,58 +1782,75 @@ __metadata: "@babel/plugin-syntax-optional-chaining": ^7.8.3 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-transform-arrow-functions": ^7.18.6 - "@babel/plugin-transform-async-to-generator": ^7.18.6 + "@babel/plugin-syntax-unicode-sets-regex": ^7.18.6 + "@babel/plugin-transform-arrow-functions": ^7.21.5 + "@babel/plugin-transform-async-generator-functions": ^7.22.3 + "@babel/plugin-transform-async-to-generator": ^7.20.7 "@babel/plugin-transform-block-scoped-functions": ^7.18.6 - "@babel/plugin-transform-block-scoping": ^7.20.2 - "@babel/plugin-transform-classes": ^7.20.2 - "@babel/plugin-transform-computed-properties": ^7.18.9 - "@babel/plugin-transform-destructuring": ^7.20.2 + "@babel/plugin-transform-block-scoping": ^7.21.0 + "@babel/plugin-transform-class-properties": ^7.22.3 + "@babel/plugin-transform-class-static-block": ^7.22.3 + "@babel/plugin-transform-classes": ^7.21.0 + "@babel/plugin-transform-computed-properties": ^7.21.5 + "@babel/plugin-transform-destructuring": ^7.21.3 "@babel/plugin-transform-dotall-regex": ^7.18.6 "@babel/plugin-transform-duplicate-keys": ^7.18.9 + "@babel/plugin-transform-dynamic-import": ^7.22.1 "@babel/plugin-transform-exponentiation-operator": ^7.18.6 - "@babel/plugin-transform-for-of": ^7.18.8 + "@babel/plugin-transform-export-namespace-from": ^7.22.3 + "@babel/plugin-transform-for-of": ^7.21.5 "@babel/plugin-transform-function-name": ^7.18.9 + "@babel/plugin-transform-json-strings": ^7.22.3 "@babel/plugin-transform-literals": ^7.18.9 + "@babel/plugin-transform-logical-assignment-operators": ^7.22.3 "@babel/plugin-transform-member-expression-literals": ^7.18.6 - "@babel/plugin-transform-modules-amd": ^7.19.6 - "@babel/plugin-transform-modules-commonjs": ^7.19.6 - "@babel/plugin-transform-modules-systemjs": ^7.19.6 + "@babel/plugin-transform-modules-amd": ^7.20.11 + "@babel/plugin-transform-modules-commonjs": ^7.21.5 + "@babel/plugin-transform-modules-systemjs": ^7.22.3 "@babel/plugin-transform-modules-umd": ^7.18.6 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.19.1 - "@babel/plugin-transform-new-target": ^7.18.6 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.22.3 + "@babel/plugin-transform-new-target": ^7.22.3 + "@babel/plugin-transform-nullish-coalescing-operator": ^7.22.3 + "@babel/plugin-transform-numeric-separator": ^7.22.3 + "@babel/plugin-transform-object-rest-spread": ^7.22.3 "@babel/plugin-transform-object-super": ^7.18.6 - "@babel/plugin-transform-parameters": ^7.20.1 + "@babel/plugin-transform-optional-catch-binding": ^7.22.3 + "@babel/plugin-transform-optional-chaining": ^7.22.3 + "@babel/plugin-transform-parameters": ^7.22.3 + "@babel/plugin-transform-private-methods": ^7.22.3 + "@babel/plugin-transform-private-property-in-object": ^7.22.3 "@babel/plugin-transform-property-literals": ^7.18.6 - "@babel/plugin-transform-regenerator": ^7.18.6 + "@babel/plugin-transform-regenerator": ^7.21.5 "@babel/plugin-transform-reserved-words": ^7.18.6 "@babel/plugin-transform-shorthand-properties": ^7.18.6 - "@babel/plugin-transform-spread": ^7.19.0 + "@babel/plugin-transform-spread": ^7.20.7 "@babel/plugin-transform-sticky-regex": ^7.18.6 "@babel/plugin-transform-template-literals": ^7.18.9 "@babel/plugin-transform-typeof-symbol": ^7.18.9 - "@babel/plugin-transform-unicode-escapes": ^7.18.10 + "@babel/plugin-transform-unicode-escapes": ^7.21.5 + "@babel/plugin-transform-unicode-property-regex": ^7.22.3 "@babel/plugin-transform-unicode-regex": ^7.18.6 + "@babel/plugin-transform-unicode-sets-regex": ^7.22.3 "@babel/preset-modules": ^0.1.5 - "@babel/types": ^7.20.2 - babel-plugin-polyfill-corejs2: ^0.3.3 - babel-plugin-polyfill-corejs3: ^0.6.0 - babel-plugin-polyfill-regenerator: ^0.4.1 - core-js-compat: ^3.25.1 + "@babel/types": ^7.22.4 + babel-plugin-polyfill-corejs2: ^0.4.3 + babel-plugin-polyfill-corejs3: ^0.8.1 + babel-plugin-polyfill-regenerator: ^0.5.0 + core-js-compat: ^3.30.2 semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: ece2d7e9c7789db6116e962b8e1a55eb55c110c44c217f0c8f6ffea4ca234954e66557f7bd019b7affadf7fbb3a53ccc807e93fc935aacd48146234b73b6947e + checksum: 68ae8b712e7548cb0aa593019bf22ed473bd83887c621c1f820ef0af99958d48b687c01b8aee16035cbc70edae1edc703b892e6efed14b95c8435343a2cb2bda languageName: node linkType: hard "@babel/preset-env@npm:~7.21.0": - version: 7.21.4 - resolution: "@babel/preset-env@npm:7.21.4" + version: 7.21.5 + resolution: "@babel/preset-env@npm:7.21.5" dependencies: - "@babel/compat-data": ^7.21.4 - "@babel/helper-compilation-targets": ^7.21.4 - "@babel/helper-plugin-utils": ^7.20.2 + "@babel/compat-data": ^7.21.5 + "@babel/helper-compilation-targets": ^7.21.5 + "@babel/helper-plugin-utils": ^7.21.5 "@babel/helper-validator-option": ^7.21.0 "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": ^7.18.6 "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": ^7.20.7 @@ -1840,6 +1875,7 @@ __metadata: "@babel/plugin-syntax-dynamic-import": ^7.8.3 "@babel/plugin-syntax-export-namespace-from": ^7.8.3 "@babel/plugin-syntax-import-assertions": ^7.20.0 + "@babel/plugin-syntax-import-meta": ^7.10.4 "@babel/plugin-syntax-json-strings": ^7.8.3 "@babel/plugin-syntax-logical-assignment-operators": ^7.10.4 "@babel/plugin-syntax-nullish-coalescing-operator": ^7.8.3 @@ -1849,22 +1885,22 @@ __metadata: "@babel/plugin-syntax-optional-chaining": ^7.8.3 "@babel/plugin-syntax-private-property-in-object": ^7.14.5 "@babel/plugin-syntax-top-level-await": ^7.14.5 - "@babel/plugin-transform-arrow-functions": ^7.20.7 + "@babel/plugin-transform-arrow-functions": ^7.21.5 "@babel/plugin-transform-async-to-generator": ^7.20.7 "@babel/plugin-transform-block-scoped-functions": ^7.18.6 "@babel/plugin-transform-block-scoping": ^7.21.0 "@babel/plugin-transform-classes": ^7.21.0 - "@babel/plugin-transform-computed-properties": ^7.20.7 + "@babel/plugin-transform-computed-properties": ^7.21.5 "@babel/plugin-transform-destructuring": ^7.21.3 "@babel/plugin-transform-dotall-regex": ^7.18.6 "@babel/plugin-transform-duplicate-keys": ^7.18.9 "@babel/plugin-transform-exponentiation-operator": ^7.18.6 - "@babel/plugin-transform-for-of": ^7.21.0 + "@babel/plugin-transform-for-of": ^7.21.5 "@babel/plugin-transform-function-name": ^7.18.9 "@babel/plugin-transform-literals": ^7.18.9 "@babel/plugin-transform-member-expression-literals": ^7.18.6 "@babel/plugin-transform-modules-amd": ^7.20.11 - "@babel/plugin-transform-modules-commonjs": ^7.21.2 + "@babel/plugin-transform-modules-commonjs": ^7.21.5 "@babel/plugin-transform-modules-systemjs": ^7.20.11 "@babel/plugin-transform-modules-umd": ^7.18.6 "@babel/plugin-transform-named-capturing-groups-regex": ^7.20.5 @@ -1872,17 +1908,17 @@ __metadata: "@babel/plugin-transform-object-super": ^7.18.6 "@babel/plugin-transform-parameters": ^7.21.3 "@babel/plugin-transform-property-literals": ^7.18.6 - "@babel/plugin-transform-regenerator": ^7.20.5 + "@babel/plugin-transform-regenerator": ^7.21.5 "@babel/plugin-transform-reserved-words": ^7.18.6 "@babel/plugin-transform-shorthand-properties": ^7.18.6 "@babel/plugin-transform-spread": ^7.20.7 "@babel/plugin-transform-sticky-regex": ^7.18.6 "@babel/plugin-transform-template-literals": ^7.18.9 "@babel/plugin-transform-typeof-symbol": ^7.18.9 - "@babel/plugin-transform-unicode-escapes": ^7.18.10 + "@babel/plugin-transform-unicode-escapes": ^7.21.5 "@babel/plugin-transform-unicode-regex": ^7.18.6 "@babel/preset-modules": ^0.1.5 - "@babel/types": ^7.21.4 + "@babel/types": ^7.21.5 babel-plugin-polyfill-corejs2: ^0.3.3 babel-plugin-polyfill-corejs3: ^0.6.0 babel-plugin-polyfill-regenerator: ^0.4.1 @@ -1890,20 +1926,20 @@ __metadata: semver: ^6.3.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 1e328674c4b39e985fa81e5a8eee9aaab353dea4ff1f28f454c5e27a6498c762e25d42e827f5bfc9d7acf6c9b8bc317b5283aa7c83d9fd03c1a89e5c08f334f9 + checksum: 86e167f3a351c89f8cd1409262481ece6ddc085b76147e801530ce29d60b1cfda8b264b1efd1ae27b8181b073a923c7161f21e2ebc0a41d652d717b10cf1c829 languageName: node linkType: hard "@babel/preset-flow@npm:^7.13.13": - version: 7.18.6 - resolution: "@babel/preset-flow@npm:7.18.6" + version: 7.21.4 + resolution: "@babel/preset-flow@npm:7.21.4" dependencies: - "@babel/helper-plugin-utils": ^7.18.6 - "@babel/helper-validator-option": ^7.18.6 - "@babel/plugin-transform-flow-strip-types": ^7.18.6 + "@babel/helper-plugin-utils": ^7.20.2 + "@babel/helper-validator-option": ^7.21.0 + "@babel/plugin-transform-flow-strip-types": ^7.21.0 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 9100d4eab3402e6601e361a5b235e46d90cfd389c12db19e2a071e1082ca2a00c04bd47eb185ce68d8979e7c8f3e548cd5d61b86dcd701135468fb929c3aecb6 + checksum: a3a1ac91d0bc0ed033ae46556babe3dc571ea8788c531db550d6904bd303cf50ebb84fa417c1f059c3b69d62e0792d8eceda83d820a12c2e6b8008e5518ce7b8 languageName: node linkType: hard @@ -1922,7 +1958,7 @@ __metadata: languageName: node linkType: hard -"@babel/preset-react@npm:7.18.6, @babel/preset-react@npm:^7.12.5, @babel/preset-react@npm:^7.16.0": +"@babel/preset-react@npm:7.18.6": version: 7.18.6 resolution: "@babel/preset-react@npm:7.18.6" dependencies: @@ -1938,7 +1974,23 @@ __metadata: languageName: node linkType: hard -"@babel/preset-typescript@npm:7.18.6, @babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.0": +"@babel/preset-react@npm:^7.12.5, @babel/preset-react@npm:^7.16.0": + version: 7.22.3 + resolution: "@babel/preset-react@npm:7.22.3" + dependencies: + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/helper-validator-option": ^7.21.0 + "@babel/plugin-transform-react-display-name": ^7.18.6 + "@babel/plugin-transform-react-jsx": ^7.22.3 + "@babel/plugin-transform-react-jsx-development": ^7.18.6 + "@babel/plugin-transform-react-pure-annotations": ^7.18.6 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 0b6210e8ea7485d71dfa7745e6b03e6252e3fd363cc84765c81709b51ad89bcf0a5887a82651dedfc007b7e47ae918496ee963f42c52d9ce3ddbcc5815b96bb7 + languageName: node + linkType: hard + +"@babel/preset-typescript@npm:7.18.6": version: 7.18.6 resolution: "@babel/preset-typescript@npm:7.18.6" dependencies: @@ -1951,9 +2003,24 @@ __metadata: languageName: node linkType: hard +"@babel/preset-typescript@npm:^7.13.0, @babel/preset-typescript@npm:^7.16.0": + version: 7.21.5 + resolution: "@babel/preset-typescript@npm:7.21.5" + dependencies: + "@babel/helper-plugin-utils": ^7.21.5 + "@babel/helper-validator-option": ^7.21.0 + "@babel/plugin-syntax-jsx": ^7.21.4 + "@babel/plugin-transform-modules-commonjs": ^7.21.5 + "@babel/plugin-transform-typescript": ^7.21.3 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: e7b35c435139eec1d6bd9f57e8f3eb79bfc2da2c57a34ad9e9ea848ba4ecd72791cf4102df456604ab07c7f4518525b0764754b6dd5898036608b351e0792448 + languageName: node + linkType: hard + "@babel/register@npm:^7.13.16": - version: 7.18.9 - resolution: "@babel/register@npm:7.18.9" + version: 7.21.0 + resolution: "@babel/register@npm:7.21.0" dependencies: clone-deep: ^4.0.1 find-cache-dir: ^2.0.0 @@ -1962,105 +2029,92 @@ __metadata: source-map-support: ^0.5.16 peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 4aeaff97e061a397f632659082ba86c539ef8194697b236d991c10d1c2ea8f73213d3b5b3b2c24625951a1ef726b7a7d2e70f70ffcb37f79ef0c1a745eebef21 + checksum: 9745cc7520b4c5e64cc54f4851c3b78af82e1f8cffc9041f5cc0b9aef62d86a9a8617327fc975b5e0e39cb5cc0aba7ae02429884390ee93e0de29152fa849b4f languageName: node linkType: hard -"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.13, @babel/runtime@npm:^7.20.6, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": - version: 7.20.13 - resolution: "@babel/runtime@npm:7.20.13" - dependencies: - regenerator-runtime: ^0.13.11 - checksum: 09b7a97a05c80540db6c9e4ddf8c5d2ebb06cae5caf3a87e33c33f27f8c4d49d9c67a2d72f1570e796045288fad569f98a26ceba0c4f5fad2af84b6ad855c4fb +"@babel/regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "@babel/regjsgen@npm:0.8.0" + checksum: 89c338fee774770e5a487382170711014d49a68eb281e74f2b5eac88f38300a4ad545516a7786a8dd5702e9cf009c94c2f582d200f077ac5decd74c56b973730 languageName: node linkType: hard -"@babel/runtime@npm:^7.7.6": - version: 7.21.0 - resolution: "@babel/runtime@npm:7.21.0" +"@babel/runtime@npm:^7.0.0, @babel/runtime@npm:^7.1.2, @babel/runtime@npm:^7.10.4, @babel/runtime@npm:^7.12.0, @babel/runtime@npm:^7.12.13, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.13.10, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.16.3, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.18.6, @babel/runtime@npm:^7.20.1, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.21.5, @babel/runtime@npm:^7.3.1, @babel/runtime@npm:^7.5.5, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.8.7, @babel/runtime@npm:^7.9.2": + version: 7.22.3 + resolution: "@babel/runtime@npm:7.22.3" dependencies: regenerator-runtime: ^0.13.11 - checksum: 7b33e25bfa9e0e1b9e8828bb61b2d32bdd46b41b07ba7cb43319ad08efc6fda8eb89445193e67d6541814627df0ca59122c0ea795e412b99c5183a0540d338ab + checksum: 8fc50785ca4cba749fed90bffca7e6fd52d4709755654e95b8d2a945fc034b56fb8c2e8a0183fea7c4abb86bf5fa77678c0ea35163b6920649833d180c34c234 languageName: node linkType: hard -"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.3.3": - version: 7.20.7 - resolution: "@babel/template@npm:7.20.7" +"@babel/template@npm:^7.18.10, @babel/template@npm:^7.20.7, @babel/template@npm:^7.21.9, @babel/template@npm:^7.3.3": + version: 7.21.9 + resolution: "@babel/template@npm:7.21.9" dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/parser": ^7.20.7 - "@babel/types": ^7.20.7 - checksum: 2eb1a0ab8d415078776bceb3473d07ab746e6bb4c2f6ca46ee70efb284d75c4a32bb0cd6f4f4946dec9711f9c0780e8e5d64b743208deac6f8e9858afadc349e + "@babel/code-frame": ^7.21.4 + "@babel/parser": ^7.21.9 + "@babel/types": ^7.21.5 + checksum: 6ec2c60d4d53b2a9230ab82c399ba6525df87e9a4e01e4b111e071cbad283b1362e7c99a1bc50027073f44f2de36a495a89c27112c4e7efe7ef9c8d9c84de2ec languageName: node linkType: hard -"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.20.10, @babel/traverse@npm:^7.20.12, @babel/traverse@npm:^7.20.13, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.20.7, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.2": - version: 7.20.13 - resolution: "@babel/traverse@npm:7.20.13" +"@babel/traverse@npm:^7.1.6, @babel/traverse@npm:^7.19.0, @babel/traverse@npm:^7.20.5, @babel/traverse@npm:^7.21.5, @babel/traverse@npm:^7.22.1, @babel/traverse@npm:^7.4.5, @babel/traverse@npm:^7.7.2": + version: 7.22.4 + resolution: "@babel/traverse@npm:7.22.4" dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.20.7 - "@babel/helper-environment-visitor": ^7.18.9 - "@babel/helper-function-name": ^7.19.0 + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.22.3 + "@babel/helper-environment-visitor": ^7.22.1 + "@babel/helper-function-name": ^7.21.0 "@babel/helper-hoist-variables": ^7.18.6 "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.20.13 - "@babel/types": ^7.20.7 + "@babel/parser": ^7.22.4 + "@babel/types": ^7.22.4 debug: ^4.1.0 globals: ^11.1.0 - checksum: 30ca6e0bd18233fda48fa09315efd14dfc61dcf5b8fa3712b343bfc61b32bc63b5e85ea1773cc9576c9b293b96f46b4589aaeb0a52e1f3eeac4edc076d049fc7 + checksum: 9560ae22092d5a7c52849145dd3e5aed2ffb73d61255e70e19e3fbd06bcbafbbdecea28df40a42ee3b60b01e85a42224ec841df93e867547e329091cc2f2bb6f languageName: node linkType: hard -"@babel/traverse@npm:^7.21.0, @babel/traverse@npm:^7.21.2, @babel/traverse@npm:^7.21.3, @babel/traverse@npm:~7.21.2": - version: 7.21.3 - resolution: "@babel/traverse@npm:7.21.3" +"@babel/traverse@npm:~7.21.2": + version: 7.21.5 + resolution: "@babel/traverse@npm:7.21.5" dependencies: - "@babel/code-frame": ^7.18.6 - "@babel/generator": ^7.21.3 - "@babel/helper-environment-visitor": ^7.18.9 + "@babel/code-frame": ^7.21.4 + "@babel/generator": ^7.21.5 + "@babel/helper-environment-visitor": ^7.21.5 "@babel/helper-function-name": ^7.21.0 "@babel/helper-hoist-variables": ^7.18.6 "@babel/helper-split-export-declaration": ^7.18.6 - "@babel/parser": ^7.21.3 - "@babel/types": ^7.21.3 + "@babel/parser": ^7.21.5 + "@babel/types": ^7.21.5 debug: ^4.1.0 globals: ^11.1.0 - checksum: 0af5bcd47a2fc501592b90ac1feae9d449afb9ab0772a4f6e68230f4cd3a475795d538c1de3f880fe3414b6c2820bac84d02c6549eea796f39d74a603717447b - languageName: node - linkType: hard - -"@babel/types@npm:^7.0.0, @babel/types@npm:^7.12.6, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.0, @babel/types@npm:^7.19.4, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.2, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": - version: 7.20.7 - resolution: "@babel/types@npm:7.20.7" - dependencies: - "@babel/helper-string-parser": ^7.19.4 - "@babel/helper-validator-identifier": ^7.19.1 - to-fast-properties: ^2.0.0 - checksum: b39af241f0b72bba67fd6d0d23914f6faec8c0eba8015c181cbd5ea92e59fc91a52a1ab490d3520c7dbd19ddb9ebb76c476308f6388764f16d8201e37fae6811 + checksum: b403733fa7d858f0c8e224f0434a6ade641bc469a4f92975363391e796629d5bf53e544761dfe85039aab92d5389ebe7721edb309d7a5bb7df2bf74f37bf9f47 languageName: node linkType: hard -"@babel/types@npm:^7.21.0, @babel/types@npm:^7.21.2, @babel/types@npm:^7.21.3, @babel/types@npm:~7.21.2": - version: 7.21.3 - resolution: "@babel/types@npm:7.21.3" +"@babel/types@npm:^7.0.0, @babel/types@npm:^7.12.6, @babel/types@npm:^7.18.6, @babel/types@npm:^7.18.9, @babel/types@npm:^7.19.4, @babel/types@npm:^7.2.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.20.5, @babel/types@npm:^7.20.7, @babel/types@npm:^7.21.0, @babel/types@npm:^7.21.4, @babel/types@npm:^7.21.5, @babel/types@npm:^7.22.0, @babel/types@npm:^7.22.3, @babel/types@npm:^7.22.4, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": + version: 7.22.4 + resolution: "@babel/types@npm:7.22.4" dependencies: - "@babel/helper-string-parser": ^7.19.4 + "@babel/helper-string-parser": ^7.21.5 "@babel/helper-validator-identifier": ^7.19.1 to-fast-properties: ^2.0.0 - checksum: b750274718ba9cefd0b81836c464009bb6ba339fccce51b9baff497a0a2d96c044c61dc90cf203cec0adc770454b53a9681c3f7716883c802b85ab84c365ba35 + checksum: ffe36bb4f4a99ad13c426a98c3b508d70736036cae4e471d9c862e3a579847ed4f480686af0fce2633f6f7c0f0d3bf02da73da36e7edd3fde0b2061951dcba9a languageName: node linkType: hard -"@babel/types@npm:^7.21.4": - version: 7.21.4 - resolution: "@babel/types@npm:7.21.4" +"@babel/types@npm:~7.21.2": + version: 7.21.5 + resolution: "@babel/types@npm:7.21.5" dependencies: - "@babel/helper-string-parser": ^7.19.4 + "@babel/helper-string-parser": ^7.21.5 "@babel/helper-validator-identifier": ^7.19.1 to-fast-properties: ^2.0.0 - checksum: 587bc55a91ce003b0f8aa10d70070f8006560d7dc0360dc0406d306a2cb2a10154e2f9080b9c37abec76907a90b330a536406cb75e6bdc905484f37b75c73219 + checksum: 43242a99c612d13285ee4af46cc0f1066bcb6ffd38307daef7a76e8c70f36cfc3255eb9e75c8e768b40e761176c313aec4d5c0b9d97a21e494d49d5fd123a9f7 languageName: node linkType: hard @@ -2350,8 +2404,8 @@ __metadata: linkType: hard "@codemirror/autocomplete@npm:^6.0.0, @codemirror/autocomplete@npm:^6.1.0": - version: 6.4.0 - resolution: "@codemirror/autocomplete@npm:6.4.0" + version: 6.7.1 + resolution: "@codemirror/autocomplete@npm:6.7.1" dependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 @@ -2362,37 +2416,38 @@ __metadata: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 "@lezer/common": ^1.0.0 - checksum: 3470fee01da60d3d71b8b4f8728629c0f0441e704b8b828592f98c000d75fdb2c9077727e82685626cf45b95cadbc0c1a03968261df2f0cfb4162418b5f4dd1f + checksum: 5f1331cceb6a7b0bd4dc9bad6025d16d1c415bfc2fba29b452f9f5501abd34b75a240e3a20fb9fed92a82a666e54562c32cfe220892713bfbd5a5a16fa004cd8 languageName: node linkType: hard "@codemirror/commands@npm:^6.0.0, @codemirror/commands@npm:^6.0.1, @codemirror/commands@npm:^6.1.0": - version: 6.2.0 - resolution: "@codemirror/commands@npm:6.2.0" + version: 6.2.4 + resolution: "@codemirror/commands@npm:6.2.4" dependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.2.0 "@codemirror/view": ^6.0.0 "@lezer/common": ^1.0.0 - checksum: 13475fcd348335b4c31e563cbe83b98fdaa99218da882e3fbe6bad66841c55a69030e4a1a5f475ba2607db194d3b43b91e38fd088f9f4196b1ed4eac5b523909 + checksum: 468895fa19ff0554181b698c81f850820de5c0289cab92c44392fb127286f09ca72b921d6ea4353b70b616a4fd0c3667d86b6f917202a3ad2e196eb7b581f7b6 languageName: node linkType: hard "@codemirror/lang-css@npm:^6.0.0": - version: 6.0.2 - resolution: "@codemirror/lang-css@npm:6.0.2" + version: 6.2.0 + resolution: "@codemirror/lang-css@npm:6.2.0" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 + "@lezer/common": ^1.0.2 "@lezer/css": ^1.0.0 - checksum: 3ab3f03af1c07be650efb2613ea7f9ad3a32e8e733eff1233b410fece87235fe0a5ca534ca2e136bf21dbf619801e3ae9666a83f4f26f91871ec69788519d3e6 + checksum: d824f169083613b63f04992c24d3fecd45c718cd3deb9da3f332dd3a889a762d05ea812e31ddf7ee4b661722f8c8b49676515cb98609067c53e25ac8b469a5e4 languageName: node linkType: hard "@codemirror/lang-html@npm:^6.0.0, @codemirror/lang-html@npm:^6.4.0": - version: 6.4.1 - resolution: "@codemirror/lang-html@npm:6.4.1" + version: 6.4.3 + resolution: "@codemirror/lang-html@npm:6.4.3" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/lang-css": ^6.0.0 @@ -2403,7 +2458,7 @@ __metadata: "@lezer/common": ^1.0.0 "@lezer/css": ^1.1.0 "@lezer/html": ^1.3.0 - checksum: 0fa0603a2f0145f1e89a92c676a9c6ee1d263218099d395b0716d0acd7c8da97cda713587c186f9ad47872099c809abdc2c229efc12f953964efd34064689263 + checksum: 6177d19147580964ecd6910ae951201929a96e63f4f0e624c3138e2805fa87ec6d6d952a3a888c5a52af78b6dd6d04d7d8c76c6a9cd65b1921dc467b5dbaea72 languageName: node linkType: hard @@ -2418,17 +2473,17 @@ __metadata: linkType: hard "@codemirror/lang-javascript@npm:^6.0.0, @codemirror/lang-javascript@npm:^6.0.2, @codemirror/lang-javascript@npm:^6.1.2": - version: 6.1.3 - resolution: "@codemirror/lang-javascript@npm:6.1.3" + version: 6.1.8 + resolution: "@codemirror/lang-javascript@npm:6.1.8" dependencies: "@codemirror/autocomplete": ^6.0.0 - "@codemirror/language": ^6.0.0 + "@codemirror/language": ^6.6.0 "@codemirror/lint": ^6.0.0 "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 "@lezer/common": ^1.0.0 "@lezer/javascript": ^1.0.0 - checksum: 8cc697a76e82c99efbf57b6897c44ef42143b8e1474e7ed4be6d24e09f5045a147c561206b4a4d8125503d346ec53124913b06f3c1f86e9b151c615ba6c5e70f + checksum: 58ccd1c96db52edc95015b3fc77021540c18b4b87ce2c9426402a53993a67d7946647aba7198223dc51a56ec55379603a6d986fe32332d85cb3d8768c92a562e languageName: node linkType: hard @@ -2443,8 +2498,8 @@ __metadata: linkType: hard "@codemirror/lang-markdown@npm:^6.0.5": - version: 6.0.5 - resolution: "@codemirror/lang-markdown@npm:6.0.5" + version: 6.1.1 + resolution: "@codemirror/lang-markdown@npm:6.1.1" dependencies: "@codemirror/lang-html": ^6.0.0 "@codemirror/language": ^6.3.0 @@ -2452,7 +2507,7 @@ __metadata: "@codemirror/view": ^6.0.0 "@lezer/common": ^1.0.0 "@lezer/markdown": ^1.0.0 - checksum: d69148ea3f954aaae98cb22ef2ae790a1d51ad9a22344b2cf3e8b7cdb0e953c342f736257a88fb71b4b74f0fd4338480091fdb047e266b4c6665e4a83f552d4c + checksum: db891dad10a8ea8db17d0a9222774389794cb0957b784e3f154bf27ab4a9be89a28ad4c2f6abf7d829115c3ce46694a2816b61723a5d5776c1d75d566ce016c8 languageName: node linkType: hard @@ -2470,21 +2525,21 @@ __metadata: linkType: hard "@codemirror/lang-sql@npm:^6.3.3": - version: 6.4.0 - resolution: "@codemirror/lang-sql@npm:6.4.0" + version: 6.5.0 + resolution: "@codemirror/lang-sql@npm:6.5.0" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: 5981b08ff103ae4c36209617543be2ba811ffd26aa68632252ae8526e6c1b7436ff240221348247d3fd5eebb892a4040e7b0b6accbbc5c7968634fd2a9ba0559 + checksum: 5bc73293d85f3892633703f277787336c00135011b14ca34a3590975a02c5ec1d6826d201d827e3dfc1d3427e28d23f36b1ef4fd69fc5d79c98290030c11dad5 languageName: node linkType: hard -"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.2.1, @codemirror/language@npm:^6.3.0, @codemirror/language@npm:^6.4.0": - version: 6.4.0 - resolution: "@codemirror/language@npm:6.4.0" +"@codemirror/language@npm:^6.0.0, @codemirror/language@npm:^6.2.1, @codemirror/language@npm:^6.3.0, @codemirror/language@npm:^6.4.0, @codemirror/language@npm:^6.6.0": + version: 6.7.0 + resolution: "@codemirror/language@npm:6.7.0" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 @@ -2492,68 +2547,68 @@ __metadata: "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 style-mod: ^4.0.0 - checksum: 607072e234db59a9a21eb41b8777b62d68a55ed28298edc4f6aaedfcf52349db1fe3ff3e7747ccfc77f03757bad45ba9a657d59a0e9c67be1231902586dec7a3 + checksum: 673905e9eb80f039a5e6c59a8aeca217e124a9a03734848043192aeff9e5b3a82f150559f7bd637ee197c4b2171eb5b04e757d717922128ea4fecca1ac6ecac4 languageName: node linkType: hard "@codemirror/legacy-modes@npm:^6.3.1": - version: 6.3.1 - resolution: "@codemirror/legacy-modes@npm:6.3.1" + version: 6.3.2 + resolution: "@codemirror/legacy-modes@npm:6.3.2" dependencies: "@codemirror/language": ^6.0.0 - checksum: 9065e521bf14e33856e9d3ea114d7b352adf341a8b8d4fb94b4c866189336a32b5ed42ffc20f5d2fa3c839f1bdf29a868bbf9b74c105ed83fa9fd6080e0429e9 + checksum: fa5f5477fb9e19267251e2ecd3de8c1a4c2512813555bb60111dce3951f2c3f6080a2985a573b7542534ba1d2c34115f7e39ee23fdf8f6f81db6f8ce447c1efc languageName: node linkType: hard "@codemirror/lint@npm:^6.0.0": - version: 6.1.0 - resolution: "@codemirror/lint@npm:6.1.0" + version: 6.2.1 + resolution: "@codemirror/lint@npm:6.2.1" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 1b5179c2c18e0eb96c68b47cd6832053a6aab80d6126cc250876fa848418c537417f0656cd6f442a0e5858830546fdef6bdcbb7b9773d92989795b52c7646011 + checksum: 0e383c6b8b0fc463f90f8ebdc71628ba39cffbe4f3667a8382b8eedb61aff9eafe947cb3db947701c8f306acdc9576a2da889d0161ccdd14c9245705cfbd4571 languageName: node linkType: hard "@codemirror/search@npm:^6.0.0, @codemirror/search@npm:^6.0.1": - version: 6.2.3 - resolution: "@codemirror/search@npm:6.2.3" + version: 6.4.0 + resolution: "@codemirror/search@npm:6.4.0" dependencies: "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 crelt: ^1.0.5 - checksum: 7ab0ffab7992f5c6260313e06ec8935f55807b95ca86f0327154ea1ae0ab984cd22c2fc1a812bd6cace1db131785353689fbfd080d2e12c660e3db0295dec355 + checksum: 441e04fc896ac984f224e3adb20bc8a6c63d929778335c70d2cb1e3843674c7998db93e2ab1cd05e8276cb3819766cd23951eec748fdf8e66e3611bd9a55aab5 languageName: node linkType: hard "@codemirror/state@npm:^6.0.0, @codemirror/state@npm:^6.1.0, @codemirror/state@npm:^6.1.1, @codemirror/state@npm:^6.1.4, @codemirror/state@npm:^6.2.0": - version: 6.2.0 - resolution: "@codemirror/state@npm:6.2.0" - checksum: fdc99c773dc09c700dd02bf918f06132aa8d3069c262cc4eb6ca5c810ce24ae2d7e90719ae7630a8158fd263018de6d40bd78f312e6bfba754e737b64e6c6b3d + version: 6.2.1 + resolution: "@codemirror/state@npm:6.2.1" + checksum: d12a321d0471b264b9d3259042bff913a8b939e8d28d408ff452004538a71ca9d5329df3f8a1d8a9183f5b42a7ef5b200737bcab1065714f5ae8e0a5ba9d59d3 languageName: node linkType: hard "@codemirror/theme-one-dark@npm:^6.0.0": - version: 6.1.0 - resolution: "@codemirror/theme-one-dark@npm:6.1.0" + version: 6.1.2 + resolution: "@codemirror/theme-one-dark@npm:6.1.2" dependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 "@codemirror/view": ^6.0.0 "@lezer/highlight": ^1.0.0 - checksum: 7454742006f0ea23ed36b1c8e232d55bd1cdf6cd3c9b5ad7f7212a4b5fe7907eecaeb1d908fed2022c2ca5d667176c93e9f071c939d54449cfe740dc028a16d8 + checksum: 29bc09f79534115f62658caf3d0db527fe347d058b69a8c7f580ae636827377aadd0606fd0d83dbab8d6f3b0a5df53d3253c619341b5fb93d2c8291a8efb9556 languageName: node linkType: hard "@codemirror/view@npm:^6.0.0, @codemirror/view@npm:^6.1.1, @codemirror/view@npm:^6.2.2, @codemirror/view@npm:^6.6.0": - version: 6.7.3 - resolution: "@codemirror/view@npm:6.7.3" + version: 6.12.0 + resolution: "@codemirror/view@npm:6.12.0" dependencies: "@codemirror/state": ^6.1.4 style-mod: ^4.0.0 w3c-keyname: ^2.2.4 - checksum: 37c0458cf45e52a1af9b9bef29108dd84bb91c6818ecad432d89627039d92f6b234b033cf14ecbc1c5b533694127478942fcc9641fdf52b9a1b20eccc018e27c + checksum: 512cbc9c05ac2cfa738cdf7aac711847b44e24ff5869f31839a9fcc11da6a512448fa9bc980535d55b897de80d49e744336a2724ca1fe3dae8bfcb31e339fe64 languageName: node linkType: hard @@ -2574,12 +2629,11 @@ __metadata: linkType: hard "@csstools/selector-specificity@npm:^2.0.2": - version: 2.1.1 - resolution: "@csstools/selector-specificity@npm:2.1.1" + version: 2.2.0 + resolution: "@csstools/selector-specificity@npm:2.2.0" peerDependencies: - postcss: ^8.4 postcss-selector-parser: ^6.0.10 - checksum: 392ab62732e93aa8cbea445bf3485c1acbbecc8ec087b200e06c9ddd2acf740fd1fe46abdacf813e7a50a95a60346377ee3eecb4e1fe3709582e2851430b376a + checksum: 97c89f23b3b527d7bd51ed299969ed2b9fbb219a367948b44aefec228b8eda6ae0ad74fe8a82f9aac8ff32cfd00bb6d0c98d1daeab2e8fc6d5c4af25e5be5673 languageName: node linkType: hard @@ -2602,8 +2656,8 @@ __metadata: linkType: hard "@dnd-kit/core@npm:^6.0.5": - version: 6.0.7 - resolution: "@dnd-kit/core@npm:6.0.7" + version: 6.0.8 + resolution: "@dnd-kit/core@npm:6.0.8" dependencies: "@dnd-kit/accessibility": ^3.0.0 "@dnd-kit/utilities": ^3.2.1 @@ -2611,7 +2665,7 @@ __metadata: peerDependencies: react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: f7abe49519da5d60f69bd36ab632ecdedc0372653763065c00b1899f3ed2c1954b5f6ab0bed14790afe11da636b405f8839dc2cad805ef61a3885141f62f9cb1 + checksum: abe48ff7395f84fd8c15e6c8b13da4df153dc1f1076096d783acd0c25539516c77e4854ea59be6621dde55739cb0df1d62924ad069df3267fe05ad90ef729b2f languageName: node linkType: hard @@ -2652,45 +2706,42 @@ __metadata: languageName: node linkType: hard -"@emotion/babel-plugin@npm:^11.10.5": - version: 11.10.5 - resolution: "@emotion/babel-plugin@npm:11.10.5" +"@emotion/babel-plugin@npm:^11.11.0": + version: 11.11.0 + resolution: "@emotion/babel-plugin@npm:11.11.0" dependencies: "@babel/helper-module-imports": ^7.16.7 - "@babel/plugin-syntax-jsx": ^7.17.12 "@babel/runtime": ^7.18.3 - "@emotion/hash": ^0.9.0 - "@emotion/memoize": ^0.8.0 - "@emotion/serialize": ^1.1.1 + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/serialize": ^1.1.2 babel-plugin-macros: ^3.1.0 convert-source-map: ^1.5.0 escape-string-regexp: ^4.0.0 find-root: ^1.1.0 source-map: ^0.5.7 - stylis: 4.1.3 - peerDependencies: - "@babel/core": ^7.0.0 - checksum: e3353499c76c4422d6e900c0dfab73607056d9da86161a3f27c3459c193c4908050c5d252c68fcde231e13f02a9d8e0dc07d260317ae0e5206841e331cc4caae + stylis: 4.2.0 + checksum: 6b363edccc10290f7a23242c06f88e451b5feb2ab94152b18bb8883033db5934fb0e421e2d67d09907c13837c21218a3ac28c51707778a54d6cd3706c0c2f3f9 languageName: node linkType: hard -"@emotion/cache@npm:^11.10.5, @emotion/cache@npm:^11.4.0": - version: 11.10.5 - resolution: "@emotion/cache@npm:11.10.5" +"@emotion/cache@npm:^11.11.0, @emotion/cache@npm:^11.4.0": + version: 11.11.0 + resolution: "@emotion/cache@npm:11.11.0" dependencies: - "@emotion/memoize": ^0.8.0 - "@emotion/sheet": ^1.2.1 - "@emotion/utils": ^1.2.0 - "@emotion/weak-memoize": ^0.3.0 - stylis: 4.1.3 - checksum: 1dd2d9af2d3ecbd3d4469ecdf91a335eef6034c851b57a474471b2d2280613eb35bbed98c0368cc4625f188619fbdaf04cf07e8107aaffce94b2178444c0fe7b + "@emotion/memoize": ^0.8.1 + "@emotion/sheet": ^1.2.2 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 + stylis: 4.2.0 + checksum: 8eb1dc22beaa20c21a2e04c284d5a2630a018a9d51fb190e52de348c8d27f4e8ca4bbab003d68b4f6cd9cc1c569ca747a997797e0f76d6c734a660dc29decf08 languageName: node linkType: hard -"@emotion/hash@npm:^0.9.0": - version: 0.9.0 - resolution: "@emotion/hash@npm:0.9.0" - checksum: b63428f7c8186607acdca5d003700cecf0ded519d0b5c5cc3b3154eafcad6ff433f8361bd2bac8882715b557e6f06945694aeb6ba8b25c6095d7a88570e2e0bb +"@emotion/hash@npm:^0.9.1": + version: 0.9.1 + resolution: "@emotion/hash@npm:0.9.1" + checksum: 716e17e48bf9047bf9383982c071de49f2615310fb4e986738931776f5a823bc1f29c84501abe0d3df91a3803c80122d24e28b57351bca9e01356ebb33d89876 languageName: node linkType: hard @@ -2704,11 +2755,11 @@ __metadata: linkType: hard "@emotion/is-prop-valid@npm:^1.1.0": - version: 1.2.0 - resolution: "@emotion/is-prop-valid@npm:1.2.0" + version: 1.2.1 + resolution: "@emotion/is-prop-valid@npm:1.2.1" dependencies: - "@emotion/memoize": ^0.8.0 - checksum: cc7a19850a4c5b24f1514665289442c8c641709e6f7711067ad550e05df331da0692a16148e85eda6f47e31b3261b64d74c5e25194d053223be16231f969d633 + "@emotion/memoize": ^0.8.1 + checksum: 8f42dc573a3fad79b021479becb639b8fe3b60bdd1081a775d32388bca418ee53074c7602a4c845c5f75fa6831eb1cbdc4d208cc0299f57014ed3a02abcad16a languageName: node linkType: hard @@ -2719,54 +2770,51 @@ __metadata: languageName: node linkType: hard -"@emotion/memoize@npm:^0.8.0": - version: 0.8.0 - resolution: "@emotion/memoize@npm:0.8.0" - checksum: c87bb110b829edd8e1c13b90a6bc37cebc39af29c7599a1e66a48e06f9bec43e8e53495ba86278cc52e7589549492c8dfdc81d19f4fdec0cee6ba13d2ad2c928 +"@emotion/memoize@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/memoize@npm:0.8.1" + checksum: a19cc01a29fcc97514948eaab4dc34d8272e934466ed87c07f157887406bc318000c69ae6f813a9001c6a225364df04249842a50e692ef7a9873335fbcc141b0 languageName: node linkType: hard "@emotion/react@npm:^11.8.1": - version: 11.10.5 - resolution: "@emotion/react@npm:11.10.5" + version: 11.11.0 + resolution: "@emotion/react@npm:11.11.0" dependencies: "@babel/runtime": ^7.18.3 - "@emotion/babel-plugin": ^11.10.5 - "@emotion/cache": ^11.10.5 - "@emotion/serialize": ^1.1.1 - "@emotion/use-insertion-effect-with-fallbacks": ^1.0.0 - "@emotion/utils": ^1.2.0 - "@emotion/weak-memoize": ^0.3.0 + "@emotion/babel-plugin": ^11.11.0 + "@emotion/cache": ^11.11.0 + "@emotion/serialize": ^1.1.2 + "@emotion/use-insertion-effect-with-fallbacks": ^1.0.1 + "@emotion/utils": ^1.2.1 + "@emotion/weak-memoize": ^0.3.1 hoist-non-react-statics: ^3.3.1 peerDependencies: - "@babel/core": ^7.0.0 react: ">=16.8.0" peerDependenciesMeta: - "@babel/core": - optional: true "@types/react": optional: true - checksum: 32b67b28e9b6d6c53b970072680697f04c2521441050bdeb19a1a7f0164af549b4dad39ff375eda1b6a3cf1cc86ba2c6fa55460ec040e6ebbca3e9ec58353cf7 + checksum: 2653e7c3de7b6fd5b0e18dea15621a9886104cc7c8cd5522ca69e52bd547ef6f13644193f8e0a906eea1e29a4f1d8167cdfa4667572fb7fafe0c62ab30fbaab6 languageName: node linkType: hard -"@emotion/serialize@npm:^1.1.1": - version: 1.1.1 - resolution: "@emotion/serialize@npm:1.1.1" +"@emotion/serialize@npm:^1.1.2": + version: 1.1.2 + resolution: "@emotion/serialize@npm:1.1.2" dependencies: - "@emotion/hash": ^0.9.0 - "@emotion/memoize": ^0.8.0 - "@emotion/unitless": ^0.8.0 - "@emotion/utils": ^1.2.0 + "@emotion/hash": ^0.9.1 + "@emotion/memoize": ^0.8.1 + "@emotion/unitless": ^0.8.1 + "@emotion/utils": ^1.2.1 csstype: ^3.0.2 - checksum: 24cfd5b16e6f2335c032ca33804a876e0442aaf8f9c94d269d23735ebd194fb1ed142542dd92191a3e6ef8bad5bd560dfc5aaf363a1b70954726dbd4dd93085c + checksum: 413c352e657f1b5e27ea6437b3ef7dcc3860669b7ae17fd5c18bfbd44e033af1acc56b64d252284a813ca4f3b3e1b0841c42d3fb08e02d2df56fd3cd63d72986 languageName: node linkType: hard -"@emotion/sheet@npm:^1.2.1": - version: 1.2.1 - resolution: "@emotion/sheet@npm:1.2.1" - checksum: ce78763588ea522438156344d9f592203e2da582d8d67b32e1b0b98eaba26994c6c270f8c7ad46442fc9c0a9f048685d819cd73ca87e544520fd06f0e24a1562 +"@emotion/sheet@npm:^1.2.2": + version: 1.2.2 + resolution: "@emotion/sheet@npm:1.2.2" + checksum: d973273c9c15f1c291ca2269728bf044bd3e92a67bca87943fa9ec6c3cd2b034f9a6bfe95ef1b5d983351d128c75b547b43ff196a00a3875f7e1d269793cecfe languageName: node linkType: hard @@ -2784,33 +2832,33 @@ __metadata: languageName: node linkType: hard -"@emotion/unitless@npm:^0.8.0": - version: 0.8.0 - resolution: "@emotion/unitless@npm:0.8.0" - checksum: 176141117ed23c0eb6e53a054a69c63e17ae532ec4210907a20b2208f91771821835f1c63dd2ec63e30e22fcc984026d7f933773ee6526dd038e0850919fae7a +"@emotion/unitless@npm:^0.8.1": + version: 0.8.1 + resolution: "@emotion/unitless@npm:0.8.1" + checksum: 385e21d184d27853bb350999471f00e1429fa4e83182f46cd2c164985999d9b46d558dc8b9cc89975cb337831ce50c31ac2f33b15502e85c299892e67e7b4a88 languageName: node linkType: hard -"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.0": - version: 1.0.0 - resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.0" +"@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.0, @emotion/use-insertion-effect-with-fallbacks@npm:^1.0.1": + version: 1.0.1 + resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" peerDependencies: react: ">=16.8.0" - checksum: 4f06a3b48258c832aa8022a262572061a31ff078d377e9164cccc99951309d70f4466e774fe704461b2f8715007a82ed625a54a5c7a127c89017d3ce3187d4f1 + checksum: 700b6e5bbb37a9231f203bb3af11295eed01d73b2293abece0bc2a2237015e944d7b5114d4887ad9a79776504aa51ed2a8b0ddbc117c54495dd01a6b22f93786 languageName: node linkType: hard -"@emotion/utils@npm:^1.2.0": - version: 1.2.0 - resolution: "@emotion/utils@npm:1.2.0" - checksum: 55457a49ddd4db6a014ea0454dc09eaa23eedfb837095c8ff90470cb26a303f7ceb5fcc1e2190ef64683e64cfd33d3ba3ca3109cd87d12bc9e379e4195c9a4dd +"@emotion/utils@npm:^1.2.1": + version: 1.2.1 + resolution: "@emotion/utils@npm:1.2.1" + checksum: e0b44be0705b56b079c55faff93952150be69e79b660ae70ddd5b6e09fc40eb1319654315a9f34bb479d7f4ec94be6068c061abbb9e18b9778ae180ad5d97c73 languageName: node linkType: hard -"@emotion/weak-memoize@npm:^0.3.0": - version: 0.3.0 - resolution: "@emotion/weak-memoize@npm:0.3.0" - checksum: f43ef4c8b7de70d9fa5eb3105921724651e4188e895beb71f0c5919dc899a7b8743e1fdd99d38b9092dd5722c7be2312ebb47fbdad0c4e38bea58f6df5885cc0 +"@emotion/weak-memoize@npm:^0.3.1": + version: 0.3.1 + resolution: "@emotion/weak-memoize@npm:0.3.1" + checksum: b2be47caa24a8122622ea18cd2d650dbb4f8ad37b636dc41ed420c2e082f7f1e564ecdea68122b546df7f305b159bf5ab9ffee872abd0f052e687428459af594 languageName: node linkType: hard @@ -2821,13 +2869,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/android-arm64@npm:0.17.16" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/android-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-arm64@npm:0.17.19" @@ -2849,13 +2890,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/android-arm@npm:0.17.16" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - "@esbuild/android-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-arm@npm:0.17.19" @@ -2870,13 +2904,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/android-x64@npm:0.17.16" - conditions: os=android & cpu=x64 - languageName: node - linkType: hard - "@esbuild/android-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/android-x64@npm:0.17.19" @@ -2891,13 +2918,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/darwin-arm64@npm:0.17.16" - conditions: os=darwin & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/darwin-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/darwin-arm64@npm:0.17.19" @@ -2912,13 +2932,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/darwin-x64@npm:0.17.16" - conditions: os=darwin & cpu=x64 - languageName: node - linkType: hard - "@esbuild/darwin-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/darwin-x64@npm:0.17.19" @@ -2933,13 +2946,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/freebsd-arm64@npm:0.17.16" - conditions: os=freebsd & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/freebsd-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-arm64@npm:0.17.19" @@ -2954,13 +2960,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/freebsd-x64@npm:0.17.16" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/freebsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/freebsd-x64@npm:0.17.19" @@ -2975,13 +2974,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/linux-arm64@npm:0.17.16" - conditions: os=linux & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/linux-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm64@npm:0.17.19" @@ -2996,13 +2988,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/linux-arm@npm:0.17.16" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - "@esbuild/linux-arm@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-arm@npm:0.17.19" @@ -3017,13 +3002,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/linux-ia32@npm:0.17.16" - conditions: os=linux & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/linux-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-ia32@npm:0.17.19" @@ -3045,13 +3023,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/linux-loong64@npm:0.17.16" - conditions: os=linux & cpu=loong64 - languageName: node - linkType: hard - "@esbuild/linux-loong64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-loong64@npm:0.17.19" @@ -3066,13 +3037,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/linux-mips64el@npm:0.17.16" - conditions: os=linux & cpu=mips64el - languageName: node - linkType: hard - "@esbuild/linux-mips64el@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-mips64el@npm:0.17.19" @@ -3081,15 +3045,8 @@ __metadata: linkType: hard "@esbuild/linux-ppc64@npm:0.16.17": - version: 0.16.17 - resolution: "@esbuild/linux-ppc64@npm:0.16.17" - conditions: os=linux & cpu=ppc64 - languageName: node - linkType: hard - -"@esbuild/linux-ppc64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/linux-ppc64@npm:0.17.16" + version: 0.16.17 + resolution: "@esbuild/linux-ppc64@npm:0.16.17" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -3108,13 +3065,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/linux-riscv64@npm:0.17.16" - conditions: os=linux & cpu=riscv64 - languageName: node - linkType: hard - "@esbuild/linux-riscv64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-riscv64@npm:0.17.19" @@ -3129,13 +3079,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/linux-s390x@npm:0.17.16" - conditions: os=linux & cpu=s390x - languageName: node - linkType: hard - "@esbuild/linux-s390x@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-s390x@npm:0.17.19" @@ -3150,13 +3093,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/linux-x64@npm:0.17.16" - conditions: os=linux & cpu=x64 - languageName: node - linkType: hard - "@esbuild/linux-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/linux-x64@npm:0.17.19" @@ -3171,13 +3107,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/netbsd-x64@npm:0.17.16" - conditions: os=netbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/netbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/netbsd-x64@npm:0.17.19" @@ -3192,13 +3121,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/openbsd-x64@npm:0.17.16" - conditions: os=openbsd & cpu=x64 - languageName: node - linkType: hard - "@esbuild/openbsd-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/openbsd-x64@npm:0.17.19" @@ -3213,13 +3135,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/sunos-x64@npm:0.17.16" - conditions: os=sunos & cpu=x64 - languageName: node - linkType: hard - "@esbuild/sunos-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/sunos-x64@npm:0.17.19" @@ -3234,13 +3149,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/win32-arm64@npm:0.17.16" - conditions: os=win32 & cpu=arm64 - languageName: node - linkType: hard - "@esbuild/win32-arm64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-arm64@npm:0.17.19" @@ -3255,13 +3163,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/win32-ia32@npm:0.17.16" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - "@esbuild/win32-ia32@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-ia32@npm:0.17.19" @@ -3276,13 +3177,6 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.17.16": - version: 0.17.16 - resolution: "@esbuild/win32-x64@npm:0.17.16" - conditions: os=win32 & cpu=x64 - languageName: node - linkType: hard - "@esbuild/win32-x64@npm:0.17.19": version: 0.17.19 resolution: "@esbuild/win32-x64@npm:0.17.19" @@ -3290,20 +3184,45 @@ __metadata: languageName: node linkType: hard -"@eslint/eslintrc@npm:^1.4.1": - version: 1.4.1 - resolution: "@eslint/eslintrc@npm:1.4.1" +"@eslint-community/eslint-utils@npm:^4.2.0": + version: 4.4.0 + resolution: "@eslint-community/eslint-utils@npm:4.4.0" + dependencies: + eslint-visitor-keys: ^3.3.0 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: cdfe3ae42b4f572cbfb46d20edafe6f36fc5fb52bf2d90875c58aefe226892b9677fef60820e2832caf864a326fe4fc225714c46e8389ccca04d5f9288aabd22 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.4.0": + version: 4.5.1 + resolution: "@eslint-community/regexpp@npm:4.5.1" + checksum: 6d901166d64998d591fab4db1c2f872981ccd5f6fe066a1ad0a93d4e11855ecae6bfb76660869a469563e8882d4307228cebd41142adb409d182f2966771e57e + languageName: node + linkType: hard + +"@eslint/eslintrc@npm:^2.0.3": + version: 2.0.3 + resolution: "@eslint/eslintrc@npm:2.0.3" dependencies: ajv: ^6.12.4 debug: ^4.3.2 - espree: ^9.4.0 + espree: ^9.5.2 globals: ^13.19.0 ignore: ^5.2.0 import-fresh: ^3.2.1 js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: cd3e5a8683db604739938b1c1c8b77927dc04fce3e28e0c88e7f2cd4900b89466baf83dfbad76b2b9e4d2746abdd00dd3f9da544d3e311633d8693f327d04cd7 + checksum: ddc51f25f8524d8231db9c9bf03177e503d941a332e8d5ce3b10b09241be4d5584a378a529a27a527586bfbccf3031ae539eb891352033c340b012b4d0c81d92 + languageName: node + linkType: hard + +"@eslint/js@npm:8.41.0": + version: 8.41.0 + resolution: "@eslint/js@npm:8.41.0" + checksum: af013d70fe8d0429cdf5cd8b5dcc6fc384ed026c1eccb0cfe30f5849b968ab91645111373fd1b83282b38955b1bdfbe667c1a7dbda3b06cae753521223cad775 languageName: node linkType: hard @@ -3321,20 +3240,6 @@ __metadata: languageName: node linkType: hard -"@floating-ui/core@npm:^1.2.0": - version: 1.2.0 - resolution: "@floating-ui/core@npm:1.2.0" - checksum: 1afde471b0d2ba11e2cf416ef5ca9e6280e3f42542a707d958b66631fe2aa551272c1544a1e8ed4815bf562e4462adedb356ce3f2de5c1738d6aab1568f580f4 - languageName: node - linkType: hard - -"@floating-ui/core@npm:^1.2.2": - version: 1.2.2 - resolution: "@floating-ui/core@npm:1.2.2" - checksum: 0728efcb3f57c0bbeaf940e3ca8dfbecb659afec8943dff79169b8191b8c4aa14b54a33dc66599e624dfa791920010ebd9f860cfa7f47df94ad75b32c1e44883 - languageName: node - linkType: hard - "@floating-ui/core@npm:^1.2.6": version: 1.2.6 resolution: "@floating-ui/core@npm:1.2.6" @@ -3342,30 +3247,12 @@ __metadata: languageName: node linkType: hard -"@floating-ui/dom@npm:^1.0.1, @floating-ui/dom@npm:^1.1.1": - version: 1.2.0 - resolution: "@floating-ui/dom@npm:1.2.0" - dependencies: - "@floating-ui/core": ^1.2.0 - checksum: 3f5cf02a784286473f451939b5641454e7256cdc7a6899a0ecc67e084a572b52e5e23a08a7e5b8ba186dca668815eba5ed6d69baec543abaeb5092d6c672f6b2 - languageName: node - linkType: hard - -"@floating-ui/dom@npm:^1.1.0": - version: 1.2.3 - resolution: "@floating-ui/dom@npm:1.2.3" - dependencies: - "@floating-ui/core": ^1.2.2 - checksum: b2428e1fda01d5cba59960bb8c04d7a5f2400200855f206267589533a67303a62fbdf85dc7747fe83c21bb15f4eda67feaaf51ef4a41bb132fd2b785612f1bb4 - languageName: node - linkType: hard - -"@floating-ui/dom@npm:^1.2.7": - version: 1.2.8 - resolution: "@floating-ui/dom@npm:1.2.8" +"@floating-ui/dom@npm:^1.0.1, @floating-ui/dom@npm:^1.1.0, @floating-ui/dom@npm:^1.2.7": + version: 1.2.9 + resolution: "@floating-ui/dom@npm:1.2.9" dependencies: "@floating-ui/core": ^1.2.6 - checksum: 02894774475a17baa498c86cd25d2825598e7de0734b8c08f7b8797b19c0bec13c4c726e529feb8bf26c6dee219c153ac1f90d8530a93534f765b3c04cfa3b4a + checksum: 16ae5e05a41c2ca16d51579d12729ca9d346241319f68ce5678f5fbeb9c4f9a16176c95089bbd7a0eb37c6ed90e5fd55a310ffc9948af7c841d5b8bfa0afe1b8 languageName: node linkType: hard @@ -3381,18 +3268,6 @@ __metadata: languageName: node linkType: hard -"@floating-ui/react-dom@npm:1.2.2": - version: 1.2.2 - resolution: "@floating-ui/react-dom@npm:1.2.2" - dependencies: - "@floating-ui/dom": ^1.1.1 - peerDependencies: - react: ">=16.8.0" - react-dom: ">=16.8.0" - checksum: 5cb7879a8fe53ce4ca8361473d93e18806402d6bcde4e935d5aafa2b72032019e62f7d019d7d7145ead1ed829569ac14d6d8c50d7beedcea04cb3d02af661597 - languageName: node - linkType: hard - "@floating-ui/react-dom@npm:^2.0.0": version: 2.0.0 resolution: "@floating-ui/react-dom@npm:2.0.0" @@ -3512,50 +3387,50 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/console@npm:29.4.1" +"@jest/console@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/console@npm:29.5.0" dependencies: - "@jest/types": ^29.4.1 + "@jest/types": ^29.5.0 "@types/node": "*" chalk: ^4.0.0 - jest-message-util: ^29.4.1 - jest-util: ^29.4.1 + jest-message-util: ^29.5.0 + jest-util: ^29.5.0 slash: ^3.0.0 - checksum: 5b061e4fec29016d42ab1dbbc0fd8386cfa28f921deb6880ff1a82203c7df0776827c2819f2fe1feb8872c8a5cf6d0a04aaf008e80c239813357ccf8790332e9 + checksum: 9f4f4b8fabd1221361b7f2e92d4a90f5f8c2e2b29077249996ab3c8b7f765175ffee795368f8d6b5b2bb3adb32dc09319f7270c7c787b0d259e624e00e0f64a5 languageName: node linkType: hard -"@jest/core@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/core@npm:29.4.1" +"@jest/core@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/core@npm:29.5.0" dependencies: - "@jest/console": ^29.4.1 - "@jest/reporters": ^29.4.1 - "@jest/test-result": ^29.4.1 - "@jest/transform": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/console": ^29.5.0 + "@jest/reporters": ^29.5.0 + "@jest/test-result": ^29.5.0 + "@jest/transform": ^29.5.0 + "@jest/types": ^29.5.0 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 ci-info: ^3.2.0 exit: ^0.1.2 graceful-fs: ^4.2.9 - jest-changed-files: ^29.4.0 - jest-config: ^29.4.1 - jest-haste-map: ^29.4.1 - jest-message-util: ^29.4.1 - jest-regex-util: ^29.2.0 - jest-resolve: ^29.4.1 - jest-resolve-dependencies: ^29.4.1 - jest-runner: ^29.4.1 - jest-runtime: ^29.4.1 - jest-snapshot: ^29.4.1 - jest-util: ^29.4.1 - jest-validate: ^29.4.1 - jest-watcher: ^29.4.1 + jest-changed-files: ^29.5.0 + jest-config: ^29.5.0 + jest-haste-map: ^29.5.0 + jest-message-util: ^29.5.0 + jest-regex-util: ^29.4.3 + jest-resolve: ^29.5.0 + jest-resolve-dependencies: ^29.5.0 + jest-runner: ^29.5.0 + jest-runtime: ^29.5.0 + jest-snapshot: ^29.5.0 + jest-util: ^29.5.0 + jest-validate: ^29.5.0 + jest-watcher: ^29.5.0 micromatch: ^4.0.4 - pretty-format: ^29.4.1 + pretty-format: ^29.5.0 slash: ^3.0.0 strip-ansi: ^6.0.0 peerDependencies: @@ -3563,76 +3438,76 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 70bf65187bdc14825512bbb5afda6f578cca62cda70d8fc2bf08377d916785cfa5da3f3b6aabda42e535c1353fc9a1073b8370f49b2d49ad8fca798119219c3e + checksum: 9e8f5243fe82d5a57f3971e1b96f320058df7c315328a3a827263f3b17f64be10c80f4a9c1b1773628b64d2de6d607c70b5b2d5bf13e7f5ad04223e9ef6aac06 languageName: node linkType: hard -"@jest/environment@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/environment@npm:29.4.1" +"@jest/environment@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/environment@npm:29.5.0" dependencies: - "@jest/fake-timers": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/fake-timers": ^29.5.0 + "@jest/types": ^29.5.0 "@types/node": "*" - jest-mock: ^29.4.1 - checksum: f6fed37d2e4aede2930f0a030432b72efeed6d3ea2eee165c1e64afd9fb3af8cf827e306c800cdb3f7bbd106bc5b2405cdec98b91a85695e3f62b1e228cb8d09 + jest-mock: ^29.5.0 + checksum: 921de6325cd4817dec6685e5ff299b499b6379f3f9cf489b4b13588ee1f3820a0c77b49e6a087996b6de8f629f6f5251e636cba08d1bdb97d8071cc7d033c88a languageName: node linkType: hard -"@jest/expect-utils@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/expect-utils@npm:29.4.1" +"@jest/expect-utils@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/expect-utils@npm:29.5.0" dependencies: - jest-get-type: ^29.2.0 - checksum: 865b4ee79d43e2457efb8ce3f58108f2fe141ce620350fe21d0baaf7e2f00b9b67f6e9c1c89760b1008c100e844fb03a6dda264418ed378243956904d9a88c69 + jest-get-type: ^29.4.3 + checksum: c46fb677c88535cf83cf29f0a5b1f376c6a1109ddda266ad7da1a9cbc53cb441fa402dd61fc7b111ffc99603c11a9b3357ee41a1c0e035a58830bcb360871476 languageName: node linkType: hard -"@jest/expect@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/expect@npm:29.4.1" +"@jest/expect@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/expect@npm:29.5.0" dependencies: - expect: ^29.4.1 - jest-snapshot: ^29.4.1 - checksum: 5e9979822a83847f2671e6ed8482e1afc6553ea6579527fdcc6f31ac4f54975e74f1410b9ca133e80ad30dfc38510a9e731ffe70e9eecea61abad487095d969a + expect: ^29.5.0 + jest-snapshot: ^29.5.0 + checksum: bd10e295111547e6339137107d83986ab48d46561525393834d7d2d8b2ae9d5626653f3f5e48e5c3fa742ac982e97bdf1f541b53b9e1d117a247b08e938527f6 languageName: node linkType: hard -"@jest/fake-timers@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/fake-timers@npm:29.4.1" +"@jest/fake-timers@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/fake-timers@npm:29.5.0" dependencies: - "@jest/types": ^29.4.1 + "@jest/types": ^29.5.0 "@sinonjs/fake-timers": ^10.0.2 "@types/node": "*" - jest-message-util: ^29.4.1 - jest-mock: ^29.4.1 - jest-util: ^29.4.1 - checksum: 6e1f404054cae54291c1aba7e6b16d7895e2f14b2a1814a0133f9859d6bf49b8e91ce5b3ee15517013bcc6061b63e7a9aeebabd32a68f27a1a15a6dfb15644d1 + jest-message-util: ^29.5.0 + jest-mock: ^29.5.0 + jest-util: ^29.5.0 + checksum: 69930c6922341f244151ec0d27640852ec96237f730fc024da1f53143d31b43cde75d92f9d8e5937981cdce3b31416abc3a7090a0d22c2377512c4a6613244ee languageName: node linkType: hard -"@jest/globals@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/globals@npm:29.4.1" +"@jest/globals@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/globals@npm:29.5.0" dependencies: - "@jest/environment": ^29.4.1 - "@jest/expect": ^29.4.1 - "@jest/types": ^29.4.1 - jest-mock: ^29.4.1 - checksum: 492af8f7c1a97c88464951dfe30fdfcc1566138658df87ab4cdd3b0e20245022637ee4636270af35346391fc4dcd18130d21b643c7e317355087b7cece392476 + "@jest/environment": ^29.5.0 + "@jest/expect": ^29.5.0 + "@jest/types": ^29.5.0 + jest-mock: ^29.5.0 + checksum: b309ab8f21b571a7c672608682e84bbdd3d2b554ddf81e4e32617fec0a69094a290ab42e3c8b2c66ba891882bfb1b8b2736720ea1285b3ad646d55c2abefedd9 languageName: node linkType: hard -"@jest/reporters@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/reporters@npm:29.4.1" +"@jest/reporters@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/reporters@npm:29.5.0" dependencies: "@bcoe/v8-coverage": ^0.2.3 - "@jest/console": ^29.4.1 - "@jest/test-result": ^29.4.1 - "@jest/transform": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/console": ^29.5.0 + "@jest/test-result": ^29.5.0 + "@jest/transform": ^29.5.0 + "@jest/types": ^29.5.0 "@jridgewell/trace-mapping": ^0.3.15 "@types/node": "*" chalk: ^4.0.0 @@ -3645,9 +3520,9 @@ __metadata: istanbul-lib-report: ^3.0.0 istanbul-lib-source-maps: ^4.0.0 istanbul-reports: ^3.1.3 - jest-message-util: ^29.4.1 - jest-util: ^29.4.1 - jest-worker: ^29.4.1 + jest-message-util: ^29.5.0 + jest-util: ^29.5.0 + jest-worker: ^29.5.0 slash: ^3.0.0 string-length: ^4.0.1 strip-ansi: ^6.0.0 @@ -3657,106 +3532,74 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: fb70886e90eeb45e1df7c4196e1768285d5f1db4c01edd6eeed33619971d8c33031a9a3705004f14dff9c3460f5d605a9dac9779c5a91c73e4f7a4b303ff25ff + checksum: 481268aac9a4a75cc49c4df1273d6b111808dec815e9d009dad717c32383ebb0cebac76e820ad1ab44e207540e1c2fe1e640d44c4f262de92ab1933e057fdeeb languageName: node linkType: hard -"@jest/schemas@npm:^29.4.0": - version: 29.4.0 - resolution: "@jest/schemas@npm:29.4.0" +"@jest/schemas@npm:^29.4.3": + version: 29.4.3 + resolution: "@jest/schemas@npm:29.4.3" dependencies: "@sinclair/typebox": ^0.25.16 - checksum: 005c90b7b641af029133fa390c0c8a75b63edf651da6253d7c472a8f15ddd18aa139edcd4236e57f974006e39c67217925768115484dbd7bfed2eba224de8b7d + checksum: ac754e245c19dc39e10ebd41dce09040214c96a4cd8efa143b82148e383e45128f24599195ab4f01433adae4ccfbe2db6574c90db2862ccd8551a86704b5bebd languageName: node linkType: hard -"@jest/schemas@npm:^29.4.2": - version: 29.4.2 - resolution: "@jest/schemas@npm:29.4.2" - dependencies: - "@sinclair/typebox": ^0.25.16 - checksum: 85d9416dce85604400e65ba0b2146fea5ba313612d6d1fa8f39c30bcb42fabd7120193d277327fb10228ea3112f3b83e914bc7ab42137d19a1e1c37093f32363 - languageName: node - linkType: hard - -"@jest/source-map@npm:^29.2.0": - version: 29.2.0 - resolution: "@jest/source-map@npm:29.2.0" +"@jest/source-map@npm:^29.4.3": + version: 29.4.3 + resolution: "@jest/source-map@npm:29.4.3" dependencies: "@jridgewell/trace-mapping": ^0.3.15 callsites: ^3.0.0 graceful-fs: ^4.2.9 - checksum: 09f76ab63d15dcf44b3035a79412164f43be34ec189575930f1a00c87e36ea0211ebd6a4fbe2253c2516e19b49b131f348ddbb86223ca7b6bbac9a6bc76ec96e + checksum: 2301d225145f8123540c0be073f35a80fd26a2f5e59550fd68525d8cea580fb896d12bf65106591ffb7366a8a19790076dbebc70e0f5e6ceb51f81827ed1f89c languageName: node linkType: hard -"@jest/test-result@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/test-result@npm:29.4.1" +"@jest/test-result@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/test-result@npm:29.5.0" dependencies: - "@jest/console": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/console": ^29.5.0 + "@jest/types": ^29.5.0 "@types/istanbul-lib-coverage": ^2.0.0 collect-v8-coverage: ^1.0.0 - checksum: 8909e5033bf52b85840da8bbc7ded98d52a86f63f2708d6c976f204e007739ada8fc2f985394a8950e40b1e17508bd8e26db4fa328a5fb37c411fe534bb192ec + checksum: 2e8ff5242227ab960c520c3ea0f6544c595cc1c42fa3873c158e9f4f685f4ec9670ec08a4af94ae3885c0005a43550a9595191ffbc27a0965df27d9d98bbf901 languageName: node linkType: hard -"@jest/test-sequencer@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/test-sequencer@npm:29.4.1" +"@jest/test-sequencer@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/test-sequencer@npm:29.5.0" dependencies: - "@jest/test-result": ^29.4.1 + "@jest/test-result": ^29.5.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.4.1 + jest-haste-map: ^29.5.0 slash: ^3.0.0 - checksum: ddf26b780579b239076d5eaf445ff17b8cf1d363c2cfdd3842f281c597d2ef1ee42e93f3cd2ac52803a88de0107a6059d72007ecc51bcd535406c17941ef33be + checksum: eca34b4aeb2fda6dfb7f9f4b064c858a7adf64ec5c6091b6f4ed9d3c19549177cbadcf1c615c4c182688fa1cf085c8c55c3ca6eea40719a34554b0bf071d842e languageName: node linkType: hard -"@jest/transform@npm:^29.3.1": - version: 29.4.2 - resolution: "@jest/transform@npm:29.4.2" +"@jest/transform@npm:^29.3.1, @jest/transform@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/transform@npm:29.5.0" dependencies: "@babel/core": ^7.11.6 - "@jest/types": ^29.4.2 + "@jest/types": ^29.5.0 "@jridgewell/trace-mapping": ^0.3.15 babel-plugin-istanbul: ^6.1.1 chalk: ^4.0.0 convert-source-map: ^2.0.0 fast-json-stable-stringify: ^2.1.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.4.2 - jest-regex-util: ^29.4.2 - jest-util: ^29.4.2 + jest-haste-map: ^29.5.0 + jest-regex-util: ^29.4.3 + jest-util: ^29.5.0 micromatch: ^4.0.4 pirates: ^4.0.4 slash: ^3.0.0 write-file-atomic: ^4.0.2 - checksum: 3c653dff6ccaa010e83789d22582217b02fe9919f46d50ba07157a6004c9153edec987efba51edf0c261b409f6178e4fa1e34e59ce8dd4cb5c2197d42b30960e - languageName: node - linkType: hard - -"@jest/transform@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/transform@npm:29.4.1" - dependencies: - "@babel/core": ^7.11.6 - "@jest/types": ^29.4.1 - "@jridgewell/trace-mapping": ^0.3.15 - babel-plugin-istanbul: ^6.1.1 - chalk: ^4.0.0 - convert-source-map: ^2.0.0 - fast-json-stable-stringify: ^2.1.0 - graceful-fs: ^4.2.9 - jest-haste-map: ^29.4.1 - jest-regex-util: ^29.2.0 - jest-util: ^29.4.1 - micromatch: ^4.0.4 - pirates: ^4.0.4 - slash: ^3.0.0 - write-file-atomic: ^5.0.0 - checksum: ae8aa3ec32d869fbaa45f9513455ae96447de829effc3855d720ff12218f7d5b1b4e782cccf1ad38a9e85d6a762c53148259065075200844c997fe6a6252604e + checksum: d55d604085c157cf5112e165ff5ac1fa788873b3b31265fb4734ca59892ee24e44119964cc47eb6d178dd9512bbb6c576d1e20e51a201ff4e24d31e818a1c92d languageName: node linkType: hard @@ -3773,31 +3616,17 @@ __metadata: languageName: node linkType: hard -"@jest/types@npm:^29.4.1": - version: 29.4.1 - resolution: "@jest/types@npm:29.4.1" - dependencies: - "@jest/schemas": ^29.4.0 - "@types/istanbul-lib-coverage": ^2.0.0 - "@types/istanbul-reports": ^3.0.0 - "@types/node": "*" - "@types/yargs": ^17.0.8 - chalk: ^4.0.0 - checksum: 0aa0b6a210b3474289e5dcaa8e7abb2238dba8d0baf2eb5a3f080fb95e9a39e71e8abc96811d4ef7011f5d993755bb54515e9d827d7ebc2a2d4d9579d84f5a04 - languageName: node - linkType: hard - -"@jest/types@npm:^29.4.2": - version: 29.4.2 - resolution: "@jest/types@npm:29.4.2" +"@jest/types@npm:^29.5.0": + version: 29.5.0 + resolution: "@jest/types@npm:29.5.0" dependencies: - "@jest/schemas": ^29.4.2 + "@jest/schemas": ^29.4.3 "@types/istanbul-lib-coverage": ^2.0.0 "@types/istanbul-reports": ^3.0.0 "@types/node": "*" "@types/yargs": ^17.0.8 chalk: ^4.0.0 - checksum: da2caa2c1d3ce7461167faddf9a4158a4be5c900e44f22db9c370b189c804b7492051c635a8c0c62ac4e41aff3bc6c324a008043e193bc5d6ce7b44aaa449258 + checksum: 1811f94b19cf8a9460a289c4f056796cfc373480e0492692a6125a553cd1a63824bd846d7bb78820b7b6f758f6dd3c2d4558293bb676d541b2fa59c70fdf9d39 languageName: node linkType: hard @@ -3819,48 +3648,52 @@ __metadata: languageName: node linkType: hard -"@jridgewell/gen-mapping@npm:^0.1.0": - version: 0.1.1 - resolution: "@jridgewell/gen-mapping@npm:0.1.1" - dependencies: - "@jridgewell/set-array": ^1.0.0 - "@jridgewell/sourcemap-codec": ^1.4.10 - checksum: 3bcc21fe786de6ffbf35c399a174faab05eb23ce6a03e8769569de28abbf4facc2db36a9ddb0150545ae23a8d35a7cf7237b2aa9e9356a7c626fb4698287d5cc - languageName: node - linkType: hard - -"@jridgewell/gen-mapping@npm:^0.3.2": - version: 0.3.2 - resolution: "@jridgewell/gen-mapping@npm:0.3.2" +"@jridgewell/gen-mapping@npm:^0.3.0, @jridgewell/gen-mapping@npm:^0.3.2": + version: 0.3.3 + resolution: "@jridgewell/gen-mapping@npm:0.3.3" dependencies: "@jridgewell/set-array": ^1.0.1 "@jridgewell/sourcemap-codec": ^1.4.10 "@jridgewell/trace-mapping": ^0.3.9 - checksum: 1832707a1c476afebe4d0fbbd4b9434fdb51a4c3e009ab1e9938648e21b7a97049fa6009393bdf05cab7504108413441df26d8a3c12193996e65493a4efb6882 + checksum: 4a74944bd31f22354fc01c3da32e83c19e519e3bbadafa114f6da4522ea77dd0c2842607e923a591d60a76699d819a2fbb6f3552e277efdb9b58b081390b60ab languageName: node linkType: hard -"@jridgewell/resolve-uri@npm:3.1.0, @jridgewell/resolve-uri@npm:^3.0.3": +"@jridgewell/resolve-uri@npm:3.1.0": version: 3.1.0 resolution: "@jridgewell/resolve-uri@npm:3.1.0" checksum: b5ceaaf9a110fcb2780d1d8f8d4a0bfd216702f31c988d8042e5f8fbe353c55d9b0f55a1733afdc64806f8e79c485d2464680ac48a0d9fcadb9548ee6b81d267 languageName: node linkType: hard -"@jridgewell/set-array@npm:^1.0.0, @jridgewell/set-array@npm:^1.0.1": +"@jridgewell/resolve-uri@npm:^3.0.3": + version: 3.1.1 + resolution: "@jridgewell/resolve-uri@npm:3.1.1" + checksum: f5b441fe7900eab4f9155b3b93f9800a916257f4e8563afbcd3b5a5337b55e52bd8ae6735453b1b745457d9f6cdb16d74cd6220bbdd98cf153239e13f6cbb653 + languageName: node + linkType: hard + +"@jridgewell/set-array@npm:^1.0.1": version: 1.1.2 resolution: "@jridgewell/set-array@npm:1.1.2" checksum: 69a84d5980385f396ff60a175f7177af0b8da4ddb81824cb7016a9ef914eee9806c72b6b65942003c63f7983d4f39a5c6c27185bbca88eb4690b62075602e28e languageName: node linkType: hard -"@jridgewell/sourcemap-codec@npm:1.4.14, @jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13": +"@jridgewell/sourcemap-codec@npm:1.4.14": version: 1.4.14 resolution: "@jridgewell/sourcemap-codec@npm:1.4.14" checksum: 61100637b6d173d3ba786a5dff019e1a74b1f394f323c1fee337ff390239f053b87266c7a948777f4b1ee68c01a8ad0ab61e5ff4abb5a012a0b091bec391ab97 languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.13": + version: 1.4.15 + resolution: "@jridgewell/sourcemap-codec@npm:1.4.15" + checksum: b881c7e503db3fc7f3c1f35a1dd2655a188cc51a3612d76efc8a6eb74728bef5606e6758ee77423e564092b4a518aba569bbb21c9bac5ab7a35b0c6ae7e344c8 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -3872,12 +3705,12 @@ __metadata: linkType: hard "@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.15, @jridgewell/trace-mapping@npm:^0.3.17, @jridgewell/trace-mapping@npm:^0.3.9": - version: 0.3.17 - resolution: "@jridgewell/trace-mapping@npm:0.3.17" + version: 0.3.18 + resolution: "@jridgewell/trace-mapping@npm:0.3.18" dependencies: "@jridgewell/resolve-uri": 3.1.0 "@jridgewell/sourcemap-codec": 1.4.14 - checksum: 9d703b859cff5cd83b7308fd457a431387db5db96bd781a63bf48e183418dd9d3d44e76b9e4ae13237f6abeeb25d739ec9215c1d5bfdd08f66f750a50074a339 + checksum: 0572669f855260808c16fe8f78f5f1b4356463b11d3f2c7c0b5580c8ba1cbf4ae53efe9f627595830856e57dbac2325ac17eb0c3dd0ec42102e6f227cc289c02 languageName: node linkType: hard @@ -3888,7 +3721,7 @@ __metadata: languageName: node linkType: hard -"@lezer/common@npm:^1.0.0": +"@lezer/common@npm:^1.0.0, @lezer/common@npm:^1.0.2": version: 1.0.2 resolution: "@lezer/common@npm:1.0.2" checksum: bbcc58e07be02652bf0700d2856042ec089d5be0b95893d628b3e18192ade864fac83b61b19653e10b9f1472261a178b12318d934e9004edd5483a577c0db56b @@ -3896,52 +3729,52 @@ __metadata: linkType: hard "@lezer/css@npm:^1.0.0, @lezer/css@npm:^1.1.0": - version: 1.1.1 - resolution: "@lezer/css@npm:1.1.1" + version: 1.1.2 + resolution: "@lezer/css@npm:1.1.2" dependencies: "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: a7e4893aacaa7f26d5679c77a640f401b37d14155cb54863aa91b59dfd220b280360a341c0fedafc65d31101de13a5ae33cf3876c352f2da528344dafdc9b3d7 + checksum: 02218fe6901428e191a91a1f1a3728a051af982bafaf37144884c9261a7e24b2ad1dfdaa6e7feeb160e5bc34157ce92213cd92ae244cdf0b8485b8b8113850f8 languageName: node linkType: hard "@lezer/highlight@npm:^1.0.0, @lezer/highlight@npm:^1.1.3": - version: 1.1.3 - resolution: "@lezer/highlight@npm:1.1.3" + version: 1.1.6 + resolution: "@lezer/highlight@npm:1.1.6" dependencies: "@lezer/common": ^1.0.0 - checksum: 90ec143ce46b32f6779c3b245f1b5a540d66686939816d3daed8318821acc4bc719466dc222336cfd483bf04a8de4fdc6f279e904cf114d4d9f786f9feccbbd8 + checksum: 411a702394c4c996b7d7f145a38f3a85a8cc698b3918acc7121c629255bb76d4ab383753f69009e011dc415210c6acbbb5b27bde613259ab67e600b29397b03b languageName: node linkType: hard "@lezer/html@npm:^1.3.0": - version: 1.3.0 - resolution: "@lezer/html@npm:1.3.0" + version: 1.3.4 + resolution: "@lezer/html@npm:1.3.4" dependencies: "@lezer/common": ^1.0.0 "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: e6efde94614a5b7ebf2713b244a110ef9025369561c7bf42fe6dd8f5877d2ee0c71f894b8b43d1284d23bf429fd3688ec3b6b0c2b8702df366c2b5e5cedc4c19 + checksum: 81dd134ac094edf7c40bae4c3b7126d336ce4c3c87756344bf604eff64d89b06fcb55f91618a4622eb0dae6d6015722f5bab58e2252d86e81fca8c3ced1a0c4d languageName: node linkType: hard "@lezer/java@npm:^1.0.0": - version: 1.0.1 - resolution: "@lezer/java@npm:1.0.1" + version: 1.0.3 + resolution: "@lezer/java@npm:1.0.3" dependencies: "@lezer/highlight": ^1.0.0 "@lezer/lr": ^1.0.0 - checksum: e86ba744cca2086885295a2bda97881024cff20d11756ee531332ebbd55a8e88bf89985417dab6780ee15a89be59b29414b54715317463c2ec41b2f4757e0ee7 + checksum: 2fffea6627d130413ffad4e61040267974cca3167d98881b9e5b5e2455530de74a82c234d93603e92a4972fad314671453c49c0a76b0f4547c4617d671fd7b99 languageName: node linkType: hard "@lezer/javascript@npm:^1.0.0": - version: 1.4.1 - resolution: "@lezer/javascript@npm:1.4.1" + version: 1.4.3 + resolution: "@lezer/javascript@npm:1.4.3" dependencies: "@lezer/highlight": ^1.1.3 "@lezer/lr": ^1.3.0 - checksum: 634270116d5f1c278e2949d397845f41cac388dec7f0db593a3dc23e0fd4a1b73b9bf08f96fcf109fcd3d38c4b374d48676dce3261ff8ff83a85f5d6a37989f7 + checksum: 520dc2d84c84841ef554993c1c0dfe503487aa9be398ebcf617b51d06f99121841d4ca1cf25f3f53d00efa820ea778cc2271da425a606ac66e9f09a4c8cc6677 languageName: node linkType: hard @@ -3956,11 +3789,11 @@ __metadata: linkType: hard "@lezer/lr@npm:^1.0.0, @lezer/lr@npm:^1.1.0, @lezer/lr@npm:^1.3.0": - version: 1.3.3 - resolution: "@lezer/lr@npm:1.3.3" + version: 1.3.5 + resolution: "@lezer/lr@npm:1.3.5" dependencies: "@lezer/common": ^1.0.0 - checksum: 1804074c794005a31c54d80ab72127f19ae5be29bb627c52bc001a57b1af97a9e62732ff13e3aeb7bc53b330202b6bd3747272c64d87f257dbba533e75a183a3 + checksum: 11e00ce2b20eaab2aa7891a3d7c52373f4bda6fb2de233d4b846c678d879d5c0d27af6b9d4daacd54623b068bf50abf763c49bb5400711901b5c1e8f30ca4a1d languageName: node linkType: hard @@ -4011,79 +3844,14 @@ __metadata: linkType: hard "@mdx-js/react@npm:^2.1.5": - version: 2.2.1 - resolution: "@mdx-js/react@npm:2.2.1" + version: 2.3.0 + resolution: "@mdx-js/react@npm:2.3.0" dependencies: "@types/mdx": ^2.0.0 "@types/react": ">=16" peerDependencies: react: ">=16" - checksum: 4462dad1d7d658bda1c2eabc3960fb843fdbcb5788ce5f863b674752e4db1b7048b5587aa85661283b5196e4641385e6b594205c2482202446ecb5f5433c975b - languageName: node - linkType: hard - -"@motionone/animation@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/animation@npm:10.15.1" - dependencies: - "@motionone/easing": ^10.15.1 - "@motionone/types": ^10.15.1 - "@motionone/utils": ^10.15.1 - tslib: ^2.3.1 - checksum: 75b7a1e6c47c27073a578eb5559ea0a6e7075862c72e1eb1598403c8c2725f596a95b0369514c9e72f3c7439a9845c468b85a14d4e500df48e09d01b0739d4a7 - languageName: node - linkType: hard - -"@motionone/dom@npm:^10.15.3": - version: 10.15.5 - resolution: "@motionone/dom@npm:10.15.5" - dependencies: - "@motionone/animation": ^10.15.1 - "@motionone/generators": ^10.15.1 - "@motionone/types": ^10.15.1 - "@motionone/utils": ^10.15.1 - hey-listen: ^1.0.8 - tslib: ^2.3.1 - checksum: 2453fe3df6a2b4b339d075bcd598bda1eee1926ba0ad881edfd154362b0992c91f31c08d83c469c7e8cb8bf8ebc0ed5530972673cf5c74d99e46e3772cf5f1cb - languageName: node - linkType: hard - -"@motionone/easing@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/easing@npm:10.15.1" - dependencies: - "@motionone/utils": ^10.15.1 - tslib: ^2.3.1 - checksum: cf7cfcf9917525d892334c58282425aafc69d9ab9004c190bfa7cf91317a680e8143f227adc79557424e7f26cdf8478dcbb2ae467e744cebc58195d6f0b8153a - languageName: node - linkType: hard - -"@motionone/generators@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/generators@npm:10.15.1" - dependencies: - "@motionone/types": ^10.15.1 - "@motionone/utils": ^10.15.1 - tslib: ^2.3.1 - checksum: 0eb6797a64d536bb5c26628343d6594a2ebc45c3c447b8ce442b4ac3a41be847b860ac009bda7968fc7d339d2ee49b18bfe36306c5dd99cf17c7d84c82de93f3 - languageName: node - linkType: hard - -"@motionone/types@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/types@npm:10.15.1" - checksum: 98091f7dca257508d94d1080678c433da39a814e8e58aaa742212bf6c2a5b5e2120a6251a06e3ea522219ce6d1b6eb6aa2cab224b803fe52789033d8398ef0aa - languageName: node - linkType: hard - -"@motionone/utils@npm:^10.15.1": - version: 10.15.1 - resolution: "@motionone/utils@npm:10.15.1" - dependencies: - "@motionone/types": ^10.15.1 - hey-listen: ^1.0.8 - tslib: ^2.3.1 - checksum: 6ef13cd6637ec87c340e5536f849f8c40d30cc90139a3856d11cd70d78e3740f8815b0e63564fefd23c05a060da7a0ea5395390549606ed8801a7b832b74e04e + checksum: f45fe779556e6cd9a787f711274480e0638b63c460f192ebdcd77cc07ffa61e23c98cb46dd46e577093e1cb4997a232a848d1fb0ba850ae204422cf603add524 languageName: node linkType: hard @@ -4366,13 +4134,13 @@ __metadata: linkType: soft "@ndelangen/get-tarball@npm:^3.0.7": - version: 3.0.7 - resolution: "@ndelangen/get-tarball@npm:3.0.7" + version: 3.0.9 + resolution: "@ndelangen/get-tarball@npm:3.0.9" dependencies: gunzip-maybe: ^1.4.2 pump: ^3.0.0 tar-fs: ^2.1.1 - checksum: f0a44392b8a452cb76f0bf80b1392c968bbf1a8535ea502c99ff3615a454140c41c65003771d017d1de73aa7ca969e14c9fbec8b36027dae74d3b0b85888b482 + checksum: 7fa8ac40b4e85738a4ee6bf891bc27fce2445b65b4477e0ec86aed0fa62ab18bdf5d193ce04553ad9bfa639e1eef33b8b30da4ef3e7218f12bf95f24c8786e5b languageName: node linkType: hard @@ -4385,10 +4153,10 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:13.2.1": - version: 13.2.1 - resolution: "@next/env@npm:13.2.1" - checksum: 16a877479348b9d6a9e69e74312546889d6419a6dec0556cf7d9ed5876b4f69a0974c804f2c5ec81526522c243d97bd2d6919d3241cd165e10e8fd6c3bb4b975 +"@next/env@npm:13.4.4": + version: 13.4.4 + resolution: "@next/env@npm:13.4.4" + checksum: 9ab9b9ac4e5920cb9911273a776a5e2564844ac735a9c483bf584e090a7f534ce4a8fcda313132d338837e634513f680885c6b4ee811d5175db1b98b0bba4b35 languageName: node linkType: hard @@ -4401,93 +4169,65 @@ __metadata: languageName: node linkType: hard -"@next/swc-android-arm-eabi@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-android-arm-eabi@npm:13.2.1" - conditions: os=android & cpu=arm - languageName: node - linkType: hard - -"@next/swc-android-arm64@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-android-arm64@npm:13.2.1" - conditions: os=android & cpu=arm64 - languageName: node - linkType: hard - -"@next/swc-darwin-arm64@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-darwin-arm64@npm:13.2.1" +"@next/swc-darwin-arm64@npm:13.4.4": + version: 13.4.4 + resolution: "@next/swc-darwin-arm64@npm:13.4.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-darwin-x64@npm:13.2.1" +"@next/swc-darwin-x64@npm:13.4.4": + version: 13.4.4 + resolution: "@next/swc-darwin-x64@npm:13.4.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-freebsd-x64@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-freebsd-x64@npm:13.2.1" - conditions: os=freebsd & cpu=x64 - languageName: node - linkType: hard - -"@next/swc-linux-arm-gnueabihf@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-linux-arm-gnueabihf@npm:13.2.1" - conditions: os=linux & cpu=arm - languageName: node - linkType: hard - -"@next/swc-linux-arm64-gnu@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-linux-arm64-gnu@npm:13.2.1" +"@next/swc-linux-arm64-gnu@npm:13.4.4": + version: 13.4.4 + resolution: "@next/swc-linux-arm64-gnu@npm:13.4.4" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-linux-arm64-musl@npm:13.2.1" +"@next/swc-linux-arm64-musl@npm:13.4.4": + version: 13.4.4 + resolution: "@next/swc-linux-arm64-musl@npm:13.4.4" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-linux-x64-gnu@npm:13.2.1" +"@next/swc-linux-x64-gnu@npm:13.4.4": + version: 13.4.4 + resolution: "@next/swc-linux-x64-gnu@npm:13.4.4" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-linux-x64-musl@npm:13.2.1" +"@next/swc-linux-x64-musl@npm:13.4.4": + version: 13.4.4 + resolution: "@next/swc-linux-x64-musl@npm:13.4.4" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-win32-arm64-msvc@npm:13.2.1" +"@next/swc-win32-arm64-msvc@npm:13.4.4": + version: 13.4.4 + resolution: "@next/swc-win32-arm64-msvc@npm:13.4.4" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-win32-ia32-msvc@npm:13.2.1" +"@next/swc-win32-ia32-msvc@npm:13.4.4": + version: 13.4.4 + resolution: "@next/swc-win32-ia32-msvc@npm:13.4.4" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@next/swc-win32-x64-msvc@npm:13.2.1": - version: 13.2.1 - resolution: "@next/swc-win32-x64-msvc@npm:13.2.1" +"@next/swc-win32-x64-msvc@npm:13.4.4": + version: 13.4.4 + resolution: "@next/swc-win32-x64-msvc@npm:13.4.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -4549,14 +4289,18 @@ __metadata: linkType: hard "@playwright/test@npm:^1.30.0": - version: 1.30.0 - resolution: "@playwright/test@npm:1.30.0" + version: 1.34.3 + resolution: "@playwright/test@npm:1.34.3" dependencies: "@types/node": "*" - playwright-core: 1.30.0 + fsevents: 2.3.2 + playwright-core: 1.34.3 + dependenciesMeta: + fsevents: + optional: true bin: playwright: cli.js - checksum: 777432ac9cf3d0341fcd8dd265cb4c0775619d0ef48252b32a7c4d632d8038449756ec34bec873828cadbc08ba634e81176cb193304d34e699472771b7fb4d1e + checksum: b387d85f09d275ed49aac4f600c0657205b4c20979108a52e7072ef0c43ea9b2d3d6d7206869230634680ab1f8e7b03373c63555899da4293cae700320bd31e1 languageName: node linkType: hard @@ -4821,13 +4565,13 @@ __metadata: linkType: hard "@reduxjs/toolkit@npm:^1.9.0": - version: 1.9.2 - resolution: "@reduxjs/toolkit@npm:1.9.2" + version: 1.9.5 + resolution: "@reduxjs/toolkit@npm:1.9.5" dependencies: - immer: ^9.0.16 - redux: ^4.2.0 + immer: ^9.0.21 + redux: ^4.2.1 redux-thunk: ^2.4.2 - reselect: ^4.1.7 + reselect: ^4.1.8 peerDependencies: react: ^16.9.0 || ^17.0.0 || ^18 react-redux: ^7.2.1 || ^8.0.2 @@ -4836,14 +4580,14 @@ __metadata: optional: true react-redux: optional: true - checksum: 8eac4fb65aa5ef969545e4d72a81c5a7679935d08df8cc4dd955362beb0b0b8d3cb1e2252df256a50bbe0c887b797a0e2e271656d6b50cbec5d26f61da3a80d4 + checksum: 54672c5593d05208af577e948a338f23128d3aa01ef056ab0d40bcfa14400cf6566be99e11715388f12c1d7655cdf7c5c6b63cb92eb0fecf996c454a46a3914c languageName: node linkType: hard -"@remix-run/router@npm:1.3.1": - version: 1.3.1 - resolution: "@remix-run/router@npm:1.3.1" - checksum: c91cba100b13fbb83cdaf43ca66b0d9fc1ab9dfe0bc58ac80ff2a4889488bf518a111267c790350eac8c7f764cc7809402430de15bdf70282d0bd60acf06d9de +"@remix-run/router@npm:1.6.2": + version: 1.6.2 + resolution: "@remix-run/router@npm:1.6.2" + checksum: 5969d313bff6ba5c75917910090cebafda84b9d3b4b453fae6b3d60fea9f938078578ffca769c532ab7ce252cd4a207b78d1024d7c727ab80dd572e62fd3b3f2 languageName: node linkType: hard @@ -4913,13 +4657,13 @@ __metadata: linkType: hard "@rollup/plugin-node-resolve@npm:^15.0.1": - version: 15.0.1 - resolution: "@rollup/plugin-node-resolve@npm:15.0.1" + version: 15.1.0 + resolution: "@rollup/plugin-node-resolve@npm:15.1.0" dependencies: "@rollup/pluginutils": ^5.0.1 "@types/resolve": 1.20.2 deepmerge: ^4.2.2 - is-builtin-module: ^3.2.0 + is-builtin-module: ^3.2.1 is-module: ^1.0.0 resolve: ^1.22.1 peerDependencies: @@ -4927,7 +4671,7 @@ __metadata: peerDependenciesMeta: rollup: optional: true - checksum: 90e30b41626a15ebf02746a83d34b15f9fe9051ddc156a9bf785504f489947980b3bdeb7bf2f80828a9becfe472a03a96d0238328a3e3e2198a482fcac7eb3aa + checksum: 83617cdbb90cb780251e8b16dc1671e35bde90b8d4d30e008aefe706b5b643057f6299bdd3226b2a30bf5e4f807a880169de3faa47b9f2ba38d39f294f85f951 languageName: node linkType: hard @@ -4958,9 +4702,9 @@ __metadata: linkType: hard "@rushstack/eslint-patch@npm:^1.1.0": - version: 1.2.0 - resolution: "@rushstack/eslint-patch@npm:1.2.0" - checksum: faa749faae0e83c26ae9eb00ad36a897ac78f3cf27da8e8ff21c00bcf7973b598d823d8f2b3957ef66079288bcf577f94df831eae2d65f3f68d8ca32f18b6aff + version: 1.3.0 + resolution: "@rushstack/eslint-patch@npm:1.3.0" + checksum: 2860b4adeebbab9a13bff68a2737ecf660fe199a3d2eca45b0359132ff92052467622ac4b22837958bc3ad611714d5f2b662db98ffdc5db34df604b4d502d347 languageName: node linkType: hard @@ -5034,25 +4778,14 @@ __metadata: languageName: node linkType: hard -"@sanity/client@npm:^5.2.0": - version: 5.2.2 - resolution: "@sanity/client@npm:5.2.2" - dependencies: - "@sanity/eventsource": ^4 - get-it: ^8 - rxjs: ^7 - checksum: 0a62f1246f5bb9eddfb9e05ac84e8e197a392799cfb0abac7bc6f00f28a16c801ca6381e79171f8fee78f936202687b20697b0818f1fb4b4bd9a0b0400060100 - languageName: node - linkType: hard - "@sanity/client@npm:^6.0.0, @sanity/client@npm:^6.1.1": - version: 6.1.1 - resolution: "@sanity/client@npm:6.1.1" + version: 6.1.2 + resolution: "@sanity/client@npm:6.1.2" dependencies: "@sanity/eventsource": ^5.0.0 get-it: ^8.1.0 rxjs: ^7.0.0 - checksum: 7a9924f47e19f276bb1a6e616e200156750ad04d9f418dd3e42daa5091fea0eeed37b43d87de087cb0606d0d0adb03603cb6e8c53191fdc5705c12b7befedf26 + checksum: 6e67113d6603fdb808c10dfce6d73ed41fdb52308cbac1338765da4a98a026029dbc57517f04645f76e173517b852cc828ec6fda362535fd740440898f9706d9 languageName: node linkType: hard @@ -5107,17 +4840,10 @@ __metadata: languageName: node linkType: hard -"@sanity/color@npm:^2.1.20, @sanity/color@npm:^2.2.2": - version: 2.2.2 - resolution: "@sanity/color@npm:2.2.2" - checksum: 3d481c0e0a07c522de68517d84bf9c10e15d36d4c490c72f199235872b0bcdeaffd2b49dbbb26903140a0fcb19f5132fe77b451321fcd21a354e3c71bd28771a - languageName: node - linkType: hard - -"@sanity/color@npm:^2.2.3": - version: 2.2.3 - resolution: "@sanity/color@npm:2.2.3" - checksum: 3638b75cb8b72b5036c8ae615bde18d4c6033963098c1912bd14d6aaf59508c16eae9536299d2963edde2e3abe138849dc9705e09a5d6ee67049ed2e15738f3a +"@sanity/color@npm:^2.1.20, @sanity/color@npm:^2.2.3": + version: 2.2.5 + resolution: "@sanity/color@npm:2.2.5" + checksum: a4d6cdb1035e2dc5077e54dff422b99c1ad4aa00a33c1700fd1f8da3b201d6ac54fda2154fa719e8adce9ab2a5ca3ed4de95aff96e9cd1ed212355a362672625 languageName: node linkType: hard @@ -5142,16 +4868,6 @@ __metadata: languageName: node linkType: hard -"@sanity/eventsource@npm:^4": - version: 4.0.0 - resolution: "@sanity/eventsource@npm:4.0.0" - dependencies: - event-source-polyfill: 1.0.25 - eventsource: ^2.0.2 - checksum: ae1f950ff126fd37cea5cbb2adaa952ab4a56221b2af5e284ebd113adc0754b4a8fdea9d6d7e0022058425a72b158342cb1f1a8d799b22f53f6d995065cbc141 - languageName: node - linkType: hard - "@sanity/export@npm:3.11.1": version: 3.11.1 resolution: "@sanity/export@npm:3.11.1" @@ -5199,7 +4915,7 @@ __metadata: languageName: node linkType: hard -"@sanity/icons@npm:2.3.1, @sanity/icons@npm:^2.3.0": +"@sanity/icons@npm:2.3.1, @sanity/icons@npm:^2.0.0, @sanity/icons@npm:^2.2.2, @sanity/icons@npm:^2.3.0": version: 2.3.1 resolution: "@sanity/icons@npm:2.3.1" peerDependencies: @@ -5217,15 +4933,6 @@ __metadata: languageName: node linkType: hard -"@sanity/icons@npm:^2.0.0, @sanity/icons@npm:^2.2.2": - version: 2.2.2 - resolution: "@sanity/icons@npm:2.2.2" - peerDependencies: - react: ^18 - checksum: c0d7b428fce9f15c26460f4dc119d0855cd5b1d31568a33733737f251dd9f9fd863bc9b01e9b48f6b20f114814ca3e31683698c1e0b69c22b387d411fe8e7295 - languageName: node - linkType: hard - "@sanity/image-url@npm:1.0.2, @sanity/image-url@npm:^1.0.2": version: 1.0.2 resolution: "@sanity/image-url@npm:1.0.2" @@ -5266,7 +4973,7 @@ __metadata: languageName: node linkType: hard -"@sanity/incompatible-plugin@npm:^1, @sanity/incompatible-plugin@npm:^1.0.4": +"@sanity/incompatible-plugin@npm:^1.0.0, @sanity/incompatible-plugin@npm:^1.0.4": version: 1.0.4 resolution: "@sanity/incompatible-plugin@npm:1.0.4" dependencies: @@ -5323,20 +5030,20 @@ __metadata: languageName: node linkType: hard -"@sanity/preview-kit@npm:^1.5.0, @sanity/preview-kit@npm:^1.5.3": - version: 1.5.3 - resolution: "@sanity/preview-kit@npm:1.5.3" +"@sanity/preview-kit@npm:^1.5.3, @sanity/preview-kit@npm:^1.5.4": + version: 1.5.4 + resolution: "@sanity/preview-kit@npm:1.5.4" dependencies: "@sanity/client": ^6.1.1 "@sanity/eventsource": ^5.0.0 "@sanity/groq-store": ^2.1.0 - "@vercel/stega": ^0.0.4 + "@vercel/stega": ^0.0.5 lodash.isplainobject: ^4.0.6 suspend-react: ^0.0.10 tiny-invariant: ^1.3.1 peerDependencies: react: ^18.0.0 - checksum: 2d7b4edeba277dd61b48dd43f267ea74973a6bac03f9d62665d7c55a0974f2eb10effa5424c29eb7d7f77b5c5be2c3709931bff79d1805a721fd2233e10836e9 + checksum: 4152f9d6ff93c61c3df34c7956da86cf689a8ab57969ba8e0eb960bc1d3efc8a646e75a47c6d8d12a56b268ebaf6d7d898bb322b0dd885f912f22514f84cda66 languageName: node linkType: hard @@ -5391,12 +5098,12 @@ __metadata: linkType: hard "@sanity/types@npm:3": - version: 3.8.0 - resolution: "@sanity/types@npm:3.8.0" + version: 3.11.3 + resolution: "@sanity/types@npm:3.11.3" dependencies: - "@sanity/client": ^5.2.0 + "@sanity/client": ^6.1.1 "@types/react": ^18.0.25 - checksum: 4a4283152da03738ac6aa4c612ceec9d09a68c4f5e36348d907d244958a34e3069e37c7028ca873cfbc4f6247118753ff2b0bb541a8ba04dcb98582c40858c3e + checksum: 73ac3eecbdc1e089108353436f8ee2e830ad9b362b8fad8f3c954e9b76c3cbc94d8c537087f94fc17d1b8e455f7b1384cdbb17a8e5119bb1256434df8e2c1e69 languageName: node linkType: hard @@ -5410,47 +5117,9 @@ __metadata: languageName: node linkType: hard -"@sanity/ui@npm:^1, @sanity/ui@npm:^1.0.0": - version: 1.2.2 - resolution: "@sanity/ui@npm:1.2.2" - dependencies: - "@floating-ui/react-dom": 1.2.2 - "@sanity/color": ^2.2.2 - "@sanity/icons": ^2.2.2 - csstype: ^3.1.1 - framer-motion: ^9.0.1 - react-refractor: ^2.1.7 - peerDependencies: - react: ^18 - react-dom: ^18 - react-is: ^18 - styled-components: ^5.2 - checksum: ec94c5117f6df613a7d048357020b65d9aeaaa69a4fceb3ac8b298cd28ff928943c3cc432cd6f17a0bd9521c04de01d0fac178542b57997f93dfe365eac591c7 - languageName: node - linkType: hard - -"@sanity/ui@npm:^1.3.0": - version: 1.3.0 - resolution: "@sanity/ui@npm:1.3.0" - dependencies: - "@floating-ui/react-dom": 1.1.1 - "@sanity/color": ^2.2.3 - "@sanity/icons": ^2.2.2 - csstype: ^3.1.1 - framer-motion: ^9.0.4 - react-refractor: ^2.1.7 - peerDependencies: - react: ^18 - react-dom: ^18 - react-is: ^18 - styled-components: ^5.2 - checksum: b6cb21ff08815fb96a404df917c9a1c9439cce949f71d199ca9c42c7e28d4fcc229ebfc9efd2118c945d7470f65df893919ce29e7eee09c68c0e8138e06db636 - languageName: node - linkType: hard - -"@sanity/ui@npm:^1.3.3": - version: 1.3.3 - resolution: "@sanity/ui@npm:1.3.3" +"@sanity/ui@npm:^1.0.0, @sanity/ui@npm:^1.3.3": + version: 1.4.0 + resolution: "@sanity/ui@npm:1.4.0" dependencies: "@floating-ui/react-dom": 1.1.1 "@sanity/color": ^2.2.3 @@ -5463,7 +5132,7 @@ __metadata: react-dom: ^18 react-is: ^18 styled-components: ^5.2 - checksum: 31d9971f2086d559bf7d177f70cd91eb132fd3acc529c1f10ba6033c925c9dad7d1abd37065ef1c1578e7f82967909fcd3dddde888a4cab8b8a7402c0c99739e + checksum: c457e74fc008912fb53e591358dd79b811ee94864438d68d319f19e5c9834a1d067b4d2d64ae5062f58a5d88e6142ad1738ebee451bd2fb8b789a20b67d01afd languageName: node linkType: hard @@ -5548,7 +5217,7 @@ __metadata: languageName: node linkType: hard -"@sideway/formula@npm:^3.0.0": +"@sideway/formula@npm:^3.0.1": version: 3.0.1 resolution: "@sideway/formula@npm:3.0.1" checksum: e4beeebc9dbe2ff4ef0def15cec0165e00d1612e3d7cea0bc9ce5175c3263fc2c818b679bd558957f49400ee7be9d4e5ac90487e1625b4932e15c4aa7919c57a @@ -5563,27 +5232,27 @@ __metadata: linkType: hard "@sinclair/typebox@npm:^0.25.16": - version: 0.25.21 - resolution: "@sinclair/typebox@npm:0.25.21" - checksum: 763af1163fe4eabee9b914d4e4548a39fbba3287d2b3b1ff043c1da3c5a321e99d50a3ca94eb182988131e00b006a6f019799cde8da2f61e2f118b30b0276a00 + version: 0.25.24 + resolution: "@sinclair/typebox@npm:0.25.24" + checksum: 10219c58f40b8414c50b483b0550445e9710d4fe7b2c4dccb9b66533dd90ba8e024acc776026cebe81e87f06fa24b07fdd7bc30dd277eb9cc386ec50151a3026 languageName: node linkType: hard -"@sinonjs/commons@npm:^2.0.0": - version: 2.0.0 - resolution: "@sinonjs/commons@npm:2.0.0" +"@sinonjs/commons@npm:^3.0.0": + version: 3.0.0 + resolution: "@sinonjs/commons@npm:3.0.0" dependencies: type-detect: 4.0.8 - checksum: 5023ba17edf2b85ed58262313b8e9b59e23c6860681a9af0200f239fe939e2b79736d04a260e8270ddd57196851dde3ba754d7230be5c5234e777ae2ca8af137 + checksum: b4b5b73d4df4560fb8c0c7b38c7ad4aeabedd362f3373859d804c988c725889cde33550e4bcc7cd316a30f5152a2d1d43db71b6d0c38f5feef71fd8d016763f8 languageName: node linkType: hard "@sinonjs/fake-timers@npm:^10.0.2": - version: 10.0.2 - resolution: "@sinonjs/fake-timers@npm:10.0.2" + version: 10.2.0 + resolution: "@sinonjs/fake-timers@npm:10.2.0" dependencies: - "@sinonjs/commons": ^2.0.0 - checksum: c62aa98e7cefda8dedc101ce227abc888dc46b8ff9706c5f0a8dfd9c3ada97d0a5611384738d9ba0b26b59f99c2ba24efece8e779bb08329e9e87358fa309824 + "@sinonjs/commons": ^3.0.0 + checksum: 586c76e1dd90d03b0c4e754f2011325b38ac6055878c81c52434c900f36d9d245438c96ef69e08e28d9fbecf2335fb347b67850962d8b6e539dd7359d8c62802 languageName: node linkType: hard @@ -6028,17 +5697,17 @@ __metadata: languageName: node linkType: hard -"@storybook/channel-postmessage@npm:7.0.10": - version: 7.0.10 - resolution: "@storybook/channel-postmessage@npm:7.0.10" +"@storybook/channel-postmessage@npm:7.0.18": + version: 7.0.18 + resolution: "@storybook/channel-postmessage@npm:7.0.18" dependencies: - "@storybook/channels": 7.0.10 - "@storybook/client-logger": 7.0.10 - "@storybook/core-events": 7.0.10 + "@storybook/channels": 7.0.18 + "@storybook/client-logger": 7.0.18 + "@storybook/core-events": 7.0.18 "@storybook/global": ^5.0.0 qs: ^6.10.0 telejson: ^7.0.3 - checksum: 5fe13e6be29ca1a1ec67f2b0f838e837d5ed7b386dfc1a7007bef071822854b9e4fe7153da3b679de32a0644d66fb5f1b1c5e095140d24ed1457bb4b8deb8507 + checksum: 04b2dfd36462195566e00269901f919743b9a65faa79f9708e35f58638f37cb4885332763d6602047d2e7a2afdf69d5da8af4afd5f43f614741357027fd54dbd languageName: node linkType: hard @@ -6068,10 +5737,10 @@ __metadata: languageName: node linkType: hard -"@storybook/channels@npm:7.0.10": - version: 7.0.10 - resolution: "@storybook/channels@npm:7.0.10" - checksum: 6aed7cc0ef8ef3f398112c79ed4eb61c8b6ba4bbb7ac29125f9dd2e3ccf7f0d13cca0e91ca237c7464e32fffd6797ce1ac96dfe25ea8666dd0af612340ee7d2a +"@storybook/channels@npm:7.0.18": + version: 7.0.18 + resolution: "@storybook/channels@npm:7.0.18" + checksum: 582ac0a8766dfb9a927363124b96b3afec0683165c9b5bc916e0d483ab983173ad71723f19d6b278da2cbc5c6220929bf344a855a51fc9871d00425dcc0bde4a languageName: node linkType: hard @@ -6131,12 +5800,12 @@ __metadata: languageName: node linkType: hard -"@storybook/client-logger@npm:7.0.10, @storybook/client-logger@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": - version: 7.0.10 - resolution: "@storybook/client-logger@npm:7.0.10" +"@storybook/client-logger@npm:7.0.18, @storybook/client-logger@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": + version: 7.0.18 + resolution: "@storybook/client-logger@npm:7.0.18" dependencies: "@storybook/global": ^5.0.0 - checksum: 6a1824476bc49304e0d6274c6f53c70a018e390430accfd942a5e288a1d13be7e4851c8e8a9cde5535bac711c42c6531739a6eb36d878b388e45fe498709f3ef + checksum: 273a3a6997865c1518a4d6d5177ed2aa34b638caffa5d317d09a2c37092f4b2f9bc9fe0db64f3b1d8b14dc9d2feb2666ff07aa54e3568ef101ed345350920945 languageName: node linkType: hard @@ -6226,10 +5895,10 @@ __metadata: languageName: node linkType: hard -"@storybook/core-events@npm:7.0.10": - version: 7.0.10 - resolution: "@storybook/core-events@npm:7.0.10" - checksum: 4bc6f35f763524aabc3d41307be427049dc93562cfb1ff79a0788fba8268c29b6438b1691e9bfecd17206a6f4e5705dad2f3b30ebf7d2f89376290139babc044 +"@storybook/core-events@npm:7.0.18": + version: 7.0.18 + resolution: "@storybook/core-events@npm:7.0.18" + checksum: 1df1fd422353b717b6f7e3d7ffec107bf8dd2afcfd9725a4240034542152225844e089498f393aa19e2771226e38f324644e6346477f1aca74539a070ef4dce3 languageName: node linkType: hard @@ -6378,15 +6047,15 @@ __metadata: linkType: hard "@storybook/instrumenter@npm:^7.0.0-beta.0 || ^7.0.0-rc.0 || ^7.0.0": - version: 7.0.10 - resolution: "@storybook/instrumenter@npm:7.0.10" + version: 7.0.18 + resolution: "@storybook/instrumenter@npm:7.0.18" dependencies: - "@storybook/channels": 7.0.10 - "@storybook/client-logger": 7.0.10 - "@storybook/core-events": 7.0.10 + "@storybook/channels": 7.0.18 + "@storybook/client-logger": 7.0.18 + "@storybook/core-events": 7.0.18 "@storybook/global": ^5.0.0 - "@storybook/preview-api": 7.0.10 - checksum: c4687c61e30bd3b16652f0ba09638f0ae0b39ffc6eeef629ec17bc0b66ce819c3fa5dedba0a0832d3ae79a1ab1bc1bc9d8dd807c69b3a0fb246592b5a4cffee0 + "@storybook/preview-api": 7.0.18 + checksum: 9803e2d6944ef6e18ee410ca03189a46cdd33f82a7deec2a6e226926cd98e551392bc27a9af42857e41ca2ba29285f694c1683d0a28504fcf06fda17b58cff4f languageName: node linkType: hard @@ -6436,9 +6105,9 @@ __metadata: linkType: hard "@storybook/mdx2-csf@npm:^1.0.0": - version: 1.0.0 - resolution: "@storybook/mdx2-csf@npm:1.0.0" - checksum: 3a5e7f71dff1d62cccc8539eb55a38694f2864dc424ae25757a847e658816f19e1db2e06ac2aa270f8219e4fce34bae68a80ae403792d58e7017597385a8934f + version: 1.1.0 + resolution: "@storybook/mdx2-csf@npm:1.1.0" + checksum: 5ccdb13f4e59b989499f76e54ffaffb96b5710a696346efe19989b3373f375703adf516780894b270fa64a7e765b55274dc18575fc4a84e7fa92b844a4467c5d languageName: node linkType: hard @@ -6461,17 +6130,17 @@ __metadata: languageName: node linkType: hard -"@storybook/preview-api@npm:7.0.10": - version: 7.0.10 - resolution: "@storybook/preview-api@npm:7.0.10" +"@storybook/preview-api@npm:7.0.18": + version: 7.0.18 + resolution: "@storybook/preview-api@npm:7.0.18" dependencies: - "@storybook/channel-postmessage": 7.0.10 - "@storybook/channels": 7.0.10 - "@storybook/client-logger": 7.0.10 - "@storybook/core-events": 7.0.10 + "@storybook/channel-postmessage": 7.0.18 + "@storybook/channels": 7.0.18 + "@storybook/client-logger": 7.0.18 + "@storybook/core-events": 7.0.18 "@storybook/csf": ^0.1.0 "@storybook/global": ^5.0.0 - "@storybook/types": 7.0.10 + "@storybook/types": 7.0.18 "@types/qs": ^6.9.5 dequal: ^2.0.2 lodash: ^4.17.21 @@ -6480,7 +6149,7 @@ __metadata: synchronous-promise: ^2.0.15 ts-dedent: ^2.0.0 util-deprecate: ^1.0.2 - checksum: 04063b650ae4de687b368de0fbec62b1acddadcedddd70ce471b0dd7819bd574af965834985133a7b6a8409dbdf4196b1206d84ee71737ed4abc0c7c01ed1612 + checksum: 2ec6e5c66b2ad698dc4581465a41124efaae40c2c51675585137b1e86dcdc44b679355ccaa07d9fb44f90a465d76b22ee224cafb678417e171cf3b07b99da117 languageName: node linkType: hard @@ -6654,15 +6323,15 @@ __metadata: languageName: node linkType: hard -"@storybook/types@npm:7.0.10": - version: 7.0.10 - resolution: "@storybook/types@npm:7.0.10" +"@storybook/types@npm:7.0.18": + version: 7.0.18 + resolution: "@storybook/types@npm:7.0.18" dependencies: - "@storybook/channels": 7.0.10 + "@storybook/channels": 7.0.18 "@types/babel__core": ^7.0.0 "@types/express": ^4.7.0 file-system-cache: ^2.0.0 - checksum: c6ce373863c8c33f8a2e1409b6452934762f3e89b152952f558e1970e25c8b9dd32a5f71a239ca483736bd5ecc2b265bec413dada23349791dac6ace532dd11b + checksum: 63140bb7f01125ec3cb61cf4dd493587d8766702081f11117f1d8f8156a63433ab8d15c5bb13f57e0e9877927d7ab52164e256ca62cafc5c4e83699db63a5f7c languageName: node linkType: hard @@ -6695,11 +6364,11 @@ __metadata: linkType: hard "@svgr/babel-plugin-remove-jsx-attribute@npm:*": - version: 6.5.0 - resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:6.5.0" + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-attribute@npm:8.0.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 7a4dfc1345f5855b010684e9c5301731842bf91d72b82ce5cc4c82c80b94de1036e447a8a00fb306a6dd575cb4c640d8ce3cfee6607ddbb804796a77284c7f22 + checksum: ff992893c6c4ac802713ba3a97c13be34e62e6d981c813af40daabcd676df68a72a61bd1e692bb1eda3587f1b1d700ea462222ae2153bb0f46886632d4f88d08 languageName: node linkType: hard @@ -6711,11 +6380,11 @@ __metadata: linkType: hard "@svgr/babel-plugin-remove-jsx-empty-expression@npm:*": - version: 6.5.0 - resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:6.5.0" + version: 8.0.0 + resolution: "@svgr/babel-plugin-remove-jsx-empty-expression@npm:8.0.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 3e173f720d530f9f71f8506f3eb78583eec3d87d66e385efe1ef3b3ebfc4e3680ec30f36414726de6a163e99ca69f54886022967e49476dea522267e1986936e + checksum: 0fb691b63a21bac00da3aa2dccec50d0d5a5b347ff408d60803b84410d8af168f2656e4ba1ee1f24dab0ae4e4af77901f2928752bb0434c1f6788133ec599ec8 languageName: node linkType: hard @@ -6980,25 +6649,25 @@ __metadata: languageName: node linkType: hard -"@swc/helpers@npm:0.4.14": - version: 0.4.14 - resolution: "@swc/helpers@npm:0.4.14" +"@swc/helpers@npm:0.5.1": + version: 0.5.1 + resolution: "@swc/helpers@npm:0.5.1" dependencies: tslib: ^2.4.0 - checksum: 273fd3f3fc461a92f3790cc551ea054745c6d6959afbe1232e6d7aa1c722bbc114d308aab96bef5c78fc0303c85c7b472ef00e2253251cc89737f3b1af56e5a5 + checksum: 71e0e27234590435e4c62b97ef5e796f88e786841a38c7116a5e27a3eafa7b9ead7cdec5249b32165902076de78446945311c973e59bddf77c1e24f33a8f272a languageName: node linkType: hard "@tanem/react-nprogress@npm:^5.0.0": - version: 5.0.26 - resolution: "@tanem/react-nprogress@npm:5.0.26" + version: 5.0.40 + resolution: "@tanem/react-nprogress@npm:5.0.40" dependencies: - "@babel/runtime": ^7.20.13 + "@babel/runtime": ^7.21.5 hoist-non-react-statics: ^3.3.2 peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: c9c1e4a669949aa9838d0c555ab0739ebb4b3c375c6c8edf27728ceded249bdffe4e661c2feb4ab8734154b041dc90c0aef7735272653f5715e51d90db12914d + checksum: 91c8cbfb2fb467a27801a570d8f7d68dbcfa8bfdeb317ee6aee39bcd2b4c8c090da0206a503f9ddb348421ab8f63dc780c78f57f8116eb23f44584e3f3078651 languageName: node linkType: hard @@ -7139,9 +6808,9 @@ __metadata: linkType: hard "@tsconfig/node16@npm:^1.0.2": - version: 1.0.3 - resolution: "@tsconfig/node16@npm:1.0.3" - checksum: 3a8b657dd047495b7ad23437d6afd20297ce90380ff0bdee93fc7d39a900dbd8d9e26e53ff6b465e7967ce2adf0b218782590ce9013285121e6a5928fbd6819f + version: 1.0.4 + resolution: "@tsconfig/node16@npm:1.0.4" + checksum: 202319785901f942a6e1e476b872d421baec20cf09f4b266a1854060efbf78cde16a4d256e8bc949d31e6cd9a90f1e8ef8fb06af96a65e98338a2b6b0de0a0ff languageName: node linkType: hard @@ -7160,15 +6829,15 @@ __metadata: linkType: hard "@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14": - version: 7.20.0 - resolution: "@types/babel__core@npm:7.20.0" + version: 7.20.1 + resolution: "@types/babel__core@npm:7.20.1" dependencies: "@babel/parser": ^7.20.7 "@babel/types": ^7.20.7 "@types/babel__generator": "*" "@types/babel__template": "*" "@types/babel__traverse": "*" - checksum: 49b601a0a7637f1f387442c8156bd086cfd10ff4b82b0e1994e73a6396643b5435366fb33d6b604eade8467cca594ef97adcbc412aede90bb112ebe88d0ad6df + checksum: 9fcd9691a33074802d9057ff70b0e3ff3778f52470475b68698a0f6714fbe2ccb36c16b43dc924eb978cd8a81c1f845e5ff4699e7a47606043b539eb8c6331a8 languageName: node linkType: hard @@ -7192,11 +6861,11 @@ __metadata: linkType: hard "@types/babel__traverse@npm:*, @types/babel__traverse@npm:^7.0.6": - version: 7.18.3 - resolution: "@types/babel__traverse@npm:7.18.3" + version: 7.20.0 + resolution: "@types/babel__traverse@npm:7.20.0" dependencies: - "@babel/types": ^7.3.0 - checksum: d20953338b2f012ab7750932ece0a78e7d1645b0a6ff42d49be90f55e9998085da1374a9786a7da252df89555c6586695ba4d1d4b4e88ab2b9f306bcd35e00d3 + "@babel/types": ^7.20.7 + checksum: 030d647a61baa70aff5bc1193227694098191578e45e18720db3a14614f1827664d609630a668ad75cddffd7b80cd14a55455364239d1f14ea55f1f4d7d2c9ef languageName: node linkType: hard @@ -7220,9 +6889,9 @@ __metadata: linkType: hard "@types/d3-array@npm:^3.0.3": - version: 3.0.4 - resolution: "@types/d3-array@npm:3.0.4" - checksum: b0e398365fc1f638d48442e865e036d671c731b2b18f7a92e5172db1f60f5a38d4cd992693a29ad64b38e7ba981eb8c63a2aef95fbdcfbc4bf8926a9cb9ca978 + version: 3.0.5 + resolution: "@types/d3-array@npm:3.0.5" + checksum: c0014042f75dc77ff4749f6a7a78074aa73e63e5b6a985ac79a0abf3e3d943b19ddd3fbfcfcd11124f25b7f4b97cd0948eec84b2e0783cd617b49c593de695f0 languageName: node linkType: hard @@ -7289,9 +6958,9 @@ __metadata: linkType: hard "@types/detect-port@npm:^1.3.0": - version: 1.3.2 - resolution: "@types/detect-port@npm:1.3.2" - checksum: e4678244fbe8801014798b3efb967c886e6fc0fe94fb771a1be9558b35c68910b23bd30984df4a276b927820ce436b244506fb0972116d1b18506ac96bfd1a50 + version: 1.3.3 + resolution: "@types/detect-port@npm:1.3.3" + checksum: 0dadb520286a5cfd2832d12189dc795cc3589dfd9166d1b033453fb94b0212c4067a847045833e85b0f7c73135c944cb4ccb49c8e683491845c2e8a3da5d5c1c languageName: node linkType: hard @@ -7310,9 +6979,9 @@ __metadata: linkType: hard "@types/ejs@npm:^3.1.1": - version: 3.1.1 - resolution: "@types/ejs@npm:3.1.1" - checksum: 12fa444920aaa70af2fae4424fa62b49c23b31a37129c428b7c9f9068e58c0696b4e5601b0449f87bae8794e039c679a43651c356c34f17d1bb460456dd41441 + version: 3.1.2 + resolution: "@types/ejs@npm:3.1.2" + checksum: e4f0745b6ed53a63c08bdfdeb019a7d0e0c400896722b44d6732b4ee6bf6061d2dc965206186b8b0ae2ecd71303c29f1af1feddbca2df0acbd7bd234a74ca518 languageName: node linkType: hard @@ -7324,9 +6993,9 @@ __metadata: linkType: hard "@types/estree@npm:*, @types/estree@npm:^1.0.0": - version: 1.0.0 - resolution: "@types/estree@npm:1.0.0" - checksum: 910d97fb7092c6738d30a7430ae4786a38542023c6302b95d46f49420b797f21619cdde11fa92b338366268795884111c2eb10356e4bd2c8ad5b92941e9e6443 + version: 1.0.1 + resolution: "@types/estree@npm:1.0.1" + checksum: e9aa175eacb797216fafce4d41e8202c7a75555bc55232dee0f9903d7171f8f19f0ae7d5191bb1a88cb90e65468be508c0df850a9fb81b4433b293a5a749899d languageName: node linkType: hard @@ -7359,13 +7028,14 @@ __metadata: linkType: hard "@types/express-serve-static-core@npm:^4.17.33": - version: 4.17.33 - resolution: "@types/express-serve-static-core@npm:4.17.33" + version: 4.17.35 + resolution: "@types/express-serve-static-core@npm:4.17.35" dependencies: "@types/node": "*" "@types/qs": "*" "@types/range-parser": "*" - checksum: dce580d16b85f207445af9d4053d66942b27d0c72e86153089fa00feee3e96ae336b7bedb31ed4eea9e553c99d6dd356ed6e0928f135375d9f862a1a8015adf2 + "@types/send": "*" + checksum: cc8995d10c6feda475ec1b3a0e69eb0f35f21ab6b49129ad5c6f279e0bc5de8175bc04ec51304cb79a43eec3ed2f5a1e01472eb6d5f827b8c35c6ca8ad24eb6e languageName: node linkType: hard @@ -7396,12 +7066,12 @@ __metadata: linkType: hard "@types/glob@npm:*, @types/glob@npm:^8.0.0": - version: 8.0.1 - resolution: "@types/glob@npm:8.0.1" + version: 8.1.0 + resolution: "@types/glob@npm:8.1.0" dependencies: "@types/minimatch": ^5.1.2 "@types/node": "*" - checksum: 98f3d0403c09638348a2f3b30aac2a3d6bdc306bce3ceb868f4794fef4f02727ccdf0dab0c7b7d65fd38a1afa1e48f02de56d29d2babe94ee9b204ca54acb31f + checksum: 9101f3a9061e40137190f70626aa0e202369b5ec4012c3fabe6f5d229cce04772db9a94fa5a0eb39655e2e4ad105c38afbb4af56a56c0996a8c7d4fc72350e3d languageName: node linkType: hard @@ -7494,17 +7164,7 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:*, @types/jest@npm:^29.0.0": - version: 29.4.0 - resolution: "@types/jest@npm:29.4.0" - dependencies: - expect: ^29.0.0 - pretty-format: ^29.0.0 - checksum: 23760282362a252e6690314584d83a47512d4cd61663e957ed3398ecf98195fe931c45606ee2f9def12f8ed7d8aa102d492ec42d26facdaf8b78094a31e6568e - languageName: node - linkType: hard - -"@types/jest@npm:>=26.0.0": +"@types/jest@npm:*, @types/jest@npm:>=26.0.0, @types/jest@npm:^29.0.0": version: 29.5.1 resolution: "@types/jest@npm:29.5.1" dependencies: @@ -7536,9 +7196,9 @@ __metadata: linkType: hard "@types/json-schema@npm:^7.0.5, @types/json-schema@npm:^7.0.9": - version: 7.0.11 - resolution: "@types/json-schema@npm:7.0.11" - checksum: 527bddfe62db9012fccd7627794bd4c71beb77601861055d87e3ee464f2217c85fca7a4b56ae677478367bbd248dbde13553312b7d4dbc702a2f2bbf60c4018d + version: 7.0.12 + resolution: "@types/json-schema@npm:7.0.12" + checksum: 00239e97234eeb5ceefb0c1875d98ade6e922bfec39dd365ec6bd360b5c2f825e612ac4f6e5f1d13601b8b30f378f15e6faa805a3a732f4a1bbe61915163d293 languageName: node linkType: hard @@ -7568,16 +7228,16 @@ __metadata: linkType: hard "@types/lodash@npm:*, @types/lodash@npm:^4.14.149, @types/lodash@npm:^4.14.167, @types/lodash@npm:^4.14.175": - version: 4.14.191 - resolution: "@types/lodash@npm:4.14.191" - checksum: ba0d5434e10690869f32d5ea49095250157cae502f10d57de0a723fd72229ce6c6a4979576f0f13e0aa9fbe3ce2457bfb9fa7d4ec3d6daba56730a51906d1491 + version: 4.14.195 + resolution: "@types/lodash@npm:4.14.195" + checksum: 39b75ca635b3fa943d17d3d3aabc750babe4c8212485a4df166fe0516e39288e14b0c60afc6e21913cc0e5a84734633c71e617e2bd14eaa1cf51b8d7799c432e languageName: node linkType: hard "@types/mdx@npm:^2.0.0": - version: 2.0.3 - resolution: "@types/mdx@npm:2.0.3" - checksum: 41deb51c29535913af01d25f0e1414cfb5a6948d0e60e77e4aca895694de48bf0ac69c5a81fe2d9617d726cb253001ef82a65b683d5ef51987d15aa1931d086b + version: 2.0.5 + resolution: "@types/mdx@npm:2.0.5" + checksum: 1069baff0b2d0fb0bc724748e2386af626cc30f8ef99e680afb4dee566ed0aeabd31cea774212a7033f491e594a0acc234116078b252cba94ac413f91eb585a3 languageName: node linkType: hard @@ -7595,6 +7255,13 @@ __metadata: languageName: node linkType: hard +"@types/mime@npm:^1": + version: 1.3.2 + resolution: "@types/mime@npm:1.3.2" + checksum: 0493368244cced1a69cb791b485a260a422e6fcc857782e1178d1e6f219f1b161793e9f87f5fae1b219af0f50bee24fcbe733a18b4be8fdd07a38a8fb91146fd + languageName: node + linkType: hard + "@types/minimatch@npm:*, @types/minimatch@npm:^5.1.2": version: 5.1.2 resolution: "@types/minimatch@npm:5.1.2" @@ -7617,19 +7284,19 @@ __metadata: linkType: hard "@types/node-fetch@npm:^2.5.7": - version: 2.6.2 - resolution: "@types/node-fetch@npm:2.6.2" + version: 2.6.4 + resolution: "@types/node-fetch@npm:2.6.4" dependencies: "@types/node": "*" form-data: ^3.0.0 - checksum: 6f73b1470000d303d25a6fb92875ea837a216656cb7474f66cdd67bb014aa81a5a11e7ac9c21fe19bee9ecb2ef87c1962bceeaec31386119d1ac86e4c30ad7a6 + checksum: f3e1d881bb42269e676ecaf49f0e096ab345e22823a2b2d071d60619414817fe02df48a31a8d05adb23054028a2a65521bdb3906ceb763ab6d3339c8d8775058 languageName: node linkType: hard "@types/node@npm:*": - version: 18.11.19 - resolution: "@types/node@npm:18.11.19" - checksum: d7cd19fcfc59cbdd3f9ba0b4072cb7adc21bd575bd8eb7d7e698975e63564aaa83f03434f32b12331f84f73d0b369d9cbe2371e359d9d7f5c3361f4987f4f7da + version: 20.2.5 + resolution: "@types/node@npm:20.2.5" + checksum: 38ce7c7e9d76880dc632f71d71e0d5914fcda9d5e9a7095d6c339abda55ca4affb0f2a882aeb29398f8e09d2c5151f0b6586c81c8ccdfe529c34b1ea3337425e languageName: node linkType: hard @@ -7641,9 +7308,9 @@ __metadata: linkType: hard "@types/node@npm:^16.0.0": - version: 16.18.12 - resolution: "@types/node@npm:16.18.12" - checksum: fc3271182414f8593018ef8f00b4718116a92f463f619081bd399d9460e7861e1dd7eebc7cf94c23567e418ff397babed077011711aae8d47171b5a81c5bd71d + version: 16.18.34 + resolution: "@types/node@npm:16.18.34" + checksum: 35c0ffe09687578d002ceb7e706d0ba450546aeb3d2716f28691f2af0063bd274dbde0f741d087ea217f2a8db413eb700d22dfb4f08a67986ff801423bd7be8d languageName: node linkType: hard @@ -7655,9 +7322,9 @@ __metadata: linkType: hard "@types/node@npm:^18.15.11": - version: 18.16.14 - resolution: "@types/node@npm:18.16.14" - checksum: c11cb3c787236414efe58240ae71854971592554d82ff9d201876ce7cafd51c37aaa001c63602d002e8238614d7331bd6d48ac4c1c0caa826799980b6846fb08 + version: 18.16.16 + resolution: "@types/node@npm:18.16.16" + checksum: 0efad726dd1e0bef71c392c708fc5d78c5b39c46b0ac5186fee74de4ccb1b2e847b3fa468da67d62812f56569da721b15bf31bdc795e6c69b56c73a45079ed2d languageName: node linkType: hard @@ -7744,29 +7411,29 @@ __metadata: linkType: hard "@types/react-dom@npm:^18.0.0": - version: 18.0.10 - resolution: "@types/react-dom@npm:18.0.10" + version: 18.2.4 + resolution: "@types/react-dom@npm:18.2.4" dependencies: "@types/react": "*" - checksum: ff8282d5005a0b1cd95fb65bf79d3d8485e4cfe2aaf052129033a178684b940014a3f4536bc20d573f8a01cf4c6f4770c74988cef7c2b5cac3041d9f172647e3 + checksum: 8301f35cf1cbfec8c723e9477aecf87774e3c168bd457d353b23c45064737213d3e8008b067c6767b7b08e4f2b3823ee239242a6c225fc91e7f8725ef8734124 languageName: node linkType: hard "@types/react-is@npm:^17.0.3": - version: 17.0.3 - resolution: "@types/react-is@npm:17.0.3" + version: 17.0.4 + resolution: "@types/react-is@npm:17.0.4" dependencies: - "@types/react": "*" - checksum: 6abb7c47d54f012272650df8a962a28bd82f219291e5ef8b4dfa7fe0bb98ae243b060bf9fbe8ceff6213141794855a006db194b490b00ffd15842ae19d0ce1f0 + "@types/react": ^17 + checksum: 4c273945795b539f6ae0efdbd917e86edfbd9a9fad12cd6724fb2216bf47d724560b7b3cd07541c3f9e86dd085b386d7020119c5db0a289fbb069524b1242586 languageName: node linkType: hard "@types/react-modal@npm:^3.13.1": - version: 3.13.1 - resolution: "@types/react-modal@npm:3.13.1" + version: 3.16.0 + resolution: "@types/react-modal@npm:3.16.0" dependencies: "@types/react": "*" - checksum: b0ad403e0051a2882e9086c6006cc342901b1c90caf760893b31717a5cbc04f86cc1ea7b5ce12a2c8350c9c09e9b344de3783404e70b7c7ea6a037d0ffd70e99 + checksum: 975c0238d81cea234a2318a7cfcb95a8e6beb7fc5341ca2311651535c6476881e8d2f2f2e1c679ca6e416c04505c748071a1fab0d3fb3e88b0a9e43060b012fe languageName: node linkType: hard @@ -7783,22 +7450,33 @@ __metadata: linkType: hard "@types/react-transition-group@npm:^4.4.0": - version: 4.4.5 - resolution: "@types/react-transition-group@npm:4.4.5" + version: 4.4.6 + resolution: "@types/react-transition-group@npm:4.4.6" dependencies: "@types/react": "*" - checksum: 265f1c74061556708ffe8d15559e35c60d6c11478c9950d3735575d2c116ca69f461d85effa06d73a613eb8b73c84fd32682feb57cf7c5f9e4284021dbca25b0 + checksum: 0872143821d7ee20a1d81e965f8b1e837837f11cd2206973f1f98655751992d9390304d58bac192c9cd923eca95bff107d8c9e3364a180240d5c2a6fd70fd7c3 languageName: node linkType: hard "@types/react@npm:*, @types/react@npm:>=16, @types/react@npm:^18.0.0, @types/react@npm:^18.0.25": - version: 18.0.27 - resolution: "@types/react@npm:18.0.27" + version: 18.2.7 + resolution: "@types/react@npm:18.2.7" + dependencies: + "@types/prop-types": "*" + "@types/scheduler": "*" + csstype: ^3.0.2 + checksum: caa5da4cf929766738ec789301dc6fb6624bd48dd317d851c4c9b84b1f47cd8ebe17fe01398cadaa0bc938cd4d502d67f4b9de9ff771dc132096bdc86228efba + languageName: node + linkType: hard + +"@types/react@npm:^17": + version: 17.0.60 + resolution: "@types/react@npm:17.0.60" dependencies: "@types/prop-types": "*" "@types/scheduler": "*" csstype: ^3.0.2 - checksum: 600fdbc39a92ea4a77047db3e12f05f67776a710f5918248c0189a59ac2a38900c9db5a5d2e433a16df528a3ecab1aa114b322cacea573bb1ca2fc0b094c52d1 + checksum: 8565e53d6ad83cd5f606fa66f5f9d8d0e5323a0103114a0292ae8f97c17ce4a7dfa15b847c54eb0a2c41c03df7fd64ba1d5bcef91ee0c177e55315e52e334463 languageName: node linkType: hard @@ -7838,9 +7516,9 @@ __metadata: linkType: hard "@types/scheduler@npm:*": - version: 0.16.2 - resolution: "@types/scheduler@npm:0.16.2" - checksum: b6b4dcfeae6deba2e06a70941860fb1435730576d3689225a421280b7742318d1548b3d22c1f66ab68e414f346a9542f29240bc955b6332c5b11e561077583bc + version: 0.16.3 + resolution: "@types/scheduler@npm:0.16.3" + checksum: 2b0aec39c24268e3ce938c5db2f2e77f5c3dd280e05c262d9c2fe7d890929e4632a6b8e94334017b66b45e4f92a5aa42ba3356640c2a1175fa37bef2f5200767 languageName: node linkType: hard @@ -7852,19 +7530,29 @@ __metadata: linkType: hard "@types/semver@npm:^7.3.12, @types/semver@npm:^7.3.4": - version: 7.3.13 - resolution: "@types/semver@npm:7.3.13" - checksum: 00c0724d54757c2f4bc60b5032fe91cda6410e48689633d5f35ece8a0a66445e3e57fa1d6e07eb780f792e82ac542948ec4d0b76eb3484297b79bd18b8cf1cb0 + version: 7.5.0 + resolution: "@types/semver@npm:7.5.0" + checksum: 0a64b9b9c7424d9a467658b18dd70d1d781c2d6f033096a6e05762d20ebbad23c1b69b0083b0484722aabf35640b78ccc3de26368bcae1129c87e9df028a22e2 + languageName: node + linkType: hard + +"@types/send@npm:*": + version: 0.17.1 + resolution: "@types/send@npm:0.17.1" + dependencies: + "@types/mime": ^1 + "@types/node": "*" + checksum: 10b620a5960058ef009afbc17686f680d6486277c62f640845381ec4baa0ea683fdd77c3afea4803daf5fcddd3fb2972c8aa32e078939f1d4e96f83195c89793 languageName: node linkType: hard "@types/serve-static@npm:*": - version: 1.15.0 - resolution: "@types/serve-static@npm:1.15.0" + version: 1.15.1 + resolution: "@types/serve-static@npm:1.15.1" dependencies: "@types/mime": "*" "@types/node": "*" - checksum: b6ac93d471fb0f53ddcac1f9b67572a09cd62806f7db5855244b28f6f421139626f24799392566e97d1ffc61b12f9de7f30380c39fcae3c8a161fe161d44edf2 + checksum: 2e078bdc1e458c7dfe69e9faa83cc69194b8896cce57cb745016580543c7ab5af07fdaa8ac1765eb79524208c81017546f66056f44d1204f812d72810613de36 languageName: node linkType: hard @@ -7890,11 +7578,11 @@ __metadata: linkType: hard "@types/testing-library__jest-dom@npm:^5.9.1": - version: 5.14.5 - resolution: "@types/testing-library__jest-dom@npm:5.14.5" + version: 5.14.6 + resolution: "@types/testing-library__jest-dom@npm:5.14.6" dependencies: "@types/jest": "*" - checksum: dcb05416758fe88c1f4f3aa97b4699fcb46a5ed8f53c6b81721e66155452a48caf12ecb97dfdfd4130678e65efd66b9fca0ac434b3d63affec84842a84a6bf38 + checksum: 92f81cefeacba3b5c06d4b3fbea0341fe2bcaa6e425c026ae262de39f1148c2588cf3003112aa4ac0880c3972ffb77641a863f3be71518d1d8080402c944e326 languageName: node linkType: hard @@ -7952,26 +7640,26 @@ __metadata: linkType: hard "@types/yargs@npm:^17.0.8": - version: 17.0.22 - resolution: "@types/yargs@npm:17.0.22" + version: 17.0.24 + resolution: "@types/yargs@npm:17.0.24" dependencies: "@types/yargs-parser": "*" - checksum: 0773523fda71bafdc52f13f5970039e535a353665a60ba9261149a5c9c2b908242e6e77fbb7a8c06931ec78ce889d64d09673c68ba23eb5f5742d5385d0d1982 + checksum: 5f3ac4dc4f6e211c1627340160fbe2fd247ceba002190da6cf9155af1798450501d628c9165a183f30a224fc68fa5e700490d740ff4c73e2cdef95bc4e8ba7bf languageName: node linkType: hard "@typescript-eslint/eslint-plugin@npm:^5.5.0": - version: 5.50.0 - resolution: "@typescript-eslint/eslint-plugin@npm:5.50.0" + version: 5.59.8 + resolution: "@typescript-eslint/eslint-plugin@npm:5.59.8" dependencies: - "@typescript-eslint/scope-manager": 5.50.0 - "@typescript-eslint/type-utils": 5.50.0 - "@typescript-eslint/utils": 5.50.0 + "@eslint-community/regexpp": ^4.4.0 + "@typescript-eslint/scope-manager": 5.59.8 + "@typescript-eslint/type-utils": 5.59.8 + "@typescript-eslint/utils": 5.59.8 debug: ^4.3.4 grapheme-splitter: ^1.0.4 ignore: ^5.2.0 natural-compare-lite: ^1.4.0 - regexpp: ^3.2.0 semver: ^7.3.7 tsutils: ^3.21.0 peerDependencies: @@ -7980,54 +7668,54 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 351c4a157a7d717cc3835bdc09324b20d649463738a029c5701e5a38cdb162305ff7d56adff196a0c3245c24ea3167bbdac7f1c30399b8c1d495abbdbc1c53d6 + checksum: 3e05cd06149ec3741c3c2fb638e2d19a55687b4614a5c8820433db82997687650297e51c17828d320162ccf4241798cf5712c405561e7605cb17e984a6967f7b languageName: node linkType: hard "@typescript-eslint/experimental-utils@npm:^5.0.0": - version: 5.50.0 - resolution: "@typescript-eslint/experimental-utils@npm:5.50.0" + version: 5.59.8 + resolution: "@typescript-eslint/experimental-utils@npm:5.59.8" dependencies: - "@typescript-eslint/utils": 5.50.0 + "@typescript-eslint/utils": 5.59.8 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 9d71c359512ee541f3a60070e8de4b8ac075b4699f671429d893823e1bbea4ce8cd1f5ee3dcda82478f52d8210bce41f05afc62342b1f088e00d070987cb493b + checksum: 266ebfe94dd2385e0a31925f359dc581e6047ca4853d29f65e3ee930e1ce5cb95065809fa38a1bb7aea08d4021bebf0db562e67b9191d9b243232959f31e8244 languageName: node linkType: hard "@typescript-eslint/parser@npm:^5.41.0, @typescript-eslint/parser@npm:^5.5.0": - version: 5.50.0 - resolution: "@typescript-eslint/parser@npm:5.50.0" + version: 5.59.8 + resolution: "@typescript-eslint/parser@npm:5.59.8" dependencies: - "@typescript-eslint/scope-manager": 5.50.0 - "@typescript-eslint/types": 5.50.0 - "@typescript-eslint/typescript-estree": 5.50.0 + "@typescript-eslint/scope-manager": 5.59.8 + "@typescript-eslint/types": 5.59.8 + "@typescript-eslint/typescript-estree": 5.59.8 debug: ^4.3.4 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 816a421ce9a5c61a2e92499d6d400aed4211ca5b685e0212844b6659f7acfeba1cca0418b462236c44eea6e8a2574cd51ccb7abc2bf4a8cad5b7a275d71ae9bf + checksum: bac9f09d8552086ceb882a7b87ce4d98dfaa41579249216c75d97e3fc07af33cddc4cbbd07a127a5823c826a258882643aaf658bec19cb2a434002b55c5f0d12 languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/scope-manager@npm:5.50.0" +"@typescript-eslint/scope-manager@npm:5.59.8": + version: 5.59.8 + resolution: "@typescript-eslint/scope-manager@npm:5.59.8" dependencies: - "@typescript-eslint/types": 5.50.0 - "@typescript-eslint/visitor-keys": 5.50.0 - checksum: bd49447a834c82cb130e6900644042c3a84195bf7a63483385e90b6454c65856d6f276c997cad6bf9c36c9d0cb168fdde625ce4c78c3b8bcce42da782270794b + "@typescript-eslint/types": 5.59.8 + "@typescript-eslint/visitor-keys": 5.59.8 + checksum: e1e810ee991cfeb433330b04ee949bb6784abe4dbdb7d9480aa7a7536671b4fec914b7803edf662516c8ecb1b31dcff126797f9923270a529c26e2b00b0ea96f languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/type-utils@npm:5.50.0" +"@typescript-eslint/type-utils@npm:5.59.8": + version: 5.59.8 + resolution: "@typescript-eslint/type-utils@npm:5.59.8" dependencies: - "@typescript-eslint/typescript-estree": 5.50.0 - "@typescript-eslint/utils": 5.50.0 + "@typescript-eslint/typescript-estree": 5.59.8 + "@typescript-eslint/utils": 5.59.8 debug: ^4.3.4 tsutils: ^3.21.0 peerDependencies: @@ -8035,7 +7723,7 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: d2fc2fd10ef300865fd6a902ae92aef6c45cddc4359445f1e5c6dc9511063b52d2170cc6b525763395d4171c177b3d0fffd77cf9a2ab7e01fcd7109bd1a5a585 + checksum: d9fde31397da0f0e62a5568f64bad99d06bcd324b7e3aac7fd997a3d045a0fe4c084b2e85d440e0a39645acd2269ad6593f196399c2c0f880d293417fec894e3 languageName: node linkType: hard @@ -8046,10 +7734,10 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/types@npm:5.50.0" - checksum: 1189c63d35abeec685dd519fd923926b884e63d5e10e4a9fe995aebfde59b8a2e10773090ec3ba32a0ec408746b18f6a454d9bedb0b6c7ce8b6066547144fb4d +"@typescript-eslint/types@npm:5.59.8": + version: 5.59.8 + resolution: "@typescript-eslint/types@npm:5.59.8" + checksum: 559473d5601c849eb0da1874a2ac67c753480beed484ad6f6cda62fa6023273f2c3005c7f2864d9c2afb7c6356412d0d304b57db10c53597207f18a7f6cd4f18 languageName: node linkType: hard @@ -8071,12 +7759,12 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/typescript-estree@npm:5.50.0" +"@typescript-eslint/typescript-estree@npm:5.59.8": + version: 5.59.8 + resolution: "@typescript-eslint/typescript-estree@npm:5.59.8" dependencies: - "@typescript-eslint/types": 5.50.0 - "@typescript-eslint/visitor-keys": 5.50.0 + "@typescript-eslint/types": 5.59.8 + "@typescript-eslint/visitor-keys": 5.59.8 debug: ^4.3.4 globby: ^11.1.0 is-glob: ^4.0.3 @@ -8085,25 +7773,25 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: cb1ac8d39647da6d52750c713d9635750ed41245ec82f937a159a71ad3bf490ebabfad3b43eeca07bca39d60df30d3a2f31f8bed0061381731d92a62e284b867 + checksum: d93371cc866f573a6a1ddc0eb10d498a8e59f36763a99ce21da0737fff2b4c942eef1587216aad273f8d896ebc0b19003677cba63a27d2646aa2c087638963eb languageName: node linkType: hard -"@typescript-eslint/utils@npm:5.50.0, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.43.0": - version: 5.50.0 - resolution: "@typescript-eslint/utils@npm:5.50.0" +"@typescript-eslint/utils@npm:5.59.8, @typescript-eslint/utils@npm:^5.10.0, @typescript-eslint/utils@npm:^5.58.0": + version: 5.59.8 + resolution: "@typescript-eslint/utils@npm:5.59.8" dependencies: + "@eslint-community/eslint-utils": ^4.2.0 "@types/json-schema": ^7.0.9 "@types/semver": ^7.3.12 - "@typescript-eslint/scope-manager": 5.50.0 - "@typescript-eslint/types": 5.50.0 - "@typescript-eslint/typescript-estree": 5.50.0 + "@typescript-eslint/scope-manager": 5.59.8 + "@typescript-eslint/types": 5.59.8 + "@typescript-eslint/typescript-estree": 5.59.8 eslint-scope: ^5.1.1 - eslint-utils: ^3.0.0 semver: ^7.3.7 peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 - checksum: 4471ae8b24449300e009f1cc09ee0d38cce20ae9171e8fbf4ef752ce4eb87104cc0d813d8f7051b619fa05e1e7c12b748dad49832911685297b1bbfef3c01f0b + checksum: cbaa057485c7f52c45d0dfb4f5a8e9273abccb1c52dcb4426a79f9e71d2c1062cf2525bad6d4aca5ec42db3fe723d749843bcade5a323bde7fbe4b5d5b5d5c3b languageName: node linkType: hard @@ -8117,19 +7805,19 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:5.50.0": - version: 5.50.0 - resolution: "@typescript-eslint/visitor-keys@npm:5.50.0" +"@typescript-eslint/visitor-keys@npm:5.59.8": + version: 5.59.8 + resolution: "@typescript-eslint/visitor-keys@npm:5.59.8" dependencies: - "@typescript-eslint/types": 5.50.0 + "@typescript-eslint/types": 5.59.8 eslint-visitor-keys: ^3.3.0 - checksum: 55319cb7ee7b78d07d9dc67a388d69fe0b7f11cbc79190e17e7f87a39c9992d08dab3b5872d5a7f01094dda28ad6ac61d3573e59015ef70bf138d4c4f8c45b88 + checksum: 6bfa7918dbb0e08d8a7404aeeef7bcd1a85736dc8d01614d267c0c5ec10f94d2746b50a945bf5c82c54fda67926e8deaeba8565c919da17f725fc11209ef8987 languageName: node linkType: hard -"@uiw/codemirror-extensions-basic-setup@npm:4.19.7": - version: 4.19.7 - resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.19.7" +"@uiw/codemirror-extensions-basic-setup@npm:4.20.2": + version: 4.20.2 + resolution: "@uiw/codemirror-extensions-basic-setup@npm:4.20.2" dependencies: "@codemirror/autocomplete": ^6.0.0 "@codemirror/commands": ^6.0.0 @@ -8146,13 +7834,13 @@ __metadata: "@codemirror/search": ">=6.0.0" "@codemirror/state": ">=6.0.0" "@codemirror/view": ">=6.0.0" - checksum: 4c32d3b41b78776fd41b229edc8777dff4137ff6125836df5a6573e01a0a74f2ae66293a09a3b095a1fbe660b2fc8b2bde93ba4aa92636702a74baea261fcf94 + checksum: fc2a7aa077e6dd580032aeb1dbd987e891e99a72b4509eb85e837f6dbb739cb2b8801b7213bd18eca0644461dc8d23455eaf4933c6e112a9ff952077f7bee12f languageName: node linkType: hard "@uiw/codemirror-themes@npm:^4.19.4": - version: 4.19.7 - resolution: "@uiw/codemirror-themes@npm:4.19.7" + version: 4.20.2 + resolution: "@uiw/codemirror-themes@npm:4.20.2" dependencies: "@codemirror/language": ^6.0.0 "@codemirror/state": ^6.0.0 @@ -8161,19 +7849,19 @@ __metadata: "@codemirror/language": ">=6.0.0" "@codemirror/state": ">=6.0.0" "@codemirror/view": ">=6.0.0" - checksum: f316a8ec5bbc1982d5db192175d0d608217beb3f1e34f46fb9443628f6a00942291d0dcdbc575e167503fcd3fa062034ef3bbbf0d2cf5715fdbf8b667bfb4707 + checksum: 9eddb4371c2ca42335840ed00537cd6509049bc10198857ed60966e7b04cce9871442c5823c7f0d972e9aee72234e091228df749cbc4bfde8e77a0ba6306be01 languageName: node linkType: hard "@uiw/react-codemirror@npm:^4.11.4, @uiw/react-codemirror@npm:^4.19.4": - version: 4.19.7 - resolution: "@uiw/react-codemirror@npm:4.19.7" + version: 4.20.2 + resolution: "@uiw/react-codemirror@npm:4.20.2" dependencies: "@babel/runtime": ^7.18.6 "@codemirror/commands": ^6.1.0 "@codemirror/state": ^6.1.1 "@codemirror/theme-one-dark": ^6.0.0 - "@uiw/codemirror-extensions-basic-setup": 4.19.7 + "@uiw/codemirror-extensions-basic-setup": 4.20.2 codemirror: ^6.0.0 peerDependencies: "@babel/runtime": ">=7.11.0" @@ -8183,7 +7871,7 @@ __metadata: codemirror: ">=6.0.0" react: ">=16.8.0" react-dom: ">=16.8.0" - checksum: 333c7b0c7181219bb0506cd956eb10fa07aad5f26d3c5a9e7b9875e6c60f1e9bf1c8f74bf160735c75b7dbe9e9b05879c17f5ea641e212ba8f454887f04b0e7e + checksum: e0f448ab30952b58e44b1342074859ad89a7fc8290fd630c59e704e40efcadf93f029059cb50df1c59dba986c60742f7c632f80bafb69888fec8bf0a74a695c9 languageName: node linkType: hard @@ -8233,10 +7921,10 @@ __metadata: languageName: node linkType: hard -"@vercel/stega@npm:^0.0.4": - version: 0.0.4 - resolution: "@vercel/stega@npm:0.0.4" - checksum: af1f156d6384d1ae089769163e1c556c5b1e2144e539e25240c50a23d00bffec992b8721d7336b3cda8bf8184c29ab53ec6c5ff2037292d43537577042fc5746 +"@vercel/stega@npm:^0.0.5": + version: 0.0.5 + resolution: "@vercel/stega@npm:0.0.5" + checksum: acf9a13333b74350630416641895aecf593fcc9ca5e0b12f3a7daf7031d2eb2a4670a499f7d6e013c0559d792582463914c33d39efb9a959c9bc1706a0a995fe languageName: node linkType: hard @@ -8291,8 +7979,8 @@ __metadata: linkType: hard "@whitespace/storybook-addon-html@npm:^5.0.3": - version: 5.1.1 - resolution: "@whitespace/storybook-addon-html@npm:5.1.1" + version: 5.1.4 + resolution: "@whitespace/storybook-addon-html@npm:5.1.4" peerDependencies: "@storybook/addons": ^6.5.8 "@storybook/api": ^6.5.8 @@ -8308,7 +7996,7 @@ __metadata: optional: true react-dom: optional: true - checksum: 34bdd5e2ffeffeb7c6fb57e4c913dce4cbf87e118cfd6d26556fce0313e7233f1eaa17eb61da3eef3c8b8c345cf341f774a26e927c4d3a6aa791b8685ed66c92 + checksum: cd2b3da31774bf44f6cda1f91e77d627f601caee4050a01afe2f3c61d0d7e87e27bb6d7a32dd36208b4a0992b77f537c48cc55c683d50b7334212e8131a3ee93 languageName: node linkType: hard @@ -8366,18 +8054,7 @@ __metadata: languageName: node linkType: hard -"acorn-node@npm:^1.8.2": - version: 1.8.2 - resolution: "acorn-node@npm:1.8.2" - dependencies: - acorn: ^7.0.0 - acorn-walk: ^7.0.0 - xtend: ^4.0.2 - checksum: 02e1564a1ccf8bd1fcefcd01235398af4a9effaf032c5397994ddd275590a72894cb3e26e4b82579ccdda1e48ade7486aef61e771ddae3563ca452b927f443d8 - languageName: node - linkType: hard - -"acorn-walk@npm:^7.0.0, acorn-walk@npm:^7.2.0": +"acorn-walk@npm:^7.2.0": version: 7.2.0 resolution: "acorn-walk@npm:7.2.0" checksum: 9252158a79b9d92f1bc0dd6acc0fcfb87a67339e84bcc301bb33d6078936d27e35d606b4d35626d2962cd43c256d6f27717e70cbe15c04fff999ab0b2260b21f @@ -8391,7 +8068,7 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^7.0.0, acorn@npm:^7.4.1": +"acorn@npm:^7.4.1": version: 7.4.1 resolution: "acorn@npm:7.4.1" bin: @@ -8458,13 +8135,13 @@ __metadata: linkType: hard "agentkeepalive@npm:^4.2.1": - version: 4.2.1 - resolution: "agentkeepalive@npm:4.2.1" + version: 4.3.0 + resolution: "agentkeepalive@npm:4.3.0" dependencies: debug: ^4.1.0 - depd: ^1.1.2 + depd: ^2.0.0 humanize-ms: ^1.2.1 - checksum: 39cb49ed8cf217fd6da058a92828a0a84e0b74c35550f82ee0a10e1ee403c4b78ade7948be2279b188b7a7303f5d396ea2738b134731e464bf28de00a4f72a18 + checksum: 982453aa44c11a06826c836025e5162c846e1200adb56f2d075400da7d32d87021b3b0a58768d949d824811f5654223d5a8a3dad120921a2439625eb847c6260 languageName: node linkType: hard @@ -8614,16 +8291,16 @@ __metadata: linkType: soft "amplitude-js@npm:^8.21.5": - version: 8.21.5 - resolution: "amplitude-js@npm:8.21.5" + version: 8.21.9 + resolution: "amplitude-js@npm:8.21.9" dependencies: "@amplitude/analytics-connector": ^1.4.6 - "@amplitude/ua-parser-js": 0.7.31 + "@amplitude/ua-parser-js": 0.7.33 "@amplitude/utils": ^1.10.2 - "@babel/runtime": ^7.20.6 + "@babel/runtime": ^7.21.0 blueimp-md5: ^2.19.0 - query-string: 8.0.3 - checksum: c343f25f98c85330963c5b291b4fd1829dce75bd34a8142e3db26aa40631acfc18d3616ad5bdb17d3d51ebe934e6d5c25e18c3bb5a523bd4964e3b9ebd76d003 + query-string: 8.1.0 + checksum: 01409772abf904fecac26e81c453c884a8d3f1dd6b8a01a75288c8f1c8dccb022fdf2257fa66641d480241c3f4c0adbc643c9cfa89673642d9587180bb679c48 languageName: node linkType: hard @@ -8728,6 +8405,13 @@ __metadata: languageName: node linkType: hard +"any-promise@npm:^1.0.0": + version: 1.3.0 + resolution: "any-promise@npm:1.3.0" + checksum: 0ee8a9bdbe882c90464d75d1f55cf027f5458650c4bd1f0467e65aec38ccccda07ca5844969ee77ed46d04e7dded3eaceb027e8d32f385688523fe305fa7e1de + languageName: node + linkType: hard + "anymatch@npm:^3.0.3, anymatch@npm:~3.1.2": version: 3.1.3 resolution: "anymatch@npm:3.1.3" @@ -8850,17 +8534,11 @@ __metadata: linkType: hard "aria-hidden@npm:^1.1.3": - version: 1.2.2 - resolution: "aria-hidden@npm:1.2.2" + version: 1.2.3 + resolution: "aria-hidden@npm:1.2.3" dependencies: tslib: ^2.0.0 - peerDependencies: - "@types/react": ^16.9.0 || ^17.0.0 || ^18.0.0 - react: ^16.9.0 || ^17.0.0 || ^18.0.0 - peerDependenciesMeta: - "@types/react": - optional: true - checksum: ee1a3688db5491eeb87b73eea624614f24ef62a74cf9e47bc8229dde1ff7457f7e4a26425cadc0d3efd89380305e6fb4a4e505bccdee16beaa4686014861d7b1 + checksum: 7d7d211629eef315e94ed3b064c6823d13617e609d3f9afab1c2ed86399bb8e90405f9bdd358a85506802766f3ecb468af985c67c846045a34b973bcc0289db9 languageName: node linkType: hard @@ -8894,6 +8572,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.0": + version: 1.0.0 + resolution: "array-buffer-byte-length@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + is-array-buffer: ^3.0.1 + checksum: 044e101ce150f4804ad19c51d6c4d4cfa505c5b2577bd179256e4aa3f3f6a0a5e9874c78cd428ee566ac574c8a04d7ce21af9fe52e844abfdccb82b33035a7c3 + languageName: node + linkType: hard + "array-differ@npm:^1.0.0": version: 1.0.0 resolution: "array-differ@npm:1.0.0" @@ -9139,11 +8827,11 @@ __metadata: linkType: hard "autoprefixer@npm:^10.4.0": - version: 10.4.13 - resolution: "autoprefixer@npm:10.4.13" + version: 10.4.14 + resolution: "autoprefixer@npm:10.4.14" dependencies: - browserslist: ^4.21.4 - caniuse-lite: ^1.0.30001426 + browserslist: ^4.21.5 + caniuse-lite: ^1.0.30001464 fraction.js: ^4.2.0 normalize-range: ^0.1.2 picocolors: ^1.0.0 @@ -9152,7 +8840,7 @@ __metadata: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: dcb1cb7ae96a3363d65d82e52f9a0a7d8c982256f6fd032d7e1ec311f099c23acfebfd517ff8e96bf93f716a66c4ea2b80c60aa19efd2f474ce434bd75ef7b79 + checksum: e9f18e664a4e4a54a8f4ec5f6b49ed228ec45afaa76efcae361c93721795dc5ab644f36d2fdfc0dea446b02a8067b9372f91542ea431994399e972781ed46d95 languageName: node linkType: hard @@ -9163,10 +8851,10 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.2.0, axe-core@npm:^4.6.1, axe-core@npm:^4.6.2": - version: 4.6.3 - resolution: "axe-core@npm:4.6.3" - checksum: d0c46be92b9707c48b88a53cd5f471b155a2bfc8bf6beffb514ecd14e30b4863e340b5fc4f496d82a3c562048088c1f3ff5b93b9b3b026cb9c3bfacfd535da10 +"axe-core@npm:^4.2.0, axe-core@npm:^4.6.2, axe-core@npm:^4.7.0": + version: 4.7.2 + resolution: "axe-core@npm:4.7.2" + checksum: 5d86fa0f45213b0e54cbb5d713ce885c4a8fe3a72b92dd915a47aa396d6fd149c4a87fec53aa978511f6d941402256cfeb26f2db35129e370f25a453c688655a languageName: node linkType: hard @@ -9219,20 +8907,20 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^29.4.1": - version: 29.4.1 - resolution: "babel-jest@npm:29.4.1" +"babel-jest@npm:^29.5.0": + version: 29.5.0 + resolution: "babel-jest@npm:29.5.0" dependencies: - "@jest/transform": ^29.4.1 + "@jest/transform": ^29.5.0 "@types/babel__core": ^7.1.14 babel-plugin-istanbul: ^6.1.1 - babel-preset-jest: ^29.4.0 + babel-preset-jest: ^29.5.0 chalk: ^4.0.0 graceful-fs: ^4.2.9 slash: ^3.0.0 peerDependencies: "@babel/core": ^7.8.0 - checksum: 4a2971ee50d0e467ccc9ca3557c2e721aaac1a165c34cd82fd056be8fc0bce258247b3c960059ecf05beddafe06b37dceeb8b8c32fa7393b8a42d2055a70559f + checksum: eafb6d37deb71f0c80bf3c80215aa46732153e5e8bcd73f6ff47d92e5c0c98c8f7f75995d0efec6289c371edad3693cd8fa2367b0661c4deb71a3a7117267ede languageName: node linkType: hard @@ -9264,15 +8952,15 @@ __metadata: languageName: node linkType: hard -"babel-plugin-jest-hoist@npm:^29.4.0": - version: 29.4.0 - resolution: "babel-plugin-jest-hoist@npm:29.4.0" +"babel-plugin-jest-hoist@npm:^29.5.0": + version: 29.5.0 + resolution: "babel-plugin-jest-hoist@npm:29.5.0" dependencies: "@babel/template": ^7.3.3 "@babel/types": ^7.3.3 "@types/babel__core": ^7.1.14 "@types/babel__traverse": ^7.0.6 - checksum: c18369a9aa5e29f8d1c00b19f513f6c291df8d531c344ef7951e7e3d3b95ae5dd029817510544ceb668a96e156f05ee73eadb228428956b9239f1714d99fecb6 + checksum: 099b5254073b6bc985b6d2d045ad26fb8ed30ff8ae6404c4fe8ee7cd0e98a820f69e3dfb871c7c65aae0f4b65af77046244c07bb92d49ef9005c90eedf681539 languageName: node linkType: hard @@ -9300,6 +8988,19 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs2@npm:^0.4.3": + version: 0.4.3 + resolution: "babel-plugin-polyfill-corejs2@npm:0.4.3" + dependencies: + "@babel/compat-data": ^7.17.7 + "@babel/helper-define-polyfill-provider": ^0.4.0 + semver: ^6.1.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 09ba40b9f8ac66a733628b2f12722bb764bdcc4f9600b93d60f1994418a8f84bc4b1ed9ab07c9d288debbf6210413fdff0721a3a43bd89c7f77adf76b0310adc + languageName: node + linkType: hard + "babel-plugin-polyfill-corejs3@npm:^0.6.0": version: 0.6.0 resolution: "babel-plugin-polyfill-corejs3@npm:0.6.0" @@ -9312,6 +9013,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-corejs3@npm:^0.8.1": + version: 0.8.1 + resolution: "babel-plugin-polyfill-corejs3@npm:0.8.1" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.4.0 + core-js-compat: ^3.30.1 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: c23a581973c141a4687126cf964981180ef27e3eb0b34b911161db4f5caf9ba7ff60bee0ebe46d650ba09e03a6a3ac2cd6a6ae5f4f5363a148470e5cd8447df2 + languageName: node + linkType: hard + "babel-plugin-polyfill-regenerator@npm:^0.4.1": version: 0.4.1 resolution: "babel-plugin-polyfill-regenerator@npm:0.4.1" @@ -9323,18 +9036,29 @@ __metadata: languageName: node linkType: hard +"babel-plugin-polyfill-regenerator@npm:^0.5.0": + version: 0.5.0 + resolution: "babel-plugin-polyfill-regenerator@npm:0.5.0" + dependencies: + "@babel/helper-define-polyfill-provider": ^0.4.0 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: ef2bcffc7c9a5e4426fc2dbf89bf3a46999a8415c21cd741c3ab3cb4b5ab804aaa3d71ef733f0eda1bcc0b91d9d80f98d33983a66dab9b8bed166ec38f8f8ad1 + languageName: node + linkType: hard + "babel-plugin-styled-components@npm:>= 1.12.0": - version: 2.0.7 - resolution: "babel-plugin-styled-components@npm:2.0.7" + version: 2.1.3 + resolution: "babel-plugin-styled-components@npm:2.1.3" dependencies: - "@babel/helper-annotate-as-pure": ^7.16.0 - "@babel/helper-module-imports": ^7.16.0 + "@babel/helper-annotate-as-pure": ^7.18.6 + "@babel/helper-module-imports": ^7.21.4 babel-plugin-syntax-jsx: ^6.18.0 - lodash: ^4.17.11 - picomatch: ^2.3.0 + lodash: ^4.17.21 + picomatch: ^2.3.1 peerDependencies: styled-components: ">= 2" - checksum: 80b06b10db02d749432a0ac43a5feedd686f6b648628d7433a39b1844260b2b7c72431f6e705c82636ee025fcfd4f6c32fc05677e44033b8a39ddcd4488b3147 + checksum: 0a4f2ca560e6124fb2e16aa2d35be33cc26f55f0a34307b5466df15e3645c32ac5795072807bac69792b4bcc4427ac892f8305d1cd18e4b1fd82016405b99a0d languageName: node linkType: hard @@ -9374,15 +9098,15 @@ __metadata: languageName: node linkType: hard -"babel-preset-jest@npm:^29.4.0": - version: 29.4.0 - resolution: "babel-preset-jest@npm:29.4.0" +"babel-preset-jest@npm:^29.5.0": + version: 29.5.0 + resolution: "babel-preset-jest@npm:29.5.0" dependencies: - babel-plugin-jest-hoist: ^29.4.0 + babel-plugin-jest-hoist: ^29.5.0 babel-preset-current-node-syntax: ^1.0.0 peerDependencies: "@babel/core": ^7.0.0 - checksum: 38baf965731059ec13cf4038d2a6ec3ac528ba45ce45f4e41710f17fa0cdcba404ff74689cdc9a929c64b2547d6ea9f8d5c41ca4db7770a85f82b7de3fb25024 + checksum: 5566ca2762766c9319b4973d018d2fa08c0fcf6415c72cc54f4c8e7199e851ea8f5e6c6730f03ed7ed44fc8beefa959dd15911f2647dee47c615ff4faeddb1ad languageName: node linkType: hard @@ -9669,11 +9393,11 @@ __metadata: linkType: hard "breakword@npm:^1.0.5": - version: 1.0.5 - resolution: "breakword@npm:1.0.5" + version: 1.0.6 + resolution: "breakword@npm:1.0.6" dependencies: wcwidth: ^1.0.1 - checksum: 8ca7b10bbbbfe1c45c12c9119c4bc1e585452ddd58c5da93020a0c1deac3cf6bb335632675c9c705ba7b644065ae1d6623a25e79b7a48e0ee0ff42cb6e94b357 + checksum: e8a3f308c0214986e1b768ca4460a798ffe4bbe08c375576de526431a01a9738318710cc05e309486ac5809d77d9f33d957f80939a890e07be5e89baad9816f8 languageName: node linkType: hard @@ -9700,17 +9424,17 @@ __metadata: languageName: node linkType: hard -"browserslist@npm:^4.0.0, browserslist@npm:^4.16.6, browserslist@npm:^4.21.3, browserslist@npm:^4.21.4": - version: 4.21.5 - resolution: "browserslist@npm:4.21.5" +"browserslist@npm:^4.0.0, browserslist@npm:^4.21.3, browserslist@npm:^4.21.4, browserslist@npm:^4.21.5": + version: 4.21.7 + resolution: "browserslist@npm:4.21.7" dependencies: - caniuse-lite: ^1.0.30001449 - electron-to-chromium: ^1.4.284 - node-releases: ^2.0.8 - update-browserslist-db: ^1.0.10 + caniuse-lite: ^1.0.30001489 + electron-to-chromium: ^1.4.411 + node-releases: ^2.0.12 + update-browserslist-db: ^1.0.11 bin: browserslist: cli.js - checksum: 9755986b22e73a6a1497fd8797aedd88e04270be33ce66ed5d85a1c8a798292a65e222b0f251bafa1c2522261e237d73b08b58689d4920a607e5a53d56dc4706 + checksum: 3d0d025e6d381c4db5e71b538258952660ba574c060832095f182a9877ca798836fa550736269e669a2080e486f0cfdf5d3bcf2769b9f7cf123f6c6b8c005f8f languageName: node linkType: hard @@ -9794,6 +9518,15 @@ __metadata: languageName: node linkType: hard +"busboy@npm:1.6.0": + version: 1.6.0 + resolution: "busboy@npm:1.6.0" + dependencies: + streamsearch: ^1.1.0 + checksum: 32801e2c0164e12106bf236291a00795c3c4e4b709ae02132883fe8478ba2ae23743b11c5735a0aae8afe65ac4b6ca4568b91f0d9fed1fdbc32ede824a73746e + languageName: node + linkType: hard + "bytes@npm:3.0.0": version: 3.0.0 resolution: "bytes@npm:3.0.0" @@ -9809,8 +9542,8 @@ __metadata: linkType: hard "c8@npm:^7.6.0": - version: 7.12.0 - resolution: "c8@npm:7.12.0" + version: 7.14.0 + resolution: "c8@npm:7.14.0" dependencies: "@bcoe/v8-coverage": ^0.2.3 "@istanbuljs/schema": ^0.1.3 @@ -9826,7 +9559,7 @@ __metadata: yargs-parser: ^20.2.9 bin: c8: bin/c8.js - checksum: 3b7fa9ad7cff2cb0bb579467e6b544498fbd46e9353a809ad3b8cf749df4beadd074cde277356b0552f3c8055b1b3ec3ebaf2209e9ad4bdefed92dbf64d283ab + checksum: ca44bbd200b09dd5b7a3b8909b964c82eabbbb28ce4543873a313118e1ba24c924fdb6440ed09c636debdbd2dffec5529cca9657d408cba295367b715e131975 languageName: node linkType: hard @@ -10000,10 +9733,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001426, caniuse-lite@npm:^1.0.30001449": - version: 1.0.30001450 - resolution: "caniuse-lite@npm:1.0.30001450" - checksum: 511b360bfc907b2e437699364cf96b83507bc45043926450056642332bcd6f65a1e72540c828534ae15e0ac906e3e9af46cb2bb84458dd580bc31478e9dce282 +"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001406, caniuse-lite@npm:^1.0.30001464, caniuse-lite@npm:^1.0.30001489": + version: 1.0.30001492 + resolution: "caniuse-lite@npm:1.0.30001492" + checksum: 261869f910ec905ab6aa5a754e4ae57da8c5c33f3b723db2fa21840da307667bff61057aef3abaca32091c1561c254dd3a807c0fdb054cdc9e7e3ba495a55e20 languageName: node linkType: hard @@ -10208,9 +9941,9 @@ __metadata: linkType: hard "ci-info@npm:^3.1.0, ci-info@npm:^3.2.0": - version: 3.7.1 - resolution: "ci-info@npm:3.7.1" - checksum: 72d93d5101ea1c186511277fbd8d06ae8a6e028cc2fb94361e92bf735b39c5ebd192e8d15a66ff8c4e3ed569f87c2f844e96f90e141b2de5c649f77ec34ff601 + version: 3.8.0 + resolution: "ci-info@npm:3.8.0" + checksum: d0a4d3160497cae54294974a7246202244fff031b0a6ea20dd57b10ec510aa17399c41a1b0982142c105f3255aff2173e5c0dd7302ee1b2f28ba3debda375098 languageName: node linkType: hard @@ -10551,7 +10284,7 @@ __metadata: languageName: node linkType: hard -"color-name@npm:^1.0.0, color-name@npm:^1.1.4, color-name@npm:~1.1.4": +"color-name@npm:^1.0.0, color-name@npm:~1.1.4": version: 1.1.4 resolution: "color-name@npm:1.1.4" checksum: b0445859521eb4021cd0fb0cc1a75cecf67fceecae89b63f62b201cca8d345baf8b952c966862a9d9a2632987d4f6581f0ec8d957dfacece86f0a7919316f610 @@ -10602,9 +10335,9 @@ __metadata: linkType: hard "colorette@npm:^2.0.16, colorette@npm:^2.0.17, colorette@npm:^2.0.19": - version: 2.0.19 - resolution: "colorette@npm:2.0.19" - checksum: 888cf5493f781e5fcf54ce4d49e9d7d698f96ea2b2ef67906834bb319a392c667f9ec69f4a10e268d2946d13a9503d2d19b3abaaaf174e3451bfe91fb9d82427 + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 0c016fea2b91b733eb9f4bcdb580018f52c0bc0979443dad930e5037a968237ac53d9beb98e218d2e9235834f8eebce7f8e080422d6194e957454255bde71d3d languageName: node linkType: hard @@ -10645,6 +10378,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^4.0.0": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 + languageName: node + linkType: hard + "commander@npm:^6.2.0, commander@npm:^6.2.1": version: 6.2.1 resolution: "commander@npm:6.2.1" @@ -10730,10 +10470,10 @@ __metadata: languageName: node linkType: hard -"compute-scroll-into-view@npm:^2.0.4": - version: 2.0.4 - resolution: "compute-scroll-into-view@npm:2.0.4" - checksum: f3d1db9276c16af42155b572750514939cd0ab0a0f46498906f6811c5b654c5ff2b3f9bfd65958e57439e000a5e1ae092eb96b9e153d194a73e52ffd2380550c +"compute-scroll-into-view@npm:^3.0.2": + version: 3.0.3 + resolution: "compute-scroll-into-view@npm:3.0.3" + checksum: 7143869648d4de8ff2cb60eb8e96a21b47948c3210d15d1bfaa7e88de722c7f83f06676b97ebff94831dde0c03e42458ecfbde466747945187ee5c7667c68395 languageName: node linkType: hard @@ -10957,12 +10697,12 @@ __metadata: languageName: node linkType: hard -"core-js-compat@npm:^3.25.1": - version: 3.27.2 - resolution: "core-js-compat@npm:3.27.2" +"core-js-compat@npm:^3.25.1, core-js-compat@npm:^3.30.1, core-js-compat@npm:^3.30.2": + version: 3.30.2 + resolution: "core-js-compat@npm:3.30.2" dependencies: - browserslist: ^4.21.4 - checksum: 4574d4507de8cba9a75e37401b3ca6e5908ab066ec717e3b34866d25f623e1aa614fb886e10973be64a6250f325dcba6809e4fae4ed43375cc3e4276c5514c13 + browserslist: ^4.21.5 + checksum: 4c81d635559eebc2f81db60f5095a235f580a2f90698113c4124c72761393592b139e30974cce6095a9a6aad6bb3cd467b24b20c32e77ed24ca74eb5944d0638 languageName: node linkType: hard @@ -11032,9 +10772,9 @@ __metadata: linkType: hard "crelt@npm:^1.0.5": - version: 1.0.5 - resolution: "crelt@npm:1.0.5" - checksum: 04a618c5878e12a14a9a328a49ff6e37bed76abb88b72e661c56b5f161d8a9aca133650da6bcbc5224ad1f7f43a69325627f209e92a21002986d52a8f844b367 + version: 1.0.6 + resolution: "crelt@npm:1.0.6" + checksum: dad842093371ad702afbc0531bfca2b0a8dd920b23a42f26e66dabbed9aad9acd5b9030496359545ef3937c3aced0fd4ac39f7a2d280a23ddf9eb7fdcb94a69f languageName: node linkType: hard @@ -11139,11 +10879,11 @@ __metadata: linkType: hard "css-declaration-sorter@npm:^6.3.1": - version: 6.3.1 - resolution: "css-declaration-sorter@npm:6.3.1" + version: 6.4.0 + resolution: "css-declaration-sorter@npm:6.4.0" peerDependencies: postcss: ^8.0.9 - checksum: ff0d9989ee21ec4c42430b9bb86c43f973ed5024d68f30edc1e3fb07a22828ce3c3e5b922019f2ccbff606722e43c407c5c76e3cddac523ac4afcb31e4b2601c + checksum: b716bc3d79154d3d618a90bd192533adf6604307c176e25e715a3b7cde587ef16971769fbf496118a376794280edf97016653477936c38c5a74cc852d6e38873 languageName: node linkType: hard @@ -11207,13 +10947,13 @@ __metadata: linkType: hard "css-to-react-native@npm:^3.0.0": - version: 3.1.0 - resolution: "css-to-react-native@npm:3.1.0" + version: 3.2.0 + resolution: "css-to-react-native@npm:3.2.0" dependencies: camelize: ^1.0.0 css-color-keywords: ^1.0.0 postcss-value-parser: ^4.0.2 - checksum: 06a44d500736fd063a59c1d8d6e4a46d4a71d7c27c35662c46a5163cfb18893f54fc98a2cd61c31126731658cd2da93425b5e77a6f3897b80357d29c4f19362e + checksum: 263be65e805aef02c3f20c064665c998a8c35293e1505dbe6e3054fb186b01a9897ac6cf121f9840e5a9dfe3fb3994f6fcd0af84a865f1df78ba5bf89e77adce languageName: node linkType: hard @@ -11294,21 +11034,21 @@ __metadata: languageName: node linkType: hard -"cssnano-preset-default@npm:^5.2.13": - version: 5.2.13 - resolution: "cssnano-preset-default@npm:5.2.13" +"cssnano-preset-default@npm:^5.2.14": + version: 5.2.14 + resolution: "cssnano-preset-default@npm:5.2.14" dependencies: css-declaration-sorter: ^6.3.1 cssnano-utils: ^3.1.0 postcss-calc: ^8.2.3 - postcss-colormin: ^5.3.0 + postcss-colormin: ^5.3.1 postcss-convert-values: ^5.1.3 postcss-discard-comments: ^5.1.2 postcss-discard-duplicates: ^5.1.0 postcss-discard-empty: ^5.1.1 postcss-discard-overridden: ^5.1.0 postcss-merge-longhand: ^5.1.7 - postcss-merge-rules: ^5.1.3 + postcss-merge-rules: ^5.1.4 postcss-minify-font-values: ^5.1.0 postcss-minify-gradients: ^5.1.1 postcss-minify-params: ^5.1.4 @@ -11323,23 +11063,23 @@ __metadata: postcss-normalize-url: ^5.1.0 postcss-normalize-whitespace: ^5.1.1 postcss-ordered-values: ^5.1.3 - postcss-reduce-initial: ^5.1.1 + postcss-reduce-initial: ^5.1.2 postcss-reduce-transforms: ^5.1.0 postcss-svgo: ^5.1.0 postcss-unique-selectors: ^5.1.1 peerDependencies: postcss: ^8.2.15 - checksum: f773de44f67f71e7301e1f4b4664b894c3a48bba4dadc16c559acd0b14ceafed228bdc76fe19d500b0ded9394732377069daadff2184465fa369f8dfd72d47e2 + checksum: d3bbbe3d50c6174afb28d0bdb65b511fdab33952ec84810aef58b87189f3891c34aaa8b6a6101acd5314f8acded839b43513e39a75f91a698ddc985a1b1d9e95 languageName: node linkType: hard "cssnano-preset-default@npm:^6.0.0": - version: 6.0.0 - resolution: "cssnano-preset-default@npm:6.0.0" + version: 6.0.1 + resolution: "cssnano-preset-default@npm:6.0.1" dependencies: css-declaration-sorter: ^6.3.1 cssnano-utils: ^4.0.0 - postcss-calc: ^8.2.3 + postcss-calc: ^9.0.0 postcss-colormin: ^6.0.0 postcss-convert-values: ^6.0.0 postcss-discard-comments: ^6.0.0 @@ -11347,7 +11087,7 @@ __metadata: postcss-discard-empty: ^6.0.0 postcss-discard-overridden: ^6.0.0 postcss-merge-longhand: ^6.0.0 - postcss-merge-rules: ^6.0.0 + postcss-merge-rules: ^6.0.1 postcss-minify-font-values: ^6.0.0 postcss-minify-gradients: ^6.0.0 postcss-minify-params: ^6.0.0 @@ -11368,7 +11108,7 @@ __metadata: postcss-unique-selectors: ^6.0.0 peerDependencies: postcss: ^8.2.15 - checksum: 439e11cdb3d3d3658afd93b1b0de54983a6925880e3c9b8255e57ee7b2d7d0e70fc3f82890075f4d891a2e6eb694f7621089f6bed99c9828488a2c7fbd4a7ea9 + checksum: 451080ae47c93e6525c7133c36426968ee758eb9115132ba481e6b12d50775f4d086635bb2f807957e017fc9d253aa876aa64800be6b3d000ada90721b9ea410 languageName: node linkType: hard @@ -11403,15 +11143,15 @@ __metadata: linkType: hard "cssnano@npm:^5.0.1": - version: 5.1.14 - resolution: "cssnano@npm:5.1.14" + version: 5.1.15 + resolution: "cssnano@npm:5.1.15" dependencies: - cssnano-preset-default: ^5.2.13 + cssnano-preset-default: ^5.2.14 lilconfig: ^2.0.3 yaml: ^1.10.2 peerDependencies: postcss: ^8.2.15 - checksum: 73463c723c5e598b37b8b4d2f014145bd72133e6581349a1b154904e0830e58de17afb1e801ed3ea3b18e386883964ce4d0299e43d4dc37d339214a956c6697f + checksum: ca9e1922178617c66c2f1548824b2c7af2ecf69cc3a187fc96bf8d29251c2e84d9e4966c69cf64a2a6a057a37dff7d6d057bc8a2a0957e6ea382e452ae9d0bbb languageName: node linkType: hard @@ -11457,9 +11197,9 @@ __metadata: linkType: hard "csstype@npm:^3.0.2, csstype@npm:^3.1.1": - version: 3.1.1 - resolution: "csstype@npm:3.1.1" - checksum: 1f7b4f5fdd955b7444b18ebdddf3f5c699159f13e9cf8ac9027ae4a60ae226aef9bbb14a6e12ca7dba3358b007cee6354b116e720262867c398de6c955ea451d + version: 3.1.2 + resolution: "csstype@npm:3.1.2" + checksum: e1a52e6c25c1314d6beef5168da704ab29c5186b877c07d822bd0806717d9a265e8493a2e35ca7e68d0f5d472d43fac1cdce70fd79fd0853dff81f3028d857b5 languageName: node linkType: hard @@ -11484,7 +11224,7 @@ __metadata: languageName: node linkType: hard -"csv@npm:^5.5.0": +"csv@npm:^5.5.3": version: 5.5.3 resolution: "csv@npm:5.5.3" dependencies: @@ -11513,18 +11253,18 @@ __metadata: linkType: hard "cyclist@npm:^1.0.1": - version: 1.0.1 - resolution: "cyclist@npm:1.0.1" - checksum: 3cc2fdeb358599ca0ea96f5ecf2fc530ccab7ed1f8aa1a894aebfacd2009281bd7380cb9b30db02a18cdd00b3ed1d7ce81a3b11fe56e33a6a0fe4424dc592fbe + version: 1.0.2 + resolution: "cyclist@npm:1.0.2" + checksum: d7c0336565b9b72ee72347831cbd05fadcc59cc9ab89dcf38293b1a64c2c5fb777c9ce44967390dabe8235f9898f5cb222cd6672f4920b757da8861310082716 languageName: node linkType: hard "d3-array@npm:2 - 3, d3-array@npm:2.10.0 - 3, d3-array@npm:^3.1.6": - version: 3.2.2 - resolution: "d3-array@npm:3.2.2" + version: 3.2.4 + resolution: "d3-array@npm:3.2.4" dependencies: internmap: 1 - 2 - checksum: 98af3db792685ceca5d9c3721efba0c567520da5532b2c7a590fd83627a598ea225d11c2cecbad404dc154120feb5ea6df0ded38f82ddf342c714cfd0c6143d1 + checksum: a5976a6d6205f69208478bb44920dd7ce3e788c9dceb86b304dbe401a4bfb42ecc8b04c20facde486e9adcb488b5d1800d49393a3f81a23902b68158e12cddd0 languageName: node linkType: hard @@ -11652,9 +11392,9 @@ __metadata: linkType: hard "dataloader@npm:^2.1.0": - version: 2.2.1 - resolution: "dataloader@npm:2.2.1" - checksum: bc80fec711c264fa4244c749123658c7e73946aaa6f9906eb109763001751614aeb1688ffba2226c507bddb2da4da85432ae837cea8d09929e09bdb67048b96e + version: 2.2.2 + resolution: "dataloader@npm:2.2.2" + checksum: 4dabd247089c29f194e94d5434d504f99156c5c214a03463c20f3f17f40398d7e179edee69a27c16e315519ac8739042a810090087ae26449a0e685156a02c65 languageName: node linkType: hard @@ -11668,13 +11408,22 @@ __metadata: languageName: node linkType: hard -"date-fns@npm:2.29.3, date-fns@npm:^2.16.1, date-fns@npm:^2.26.1, date-fns@npm:^2.27.0": +"date-fns@npm:2.29.3": version: 2.29.3 resolution: "date-fns@npm:2.29.3" checksum: e01cf5b62af04e05dfff921bb9c9933310ed0e1ae9a81eb8653452e64dc841acf7f6e01e1a5ae5644d0337e9a7f936175fd2cb6819dc122fdd9c5e86c56be484 languageName: node linkType: hard +"date-fns@npm:^2.16.1, date-fns@npm:^2.26.1, date-fns@npm:^2.27.0": + version: 2.30.0 + resolution: "date-fns@npm:2.30.0" + dependencies: + "@babel/runtime": ^7.21.0 + checksum: f7be01523282e9bb06c0cd2693d34f245247a29098527d4420628966a2d9aad154bd0e90a6b1cf66d37adcb769cd108cf8a7bd49d76db0fb119af5cdd13644f4 + languageName: node + linkType: hard + "date-now@npm:1.0.1": version: 1.0.1 resolution: "date-now@npm:1.0.1" @@ -11761,13 +11510,20 @@ __metadata: languageName: node linkType: hard -"decode-uri-component@npm:^0.2.0, decode-uri-component@npm:^0.2.2": +"decode-uri-component@npm:^0.2.0": version: 0.2.2 resolution: "decode-uri-component@npm:0.2.2" checksum: 95476a7d28f267292ce745eac3524a9079058bbb35767b76e3ee87d42e34cd0275d2eb19d9d08c3e167f97556e8a2872747f5e65cbebcac8b0c98d83e285f139 languageName: node linkType: hard +"decode-uri-component@npm:^0.4.1": + version: 0.4.1 + resolution: "decode-uri-component@npm:0.4.1" + checksum: 0473924860986fb6ca19ee65a2af13e08801b4f3660475b058500ea8479ed715c919884a026b6bf4296dbb640d3cea74fadf45490b2439152fc548271d0201ec + languageName: node + linkType: hard + "decompress-response@npm:^6.0.0": version: 6.0.0 resolution: "decompress-response@npm:6.0.0" @@ -11794,14 +11550,15 @@ __metadata: linkType: hard "deep-equal@npm:^2.0.5": - version: 2.2.0 - resolution: "deep-equal@npm:2.2.0" + version: 2.2.1 + resolution: "deep-equal@npm:2.2.1" dependencies: + array-buffer-byte-length: ^1.0.0 call-bind: ^1.0.2 - es-get-iterator: ^1.1.2 - get-intrinsic: ^1.1.3 + es-get-iterator: ^1.1.3 + get-intrinsic: ^1.2.0 is-arguments: ^1.1.1 - is-array-buffer: ^3.0.1 + is-array-buffer: ^3.0.2 is-date-object: ^1.0.5 is-regex: ^1.1.4 is-shared-array-buffer: ^1.0.2 @@ -11809,12 +11566,12 @@ __metadata: object-is: ^1.1.5 object-keys: ^1.1.1 object.assign: ^4.1.4 - regexp.prototype.flags: ^1.4.3 + regexp.prototype.flags: ^1.5.0 side-channel: ^1.0.4 which-boxed-primitive: ^1.0.2 which-collection: ^1.0.1 which-typed-array: ^1.1.9 - checksum: 46a34509d2766d6c6dc5aec4756089cf0cc137e46787e91f08f1ee0bb570d874f19f0493146907df0cf18aed4a7b4b50f6f62c899240a76c323f057528b122e3 + checksum: 561f0e001a07b2f1b80ff914d0b3d76964bbfc102f34c2128bc8039c0050e63b1a504a8911910e011d8cd1cd4b600a9686c049e327f4ef94420008efc42d25f4 languageName: node linkType: hard @@ -11833,9 +11590,9 @@ __metadata: linkType: hard "deepmerge@npm:^4.2.2": - version: 4.3.0 - resolution: "deepmerge@npm:4.3.0" - checksum: c7980eb5c5be040b371f1df0d566473875cfabed9f672ccc177b81ba8eee5686ce2478de2f1d0076391621cbe729e5eacda397179a59ef0f68901849647db126 + version: 4.3.1 + resolution: "deepmerge@npm:4.3.1" + checksum: 2024c6a980a1b7128084170c4cf56b0fd58a63f2da1660dcfe977415f27b17dbe5888668b59d0b063753f3220719d5e400b7f113609489c90160bb9a5518d052 languageName: node linkType: hard @@ -11865,13 +11622,13 @@ __metadata: languageName: node linkType: hard -"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4": - version: 1.1.4 - resolution: "define-properties@npm:1.1.4" +"define-properties@npm:^1.1.3, define-properties@npm:^1.1.4, define-properties@npm:^1.2.0": + version: 1.2.0 + resolution: "define-properties@npm:1.2.0" dependencies: has-property-descriptors: ^1.0.0 object-keys: ^1.1.1 - checksum: ce0aef3f9eb193562b5cfb79b2d2c86b6a109dfc9fdcb5f45d680631a1a908c06824ddcdb72b7573b54e26ace07f0a23420aaba0d5c627b34d2c1de8ef527e2b + checksum: e60aee6a19b102df4e2b1f301816804e81ab48bb91f00d0d935f269bf4b3f79c88b39e4f89eaa132890d23267335fd1140dfcd8d5ccd61031a0a2c41a54e33a6 languageName: node linkType: hard @@ -11903,14 +11660,7 @@ __metadata: languageName: node linkType: hard -"defined@npm:^1.0.0": - version: 1.0.1 - resolution: "defined@npm:1.0.1" - checksum: b1a852300bdb57f297289b55eafdd0c517afaa3ec8190e78fce91b9d8d0c0369d4505ecbdacfd3d98372e664f4a267d9bd793938d4a8c76209c9d9516fbe2101 - languageName: node - linkType: hard - -"defu@npm:^6.1.1": +"defu@npm:^6.1.2": version: 6.1.2 resolution: "defu@npm:6.1.2" checksum: 2ec0ff8414d5a1ab2b8c7e9a79bbad6d97d23ea7ebf5dcf80c3c7ffd9715c30f84a3cc47b917379ea756b3db0dc4701ce6400e493a1ae1688dffcd0f884233b2 @@ -11963,20 +11713,13 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0": +"depd@npm:2.0.0, depd@npm:^2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" checksum: abbe19c768c97ee2eed6282d8ce3031126662252c58d711f646921c9623f9052e3e1906443066beec1095832f534e57c523b7333f8e7e0d93051ab6baef5ab3a languageName: node linkType: hard -"depd@npm:^1.1.2": - version: 1.1.2 - resolution: "depd@npm:1.1.2" - checksum: 6b406620d269619852885ce15965272b829df6f409724415e0002c8632ab6a8c0a08ec1f0bd2add05dc7bd7507606f7e2cc034fa24224ab829580040b835ecd9 - languageName: node - linkType: hard - "dependency-graph@npm:^0.11.0": version: 0.11.0 resolution: "dependency-graph@npm:0.11.0" @@ -12048,19 +11791,6 @@ __metadata: languageName: node linkType: hard -"detective@npm:^5.2.1": - version: 5.2.1 - resolution: "detective@npm:5.2.1" - dependencies: - acorn-node: ^1.8.2 - defined: ^1.0.0 - minimist: ^1.2.6 - bin: - detective: bin/detective.js - checksum: dc4601bbc6be850edb3c2dab7a0eaf5a6169a15ad201679c66d40ea1986df816eeaecd590047f15b0780285f3eeea13b82dca0d4c52a47e744a571e326a72dc9 - languageName: node - linkType: hard - "didyoumean@npm:^1.2.2": version: 1.2.2 resolution: "didyoumean@npm:1.2.2" @@ -12075,10 +11805,10 @@ __metadata: languageName: node linkType: hard -"diff-sequences@npm:^29.3.1": - version: 29.3.1 - resolution: "diff-sequences@npm:29.3.1" - checksum: 8edab8c383355022e470779a099852d595dd856f9f5bd7af24f177e74138a668932268b4c4fd54096eed643861575c3652d4ecbbb1a9d710488286aed3ffa443 +"diff-sequences@npm:^29.4.3": + version: 29.4.3 + resolution: "diff-sequences@npm:29.4.3" + checksum: 28b265e04fdddcf7f9f814effe102cc95a9dec0564a579b5aed140edb24fc345c611ca52d76d725a3cab55d3888b915b5e8a4702e0f6058968a90fa5f41fcde7 languageName: node linkType: hard @@ -12238,7 +11968,7 @@ __metadata: languageName: node linkType: hard -"domhandler@npm:^5.0.1, domhandler@npm:^5.0.2": +"domhandler@npm:^5.0.2, domhandler@npm:^5.0.3": version: 5.0.3 resolution: "domhandler@npm:5.0.3" dependencies: @@ -12269,13 +11999,13 @@ __metadata: linkType: hard "domutils@npm:^3.0.1": - version: 3.0.1 - resolution: "domutils@npm:3.0.1" + version: 3.1.0 + resolution: "domutils@npm:3.1.0" dependencies: dom-serializer: ^2.0.0 domelementtype: ^2.3.0 - domhandler: ^5.0.1 - checksum: 23aa7a840572d395220e173cb6263b0d028596e3950100520870a125af33ff819e6f609e1606d6f7d73bd9e7feb03bb404286e57a39063b5384c62b724d987b3 + domhandler: ^5.0.3 + checksum: e5757456ddd173caa411cfc02c2bb64133c65546d2c4081381a3bafc8a57411a41eed70494551aa58030be9e58574fcc489828bebd673863d39924fb4878f416 languageName: node linkType: hard @@ -12322,9 +12052,9 @@ __metadata: linkType: hard "dotenv@npm:^16.0.0": - version: 16.0.3 - resolution: "dotenv@npm:16.0.3" - checksum: afcf03f373d7a6d62c7e9afea6328e62851d627a4e73f2e12d0a8deae1cd375892004f3021883f8aec85932cd2834b091f568ced92b4774625b321db83b827f8 + version: 16.1.1 + resolution: "dotenv@npm:16.1.1" + checksum: e3786267ce7951e747edef6bf45ac60fdba8b846201f82f8811b7222e78aef9cdc51763f07696934d4feebab2ab4d01b1d61ac9301919a8f317dc66672127814 languageName: node linkType: hard @@ -12405,20 +12135,20 @@ __metadata: linkType: hard "ejs@npm:^3.1.8": - version: 3.1.8 - resolution: "ejs@npm:3.1.8" + version: 3.1.9 + resolution: "ejs@npm:3.1.9" dependencies: jake: ^10.8.5 bin: ejs: bin/cli.js - checksum: 1d40d198ad52e315ccf37e577bdec06e24eefdc4e3c27aafa47751a03a0c7f0ec4310254c9277a5f14763c3cd4bbacce27497332b2d87c74232b9b1defef8efc + checksum: af6f10eb815885ff8a8cfacc42c6b6cf87daf97a4884f87a30e0c3271fedd85d76a3a297d9c33a70e735b97ee632887f85e32854b9cdd3a2d97edf931519a35f languageName: node linkType: hard -"electron-to-chromium@npm:^1.4.284": - version: 1.4.286 - resolution: "electron-to-chromium@npm:1.4.286" - checksum: 6b53e2aea63892cb4af85ea4ee5ed2b6d848713519987efcf4c1177a32e2fe6d04a7f591f5bcd1feab0b3c88890c6eaf65b6feb16c0e0319bf07e31de31930af +"electron-to-chromium@npm:^1.4.411": + version: 1.4.414 + resolution: "electron-to-chromium@npm:1.4.414" + checksum: 6ffb295747f42301c7e685574ed21eb5af5fe081dfeb67dea16a5cb4a12b5a4028ade574053c1368e837eaa5d2e3903b753298d8dd09bfd7306a6db9b19ffec7 languageName: node linkType: hard @@ -12492,9 +12222,9 @@ __metadata: linkType: hard "entities@npm:^4.2.0, entities@npm:^4.4.0": - version: 4.4.0 - resolution: "entities@npm:4.4.0" - checksum: 84d250329f4b56b40fa93ed067b194db21e8815e4eb9b59f43a086f0ecd342814f6bc483de8a77da5d64e0f626033192b1b4f1792232a7ea6b970ebe0f3187c2 + version: 4.5.0 + resolution: "entities@npm:4.5.0" + checksum: 853f8ebd5b425d350bffa97dd6958143179a5938352ccae092c62d1267c4e392a039be1bae7d51b6e4ffad25f51f9617531fedf5237f15df302ccfb452cbf2d7 languageName: node linkType: hard @@ -12544,17 +12274,17 @@ __metadata: languageName: node linkType: hard -"es-abstract@npm:^1.17.2, es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": - version: 1.21.1 - resolution: "es-abstract@npm:1.21.1" +"es-abstract@npm:^1.17.2, es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4, es-abstract@npm:^1.21.2": + version: 1.21.2 + resolution: "es-abstract@npm:1.21.2" dependencies: + array-buffer-byte-length: ^1.0.0 available-typed-arrays: ^1.0.5 call-bind: ^1.0.2 es-set-tostringtag: ^2.0.1 es-to-primitive: ^1.2.1 - function-bind: ^1.1.1 function.prototype.name: ^1.1.5 - get-intrinsic: ^1.1.3 + get-intrinsic: ^1.2.0 get-symbol-description: ^1.0.0 globalthis: ^1.0.3 gopd: ^1.0.1 @@ -12562,8 +12292,8 @@ __metadata: has-property-descriptors: ^1.0.0 has-proto: ^1.0.1 has-symbols: ^1.0.3 - internal-slot: ^1.0.4 - is-array-buffer: ^3.0.1 + internal-slot: ^1.0.5 + is-array-buffer: ^3.0.2 is-callable: ^1.2.7 is-negative-zero: ^2.0.2 is-regex: ^1.1.4 @@ -12571,17 +12301,18 @@ __metadata: is-string: ^1.0.7 is-typed-array: ^1.1.10 is-weakref: ^1.0.2 - object-inspect: ^1.12.2 + object-inspect: ^1.12.3 object-keys: ^1.1.1 object.assign: ^4.1.4 regexp.prototype.flags: ^1.4.3 safe-regex-test: ^1.0.0 + string.prototype.trim: ^1.2.7 string.prototype.trimend: ^1.0.6 string.prototype.trimstart: ^1.0.6 typed-array-length: ^1.0.4 unbox-primitive: ^1.0.2 which-typed-array: ^1.1.9 - checksum: 23ff60d42d17a55d150e7bcedbdb065d4077a8b98c436e0e2e1ef4dd532a6d78a56028673de0bd8ed464a43c46ba781c50d9af429b6a17e44dbd14c7d7fb7926 + checksum: 037f55ee5e1cdf2e5edbab5524095a4f97144d95b94ea29e3611b77d852fd8c8a40e7ae7101fa6a759a9b9b1405f188c3c70928f2d3cd88d543a07fc0d5ad41a languageName: node linkType: hard @@ -12592,7 +12323,7 @@ __metadata: languageName: node linkType: hard -"es-get-iterator@npm:^1.1.2": +"es-get-iterator@npm:^1.1.3": version: 1.1.3 resolution: "es-get-iterator@npm:1.1.3" dependencies: @@ -12887,127 +12618,50 @@ __metadata: optional: true esbuild-linux-s390x: optional: true - esbuild-netbsd-64: - optional: true - esbuild-openbsd-64: - optional: true - esbuild-sunos-64: - optional: true - esbuild-windows-32: - optional: true - esbuild-windows-64: - optional: true - esbuild-windows-arm64: - optional: true - bin: - esbuild: bin/esbuild - checksum: ec12682b2cb2d4f0669d0e555028b87a9284ca7f6a1b26e35e69a8697165b35cc682ad598abc70f0bbcfdc12ca84ef888caf5ceee389237862e8f8c17da85f89 - languageName: node - linkType: hard - -"esbuild@npm:^0.16.14, esbuild@npm:^0.16.5": - version: 0.16.17 - resolution: "esbuild@npm:0.16.17" - dependencies: - "@esbuild/android-arm": 0.16.17 - "@esbuild/android-arm64": 0.16.17 - "@esbuild/android-x64": 0.16.17 - "@esbuild/darwin-arm64": 0.16.17 - "@esbuild/darwin-x64": 0.16.17 - "@esbuild/freebsd-arm64": 0.16.17 - "@esbuild/freebsd-x64": 0.16.17 - "@esbuild/linux-arm": 0.16.17 - "@esbuild/linux-arm64": 0.16.17 - "@esbuild/linux-ia32": 0.16.17 - "@esbuild/linux-loong64": 0.16.17 - "@esbuild/linux-mips64el": 0.16.17 - "@esbuild/linux-ppc64": 0.16.17 - "@esbuild/linux-riscv64": 0.16.17 - "@esbuild/linux-s390x": 0.16.17 - "@esbuild/linux-x64": 0.16.17 - "@esbuild/netbsd-x64": 0.16.17 - "@esbuild/openbsd-x64": 0.16.17 - "@esbuild/sunos-x64": 0.16.17 - "@esbuild/win32-arm64": 0.16.17 - "@esbuild/win32-ia32": 0.16.17 - "@esbuild/win32-x64": 0.16.17 - dependenciesMeta: - "@esbuild/android-arm": - optional: true - "@esbuild/android-arm64": - optional: true - "@esbuild/android-x64": - optional: true - "@esbuild/darwin-arm64": - optional: true - "@esbuild/darwin-x64": - optional: true - "@esbuild/freebsd-arm64": - optional: true - "@esbuild/freebsd-x64": - optional: true - "@esbuild/linux-arm": - optional: true - "@esbuild/linux-arm64": - optional: true - "@esbuild/linux-ia32": - optional: true - "@esbuild/linux-loong64": - optional: true - "@esbuild/linux-mips64el": - optional: true - "@esbuild/linux-ppc64": - optional: true - "@esbuild/linux-riscv64": - optional: true - "@esbuild/linux-s390x": - optional: true - "@esbuild/linux-x64": - optional: true - "@esbuild/netbsd-x64": + esbuild-netbsd-64: optional: true - "@esbuild/openbsd-x64": + esbuild-openbsd-64: optional: true - "@esbuild/sunos-x64": + esbuild-sunos-64: optional: true - "@esbuild/win32-arm64": + esbuild-windows-32: optional: true - "@esbuild/win32-ia32": + esbuild-windows-64: optional: true - "@esbuild/win32-x64": + esbuild-windows-arm64: optional: true bin: esbuild: bin/esbuild - checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c + checksum: ec12682b2cb2d4f0669d0e555028b87a9284ca7f6a1b26e35e69a8697165b35cc682ad598abc70f0bbcfdc12ca84ef888caf5ceee389237862e8f8c17da85f89 languageName: node linkType: hard -"esbuild@npm:^0.17.0": - version: 0.17.16 - resolution: "esbuild@npm:0.17.16" - dependencies: - "@esbuild/android-arm": 0.17.16 - "@esbuild/android-arm64": 0.17.16 - "@esbuild/android-x64": 0.17.16 - "@esbuild/darwin-arm64": 0.17.16 - "@esbuild/darwin-x64": 0.17.16 - "@esbuild/freebsd-arm64": 0.17.16 - "@esbuild/freebsd-x64": 0.17.16 - "@esbuild/linux-arm": 0.17.16 - "@esbuild/linux-arm64": 0.17.16 - "@esbuild/linux-ia32": 0.17.16 - "@esbuild/linux-loong64": 0.17.16 - "@esbuild/linux-mips64el": 0.17.16 - "@esbuild/linux-ppc64": 0.17.16 - "@esbuild/linux-riscv64": 0.17.16 - "@esbuild/linux-s390x": 0.17.16 - "@esbuild/linux-x64": 0.17.16 - "@esbuild/netbsd-x64": 0.17.16 - "@esbuild/openbsd-x64": 0.17.16 - "@esbuild/sunos-x64": 0.17.16 - "@esbuild/win32-arm64": 0.17.16 - "@esbuild/win32-ia32": 0.17.16 - "@esbuild/win32-x64": 0.17.16 +"esbuild@npm:^0.16.14, esbuild@npm:^0.16.5": + version: 0.16.17 + resolution: "esbuild@npm:0.16.17" + dependencies: + "@esbuild/android-arm": 0.16.17 + "@esbuild/android-arm64": 0.16.17 + "@esbuild/android-x64": 0.16.17 + "@esbuild/darwin-arm64": 0.16.17 + "@esbuild/darwin-x64": 0.16.17 + "@esbuild/freebsd-arm64": 0.16.17 + "@esbuild/freebsd-x64": 0.16.17 + "@esbuild/linux-arm": 0.16.17 + "@esbuild/linux-arm64": 0.16.17 + "@esbuild/linux-ia32": 0.16.17 + "@esbuild/linux-loong64": 0.16.17 + "@esbuild/linux-mips64el": 0.16.17 + "@esbuild/linux-ppc64": 0.16.17 + "@esbuild/linux-riscv64": 0.16.17 + "@esbuild/linux-s390x": 0.16.17 + "@esbuild/linux-x64": 0.16.17 + "@esbuild/netbsd-x64": 0.16.17 + "@esbuild/openbsd-x64": 0.16.17 + "@esbuild/sunos-x64": 0.16.17 + "@esbuild/win32-arm64": 0.16.17 + "@esbuild/win32-ia32": 0.16.17 + "@esbuild/win32-x64": 0.16.17 dependenciesMeta: "@esbuild/android-arm": optional: true @@ -13055,11 +12709,11 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: c9787d8e05b9c4f762761be31a7847b5b4492b9b997808b7098479fef9a3260f1b8ca01e9b38376b6698f4394bfe088acb4f797a697b45b965cd664e103aafa7 + checksum: 4c2cc609ecfb426554bc3f75beb92d89eb2d0c515cfceebaa36c7599d7dcaab7056b70f6d6b51e72b45951ddf9021ee28e356cf205f8e42cc055d522312ea30c languageName: node linkType: hard -"esbuild@npm:^0.17.5": +"esbuild@npm:^0.17.0, esbuild@npm:^0.17.5": version: 0.17.19 resolution: "esbuild@npm:0.17.19" dependencies: @@ -13233,14 +12887,14 @@ __metadata: linkType: hard "eslint-module-utils@npm:^2.7.4": - version: 2.7.4 - resolution: "eslint-module-utils@npm:2.7.4" + version: 2.8.0 + resolution: "eslint-module-utils@npm:2.8.0" dependencies: debug: ^3.2.7 peerDependenciesMeta: eslint: optional: true - checksum: 5da13645daff145a5c922896b258f8bba560722c3767254e458d894ff5fbb505d6dfd945bffa932a5b0ae06714da2379bd41011c4c20d2d59cc83e23895360f7 + checksum: 74c6dfea7641ebcfe174be61168541a11a14aa8d72e515f5f09af55cd0d0862686104b0524aa4b8e0ce66418a44aa38a94d2588743db5fd07a6b49ffd16921d2 languageName: node linkType: hard @@ -13378,13 +13032,13 @@ __metadata: linkType: hard "eslint-plugin-testing-library@npm:^5.0.1": - version: 5.10.0 - resolution: "eslint-plugin-testing-library@npm:5.10.0" + version: 5.11.0 + resolution: "eslint-plugin-testing-library@npm:5.11.0" dependencies: - "@typescript-eslint/utils": ^5.43.0 + "@typescript-eslint/utils": ^5.58.0 peerDependencies: eslint: ^7.5.0 || ^8.0.0 - checksum: 3278fc4683a99d24ac2b6d2ed0359db1b0509674350e4b9a958a226f57b4b90e070c02e1f4c2806da885d8025c1e8c952cb9a5e9751e69baac3d12cfe6804000 + checksum: 7f19d3dedd7788b411ca3d9045de682feb26025b9c26d97d4e2f0bf62f5eaa276147d946bd5d0cd967b822e546a954330fdb7ef80485301264f646143f011a02 languageName: node linkType: hard @@ -13398,53 +13052,38 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.1.1": - version: 7.1.1 - resolution: "eslint-scope@npm:7.1.1" +"eslint-scope@npm:^7.2.0": + version: 7.2.0 + resolution: "eslint-scope@npm:7.2.0" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: 9f6e974ab2db641ca8ab13508c405b7b859e72afe9f254e8131ff154d2f40c99ad4545ce326fd9fde3212ff29707102562a4834f1c48617b35d98c71a97fbf3e - languageName: node - linkType: hard - -"eslint-utils@npm:^3.0.0": - version: 3.0.0 - resolution: "eslint-utils@npm:3.0.0" - dependencies: - eslint-visitor-keys: ^2.0.0 - peerDependencies: - eslint: ">=5" - checksum: 0668fe02f5adab2e5a367eee5089f4c39033af20499df88fe4e6aba2015c20720404d8c3d6349b6f716b08fdf91b9da4e5d5481f265049278099c4c836ccb619 + checksum: 64591a2d8b244ade9c690b59ef238a11d5c721a98bcee9e9f445454f442d03d3e04eda88e95a4daec558220a99fa384309d9faae3d459bd40e7a81b4063980ae languageName: node linkType: hard -"eslint-visitor-keys@npm:^2.0.0, eslint-visitor-keys@npm:^2.1.0": +"eslint-visitor-keys@npm:^2.1.0": version: 2.1.0 resolution: "eslint-visitor-keys@npm:2.1.0" checksum: e3081d7dd2611a35f0388bbdc2f5da60b3a3c5b8b6e928daffff7391146b434d691577aa95064c8b7faad0b8a680266bcda0a42439c18c717b80e6718d7e267d languageName: node linkType: hard -"eslint-visitor-keys@npm:^3.0.0": - version: 3.4.0 - resolution: "eslint-visitor-keys@npm:3.4.0" - checksum: 33159169462d3989321a1ec1e9aaaf6a24cc403d5d347e9886d1b5bfe18ffa1be73bdc6203143a28a606b142b1af49787f33cff0d6d0813eb5f2e8d2e1a6043c - languageName: node - linkType: hard - -"eslint-visitor-keys@npm:^3.3.0": - version: 3.3.0 - resolution: "eslint-visitor-keys@npm:3.3.0" - checksum: d59e68a7c5a6d0146526b0eec16ce87fbf97fe46b8281e0d41384224375c4e52f5ffb9e16d48f4ea50785cde93f766b0c898e31ab89978d88b0e1720fbfb7808 +"eslint-visitor-keys@npm:^3.0.0, eslint-visitor-keys@npm:^3.3.0, eslint-visitor-keys@npm:^3.4.1": + version: 3.4.1 + resolution: "eslint-visitor-keys@npm:3.4.1" + checksum: f05121d868202736b97de7d750847a328fcfa8593b031c95ea89425333db59676ac087fa905eba438d0a3c5769632f828187e0c1a0d271832a2153c1d3661c2c languageName: node linkType: hard "eslint@npm:^8.16.0": - version: 8.33.0 - resolution: "eslint@npm:8.33.0" + version: 8.41.0 + resolution: "eslint@npm:8.41.0" dependencies: - "@eslint/eslintrc": ^1.4.1 + "@eslint-community/eslint-utils": ^4.2.0 + "@eslint-community/regexpp": ^4.4.0 + "@eslint/eslintrc": ^2.0.3 + "@eslint/js": 8.41.0 "@humanwhocodes/config-array": ^0.11.8 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 @@ -13454,24 +13093,22 @@ __metadata: debug: ^4.3.2 doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.1.1 - eslint-utils: ^3.0.0 - eslint-visitor-keys: ^3.3.0 - espree: ^9.4.0 - esquery: ^1.4.0 + eslint-scope: ^7.2.0 + eslint-visitor-keys: ^3.4.1 + espree: ^9.5.2 + esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 file-entry-cache: ^6.0.1 find-up: ^5.0.0 glob-parent: ^6.0.2 globals: ^13.19.0 - grapheme-splitter: ^1.0.4 + graphemer: ^1.4.0 ignore: ^5.2.0 import-fresh: ^3.0.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 is-path-inside: ^3.0.3 - js-sdsl: ^4.1.4 js-yaml: ^4.1.0 json-stable-stringify-without-jsonify: ^1.0.1 levn: ^0.4.1 @@ -13479,24 +13116,23 @@ __metadata: minimatch: ^3.1.2 natural-compare: ^1.4.0 optionator: ^0.9.1 - regexpp: ^3.2.0 strip-ansi: ^6.0.1 strip-json-comments: ^3.1.0 text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: 727e63ab8b7acf281442323c5971f6afdd5b656fbcebc4476cf54e35af51b2f180617433fc5e1952f0449ca3f43a905527f9407ea4b8a7ea7562fc9c3f278d4c + checksum: 09979a6f8451dcc508a7005b6670845c8a518376280b3fd96657a406b8b6ef29d0e480d1ba11b4eb48da93d607e0c55c9b877676fe089d09973ec152354e23b2 languageName: node linkType: hard -"espree@npm:^9.4.0": - version: 9.4.1 - resolution: "espree@npm:9.4.1" +"espree@npm:^9.5.2": + version: 9.5.2 + resolution: "espree@npm:9.5.2" dependencies: acorn: ^8.8.0 acorn-jsx: ^5.3.2 - eslint-visitor-keys: ^3.3.0 - checksum: 4d266b0cf81c7dfe69e542c7df0f246e78d29f5b04dda36e514eb4c7af117ee6cfbd3280e560571ed82ff6c9c3f0003c05b82583fc7a94006db7497c4fe4270e + eslint-visitor-keys: ^3.4.1 + checksum: 6506289d6eb26471c0b383ee24fee5c8ae9d61ad540be956b3127be5ce3bf687d2ba6538ee5a86769812c7c552a9d8239e8c4d150f9ea056c6d5cbe8399c03c1 languageName: node linkType: hard @@ -13510,12 +13146,12 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.4.0": - version: 1.4.0 - resolution: "esquery@npm:1.4.0" +"esquery@npm:^1.4.2": + version: 1.5.0 + resolution: "esquery@npm:1.5.0" dependencies: estraverse: ^5.1.0 - checksum: a0807e17abd7fbe5fbd4fab673038d6d8a50675cdae6b04fbaa520c34581be0c5fa24582990e8acd8854f671dd291c78bb2efb9e0ed5b62f33bac4f9cf820210 + checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 languageName: node linkType: hard @@ -13581,13 +13217,6 @@ __metadata: languageName: node linkType: hard -"event-source-polyfill@npm:1.0.25": - version: 1.0.25 - resolution: "event-source-polyfill@npm:1.0.25" - checksum: ed30428cc80eadfd693d267ba4a72dceaae938174cd116081ce38ad62bfd95f199430be7e8341e6f8f1e29489bbd5cfd4b3f6c8d6d463435623f7f91ae5f71b1 - languageName: node - linkType: hard - "event-source-polyfill@npm:1.0.31": version: 1.0.31 resolution: "event-source-polyfill@npm:1.0.31" @@ -13617,7 +13246,7 @@ __metadata: languageName: node linkType: hard -"eventsource@npm:2.0.2, eventsource@npm:^2.0.2": +"eventsource@npm:2.0.2": version: 2.0.2 resolution: "eventsource@npm:2.0.2" checksum: c0072d972753e10c705d9b2285b559184bf29d011bc208973dde9c8b6b8b7b6fdad4ef0846cecb249f7b1585e860fdf324cbd2ac854a76bc53649e797496e99a @@ -13805,16 +13434,16 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0, expect@npm:^29.4.1": - version: 29.4.1 - resolution: "expect@npm:29.4.1" +"expect@npm:^29.0.0, expect@npm:^29.5.0": + version: 29.5.0 + resolution: "expect@npm:29.5.0" dependencies: - "@jest/expect-utils": ^29.4.1 - jest-get-type: ^29.2.0 - jest-matcher-utils: ^29.4.1 - jest-message-util: ^29.4.1 - jest-util: ^29.4.1 - checksum: 5918f69371557bbceb01bc163cd0ac03e8cbbc5de761892a9c27ef17a1f9e94dc91edd8298b4eaca18b71ba4a9d521c74b072f0a46950b13d6b61123b0431836 + "@jest/expect-utils": ^29.5.0 + jest-get-type: ^29.4.3 + jest-matcher-utils: ^29.5.0 + jest-message-util: ^29.5.0 + jest-util: ^29.5.0 + checksum: 58f70b38693df6e5c6892db1bcd050f0e518d6f785175dc53917d4fa6a7359a048e5690e19ddcb96b65c4493881dd89a3dabdab1a84dfa55c10cdbdabf37b2d7 languageName: node linkType: hard @@ -13945,10 +13574,10 @@ __metadata: languageName: node linkType: hard -"fast-equals@npm:^2.0.0": - version: 2.0.4 - resolution: "fast-equals@npm:2.0.4" - checksum: 1aac8a2e16b33e5e402bb5cd46be65f1ca331903c2c44e3bd75324e8472ee04f0acdbc6889e45fc28f9707ca3964f2a86789b32305d4d8b85dc97f61e446ef4b +"fast-equals@npm:^5.0.0": + version: 5.0.1 + resolution: "fast-equals@npm:5.0.1" + checksum: fbb3b6a74f3a0fa930afac151ff7d01639159b4fddd2678b5d50708e0ba38e9ec14602222d10dadb8398187342692c04fbef5a62b1cfcc7942fe03e754e064bc languageName: node linkType: hard @@ -14043,9 +13672,9 @@ __metadata: linkType: hard "fetch-retry@npm:^5.0.2": - version: 5.0.3 - resolution: "fetch-retry@npm:5.0.3" - checksum: b4eebc04bd41651417e89ae9287e5b9e5421970ce07058c6e1e22f7d9c1cd5f935fc39a328fd66b433247c0ae1bb8a6b2d48c073d5a9f911992f72c5d311b14d + version: 5.0.6 + resolution: "fetch-retry@npm:5.0.6" + checksum: 4ad8bca6ec7a7b1212e636bb422a9ae8bb9dce38df0b441c9eb77a29af99b368029d6248ff69427da67e3d43c53808b121135ea395e7fe4f8f383e0ad65b4f27 languageName: node linkType: hard @@ -14102,12 +13731,12 @@ __metadata: linkType: hard "file-system-cache@npm:^2.0.0": - version: 2.0.2 - resolution: "file-system-cache@npm:2.0.2" + version: 2.3.0 + resolution: "file-system-cache@npm:2.3.0" dependencies: - fs-extra: ^11.1.0 - ramda: ^0.28.0 - checksum: ac4f9065132ac4593dbfb7c8fc4683cccc0f58823279763690fb3fca859cc5e6b4446c846af718354059695fa90db316be4ce19e16578bbb0feab4a9159e9fbc + fs-extra: 11.1.1 + ramda: 0.29.0 + checksum: 74afa2870a062500643d41e02d1fbd47a3f30100f9e153dec5233d59f05545f4c8ada6085629d624e043479ac28c0cafc31824f7b49a3f997efab8cc5d05bfee languageName: node linkType: hard @@ -14125,7 +13754,7 @@ __metadata: languageName: node linkType: hard -"filelist@npm:^1.0.1": +"filelist@npm:^1.0.4": version: 1.0.4 resolution: "filelist@npm:1.0.4" dependencies: @@ -14296,9 +13925,9 @@ __metadata: linkType: hard "flow-parser@npm:0.*": - version: 0.199.1 - resolution: "flow-parser@npm:0.199.1" - checksum: c0c16aa4510af17dc8644eb9e6108bb223f23971569529389c56502fd4521ac9f04384277165b2adccabedf5d577fdf49e34323ac9a44cdd092d6dc139c987df + version: 0.207.0 + resolution: "flow-parser@npm:0.207.0" + checksum: 3bd638f601f016f67eb7156f4d0233e722f468008cd47fd6ea63bb14846b1c02202e4e096eb169a7d9a7b3322a8121fb79ddf7214bfbe29e6379a19bf3409680 languageName: node linkType: hard @@ -14322,12 +13951,12 @@ __metadata: languageName: node linkType: hard -"focus-lock@npm:^0.11.5": - version: 0.11.5 - resolution: "focus-lock@npm:0.11.5" +"focus-lock@npm:^0.11.6": + version: 0.11.6 + resolution: "focus-lock@npm:0.11.6" dependencies: tslib: ^2.0.3 - checksum: c1d38b0eb4448f06155b0820f153a9e3e3910f6777b1129b4124ec7d81d911b86adb20049091c6ee58685b2db5f48678c87755e66d4c69bd8a1a8a15de050796 + checksum: 6a407c4c45f05f8258f92565541fc5f8043f576643a7603eb999e1a790173e08712056766ed034ccd31c6d6deed259dea558002712fa5ef2432fc6930b9c7a05 languageName: node linkType: hard @@ -14429,8 +14058,8 @@ __metadata: linkType: hard "framer-motion@npm:^10.0.0": - version: 10.12.4 - resolution: "framer-motion@npm:10.12.4" + version: 10.12.16 + resolution: "framer-motion@npm:10.12.16" dependencies: "@emotion/is-prop-valid": ^0.8.2 tslib: ^2.4.0 @@ -14445,43 +14074,7 @@ __metadata: optional: true react-dom: optional: true - checksum: c131b546539937b5dbec6a89f2e3db946d5127f1cbf2f88268ef75089df30e81cdd0f4a5786f84b1bc98397d43a99aa6f7e187e6bba178548a9eeb3d39df7b91 - languageName: node - linkType: hard - -"framer-motion@npm:^9.0.1": - version: 9.0.1 - resolution: "framer-motion@npm:9.0.1" - dependencies: - "@emotion/is-prop-valid": ^0.8.2 - "@motionone/dom": ^10.15.3 - hey-listen: ^1.0.8 - tslib: ^2.4.0 - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependenciesMeta: - "@emotion/is-prop-valid": - optional: true - checksum: e4e47bad607ad9882c515223dab2357203812039bb47f2787a29b9e951299cb6b94d18a46989bb6fc6a5a31a417a58c3cf210e2e6867d2ab85190550767465de - languageName: node - linkType: hard - -"framer-motion@npm:^9.0.4": - version: 9.0.7 - resolution: "framer-motion@npm:9.0.7" - dependencies: - "@emotion/is-prop-valid": ^0.8.2 - "@motionone/dom": ^10.15.3 - hey-listen: ^1.0.8 - tslib: ^2.4.0 - peerDependencies: - react: ^18.0.0 - react-dom: ^18.0.0 - dependenciesMeta: - "@emotion/is-prop-valid": - optional: true - checksum: f9ef0facc708cc934345c192c6bad11fee38562df07a8d2928502bc61af6133fdd19eb24ee10b24bd90689447c1fcce27087b4914f33ed7268984d5792e6373c + checksum: 0ba346fd6e64688ea5e64f9e353af6202b42d59e309ac32daca7fc07dc1dad9136dd2c18017a85ac76d01becb7f4683fc92dedbfce3e44831ea0c47bdc73e812 languageName: node linkType: hard @@ -14523,25 +14116,25 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^10.0.0, fs-extra@npm:^10.0.1": - version: 10.1.0 - resolution: "fs-extra@npm:10.1.0" +"fs-extra@npm:11.1.1, fs-extra@npm:^11.1.0": + version: 11.1.1 + resolution: "fs-extra@npm:11.1.1" dependencies: graceful-fs: ^4.2.0 jsonfile: ^6.0.1 universalify: ^2.0.0 - checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 + checksum: fb883c68245b2d777fbc1f2082c9efb084eaa2bbf9fddaa366130d196c03608eebef7fb490541276429ee1ca99f317e2d73e96f5ca0999eefedf5a624ae1edfd languageName: node linkType: hard -"fs-extra@npm:^11.1.0": - version: 11.1.0 - resolution: "fs-extra@npm:11.1.0" +"fs-extra@npm:^10.0.0, fs-extra@npm:^10.0.1": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" dependencies: graceful-fs: ^4.2.0 jsonfile: ^6.0.1 universalify: ^2.0.0 - checksum: 5ca476103fa1f5ff4a9b3c4f331548f8a3c1881edaae323a4415d3153b5dc11dc6a981c8d1dd93eec8367ceee27b53f8bd27eecbbf66ffcdd04927510c171e7f + checksum: dc94ab37096f813cc3ca12f0f1b5ad6744dfed9ed21e953d72530d103cea193c2f81584a39e9dee1bea36de5ee66805678c0dddc048e8af1427ac19c00fffc50 languageName: node linkType: hard @@ -14606,7 +14199,7 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": +"fsevents@npm:2.3.2, fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" dependencies: @@ -14616,7 +14209,7 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": +"fsevents@patch:fsevents@2.3.2#~builtin, fsevents@patch:fsevents@^2.3.2#~builtin, fsevents@patch:fsevents@~2.3.2#~builtin": version: 2.3.2 resolution: "fsevents@patch:fsevents@npm%3A2.3.2#~builtin::version=2.3.2&hash=18f3a7" dependencies: @@ -14654,7 +14247,7 @@ __metadata: languageName: node linkType: hard -"functions-have-names@npm:^1.2.2": +"functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" checksum: c3f1f5ba20f4e962efb71344ce0a40722163e85bee2101ce25f88214e78182d2d2476aa85ef37950c579eb6cf6ee811c17b3101bb84004bb75655f3e33f3fdb5 @@ -14731,36 +14324,19 @@ __metadata: languageName: node linkType: hard -"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3": - version: 1.2.0 - resolution: "get-intrinsic@npm:1.2.0" +"get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1, get-intrinsic@npm:^1.1.3, get-intrinsic@npm:^1.2.0": + version: 1.2.1 + resolution: "get-intrinsic@npm:1.2.1" dependencies: function-bind: ^1.1.1 has: ^1.0.3 + has-proto: ^1.0.1 has-symbols: ^1.0.3 - checksum: 78fc0487b783f5c58cf2dccafc3ae656ee8d2d8062a8831ce4a95e7057af4587a1d4882246c033aca0a7b4965276f4802b45cc300338d1b77a73d3e3e3f4877d - languageName: node - linkType: hard - -"get-it@npm:^8, get-it@npm:^8.0.9": - version: 8.0.9 - resolution: "get-it@npm:8.0.9" - dependencies: - debug: ^4.3.4 - decompress-response: ^7.0.0 - follow-redirects: ^1.15.2 - into-stream: ^6.0.0 - is-plain-object: ^5.0.0 - is-retry-allowed: ^2.2.0 - is-stream: ^2.0.1 - parse-headers: ^2.0.5 - progress-stream: ^2.0.0 - tunnel-agent: ^0.6.0 - checksum: 17f73e45aeed53c3ab660b565082405ad173b593b9b5e5db0b1eb601e5077ffbc9e706482fc8d765ae6efa8c00854c3bfc9912bd0dab7b9aae7e71bd807c1a14 + checksum: 5b61d88552c24b0cf6fa2d1b3bc5459d7306f699de060d76442cce49a4721f52b8c560a33ab392cf5575b7810277d54ded9d4d39a1ea61855619ebc005aa7e5f languageName: node linkType: hard -"get-it@npm:^8.1.0": +"get-it@npm:^8.0.9, get-it@npm:^8.1.0": version: 8.1.3 resolution: "get-it@npm:8.1.3" dependencies: @@ -14888,19 +14464,19 @@ __metadata: linkType: hard "giget@npm:^1.0.0": - version: 1.0.0 - resolution: "giget@npm:1.0.0" + version: 1.1.2 + resolution: "giget@npm:1.1.2" dependencies: colorette: ^2.0.19 - defu: ^6.1.1 + defu: ^6.1.2 https-proxy-agent: ^5.0.1 mri: ^1.2.0 - node-fetch-native: ^1.0.1 - pathe: ^1.0.0 - tar: ^6.1.12 + node-fetch-native: ^1.0.2 + pathe: ^1.1.0 + tar: ^6.1.13 bin: giget: dist/cli.mjs - checksum: adb9a1ed8a2895e9962865ac02d648134c82e17bd149804244322a27a7fc547bf57a0f8d4090d7d5bbce5ceba2914d5db6a94db41489eae92fbef2f1a1c27261 + checksum: 76ad0f7e792ee95dd6c4e1096697fdcce61a2a3235a6c21761fc3e0d1053342074ce71c80059d6d4363fd34152e5d7b2e58221412f300c852ff7d4a12d0321fe languageName: node linkType: hard @@ -15004,6 +14580,20 @@ __metadata: languageName: node linkType: hard +"glob@npm:7.1.6": + version: 7.1.6 + resolution: "glob@npm:7.1.6" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.0.4 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 351d549dd90553b87c2d3f90ce11aed9e1093c74130440e7ae0592e11bbcd2ce7f0ebb8ba6bfe63aaf9b62166a7f4c80cb84490ae5d78408bb2572bf7d4ee0a6 + languageName: node + linkType: hard + "glob@npm:7.1.7": version: 7.1.7 resolution: "glob@npm:7.1.7" @@ -15203,15 +14793,15 @@ __metadata: linkType: hard "globby@npm:^13.1.2": - version: 13.1.3 - resolution: "globby@npm:13.1.3" + version: 13.1.4 + resolution: "globby@npm:13.1.4" dependencies: dir-glob: ^3.0.1 fast-glob: ^3.2.11 ignore: ^5.2.0 merge2: ^1.4.1 slash: ^4.0.0 - checksum: 93f06e02002cdf368f7e3d55bd59e7b00784c7cc8fe92c7ee5082cc7171ff6109fda45e1c97a80bb48bc811dedaf7843c7c9186f5f84bde4883ab630e13c43df + checksum: e8bc13879972082d590cd1b0e27080d90d2e12fff7eeb2cee9329c29115ace14cc5b9f899e3d6beb136ba826307a727016658919a6f383e1511d698acee81741 languageName: node linkType: hard @@ -15258,9 +14848,9 @@ __metadata: linkType: hard "graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.5, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.10, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": - version: 4.2.10 - resolution: "graceful-fs@npm:4.2.10" - checksum: 3f109d70ae123951905d85032ebeae3c2a5a7a997430df00ea30df0e3a6c60cf6689b109654d6fdacd28810a053348c4d14642da1d075049e6be1ba5216218da + version: 4.2.11 + resolution: "graceful-fs@npm:4.2.11" + checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 languageName: node linkType: hard @@ -15271,10 +14861,17 @@ __metadata: languageName: node linkType: hard +"graphemer@npm:^1.4.0": + version: 1.4.0 + resolution: "graphemer@npm:1.4.0" + checksum: bab8f0be9b568857c7bec9fda95a89f87b783546d02951c40c33f84d05bb7da3fd10f863a9beb901463669b6583173a8c8cc6d6b306ea2b9b9d5d3d943c3a673 + languageName: node + linkType: hard + "groq-js@npm:1": - version: 1.1.8 - resolution: "groq-js@npm:1.1.8" - checksum: b60b7f5d32b081d46a1b7b1e08823260b577a285fd1b21c6e960f7cc526c215cdf83234c8680eae80208b87671bc31f20c260e2ebf6b5b5916a73d92e3d0f893 + version: 1.1.9 + resolution: "groq-js@npm:1.1.9" + checksum: d12e47b5b762391b94ddb93d124c55f825288309f50ee5829b8853aa403f2685dabaa5a0b7c2fe96fbcae085b01ebac44a5ee864f25b80bea0ded1936b21b506 languageName: node linkType: hard @@ -15285,10 +14882,10 @@ __metadata: languageName: node linkType: hard -"groq@npm:3": - version: 3.8.0 - resolution: "groq@npm:3.8.0" - checksum: c13697b7314a497cd9840208d88341a80c85c6040256673f38245a9cd19d9efb2c11368787570bd3593473f705a9735ffd4da2381c03e2ae1370465d45115e34 +"groq@npm:3, groq@npm:^3.0.0": + version: 3.11.3 + resolution: "groq@npm:3.11.3" + checksum: d50f8018c4e4e79012ea49813340b1c428b2b6be8a2b7bf384e954f1fdab99fd460a0d5e3328738b1baec37717dd269e964bcda93b88d43a880f414662fe74dc languageName: node linkType: hard @@ -15299,13 +14896,6 @@ __metadata: languageName: node linkType: hard -"groq@npm:^3.0.0": - version: 3.11.1 - resolution: "groq@npm:3.11.1" - checksum: 47e87b4f028e0e5001f5e8a42b045f156bb5da2d5ef5307e6e8c86b37e8c22cfea12559eb45b3a47e1c782d098b61fade58a5e180c7fb89df4219748a1b3603d - languageName: node - linkType: hard - "gunzip-maybe@npm:^1.4.1, gunzip-maybe@npm:^1.4.2": version: 1.4.2 resolution: "gunzip-maybe@npm:1.4.2" @@ -15584,13 +15174,6 @@ __metadata: languageName: node linkType: hard -"hey-listen@npm:^1.0.8": - version: 1.0.8 - resolution: "hey-listen@npm:1.0.8" - checksum: 6bad60b367688f5348e25e7ca3276a74b59ac5a09b0455e6ff8ab7d4a9e38cd2116c708a7dcd8a954d27253ce1d8717ec891d175723ea739885b828cf44e4072 - languageName: node - linkType: hard - "highlight.js@npm:^10.4.1, highlight.js@npm:~10.7.0": version: 10.7.3 resolution: "highlight.js@npm:10.7.3" @@ -15667,9 +15250,9 @@ __metadata: linkType: hard "html-tags@npm:^3.1.0, html-tags@npm:^3.2.0": - version: 3.2.0 - resolution: "html-tags@npm:3.2.0" - checksum: a0c9e96ac26c84adad9cc66d15d6711a17f60acda8d987218f1d4cbaacd52864939b230e635cce5a1179f3ddab2a12b9231355617dfbae7945fcfec5e96d2041 + version: 3.3.1 + resolution: "html-tags@npm:3.3.1" + checksum: b4ef1d5a76b678e43cce46e3783d563607b1d550cab30b4f511211564574770aa8c658a400b100e588bc60b8234e59b35ff72c7851cc28f3b5403b13a2c6cbce languageName: node linkType: hard @@ -15907,10 +15490,10 @@ __metadata: languageName: node linkType: hard -"immer@npm:^9.0.16, immer@npm:^9.0.6": - version: 9.0.19 - resolution: "immer@npm:9.0.19" - checksum: f02ee53989989c287cd548a3d817fccf0bfe56db919755ee94a72ea3ae78a00363fba93ee6c010fe54a664380c29c53d44ed4091c6a86cae60957ad2cfabc010 +"immer@npm:^9.0.21, immer@npm:^9.0.6": + version: 9.0.21 + resolution: "immer@npm:9.0.21" + checksum: 70e3c274165995352f6936695f0ef4723c52c92c92dd0e9afdfe008175af39fa28e76aafb3a2ca9d57d1fb8f796efc4dd1e1cc36f18d33fa5b74f3dfb0375432 languageName: node linkType: hard @@ -16069,14 +15652,14 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4": - version: 1.0.4 - resolution: "internal-slot@npm:1.0.4" +"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": + version: 1.0.5 + resolution: "internal-slot@npm:1.0.5" dependencies: - get-intrinsic: ^1.1.3 + get-intrinsic: ^1.2.0 has: ^1.0.3 side-channel: ^1.0.4 - checksum: 8974588d06bab4f675573a3b52975370facf6486df51bc0567a982c7024fa29495f10b76c0d4dc742dd951d1b72024fdc1e31bb0bedf1678dc7aacacaf5a4f73 + checksum: 97e84046bf9e7574d0956bd98d7162313ce7057883b6db6c5c7b5e5f05688864b0978ba07610c726d15d66544ffe4b1050107d93f8a39ebc59b15d8b429b497a languageName: node linkType: hard @@ -16177,14 +15760,14 @@ __metadata: languageName: node linkType: hard -"is-array-buffer@npm:^3.0.1": - version: 3.0.1 - resolution: "is-array-buffer@npm:3.0.1" +"is-array-buffer@npm:^3.0.1, is-array-buffer@npm:^3.0.2": + version: 3.0.2 + resolution: "is-array-buffer@npm:3.0.2" dependencies: call-bind: ^1.0.2 - get-intrinsic: ^1.1.3 + get-intrinsic: ^1.2.0 is-typed-array: ^1.1.10 - checksum: f26ab87448e698285daf707e52a533920449f7abf63714140ffab9d5571aa5a71ac2fa2677e8b793ad0d5d3e40078d4d2c8a0ab39c957e3cfc6513bb6c9dfdc9 + checksum: dcac9dda66ff17df9cabdc58214172bf41082f956eab30bb0d86bc0fab1e44b690fc8e1f855cf2481245caf4e8a5a006a982a71ddccec84032ed41f9d8da8c14 languageName: node linkType: hard @@ -16244,7 +15827,7 @@ __metadata: languageName: node linkType: hard -"is-builtin-module@npm:^3.2.0": +"is-builtin-module@npm:^3.2.1": version: 3.2.1 resolution: "is-builtin-module@npm:3.2.1" dependencies: @@ -16282,12 +15865,12 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": - version: 2.11.0 - resolution: "is-core-module@npm:2.11.0" +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.5.0, is-core-module@npm:^2.9.0": + version: 2.12.1 + resolution: "is-core-module@npm:2.12.1" dependencies: has: ^1.0.3 - checksum: f96fd490c6b48eb4f6d10ba815c6ef13f410b0ba6f7eb8577af51697de523e5f2cd9de1c441b51d27251bf0e4aebc936545e33a5d26d5d51f28d25698d4a8bab + checksum: f04ea30533b5e62764e7b2e049d3157dc0abd95ef44275b32489ea2081176ac9746ffb1cdb107445cf1ff0e0dfcad522726ca27c27ece64dadf3795428b8e468 languageName: node linkType: hard @@ -16944,70 +16527,71 @@ __metadata: linkType: hard "jake@npm:^10.8.5": - version: 10.8.5 - resolution: "jake@npm:10.8.5" + version: 10.8.7 + resolution: "jake@npm:10.8.7" dependencies: async: ^3.2.3 chalk: ^4.0.2 - filelist: ^1.0.1 - minimatch: ^3.0.4 + filelist: ^1.0.4 + minimatch: ^3.1.2 bin: - jake: ./bin/cli.js - checksum: 56c913ecf5a8d74325d0af9bc17a233bad50977438d44864d925bb6c45c946e0fee8c4c1f5fe2225471ef40df5222e943047982717ebff0d624770564d3c46ba + jake: bin/cli.js + checksum: a23fd2273fb13f0d0d845502d02c791fd55ef5c6a2d207df72f72d8e1eac6d2b8ffa6caf660bc8006b3242e0daaa88a3ecc600194d72b5c6016ad56e9cd43553 languageName: node linkType: hard -"jest-changed-files@npm:^29.4.0": - version: 29.4.0 - resolution: "jest-changed-files@npm:29.4.0" +"jest-changed-files@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-changed-files@npm:29.5.0" dependencies: execa: ^5.0.0 p-limit: ^3.1.0 - checksum: d8883b32b8b28f4f63cbbe32ff75283401a11647303bd74e2c522981457a88b9146b77974759023c74215a0a55c1b1d0fc3070fe3cde9d4f33aaa1c76aede4eb + checksum: a67a7cb3c11f8f92bd1b7c79e84f724cbd11a9ad51f3cdadafe3ce7ee3c79ee50dbea128f920f5fddc807e9e4e83f5462143094391feedd959a77dd20ab96cf3 languageName: node linkType: hard -"jest-circus@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-circus@npm:29.4.1" +"jest-circus@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-circus@npm:29.5.0" dependencies: - "@jest/environment": ^29.4.1 - "@jest/expect": ^29.4.1 - "@jest/test-result": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/environment": ^29.5.0 + "@jest/expect": ^29.5.0 + "@jest/test-result": ^29.5.0 + "@jest/types": ^29.5.0 "@types/node": "*" chalk: ^4.0.0 co: ^4.6.0 dedent: ^0.7.0 is-generator-fn: ^2.0.0 - jest-each: ^29.4.1 - jest-matcher-utils: ^29.4.1 - jest-message-util: ^29.4.1 - jest-runtime: ^29.4.1 - jest-snapshot: ^29.4.1 - jest-util: ^29.4.1 + jest-each: ^29.5.0 + jest-matcher-utils: ^29.5.0 + jest-message-util: ^29.5.0 + jest-runtime: ^29.5.0 + jest-snapshot: ^29.5.0 + jest-util: ^29.5.0 p-limit: ^3.1.0 - pretty-format: ^29.4.1 + pretty-format: ^29.5.0 + pure-rand: ^6.0.0 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: e1aff95668c2e17397e65b201d472a430d0713e9a75650b0a73ba7aed71f5eb0c2065c0f593dc2f422dcb817db1ec41b6eb888a3a8c01dbaf5eaeec7429a83d5 + checksum: 44ff5d06acedae6de6c866e20e3b61f83e29ab94cf9f960826e7e667de49c12dd9ab9dffd7fa3b7d1f9688a8b5bfb1ebebadbea69d9ed0d3f66af4a0ff8c2b27 languageName: node linkType: hard -"jest-cli@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-cli@npm:29.4.1" +"jest-cli@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-cli@npm:29.5.0" dependencies: - "@jest/core": ^29.4.1 - "@jest/test-result": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/core": ^29.5.0 + "@jest/test-result": ^29.5.0 + "@jest/types": ^29.5.0 chalk: ^4.0.0 exit: ^0.1.2 graceful-fs: ^4.2.9 import-local: ^3.0.2 - jest-config: ^29.4.1 - jest-util: ^29.4.1 - jest-validate: ^29.4.1 + jest-config: ^29.5.0 + jest-util: ^29.5.0 + jest-validate: ^29.5.0 prompts: ^2.0.1 yargs: ^17.3.1 peerDependencies: @@ -17017,34 +16601,34 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 12318e61d51288f4c43ad38f776df8e31264f31458d4b810583945b137ddf9ebbcdd2018cef9987e973f56cf716892649bff650d8b80cae8d868a35c4f0f3f93 + checksum: 39897bbbc0f0d8a6b975ab12fd13887eaa28d92e3dee9e0173a5cb913ae8cc2ae46e090d38c6d723e84d9d6724429cd08685b4e505fa447d31ca615630c7dbba languageName: node linkType: hard -"jest-config@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-config@npm:29.4.1" +"jest-config@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-config@npm:29.5.0" dependencies: "@babel/core": ^7.11.6 - "@jest/test-sequencer": ^29.4.1 - "@jest/types": ^29.4.1 - babel-jest: ^29.4.1 + "@jest/test-sequencer": ^29.5.0 + "@jest/types": ^29.5.0 + babel-jest: ^29.5.0 chalk: ^4.0.0 ci-info: ^3.2.0 deepmerge: ^4.2.2 glob: ^7.1.3 graceful-fs: ^4.2.9 - jest-circus: ^29.4.1 - jest-environment-node: ^29.4.1 - jest-get-type: ^29.2.0 - jest-regex-util: ^29.2.0 - jest-resolve: ^29.4.1 - jest-runner: ^29.4.1 - jest-util: ^29.4.1 - jest-validate: ^29.4.1 + jest-circus: ^29.5.0 + jest-environment-node: ^29.5.0 + jest-get-type: ^29.4.3 + jest-regex-util: ^29.4.3 + jest-resolve: ^29.5.0 + jest-runner: ^29.5.0 + jest-util: ^29.5.0 + jest-validate: ^29.5.0 micromatch: ^4.0.4 parse-json: ^5.2.0 - pretty-format: ^29.4.1 + pretty-format: ^29.5.0 slash: ^3.0.0 strip-json-comments: ^3.1.1 peerDependencies: @@ -17055,168 +16639,145 @@ __metadata: optional: true ts-node: optional: true - checksum: 7ca9c46b25cdf1bd1dd77edeb9ae1a9669e47e6d3af7097bb21b43883415e8311ef97d7b17da5d8eaae695d89e368cfd427a98836391ffec2bdb683b3f4fa060 + checksum: c37c4dab964c54ab293d4e302d40b09687037ac9d00b88348ec42366970747feeaf265e12e3750cd3660b40c518d4031335eda11ac10b70b10e60797ebbd4b9c languageName: node linkType: hard -"jest-diff@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-diff@npm:29.4.1" +"jest-diff@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-diff@npm:29.5.0" dependencies: chalk: ^4.0.0 - diff-sequences: ^29.3.1 - jest-get-type: ^29.2.0 - pretty-format: ^29.4.1 - checksum: 359af2d11a75bbb3c91e3def8cfd0ede00afc6fb5d69d9495f2af5f6e18f692adb940d8338a186159f75afe48088d82bce14e2cc272cad9a5c2148bf0bc7f6bf + diff-sequences: ^29.4.3 + jest-get-type: ^29.4.3 + pretty-format: ^29.5.0 + checksum: dfd0f4a299b5d127779c76b40106c37854c89c3e0785098c717d52822d6620d227f6234c3a9291df204d619e799e3654159213bf93220f79c8e92a55475a3d39 languageName: node linkType: hard -"jest-docblock@npm:^29.2.0": - version: 29.2.0 - resolution: "jest-docblock@npm:29.2.0" +"jest-docblock@npm:^29.4.3": + version: 29.4.3 + resolution: "jest-docblock@npm:29.4.3" dependencies: detect-newline: ^3.0.0 - checksum: b3f1227b7d73fc9e4952180303475cf337b36fa65c7f730ac92f0580f1c08439983262fee21cf3dba11429aa251b4eee1e3bc74796c5777116b400d78f9d2bbe + checksum: e0e9df1485bb8926e5b33478cdf84b3387d9caf3658e7dc1eaa6dc34cb93dea0d2d74797f6e940f0233a88f3dadd60957f2288eb8f95506361f85b84bf8661df languageName: node linkType: hard -"jest-each@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-each@npm:29.4.1" +"jest-each@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-each@npm:29.5.0" dependencies: - "@jest/types": ^29.4.1 + "@jest/types": ^29.5.0 chalk: ^4.0.0 - jest-get-type: ^29.2.0 - jest-util: ^29.4.1 - pretty-format: ^29.4.1 - checksum: af44c12c747c4b76534b34f7135176c645ff740b59b20a29a3c6c97590ddb4216e7a2e076a43e98a0132350b4af5af3d8e5334bdd7753bf999a5ee240b7360b8 + jest-get-type: ^29.4.3 + jest-util: ^29.5.0 + pretty-format: ^29.5.0 + checksum: b8b297534d25834c5d4e31e4c687359787b1e402519e42664eb704cc3a12a7a91a017565a75acb02e8cf9afd3f4eef3350bd785276bec0900184641b765ff7a5 languageName: node linkType: hard "jest-environment-jsdom@npm:^29.0.0": - version: 29.4.1 - resolution: "jest-environment-jsdom@npm:29.4.1" + version: 29.5.0 + resolution: "jest-environment-jsdom@npm:29.5.0" dependencies: - "@jest/environment": ^29.4.1 - "@jest/fake-timers": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/environment": ^29.5.0 + "@jest/fake-timers": ^29.5.0 + "@jest/types": ^29.5.0 "@types/jsdom": ^20.0.0 "@types/node": "*" - jest-mock: ^29.4.1 - jest-util: ^29.4.1 + jest-mock: ^29.5.0 + jest-util: ^29.5.0 jsdom: ^20.0.0 peerDependencies: canvas: ^2.5.0 peerDependenciesMeta: canvas: optional: true - checksum: ad0d3e2926f847ed711f11a622b3c4990bcdb3b150e013a1bc7789e5da6efb4c4554d2208e42d543cfb4732d971478330f75549f927002566f6d50963a17e133 + checksum: 3df7fc85275711f20b483ac8cd8c04500704ed0f69791eb55c574b38f5a39470f03d775cf20c1025bc1884916ac0573aa2fa4db1bb74225bc7fdd95ba97ad0da languageName: node linkType: hard -"jest-environment-node@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-environment-node@npm:29.4.1" +"jest-environment-node@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-environment-node@npm:29.5.0" dependencies: - "@jest/environment": ^29.4.1 - "@jest/fake-timers": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/environment": ^29.5.0 + "@jest/fake-timers": ^29.5.0 + "@jest/types": ^29.5.0 "@types/node": "*" - jest-mock: ^29.4.1 - jest-util: ^29.4.1 - checksum: 1de024edbc8a281b2c54d379d649a2d63e153049848c257be4118eaa5136cc4943a32f3ce44841ca2356e18850ab51f833cb94509f268e25ebcd32c6bfac27a3 - languageName: node - linkType: hard - -"jest-get-type@npm:^29.2.0": - version: 29.2.0 - resolution: "jest-get-type@npm:29.2.0" - checksum: e396fd880a30d08940ed8a8e43cd4595db1b8ff09649018eb358ca701811137556bae82626af73459e3c0f8c5e972ed1e57fd3b1537b13a260893dac60a90942 + jest-mock: ^29.5.0 + jest-util: ^29.5.0 + checksum: 57981911cc20a4219b0da9e22b2e3c9f31b505e43f78e61c899e3227ded455ce1a3a9483842c69cfa4532f02cfb536ae0995bf245f9211608edacfc1e478d411 languageName: node linkType: hard -"jest-haste-map@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-haste-map@npm:29.4.1" - dependencies: - "@jest/types": ^29.4.1 - "@types/graceful-fs": ^4.1.3 - "@types/node": "*" - anymatch: ^3.0.3 - fb-watchman: ^2.0.0 - fsevents: ^2.3.2 - graceful-fs: ^4.2.9 - jest-regex-util: ^29.2.0 - jest-util: ^29.4.1 - jest-worker: ^29.4.1 - micromatch: ^4.0.4 - walker: ^1.0.8 - dependenciesMeta: - fsevents: - optional: true - checksum: f9815172f0b5d89b723558c5544db4915e03806590b6b686dabb91811b201f3eac07e7211f021a19fc6f9fa6cb90836efac92970ec16385ea18285d91ba8ffc3 +"jest-get-type@npm:^29.4.3": + version: 29.4.3 + resolution: "jest-get-type@npm:29.4.3" + checksum: 6ac7f2dde1c65e292e4355b6c63b3a4897d7e92cb4c8afcf6d397f2682f8080e094c8b0b68205a74d269882ec06bf696a9de6cd3e1b7333531e5ed7b112605ce languageName: node linkType: hard -"jest-haste-map@npm:^29.4.2": - version: 29.4.2 - resolution: "jest-haste-map@npm:29.4.2" +"jest-haste-map@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-haste-map@npm:29.5.0" dependencies: - "@jest/types": ^29.4.2 + "@jest/types": ^29.5.0 "@types/graceful-fs": ^4.1.3 "@types/node": "*" anymatch: ^3.0.3 fb-watchman: ^2.0.0 fsevents: ^2.3.2 graceful-fs: ^4.2.9 - jest-regex-util: ^29.4.2 - jest-util: ^29.4.2 - jest-worker: ^29.4.2 + jest-regex-util: ^29.4.3 + jest-util: ^29.5.0 + jest-worker: ^29.5.0 micromatch: ^4.0.4 walker: ^1.0.8 dependenciesMeta: fsevents: optional: true - checksum: 0aa4a66702f020ea7e6a0ce58c6d2ef363c8f9f4302254f865dab4e1c6e9ac3926db088a42893a7207cc77559d563f6e8f396430f9bfb7784c3cc81862151df0 + checksum: 3828ff7783f168e34be2c63887f82a01634261f605dcae062d83f979a61c37739e21b9607ecb962256aea3fbe5a530a1acee062d0026fcb47c607c12796cf3b7 languageName: node linkType: hard -"jest-leak-detector@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-leak-detector@npm:29.4.1" +"jest-leak-detector@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-leak-detector@npm:29.5.0" dependencies: - jest-get-type: ^29.2.0 - pretty-format: ^29.4.1 - checksum: 94f8091e52e163a4e50420112988d8386117dfa92bd21738d9a367dc5e1f87d3e645bee2db4fc7fc25a1d495934761bb7a64750d61a7e7b6477b8f1f54da317c + jest-get-type: ^29.4.3 + pretty-format: ^29.5.0 + checksum: 0fb845da7ac9cdfc9b3b2e35f6f623a41c547d7dc0103ceb0349013459d00de5870b5689a625e7e37f9644934b40e8f1dcdd5422d14d57470600350364676313 languageName: node linkType: hard -"jest-matcher-utils@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-matcher-utils@npm:29.4.1" +"jest-matcher-utils@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-matcher-utils@npm:29.5.0" dependencies: chalk: ^4.0.0 - jest-diff: ^29.4.1 - jest-get-type: ^29.2.0 - pretty-format: ^29.4.1 - checksum: ea84dbcae82241cb28e94ff586660aeec51196d9245413dc516ce3aa78140b3ea728b1168b242281b59ad513b0148b9f12d674729bd043a894a3ba9d6ec164f4 + jest-diff: ^29.5.0 + jest-get-type: ^29.4.3 + pretty-format: ^29.5.0 + checksum: 1d3e8c746e484a58ce194e3aad152eff21fd0896e8b8bf3d4ab1a4e2cbfed95fb143646f4ad9fdf6e42212b9e8fc033268b58e011b044a9929df45485deb5ac9 languageName: node linkType: hard -"jest-message-util@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-message-util@npm:29.4.1" +"jest-message-util@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-message-util@npm:29.5.0" dependencies: "@babel/code-frame": ^7.12.13 - "@jest/types": ^29.4.1 + "@jest/types": ^29.5.0 "@types/stack-utils": ^2.0.0 chalk: ^4.0.0 graceful-fs: ^4.2.9 micromatch: ^4.0.4 - pretty-format: ^29.4.1 + pretty-format: ^29.5.0 slash: ^3.0.0 stack-utils: ^2.0.3 - checksum: 7d49823401b6d42f0d2d63dd9c0f11d2f64783416f82a68634190abee46e600e25bb0b380c746726acc56e854687bb03a76e26e617fcdda78e8c6316423b694f + checksum: daddece6bbf846eb6a2ab9be9f2446e54085bef4e5cecd13d2a538fa9c01cb89d38e564c6b74fd8e12d37ed9eface8a362240ae9f21d68b214590631e7a0d8bf languageName: node linkType: hard @@ -17230,14 +16791,14 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-mock@npm:29.4.1" +"jest-mock@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-mock@npm:29.5.0" dependencies: - "@jest/types": ^29.4.1 + "@jest/types": ^29.5.0 "@types/node": "*" - jest-util: ^29.4.1 - checksum: 7f595a71886a64eda21b9fc2660e86a02f0efe6685496c675e6be921d5609fe9ac5fe97e8c7d1cae811974967439e8daa12c1779e731bdd777c47326f173e4a2 + jest-util: ^29.5.0 + checksum: 2a9cf07509948fa8608898c445f04fe4dd6e2049ff431e5531eee028c808d3ba3c67f226ac87b0cf383feaa1055776900d197c895e89783016886ac17a4ff10c languageName: node linkType: hard @@ -17262,110 +16823,102 @@ __metadata: languageName: node linkType: hard -"jest-regex-util@npm:^29.2.0": - version: 29.2.0 - resolution: "jest-regex-util@npm:29.2.0" - checksum: 7c533e51c51230dac20c0d7395b19b8366cb022f7c6e08e6bcf2921626840ff90424af4c9b4689f02f0addfc9b071c4cd5f8f7a989298a4c8e0f9c94418ca1c3 - languageName: node - linkType: hard - -"jest-regex-util@npm:^29.4.2": - version: 29.4.2 - resolution: "jest-regex-util@npm:29.4.2" - checksum: a85bb9b5c64e57dba3fba1fe1a93eb78b53b5bb98c78fa3b5876baf3b831d8fc3067c05e93c0115b3100e7e3046d1109bc01671407527f8691742604be459a66 +"jest-regex-util@npm:^29.4.3": + version: 29.4.3 + resolution: "jest-regex-util@npm:29.4.3" + checksum: 96fc7fc28cd4dd73a63c13a526202c4bd8b351d4e5b68b1a2a2c88da3308c2a16e26feaa593083eb0bac38cca1aa9dd05025412e7de013ba963fb8e66af22b8a languageName: node linkType: hard -"jest-resolve-dependencies@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-resolve-dependencies@npm:29.4.1" +"jest-resolve-dependencies@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-resolve-dependencies@npm:29.5.0" dependencies: - jest-regex-util: ^29.2.0 - jest-snapshot: ^29.4.1 - checksum: 561e588abc1aae3d44a46b53eaeee1bc86419407c2e9b97afb7b3fc6ea2df06ef1523e9561bfc8d790c7a48a40031c3b1e1f38281850d23b0a07351553f7e85e + jest-regex-util: ^29.4.3 + jest-snapshot: ^29.5.0 + checksum: 479d2e5365d58fe23f2b87001e2e0adcbffe0147700e85abdec8f14b9703b0a55758c1929a9989e3f5d5e954fb88870ea4bfa04783523b664562fcf5f10b0edf languageName: node linkType: hard -"jest-resolve@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-resolve@npm:29.4.1" +"jest-resolve@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-resolve@npm:29.5.0" dependencies: chalk: ^4.0.0 graceful-fs: ^4.2.9 - jest-haste-map: ^29.4.1 + jest-haste-map: ^29.5.0 jest-pnp-resolver: ^1.2.2 - jest-util: ^29.4.1 - jest-validate: ^29.4.1 + jest-util: ^29.5.0 + jest-validate: ^29.5.0 resolve: ^1.20.0 resolve.exports: ^2.0.0 slash: ^3.0.0 - checksum: 1e19c0156937366b3edc867d38ca4c6c8193067605921544a5f5d2019a96c01be5fb9b385bb61a3600eacaceb7a3333f42dbed4cb699403d8575d476a9d4c5d5 + checksum: 9a125f3cf323ceef512089339d35f3ee37f79fe16a831fb6a26773ea6a229b9e490d108fec7af334142e91845b5996de8e7cdd85a4d8d617078737d804e29c8f languageName: node linkType: hard -"jest-runner@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-runner@npm:29.4.1" +"jest-runner@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-runner@npm:29.5.0" dependencies: - "@jest/console": ^29.4.1 - "@jest/environment": ^29.4.1 - "@jest/test-result": ^29.4.1 - "@jest/transform": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/console": ^29.5.0 + "@jest/environment": ^29.5.0 + "@jest/test-result": ^29.5.0 + "@jest/transform": ^29.5.0 + "@jest/types": ^29.5.0 "@types/node": "*" chalk: ^4.0.0 emittery: ^0.13.1 graceful-fs: ^4.2.9 - jest-docblock: ^29.2.0 - jest-environment-node: ^29.4.1 - jest-haste-map: ^29.4.1 - jest-leak-detector: ^29.4.1 - jest-message-util: ^29.4.1 - jest-resolve: ^29.4.1 - jest-runtime: ^29.4.1 - jest-util: ^29.4.1 - jest-watcher: ^29.4.1 - jest-worker: ^29.4.1 + jest-docblock: ^29.4.3 + jest-environment-node: ^29.5.0 + jest-haste-map: ^29.5.0 + jest-leak-detector: ^29.5.0 + jest-message-util: ^29.5.0 + jest-resolve: ^29.5.0 + jest-runtime: ^29.5.0 + jest-util: ^29.5.0 + jest-watcher: ^29.5.0 + jest-worker: ^29.5.0 p-limit: ^3.1.0 source-map-support: 0.5.13 - checksum: b6651d8ac16c9f3ce502b58c97e59b062e83b3b7a9bee91812fbbcf141098ef1456902be6598d7980727a0c22457290cb548913dea5bd25ceaca4e1822f733bf + checksum: 437dea69c5dddca22032259787bac74790d5a171c9d804711415f31e5d1abfb64fa52f54a9015bb17a12b858fd0cf3f75ef6f3c9e94255a8596e179f707229c4 languageName: node linkType: hard -"jest-runtime@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-runtime@npm:29.4.1" +"jest-runtime@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-runtime@npm:29.5.0" dependencies: - "@jest/environment": ^29.4.1 - "@jest/fake-timers": ^29.4.1 - "@jest/globals": ^29.4.1 - "@jest/source-map": ^29.2.0 - "@jest/test-result": ^29.4.1 - "@jest/transform": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/environment": ^29.5.0 + "@jest/fake-timers": ^29.5.0 + "@jest/globals": ^29.5.0 + "@jest/source-map": ^29.4.3 + "@jest/test-result": ^29.5.0 + "@jest/transform": ^29.5.0 + "@jest/types": ^29.5.0 "@types/node": "*" chalk: ^4.0.0 cjs-module-lexer: ^1.0.0 collect-v8-coverage: ^1.0.0 glob: ^7.1.3 graceful-fs: ^4.2.9 - jest-haste-map: ^29.4.1 - jest-message-util: ^29.4.1 - jest-mock: ^29.4.1 - jest-regex-util: ^29.2.0 - jest-resolve: ^29.4.1 - jest-snapshot: ^29.4.1 - jest-util: ^29.4.1 - semver: ^7.3.5 + jest-haste-map: ^29.5.0 + jest-message-util: ^29.5.0 + jest-mock: ^29.5.0 + jest-regex-util: ^29.4.3 + jest-resolve: ^29.5.0 + jest-snapshot: ^29.5.0 + jest-util: ^29.5.0 slash: ^3.0.0 strip-bom: ^4.0.0 - checksum: 6c5fcc350ef019bbc0c0601e41c236f4f666c6cee2eef5048fd07a48cc579133d68c852a0d68d9ebbc9b4e115a4f1d0ab5641f3d204944f312fbcb11b73cef8f + checksum: 7af27bd9d54cf1c5735404cf8d76c6509d5610b1ec0106a21baa815c1aff15d774ce534ac2834bc440dccfe6348bae1885fd9a806f23a94ddafdc0f5bae4b09d languageName: node linkType: hard -"jest-snapshot@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-snapshot@npm:29.4.1" +"jest-snapshot@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-snapshot@npm:29.5.0" dependencies: "@babel/core": ^7.11.6 "@babel/generator": ^7.7.2 @@ -17373,118 +16926,91 @@ __metadata: "@babel/plugin-syntax-typescript": ^7.7.2 "@babel/traverse": ^7.7.2 "@babel/types": ^7.3.3 - "@jest/expect-utils": ^29.4.1 - "@jest/transform": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/expect-utils": ^29.5.0 + "@jest/transform": ^29.5.0 + "@jest/types": ^29.5.0 "@types/babel__traverse": ^7.0.6 "@types/prettier": ^2.1.5 babel-preset-current-node-syntax: ^1.0.0 chalk: ^4.0.0 - expect: ^29.4.1 + expect: ^29.5.0 graceful-fs: ^4.2.9 - jest-diff: ^29.4.1 - jest-get-type: ^29.2.0 - jest-haste-map: ^29.4.1 - jest-matcher-utils: ^29.4.1 - jest-message-util: ^29.4.1 - jest-util: ^29.4.1 + jest-diff: ^29.5.0 + jest-get-type: ^29.4.3 + jest-matcher-utils: ^29.5.0 + jest-message-util: ^29.5.0 + jest-util: ^29.5.0 natural-compare: ^1.4.0 - pretty-format: ^29.4.1 + pretty-format: ^29.5.0 semver: ^7.3.5 - checksum: 0d309d4a5edd985be1a9e2d64a78f588f5d98b8add709cdf72c6ce77508329dccdb0de3f0be45223f67535691f3eb6430c13fdfb7dfcca7a81d4a210de2fa736 - languageName: node - linkType: hard - -"jest-util@npm:^29.0.0, jest-util@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-util@npm:29.4.1" - dependencies: - "@jest/types": ^29.4.1 - "@types/node": "*" - chalk: ^4.0.0 - ci-info: ^3.2.0 - graceful-fs: ^4.2.9 - picomatch: ^2.2.3 - checksum: 10a0e6c448ace1386f728ee3b7669f67878bb0c2e668a902d11140cc3f75c89a18f4142a37a24ccb587ede20dad86d497b3e8df4f26848a9be50a44779d92bc9 + checksum: fe5df54122ed10eed625de6416a45bc4958d5062b018f05b152bf9785ab7f355dcd55e40cf5da63895bf8278f8d7b2bb4059b2cfbfdee18f509d455d37d8aa2b languageName: node linkType: hard -"jest-util@npm:^29.4.2": - version: 29.4.2 - resolution: "jest-util@npm:29.4.2" +"jest-util@npm:^29.0.0, jest-util@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-util@npm:29.5.0" dependencies: - "@jest/types": ^29.4.2 + "@jest/types": ^29.5.0 "@types/node": "*" chalk: ^4.0.0 ci-info: ^3.2.0 graceful-fs: ^4.2.9 picomatch: ^2.2.3 - checksum: c570de97ccae9f6eca736a4559c77205db1b115d1d3e63f3855b0f016708306de610615f9502291f9382b8e5c9be0443841c392d6ce3197a2915997ced88bc84 + checksum: fd9212950d34d2ecad8c990dda0d8ea59a8a554b0c188b53ea5d6c4a0829a64f2e1d49e6e85e812014933d17426d7136da4785f9cf76fff1799de51b88bc85d3 languageName: node linkType: hard -"jest-validate@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-validate@npm:29.4.1" +"jest-validate@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-validate@npm:29.5.0" dependencies: - "@jest/types": ^29.4.1 + "@jest/types": ^29.5.0 camelcase: ^6.2.0 chalk: ^4.0.0 - jest-get-type: ^29.2.0 + jest-get-type: ^29.4.3 leven: ^3.1.0 - pretty-format: ^29.4.1 - checksum: f2cd98293ed961e79bc75935fbc8fc18e57bcd207175a4119baf810da38542704545afa8ca402456e34d298e44c7564570400645537c31dab9bf27e18284a650 + pretty-format: ^29.5.0 + checksum: 43ca5df7cb75572a254ac3e92fbbe7be6b6a1be898cc1e887a45d55ea003f7a112717d814a674d37f9f18f52d8de40873c8f084f17664ae562736c78dd44c6a1 languageName: node linkType: hard -"jest-watcher@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-watcher@npm:29.4.1" +"jest-watcher@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-watcher@npm:29.5.0" dependencies: - "@jest/test-result": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/test-result": ^29.5.0 + "@jest/types": ^29.5.0 "@types/node": "*" ansi-escapes: ^4.2.1 chalk: ^4.0.0 emittery: ^0.13.1 - jest-util: ^29.4.1 + jest-util: ^29.5.0 string-length: ^4.0.1 - checksum: 210c4931e065367bf8fcd08a31506245610f25cf4bf566c67136afd963fdf9ff56730570e794e52d7ae2f9e6e64f6d92b9287691af14b01dd7deacac840415fb - languageName: node - linkType: hard - -"jest-worker@npm:^29.4.1": - version: 29.4.1 - resolution: "jest-worker@npm:29.4.1" - dependencies: - "@types/node": "*" - jest-util: ^29.4.1 - merge-stream: ^2.0.0 - supports-color: ^8.0.0 - checksum: c3b3eaa09d7ac88e11800a63e96a90ba27b7d609335c73842ee5f8e899e9fd6a6aa68009f54dabb6d6e561c98127def369fc86c8f528639ddfb74dd130f4be9f + checksum: 62303ac7bdc7e61a8b4239a239d018f7527739da2b2be6a81a7be25b74ca769f1c43ee8558ce8e72bb857245c46d6e03af331227ffb00a57280abb2a928aa776 languageName: node linkType: hard -"jest-worker@npm:^29.4.2": - version: 29.4.2 - resolution: "jest-worker@npm:29.4.2" +"jest-worker@npm:^29.5.0": + version: 29.5.0 + resolution: "jest-worker@npm:29.5.0" dependencies: "@types/node": "*" - jest-util: ^29.4.2 + jest-util: ^29.5.0 merge-stream: ^2.0.0 supports-color: ^8.0.0 - checksum: 6fd42900da0047e161fcb7d887f95dcc4aca824decc4a59b019011b9609621902bac71b3d4085ceb4f2d9f266263c547ddc1b29159383b45c04b0ab9944df2f5 + checksum: 1151a1ae3602b1ea7c42a8f1efe2b5a7bf927039deaa0827bf978880169899b705744e288f80a63603fb3fc2985e0071234986af7dc2c21c7a64333d8777c7c9 languageName: node linkType: hard "jest@npm:^29.0.0": - version: 29.4.1 - resolution: "jest@npm:29.4.1" + version: 29.5.0 + resolution: "jest@npm:29.5.0" dependencies: - "@jest/core": ^29.4.1 - "@jest/types": ^29.4.1 + "@jest/core": ^29.5.0 + "@jest/types": ^29.5.0 import-local: ^3.0.2 - jest-cli: ^29.4.1 + jest-cli: ^29.5.0 peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -17492,27 +17018,29 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: b2f74b24d74e135460579a34727d5027818ab6d55a84cbb1d6e730064f8c8fec0590092c6a84334178b310b923587798b0091ab8ae40baba372530fc46dfd195 + checksum: a8ff2eb0f421623412236e23cbe67c638127fffde466cba9606bc0c0553b4c1e5cb116d7e0ef990b5d1712851652c8ee461373b578df50857fe635b94ff455d5 + languageName: node + linkType: hard + +"jiti@npm:^1.18.2": + version: 1.18.2 + resolution: "jiti@npm:1.18.2" + bin: + jiti: bin/jiti.js + checksum: 46c41cd82d01c6efdee3fc0ae9b3e86ed37457192d6366f19157d863d64961b07982ab04e9d5879576a1af99cc4d132b0b73b336094f86a5ce9fb1029ec2d29f languageName: node linkType: hard "joi@npm:^17.7.0": - version: 17.7.0 - resolution: "joi@npm:17.7.0" + version: 17.9.2 + resolution: "joi@npm:17.9.2" dependencies: "@hapi/hoek": ^9.0.0 "@hapi/topo": ^5.0.0 "@sideway/address": ^4.1.3 - "@sideway/formula": ^3.0.0 + "@sideway/formula": ^3.0.1 "@sideway/pinpoint": ^2.0.0 - checksum: 767a847936cb66787256c4351ff86e1b9e8d7383cbe81a5c827064032c2a8e8b6e938baef5ad32c4035fe4c56e537bd90aa2a952be8a0658601c920cdeb4fb3c - languageName: node - linkType: hard - -"js-sdsl@npm:^4.1.4": - version: 4.3.0 - resolution: "js-sdsl@npm:4.3.0" - checksum: ce908257cf6909e213af580af3a691a736f5ee8b16315454768f917a682a4ea0c11bde1b241bbfaecedc0eb67b72101b2c2df2ffaed32aed5d539fca816f054e + checksum: 8c3709849293411c524e5a679dba7b42598a29a663478941767b8d5b06288611dece58803c468a2c7320cc2429a3e71e3d94337fe47aefcf6c22174dbd90b601 languageName: node linkType: hard @@ -17774,7 +17302,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^1.0.1": +"json5@npm:^1.0.2": version: 1.0.2 resolution: "json5@npm:1.0.2" dependencies: @@ -17785,7 +17313,7 @@ __metadata: languageName: node linkType: hard -"json5@npm:^2.1.2, json5@npm:^2.2.0, json5@npm:^2.2.2, json5@npm:^2.2.3": +"json5@npm:^2.1.2, json5@npm:^2.2.2, json5@npm:^2.2.3": version: 2.2.3 resolution: "json5@npm:2.2.3" bin: @@ -17887,7 +17415,7 @@ __metadata: languageName: node linkType: hard -"kleur@npm:^4.1.4": +"kleur@npm:^4.1.5": version: 4.1.5 resolution: "kleur@npm:4.1.5" checksum: 1dc476e32741acf0b1b5b0627ffd0d722e342c1b0da14de3e8ae97821327ca08f9fb944542fb3c126d90ac5f27f9d804edbe7c585bf7d12ef495d115e0f22c12 @@ -18001,14 +17529,7 @@ __metadata: languageName: node linkType: hard -"lilconfig@npm:^2.0.3, lilconfig@npm:^2.0.5, lilconfig@npm:^2.0.6": - version: 2.0.6 - resolution: "lilconfig@npm:2.0.6" - checksum: 40a3cd72f103b1be5975f2ac1850810b61d4053e20ab09be8d3aeddfe042187e1ba70b4651a7e70f95efa1642e7dc8b2ae395b317b7d7753b241b43cef7c0f7d - languageName: node - linkType: hard - -"lilconfig@npm:^2.1.0": +"lilconfig@npm:^2.0.3, lilconfig@npm:^2.0.5, lilconfig@npm:^2.1.0": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" checksum: 8549bb352b8192375fed4a74694cd61ad293904eee33f9d4866c2192865c44c4eb35d10782966242634e0cbc1e91fe62b1247f148dc5514918e3a966da7ea117 @@ -18229,7 +17750,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:4.17.21, lodash@npm:^4.0.1, lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.17.5": +"lodash@npm:4.17.21, lodash@npm:^4.0.1, lodash@npm:^4.17.12, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.17.4, lodash@npm:^4.17.5": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -18323,18 +17844,18 @@ __metadata: linkType: hard "lru-cache@npm:^7.7.1": - version: 7.14.1 - resolution: "lru-cache@npm:7.14.1" - checksum: d72c6713c6a6d86836a7a6523b3f1ac6764768cca47ec99341c3e76db06aacd4764620e5e2cda719a36848785a52a70e531822dc2b33fb071fa709683746c104 + version: 7.18.3 + resolution: "lru-cache@npm:7.18.3" + checksum: e550d772384709deea3f141af34b6d4fa392e2e418c1498c078de0ee63670f1f46f5eee746e8ef7e69e1c895af0d4224e62ee33e66a543a14763b0f2e74c1356 languageName: node linkType: hard "lz-string@npm:^1.4.4": - version: 1.4.4 - resolution: "lz-string@npm:1.4.4" + version: 1.5.0 + resolution: "lz-string@npm:1.5.0" bin: lz-string: bin/bin.js - checksum: 54e31238a61a84d8f664d9860a9fba7310c5b97a52c444f80543069bc084815eff40b8d4474ae1d93992fdf6c252dca37cf27f6adbeb4dbc3df2f3ac773d0e61 + checksum: 1ee98b4580246fd90dd54da6e346fb1caefcf05f677c686d9af237a157fdea3fd7c83a4bc58f858cd5b10a34d27afe0fdcbd0505a47e0590726a873dc8b8f65d languageName: node linkType: hard @@ -18488,11 +18009,11 @@ __metadata: linkType: hard "markdown-to-jsx@npm:^7.1.8": - version: 7.1.9 - resolution: "markdown-to-jsx@npm:7.1.9" + version: 7.2.0 + resolution: "markdown-to-jsx@npm:7.2.0" peerDependencies: react: ">= 0.14.0" - checksum: 81ab9bd0ad93d4e90c39a67a4df2cc2d3b24579f8f018852f05abce442b246cee9cd705ea9d01304144729a48c972b8b535d40a33e04a0a05d5073958e96ae76 + checksum: ea417e684d7eec9f1beebc9423aba377116ef77c3cd83a2d622df1b9030ffef99aa9b3f431192b94f3237943a33560e6dda9be8a4c1d25187518d09986dad22f languageName: node linkType: hard @@ -18851,14 +18372,7 @@ __metadata: languageName: node linkType: hard -"minimist@npm:^1.2.0, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.7": - version: 1.2.7 - resolution: "minimist@npm:1.2.7" - checksum: 7346574a1038ca23c32e02252f603801f09384dd1d78b69a943a4e8c2c28730b80e96193882d3d3b22a063445f460e48316b29b8a25addca2d7e5e8f75478bec - languageName: node - linkType: hard - -"minimist@npm:^1.2.3": +"minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6, minimist@npm:^1.2.7": version: 1.2.8 resolution: "minimist@npm:1.2.8" checksum: 75a6d645fb122dad29c06a7597bddea977258957ed88d7a6df59b5cd3fe4a527e253e9bbf2e783e4b73657f9098b96a5fe96ab8a113655d4109108577ecf85b0 @@ -18925,10 +18439,10 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^4.0.0": - version: 4.0.2 - resolution: "minipass@npm:4.0.2" - checksum: 2e4f4caaf85a45c01c6042adc43b5111a6113f62e300acf1db3b193ac3ec6e955bc893d6d8a08635598771a55a0f60487dcac59a1ac39557eb524295d4778c9e +"minipass@npm:^5.0.0": + version: 5.0.0 + resolution: "minipass@npm:5.0.0" + checksum: 425dab288738853fded43da3314a0b5c035844d6f3097a8e3b5b29b328da8f3c1af6fc70618b32c29ff906284cf6406b6841376f21caaadd0793c1d5a6a620ea languageName: node linkType: hard @@ -19007,9 +18521,9 @@ __metadata: linkType: hard "mixme@npm:^0.5.1": - version: 0.5.5 - resolution: "mixme@npm:0.5.5" - checksum: 9ba307c66679ef1f0270709f4843a93c16354fc04b6c290073e49f49b006ce154c138e29c50916d6c2cf3e4194b558093bd3014392fa2c03e88276563765e529 + version: 0.5.9 + resolution: "mixme@npm:0.5.9" + checksum: ec0e96b2fa099a051fe14477577e3da13f158690c64114a50ecd039694ca2cca1cb7c71a8755aaee8a3ef7229ef33408df822faa4d1d6123b52295eecf50620f languageName: node linkType: hard @@ -19149,6 +18663,17 @@ __metadata: languageName: node linkType: hard +"mz@npm:^2.7.0": + version: 2.7.0 + resolution: "mz@npm:2.7.0" + dependencies: + any-promise: ^1.0.0 + object-assign: ^4.0.1 + thenify-all: ^1.0.0 + checksum: 8427de0ece99a07e9faed3c0c6778820d7543e3776f9a84d22cf0ec0a8eb65f6e9aee9c9d353ff9a105ff62d33a9463c6ca638974cc652ee8140cd1e35951c87 + languageName: node + linkType: hard + "nano-pubsub@npm:^2.0.1": version: 2.0.1 resolution: "nano-pubsub@npm:2.0.1" @@ -19170,16 +18695,7 @@ __metadata: languageName: node linkType: hard -"nanoid@npm:^3.1.12, nanoid@npm:^3.1.30, nanoid@npm:^3.3.1, nanoid@npm:^3.3.3, nanoid@npm:^3.3.4": - version: 3.3.4 - resolution: "nanoid@npm:3.3.4" - bin: - nanoid: bin/nanoid.cjs - checksum: 2fddd6dee994b7676f008d3ffa4ab16035a754f4bb586c61df5a22cf8c8c94017aadd360368f47d653829e0569a92b129979152ff97af23a558331e47e37cd9c - languageName: node - linkType: hard - -"nanoid@npm:^3.3.6": +"nanoid@npm:^3.1.12, nanoid@npm:^3.1.30, nanoid@npm:^3.3.1, nanoid@npm:^3.3.3, nanoid@npm:^3.3.4, nanoid@npm:^3.3.6": version: 3.3.6 resolution: "nanoid@npm:3.3.6" bin: @@ -19243,11 +18759,11 @@ __metadata: linkType: hard "next-sanity@npm:^4.3.2": - version: 4.3.2 - resolution: "next-sanity@npm:4.3.2" + version: 4.3.3 + resolution: "next-sanity@npm:4.3.3" dependencies: "@sanity/client": ^6.0.0 - "@sanity/preview-kit": ^1.5.0 + "@sanity/preview-kit": ^1.5.4 "@sanity/webhook": ^2.0.0 groq: ^3.0.0 peerDependencies: @@ -19259,52 +18775,41 @@ __metadata: react: ^18.0.0 sanity: ^3.0.0 styled-components: ^5.2.0 - checksum: ac9b98fab9c2c662d6d8158fdba3a5bd72d96524aaab71fd0c88b071d2c062c65cb32ec5d020b1caf09a39cc019f11d21bec5c266202db5b6cd81c3caa7c5fb6 + checksum: d152e69df2d919ddd6598d71a82bafc88589fa687b21cfa7bdf96d8761cd414351129a4c525d84acd8867b68221fcd5603c76282fe74b2c6811cd144c928acf8 languageName: node linkType: hard "next@npm:^13.2.1": - version: 13.2.1 - resolution: "next@npm:13.2.1" - dependencies: - "@next/env": 13.2.1 - "@next/swc-android-arm-eabi": 13.2.1 - "@next/swc-android-arm64": 13.2.1 - "@next/swc-darwin-arm64": 13.2.1 - "@next/swc-darwin-x64": 13.2.1 - "@next/swc-freebsd-x64": 13.2.1 - "@next/swc-linux-arm-gnueabihf": 13.2.1 - "@next/swc-linux-arm64-gnu": 13.2.1 - "@next/swc-linux-arm64-musl": 13.2.1 - "@next/swc-linux-x64-gnu": 13.2.1 - "@next/swc-linux-x64-musl": 13.2.1 - "@next/swc-win32-arm64-msvc": 13.2.1 - "@next/swc-win32-ia32-msvc": 13.2.1 - "@next/swc-win32-x64-msvc": 13.2.1 - "@swc/helpers": 0.4.14 + version: 13.4.4 + resolution: "next@npm:13.4.4" + dependencies: + "@next/env": 13.4.4 + "@next/swc-darwin-arm64": 13.4.4 + "@next/swc-darwin-x64": 13.4.4 + "@next/swc-linux-arm64-gnu": 13.4.4 + "@next/swc-linux-arm64-musl": 13.4.4 + "@next/swc-linux-x64-gnu": 13.4.4 + "@next/swc-linux-x64-musl": 13.4.4 + "@next/swc-win32-arm64-msvc": 13.4.4 + "@next/swc-win32-ia32-msvc": 13.4.4 + "@next/swc-win32-x64-msvc": 13.4.4 + "@swc/helpers": 0.5.1 + busboy: 1.6.0 caniuse-lite: ^1.0.30001406 postcss: 8.4.14 styled-jsx: 5.1.1 + zod: 3.21.4 peerDependencies: - "@opentelemetry/api": ^1.4.0 + "@opentelemetry/api": ^1.1.0 fibers: ">= 3.1.0" - node-sass: ^6.0.0 || ^7.0.0 react: ^18.2.0 react-dom: ^18.2.0 sass: ^1.3.0 dependenciesMeta: - "@next/swc-android-arm-eabi": - optional: true - "@next/swc-android-arm64": - optional: true "@next/swc-darwin-arm64": optional: true "@next/swc-darwin-x64": optional: true - "@next/swc-freebsd-x64": - optional: true - "@next/swc-linux-arm-gnueabihf": - optional: true "@next/swc-linux-arm64-gnu": optional: true "@next/swc-linux-arm64-musl": @@ -19324,13 +18829,11 @@ __metadata: optional: true fibers: optional: true - node-sass: - optional: true sass: optional: true bin: next: dist/bin/next - checksum: 2dba145ef4d604cd8eadc27f9e5a537df799614d1a801b9161a997f77a432684871eae51642580972a80ef363d724789677ae7c5fe44dc3dd66e71cd43f609c8 + checksum: d84686f3ca313c57d283872a2946a5c18ecd656c4235ad879cbaa0f2f2886c9bcff94656ff07c4998fa672f40023978235150ce760e4c5b1edab6feaa7ed9fa9 languageName: node linkType: hard @@ -19352,11 +18855,11 @@ __metadata: linkType: hard "node-abi@npm:^3.3.0": - version: 3.33.0 - resolution: "node-abi@npm:3.33.0" + version: 3.40.0 + resolution: "node-abi@npm:3.40.0" dependencies: semver: ^7.3.5 - checksum: 59e5e00d9a15225087b6dd55b7d4f99686a6d64a8bdbe2c9aa98f4f74554873a7225d3dc975fa32718e7695eed8abcfeaae58b03db118a01392f6d25b0469b52 + checksum: 8f4ef0d9ac82352465e7e7a8ce3915dae49c0fd19d6cb49a93140ff587b612166443531111a60d25e479a18e6e6b9af09698c7870babe0f44aa54287aeaf5eef languageName: node linkType: hard @@ -19378,10 +18881,10 @@ __metadata: languageName: node linkType: hard -"node-fetch-native@npm:^1.0.1": - version: 1.0.1 - resolution: "node-fetch-native@npm:1.0.1" - checksum: 828b891344401fc84ce589cce39bf1760fe335c67e7607c4452ab47187f8afe73f86e220c0d215441e9e3ac1e4e27969167b8fa75269acad4362051bc0ee478e +"node-fetch-native@npm:^1.0.2": + version: 1.1.1 + resolution: "node-fetch-native@npm:1.1.1" + checksum: 41fe59179eb94b6ffb25e657e5ed14b4b50e2ba7f6bf5346622970638c8abbf29653b011141c919c6c081979962edd1eb94424a7621412cd78c47a9cd8be1227 languageName: node linkType: hard @@ -19397,8 +18900,8 @@ __metadata: linkType: hard "node-fetch@npm:^2.5.0, node-fetch@npm:^2.6.1, node-fetch@npm:^2.6.7": - version: 2.6.9 - resolution: "node-fetch@npm:2.6.9" + version: 2.6.11 + resolution: "node-fetch@npm:2.6.11" dependencies: whatwg-url: ^5.0.0 peerDependencies: @@ -19406,7 +18909,7 @@ __metadata: peerDependenciesMeta: encoding: optional: true - checksum: acb04f9ce7224965b2b59e71b33c639794d8991efd73855b0b250921382b38331ffc9d61bce502571f6cc6e11a8905ca9b1b6d4aeb586ab093e2756a1fd190d0 + checksum: 249d0666a9497553384d46b5ab296ba223521ac88fed4d8a17d6ee6c2efb0fc890f3e8091cafe7f9fba8151a5b8d925db2671543b3409a56c3cd522b468b47b3 languageName: node linkType: hard @@ -19437,16 +18940,16 @@ __metadata: languageName: node linkType: hard -"node-releases@npm:^2.0.8": - version: 2.0.10 - resolution: "node-releases@npm:2.0.10" - checksum: d784ecde25696a15d449c4433077f5cce620ed30a1656c4abf31282bfc691a70d9618bae6868d247a67914d1be5cc4fde22f65a05f4398cdfb92e0fc83cadfbc +"node-releases@npm:^2.0.12": + version: 2.0.12 + resolution: "node-releases@npm:2.0.12" + checksum: b8c56db82c4642a0f443332b331a4396dae452a2ac5a65c8dbd93ef89ecb2fbb0da9d42ac5366d4764973febadca816cf7587dad492dce18d2a6b2af59cda260 languageName: node linkType: hard "nodemon@npm:^2.0.12": - version: 2.0.20 - resolution: "nodemon@npm:2.0.20" + version: 2.0.22 + resolution: "nodemon@npm:2.0.22" dependencies: chokidar: ^3.5.2 debug: ^3.2.7 @@ -19460,7 +18963,7 @@ __metadata: undefsafe: ^2.0.5 bin: nodemon: bin/nodemon.js - checksum: 9fe858682414fe703179f4fe36c86e71f40d2693b5345c09803d7b191816a6589c5df8f1f9873bffee92893880183b95a031c86340e46b364ef1b0b7f619edbf + checksum: 9c987e139748f5b5c480c6c9080bdc97304ee7d29172b7b3da1a7db590b1323ad57b96346304e9b522b0e445c336dc393ccd3f9f45c73b20d476d2347890dcd0 languageName: node linkType: hard @@ -19665,9 +19168,9 @@ __metadata: linkType: hard "nwsapi@npm:^2.2.2": - version: 2.2.2 - resolution: "nwsapi@npm:2.2.2" - checksum: 43769106292bc95f776756ca2f3513dab7b4d506a97c67baec32406447841a35f65f29c1f95ab5d42785210fd41668beed33ca16fa058780be43b101ad73e205 + version: 2.2.5 + resolution: "nwsapi@npm:2.2.5" + checksum: 3acfe387214e2a9a03960662ad600ecb41fc24385c9de91262a881608407f02d14686e5df3e6e87af0cf7b173ed2a6a202a569ab7bef376ec1841cd9b6cbf0a6 languageName: node linkType: hard @@ -19696,7 +19199,7 @@ __metadata: languageName: node linkType: hard -"object-inspect@npm:^1.12.2, object-inspect@npm:^1.6.0, object-inspect@npm:^1.9.0": +"object-inspect@npm:^1.12.2, object-inspect@npm:^1.12.3, object-inspect@npm:^1.6.0, object-inspect@npm:^1.9.0": version: 1.12.3 resolution: "object-inspect@npm:1.12.3" checksum: dabfd824d97a5f407e6d5d24810d888859f6be394d8b733a77442b277e0808860555176719c5905e765e3743a7cada6b8b0a3b85e5331c530fd418cc8ae991db @@ -19764,14 +19267,15 @@ __metadata: linkType: hard "object.getownpropertydescriptors@npm:^2.1.0": - version: 2.1.5 - resolution: "object.getownpropertydescriptors@npm:2.1.5" + version: 2.1.6 + resolution: "object.getownpropertydescriptors@npm:2.1.6" dependencies: array.prototype.reduce: ^1.0.5 call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 7883e1aac1f9cd4cd85e2bb8c7aab6a60940a7cfe07b788356f301844d4967482fc81058e7bda24e1b3909cbb4879387ea9407329b78704f8937bc0b97dec58b + define-properties: ^1.2.0 + es-abstract: ^1.21.2 + safe-array-concat: ^1.0.0 + checksum: 7757ce0ef61c8bee7f8043f8980fd3d46fc1ab3faf0795bd1f9f836781143b4afc91f7219a3eed4675fbd0b562f3708f7e736d679ebfd43ea37ab6077d9f5004 languageName: node linkType: hard @@ -19893,13 +19397,13 @@ __metadata: linkType: hard "open@npm:^8.4.0": - version: 8.4.0 - resolution: "open@npm:8.4.0" + version: 8.4.2 + resolution: "open@npm:8.4.2" dependencies: define-lazy-prop: ^2.0.0 is-docker: ^2.1.1 is-wsl: ^2.2.0 - checksum: e9545bec64cdbf30a0c35c1bdc310344adf8428a117f7d8df3c0af0a0a24c513b304916a6d9b11db0190ff7225c2d578885080b761ed46a3d5f6f1eebb98b63c + checksum: 6388bfff21b40cb9bd8f913f9130d107f2ed4724ea81a8fd29798ee322b361ca31fa2cdfb491a5c31e43a3996cfe9566741238c7a741ada8d7af1cb78d85cf26 languageName: node linkType: hard @@ -20412,7 +19916,7 @@ __metadata: languageName: node linkType: hard -"pathe@npm:^1.0.0": +"pathe@npm:^1.1.0": version: 1.1.0 resolution: "pathe@npm:1.1.0" checksum: 6b9be9968ea08a90c0824934799707a1c6a1ad22ac1f22080f377e3f75856d5e53a331b01d327329bfce538a14590587cfb250e8e7947f64408797c84c252056 @@ -20504,7 +20008,7 @@ __metadata: languageName: node linkType: hard -"pirates@npm:^4.0.0, pirates@npm:^4.0.4, pirates@npm:^4.0.5": +"pirates@npm:^4.0.0, pirates@npm:^4.0.1, pirates@npm:^4.0.4, pirates@npm:^4.0.5": version: 4.0.5 resolution: "pirates@npm:4.0.5" checksum: c9994e61b85260bec6c4fc0307016340d9b0c4f4b6550a957afaaff0c9b1ad58fbbea5cfcf083860a25cb27a375442e2b0edf52e2e1e40e69934e08dcc52d227 @@ -20538,12 +20042,12 @@ __metadata: languageName: node linkType: hard -"playwright-core@npm:1.30.0": - version: 1.30.0 - resolution: "playwright-core@npm:1.30.0" +"playwright-core@npm:1.34.3": + version: 1.34.3 + resolution: "playwright-core@npm:1.34.3" bin: - playwright: cli.js - checksum: 4c5693f27245a1168f94708ecd8e1eb0d200de435b25cc07cfa25b97a094633818954dc00baf24e0ff551825f672050b83d1309362c1f97213fe8ebd2a147ed9 + playwright-core: cli.js + checksum: eaf9e9b2d77b9726867dcbc641a1c72b0e8f680cdd71ff904366deea1c96141ff7563f6c6fb29f9975309d1b87dead97ea93f6f44953b59946882fb785b34867 languageName: node linkType: hard @@ -20577,15 +20081,27 @@ __metadata: languageName: node linkType: hard -"postcss-calc@npm:^8.2.3": - version: 8.2.4 - resolution: "postcss-calc@npm:8.2.4" +"postcss-calc@npm:^8.2.3": + version: 8.2.4 + resolution: "postcss-calc@npm:8.2.4" + dependencies: + postcss-selector-parser: ^6.0.9 + postcss-value-parser: ^4.2.0 + peerDependencies: + postcss: ^8.2.2 + checksum: 314b4cebb0c4ed0cf8356b4bce71eca78f5a7842e6a3942a3bba49db168d5296b2bd93c3f735ae1c616f2651d94719ade33becc03c73d2d79c7394fb7f73eabb + languageName: node + linkType: hard + +"postcss-calc@npm:^9.0.0": + version: 9.0.1 + resolution: "postcss-calc@npm:9.0.1" dependencies: - postcss-selector-parser: ^6.0.9 + postcss-selector-parser: ^6.0.11 postcss-value-parser: ^4.2.0 peerDependencies: postcss: ^8.2.2 - checksum: 314b4cebb0c4ed0cf8356b4bce71eca78f5a7842e6a3942a3bba49db168d5296b2bd93c3f735ae1c616f2651d94719ade33becc03c73d2d79c7394fb7f73eabb + checksum: 7327ed83bfec544ab8b3e38353baa72ff6d04378b856db4ad82dbd68ce0b73668867ef182b5d4025f9dd9aa9c64aacc50cd1bd9db8d8b51ccc4cb97866b9d72b languageName: node linkType: hard @@ -20613,17 +20129,17 @@ __metadata: languageName: node linkType: hard -"postcss-colormin@npm:^5.3.0": - version: 5.3.0 - resolution: "postcss-colormin@npm:5.3.0" +"postcss-colormin@npm:^5.3.1": + version: 5.3.1 + resolution: "postcss-colormin@npm:5.3.1" dependencies: - browserslist: ^4.16.6 + browserslist: ^4.21.4 caniuse-api: ^3.0.0 colord: ^2.9.1 postcss-value-parser: ^4.2.0 peerDependencies: postcss: ^8.2.15 - checksum: 3d3e3cc25071407fb73d68541ca1039ebd154fceb649041461a8a3cab0400cc89b42dbb34a4eeaf573be4ba2370ce23af5e01aff5e03a8d72275f40605577212 + checksum: e5778baab30877cd1f51e7dc9d2242a162aeca6360a52956acd7f668c5bc235c2ccb7e4df0370a804d65ebe00c5642366f061db53aa823f9ed99972cebd16024 languageName: node linkType: hard @@ -20761,18 +20277,31 @@ __metadata: languageName: node linkType: hard -"postcss-js@npm:^4.0.0": - version: 4.0.0 - resolution: "postcss-js@npm:4.0.0" +"postcss-import@npm:^15.1.0": + version: 15.1.0 + resolution: "postcss-import@npm:15.1.0" + dependencies: + postcss-value-parser: ^4.0.0 + read-cache: ^1.0.0 + resolve: ^1.1.7 + peerDependencies: + postcss: ^8.0.0 + checksum: 7bd04bd8f0235429009d0022cbf00faebc885de1d017f6d12ccb1b021265882efc9302006ba700af6cab24c46bfa2f3bc590be3f9aee89d064944f171b04e2a3 + languageName: node + linkType: hard + +"postcss-js@npm:^4.0.1": + version: 4.0.1 + resolution: "postcss-js@npm:4.0.1" dependencies: camelcase-css: ^2.0.1 peerDependencies: - postcss: ^8.3.3 - checksum: 14be8a58670b4c5d037d40f179240a4f736d53530db727e2635638fa296bc4bff18149ca860928398aace422e55d07c9f5729eeccd395340944985199cdc82a5 + postcss: ^8.4.21 + checksum: 5c1e83efeabeb5a42676193f4357aa9c88f4dc1b3c4a0332c132fe88932b33ea58848186db117cf473049fc233a980356f67db490bd0a7832ccba9d0b3fd3491 languageName: node linkType: hard -"postcss-load-config@npm:^3.0.0, postcss-load-config@npm:^3.1.4": +"postcss-load-config@npm:^3.0.0": version: 3.1.4 resolution: "postcss-load-config@npm:3.1.4" dependencies: @@ -20790,6 +20319,24 @@ __metadata: languageName: node linkType: hard +"postcss-load-config@npm:^4.0.1": + version: 4.0.1 + resolution: "postcss-load-config@npm:4.0.1" + dependencies: + lilconfig: ^2.0.5 + yaml: ^2.1.1 + peerDependencies: + postcss: ">=8.0.9" + ts-node: ">=9.0.0" + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + checksum: b61f890499ed7dcda1e36c20a9582b17d745bad5e2b2c7bc96942465e406bc43ae03f270c08e60d1e29dab1ee50cb26970b5eb20c9aae30e066e20bd607ae4e4 + languageName: node + linkType: hard + "postcss-loader@npm:7.0.0": version: 7.0.0 resolution: "postcss-loader@npm:7.0.0" @@ -20835,9 +20382,9 @@ __metadata: languageName: node linkType: hard -"postcss-merge-rules@npm:^5.1.3": - version: 5.1.3 - resolution: "postcss-merge-rules@npm:5.1.3" +"postcss-merge-rules@npm:^5.1.4": + version: 5.1.4 + resolution: "postcss-merge-rules@npm:5.1.4" dependencies: browserslist: ^4.21.4 caniuse-api: ^3.0.0 @@ -20845,13 +20392,13 @@ __metadata: postcss-selector-parser: ^6.0.5 peerDependencies: postcss: ^8.2.15 - checksum: 0ddaddff98cd7f3fac2b0e716c641f529a61a8668be6d5b48d60770d0a1246126088e1d606f309b9748ff598a3794f3fd6dd5b8c3d79112f84744cab5375d4d9 + checksum: 8ab6a569babe6cb412d6612adee74f053cea7edb91fa013398515ab36754b1fec830d68782ed8cdfb44cffdc6b78c79eab157bff650f428aa4460d3f3857447e languageName: node linkType: hard -"postcss-merge-rules@npm:^6.0.0": - version: 6.0.0 - resolution: "postcss-merge-rules@npm:6.0.0" +"postcss-merge-rules@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-merge-rules@npm:6.0.1" dependencies: browserslist: ^4.21.4 caniuse-api: ^3.0.0 @@ -20859,7 +20406,7 @@ __metadata: postcss-selector-parser: ^6.0.5 peerDependencies: postcss: ^8.2.15 - checksum: 8e7ed43c9faccb3859f06969011fd7fb3a9f37b27e4adb8d6a8a5c3b82d89b38ff1c4e9ca93e3aa63b0520f510c5af886d0e4b1ad2a550ff592a5710fbac55ec + checksum: db003c820319181647806f087ead22598faffee745713026b5c8ea637936dc737a55fdc8d7631731879f49ba675a880dda174f21ae62c8f5aa4b0fda1a81f19a languageName: node linkType: hard @@ -20969,15 +20516,15 @@ __metadata: linkType: hard "postcss-modules-local-by-default@npm:^4.0.0": - version: 4.0.0 - resolution: "postcss-modules-local-by-default@npm:4.0.0" + version: 4.0.3 + resolution: "postcss-modules-local-by-default@npm:4.0.3" dependencies: icss-utils: ^5.0.0 postcss-selector-parser: ^6.0.2 postcss-value-parser: ^4.1.0 peerDependencies: postcss: ^8.1.0 - checksum: 6cf570badc7bc26c265e073f3ff9596b69bb954bc6ac9c5c1b8cba2995b80834226b60e0a3cbb87d5f399dbb52e6466bba8aa1d244f6218f99d834aec431a69d + checksum: 2f8083687f3d6067885f8863dd32dbbb4f779cfcc7e52c17abede9311d84faf6d3ed8760e7c54c6380281732ae1f78e5e56a28baf3c271b33f450a11c9e30485 languageName: node linkType: hard @@ -21021,14 +20568,14 @@ __metadata: languageName: node linkType: hard -"postcss-nested@npm:6.0.0": - version: 6.0.0 - resolution: "postcss-nested@npm:6.0.0" +"postcss-nested@npm:^6.0.1": + version: 6.0.1 + resolution: "postcss-nested@npm:6.0.1" dependencies: - postcss-selector-parser: ^6.0.10 + postcss-selector-parser: ^6.0.11 peerDependencies: postcss: ^8.2.14 - checksum: 2105dc52cd19747058f1a46862c9e454b5a365ac2e7135fc1015d67a8fe98ada2a8d9ee578e90f7a093bd55d3994dd913ba5ff1d5e945b4ed9a8a2992ecc8f10 + checksum: 7ddb0364cd797de01e38f644879189e0caeb7ea3f78628c933d91cc24f327c56d31269384454fc02ecaf503b44bfa8e08870a7c4cc56b23bc15640e1894523fa languageName: node linkType: hard @@ -21253,15 +20800,15 @@ __metadata: languageName: node linkType: hard -"postcss-reduce-initial@npm:^5.1.1": - version: 5.1.1 - resolution: "postcss-reduce-initial@npm:5.1.1" +"postcss-reduce-initial@npm:^5.1.2": + version: 5.1.2 + resolution: "postcss-reduce-initial@npm:5.1.2" dependencies: browserslist: ^4.21.4 caniuse-api: ^3.0.0 peerDependencies: postcss: ^8.2.15 - checksum: 1b704aba8c38103cbb5a75c6201dbf58ec2f3a978013c7f7e8957fd3bf3282f992050dec5a01bc050d031bad836e187dd6622b922ca78ab92bcd0afd21fb0b98 + checksum: 55db697f85231a81f1969d54c894e4773912d9ddb914f9b03d2e73abc4030f2e3bef4d7465756d0c1acfcc2c2d69974bfb50a972ab27546a7d68b5a4fc90282b languageName: node linkType: hard @@ -21327,13 +20874,13 @@ __metadata: languageName: node linkType: hard -"postcss-selector-parser@npm:^6.0.10, postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9": - version: 6.0.11 - resolution: "postcss-selector-parser@npm:6.0.11" +"postcss-selector-parser@npm:^6.0.11, postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9": + version: 6.0.13 + resolution: "postcss-selector-parser@npm:6.0.13" dependencies: cssesc: ^3.0.0 util-deprecate: ^1.0.2 - checksum: 0b01aa9c2d2c8dbeb51e9b204796b678284be9823abc8d6d40a8b16d4149514e922c264a8ed4deb4d6dbced564b9be390f5942c058582d8656351516d6c49cde + checksum: f89163338a1ce3b8ece8e9055cd5a3165e79a15e1c408e18de5ad8f87796b61ec2d48a2902d179ae0c4b5de10fccd3a325a4e660596549b040bc5ad1b465f096 languageName: node linkType: hard @@ -21422,25 +20969,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:^8.0.0, postcss@npm:^8.4.23": - version: 8.4.23 - resolution: "postcss@npm:8.4.23" +"postcss@npm:^8.0.0, postcss@npm:^8.4.0, postcss@npm:^8.4.18, postcss@npm:^8.4.19, postcss@npm:^8.4.21, postcss@npm:^8.4.23": + version: 8.4.24 + resolution: "postcss@npm:8.4.24" dependencies: nanoid: ^3.3.6 picocolors: ^1.0.0 source-map-js: ^1.0.2 - checksum: 8bb9d1b2ea6e694f8987d4f18c94617971b2b8d141602725fedcc2222fdc413b776a6e1b969a25d627d7b2681ca5aabb56f59e727ef94072e1b6ac8412105a2f - languageName: node - linkType: hard - -"postcss@npm:^8.4.0, postcss@npm:^8.4.18, postcss@npm:^8.4.19, postcss@npm:^8.4.21": - version: 8.4.21 - resolution: "postcss@npm:8.4.21" - dependencies: - nanoid: ^3.3.4 - picocolors: ^1.0.0 - source-map-js: ^1.0.2 - checksum: e39ac60ccd1542d4f9d93d894048aac0d686b3bb38e927d8386005718e6793dbbb46930f0a523fe382f1bbd843c6d980aaea791252bf5e176180e5a4336d9679 + checksum: 814e2126dacfea313588eda09cc99a9b4c26ec55c059188aa7a916d20d26d483483106dc5ff9e560731b59f45c5bb91b945dfadc670aed875cc90ddbbf4e787d languageName: node linkType: hard @@ -21500,11 +21036,10 @@ __metadata: linkType: hard "prettier-plugin-tailwindcss@npm:^0.2.3": - version: 0.2.3 - resolution: "prettier-plugin-tailwindcss@npm:0.2.3" + version: 0.2.8 + resolution: "prettier-plugin-tailwindcss@npm:0.2.8" peerDependencies: "@ianvs/prettier-plugin-sort-imports": "*" - "@prettier/plugin-php": "*" "@prettier/plugin-pug": "*" "@shopify/prettier-plugin-liquid": "*" "@shufo/prettier-plugin-blade": "*" @@ -21522,8 +21057,6 @@ __metadata: peerDependenciesMeta: "@ianvs/prettier-plugin-sort-imports": optional: true - "@prettier/plugin-php": - optional: true "@prettier/plugin-pug": optional: true "@shopify/prettier-plugin-liquid": @@ -21550,7 +21083,7 @@ __metadata: optional: true prettier-plugin-twig-melody: optional: true - checksum: f43599b2b03b80899c32e436a518a5c139aa8b6cc59c4d73f7c95222d99f3c3b418adb2d61145602c86b0827804fa2469a927ed696c5270d0a91dfeb18246509 + checksum: 0c99295f1f47b4d35a3e19d88e6b1aac58a60479a4317fb3c3a6522b51f6b5a28cfd9c03545749354b01ca4f8ec3edf7ba2a34596c5cc58a7022b1d850bbe6be languageName: node linkType: hard @@ -21563,21 +21096,12 @@ __metadata: languageName: node linkType: hard -"prettier@npm:^2.7.1": - version: 2.8.3 - resolution: "prettier@npm:2.8.3" - bin: - prettier: bin-prettier.js - checksum: 92f2ceb522d454370e02082aa74ad27388672f7cee8975028b59517c069fe643bdc73e322675c8faf2ff173d7a626d1a6389f26b474000308e793aa25fff46e5 - languageName: node - linkType: hard - -"prettier@npm:^2.8.0": - version: 2.8.4 - resolution: "prettier@npm:2.8.4" +"prettier@npm:^2.7.1, prettier@npm:^2.8.0": + version: 2.8.8 + resolution: "prettier@npm:2.8.8" bin: prettier: bin-prettier.js - checksum: c173064bf3df57b6d93d19aa98753b9b9dd7657212e33b41ada8e2e9f9884066bb9ca0b4005b89b3ab137efffdf8fbe0b462785aba20364798ff4303aadda57e + checksum: b49e409431bf129dd89238d64299ba80717b57ff5a6d1c1a8b1a28b590d998a34e083fa13573bc732bb8d2305becb4c9a4407f8486c81fa7d55100eb08263cf8 languageName: node linkType: hard @@ -21592,14 +21116,14 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:^29.0.0, pretty-format@npm:^29.4.1": - version: 29.4.1 - resolution: "pretty-format@npm:29.4.1" +"pretty-format@npm:^29.0.0, pretty-format@npm:^29.5.0": + version: 29.5.0 + resolution: "pretty-format@npm:29.5.0" dependencies: - "@jest/schemas": ^29.4.0 + "@jest/schemas": ^29.4.3 ansi-styles: ^5.0.0 react-is: ^18.0.0 - checksum: bcc8e86bcf8e7f5106c96e2ea7905912bd17ae2aac76e4e0745d2a50df4b340638ed95090ee455a1c0f78189efa05077bd655ca08bf66292e83ebd7035fc46fd + checksum: 4065356b558e6db25b4d41a01efb386935a6c06a0c9c104ef5ce59f2f476b8210edb8b3949b386e60ada0a6dc5ebcb2e6ccddc8c64dfd1a9943c3c3a9e7eaf89 languageName: node linkType: hard @@ -21893,6 +21417,13 @@ __metadata: languageName: node linkType: hard +"pure-rand@npm:^6.0.0": + version: 6.0.2 + resolution: "pure-rand@npm:6.0.2" + checksum: 79de33876a4f515d759c48e98d00756bbd916b4ea260cc572d7adfa4b62cace9952e89f0241d0410214554503d25061140fe325c66f845213d2b1728ba8d413e + languageName: node + linkType: hard + "q@npm:^1.1.2": version: 1.5.1 resolution: "q@npm:1.5.1" @@ -21900,7 +21431,7 @@ __metadata: languageName: node linkType: hard -"qs@npm:6.11.0, qs@npm:^6.10.0": +"qs@npm:6.11.0": version: 6.11.0 resolution: "qs@npm:6.11.0" dependencies: @@ -21909,14 +21440,23 @@ __metadata: languageName: node linkType: hard -"query-string@npm:8.0.3": - version: 8.0.3 - resolution: "query-string@npm:8.0.3" +"qs@npm:^6.10.0": + version: 6.11.2 + resolution: "qs@npm:6.11.2" + dependencies: + side-channel: ^1.0.4 + checksum: e812f3c590b2262548647d62f1637b6989cc56656dc960b893fe2098d96e1bd633f36576f4cd7564dfbff9db42e17775884db96d846bebe4f37420d073ecdc0b + languageName: node + linkType: hard + +"query-string@npm:8.1.0": + version: 8.1.0 + resolution: "query-string@npm:8.1.0" dependencies: - decode-uri-component: ^0.2.2 + decode-uri-component: ^0.4.1 filter-obj: ^5.1.0 - split-on-first: ^1.0.0 - checksum: 8df50f572f202d5e04f8fb9d347b7fe43f0bfa4a37dbc2df07bfb96ec72c0f1a08de4edf9450179e76c245a06d6b2920d1399a96f1a3ddd8bcc40937b2fecba2 + split-on-first: ^3.0.0 + checksum: 16fe49ab714f2b802bd31bc417876a38a82cd49bea01c0d6c37ca3439604c774752c8c66f9eda5ee33c268de2fc2a65e0e0e27aa97d8d98159af5c1fc838a017 languageName: node linkType: hard @@ -21950,13 +21490,6 @@ __metadata: languageName: node linkType: hard -"quick-lru@npm:^5.1.1": - version: 5.1.1 - resolution: "quick-lru@npm:5.1.1" - checksum: a516faa25574be7947969883e6068dbe4aa19e8ef8e8e0fd96cddd6d36485e9106d85c0041a27153286b0770b381328f4072aa40d3b18a19f5f7d2b78b94b5ed - languageName: node - linkType: hard - "raf@npm:^3.4.1": version: 3.4.1 resolution: "raf@npm:3.4.1" @@ -21966,10 +21499,10 @@ __metadata: languageName: node linkType: hard -"ramda@npm:^0.28.0": - version: 0.28.0 - resolution: "ramda@npm:0.28.0" - checksum: 44ea6e5010bba70151b6a92d8114a91915e8b5a16105cce65fae58c9d7386b812c429645e35f21141d7087568550ce383bc10ee1a65cdec951f4b69ea457e6a4 +"ramda@npm:0.29.0": + version: 0.29.0 + resolution: "ramda@npm:0.29.0" + checksum: 9ab26c06eb7545cbb7eebcf75526d6ee2fcaae19e338f165b2bf32772121e7b28192d6664d1ba222ff76188ba26ab307342d66e805dbb02c860560adc4d5dd57 languageName: node linkType: hard @@ -22135,9 +21668,9 @@ __metadata: linkType: hard "react-fast-compare@npm:^3.2.0": - version: 3.2.0 - resolution: "react-fast-compare@npm:3.2.0" - checksum: 8ef272c825ae329f61633ce4ce7f15aa5b84e5214d88bc0823880236e03e985a13195befa2c7a4eda7db3b017dc7985729152d88445823f652403cf36c2b86aa + version: 3.2.2 + resolution: "react-fast-compare@npm:3.2.2" + checksum: 2071415b4f76a3e6b55c84611c4d24dcb12ffc85811a2840b5a3f1ff2d1a99be1020d9437ee7c6e024c9f4cbb84ceb35e48cf84f28fcb00265ad2dfdd3947704 languageName: node linkType: hard @@ -22156,11 +21689,11 @@ __metadata: linkType: hard "react-focus-lock@npm:^2.8.1": - version: 2.9.3 - resolution: "react-focus-lock@npm:2.9.3" + version: 2.9.4 + resolution: "react-focus-lock@npm:2.9.4" dependencies: "@babel/runtime": ^7.0.0 - focus-lock: ^0.11.5 + focus-lock: ^0.11.6 prop-types: ^15.6.2 react-clientside-effect: ^1.2.6 use-callback-ref: ^1.3.0 @@ -22171,7 +21704,7 @@ __metadata: peerDependenciesMeta: "@types/react": optional: true - checksum: 4511bbbfa7e0b126daac1bacf83cd1423c6641c742fa17e196daa4089718655cfab86a1f1975164b3823dbfed5c20c33c7eb5092190c9812f591dc902e99af24 + checksum: f4c696bdbde5008560388622b994c00502d1faeeabff32b02964770c8c020208872f5f6b914b249a8bf3e97cc12e58bb0d227cd33460093654156b7b7f4c8d76 languageName: node linkType: hard @@ -22184,7 +21717,7 @@ __metadata: languageName: node linkType: hard -"react-infinite-scroll-component@npm:^6.1.0": +"react-infinite-scroll-component@npm:6.1.0": version: 6.1.0 resolution: "react-infinite-scroll-component@npm:6.1.0" dependencies: @@ -22254,12 +21787,12 @@ __metadata: languageName: node linkType: hard -"react-photo-album@npm:^2.0.0": - version: 2.0.1 - resolution: "react-photo-album@npm:2.0.1" +"react-photo-album@npm:2.2.2": + version: 2.2.2 + resolution: "react-photo-album@npm:2.2.2" peerDependencies: react: ">=16.8.0" - checksum: ec4caab02656589a78c5585063d675bc69e8f250edf7f10f3fc63c4fa33fef37f48743c05273942136d1752e51a86166bd793d9835d2775d04a60430104a4f74 + checksum: 7fbaaf7870003b0e93eca2850932c903fec429c8e23c27237de2ade20fbb5556d80a98cffb3c5b2bef1e985cc1da7ee238ad8028901640e75fd3b44f7dcf10d4 languageName: node linkType: hard @@ -22317,6 +21850,18 @@ __metadata: languageName: node linkType: hard +"react-resize-detector@npm:^8.0.4": + version: 8.1.0 + resolution: "react-resize-detector@npm:8.1.0" + dependencies: + lodash: ^4.17.21 + peerDependencies: + react: ^16.0.0 || ^17.0.0 || ^18.0.0 + react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 + checksum: 45e6b87ea7331406bed2a806d0cea98c1467d53a7cfcdf19c2dd55a3460047917d3b175d9cceea6f314b65eb54858cbb981acffd007d67aa16388e517dafb83e + languageName: node + linkType: hard + "react-responsive-masonry@npm:^2.1.7": version: 2.1.7 resolution: "react-responsive-masonry@npm:2.1.7" @@ -22325,26 +21870,26 @@ __metadata: linkType: hard "react-router-dom@npm:^6.3.0": - version: 6.8.0 - resolution: "react-router-dom@npm:6.8.0" + version: 6.11.2 + resolution: "react-router-dom@npm:6.11.2" dependencies: - "@remix-run/router": 1.3.1 - react-router: 6.8.0 + "@remix-run/router": 1.6.2 + react-router: 6.11.2 peerDependencies: react: ">=16.8" react-dom: ">=16.8" - checksum: a10419023267014bdad20f50b5be04dffda49ebeb06c52ce9567795769dc0dc9b4e2fa61b52b5d70b61df4d17f85bae8f9c7e94c73d25d16974e46fd47765ced + checksum: ba44ff37f2956bc18991f2eedb32a3fa46d35832f61ded6c5d167e853ca289868fca6635467866280c73bc3da00dce8437dbbec57da100c0a3e3e3850af00b83 languageName: node linkType: hard -"react-router@npm:6.8.0": - version: 6.8.0 - resolution: "react-router@npm:6.8.0" +"react-router@npm:6.11.2": + version: 6.11.2 + resolution: "react-router@npm:6.11.2" dependencies: - "@remix-run/router": 1.3.1 + "@remix-run/router": 1.6.2 peerDependencies: react: ">=16.8" - checksum: 6e258c47f6cbbd0b0c7c9fd7bbaf7cd5cd60472935512fbe97c91e4bbd9b1717f0dee231f5d7206bedfbccdbc21ab77eaf336ba971ea5d8c6b1277045a7b958a + checksum: e47f875dca70033a3b42704cb5ec076b60f9629a5cdc3be613707f3d5a5706123fb80301037455c285c6d5a1011b443e1784e0103969ebfac7071648d360c413 languageName: node linkType: hard @@ -22381,8 +21926,8 @@ __metadata: linkType: hard "react-select@npm:^5.3.2": - version: 5.7.0 - resolution: "react-select@npm:5.7.0" + version: 5.7.3 + resolution: "react-select@npm:5.7.3" dependencies: "@babel/runtime": ^7.12.0 "@emotion/cache": ^11.4.0 @@ -22396,21 +21941,21 @@ __metadata: peerDependencies: react: ^16.8.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0 - checksum: 3d29f7bb6dd66ad55396d820f05da6112f1d21b67526422a8ff5aa6cd47c783804c1b73042ac2949ba0871056a3dc68c06a73a8281abb61571e475d72bbd80dc + checksum: 9ffa75afb395e7077076521c529611494164ace0c6b1ceb249406991ac668947cfd0424812c15c2a45c792bb2794b22f2df93c4c2f2515962b7dfc7c91b029ec languageName: node linkType: hard -"react-smooth@npm:^2.0.1": - version: 2.0.1 - resolution: "react-smooth@npm:2.0.1" +"react-smooth@npm:^2.0.2": + version: 2.0.3 + resolution: "react-smooth@npm:2.0.3" dependencies: - fast-equals: ^2.0.0 + fast-equals: ^5.0.0 react-transition-group: 2.9.0 peerDependencies: prop-types: ^15.6.0 react: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^15.0.0 || ^16.0.0 || ^17.0.0 || ^18.0.0 - checksum: 65678491cbd506573f2dba82778ebf8259714d68dd227e0ee7c0e204bcbc7839cf97401620b4223814066581f1dce0493f97162a03dc2a68058b5a7ad2b41085 + checksum: dccdd5c3c937c5990fff119cbf1324ff7f8b7e1cb74a8f215291cdd71122e6aa82c350642612a52056543520446b1f7ddd4176ffdb52fd0f0c657f36bc7ae802 languageName: node linkType: hard @@ -22544,8 +22089,8 @@ __metadata: linkType: hard "readable-stream@npm:1 || 2, readable-stream@npm:2, readable-stream@npm:^2.0.0, readable-stream@npm:^2.0.5, readable-stream@npm:^2.1.5, readable-stream@npm:^2.2.2, readable-stream@npm:^2.3.0, readable-stream@npm:^2.3.5, readable-stream@npm:^2.3.6, readable-stream@npm:~2.3.6": - version: 2.3.7 - resolution: "readable-stream@npm:2.3.7" + version: 2.3.8 + resolution: "readable-stream@npm:2.3.8" dependencies: core-util-is: ~1.0.0 inherits: ~2.0.3 @@ -22554,7 +22099,7 @@ __metadata: safe-buffer: ~5.1.1 string_decoder: ~1.1.1 util-deprecate: ~1.0.1 - checksum: e4920cf7549a60f8aaf694d483a0e61b2a878b969d224f89b3bc788b8d920075132c4b55a7494ee944c7b6a9a0eada28a7f6220d80b0312ece70bbf08eeca755 + checksum: 65645467038704f0c8aaf026a72fbb588a9e2ef7a75cd57a01702ee9db1c4a1e4b03aaad36861a6a0926546a74d174149c8c207527963e0c2d3eee2f37678a42 languageName: node linkType: hard @@ -22571,13 +22116,13 @@ __metadata: linkType: hard "readable-stream@npm:2 || 3, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0, readable-stream@npm:^3.6.0": - version: 3.6.0 - resolution: "readable-stream@npm:3.6.0" + version: 3.6.2 + resolution: "readable-stream@npm:3.6.2" dependencies: inherits: ^2.0.3 string_decoder: ^1.1.1 util-deprecate: ^1.0.1 - checksum: d4ea81502d3799439bb955a3a5d1d808592cf3133350ed352aeaa499647858b27b1c4013984900238b0873ec8d0d8defce72469fb7a83e61d53f5ad61cb80dc8 + checksum: bdcbe6c22e846b6af075e32cf8f4751c2576238c5043169a1c221c92ee2878458a816a4ea33f4c67623c0b6827c8a400409bfb3cf0bf3381392d0b1dfb52ac8d languageName: node linkType: hard @@ -22594,11 +22139,11 @@ __metadata: linkType: hard "readdir-glob@npm:^1.0.0": - version: 1.1.2 - resolution: "readdir-glob@npm:1.1.2" + version: 1.1.3 + resolution: "readdir-glob@npm:1.1.3" dependencies: minimatch: ^5.1.0 - checksum: 1e5f701d3c94af5653e1736dfef99e991869c6e1c87bf08835d8c641f767e73ae25b829d3d1f8504fab8cad49b70b718ef960d3afee5be45cd779ccaeb264ed4 + checksum: 1dc0f7440ff5d9378b593abe9d42f34ebaf387516615e98ab410cf3a68f840abbf9ff1032d15e0a0dbffa78f9e2c46d4fafdbaac1ca435af2efe3264e3f21874 languageName: node linkType: hard @@ -22636,15 +22181,15 @@ __metadata: linkType: hard "recast@npm:^0.23.1": - version: 0.23.1 - resolution: "recast@npm:0.23.1" + version: 0.23.2 + resolution: "recast@npm:0.23.2" dependencies: assert: ^2.0.0 ast-types: ^0.16.1 esprima: ~4.0.0 source-map: ~0.6.1 tslib: ^2.0.1 - checksum: 6e9cdf127df94ffb2cd2f666b8cf990992b8543b07d6117799410fa41bf3ff408cbbf30f38149a89a3db7ed2e4b3584ea4744414f8869367f7a888c644677a80 + checksum: 04c2617cb04c4d02a5c9e1bb75b8e7afc21d1ba7babce25303732f035c3d4b2f945d727f34c3976223d800592ea31e6641cfd33700a8699c02025040174af0b6 languageName: node linkType: hard @@ -22658,15 +22203,15 @@ __metadata: linkType: hard "recharts@npm:^2.2.0": - version: 2.3.2 - resolution: "recharts@npm:2.3.2" + version: 2.6.2 + resolution: "recharts@npm:2.6.2" dependencies: classnames: ^2.2.5 eventemitter3: ^4.0.1 lodash: ^4.17.19 react-is: ^16.10.2 - react-resize-detector: ^7.1.2 - react-smooth: ^2.0.1 + react-resize-detector: ^8.0.4 + react-smooth: ^2.0.2 recharts-scale: ^0.4.4 reduce-css-calc: ^2.1.8 victory-vendor: ^36.6.8 @@ -22674,7 +22219,7 @@ __metadata: prop-types: ^15.6.0 react: ^16.0.0 || ^17.0.0 || ^18.0.0 react-dom: ^16.0.0 || ^17.0.0 || ^18.0.0 - checksum: 3904ccb48382dd5efcefce1a6748792703c44cbb0947515919c79f811e0073c6af2d38e230acfff089ae733af77a042f210a8d79ad0a527454ea5a2a85995bed + checksum: 4d63232317bbb39e457d13575a8410b353f8b45bb62aaf515d9f5a33bb7a04202908aa760b87a7e243503a5a033a176922ae4aef51238aab8511a5554cf7746e languageName: node linkType: hard @@ -22728,7 +22273,7 @@ __metadata: languageName: node linkType: hard -"redux@npm:^4.0.0, redux@npm:^4.2.0": +"redux@npm:^4.0.0, redux@npm:^4.2.0, redux@npm:^4.2.1": version: 4.2.1 resolution: "redux@npm:4.2.1" dependencies: @@ -22790,35 +22335,28 @@ __metadata: languageName: node linkType: hard -"regexp.prototype.flags@npm:^1.4.3": - version: 1.4.3 - resolution: "regexp.prototype.flags@npm:1.4.3" +"regexp.prototype.flags@npm:^1.4.3, regexp.prototype.flags@npm:^1.5.0": + version: 1.5.0 + resolution: "regexp.prototype.flags@npm:1.5.0" dependencies: call-bind: ^1.0.2 - define-properties: ^1.1.3 - functions-have-names: ^1.2.2 - checksum: 51228bae732592adb3ededd5e15426be25f289e9c4ef15212f4da73f4ec3919b6140806374b8894036a86020d054a8d2657d3fee6bb9b4d35d8939c20030b7a6 - languageName: node - linkType: hard - -"regexpp@npm:^3.2.0": - version: 3.2.0 - resolution: "regexpp@npm:3.2.0" - checksum: a78dc5c7158ad9ddcfe01aa9144f46e192ddbfa7b263895a70a5c6c73edd9ce85faf7c0430e59ac38839e1734e275b9c3de5c57ee3ab6edc0e0b1bdebefccef8 + define-properties: ^1.2.0 + functions-have-names: ^1.2.3 + checksum: c541687cdbdfff1b9a07f6e44879f82c66bbf07665f9a7544c5fd16acdb3ec8d1436caab01662d2fbcad403f3499d49ab0b77fbc7ef29ef961d98cc4bc9755b4 languageName: node linkType: hard -"regexpu-core@npm:^5.2.1": - version: 5.2.2 - resolution: "regexpu-core@npm:5.2.2" +"regexpu-core@npm:^5.3.1": + version: 5.3.2 + resolution: "regexpu-core@npm:5.3.2" dependencies: + "@babel/regjsgen": ^0.8.0 regenerate: ^1.4.2 regenerate-unicode-properties: ^10.1.0 - regjsgen: ^0.7.1 regjsparser: ^0.9.1 unicode-match-property-ecmascript: ^2.0.0 unicode-match-property-value-ecmascript: ^2.1.0 - checksum: 87c56815e20d213848d38f6b047ba52f0d632f36e791b777f59327e8d350c0743b27cc25feab64c0eadc9fe9959dde6b1261af71108a9371b72c8c26beda05ef + checksum: 95bb97088419f5396e07769b7de96f995f58137ad75fac5811fb5fe53737766dfff35d66a0ee66babb1eb55386ef981feaef392f9df6d671f3c124812ba24da2 languageName: node linkType: hard @@ -22841,13 +22379,6 @@ __metadata: languageName: node linkType: hard -"regjsgen@npm:^0.7.1": - version: 0.7.1 - resolution: "regjsgen@npm:0.7.1" - checksum: 7cac399921c58db8e16454869283ff66871531180218064fa938ac05c11c2976792a00706c3c78bbc625e1d793ca373065ea90564e06189a751a7b4ae33acadc - languageName: node - linkType: hard - "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -22955,10 +22486,10 @@ __metadata: languageName: node linkType: hard -"reselect@npm:^4.1.7": - version: 4.1.7 - resolution: "reselect@npm:4.1.7" - checksum: 738d8e2b8f0dca154ad29de6a209c9fbca2d70ae6788fd85df87f2c74b95a65bbf2d16d43a9e2faff39de34d17a29d706ba08a6b2ee5660c09589edbd19af7e1 +"reselect@npm:^4.1.8": + version: 4.1.8 + resolution: "reselect@npm:4.1.8" + checksum: a4ac87cedab198769a29be92bc221c32da76cfdad6911eda67b4d3e7136dca86208c3b210e31632eae31ebd2cded18596f0dd230d3ccc9e978df22f233b5583e languageName: node linkType: hard @@ -23003,22 +22534,22 @@ __metadata: linkType: hard "resolve.exports@npm:^2.0.0": - version: 2.0.0 - resolution: "resolve.exports@npm:2.0.0" - checksum: d8bee3b0cc0a0ae6c8323710983505bc6a3a2574f718e96f01e048a0f0af035941434b386cc9efc7eededc5e1199726185c306ec6f6a1aa55d5fbad926fd0634 + version: 2.0.2 + resolution: "resolve.exports@npm:2.0.2" + checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 languageName: node linkType: hard -"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1": - version: 1.22.1 - resolution: "resolve@npm:1.22.1" +"resolve@npm:^1.1.6, resolve@npm:^1.1.7, resolve@npm:^1.10.0, resolve@npm:^1.14.2, resolve@npm:^1.17.0, resolve@npm:^1.19.0, resolve@npm:^1.20.0, resolve@npm:^1.22.0, resolve@npm:^1.22.1, resolve@npm:^1.22.2": + version: 1.22.3 + resolution: "resolve@npm:1.22.3" dependencies: - is-core-module: ^2.9.0 + is-core-module: ^2.12.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 07af5fc1e81aa1d866cbc9e9460fbb67318a10fa3c4deadc35c3ad8a898ee9a71a86a65e4755ac3195e0ea0cfbe201eb323ebe655ce90526fd61917313a34e4e + checksum: fb834b81348428cb545ff1b828a72ea28feb5a97c026a1cf40aa1008352c72811ff4d4e71f2035273dc536dcfcae20c13604ba6283c612d70fa0b6e44519c374 languageName: node linkType: hard @@ -23035,16 +22566,16 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin": - version: 1.22.1 - resolution: "resolve@patch:resolve@npm%3A1.22.1#~builtin::version=1.22.1&hash=07638b" +"resolve@patch:resolve@^1.1.6#~builtin, resolve@patch:resolve@^1.1.7#~builtin, resolve@patch:resolve@^1.10.0#~builtin, resolve@patch:resolve@^1.14.2#~builtin, resolve@patch:resolve@^1.17.0#~builtin, resolve@patch:resolve@^1.19.0#~builtin, resolve@patch:resolve@^1.20.0#~builtin, resolve@patch:resolve@^1.22.0#~builtin, resolve@patch:resolve@^1.22.1#~builtin, resolve@patch:resolve@^1.22.2#~builtin": + version: 1.22.3 + resolution: "resolve@patch:resolve@npm%3A1.22.3#~builtin::version=1.22.3&hash=07638b" dependencies: - is-core-module: ^2.9.0 + is-core-module: ^2.12.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 5656f4d0bedcf8eb52685c1abdf8fbe73a1603bb1160a24d716e27a57f6cecbe2432ff9c89c2bd57542c3a7b9d14b1882b73bfe2e9d7849c9a4c0b8b39f02b8b + checksum: ad59734723b596d0891321c951592ed9015a77ce84907f89c9d9307dd0c06e11a67906a3e628c4cae143d3e44898603478af0ddeb2bba3f229a9373efe342665 languageName: node linkType: hard @@ -23204,9 +22735,9 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^2.25.0 || ^3.3.0, rollup@npm:^3.10.0": - version: 3.14.0 - resolution: "rollup@npm:3.14.0" +"rollup@npm:^2.25.0 || ^3.3.0, rollup@npm:^3.10.0, rollup@npm:^3.21.0": + version: 3.23.0 + resolution: "rollup@npm:3.23.0" dependencies: fsevents: ~2.3.2 dependenciesMeta: @@ -23214,7 +22745,7 @@ __metadata: optional: true bin: rollup: dist/bin/rollup - checksum: 48f4da224753b8022529256243b74b3f6f41d9b4358ba079ac42f2a2cf07e4bd01b5d94579338194238e3c575487974ca508e144cf6195123293e7fdf82506cb + checksum: 0721065cf725c5611815be61d2b01f20b4d0027e17035f6e76384d38396b56cf6ed21a3db78eb004d9db4d24c8a6a19da4563b4ff96b5dd36f0a0f7a3baf85e8 languageName: node linkType: hard @@ -23232,20 +22763,6 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^3.21.0": - version: 3.23.0 - resolution: "rollup@npm:3.23.0" - dependencies: - fsevents: ~2.3.2 - dependenciesMeta: - fsevents: - optional: true - bin: - rollup: dist/bin/rollup - checksum: 0721065cf725c5611815be61d2b01f20b4d0027e17035f6e76384d38396b56cf6ed21a3db78eb004d9db4d24c8a6a19da4563b4ff96b5dd36f0a0f7a3baf85e8 - languageName: node - linkType: hard - "run-async@npm:^2.2.0, run-async@npm:^2.4.0": version: 2.4.1 resolution: "run-async@npm:2.4.1" @@ -23300,12 +22817,12 @@ __metadata: languageName: node linkType: hard -"rxjs@npm:^7, rxjs@npm:^7.0.0, rxjs@npm:^7.2.0, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0": - version: 7.8.0 - resolution: "rxjs@npm:7.8.0" +"rxjs@npm:^7.0.0, rxjs@npm:^7.2.0, rxjs@npm:^7.5.5, rxjs@npm:^7.8.0": + version: 7.8.1 + resolution: "rxjs@npm:7.8.1" dependencies: tslib: ^2.1.0 - checksum: 61b4d4fd323c1043d8d6ceb91f24183b28bcf5def4f01ca111511d5c6b66755bc5578587fe714ef5d67cf4c9f2e26f4490d4e1d8cabf9bd5967687835e9866a2 + checksum: de4b53db1063e618ec2eca0f7965d9137cabe98cf6be9272efe6c86b47c17b987383df8574861bcced18ebd590764125a901d5506082be84a8b8e364bf05f119 languageName: node linkType: hard @@ -23318,6 +22835,18 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-array-concat@npm:1.0.0" + dependencies: + call-bind: ^1.0.2 + get-intrinsic: ^1.2.0 + has-symbols: ^1.0.3 + isarray: ^2.0.5 + checksum: f43cb98fe3b566327d0c09284de2b15fb85ae964a89495c1b1a5d50c7c8ed484190f4e5e71aacc167e16231940079b326f2c0807aea633d47cc7322f40a6b57f + languageName: node + linkType: hard + "safe-buffer@npm:5.1.1": version: 5.1.1 resolution: "safe-buffer@npm:5.1.1" @@ -23383,35 +22912,35 @@ __metadata: linkType: hard "sanity-plugin-asset-source-unsplash@npm:^1.0.6": - version: 1.0.6 - resolution: "sanity-plugin-asset-source-unsplash@npm:1.0.6" + version: 1.1.0 + resolution: "sanity-plugin-asset-source-unsplash@npm:1.1.0" dependencies: - "@sanity/incompatible-plugin": ^1 - "@sanity/ui": ^1 - react-infinite-scroll-component: ^6.1.0 - react-photo-album: ^2.0.0 - rxjs: ^7 + "@sanity/incompatible-plugin": ^1.0.0 + "@sanity/ui": ^1.0.0 + react-infinite-scroll-component: 6.1.0 + react-photo-album: 2.2.2 + rxjs: ^7.0.0 peerDependencies: react: ^18 - react-dom: ^18 sanity: ^3 styled-components: ^5.2 - checksum: 5df1303adca53958c17f1645ae2c5dde09a82c639531eb2b67e83b490025845438c6778eff14f2996b6973defbe9b0ab9eef2f2a50ac4bfe63f31bea98fc03cf + checksum: 1478c4ad2aefaab35b47493ae362e87306a85c3e31ecfca9a0de4989bb92f25b77ec6ba03970c5de1a72a56f58c82a35c08808bb0674d9fb18f65012d91a7e5b languageName: node linkType: hard "sanity-plugin-iframe-pane@npm:^2.3.0": - version: 2.3.0 - resolution: "sanity-plugin-iframe-pane@npm:2.3.0" + version: 2.3.1 + resolution: "sanity-plugin-iframe-pane@npm:2.3.1" dependencies: "@sanity/icons": ^2.2.2 - "@sanity/incompatible-plugin": ^1.0.4 - "@sanity/ui": ^1.3.0 - usehooks-ts: ^2.9.1 + "@sanity/incompatible-plugin": ^1.0.0 + "@sanity/ui": ^1.0.0 + usehooks-ts: 2.9.1 peerDependencies: react: ^18 - sanity: ^3.0.0 - checksum: 4066b9d7af66101532b75db7a3ffc5b6fac308475ed1a70a418328e0a5f4ae3081b3a7ebc25682a79b3b63300b124dee2547b0ac98707e466565aa31b2b29744 + sanity: ^3 + styled-components: ^5.2 + checksum: 86d8dcb3c4cbc7cb207dd385b0345b43c9a1ec17623e1d7fb44dde5c5db16fb47d90f50dfef66ebbc2016f2c7af665f6558e84f0449de87943d57ea3f862ebd0 languageName: node linkType: hard @@ -23616,11 +23145,11 @@ __metadata: linkType: hard "scroll-into-view-if-needed@npm:^3.0.3": - version: 3.0.4 - resolution: "scroll-into-view-if-needed@npm:3.0.4" + version: 3.0.10 + resolution: "scroll-into-view-if-needed@npm:3.0.10" dependencies: - compute-scroll-into-view: ^2.0.4 - checksum: 613fef3d404c1122f5505f3d2d4198ace569fa37a6e1a19d4a17a9baad09a541bb4753c479a2d205f91921a29e8c0fe27f2e8b217e318f28d018cd61aa8b5dfb + compute-scroll-into-view: ^3.0.2 + checksum: eab326e527620883040e1937329bce28396ac67199098202fc785853b1576646ff1c987594f5630f78bfd84fda8486a793845c0f5c0b1ad70638c6d015578ebb languageName: node linkType: hard @@ -23652,13 +23181,13 @@ __metadata: linkType: hard "semver@npm:7.x, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.3.8": - version: 7.3.8 - resolution: "semver@npm:7.3.8" + version: 7.5.1 + resolution: "semver@npm:7.5.1" dependencies: lru-cache: ^6.0.0 bin: semver: bin/semver.js - checksum: ba9c7cbbf2b7884696523450a61fee1a09930d888b7a8d7579025ad93d459b2d1949ee5bbfeb188b2be5f4ac163544c5e98491ad6152df34154feebc2cc337c1 + checksum: d16dbedad53c65b086f79524b9ef766bf38670b2395bdad5c957f824dcc566b624988013564f4812bcace3f9d405355c3635e2007396a39d1bffc71cfec4a2fc languageName: node linkType: hard @@ -23852,9 +23381,9 @@ __metadata: linkType: hard "shell-quote@npm:^1.7.3": - version: 1.8.0 - resolution: "shell-quote@npm:1.8.0" - checksum: 6ef7c5e308b9c77eedded882653a132214fa98b4a1512bb507588cf6cd2fc78bfee73e945d0c3211af028a1eabe09c6a19b96edd8977dc149810797e93809749 + version: 1.8.1 + resolution: "shell-quote@npm:1.8.1" + checksum: 5f01201f4ef504d4c6a9d0d283fa17075f6770bfbe4c5850b074974c68062f37929ca61700d95ad2ac8822e14e8c4b990ca0e6e9272e64befd74ce5e19f0736b languageName: node linkType: hard @@ -24247,12 +23776,12 @@ __metadata: linkType: hard "spdx-correct@npm:^3.0.0": - version: 3.1.1 - resolution: "spdx-correct@npm:3.1.1" + version: 3.2.0 + resolution: "spdx-correct@npm:3.2.0" dependencies: spdx-expression-parse: ^3.0.0 spdx-license-ids: ^3.0.0 - checksum: 77ce438344a34f9930feffa61be0eddcda5b55fc592906ef75621d4b52c07400a97084d8701557b13f7d2aae0cb64f808431f469e566ef3fe0a3a131dcb775a6 + checksum: e9ae98d22f69c88e7aff5b8778dc01c361ef635580e82d29e5c60a6533cc8f4d820803e67d7432581af0cc4fb49973125076ee3b90df191d153e223c004193b2 languageName: node linkType: hard @@ -24274,9 +23803,9 @@ __metadata: linkType: hard "spdx-license-ids@npm:^3.0.0": - version: 3.0.12 - resolution: "spdx-license-ids@npm:3.0.12" - checksum: 92a4dddce62ce1db6fe54a7a839cf85e06abc308fc83b776a55b44e4f1906f02e7ebd506120847039e976bbbad359ea8bdfafb7925eae5cd7e73255f02e0b7d6 + version: 3.0.13 + resolution: "spdx-license-ids@npm:3.0.13" + checksum: 3469d85c65f3245a279fa11afc250c3dca96e9e847f2f79d57f466940c5bb8495da08a542646086d499b7f24a74b8d0b42f3fc0f95d50ff99af1f599f6360ad7 languageName: node linkType: hard @@ -24294,10 +23823,10 @@ __metadata: languageName: node linkType: hard -"split-on-first@npm:^1.0.0": - version: 1.1.0 - resolution: "split-on-first@npm:1.1.0" - checksum: 16ff85b54ddcf17f9147210a4022529b343edbcbea4ce977c8f30e38408b8d6e0f25f92cd35b86a524d4797f455e29ab89eb8db787f3c10708e0b47ebf528d30 +"split-on-first@npm:^3.0.0": + version: 3.0.0 + resolution: "split-on-first@npm:3.0.0" + checksum: 75dc27ecbac65cfbeab9a3b90cf046307220192d3d7a30e46aa0f19571cc9b4802aac813f3de2cc9b16f2e46aae72f275659b5d2614bb5369c77724d739e5f73 languageName: node linkType: hard @@ -24320,9 +23849,9 @@ __metadata: linkType: hard "split2@npm:^4.1.0": - version: 4.1.0 - resolution: "split2@npm:4.1.0" - checksum: ec581597cb74c13cdfb5e2047543dd40cb1e8e9803c7b1e0c29ede05f2b4f049b2d6e7f2788a225d544549375719658b8f38e9366364dec35dc7a12edfda5ee5 + version: 4.2.0 + resolution: "split2@npm:4.2.0" + checksum: 05d54102546549fe4d2455900699056580cca006c0275c334611420f854da30ac999230857a85fdd9914dc2109ae50f80fda43d2a445f2aa86eccdc1dfce779d languageName: node linkType: hard @@ -24386,8 +23915,8 @@ __metadata: linkType: hard "start-server-and-test@npm:^1.14.0": - version: 1.15.3 - resolution: "start-server-and-test@npm:1.15.3" + version: 1.15.4 + resolution: "start-server-and-test@npm:1.15.4" dependencies: arg: ^5.0.2 bluebird: 3.7.2 @@ -24401,7 +23930,7 @@ __metadata: server-test: src/bin/start.js start-server-and-test: src/bin/start.js start-test: src/bin/start.js - checksum: 3489c5146e26bc3bfa34d12f546f78fa6d883fdd49d0c60cbf4fb76ef627df6cde0a878253f5ca8e2177b938c00f47c613a811f6e7aa519af3be58576fbc2ab0 + checksum: 0df9a4710ea45ddb1a9f719e0865faa8e26a973beff693dfe244ae2d914bfc6eed4d2db8529cdcad3d53658c4655356e5aca3520485a3ef4d9d9f320956b0e7d languageName: node linkType: hard @@ -24485,10 +24014,17 @@ __metadata: languageName: node linkType: hard +"streamsearch@npm:^1.1.0": + version: 1.1.0 + resolution: "streamsearch@npm:1.1.0" + checksum: 1cce16cea8405d7a233d32ca5e00a00169cc0e19fbc02aa839959985f267335d435c07f96e5e0edd0eadc6d39c98d5435fb5bbbdefc62c41834eadc5622ad942 + languageName: node + linkType: hard + "string-argv@npm:^0.3.1": - version: 0.3.1 - resolution: "string-argv@npm:0.3.1" - checksum: efbd0289b599bee808ce80820dfe49c9635610715429c6b7cc50750f0437e3c2f697c81e5c390208c13b5d5d12d904a1546172a88579f6ee5cbaaaa4dc9ec5cf + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: 8703ad3f3db0b2641ed2adbb15cf24d3945070d9a751f9e74a924966db9f325ac755169007233e8985a39a6a292f14d4fee20482989b89b96e473c4221508a0f languageName: node linkType: hard @@ -24564,6 +24100,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trim@npm:^1.2.7": + version: 1.2.7 + resolution: "string.prototype.trim@npm:1.2.7" + dependencies: + call-bind: ^1.0.2 + define-properties: ^1.1.4 + es-abstract: ^1.20.4 + checksum: 05b7b2d6af63648e70e44c4a8d10d8cc457536df78b55b9d6230918bde75c5987f6b8604438c4c8652eb55e4fc9725d2912789eb4ec457d6995f3495af190c09 + languageName: node + linkType: hard + "string.prototype.trimend@npm:^1.0.6": version: 1.0.6 resolution: "string.prototype.trimend@npm:1.0.6" @@ -24639,11 +24186,11 @@ __metadata: linkType: hard "strip-ansi@npm:^7.0.1": - version: 7.0.1 - resolution: "strip-ansi@npm:7.0.1" + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" dependencies: ansi-regex: ^6.0.1 - checksum: 257f78fa433520e7f9897722731d78599cb3fce29ff26a20a5e12ba4957463b50a01136f37c43707f4951817a75e90820174853d6ccc240997adc5df8f966039 + checksum: 859c73fcf27869c22a4e4d8c6acfe690064659e84bef9458aa6d13719d09ca88dcfd40cbf31fd0be63518ea1a643fe070b4827d353e09533a5b0b9fd4553d64d languageName: node linkType: hard @@ -24706,21 +24253,21 @@ __metadata: linkType: hard "style-dictionary@npm:^3.0.2": - version: 3.7.2 - resolution: "style-dictionary@npm:3.7.2" + version: 3.8.0 + resolution: "style-dictionary@npm:3.8.0" dependencies: chalk: ^4.0.0 change-case: ^4.1.2 commander: ^8.3.0 fs-extra: ^10.0.0 glob: ^7.2.0 - json5: ^2.2.0 + json5: ^2.2.2 jsonc-parser: ^3.0.0 lodash: ^4.17.15 tinycolor2: ^1.4.1 bin: style-dictionary: bin/style-dictionary - checksum: eaa78247304a8ddf2f8771deabe72b91ba59392bc3e5071ea7f286d4ae7e294e785d7b13e592dea7debcc3cd2f38dbda937ef191cdbb79056550c4982b496aa5 + checksum: ed2440c2d1bd84593f9f60ffbfbb7c85c9592d125e169ea63e2044fe681191e8c9c156853d82ae606f9adf6aacbaa162e03d5ef85b80be334d76e28a57bfc189 languageName: node linkType: hard @@ -24732,9 +24279,9 @@ __metadata: linkType: hard "style-mod@npm:^4.0.0": - version: 4.0.0 - resolution: "style-mod@npm:4.0.0" - checksum: c19f73d660a94244f0715180a6141bf75d05e5b156cc956ba11970b83cd303c3f7edafe5fb61a3192da6186cc008bdcdd803a979070f9b64e13046463644043c + version: 4.0.3 + resolution: "style-mod@npm:4.0.3" + checksum: 934556e720bd29026ff8fef43a1a35b58957813025b91f996d886e9405acf934ddb1934def4400b174bd7784c9263eb9c71f07ae83925af9271b7d921d546854 languageName: node linkType: hard @@ -24746,8 +24293,8 @@ __metadata: linkType: hard "styled-components@npm:^5.2": - version: 5.3.6 - resolution: "styled-components@npm:5.3.6" + version: 5.3.11 + resolution: "styled-components@npm:5.3.11" dependencies: "@babel/helper-module-imports": ^7.0.0 "@babel/traverse": ^7.4.5 @@ -24763,7 +24310,7 @@ __metadata: react: ">= 16.8.0" react-dom: ">= 16.8.0" react-is: ">= 16.8.0" - checksum: 68eac1e451be81d66739cf86de8ec9e72f46e7584aa359271761a2437468210bd7cf0a864281fc97dab08c32b35e6bf7513dc8b4104ed6b196cf8d65674dd289 + checksum: 10edd4dae3b0231ec02d86bdd09c88e894eedfa7e9d4f8e562b09fb69c67a27d586cbcf35c785002d59b3bf11e6c0940b0efce40d13ae9ed148b26b1dc8f3284 languageName: node linkType: hard @@ -24808,14 +24355,14 @@ __metadata: linkType: hard "stylelint-config-prettier@npm:^9.0.3": - version: 9.0.4 - resolution: "stylelint-config-prettier@npm:9.0.4" + version: 9.0.5 + resolution: "stylelint-config-prettier@npm:9.0.5" peerDependencies: - stylelint: ">=11.0.0" + stylelint: ">= 11.x < 15" bin: stylelint-config-prettier: bin/check.js stylelint-config-prettier-check: bin/check.js - checksum: cf94f646f6b1756a9e41940524a8c276ec05be9a2a02907fee6cb4ebdc39e3a9049c96ec97e79cc3f3c0487f5870c81b3d68b0a65d1ee81cd9d7700420788cee + checksum: 3d04e463e0bb7e42a5ddec49eea6ef4ea07705d887e8a3ff1fcb82278a5e2bec1a36b8498ea7ed2d24878de29d7c94ac75b1d3ac4f8b19c3a84970595b29261f languageName: node linkType: hard @@ -24840,11 +24387,11 @@ __metadata: linkType: hard "stylelint-declaration-block-no-ignored-properties@npm:^2.6.0": - version: 2.6.0 - resolution: "stylelint-declaration-block-no-ignored-properties@npm:2.6.0" + version: 2.7.0 + resolution: "stylelint-declaration-block-no-ignored-properties@npm:2.7.0" peerDependencies: - stylelint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 - checksum: 6fc38ec4bd471443c486f647a82cc001c455eb5654cbcb1e631f2d5fe920586775c0bc90a6d9ad8be254e37ba5f67584d0baa1409fc8a8d18dae74f558292190 + stylelint: ^7.0.0 || ^8.0.0 || ^9.0.0 || ^10.0.0 || ^11.0.0 || ^12.0.0 || ^13.0.0 || ^14.0.0 || ^15.0.0 + checksum: 63111d69cb02025b0cd7e8b3436f22c4632b8697e97396b43b448a185d826a14ed3b0a0fb0f2b9d0815bcb7d161a0dfb3c6f58d01d85346c86f9ce7a1151d049 languageName: node linkType: hard @@ -24908,10 +24455,28 @@ __metadata: languageName: node linkType: hard -"stylis@npm:4.1.3": - version: 4.1.3 - resolution: "stylis@npm:4.1.3" - checksum: d04dbffcb9bf2c5ca8d8dc09534203c75df3bf711d33973ea22038a99cc475412a350b661ebd99cbc01daa50d7eedcf0d130d121800eb7318759a197023442a6 +"stylis@npm:4.2.0": + version: 4.2.0 + resolution: "stylis@npm:4.2.0" + checksum: 0eb6cc1b866dc17a6037d0a82ac7fa877eba6a757443e79e7c4f35bacedbf6421fadcab4363b39667b43355cbaaa570a3cde850f776498e5450f32ed2f9b7584 + languageName: node + linkType: hard + +"sucrase@npm:^3.32.0": + version: 3.32.0 + resolution: "sucrase@npm:3.32.0" + dependencies: + "@jridgewell/gen-mapping": ^0.3.2 + commander: ^4.0.0 + glob: 7.1.6 + lines-and-columns: ^1.1.6 + mz: ^2.7.0 + pirates: ^4.0.1 + ts-interface-checker: ^0.1.9 + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 79f760aef513adcf22b882d43100296a8afa7f307acef3e8803304b763484cf138a3e2cebc498a6791110ab20c7b8deba097f6ce82f812ca8f1723e3440e5c95 languageName: node linkType: hard @@ -25062,9 +24627,9 @@ __metadata: linkType: hard "tabbable@npm:^6.0.1": - version: 6.0.1 - resolution: "tabbable@npm:6.0.1" - checksum: 65e378ad69a97416f2fdce34ade11b8ff68b33d9b2d978920a9d285c77e1bb88cb35113a8f00af8c4f0163d788d451a48840a216fa918d6a3f0c554951deb984 + version: 6.1.2 + resolution: "tabbable@npm:6.1.2" + checksum: 1e2d9af4f172a3793f491bab10263c26903c2be6a5c4ab723d69d1ba2054828d22a50add9ba7fc42735468871d40054d906fa4f0a9dc2fbd4feff875e84c1a89 languageName: node linkType: hard @@ -25082,38 +24647,36 @@ __metadata: linkType: hard "tailwindcss@npm:^3.2.0": - version: 3.2.4 - resolution: "tailwindcss@npm:3.2.4" + version: 3.3.2 + resolution: "tailwindcss@npm:3.3.2" dependencies: + "@alloc/quick-lru": ^5.2.0 arg: ^5.0.2 chokidar: ^3.5.3 - color-name: ^1.1.4 - detective: ^5.2.1 didyoumean: ^1.2.2 dlv: ^1.1.3 fast-glob: ^3.2.12 glob-parent: ^6.0.2 is-glob: ^4.0.3 - lilconfig: ^2.0.6 + jiti: ^1.18.2 + lilconfig: ^2.1.0 micromatch: ^4.0.5 normalize-path: ^3.0.0 object-hash: ^3.0.0 picocolors: ^1.0.0 - postcss: ^8.4.18 - postcss-import: ^14.1.0 - postcss-js: ^4.0.0 - postcss-load-config: ^3.1.4 - postcss-nested: 6.0.0 - postcss-selector-parser: ^6.0.10 + postcss: ^8.4.23 + postcss-import: ^15.1.0 + postcss-js: ^4.0.1 + postcss-load-config: ^4.0.1 + postcss-nested: ^6.0.1 + postcss-selector-parser: ^6.0.11 postcss-value-parser: ^4.2.0 - quick-lru: ^5.1.1 - resolve: ^1.22.1 - peerDependencies: - postcss: ^8.0.9 + resolve: ^1.22.2 + sucrase: ^3.32.0 bin: tailwind: lib/cli.js tailwindcss: lib/cli.js - checksum: ec187d180c722ec4f57537f2216c7b21269b525f12aaf353cea464d939c3e6286a1221eb3e1206e45d1f015f296171309ad4d9952899b0245cd07d9500a9401f + checksum: 4897c70e671c885e151f57434d87ccb806f468a11900f028245b351ffbca5245ff0c10ca5dbb6eb4c7c4df3de8a15a05fe08c2aea4b152cb07bee9bb1d8a14a8 languageName: node linkType: hard @@ -25169,26 +24732,26 @@ __metadata: languageName: node linkType: hard -"tar@npm:^6.1.11, tar@npm:^6.1.12, tar@npm:^6.1.2": - version: 6.1.13 - resolution: "tar@npm:6.1.13" +"tar@npm:^6.1.11, tar@npm:^6.1.13, tar@npm:^6.1.2": + version: 6.1.15 + resolution: "tar@npm:6.1.15" dependencies: chownr: ^2.0.0 fs-minipass: ^2.0.0 - minipass: ^4.0.0 + minipass: ^5.0.0 minizlib: ^2.1.1 mkdirp: ^1.0.3 yallist: ^4.0.0 - checksum: 8a278bed123aa9f53549b256a36b719e317c8b96fe86a63406f3c62887f78267cea9b22dc6f7007009738509800d4a4dccc444abd71d762287c90f35b002eb1c + checksum: f23832fceeba7578bf31907aac744ae21e74a66f4a17a9e94507acf460e48f6db598c7023882db33bab75b80e027c21f276d405e4a0322d58f51c7088d428268 languageName: node linkType: hard "telejson@npm:^7.0.3": - version: 7.0.4 - resolution: "telejson@npm:7.0.4" + version: 7.1.0 + resolution: "telejson@npm:7.1.0" dependencies: memoizerific: ^1.11.3 - checksum: 116937573be4f401f5459e02aa49a8eca9e9dfc23317cbea01d27f4337802ec388ebfa6eef3e5da712fd652966b8e1f1c2e1a0d6bae777901ad232e871793688 + checksum: 8000e43dc862a87ab1ca342a2635641923d55c2585f85ea8c7c60293681d6f920e8b9570cc12d90ecef286f065c176da5f769f42f4828ba18a626627bed1ac07 languageName: node linkType: hard @@ -25269,6 +24832,24 @@ __metadata: languageName: node linkType: hard +"thenify-all@npm:^1.0.0": + version: 1.6.0 + resolution: "thenify-all@npm:1.6.0" + dependencies: + thenify: ">= 3.1.0 < 4" + checksum: dba7cc8a23a154cdcb6acb7f51d61511c37a6b077ec5ab5da6e8b874272015937788402fd271fdfc5f187f8cb0948e38d0a42dcc89d554d731652ab458f5343e + languageName: node + linkType: hard + +"thenify@npm:>= 3.1.0 < 4": + version: 3.3.1 + resolution: "thenify@npm:3.3.1" + dependencies: + any-promise: ^1.0.0 + checksum: 84e1b804bfec49f3531215f17b4a6e50fd4397b5f7c1bccc427b9c656e1ecfb13ea79d899930184f78bc2f57285c54d9a50a590c8868f4f0cef5c1d9f898b05e + languageName: node + linkType: hard + "throttle-debounce@npm:^2.1.0": version: 2.3.0 resolution: "throttle-debounce@npm:2.3.0" @@ -25512,9 +25093,16 @@ __metadata: languageName: node linkType: hard +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 20c29189c2dd6067a8775e07823ddf8d59a33e2ffc47a1bd59a5cb28bb0121a2969a816d5e77eda2ed85b18171aa5d1c4005a6b88ae8499ec7cc49f78571cb5e + languageName: node + linkType: hard + "ts-jest@npm:^29.0.0": - version: 29.0.5 - resolution: "ts-jest@npm:29.0.5" + version: 29.1.0 + resolution: "ts-jest@npm:29.1.0" dependencies: bs-logger: 0.x fast-json-stable-stringify: 2.x @@ -25529,7 +25117,7 @@ __metadata: "@jest/types": ^29.0.0 babel-jest: ^29.0.0 jest: ^29.0.0 - typescript: ">=4.3" + typescript: ">=4.3 <6" peerDependenciesMeta: "@babel/core": optional: true @@ -25541,7 +25129,7 @@ __metadata: optional: true bin: ts-jest: cli.js - checksum: f60f129c2287f4c963d9ee2677132496c5c5a5d39c27ad234199a1140c26318a7d5bda34890ab0e30636ec42a8de28f84487c09e9dcec639c9c67812b3a38373 + checksum: 535dc42ad523cbe1e387701fb2e448518419b515c082f09b25411f0b3dd0b854cf3e8141c316d6f4b99883aeb4a4f94159cbb1edfb06d7f77ea6229fadb2e1bf languageName: node linkType: hard @@ -25584,14 +25172,14 @@ __metadata: linkType: hard "tsconfig-paths@npm:^3.14.1": - version: 3.14.1 - resolution: "tsconfig-paths@npm:3.14.1" + version: 3.14.2 + resolution: "tsconfig-paths@npm:3.14.2" dependencies: "@types/json5": ^0.0.29 - json5: ^1.0.1 + json5: ^1.0.2 minimist: ^1.2.6 strip-bom: ^3.0.0 - checksum: 8afa01c673ebb4782ba53d3a12df97fa837ce524f8ad38ee4e2b2fd57f5ac79abc21c574e9e9eb014d93efe7fe8214001b96233b5c6ea75bd1ea82afe17a4c6d + checksum: a6162eaa1aed680537f93621b82399c7856afd10ec299867b13a0675e981acac4e0ec00896860480efc59fc10fd0b16fdc928c0b885865b52be62cadac692447 languageName: node linkType: hard @@ -25603,9 +25191,9 @@ __metadata: linkType: hard "tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.2.0, tslib@npm:^2.3.1, tslib@npm:^2.4.0": - version: 2.5.0 - resolution: "tslib@npm:2.5.0" - checksum: ae3ed5f9ce29932d049908ebfdf21b3a003a85653a9a140d614da6b767a93ef94f460e52c3d787f0e4f383546981713f165037dc2274df212ea9f8a4541004e1 + version: 2.5.2 + resolution: "tslib@npm:2.5.2" + checksum: 4d3c1e238b94127ed0e88aa0380db3c2ddae581dc0f4bae5a982345e9f50ee5eda90835b8bfba99b02df10a5734470be197158c36f9129ac49fdc14a6a9da222 languageName: node linkType: hard @@ -25628,19 +25216,19 @@ __metadata: linkType: hard "tty-table@npm:^4.1.5": - version: 4.1.6 - resolution: "tty-table@npm:4.1.6" + version: 4.2.1 + resolution: "tty-table@npm:4.2.1" dependencies: chalk: ^4.1.2 - csv: ^5.5.0 - kleur: ^4.1.4 + csv: ^5.5.3 + kleur: ^4.1.5 smartwrap: ^2.0.2 - strip-ansi: ^6.0.0 + strip-ansi: ^6.0.1 wcwidth: ^1.0.1 - yargs: ^17.1.1 + yargs: ^17.7.1 bin: tty-table: adapters/terminal-adapter.js - checksum: 0f689b7d79ad6b9e608299e667a493309901fe802f1c4d66627a90cacb6fe11e0521e1a2dc5a75f793750ecdd849e98292d4874e5e6e988edd928b67045eb847 + checksum: e058c0bd553c515d2ed908eb5f6a220a412e160168ef5c87847c62dacf78a7de9ccb548d7f6cd5edbcce2301c389ac2858c10aa330dccea2764809beb63d1d7b languageName: node linkType: hard @@ -26105,17 +25693,17 @@ __metadata: languageName: node linkType: hard -"update-browserslist-db@npm:^1.0.10": - version: 1.0.10 - resolution: "update-browserslist-db@npm:1.0.10" +"update-browserslist-db@npm:^1.0.11": + version: 1.0.11 + resolution: "update-browserslist-db@npm:1.0.11" dependencies: escalade: ^3.1.1 picocolors: ^1.0.0 peerDependencies: browserslist: ">= 4.21.0" bin: - browserslist-lint: cli.js - checksum: 12db73b4f63029ac407b153732e7cd69a1ea8206c9100b482b7d12859cd3cd0bc59c602d7ae31e652706189f1acb90d42c53ab24a5ba563ed13aebdddc5561a0 + update-browserslist-db: cli.js + checksum: b98327518f9a345c7cad5437afae4d2ae7d865f9779554baf2a200fdf4bac4969076b679b1115434bd6557376bdd37ca7583d0f9b8f8e302d7d4cc1e91b5f231 languageName: node linkType: hard @@ -26215,11 +25803,11 @@ __metadata: linkType: hard "use-hot-module-reload@npm:^1.0.1": - version: 1.0.2 - resolution: "use-hot-module-reload@npm:1.0.2" + version: 1.0.3 + resolution: "use-hot-module-reload@npm:1.0.3" peerDependencies: react: ">=17.0.0" - checksum: 71d4fbb262ce7b416bc747ad4034f38799f42aba545cd201e5bd24c7d7105001de2251b82b349d73c381b4dda0368f657f26765f16875fc94f26766f5d047a92 + checksum: d91790150f7cbb41c3e9398f17dd5dd6ca24eb4b023d734d2b42672c440e20d9ac418c386ff63026e32cbf4619a098bdaf289f38dadcd4b9cf0da7d85a9f741c languageName: node linkType: hard @@ -26279,7 +25867,7 @@ __metadata: languageName: node linkType: hard -"usehooks-ts@npm:^2.9.1": +"usehooks-ts@npm:2.9.1": version: 2.9.1 resolution: "usehooks-ts@npm:2.9.1" peerDependencies: @@ -26359,13 +25947,13 @@ __metadata: linkType: hard "v8-to-istanbul@npm:^9.0.0, v8-to-istanbul@npm:^9.0.1": - version: 9.0.1 - resolution: "v8-to-istanbul@npm:9.0.1" + version: 9.1.0 + resolution: "v8-to-istanbul@npm:9.1.0" dependencies: "@jridgewell/trace-mapping": ^0.3.12 "@types/istanbul-lib-coverage": ^2.0.1 convert-source-map: ^1.6.0 - checksum: a49c34bf0a3af0c11041a3952a2600913904a983bd1bc87148b5c033bc5c1d02d5a13620fcdbfa2c60bc582a2e2970185780f0c844b4c3a220abf405f8af6311 + checksum: 2069d59ee46cf8d83b4adfd8a5c1a90834caffa9f675e4360f1157ffc8578ef0f763c8f32d128334424159bb6b01f3876acd39cd13297b2769405a9da241f8d1 languageName: node linkType: hard @@ -26428,8 +26016,8 @@ __metadata: linkType: hard "victory-vendor@npm:^36.6.8": - version: 36.6.8 - resolution: "victory-vendor@npm:36.6.8" + version: 36.6.10 + resolution: "victory-vendor@npm:36.6.10" dependencies: "@types/d3-array": ^3.0.3 "@types/d3-ease": ^3.0.0 @@ -26445,7 +26033,7 @@ __metadata: d3-shape: ^3.1.0 d3-time: ^3.0.0 d3-timer: ^3.0.1 - checksum: 6411f7c19a776cef3919946d429293cfe33c93a6e4dcfdfa2ba1edecad3a28ed2cd6b0d117169b8917ab6a7679e2bade5e7bfc1fed3fc8b464b842f21dac5f49 + checksum: f6d16379f28b4d95e8c930a831155d3516ae521dbdbd8c6f9d2dfe80a091a4a138a28343b9e93e3afad327b6b93532f555be456f84cfed4ae9cafe01ccd3e0fc languageName: node linkType: hard @@ -26473,7 +26061,7 @@ __metadata: languageName: node linkType: hard -"vite@npm:4.1.1, vite@npm:^4.0.1": +"vite@npm:4.1.1": version: 4.1.1 resolution: "vite@npm:4.1.1" dependencies: @@ -26512,8 +26100,8 @@ __metadata: linkType: hard "vite@npm:^3.1.0": - version: 3.2.5 - resolution: "vite@npm:3.2.5" + version: 3.2.7 + resolution: "vite@npm:3.2.7" dependencies: esbuild: ^0.15.9 fsevents: ~2.3.2 @@ -26545,13 +26133,13 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: ad35b7008c2b62a167d1d1a82f0a0c60fa457733f1969e9eedf0b0077f67a7ac74b4c9477e75a397895150f09b6551f0c17841c5b05c34d9fe302bb0b5dc28a8 + checksum: 4c5883b721b6ec406419e61d0b3fae8528e80f8c2eb20c087c7b1b76daec3665a0a49c83cd8ac7fdda6089625094b70c6a132daa5edc650c515ddc9f5eed44f0 languageName: node linkType: hard -"vite@npm:^4.2.0": - version: 4.3.8 - resolution: "vite@npm:4.3.8" +"vite@npm:^4.0.1, vite@npm:^4.2.0": + version: 4.3.9 + resolution: "vite@npm:4.3.9" dependencies: esbuild: ^0.17.5 fsevents: ~2.3.2 @@ -26582,14 +26170,14 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 454a7c0c1bd1fd5611c9df28c62e3adbe75f48e87fc787179c5af60c4ab9a87aa0eda44be446d898851a135766d36f65f8e7d56317556aa807d30e561de369c4 + checksum: 8c45a516278d1e0425fac00c0877336790f71484a851a318346a70e0d2aef9f3b9651deb2f9f002c791ceb920eda7d6a3cda753bdefd657321c99f448b02dd25 languageName: node linkType: hard "w3c-keyname@npm:^2.2.4": - version: 2.2.6 - resolution: "w3c-keyname@npm:2.2.6" - checksum: 59a31d23ca9953c01c99ed6695fee5b6ea36eb2412d76a21fe4302ab33a3f5cd96c006a763940b6115c3d042c16d3564eeee1156832217d028af0518098b3a42 + version: 2.2.7 + resolution: "w3c-keyname@npm:2.2.7" + checksum: 91e057b1ec28e0bafcaf28def12023f0e083fd473c40d0a9c2aa01a975d227200d75ff6d8eb6961bb4608b967b1df1dd86786b52ee9489cb9a2ebeed881a63ae languageName: node linkType: hard @@ -26839,9 +26427,9 @@ __metadata: linkType: hard "which-module@npm:^2.0.0": - version: 2.0.0 - resolution: "which-module@npm:2.0.0" - checksum: 809f7fd3dfcb2cdbe0180b60d68100c88785084f8f9492b0998c051d7a8efe56784492609d3f09ac161635b78ea29219eb1418a98c15ce87d085bce905705c9c + version: 2.0.1 + resolution: "which-module@npm:2.0.1" + checksum: 1967b7ce17a2485544a4fdd9063599f0f773959cca24176dbe8f405e55472d748b7c549cd7920ff6abb8f1ab7db0b0f1b36de1a21c57a8ff741f4f1e792c52be languageName: node linkType: hard @@ -26994,16 +26582,6 @@ __metadata: languageName: node linkType: hard -"write-file-atomic@npm:^5.0.0": - version: 5.0.0 - resolution: "write-file-atomic@npm:5.0.0" - dependencies: - imurmurhash: ^0.1.4 - signal-exit: ^3.0.7 - checksum: 6ee16b195572386cb1c905f9d29808f77f4de2fd063d74a6f1ab6b566363832d8906a493b764ee715e57ab497271d5fc91642a913724960e8e845adf504a9837 - languageName: node - linkType: hard - "ws@npm:^6.1.0": version: 6.2.2 resolution: "ws@npm:6.2.2" @@ -27029,8 +26607,8 @@ __metadata: linkType: hard "ws@npm:^8.11.0, ws@npm:^8.2.3": - version: 8.12.0 - resolution: "ws@npm:8.12.0" + version: 8.13.0 + resolution: "ws@npm:8.13.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -27039,7 +26617,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 818ff3f8749c172a95a114cceb8b89cedd27e43a82d65c7ad0f7882b1e96a2ee6709e3746a903c3fa88beec0c8bae9a9fcd75f20858b32a166dfb7519316a5d7 + checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c languageName: node linkType: hard @@ -27078,7 +26656,7 @@ __metadata: languageName: node linkType: hard -"xtend@npm:^4.0.0, xtend@npm:^4.0.2, xtend@npm:~4.0.1": +"xtend@npm:^4.0.0, xtend@npm:~4.0.1": version: 4.0.2 resolution: "xtend@npm:4.0.2" checksum: ac5dfa738b21f6e7f0dd6e65e1b3155036d68104e67e5d5d1bde74892e327d7e5636a076f625599dc394330a731861e87343ff184b0047fef1360a7ec0a5a36a @@ -27144,9 +26722,9 @@ __metadata: linkType: hard "yaml@npm:^2.1.1": - version: 2.2.1 - resolution: "yaml@npm:2.2.1" - checksum: 84f68cbe462d5da4e7ded4a8bded949ffa912bc264472e5a684c3d45b22d8f73a3019963a32164023bdf3d83cfb6f5b58ff7b2b10ef5b717c630f40bd6369a23 + version: 2.3.1 + resolution: "yaml@npm:2.3.1" + checksum: 2c7bc9a7cd4c9f40d3b0b0a98e370781b68b8b7c4515720869aced2b00d92f5da1762b4ffa947f9e795d6cd6b19f410bd4d15fdd38aca7bd96df59bd9486fb54 languageName: node linkType: hard @@ -27208,9 +26786,9 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^17.0.0, yargs@npm:^17.1.1, yargs@npm:^17.3.0, yargs@npm:^17.3.1": - version: 17.6.2 - resolution: "yargs@npm:17.6.2" +"yargs@npm:^17.0.0, yargs@npm:^17.3.0, yargs@npm:^17.3.1, yargs@npm:^17.7.1": + version: 17.7.2 + resolution: "yargs@npm:17.7.2" dependencies: cliui: ^8.0.1 escalade: ^3.1.1 @@ -27219,7 +26797,7 @@ __metadata: string-width: ^4.2.3 y18n: ^5.0.5 yargs-parser: ^21.1.1 - checksum: 47da1b0d854fa16d45a3ded57b716b013b2179022352a5f7467409da5a04a1eef5b3b3d97a2dfc13e8bbe5f2ffc0afe3bc6a4a72f8254e60f5a4bd7947138643 + checksum: 73b572e863aa4a8cbef323dd911d79d193b772defd5a51aab0aca2d446655216f5002c42c5306033968193bdbf892a7a4c110b0d77954a7fdf563e653967b56a languageName: node linkType: hard @@ -27283,6 +26861,13 @@ __metadata: languageName: node linkType: hard +"zod@npm:3.21.4": + version: 3.21.4 + resolution: "zod@npm:3.21.4" + checksum: f185ba87342ff16f7a06686767c2b2a7af41110c7edf7c1974095d8db7a73792696bcb4a00853de0d2edeb34a5b2ea6a55871bc864227dace682a0a28de33e1f + languageName: node + linkType: hard + "zwitch@npm:^2.0.0": version: 2.0.4 resolution: "zwitch@npm:2.0.4" From 1a639b4d19bbefff3c9fca673aba2b78f292b2dd Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 31 May 2023 09:23:41 +0200 Subject: [PATCH 55/68] test cache-busting --- .github/workflows/ci.yml | 8 -------- 1 file changed, 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 941388ca6d..e77ca3b8f1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,14 +23,6 @@ jobs: node-version: 16.13.0 cache: yarn - - name: Restore cache - uses: actions/cache@v3 - with: - path: "**/node_modules" - key: ${{ runner.os }}-test-${{ github.sha }} - restore-keys: | - ${{ runner.os }}-test - - name: Install dependencies run: yarn From 5aa6a25c920756802753ba8170f165b8957a4779 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 31 May 2023 09:31:44 +0200 Subject: [PATCH 56/68] ignore some lint rules --- package.json | 2 ++ 1 file changed, 2 insertions(+) diff --git a/package.json b/package.json index ab42c205c0..439a9c0988 100644 --- a/package.json +++ b/package.json @@ -149,6 +149,8 @@ ], "rules": { "@navikt/aksel-design-token-exists": true, + "@navikt/aksel-design-token-no-component-reference": null, + "@navikt/aksel-design-token-no-global-override": null, "@navikt/aksel-no-internal-tokens": null, "@navikt/aksel-no-class-override": null } From 4c55f9519644ed178578d4a3806582800b8e454d Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 31 May 2023 09:54:09 +0200 Subject: [PATCH 57/68] deduplicate rulename --- .../rules/aksel-design-token-no-component-reference/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts index c8ff2b4c71..9461aae5b3 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts @@ -4,7 +4,7 @@ import valueParser from "postcss-value-parser"; import { getPackageVersion, isCustomProperty, tokenExists } from "../../utils"; -const ruleName = "aksel-design-token-exists"; +const ruleName = "aksel-design-token-no-component-reference"; const ruleNamePackage = `@navikt/${ruleName}`; const packageVersion = getPackageVersion(); From 9a7a74386c09bc51f8ff0e32982626b89cc3006e Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 31 May 2023 09:55:46 +0200 Subject: [PATCH 58/68] bring back caching in ci.yml --- .github/workflows/ci.yml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e77ca3b8f1..941388ca6d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,6 +23,14 @@ jobs: node-version: 16.13.0 cache: yarn + - name: Restore cache + uses: actions/cache@v3 + with: + path: "**/node_modules" + key: ${{ runner.os }}-test-${{ github.sha }} + restore-keys: | + ${{ runner.os }}-test + - name: Install dependencies run: yarn From 6acb8c94452a17bc043e40b0408d061e1b5f1eef Mon Sep 17 00:00:00 2001 From: Ken Date: Wed, 31 May 2023 10:04:35 +0200 Subject: [PATCH 59/68] :memo: Oppdatert Package.json docs --- @navikt/aksel-stylelint/package.json | 14 ++++++++------ yarn.lock | 6 +++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/@navikt/aksel-stylelint/package.json b/@navikt/aksel-stylelint/package.json index 5a8851eb8a..e7c48b893e 100644 --- a/@navikt/aksel-stylelint/package.json +++ b/@navikt/aksel-stylelint/package.json @@ -1,16 +1,18 @@ { "name": "@navikt/aksel-stylelint", - "version": "3.0.0-beta.11", + "version": "3.3.1", "author": "Aksel | NAV", - "homepage": "https://aksel.nav.no/lint", + "homepage": "https://aksel.nav.no/grunnleggende/kode/stylelint", "repository": { "type": "git", "url": "git+https://github.com/navikt/aksel.git", - "directory": "@navikt/aksel-icons" + "directory": "@navikt/aksel-stylelint" }, "keywords": [ "aksel", - "stylelint" + "stylelint", + "config", + "linting" ], "publishConfig": { "access": "public" @@ -34,8 +36,8 @@ "dev": "yarn watch:lint" }, "devDependencies": { - "@navikt/ds-css": "*", - "@navikt/ds-tokens": "*", + "@navikt/ds-css": "^3.3.1", + "@navikt/ds-tokens": "^3.3.1", "@types/jest": "^29.0.0", "concurrently": "7.2.1", "copyfiles": "2.4.1", diff --git a/yarn.lock b/yarn.lock index ba1a6b7e71..32f90cd819 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3882,8 +3882,8 @@ __metadata: version: 0.0.0-use.local resolution: "@navikt/aksel-stylelint@workspace:@navikt/aksel-stylelint" dependencies: - "@navikt/ds-css": "*" - "@navikt/ds-tokens": "*" + "@navikt/ds-css": ^3.3.1 + "@navikt/ds-tokens": ^3.3.1 "@types/jest": ^29.0.0 concurrently: 7.2.1 copyfiles: 2.4.1 @@ -4117,7 +4117,7 @@ __metadata: languageName: unknown linkType: soft -"@navikt/ds-tokens@*, @navikt/ds-tokens@^3.3.1, @navikt/ds-tokens@workspace:@navikt/core/tokens": +"@navikt/ds-tokens@^3.3.1, @navikt/ds-tokens@workspace:@navikt/core/tokens": version: 0.0.0-use.local resolution: "@navikt/ds-tokens@workspace:@navikt/core/tokens" dependencies: From daaeaec6233d3e4dd365c9bf5dac6f052adac2df Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 31 May 2023 10:22:58 +0200 Subject: [PATCH 60/68] more helpful error messages --- .../src/rules/aksel-design-token-exists/index.ts | 8 +++++--- .../aksel-design-token-no-component-reference/index.ts | 7 ++++--- .../rules/aksel-design-token-no-global-override/index.ts | 5 +++-- .../src/rules/aksel-no-class-override/index.ts | 1 + .../src/rules/aksel-no-internal-tokens/index.ts | 2 ++ 5 files changed, 15 insertions(+), 8 deletions(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index bd806af794..eb5a70beba 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -20,12 +20,14 @@ const packageVersion = packageJson.version; export const messages = stylelint.utils.ruleMessages(ruleNamePackage, { propNotExist: (node: any) => - `property "${node.prop}" has a name that seems like it intends to override a design token by ` + + `("${node.prop}") does not exist in the design system.\n\n` + + `Property "${node.prop}" has a name that seems like it intends to override a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + - `However, that token doesn't seem to exist in the design system. ` + + `However, that token doesn"t seem to exist in the design system. ` + `\n\nVersion: ${packageVersion}`, valueNotExist: (node: any, invalidValues: string) => - `property "${node.prop}" has offending value "${invalidValues}", ` + + `("${invalidValues}") does not exist in the design system.\n\n` + + `Property "${node.prop}" has offending value "${invalidValues}", ` + `and the value seems like it intends to reference a design token by ` + `using one of the following prefixes [${controlledPrefixes}]. ` + `However, that token doesn't seem to exist in the design system. ` + diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts index 9461aae5b3..99a2a9d902 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts @@ -12,9 +12,10 @@ const prefix_ac = "--ac-"; export const messages = stylelint.utils.ruleMessages(ruleNamePackage, { valueRefComponent: (node: any, invalidValue: string) => - `property "${node.prop}" has offending value "${invalidValue}". ` + - `The value references a component level token ('${prefix_ac}'). ` + - `It is better to either reference a global level token ('--a-') or ` + + `Referencing ("${prefix_ac}*") not allowed.\n\n` + + `Property "${node.prop}" has offending value "${invalidValue}". ` + + `The value references a component level token ("${prefix_ac}"). ` + + `It is better to either reference a global level token ("--a-") or ` + `create a custom token instead. ` + `\n\nVersion: ${packageVersion}`, }); diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts index 70b3feda2e..a1ca6e7821 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts @@ -17,8 +17,9 @@ const packageVersion = packageJson.version; export const messages = stylelint.utils.ruleMessages(ruleNamePackage, { propOverrideGlobal: (node: any) => - `property "${node.prop}" tries to override a global level token ('${prefix_a}'), this is highly discouraged. ` + - `It is better to override a component level token ('--ac-') or create a custom token instead. ` + + `Overriding ("${node.prop}*") not allowed.\n\n` + + `Property "${node.prop}" tries to override a global level token ("${prefix_a}"), this is highly discouraged. ` + + `It is better to override a component level token ("--ac-") or create a custom token instead. ` + `Overriding global tokens should only be done when creating custom global themes.` + `\n\nVersion: ${packageVersion}`, }); diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts index f9b72468aa..6b42b2446a 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts @@ -8,6 +8,7 @@ const prefixes = ["navds-", "navdsi-"]; export const messages = stylelint.utils.ruleMessages(ruleName, { unexpected: (value) => + `("${value}") not allowed.\n\n` + `"${value}" looks like a class name used in the design system, ` + `because it starts with "${prefixes.join('" or "')}". ` + "It is not recommended to override the styling in the design system.", diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts index 21b053adb7..9fe23f7d59 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts @@ -8,9 +8,11 @@ const prefix = "--__ac-"; export const messages = stylelint.utils.ruleMessages(ruleName, { tokenUsed: (token, prop) => + `("${token}") not allowed.\n\n` + `"${token}" (inside decleration "${prop}") looks like an internal design token, ` + `because it starts with "${prefix}". Internal tokens should not be used outside the design system.`, tokenOverridden: (token) => + `("${token}") not allowed.\n\n` + `"${token}" looks like an internal design token, because it starts with "${prefix}". ` + `Internal tokens should not be overridden.`, }); From 331e7d9bf54fa502b1f07378b7cdd5ee16a98c48 Mon Sep 17 00:00:00 2001 From: Ken Date: Wed, 31 May 2023 12:55:23 +0200 Subject: [PATCH 61/68] :memo: Updated readme --- @navikt/aksel-stylelint/README.md | 61 ++++++++++++++++++++++++------- 1 file changed, 48 insertions(+), 13 deletions(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 7999b95077..7de4a8dd8d 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -29,23 +29,59 @@ It should be sufficient for most cases to extend the recommended defaults. } ``` -## aksel-design-token-exists +## @navikt/aksel-design-token-exists -This rule checks that if you use one of the reserved token prefixes `--a-` or `--ac-` then the token itself _must_ be provided by design system. - -In addition it checks that you: - -- don't **_reference_** a component level token. As they are only supposed to be overridden. -- don't **_override_** a global level token. As they are only supposed to be referenced. +Makes sure all referenced CSS-variables with prefix `--a-` or `--ac-` exists in Aksels token-collection. As a side-effect Aksel reserves these prefixes for its design-tokens. ❌ Incorrect: ```css -html h1 { +html { --a-my-own-color-bg-hover: #f2f2f2; ^^^^^^^^^^^^^^^^^^^^^^^^^ - background-color: var(--a-my-own-color-bg-hover, #ffffff); + background-color: var(--a-my-own-color-bg-hover); ^^^^^^^^^^^^^^^^^^^^^^^^^ +} +``` + +✅ Correct: + +```css +html { + background-color: var(--custom-tag-surface-default); +} +``` + +## @navikt/aksel-design-token-no-global-override + +Makes sure you don't override global level tokens with `--a-`-prefix. Global/Semantic tokens are supposed to be used as is, and not overridden. That is unless you are theming your solution to match a different sub-brands or brands. In those cases we encourage to make all the changes in a single 'config'-file, then disable the rule for that file only. + +❌ Incorrect: + +```css +div { + --a-surface-default: #f2f2f2; + ^^^^^^^^^^^^^^^^^^^ +} +``` + +✅ Correct: + +```css +div { + background-color: var(--a-surface-default); +} +``` + +## @navikt/aksel-design-token-no-component-reference + +Makes sure you don't reference component level tokens with `--ac-`-prefix. Component level tokens are only supposed to be overridden, not referenced. +This is since they are by default not defined, leading to unknown side-effects when referenced incorrectly. + +❌ Incorrect: + +```css +html { stroke: var(--ac-button-loader-stroke)); ^^^^^^^^^^^^^^^^^^^^^^^^^ } @@ -54,15 +90,14 @@ html h1 { ✅ Correct: ```css -html h1 { - background-color: var(--a-surface-default, #ffffff); +html { --ac-button-loader-stroke: lawngreen; } ``` -## aksel-no-internal-tokens +## @navikt/aksel-no-internal-tokens -Disallows use or override of internal Aksel design tokens. Internal tokens are not supposed to be used outside the design system, and they may be changed or removed without warning. Be aware that the rule simply checks the prefix of the token, and not if it actually exists in the design system. Even if it doesn't exist, using design system prefixes should be avoided. +Disallows use or override of internal Aksel design tokens. Internal tokens are not supposed to be used outside the design system, and may be changed or removed without warning. Be aware that the rule simply checks the prefix of the token, and not if it actually exists in the design system. Even if it doesn't exist, using design system prefixes should be avoided. ❌ Incorrect: From 482fa62e3edec327d94a9263c1c152e16ebf2ec0 Mon Sep 17 00:00:00 2001 From: Ken Date: Wed, 31 May 2023 12:56:22 +0200 Subject: [PATCH 62/68] :memo: Updated prefixes for rules in readme --- @navikt/aksel-stylelint/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 7de4a8dd8d..8bed478304 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -127,7 +127,7 @@ a { } ``` -## aksel-no-class-override +## @navikt/aksel-no-class-override Warns when trying to override design system styling by using class selectors that starts with "navds-" or "navdsi-". Overriding styles in the design system is discouraged. We want to have consistent look and feel across applications. Even if it seems to work fine now, it might break on subsequent updates in the design system. @@ -151,7 +151,7 @@ Warns when trying to override design system styling by using class selectors tha } ``` -## aksel-no-deprecated-classes +## @navikt/aksel-no-deprecated-classes Warns when you try to use deprecated class names. From d50f570bec1e22c19c51e039c312e50a0d87de01 Mon Sep 17 00:00:00 2001 From: Ken Date: Wed, 31 May 2023 13:05:09 +0200 Subject: [PATCH 63/68] :memo: Formateringsfeil i readme --- @navikt/aksel-stylelint/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 8bed478304..b8c2ff8ccd 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -82,7 +82,7 @@ This is since they are by default not defined, leading to unknown side-effects w ```css html { - stroke: var(--ac-button-loader-stroke)); + stroke: var(--ac-button-loader-stroke); ^^^^^^^^^^^^^^^^^^^^^^^^^ } ``` From fcd30fffa7b38cf028935dc8f8711b99f34c574d Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 31 May 2023 13:19:02 +0200 Subject: [PATCH 64/68] refactor ruleNames (shorter and better!) --- @navikt/aksel-stylelint/README.md | 12 ++++++------ @navikt/aksel-stylelint/src/index.ts | 2 +- @navikt/aksel-stylelint/src/recommended.ts | 12 ++++++------ .../src/rules/aksel-design-token-exists/index.ts | 9 ++++----- .../index.ts | 7 +++---- .../aksel-design-token-no-global-override/index.ts | 7 +++---- .../src/rules/aksel-no-class-override/index.ts | 2 +- .../src/rules/aksel-no-deprecated-classes/index.ts | 2 +- .../src/rules/aksel-no-internal-tokens/index.ts | 2 +- 9 files changed, 26 insertions(+), 29 deletions(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 8bed478304..7a461ef1ac 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -29,7 +29,7 @@ It should be sufficient for most cases to extend the recommended defaults. } ``` -## @navikt/aksel-design-token-exists +## aksel-design-token-exists Makes sure all referenced CSS-variables with prefix `--a-` or `--ac-` exists in Aksels token-collection. As a side-effect Aksel reserves these prefixes for its design-tokens. @@ -52,7 +52,7 @@ html { } ``` -## @navikt/aksel-design-token-no-global-override +## aksel-design-token-no-global-override Makes sure you don't override global level tokens with `--a-`-prefix. Global/Semantic tokens are supposed to be used as is, and not overridden. That is unless you are theming your solution to match a different sub-brands or brands. In those cases we encourage to make all the changes in a single 'config'-file, then disable the rule for that file only. @@ -73,7 +73,7 @@ div { } ``` -## @navikt/aksel-design-token-no-component-reference +## aksel-design-token-no-component-reference Makes sure you don't reference component level tokens with `--ac-`-prefix. Component level tokens are only supposed to be overridden, not referenced. This is since they are by default not defined, leading to unknown side-effects when referenced incorrectly. @@ -95,7 +95,7 @@ html { } ``` -## @navikt/aksel-no-internal-tokens +## aksel-no-internal-tokens Disallows use or override of internal Aksel design tokens. Internal tokens are not supposed to be used outside the design system, and may be changed or removed without warning. Be aware that the rule simply checks the prefix of the token, and not if it actually exists in the design system. Even if it doesn't exist, using design system prefixes should be avoided. @@ -127,7 +127,7 @@ a { } ``` -## @navikt/aksel-no-class-override +## aksel-no-class-override Warns when trying to override design system styling by using class selectors that starts with "navds-" or "navdsi-". Overriding styles in the design system is discouraged. We want to have consistent look and feel across applications. Even if it seems to work fine now, it might break on subsequent updates in the design system. @@ -151,7 +151,7 @@ Warns when trying to override design system styling by using class selectors tha } ``` -## @navikt/aksel-no-deprecated-classes +## aksel-no-deprecated-classes Warns when you try to use deprecated class names. diff --git a/@navikt/aksel-stylelint/src/index.ts b/@navikt/aksel-stylelint/src/index.ts index da9de022fd..80b9261a83 100644 --- a/@navikt/aksel-stylelint/src/index.ts +++ b/@navikt/aksel-stylelint/src/index.ts @@ -2,7 +2,7 @@ import { createPlugin } from "stylelint"; import { rules } from "./rules"; const rulesPlugins = Object.keys(rules).map((ruleName) => { - return createPlugin(`@navikt/${ruleName}`, rules[ruleName]); + return createPlugin(`${ruleName}`, rules[ruleName]); }); export default rulesPlugins; diff --git a/@navikt/aksel-stylelint/src/recommended.ts b/@navikt/aksel-stylelint/src/recommended.ts index de14453c2b..ad6147ea7e 100644 --- a/@navikt/aksel-stylelint/src/recommended.ts +++ b/@navikt/aksel-stylelint/src/recommended.ts @@ -1,11 +1,11 @@ module.exports = { plugins: ["."], rules: { - "@navikt/aksel-design-token-exists": true, - "@navikt/aksel-no-internal-tokens": true, - "@navikt/aksel-no-class-override": [true, { severity: "warning" }], - "@navikt/aksel-no-deprecated-classes": true, - "@navikt/aksel-design-token-no-global-override": true, - "@navikt/aksel-design-token-no-component-reference": true, + "aksel-design-token-exists": true, + "aksel-no-internal-tokens": true, + "aksel-no-class-override": [true, { severity: "warning" }], + "aksel-no-deprecated-classes": true, + "aksel-design-token-no-global-override": true, + "aksel-design-token-no-component-reference": true, }, }; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index eb5a70beba..bbf2e537e5 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -10,7 +10,6 @@ const packageJson = JSON.parse( ); const ruleName = "aksel-design-token-exists"; -const ruleNamePackage = `@navikt/${ruleName}`; const prefix_a = "--a-"; const prefix_ac = "--ac-"; @@ -18,7 +17,7 @@ export const controlledPrefixes = [prefix_a, prefix_ac]; const packageVersion = packageJson.version; -export const messages = stylelint.utils.ruleMessages(ruleNamePackage, { +export const messages = stylelint.utils.ruleMessages(ruleName, { propNotExist: (node: any) => `("${node.prop}") does not exist in the design system.\n\n` + `Property "${node.prop}" has a name that seems like it intends to override a design token by ` + @@ -51,7 +50,7 @@ const checkDeclValue = ( message: messages.valueNotExist(rootNode, node.value), node: rootNode, result: postcssResult, - ruleName: ruleNamePackage, + ruleName, word: node.value, }); } @@ -73,7 +72,7 @@ const checkDeclProp = ( message: messages.propNotExist(rootNode), node: rootNode, result: postcssResult, - ruleName: ruleNamePackage, + ruleName, word: prop, }); } @@ -88,7 +87,7 @@ const ruleFunction: stylelint.Rule = () => { }; }; -ruleFunction.ruleName = ruleNamePackage; +ruleFunction.ruleName = ruleName; ruleFunction.messages = {}; ruleFunction.meta = { url: `https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#${ruleName}`, diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts index 99a2a9d902..9398567d61 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts @@ -5,12 +5,11 @@ import valueParser from "postcss-value-parser"; import { getPackageVersion, isCustomProperty, tokenExists } from "../../utils"; const ruleName = "aksel-design-token-no-component-reference"; -const ruleNamePackage = `@navikt/${ruleName}`; const packageVersion = getPackageVersion(); const prefix_ac = "--ac-"; -export const messages = stylelint.utils.ruleMessages(ruleNamePackage, { +export const messages = stylelint.utils.ruleMessages(ruleName, { valueRefComponent: (node: any, invalidValue: string) => `Referencing ("${prefix_ac}*") not allowed.\n\n` + `Property "${node.prop}" has offending value "${invalidValue}". ` + @@ -37,7 +36,7 @@ const checkDeclValue = ( message: messages.valueRefComponent(rootNode, node.value), node: rootNode, result: postcssResult, - ruleName: ruleNamePackage, + ruleName, word: node.value, }); } @@ -52,7 +51,7 @@ const ruleFunction: stylelint.Rule = () => { }; }; -ruleFunction.ruleName = ruleNamePackage; +ruleFunction.ruleName = ruleName; ruleFunction.messages = {}; ruleFunction.meta = { url: `https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#${ruleName}`, diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts index a1ca6e7821..6f539f4b72 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts @@ -9,13 +9,12 @@ const packageJson = JSON.parse( ); const ruleName = "aksel-design-token-no-global-override"; -const ruleNamePackage = `@navikt/${ruleName}`; const prefix_a = "--a-"; const packageVersion = packageJson.version; -export const messages = stylelint.utils.ruleMessages(ruleNamePackage, { +export const messages = stylelint.utils.ruleMessages(ruleName, { propOverrideGlobal: (node: any) => `Overriding ("${node.prop}*") not allowed.\n\n` + `Property "${node.prop}" tries to override a global level token ("${prefix_a}"), this is highly discouraged. ` + @@ -39,7 +38,7 @@ const checkDeclProp = ( message: messages.propOverrideGlobal(rootNode), node: rootNode, result: postcssResult, - ruleName: ruleNamePackage, + ruleName, word: prop, }); } @@ -54,7 +53,7 @@ const ruleFunction: stylelint.Rule = () => { }; }; -ruleFunction.ruleName = ruleNamePackage; +ruleFunction.ruleName = ruleName; ruleFunction.messages = {}; ruleFunction.meta = { url: `https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#${ruleName}`, diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts index 6b42b2446a..7f747e6921 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts @@ -1,7 +1,7 @@ import stylelint from "stylelint"; import selectorParser from "postcss-selector-parser"; -const ruleName = "@navikt/aksel-no-class-override"; +const ruleName = "aksel-no-class-override"; const url = "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-class-override"; const prefixes = ["navds-", "navdsi-"]; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts index d5989bc24b..228ac03ff0 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts @@ -2,7 +2,7 @@ import stylelint from "stylelint"; import selectorParser from "postcss-selector-parser"; import { deprecations } from "../../deprecations"; -const ruleName = "@navikt/aksel-no-deprecated-classes"; +const ruleName = "/aksel-no-deprecated-classes"; const url = "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-deprecated-classes"; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts index 9fe23f7d59..4aa9cc56c0 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts @@ -1,7 +1,7 @@ import stylelint from "stylelint"; import valueParser from "postcss-value-parser"; -const ruleName = "@navikt/aksel-no-internal-tokens"; +const ruleName = "aksel-no-internal-tokens"; const url = "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-internal-tokens"; const prefix = "--__ac-"; From 1f43c115ff1432662b22e8fdeb2416356f2acf15 Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 31 May 2023 13:25:45 +0200 Subject: [PATCH 65/68] update one more rule name (I forgor) --- .../src/rules/aksel-no-deprecated-classes/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts index 228ac03ff0..94d12d8ca8 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts @@ -2,7 +2,7 @@ import stylelint from "stylelint"; import selectorParser from "postcss-selector-parser"; import { deprecations } from "../../deprecations"; -const ruleName = "/aksel-no-deprecated-classes"; +const ruleName = "aksel-no-deprecated-classes"; const url = "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-deprecated-classes"; From 7bb8aa51774840affb3973b4770499e6405746cc Mon Sep 17 00:00:00 2001 From: Julian Nymark Date: Wed, 31 May 2023 13:42:03 +0200 Subject: [PATCH 66/68] refactor names again (must have namespace) --- @navikt/aksel-stylelint/README.md | 12 ++++++------ @navikt/aksel-stylelint/src/recommended.ts | 12 ++++++------ .../src/rules/aksel-design-token-exists/index.ts | 2 +- .../index.ts | 2 +- .../aksel-design-token-no-global-override/index.ts | 2 +- .../src/rules/aksel-no-class-override/index.ts | 4 ++-- .../rules/aksel-no-deprecated-classes/index.test.ts | 2 +- .../src/rules/aksel-no-deprecated-classes/index.ts | 4 ++-- .../src/rules/aksel-no-internal-tokens/index.ts | 4 ++-- @navikt/aksel-stylelint/src/rules/index.ts | 12 ++++++------ 10 files changed, 28 insertions(+), 28 deletions(-) diff --git a/@navikt/aksel-stylelint/README.md b/@navikt/aksel-stylelint/README.md index 5c66d48c4a..ad9285ab30 100644 --- a/@navikt/aksel-stylelint/README.md +++ b/@navikt/aksel-stylelint/README.md @@ -29,7 +29,7 @@ It should be sufficient for most cases to extend the recommended defaults. } ``` -## aksel-design-token-exists +## aksel/design-token-exists Makes sure all referenced CSS-variables with prefix `--a-` or `--ac-` exists in Aksels token-collection. As a side-effect Aksel reserves these prefixes for its design-tokens. @@ -52,7 +52,7 @@ html { } ``` -## aksel-design-token-no-global-override +## aksel/design-token-no-global-override Makes sure you don't override global level tokens with `--a-`-prefix. Global/Semantic tokens are supposed to be used as is, and not overridden. That is unless you are theming your solution to match a different sub-brands or brands. In those cases we encourage to make all the changes in a single 'config'-file, then disable the rule for that file only. @@ -73,7 +73,7 @@ div { } ``` -## aksel-design-token-no-component-reference +## aksel/design-token-no-component-reference Makes sure you don't reference component level tokens with `--ac-`-prefix. Component level tokens are only supposed to be overridden, not referenced. This is since they are by default not defined, leading to unknown side-effects when referenced incorrectly. @@ -95,7 +95,7 @@ html { } ``` -## aksel-no-internal-tokens +## aksel/no-internal-tokens Disallows use or override of internal Aksel design tokens. Internal tokens are not supposed to be used outside the design system, and may be changed or removed without warning. Be aware that the rule simply checks the prefix of the token, and not if it actually exists in the design system. Even if it doesn't exist, using design system prefixes should be avoided. @@ -127,7 +127,7 @@ a { } ``` -## aksel-no-class-override +## aksel/no-class-override Warns when trying to override design system styling by using class selectors that starts with "navds-" or "navdsi-". Overriding styles in the design system is discouraged. We want to have consistent look and feel across applications. Even if it seems to work fine now, it might break on subsequent updates in the design system. @@ -151,7 +151,7 @@ Warns when trying to override design system styling by using class selectors tha } ``` -## aksel-no-deprecated-classes +## aksel/no-deprecated-classes Warns when you try to use deprecated class names. diff --git a/@navikt/aksel-stylelint/src/recommended.ts b/@navikt/aksel-stylelint/src/recommended.ts index ad6147ea7e..312fe26a08 100644 --- a/@navikt/aksel-stylelint/src/recommended.ts +++ b/@navikt/aksel-stylelint/src/recommended.ts @@ -1,11 +1,11 @@ module.exports = { plugins: ["."], rules: { - "aksel-design-token-exists": true, - "aksel-no-internal-tokens": true, - "aksel-no-class-override": [true, { severity: "warning" }], - "aksel-no-deprecated-classes": true, - "aksel-design-token-no-global-override": true, - "aksel-design-token-no-component-reference": true, + "aksel/design-token-exists": true, + "aksel/no-internal-tokens": true, + "aksel/no-class-override": [true, { severity: "warning" }], + "aksel/no-deprecated-classes": true, + "aksel/design-token-no-global-override": true, + "aksel/design-token-no-component-reference": true, }, }; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts index bbf2e537e5..dd2b8ce527 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-exists/index.ts @@ -9,7 +9,7 @@ const packageJson = JSON.parse( readFileSync(`${__dirname}/../../../package.json`).toString() ); -const ruleName = "aksel-design-token-exists"; +const ruleName = "aksel/design-token-exists"; const prefix_a = "--a-"; const prefix_ac = "--ac-"; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts index 9398567d61..7ebc3da95a 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-component-reference/index.ts @@ -4,7 +4,7 @@ import valueParser from "postcss-value-parser"; import { getPackageVersion, isCustomProperty, tokenExists } from "../../utils"; -const ruleName = "aksel-design-token-no-component-reference"; +const ruleName = "aksel/design-token-no-component-reference"; const packageVersion = getPackageVersion(); const prefix_ac = "--ac-"; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts index 6f539f4b72..198c7a3418 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-design-token-no-global-override/index.ts @@ -8,7 +8,7 @@ const packageJson = JSON.parse( readFileSync(`${__dirname}/../../../package.json`).toString() ); -const ruleName = "aksel-design-token-no-global-override"; +const ruleName = "aksel/design-token-no-global-override"; const prefix_a = "--a-"; diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts index 7f747e6921..141f782c02 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-class-override/index.ts @@ -1,9 +1,9 @@ import stylelint from "stylelint"; import selectorParser from "postcss-selector-parser"; -const ruleName = "aksel-no-class-override"; +const ruleName = "aksel/no-class-override"; const url = - "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-class-override"; + "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel/no-class-override"; const prefixes = ["navds-", "navdsi-"]; export const messages = stylelint.utils.ruleMessages(ruleName, { diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts index dcbc7d7eec..386325c629 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.test.ts @@ -11,7 +11,7 @@ getTestRule()({ { code: ".navds-foo, navdsi-bar, .baz {}", description: "allowed class names", - // Allowed because this rule only checks deprecated class names. See also aksel-no-class-override. + // Allowed because this rule only checks deprecated class names. See also aksel/no-class-override. }, ], diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts index 94d12d8ca8..c1cb4afe57 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-deprecated-classes/index.ts @@ -2,9 +2,9 @@ import stylelint from "stylelint"; import selectorParser from "postcss-selector-parser"; import { deprecations } from "../../deprecations"; -const ruleName = "aksel-no-deprecated-classes"; +const ruleName = "aksel/no-deprecated-classes"; const url = - "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-deprecated-classes"; + "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel/no-deprecated-classes"; export const messages = stylelint.utils.ruleMessages(ruleName, { unexpected: (value, secondaryOption) => diff --git a/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts index 4aa9cc56c0..b7b6f0cfdc 100644 --- a/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts +++ b/@navikt/aksel-stylelint/src/rules/aksel-no-internal-tokens/index.ts @@ -1,9 +1,9 @@ import stylelint from "stylelint"; import valueParser from "postcss-value-parser"; -const ruleName = "aksel-no-internal-tokens"; +const ruleName = "aksel/no-internal-tokens"; const url = - "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel-no-internal-tokens"; + "https://github.com/navikt/aksel/blob/main/%40navikt/aksel-stylelint/README.md#aksel/no-internal-tokens"; const prefix = "--__ac-"; export const messages = stylelint.utils.ruleMessages(ruleName, { diff --git a/@navikt/aksel-stylelint/src/rules/index.ts b/@navikt/aksel-stylelint/src/rules/index.ts index b5304544ff..ce739ee3fe 100644 --- a/@navikt/aksel-stylelint/src/rules/index.ts +++ b/@navikt/aksel-stylelint/src/rules/index.ts @@ -7,10 +7,10 @@ import noGlobalOverride from "./aksel-design-token-no-global-override"; import noComponentReference from "./aksel-design-token-no-component-reference"; export const rules: Record = { - "aksel-design-token-exists": designTokenExists, - "aksel-design-token-no-global-override": noGlobalOverride, - "aksel-design-token-no-component-reference": noComponentReference, - "aksel-no-internal-tokens": internalTokens, - "aksel-no-class-override": classOverride, - "aksel-no-deprecated-classes": deprecatedClasses, + "aksel/design-token-exists": designTokenExists, + "aksel/design-token-no-global-override": noGlobalOverride, + "aksel/design-token-no-component-reference": noComponentReference, + "aksel/no-internal-tokens": internalTokens, + "aksel/no-class-override": classOverride, + "aksel/no-deprecated-classes": deprecatedClasses, }; From e0533b2a3d3cadab644f08441c4c8904eba59756 Mon Sep 17 00:00:00 2001 From: Ken Date: Wed, 31 May 2023 14:00:42 +0200 Subject: [PATCH 67/68] :bug: Fikset intern bruk av lint-regler --- package.json | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/package.json b/package.json index 439a9c0988..ff50c183ca 100644 --- a/package.json +++ b/package.json @@ -148,11 +148,11 @@ "@navikt/internal/css/**/*" ], "rules": { - "@navikt/aksel-design-token-exists": true, - "@navikt/aksel-design-token-no-component-reference": null, - "@navikt/aksel-design-token-no-global-override": null, - "@navikt/aksel-no-internal-tokens": null, - "@navikt/aksel-no-class-override": null + "aksel/design-token-exists": true, + "aksel/design-token-no-component-reference": null, + "aksel/design-token-no-global-override": null, + "aksel/no-internal-tokens": null, + "aksel/no-class-override": null } } ], From b2a0971d70c42b15ba1f95726867d933c1a8b3b6 Mon Sep 17 00:00:00 2001 From: Ken Date: Wed, 31 May 2023 14:08:02 +0200 Subject: [PATCH 68/68] :arrow_up: yarn lock sync --- yarn.lock | 15 +++------------ 1 file changed, 3 insertions(+), 12 deletions(-) diff --git a/yarn.lock b/yarn.lock index 32f90cd819..b4449a32f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3942,7 +3942,7 @@ __metadata: jscodeshift-add-imports: 1.0.10 lodash: 4.17.21 meow: 7.0.1 - prettier: 2.7.1 + prettier: 2.8.8 typescript: ^4.8.0 bin: ds-codemod: ./bin/ds-codemod.js @@ -8273,7 +8273,7 @@ __metadata: glob: ^7.1.6 husky: ^8.0.0 lint-staged: 13.0.3 - prettier: 2.7.1 + prettier: 2.8.8 pretty-quick: ^3.1.3 react: ^18.0.0 react-docgen-typescript: 2.2.2 @@ -21087,16 +21087,7 @@ __metadata: languageName: node linkType: hard -"prettier@npm:2.7.1": - version: 2.7.1 - resolution: "prettier@npm:2.7.1" - bin: - prettier: bin-prettier.js - checksum: 55a4409182260866ab31284d929b3cb961e5fdb91fe0d2e099dac92eaecec890f36e524b4c19e6ceae839c99c6d7195817579cdffc8e2c80da0cb794463a748b - languageName: node - linkType: hard - -"prettier@npm:^2.7.1, prettier@npm:^2.8.0": +"prettier@npm:2.8.8, prettier@npm:^2.7.1, prettier@npm:^2.8.0": version: 2.8.8 resolution: "prettier@npm:2.8.8" bin: