diff --git a/.codecov.yml b/.codecov.yml index f5f2a528..96f061d8 100644 --- a/.codecov.yml +++ b/.codecov.yml @@ -4,12 +4,12 @@ --- codecov: notify: - after_n_builds: 4 + after_n_builds: 3 wait_for_ci: true require_ci_to_pass: true comment: - after_n_builds: 4 + after_n_builds: 3 behavior: default layout: header,diff,flags,components,tree,footer require_base: false @@ -92,10 +92,6 @@ flags: carryforward: false paths: - src/ - node16: - carryforward: false - paths: - - src/ github_checks: annotations: true diff --git a/.commitlintrc.cts b/.commitlintrc.cts index c99a041e..582e3a9f 100644 --- a/.commitlintrc.cts +++ b/.commitlintrc.cts @@ -4,10 +4,7 @@ * @see https://commitlint.js.org */ -import { - RuleConfigSeverity as Severity, - type UserConfig -} from '@commitlint/types' +import { RuleConfigSeverity, type UserConfig } from '@commitlint/types' import { scopes } from '@flex-development/commitlint-config' /** @@ -19,7 +16,7 @@ const config: UserConfig = { extends: ['@flex-development'], rules: { 'scope-enum': [ - Severity.Error, + RuleConfigSeverity.Error, 'always', scopes(['analyze', 'docs', 'resolve', 'specifiers', 'syntax']) ] diff --git a/.cspell.json b/.cspell.json index 0b6c0143..0a1778a5 100644 --- a/.cspell.json +++ b/.cspell.json @@ -21,6 +21,7 @@ "**/CHANGELOG.md", "**/LICENSE.md", "**/RELEASE_NOTES.md", + "**/scratch.*", ".cspell.json", ".dictionary.txt", ".git/", diff --git a/.dictionary.txt b/.dictionary.txt index 85616a69..f258dcc6 100644 --- a/.dictionary.txt +++ b/.dictionary.txt @@ -1,6 +1,5 @@ algoliasearch alogirthm -ardatan attw bdougie cefc @@ -13,6 +12,7 @@ dequote dessant docast dohm +dprint esmodules exactish fbca @@ -23,12 +23,11 @@ hascjssyntax hasesmsyntax hmarr iife -infile isbarespecifier isexportssugar isrelativespecifier -keyid -larsgw +jchen +kaisugi lcov lintstagedrc mkbuild @@ -44,6 +43,7 @@ pkgs preid rext segement +shfmt sindresorhus toabsolutespecifier todataurl diff --git a/.dprint.jsonc b/.dprint.jsonc new file mode 100644 index 00000000..f525d8ab --- /dev/null +++ b/.dprint.jsonc @@ -0,0 +1,151 @@ +{ + "$schema": "https://dprint.dev/schemas/v0.json", + "excludes": [ + "!**/__fixtures__/**/dist/", + "!**/__fixtures__/**/node_modules/", + "!**/typings/**/dist/", + "**/*.patch", + "**/*.snap", + "**/*config.*.timestamp*", + "**/.temp/", + "**/.vercel/", + "**/__fixtures__/git/**/*.txt", + "**/__tests__/report.json", + "**/coverage/", + "**/dist/", + "**/node_modules", + "**/tsconfig*temp.json", + ".git/", + ".husky/_/", + ".yarn/", + "CHANGELOG.md", + "LICENSE.md", + "RELEASE_NOTES.md", + "yarn.lock" + ], + "exec": { + "commands": [ + { + "command": "node ./dprint/prettier.mjs {{file_path}}", + "exts": ["json5", "yaml", "yml"], + "stdin": true + }, + { + "command": "node ./dprint/shfmt.mjs {{file_path}}", + "exts": ["sh", "txt", "zsh"], + "fileNames": [ + ".editorconfig", + ".env", + ".env.local", + ".env.repo", + ".eslintcache", + ".eslintignore", + ".gitattributes", + ".gitconfig", + ".gitignore", + ".markdownlintignore", + ".npmrc", + ".nvmrc", + "Brewfile", + "commit-msg", + "pre-commit", + "pre-push" + ], + "stdin": true + } + ] + }, + "incremental": true, + "indentWidth": 2, + "json": { + "associations": ["**/*.{jsonc,json}"], + "array.preferSingleLine": false, + "commentLine.forceSpaceAfterSlashes": true, + "ignoreNodeCommentText": "dprint-ignore", + "object.preferSingleLine": false + }, + "lineWidth": 80, + "markdown": { + "associations": ["**/*.{md,mdx}"], + "emphasisKind": "asterisks", + "ignoreDirective": "dprint-ignore", + "ignoreEndDirective": "dprint-ignore-end", + "ignoreFileDirective": "dprint-ignore-file", + "ignoreStartDirective": "dprint-ignore-start", + "lineWidth": 120, + "strongKind": "asterisks", + "textWrap": "maintain" + }, + "newLineKind": "lf", + "plugins": [ + "https://plugins.dprint.dev/typescript-0.88.3.wasm", + "https://plugins.dprint.dev/json-0.17.4.wasm", + "https://plugins.dprint.dev/markdown-0.16.0.wasm", + "https://plugins.dprint.dev/exec-0.4.3.json@42343548b8022c99b1d750be6b894fe6b6c7ee25f72ae9f9082226dd2e515072" + ], + "typescript": { + "arrowFunction.useParentheses": "preferNone", + "binaryExpression.linePerExpression": false, + "binaryExpression.operatorPosition": "sameLine", + "binaryExpression.spaceSurroundingBitwiseAndArithmeticOperator": true, + "bracePosition": "sameLine", + "commentLine.forceSpaceAfterSlashes": true, + "constructSignature.spaceAfterNewKeyword": true, + "constructor.spaceBeforeParentheses": false, + "constructorType.spaceAfterNewKeyword": true, + "doWhileStatement.spaceAfterWhileKeyword": true, + "enumDeclaration.memberSpacing": "maintain", + "exportDeclaration.forceMultiLine": false, + "exportDeclaration.forceSingleLine": false, + "exportDeclaration.sortNamedExports": "maintain", + "exportDeclaration.spaceSurroundingNamedExports": true, + "forInStatement.spaceAfterForKeyword": true, + "forOfStatement.spaceAfterForKeyword": true, + "forStatement.spaceAfterForKeyword": true, + "forStatement.spaceAfterSemiColons": true, + "functionDeclaration.spaceBeforeParentheses": false, + "functionExpression.spaceAfterFunctionKeyword": false, + "functionExpression.spaceBeforeParentheses": false, + "getAccessor.spaceBeforeParentheses": false, + "ifStatement.spaceAfterIfKeyword": true, + "ignoreFileCommentText": "dprint-ignore-file", + "ignoreNodeCommentText": "dprint-ignore", + "importDeclaration.forceMultiLine": false, + "importDeclaration.forceSingleLine": false, + "importDeclaration.sortNamedImports": "maintain", + "importDeclaration.spaceSurroundingNamedImports": true, + "jsx.bracketPosition": "nextLine", + "jsx.forceNewLinesSurroundingContent": false, + "jsx.multiLineParens": "always", + "jsx.quoteStyle": "preferSingle", + "jsxExpressionContainer.spaceSurroundingExpression": true, + "jsxSelfClosingElement.spaceBeforeSlash": true, + "memberExpression.linePerExpression": false, + "method.spaceBeforeParentheses": false, + "module.sortExportDeclarations": "caseSensitive", + "module.sortImportDeclarations": "caseSensitive", + "newLineKind": "lf", + "nextControlFlowPosition": "sameLine", + "objectExpression.spaceSurroundingProperties": true, + "objectPattern.spaceSurroundingProperties": true, + "operatorPosition": "nextLine", + "preferHanging": true, + "preferSingleLine": false, + "quoteProps": "asNeeded", + "quoteStyle": "alwaysSingle", + "semiColons": "asi", + "setAccessor.spaceBeforeParentheses": false, + "singleBodyPosition": "sameLine", + "spaceAround": false, + "spaceSurroundingProperties": true, + "taggedTemplate.spaceBeforeLiteral": false, + "trailingCommas": "never", + "typeAnnotation.spaceBeforeColon": false, + "typeAssertion.spaceBeforeExpression": false, + "typeLiteral.separatorKind.singleLine": "semiColon", + "typeLiteral.spaceSurroundingProperties": true, + "useBraces": "maintain", + "whileStatement.spaceAfterWhileKeyword": true + }, + "useTabs": false +} diff --git a/.editorconfig b/.editorconfig index 697c45b9..d931b04e 100644 --- a/.editorconfig +++ b/.editorconfig @@ -32,7 +32,14 @@ max_line_length = 120 # shellscript [*.sh] +binary_next_line = true +function_next_line = false +keep_comments = true +keep_padding = false max_line_length = 100 +shell_variant = 0 +space_redirects = false +switch_case_indent = true # snapshots [*.snap] @@ -43,5 +50,5 @@ max_line_length = 130 max_line_length = 100 # yaml -[*.yml] +[{*.yaml,*.yml}] max_line_length = 100 diff --git a/.eslintignore b/.eslintignore index 28285d51..cec8e0c3 100644 --- a/.eslintignore +++ b/.eslintignore @@ -2,15 +2,18 @@ # https://eslint.org/docs/user-guide/configuring/ignoring-code#the-eslintignore-file # DIRECTORIES & FILES +**/*.patch +**/*.sh **/*.snap **/*config.*.timestamp* **/.DS_Store -**/__tests__/report.json -**/coverage/ **/.temp/ +**/__tests__/report.* +**/coverage/ **/dist/ **/node_modules/ **/tsconfig*temp.json +Brewfile yarn.lock # NEGATED PATTERNS @@ -22,11 +25,12 @@ yarn.lock !.codecov.yml !.commitlintrc.* !.cspell.json +!.dprint.* !.github/ !.graphqlrc.yml +!.grease*.* !.lintstagedrc.json !.markdownlint.jsonc -!.prettierrc.json !.vscode/ !.yarnrc.yml !docs/.vitepress/ diff --git a/.eslintrc.base.cjs b/.eslintrc.base.cjs index 7c4bb2e3..02f1441c 100644 --- a/.eslintrc.base.cjs +++ b/.eslintrc.base.cjs @@ -31,7 +31,7 @@ const config = { [require('./tsconfig.build.json').compilerOptions.target]: true, node: true }, - extends: ['plugin:prettier/recommended'], + extends: [], overrides: [ { extends: ['eslint:recommended', 'plugin:@typescript-eslint/recommended'], @@ -56,7 +56,6 @@ const config = { 'import', 'jsdoc', 'node', - 'prettier', 'promise', 'unicorn' ], @@ -90,13 +89,7 @@ const config = { '@typescript-eslint/camelcase': 0, '@typescript-eslint/class-literal-property-style': [2, 'getters'], '@typescript-eslint/consistent-indexed-object-style': [2, 'record'], - '@typescript-eslint/consistent-type-assertions': [ - 2, - { - assertionStyle: 'as', - objectLiteralTypeAssertions: 'allow' - } - ], + '@typescript-eslint/consistent-type-assertions': 0, '@typescript-eslint/consistent-type-definitions': 0, '@typescript-eslint/consistent-type-exports': [ 2, @@ -142,13 +135,16 @@ const config = { memberTypes: [ 'static-field', 'instance-field', - 'constructor', 'signature', + 'call-signature', + 'public-constructor', + 'protected-constructor', + 'private-constructor', + 'static-initialization', 'static-get', 'static-set', 'static-method', - 'instance-get', - 'instance-set', + ['instance-get', 'instance-set'], 'instance-method' ], order: 'alphabetically' @@ -160,7 +156,13 @@ const config = { '@typescript-eslint/no-base-to-string': [ 2, { - ignoredTypeNames: ['Error', 'RegExp', 'URL', 'URLSearchParams'] + ignoredTypeNames: [ + 'Error', + 'RegExp', + 'SemVer', + 'URL', + 'URLSearchParams' + ] } ], '@typescript-eslint/no-confusing-non-null-assertion': 0, @@ -326,7 +328,8 @@ const config = { 2, { ignoreConditionalTests: true, - ignoreMixedLogicalExpressions: true + ignoreMixedLogicalExpressions: true, + ignorePrimitives: { string: true } } ], '@typescript-eslint/prefer-optional-chain': 2, @@ -376,7 +379,7 @@ const config = { { allowAny: false, allowNullableBoolean: true, - allowNullableNumber: false, + allowNullableNumber: true, allowNullableObject: true, allowNullableString: true, allowNumber: true, @@ -594,6 +597,7 @@ const config = { 'no-return-await': 0, 'no-shadow': 0, 'no-sparse-arrays': 0, + 'no-throw-literal': 0, 'no-unused-expressions': 0, 'no-unused-vars': 0, 'no-use-before-define': 0, @@ -634,7 +638,7 @@ const config = { 'padding-line-between-statements': 0, 'prefer-arrow-callback': 0, 'promise/always-return': 2, - 'promise/avoid-new': 2, + 'promise/avoid-new': 0, 'promise/catch-or-return': [2, { allowFinally: true, allowThen: true }], 'promise/no-callback-in-promise': 2, 'promise/no-native': 0, @@ -644,7 +648,7 @@ const config = { 'promise/no-return-in-finally': 2, 'promise/no-return-wrap': [2, { allowReject: false }], 'promise/param-names': 2, - 'promise/prefer-await-to-callbacks': 2, + 'promise/prefer-await-to-callbacks': 1, 'promise/prefer-await-to-then': 2, 'promise/valid-params': 2, quotes: 0, @@ -683,21 +687,13 @@ const config = { } ], 'unicorn/import-index': 2, - 'unicorn/import-style': [ - 2, - { - styles: { - chalk: { default: true }, - shelljs: { default: true } - } - } - ], + 'unicorn/import-style': [2, { styles: {} }], 'unicorn/new-for-builtins': 2, 'unicorn/no-abusive-eslint-disable': 2, 'unicorn/no-array-callback-reference': 0, 'unicorn/no-array-for-each': 2, 'unicorn/no-array-method-this-argument': 2, - 'unicorn/no-array-push-push': 2, + 'unicorn/no-array-push-push': 0, 'unicorn/no-array-reduce': 0, 'unicorn/no-await-expression-member': 0, 'unicorn/no-console-spaces': 2, @@ -730,7 +726,7 @@ const config = { 'unicorn/no-useless-length-check': 2, 'unicorn/no-useless-promise-resolve-reject': 2, 'unicorn/no-useless-spread': 2, - 'unicorn/no-useless-undefined': 2, + 'unicorn/no-useless-undefined': 0, 'unicorn/no-zero-fractions': 2, 'unicorn/number-literal-case': 0, // https://github.com/sindresorhus/eslint-plugin-unicorn/issues/2003 @@ -798,10 +794,12 @@ const config = { files: '**/*.d.+(cts|mts|ts)', rules: { '@typescript-eslint/ban-types': 0, + '@typescript-eslint/prefer-function-type': 0, '@typescript-eslint/triple-slash-reference': 0, 'jsdoc/no-undefined-types': 0, 'jsdoc/require-file-overview': 0, 'no-var': 0, + 'unicorn/filename-case': 0, 'unicorn/no-keyword-prefix': 0 } }, @@ -831,9 +829,10 @@ const config = { chai: true, describe: true, expect: true, - faker: fs.existsSync('node_modules/@faker-js/faker/package.json'), + faker: fs.existsSync('node_modules/@faker-js/faker'), it: true, - pf: fs.existsSync('node_modules/pretty-format/package.json'), + pf: fs.existsSync('node_modules/pretty-format'), + server: fs.existsSync('node_modules/msw'), suite: true, test: true, vi: true, @@ -845,7 +844,9 @@ const config = { '@typescript-eslint/consistent-indexed-object-style': 0, '@typescript-eslint/no-base-to-string': 0, '@typescript-eslint/no-empty-function': 0, + '@typescript-eslint/no-invalid-void-type': 0, '@typescript-eslint/no-unused-expressions': 0, + '@typescript-eslint/prefer-as-const': 0, '@typescript-eslint/prefer-ts-expect-error': 0, '@typescript-eslint/require-await': 0, '@typescript-eslint/restrict-template-expressions': 0, @@ -861,6 +862,7 @@ const config = { 'jest-formatting/padding-around-describe-blocks': 1, 'jest-formatting/padding-around-expect-groups': 1, 'jest-formatting/padding-around-test-blocks': 1, + 'no-empty-pattern': 0, 'promise/prefer-await-to-callbacks': 0, 'promise/valid-params': 0, 'unicorn/consistent-destructuring': 0, @@ -884,10 +886,17 @@ const config = { '@typescript-eslint/no-redundant-type-constituents': 0 } }, + { + files: '**/*.abstract.ts', + rules: { + '@typescript-eslint/no-useless-constructor': 0 + } + }, { files: ['**/decorators/*.constraint.ts', '**/*.decorator.ts'], rules: { - '@typescript-eslint/ban-types': 0 + '@typescript-eslint/ban-types': 0, + '@typescript-eslint/no-invalid-void-type': 0 } }, { @@ -898,11 +907,9 @@ const config = { } }, { - extends: ['plugin:@graphql-eslint/operations-all'], - files: '**/*.gql', + files: '**/*.+(cjs|js|mjs)', rules: { - '@graphql-eslint/no-anonymous-operations': 0, - '@graphql-eslint/require-id-when-available': 0 + '@typescript-eslint/explicit-member-accessibility': 0 } }, { @@ -938,6 +945,26 @@ const config = { pathPattern: '^$' } ], + 'jsonc/sort-keys': [ + 2, + { + order: { caseSensitive: true, type: 'asc' }, + pathPattern: '^$' + } + ], + 'jsonc/valid-json-number': 2, + 'jsonc/vue-custom-block/no-parsing-error': 2 + } + }, + { + files: ['**/*.+(json5|jsonc)', 'tsconfig*.json'], + rules: { + 'jsonc/no-comments': 0 + } + }, + { + files: ['**/package.json'], + rules: { 'jsonc/sort-keys': [ 2, { @@ -970,20 +997,8 @@ const config = { 'readme' ], pathPattern: '^$' - }, - { - order: { caseSensitive: true, type: 'asc' }, - pathPattern: '^$' } - ], - 'jsonc/valid-json-number': 2, - 'jsonc/vue-custom-block/no-parsing-error': 2 - } - }, - { - files: ['**/*.+(json5|jsonc)', 'tsconfig*.json'], - rules: { - 'jsonc/no-comments': 0 + ] } }, { @@ -1010,6 +1025,7 @@ const config = { '@typescript-eslint/no-misused-promises': 0, '@typescript-eslint/no-mixed-enums': 0, '@typescript-eslint/no-redundant-type-constituents': 0, + '@typescript-eslint/no-throw-literal': 0, '@typescript-eslint/no-unnecessary-boolean-literal-compare': 0, '@typescript-eslint/no-unnecessary-condition': 0, '@typescript-eslint/no-unnecessary-qualifier': 0, @@ -1050,7 +1066,7 @@ const config = { parser: 'yaml-eslint-parser', plugins: ['yml'], rules: { - 'prettier/prettier': 0, + 'spaced-comment': 0, 'yml/block-mapping': 2, 'yml/block-mapping-question-indicator-newline': [2, 'never'], 'yml/block-sequence': 2, @@ -1143,27 +1159,71 @@ const config = { } }, { - files: [ - '.github/dependabot.yml', - '.github/workflows/*.yml', - 'action.yml' - ], + files: '.github/dependabot.yml', rules: { - 'yml/sort-keys': 0 + 'yml/sort-keys': [ + 2, + { + order: ['version', 'registries', 'updates'], + pathPattern: '^$' + } + ] } }, { - files: ['.github/workflows/*.yml', '.yarnrc.yml'], + files: '.github/workflows/*.yml', + rules: { + 'yml/sort-keys': [ + 2, + { + order: ['name', 'on', 'permissions', 'env', 'concurrency', 'jobs'], + pathPattern: '^$' + } + ] + } + }, + { + files: ['.github/workflows/*.yml', '.yarnrc.yml', 'docker*.yml'], rules: { 'yml/key-name-casing': 0 } + }, + { + files: ['.vscode/launch.json'], + rules: { + 'jsonc/sort-keys': 0 + } + }, + { + files: 'action.yml', + rules: { + 'yml/sort-keys': [ + 2, + { + order: [ + 'name', + 'author', + 'description', + 'inputs', + 'outputs', + 'runs', + 'branding' + ], + pathPattern: '^$' + } + ] + } + }, + { + files: ['docker*.yml', '**/*.md/*.+(yaml|yml)'], + rules: { + 'yml/sort-keys': 0 + } } ], - plugins: ['prettier'], + plugins: [], reportUnusedDisableDirectives: true, - rules: { - 'prettier/prettier': [2, {}, { usePrettierrc: true }] - }, + rules: {}, settings: { 'import/parsers': { '@typescript-eslint/parser': ['.cts', '.mts', '.ts', '.tsx'] @@ -1205,6 +1265,9 @@ const config = { name: 'namepath-defining', required: ['type'] }, + fires: { + required: ['name'] + }, implements: { name: 'namepath-defining', required: ['type'] diff --git a/.github/.gitconfig b/.github/.gitconfig index bd74537b..2e50bbc9 100644 --- a/.github/.gitconfig +++ b/.github/.gitconfig @@ -25,7 +25,7 @@ chb = "!f() { git checkout -b \"$@\" && git pou \"$@\"; }; f" chp = "!f() { git checkout $@ && git pull; }; f" # commit with message -cm = "!f() { git commit -s -m \"$@\"; }; f" +cm = "!f() { git commit -S -s -m \"$@\"; }; f" # tell git to start tracking branch and push to origin pou = "!f() { git push origin --no-verify -u $@; }; f" @@ -62,7 +62,7 @@ fpnv = "!f() { git pnv --force ; }; f" pnv = "!f() { git push --no-verify $@; }; f" [branch] -autosetuprebase = always +autoSetupRebase = always [checkout] defaultRemote = origin @@ -85,6 +85,12 @@ tool = vscode [difftool "vscode"] cmd = code-insiders --wait --diff $LOCAL $REMOTE +[filter "lfs"] +clean = git-lfs clean -- %f +smudge = git-lfs smudge -- %f +process = git-lfs filter-process +required = true + [gitflow "prefix"] feature = feat/ hotfix = hotfix/ @@ -97,6 +103,10 @@ program = gpg2 [init] defaultBranch = main +[log] +date = iso8601-strict +decorate = short + [merge] tool = vscode @@ -111,6 +121,8 @@ autoStash = true [tag] forceSignAnnotated = true +gpgsign = true +sort = -creatordate [url "git@github.com:"] insteadOf = gh: diff --git a/.github/ISSUE_TEMPLATE/feature.yml b/.github/ISSUE_TEMPLATE/feature.yml index c21cc46c..0be64223 100644 --- a/.github/ISSUE_TEMPLATE/feature.yml +++ b/.github/ISSUE_TEMPLATE/feature.yml @@ -2,8 +2,8 @@ name: Feature description: Suggest new feature or improvement title: 👀
1024,w&&(t.dump&&qI===t.dump.charCodeAt(0)?v+="?":v+="? "),v+=t.dump,w&&(v+=IT(t,e)),Kg(t,e+1,C,!0,w)&&(t.dump&&qI===t.dump.charCodeAt(0)?v+=":":v+=": ",v+=t.dump,a+=v));t.tag=n,t.dump=a||"{}"}function RK(t,e,r){var o,a,n,u,A,p;for(a=r?t.explicitTypes:t.implicitTypes,n=0,u=a.length;n tag resolver accepts not "'+p+'" style');t.dump=o}return!0}return!1}function Kg(t,e,r,o,a,n){t.tag=null,t.dump=r,RK(t,r,!1)||RK(t,r,!0);var u=TK.call(t.dump);o&&(o=t.flowLevel<0||t.flowLevel>e);var A=u==="[object Object]"||u==="[object Array]",p,h;if(A&&(p=t.duplicates.indexOf(r),h=p!==-1),(t.tag!==null&&t.tag!=="?"||h||t.indent!==2&&e>0)&&(a=!1),h&&t.usedDuplicates[p])t.dump="*ref_"+p;else{if(A&&h&&!t.usedDuplicates[p]&&(t.usedDuplicates[p]=!0),u==="[object Object]")o&&Object.keys(t.dump).length!==0?(s6e(t,e,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(i6e(t,e,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump));else if(u==="[object Array]"){var C=t.noArrayIndent&&e>0?e-1:e;o&&t.dump.length!==0?(n6e(t,C,t.dump,a),h&&(t.dump="&ref_"+p+t.dump)):(r6e(t,C,t.dump),h&&(t.dump="&ref_"+p+" "+t.dump))}else if(u==="[object String]")t.tag!=="?"&&$qe(t,t.dump,e,n);else{if(t.skipInvalid)return!1;throw new GI("unacceptable kind of an object to dump "+u)}t.tag!==null&&t.tag!=="?"&&(t.dump="!<"+t.tag+"> "+t.dump)}return!0}function o6e(t,e){var r=[],o=[],a,n;for(wT(t,r,o),a=0,n=o.length;a Yr({test:(r,o)=>{if(typeof r!="object"||r===null)return Pr(o,`Expected an object (got ${Ki(r)})`);let a=Object.keys(r),n=!0;for(let u=0,A=a.length;u{let r=Object.keys(t);return Yr({test:(o,a)=>{if(typeof o!="object"||o===null)return Pr(a,`Expected an object (got ${Ki(o)})`);let n=new Set([...r,...Object.keys(o)]),u={},A=!0;for(let p of n){if(p==="constructor"||p==="__proto__")A=Pr(Object.assign(Object.assign({},a),{p:Gp(a,p)}),"Unsafe property name");else{let h=Object.prototype.hasOwnProperty.call(t,p)?t[p]:void 0,C=Object.prototype.hasOwnProperty.call(o,p)?o[p]:void 0;typeof h<"u"?A=h(C,Object.assign(Object.assign({},a),{p:Gp(a,p),coercion:Xg(o,p)}))&&A:e===null?A=Pr(Object.assign(Object.assign({},a),{p:Gp(a,p)}),`Extraneous property (got ${Ki(C)})`):Object.defineProperty(u,p,{enumerable:!0,get:()=>C,set:IJ(o,p)})}if(!A&&(a==null?void 0:a.errors)==null)break}return e!==null&&(A||(a==null?void 0:a.errors)!=null)&&(A=e(u,a)&&A),A}})},S6e=t=>Yr({test:(e,r)=>e instanceof t?!0:Pr(r,`Expected an instance of ${t.name} (got ${Ki(e)})`)}),OT=(t,{exclusive:e=!1}={})=>Yr({test:(r,o)=>{var a,n,u;let A=[],p=typeof(o==null?void 0:o.errors)<"u"?[]:void 0;for(let h=0,C=t.length;h {var XJe=Kp(),ZJe=jl(),$Je=XJe(ZJe,"DataView");wte.exports=$Je});var Dte=U((aRt,vte)=>{var eVe=Kp(),tVe=jl(),rVe=eVe(tVe,"Promise");vte.exports=rVe});var xte=U((lRt,Ste)=>{var nVe=Kp(),iVe=jl(),sVe=nVe(iVe,"Set");Ste.exports=sVe});var bte=U((cRt,Pte)=>{var oVe=Kp(),aVe=jl(),lVe=oVe(aVe,"WeakMap");Pte.exports=lVe});var kw=U((uRt,Nte)=>{var KL=Bte(),JL=BS(),VL=Dte(),zL=xte(),XL=bte(),Lte=Ad(),Uy=NL(),Qte="[object Map]",cVe="[object Object]",kte="[object Promise]",Fte="[object Set]",Rte="[object WeakMap]",Tte="[object DataView]",uVe=Uy(KL),AVe=Uy(JL),fVe=Uy(VL),pVe=Uy(zL),hVe=Uy(XL),fd=Lte;(KL&&fd(new KL(new ArrayBuffer(1)))!=Tte||JL&&fd(new JL)!=Qte||VL&&fd(VL.resolve())!=kte||zL&&fd(new zL)!=Fte||XL&&fd(new XL)!=Rte)&&(fd=function(t){var e=Lte(t),r=e==cVe?t.constructor:void 0,o=r?Uy(r):"";if(o)switch(o){case uVe:return Tte;case AVe:return Qte;case fVe:return kte;case pVe:return Fte;case hVe:return Rte}return e});Nte.exports=fd});var Gte=U((ARt,jte)=>{var ZL=DS(),gVe=OL(),dVe=Fee(),mVe=Ite(),Ote=kw(),Mte=Gl(),Ute=Sw(),yVe=RS(),EVe=1,_te="[object Arguments]",Hte="[object Array]",NS="[object Object]",CVe=Object.prototype,qte=CVe.hasOwnProperty;function IVe(t,e,r,o,a,n){var u=Mte(t),A=Mte(e),p=u?Hte:Ote(t),h=A?Hte:Ote(e);p=p==_te?NS:p,h=h==_te?NS:h;var C=p==NS,w=h==NS,v=p==h;if(v&&Ute(t)){if(!Ute(e))return!1;u=!0,C=!1}if(v&&!C)return n||(n=new ZL),u||yVe(t)?gVe(t,e,r,o,a,n):dVe(t,e,p,r,o,a,n);if(!(r&EVe)){var b=C&&qte.call(t,"__wrapped__"),E=w&&qte.call(e,"__wrapped__");if(b||E){var R=b?t.value():t,N=E?e.value():e;return n||(n=new ZL),a(R,N,r,o,n)}}return v?(n||(n=new ZL),mVe(t,e,r,o,a,n)):!1}jte.exports=IVe});var Jte=U((fRt,Kte)=>{var wVe=Gte(),Wte=Xu();function Yte(t,e,r,o,a){return t===e?!0:t==null||e==null||!Wte(t)&&!Wte(e)?t!==t&&e!==e:wVe(t,e,r,o,Yte,a)}Kte.exports=Yte});var zte=U((pRt,Vte)=>{var BVe=Jte();function vVe(t,e){return BVe(t,e)}Vte.exports=vVe});var $L=U((hRt,Xte)=>{var DVe=Kp(),SVe=function(){try{var t=DVe(Object,"defineProperty");return t({},"",{}),t}catch{}}();Xte.exports=SVe});var OS=U((gRt,$te)=>{var Zte=$L();function xVe(t,e,r){e=="__proto__"&&Zte?Zte(t,e,{configurable:!0,enumerable:!0,value:r,writable:!0}):t[e]=r}$te.exports=xVe});var eN=U((dRt,ere)=>{var PVe=OS(),bVe=Fy();function QVe(t,e,r){(r!==void 0&&!bVe(t[e],r)||r===void 0&&!(e in t))&&PVe(t,e,r)}ere.exports=QVe});var rre=U((mRt,tre)=>{function kVe(t){return function(e,r,o){for(var a=-1,n=Object(e),u=o(e),A=u.length;A--;){var p=u[t?A:++a];if(r(n[p],p,n)===!1)break}return e}}tre.exports=kVe});var ire=U((yRt,nre)=>{var FVe=rre(),RVe=FVe();nre.exports=RVe});var tN=U((Fw,_y)=>{var TVe=jl(),lre=typeof Fw=="object"&&Fw&&!Fw.nodeType&&Fw,sre=lre&&typeof _y=="object"&&_y&&!_y.nodeType&&_y,LVe=sre&&sre.exports===lre,ore=LVe?TVe.Buffer:void 0,are=ore?ore.allocUnsafe:void 0;function NVe(t,e){if(e)return t.slice();var r=t.length,o=are?are(r):new t.constructor(r);return t.copy(o),o}_y.exports=NVe});var MS=U((ERt,ure)=>{var cre=ML();function OVe(t){var e=new t.constructor(t.byteLength);return new cre(e).set(new cre(t)),e}ure.exports=OVe});var rN=U((CRt,Are)=>{var MVe=MS();function UVe(t,e){var r=e?MVe(t.buffer):t.buffer;return new t.constructor(r,t.byteOffset,t.length)}Are.exports=UVe});var US=U((IRt,fre)=>{function _Ve(t,e){var r=-1,o=t.length;for(e||(e=Array(o));++r