diff --git a/.talismanrc b/.talismanrc index a206ebc5..40568e2d 100644 --- a/.talismanrc +++ b/.talismanrc @@ -1,124 +1,8 @@ fileignoreconfig: - - filename: packages/contentstack-migrate-rte/test/dummy/entriesResponse.json - checksum: 691f3dcfbbcf69fd21e109a0d7003bdb500af2d0253bb7d7e8a0636d8f2a58f4 - - filename: packages/contentstack-migrate-rte/test/dummy/expectedEntriesResponse.json - checksum: a2784a3cb21780434958478d478dcb91d2d9a3a8025567d90fe8d74e9141b052 - filename: pnpm-lock.yaml - checksum: 77c5e903e25bc471063120af5f1f581311a92a31b0c0590f13ac8aa47976f352 - - filename: packages/contentstack-bulk-operations/src/utils/bulk-publish-url-generator.ts - checksum: 052d811adb5da9bac8c70e5b3dc4ddf700d5aea274dd2aa90a2df374118fbd26 - - filename: packages/contentstack-bulk-operations/src/utils/client.ts - checksum: efdada21291db6d66e3114b7408163dee4cafe6ddb3904f02aa67140a1a89bb6 - - filename: packages/contentstack-bulk-operations/src/interfaces/index.ts - checksum: 0ff6bbc372758a20783f36bd391ba9d500530433fde472a1aacaf54f6b4a1688 - - filename: packages/contentstack-bulk-operations/src/utils/config-builder.ts - checksum: a7b5259ad719b8c5929f9fea3783bdc92610dc2549426204c1bb6813e7e1112a - - filename: packages/contentstack-bulk-operations/eslint.config.js - checksum: 0d93d7f660fe4cd6d62348c85ac10bf7c66018ea0b8e3e6d5a53419433f15867 - - filename: packages/contentstack-bulk-operations/src/utils/interactive.ts - checksum: ba4fdd6f17c7d43cae639158f82dea3065ba8a368ddce8c476bfe49a6945e5c1 - - filename: packages/contentstack-bulk-operations/src/messages/index.ts - checksum: 2d904462af6dc3ddc00ae6bb4433c846500ddfecee5a9e1fb1c236bd598a2ee1 - - filename: packages/contentstack-bulk-operations/src/utils/batch-queue-handler.ts - checksum: d1d031242b99f5c738e2f4587ca2f5f3e96373e479ebaf4d93b2f98152943593 - - filename: packages/contentstack-bulk-operations/README.md - checksum: 08ce31ed44af9b8b4c1ee054514198ec3533f713b59e7eaffd06d737c17cc867 - - filename: packages/contentstack-bulk-operations/src/core/operation-executor.ts - checksum: 46295f495f007ad291787133936c5af3c76838d72f2be0de9c235bb644d6f905 - - filename: packages/contentstack-bulk-operations/src/base-bulk-command.ts - checksum: 34907f0e00c40096cbe517b680a24fdf57caac351e45bc44b96e41987e619b67 - - filename: packages/contentstack-migrate-rte/README.md - checksum: 971bfdd67d66ae565feab612978123a9956248b25439e8cea65e4fa7cbcb403f - - filename: packages/contentstack-bulk-operations/src/core/rate-limiter.ts - checksum: 81e3d624166ab34a589e3e8527b9e57ebc7e7f4374efd0483b1df0dd11788b68 - - filename: packages/contentstack-content-type/skills/code-review/SKILL.md - checksum: e784c95e1efba37e79acc5d6187d26f25bea9228f9c28bbcac0dd9285c70381f - - filename: packages/contentstack-content-type/skills/contentstack-cli-content-type/SKILL.md - checksum: f52be931ec23638c76b44652921c4b45dbca9edf558f05bf465f33bcadf20790 - - filename: packages/contentstack-bulk-operations/src/utils/revert-retry-handler.ts - checksum: 76899098d74de1dd20f1b08401c65f23b2bec584c051388e63f70f3d24a6d1a4 - - filename: packages/contentstack-content-type/tests/utils/index.test.ts - checksum: ba3137f99bba3d430145088fabf560ec9324a3fe14699eb7eacf1a863243f4b9 - - filename: packages/contentstack-migrate-rte/src/commands/cm/entries/migrate-html-rte.js - checksum: 42f5322863e422f5b9c64f61116367fa825ea526bd198256a5ef296aac5b07a8 - - filename: packages/contentstack-content-type/skills/testing/SKILL.md - checksum: 1da781909a238a7e96dea43ed74ca97cd405e10d6a95dd2042a5280a7a9172f8 - - filename: packages/contentstack-content-type/src/commands/content-type/audit.ts - checksum: 2b38703b8452222024188118c65e1a5beb792072cd5f4eb6deda12133fd4dfd2 - - filename: packages/contentstack-cli-cm-regex-validate/skills/code-review/SKILL.md - checksum: 17431609f7d91acb67930ec6c405bdea670ad0ac2b96b39c2873241c5d8e4fb7 - - filename: packages/contentstack-cli-cm-regex-validate/skills/contentstack-cli/SKILL.md - checksum: 9420a516ba6046b05748683c90e3817d091cef76c46e029cb3745d6c0c350838 - - filename: packages/contentstack-cli-cm-regex-validate/skills/dev-workflow/SKILL.md - checksum: 23e1148c3287b8c67f43f15063e8dfff9a1521d374e400d048914b88279a15cc - - filename: packages/contentstack-content-type/src/utils/index.ts - checksum: 3209ee03042b33b491443bd2aabd273125eb1808607c9ef0b231323f2616092e - - filename: packages/contentstack-bulk-operations/test/unit/utils/client.test.ts - checksum: 178611b1f153b46a0020da22cc18293d5bd9c539ec2e54557fd8c1a3c2e796b3 - - filename: packages/contentstack-migrate-rte/src/lib/util/index.js - checksum: 47a154b83045535af878888d618d8e1d42d7b128318a361e03be881cb0d71c6e - - filename: packages/contentstack-bulk-operations/test/unit/utils/batch-queue-handler.test.ts - checksum: c91f1822b5cfd34a4f4ba05dfc56c10a66e0f5ddb55a1cf5b454fa9549ea0052 - - filename: packages/contentstack-content-type/src/commands/content-type/compare-remote.ts - checksum: 91f2a8cba4703a480086e6a257e4c96ac0c3d7fda5c5531e8ea0cb56be8b18e7 - - filename: packages/contentstack-bulk-operations/test/unit/utils/bulk-operation-log-handler.test.ts - checksum: cec7ba35157c6516d67931d41deb57b7a156d9fc05dbab93ca5116e89b95c820 - - filename: packages/contentstack-content-type/tests/commands/content-type/compare-remote.test.ts - checksum: 68beeddf34261799b38259925e8d9b5d2426bd827864ff1e5b5cdf3356fdfe5a - - filename: packages/contentstack-migrate-rte/test/commands/json-migration.test.js - checksum: 56e10f1e0d2794fa13bcf5a6bb3e868b28277df1762fb3df0a8a82ad44f8045b - - filename: packages/contentstack-content-type/src/commands/content-type/compare.ts - checksum: 91f8eb42a2f8c4f3845940418ecdc07f11cbc62e732cfc0042b092d9cc3a8b03 - - filename: packages/contentstack-content-type/tests/commands/content-type/list.test.ts - checksum: 728221e17384a6940d0e8e38f3111522927b49e415daba9fafe13dc3507e8406 - - filename: packages/contentstack-cli-cm-regex-validate/src/utils/connect-stack.ts - checksum: c77c7c25efc6d043b26e3dd0a516e22ac50142fa9fa5ff3a53a7c9fb8f24ebd6 - - filename: packages/contentstack-content-type/tests/core/command.test.ts - checksum: 65b8a60273110303467ce56438370f24d4803301c86fe1823c33233c523795d3 - - filename: packages/contentstack-content-type/src/commands/content-type/details.ts - checksum: 4fa7adeee4a82a8ab1b8206fa5c020babf3bb5341db351bc86069624028f911d - - filename: packages/contentstack-bulk-operations/test/unit/utils/config-builder.test.ts - checksum: d46757d3bb98d76845e83d4585f269b62b1fa9cb5bee3215b88fed38fd1dbb53 - - filename: packages/contentstack-content-type/src/commands/content-type/diagram.ts - checksum: e6a2a5349421976e343c1cf149011e79e2bd319e61630e6d9f9edacb1e5b6be5 - - filename: packages/contentstack-bulk-operations/test/unit/utils/interactive.test.ts - checksum: 3ee0ff5a74929346bfe997aeb977b4e93d398ea63892efc5f85e0b51a21074f6 - - filename: packages/contentstack-content-type/tests/core/content-type/diagram.test.ts - checksum: 75b5882e09a2f9f21d12236c8c64ed0d09bcbe9ff4a65f76b4b9f9b63b1a130c - - filename: packages/contentstack-bulk-operations/test/unit/utils/taxonomy-interactive-select.test.ts - checksum: 34a085702d01d7e16e1507ea1e434b374c2cba5dd884aad5996c5484412897c0 - - filename: packages/contentstack-content-type/.eslintrc - checksum: 6a5fa2bef65bf5a62598c10d45d83dfdef2dc32675aca5827ef31c230fa29c97 - - filename: packages/contentstack-bulk-operations/test/unit/utils/operation-confirmation.test.ts - checksum: 043185e56361ffae2116a2af5a4da16986816ad054fd94f189269e5b6150609e - - filename: packages/contentstack-bulk-operations/test/unit/utils/revert-retry-handler.test.ts - checksum: 078f9633edb53204ed14ebe3cf6b1d6063729dd37b7ee1c6e936a344ceabebda - - filename: packages/contentstack-content-type/src/commands/content-type/list.ts - checksum: a584f002cf6c8b124d832339b646dac492a9e2e9607c8b570f7e0df666bf5991 - - filename: packages/contentstack-bulk-operations/test/unit/messages/index.test.ts - checksum: e86e76db4f4afc899ae2a4742627a71a7d227a7139014361b9d83de6154b3c7a - - filename: packages/contentstack-bulk-operations/test/unit/base-bulk-command.test.ts - checksum: 18684a596707865e671f1ee57b4819cb3f4b4f2633d6c49f7f4b6ce09391359f - - filename: packages/contentstack-bulk-operations/test/unit/core/index.test.ts - checksum: 0d789258f5a9664e8a7dc5f5b23da846d0eaf8c52638ff20fb1f26104d3f9f8d - - filename: packages/contentstack-bulk-operations/test/unit/commands/bulk-entries.test.ts - checksum: 845512e660813a6d7d96efd89dcff6eba4591a3f9ff371dc9b1aad38921e18a6 - - filename: packages/contentstack-bulk-operations/test/unit/commands/bulk-assets.test.ts - checksum: c099c628c7ae1a40a9ca5580de0afa8309a611b2dff7837b10bb8f70eb92f8b3 - - filename: packages/contentstack-migrate-rte/test/utils/index.js - checksum: bc2a509a86174aecbaf0bfc44d6ad3afabe57ef871ec91b796d498e00177e3f0 - - filename: packages/contentstack-bulk-operations/test/unit/utils/validators.test.ts - checksum: 69cf394584e325b972d6825879de7c31b9dd1bd50b0bb057aecb739258ac0317 - - filename: packages/contentstack-content-type/tests/core/contentstack/client.test.ts - checksum: 5c4b952c5bee5c4e05825e24a7f953cd9ddebbe07e7dbae73e4e959730683988 - - filename: packages/contentstack-content-type/src/core/command.ts - checksum: ee30e78b945495baa9d064c96feee454ec73607420b8a3b1da2ecc3be4c9a85d - - filename: packages/contentstack-content-type/README.md - checksum: cfb10c8dd1848df7a4a47cf7eb8fa57a81b97994394a289a93c41a930f4b2a38 - - filename: packages/contentstack-bulk-operations/test/unit/services/index.test.ts - checksum: aae62ba072551bedf869ec7b1f6bf90238bc039336f37e7c583da8ba0637f9be - - filename: packages/contentstack-bulk-operations/test/unit/services/taxonomy-service.test.ts - checksum: 33af8ee198158dd92916d76207e172b5316864d063a6929526ca259b459ec79a - - filename: packages/contentstack-bulk-operations/test/unit/core/operation-executor.test.ts - checksum: 97f0ddd4d547f37a8d93650aa1e8af4ef4dbce343dd51853e34bbde6107cd725 + checksum: 23c1c139d0c9563a1d0c37aa55baca323087dc4889eca2ac7cca5dbc986f571b + - filename: packages/contentstack-cli-cm-regex-validate/messages/index.json + checksum: 044b311bde624dcc3c12434174d6027dbb6b62eefdfae120570a1748f806c60c + - filename: packages/contentstack-cli-cm-regex-validate/test/utils/connect-stack.test.ts + checksum: 1bfbd51850d013e4bb79ec62bd1abe450b65ccf31d6722010b234a7c0e5e17fc version: '1.0' diff --git a/packages/contentstack-apps-cli/package.json b/packages/contentstack-apps-cli/package.json index 736e450c..cd31ac35 100644 --- a/packages/contentstack-apps-cli/package.json +++ b/packages/contentstack-apps-cli/package.json @@ -49,7 +49,6 @@ "eslint": "^8.57.1", "eslint-config-oclif": "^6.0.157", "eslint-config-oclif-typescript": "^3.1.14", - "fancy-test": "3.0.16", "mocha": "^10.8.2", "nyc": "^15.1.0", "oclif": "^4.23.0", @@ -111,4 +110,4 @@ "app:deploy": "APDP" } } -} +} \ No newline at end of file diff --git a/packages/contentstack-bulk-operations/package.json b/packages/contentstack-bulk-operations/package.json index ad3e9e49..8a643163 100644 --- a/packages/contentstack-bulk-operations/package.json +++ b/packages/contentstack-bulk-operations/package.json @@ -44,7 +44,6 @@ "eslint-config-oclif-typescript": "^3.1.14", "eslint-config-prettier": "^10.1.8", "eslint-plugin-prettier": "^5.5.5", - "fancy-test": "3.0.16", "husky": "^9.1.7", "lint-staged": "^17.0.2", "mocha": "^11.7.5", @@ -117,4 +116,4 @@ "cm:stacks:bulk-taxonomies": "BOT" } } -} +} \ No newline at end of file diff --git a/packages/contentstack-bulk-operations/src/base-bulk-command.ts b/packages/contentstack-bulk-operations/src/base-bulk-command.ts index 1a6c4dbb..e5f0bc62 100644 --- a/packages/contentstack-bulk-operations/src/base-bulk-command.ts +++ b/packages/contentstack-bulk-operations/src/base-bulk-command.ts @@ -1,6 +1,6 @@ import chalk from 'chalk'; import { Command } from '@contentstack/cli-command'; -import { flags, log, createLogContext, getLogPath, handleAndLogError } from '@contentstack/cli-utilities'; +import { flags, log, createLogContext, getLogPath, handleAndLogError, FlagInput } from '@contentstack/cli-utilities'; import config from './config'; import messages, { $t } from './messages'; @@ -54,7 +54,7 @@ export abstract class BaseBulkCommand extends Command { protected abstract resourceType: ResourceType; // Common flags for all bulk operations - static baseFlags = { + static baseFlags: FlagInput = { alias: flags.string({ char: 'a', description: messages.ALIAS, diff --git a/packages/contentstack-bulk-operations/src/commands/cm/stacks/bulk-assets.ts b/packages/contentstack-bulk-operations/src/commands/cm/stacks/bulk-assets.ts index be2720fd..71122a91 100644 --- a/packages/contentstack-bulk-operations/src/commands/cm/stacks/bulk-assets.ts +++ b/packages/contentstack-bulk-operations/src/commands/cm/stacks/bulk-assets.ts @@ -1,4 +1,4 @@ -import { flags, handleAndLogError } from '@contentstack/cli-utilities'; +import { flags, handleAndLogError, FlagInput } from '@contentstack/cli-utilities'; import { ResourceType } from '../../../interfaces'; import { BaseBulkCommand } from '../../../base-bulk-command'; @@ -34,7 +34,7 @@ export default class BulkAssets extends BaseBulkCommand { '<%= config.bin %> <%= command.id %> --revert ./bulk-operation -a myAlias', ]; - static flags = { + static flags: FlagInput = { ...BaseBulkCommand.baseFlags, 'folder-uid': flags.string({ description: messages.FOLDER_UID, diff --git a/packages/contentstack-bulk-operations/src/commands/cm/stacks/bulk-entries.ts b/packages/contentstack-bulk-operations/src/commands/cm/stacks/bulk-entries.ts index c98a7fe6..e1954b49 100644 --- a/packages/contentstack-bulk-operations/src/commands/cm/stacks/bulk-entries.ts +++ b/packages/contentstack-bulk-operations/src/commands/cm/stacks/bulk-entries.ts @@ -1,4 +1,4 @@ -import { flags, handleAndLogError } from '@contentstack/cli-utilities'; +import { flags, handleAndLogError, FlagInput } from '@contentstack/cli-utilities'; import { BaseBulkCommand } from '../../../base-bulk-command'; import { ResourceType, FilterType } from '../../../interfaces'; @@ -49,7 +49,7 @@ export default class BulkEntries extends BaseBulkCommand { '<%= config.bin %> <%= command.id %> --revert ./bulk-operation', ]; - static flags = { + static flags: FlagInput = { ...BaseBulkCommand.baseFlags, 'content-types': flags.string({ description: messages.CONTENT_TYPES, diff --git a/packages/contentstack-cli-cm-regex-validate/.eslintrc b/packages/contentstack-cli-cm-regex-validate/.eslintrc new file mode 100644 index 00000000..d2b157f5 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/.eslintrc @@ -0,0 +1,23 @@ +{ + "extends": ["eslint-config-oclif", "eslint-config-oclif-typescript"], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "rules": { + "unicorn/prefer-module": "off", + "@typescript-eslint/no-require-imports": "off", + "unicorn/no-array-for-each": "off", + "camelcase": "off", + "@typescript-eslint/no-unused-vars": "error", + "quotes": ["error", "single", { "avoidEscape": true }], + "semi": ["error", "never"], + "unicorn/import-style": "off", + "unicorn/prefer-node-protocol": "off", + "unicorn/consistent-function-scoping": "off", + "@typescript-eslint/ban-ts-comment": "off", + "object-curly-spacing": ["error", "never"], + "node/no-missing-import": "off" + } +} diff --git a/packages/contentstack-cli-cm-regex-validate/jest.config.ts b/packages/contentstack-cli-cm-regex-validate/jest.config.ts index 7de2fb27..e56b1507 100644 --- a/packages/contentstack-cli-cm-regex-validate/jest.config.ts +++ b/packages/contentstack-cli-cm-regex-validate/jest.config.ts @@ -7,12 +7,12 @@ module.exports = { ], transform: { '^.+\\.(ts|tsx)$': 'ts-jest', - 'node_modules/uuid/.+\\.js$': [ + '(node_modules/.pnpm/uuid@[^/]+/node_modules/uuid|node_modules/uuid)/.+\\.js$': [ 'babel-jest', {presets: [['@babel/preset-env', {modules: 'commonjs'}]]}, ], }, - transformIgnorePatterns: ['/node_modules/(?!uuid/)'], + transformIgnorePatterns: ['/node_modules/(?!(.pnpm/uuid@[^/]+/node_modules/)?uuid/)'], verbose: true, collectCoverage: true, } diff --git a/packages/contentstack-cli-cm-regex-validate/messages/index.json b/packages/contentstack-cli-cm-regex-validate/messages/index.json new file mode 100644 index 00000000..054203b4 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/messages/index.json @@ -0,0 +1,43 @@ +{ + "validateRegex": { + "command": { + "description": "This command is used to find all the invalid regexes present in the content types and global fields of your stack.", + "alias": "Alias (name) assigned to the management token", + "contentTypes": "To find invalid regexes within the content types", + "globalFields": "To find invalid regexes within the global fields", + "filePath": "[optional] The path or the location in your file system where the CSV output file should be stored.", + "help": "To show the flags that can be used with this CLI command", + "login": "https://www.contentstack.com/docs/developers/cli/cli-authentication/#login", + "addManagementToken": "https://www.contentstack.com/docs/developers/cli/cli-authentication/#add-management-token" + }, + "interactive": { + "requireToken": "Enter management token alias:", + "required": "Required.", + "selectSchema": "Select the module you need to check.", + "selectOne": "Select at least one option." + }, + "cliAction": { + "connectStackStart": "Connecting stack", + "connectStackStop": "Stack connection established. Time taken: ", + "processStackStart": "Processing stack", + "processStackStop": "Stack processing completed. Time taken: " + }, + "errors": { + "login": "Could not log in as authorization failed. Log in using csdx auth:login", + "tokenNotFound": "Token not found. Add a token using csdx auth:tokens:add", + "stack": { + "fetch": "Error in connecting to the stack. Please try again.", + "apiKey": "Invalid stack API Key provided.", + "contentTypes": "Error in querying content types.", + "globalFields": "Error in querying global fields." + }, + "csvOutput": "Failed to generate CSV output." + }, + "output": { + "tableOutput": "The following table shows the invalid regexes present in your stack.", + "csvOutput": "CSV output stored successfully at:", + "noInvalidRegex": "There are no invalid regexes in your stack.", + "docsLink": "To know more, visit our documentation site on catastrophic-backtracking: https://www.contentstack.com/docs/developers/create-content-types/validation-regex/#prevent-catastrophic-backtracking" + } + } +} diff --git a/packages/contentstack-cli-cm-regex-validate/package.json b/packages/contentstack-cli-cm-regex-validate/package.json index c1e06ce6..e89136ee 100644 --- a/packages/contentstack-cli-cm-regex-validate/package.json +++ b/packages/contentstack-cli-cm-regex-validate/package.json @@ -9,7 +9,6 @@ "@contentstack/cli-utilities": "~2.0.0-beta.8", "@contentstack/management": "^1.30.2", "cli-table3": "^0.6.5", - "cli-ux": "^6.0.9", "inquirer": "12.11.1", "jsonexport": "^3.2.0", "safe-regex": "^2.1.1", @@ -18,7 +17,7 @@ "devDependencies": { "@babel/preset-env": "^7.29.5", "@oclif/plugin-help": "^6.2.49", - "@oclif/test": "^3.2.15", + "@oclif/test": "^4.1.18", "@types/chai": "^4.3.20", "@types/jest": "^30.0.0", "@types/jsonexport": "^3.0.5", @@ -28,10 +27,10 @@ "@typescript-eslint/eslint-plugin": "^8.59.2", "chai": "^4.5.0", "eslint": "^8.57.1", - "eslint-config-oclif": "^4.0.0", - "eslint-config-oclif-typescript": "^1.0.3", + "eslint-config-oclif": "^6.0.62", + "eslint-config-oclif-typescript": "^3.1.14", "eslint-plugin-unicorn": "^48.0.1", - "globby": "^10.0.2", + "globby": "^11.1.0", "jest": "^30.4.2", "mocha": "^10.8.2", "nyc": "^15.1.0", diff --git a/packages/contentstack-cli-cm-regex-validate/src/commands/cm/stacks/validate-regex.ts b/packages/contentstack-cli-cm-regex-validate/src/commands/cm/stacks/validate-regex.ts index ddb32943..65dd326f 100644 --- a/packages/contentstack-cli-cm-regex-validate/src/commands/cm/stacks/validate-regex.ts +++ b/packages/contentstack-cli-cm-regex-validate/src/commands/cm/stacks/validate-regex.ts @@ -9,7 +9,6 @@ export default class ValidateRegex extends Command { static description = regexMessages.command.description static flags: any = { - help: flags.help({char: 'h', description: regexMessages.command.help}), alias: flags.string({ char: 'a', description: regexMessages.command.alias, diff --git a/packages/contentstack-cli-cm-regex-validate/src/utils/connect-stack.ts b/packages/contentstack-cli-cm-regex-validate/src/utils/connect-stack.ts index ffa50625..dd995a1d 100644 --- a/packages/contentstack-cli-cm-regex-validate/src/utils/connect-stack.ts +++ b/packages/contentstack-cli-cm-regex-validate/src/utils/connect-stack.ts @@ -1,6 +1,5 @@ -import {cli} from 'cli-ux' import * as contentstackSdk from '@contentstack/management' -import {configHandler} from '@contentstack/cli-utilities' +import {configHandler, ux} from '@contentstack/cli-utilities' import processStack from './process-stack' const regexMessages = require('../../messages/index.json').validateRegex @@ -11,9 +10,7 @@ export default async function connectStack( ) { try { const startTime = Date.now() - cli.action.start(regexMessages.cliAction.connectStackStart, '', { - stdout: true, - }) + ux.action.start(regexMessages.cliAction.connectStackStart) const option: contentstackSdk.ContentstackConfig = { host: host, diff --git a/packages/contentstack-cli-cm-regex-validate/src/utils/process-stack.ts b/packages/contentstack-cli-cm-regex-validate/src/utils/process-stack.ts index 8d027151..bca59329 100644 --- a/packages/contentstack-cli-cm-regex-validate/src/utils/process-stack.ts +++ b/packages/contentstack-cli-cm-regex-validate/src/utils/process-stack.ts @@ -1,12 +1,12 @@ -import {cli} from 'cli-ux' +import {ux} from '@contentstack/cli-utilities' import safeRegex from './safe-regex' import generateOutput from './generate-output' const regexMessages = require('../../messages/index.json').validateRegex export default async function processStack(flags: any, stack: any, startTime: number) { - cli.action.stop(regexMessages.cliAction.connectStackStop + (Date.now() - startTime) + ' ms') + ux.action.stop(regexMessages.cliAction.connectStackStop + (Date.now() - startTime) + ' ms') const processTime = Date.now() - cli.action.start(regexMessages.cliAction.processStackStart, '', {stdout: true}) + ux.action.start(regexMessages.cliAction.processStackStart) const query = {} const invalidRegex: object[] = [] const tableData: object[] = [] @@ -32,6 +32,6 @@ export default async function processStack(flags: any, stack: any, startTime: nu }) } - cli.action.stop(regexMessages.cliAction.processStackStop + (Date.now() - processTime) + ' ms') + ux.action.stop(regexMessages.cliAction.processStackStop + (Date.now() - processTime) + ' ms') await generateOutput(flags, invalidRegex, tableData) } diff --git a/packages/contentstack-cli-cm-regex-validate/test/data/invalidDocument.json b/packages/contentstack-cli-cm-regex-validate/test/data/invalidDocument.json new file mode 100644 index 00000000..5eb2585c --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/data/invalidDocument.json @@ -0,0 +1,97 @@ +{ + "title": "Regex Fields", + "uid": "regex_fields", + "inbuilt_class": false, + "schema": [ + { + "data_type": "text", + "display_name": "Regex 1", + "uid": "regex_1", + "format": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?", + "error_messages": { + "format": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + } + }, + { + "data_type": "text", + "display_name": "Regex 2", + "uid": "regex_2", + "format": "(beep|boop)*", + "error_messages": { + "format": "(beep|boop)*" + } + }, + { + "data_type": "group", + "display_name": "Regex Group", + "schema": [ + { + "data_type": "text", + "display_name": "Group Regex 1", + "uid": "group_regex_1", + "format": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?", + "error_messages": { + "format": "" + } + } + ], + "uid": "regex_group" + }, + { + "data_type": "group", + "display_name": "Regex Group", + "uid": "regex_group" + }, + { + "data_type": "blocks", + "display_name": "Regex Modular Blocks", + "blocks": [ + { + "title": "MB 1", + "uid": "mb_1", + "schema": [ + { + "data_type": "group", + "display_name": "Group", + "schema": [ + { + "data_type": "text", + "display_name": "MB Group Regex", + "uid": "mb_group_regex", + "format": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?", + "error_messages": { + "format": "" + } + } + ], + "uid": "group" + }, + { + "data_type": "text", + "display_name": "MB Regex", + "uid": "mb_regex", + "format": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?", + "error_messages": { + "format": "" + } + } + ] + }, + { + "title": "MB 2", + "uid": "mb_2" + } + ], + "uid": "regex_modular_blocks" + }, + { + "data_type": "text", + "display_name": "Regex 6", + "uid": "regex_6", + "format": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?", + "error_messages": { + "format": "" + } + } + ] +} diff --git a/packages/contentstack-cli-cm-regex-validate/test/data/invalidRegex.json b/packages/contentstack-cli-cm-regex-validate/test/data/invalidRegex.json new file mode 100644 index 00000000..f17029f1 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/data/invalidRegex.json @@ -0,0 +1,47 @@ +[ + { + "Module": "Content Type", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "Regex 1", + "Field UID": "regex_1", + "Field Path": "regex_1", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + }, + { + "Module": "Content Type", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "Group Regex 1", + "Field UID": "group_regex_1", + "Field Path": "regex_group.group_regex_1", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + }, + { + "Module": "Content Type", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "MB Group Regex", + "Field UID": "mb_group_regex", + "Field Path": "regex_modular_blocks.mb_1.group.mb_group_regex", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + }, + { + "Module": "Content Type", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "MB Regex", + "Field UID": "mb_regex", + "Field Path": "regex_modular_blocks.mb_1.mb_regex", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + }, + { + "Module": "Content Type", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "Regex 6", + "Field UID": "regex_6", + "Field Path": "regex_6", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + } +] diff --git a/packages/contentstack-cli-cm-regex-validate/test/data/invalidRegexGf.json b/packages/contentstack-cli-cm-regex-validate/test/data/invalidRegexGf.json new file mode 100644 index 00000000..584ef762 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/data/invalidRegexGf.json @@ -0,0 +1,47 @@ +[ + { + "Module": "Global Field", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "Regex 1", + "Field UID": "regex_1", + "Field Path": "regex_1", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + }, + { + "Module": "Global Field", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "Group Regex 1", + "Field UID": "group_regex_1", + "Field Path": "regex_group.group_regex_1", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + }, + { + "Module": "Global Field", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "MB Group Regex", + "Field UID": "mb_group_regex", + "Field Path": "regex_modular_blocks.mb_1.group.mb_group_regex", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + }, + { + "Module": "Global Field", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "MB Regex", + "Field UID": "mb_regex", + "Field Path": "regex_modular_blocks.mb_1.mb_regex", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + }, + { + "Module": "Global Field", + "Title": "Regex Fields", + "UID": "regex_fields", + "Field Title": "Regex 6", + "Field UID": "regex_6", + "Field Path": "regex_6", + "Invalid Regex": "\\/(((([^\\/\\s\\*]+\\*?)+\\/)|(\\*{1,2})\\/)+)?(((([^\\/\\s\\*]+\\*?)+)|(\\*{1,2}))+)?" + } +] diff --git a/packages/contentstack-cli-cm-regex-validate/test/data/tableData.json b/packages/contentstack-cli-cm-regex-validate/test/data/tableData.json new file mode 100644 index 00000000..138e6bf6 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/data/tableData.json @@ -0,0 +1 @@ +[["Content Type", "Regex Fields", "regex_fields", 5]] diff --git a/packages/contentstack-cli-cm-regex-validate/test/data/tableDataGf.json b/packages/contentstack-cli-cm-regex-validate/test/data/tableDataGf.json new file mode 100644 index 00000000..9a88c400 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/data/tableDataGf.json @@ -0,0 +1 @@ +[["Global Field", "Regex Fields", "regex_fields", 5]] diff --git a/packages/contentstack-cli-cm-regex-validate/test/data/validDocument.json b/packages/contentstack-cli-cm-regex-validate/test/data/validDocument.json new file mode 100644 index 00000000..68ddff07 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/data/validDocument.json @@ -0,0 +1,25 @@ +{ + "title": "Regex Fields", + "uid": "regex_fields", + "inbuilt_class": false, + "schema": [ + { + "data_type": "text", + "display_name": "Regex 1", + "uid": "regex_1", + "format": "(beep|boop)*", + "error_messages": { + "format": "" + } + }, + { + "data_type": "text", + "display_name": "Regex 2", + "uid": "regex_2", + "format": "", + "error_messages": { + "format": "" + } + } + ] +} diff --git a/packages/contentstack-cli-cm-regex-validate/test/utils/connect-stack.test.ts b/packages/contentstack-cli-cm-regex-validate/test/utils/connect-stack.test.ts new file mode 100644 index 00000000..a8830e56 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/utils/connect-stack.test.ts @@ -0,0 +1,60 @@ +import {ux} from '@contentstack/cli-utilities' +import * as contentstackSdk from '@contentstack/management' +import connectStack from '../../src/utils/connect-stack' +import processStack from '../../src/utils/process-stack' + +jest.mock('@contentstack/management') +jest.mock('../../src/utils/generate-output.ts') +jest.mock('../../src/utils/process-stack.ts') + +describe('Get Client from Management SDK, connect with Stack & process Stack', () => { + beforeEach(() => { + jest.restoreAllMocks() + jest.spyOn(ux.action, 'start').mockImplementation(jest.fn()) + jest.spyOn(ux.action, 'stop').mockImplementation(jest.fn()) + }) + + test('Token details are Valid', async () => { + const host = 'api-contentstack.io' + const tokenDetails = { + apiKey: 'blt1234', + token: 'blt1234', + } + const flags = { + contentType: true, + globalField: true, + } + + const mockStack = jest.fn().mockResolvedValue({stack: {}}) + const mockClient = {stack: mockStack}; + (contentstackSdk.client as jest.Mock).mockReturnValue(mockClient) + + await connectStack(flags, host, tokenDetails) + expect(ux.action.start).toHaveBeenCalled() + expect(processStack).toHaveBeenCalled() + }) + + test('Token details is Invalid', async () => { + const host = 'api-contentstack.io' + const tokenDetails = { + apiKey: 'blt1234', + token: 'blt1234', + } + const flags = { + contentType: true, + globalField: true, + } + + const mockStack = jest.fn().mockImplementation(() => { + throw new Error('Invalid stack API Key provided.') + }) + const mockClient = {stack: mockStack}; + (contentstackSdk.client as jest.Mock).mockReturnValue(mockClient) + + await expect(connectStack(flags, host, tokenDetails)).rejects.toEqual( + expect.any(Error), + ) + + expect(ux.action.start).toHaveBeenCalled() + }) +}) diff --git a/packages/contentstack-cli-cm-regex-validate/test/utils/generate-output.test.ts b/packages/contentstack-cli-cm-regex-validate/test/utils/generate-output.test.ts new file mode 100644 index 00000000..7e274559 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/utils/generate-output.test.ts @@ -0,0 +1,71 @@ +import * as fs from 'fs' +import generateOutput from '../../src/utils/generate-output' +const invalidJsonOutput = require('../data/invalidRegex.json') +const invalidTableOutput = require('../data/tableData.json') +const regexMessages = require('../../messages/index.json').validateRegex + +jest.mock('fs') +jest.mock('@contentstack/cli-utilities', () => ({ + cliux: { + print: jest.fn(), + }, + sanitizePath: (path: string) => path, +})) + +describe('Generate Output after Stack is Processed', () => { + beforeEach(() => { + jest.restoreAllMocks() + }) + + test('Filepath Flag is not set & Invalid Regex is found', async () => { + const consoleSpy = jest.spyOn(console, 'log') + await generateOutput({}, invalidJsonOutput, invalidTableOutput) + expect(consoleSpy).toHaveBeenCalledTimes(1) + expect(consoleSpy).toHaveBeenCalledWith(regexMessages.output.tableOutput) + }) + + test('Filepath Flag is set, Path already exists & Invalid Regex is found', async () => { + const flags = { + filePath: '/path/to/output/directory/', + } + const consoleSpy = jest.spyOn(console, 'log') + jest.spyOn(fs, 'existsSync').mockImplementationOnce(() => { + return true + }) + await generateOutput(flags, invalidJsonOutput, invalidTableOutput) + expect(fs.existsSync).toHaveBeenCalled() + expect(fs.writeFileSync).toHaveBeenCalled() + expect(consoleSpy).toHaveBeenCalledTimes(1) + expect(consoleSpy).toHaveBeenCalledWith(regexMessages.output.tableOutput) + }) + + test('Filepath Flag is set, Path does not exists & Invalid Regex is found', async () => { + const flags = { + filePath: '/path/to/output/directory/', + } + const consoleSpy = jest.spyOn(console, 'log') + jest.spyOn(fs, 'existsSync').mockImplementationOnce(() => { + return false + }) + await generateOutput(flags, invalidJsonOutput, invalidTableOutput) + expect(fs.existsSync).toHaveBeenCalled() + expect(fs.mkdirSync).toHaveBeenCalled() + expect(fs.writeFileSync).toHaveBeenCalled() + expect(consoleSpy).toHaveBeenCalledTimes(1) + expect(consoleSpy).toHaveBeenCalledWith(regexMessages.output.tableOutput) + }) + + test('File is getting saved', async () => { + const consoleSpy = jest.spyOn(console, 'log') + await generateOutput({}, invalidJsonOutput, invalidTableOutput) + expect(consoleSpy).toHaveBeenCalledTimes(1) + expect(consoleSpy).toHaveBeenCalledWith(regexMessages.output.tableOutput) + expect(fs.writeFileSync).toHaveBeenCalled() + }) + + test('Invalid Regex is not found', async () => { + const consoleSpy = jest.spyOn(console, 'log') + await generateOutput({}, [], []) + expect(consoleSpy).toHaveBeenCalledTimes(0) + }) +}) diff --git a/packages/contentstack-cli-cm-regex-validate/test/utils/interactive.test.ts b/packages/contentstack-cli-cm-regex-validate/test/utils/interactive.test.ts new file mode 100644 index 00000000..46e8d157 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/utils/interactive.test.ts @@ -0,0 +1,79 @@ +import inquirer from 'inquirer' +import {inquireAlias, inquireModule, validateAlias, validateModule} from '../../src/utils/interactive' +const regexMessages = require('../../messages/index.json').validateRegex + +describe('Interactive', () => { + beforeEach(() => { + jest.restoreAllMocks() + }) + + test('Alias Token Flag is Set', async () => { + const flags = {alias: 'Test Token'} + const response = await inquireAlias(flags) + expect(response).toBeUndefined() + }) + + test('Alias Token is not Entered', async () => { + const alias = '' + const response = await validateAlias(alias) + expect(response).toBe(regexMessages.interactive.required) + }) + + test('Alias Token is Entered', async () => { + const alias = 'Test Token' + const flags = {} + const response = await validateAlias(alias) + expect(response).toBe(true); + (jest.spyOn(inquirer, 'prompt') as jest.Mock).mockImplementation(() => + Promise.resolve({alias: alias}), + ) + await inquireAlias(flags) + }) + + test('Module Flags are Set', async () => { + async function testModuleFlags(flags: object) { + const response = await inquireModule(flags) + expect(response).toBeUndefined() + } + + testModuleFlags({contentType: true}) + testModuleFlags({globalField: true}) + testModuleFlags({contentType: true, globalField: true}) + }) + + test('Module is not Selected', async () => { + const choice: string[] = [] + const response = await validateModule(choice) + expect(response).toBe(regexMessages.interactive.selectOne) + }) + + test('Content Type Module is Selected', async () => { + const choice: string[] = ['contentType'] + const response = await validateModule(choice) + expect(response).toBe(true); + (jest.spyOn(inquirer, 'prompt') as jest.Mock).mockImplementation(() => + Promise.resolve({choice: choice}), + ) + await inquireModule(choice) + }) + + test('Global Field Module is Selected', async () => { + const choice: string[] = ['globalField'] + const response = await validateModule(choice) + expect(response).toBe(true); + (jest.spyOn(inquirer, 'prompt') as jest.Mock).mockImplementation(() => + Promise.resolve({choice: choice}), + ) + await inquireModule(choice) + }) + + test('Both Modules are Selected', async () => { + const choice: string[] = ['contentType', 'globalField'] + const response = await validateModule(choice) + expect(response).toBe(true); + (jest.spyOn(inquirer, 'prompt') as jest.Mock).mockImplementation(() => + Promise.resolve({choice: choice}), + ) + await inquireModule(choice) + }) +}) diff --git a/packages/contentstack-cli-cm-regex-validate/test/utils/process-stack.test.ts b/packages/contentstack-cli-cm-regex-validate/test/utils/process-stack.test.ts new file mode 100644 index 00000000..a3bae796 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/utils/process-stack.test.ts @@ -0,0 +1,101 @@ +import {ux} from '@contentstack/cli-utilities' +import processStack from '../../src/utils/process-stack' +import generateOutput from '../../src/utils/generate-output' +const validDocument = require('../data/validDocument.json') +const regexMessages = require('../../messages/index.json').validateRegex + +jest.mock('../../src/utils/generate-output.ts') + +describe('Process Stack', () => { + beforeEach(() => { + jest.restoreAllMocks() + jest.spyOn(ux.action, 'start').mockImplementation(jest.fn()) + jest.spyOn(ux.action, 'stop').mockImplementation(jest.fn()) + }) + + test('Process Stack with Content Type & Global Field selected & valid Data', async () => { + const stack = { + name: 'stack', + contentType: jest.fn().mockImplementation(() => { + return { + query: jest.fn().mockImplementation(() => { + return { + find: jest.fn().mockResolvedValue(Promise.resolve({items: [validDocument]})), + } + }), + } + }), + globalField: jest.fn().mockImplementation(() => { + return { + query: jest.fn().mockImplementation(() => { + return { + find: jest.fn().mockResolvedValue(Promise.resolve({items: [validDocument]})), + } + }), + } + }), + } + const startTime = Date.now() + await processStack({contentType: true}, stack, startTime) + await processStack({globalField: true}, stack, startTime) + expect(ux.action.stop).toHaveBeenCalled() + expect(ux.action.start).toHaveBeenCalled() + expect(generateOutput).toHaveBeenCalled() + }) + + test('Process Stack with Content Type selected & invalid Content Type Data', async () => { + const contentTypeData = { + title: 'Regex Fields', + uid: 'regex_fields', + } + const stack = { + name: 'stack', + contentType: jest.fn().mockImplementation(() => { + return { + query: jest.fn().mockImplementation(() => { + return { + find: jest.fn().mockResolvedValue(Promise.resolve({items: [contentTypeData]})), + } + }), + } + }), + } + try { + const startTime = Date.now() + await processStack({contentType: true}, stack, startTime) + expect(ux.action.stop).toHaveBeenCalled() + expect(ux.action.start).toHaveBeenCalled() + expect(generateOutput).not.toHaveBeenCalled() + } catch (error: any) { + expect(error.message).toBe(regexMessages.errors.stack.contentTypes) + } + }) + + test('Process Stack with Global Field selected & Invalid Global Field Data', async () => { + const globalFieldData = { + title: 'Regex Fields', + uid: 'regex_fields', + } + const stack = { + name: 'stack', + globalField: jest.fn().mockImplementation(() => { + return { + query: jest.fn().mockImplementation(() => { + return { + find: jest.fn().mockResolvedValue(Promise.resolve({items: [globalFieldData]})), + } + }), + } + }), + } + try { + const startTime = Date.now() + await processStack({globalField: true}, stack, startTime) + expect(ux.action.stop).toHaveBeenCalled() + expect(ux.action.start).toHaveBeenCalled() + expect(generateOutput).not.toHaveBeenCalled() + } catch (error: any) { + expect(error.message).toBe(regexMessages.errors.stack.globalFields) + } + }) +}) diff --git a/packages/contentstack-cli-cm-regex-validate/test/utils/safe-regex.test.ts b/packages/contentstack-cli-cm-regex-validate/test/utils/safe-regex.test.ts new file mode 100644 index 00000000..3c9c0fc1 --- /dev/null +++ b/packages/contentstack-cli-cm-regex-validate/test/utils/safe-regex.test.ts @@ -0,0 +1,53 @@ +import safeRegex from '../../src/utils/safe-regex' +const validDocument = require('../data/validDocument.json') +const invalidDocument = require('../data/invalidDocument.json') +const invalidJsonOutput = require('../data/invalidRegex.json') +const invalidTableOutput = require('../data/tableData.json') +const invalidJsonOutputGf = require('../data/invalidRegexGf.json') +const invalidTableOutputGf = require('../data/tableDataGf.json') + +describe('Safe Regex Check in Schema', () => { + beforeEach(() => { + jest.restoreAllMocks() + }) + + describe('Content Type', () => { + test('Process Schema with Valid Regex', async () => { + const invalidRegex: object[] = [] + const tableData: object[] = [] + const moduleType = 'Content Type' + safeRegex(validDocument, invalidRegex, tableData, moduleType) + expect(invalidRegex).toStrictEqual([]) + expect(tableData).toStrictEqual([]) + }) + + test('Process Schema with Invalid Regex', async () => { + const invalidRegex: object[] = [] + const tableData: object[] = [] + const moduleType = 'Content Type' + safeRegex(invalidDocument, invalidRegex, tableData, moduleType) + expect(invalidRegex).toStrictEqual(invalidJsonOutput) + expect(tableData).toStrictEqual(invalidTableOutput) + }) + }) + + describe('Global Field', () => { + test('Process Schema with Valid Regex', async () => { + const invalidRegex: object[] = [] + const tableData: object[] = [] + const moduleType = 'Global Field' + safeRegex(validDocument, invalidRegex, tableData, moduleType) + expect(invalidRegex).toStrictEqual([]) + expect(tableData).toStrictEqual([]) + }) + + test('Process Schema with Invalid Regex', async () => { + const invalidRegex: object[] = [] + const tableData: object[] = [] + const moduleType = 'Global Field' + safeRegex(invalidDocument, invalidRegex, tableData, moduleType) + expect(invalidRegex).toStrictEqual(invalidJsonOutputGf) + expect(tableData).toStrictEqual(invalidTableOutputGf) + }) + }) +}) diff --git a/packages/contentstack-cli-cm-regex-validate/tsconfig.json b/packages/contentstack-cli-cm-regex-validate/tsconfig.json index 2756c5ea..8dc0af22 100644 --- a/packages/contentstack-cli-cm-regex-validate/tsconfig.json +++ b/packages/contentstack-cli-cm-regex-validate/tsconfig.json @@ -9,6 +9,7 @@ "target": "es2017", "skipLibCheck": true, "esModuleInterop": true, + "resolveJsonModule": true, "composite": true }, "include": [ diff --git a/packages/contentstack-content-type/package.json b/packages/contentstack-content-type/package.json index bee229cd..6321c693 100644 --- a/packages/contentstack-content-type/package.json +++ b/packages/contentstack-content-type/package.json @@ -30,7 +30,7 @@ "eslint": "^8.57.1", "eslint-config-oclif": "^6.0.162", "eslint-config-oclif-typescript": "^3.1.14", - "globby": "^10.0.2", + "globby": "^11.1.0", "jest": "^29.7.0", "oclif": "^4.23.0", "ts-jest": "^29.4.10", diff --git a/packages/contentstack-content-type/src/commands/content-type/audit.ts b/packages/contentstack-content-type/src/commands/content-type/audit.ts index 2fe17113..6787b205 100644 --- a/packages/contentstack-content-type/src/commands/content-type/audit.ts +++ b/packages/contentstack-content-type/src/commands/content-type/audit.ts @@ -3,7 +3,6 @@ import { flags, managementSDKClient, cliux, - printFlagDeprecation, } from "@contentstack/cli-utilities"; import buildOutput from "../../core/content-type/audit"; import { getStack, getUsers, getContentType } from "../../utils"; @@ -17,12 +16,6 @@ export default class AuditCommand extends Command { ]; static flags: any = { - stack: flags.string({ - char: "s", - description: "Stack UID", - exclusive: ["token-alias", "alias"], - parse: printFlagDeprecation(["-s", "--stack"], ["-k", "--stack-api-key"]), - }), "stack-api-key": flags.string({ char: "k", @@ -30,11 +23,6 @@ export default class AuditCommand extends Command { exclusive: ["token-alias", "alias"], }), - "token-alias": flags.string({ - char: "a", - description: "Management token alias", - parse: printFlagDeprecation(["--token-alias"], ["-a", "--alias"]), - }), alias: flags.string({ char: "a", @@ -42,10 +30,8 @@ export default class AuditCommand extends Command { }), "content-type": flags.string({ - char: "c", description: "Content Type UID", required: true, - parse: printFlagDeprecation(["-c"], ["--content-type"]), }), }; diff --git a/packages/contentstack-content-type/src/commands/content-type/compare-remote.ts b/packages/contentstack-content-type/src/commands/content-type/compare-remote.ts index 9ecad35c..42925571 100644 --- a/packages/contentstack-content-type/src/commands/content-type/compare-remote.ts +++ b/packages/contentstack-content-type/src/commands/content-type/compare-remote.ts @@ -4,7 +4,6 @@ import { FlagInput, managementSDKClient, cliux, - printFlagDeprecation, } from "@contentstack/cli-utilities"; import buildOutput from "../../core/content-type/compare"; import { getStack, getContentType } from "../../utils"; @@ -18,26 +17,20 @@ export default class CompareRemoteCommand extends Command { static flags: any = { "origin-stack": flags.string({ - char: "o", description: "Origin Stack API Key", required: true, dependsOn: ["remote-stack"], - parse: printFlagDeprecation(["-o"], ["--remote-stack"]), }), "remote-stack": flags.string({ - char: "r", description: "Remote Stack API Key", required: true, dependsOn: ["origin-stack"], - parse: printFlagDeprecation(["-r"], ["--remote-stack"]), }), "content-type": flags.string({ - char: "c", description: "Content Type UID", required: true, - parse: printFlagDeprecation(["-c"], ["--content-type"]), }), }; diff --git a/packages/contentstack-content-type/src/commands/content-type/compare.ts b/packages/contentstack-content-type/src/commands/content-type/compare.ts index 02a5fecb..e30eb725 100644 --- a/packages/contentstack-content-type/src/commands/content-type/compare.ts +++ b/packages/contentstack-content-type/src/commands/content-type/compare.ts @@ -1,5 +1,5 @@ import Command from '../../core/command' -import { flags, FlagInput, managementSDKClient, cliux, printFlagDeprecation } from '@contentstack/cli-utilities' +import { flags, FlagInput, managementSDKClient, cliux } from '@contentstack/cli-utilities' import buildOutput from '../../core/content-type/compare' import { getStack, getContentType } from '../../utils' @@ -13,12 +13,6 @@ export default class CompareCommand extends Command { ] static flags: any = { - stack: flags.string({ - char: 's', - description: 'Stack UID', - exclusive: ['token-alias'], - parse: printFlagDeprecation(['-s', '--stack'], ['-k', '--stack-api-key']) - }), 'stack-api-key': flags.string({ char: 'k', @@ -26,11 +20,6 @@ export default class CompareCommand extends Command { exclusive: ['token-alias'] }), - 'token-alias': flags.string({ - char: 'a', - description: 'Management token alias', - parse: printFlagDeprecation(['--token-alias'], ['-a', '--alias']) - }), alias: flags.string({ char: 'a', @@ -38,24 +27,18 @@ export default class CompareCommand extends Command { }), 'content-type': flags.string({ - char: 'c', description: 'Content Type UID', required: true, - parse: printFlagDeprecation(['-c'], ['--content-type']) }), left: flags.integer({ - char: 'l', description: 'Content Type version, i.e. prev version', dependsOn: ['right'], - parse: printFlagDeprecation(['-l'], ['--left']) }), right: flags.integer({ - char: 'r', description: 'Content Type version, i.e. later version', dependsOn: ['left'], - parse: printFlagDeprecation(['-r'], ['--right']) }) } diff --git a/packages/contentstack-content-type/src/commands/content-type/details.ts b/packages/contentstack-content-type/src/commands/content-type/details.ts index 726ad735..c13f4891 100644 --- a/packages/contentstack-content-type/src/commands/content-type/details.ts +++ b/packages/contentstack-content-type/src/commands/content-type/details.ts @@ -4,7 +4,6 @@ import { FlagInput, managementSDKClient, cliux, - printFlagDeprecation, } from "@contentstack/cli-utilities"; import buildOutput from "../../core/content-type/details"; import { getStack, getContentType } from "../../utils"; @@ -19,12 +18,6 @@ export default class DetailsCommand extends Command { ]; static flags: any = { - stack: flags.string({ - char: "s", - description: "Stack UID", - exclusive: ["token-alias"], - parse: printFlagDeprecation(["-s", "--stack"], ["-k", "--stack-api-key"]), - }), "stack-api-key": flags.string({ char: "k", @@ -32,11 +25,6 @@ export default class DetailsCommand extends Command { exclusive: ["token-alias"], }), - "token-alias": flags.string({ - char: "a", - description: "Management token alias", - parse: printFlagDeprecation(["--token-alias"], ["-a", "--alias"]), - }), alias: flags.string({ char: "a", @@ -44,18 +32,14 @@ export default class DetailsCommand extends Command { }), "content-type": flags.string({ - char: "c", description: "Content Type UID", required: true, - parse: printFlagDeprecation(["-c"], ["--content-type"]), }), path: flags.boolean({ - char: "p", description: "show path column", default: true, allowNo: true, - parse: printFlagDeprecation(["-p"], ["--path"]), }), }; diff --git a/packages/contentstack-content-type/src/commands/content-type/diagram.ts b/packages/contentstack-content-type/src/commands/content-type/diagram.ts index ebb8acd3..65666c72 100644 --- a/packages/contentstack-content-type/src/commands/content-type/diagram.ts +++ b/packages/contentstack-content-type/src/commands/content-type/diagram.ts @@ -4,7 +4,6 @@ import { FlagInput, managementSDKClient, cliux, - printFlagDeprecation, } from "@contentstack/cli-utilities"; import { createDiagram } from "../../core/content-type/diagram"; import { CreateDiagramOptions, DiagramOrientation } from "../../types"; @@ -21,12 +20,6 @@ export default class DiagramCommand extends Command { ]; static flags: any = { - stack: flags.string({ - char: "s", - description: "Stack UID", - exclusive: ["token-alias", "alias"], - parse: printFlagDeprecation(["-s", "--stack"], ["-k", "--stack-api-key"]), - }), "stack-api-key": flags.string({ char: "k", @@ -34,11 +27,6 @@ export default class DiagramCommand extends Command { exclusive: ["token-alias", "alias"], }), - "token-alias": flags.string({ - char: "a", - description: "Management token alias", - parse: printFlagDeprecation(["--token-alias"], ["-a", "--alias"]), - }), alias: flags.string({ char: "a", @@ -46,34 +34,28 @@ export default class DiagramCommand extends Command { }), output: flags.string({ - char: "o", description: "full path to output", hidden: false, multiple: false, required: true, - parse: printFlagDeprecation(["-o"], ["--output"]), }), direction: flags.string({ - char: "d", description: "graph orientation", default: "portrait", options: ["portrait", "landscape"], hidden: false, multiple: false, required: true, - parse: printFlagDeprecation(["-d"], ["--direction"]), }), type: flags.string({ - char: "t", description: "graph output file type", default: "svg", options: ["svg", "dot"], hidden: false, multiple: false, required: true, - parse: printFlagDeprecation(["-t"], ["--type"]), }), }; diff --git a/packages/contentstack-content-type/src/commands/content-type/list.ts b/packages/contentstack-content-type/src/commands/content-type/list.ts index 2a7fe142..de55f70d 100644 --- a/packages/contentstack-content-type/src/commands/content-type/list.ts +++ b/packages/contentstack-content-type/src/commands/content-type/list.ts @@ -4,7 +4,6 @@ import { FlagInput, managementSDKClient, cliux, - printFlagDeprecation, } from "@contentstack/cli-utilities"; import buildOutput from "../../core/content-type/list"; import { getStack, getContentTypes } from "../../utils"; @@ -19,12 +18,6 @@ export default class ListCommand extends Command { ]; static flags: any = { - stack: flags.string({ - char: "s", - description: "Stack UID", - exclusive: ["token-alias", "alias"], - parse: printFlagDeprecation(["-s", "--stack"], ["-k", "--stack-api-key"]), - }), "stack-api-key": flags.string({ char: "k", @@ -32,11 +25,6 @@ export default class ListCommand extends Command { exclusive: ["token-alias", "alias"], }), - "token-alias": flags.string({ - char: "a", - description: "Management token alias", - parse: printFlagDeprecation(["--token-alias"], ["-a", "--alias"]), - }), alias: flags.string({ char: "a", @@ -44,11 +32,9 @@ export default class ListCommand extends Command { }), order: flags.string({ - char: "o", description: "order by column", options: ["title", "modified"], default: "title", - parse: printFlagDeprecation(["-o"], ["--order"]), }), }; diff --git a/packages/contentstack-content-type/tests/commands/content-type/audit.test.ts b/packages/contentstack-content-type/tests/commands/content-type/audit.test.ts index e7f1bb03..ea2424b2 100644 --- a/packages/contentstack-content-type/tests/commands/content-type/audit.test.ts +++ b/packages/contentstack-content-type/tests/commands/content-type/audit.test.ts @@ -19,7 +19,6 @@ jest.mock('@contentstack/cli-utilities', () => ({ jest.fn((opts: Record) => ({ ...opts, __f: String(prop) })), } ), - printFlagDeprecation: jest.fn(() => () => undefined), })) jest.mock('../../../src/utils', () => ({ diff --git a/packages/contentstack-content-type/tests/commands/content-type/compare-remote.test.ts b/packages/contentstack-content-type/tests/commands/content-type/compare-remote.test.ts index 7f3bf61a..9411a921 100644 --- a/packages/contentstack-content-type/tests/commands/content-type/compare-remote.test.ts +++ b/packages/contentstack-content-type/tests/commands/content-type/compare-remote.test.ts @@ -19,7 +19,6 @@ jest.mock('@contentstack/cli-utilities', () => ({ jest.fn((opts: Record) => ({ ...opts, __f: String(prop) })), } ), - printFlagDeprecation: jest.fn(() => () => undefined), })) jest.mock('../../../src/utils', () => ({ diff --git a/packages/contentstack-content-type/tests/commands/content-type/compare.test.ts b/packages/contentstack-content-type/tests/commands/content-type/compare.test.ts index a2f4189d..e61f028a 100644 --- a/packages/contentstack-content-type/tests/commands/content-type/compare.test.ts +++ b/packages/contentstack-content-type/tests/commands/content-type/compare.test.ts @@ -19,7 +19,6 @@ jest.mock('@contentstack/cli-utilities', () => ({ jest.fn((opts: Record) => ({ ...opts, __f: String(prop) })), } ), - printFlagDeprecation: jest.fn(() => () => undefined), })) jest.mock('../../../src/utils', () => ({ diff --git a/packages/contentstack-content-type/tests/commands/content-type/details.test.ts b/packages/contentstack-content-type/tests/commands/content-type/details.test.ts index f0a3c94c..2d9a9c02 100644 --- a/packages/contentstack-content-type/tests/commands/content-type/details.test.ts +++ b/packages/contentstack-content-type/tests/commands/content-type/details.test.ts @@ -19,7 +19,6 @@ jest.mock('@contentstack/cli-utilities', () => ({ jest.fn((opts: Record) => ({ ...opts, __f: String(prop) })), } ), - printFlagDeprecation: jest.fn(() => () => undefined), })) jest.mock('../../../src/utils', () => ({ diff --git a/packages/contentstack-content-type/tests/commands/content-type/diagram.test.ts b/packages/contentstack-content-type/tests/commands/content-type/diagram.test.ts index 5f6f062a..e4efc997 100644 --- a/packages/contentstack-content-type/tests/commands/content-type/diagram.test.ts +++ b/packages/contentstack-content-type/tests/commands/content-type/diagram.test.ts @@ -19,7 +19,6 @@ jest.mock('@contentstack/cli-utilities', () => ({ jest.fn((opts: Record) => ({ ...opts, __f: String(prop) })), } ), - printFlagDeprecation: jest.fn(() => () => undefined), })) jest.mock('../../../src/utils', () => ({ diff --git a/packages/contentstack-content-type/tests/commands/content-type/list.test.ts b/packages/contentstack-content-type/tests/commands/content-type/list.test.ts index 204c1da6..b693b20f 100644 --- a/packages/contentstack-content-type/tests/commands/content-type/list.test.ts +++ b/packages/contentstack-content-type/tests/commands/content-type/list.test.ts @@ -19,7 +19,6 @@ jest.mock('@contentstack/cli-utilities', () => ({ jest.fn((opts: Record) => ({ ...opts, __f: String(prop) })), } ), - printFlagDeprecation: jest.fn(() => () => undefined), })) jest.mock('../../../src/utils', () => ({ diff --git a/packages/contentstack-migrate-rte/package.json b/packages/contentstack-migrate-rte/package.json index 0146cd1d..d449bda0 100644 --- a/packages/contentstack-migrate-rte/package.json +++ b/packages/contentstack-migrate-rte/package.json @@ -24,7 +24,6 @@ "chai": "^4.5.0", "eslint": "^8.57.1", "eslint-config-oclif": "^6.0.164", - "fancy-test": "^2.0.42", "mocha": "^10.8.2", "nock": "^13.5.6", "nyc": "^15.1.0", @@ -83,4 +82,4 @@ "cm:entries:migrate-html-rte": "MGRTRTE" } } -} +} \ No newline at end of file diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 1bc0de0d..6f69f638 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -101,9 +101,6 @@ importers: eslint-config-oclif-typescript: specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@5.9.3) - fancy-test: - specifier: 3.0.16 - version: 3.0.16 mocha: specifier: ^10.8.2 version: 10.8.2 @@ -442,9 +439,6 @@ importers: eslint-plugin-prettier: specifier: ^5.5.5 version: 5.5.5(eslint-config-prettier@10.1.8(eslint@10.4.0))(eslint@10.4.0)(prettier@3.8.3) - fancy-test: - specifier: 3.0.16 - version: 3.0.16 husky: specifier: ^9.1.7 version: 9.1.7 @@ -493,9 +487,6 @@ importers: cli-table3: specifier: ^0.6.5 version: 0.6.5 - cli-ux: - specifier: ^6.0.9 - version: 6.0.9 inquirer: specifier: 12.11.1 version: 12.11.1(@types/node@18.19.130) @@ -516,8 +507,8 @@ importers: specifier: ^6.2.49 version: 6.2.49 '@oclif/test': - specifier: ^3.2.15 - version: 3.2.15 + specifier: ^4.1.18 + version: 4.1.18(@oclif/core@4.11.4) '@types/chai': specifier: ^4.3.20 version: 4.3.20 @@ -546,17 +537,17 @@ importers: specifier: ^8.57.1 version: 8.57.1 eslint-config-oclif: - specifier: ^4.0.0 - version: 4.0.0(eslint@8.57.1) + specifier: ^6.0.62 + version: 6.0.166(eslint@8.57.1)(typescript@5.9.3) eslint-config-oclif-typescript: - specifier: ^1.0.3 - version: 1.0.3(eslint@8.57.1)(typescript@5.9.3) + specifier: ^3.1.14 + version: 3.1.14(eslint@8.57.1)(typescript@5.9.3) eslint-plugin-unicorn: specifier: ^48.0.1 version: 48.0.1(eslint@8.57.1) globby: - specifier: ^10.0.2 - version: 10.0.2 + specifier: ^11.1.0 + version: 11.1.0 jest: specifier: ^30.4.2 version: 30.4.2(@types/node@18.19.130)(ts-node@10.9.2(@types/node@18.19.130)(typescript@5.9.3)) @@ -795,8 +786,8 @@ importers: specifier: ^3.1.14 version: 3.1.14(eslint@8.57.1)(typescript@4.9.5) globby: - specifier: ^10.0.2 - version: 10.0.2 + specifier: ^11.1.0 + version: 11.1.0 jest: specifier: ^29.7.0 version: 29.7.0(@types/node@22.19.19)(ts-node@10.9.2(@types/node@22.19.19)(typescript@4.9.5)) @@ -1234,9 +1225,6 @@ importers: eslint-config-oclif: specifier: ^6.0.164 version: 6.0.166(eslint@8.57.1)(typescript@6.0.3) - fancy-test: - specifier: ^2.0.42 - version: 2.0.42 husky: specifier: ^9.1.7 version: 9.1.7 @@ -1724,13 +1712,6 @@ packages: resolution: {integrity: sha512-RgHBCvtjbOK2gXSNBNIkNoEc9qoVEtau3hj8gEqKQuL3HZAibKarWFEI3Lfm6EYKkLalOh8eSrj9b+ch9H/VBA==} engines: {node: '>=6.9.0'} - '@babel/eslint-parser@7.29.7': - resolution: {integrity: sha512-zxt+UJTOMKvUt3yOg+D58MLuz334pHp93qifMFcjIIO+9hN6t+ufw2gi7vDPMpxvfnHRR+3VVXvIjineCcgyXw==} - engines: {node: ^10.13.0 || ^12.13.0 || >=14.0.0} - peerDependencies: - '@babel/core': ^7.11.0 - eslint: ^7.5.0 || ^8.0.0 || ^9.0.0 - '@babel/generator@7.29.7': resolution: {integrity: sha512-DkXD5OJQaAQIdZ1bt3UZdEnHAn9Imd3IVBdX03UFe+ony9Ojw5pzr9YVKGDY1jt+Gcn/FnGkNf8r+Vj5NOJWtQ==} engines: {node: '>=6.9.0'} @@ -2943,9 +2924,6 @@ packages: '@emnapi/core': ^1.7.1 '@emnapi/runtime': ^1.7.1 - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - resolution: {integrity: sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==} - '@nodable/entities@2.1.0': resolution: {integrity: sha512-nyT7T3nbMyBI/lvr6L5TyWbFJAI9FTgVRakNoBqCD+PmID8DzFrrNdLLtHMwMszOtqZa8PAOV24ZqDnQrhQINA==} @@ -2969,10 +2947,6 @@ packages: resolution: {integrity: sha512-6jYuZgXvHfOIc9GIaS4T3CIKGTjPmfAxuMcbCbMRKJJl4aq/4xeRlEz0E8/hz8HxvxZBGvN2GwAUHlrGWQVrVw==} engines: {node: '>=14.0.0'} - '@oclif/core@3.27.0': - resolution: {integrity: sha512-Fg93aNFvXzBq5L7ztVHFP2nYwWU1oTCq48G0TjF/qC1UN36KWa2H5Hsm72kERd5x/sjy2M2Tn4kDEorUlpXOlw==} - engines: {node: '>=18.0.0'} - '@oclif/core@4.11.4': resolution: {integrity: sha512-URwiQ5ALx/sJ2iH4vzXEd+H4K6NAI7LRs6Jag3hrgKEpGmaE6alfRC8qjO4GIgb6A3ACaJumqP9twi/M9ywdHQ==} engines: {node: '>=18.0.0'} @@ -3002,10 +2976,6 @@ packages: engines: {node: '>=12.0.0'} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - '@oclif/test@3.2.15': - resolution: {integrity: sha512-XqG3RosozNqySkxSXInU12Xec2sPSOkqYHJDfdFZiWG3a8Cxu4dnPiAQvms+BJsOlLQmfEQlSHqiyVUKOMHhXA==} - engines: {node: '>=18.0.0'} - '@oclif/test@4.1.18': resolution: {integrity: sha512-SIy/8x8OHKh5Z32aS8jpzTDc+FC9531mMyypoH5HiZ0vXNjKJ9+SpbW4nYK2c/X44WcPdmjIImStZ/Wgc2zZnQ==} engines: {node: '>=18.0.0'} @@ -3389,9 +3359,6 @@ packages: '@types/chai@5.2.3': resolution: {integrity: sha512-Mw558oeA9fFbv65/y4mHtXDs9bPnFMZAL/jxdPFUpOHHIXX91mcgEHbS5Lahr+pwZFR8A7GQleRWeI6cGFC2UA==} - '@types/cli-progress@3.11.6': - resolution: {integrity: sha512-cE3+jb9WRlu+uOSAugewNpITJDt1VF8dHOopPO4IABFc3SXYL5WE/+PTz/FCdZRRfIujiWW3n3aMbv1eIGVRWA==} - '@types/connect@3.4.38': resolution: {integrity: sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==} @@ -3423,9 +3390,6 @@ packages: '@types/git-diff@2.0.7': resolution: {integrity: sha512-hipFAUcmf3c+45+Y8+J/xk7gT+0HBuT3O8OTtrnoP6R9gI0r2xESZNdYiA0pj7kQyPCwmkgbnxmfwQ9Ld2lZLQ==} - '@types/glob@7.2.0': - resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} - '@types/graceful-fs@4.1.9': resolution: {integrity: sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==} @@ -3486,10 +3450,6 @@ packages: '@types/mime@1.3.5': resolution: {integrity: sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==} - '@types/minimatch@6.0.0': - resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==} - deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed. - '@types/mkdirp@1.0.2': resolution: {integrity: sha512-o0K1tSO0Dx5X6xlU5F1D6625FawhC3dU3iqr25lluNv/+/QIVH8RLNEiVokgIZo+mz+87w/3Mkg/VvQS+J51fQ==} @@ -3596,17 +3556,6 @@ packages: '@types/yargs@17.0.35': resolution: {integrity: sha512-qUHkeCyQFxMXg79wQfTtfndEC+N9ZZg76HJftDJp+qH2tV7Gj4OJi7l+PiWwJ+pWtW8GwSmqsDj/oymhrTWXjg==} - '@typescript-eslint/eslint-plugin@4.33.0': - resolution: {integrity: sha512-aINiAxGVdOl1eJyVjaWn/YcVAq4Gi/Yo35qHGCnqbWVz61g39D0h23veY/MA0rFFGfxK7TySg2uwDeNv+JgVpg==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - '@typescript-eslint/parser': ^4.0.0 - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/eslint-plugin@5.62.0': resolution: {integrity: sha512-TiZzBSJja/LbhNPvk6yc0JrX9XqhQ0hdh6M2svYfsHGejaKFIAGd9MQ+ERIMzLGlN/kZoYIgdxFV0PuljTKXag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3637,22 +3586,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/experimental-utils@4.33.0': - resolution: {integrity: sha512-zeQjOoES5JFjTnAhI5QY7ZviczMzDptls15GFsI6jyUOq0kOf9+WonkhtlIhh0RgHRnqj5gdNxW5j1EvAyYg6Q==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: '*' - - '@typescript-eslint/parser@4.33.0': - resolution: {integrity: sha512-ZohdsbXadjGBSK0/r+d87X0SBmKzOq4/S5nzK6SBgJspFo9/CUDJ7hjayuze+JK7CZQLDMroqytp7pOcFKTxZA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - eslint: ^5.0.0 || ^6.0.0 || ^7.0.0 - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/parser@6.21.0': resolution: {integrity: sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ==} engines: {node: ^16.0.0 || >=18.0.0} @@ -3676,10 +3609,6 @@ packages: peerDependencies: typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/scope-manager@4.33.0': - resolution: {integrity: sha512-5IfJHpgTsTZuONKbODctL4kKuQje/bzBRkwHE8UOZ4f89Zeddg+EGZs8PD8NcN4LdM3ygHWYB3ukPAYjvl/qbQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - '@typescript-eslint/scope-manager@5.62.0': resolution: {integrity: sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3729,10 +3658,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/types@4.33.0': - resolution: {integrity: sha512-zKp7CjQzLQImXEpLt2BUw1tvOMPfNoTAfb8l51evhYbOEEzdWyQNmHWWGPR6hwKJDAi+1VXSBmnhL9kyVTTOuQ==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - '@typescript-eslint/types@5.62.0': resolution: {integrity: sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3749,15 +3674,6 @@ packages: resolution: {integrity: sha512-AsE7x2XaAK+CVbeih0Fvbn+r1qHxtpLDJ3XUuFcIinT318T90yHMJC+Zgv+jUuDjQQd06HKwxnDu6sz1IcTilA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@4.33.0': - resolution: {integrity: sha512-rkWRY1MPFzjwnEVHsxGemDzqqddw2QbTJlICPD9p9I9LfsO8fdmfQPOX3uKfUaGRDFJbfrtm/sXhVXN4E+bzCA==} - engines: {node: ^10.12.0 || >=12.0.0} - peerDependencies: - typescript: '*' - peerDependenciesMeta: - typescript: - optional: true - '@typescript-eslint/typescript-estree@5.62.0': resolution: {integrity: sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3816,10 +3732,6 @@ packages: eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 typescript: '>=4.8.4 <6.1.0' - '@typescript-eslint/visitor-keys@4.33.0': - resolution: {integrity: sha512-uqi/2aSz9g2ftcHWf8uLPJA70rUv6yuMW5Bohw+bwcuzaxQIHaKFZCKGoGXIrc9vkTJ3+0txM73K0Hq3d5wgIg==} - engines: {node: ^8.10.0 || ^10.13.0 || >=11.10.1} - '@typescript-eslint/visitor-keys@5.62.0': resolution: {integrity: sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -4345,8 +4257,8 @@ packages: bowser@2.14.1: resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - brace-expansion@1.1.14: - resolution: {integrity: sha512-MWPGfDxnyzKU7rNOW9SP/c50vi3xrmrua/+6hfPbCS2ABNWfx24vPidzvC7krjU/RTo235sV776ymlsMtGKj8g==} + brace-expansion@1.1.15: + resolution: {integrity: sha512-EwOCDEex4quD37XhqM3omwtMoJjr//isUZz1JopUNWms+4Z2ViyM/k1YIRePpoVNnQhENnxtFjLaxNHrT7xIUg==} brace-expansion@2.1.1: resolution: {integrity: sha512-WR1cURNjuvBLMZBMbqM0UoE+WAfdUcEV1ccD8PVBVOI+Z3ND4+SZbN8RsfT2bMuG1qwz5RFvPukSZm5fF2D5eA==} @@ -4637,17 +4549,10 @@ packages: resolution: {integrity: sha512-1bPaDNFm0axzE4MEAzKPuqKWeRaT43U/hyxKPBdqTfmPF+d6n7FSoTFxLVULUJOmiLp01KjhIPPH+HrXZJN4Rg==} engines: {node: '>=12.20'} - color-string@1.9.1: - resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==} - color-string@2.1.4: resolution: {integrity: sha512-Bb6Cq8oq0IjDOe8wJmi4JeNn763Xs9cfrBcaylK1tPypWzyoy2G3l90v9k64kjphl/ZJjPIShFztenRomi8WTg==} engines: {node: '>=18'} - color@4.2.3: - resolution: {integrity: sha512-1rXeuUUiGGrykh+CeBdu5Ie7OJwinCgQY0bc7GCRxy5xVHy+moaqkpL/jqQq0MtQOeYcrqEz4abc5f0KtU7W4A==} - engines: {node: '>=12.5.0'} - color@5.0.3: resolution: {integrity: sha512-ezmVcLR3xAVp8kYOm4GS45ZLLgIE6SPAFoduLr6hTDajwb3KZ2F46gulK3XpcwRFb5KKGCSezCBAY4Dw4HsyXA==} engines: {node: '>=18'} @@ -4703,9 +4608,6 @@ packages: config-master@3.1.0: resolution: {integrity: sha512-n7LBL1zBzYdTpF1mx5DNcZnZn05CWIdsdvtPL4MosvqbBUK3Rq6VWEtGUuF3Y0s9/CIhMejezqlSkP6TnCJ/9g==} - confusing-browser-globals@1.0.10: - resolution: {integrity: sha512-gNld/3lySHwuhaVluJUKLePYirM3QNCKzVxqAdhJII9/WXKVX5PURzMVJspS1jTslSqjeuG4KMVTSouit5YPHA==} - confusing-browser-globals@1.0.11: resolution: {integrity: sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA==} @@ -5197,20 +5099,11 @@ packages: peerDependencies: eslint: '>=6.0.0' - eslint-config-oclif-typescript@1.0.3: - resolution: {integrity: sha512-TeJKXWBQ3uKMtzgz++UFNWpe1WCx8mfqRuzZy1LirREgRlVv656SkVG4gNZat5rRNIQgfDmTS+YebxK02kfylA==} - engines: {node: '>=12.0.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - eslint-config-oclif-typescript@3.1.14: resolution: {integrity: sha512-YeBq5OiDRZFvfZ+wO0meF38fV06+zmEg15mnOLwkiAuUhjg2lH+UxvYA7uX2zUwR4p1WMUbfX+7CMfUwQ4TQ1A==} engines: {node: '>=18.0.0'} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - eslint-config-oclif@4.0.0: - resolution: {integrity: sha512-5tkUQeC33rHAhJxaGeBGYIflDLumeV2qD/4XLBdXhB/6F/+Jnwdce9wYHSvkx0JUqUQShpQv8JEVkBp/zzD7hg==} - engines: {node: '>=12.0.0'} - eslint-config-oclif@5.2.2: resolution: {integrity: sha512-NNTyyolSmKJicgxtoWZ/hoy2Rw56WIoWCFxgnBkXqDgi9qPKMwZs2Nx2b6SHLJvCiWWhZhWr5V46CFPo3PSPag==} engines: {node: '>=18.0.0'} @@ -5225,36 +5118,12 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-config-xo-space@0.27.0: - resolution: {integrity: sha512-b8UjW+nQyOkhiANVpIptqlKPyE7XRyQ40uQ1NoBhzVfu95gxfZGrpliq8ZHBpaOF2wCLZaexTSjg7Rvm99vj4A==} - engines: {node: '>=10'} - peerDependencies: - eslint: '>=7.20.0' - - eslint-config-xo-space@0.29.0: - resolution: {integrity: sha512-emUZVHjmzl3I1aO2M/2gEpqa/GHXTl7LF/vQeAX4W+mQIU+2kyqY97FkMnSc2J8Osoq+vCSXCY/HjFUmFIF/Ag==} - engines: {node: '>=10'} - peerDependencies: - eslint: '>=7.32.0' - eslint-config-xo-space@0.35.0: resolution: {integrity: sha512-+79iVcoLi3PvGcjqYDpSPzbLfqYpNcMlhsCBRsnmDoHAn4npJG6YxmHpelQKpXM7v/EeZTUKb4e1xotWlei8KA==} engines: {node: '>=12'} peerDependencies: eslint: '>=8.56.0' - eslint-config-xo@0.35.0: - resolution: {integrity: sha512-+WyZTLWUJlvExFrBU/Ldw8AB/S0d3x+26JQdBWbcqig2ZaWh0zinYcHok+ET4IoPaEcRRf3FE9kjItNVjBwnAg==} - engines: {node: '>=10'} - peerDependencies: - eslint: '>=7.20.0' - - eslint-config-xo@0.38.0: - resolution: {integrity: sha512-G2jL+VyfkcZW8GoTmqLsExvrWssBedSoaQQ11vyhflDeT3csMdBVp0On+AVijrRuvgmkWeDwwUL5Rj0qDRHK6g==} - engines: {node: '>=10'} - peerDependencies: - eslint: '>=7.20.0' - eslint-config-xo@0.44.0: resolution: {integrity: sha512-YG4gdaor0mJJi8UBeRJqDPO42MedTWYMaUyucF5bhm2pi/HS98JIxfFQmTLuyj6hGpQlAazNfyVnn7JuDn+Sew==} engines: {node: '>=18'} @@ -5310,12 +5179,6 @@ packages: peerDependencies: eslint: '>=8' - eslint-plugin-es@3.0.1: - resolution: {integrity: sha512-GUmAsJaN4Fc7Gbtl8uOBlayo2DqhwWvEzykMHSCZHU3XdJ+NSzzZcVhXh3VxX5icqQ+oQdIEawXX8xkR3mIFmQ==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=4.19.1' - eslint-plugin-es@4.1.0: resolution: {integrity: sha512-GILhQTnjYE2WorX5Jyi5i4dz5ALWxBIdQECVQavL6s7cI76IZTDWleTHkxz/QT3kvcs2QlGHvKLYsSlPOlPXnQ==} engines: {node: '>=8.10.0'} @@ -5344,12 +5207,6 @@ packages: peerDependencies: eslint: '>=7.0.0' - eslint-plugin-mocha@9.0.0: - resolution: {integrity: sha512-d7knAcQj1jPCzZf3caeBIn3BnW6ikcvfz0kSqQpwPYcVGLoJV5sz0l0OJB2LR8I7dvTDbqq1oV6ylhSgzA10zg==} - engines: {node: '>=12.0.0'} - peerDependencies: - eslint: '>=7.0.0' - eslint-plugin-n@15.7.0: resolution: {integrity: sha512-jDex9s7D/Qial8AGVIHq4W7NswpUD5DPDL2RH8Lzd9EloWUuvUkHfv4FRLMipH5q2UtyurorBkPeNi1wVWNh3Q==} engines: {node: '>=12.22.0'} @@ -5362,12 +5219,6 @@ packages: peerDependencies: eslint: '>=8.23.0' - eslint-plugin-node@11.1.0: - resolution: {integrity: sha512-oUwtPJ1W0SKD0Tr+wqu92c5xuCeQqB3hSCHasn/ZgjFdA9iDGNkNf2Zi9ztY7X+hNuMib23LNGRm6+uN+KLE3g==} - engines: {node: '>=8.10.0'} - peerDependencies: - eslint: '>=5.16.0' - eslint-plugin-perfectionist@2.11.0: resolution: {integrity: sha512-XrtBtiu5rbQv88gl+1e2RQud9te9luYNvKIgM9emttQ2zutHPzY/AQUucwxscDKV4qlTkvLTxjOFvxqeDpPorw==} peerDependencies: @@ -5406,12 +5257,6 @@ packages: eslint-config-prettier: optional: true - eslint-plugin-unicorn@36.0.0: - resolution: {integrity: sha512-xxN2vSctGWnDW6aLElm/LKIwcrmk6mdiEcW55Uv5krcrVcIFSWMmEgc/hwpemYfZacKZ5npFERGNz4aThsp1AA==} - engines: {node: '>=12'} - peerDependencies: - eslint: '>=7.32.0' - eslint-plugin-unicorn@48.0.1: resolution: {integrity: sha512-FW+4r20myG/DqFcCSzoumaddKBicIPeFnTrifon2mWIzlfyvzwyqZjqVP7m4Cqr/ZYisS2aiLghkUWaPg6vtCw==} engines: {node: '>=16'} @@ -5440,11 +5285,6 @@ packages: resolution: {integrity: sha512-xS90H51cKw0jltxmvmHy2Iai1LIqrfbw57b79w/J7MfvDfkIkFZ+kj6zC3BjtUwh150HsSSdxXZcsuv72miDFQ==} engines: {node: ^20.19.0 || ^22.13.0 || >=24} - eslint-template-visitor@2.3.2: - resolution: {integrity: sha512-3ydhqFpuV7x1M9EK52BPNj6V0Kwu0KKkcIAfpUhwHbR8ocRln/oUHgfxQupY8O1h4Qv/POHDumb/BwwNfxbtnA==} - peerDependencies: - eslint: '>=7.0.0' - eslint-utils@2.1.0: resolution: {integrity: sha512-w94dQYoauyvlDc43XnGB8lU3Zt713vNChgt4EWwhXAP2XkBvndfxF0AgIqKOOasjPIPzj9JqgwkwbCYD0/V3Zg==} engines: {node: '>=6'} @@ -5593,11 +5433,6 @@ packages: engines: {node: '>=12.0.0'} deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - fancy-test@3.0.16: - resolution: {integrity: sha512-y1xZFpyYbE2TMiT+agOW2Emv8gr73zvDrKKbcXc8L+gMyIVJFn71cc4ICfzu2zEXjHirpHpdDJN0JBX99wwDXQ==} - engines: {node: '>=18.0.0'} - deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info. - fast-csv@4.3.6: resolution: {integrity: sha512-2RNSpuwwsJGP0frGsOmTb9oUF+VkFSM4SyLTDgwf2ciHWTarN0lQTC+F2f/t5J9QjW+c65VFIAAu85GsvMIusw==} engines: {node: '>=10.0.0'} @@ -5821,9 +5656,6 @@ packages: resolution: {integrity: sha512-e5iwyodOHhbMr/yNrc7fDYG4qlbIvI5gajyzPnb5TCwyhjApznQh1BMFou9b30SevY43gCJKXycoCBjMbsuW0Q==} engines: {node: '>= 0.4'} - functional-red-black-tree@1.0.1: - resolution: {integrity: sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==} - functions-have-names@1.2.3: resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} @@ -5947,10 +5779,6 @@ packages: resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} engines: {node: '>= 0.4'} - globby@10.0.2: - resolution: {integrity: sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg==} - engines: {node: '>=8'} - globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -6217,9 +6045,6 @@ packages: is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} - is-arrayish@0.3.4: - resolution: {integrity: sha512-m6UrgzFVUYawGBh1dUsWR5M2Clqic9RVXC/9f8ceNlv2IcO9j9J/z8UoCLPqtsPBFNzEpfR3xftohbfqDx8EQA==} - is-async-function@2.1.1: resolution: {integrity: sha512-9dgM/cZBnNvjzaMYHVoxxfPj2QXt22Ev7SuuPrs+xav0ukGB0S6d4ydZdEiM48kLx5kDV+QBPrpVnFyefL8kkQ==} engines: {node: '>= 0.4'} @@ -7248,9 +7073,6 @@ packages: ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} - multimap@1.1.0: - resolution: {integrity: sha512-0ZIR9PasPxGXmRsEF8jsDzndzHDj7tIav+JUmvIFB/WHswliFnquxECT/De7GR4yg99ky/NlRKJT82G1y271bw==} - mute-stream@0.0.7: resolution: {integrity: sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ==} @@ -7756,9 +7578,6 @@ packages: rambda@7.5.0: resolution: {integrity: sha512-y/M9weqWAH4iopRd7EHDEQQvpFPHj1AA3oHozE9tfITHUtTR7Z9PSlIRRG2l1GuW7sefC1cXFfIcF+cgnShdBA==} - ramda@0.27.2: - resolution: {integrity: sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -8217,12 +8036,6 @@ packages: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} - simple-swizzle@0.2.4: - resolution: {integrity: sha512-nAu1WFPQSMNr2Zn9PGSZK9AGn4t/y97lEm+MXTtUDwfP0ksAIX4nO+6ruD9Jwut4C49SB1Ws+fbXsm/yScWOHw==} - - sinon@16.1.3: - resolution: {integrity: sha512-mjnWWeyxcAf9nC0bXcPmiDut+oE8HYridTNzBbF98AYVLmWwGRp2ISEpyhYflG1ifILT+eNn3BmKUJPxjXUPlA==} - sinon@17.0.2: resolution: {integrity: sha512-uihLiaB9FhzesElPDFZA7hDcNABzsVHwr3YfmM9sBllVwab3l0ltGlRV1XhpNfIacNDLGD1QRZNLs5nU5+hTuA==} deprecated: There @@ -9504,14 +9317,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@babel/eslint-parser@7.29.7(@babel/core@7.29.7)(eslint@8.57.1)': - dependencies: - '@babel/core': 7.29.7 - '@nicolo-ribaudo/eslint-scope-5-internals': 5.1.1-v1 - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 - semver: 6.3.1 - '@babel/generator@7.29.7': dependencies: '@babel/parser': 7.29.7 @@ -11960,10 +11765,6 @@ snapshots: '@tybys/wasm-util': 0.10.2 optional: true - '@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1': - dependencies: - eslint-scope: 5.1.1 - '@nodable/entities@2.1.0': {} '@nodelib/fs.scandir@2.1.5': @@ -12011,37 +11812,6 @@ snapshots: widest-line: 3.1.0 wrap-ansi: 7.0.0 - '@oclif/core@3.27.0': - dependencies: - '@types/cli-progress': 3.11.6 - ansi-escapes: 4.3.2 - ansi-styles: 4.3.0 - cardinal: 2.1.1 - chalk: 4.1.2 - clean-stack: 3.0.1 - cli-progress: 3.12.0 - color: 4.2.3 - debug: 4.4.3(supports-color@8.1.1) - ejs: 3.1.10 - get-package-type: 0.1.0 - globby: 11.1.0 - hyperlinker: 1.0.0 - indent-string: 4.0.0 - is-wsl: 2.2.0 - js-yaml: 3.14.2 - minimatch: 9.0.9 - natural-orderby: 2.0.3 - object-treeify: 1.1.33 - password-prompt: 1.1.3 - slice-ansi: 4.0.0 - string-width: 4.2.3 - strip-ansi: 6.0.1 - supports-color: 8.1.1 - supports-hyperlinks: 2.3.0 - widest-line: 3.1.0 - wordwrap: 1.0.0 - wrap-ansi: 7.0.0 - '@oclif/core@4.11.4': dependencies: ansi-escapes: 4.3.2 @@ -12120,14 +11890,6 @@ snapshots: '@oclif/screen@3.0.8': {} - '@oclif/test@3.2.15': - dependencies: - '@oclif/core': 3.27.0 - chai: 4.5.0 - fancy-test: 3.0.16 - transitivePeerDependencies: - - supports-color - '@oclif/test@4.1.18(@oclif/core@4.11.4)': dependencies: '@oclif/core': 4.11.4 @@ -12567,10 +12329,6 @@ snapshots: '@types/deep-eql': 4.0.2 assertion-error: 2.0.1 - '@types/cli-progress@3.11.6': - dependencies: - '@types/node': 20.19.41 - '@types/connect@3.4.38': dependencies: '@types/node': 20.19.41 @@ -12608,11 +12366,6 @@ snapshots: '@types/git-diff@2.0.7': {} - '@types/glob@7.2.0': - dependencies: - '@types/minimatch': 6.0.0 - '@types/node': 20.19.41 - '@types/graceful-fs@4.1.9': dependencies: '@types/node': 20.19.41 @@ -12678,10 +12431,6 @@ snapshots: '@types/mime@1.3.5': {} - '@types/minimatch@6.0.0': - dependencies: - minimatch: 10.2.5 - '@types/mkdirp@1.0.2': dependencies: '@types/node': 20.19.41 @@ -12793,23 +12542,6 @@ snapshots: dependencies: '@types/yargs-parser': 21.0.3 - '@typescript-eslint/eslint-plugin@4.33.0(@typescript-eslint/parser@4.33.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/experimental-utils': 4.33.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 4.33.0(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/scope-manager': 4.33.0 - debug: 4.4.3(supports-color@8.1.1) - eslint: 8.57.1 - functional-red-black-tree: 1.0.1 - ignore: 5.3.2 - regexpp: 3.2.0 - semver: 7.8.1 - tsutils: 3.21.0(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/eslint-plugin@5.62.0(@typescript-eslint/parser@8.60.0(eslint@9.39.4)(typescript@4.9.5))(eslint@9.39.4)(typescript@4.9.5)': dependencies: '@eslint-community/regexpp': 4.12.2 @@ -13024,31 +12756,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/experimental-utils@4.33.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@types/json-schema': 7.0.15 - '@typescript-eslint/scope-manager': 4.33.0 - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/typescript-estree': 4.33.0(typescript@5.9.3) - eslint: 8.57.1 - eslint-scope: 5.1.1 - eslint-utils: 3.0.0(eslint@8.57.1) - transitivePeerDependencies: - - supports-color - - typescript - - '@typescript-eslint/parser@4.33.0(eslint@8.57.1)(typescript@5.9.3)': - dependencies: - '@typescript-eslint/scope-manager': 4.33.0 - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/typescript-estree': 4.33.0(typescript@5.9.3) - debug: 4.4.3(supports-color@8.1.1) - eslint: 8.57.1 - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/parser@6.21.0(eslint@10.4.0)(typescript@6.0.3)': dependencies: '@typescript-eslint/scope-manager': 6.21.0 @@ -13200,11 +12907,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@4.33.0': - dependencies: - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/visitor-keys': 4.33.0 - '@typescript-eslint/scope-manager@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -13381,8 +13083,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@4.33.0': {} - '@typescript-eslint/types@5.62.0': {} '@typescript-eslint/types@6.21.0': {} @@ -13391,20 +13091,6 @@ snapshots: '@typescript-eslint/types@8.60.0': {} - '@typescript-eslint/typescript-estree@4.33.0(typescript@5.9.3)': - dependencies: - '@typescript-eslint/types': 4.33.0 - '@typescript-eslint/visitor-keys': 4.33.0 - debug: 4.4.3(supports-color@8.1.1) - globby: 11.1.0 - is-glob: 4.0.3 - semver: 7.8.1 - tsutils: 3.21.0(typescript@5.9.3) - optionalDependencies: - typescript: 5.9.3 - transitivePeerDependencies: - - supports-color - '@typescript-eslint/typescript-estree@5.62.0(typescript@4.9.5)': dependencies: '@typescript-eslint/types': 5.62.0 @@ -13764,11 +13450,6 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@4.33.0': - dependencies: - '@typescript-eslint/types': 4.33.0 - eslint-visitor-keys: 2.1.0 - '@typescript-eslint/visitor-keys@5.62.0': dependencies: '@typescript-eslint/types': 5.62.0 @@ -14297,7 +13978,7 @@ snapshots: bowser@2.14.1: {} - brace-expansion@1.1.14: + brace-expansion@1.1.15: dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 @@ -14646,20 +14327,10 @@ snapshots: color-name@2.1.0: {} - color-string@1.9.1: - dependencies: - color-name: 1.1.4 - simple-swizzle: 0.2.4 - color-string@2.1.4: dependencies: color-name: 2.1.0 - color@4.2.3: - dependencies: - color-convert: 2.0.1 - color-string: 1.9.1 - color@5.0.3: dependencies: color-convert: 3.1.3 @@ -14735,8 +14406,6 @@ snapshots: dependencies: walk-back: 2.0.1 - confusing-browser-globals@1.0.10: {} - confusing-browser-globals@1.0.11: {} constant-case@3.0.4: @@ -15283,18 +14952,6 @@ snapshots: eslint: 9.39.4 semver: 7.8.1 - eslint-config-oclif-typescript@1.0.3(eslint@8.57.1)(typescript@5.9.3): - dependencies: - '@typescript-eslint/eslint-plugin': 4.33.0(@typescript-eslint/parser@4.33.0(eslint@8.57.1)(typescript@5.9.3))(eslint@8.57.1)(typescript@5.9.3) - '@typescript-eslint/parser': 4.33.0(eslint@8.57.1)(typescript@5.9.3) - eslint-config-xo-space: 0.29.0(eslint@8.57.1) - eslint-plugin-mocha: 9.0.0(eslint@8.57.1) - eslint-plugin-node: 11.1.0(eslint@8.57.1) - transitivePeerDependencies: - - eslint - - supports-color - - typescript - eslint-config-oclif-typescript@3.1.14(eslint@10.4.0)(typescript@6.0.3): dependencies: '@typescript-eslint/eslint-plugin': 6.21.0(@typescript-eslint/parser@6.21.0(eslint@10.4.0)(typescript@6.0.3))(eslint@10.4.0)(typescript@6.0.3) @@ -15379,16 +15036,6 @@ snapshots: - typescript - vue-eslint-parser - eslint-config-oclif@4.0.0(eslint@8.57.1): - dependencies: - eslint-config-xo-space: 0.27.0(eslint@8.57.1) - eslint-plugin-mocha: 9.0.0(eslint@8.57.1) - eslint-plugin-node: 11.1.0(eslint@8.57.1) - eslint-plugin-unicorn: 36.0.0(eslint@8.57.1) - transitivePeerDependencies: - - eslint - - supports-color - eslint-config-oclif@5.2.2(eslint@10.4.0): dependencies: eslint-config-xo-space: 0.35.0(eslint@10.4.0) @@ -15576,16 +15223,6 @@ snapshots: dependencies: eslint: 10.4.0 - eslint-config-xo-space@0.27.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-config-xo: 0.35.0(eslint@8.57.1) - - eslint-config-xo-space@0.29.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-config-xo: 0.38.0(eslint@8.57.1) - eslint-config-xo-space@0.35.0(eslint@10.4.0): dependencies: eslint: 10.4.0 @@ -15601,16 +15238,6 @@ snapshots: eslint: 9.39.4 eslint-config-xo: 0.44.0(eslint@9.39.4) - eslint-config-xo@0.35.0(eslint@8.57.1): - dependencies: - confusing-browser-globals: 1.0.10 - eslint: 8.57.1 - - eslint-config-xo@0.38.0(eslint@8.57.1): - dependencies: - confusing-browser-globals: 1.0.10 - eslint: 8.57.1 - eslint-config-xo@0.44.0(eslint@10.4.0): dependencies: confusing-browser-globals: 1.0.11 @@ -15826,12 +15453,6 @@ snapshots: eslint: 9.39.4 eslint-compat-utils: 0.5.1(eslint@9.39.4) - eslint-plugin-es@3.0.1(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-utils: 2.1.0 - regexpp: 3.2.0 - eslint-plugin-es@4.1.0(eslint@10.4.0): dependencies: eslint: 10.4.0 @@ -16180,12 +15801,6 @@ snapshots: globals: 13.24.0 rambda: 7.5.0 - eslint-plugin-mocha@9.0.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-utils: 3.0.0(eslint@8.57.1) - ramda: 0.27.2 - eslint-plugin-n@15.7.0(eslint@10.4.0): dependencies: builtins: 5.1.0 @@ -16312,16 +15927,6 @@ snapshots: transitivePeerDependencies: - typescript - eslint-plugin-node@11.1.0(eslint@8.57.1): - dependencies: - eslint: 8.57.1 - eslint-plugin-es: 3.0.1(eslint@8.57.1) - eslint-utils: 2.1.0 - ignore: 5.3.2 - minimatch: 3.1.5 - resolve: 1.22.12 - semver: 6.3.1 - eslint-plugin-perfectionist@2.11.0(eslint@10.4.0)(typescript@6.0.3): dependencies: '@typescript-eslint/utils': 7.18.0(eslint@10.4.0)(typescript@6.0.3) @@ -16431,24 +16036,6 @@ snapshots: optionalDependencies: eslint-config-prettier: 10.1.8(eslint@10.4.0) - eslint-plugin-unicorn@36.0.0(eslint@8.57.1): - dependencies: - '@babel/helper-validator-identifier': 7.29.7 - ci-info: 3.9.0 - clean-regexp: 1.0.0 - eslint: 8.57.1 - eslint-template-visitor: 2.3.2(eslint@8.57.1) - eslint-utils: 3.0.0(eslint@8.57.1) - is-builtin-module: 3.2.1 - lodash: 4.18.1 - pluralize: 8.0.0 - read-pkg-up: 7.0.1 - regexp-tree: 0.1.27 - safe-regex: 2.1.1 - semver: 7.8.1 - transitivePeerDependencies: - - supports-color - eslint-plugin-unicorn@48.0.1(eslint@10.4.0): dependencies: '@babel/helper-validator-identifier': 7.29.7 @@ -16588,17 +16175,6 @@ snapshots: esrecurse: 4.3.0 estraverse: 5.3.0 - eslint-template-visitor@2.3.2(eslint@8.57.1): - dependencies: - '@babel/core': 7.29.7 - '@babel/eslint-parser': 7.29.7(@babel/core@7.29.7)(eslint@8.57.1) - eslint: 8.57.1 - eslint-visitor-keys: 2.1.0 - esquery: 1.7.0 - multimap: 1.1.0 - transitivePeerDependencies: - - supports-color - eslint-utils@2.1.0: dependencies: eslint-visitor-keys: 1.3.0 @@ -16887,20 +16463,6 @@ snapshots: transitivePeerDependencies: - supports-color - fancy-test@3.0.16: - dependencies: - '@types/chai': 4.3.20 - '@types/lodash': 4.17.24 - '@types/node': 20.19.41 - '@types/sinon': 17.0.4 - lodash: 4.18.1 - mock-stdin: 1.0.0 - nock: 13.5.6 - sinon: 16.1.3 - stdout-stderr: 0.1.13 - transitivePeerDependencies: - - supports-color - fast-csv@4.3.6: dependencies: '@fast-csv/format': 4.3.5 @@ -17135,8 +16697,6 @@ snapshots: hasown: 2.0.3 is-callable: 1.2.7 - functional-red-black-tree@1.0.1: {} - functions-have-names@1.2.3: {} fuzzy@0.1.3: {} @@ -17272,17 +16832,6 @@ snapshots: define-properties: 1.2.1 gopd: 1.2.0 - globby@10.0.2: - dependencies: - '@types/glob': 7.2.0 - array-union: 2.1.0 - dir-glob: 3.0.1 - fast-glob: 3.3.3 - glob: 7.2.3 - ignore: 5.3.2 - merge2: 1.4.1 - slash: 3.0.0 - globby@11.1.0: dependencies: array-union: 2.1.0 @@ -17624,8 +17173,6 @@ snapshots: is-arrayish@0.2.1: {} - is-arrayish@0.3.4: {} - is-async-function@2.1.1: dependencies: async-function: 1.0.0 @@ -19219,7 +18766,7 @@ snapshots: minimatch@3.1.5: dependencies: - brace-expansion: 1.1.14 + brace-expansion: 1.1.15 minimatch@5.1.9: dependencies: @@ -19306,8 +18853,6 @@ snapshots: ms@2.1.3: {} - multimap@1.1.0: {} - mute-stream@0.0.7: {} mute-stream@0.0.8: {} @@ -19971,8 +19516,6 @@ snapshots: rambda@7.5.0: {} - ramda@0.27.2: {} - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -20488,19 +20031,6 @@ snapshots: signal-exit@4.1.0: {} - simple-swizzle@0.2.4: - dependencies: - is-arrayish: 0.3.4 - - sinon@16.1.3: - dependencies: - '@sinonjs/commons': 3.0.1 - '@sinonjs/fake-timers': 10.3.0 - '@sinonjs/samsam': 8.0.3 - diff: 5.2.2 - nise: 5.1.9 - supports-color: 7.2.0 - sinon@17.0.2: dependencies: '@sinonjs/commons': 3.0.1