From 1bdf9a498705586ecef8de20e71a3ea3d6ba71c2 Mon Sep 17 00:00:00 2001 From: Dolan Miu Date: Wed, 31 Aug 2022 07:52:27 +0100 Subject: [PATCH 1/5] Initial ESlint conversion --- .eslintrc.js | 265 ++ package-lock.json | 4178 ++++++++++++++++- package.json | 11 +- src/export/packer/next-compiler.ts | 2 +- src/file/app-properties/app-properties.ts | 2 +- src/file/border/border.ts | 2 +- src/file/content-types/content-types.ts | 2 +- src/file/content-types/default/default.ts | 2 +- src/file/content-types/override/override.ts | 2 +- src/file/core-properties/properties.ts | 4 +- .../custom-properties/custom-properties.ts | 2 +- src/file/custom-properties/custom-property.ts | 4 +- src/file/document-wrapper.ts | 2 +- src/file/document/body/body.ts | 2 +- .../section-properties/properties/column.ts | 2 +- .../section-properties/properties/columns.ts | 2 +- .../section-properties/properties/doc-grid.ts | 2 +- .../properties/header-footer-reference.ts | 2 +- .../properties/line-number.ts | 2 +- .../properties/page-borders.ts | 2 +- .../properties/page-margin.ts | 2 +- .../properties/page-number.ts | 2 +- .../properties/page-size.ts | 2 +- .../properties/page-text-direction.ts | 2 +- .../properties/section-type.ts | 2 +- .../section-properties/section-properties.ts | 2 +- .../document-background.ts | 2 +- src/file/document/document.ts | 2 +- src/file/drawing/anchor/anchor.ts | 2 +- .../drawing/doc-properties/doc-properties.ts | 2 +- src/file/drawing/drawing.ts | 2 +- .../drawing/effect-extent/effect-extent.ts | 2 +- src/file/drawing/extent/extent.ts | 2 +- src/file/drawing/floating/align.ts | 2 +- .../drawing/floating/horizontal-position.ts | 2 +- src/file/drawing/floating/position-offset.ts | 2 +- src/file/drawing/floating/simple-pos.ts | 2 +- .../drawing/floating/vertical-position.ts | 2 +- .../graphic-frame-locks.ts | 2 +- .../graphic-frame/graphic-frame-properties.ts | 2 +- .../graphic/graphic-data/graphic-data.ts | 2 +- .../graphic-data/pic/blip/blip-fill.ts | 2 +- .../graphic/graphic-data/pic/blip/blip.ts | 2 +- .../graphic-data/pic/blip/source-rectangle.ts | 2 +- .../graphic/graphic-data/pic/blip/stretch.ts | 4 +- .../child-non-visual-pic-properties.ts | 2 +- .../pic-locks/pic-locks.ts | 2 +- .../non-visual-pic-properties.ts | 2 +- .../non-visual-properties.ts | 2 +- .../inline/graphic/graphic-data/pic/pic.ts | 2 +- .../shape-properties/form/extents/extents.ts | 2 +- .../pic/shape-properties/form/form.ts | 2 +- .../pic/shape-properties/form/offset/off.ts | 2 +- .../pic/shape-properties/outline/no-fill.ts | 2 +- .../pic/shape-properties/outline/outline.ts | 2 +- .../adjustment-values/adjustment-values.ts | 2 +- .../preset-geometry/preset-geometry.ts | 2 +- .../pic/shape-properties/shape-properties.ts | 2 +- src/file/drawing/inline/graphic/graphic.ts | 2 +- src/file/drawing/inline/inline.ts | 2 +- src/file/drawing/text-wrap/wrap-none.ts | 2 +- src/file/drawing/text-wrap/wrap-square.ts | 2 +- src/file/drawing/text-wrap/wrap-tight.ts | 2 +- .../drawing/text-wrap/wrap-top-and-bottom.ts | 2 +- src/file/file.ts | 2 +- src/file/footer-wrapper.ts | 2 +- src/file/footer/footer.ts | 2 +- src/file/footnotes-wrapper.ts | 2 +- src/file/footnotes/footnote/footnote.ts | 2 +- .../run/continuation-seperator-run.ts | 2 +- .../footnote/run/continuation-seperator.ts | 2 +- .../footnote/run/footnote-ref-run.ts | 2 +- .../footnotes/footnote/run/footnote-ref.ts | 2 +- .../footnotes/footnote/run/reference-run.ts | 4 +- .../footnotes/footnote/run/seperator-run.ts | 2 +- src/file/footnotes/footnote/run/seperator.ts | 2 +- src/file/footnotes/footnotes.ts | 2 +- src/file/header-wrapper.ts | 2 +- src/file/header.ts | 4 +- src/file/header/header.ts | 2 +- src/file/media/media.ts | 2 +- src/file/numbering/abstract-numbering.ts | 2 +- src/file/numbering/level.ts | 12 +- src/file/numbering/multi-level-type.ts | 2 +- src/file/numbering/num.ts | 8 +- src/file/numbering/numbering.ts | 2 +- src/file/paragraph/formatting/alignment.ts | 2 +- src/file/paragraph/formatting/border.ts | 4 +- src/file/paragraph/formatting/break.ts | 8 +- src/file/paragraph/formatting/indent.ts | 2 +- src/file/paragraph/formatting/spacing.ts | 2 +- src/file/paragraph/formatting/style.ts | 2 +- src/file/paragraph/formatting/tab-stop.ts | 4 +- .../paragraph/formatting/unordered-list.ts | 6 +- src/file/paragraph/frame/frame-properties.ts | 2 +- src/file/paragraph/links/bookmark.ts | 6 +- src/file/paragraph/links/hyperlink.ts | 6 +- src/file/paragraph/links/outline-level.ts | 2 +- .../links/pageref-field-instruction.ts | 2 +- src/file/paragraph/links/pageref.ts | 2 +- .../math/brackets/math-angled-brackets.ts | 2 +- .../math/brackets/math-beginning-character.ts | 2 +- .../math/brackets/math-bracket-properties.ts | 2 +- .../math/brackets/math-curly-brackets.ts | 2 +- .../math/brackets/math-ending-char.ts | 2 +- .../math/brackets/math-round-brackets.ts | 2 +- .../math/brackets/math-square-brackets.ts | 2 +- .../math/fraction/math-denominator.ts | 2 +- .../paragraph/math/fraction/math-fraction.ts | 2 +- .../paragraph/math/fraction/math-numerator.ts | 2 +- .../math/function/math-function-name.ts | 2 +- .../math/function/math-function-properties.ts | 2 +- .../paragraph/math/function/math-function.ts | 2 +- src/file/paragraph/math/math-run.ts | 2 +- src/file/paragraph/math/math-text.ts | 2 +- src/file/paragraph/math/math.ts | 2 +- .../math/n-ary/math-accent-character.ts | 2 +- src/file/paragraph/math/n-ary/math-base.ts | 2 +- .../math/n-ary/math-limit-location.ts | 2 +- .../math/n-ary/math-n-ary-properties.ts | 2 +- .../math/n-ary/math-sub-script-hide.ts | 2 +- .../paragraph/math/n-ary/math-sub-script.ts | 2 +- src/file/paragraph/math/n-ary/math-sum.ts | 2 +- .../math/n-ary/math-super-script-hide.ts | 2 +- .../paragraph/math/n-ary/math-super-script.ts | 2 +- .../math/radical/math-degree-hide.ts | 2 +- .../paragraph/math/radical/math-degree.ts | 2 +- .../math/radical/math-radical-properties.ts | 2 +- .../paragraph/math/radical/math-radical.ts | 2 +- ...re-sub-super-script-function-properties.ts | 2 +- .../math-pre-sub-super-script-function.ts | 2 +- .../math-sub-script-function-properties.ts | 2 +- .../sub-script/math-sub-script-function.ts | 2 +- ...th-sub-super-script-function-properties.ts | 2 +- .../math-sub-super-script-function.ts | 2 +- .../math-super-script-function-properties.ts | 2 +- .../math-super-script-function.ts | 2 +- src/file/paragraph/paragraph.ts | 2 +- src/file/paragraph/properties.ts | 2 +- src/file/paragraph/run/break.ts | 2 +- src/file/paragraph/run/comment-run.ts | 10 +- src/file/paragraph/run/emphasis-mark.ts | 4 +- src/file/paragraph/run/field.ts | 6 +- src/file/paragraph/run/formatting.ts | 8 +- src/file/paragraph/run/image-run.ts | 2 +- src/file/paragraph/run/page-number.ts | 6 +- src/file/paragraph/run/properties.ts | 4 +- .../paragraph/run/run-components/symbol.ts | 2 +- src/file/paragraph/run/run-components/text.ts | 2 +- src/file/paragraph/run/run-fonts.ts | 10 +- src/file/paragraph/run/run.ts | 2 +- src/file/paragraph/run/script.ts | 6 +- .../run/sequential-identifier-instruction.ts | 2 +- .../paragraph/run/sequential-identifier.ts | 2 +- src/file/paragraph/run/simple-field.ts | 4 +- src/file/paragraph/run/symbol-run.ts | 2 +- src/file/paragraph/run/tab.ts | 2 +- src/file/paragraph/run/text-run.ts | 2 +- src/file/paragraph/run/underline.ts | 2 +- .../relationship/relationship.ts | 2 +- src/file/relationships/relationships.ts | 2 +- .../compatibility-setting.ts | 2 +- src/file/settings/compatibility.ts | 2 +- src/file/settings/settings.ts | 2 +- src/file/shading/shading.ts | 2 +- src/file/styles/defaults/document-defaults.ts | 2 +- .../styles/defaults/paragraph-properties.ts | 2 +- src/file/styles/defaults/run-properties.ts | 2 +- src/file/styles/latent-styles/exceptions.ts | 2 +- .../styles/latent-styles/latent-styles.ts | 2 +- src/file/styles/style/character-style.ts | 2 +- src/file/styles/style/components.ts | 4 +- src/file/styles/style/default-styles.ts | 28 +- src/file/styles/style/paragraph-style.ts | 2 +- src/file/styles/style/style.ts | 2 +- src/file/styles/styles.ts | 2 +- src/file/table-of-contents/alias.ts | 2 +- .../table-of-contents/field-instruction.ts | 2 +- src/file/table-of-contents/sdt-content.ts | 2 +- src/file/table-of-contents/sdt-properties.ts | 2 +- .../table-of-contents-properties.ts | 2 +- .../table-of-contents/table-of-contents.ts | 2 +- src/file/table/grid.ts | 4 +- .../table/table-cell/table-cell-components.ts | 8 +- .../table/table-cell/table-cell-properties.ts | 2 +- src/file/table/table-cell/table-cell.ts | 2 +- .../table/table-properties/table-borders.ts | 2 +- .../table-properties/table-cell-margin.ts | 2 +- .../table-float-properties.ts | 2 +- .../table/table-properties/table-layout.ts | 2 +- .../table/table-properties/table-overlap.ts | 2 +- .../table-properties/table-properties.ts | 2 +- src/file/table/table-row/table-row-height.ts | 2 +- .../table/table-row/table-row-properties.ts | 2 +- src/file/table/table-row/table-row.ts | 2 +- src/file/table/table-width.ts | 2 +- src/file/table/table.ts | 2 +- .../deleted-page-number.ts | 6 +- .../deleted-text-run.ts | 4 +- .../track-revision-components/deleted-text.ts | 2 +- .../inserted-text-run.ts | 2 +- src/file/vertical-align/vertical-align.ts | 2 +- src/file/xml-components/base.ts | 2 +- src/file/xml-components/default-attributes.ts | 2 +- .../xml-components/imported-xml-component.ts | 4 +- .../initializable-xml-component.ts | 2 +- src/file/xml-components/simple-elements.ts | 10 +- src/file/xml-components/xml-component.ts | 2 +- src/import-dotx/import-dotx.ts | 2 + src/util/convenience-functions.ts | 12 +- 210 files changed, 4685 insertions(+), 333 deletions(-) create mode 100644 .eslintrc.js diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 0000000000..5fee3a0e1f --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,265 @@ +/* +👋 Hi! This file was autogenerated by tslint-to-eslint-config. +https://github.com/typescript-eslint/tslint-to-eslint-config + +It represents the closest reasonable ESLint configuration to this +project's original TSLint configuration. + +We recommend eventually switching this configuration to extend from +the recommended rulesets in typescript-eslint. +https://github.com/typescript-eslint/tslint-to-eslint-config/blob/master/docs/FAQs.md + +Happy linting! 💖 +*/ +module.exports = { + env: { + browser: true, + es6: true, + node: true, + }, + parser: "@typescript-eslint/parser", + parserOptions: { + project: "tsconfig.json", + sourceType: "module", + }, + plugins: [ + "eslint-plugin-import", + "eslint-plugin-no-null", + "eslint-plugin-unicorn", + "eslint-plugin-jsdoc", + "eslint-plugin-prefer-arrow", + "@typescript-eslint", + "@typescript-eslint/tslint", + ], + root: true, + rules: { + "@typescript-eslint/adjacent-overload-signatures": "error", + "@typescript-eslint/array-type": [ + "error", + { + default: "array", + }, + ], + "@typescript-eslint/ban-types": [ + "error", + { + types: { + Object: { + message: "Avoid using the `Object` type. Did you mean `object`?", + }, + Function: { + message: "Avoid using the `Function` type. Prefer a specific function type, like `() => void`.", + }, + Boolean: { + message: "Avoid using the `Boolean` type. Did you mean `boolean`?", + }, + Number: { + message: "Avoid using the `Number` type. Did you mean `number`?", + }, + String: { + message: "Avoid using the `String` type. Did you mean `string`?", + }, + Symbol: { + message: "Avoid using the `Symbol` type. Did you mean `symbol`?", + }, + }, + }, + ], + "@typescript-eslint/consistent-type-assertions": "error", + "@typescript-eslint/dot-notation": "error", + "@typescript-eslint/explicit-function-return-type": [ + "error", + { + allowExpressions: false, + allowTypedFunctionExpressions: false, + allowHigherOrderFunctions: false, + allowDirectConstAssertionInArrowFunctions: true, + allowConciseArrowFunctionExpressionsStartingWithVoid: true, + }, + ], + "@typescript-eslint/explicit-member-accessibility": [ + "error", + { + accessibility: "explicit", + overrides: { + accessors: "explicit", + }, + }, + ], + "@typescript-eslint/explicit-module-boundary-types": [ + "error", + { + allowArgumentsExplicitlyTypedAsAny: true, + allowDirectConstAssertionInArrowFunctions: true, + allowHigherOrderFunctions: false, + allowTypedFunctionExpressions: false, + }, + ], + "@typescript-eslint/indent": [ + "error", + 4, + { + ObjectExpression: "first", + FunctionDeclaration: { + parameters: "first", + }, + FunctionExpression: { + parameters: "first", + }, + }, + ], + "@typescript-eslint/naming-convention": [ + "error", + { + selector: ["objectLiteralProperty"], + leadingUnderscore: "allow", + format: ["camelCase"], + custom: { + regex: "^w:.+", + match: false, + }, + }, + ], + "@typescript-eslint/no-empty-function": "error", + "@typescript-eslint/no-empty-interface": "error", + "@typescript-eslint/no-explicit-any": "error", + "@typescript-eslint/no-misused-new": "error", + "@typescript-eslint/no-namespace": "error", + "@typescript-eslint/no-parameter-properties": "off", + "@typescript-eslint/no-require-imports": "error", + "@typescript-eslint/no-shadow": [ + "error", + { + hoist: "all", + }, + ], + "@typescript-eslint/no-this-alias": "error", + "@typescript-eslint/no-unused-expressions": "error", + "@typescript-eslint/no-use-before-define": "off", + "@typescript-eslint/no-var-requires": "error", + "@typescript-eslint/prefer-for-of": "error", + "@typescript-eslint/prefer-function-type": "error", + "@typescript-eslint/prefer-namespace-keyword": "error", + "@typescript-eslint/prefer-readonly": "error", + "@typescript-eslint/triple-slash-reference": [ + "error", + { + path: "always", + types: "prefer-import", + lib: "always", + }, + ], + "@typescript-eslint/typedef": [ + "error", + { + parameter: true, + propertyDeclaration: true, + }, + ], + "@typescript-eslint/unified-signatures": "error", + "arrow-body-style": "error", + complexity: "off", + "constructor-super": "error", + curly: "error", + "dot-notation": "off", + eqeqeq: ["error", "smart"], + "guard-for-in": "error", + "id-denylist": ["error", "any", "Number", "number", "String", "string", "Boolean", "boolean", "Undefined", "undefined"], + "id-match": "error", + "import/no-default-export": "error", + "import/no-extraneous-dependencies": "off", + "import/no-internal-modules": "off", + "import/order": "error", + indent: "off", + "jsdoc/check-alignment": "error", + "jsdoc/check-indentation": "error", + "jsdoc/newline-after-description": "error", + "max-classes-per-file": "off", + "max-len": "off", + "new-parens": "error", + "no-bitwise": "error", + "no-caller": "error", + "no-cond-assign": "error", + "no-console": "error", + "no-debugger": "error", + "no-duplicate-case": "error", + "no-duplicate-imports": "error", + "no-empty": "error", + "no-empty-function": "off", + "no-eval": "error", + "no-extra-bind": "error", + "no-fallthrough": "off", + "no-invalid-this": "off", + "no-multiple-empty-lines": "error", + "no-new-func": "error", + "no-new-wrappers": "error", + "no-null/no-null": "error", + "no-param-reassign": "error", + "no-redeclare": "error", + "no-return-await": "error", + "no-sequences": "error", + "no-shadow": "off", + "no-sparse-arrays": "error", + "no-template-curly-in-string": "error", + "no-throw-literal": "error", + "no-trailing-spaces": "error", + "no-undef-init": "error", + "no-underscore-dangle": "error", + "no-unsafe-finally": "error", + "no-unused-expressions": "off", + "no-unused-labels": "error", + "no-use-before-define": "off", + "no-useless-constructor": "error", + "no-var": "error", + "object-shorthand": "off", + "one-var": ["error", "never"], + "prefer-arrow/prefer-arrow-functions": "error", + "prefer-const": "error", + "prefer-object-spread": "error", + radix: "error", + "space-in-parens": ["error", "never"], + "spaced-comment": [ + "error", + "always", + { + markers: ["/"], + }, + ], + "unicorn/filename-case": "error", + "unicorn/prefer-ternary": "error", + "use-isnan": "error", + "valid-typeof": "off", + "@typescript-eslint/tslint/config": [ + "error", + { + rules: { + "no-delete": true, + "no-method-signature": true, + "no-mixed-interface": true, + "readonly-keyword": true, + "return-undefined": true, + whitespace: [ + true, + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type", + "check-typecast", + "check-type-operator", + "check-rest-spread", + ], + }, + }, + ], + }, + overrides: [ + { + // enable the rule specifically for TypeScript files + files: ["*.spec.ts"], + rules: { + "@typescript-eslint/explicit-function-return-type": "off", + }, + }, + ], +}; diff --git a/package-lock.json b/package-lock.json index ebd43a12ae..9cb078bea5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,10 +25,19 @@ "@types/sinon": "^10.0.0", "@types/unzipper": "^0.10.4", "@types/webpack": "^5.0.0", + "@typescript-eslint/eslint-plugin": "^5.36.1", + "@typescript-eslint/eslint-plugin-tslint": "^5.36.1", + "@typescript-eslint/parser": "^5.36.1", "buffer": "^6.0.3", "chai": "^3.5.0", "cspell": "^6.2.2", "docsify-cli": "^4.3.0", + "eslint": "^8.23.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jsdoc": "^39.3.6", + "eslint-plugin-no-null": "^1.0.2", + "eslint-plugin-prefer-arrow": "^1.2.3", + "eslint-plugin-unicorn": "^43.0.2", "glob": "^8.0.1", "jszip": "^3.1.5", "mocha": "^10.0.0", @@ -301,10 +310,13 @@ } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", - "dev": true + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true, + "engines": { + "node": ">=6.9.0" + } }, "node_modules/@babel/helpers": { "version": "7.10.4", @@ -833,6 +845,162 @@ "node": ">=10.0.0" } }, + "node_modules/@es-joy/jsdoccomment": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz", + "integrity": "sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==", + "dev": true, + "dependencies": { + "comment-parser": "1.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~3.1.0" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", + "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", + "dev": true, + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "dependencies": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@humanwhocodes/config-array/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "node_modules/@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -971,6 +1139,41 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -1135,6 +1338,12 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "node_modules/@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -1152,6 +1361,12 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.13.tgz", "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==" }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, "node_modules/@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -1261,6 +1476,412 @@ "webpack": "^5" } }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.1.tgz", + "integrity": "sha512-iC40UK8q1tMepSDwiLbTbMXKDxzNy+4TfPWgIL661Ym0sD42vRcQU93IsZIrmi+x292DBr60UI/gSwfdVYexCA==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.36.1", + "@typescript-eslint/type-utils": "5.36.1", + "@typescript-eslint/utils": "5.36.1", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^5.0.0", + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin-tslint": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-5.36.1.tgz", + "integrity": "sha512-cOpdXK60QxSxMMr71Rn0AMLaEK2K6zyqK/Dfb9GxruJ+sHYrPsJFW2cy+XkeY1fL6As4Q8yO13Gkjget45I5aw==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "5.36.1", + "lodash": "^4.17.21" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0", + "tslint": "^5.0.0 || ^6.0.0", + "typescript": "*" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/parser": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.36.1.tgz", + "integrity": "sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==", + "dev": true, + "dependencies": { + "@typescript-eslint/scope-manager": "5.36.1", + "@typescript-eslint/types": "5.36.1", + "@typescript-eslint/typescript-estree": "5.36.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/parser/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.36.1.tgz", + "integrity": "sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.36.1", + "@typescript-eslint/visitor-keys": "5.36.1" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.36.1.tgz", + "integrity": "sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==", + "dev": true, + "dependencies": { + "@typescript-eslint/typescript-estree": "5.36.1", + "@typescript-eslint/utils": "5.36.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/type-utils/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/@typescript-eslint/types": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.36.1.tgz", + "integrity": "sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.1.tgz", + "integrity": "sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.36.1", + "@typescript-eslint/visitor-keys": "5.36.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "dependencies": { + "tslib": "^1.8.1" + }, + "engines": { + "node": ">= 6" + }, + "peerDependencies": { + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/@typescript-eslint/utils": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.36.1.tgz", + "integrity": "sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==", + "dev": true, + "dependencies": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.36.1", + "@typescript-eslint/types": "5.36.1", + "@typescript-eslint/typescript-estree": "5.36.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.1.tgz", + "integrity": "sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/types": "5.36.1", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -1482,6 +2103,15 @@ "acorn": "^8" } }, + "node_modules/acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "peerDependencies": { + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" + } + }, "node_modules/acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", @@ -1614,12 +2244,58 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-timsort": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", "dev": true }, + "node_modules/array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -2018,6 +2694,19 @@ "typedarray-to-buffer": "^3.1.5" } }, + "node_modules/call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -2140,6 +2829,18 @@ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, + "node_modules/clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dev": true, + "dependencies": { + "escape-string-regexp": "^1.0.5" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -2331,6 +3032,15 @@ "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==", "dev": true }, + "node_modules/comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "dev": true, + "engines": { + "node": ">= 12.0.0" + } + }, "node_modules/commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -2925,6 +3635,12 @@ "node": ">=4.0.0" } }, + "node_modules/deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "node_modules/default-require-extensions": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", @@ -2952,6 +3668,22 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "node_modules/define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -2985,6 +3717,18 @@ "node": ">=0.3.1" } }, + "node_modules/dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "dependencies": { + "path-type": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/docsify": { "version": "4.12.2", "resolved": "https://registry.npmjs.org/docsify/-/docsify-4.12.2.tgz", @@ -3211,6 +3955,18 @@ "node": ">= 8.16.2" } }, + "node_modules/doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/dompurify": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.6.tgz", @@ -3330,12 +4086,75 @@ "is-arrayish": "^0.2.1" } }, + "node_modules/es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "node_modules/es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", @@ -3375,6 +4194,362 @@ "node": ">=0.8.0" } }, + "node_modules/eslint": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", + "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "dev": true, + "dependencies": { + "@eslint/eslintrc": "^1.3.1", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "bin": { + "eslint": "bin/eslint.js" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "dependencies": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-import-resolver-node/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "dependencies": { + "debug": "^3.2.7" + }, + "engines": { + "node": ">=4" + }, + "peerDependenciesMeta": { + "eslint": { + "optional": true + } + } + }, + "node_modules/eslint-module-utils/node_modules/debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "dependencies": { + "ms": "^2.1.1" + } + }, + "node_modules/eslint-module-utils/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "node_modules/eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "dependencies": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "engines": { + "node": ">=4" + }, + "peerDependencies": { + "eslint": "^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8" + } + }, + "node_modules/eslint-plugin-import/node_modules/doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "dependencies": { + "esutils": "^2.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/eslint-plugin-import/node_modules/json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/eslint-plugin-import/node_modules/tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc": { + "version": "39.3.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.6.tgz", + "integrity": "sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==", + "dev": true, + "dependencies": { + "@es-joy/jsdoccomment": "~0.31.0", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.7", + "spdx-expression-parse": "^3.0.1" + }, + "engines": { + "node": "^14 || ^16 || ^17 || ^18" + }, + "peerDependencies": { + "eslint": "^7.0.0 || ^8.0.0" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint-plugin-jsdoc/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-jsdoc/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "node_modules/eslint-plugin-no-null": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-null/-/eslint-plugin-no-null-1.0.2.tgz", + "integrity": "sha512-uRDiz88zCO/2rzGfgG15DBjNsgwWtWiSo4Ezy7zzajUgpnFIqd1TjepKeRmJZHEfBGu58o2a8S0D7vglvvhkVA==", + "dev": true, + "engines": { + "node": ">=5.0.0" + }, + "peerDependencies": { + "eslint": ">=3.0.0" + } + }, + "node_modules/eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "dev": true, + "peerDependencies": { + "eslint": ">=2.0.0" + } + }, + "node_modules/eslint-plugin-unicorn": { + "version": "43.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-43.0.2.tgz", + "integrity": "sha512-DtqZ5mf/GMlfWoz1abIjq5jZfaFuHzGBZYIeuJfEoKKGWRHr2JiJR+ea+BF7Wx2N1PPRoT/2fwgiK1NnmNE3Hg==", + "dev": true, + "dependencies": { + "@babel/helper-validator-identifier": "^7.18.6", + "ci-info": "^3.3.2", + "clean-regexp": "^1.0.0", + "eslint-utils": "^3.0.0", + "esquery": "^1.4.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.24", + "safe-regex": "^2.1.1", + "semver": "^7.3.7", + "strip-indent": "^3.0.0" + }, + "engines": { + "node": ">=14.18" + }, + "funding": { + "url": "https://github.com/sindresorhus/eslint-plugin-unicorn?sponsor=1" + }, + "peerDependencies": { + "eslint": ">=8.18.0" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/ci-info": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true + }, + "node_modules/eslint-plugin-unicorn/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-unicorn/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -3388,6 +4563,299 @@ "node": ">=8.0.0" } }, + "node_modules/eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "dependencies": { + "eslint-visitor-keys": "^2.0.0" + }, + "engines": { + "node": "^10.0.0 || ^12.0.0 || >= 14.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + }, + "peerDependencies": { + "eslint": ">=5" + } + }, + "node_modules/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/eslint/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "dependencies": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + } + }, + "node_modules/eslint/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/eslint/node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "dependencies": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, "node_modules/esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", @@ -3401,6 +4869,27 @@ "node": ">=4" } }, + "node_modules/esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "dependencies": { + "estraverse": "^5.1.0" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/esquery/node_modules/estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true, + "engines": { + "node": ">=4.0" + } + }, "node_modules/esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -3431,6 +4920,15 @@ "node": ">=4.0" } }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -3485,18 +4983,49 @@ "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", "dev": true }, + "node_modules/fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + }, + "engines": { + "node": ">=8.6.0" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "node_modules/fastest-levenshtein": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", "dev": true }, + "node_modules/fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/figlet": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", @@ -3859,6 +5388,45 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "node_modules/function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "node_modules/functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/gensequence": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-3.1.1.tgz", @@ -3886,6 +5454,20 @@ "node": "6.* || 8.* || >= 10.*" } }, + "node_modules/get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -3931,6 +5513,22 @@ "node": ">=6" } }, + "node_modules/get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -4013,6 +5611,53 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "dependencies": { + "type-fest": "^0.20.2" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globals/node_modules/type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "dependencies": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -4041,6 +5686,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "node_modules/grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "node_modules/har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -4092,6 +5743,18 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -4104,6 +5767,15 @@ "node": ">=0.10.0" } }, + "node_modules/has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -4122,6 +5794,45 @@ "node": ">=8" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -4171,6 +5882,12 @@ "he": "bin/he" } }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "node_modules/html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -4234,6 +5951,15 @@ } ] }, + "node_modules/ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true, + "engines": { + "node": ">= 4" + } + }, "node_modules/immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", @@ -4345,6 +6071,20 @@ "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, + "node_modules/internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -4360,6 +6100,18 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "node_modules/is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "dependencies": { + "has-bigints": "^1.0.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -4372,6 +6124,61 @@ "node": ">=8" } }, + "node_modules/is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "dependencies": { + "builtin-modules": "^3.3.0" + }, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-builtin-module/node_modules/builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true, + "engines": { + "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -4384,10 +6191,37 @@ "is-ci": "bin.js" } }, + "node_modules/is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "dependencies": { "is-extglob": "^2.1.1" @@ -4421,6 +6255,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-npm": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", @@ -4439,6 +6285,21 @@ "node": ">=0.12.0" } }, + "node_modules/is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -4478,6 +6339,64 @@ "node": ">=0.10.0" } }, + "node_modules/is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "dependencies": { + "has-tostringtag": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "dependencies": { + "has-symbols": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -4496,6 +6415,18 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -4843,6 +6774,15 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "node_modules/jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "dev": true, + "engines": { + "node": ">=12.0.0" + } + }, "node_modules/json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", @@ -4867,6 +6807,12 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "node_modules/json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -4963,6 +6909,19 @@ "node": ">=8" } }, + "node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", @@ -5047,6 +7006,12 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "node_modules/lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "node_modules/log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -5212,6 +7177,15 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "engines": { + "node": ">= 8" + } + }, "node_modules/micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -5289,9 +7263,9 @@ } }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -5551,6 +7525,12 @@ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" } }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -5614,6 +7594,18 @@ "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", "dev": true }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -5979,6 +7971,59 @@ "node": "*" } }, + "node_modules/object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -6021,6 +8066,23 @@ "opencollective-postinstall": "index.js" } }, + "node_modules/optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/opts": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", @@ -6358,6 +8420,15 @@ "node": ">=8" } }, + "node_modules/pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/pre-commit": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz", @@ -6370,6 +8441,15 @@ "which": "1.2.x" } }, + "node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", @@ -6498,6 +8578,26 @@ "node": ">=0.6" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -6543,6 +8643,60 @@ "node": ">=0.8" } }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/read-pkg-up/node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -6582,6 +8736,44 @@ "node": ">= 0.10" } }, + "node_modules/regexp-tree": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", + "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "dev": true, + "bin": { + "regexp-tree": "bin/regexp-tree" + } + }, + "node_modules/regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/mysticatea" + } + }, "node_modules/registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -6722,18 +8914,6 @@ "node": ">=8" } }, - "node_modules/replace-in-file/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, "node_modules/replace-in-file/node_modules/supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -6877,12 +9057,20 @@ "dev": true }, "node_modules/resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "dependencies": { - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" } }, "node_modules/resolve-cwd": { @@ -6945,6 +9133,16 @@ "lowercase-keys": "^1.0.0" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/revalidator": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", @@ -6989,12 +9187,44 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "queue-microtask": "^1.2.2" + } + }, "node_modules/safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, + "node_modules/safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "dependencies": { + "regexp-tree": "~0.1.1" + } + }, "node_modules/safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -7207,6 +9437,20 @@ "vscode-textmate": "^6.0.0" } }, + "node_modules/side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -7252,6 +9496,15 @@ "node": ">=8" } }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true, + "engines": { + "node": ">=8" + } + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -7349,6 +9602,38 @@ "node": ">= 8" } }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, "node_modules/sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -7490,6 +9775,34 @@ "node": ">=8" } }, + "node_modules/string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -7544,6 +9857,18 @@ "node": ">=4" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/tapable": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", @@ -7657,6 +9982,12 @@ "url": "https://github.com/sponsors/isaacs" } }, + "node_modules/text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, "node_modules/tinydate": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", @@ -8129,6 +10460,18 @@ "integrity": "sha512-aSiJz7rGWNAQq7hjMK9ZYDuEawXupcCWgl3woQQSoDP2Oh8O4srWb/uO1PzzHIsrPEOqrjJ2sUb9FERfzuBabQ==", "dev": true }, + "node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, "node_modules/type-detect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", @@ -8217,6 +10560,21 @@ "node": ">=4.2.0" } }, + "node_modules/unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -8417,6 +10775,16 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "node_modules/verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -8692,6 +11060,22 @@ "which": "bin/which" } }, + "node_modules/which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "dependencies": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -8739,6 +11123,15 @@ "integrity": "sha1-+PwEyjoTeErenhZBr5hXjPvWR6k=", "dev": true }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", @@ -9305,9 +11698,9 @@ } }, "@babel/helper-validator-identifier": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", - "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", "dev": true }, "@babel/helpers": { @@ -9811,6 +12204,118 @@ "integrity": "sha512-ws57AidsDvREKrZKYffXddNkyaF14iHNHm8VQnZH6t99E8gczjNN0GpvcGny0imC80yQ0tHz1xVUKk/KFQSUyA==", "dev": true }, + "@es-joy/jsdoccomment": { + "version": "0.31.0", + "resolved": "https://registry.npmjs.org/@es-joy/jsdoccomment/-/jsdoccomment-0.31.0.tgz", + "integrity": "sha512-tc1/iuQcnaiSIUVad72PBierDFpsxdUHtEF/OrfqvM1CBAsIoMP51j52jTMb3dXriwhieTo289InzZj72jL3EQ==", + "dev": true, + "requires": { + "comment-parser": "1.3.1", + "esquery": "^1.4.0", + "jsdoc-type-pratt-parser": "~3.1.0" + } + }, + "@eslint/eslintrc": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.1.tgz", + "integrity": "sha512-OhSY22oQQdw3zgPOOwdoj01l/Dzl1Z+xyUP33tkSN+aqyEhymJCcPHyXt+ylW8FSe0TfRC2VG+ROQOapD0aZSQ==", + "dev": true, + "requires": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^9.4.0", + "globals": "^13.15.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "dependencies": { + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + } + } + }, + "@humanwhocodes/config-array": { + "version": "0.10.4", + "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.10.4.tgz", + "integrity": "sha512-mXAIHxZT3Vcpg83opl1wGlVZ9xydbfZO3r5YfRSH6Gpp2J/PfdBP0wbDa2sO6/qRbcalpoevVyW6A/fI6LfeMw==", + "dev": true, + "requires": { + "@humanwhocodes/object-schema": "^1.2.1", + "debug": "^4.1.1", + "minimatch": "^3.0.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@humanwhocodes/gitignore-to-minimatch": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@humanwhocodes/gitignore-to-minimatch/-/gitignore-to-minimatch-1.0.2.tgz", + "integrity": "sha512-rSqmMJDdLFUsyxR6FMtD00nfQKKLFb1kv+qBbOVKqErvloEIJLo5bDTJTQNTYgeyp78JsA7u/NPi5jT1GR/MuA==", + "dev": true + }, + "@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true + }, + "@humanwhocodes/object-schema": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", + "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", + "dev": true + }, "@istanbuljs/load-nyc-config": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", @@ -9921,6 +12426,32 @@ "@jridgewell/sourcemap-codec": "^1.4.10" } }, + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + } + }, + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true + }, + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } + }, "@sindresorhus/is": { "version": "0.14.0", "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", @@ -10077,6 +12608,12 @@ "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "dev": true + }, "@types/minimatch": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", @@ -10094,6 +12631,12 @@ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.7.13.tgz", "integrity": "sha512-46yIhxSe5xEaJZXWdIBP7GU4HDTG8/eo0qd9atdiL+lFpA03y8KS+lkTN834TWJj5767GbWv4n/P6efyTFt1Dw==" }, + "@types/normalize-package-data": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.1.tgz", + "integrity": "sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==", + "dev": true + }, "@types/parse-json": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", @@ -10202,6 +12745,255 @@ "webpack": "^5" } }, + "@typescript-eslint/eslint-plugin": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.36.1.tgz", + "integrity": "sha512-iC40UK8q1tMepSDwiLbTbMXKDxzNy+4TfPWgIL661Ym0sD42vRcQU93IsZIrmi+x292DBr60UI/gSwfdVYexCA==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.36.1", + "@typescript-eslint/type-utils": "5.36.1", + "@typescript-eslint/utils": "5.36.1", + "debug": "^4.3.4", + "functional-red-black-tree": "^1.0.1", + "ignore": "^5.2.0", + "regexpp": "^3.2.0", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/eslint-plugin-tslint": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-5.36.1.tgz", + "integrity": "sha512-cOpdXK60QxSxMMr71Rn0AMLaEK2K6zyqK/Dfb9GxruJ+sHYrPsJFW2cy+XkeY1fL6As4Q8yO13Gkjget45I5aw==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "5.36.1", + "lodash": "^4.17.21" + } + }, + "@typescript-eslint/parser": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.36.1.tgz", + "integrity": "sha512-/IsgNGOkBi7CuDfUbwt1eOqUXF9WGVBW9dwEe1pi+L32XrTsZIgmDFIi2RxjzsvB/8i+MIf5JIoTEH8LOZ368A==", + "dev": true, + "requires": { + "@typescript-eslint/scope-manager": "5.36.1", + "@typescript-eslint/types": "5.36.1", + "@typescript-eslint/typescript-estree": "5.36.1", + "debug": "^4.3.4" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + } + } + }, + "@typescript-eslint/scope-manager": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.36.1.tgz", + "integrity": "sha512-pGC2SH3/tXdu9IH3ItoqciD3f3RRGCh7hb9zPdN2Drsr341zgd6VbhP5OHQO/reUqihNltfPpMpTNihFMarP2w==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.36.1", + "@typescript-eslint/visitor-keys": "5.36.1" + } + }, + "@typescript-eslint/type-utils": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.36.1.tgz", + "integrity": "sha512-xfZhfmoQT6m3lmlqDvDzv9TiCYdw22cdj06xY0obSznBsT///GK5IEZQdGliXpAOaRL34o8phEvXzEo/VJx13Q==", + "dev": true, + "requires": { + "@typescript-eslint/typescript-estree": "5.36.1", + "@typescript-eslint/utils": "5.36.1", + "debug": "^4.3.4", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + } + } + }, + "@typescript-eslint/types": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.36.1.tgz", + "integrity": "sha512-jd93ShpsIk1KgBTx9E+hCSEuLCUFwi9V/urhjOWnOaksGZFbTOxAT47OH2d4NLJnLhkVD+wDbB48BuaycZPLBg==", + "dev": true + }, + "@typescript-eslint/typescript-estree": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.36.1.tgz", + "integrity": "sha512-ih7V52zvHdiX6WcPjsOdmADhYMDN15SylWRZrT2OMy80wzKbc79n8wFW0xpWpU0x3VpBz/oDgTm2xwDAnFTl+g==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.36.1", + "@typescript-eslint/visitor-keys": "5.36.1", + "debug": "^4.3.4", + "globby": "^11.1.0", + "is-glob": "^4.0.3", + "semver": "^7.3.7", + "tsutils": "^3.21.0" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "tsutils": { + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", + "dev": true, + "requires": { + "tslib": "^1.8.1" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "@typescript-eslint/utils": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.36.1.tgz", + "integrity": "sha512-lNj4FtTiXm5c+u0pUehozaUWhh7UYKnwryku0nxJlYUEWetyG92uw2pr+2Iy4M/u0ONMKzfrx7AsGBTCzORmIg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "@typescript-eslint/scope-manager": "5.36.1", + "@typescript-eslint/types": "5.36.1", + "@typescript-eslint/typescript-estree": "5.36.1", + "eslint-scope": "^5.1.1", + "eslint-utils": "^3.0.0" + } + }, + "@typescript-eslint/visitor-keys": { + "version": "5.36.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.36.1.tgz", + "integrity": "sha512-ojB9aRyRFzVMN3b5joSYni6FAS10BBSCAfKJhjJAV08t/a95aM6tAhz+O1jF+EtgxktuSO3wJysp2R+Def/IWQ==", + "dev": true, + "requires": { + "@typescript-eslint/types": "5.36.1", + "eslint-visitor-keys": "^3.3.0" + } + }, "@ungap/promise-all-settled": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@ungap/promise-all-settled/-/promise-all-settled-1.1.2.tgz", @@ -10402,6 +13194,13 @@ "dev": true, "requires": {} }, + "acorn-jsx": { + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", + "dev": true, + "requires": {} + }, "acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", @@ -10507,12 +13306,43 @@ "sprintf-js": "~1.0.2" } }, + "array-includes": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/array-includes/-/array-includes-3.1.5.tgz", + "integrity": "sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5", + "get-intrinsic": "^1.1.1", + "is-string": "^1.0.7" + } + }, "array-timsort": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/array-timsort/-/array-timsort-1.0.3.tgz", "integrity": "sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ==", "dev": true }, + "array-union": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", + "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", + "dev": true + }, + "array.prototype.flat": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/array.prototype.flat/-/array.prototype.flat-1.3.0.tgz", + "integrity": "sha512-12IUEkHsAhA4DY5s0FPgNXIdc8VRSqD9Zp78a5au9abH/SOBrsp082JOWFNTjkMozh8mqcdiKuaLGhPeYztxSw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.2", + "es-shim-unscopables": "^1.0.0" + } + }, "asn1": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", @@ -10804,6 +13634,16 @@ } } }, + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" + } + }, "callsites": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", @@ -10887,6 +13727,15 @@ "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", "dev": true }, + "clean-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/clean-regexp/-/clean-regexp-1.0.0.tgz", + "integrity": "sha512-GfisEZEJvzKrmGWkvfhgzcz/BllN1USeqD2V6tg14OAOgaCD2Z/PUEuxnAZ/nPvmaHRG7a8y77p1T/IRQ4D1Hw==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, "clean-stack": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", @@ -11043,6 +13892,12 @@ } } }, + "comment-parser": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/comment-parser/-/comment-parser-1.3.1.tgz", + "integrity": "sha512-B52sN2VNghyq5ofvUsqZjmk6YkihBX5vMSChmSK9v4ShjKf3Vk5Xcmgpw4o+iIgtrnM/u5FiMpz9VKb8lpBveA==", + "dev": true + }, "commondir": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", @@ -11504,6 +14359,12 @@ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", "dev": true }, + "deep-is": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", + "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", + "dev": true + }, "default-require-extensions": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", @@ -11527,6 +14388,16 @@ "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", "dev": true }, + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "dev": true, + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", @@ -11551,6 +14422,15 @@ "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", "dev": true }, + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", + "dev": true, + "requires": { + "path-type": "^4.0.0" + } + }, "docsify": { "version": "4.12.2", "resolved": "https://registry.npmjs.org/docsify/-/docsify-4.12.2.tgz", @@ -11737,6 +14617,15 @@ } } }, + "doctrine": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", + "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, "dompurify": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/dompurify/-/dompurify-2.3.6.tgz", @@ -11838,12 +14727,63 @@ "is-arrayish": "^0.2.1" } }, + "es-abstract": { + "version": "1.20.1", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.1.tgz", + "integrity": "sha512-WEm2oBhfoI2sImeM4OF2zE2V3BYdSF+KnSi9Sidz51fQHd7+JuF8Xgcj9/0o+OWeIeIS/MiuNnlruQrJf16GQA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "es-to-primitive": "^1.2.1", + "function-bind": "^1.1.1", + "function.prototype.name": "^1.1.5", + "get-intrinsic": "^1.1.1", + "get-symbol-description": "^1.0.0", + "has": "^1.0.3", + "has-property-descriptors": "^1.0.0", + "has-symbols": "^1.0.3", + "internal-slot": "^1.0.3", + "is-callable": "^1.2.4", + "is-negative-zero": "^2.0.2", + "is-regex": "^1.1.4", + "is-shared-array-buffer": "^1.0.2", + "is-string": "^1.0.7", + "is-weakref": "^1.0.2", + "object-inspect": "^1.12.0", + "object-keys": "^1.1.1", + "object.assign": "^4.1.2", + "regexp.prototype.flags": "^1.4.3", + "string.prototype.trimend": "^1.0.5", + "string.prototype.trimstart": "^1.0.5", + "unbox-primitive": "^1.0.2" + } + }, "es-module-lexer": { "version": "0.9.3", "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, + "es-shim-unscopables": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-shim-unscopables/-/es-shim-unscopables-1.0.0.tgz", + "integrity": "sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "es-to-primitive": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", + "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "dev": true, + "requires": { + "is-callable": "^1.1.4", + "is-date-object": "^1.0.1", + "is-symbol": "^1.0.2" + } + }, "es6-error": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", @@ -11874,6 +14814,457 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, + "eslint": { + "version": "8.23.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.23.0.tgz", + "integrity": "sha512-pBG/XOn0MsJcKcTRLr27S5HpzQo4kLr+HjLQIyK4EiCsijDl/TB+h5uEuJU6bQ8Edvwz1XWOjpaP2qgnXGpTcA==", + "dev": true, + "requires": { + "@eslint/eslintrc": "^1.3.1", + "@humanwhocodes/config-array": "^0.10.4", + "@humanwhocodes/gitignore-to-minimatch": "^1.0.2", + "@humanwhocodes/module-importer": "^1.0.1", + "ajv": "^6.10.0", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.2", + "debug": "^4.3.2", + "doctrine": "^3.0.0", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^7.1.1", + "eslint-utils": "^3.0.0", + "eslint-visitor-keys": "^3.3.0", + "espree": "^9.4.0", + "esquery": "^1.4.0", + "esutils": "^2.0.2", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^6.0.1", + "find-up": "^5.0.0", + "functional-red-black-tree": "^1.0.1", + "glob-parent": "^6.0.1", + "globals": "^13.15.0", + "globby": "^11.1.0", + "grapheme-splitter": "^1.0.4", + "ignore": "^5.2.0", + "import-fresh": "^3.0.0", + "imurmurhash": "^0.1.4", + "is-glob": "^4.0.0", + "js-yaml": "^4.1.0", + "json-stable-stringify-without-jsonify": "^1.0.1", + "levn": "^0.4.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", + "natural-compare": "^1.4.0", + "optionator": "^0.9.1", + "regexpp": "^3.2.0", + "strip-ansi": "^6.0.1", + "strip-json-comments": "^3.1.0", + "text-table": "^0.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dev": true, + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "eslint-scope": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", + "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" + } + }, + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "requires": { + "argparse": "^2.0.1" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } + } + }, + "eslint-import-resolver-node": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", + "integrity": "sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==", + "dev": true, + "requires": { + "debug": "^3.2.7", + "resolve": "^1.20.0" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "eslint-module-utils": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/eslint-module-utils/-/eslint-module-utils-2.7.4.tgz", + "integrity": "sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==", + "dev": true, + "requires": { + "debug": "^3.2.7" + }, + "dependencies": { + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "eslint-plugin-import": { + "version": "2.26.0", + "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", + "integrity": "sha512-hYfi3FXaM8WPLf4S1cikh/r4IxnO6zrhZbEGz2b660EJRbuxgpDS5gkCuYgGWg2xxh2rBuIr4Pvhve/7c31koA==", + "dev": true, + "requires": { + "array-includes": "^3.1.4", + "array.prototype.flat": "^1.2.5", + "debug": "^2.6.9", + "doctrine": "^2.1.0", + "eslint-import-resolver-node": "^0.3.6", + "eslint-module-utils": "^2.7.3", + "has": "^1.0.3", + "is-core-module": "^2.8.1", + "is-glob": "^4.0.3", + "minimatch": "^3.1.2", + "object.values": "^1.1.5", + "resolve": "^1.22.0", + "tsconfig-paths": "^3.14.1" + }, + "dependencies": { + "doctrine": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-2.1.0.tgz", + "integrity": "sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==", + "dev": true, + "requires": { + "esutils": "^2.0.2" + } + }, + "json5": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", + "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "dev": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "tsconfig-paths": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.1.tgz", + "integrity": "sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==", + "dev": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + } + } + }, + "eslint-plugin-jsdoc": { + "version": "39.3.6", + "resolved": "https://registry.npmjs.org/eslint-plugin-jsdoc/-/eslint-plugin-jsdoc-39.3.6.tgz", + "integrity": "sha512-R6dZ4t83qPdMhIOGr7g2QII2pwCjYyKP+z0tPOfO1bbAbQyKC20Y2Rd6z1te86Lq3T7uM8bNo+VD9YFpE8HU/g==", + "dev": true, + "requires": { + "@es-joy/jsdoccomment": "~0.31.0", + "comment-parser": "1.3.1", + "debug": "^4.3.4", + "escape-string-regexp": "^4.0.0", + "esquery": "^1.4.0", + "semver": "^7.3.7", + "spdx-expression-parse": "^3.0.1" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, + "eslint-plugin-no-null": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-no-null/-/eslint-plugin-no-null-1.0.2.tgz", + "integrity": "sha512-uRDiz88zCO/2rzGfgG15DBjNsgwWtWiSo4Ezy7zzajUgpnFIqd1TjepKeRmJZHEfBGu58o2a8S0D7vglvvhkVA==", + "dev": true, + "requires": {} + }, + "eslint-plugin-prefer-arrow": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/eslint-plugin-prefer-arrow/-/eslint-plugin-prefer-arrow-1.2.3.tgz", + "integrity": "sha512-J9I5PKCOJretVuiZRGvPQxCbllxGAV/viI20JO3LYblAodofBxyMnZAJ+WGeClHgANnSJberTNoFWWjrWKBuXQ==", + "dev": true, + "requires": {} + }, + "eslint-plugin-unicorn": { + "version": "43.0.2", + "resolved": "https://registry.npmjs.org/eslint-plugin-unicorn/-/eslint-plugin-unicorn-43.0.2.tgz", + "integrity": "sha512-DtqZ5mf/GMlfWoz1abIjq5jZfaFuHzGBZYIeuJfEoKKGWRHr2JiJR+ea+BF7Wx2N1PPRoT/2fwgiK1NnmNE3Hg==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "ci-info": "^3.3.2", + "clean-regexp": "^1.0.0", + "eslint-utils": "^3.0.0", + "esquery": "^1.4.0", + "indent-string": "^4.0.0", + "is-builtin-module": "^3.1.0", + "lodash": "^4.17.21", + "pluralize": "^8.0.0", + "read-pkg-up": "^7.0.1", + "regexp-tree": "^0.1.24", + "safe-regex": "^2.1.1", + "semver": "^7.3.7", + "strip-indent": "^3.0.0" + }, + "dependencies": { + "ci-info": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.3.2.tgz", + "integrity": "sha512-xmDt/QIAdeZ9+nfdPsaBCpMvHNLFiLdjj59qjqn+6iPe6YmHGQ35sBnQ8uslRBXFmXkiZQOJRjvQeoGppoTjjg==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "eslint-scope": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", @@ -11884,12 +15275,63 @@ "estraverse": "^4.1.1" } }, + "eslint-utils": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", + "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", + "dev": true, + "requires": { + "eslint-visitor-keys": "^2.0.0" + }, + "dependencies": { + "eslint-visitor-keys": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", + "dev": true + } + } + }, + "eslint-visitor-keys": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", + "dev": true + }, + "espree": { + "version": "9.4.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-9.4.0.tgz", + "integrity": "sha512-DQmnRpLj7f6TgN/NYb0MTzJXL+vJF9h3pHy4JhCIs3zwcgez8xmGg3sXHcEO97BrmO2OSvCwMdfdlyl+E9KjOw==", + "dev": true, + "requires": { + "acorn": "^8.8.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^3.3.0" + } + }, "esprima": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", "dev": true }, + "esquery": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", + "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", + "dev": true, + "requires": { + "estraverse": "^5.1.0" + }, + "dependencies": { + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", + "dev": true + } + } + }, "esrecurse": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", @@ -11913,6 +15355,12 @@ "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "dev": true + }, "etag": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", @@ -11955,18 +15403,46 @@ "integrity": "sha512-G3BSX9cfKttjr+2o1O22tYMLq0DPluZnYtq1rXumE1SpL/F/SLIfHx08WYQoWSIpeMYf8sRbJ8++71+v6Pnxfg==", "dev": true }, + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", + "dev": true, + "requires": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" + } + }, "fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", "dev": true }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", + "dev": true + }, "fastest-levenshtein": { "version": "1.0.12", "resolved": "https://registry.npmjs.org/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz", "integrity": "sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==", "dev": true }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "dev": true, + "requires": { + "reusify": "^1.0.4" + } + }, "figlet": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/figlet/-/figlet-1.5.2.tgz", @@ -12223,6 +15699,36 @@ } } }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "function.prototype.name": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", + "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.0", + "functions-have-names": "^1.2.2" + } + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", + "dev": true + }, + "functions-have-names": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", + "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", + "dev": true + }, "gensequence": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/gensequence/-/gensequence-3.1.1.tgz", @@ -12241,6 +15747,17 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, "get-package-type": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", @@ -12268,6 +15785,16 @@ "pump": "^3.0.0" } }, + "get-symbol-description": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", + "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.1.1" + } + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -12334,6 +15861,37 @@ "ini": "1.3.7" } }, + "globals": { + "version": "13.17.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", + "integrity": "sha512-1C+6nQRb1GwGMKm2dH/E7enFAMxGTmGI7/dEdhy/DNelv85w9B72t3uc5frtMNXIbzrarJJ/lTCjcaZwbLJmyw==", + "dev": true, + "requires": { + "type-fest": "^0.20.2" + }, + "dependencies": { + "type-fest": { + "version": "0.20.2", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", + "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", + "dev": true + } + } + }, + "globby": { + "version": "11.1.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-11.1.0.tgz", + "integrity": "sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==", + "dev": true, + "requires": { + "array-union": "^2.1.0", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.9", + "ignore": "^5.2.0", + "merge2": "^1.4.1", + "slash": "^3.0.0" + } + }, "got": { "version": "9.6.0", "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", @@ -12359,6 +15917,12 @@ "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, + "grapheme-splitter": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz", + "integrity": "sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==", + "dev": true + }, "har-schema": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", @@ -12401,6 +15965,15 @@ } } }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, + "requires": { + "function-bind": "^1.1.1" + } + }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", @@ -12410,6 +15983,12 @@ "ansi-regex": "^2.0.0" } }, + "has-bigints": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", + "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", + "dev": true + }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", @@ -12422,6 +16001,30 @@ "integrity": "sha512-Pq0h+hvsVm6dDEa8x82GnLSYHOzNDt7f0ddFa3FqcQlgzEiptPqL+XrOJNavjOzSYiYWIrgeVYYgGlLmnxwilQ==", "dev": true }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-tostringtag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", + "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "has-yarn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", @@ -12458,6 +16061,12 @@ "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", "dev": true }, + "hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", + "dev": true + }, "html-escaper": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", @@ -12500,6 +16109,12 @@ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", "dev": true }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, "immediate": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", @@ -12583,6 +16198,17 @@ "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", "dev": true }, + "internal-slot": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", + "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "dev": true, + "requires": { + "get-intrinsic": "^1.1.0", + "has": "^1.0.3", + "side-channel": "^1.0.4" + } + }, "interpret": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", @@ -12595,6 +16221,15 @@ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, + "is-bigint": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", + "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", + "dev": true, + "requires": { + "has-bigints": "^1.0.1" + } + }, "is-binary-path": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", @@ -12604,6 +16239,39 @@ "binary-extensions": "^2.0.0" } }, + "is-boolean-object": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", + "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-builtin-module": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-3.2.0.tgz", + "integrity": "sha512-phDA4oSGt7vl1n5tJvTWooWWAsXLY+2xCnxNqvKhGEzujg+A43wPlPOyDg3C8XQHN+6k/JTQWJ/j0dQh/qr+Hw==", + "dev": true, + "requires": { + "builtin-modules": "^3.3.0" + }, + "dependencies": { + "builtin-modules": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-3.3.0.tgz", + "integrity": "sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==", + "dev": true + } + } + }, + "is-callable": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.4.tgz", + "integrity": "sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==", + "dev": true + }, "is-ci": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", @@ -12613,10 +16281,28 @@ "ci-info": "^2.0.0" } }, + "is-core-module": { + "version": "2.10.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.10.0.tgz", + "integrity": "sha512-Erxj2n/LDAZ7H8WNJXd9tw38GYM3dv8rk8Zcs+jJuxYTW7sozH+SS8NtrSjVL1/vpLvWi1hxy96IzjJ3EHTJJg==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-date-object": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", + "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, "requires": { "is-extglob": "^2.1.1" @@ -12640,6 +16326,12 @@ "is-path-inside": "^3.0.1" } }, + "is-negative-zero": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", + "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "dev": true + }, "is-npm": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", @@ -12652,6 +16344,15 @@ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", "dev": true }, + "is-number-object": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", + "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, "is-obj": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", @@ -12679,6 +16380,43 @@ "isobject": "^3.0.1" } }, + "is-regex": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", + "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-tostringtag": "^1.0.0" + } + }, + "is-shared-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", + "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, + "is-string": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", + "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", + "dev": true, + "requires": { + "has-tostringtag": "^1.0.0" + } + }, + "is-symbol": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", + "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", + "dev": true, + "requires": { + "has-symbols": "^1.0.2" + } + }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", @@ -12691,6 +16429,15 @@ "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", "dev": true }, + "is-weakref": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", + "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2" + } + }, "is-windows": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", @@ -12959,6 +16706,12 @@ "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, + "jsdoc-type-pratt-parser": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/jsdoc-type-pratt-parser/-/jsdoc-type-pratt-parser-3.1.0.tgz", + "integrity": "sha512-MgtD0ZiCDk9B+eI73BextfRrVQl0oyzRG8B2BjORts6jbunj4ScKPcyXGTbB6eXL4y9TzxCm6hyeLq/2ASzNdw==", + "dev": true + }, "json-buffer": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", @@ -12983,6 +16736,12 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "json-stable-stringify-without-jsonify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", + "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", + "dev": true + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -13064,6 +16823,16 @@ "package-json": "^6.3.0" } }, + "levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + } + }, "lie": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", @@ -13136,6 +16905,12 @@ "integrity": "sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=", "dev": true }, + "lodash.merge": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", + "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", + "dev": true + }, "log-symbols": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", @@ -13260,6 +17035,12 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", "dev": true }, + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true + }, "micromatch": { "version": "4.0.5", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", @@ -13312,9 +17093,9 @@ "dev": true }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha1-UWbihkV/AzBgZL5Ul+jbsMPTIIM=", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -13506,6 +17287,12 @@ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==" }, + "natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", + "dev": true + }, "neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -13555,6 +17342,18 @@ "integrity": "sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==", "dev": true }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dev": true, + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, "normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -13838,6 +17637,41 @@ "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "dev": true + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "dev": true + }, + "object.assign": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", + "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "has-symbols": "^1.0.3", + "object-keys": "^1.1.1" + } + }, + "object.values": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.5.tgz", + "integrity": "sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "es-abstract": "^1.19.1" + } + }, "on-finished": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", @@ -13871,6 +17705,20 @@ "integrity": "sha512-8AV/sCtuzUeTo8gQK5qDZzARrulB3egtLzFgteqB2tcT4Mw7B8Kt7JcDHmltjz6FOAHsvTevk70gZEbhM4ZS9Q==", "dev": true }, + "optionator": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", + "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", + "dev": true, + "requires": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.3" + } + }, "opts": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/opts/-/opts-2.0.2.tgz", @@ -14127,6 +17975,12 @@ } } }, + "pluralize": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/pluralize/-/pluralize-8.0.0.tgz", + "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==", + "dev": true + }, "pre-commit": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz", @@ -14138,6 +17992,12 @@ "which": "1.2.x" } }, + "prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true + }, "prepend-http": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", @@ -14233,6 +18093,12 @@ "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -14269,6 +18135,49 @@ "mute-stream": "~0.0.4" } }, + "read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dev": true, + "requires": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "dependencies": { + "type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "dev": true + } + } + }, + "read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dev": true, + "requires": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "dependencies": { + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + } + } + }, "readable-stream": { "version": "2.3.6", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", @@ -14302,6 +18211,29 @@ "resolve": "^1.1.6" } }, + "regexp-tree": { + "version": "0.1.24", + "resolved": "https://registry.npmjs.org/regexp-tree/-/regexp-tree-0.1.24.tgz", + "integrity": "sha512-s2aEVuLhvnVJW6s/iPgEGK6R+/xngd2jNQ+xy4bXNDKxZKJH6jpPHY6kVeVv1IeLCHgswRj+Kl3ELaDjG6V1iw==", + "dev": true + }, + "regexp.prototype.flags": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", + "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.3", + "functions-have-names": "^1.2.2" + } + }, + "regexpp": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", + "dev": true + }, "registry-auth-token": { "version": "4.2.1", "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", @@ -14400,15 +18332,6 @@ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, "supports-color": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", @@ -14521,12 +18444,14 @@ "dev": true }, "resolve": { - "version": "1.11.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz", - "integrity": "sha512-vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw==", + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", + "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", "dev": true, "requires": { - "path-parse": "^1.0.6" + "is-core-module": "^2.9.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "resolve-cwd": { @@ -14579,6 +18504,12 @@ "lowercase-keys": "^1.0.0" } }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, "revalidator": { "version": "0.1.8", "resolved": "https://registry.npmjs.org/revalidator/-/revalidator-0.1.8.tgz", @@ -14610,12 +18541,30 @@ } } }, + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", + "dev": true, + "requires": { + "queue-microtask": "^1.2.2" + } + }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, + "safe-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-2.1.1.tgz", + "integrity": "sha512-rx+x8AMzKb5Q5lQ95Zoi6ZbJqwCLkqi3XuJXp5P3rT8OEc6sZCJG5AE5dU3lsgRr/F4Bs31jSlVN+j5KrsGu9A==", + "dev": true, + "requires": { + "regexp-tree": "~0.1.1" + } + }, "safer-buffer": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", @@ -14791,6 +18740,17 @@ "vscode-textmate": "^6.0.0" } }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", @@ -14828,6 +18788,12 @@ } } }, + "slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "dev": true + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -14904,6 +18870,38 @@ } } }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dev": true, + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "dev": true + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dev": true, + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", + "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "dev": true + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -15017,6 +19015,28 @@ } } }, + "string.prototype.trimend": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", + "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, + "string.prototype.trimstart": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", + "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "define-properties": "^1.1.4", + "es-abstract": "^1.19.5" + } + }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", @@ -15056,6 +19076,12 @@ "has-flag": "^3.0.0" } }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true + }, "tapable": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.0.tgz", @@ -15128,6 +19154,12 @@ } } }, + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", + "dev": true + }, "tinydate": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/tinydate/-/tinydate-1.3.0.tgz", @@ -15471,6 +19503,15 @@ "integrity": "sha512-aSiJz7rGWNAQq7hjMK9ZYDuEawXupcCWgl3woQQSoDP2Oh8O4srWb/uO1PzzHIsrPEOqrjJ2sUb9FERfzuBabQ==", "dev": true }, + "type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "requires": { + "prelude-ls": "^1.2.1" + } + }, "type-detect": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-1.0.0.tgz", @@ -15536,6 +19577,18 @@ "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, + "unbox-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", + "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", + "dev": true, + "requires": { + "call-bind": "^1.0.2", + "has-bigints": "^1.0.2", + "has-symbols": "^1.0.3", + "which-boxed-primitive": "^1.0.2" + } + }, "unique-string": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", @@ -15697,6 +19750,16 @@ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", "dev": true }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, "verror": { "version": "1.10.0", "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", @@ -15893,6 +19956,19 @@ "isexe": "^2.0.0" } }, + "which-boxed-primitive": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", + "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", + "dev": true, + "requires": { + "is-bigint": "^1.0.1", + "is-boolean-object": "^1.1.0", + "is-number-object": "^1.0.4", + "is-string": "^1.0.5", + "is-symbol": "^1.0.3" + } + }, "which-module": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", @@ -15936,6 +20012,12 @@ } } }, + "word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "dev": true + }, "workerpool": { "version": "6.2.1", "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", diff --git a/package.json b/package.json index 1319943983..a4e785557e 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "test.coverage": "nyc npm test", "test.watch": "npm test -- --watch", "prepublishOnly": "npm run build --production", - "lint": "tslint --project .", + "lint": "eslint -c .eslintrc.js --ext .ts .", "build": "npm run webpack && npm run fix-types", "webpack": "rimraf ./build && webpack --config ./webpack.config.ts", "demo": "npm run build && npm run ts-node --skip-project ./demo", @@ -72,10 +72,19 @@ "@types/sinon": "^10.0.0", "@types/unzipper": "^0.10.4", "@types/webpack": "^5.0.0", + "@typescript-eslint/eslint-plugin": "^5.36.1", + "@typescript-eslint/eslint-plugin-tslint": "^5.36.1", + "@typescript-eslint/parser": "^5.36.1", "buffer": "^6.0.3", "chai": "^3.5.0", "cspell": "^6.2.2", "docsify-cli": "^4.3.0", + "eslint": "^8.23.0", + "eslint-plugin-import": "^2.26.0", + "eslint-plugin-jsdoc": "^39.3.6", + "eslint-plugin-no-null": "^1.0.2", + "eslint-plugin-prefer-arrow": "^1.2.3", + "eslint-plugin-unicorn": "^43.0.2", "glob": "^8.0.1", "jszip": "^3.1.5", "mocha": "^10.0.0", diff --git a/src/export/packer/next-compiler.ts b/src/export/packer/next-compiler.ts index 3179af9a2e..d81fbc4de8 100644 --- a/src/export/packer/next-compiler.ts +++ b/src/export/packer/next-compiler.ts @@ -38,7 +38,7 @@ export class Compiler { private readonly imageReplacer: ImageReplacer; private readonly numberingReplacer: NumberingReplacer; - constructor() { + public constructor() { this.formatter = new Formatter(); this.imageReplacer = new ImageReplacer(); this.numberingReplacer = new NumberingReplacer(); diff --git a/src/file/app-properties/app-properties.ts b/src/file/app-properties/app-properties.ts index 77f60ef67b..7774a155b1 100644 --- a/src/file/app-properties/app-properties.ts +++ b/src/file/app-properties/app-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { AppPropertiesAttributes } from "./app-properties-attributes"; export class AppProperties extends XmlComponent { - constructor() { + public constructor() { super("Properties"); this.root.push( diff --git a/src/file/border/border.ts b/src/file/border/border.ts index fe5cc604ab..8b3d5e25ec 100644 --- a/src/file/border/border.ts +++ b/src/file/border/border.ts @@ -33,7 +33,7 @@ export interface IBorderOptions { } export class BorderElement extends XmlComponent { - constructor(elementName: string, { color, size, space, style }: IBorderOptions) { + public constructor(elementName: string, { color, size, space, style }: IBorderOptions) { super(elementName); this.root.push( new BordersAttributes({ diff --git a/src/file/content-types/content-types.ts b/src/file/content-types/content-types.ts index 4437680d9a..76cd7e819b 100644 --- a/src/file/content-types/content-types.ts +++ b/src/file/content-types/content-types.ts @@ -4,7 +4,7 @@ import { Default } from "./default/default"; import { Override } from "./override/override"; export class ContentTypes extends XmlComponent { - constructor() { + public constructor() { super("Types"); this.root.push( diff --git a/src/file/content-types/default/default.ts b/src/file/content-types/default/default.ts index 673e3b0247..775300258c 100644 --- a/src/file/content-types/default/default.ts +++ b/src/file/content-types/default/default.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { DefaultAttributes } from "./default-attributes"; export class Default extends XmlComponent { - constructor(contentType: string, extension?: string) { + public constructor(contentType: string, extension?: string) { super("Default"); this.root.push( diff --git a/src/file/content-types/override/override.ts b/src/file/content-types/override/override.ts index 268a849c21..d28a40e473 100644 --- a/src/file/content-types/override/override.ts +++ b/src/file/content-types/override/override.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { OverrideAttributes } from "./override-attributes"; export class Override extends XmlComponent { - constructor(contentType: string, partName?: string) { + public constructor(contentType: string, partName?: string) { super("Override"); this.root.push( diff --git a/src/file/core-properties/properties.ts b/src/file/core-properties/properties.ts index c193236008..8a72bcabf4 100644 --- a/src/file/core-properties/properties.ts +++ b/src/file/core-properties/properties.ts @@ -64,7 +64,7 @@ export interface IPropertiesOptions { /* cSpell:enable */ export class CoreProperties extends XmlComponent { - constructor(options: Omit) { + public constructor(options: Omit) { super("cp:coreProperties"); this.root.push( new DocumentAttributes({ @@ -102,7 +102,7 @@ export class CoreProperties extends XmlComponent { } class TimestampElement extends XmlComponent { - constructor(name: string) { + public constructor(name: string) { super(name); this.root.push( new DocumentAttributes({ diff --git a/src/file/custom-properties/custom-properties.ts b/src/file/custom-properties/custom-properties.ts index 47d2abf11c..fbe7160e57 100644 --- a/src/file/custom-properties/custom-properties.ts +++ b/src/file/custom-properties/custom-properties.ts @@ -7,7 +7,7 @@ export class CustomProperties extends XmlComponent { private nextId: number; private readonly properties: CustomProperty[] = []; - constructor(properties: ICustomPropertyOptions[]) { + public constructor(properties: ICustomPropertyOptions[]) { super("Properties"); this.root.push( diff --git a/src/file/custom-properties/custom-property.ts b/src/file/custom-properties/custom-property.ts index 704d4c697d..65e926ad4a 100644 --- a/src/file/custom-properties/custom-property.ts +++ b/src/file/custom-properties/custom-property.ts @@ -7,7 +7,7 @@ export interface ICustomPropertyOptions { } export class CustomProperty extends XmlComponent { - constructor(id: number, properties: ICustomPropertyOptions) { + public constructor(id: number, properties: ICustomPropertyOptions) { super("property"); this.root.push( new CustomPropertyAttributes({ @@ -21,7 +21,7 @@ export class CustomProperty extends XmlComponent { } export class CustomPropertyValue extends XmlComponent { - constructor(value: string) { + public constructor(value: string) { super("vt:lpwstr"); this.root.push(value); } diff --git a/src/file/document-wrapper.ts b/src/file/document-wrapper.ts index c53c4e81a5..578e8c8f58 100644 --- a/src/file/document-wrapper.ts +++ b/src/file/document-wrapper.ts @@ -13,7 +13,7 @@ export class DocumentWrapper implements IViewWrapper { private readonly document: Document; private readonly relationships: Relationships; - constructor(options: IDocumentOptions) { + public constructor(options: IDocumentOptions) { this.document = new Document(options); this.relationships = new Relationships(); } diff --git a/src/file/document/body/body.ts b/src/file/document/body/body.ts index 8e8e84f290..cdda805405 100644 --- a/src/file/document/body/body.ts +++ b/src/file/document/body/body.ts @@ -6,7 +6,7 @@ import { ISectionPropertiesOptions, SectionProperties } from "./section-properti export class Body extends XmlComponent { private readonly sections: SectionProperties[] = []; - constructor() { + public constructor() { super("w:body"); } diff --git a/src/file/document/body/section-properties/properties/column.ts b/src/file/document/body/section-properties/properties/column.ts index 7ffaef6bdc..b0b12d9c8e 100644 --- a/src/file/document/body/section-properties/properties/column.ts +++ b/src/file/document/body/section-properties/properties/column.ts @@ -14,7 +14,7 @@ export class ColumnAttributes extends XmlAttributeComponent { } export class Column extends XmlComponent { - constructor({ width, space }: IColumnAttributes) { + public constructor({ width, space }: IColumnAttributes) { super("w:col"); this.root.push( new ColumnAttributes({ diff --git a/src/file/document/body/section-properties/properties/columns.ts b/src/file/document/body/section-properties/properties/columns.ts index 789e0f103e..875c806815 100644 --- a/src/file/document/body/section-properties/properties/columns.ts +++ b/src/file/document/body/section-properties/properties/columns.ts @@ -30,7 +30,7 @@ export class ColumnsAttributes extends XmlAttributeComponent } export class Columns extends XmlComponent { - constructor({ space, count, separate, equalWidth, children }: IColumnsAttributes) { + public constructor({ space, count, separate, equalWidth, children }: IColumnsAttributes) { super("w:cols"); this.root.push( new ColumnsAttributes({ diff --git a/src/file/document/body/section-properties/properties/doc-grid.ts b/src/file/document/body/section-properties/properties/doc-grid.ts index 5a9d3a26ed..0ce1b2b2db 100644 --- a/src/file/document/body/section-properties/properties/doc-grid.ts +++ b/src/file/document/body/section-properties/properties/doc-grid.ts @@ -38,7 +38,7 @@ export class DocGridAttributes extends XmlAttributeComponent // // export class PageBorders extends IgnoreIfEmptyXmlComponent { - constructor(options?: IPageBordersOptions) { + public constructor(options?: IPageBordersOptions) { super("w:pgBorders"); if (!options) { diff --git a/src/file/document/body/section-properties/properties/page-margin.ts b/src/file/document/body/section-properties/properties/page-margin.ts index a6e40fe80d..ed0044a417 100644 --- a/src/file/document/body/section-properties/properties/page-margin.ts +++ b/src/file/document/body/section-properties/properties/page-margin.ts @@ -33,7 +33,7 @@ export class PageMarginAttributes extends XmlAttributeComponent export class DocumentBackground extends XmlComponent { - constructor(options: IDocumentBackgroundOptions) { + public constructor(options: IDocumentBackgroundOptions) { super("w:background"); this.root.push( diff --git a/src/file/document/document.ts b/src/file/document/document.ts index 7d09551266..37e2f141eb 100644 --- a/src/file/document/document.ts +++ b/src/file/document/document.ts @@ -33,7 +33,7 @@ export interface IDocumentOptions { export class Document extends XmlComponent { private readonly body: Body; - constructor(options: IDocumentOptions) { + public constructor(options: IDocumentOptions) { super("w:document"); this.root.push( new DocumentAttributes({ diff --git a/src/file/drawing/anchor/anchor.ts b/src/file/drawing/anchor/anchor.ts index 7f712cc031..154965cdd7 100644 --- a/src/file/drawing/anchor/anchor.ts +++ b/src/file/drawing/anchor/anchor.ts @@ -37,7 +37,7 @@ import { AnchorAttributes } from "./anchor-attributes"; // // export class Anchor extends XmlComponent { - constructor(mediaData: IMediaData, transform: IMediaDataTransformation, drawingOptions: IDrawingOptions) { + public constructor(mediaData: IMediaData, transform: IMediaDataTransformation, drawingOptions: IDrawingOptions) { super("wp:anchor"); const floating: IFloating = { diff --git a/src/file/drawing/doc-properties/doc-properties.ts b/src/file/drawing/doc-properties/doc-properties.ts index c5ea22661b..45aaf919b6 100644 --- a/src/file/drawing/doc-properties/doc-properties.ts +++ b/src/file/drawing/doc-properties/doc-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { DocPropertiesAttributes } from "./doc-properties-attributes"; export class DocProperties extends XmlComponent { - constructor() { + public constructor() { super("wp:docPr"); this.root.push( diff --git a/src/file/drawing/drawing.ts b/src/file/drawing/drawing.ts index b31725adec..8fc08ff454 100644 --- a/src/file/drawing/drawing.ts +++ b/src/file/drawing/drawing.ts @@ -25,7 +25,7 @@ export interface IDrawingOptions { export class Drawing extends XmlComponent { private readonly inline: Inline; - constructor(imageData: IMediaData, drawingOptions: IDrawingOptions = {}) { + public constructor(imageData: IMediaData, drawingOptions: IDrawingOptions = {}) { super("w:drawing"); if (!drawingOptions.floating) { diff --git a/src/file/drawing/effect-extent/effect-extent.ts b/src/file/drawing/effect-extent/effect-extent.ts index 1d1e2b370d..209da9f1ff 100644 --- a/src/file/drawing/effect-extent/effect-extent.ts +++ b/src/file/drawing/effect-extent/effect-extent.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { EffectExtentAttributes } from "./effect-extent-attributes"; export class EffectExtent extends XmlComponent { - constructor() { + public constructor() { super("wp:effectExtent"); this.root.push( diff --git a/src/file/drawing/extent/extent.ts b/src/file/drawing/extent/extent.ts index 52a43d1642..2a4d80aff7 100644 --- a/src/file/drawing/extent/extent.ts +++ b/src/file/drawing/extent/extent.ts @@ -5,7 +5,7 @@ import { ExtentAttributes } from "./extent-attributes"; export class Extent extends XmlComponent { private readonly attributes: ExtentAttributes; - constructor(x: number, y: number) { + public constructor(x: number, y: number) { super("wp:extent"); this.attributes = new ExtentAttributes({ diff --git a/src/file/drawing/floating/align.ts b/src/file/drawing/floating/align.ts index 877aaa4496..a541293f5c 100644 --- a/src/file/drawing/floating/align.ts +++ b/src/file/drawing/floating/align.ts @@ -3,7 +3,7 @@ import { HorizontalPositionAlign, VerticalPositionAlign } from "@file/shared/ali import { XmlComponent } from "@file/xml-components"; export class Align extends XmlComponent { - constructor(value: HorizontalPositionAlign | VerticalPositionAlign) { + public constructor(value: HorizontalPositionAlign | VerticalPositionAlign) { super("wp:align"); this.root.push(value); } diff --git a/src/file/drawing/floating/horizontal-position.ts b/src/file/drawing/floating/horizontal-position.ts index d92edaad1f..eb2ccd3c56 100644 --- a/src/file/drawing/floating/horizontal-position.ts +++ b/src/file/drawing/floating/horizontal-position.ts @@ -13,7 +13,7 @@ class HorizontalPositionAttributes extends XmlAttributeComponent<{ } export class HorizontalPosition extends XmlComponent { - constructor(horizontalPosition: IHorizontalPositionOptions) { + public constructor(horizontalPosition: IHorizontalPositionOptions) { super("wp:positionH"); this.root.push( diff --git a/src/file/drawing/floating/position-offset.ts b/src/file/drawing/floating/position-offset.ts index bb8f74ac7b..aa49e75fe2 100644 --- a/src/file/drawing/floating/position-offset.ts +++ b/src/file/drawing/floating/position-offset.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; export class PositionOffset extends XmlComponent { - constructor(offsetValue: number) { + public constructor(offsetValue: number) { super("wp:posOffset"); this.root.push(offsetValue.toString()); } diff --git a/src/file/drawing/floating/simple-pos.ts b/src/file/drawing/floating/simple-pos.ts index 335f374b84..85a92a72c0 100644 --- a/src/file/drawing/floating/simple-pos.ts +++ b/src/file/drawing/floating/simple-pos.ts @@ -12,7 +12,7 @@ class SimplePosAttributes extends XmlAttributeComponent<{ } export class SimplePos extends XmlComponent { - constructor() { + public constructor() { super("wp:simplePos"); // NOTE: It's not fully supported in Microsoft Word, but this element is needed anyway diff --git a/src/file/drawing/floating/vertical-position.ts b/src/file/drawing/floating/vertical-position.ts index 26a2046d5a..d8a30729b1 100644 --- a/src/file/drawing/floating/vertical-position.ts +++ b/src/file/drawing/floating/vertical-position.ts @@ -13,7 +13,7 @@ class VerticalPositionAttributes extends XmlAttributeComponent<{ } export class VerticalPosition extends XmlComponent { - constructor(verticalPosition: IVerticalPositionOptions) { + public constructor(verticalPosition: IVerticalPositionOptions) { super("wp:positionV"); this.root.push( diff --git a/src/file/drawing/graphic-frame/graphic-frame-locks/graphic-frame-locks.ts b/src/file/drawing/graphic-frame/graphic-frame-locks/graphic-frame-locks.ts index 9f37290a36..c9b0b33922 100644 --- a/src/file/drawing/graphic-frame/graphic-frame-locks/graphic-frame-locks.ts +++ b/src/file/drawing/graphic-frame/graphic-frame-locks/graphic-frame-locks.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { GraphicFrameLockAttributes } from "./graphic-frame-lock-attributes"; export class GraphicFrameLocks extends XmlComponent { - constructor() { + public constructor() { super("a:graphicFrameLocks"); this.root.push( diff --git a/src/file/drawing/graphic-frame/graphic-frame-properties.ts b/src/file/drawing/graphic-frame/graphic-frame-properties.ts index cff5006483..90935ed533 100644 --- a/src/file/drawing/graphic-frame/graphic-frame-properties.ts +++ b/src/file/drawing/graphic-frame/graphic-frame-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { GraphicFrameLocks } from "./graphic-frame-locks/graphic-frame-locks"; export class GraphicFrameProperties extends XmlComponent { - constructor() { + public constructor() { super("wp:cNvGraphicFramePr"); this.root.push(new GraphicFrameLocks()); diff --git a/src/file/drawing/inline/graphic/graphic-data/graphic-data.ts b/src/file/drawing/inline/graphic/graphic-data/graphic-data.ts index 3de43021aa..94a1eaea49 100644 --- a/src/file/drawing/inline/graphic/graphic-data/graphic-data.ts +++ b/src/file/drawing/inline/graphic/graphic-data/graphic-data.ts @@ -7,7 +7,7 @@ import { Pic } from "./pic"; export class GraphicData extends XmlComponent { private readonly pic: Pic; - constructor(mediaData: IMediaData, transform: IMediaDataTransformation) { + public constructor(mediaData: IMediaData, transform: IMediaDataTransformation) { super("a:graphicData"); this.root.push( diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip-fill.ts b/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip-fill.ts index ed5a3c012a..00b90fcef5 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip-fill.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip-fill.ts @@ -6,7 +6,7 @@ import { SourceRectangle } from "./source-rectangle"; import { Stretch } from "./stretch"; export class BlipFill extends XmlComponent { - constructor(mediaData: IMediaData) { + public constructor(mediaData: IMediaData) { super("pic:blipFill"); this.root.push(new Blip(mediaData)); diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip.ts b/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip.ts index 3891ce9dc0..8db38d6762 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/blip/blip.ts @@ -12,7 +12,7 @@ class BlipAttributes extends XmlAttributeComponent<{ } export class Blip extends XmlComponent { - constructor(mediaData: IMediaData) { + public constructor(mediaData: IMediaData) { super("a:blip"); this.root.push( new BlipAttributes({ diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/blip/source-rectangle.ts b/src/file/drawing/inline/graphic/graphic-data/pic/blip/source-rectangle.ts index abdbe442bb..7ea1e64bcc 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/blip/source-rectangle.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/blip/source-rectangle.ts @@ -1,7 +1,7 @@ import { XmlComponent } from "@file/xml-components"; export class SourceRectangle extends XmlComponent { - constructor() { + public constructor() { super("a:srcRect"); } } diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/blip/stretch.ts b/src/file/drawing/inline/graphic/graphic-data/pic/blip/stretch.ts index 2805e0db22..71ca6c5e8d 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/blip/stretch.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/blip/stretch.ts @@ -1,13 +1,13 @@ import { XmlComponent } from "@file/xml-components"; class FillRectangle extends XmlComponent { - constructor() { + public constructor() { super("a:fillRect"); } } export class Stretch extends XmlComponent { - constructor() { + public constructor() { super("a:stretch"); this.root.push(new FillRectangle()); } diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/child-non-visual-pic-properties.ts b/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/child-non-visual-pic-properties.ts index 38a544d188..979272cf8f 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/child-non-visual-pic-properties.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/child-non-visual-pic-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { PicLocks } from "./pic-locks/pic-locks"; export class ChildNonVisualProperties extends XmlComponent { - constructor() { + public constructor() { super("pic:cNvPicPr"); this.root.push(new PicLocks()); diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/pic-locks/pic-locks.ts b/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/pic-locks/pic-locks.ts index 98f7d01b9c..b507c8e7b1 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/pic-locks/pic-locks.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/child-non-visual-pic-properties/pic-locks/pic-locks.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { PicLocksAttributes } from "./pic-locks-attributes"; export class PicLocks extends XmlComponent { - constructor() { + public constructor() { super("a:picLocks"); this.root.push( new PicLocksAttributes({ diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-pic-properties.ts b/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-pic-properties.ts index c8c1b46ccd..a5bc3c24dd 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-pic-properties.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-pic-properties.ts @@ -3,7 +3,7 @@ import { ChildNonVisualProperties } from "./child-non-visual-pic-properties/chil import { NonVisualProperties } from "./non-visual-properties/non-visual-properties"; export class NonVisualPicProperties extends XmlComponent { - constructor() { + public constructor() { super("pic:nvPicPr"); this.root.push(new NonVisualProperties()); diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties.ts b/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties.ts index 6b43562540..0b2b5a249c 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/non-visual-pic-properties/non-visual-properties/non-visual-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; import { NonVisualPropertiesAttributes } from "./non-visual-properties-attributes"; export class NonVisualProperties extends XmlComponent { - constructor() { + public constructor() { super("pic:cNvPr"); this.root.push( diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/pic.ts b/src/file/drawing/inline/graphic/graphic-data/pic/pic.ts index 545297eef2..8d49a71599 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/pic.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/pic.ts @@ -8,7 +8,7 @@ import { PicAttributes } from "./pic-attributes"; import { ShapeProperties } from "./shape-properties/shape-properties"; export class Pic extends XmlComponent { - constructor(mediaData: IMediaData, transform: IMediaDataTransformation) { + public constructor(mediaData: IMediaData, transform: IMediaDataTransformation) { super("pic:pic"); this.root.push( diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/extents/extents.ts b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/extents/extents.ts index 21e0b1e10a..b87cbe5d83 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/extents/extents.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/extents/extents.ts @@ -5,7 +5,7 @@ import { ExtentsAttributes } from "./extents-attributes"; export class Extents extends XmlComponent { private readonly attributes: ExtentsAttributes; - constructor(x: number, y: number) { + public constructor(x: number, y: number) { super("a:ext"); this.attributes = new ExtentsAttributes({ diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/form.ts b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/form.ts index f11073c47d..ca413ca958 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/form.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/form.ts @@ -21,7 +21,7 @@ export class FormAttributes extends XmlAttributeComponent<{ export class Form extends XmlComponent { private readonly extents: Extents; - constructor(options: IMediaDataTransformation) { + public constructor(options: IMediaDataTransformation) { super("a:xfrm"); this.root.push( diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/offset/off.ts b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/offset/off.ts index 1b25c1a1dd..eef5b9e0f8 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/offset/off.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/form/offset/off.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { OffsetAttributes } from "./off-attributes"; export class Offset extends XmlComponent { - constructor() { + public constructor() { super("a:off"); this.root.push( diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/no-fill.ts b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/no-fill.ts index 6cf7225676..808a54f84a 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/no-fill.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/no-fill.ts @@ -1,7 +1,7 @@ import { XmlComponent } from "@file/xml-components"; export class NoFill extends XmlComponent { - constructor() { + public constructor() { super("a:noFill"); } } diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/outline.ts b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/outline.ts index 5b33a412d1..367934e6a4 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/outline.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/outline/outline.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { NoFill } from "./no-fill"; export class Outline extends XmlComponent { - constructor() { + public constructor() { super("a:ln"); this.root.push(new NoFill()); diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/adjustment-values/adjustment-values.ts b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/adjustment-values/adjustment-values.ts index 9ae34cfdad..063d9899e1 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/adjustment-values/adjustment-values.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/adjustment-values/adjustment-values.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; export class AdjustmentValues extends XmlComponent { - constructor() { + public constructor() { super("a:avLst"); } } diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/preset-geometry.ts b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/preset-geometry.ts index a826766c76..816bdedcda 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/preset-geometry.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/preset-geometry/preset-geometry.ts @@ -4,7 +4,7 @@ import { AdjustmentValues } from "./adjustment-values/adjustment-values"; import { PresetGeometryAttributes } from "./preset-geometry-attributes"; export class PresetGeometry extends XmlComponent { - constructor() { + public constructor() { super("a:prstGeom"); this.root.push( diff --git a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/shape-properties.ts b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/shape-properties.ts index 6c228f169c..f5f2b8b3e7 100644 --- a/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/shape-properties.ts +++ b/src/file/drawing/inline/graphic/graphic-data/pic/shape-properties/shape-properties.ts @@ -10,7 +10,7 @@ import { ShapePropertiesAttributes } from "./shape-properties-attributes"; export class ShapeProperties extends XmlComponent { private readonly form: Form; - constructor(transform: IMediaDataTransformation) { + public constructor(transform: IMediaDataTransformation) { super("pic:spPr"); this.root.push( diff --git a/src/file/drawing/inline/graphic/graphic.ts b/src/file/drawing/inline/graphic/graphic.ts index 5e21d257ed..a1e3cd8057 100644 --- a/src/file/drawing/inline/graphic/graphic.ts +++ b/src/file/drawing/inline/graphic/graphic.ts @@ -14,7 +14,7 @@ class GraphicAttributes extends XmlAttributeComponent<{ export class Graphic extends XmlComponent { private readonly data: GraphicData; - constructor(mediaData: IMediaData, transform: IMediaDataTransformation) { + public constructor(mediaData: IMediaData, transform: IMediaDataTransformation) { super("a:graphic"); this.root.push( new GraphicAttributes({ diff --git a/src/file/drawing/inline/inline.ts b/src/file/drawing/inline/inline.ts index 2b576d4d0b..b76781d465 100644 --- a/src/file/drawing/inline/inline.ts +++ b/src/file/drawing/inline/inline.ts @@ -26,7 +26,7 @@ export class Inline extends XmlComponent { private readonly extent: Extent; private readonly graphic: Graphic; - constructor(mediaData: IMediaData, transform: IMediaDataTransformation) { + public constructor(mediaData: IMediaData, transform: IMediaDataTransformation) { super("wp:inline"); this.root.push( diff --git a/src/file/drawing/text-wrap/wrap-none.ts b/src/file/drawing/text-wrap/wrap-none.ts index 282bc5fdaa..248ed6f90c 100644 --- a/src/file/drawing/text-wrap/wrap-none.ts +++ b/src/file/drawing/text-wrap/wrap-none.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; export class WrapNone extends XmlComponent { - constructor() { + public constructor() { super("wp:wrapNone"); } } diff --git a/src/file/drawing/text-wrap/wrap-square.ts b/src/file/drawing/text-wrap/wrap-square.ts index 8a866cf6fe..74bc46d90a 100644 --- a/src/file/drawing/text-wrap/wrap-square.ts +++ b/src/file/drawing/text-wrap/wrap-square.ts @@ -19,7 +19,7 @@ class WrapSquareAttributes extends XmlAttributeComponent } export class WrapSquare extends XmlComponent { - constructor( + public constructor( textWrapping: ITextWrapping, margins: IMargins = { top: 0, diff --git a/src/file/drawing/text-wrap/wrap-tight.ts b/src/file/drawing/text-wrap/wrap-tight.ts index d0e8d70914..67b878e067 100644 --- a/src/file/drawing/text-wrap/wrap-tight.ts +++ b/src/file/drawing/text-wrap/wrap-tight.ts @@ -14,7 +14,7 @@ class WrapTightAttributes extends XmlAttributeComponent<{ } export class WrapTight extends XmlComponent { - constructor( + public constructor( margins: IMargins = { top: 0, bottom: 0, diff --git a/src/file/drawing/text-wrap/wrap-top-and-bottom.ts b/src/file/drawing/text-wrap/wrap-top-and-bottom.ts index 5b0f53ddec..6acc374f5a 100644 --- a/src/file/drawing/text-wrap/wrap-top-and-bottom.ts +++ b/src/file/drawing/text-wrap/wrap-top-and-bottom.ts @@ -14,7 +14,7 @@ class WrapTopAndBottomAttributes extends XmlAttributeComponent<{ } export class WrapTopAndBottom extends XmlComponent { - constructor( + public constructor( margins: IMargins = { top: 0, bottom: 0, diff --git a/src/file/file.ts b/src/file/file.ts index b640ba9b33..481c8a857f 100644 --- a/src/file/file.ts +++ b/src/file/file.ts @@ -55,7 +55,7 @@ export class File { private readonly styles: Styles; private readonly comments: Comments; - constructor(options: IPropertiesOptions, fileProperties: IFileProperties = {}) { + public constructor(options: IPropertiesOptions, fileProperties: IFileProperties = {}) { this.coreProperties = new CoreProperties({ ...options, creator: options.creator ?? "Un-named", diff --git a/src/file/footer-wrapper.ts b/src/file/footer-wrapper.ts index 4b55f970d3..42214267d7 100644 --- a/src/file/footer-wrapper.ts +++ b/src/file/footer-wrapper.ts @@ -17,7 +17,7 @@ export class FooterWrapper implements IViewWrapper { private readonly footer: Footer; private readonly relationships: Relationships; - constructor(private readonly media: Media, referenceId: number, initContent?: XmlComponent) { + public constructor(private readonly media: Media, referenceId: number, initContent?: XmlComponent) { this.footer = new Footer(referenceId, initContent); this.relationships = new Relationships(); } diff --git a/src/file/footer/footer.ts b/src/file/footer/footer.ts index ce77b6c789..fc1607466b 100644 --- a/src/file/footer/footer.ts +++ b/src/file/footer/footer.ts @@ -7,7 +7,7 @@ import { FooterAttributes } from "./footer-attributes"; export class Footer extends InitializableXmlComponent { private readonly refId: number; - constructor(referenceNumber: number, initContent?: XmlComponent) { + public constructor(referenceNumber: number, initContent?: XmlComponent) { super("w:ftr", initContent); this.refId = referenceNumber; if (!initContent) { diff --git a/src/file/footnotes-wrapper.ts b/src/file/footnotes-wrapper.ts index c76a8957c2..b763865964 100644 --- a/src/file/footnotes-wrapper.ts +++ b/src/file/footnotes-wrapper.ts @@ -6,7 +6,7 @@ export class FootnotesWrapper implements IViewWrapper { private readonly footnotess: FootNotes; private readonly relationships: Relationships; - constructor() { + public constructor() { this.footnotess = new FootNotes(); this.relationships = new Relationships(); } diff --git a/src/file/footnotes/footnote/footnote.ts b/src/file/footnotes/footnote/footnote.ts index 2014c4d085..4edd5b0419 100644 --- a/src/file/footnotes/footnote/footnote.ts +++ b/src/file/footnotes/footnote/footnote.ts @@ -16,7 +16,7 @@ export interface IFootnoteOptions { } export class Footnote extends XmlComponent { - constructor(options: IFootnoteOptions) { + public constructor(options: IFootnoteOptions) { super("w:footnote"); this.root.push( new FootnoteAttributes({ diff --git a/src/file/footnotes/footnote/run/continuation-seperator-run.ts b/src/file/footnotes/footnote/run/continuation-seperator-run.ts index 17b55a8a3b..e70f24f70e 100644 --- a/src/file/footnotes/footnote/run/continuation-seperator-run.ts +++ b/src/file/footnotes/footnote/run/continuation-seperator-run.ts @@ -2,7 +2,7 @@ import { Run } from "@file/paragraph"; import { ContinuationSeperator } from "./continuation-seperator"; export class ContinuationSeperatorRun extends Run { - constructor() { + public constructor() { super({}); this.root.push(new ContinuationSeperator()); diff --git a/src/file/footnotes/footnote/run/continuation-seperator.ts b/src/file/footnotes/footnote/run/continuation-seperator.ts index 2a085e7032..ebcc5994fe 100644 --- a/src/file/footnotes/footnote/run/continuation-seperator.ts +++ b/src/file/footnotes/footnote/run/continuation-seperator.ts @@ -1,7 +1,7 @@ import { XmlComponent } from "@file/xml-components"; export class ContinuationSeperator extends XmlComponent { - constructor() { + public constructor() { super("w:continuationSeparator"); } } diff --git a/src/file/footnotes/footnote/run/footnote-ref-run.ts b/src/file/footnotes/footnote/run/footnote-ref-run.ts index 2623875e99..bec275109e 100644 --- a/src/file/footnotes/footnote/run/footnote-ref-run.ts +++ b/src/file/footnotes/footnote/run/footnote-ref-run.ts @@ -3,7 +3,7 @@ import { Run } from "@file/paragraph"; import { FootnoteRef } from "./footnote-ref"; export class FootnoteRefRun extends Run { - constructor() { + public constructor() { super({ style: "FootnoteReference", }); diff --git a/src/file/footnotes/footnote/run/footnote-ref.ts b/src/file/footnotes/footnote/run/footnote-ref.ts index 9076bf1dae..9ec59a0a82 100644 --- a/src/file/footnotes/footnote/run/footnote-ref.ts +++ b/src/file/footnotes/footnote/run/footnote-ref.ts @@ -1,7 +1,7 @@ import { XmlComponent } from "@file/xml-components"; export class FootnoteRef extends XmlComponent { - constructor() { + public constructor() { super("w:footnoteRef"); } } diff --git a/src/file/footnotes/footnote/run/reference-run.ts b/src/file/footnotes/footnote/run/reference-run.ts index ebb4c7510c..25fe9edd14 100644 --- a/src/file/footnotes/footnote/run/reference-run.ts +++ b/src/file/footnotes/footnote/run/reference-run.ts @@ -10,7 +10,7 @@ export class FootNoteReferenceRunAttributes extends XmlAttributeComponent<{ } export class FootnoteReference extends XmlComponent { - constructor(id: number) { + public constructor(id: number) { super("w:footnoteReference"); this.root.push( @@ -22,7 +22,7 @@ export class FootnoteReference extends XmlComponent { } export class FootnoteReferenceRun extends Run { - constructor(id: number) { + public constructor(id: number) { super({ style: "FootnoteReference" }); this.root.push(new FootnoteReference(id)); diff --git a/src/file/footnotes/footnote/run/seperator-run.ts b/src/file/footnotes/footnote/run/seperator-run.ts index 78c51545d1..45ce385884 100644 --- a/src/file/footnotes/footnote/run/seperator-run.ts +++ b/src/file/footnotes/footnote/run/seperator-run.ts @@ -2,7 +2,7 @@ import { Run } from "@file/paragraph"; import { Seperator } from "./seperator"; export class SeperatorRun extends Run { - constructor() { + public constructor() { super({}); this.root.push(new Seperator()); diff --git a/src/file/footnotes/footnote/run/seperator.ts b/src/file/footnotes/footnote/run/seperator.ts index 3847a4dc91..c4a6d8d07c 100644 --- a/src/file/footnotes/footnote/run/seperator.ts +++ b/src/file/footnotes/footnote/run/seperator.ts @@ -1,7 +1,7 @@ import { XmlComponent } from "@file/xml-components"; export class Seperator extends XmlComponent { - constructor() { + public constructor() { super("w:separator"); } } diff --git a/src/file/footnotes/footnotes.ts b/src/file/footnotes/footnotes.ts index 29bac58cfc..a963b9cf82 100644 --- a/src/file/footnotes/footnotes.ts +++ b/src/file/footnotes/footnotes.ts @@ -7,7 +7,7 @@ import { SeperatorRun } from "./footnote/run/seperator-run"; import { FootnotesAttributes } from "./footnotes-attributes"; export class FootNotes extends XmlComponent { - constructor() { + public constructor() { super("w:footnotes"); this.root.push( diff --git a/src/file/header-wrapper.ts b/src/file/header-wrapper.ts index 371dc028f2..a74a1e97fb 100644 --- a/src/file/header-wrapper.ts +++ b/src/file/header-wrapper.ts @@ -17,7 +17,7 @@ export class HeaderWrapper implements IViewWrapper { private readonly header: Header; private readonly relationships: Relationships; - constructor(private readonly media: Media, referenceId: number, initContent?: XmlComponent) { + public constructor(private readonly media: Media, referenceId: number, initContent?: XmlComponent) { this.header = new Header(referenceId, initContent); this.relationships = new Relationships(); } diff --git a/src/file/header.ts b/src/file/header.ts index 5f59ae2bec..1d9c3a4f9a 100644 --- a/src/file/header.ts +++ b/src/file/header.ts @@ -6,9 +6,9 @@ export interface IHeaderOptions { } export class Header { - constructor(public readonly options: IHeaderOptions = { children: [] }) {} + public constructor(public readonly options: IHeaderOptions = { children: [] }) {} } export class Footer { - constructor(public readonly options: IHeaderOptions = { children: [] }) {} + public constructor(public readonly options: IHeaderOptions = { children: [] }) {} } diff --git a/src/file/header/header.ts b/src/file/header/header.ts index 31ca0d7854..e1f65eadbe 100644 --- a/src/file/header/header.ts +++ b/src/file/header/header.ts @@ -7,7 +7,7 @@ import { HeaderAttributes } from "./header-attributes"; export class Header extends InitializableXmlComponent { private readonly refId: number; - constructor(referenceNumber: number, initContent?: XmlComponent) { + public constructor(referenceNumber: number, initContent?: XmlComponent) { super("w:hdr", initContent); this.refId = referenceNumber; diff --git a/src/file/media/media.ts b/src/file/media/media.ts index 8e366f4608..8c01c9062b 100644 --- a/src/file/media/media.ts +++ b/src/file/media/media.ts @@ -15,7 +15,7 @@ export interface IMediaTransformation { export class Media { private readonly map: Map; - constructor() { + public constructor() { this.map = new Map(); } diff --git a/src/file/numbering/abstract-numbering.ts b/src/file/numbering/abstract-numbering.ts index bf692c9602..b3e5be265b 100644 --- a/src/file/numbering/abstract-numbering.ts +++ b/src/file/numbering/abstract-numbering.ts @@ -32,7 +32,7 @@ class AbstractNumberingAttributes extends XmlAttributeComponent<{ export class AbstractNumbering extends XmlComponent { public readonly id: number; - constructor(id: number, levelOptions: ILevelsOptions[]) { + public constructor(id: number, levelOptions: ILevelsOptions[]) { super("w:abstractNum"); this.root.push( new AbstractNumberingAttributes({ diff --git a/src/file/numbering/level.ts b/src/file/numbering/level.ts index 225a1f2004..0e11a845cb 100644 --- a/src/file/numbering/level.ts +++ b/src/file/numbering/level.ts @@ -38,7 +38,7 @@ class LevelAttributes extends XmlAttributeComponent<{ // // class NumberFormat extends XmlComponent { - constructor(value: string) { + public constructor(value: string) { super("w:numFmt"); this.root.push( new Attributes({ @@ -53,7 +53,7 @@ class NumberFormat extends XmlComponent { // // class LevelText extends XmlComponent { - constructor(value: string) { + public constructor(value: string) { super("w:lvlText"); this.root.push( new Attributes({ @@ -64,7 +64,7 @@ class LevelText extends XmlComponent { } class LevelJc extends XmlComponent { - constructor(value: AlignmentType) { + public constructor(value: AlignmentType) { super("w:lvlJc"); this.root.push( new Attributes({ @@ -104,7 +104,7 @@ export interface ILevelsOptions { // // class Suffix extends XmlComponent { - constructor(value: LevelSuffix) { + public constructor(value: LevelSuffix) { super("w:suff"); this.root.push( new Attributes({ @@ -137,7 +137,7 @@ export class LevelBase extends XmlComponent { private readonly paragraphProperties: ParagraphProperties; private readonly runProperties: RunProperties; - constructor({ level, format, text, alignment = AlignmentType.START, start = 1, style, suffix }: ILevelsOptions) { + public constructor({ level, format, text, alignment = AlignmentType.START, start = 1, style, suffix }: ILevelsOptions) { super("w:lvl"); this.root.push(new NumberValueElement("w:start", decimalNumber(start))); @@ -180,7 +180,7 @@ export class LevelBase extends XmlComponent { export class Level extends LevelBase { // This is the level that sits under abstractNum. We make a // handful of properties required - constructor(options: ILevelsOptions) { + public constructor(options: ILevelsOptions) { super(options); } } diff --git a/src/file/numbering/multi-level-type.ts b/src/file/numbering/multi-level-type.ts index 7419d84432..5055c8f6c3 100644 --- a/src/file/numbering/multi-level-type.ts +++ b/src/file/numbering/multi-level-type.ts @@ -15,7 +15,7 @@ import { Attributes, XmlComponent } from "@file/xml-components"; // // export class MultiLevelType extends XmlComponent { - constructor(value: string) { + public constructor(value: string) { super("w:multiLevelType"); this.root.push( new Attributes({ diff --git a/src/file/numbering/num.ts b/src/file/numbering/num.ts index 3f07074596..983544b447 100644 --- a/src/file/numbering/num.ts +++ b/src/file/numbering/num.ts @@ -2,7 +2,7 @@ import { Attributes, XmlAttributeComponent, XmlComponent } from "@file/xml-compo import { decimalNumber } from "@util/values"; class AbstractNumId extends XmlComponent { - constructor(value: number) { + public constructor(value: number) { super("w:abstractNumId"); this.root.push( new Attributes({ @@ -45,7 +45,7 @@ export class ConcreteNumbering extends XmlComponent { public readonly reference: string; public readonly instance: number; - constructor(options: IConcreteNumberingOptions) { + public constructor(options: IConcreteNumberingOptions) { super("w:num"); this.numId = options.numId; @@ -71,7 +71,7 @@ class LevelOverrideAttributes extends XmlAttributeComponent<{ readonly ilvl: num } export class LevelOverride extends XmlComponent { - constructor(levelNum: number, start?: number) { + public constructor(levelNum: number, start?: number) { super("w:lvlOverride"); this.root.push(new LevelOverrideAttributes({ ilvl: levelNum })); if (start !== undefined) { @@ -85,7 +85,7 @@ class StartOverrideAttributes extends XmlAttributeComponent<{ readonly val: numb } class StartOverride extends XmlComponent { - constructor(start: number) { + public constructor(start: number) { super("w:startOverride"); this.root.push(new StartOverrideAttributes({ val: start })); } diff --git a/src/file/numbering/numbering.ts b/src/file/numbering/numbering.ts index f323745db1..6e0e61836d 100644 --- a/src/file/numbering/numbering.ts +++ b/src/file/numbering/numbering.ts @@ -31,7 +31,7 @@ export class Numbering extends XmlComponent { private readonly concreteNumberingMap = new Map(); private readonly referenceConfigMap = new Map(); - constructor(options: INumberingOptions) { + public constructor(options: INumberingOptions) { super("w:numbering"); this.root.push( new DocumentAttributes({ diff --git a/src/file/paragraph/formatting/alignment.ts b/src/file/paragraph/formatting/alignment.ts index 16cb3dc2da..5684509066 100644 --- a/src/file/paragraph/formatting/alignment.ts +++ b/src/file/paragraph/formatting/alignment.ts @@ -18,7 +18,7 @@ export class AlignmentAttributes extends XmlAttributeComponent<{ readonly val: A } export class Alignment extends XmlComponent { - constructor(type: AlignmentType) { + public constructor(type: AlignmentType) { super("w:jc"); this.root.push(new AlignmentAttributes({ val: type })); } diff --git a/src/file/paragraph/formatting/border.ts b/src/file/paragraph/formatting/border.ts index 2fe58082fc..9cef69b6b2 100644 --- a/src/file/paragraph/formatting/border.ts +++ b/src/file/paragraph/formatting/border.ts @@ -10,7 +10,7 @@ export interface IBordersOptions { } export class Border extends IgnoreIfEmptyXmlComponent { - constructor(options: IBordersOptions) { + public constructor(options: IBordersOptions) { super("w:pBdr"); if (options.top) { @@ -32,7 +32,7 @@ export class Border extends IgnoreIfEmptyXmlComponent { } export class ThematicBreak extends XmlComponent { - constructor() { + public constructor() { super("w:pBdr"); const bottom = new BorderElement("w:bottom", { color: "auto", diff --git a/src/file/paragraph/formatting/break.ts b/src/file/paragraph/formatting/break.ts index 8792d13b58..8319407a6c 100644 --- a/src/file/paragraph/formatting/break.ts +++ b/src/file/paragraph/formatting/break.ts @@ -9,7 +9,7 @@ enum BreakType { } class Break extends XmlComponent { - constructor(type: BreakType) { + public constructor(type: BreakType) { super("w:br"); this.root.push( new Attributes({ @@ -20,14 +20,14 @@ class Break extends XmlComponent { } export class PageBreak extends Run { - constructor() { + public constructor() { super({}); this.root.push(new Break(BreakType.PAGE)); } } export class ColumnBreak extends Run { - constructor() { + public constructor() { super({}); this.root.push(new Break(BreakType.COLUMN)); } @@ -37,7 +37,7 @@ export class ColumnBreak extends Run { * Add page break before the paragraph if there is no one added before. */ export class PageBreakBefore extends XmlComponent { - constructor() { + public constructor() { super("w:pageBreakBefore"); } } diff --git a/src/file/paragraph/formatting/indent.ts b/src/file/paragraph/formatting/indent.ts index b868192347..daa5d2925e 100644 --- a/src/file/paragraph/formatting/indent.ts +++ b/src/file/paragraph/formatting/indent.ts @@ -41,7 +41,7 @@ class IndentAttributes extends XmlAttributeComponent export class Indent extends XmlComponent { - constructor({ start, end, left, right, hanging, firstLine }: IIndentAttributesProperties) { + public constructor({ start, end, left, right, hanging, firstLine }: IIndentAttributesProperties) { super("w:ind"); this.root.push( new IndentAttributes({ diff --git a/src/file/paragraph/formatting/spacing.ts b/src/file/paragraph/formatting/spacing.ts index 5a893d7018..70bace1fcc 100644 --- a/src/file/paragraph/formatting/spacing.ts +++ b/src/file/paragraph/formatting/spacing.ts @@ -25,7 +25,7 @@ class SpacingAttributes extends XmlAttributeComponent { } export class Spacing extends XmlComponent { - constructor(options: ISpacingProperties) { + public constructor(options: ISpacingProperties) { super("w:spacing"); this.root.push(new SpacingAttributes(options)); } diff --git a/src/file/paragraph/formatting/style.ts b/src/file/paragraph/formatting/style.ts index a6dc0c1ab7..d571ae9729 100644 --- a/src/file/paragraph/formatting/style.ts +++ b/src/file/paragraph/formatting/style.ts @@ -11,7 +11,7 @@ export enum HeadingLevel { } export class Style extends XmlComponent { - constructor(styleId: string) { + public constructor(styleId: string) { super("w:pStyle"); this.root.push( new Attributes({ diff --git a/src/file/paragraph/formatting/tab-stop.ts b/src/file/paragraph/formatting/tab-stop.ts index 31eab5d33a..4e8fe3436f 100644 --- a/src/file/paragraph/formatting/tab-stop.ts +++ b/src/file/paragraph/formatting/tab-stop.ts @@ -2,7 +2,7 @@ import { XmlAttributeComponent, XmlComponent } from "@file/xml-components"; export class TabStop extends XmlComponent { - constructor(type: TabStopType, position: number, leader?: LeaderType) { + public constructor(type: TabStopType, position: number, leader?: LeaderType) { super("w:tabs"); this.root.push(new TabStopItem(type, position, leader)); } @@ -41,7 +41,7 @@ export class TabAttributes extends XmlAttributeComponent<{ } export class TabStopItem extends XmlComponent { - constructor(value: TabStopType, position: string | number, leader?: LeaderType) { + public constructor(value: TabStopType, position: string | number, leader?: LeaderType) { super("w:tab"); this.root.push( new TabAttributes({ diff --git a/src/file/paragraph/formatting/unordered-list.ts b/src/file/paragraph/formatting/unordered-list.ts index a2a34d07a4..346fffed53 100644 --- a/src/file/paragraph/formatting/unordered-list.ts +++ b/src/file/paragraph/formatting/unordered-list.ts @@ -1,7 +1,7 @@ import { Attributes, XmlComponent } from "@file/xml-components"; export class NumberProperties extends XmlComponent { - constructor(numberId: number | string, indentLevel: number) { + public constructor(numberId: number | string, indentLevel: number) { super("w:numPr"); this.root.push(new IndentLevel(indentLevel)); this.root.push(new NumberId(numberId)); @@ -9,7 +9,7 @@ export class NumberProperties extends XmlComponent { } class IndentLevel extends XmlComponent { - constructor(level: number) { + public constructor(level: number) { super("w:ilvl"); if (level > 9) { @@ -27,7 +27,7 @@ class IndentLevel extends XmlComponent { } class NumberId extends XmlComponent { - constructor(id: number | string) { + public constructor(id: number | string) { super("w:numId"); this.root.push( new Attributes({ diff --git a/src/file/paragraph/frame/frame-properties.ts b/src/file/paragraph/frame/frame-properties.ts index 06abbff615..76fa712d70 100644 --- a/src/file/paragraph/frame/frame-properties.ts +++ b/src/file/paragraph/frame/frame-properties.ts @@ -97,7 +97,7 @@ export class FramePropertiesAttributes extends XmlAttributeComponent<{ } export class FrameProperties extends XmlComponent { - constructor(options: IFrameOptions) { + public constructor(options: IFrameOptions) { super("w:framePr"); this.root.push( new FramePropertiesAttributes({ diff --git a/src/file/paragraph/links/bookmark.ts b/src/file/paragraph/links/bookmark.ts index ded57ebc42..6addd8c306 100644 --- a/src/file/paragraph/links/bookmark.ts +++ b/src/file/paragraph/links/bookmark.ts @@ -10,7 +10,7 @@ export class Bookmark { public readonly children: ParagraphChild[]; public readonly end: BookmarkEnd; - constructor(options: { readonly id: string; readonly children: ParagraphChild[] }) { + public constructor(options: { readonly id: string; readonly children: ParagraphChild[] }) { const linkId = uniqueNumericId(); this.start = new BookmarkStart(options.id, linkId); @@ -52,7 +52,7 @@ export class Bookmark { // export class BookmarkStart extends XmlComponent { - constructor(id: string, linkId: number) { + public constructor(id: string, linkId: number) { super("w:bookmarkStart"); const attributes = new BookmarkStartAttributes({ @@ -64,7 +64,7 @@ export class BookmarkStart extends XmlComponent { } export class BookmarkEnd extends XmlComponent { - constructor(linkId: number) { + public constructor(linkId: number) { super("w:bookmarkEnd"); const attributes = new BookmarkEndAttributes({ diff --git a/src/file/paragraph/links/hyperlink.ts b/src/file/paragraph/links/hyperlink.ts index a3e6697bd6..f1c98503a5 100644 --- a/src/file/paragraph/links/hyperlink.ts +++ b/src/file/paragraph/links/hyperlink.ts @@ -13,7 +13,7 @@ export enum HyperlinkType { export class ConcreteHyperlink extends XmlComponent { public readonly linkId: string; - constructor(children: ParagraphChild[], relationshipId: string, anchor?: string) { + public constructor(children: ParagraphChild[], relationshipId: string, anchor?: string) { super("w:hyperlink"); this.linkId = relationshipId; @@ -33,13 +33,13 @@ export class ConcreteHyperlink extends XmlComponent { } export class InternalHyperlink extends ConcreteHyperlink { - constructor(options: { readonly children: ParagraphChild[]; readonly anchor: string }) { + public constructor(options: { readonly children: ParagraphChild[]; readonly anchor: string }) { super(options.children, uniqueId(), options.anchor); } } export class ExternalHyperlink extends XmlComponent { - constructor(public readonly options: { readonly children: ParagraphChild[]; readonly link: string }) { + public constructor(public readonly options: { readonly children: ParagraphChild[]; readonly link: string }) { super("w:externalHyperlink"); } } diff --git a/src/file/paragraph/links/outline-level.ts b/src/file/paragraph/links/outline-level.ts index 3e6165b949..f5eebd1018 100644 --- a/src/file/paragraph/links/outline-level.ts +++ b/src/file/paragraph/links/outline-level.ts @@ -2,7 +2,7 @@ import { Attributes, XmlComponent } from "@file/xml-components"; export class OutlineLevel extends XmlComponent { - constructor(public readonly level: number) { + public constructor(public readonly level: number) { super("w:outlineLvl"); this.root.push( diff --git a/src/file/paragraph/links/pageref-field-instruction.ts b/src/file/paragraph/links/pageref-field-instruction.ts index 2285b0f4d4..8163418ea2 100644 --- a/src/file/paragraph/links/pageref-field-instruction.ts +++ b/src/file/paragraph/links/pageref-field-instruction.ts @@ -5,7 +5,7 @@ import { TextAttributes } from "../run/text-attributes"; import { IPageReferenceOptions } from "./pageref-properties"; export class PageReferenceFieldInstruction extends XmlComponent { - constructor(bookmarkId: string, options: IPageReferenceOptions = {}) { + public constructor(bookmarkId: string, options: IPageReferenceOptions = {}) { super("w:instrText"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); diff --git a/src/file/paragraph/links/pageref.ts b/src/file/paragraph/links/pageref.ts index 72e7803e41..88892c3776 100644 --- a/src/file/paragraph/links/pageref.ts +++ b/src/file/paragraph/links/pageref.ts @@ -5,7 +5,7 @@ import { PageReferenceFieldInstruction } from "./pageref-field-instruction"; import type { IPageReferenceOptions } from "./pageref-properties"; export class PageReference extends Run { - constructor(bookmarkId: string, options: IPageReferenceOptions = {}) { + public constructor(bookmarkId: string, options: IPageReferenceOptions = {}) { super({ children: [new Begin(true), new PageReferenceFieldInstruction(bookmarkId, options), new End()], }); diff --git a/src/file/paragraph/math/brackets/math-angled-brackets.ts b/src/file/paragraph/math/brackets/math-angled-brackets.ts index 6d4cf78476..82c426d4b4 100644 --- a/src/file/paragraph/math/brackets/math-angled-brackets.ts +++ b/src/file/paragraph/math/brackets/math-angled-brackets.ts @@ -6,7 +6,7 @@ import { MathBase } from "../n-ary"; import { MathBracketProperties } from "./math-bracket-properties"; export class MathAngledBrackets extends XmlComponent { - constructor(options: { readonly children: MathComponent[] }) { + public constructor(options: { readonly children: MathComponent[] }) { super("m:d"); this.root.push( diff --git a/src/file/paragraph/math/brackets/math-beginning-character.ts b/src/file/paragraph/math/brackets/math-beginning-character.ts index ed4320572a..ad0ee133c5 100644 --- a/src/file/paragraph/math/brackets/math-beginning-character.ts +++ b/src/file/paragraph/math/brackets/math-beginning-character.ts @@ -6,7 +6,7 @@ class MathBeginningCharacterAttributes extends XmlAttributeComponent<{ readonly } export class MathBeginningCharacter extends XmlComponent { - constructor(character: string) { + public constructor(character: string) { super("m:begChr"); this.root.push(new MathBeginningCharacterAttributes({ character })); diff --git a/src/file/paragraph/math/brackets/math-bracket-properties.ts b/src/file/paragraph/math/brackets/math-bracket-properties.ts index 33f1a8c94c..86070a1180 100644 --- a/src/file/paragraph/math/brackets/math-bracket-properties.ts +++ b/src/file/paragraph/math/brackets/math-bracket-properties.ts @@ -5,7 +5,7 @@ import { MathBeginningCharacter } from "./math-beginning-character"; import { MathEndingCharacter } from "./math-ending-char"; export class MathBracketProperties extends XmlComponent { - constructor(options?: { readonly beginningCharacter: string; readonly endingCharacter: string }) { + public constructor(options?: { readonly beginningCharacter: string; readonly endingCharacter: string }) { super("m:dPr"); if (!!options) { diff --git a/src/file/paragraph/math/brackets/math-curly-brackets.ts b/src/file/paragraph/math/brackets/math-curly-brackets.ts index d402df098f..d260f08012 100644 --- a/src/file/paragraph/math/brackets/math-curly-brackets.ts +++ b/src/file/paragraph/math/brackets/math-curly-brackets.ts @@ -6,7 +6,7 @@ import { MathBase } from "../n-ary"; import { MathBracketProperties } from "./math-bracket-properties"; export class MathCurlyBrackets extends XmlComponent { - constructor(options: { readonly children: MathComponent[] }) { + public constructor(options: { readonly children: MathComponent[] }) { super("m:d"); this.root.push( diff --git a/src/file/paragraph/math/brackets/math-ending-char.ts b/src/file/paragraph/math/brackets/math-ending-char.ts index 2ff644ae10..f8cf5fe538 100644 --- a/src/file/paragraph/math/brackets/math-ending-char.ts +++ b/src/file/paragraph/math/brackets/math-ending-char.ts @@ -6,7 +6,7 @@ class MathEndingCharacterAttributes extends XmlAttributeComponent<{ readonly cha } export class MathEndingCharacter extends XmlComponent { - constructor(character: string) { + public constructor(character: string) { super("m:endChr"); this.root.push(new MathEndingCharacterAttributes({ character })); diff --git a/src/file/paragraph/math/brackets/math-round-brackets.ts b/src/file/paragraph/math/brackets/math-round-brackets.ts index 37c8fd0703..d3cb54627c 100644 --- a/src/file/paragraph/math/brackets/math-round-brackets.ts +++ b/src/file/paragraph/math/brackets/math-round-brackets.ts @@ -6,7 +6,7 @@ import { MathBase } from "../n-ary"; import { MathBracketProperties } from "./math-bracket-properties"; export class MathRoundBrackets extends XmlComponent { - constructor(options: { readonly children: MathComponent[] }) { + public constructor(options: { readonly children: MathComponent[] }) { super("m:d"); this.root.push(new MathBracketProperties()); diff --git a/src/file/paragraph/math/brackets/math-square-brackets.ts b/src/file/paragraph/math/brackets/math-square-brackets.ts index 6cc4b852dd..e4c8079b72 100644 --- a/src/file/paragraph/math/brackets/math-square-brackets.ts +++ b/src/file/paragraph/math/brackets/math-square-brackets.ts @@ -6,7 +6,7 @@ import { MathBase } from "../n-ary"; import { MathBracketProperties } from "./math-bracket-properties"; export class MathSquareBrackets extends XmlComponent { - constructor(options: { readonly children: MathComponent[] }) { + public constructor(options: { readonly children: MathComponent[] }) { super("m:d"); this.root.push( diff --git a/src/file/paragraph/math/fraction/math-denominator.ts b/src/file/paragraph/math/fraction/math-denominator.ts index 6e6f11ef04..4d7eacd093 100644 --- a/src/file/paragraph/math/fraction/math-denominator.ts +++ b/src/file/paragraph/math/fraction/math-denominator.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathDenominator extends XmlComponent { - constructor(children: MathComponent[]) { + public constructor(children: MathComponent[]) { super("m:den"); for (const child of children) { diff --git a/src/file/paragraph/math/fraction/math-fraction.ts b/src/file/paragraph/math/fraction/math-fraction.ts index 385071c20f..7f92c3455a 100644 --- a/src/file/paragraph/math/fraction/math-fraction.ts +++ b/src/file/paragraph/math/fraction/math-fraction.ts @@ -10,7 +10,7 @@ export interface IMathFractionOptions { } export class MathFraction extends XmlComponent { - constructor(options: IMathFractionOptions) { + public constructor(options: IMathFractionOptions) { super("m:f"); this.root.push(new MathNumerator(options.numerator)); diff --git a/src/file/paragraph/math/fraction/math-numerator.ts b/src/file/paragraph/math/fraction/math-numerator.ts index 323af84e35..67bad39fb5 100644 --- a/src/file/paragraph/math/fraction/math-numerator.ts +++ b/src/file/paragraph/math/fraction/math-numerator.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathNumerator extends XmlComponent { - constructor(children: MathComponent[]) { + public constructor(children: MathComponent[]) { super("m:num"); for (const child of children) { diff --git a/src/file/paragraph/math/function/math-function-name.ts b/src/file/paragraph/math/function/math-function-name.ts index 96314a2ccd..b480747112 100644 --- a/src/file/paragraph/math/function/math-function-name.ts +++ b/src/file/paragraph/math/function/math-function-name.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathFunctionName extends XmlComponent { - constructor(children: MathComponent[]) { + public constructor(children: MathComponent[]) { super("m:fName"); for (const child of children) { diff --git a/src/file/paragraph/math/function/math-function-properties.ts b/src/file/paragraph/math/function/math-function-properties.ts index ba6d85be69..b380e4f6f0 100644 --- a/src/file/paragraph/math/function/math-function-properties.ts +++ b/src/file/paragraph/math/function/math-function-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; export class MathFunctionProperties extends XmlComponent { - constructor() { + public constructor() { super("m:funcPr"); } } diff --git a/src/file/paragraph/math/function/math-function.ts b/src/file/paragraph/math/function/math-function.ts index 4b4921d150..e9457975e6 100644 --- a/src/file/paragraph/math/function/math-function.ts +++ b/src/file/paragraph/math/function/math-function.ts @@ -12,7 +12,7 @@ export interface IMathFunctionOptions { } export class MathFunction extends XmlComponent { - constructor(options: IMathFunctionOptions) { + public constructor(options: IMathFunctionOptions) { super("m:func"); this.root.push(new MathFunctionProperties()); diff --git a/src/file/paragraph/math/math-run.ts b/src/file/paragraph/math/math-run.ts index f13b4364e8..6f4e7ab69b 100644 --- a/src/file/paragraph/math/math-run.ts +++ b/src/file/paragraph/math/math-run.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathText } from "./math-text"; export class MathRun extends XmlComponent { - constructor(text: string) { + public constructor(text: string) { super("m:r"); this.root.push(new MathText(text)); diff --git a/src/file/paragraph/math/math-text.ts b/src/file/paragraph/math/math-text.ts index 1d943ec5e5..2d739f83d8 100644 --- a/src/file/paragraph/math/math-text.ts +++ b/src/file/paragraph/math/math-text.ts @@ -1,7 +1,7 @@ import { XmlComponent } from "@file/xml-components"; export class MathText extends XmlComponent { - constructor(text: string) { + public constructor(text: string) { super("m:t"); this.root.push(text); diff --git a/src/file/paragraph/math/math.ts b/src/file/paragraph/math/math.ts index 0f7458d148..a46856c0a2 100644 --- a/src/file/paragraph/math/math.ts +++ b/src/file/paragraph/math/math.ts @@ -8,7 +8,7 @@ export interface IMathOptions { } export class Math extends XmlComponent { - constructor(options: IMathOptions) { + public constructor(options: IMathOptions) { super("m:oMath"); for (const child of options.children) { diff --git a/src/file/paragraph/math/n-ary/math-accent-character.ts b/src/file/paragraph/math/n-ary/math-accent-character.ts index 663aa644b5..f0e124b9c7 100644 --- a/src/file/paragraph/math/n-ary/math-accent-character.ts +++ b/src/file/paragraph/math/n-ary/math-accent-character.ts @@ -6,7 +6,7 @@ class MathAccentCharacterAttributes extends XmlAttributeComponent<{ readonly acc } export class MathAccentCharacter extends XmlComponent { - constructor(accent: string) { + public constructor(accent: string) { super("m:chr"); this.root.push(new MathAccentCharacterAttributes({ accent })); diff --git a/src/file/paragraph/math/n-ary/math-base.ts b/src/file/paragraph/math/n-ary/math-base.ts index f6b5b2cdf6..ba017f6a85 100644 --- a/src/file/paragraph/math/n-ary/math-base.ts +++ b/src/file/paragraph/math/n-ary/math-base.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathBase extends XmlComponent { - constructor(children: MathComponent[]) { + public constructor(children: MathComponent[]) { super("m:e"); for (const child of children) { diff --git a/src/file/paragraph/math/n-ary/math-limit-location.ts b/src/file/paragraph/math/n-ary/math-limit-location.ts index c7d53bf863..82133ddd00 100644 --- a/src/file/paragraph/math/n-ary/math-limit-location.ts +++ b/src/file/paragraph/math/n-ary/math-limit-location.ts @@ -6,7 +6,7 @@ class MathLimitLocationAttributes extends XmlAttributeComponent<{ readonly value } export class MathLimitLocation extends XmlComponent { - constructor() { + public constructor() { super("m:limLoc"); this.root.push(new MathLimitLocationAttributes({ value: "undOvr" })); diff --git a/src/file/paragraph/math/n-ary/math-n-ary-properties.ts b/src/file/paragraph/math/n-ary/math-n-ary-properties.ts index 8edacc8530..c3f9d42912 100644 --- a/src/file/paragraph/math/n-ary/math-n-ary-properties.ts +++ b/src/file/paragraph/math/n-ary/math-n-ary-properties.ts @@ -7,7 +7,7 @@ import { MathSubScriptHide } from "./math-sub-script-hide"; import { MathSuperScriptHide } from "./math-super-script-hide"; export class MathNAryProperties extends XmlComponent { - constructor(accent: string, hasSuperScript: boolean, hasSubScript: boolean) { + public constructor(accent: string, hasSuperScript: boolean, hasSubScript: boolean) { super("m:naryPr"); this.root.push(new MathAccentCharacter(accent)); diff --git a/src/file/paragraph/math/n-ary/math-sub-script-hide.ts b/src/file/paragraph/math/n-ary/math-sub-script-hide.ts index d9435f617c..84b8300f04 100644 --- a/src/file/paragraph/math/n-ary/math-sub-script-hide.ts +++ b/src/file/paragraph/math/n-ary/math-sub-script-hide.ts @@ -6,7 +6,7 @@ class MathSubScriptHideAttributes extends XmlAttributeComponent<{ readonly hide: } export class MathSubScriptHide extends XmlComponent { - constructor() { + public constructor() { super("m:subHide"); this.root.push(new MathSubScriptHideAttributes({ hide: 1 })); diff --git a/src/file/paragraph/math/n-ary/math-sub-script.ts b/src/file/paragraph/math/n-ary/math-sub-script.ts index 960d8a2234..89a796fd76 100644 --- a/src/file/paragraph/math/n-ary/math-sub-script.ts +++ b/src/file/paragraph/math/n-ary/math-sub-script.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathSubScriptElement extends XmlComponent { - constructor(children: MathComponent[]) { + public constructor(children: MathComponent[]) { super("m:sub"); for (const child of children) { diff --git a/src/file/paragraph/math/n-ary/math-sum.ts b/src/file/paragraph/math/n-ary/math-sum.ts index 4d4506eb98..5d2c169f11 100644 --- a/src/file/paragraph/math/n-ary/math-sum.ts +++ b/src/file/paragraph/math/n-ary/math-sum.ts @@ -14,7 +14,7 @@ export interface IMathSumOptions { } export class MathSum extends XmlComponent { - constructor(options: IMathSumOptions) { + public constructor(options: IMathSumOptions) { super("m:nary"); this.root.push(new MathNAryProperties("∑", !!options.superScript, !!options.subScript)); diff --git a/src/file/paragraph/math/n-ary/math-super-script-hide.ts b/src/file/paragraph/math/n-ary/math-super-script-hide.ts index a7043621eb..8b60071a30 100644 --- a/src/file/paragraph/math/n-ary/math-super-script-hide.ts +++ b/src/file/paragraph/math/n-ary/math-super-script-hide.ts @@ -6,7 +6,7 @@ class MathSuperScriptHideAttributes extends XmlAttributeComponent<{ readonly hid } export class MathSuperScriptHide extends XmlComponent { - constructor() { + public constructor() { super("m:supHide"); this.root.push(new MathSuperScriptHideAttributes({ hide: 1 })); diff --git a/src/file/paragraph/math/n-ary/math-super-script.ts b/src/file/paragraph/math/n-ary/math-super-script.ts index 2c922d7739..40fbd6d029 100644 --- a/src/file/paragraph/math/n-ary/math-super-script.ts +++ b/src/file/paragraph/math/n-ary/math-super-script.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathSuperScriptElement extends XmlComponent { - constructor(children: MathComponent[]) { + public constructor(children: MathComponent[]) { super("m:sup"); for (const child of children) { diff --git a/src/file/paragraph/math/radical/math-degree-hide.ts b/src/file/paragraph/math/radical/math-degree-hide.ts index 8b55368c8e..ab04bd2be4 100644 --- a/src/file/paragraph/math/radical/math-degree-hide.ts +++ b/src/file/paragraph/math/radical/math-degree-hide.ts @@ -6,7 +6,7 @@ class MathDegreeHideAttributes extends XmlAttributeComponent<{ readonly hide: nu } export class MathDegreeHide extends XmlComponent { - constructor() { + public constructor() { super("m:degHide"); this.root.push(new MathDegreeHideAttributes({ hide: 1 })); diff --git a/src/file/paragraph/math/radical/math-degree.ts b/src/file/paragraph/math/radical/math-degree.ts index 24bb672e3e..4a1673284b 100644 --- a/src/file/paragraph/math/radical/math-degree.ts +++ b/src/file/paragraph/math/radical/math-degree.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathDegree extends XmlComponent { - constructor(children?: MathComponent[]) { + public constructor(children?: MathComponent[]) { super("m:deg"); if (!!children) { diff --git a/src/file/paragraph/math/radical/math-radical-properties.ts b/src/file/paragraph/math/radical/math-radical-properties.ts index ce545a1c47..5bfdb1b3b2 100644 --- a/src/file/paragraph/math/radical/math-radical-properties.ts +++ b/src/file/paragraph/math/radical/math-radical-properties.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathDegreeHide } from "./math-degree-hide"; export class MathRadicalProperties extends XmlComponent { - constructor(hasDegree: boolean) { + public constructor(hasDegree: boolean) { super("m:radPr"); if (!hasDegree) { diff --git a/src/file/paragraph/math/radical/math-radical.ts b/src/file/paragraph/math/radical/math-radical.ts index 872ff6dcb7..bbdcc9fb92 100644 --- a/src/file/paragraph/math/radical/math-radical.ts +++ b/src/file/paragraph/math/radical/math-radical.ts @@ -12,7 +12,7 @@ export interface IMathRadicalOptions { } export class MathRadical extends XmlComponent { - constructor(options: IMathRadicalOptions) { + public constructor(options: IMathRadicalOptions) { super("m:rad"); this.root.push(new MathRadicalProperties(!!options.degree)); diff --git a/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function-properties.ts b/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function-properties.ts index ed2dffa7ae..47ba68d320 100644 --- a/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function-properties.ts +++ b/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; export class MathPreSubSuperScriptProperties extends XmlComponent { - constructor() { + public constructor() { super("m:sPrePr"); } } diff --git a/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.ts b/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.ts index a13e8437fa..686d24f0cd 100644 --- a/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.ts +++ b/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.ts @@ -12,7 +12,7 @@ export interface IMathPreSubSuperScriptOptions { } export class MathPreSubSuperScript extends XmlComponent { - constructor(options: IMathPreSubSuperScriptOptions) { + public constructor(options: IMathPreSubSuperScriptOptions) { super("m:sPre"); this.root.push(new MathPreSubSuperScriptProperties()); diff --git a/src/file/paragraph/math/script/sub-script/math-sub-script-function-properties.ts b/src/file/paragraph/math/script/sub-script/math-sub-script-function-properties.ts index 48dc3f3198..eb1995f6cb 100644 --- a/src/file/paragraph/math/script/sub-script/math-sub-script-function-properties.ts +++ b/src/file/paragraph/math/script/sub-script/math-sub-script-function-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; export class MathSubScriptProperties extends XmlComponent { - constructor() { + public constructor() { super("m:sSubPr"); } } diff --git a/src/file/paragraph/math/script/sub-script/math-sub-script-function.ts b/src/file/paragraph/math/script/sub-script/math-sub-script-function.ts index 877dedd226..fbc54287db 100644 --- a/src/file/paragraph/math/script/sub-script/math-sub-script-function.ts +++ b/src/file/paragraph/math/script/sub-script/math-sub-script-function.ts @@ -11,7 +11,7 @@ export interface IMathSubScriptOptions { } export class MathSubScript extends XmlComponent { - constructor(options: IMathSubScriptOptions) { + public constructor(options: IMathSubScriptOptions) { super("m:sSub"); this.root.push(new MathSubScriptProperties()); diff --git a/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function-properties.ts b/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function-properties.ts index cbd7adde58..c07d41deb7 100644 --- a/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function-properties.ts +++ b/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; export class MathSubSuperScriptProperties extends XmlComponent { - constructor() { + public constructor() { super("m:sSubSupPr"); } } diff --git a/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.ts b/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.ts index c942309566..b0545324ed 100644 --- a/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.ts +++ b/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.ts @@ -12,7 +12,7 @@ export interface IMathSubSuperScriptOptions { } export class MathSubSuperScript extends XmlComponent { - constructor(options: IMathSubSuperScriptOptions) { + public constructor(options: IMathSubSuperScriptOptions) { super("m:sSubSup"); this.root.push(new MathSubSuperScriptProperties()); diff --git a/src/file/paragraph/math/script/super-script/math-super-script-function-properties.ts b/src/file/paragraph/math/script/super-script/math-super-script-function-properties.ts index 275afc1296..4739cb895d 100644 --- a/src/file/paragraph/math/script/super-script/math-super-script-function-properties.ts +++ b/src/file/paragraph/math/script/super-script/math-super-script-function-properties.ts @@ -2,7 +2,7 @@ import { XmlComponent } from "@file/xml-components"; export class MathSuperScriptProperties extends XmlComponent { - constructor() { + public constructor() { super("m:sSupPr"); } } diff --git a/src/file/paragraph/math/script/super-script/math-super-script-function.ts b/src/file/paragraph/math/script/super-script/math-super-script-function.ts index 31fef60f64..4d61afb655 100644 --- a/src/file/paragraph/math/script/super-script/math-super-script-function.ts +++ b/src/file/paragraph/math/script/super-script/math-super-script-function.ts @@ -11,7 +11,7 @@ export interface IMathSuperScriptOptions { } export class MathSuperScript extends XmlComponent { - constructor(options: IMathSuperScriptOptions) { + public constructor(options: IMathSuperScriptOptions) { super("m:sSup"); this.root.push(new MathSuperScriptProperties()); diff --git a/src/file/paragraph/paragraph.ts b/src/file/paragraph/paragraph.ts index 0647258213..38642d5be3 100644 --- a/src/file/paragraph/paragraph.ts +++ b/src/file/paragraph/paragraph.ts @@ -42,7 +42,7 @@ export interface IParagraphOptions extends IParagraphPropertiesOptions { export class Paragraph extends XmlComponent { private readonly properties: ParagraphProperties; - constructor(options: string | IParagraphOptions) { + public constructor(options: string | IParagraphOptions) { super("w:p"); if (typeof options === "string") { diff --git a/src/file/paragraph/properties.ts b/src/file/paragraph/properties.ts index 194d4a56fd..098fee0ccf 100644 --- a/src/file/paragraph/properties.ts +++ b/src/file/paragraph/properties.ts @@ -59,7 +59,7 @@ export interface IParagraphPropertiesOptions extends IParagraphStylePropertiesOp export class ParagraphProperties extends IgnoreIfEmptyXmlComponent { private readonly numberingReferences: { readonly reference: string; readonly instance: number }[] = []; - constructor(options?: IParagraphPropertiesOptions) { + public constructor(options?: IParagraphPropertiesOptions) { super("w:pPr"); if (!options) { diff --git a/src/file/paragraph/run/break.ts b/src/file/paragraph/run/break.ts index 850020815d..d36ef9ff64 100644 --- a/src/file/paragraph/run/break.ts +++ b/src/file/paragraph/run/break.ts @@ -26,7 +26,7 @@ import { XmlComponent } from "@file/xml-components"; // // export class Break extends XmlComponent { - constructor() { + public constructor() { super("w:br"); } } diff --git a/src/file/paragraph/run/comment-run.ts b/src/file/paragraph/run/comment-run.ts index acbff137df..f4f95b80dd 100644 --- a/src/file/paragraph/run/comment-run.ts +++ b/src/file/paragraph/run/comment-run.ts @@ -96,7 +96,7 @@ class RootCommentsAttributes extends XmlAttributeComponent<{ } export class CommentRangeStart extends XmlComponent { - constructor(id: number) { + public constructor(id: number) { super("w:commentRangeStart"); this.root.push(new CommentRangeAttributes({ id })); @@ -104,7 +104,7 @@ export class CommentRangeStart extends XmlComponent { } export class CommentRangeEnd extends XmlComponent { - constructor(id: number) { + public constructor(id: number) { super("w:commentRangeEnd"); this.root.push(new CommentRangeAttributes({ id })); @@ -112,7 +112,7 @@ export class CommentRangeEnd extends XmlComponent { } export class CommentReference extends XmlComponent { - constructor(id: number) { + public constructor(id: number) { super("w:commentReference"); this.root.push(new CommentRangeAttributes({ id })); @@ -120,7 +120,7 @@ export class CommentReference extends XmlComponent { } export class Comment extends XmlComponent { - constructor({ id, initials, author, date = new Date(), text }: ICommentOptions) { + public constructor({ id, initials, author, date = new Date(), text }: ICommentOptions) { super("w:comment"); this.root.push( @@ -136,7 +136,7 @@ export class Comment extends XmlComponent { } } export class Comments extends XmlComponent { - constructor({ children }: ICommentsOptions) { + public constructor({ children }: ICommentsOptions) { super("w:comments"); this.root.push( diff --git a/src/file/paragraph/run/emphasis-mark.ts b/src/file/paragraph/run/emphasis-mark.ts index 8ce985fed6..3bd1302a59 100644 --- a/src/file/paragraph/run/emphasis-mark.ts +++ b/src/file/paragraph/run/emphasis-mark.ts @@ -16,13 +16,13 @@ export abstract class BaseEmphasisMark extends XmlComponent { } export class EmphasisMark extends BaseEmphasisMark { - constructor(emphasisMarkType: EmphasisMarkType = EmphasisMarkType.DOT) { + public constructor(emphasisMarkType: EmphasisMarkType = EmphasisMarkType.DOT) { super(emphasisMarkType); } } export class DotEmphasisMark extends BaseEmphasisMark { - constructor() { + public constructor() { super(EmphasisMarkType.DOT); } } diff --git a/src/file/paragraph/run/field.ts b/src/file/paragraph/run/field.ts index 173a0dc10d..66862c7650 100644 --- a/src/file/paragraph/run/field.ts +++ b/src/file/paragraph/run/field.ts @@ -11,21 +11,21 @@ class FidCharAttrs extends XmlAttributeComponent<{ readonly type: FieldCharacter } export class Begin extends XmlComponent { - constructor(dirty?: boolean) { + public constructor(dirty?: boolean) { super("w:fldChar"); this.root.push(new FidCharAttrs({ type: FieldCharacterType.BEGIN, dirty })); } } export class Separate extends XmlComponent { - constructor(dirty?: boolean) { + public constructor(dirty?: boolean) { super("w:fldChar"); this.root.push(new FidCharAttrs({ type: FieldCharacterType.SEPARATE, dirty })); } } export class End extends XmlComponent { - constructor(dirty?: boolean) { + public constructor(dirty?: boolean) { super("w:fldChar"); this.root.push(new FidCharAttrs({ type: FieldCharacterType.END, dirty })); } diff --git a/src/file/paragraph/run/formatting.ts b/src/file/paragraph/run/formatting.ts index 284633e2ec..b78e3291a7 100644 --- a/src/file/paragraph/run/formatting.ts +++ b/src/file/paragraph/run/formatting.ts @@ -2,7 +2,7 @@ import { Attributes, XmlComponent } from "@file/xml-components"; import { hexColorValue, signedTwipsMeasureValue } from "@util/values"; export class CharacterSpacing extends XmlComponent { - constructor(value: number | string) { + public constructor(value: number | string) { super("w:spacing"); this.root.push( new Attributes({ @@ -19,7 +19,7 @@ export class CharacterSpacing extends XmlComponent { // // export class Color extends XmlComponent { - constructor(color: string) { + public constructor(color: string) { super("w:color"); this.root.push( new Attributes({ @@ -51,7 +51,7 @@ export class Color extends XmlComponent { // // export class Highlight extends XmlComponent { - constructor(color: string) { + public constructor(color: string) { super("w:highlight"); this.root.push( new Attributes({ @@ -62,7 +62,7 @@ export class Highlight extends XmlComponent { } export class HighlightComplexScript extends XmlComponent { - constructor(color: string) { + public constructor(color: string) { super("w:highlightCs"); this.root.push( new Attributes({ diff --git a/src/file/paragraph/run/image-run.ts b/src/file/paragraph/run/image-run.ts index 6daf04d31b..59dc64fef7 100644 --- a/src/file/paragraph/run/image-run.ts +++ b/src/file/paragraph/run/image-run.ts @@ -17,7 +17,7 @@ export class ImageRun extends Run { private readonly key = `${uniqueId()}.png`; private readonly imageData: IMediaData; - constructor(options: IImageOptions) { + public constructor(options: IImageOptions) { super({}); const newData = typeof options.data === "string" ? this.convertDataURIToBinary(options.data) : options.data; diff --git a/src/file/paragraph/run/page-number.ts b/src/file/paragraph/run/page-number.ts index 55566fe08c..5b25763a10 100644 --- a/src/file/paragraph/run/page-number.ts +++ b/src/file/paragraph/run/page-number.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { TextAttributes } from "./text-attributes"; export class Page extends XmlComponent { - constructor() { + public constructor() { super("w:instrText"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); this.root.push("PAGE"); @@ -12,7 +12,7 @@ export class Page extends XmlComponent { } export class NumberOfPages extends XmlComponent { - constructor() { + public constructor() { super("w:instrText"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); this.root.push("NUMPAGES"); @@ -20,7 +20,7 @@ export class NumberOfPages extends XmlComponent { } export class NumberOfPagesSection extends XmlComponent { - constructor() { + public constructor() { super("w:instrText"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); this.root.push("SECTIONPAGES"); diff --git a/src/file/paragraph/run/properties.ts b/src/file/paragraph/run/properties.ts index 32ce33c655..e24b8648d1 100644 --- a/src/file/paragraph/run/properties.ts +++ b/src/file/paragraph/run/properties.ts @@ -99,7 +99,7 @@ export interface IRunPropertiesChangeOptions extends IRunPropertiesOptions, ICha // // export class RunProperties extends IgnoreIfEmptyXmlComponent { - constructor(options?: IRunPropertiesOptions) { + public constructor(options?: IRunPropertiesOptions) { super("w:rPr"); if (!options) { @@ -225,7 +225,7 @@ export class RunProperties extends IgnoreIfEmptyXmlComponent { } export class RunPropertiesChange extends XmlComponent { - constructor(options: IRunPropertiesChangeOptions) { + public constructor(options: IRunPropertiesChangeOptions) { super("w:rPrChange"); this.root.push( new ChangeAttributes({ diff --git a/src/file/paragraph/run/run-components/symbol.ts b/src/file/paragraph/run/run-components/symbol.ts index db72f0d064..0d3b79122d 100644 --- a/src/file/paragraph/run/run-components/symbol.ts +++ b/src/file/paragraph/run/run-components/symbol.ts @@ -11,7 +11,7 @@ class SymbolAttributes extends XmlAttributeComponent<{ } export class Symbol extends XmlComponent { - constructor(char: string = "", symbolfont: string = "Wingdings") { + public constructor(char: string = "", symbolfont: string = "Wingdings") { super("w:sym"); this.root.push(new SymbolAttributes({ char: char, symbolfont: symbolfont })); } diff --git a/src/file/paragraph/run/run-components/text.ts b/src/file/paragraph/run/run-components/text.ts index 0bc28fcb27..3d402038a1 100644 --- a/src/file/paragraph/run/run-components/text.ts +++ b/src/file/paragraph/run/run-components/text.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { TextAttributes } from "../text-attributes"; export class Text extends XmlComponent { - constructor(text: string) { + public constructor(text: string) { super("w:t"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); diff --git a/src/file/paragraph/run/run-fonts.ts b/src/file/paragraph/run/run-fonts.ts index 415a3812d0..6eafd998f8 100644 --- a/src/file/paragraph/run/run-fonts.ts +++ b/src/file/paragraph/run/run-fonts.ts @@ -19,12 +19,12 @@ class RunFontAttributes extends XmlAttributeComponent } export class RunFonts extends XmlComponent { - constructor(name: string, hint?: string); - constructor(attrs: string | IFontAttributesProperties); - constructor(nameOrAttrs: string | IFontAttributesProperties, hint?: string) { + public constructor(name: string, hint?: string); + public constructor(attrs: string | IFontAttributesProperties); + public constructor(nameOrAttrs: string | IFontAttributesProperties, hint?: string) { super("w:rFonts"); if (typeof nameOrAttrs === "string") { - // use constructor(name: string, hint?: string); + // use public constructor(name: string, hint?: string); const name = nameOrAttrs; this.root.push( new RunFontAttributes({ @@ -36,7 +36,7 @@ export class RunFonts extends XmlComponent { }), ); } else { - // use constructor(attrs: IRunFontAttributesProperties); + // use public constructor(attrs: IRunFontAttributesProperties); const attrs = nameOrAttrs; this.root.push(new RunFontAttributes(attrs)); } diff --git a/src/file/paragraph/run/run.ts b/src/file/paragraph/run/run.ts index a24ce75786..49e895bf09 100644 --- a/src/file/paragraph/run/run.ts +++ b/src/file/paragraph/run/run.ts @@ -26,7 +26,7 @@ export enum PageNumber { export class Run extends XmlComponent { protected readonly properties: RunProperties; - constructor(options: IRunOptions) { + public constructor(options: IRunOptions) { super("w:r"); this.properties = new RunProperties(options); this.root.push(this.properties); diff --git a/src/file/paragraph/run/script.ts b/src/file/paragraph/run/script.ts index b1f1b0ac2a..66840882bc 100644 --- a/src/file/paragraph/run/script.ts +++ b/src/file/paragraph/run/script.ts @@ -1,7 +1,7 @@ import { Attributes, XmlComponent } from "@file/xml-components"; export abstract class VerticalAlign extends XmlComponent { - constructor(type: string) { + public constructor(type: string) { super("w:vertAlign"); this.root.push( new Attributes({ @@ -12,13 +12,13 @@ export abstract class VerticalAlign extends XmlComponent { } export class SuperScript extends VerticalAlign { - constructor() { + public constructor() { super("superscript"); } } export class SubScript extends VerticalAlign { - constructor() { + public constructor() { super("subscript"); } } diff --git a/src/file/paragraph/run/sequential-identifier-instruction.ts b/src/file/paragraph/run/sequential-identifier-instruction.ts index 81762e7812..e1742a5c33 100644 --- a/src/file/paragraph/run/sequential-identifier-instruction.ts +++ b/src/file/paragraph/run/sequential-identifier-instruction.ts @@ -5,7 +5,7 @@ import { XmlComponent } from "@file/xml-components"; import { TextAttributes } from "./text-attributes"; export class SequentialIdentifierInstruction extends XmlComponent { - constructor(identifier: string) { + public constructor(identifier: string) { super("w:instrText"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); this.root.push(`SEQ ${identifier}`); diff --git a/src/file/paragraph/run/sequential-identifier.ts b/src/file/paragraph/run/sequential-identifier.ts index 6931a0eb73..109ddd4a18 100644 --- a/src/file/paragraph/run/sequential-identifier.ts +++ b/src/file/paragraph/run/sequential-identifier.ts @@ -3,7 +3,7 @@ import { Begin, End, Separate } from "@file/paragraph/run/field"; import { SequentialIdentifierInstruction } from "./sequential-identifier-instruction"; export class SequentialIdentifier extends Run { - constructor(identifier: string) { + public constructor(identifier: string) { super({}); this.root.push(new Begin(true)); this.root.push(new SequentialIdentifierInstruction(identifier)); diff --git a/src/file/paragraph/run/simple-field.ts b/src/file/paragraph/run/simple-field.ts index e741dc374f..83bfc17e75 100644 --- a/src/file/paragraph/run/simple-field.ts +++ b/src/file/paragraph/run/simple-field.ts @@ -7,7 +7,7 @@ class FldSimpleAttrs extends XmlAttributeComponent<{ readonly instr: string }> { } export class SimpleField extends XmlComponent { - constructor(instruction: string, cachedValue?: string) { + public constructor(instruction: string, cachedValue?: string) { super("w:fldSimple"); this.root.push(new FldSimpleAttrs({ instr: instruction })); if (cachedValue !== undefined) { @@ -17,7 +17,7 @@ export class SimpleField extends XmlComponent { } export class SimpleMailMergeField extends SimpleField { - constructor(fieldName: string) { + public constructor(fieldName: string) { super(` MERGEFIELD ${fieldName} `, `«${fieldName}»`); } } diff --git a/src/file/paragraph/run/symbol-run.ts b/src/file/paragraph/run/symbol-run.ts index 7291d11521..336e878719 100644 --- a/src/file/paragraph/run/symbol-run.ts +++ b/src/file/paragraph/run/symbol-run.ts @@ -7,7 +7,7 @@ export interface ISymbolRunOptions extends IRunOptions { } export class SymbolRun extends Run { - constructor(options: ISymbolRunOptions | string) { + public constructor(options: ISymbolRunOptions | string) { if (typeof options === "string") { super({}); this.root.push(new Symbol(options)); diff --git a/src/file/paragraph/run/tab.ts b/src/file/paragraph/run/tab.ts index cd81fbc0a2..eed0ad21f1 100644 --- a/src/file/paragraph/run/tab.ts +++ b/src/file/paragraph/run/tab.ts @@ -7,7 +7,7 @@ import { XmlComponent } from "@file/xml-components"; // TODO: this is unused and undocumented currently. // I think the intended use was for users to import, and insert as a child of `Run`. export class Tab extends XmlComponent { - constructor() { + public constructor() { super("w:tab"); } } diff --git a/src/file/paragraph/run/text-run.ts b/src/file/paragraph/run/text-run.ts index e262db72a4..27bf8c4729 100644 --- a/src/file/paragraph/run/text-run.ts +++ b/src/file/paragraph/run/text-run.ts @@ -2,7 +2,7 @@ import { IRunOptions, Run } from "./run"; import { Text } from "./run-components/text"; export class TextRun extends Run { - constructor(options: IRunOptions | string) { + public constructor(options: IRunOptions | string) { if (typeof options === "string") { super({}); this.root.push(new Text(options)); diff --git a/src/file/paragraph/run/underline.ts b/src/file/paragraph/run/underline.ts index 12459398f5..a84dbdc0e4 100644 --- a/src/file/paragraph/run/underline.ts +++ b/src/file/paragraph/run/underline.ts @@ -22,7 +22,7 @@ export enum UnderlineType { } export class Underline extends XmlComponent { - constructor(underlineType: UnderlineType = UnderlineType.SINGLE, color?: string) { + public constructor(underlineType: UnderlineType = UnderlineType.SINGLE, color?: string) { super("w:u"); this.root.push( new Attributes({ diff --git a/src/file/relationships/relationship/relationship.ts b/src/file/relationships/relationship/relationship.ts index d6384a08c1..96508fa405 100644 --- a/src/file/relationships/relationship/relationship.ts +++ b/src/file/relationships/relationship/relationship.ts @@ -24,7 +24,7 @@ export enum TargetModeType { } export class Relationship extends XmlComponent { - constructor(id: string, type: RelationshipType, target: string, targetMode?: TargetModeType) { + public constructor(id: string, type: RelationshipType, target: string, targetMode?: TargetModeType) { super("Relationship"); this.root.push( diff --git a/src/file/relationships/relationships.ts b/src/file/relationships/relationships.ts index 4e9d98530b..fab99968dc 100644 --- a/src/file/relationships/relationships.ts +++ b/src/file/relationships/relationships.ts @@ -3,7 +3,7 @@ import { RelationshipsAttributes } from "./attributes"; import { Relationship, RelationshipType, TargetModeType } from "./relationship/relationship"; export class Relationships extends XmlComponent { - constructor() { + public constructor() { super("Relationships"); this.root.push( new RelationshipsAttributes({ diff --git a/src/file/settings/compatibility-setting/compatibility-setting.ts b/src/file/settings/compatibility-setting/compatibility-setting.ts index 5e57503f32..b75a494a47 100644 --- a/src/file/settings/compatibility-setting/compatibility-setting.ts +++ b/src/file/settings/compatibility-setting/compatibility-setting.ts @@ -25,7 +25,7 @@ export class CompatibilitySettingAttributes extends XmlAttributeComponent<{ // https://docs.microsoft.com/en-us/openspecs/office_standards/ms-docx/90138c4d-eb18-4edc-aa6c-dfb799cb1d0d export class CompatibilitySetting extends XmlComponent { - constructor(version: number) { + public constructor(version: number) { super("w:compatSetting"); this.root.push( diff --git a/src/file/settings/compatibility.ts b/src/file/settings/compatibility.ts index 00a3de3d64..713a8b8777 100644 --- a/src/file/settings/compatibility.ts +++ b/src/file/settings/compatibility.ts @@ -79,7 +79,7 @@ export interface ICompatibilityOptions { } export class Compatibility extends XmlComponent { - constructor(options: ICompatibilityOptions) { + public constructor(options: ICompatibilityOptions) { super("w:compat"); // Don't justify lines ending in soft line break setting diff --git a/src/file/settings/settings.ts b/src/file/settings/settings.ts index c463ab4d3b..ceb0e11c4e 100644 --- a/src/file/settings/settings.ts +++ b/src/file/settings/settings.ts @@ -154,7 +154,7 @@ export interface ISettingsOptions { } export class Settings extends XmlComponent { - constructor(options: ISettingsOptions) { + public constructor(options: ISettingsOptions) { super("w:settings"); this.root.push( new SettingsAttributes({ diff --git a/src/file/shading/shading.ts b/src/file/shading/shading.ts index f6d2c2bbf9..249b03c50a 100644 --- a/src/file/shading/shading.ts +++ b/src/file/shading/shading.ts @@ -35,7 +35,7 @@ class ShadingAttributes extends XmlAttributeComponent { } export class Style extends XmlComponent { - constructor(attributes: IStyleAttributes, options: IStyleOptions) { + public constructor(attributes: IStyleAttributes, options: IStyleOptions) { super("w:style"); this.root.push(new StyleAttributes(attributes)); if (options.name) { diff --git a/src/file/styles/styles.ts b/src/file/styles/styles.ts index 98c1c83479..d61fcd7746 100644 --- a/src/file/styles/styles.ts +++ b/src/file/styles/styles.ts @@ -20,7 +20,7 @@ export interface IStylesOptions { // // export class Styles extends XmlComponent { - constructor(options: IStylesOptions) { + public constructor(options: IStylesOptions) { super("w:styles"); if (options.initialStyles) { diff --git a/src/file/table-of-contents/alias.ts b/src/file/table-of-contents/alias.ts index 2137523c2d..3bcdabc1eb 100644 --- a/src/file/table-of-contents/alias.ts +++ b/src/file/table-of-contents/alias.ts @@ -5,7 +5,7 @@ class AliasAttributes extends XmlAttributeComponent<{ readonly alias: string }> } export class Alias extends XmlComponent { - constructor(alias: string) { + public constructor(alias: string) { super("w:alias"); this.root.push(new AliasAttributes({ alias })); } diff --git a/src/file/table-of-contents/field-instruction.ts b/src/file/table-of-contents/field-instruction.ts index 7076296493..759e502dc1 100644 --- a/src/file/table-of-contents/field-instruction.ts +++ b/src/file/table-of-contents/field-instruction.ts @@ -8,7 +8,7 @@ import { ITableOfContentsOptions } from "./table-of-contents-properties"; export class FieldInstruction extends XmlComponent { private readonly properties: ITableOfContentsOptions; - constructor(properties: ITableOfContentsOptions = {}) { + public constructor(properties: ITableOfContentsOptions = {}) { super("w:instrText"); this.properties = properties; diff --git a/src/file/table-of-contents/sdt-content.ts b/src/file/table-of-contents/sdt-content.ts index 351ceb973e..b4e181522a 100644 --- a/src/file/table-of-contents/sdt-content.ts +++ b/src/file/table-of-contents/sdt-content.ts @@ -1,7 +1,7 @@ import { XmlComponent } from "@file/xml-components"; export class StructuredDocumentTagContent extends XmlComponent { - constructor() { + public constructor() { super("w:sdtContent"); } } diff --git a/src/file/table-of-contents/sdt-properties.ts b/src/file/table-of-contents/sdt-properties.ts index e1d96164c3..b94407400c 100644 --- a/src/file/table-of-contents/sdt-properties.ts +++ b/src/file/table-of-contents/sdt-properties.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { Alias } from "./alias"; export class StructuredDocumentTagProperties extends XmlComponent { - constructor(alias: string) { + public constructor(alias: string) { super("w:sdtPr"); this.root.push(new Alias(alias)); } diff --git a/src/file/table-of-contents/table-of-contents-properties.ts b/src/file/table-of-contents/table-of-contents-properties.ts index 2ae650d419..a45a40b0cf 100644 --- a/src/file/table-of-contents/table-of-contents-properties.ts +++ b/src/file/table-of-contents/table-of-contents-properties.ts @@ -2,7 +2,7 @@ export class StyleLevel { public readonly styleName: string; public readonly level: number; - constructor(styleName: string, level: number) { + public constructor(styleName: string, level: number) { this.styleName = styleName; this.level = level; } diff --git a/src/file/table-of-contents/table-of-contents.ts b/src/file/table-of-contents/table-of-contents.ts index 7945140f78..212cd4e79d 100644 --- a/src/file/table-of-contents/table-of-contents.ts +++ b/src/file/table-of-contents/table-of-contents.ts @@ -10,7 +10,7 @@ import { StructuredDocumentTagProperties } from "./sdt-properties"; import { ITableOfContentsOptions } from "./table-of-contents-properties"; export class TableOfContents extends XmlComponent { - constructor(alias: string = "Table of Contents", properties?: ITableOfContentsOptions) { + public constructor(alias: string = "Table of Contents", properties?: ITableOfContentsOptions) { super("w:sdt"); this.root.push(new StructuredDocumentTagProperties(alias)); diff --git a/src/file/table/grid.ts b/src/file/table/grid.ts index 7c3fdbaa41..dc32154a23 100644 --- a/src/file/table/grid.ts +++ b/src/file/table/grid.ts @@ -13,7 +13,7 @@ import { XmlAttributeComponent, XmlComponent } from "@file/xml-components"; import { twipsMeasureValue } from "@util/values"; export class TableGrid extends XmlComponent { - constructor(widths: number[] | string[]) { + public constructor(widths: number[] | string[]) { super("w:tblGrid"); for (const width of widths) { this.root.push(new GridCol(width)); @@ -26,7 +26,7 @@ class GridColAttributes extends XmlAttributeComponent<{ readonly w: number | str } export class GridCol extends XmlComponent { - constructor(width?: number | string) { + public constructor(width?: number | string) { super("w:gridCol"); if (width !== undefined) { this.root.push(new GridColAttributes({ w: twipsMeasureValue(width) })); diff --git a/src/file/table/table-cell/table-cell-components.ts b/src/file/table/table-cell/table-cell-components.ts index bcb8317602..1327b645c4 100644 --- a/src/file/table/table-cell/table-cell-components.ts +++ b/src/file/table/table-cell/table-cell-components.ts @@ -27,7 +27,7 @@ export interface ITableCellBorders { } export class TableCellBorders extends IgnoreIfEmptyXmlComponent { - constructor(options: ITableCellBorders) { + public constructor(options: ITableCellBorders) { super("w:tcBorders"); if (options.top) { @@ -66,7 +66,7 @@ class GridSpanAttributes extends XmlAttributeComponent<{ readonly val: number }> * GridSpan element. Should be used in a table cell. Pass the number of columns that this cell need to span. */ export class GridSpan extends XmlComponent { - constructor(value: number) { + public constructor(value: number) { super("w:gridSpan"); this.root.push( @@ -99,7 +99,7 @@ class VerticalMergeAttributes extends XmlAttributeComponent<{ readonly val: Vert * Vertical merge element. Should be used in a table cell. */ export class VerticalMerge extends XmlComponent { - constructor(value: VerticalMergeType) { + public constructor(value: VerticalMergeType) { super("w:vMerge"); this.root.push( @@ -124,7 +124,7 @@ class TDirectionAttributes extends XmlAttributeComponent<{ readonly val: TextDir * Text Direction within a table cell */ export class TDirection extends XmlComponent { - constructor(value: TextDirection) { + public constructor(value: TextDirection) { super("w:textDirection"); this.root.push( diff --git a/src/file/table/table-cell/table-cell-properties.ts b/src/file/table/table-cell/table-cell-properties.ts index c89c15fef0..23d9ade111 100644 --- a/src/file/table/table-cell/table-cell-properties.ts +++ b/src/file/table/table-cell/table-cell-properties.ts @@ -27,7 +27,7 @@ export interface ITableCellPropertiesOptions { } export class TableCellProperties extends IgnoreIfEmptyXmlComponent { - constructor(options: ITableCellPropertiesOptions) { + public constructor(options: ITableCellPropertiesOptions) { super("w:tcPr"); if (options.width) { diff --git a/src/file/table/table-cell/table-cell.ts b/src/file/table/table-cell/table-cell.ts index f77349829a..a57288c0bc 100644 --- a/src/file/table/table-cell/table-cell.ts +++ b/src/file/table/table-cell/table-cell.ts @@ -10,7 +10,7 @@ export interface ITableCellOptions extends ITableCellPropertiesOptions { } export class TableCell extends XmlComponent { - constructor(readonly options: ITableCellOptions) { + public constructor(readonly options: ITableCellOptions) { super("w:tc"); this.root.push(new TableCellProperties(options)); diff --git a/src/file/table/table-properties/table-borders.ts b/src/file/table/table-properties/table-borders.ts index bcfe20be8b..dee2e5cd90 100644 --- a/src/file/table/table-properties/table-borders.ts +++ b/src/file/table/table-properties/table-borders.ts @@ -33,7 +33,7 @@ export class TableBorders extends XmlComponent { insideVertical: NONE_BORDER, }; - constructor(options: ITableBordersOptions) { + public constructor(options: ITableBordersOptions) { super("w:tblBorders"); if (options.top) { diff --git a/src/file/table/table-properties/table-cell-margin.ts b/src/file/table/table-properties/table-cell-margin.ts index 24471f5d93..2556e0661c 100644 --- a/src/file/table/table-properties/table-cell-margin.ts +++ b/src/file/table/table-properties/table-cell-margin.ts @@ -39,7 +39,7 @@ export enum TableCellMarginElementType { } export class TableCellMargin extends IgnoreIfEmptyXmlComponent { - constructor(type: TableCellMarginElementType, { marginUnitType = WidthType.DXA, top, left, bottom, right }: ITableCellMarginOptions) { + public constructor(type: TableCellMarginElementType, { marginUnitType = WidthType.DXA, top, left, bottom, right }: ITableCellMarginOptions) { super(type); if (top !== undefined) { diff --git a/src/file/table/table-properties/table-float-properties.ts b/src/file/table/table-properties/table-float-properties.ts index e0f19fc093..d2ec4d3ab1 100644 --- a/src/file/table/table-properties/table-float-properties.ts +++ b/src/file/table/table-properties/table-float-properties.ts @@ -146,7 +146,7 @@ export class TableFloatOptionsAttributes extends XmlAttributeComponent // export class TableLayout extends XmlComponent { - constructor(type: TableLayoutType) { + public constructor(type: TableLayoutType) { super("w:tblLayout"); this.root.push(new TableLayoutAttributes({ type })); } diff --git a/src/file/table/table-properties/table-overlap.ts b/src/file/table/table-properties/table-overlap.ts index a14a70accb..42e8d4ce75 100644 --- a/src/file/table/table-properties/table-overlap.ts +++ b/src/file/table/table-properties/table-overlap.ts @@ -19,7 +19,7 @@ class TableOverlapAttributes extends XmlAttributeComponent<{ readonly val: Overl } export class TableOverlap extends XmlComponent { - constructor(type: OverlapType) { + public constructor(type: OverlapType) { super("w:tblOverlap"); this.root.push(new TableOverlapAttributes({ val: type })); } diff --git a/src/file/table/table-properties/table-properties.ts b/src/file/table/table-properties/table-properties.ts index 1be92a9392..d720fdf384 100644 --- a/src/file/table/table-properties/table-properties.ts +++ b/src/file/table/table-properties/table-properties.ts @@ -45,7 +45,7 @@ export interface ITablePropertiesOptions { } export class TableProperties extends IgnoreIfEmptyXmlComponent { - constructor(options: ITablePropertiesOptions) { + public constructor(options: ITablePropertiesOptions) { super("w:tblPr"); if (options.style) { diff --git a/src/file/table/table-row/table-row-height.ts b/src/file/table/table-row/table-row-height.ts index b8b1390fa0..12294b7f4e 100644 --- a/src/file/table/table-row/table-row-height.ts +++ b/src/file/table/table-row/table-row-height.ts @@ -30,7 +30,7 @@ export class TableRowHeightAttributes extends XmlAttributeComponent<{ } export class TableRowHeight extends XmlComponent { - constructor(value: number | string, rule: HeightRule) { + public constructor(value: number | string, rule: HeightRule) { super("w:trHeight"); this.root.push( diff --git a/src/file/table/table-row/table-row-properties.ts b/src/file/table/table-row/table-row-properties.ts index d4ebdc0264..c4fa01ea6d 100644 --- a/src/file/table/table-row/table-row-properties.ts +++ b/src/file/table/table-row/table-row-properties.ts @@ -41,7 +41,7 @@ export interface ITableRowPropertiesOptions { } export class TableRowProperties extends IgnoreIfEmptyXmlComponent { - constructor(options: ITableRowPropertiesOptions) { + public constructor(options: ITableRowPropertiesOptions) { super("w:trPr"); if (options.cantSplit !== undefined) { diff --git a/src/file/table/table-row/table-row.ts b/src/file/table/table-row/table-row.ts index cfa22a5b6d..7eba4c4134 100644 --- a/src/file/table/table-row/table-row.ts +++ b/src/file/table/table-row/table-row.ts @@ -7,7 +7,7 @@ export interface ITableRowOptions extends ITableRowPropertiesOptions { } export class TableRow extends XmlComponent { - constructor(private readonly options: ITableRowOptions) { + public constructor(private readonly options: ITableRowOptions) { super("w:tr"); this.root.push(new TableRowProperties(options)); diff --git a/src/file/table/table-width.ts b/src/file/table/table-width.ts index 530a34b3e9..38c941b2f1 100644 --- a/src/file/table/table-width.ts +++ b/src/file/table/table-width.ts @@ -35,7 +35,7 @@ class TableWidthAttributes extends XmlAttributeComponent } export class TableWidthElement extends XmlComponent { - constructor(name: string, { type = WidthType.AUTO, size }: ITableWidthProperties) { + public constructor(name: string, { type = WidthType.AUTO, size }: ITableWidthProperties) { super(name); // super("w:tblW"); let tableWidthValue = size; diff --git a/src/file/table/table.ts b/src/file/table/table.ts index a7564104c8..236d56084a 100644 --- a/src/file/table/table.ts +++ b/src/file/table/table.ts @@ -35,7 +35,7 @@ export interface ITableOptions { } export class Table extends XmlComponent { - constructor({ + public constructor({ rows, width, columnWidths = Array(Math.max(...rows.map((row) => row.CellCount))).fill(100), diff --git a/src/file/track-revision/track-revision-components/deleted-page-number.ts b/src/file/track-revision/track-revision-components/deleted-page-number.ts index 27b8e52bdf..83971df259 100644 --- a/src/file/track-revision/track-revision-components/deleted-page-number.ts +++ b/src/file/track-revision/track-revision-components/deleted-page-number.ts @@ -3,7 +3,7 @@ import { SpaceType } from "@file/space-type"; import { XmlComponent } from "@file/xml-components"; export class DeletedPage extends XmlComponent { - constructor() { + public constructor() { super("w:delInstrText"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); this.root.push("PAGE"); @@ -11,7 +11,7 @@ export class DeletedPage extends XmlComponent { } export class DeletedNumberOfPages extends XmlComponent { - constructor() { + public constructor() { super("w:delInstrText"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); this.root.push("NUMPAGES"); @@ -19,7 +19,7 @@ export class DeletedNumberOfPages extends XmlComponent { } export class DeletedNumberOfPagesSection extends XmlComponent { - constructor() { + public constructor() { super("w:delInstrText"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); this.root.push("SECTIONPAGES"); diff --git a/src/file/track-revision/track-revision-components/deleted-text-run.ts b/src/file/track-revision/track-revision-components/deleted-text-run.ts index cc4d41cf9e..e00693c2c0 100644 --- a/src/file/track-revision/track-revision-components/deleted-text-run.ts +++ b/src/file/track-revision/track-revision-components/deleted-text-run.ts @@ -13,7 +13,7 @@ interface IDeletedRunOptions extends IRunOptions, IChangedAttributesProperties { export class DeletedTextRun extends XmlComponent { protected readonly deletedTextRunWrapper: DeletedTextRunWrapper; - constructor(options: IDeletedRunOptions) { + public constructor(options: IDeletedRunOptions) { super("w:del"); this.root.push( new ChangeAttributes({ @@ -28,7 +28,7 @@ export class DeletedTextRun extends XmlComponent { } class DeletedTextRunWrapper extends XmlComponent { - constructor(options: IRunOptions) { + public constructor(options: IRunOptions) { super("w:r"); this.root.push(new RunProperties(options)); diff --git a/src/file/track-revision/track-revision-components/deleted-text.ts b/src/file/track-revision/track-revision-components/deleted-text.ts index f0e3ee4d34..e6c3e33c2a 100644 --- a/src/file/track-revision/track-revision-components/deleted-text.ts +++ b/src/file/track-revision/track-revision-components/deleted-text.ts @@ -3,7 +3,7 @@ import { SpaceType } from "@file/space-type"; import { XmlComponent } from "@file/xml-components"; export class DeletedText extends XmlComponent { - constructor(text: string) { + public constructor(text: string) { super("w:delText"); this.root.push(new TextAttributes({ space: SpaceType.PRESERVE })); diff --git a/src/file/track-revision/track-revision-components/inserted-text-run.ts b/src/file/track-revision/track-revision-components/inserted-text-run.ts index 0389de2d89..6b66797653 100644 --- a/src/file/track-revision/track-revision-components/inserted-text-run.ts +++ b/src/file/track-revision/track-revision-components/inserted-text-run.ts @@ -6,7 +6,7 @@ import { ChangeAttributes, IChangedAttributesProperties } from "../track-revisio interface IInsertedRunOptions extends IChangedAttributesProperties, IRunOptions {} export class InsertedTextRun extends XmlComponent { - constructor(options: IInsertedRunOptions) { + public constructor(options: IInsertedRunOptions) { super("w:ins"); this.root.push( new ChangeAttributes({ diff --git a/src/file/vertical-align/vertical-align.ts b/src/file/vertical-align/vertical-align.ts index 30b8300990..795dff8c83 100644 --- a/src/file/vertical-align/vertical-align.ts +++ b/src/file/vertical-align/vertical-align.ts @@ -25,7 +25,7 @@ export class VerticalAlignAttributes extends XmlAttributeComponent<{ } export class VerticalAlignElement extends XmlComponent { - constructor(value: VerticalAlign) { + public constructor(value: VerticalAlign) { super("w:vAlign"); this.root.push(new VerticalAlignAttributes({ verticalAlign: value })); } diff --git a/src/file/xml-components/base.ts b/src/file/xml-components/base.ts index 7a0d5a758b..410ff07feb 100644 --- a/src/file/xml-components/base.ts +++ b/src/file/xml-components/base.ts @@ -10,7 +10,7 @@ export interface IContext { export abstract class BaseXmlComponent { protected readonly rootKey: string; - constructor(rootKey: string) { + public constructor(rootKey: string) { this.rootKey = rootKey; } diff --git a/src/file/xml-components/default-attributes.ts b/src/file/xml-components/default-attributes.ts index 5f4240c102..3e865c0b1d 100644 --- a/src/file/xml-components/default-attributes.ts +++ b/src/file/xml-components/default-attributes.ts @@ -8,7 +8,7 @@ export abstract class XmlAttributeComponent extends BaseXmlComponent { protected root: T; protected readonly xmlKeys?: AttributeMap; - constructor(properties: T) { + public constructor(properties: T) { super("_attr"); this.root = properties; } diff --git a/src/file/xml-components/imported-xml-component.ts b/src/file/xml-components/imported-xml-component.ts index 85d46a7dbd..411ef0ac42 100644 --- a/src/file/xml-components/imported-xml-component.ts +++ b/src/file/xml-components/imported-xml-component.ts @@ -52,7 +52,7 @@ export class ImportedXmlComponent extends XmlComponent { */ // tslint:disable-next-line:variable-name - constructor(rootKey: string, _attr?: any) { + public constructor(rootKey: string, _attr?: any) { super(rootKey); if (_attr) { this.root.push(new ImportedXmlComponentAttributes(_attr)); @@ -69,7 +69,7 @@ export class ImportedXmlComponent extends XmlComponent { */ export class ImportedRootElementAttributes extends XmlComponent { // tslint:disable-next-line:variable-name - constructor(private readonly _attr: any) { + public constructor(private readonly _attr: any) { super(""); } diff --git a/src/file/xml-components/initializable-xml-component.ts b/src/file/xml-components/initializable-xml-component.ts index 636f6d5a4d..c9d0ef4373 100644 --- a/src/file/xml-components/initializable-xml-component.ts +++ b/src/file/xml-components/initializable-xml-component.ts @@ -1,7 +1,7 @@ import { XmlComponent } from "@file/xml-components"; export abstract class InitializableXmlComponent extends XmlComponent { - constructor(rootKey: string, initComponent?: InitializableXmlComponent) { + public constructor(rootKey: string, initComponent?: InitializableXmlComponent) { super(rootKey); if (initComponent) { diff --git a/src/file/xml-components/simple-elements.ts b/src/file/xml-components/simple-elements.ts index 6478d5cec3..73bac12d05 100644 --- a/src/file/xml-components/simple-elements.ts +++ b/src/file/xml-components/simple-elements.ts @@ -13,7 +13,7 @@ import { hpsMeasureValue } from "@util/values"; // // export class OnOffElement extends XmlComponent { - constructor(name: string, val: boolean | undefined = true) { + public constructor(name: string, val: boolean | undefined = true) { super(name); if (val !== true) { this.root.push(new Attributes({ val })); @@ -27,7 +27,7 @@ export class OnOffElement extends XmlComponent { // // export class HpsMeasureElement extends XmlComponent { - constructor(name: string, val: number | string) { + public constructor(name: string, val: number | string) { super(name); this.root.push(new Attributes({ val: hpsMeasureValue(val) })); } @@ -39,7 +39,7 @@ export class HpsMeasureElement extends XmlComponent { // // export class StringValueElement extends XmlComponent { - constructor(name: string, val: string) { + public constructor(name: string, val: string) { super(name); this.root.push(new Attributes({ val })); } @@ -47,7 +47,7 @@ export class StringValueElement extends XmlComponent { // This represents various number element types. export class NumberValueElement extends XmlComponent { - constructor(name: string, val: number) { + public constructor(name: string, val: number) { super(name); this.root.push(new Attributes({ val })); } @@ -58,7 +58,7 @@ export class NumberValueElement extends XmlComponent { // new StringContainer("hello", "world") // world export class StringContainer extends XmlComponent { - constructor(name: string, val: string) { + public constructor(name: string, val: string) { super(name); this.root.push(val); } diff --git a/src/file/xml-components/xml-component.ts b/src/file/xml-components/xml-component.ts index f1e76aa797..60fc67d2b9 100644 --- a/src/file/xml-components/xml-component.ts +++ b/src/file/xml-components/xml-component.ts @@ -7,7 +7,7 @@ export abstract class XmlComponent extends BaseXmlComponent { // tslint:disable-next-line:readonly-keyword no-any protected root: (BaseXmlComponent | string | any)[]; - constructor(rootKey: string) { + public constructor(rootKey: string) { super(rootKey); this.root = new Array(); } diff --git a/src/import-dotx/import-dotx.ts b/src/import-dotx/import-dotx.ts index faaf2b9bdd..d1c6142b76 100644 --- a/src/import-dotx/import-dotx.ts +++ b/src/import-dotx/import-dotx.ts @@ -1,3 +1,5 @@ +/* eslint-disable */ +// This will be deprecated soon import * as JSZip from "jszip"; import { Element as XMLElement, ElementCompact as XMLElementCompact, xml2js } from "xml-js"; diff --git a/src/util/convenience-functions.ts b/src/util/convenience-functions.ts index 2443fb9f88..4644775ccc 100644 --- a/src/util/convenience-functions.ts +++ b/src/util/convenience-functions.ts @@ -3,18 +3,12 @@ import { nanoid } from "nanoid/non-secure"; let currentCount = 0; // Twip - twentieths of a point -export const convertMillimetersToTwip = (millimeters: number): number => { - return Math.floor((millimeters / 25.4) * 72 * 20); -}; +export const convertMillimetersToTwip = (millimeters: number): number => Math.floor((millimeters / 25.4) * 72 * 20); -export const convertInchesToTwip = (inches: number): number => { - return Math.floor(inches * 72 * 20); -}; +export const convertInchesToTwip = (inches: number): number => Math.floor(inches * 72 * 20); export const uniqueNumericId = (): number => { return ++currentCount; }; -export const uniqueId = (): string => { - return nanoid().toLowerCase(); -}; +export const uniqueId = (): string => nanoid().toLowerCase(); From ebcb37cbed12532960d4c002ab431121abe8745a Mon Sep 17 00:00:00 2001 From: Dolan Miu Date: Wed, 31 Aug 2022 08:59:27 +0100 Subject: [PATCH 2/5] Fix ESLinting errors and remove TSLint --- .eslintrc.js | 16 ++-- .vscode/extensions.json | 4 +- package-lock.json | 88 ++++++------------- package.json | 4 +- src/file/document-wrapper.spec.ts | 2 - src/file/drawing/anchor/anchor.spec.ts | 4 +- src/file/drawing/drawing.spec.ts | 4 +- src/file/drawing/text-wrap/wrap-square.ts | 3 +- src/file/file.spec.ts | 2 - src/file/file.ts | 8 +- src/file/footnotes-wrapper.spec.ts | 2 - src/file/media/media.ts | 2 + src/file/numbering/level.spec.ts | 3 +- src/file/numbering/level.ts | 3 - src/file/paragraph/paragraph.spec.ts | 8 +- src/file/paragraph/run/image-run.spec.ts | 4 +- src/file/paragraph/run/run.spec.ts | 4 +- src/file/paragraph/run/symbol-run.spec.ts | 4 +- .../styles/defaults/document-defaults.spec.ts | 4 +- src/file/styles/sample/default-style.ts | 9 +- src/file/styles/style/default-styles.spec.ts | 2 +- src/file/table/grid.spec.ts | 2 +- src/file/table/table-cell/table-cell.ts | 2 +- .../imported-xml-component.spec.ts | 5 +- .../xml-components/imported-xml-component.ts | 8 +- src/index.spec.ts | 1 - src/util/convenience-functions.spec.ts | 2 - src/util/convenience-functions.ts | 4 +- src/util/values.ts | 64 +++++++------- tslint.json | 37 -------- 30 files changed, 104 insertions(+), 201 deletions(-) delete mode 100644 tslint.json diff --git a/.eslintrc.js b/.eslintrc.js index 5fee3a0e1f..f5fd89265a 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -106,6 +106,9 @@ module.exports = { FunctionExpression: { parameters: "first", }, + SwitchCase: 1, + flatTernaryExpressions: false, + ignoredNodes: [], }, ], "@typescript-eslint/naming-convention": [ @@ -113,9 +116,9 @@ module.exports = { { selector: ["objectLiteralProperty"], leadingUnderscore: "allow", - format: ["camelCase"], - custom: { - regex: "^w:.+", + format: ["camelCase", "PascalCase"], + filter: { + regex: "(^[a-z]+:.+)|_attr|[0-9]", match: false, }, }, @@ -204,7 +207,7 @@ module.exports = { "no-throw-literal": "error", "no-trailing-spaces": "error", "no-undef-init": "error", - "no-underscore-dangle": "error", + "no-underscore-dangle": ["error", { allow: ["_attr"] }], "no-unsafe-finally": "error", "no-unused-expressions": "off", "no-unused-labels": "error", @@ -252,13 +255,14 @@ module.exports = { }, }, ], + "@typescript-eslint/explicit-function-return-type": "off", }, overrides: [ { - // enable the rule specifically for TypeScript files files: ["*.spec.ts"], rules: { - "@typescript-eslint/explicit-function-return-type": "off", + "@typescript-eslint/no-unused-expressions": "off", + "@typescript-eslint/dot-notation": "off", }, }, ], diff --git a/.vscode/extensions.json b/.vscode/extensions.json index 8481f95630..e2bf1c49ff 100644 --- a/.vscode/extensions.json +++ b/.vscode/extensions.json @@ -1,5 +1,3 @@ { - "recommendations": [ - "streetsidesoftware.code-spell-checker" - ] + "recommendations": ["streetsidesoftware.code-spell-checker", "dbaeumer.vscode-eslint"] } diff --git a/package-lock.json b/package-lock.json index 9cb078bea5..fe80f66bca 100644 --- a/package-lock.json +++ b/package-lock.json @@ -57,8 +57,6 @@ "ts-node": "^10.2.1", "tsconfig-paths": "^4.0.0", "tsconfig-paths-webpack-plugin": "^4.0.0", - "tslint": "^6.1.3", - "tslint-immutable": "^6.0.1", "typedoc": "^0.23.2", "typescript": "4.7.4", "unzipper": "^0.10.11", @@ -2621,6 +2619,7 @@ "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true, + "peer": true, "engines": { "node": ">=0.10.0" } @@ -3008,7 +3007,8 @@ "version": "2.15.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true + "dev": true, + "peer": true }, "node_modules/comment-json": { "version": "4.2.3", @@ -10340,11 +10340,11 @@ "dev": true }, "node_modules/tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", - "deprecated": "TSLint has been deprecated in favor of ESLint. Please see https://github.com/palantir/tslint/issues/4534 for more information.", + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, + "peer": true, "dependencies": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", @@ -10354,10 +10354,10 @@ "glob": "^7.1.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", + "mkdirp": "^0.5.1", "resolve": "^1.3.2", "semver": "^5.3.0", - "tslib": "^1.13.0", + "tslib": "^1.8.0", "tsutils": "^2.29.0" }, "bin": { @@ -10367,20 +10367,7 @@ "node": ">=4.8.0" }, "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev || >= 4.0.0-dev" - } - }, - "node_modules/tslint-immutable": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tslint-immutable/-/tslint-immutable-6.0.1.tgz", - "integrity": "sha512-3GQ6HffN64gLmT/N1YzyVMqyf6uBjMvhNaevK8B0K01/QC0OU5AQZrH4TjMHo1IdG3JpqsZvuRy9IW1LA3zjwA==", - "dev": true, - "dependencies": { - "tsutils": "^2.28.0 || ^3.0.0" - }, - "peerDependencies": { - "tslint": "^5.8.0", - "typescript": "^2.8.0 || ^3.0.0" + "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" } }, "node_modules/tslint/node_modules/diff": { @@ -10388,6 +10375,7 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", "dev": true, + "peer": true, "engines": { "node": ">=0.3.1" } @@ -10397,6 +10385,7 @@ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, + "peer": true, "dependencies": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -10412,23 +10401,12 @@ "url": "https://github.com/sponsors/isaacs" } }, - "node_modules/tslint/node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, "node_modules/tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, + "peer": true, "dependencies": { "tslib": "^1.8.1" }, @@ -13574,7 +13552,8 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true + "dev": true, + "peer": true }, "cacheable-request": { "version": "6.1.0", @@ -13869,7 +13848,8 @@ "version": "2.15.1", "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true + "dev": true, + "peer": true }, "comment-json": { "version": "4.2.3", @@ -19413,10 +19393,11 @@ "dev": true }, "tslint": { - "version": "6.1.3", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", - "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", + "version": "5.20.1", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", + "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", "dev": true, + "peer": true, "requires": { "@babel/code-frame": "^7.0.0", "builtin-modules": "^1.1.1", @@ -19426,10 +19407,10 @@ "glob": "^7.1.1", "js-yaml": "^3.13.1", "minimatch": "^3.0.4", - "mkdirp": "^0.5.3", + "mkdirp": "^0.5.1", "resolve": "^1.3.2", "semver": "^5.3.0", - "tslib": "^1.13.0", + "tslib": "^1.8.0", "tsutils": "^2.29.0" }, "dependencies": { @@ -19437,13 +19418,15 @@ "version": "4.0.2", "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "dev": true, + "peer": true }, "glob": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", "dev": true, + "peer": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", @@ -19452,32 +19435,15 @@ "once": "^1.3.0", "path-is-absolute": "^1.0.0" } - }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } } } }, - "tslint-immutable": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/tslint-immutable/-/tslint-immutable-6.0.1.tgz", - "integrity": "sha512-3GQ6HffN64gLmT/N1YzyVMqyf6uBjMvhNaevK8B0K01/QC0OU5AQZrH4TjMHo1IdG3JpqsZvuRy9IW1LA3zjwA==", - "dev": true, - "requires": { - "tsutils": "^2.28.0 || ^3.0.0" - } - }, "tsutils": { "version": "2.29.0", "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, + "peer": true, "requires": { "tslib": "^1.8.1" } diff --git a/package.json b/package.json index a4e785557e..93a82233ce 100644 --- a/package.json +++ b/package.json @@ -9,7 +9,7 @@ "test.coverage": "nyc npm test", "test.watch": "npm test -- --watch", "prepublishOnly": "npm run build --production", - "lint": "eslint -c .eslintrc.js --ext .ts .", + "lint": "eslint -c .eslintrc.js --ext .ts src", "build": "npm run webpack && npm run fix-types", "webpack": "rimraf ./build && webpack --config ./webpack.config.ts", "demo": "npm run build && npm run ts-node --skip-project ./demo", @@ -104,8 +104,6 @@ "ts-node": "^10.2.1", "tsconfig-paths": "^4.0.0", "tsconfig-paths-webpack-plugin": "^4.0.0", - "tslint": "^6.1.3", - "tslint-immutable": "^6.0.1", "typedoc": "^0.23.2", "typescript": "4.7.4", "unzipper": "^0.10.11", diff --git a/src/file/document-wrapper.spec.ts b/src/file/document-wrapper.spec.ts index 344fded379..7f54aad9c6 100644 --- a/src/file/document-wrapper.spec.ts +++ b/src/file/document-wrapper.spec.ts @@ -7,9 +7,7 @@ describe("DocumentWrapper", () => { it("should create", () => { const file = new DocumentWrapper({ background: {} }); - // tslint:disable-next-line: no-unused-expression expect(file.View).to.be.ok; - // tslint:disable-next-line: no-unused-expression expect(file.Relationships).to.be.ok; }); }); diff --git a/src/file/drawing/anchor/anchor.spec.ts b/src/file/drawing/anchor/anchor.spec.ts index d9d0be1015..358f70aa33 100644 --- a/src/file/drawing/anchor/anchor.spec.ts +++ b/src/file/drawing/anchor/anchor.spec.ts @@ -6,7 +6,7 @@ import { IDrawingOptions } from "../drawing"; import { TextWrappingType } from "../text-wrap"; import { Anchor } from "./anchor"; -function createAnchor(drawingOptions: IDrawingOptions): Anchor { +const createAnchor = (drawingOptions: IDrawingOptions): Anchor => { return new Anchor( { fileName: "test.png", @@ -34,7 +34,7 @@ function createAnchor(drawingOptions: IDrawingOptions): Anchor { }, drawingOptions, ); -} +}; describe("Anchor", () => { let anchor: Anchor; diff --git a/src/file/drawing/drawing.spec.ts b/src/file/drawing/drawing.spec.ts index b7b9c61acc..d495ef111e 100644 --- a/src/file/drawing/drawing.spec.ts +++ b/src/file/drawing/drawing.spec.ts @@ -6,7 +6,7 @@ import { Drawing, IDrawingOptions } from "./drawing"; const imageBase64Data = `iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAACzVBMVEUAAAAAAAAAAAAAAAA/AD8zMzMqKiokJCQfHx8cHBwZGRkuFxcqFSonJyckJCQiIiIfHx8eHh4cHBwoGhomGSYkJCQhISEfHx8eHh4nHR0lHBwkGyQjIyMiIiIgICAfHx8mHh4lHh4kHR0jHCMiGyIhISEgICAfHx8lHx8kHh4jHR0hHCEhISEgICAlHx8kHx8jHh4jHh4iHSIhHCEhISElICAkHx8jHx8jHh4iHh4iHSIhHSElICAkICAjHx8jHx8iHh4iHh4hHiEhHSEkICAjHx8iHx8iHx8hHh4hHiEkHSEjHSAjHx8iHx8iHx8hHh4kHiEkHiEjHSAiHx8hHx8hHh4kHiEjHiAjHSAiHx8iHx8hHx8kHh4jHiEjHiAjHiAiICAiHx8kHx8jHh4jHiEjHiAiHiAiHSAiHx8jHx8jHx8jHiAiHiAiHiAiHSAiHx8jHx8jHx8iHiAiHiAiHiAjHx8jHx8jHx8jHx8iHiAiHiAiHiAjHx8jHx8jHx8iHx8iHSAiHiAjHiAjHx8jHx8hHx8iHx8iHyAiHiAjHiAjHiAjHh4hHx8iHx8iHx8iHyAjHSAjHiAjHiAjHh4hHx8iHx8iHx8jHyAjHiAhHh4iHx8iHx8jHyAjHSAjHSAhHiAhHh4iHx8iHx8jHx8jHyAjHSAjHSAiHh4iHh4jHx8jHx8jHyAjHyAhHSAhHSAiHh4iHh4jHx8jHx8jHyAhHyAhHSAiHSAiHh4jHh4jHx8jHx8jHyAhHyAhHSAiHSAjHR4jHh4jHx8jHx8hHyAhHyAiHSAjHSAjHR4jHh4jHx8hHx8hHyAhHyAiHyAjHSAjHR4jHR4hHh4hHx8hHyAiHyAjHyAjHSAjHR4jHR4hHh4hHx8hHyAjHyAjHyAjHSAjHR4hHR4hHR4hHx8iHyAjHyAjHyAjHSAhHR4hHR4hHR4hHx8jHyAjHyAjHyAjHyC9S2xeAAAA7nRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFxgZGhscHR4fICEiIyQlJicoKSorLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZISUpLTE1OUFFSU1RVVllaW1xdXmBhYmNkZWZnaGprbG1ub3Byc3R1dnd4eXp8fn+AgYKDhIWGiImKi4yNj5CRkpOUlZaXmJmam5ydnp+goaKjpKaoqqusra6vsLGys7S1tri5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+fkZpVQAABcBJREFUGBntwftjlQMcBvDnnLNL22qzJjWlKLHFVogyty3SiFq6EZliqZGyhnSxsLlMRahYoZKRFcul5dKFCatYqWZaNKvWtrPz/A2+7/b27qRzec/lPfvl/XxgMplMJpPJZDKZAtA9HJ3ppnIez0KnSdtC0RCNznHdJrbrh85wdSlVVRaEXuoGamYi5K5430HNiTiEWHKJg05eRWgNfKeV7RxbqUhGKPV/207VupQ8is0IoX5vtFC18SqEHaK4GyHTZ2kzVR8PBTCO4oANIZL4ShNVZcOhKKeYg9DoWdhI1ec3os2VFI0JCIUez5+i6st0qJZRrEAIJCw+QdW223BG/EmKwTBc/IJ/qfp2FDrkUnwFo8U9dZyqnaPhxLqfYjyM1S3vb6p+GGOBszsojoTDSDFz6qj66R4LzvYJxVMwUNRjf1H1ywQr/megg2RzLximy8waqvbda8M5iijegVEiHjlM1W/3h+FcXesphsMY4dMOUnUgOxyuPEzxPQwRNvV3qg5Nj4BreyimwADWe/dRVTMjEm6MoGLzGwtystL6RyOY3qSqdlYU3FpLZw1VW0sK5943MvUCKwJ1noNtjs6Ohge76Zq9ZkfpigU5WWkDYuCfbs1U5HWFR8/Qq4a9W0uK5k4ZmdrTCl8spGIePLPlbqqsc1Afe83O0hULc8alDYiBd7ZyitYMeBfR55rR2fOKP6ioPk2dGvZ+UVI0d8rtqT2tcCexlqK2F3wRn5Q+YVbBqrLKOupkr9lZujAOrmS0UpTb4JeIPkNHZ+cXr6uoPk2vyuBSPhWLEKj45PQJuQWryyqP0Z14uGLdROHIRNBEXDR09EP5r62rOHCazhrD4VKPwxTH+sIA3ZPTJ+YuWV22n+IruHFDC8X2CBjnPoolcGc2FYUwzmsUWXDHsoGKLBhmN0VvuBVfTVE/AAbpaid5CB4MbaLY1QXGuIViLTyZQcVyGGMuxWPwaA0Vk2GI9RRp8Ci2iuLkIBjhT5LNUfAspZFiTwyC72KK7+DNg1SsRvCNp3gZXq2k4iEEXSHFJHgVXUlxejCCbTvFAHiXdIJiXxyCK7KJ5FHoMZGK9xBcwyg2QpdlVMxEUM2iyIMuXXZQNF+HswxMsSAAJRQjoE//eoqDCXBSTO6f1xd+O0iyNRY6jaWi1ALNYCocZROj4JdEikroVkjFk9DcStXxpdfCD2MoXodu4RUU9ptxxmXssOfxnvDVcxRTod9FxyhqLoAqis5aPhwTDp9spRgEH2Q6KLbYoKqlaKTm6Isp0C/sJMnjFvhiERXPQvUNRe9p29lhR04CdBpC8Sl8YiuncIxEuzUUg4Dkgj+paVozygY9plPMh28SaymO9kabAopREGF3vt9MzeFFl8G7lRSZ8FFGK8XX4VA8QjEd7XrM3M0OXz8YCy+qKBLgq3wqnofiTorF0Ax56Rg1J1elW+BBAsVe+My6iYq7IK6keBdOIseV2qn5Pb8f3MqkWAXf9ThM8c8lAOIotuFsF875lRrH5klRcG0+xcPwQ1oLxfeRAP4heQTnGL78X2rqlw2DK59SXAV/zKaiGMAuko5InCt68mcOan5+ohf+z1pP8lQY/GHZQMV4YD3FpXDp4qerqbF/lBWBswyi+AL+ia+maLgcRRQj4IYlY/UpauqKBsPJAxQF8NM1TRQ/RudSPAD34rK3scOuR8/HGcspxsJfOVS8NZbiGXiUtPgINU3v3WFDmx8pEuG3EiqKKVbCC1vm2iZqap5LAtCtleQf8F9sFYWDohzeJczYyQ4V2bEZFGsQgJRGqqqhS2phHTWn9lDkIhBTqWqxQZ+IsRvtdHY9AvI2VX2hW68nfqGmuQsCEl3JdjfCF8OW1bPdtwhQ0gm2mQzfRE3a7KCYj0BNZJs8+Kxf/r6WtTEI2FIqlsMfFgRB5A6KUnSe/vUkX0AnuvUIt8SjM1m6wWQymUwmk8lkMgXRf5vi8rLQxtUhAAAAAElFTkSuQmCC`; -function createDrawing(drawingOptions?: IDrawingOptions): Drawing { +const createDrawing = (drawingOptions?: IDrawingOptions): Drawing => { return new Drawing( { fileName: "test.jpg", @@ -24,7 +24,7 @@ function createDrawing(drawingOptions?: IDrawingOptions): Drawing { }, drawingOptions, ); -} +}; describe("Drawing", () => { let currentBreak: Drawing; diff --git a/src/file/drawing/text-wrap/wrap-square.ts b/src/file/drawing/text-wrap/wrap-square.ts index 74bc46d90a..b805ae4d55 100644 --- a/src/file/drawing/text-wrap/wrap-square.ts +++ b/src/file/drawing/text-wrap/wrap-square.ts @@ -1,8 +1,9 @@ // http://officeopenxml.com/drwPicFloating-textWrap.php import { XmlAttributeComponent, XmlComponent } from "@file/xml-components"; -import { ITextWrapping, TextWrappingSide } from "."; + import { IDistance } from "../drawing"; import { IMargins } from "../floating"; +import { ITextWrapping, TextWrappingSide } from "./text-wrapping"; interface IWrapSquareAttributes extends IDistance { readonly wrapText?: TextWrappingSide; diff --git a/src/file/file.spec.ts b/src/file/file.spec.ts index 150d728d14..b0d9278b18 100644 --- a/src/file/file.spec.ts +++ b/src/file/file.spec.ts @@ -397,7 +397,6 @@ describe("File", () => { sections: [], }); - // tslint:disable-next-line: no-unused-expression expect(doc.Comments).to.not.be.undefined; }); }); @@ -409,7 +408,6 @@ describe("File", () => { sections: [], }); - // tslint:disable-next-line: no-unused-expression expect(doc.Numbering).to.not.be.undefined; }); }); diff --git a/src/file/file.ts b/src/file/file.ts index 481c8a857f..02eace30a6 100644 --- a/src/file/file.ts +++ b/src/file/file.ts @@ -63,13 +63,7 @@ export class File { lastModifiedBy: options.lastModifiedBy ?? "Un-named", }); - this.numbering = new Numbering( - options.numbering - ? options.numbering - : { - config: [], - }, - ); + this.numbering = new Numbering(options.numbering ? options.numbering : { config: [] }); this.comments = new Comments(options.comments ?? { children: [] }); this.fileRelationships = new Relationships(); diff --git a/src/file/footnotes-wrapper.spec.ts b/src/file/footnotes-wrapper.spec.ts index 6427de6ee6..4318ab0fdd 100644 --- a/src/file/footnotes-wrapper.spec.ts +++ b/src/file/footnotes-wrapper.spec.ts @@ -7,9 +7,7 @@ describe("FootnotesWrapper", () => { it("should create", () => { const file = new FootnotesWrapper(); - // tslint:disable-next-line: no-unused-expression expect(file.View).to.be.ok; - // tslint:disable-next-line: no-unused-expression expect(file.Relationships).to.be.ok; }); }); diff --git a/src/file/media/media.ts b/src/file/media/media.ts index 8c01c9062b..4daf8d60f1 100644 --- a/src/file/media/media.ts +++ b/src/file/media/media.ts @@ -68,7 +68,9 @@ export class Media { .map((c) => c.charCodeAt(0)), ); } else { + /* eslint @typescript-eslint/no-require-imports: 0 */ const b = require("buf" + "fer"); + /* eslint @typescript-eslint/no-require-imports: 2 */ return new b.Buffer(dataURI, "base64"); } } diff --git a/src/file/numbering/level.spec.ts b/src/file/numbering/level.spec.ts index 5748a9c610..e51480bb6a 100644 --- a/src/file/numbering/level.spec.ts +++ b/src/file/numbering/level.spec.ts @@ -1,9 +1,8 @@ import { expect } from "chai"; -import { LevelFormat, LevelSuffix } from "."; import { AlignmentType } from ".."; -import { Level } from "./level"; +import { Level, LevelFormat, LevelSuffix } from "./level"; describe("Level", () => { describe("#constructor", () => { diff --git a/src/file/numbering/level.ts b/src/file/numbering/level.ts index 0e11a845cb..c307fb4f35 100644 --- a/src/file/numbering/level.ts +++ b/src/file/numbering/level.ts @@ -180,9 +180,6 @@ export class LevelBase extends XmlComponent { export class Level extends LevelBase { // This is the level that sits under abstractNum. We make a // handful of properties required - public constructor(options: ILevelsOptions) { - super(options); - } } export class LevelForOverride extends LevelBase {} diff --git a/src/file/paragraph/paragraph.spec.ts b/src/file/paragraph/paragraph.spec.ts index f6440bf23b..327ebf381f 100644 --- a/src/file/paragraph/paragraph.spec.ts +++ b/src/file/paragraph/paragraph.spec.ts @@ -19,12 +19,8 @@ import { TextRun } from "./run"; describe("Paragraph", () => { before(() => { - stub(convenienceFunctions, "uniqueId").callsFake(() => { - return "test-unique-id"; - }); - stub(convenienceFunctions, "uniqueNumericId").callsFake(() => { - return -101; - }); + stub(convenienceFunctions, "uniqueId").callsFake(() => "test-unique-id"); + stub(convenienceFunctions, "uniqueNumericId").callsFake(() => -101); }); after(() => { diff --git a/src/file/paragraph/run/image-run.spec.ts b/src/file/paragraph/run/image-run.spec.ts index 64c2835b34..972080b49a 100644 --- a/src/file/paragraph/run/image-run.spec.ts +++ b/src/file/paragraph/run/image-run.spec.ts @@ -10,9 +10,7 @@ import { ImageRun } from "./image-run"; describe("ImageRun", () => { before(() => { - stub(convenienceFunctions, "uniqueId").callsFake(() => { - return "test-unique-id"; - }); + stub(convenienceFunctions, "uniqueId").callsFake(() => "test-unique-id"); }); after(() => { diff --git a/src/file/paragraph/run/run.spec.ts b/src/file/paragraph/run/run.spec.ts index 05f7b20ca4..2604d8ffca 100644 --- a/src/file/paragraph/run/run.spec.ts +++ b/src/file/paragraph/run/run.spec.ts @@ -2,13 +2,11 @@ import { expect } from "chai"; import { Formatter } from "@export/formatter"; import { BorderStyle } from "@file/border"; -// import { FootnoteReferenceRun } from "@file/footnotes/footnote/run/reference-run"; import { ShadingType } from "@file/shading"; import { SpaceType } from "@file/space-type"; -import { Run } from "./"; import { EmphasisMarkType } from "./emphasis-mark"; -import { PageNumber } from "./run"; +import { PageNumber, Run } from "./run"; import { UnderlineType } from "./underline"; describe("Run", () => { diff --git a/src/file/paragraph/run/symbol-run.spec.ts b/src/file/paragraph/run/symbol-run.spec.ts index f8393a3751..3aab0b1e83 100644 --- a/src/file/paragraph/run/symbol-run.spec.ts +++ b/src/file/paragraph/run/symbol-run.spec.ts @@ -1,11 +1,9 @@ import { expect } from "chai"; -import { EmphasisMarkType } from "./emphasis-mark"; - import { Formatter } from "@export/formatter"; +import { EmphasisMarkType } from "./emphasis-mark"; import { UnderlineType } from "./underline"; - import { SymbolRun } from "./symbol-run"; describe("SymbolRun", () => { diff --git a/src/file/styles/defaults/document-defaults.spec.ts b/src/file/styles/defaults/document-defaults.spec.ts index fd89930f4d..ccf4607941 100644 --- a/src/file/styles/defaults/document-defaults.spec.ts +++ b/src/file/styles/defaults/document-defaults.spec.ts @@ -1,9 +1,9 @@ import { expect } from "chai"; -import { DocumentDefaults } from "./document-defaults"; - import { Formatter } from "@export/formatter"; +import { DocumentDefaults } from "./document-defaults"; + describe("DocumentDefaults", () => { it("#constructor", () => { const defaults = new DocumentDefaults({ diff --git a/src/file/styles/sample/default-style.ts b/src/file/styles/sample/default-style.ts index 29e2dea3cb..7a3421c201 100644 --- a/src/file/styles/sample/default-style.ts +++ b/src/file/styles/sample/default-style.ts @@ -1,5 +1,4 @@ -/* tslint:disable */ -function createLsdException(name, uiPriority, qFormat?, semiHidden?, unhideWhenUsed?) { +const createLsdException = (name, uiPriority, qFormat?, semiHidden?, unhideWhenUsed?) => { "use strict"; return [ @@ -13,9 +12,9 @@ function createLsdException(name, uiPriority, qFormat?, semiHidden?, unhideWhenU }, }, ]; -} +}; -export function DefaultStyle() { +export const DefaultStyle = () => { var style = { "w:styles": [ { @@ -208,4 +207,4 @@ export function DefaultStyle() { }; return style; -} +}; diff --git a/src/file/styles/style/default-styles.spec.ts b/src/file/styles/style/default-styles.spec.ts index cca9bb74bb..28038ea9d6 100644 --- a/src/file/styles/style/default-styles.spec.ts +++ b/src/file/styles/style/default-styles.spec.ts @@ -1,10 +1,10 @@ import { expect } from "chai"; import { Formatter } from "@export/formatter"; +import { EMPTY_OBJECT } from "@file/xml-components"; import * as defaultStyles from "./default-styles"; -import { EMPTY_OBJECT } from "@file/xml-components"; describe("Default Styles", () => { it("HeadingStyle#constructor", () => { diff --git a/src/file/table/grid.spec.ts b/src/file/table/grid.spec.ts index 43b631c2aa..c846991878 100644 --- a/src/file/table/grid.spec.ts +++ b/src/file/table/grid.spec.ts @@ -1,10 +1,10 @@ import { expect } from "chai"; +import { EMPTY_OBJECT } from "@file/xml-components"; import { Formatter } from "@export/formatter"; import { GridCol, TableGrid } from "./grid"; -import { EMPTY_OBJECT } from "@file/xml-components"; describe("GridCol", () => { describe("#constructor", () => { diff --git a/src/file/table/table-cell/table-cell.ts b/src/file/table/table-cell/table-cell.ts index a57288c0bc..c030edb308 100644 --- a/src/file/table/table-cell/table-cell.ts +++ b/src/file/table/table-cell/table-cell.ts @@ -10,7 +10,7 @@ export interface ITableCellOptions extends ITableCellPropertiesOptions { } export class TableCell extends XmlComponent { - public constructor(readonly options: ITableCellOptions) { + public constructor(public readonly options: ITableCellOptions) { super("w:tc"); this.root.push(new TableCellProperties(options)); diff --git a/src/file/xml-components/imported-xml-component.spec.ts b/src/file/xml-components/imported-xml-component.spec.ts index 58c07d09ca..a031409a00 100644 --- a/src/file/xml-components/imported-xml-component.spec.ts +++ b/src/file/xml-components/imported-xml-component.spec.ts @@ -1,9 +1,10 @@ import { expect } from "chai"; import { Element, xml2js } from "xml-js"; -import { EMPTY_OBJECT, ImportedXmlComponent } from "./"; +import { EMPTY_OBJECT } from "@file/xml-components"; + +import { convertToXmlComponent, ImportedXmlComponent } from "./imported-xml-component"; import { IContext } from "./base"; -import { convertToXmlComponent } from "./imported-xml-component"; const xmlString = ` diff --git a/src/file/xml-components/imported-xml-component.ts b/src/file/xml-components/imported-xml-component.ts index 411ef0ac42..6eca0c261b 100644 --- a/src/file/xml-components/imported-xml-component.ts +++ b/src/file/xml-components/imported-xml-component.ts @@ -1,6 +1,8 @@ // tslint:disable:no-any import { Element as XmlElement, xml2js } from "xml-js"; -import { IXmlableObject, XmlAttributeComponent, XmlComponent } from "."; + +import { IXmlableObject, XmlAttributeComponent, XmlComponent } from "@file/xml-components"; + import { IContext } from "./base"; /** @@ -8,7 +10,7 @@ import { IContext } from "./base"; * @param element the xml element in json presentation */ -export function convertToXmlComponent(element: XmlElement): ImportedXmlComponent | string | undefined { +export const convertToXmlComponent = (element: XmlElement): ImportedXmlComponent | string | undefined => { switch (element.type) { case undefined: case "element": @@ -26,7 +28,7 @@ export function convertToXmlComponent(element: XmlElement): ImportedXmlComponent default: return undefined; } -} +}; class ImportedXmlComponentAttributes extends XmlAttributeComponent { // noop diff --git a/src/index.spec.ts b/src/index.spec.ts index dd687e7bf7..480dbf1dc1 100644 --- a/src/index.spec.ts +++ b/src/index.spec.ts @@ -5,7 +5,6 @@ import { Document } from "./index"; describe("Index", () => { describe("Document", () => { it("should instantiate the Document", () => { - // tslint:disable-next-line: no-unused-expression expect( new Document({ sections: [], diff --git a/src/util/convenience-functions.spec.ts b/src/util/convenience-functions.spec.ts index 79527d3854..8fa26f61a3 100644 --- a/src/util/convenience-functions.spec.ts +++ b/src/util/convenience-functions.spec.ts @@ -19,14 +19,12 @@ describe("Utility", () => { describe("#uniqueNumericId", () => { it("should generate a unique incrementing ID", () => { - // tslint:disable-next-line: no-unused-expression expect(uniqueNumericId()).to.not.be.undefined; }); }); describe("#uniqueId", () => { it("should generate a unique pseudorandom ID", () => { - // tslint:disable-next-line: no-unused-expression expect(uniqueId()).to.not.be.empty; }); }); diff --git a/src/util/convenience-functions.ts b/src/util/convenience-functions.ts index 4644775ccc..64f451e066 100644 --- a/src/util/convenience-functions.ts +++ b/src/util/convenience-functions.ts @@ -7,8 +7,6 @@ export const convertMillimetersToTwip = (millimeters: number): number => Math.fl export const convertInchesToTwip = (inches: number): number => Math.floor(inches * 72 * 20); -export const uniqueNumericId = (): number => { - return ++currentCount; -}; +export const uniqueNumericId = (): number => ++currentCount; export const uniqueId = (): string => nanoid().toLowerCase(); diff --git a/src/util/values.ts b/src/util/values.ts index aab6bc11ab..67e8031a43 100644 --- a/src/util/values.ts +++ b/src/util/values.ts @@ -7,63 +7,63 @@ // // // -export function decimalNumber(val: number): number { +export const decimalNumber = (val: number): number => { if (isNaN(val)) { throw new Error(`Invalid value '${val}' specified. Must be an integer.`); } return Math.floor(val); -} +}; // // // -export function unsignedDecimalNumber(val: number): number { +export const unsignedDecimalNumber = (val: number): number => { const value = decimalNumber(val); if (value < 0) { throw new Error(`Invalid value '${val}' specified. Must be a positive integer.`); } return value; -} +}; // The xsd:hexBinary type represents binary data as a sequence of binary octets. // It uses hexadecimal encoding, where each binary octet is a two-character hexadecimal number. // Lowercase and uppercase letters A through F are permitted. For example, 0FB8 and 0fb8 are two // equal xsd:hexBinary representations consisting of two octets. // http://www.datypic.com/sc/xsd/t-xsd_hexBinary.html -function hexBinary(val: string, length: number): string { +const hexBinary = (val: string, length: number): string => { const expectedLength = length * 2; if (val.length !== expectedLength || isNaN(Number("0x" + val))) { throw new Error(`Invalid hex value '${val}'. Expected ${expectedLength} digit hex value`); } return val; -} +}; // // // // // -export function longHexNumber(val: string): string { +export const longHexNumber = (val: string): string => { return hexBinary(val, 4); -} +}; // // // // // -export function shortHexNumber(val: string): string { +export const shortHexNumber = (val: string): string => { return hexBinary(val, 2); -} +}; // // // // // -export function uCharHexNumber(val: string): string { +export const uCharHexNumber = (val: string): string => { return hexBinary(val, 1); -} +}; // // @@ -76,7 +76,7 @@ export function uCharHexNumber(val: string): string { // // // -export function universalMeasureValue(val: string): string { +export const universalMeasureValue = (val: string): string => { const unit = val.slice(-2); if (!universalMeasureUnits.includes(unit)) { throw new Error(`Invalid unit '${unit}' specified. Valid units are ${universalMeasureUnits.join(", ")}`); @@ -86,7 +86,7 @@ export function universalMeasureValue(val: string): string { throw new Error(`Invalid value '${amount}' specified. Expected a valid number.`); } return `${Number(amount)}${unit}`; -} +}; const universalMeasureUnits = ["mm", "cm", "in", "pt", "pc", "pi"]; // @@ -94,13 +94,13 @@ const universalMeasureUnits = ["mm", "cm", "in", "pt", "pc", "pi"]; // // // -export function positiveUniversalMeasureValue(val: string): string { +export const positiveUniversalMeasureValue = (val: string): string => { const value = universalMeasureValue(val); if (parseFloat(value) < 0) { throw new Error(`Invalid value '${value}' specified. Expected a positive number.`); } return value; -} +}; // // @@ -116,7 +116,7 @@ export function positiveUniversalMeasureValue(val: string): string { // // // -export function hexColorValue(val: string): string { +export const hexColorValue = (val: string): string => { if (val === "auto") { return val; } @@ -124,42 +124,42 @@ export function hexColorValue(val: string): string { // Most clients work with it, but strip it off anyway for strict compliance. const color = val.charAt(0) === "#" ? val.substring(1) : val; return hexBinary(color, 3); -} +}; // // // -export function signedTwipsMeasureValue(val: string | number): string | number { +export const signedTwipsMeasureValue = (val: string | number): string | number => { return typeof val === "string" ? universalMeasureValue(val) : decimalNumber(val); -} +}; // // // -export function hpsMeasureValue(val: string | number): string | number { +export const hpsMeasureValue = (val: string | number): string | number => { return typeof val === "string" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val); -} +}; // // // -export function signedHpsMeasureValue(val: string | number): string | number { +export const signedHpsMeasureValue = (val: string | number): string | number => { return typeof val === "string" ? universalMeasureValue(val) : decimalNumber(val); -} +}; // // // -export function twipsMeasureValue(val: string | number): string | number { +export const twipsMeasureValue = (val: string | number): string | number => { return typeof val === "string" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val); -} +}; // // // // // -export function percentageValue(val: string): string { +export const percentageValue = (val: string): string => { if (val.slice(-1) !== "%") { throw new Error(`Invalid value '${val}'. Expected percentage value (eg '55%')`); } @@ -168,7 +168,7 @@ export function percentageValue(val: string): string { throw new Error(`Invalid value '${percent}' specified. Expected a valid number.`); } return `${Number(percent)}%`; -} +}; // // @@ -182,7 +182,7 @@ export function percentageValue(val: string): string { // // -export function measurementOrPercentValue(val: number | string): number | string { +export const measurementOrPercentValue = (val: number | string): number | string => { if (typeof val === "number") { return decimalNumber(val); } @@ -190,7 +190,7 @@ export function measurementOrPercentValue(val: number | string): number | string return percentageValue(val); } return universalMeasureValue(val); -} +}; // // @@ -222,6 +222,6 @@ export const pointMeasureValue = unsignedDecimalNumber; // // Luckily, js has this format built in already. See: // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString -export function dateTimeValue(val: Date): string { +export const dateTimeValue = (val: Date): string => { return val.toISOString(); -} +}; diff --git a/tslint.json b/tslint.json deleted file mode 100644 index 3da57d1a2f..0000000000 --- a/tslint.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "extends": ["tslint:latest", "tslint-immutable"], - "rules": { - "curly": true, - "one-variable-per-declaration": [true], - "no-any": true, - "no-consecutive-blank-lines": [true], - "no-require-imports": true, - "member-access": [true, "check-accessor"], - "indent": [true, "spaces"], - "object-literal-sort-keys": false, - "object-literal-shorthand": false, - "typedef": [true, "call-signature", "parameter", "property-declaration"], - "max-line-length": [false], - "max-classes-per-file": [false], - "no-implicit-dependencies": false, - "no-submodule-imports": false, - "no-null-keyword": true, - "return-undefined": true, - "prefer-readonly": true, - "no-duplicate-imports": true, - "unnecessary-constructor": true, - "file-name-casing": [true, "kebab-case"], - "interface-name": [true, "always-prefix"], - "ordered-imports": true, - "no-default-export": true, - "arrow-return-shorthand": true, - "variable-name": [true, "ban-keywords", "check-format"], - // Functional Programming Rules - "no-parameter-reassignment": true, - "readonly-keyword": true, - "no-delete": true, - "no-method-signature": true, - "no-mixed-interface": true - // "no-expression-statement": [true, { "ignore-prefix": ["console.", "describe", "it", "super", "expect"] }] - } -} From e90d97b81331454c2c8449e2e5acfa4d950b7fc8 Mon Sep 17 00:00:00 2001 From: Dolan Miu Date: Thu, 15 Sep 2022 20:00:50 +0100 Subject: [PATCH 3/5] Use new eslint-plugin-functional instead of tslint-immutable --- .eslintrc.js | 31 +- docs/contribution-guidelines.md | 4 +- package-lock.json | 392 +++++++----------- package.json | 2 +- src/export/packer/image-replacer.ts | 4 +- src/export/packer/next-compiler.ts | 14 +- src/export/packer/numbering-replacer.ts | 2 +- src/export/packer/packer.spec.ts | 22 +- src/export/packer/packer.ts | 2 +- src/file/core-properties/properties.ts | 6 +- .../custom-properties/custom-properties.ts | 5 +- src/file/document/body/body.ts | 2 + .../section-properties/properties/columns.ts | 2 +- src/file/drawing/anchor/anchor.spec.ts | 5 +- src/file/drawing/drawing.spec.ts | 5 +- src/file/file.ts | 10 +- src/file/footer-wrapper.spec.ts | 2 +- src/file/footnotes/footnote/footnote.ts | 2 +- src/file/footnotes/footnotes.ts | 2 +- src/file/header-wrapper.spec.ts | 2 +- src/file/header.ts | 10 +- src/file/media/media.ts | 4 +- src/file/numbering/abstract-numbering.ts | 2 +- src/file/numbering/level.spec.ts | 2 +- src/file/numbering/level.ts | 2 +- src/file/numbering/numbering.ts | 34 +- src/file/paragraph/links/bookmark.ts | 4 +- src/file/paragraph/links/hyperlink.ts | 6 +- .../math/brackets/math-angled-brackets.ts | 2 +- .../math/brackets/math-curly-brackets.ts | 2 +- .../math/brackets/math-round-brackets.ts | 2 +- .../math/brackets/math-square-brackets.ts | 2 +- .../math/fraction/math-denominator.ts | 2 +- .../paragraph/math/fraction/math-fraction.ts | 4 +- .../paragraph/math/fraction/math-numerator.ts | 2 +- .../math/function/math-function-name.ts | 2 +- .../paragraph/math/function/math-function.ts | 4 +- src/file/paragraph/math/math.ts | 2 +- src/file/paragraph/math/n-ary/math-base.ts | 2 +- .../paragraph/math/n-ary/math-sub-script.ts | 2 +- src/file/paragraph/math/n-ary/math-sum.ts | 6 +- .../paragraph/math/n-ary/math-super-script.ts | 2 +- .../paragraph/math/radical/math-degree.ts | 2 +- .../paragraph/math/radical/math-radical.ts | 4 +- .../math-pre-sub-super-script-function.ts | 6 +- .../sub-script/math-sub-script-function.ts | 4 +- .../math-sub-super-script-function.ts | 6 +- .../math-super-script-function.ts | 4 +- src/file/paragraph/paragraph.ts | 2 +- src/file/paragraph/properties.spec.ts | 4 +- src/file/paragraph/properties.ts | 3 +- src/file/paragraph/run/comment-run.ts | 2 +- src/file/paragraph/run/image-run.spec.ts | 10 +- src/file/paragraph/run/image-run.ts | 1 + src/file/paragraph/run/run.ts | 2 +- .../styles/external-styles-factory.spec.ts | 6 +- src/file/styles/external-styles-factory.ts | 1 + src/file/styles/sample/default-style.ts | 7 +- src/file/styles/styles.ts | 6 +- .../table-of-contents-properties.ts | 2 +- .../table-of-contents.spec.ts | 4 +- src/file/table/grid.ts | 2 +- src/file/table/table-cell/table-cell.ts | 2 +- src/file/table/table-row/table-row.ts | 4 +- src/file/table/table.ts | 5 +- src/file/xml-components/default-attributes.ts | 7 +- .../xml-components/imported-xml-component.ts | 3 +- src/file/xml-components/xml-component.ts | 4 +- src/tests/utility.ts | 2 +- src/util/values.ts | 36 +- 70 files changed, 321 insertions(+), 436 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index f5fd89265a..a4cea40931 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -29,7 +29,7 @@ module.exports = { "eslint-plugin-jsdoc", "eslint-plugin-prefer-arrow", "@typescript-eslint", - "@typescript-eslint/tslint", + "functional", ], root: true, rules: { @@ -162,6 +162,7 @@ module.exports = { "@typescript-eslint/unified-signatures": "error", "arrow-body-style": "error", complexity: "off", + "consistent-return": "error", "constructor-super": "error", curly: "error", "dot-notation": "off", @@ -232,30 +233,18 @@ module.exports = { "unicorn/prefer-ternary": "error", "use-isnan": "error", "valid-typeof": "off", - "@typescript-eslint/tslint/config": [ + "@typescript-eslint/explicit-function-return-type": "off", + "functional/immutable-data": [ "error", { - rules: { - "no-delete": true, - "no-method-signature": true, - "no-mixed-interface": true, - "readonly-keyword": true, - "return-undefined": true, - whitespace: [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type", - "check-typecast", - "check-type-operator", - "check-rest-spread", - ], - }, + assumeTypes: true, + ignoreImmediateMutation: true, + ignoreAccessorPattern: ["**.root*", "**.numberingReferences*", "**.sections*", "**.properties*"], }, ], - "@typescript-eslint/explicit-function-return-type": "off", + "functional/no-method-signature": "error", + "functional/no-mixed-type": "error", + "functional/prefer-readonly-type": "error", }, overrides: [ { diff --git a/docs/contribution-guidelines.md b/docs/contribution-guidelines.md index 1923a47341..dede758ecf 100644 --- a/docs/contribution-guidelines.md +++ b/docs/contribution-guidelines.md @@ -8,11 +8,11 @@ - Follow Prettier standards, and consider using the [Prettier VSCode](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode) plugin. -- Follow the `TSLint` rules +- Follow the `ESLint` rules ## Always think about the user -Put yourself in their position, and imagine how they would feel about your feature you wrote. +Put yourself in their position, and imagine how they would feel about the feature you wrote. 1. Is it easy to use? 2. Has it been documented well? diff --git a/package-lock.json b/package-lock.json index 3d65052419..9f68c5413f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -26,13 +26,13 @@ "@types/unzipper": "^0.10.4", "@types/webpack": "^5.0.0", "@typescript-eslint/eslint-plugin": "^5.36.1", - "@typescript-eslint/eslint-plugin-tslint": "^5.36.1", "@typescript-eslint/parser": "^5.36.1", "buffer": "^6.0.3", "chai": "^3.5.0", "cspell": "^6.2.2", "docsify-cli": "^4.3.0", "eslint": "^8.23.0", + "eslint-plugin-functional": "^4.3.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsdoc": "^39.3.6", "eslint-plugin-no-null": "^1.0.2", @@ -1507,24 +1507,6 @@ } } }, - "node_modules/@typescript-eslint/eslint-plugin-tslint": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-5.36.1.tgz", - "integrity": "sha512-cOpdXK60QxSxMMr71Rn0AMLaEK2K6zyqK/Dfb9GxruJ+sHYrPsJFW2cy+XkeY1fL6As4Q8yO13Gkjget45I5aw==", - "dev": true, - "dependencies": { - "@typescript-eslint/utils": "5.36.1", - "lodash": "^4.17.21" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || ^8.0.0", - "tslint": "^5.0.0 || ^6.0.0", - "typescript": "*" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/debug": { "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", @@ -1575,21 +1557,6 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/eslint-plugin/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -1713,21 +1680,6 @@ "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true }, - "node_modules/@typescript-eslint/type-utils/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/types": { "version": "5.36.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.36.1.tgz", @@ -1818,21 +1770,6 @@ "node": ">=10" } }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - }, - "engines": { - "node": ">= 6" - }, - "peerDependencies": { - "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" - } - }, "node_modules/@typescript-eslint/typescript-estree/node_modules/yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -2614,16 +2551,6 @@ "node": ">=0.2.0" } }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.10.0" - } - }, "node_modules/cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -3003,13 +2930,6 @@ "node": ">= 0.8" } }, - "node_modules/commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true, - "peer": true - }, "node_modules/comment-json": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", @@ -3641,6 +3561,15 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "node_modules/deepmerge-ts": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-4.2.1.tgz", + "integrity": "sha512-xzJLiUo4z1dD2nggSfaMvHo5qWLoy/JVa9rKuktC6FrQQEBI8Qnj7KwuCYZhqBoGOOpGqs6+3MR2ZhSMcTr4BA==", + "dev": true, + "engines": { + "node": ">=12.4.0" + } + }, "node_modules/default-require-extensions": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", @@ -4307,6 +4236,79 @@ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true }, + "node_modules/eslint-plugin-functional": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-functional/-/eslint-plugin-functional-4.3.1.tgz", + "integrity": "sha512-Mlm0A4gtQya2jLg6BvL8FoyHtedMj3gGJNMe9SWIyRhFmIibGFjOldzZ86LxOQYnwLMV9AD5aeLBRfxPFTkkaQ==", + "dev": true, + "dependencies": { + "@typescript-eslint/utils": "^5.10.2", + "deepmerge-ts": "^4.0.3", + "escape-string-regexp": "^4.0.0", + "semver": "^7.3.7" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "peerDependencies": { + "eslint": "^8.0.0", + "tsutils": "^3.0.0", + "typescript": "^3.4.1 || ^4.0.0" + }, + "peerDependenciesMeta": { + "tsutils": { + "optional": true + }, + "typescript": { + "optional": true + } + } + }, + "node_modules/eslint-plugin-functional/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint-plugin-functional/node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-functional/node_modules/semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/eslint-plugin-functional/node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, "node_modules/eslint-plugin-import": { "version": "2.26.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", @@ -10339,79 +10341,19 @@ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, - "node_modules/tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", - "dev": true, - "peer": true, - "dependencies": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - }, - "peerDependencies": { - "typescript": ">=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >=3.0.0-dev || >= 3.1.0-dev || >= 3.2.0-dev" - } - }, - "node_modules/tslint/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "peer": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslint/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "peer": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, - "peer": true, "dependencies": { "tslib": "^1.8.1" }, + "engines": { + "node": ">= 6" + }, "peerDependencies": { - "typescript": ">=2.1.0 || >=2.1.0-dev || >=2.2.0-dev || >=2.3.0-dev || >=2.4.0-dev || >=2.5.0-dev || >=2.6.0-dev || >=2.7.0-dev || >=2.8.0-dev || >=2.9.0-dev || >= 3.0.0-dev || >= 3.1.0-dev" + "typescript": ">=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta" } }, "node_modules/tunnel-agent": { @@ -12773,15 +12715,6 @@ "lru-cache": "^6.0.0" } }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -12790,16 +12723,6 @@ } } }, - "@typescript-eslint/eslint-plugin-tslint": { - "version": "5.36.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin-tslint/-/eslint-plugin-tslint-5.36.1.tgz", - "integrity": "sha512-cOpdXK60QxSxMMr71Rn0AMLaEK2K6zyqK/Dfb9GxruJ+sHYrPsJFW2cy+XkeY1fL6As4Q8yO13Gkjget45I5aw==", - "dev": true, - "requires": { - "@typescript-eslint/utils": "5.36.1", - "lodash": "^4.17.21" - } - }, "@typescript-eslint/parser": { "version": "5.36.1", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.36.1.tgz", @@ -12865,15 +12788,6 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true - }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } } } }, @@ -12931,15 +12845,6 @@ "lru-cache": "^6.0.0" } }, - "tsutils": { - "version": "3.21.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", - "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", - "dev": true, - "requires": { - "tslib": "^1.8.1" - } - }, "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", @@ -13548,13 +13453,6 @@ "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", "dev": true }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "peer": true - }, "cacheable-request": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", @@ -13844,13 +13742,6 @@ "delayed-stream": "~1.0.0" } }, - "commander": { - "version": "2.15.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz", - "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", - "dev": true, - "peer": true - }, "comment-json": { "version": "4.2.3", "resolved": "https://registry.npmjs.org/comment-json/-/comment-json-4.2.3.tgz", @@ -14345,6 +14236,12 @@ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", "dev": true }, + "deepmerge-ts": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/deepmerge-ts/-/deepmerge-ts-4.2.1.tgz", + "integrity": "sha512-xzJLiUo4z1dD2nggSfaMvHo5qWLoy/JVa9rKuktC6FrQQEBI8Qnj7KwuCYZhqBoGOOpGqs6+3MR2ZhSMcTr4BA==", + "dev": true + }, "default-require-extensions": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-3.0.0.tgz", @@ -15062,6 +14959,50 @@ } } }, + "eslint-plugin-functional": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-functional/-/eslint-plugin-functional-4.3.1.tgz", + "integrity": "sha512-Mlm0A4gtQya2jLg6BvL8FoyHtedMj3gGJNMe9SWIyRhFmIibGFjOldzZ86LxOQYnwLMV9AD5aeLBRfxPFTkkaQ==", + "dev": true, + "requires": { + "@typescript-eslint/utils": "^5.10.2", + "deepmerge-ts": "^4.0.3", + "escape-string-regexp": "^4.0.0", + "semver": "^7.3.7" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + } + } + }, "eslint-plugin-import": { "version": "2.26.0", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.26.0.tgz", @@ -19392,58 +19333,11 @@ "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", "dev": true }, - "tslint": { - "version": "5.20.1", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.20.1.tgz", - "integrity": "sha512-EcMxhzCFt8k+/UP5r8waCf/lzmeSyVlqxqMEDQE7rWYiQky8KpIBz1JAoYXfROHrPZ1XXd43q8yQnULOLiBRQg==", - "dev": true, - "peer": true, - "requires": { - "@babel/code-frame": "^7.0.0", - "builtin-modules": "^1.1.1", - "chalk": "^2.3.0", - "commander": "^2.12.1", - "diff": "^4.0.1", - "glob": "^7.1.1", - "js-yaml": "^3.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "dependencies": { - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "peer": true - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dev": true, - "peer": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - } - } - }, "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "version": "3.21.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz", + "integrity": "sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==", "dev": true, - "peer": true, "requires": { "tslib": "^1.8.1" } diff --git a/package.json b/package.json index 7563d65e5e..7534109d0f 100644 --- a/package.json +++ b/package.json @@ -73,13 +73,13 @@ "@types/unzipper": "^0.10.4", "@types/webpack": "^5.0.0", "@typescript-eslint/eslint-plugin": "^5.36.1", - "@typescript-eslint/eslint-plugin-tslint": "^5.36.1", "@typescript-eslint/parser": "^5.36.1", "buffer": "^6.0.3", "chai": "^3.5.0", "cspell": "^6.2.2", "docsify-cli": "^4.3.0", "eslint": "^8.23.0", + "eslint-plugin-functional": "^4.3.1", "eslint-plugin-import": "^2.26.0", "eslint-plugin-jsdoc": "^39.3.6", "eslint-plugin-no-null": "^1.0.2", diff --git a/src/export/packer/image-replacer.ts b/src/export/packer/image-replacer.ts index 3dce0de58d..31415877f0 100644 --- a/src/export/packer/image-replacer.ts +++ b/src/export/packer/image-replacer.ts @@ -1,7 +1,7 @@ import { IMediaData, Media } from "@file/media"; export class ImageReplacer { - public replace(xmlData: string, mediaData: IMediaData[], offset: number): string { + public replace(xmlData: string, mediaData: readonly IMediaData[], offset: number): string { let currentXmlData = xmlData; mediaData.forEach((image, i) => { @@ -11,7 +11,7 @@ export class ImageReplacer { return currentXmlData; } - public getMediaData(xmlData: string, media: Media): IMediaData[] { + public getMediaData(xmlData: string, media: Media): readonly IMediaData[] { return media.Array.filter((image) => xmlData.search(`{${image.fileName}}`) > 0); } } diff --git a/src/export/packer/next-compiler.ts b/src/export/packer/next-compiler.ts index d81fbc4de8..8fd5f68144 100644 --- a/src/export/packer/next-compiler.ts +++ b/src/export/packer/next-compiler.ts @@ -20,10 +20,10 @@ interface IXmlifyedFileMapping { readonly Numbering: IXmlifyedFile; readonly Relationships: IXmlifyedFile; readonly FileRelationships: IXmlifyedFile; - readonly Headers: IXmlifyedFile[]; - readonly Footers: IXmlifyedFile[]; - readonly HeaderRelationships: IXmlifyedFile[]; - readonly FooterRelationships: IXmlifyedFile[]; + readonly Headers: readonly IXmlifyedFile[]; + readonly Footers: readonly IXmlifyedFile[]; + readonly HeaderRelationships: readonly IXmlifyedFile[]; + readonly FooterRelationships: readonly IXmlifyedFile[]; readonly ContentTypes: IXmlifyedFile; readonly CustomProperties: IXmlifyedFile; readonly AppProperties: IXmlifyedFile; @@ -47,15 +47,15 @@ export class Compiler { public compile(file: File, prettifyXml?: boolean | PrettifyType): JSZip { const zip = new JSZip(); const xmlifiedFileMapping = this.xmlifyFile(file, prettifyXml); - const map = new Map(Object.entries(xmlifiedFileMapping)); + const map = new Map(Object.entries(xmlifiedFileMapping)); for (const [, obj] of map) { if (Array.isArray(obj)) { - for (const subFile of obj) { + for (const subFile of obj as readonly IXmlifyedFile[]) { zip.file(subFile.path, subFile.data); } } else { - zip.file(obj.path, obj.data); + zip.file((obj as IXmlifyedFile).path, (obj as IXmlifyedFile).data); } } diff --git a/src/export/packer/numbering-replacer.ts b/src/export/packer/numbering-replacer.ts index d0416340b1..4391fa9361 100644 --- a/src/export/packer/numbering-replacer.ts +++ b/src/export/packer/numbering-replacer.ts @@ -1,7 +1,7 @@ import { ConcreteNumbering } from "@file/numbering"; export class NumberingReplacer { - public replace(xmlData: string, concreteNumberings: ConcreteNumbering[]): string { + public replace(xmlData: string, concreteNumberings: readonly ConcreteNumbering[]): string { let currentXmlData = xmlData; for (const concreteNumbering of concreteNumberings) { diff --git a/src/export/packer/packer.spec.ts b/src/export/packer/packer.spec.ts index f0ed3d8b94..9dd5d55021 100644 --- a/src/export/packer/packer.spec.ts +++ b/src/export/packer/packer.spec.ts @@ -54,8 +54,8 @@ describe("Packer", () => { assert.isTrue(buffer.byteLength > 0); }); - it("should handle exception if it throws any", () => { - // tslint:disable-next-line:no-any + it("should handle exception if it throws any", async () => { + // eslint-disable-next-line @typescript-eslint/no-explicit-any const compiler = stub((Packer as any).compiler, "compile"); compiler.throwsException(); @@ -65,7 +65,7 @@ describe("Packer", () => { }); after(() => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any (Packer as any).compiler.compile.restore(); }); }); @@ -80,7 +80,7 @@ describe("Packer", () => { }); it("should handle exception if it throws any", () => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const compiler = stub((Packer as any).compiler, "compile"); compiler.throwsException(); @@ -90,14 +90,14 @@ describe("Packer", () => { }); after(() => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any (Packer as any).compiler.compile.restore(); }); }); describe("#toBlob()", () => { it("should create a standard docx file", async () => { - // tslint:disable-next-line: no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any stub((Packer as any).compiler, "compile").callsFake(() => ({ // tslint:disable-next-line: no-empty generateAsync: () => mock({}), @@ -108,7 +108,7 @@ describe("Packer", () => { }); it("should handle exception if it throws any", () => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const compiler = stub((Packer as any).compiler, "compile"); compiler.throwsException(); @@ -118,14 +118,14 @@ describe("Packer", () => { }); afterEach(() => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any (Packer as any).compiler.compile.restore(); }); }); describe("#toStream()", () => { it("should create a standard docx file", async () => { - // tslint:disable-next-line: no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any stub((Packer as any).compiler, "compile").callsFake(() => ({ // tslint:disable-next-line: no-empty generateNodeStream: () => ({ @@ -149,7 +149,7 @@ describe("Packer", () => { }); it("should handle exception if it throws any", async () => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const compiler = stub((Packer as any).compiler, "compile").callsFake(() => ({ // tslint:disable-next-line: no-empty on: (event: string, cb: () => void) => { @@ -166,7 +166,7 @@ describe("Packer", () => { }); afterEach(() => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any (Packer as any).compiler.compile.restore(); }); }); diff --git a/src/export/packer/packer.ts b/src/export/packer/packer.ts index 5d233ec0ef..9e230fda86 100644 --- a/src/export/packer/packer.ts +++ b/src/export/packer/packer.ts @@ -1,5 +1,5 @@ -import { File } from "@file/file"; import { Stream } from "stream"; +import { File } from "@file/file"; import { Compiler } from "./next-compiler"; diff --git a/src/file/core-properties/properties.ts b/src/file/core-properties/properties.ts index 8a72bcabf4..264203f753 100644 --- a/src/file/core-properties/properties.ts +++ b/src/file/core-properties/properties.ts @@ -12,7 +12,7 @@ import { Paragraph } from "../paragraph"; import { IStylesOptions } from "../styles"; export interface IPropertiesOptions { - readonly sections: ISectionOptions[]; + readonly sections: readonly ISectionOptions[]; readonly title?: string; readonly subject?: string; readonly creator?: string; @@ -26,7 +26,7 @@ export interface IPropertiesOptions { readonly comments?: ICommentsOptions; readonly footnotes?: { readonly [key: string]: { - readonly children: Paragraph[]; + readonly children: readonly Paragraph[]; }; }; readonly background?: IDocumentBackgroundOptions; @@ -35,7 +35,7 @@ export interface IPropertiesOptions { readonly updateFields?: boolean; }; readonly compatabilityModeVersion?: number; - readonly customProperties?: ICustomPropertyOptions[]; + readonly customProperties?: readonly ICustomPropertyOptions[]; readonly evenAndOddHeaderAndFooters?: boolean; } diff --git a/src/file/custom-properties/custom-properties.ts b/src/file/custom-properties/custom-properties.ts index fbe7160e57..8c15db148f 100644 --- a/src/file/custom-properties/custom-properties.ts +++ b/src/file/custom-properties/custom-properties.ts @@ -3,11 +3,12 @@ import { CustomPropertiesAttributes } from "./custom-properties-attributes"; import { CustomProperty, ICustomPropertyOptions } from "./custom-property"; export class CustomProperties extends XmlComponent { - // tslint:disable-next-line:readonly-keyword + // eslint-disable-next-line functional/prefer-readonly-type private nextId: number; + // eslint-disable-next-line functional/prefer-readonly-type private readonly properties: CustomProperty[] = []; - public constructor(properties: ICustomPropertyOptions[]) { + public constructor(properties: readonly ICustomPropertyOptions[]) { super("Properties"); this.root.push( diff --git a/src/file/document/body/body.ts b/src/file/document/body/body.ts index cdda805405..2d0f81ed49 100644 --- a/src/file/document/body/body.ts +++ b/src/file/document/body/body.ts @@ -4,6 +4,7 @@ import { IContext, IXmlableObject, XmlComponent } from "@file/xml-components"; import { ISectionPropertiesOptions, SectionProperties } from "./section-properties/section-properties"; export class Body extends XmlComponent { + // eslint-disable-next-line functional/prefer-readonly-type private readonly sections: SectionProperties[] = []; public constructor() { @@ -16,6 +17,7 @@ export class Body extends XmlComponent { * The spec says: * - section element should be in the last paragraph of the section * - last section should be direct child of body + * * @param options new section options */ public addSection(options: ISectionPropertiesOptions): void { diff --git a/src/file/document/body/section-properties/properties/columns.ts b/src/file/document/body/section-properties/properties/columns.ts index 875c806815..dc09e60462 100644 --- a/src/file/document/body/section-properties/properties/columns.ts +++ b/src/file/document/body/section-properties/properties/columns.ts @@ -17,7 +17,7 @@ export interface IColumnsAttributes { readonly count?: number; readonly separate?: boolean; readonly equalWidth?: boolean; - readonly children?: Column[]; + readonly children?: readonly Column[]; } export class ColumnsAttributes extends XmlAttributeComponent { diff --git a/src/file/drawing/anchor/anchor.spec.ts b/src/file/drawing/anchor/anchor.spec.ts index 358f70aa33..17ccb0f165 100644 --- a/src/file/drawing/anchor/anchor.spec.ts +++ b/src/file/drawing/anchor/anchor.spec.ts @@ -6,8 +6,8 @@ import { IDrawingOptions } from "../drawing"; import { TextWrappingType } from "../text-wrap"; import { Anchor } from "./anchor"; -const createAnchor = (drawingOptions: IDrawingOptions): Anchor => { - return new Anchor( +const createAnchor = (drawingOptions: IDrawingOptions): Anchor => + new Anchor( { fileName: "test.png", stream: new Buffer(""), @@ -34,7 +34,6 @@ const createAnchor = (drawingOptions: IDrawingOptions): Anchor => { }, drawingOptions, ); -}; describe("Anchor", () => { let anchor: Anchor; diff --git a/src/file/drawing/drawing.spec.ts b/src/file/drawing/drawing.spec.ts index d495ef111e..b5b48d80bd 100644 --- a/src/file/drawing/drawing.spec.ts +++ b/src/file/drawing/drawing.spec.ts @@ -6,8 +6,8 @@ import { Drawing, IDrawingOptions } from "./drawing"; const imageBase64Data = `iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAMAAAD04JH5AAACzVBMVEUAAAAAAAAAAAAAAAA/AD8zMzMqKiokJCQfHx8cHBwZGRkuFxcqFSonJyckJCQiIiIfHx8eHh4cHBwoGhomGSYkJCQhISEfHx8eHh4nHR0lHBwkGyQjIyMiIiIgICAfHx8mHh4lHh4kHR0jHCMiGyIhISEgICAfHx8lHx8kHh4jHR0hHCEhISEgICAlHx8kHx8jHh4jHh4iHSIhHCEhISElICAkHx8jHx8jHh4iHh4iHSIhHSElICAkICAjHx8jHx8iHh4iHh4hHiEhHSEkICAjHx8iHx8iHx8hHh4hHiEkHSEjHSAjHx8iHx8iHx8hHh4kHiEkHiEjHSAiHx8hHx8hHh4kHiEjHiAjHSAiHx8iHx8hHx8kHh4jHiEjHiAjHiAiICAiHx8kHx8jHh4jHiEjHiAiHiAiHSAiHx8jHx8jHx8jHiAiHiAiHiAiHSAiHx8jHx8jHx8iHiAiHiAiHiAjHx8jHx8jHx8jHx8iHiAiHiAiHiAjHx8jHx8jHx8iHx8iHSAiHiAjHiAjHx8jHx8hHx8iHx8iHyAiHiAjHiAjHiAjHh4hHx8iHx8iHx8iHyAjHSAjHiAjHiAjHh4hHx8iHx8iHx8jHyAjHiAhHh4iHx8iHx8jHyAjHSAjHSAhHiAhHh4iHx8iHx8jHx8jHyAjHSAjHSAiHh4iHh4jHx8jHx8jHyAjHyAhHSAhHSAiHh4iHh4jHx8jHx8jHyAhHyAhHSAiHSAiHh4jHh4jHx8jHx8jHyAhHyAhHSAiHSAjHR4jHh4jHx8jHx8hHyAhHyAiHSAjHSAjHR4jHh4jHx8hHx8hHyAhHyAiHyAjHSAjHR4jHR4hHh4hHx8hHyAiHyAjHyAjHSAjHR4jHR4hHh4hHx8hHyAjHyAjHyAjHSAjHR4hHR4hHR4hHx8iHyAjHyAjHyAjHSAhHR4hHR4hHR4hHx8jHyAjHyAjHyAjHyC9S2xeAAAA7nRSTlMAAQIDBAUGBwgJCgsMDQ4PEBESExQVFxgZGhscHR4fICEiIyQlJicoKSorLS4vMDEyMzQ1Njc4OTo7PD0+P0BBQkNERUZISUpLTE1OUFFSU1RVVllaW1xdXmBhYmNkZWZnaGprbG1ub3Byc3R1dnd4eXp8fn+AgYKDhIWGiImKi4yNj5CRkpOUlZaXmJmam5ydnp+goaKjpKaoqqusra6vsLGys7S1tri5uru8vb6/wMHCw8TFxsfIycrLzM3Oz9DR0tPU1dbX2Nna29zd3t/g4eLj5OXm5+jp6uvs7e7v8PHy8/T19vf4+fr7/P3+fkZpVQAABcBJREFUGBntwftjlQMcBvDnnLNL22qzJjWlKLHFVogyty3SiFq6EZliqZGyhnSxsLlMRahYoZKRFcul5dKFCatYqWZaNKvWtrPz/A2+7/b27qRzec/lPfvl/XxgMplMJpPJZDKZAtA9HJ3ppnIez0KnSdtC0RCNznHdJrbrh85wdSlVVRaEXuoGamYi5K5430HNiTiEWHKJg05eRWgNfKeV7RxbqUhGKPV/207VupQ8is0IoX5vtFC18SqEHaK4GyHTZ2kzVR8PBTCO4oANIZL4ShNVZcOhKKeYg9DoWdhI1ec3os2VFI0JCIUez5+i6st0qJZRrEAIJCw+QdW223BG/EmKwTBc/IJ/qfp2FDrkUnwFo8U9dZyqnaPhxLqfYjyM1S3vb6p+GGOBszsojoTDSDFz6qj66R4LzvYJxVMwUNRjf1H1ywQr/megg2RzLximy8waqvbda8M5iijegVEiHjlM1W/3h+FcXesphsMY4dMOUnUgOxyuPEzxPQwRNvV3qg5Nj4BreyimwADWe/dRVTMjEm6MoGLzGwtystL6RyOY3qSqdlYU3FpLZw1VW0sK5943MvUCKwJ1noNtjs6Ohge76Zq9ZkfpigU5WWkDYuCfbs1U5HWFR8/Qq4a9W0uK5k4ZmdrTCl8spGIePLPlbqqsc1Afe83O0hULc8alDYiBd7ZyitYMeBfR55rR2fOKP6ioPk2dGvZ+UVI0d8rtqT2tcCexlqK2F3wRn5Q+YVbBqrLKOupkr9lZujAOrmS0UpTb4JeIPkNHZ+cXr6uoPk2vyuBSPhWLEKj45PQJuQWryyqP0Z14uGLdROHIRNBEXDR09EP5r62rOHCazhrD4VKPwxTH+sIA3ZPTJ+YuWV22n+IruHFDC8X2CBjnPoolcGc2FYUwzmsUWXDHsoGKLBhmN0VvuBVfTVE/AAbpaid5CB4MbaLY1QXGuIViLTyZQcVyGGMuxWPwaA0Vk2GI9RRp8Ci2iuLkIBjhT5LNUfAspZFiTwyC72KK7+DNg1SsRvCNp3gZXq2k4iEEXSHFJHgVXUlxejCCbTvFAHiXdIJiXxyCK7KJ5FHoMZGK9xBcwyg2QpdlVMxEUM2iyIMuXXZQNF+HswxMsSAAJRQjoE//eoqDCXBSTO6f1xd+O0iyNRY6jaWi1ALNYCocZROj4JdEikroVkjFk9DcStXxpdfCD2MoXodu4RUU9ptxxmXssOfxnvDVcxRTod9FxyhqLoAqis5aPhwTDp9spRgEH2Q6KLbYoKqlaKTm6Isp0C/sJMnjFvhiERXPQvUNRe9p29lhR04CdBpC8Sl8YiuncIxEuzUUg4Dkgj+paVozygY9plPMh28SaymO9kabAopREGF3vt9MzeFFl8G7lRSZ8FFGK8XX4VA8QjEd7XrM3M0OXz8YCy+qKBLgq3wqnofiTorF0Ax56Rg1J1elW+BBAsVe+My6iYq7IK6keBdOIseV2qn5Pb8f3MqkWAXf9ThM8c8lAOIotuFsF875lRrH5klRcG0+xcPwQ1oLxfeRAP4heQTnGL78X2rqlw2DK59SXAV/zKaiGMAuko5InCt68mcOan5+ohf+z1pP8lQY/GHZQMV4YD3FpXDp4qerqbF/lBWBswyi+AL+ia+maLgcRRQj4IYlY/UpauqKBsPJAxQF8NM1TRQ/RudSPAD34rK3scOuR8/HGcspxsJfOVS8NZbiGXiUtPgINU3v3WFDmx8pEuG3EiqKKVbCC1vm2iZqap5LAtCtleQf8F9sFYWDohzeJczYyQ4V2bEZFGsQgJRGqqqhS2phHTWn9lDkIhBTqWqxQZ+IsRvtdHY9AvI2VX2hW68nfqGmuQsCEl3JdjfCF8OW1bPdtwhQ0gm2mQzfRE3a7KCYj0BNZJs8+Kxf/r6WtTEI2FIqlsMfFgRB5A6KUnSe/vUkX0AnuvUIt8SjM1m6wWQymUwmk8lkMgXRf5vi8rLQxtUhAAAAAElFTkSuQmCC`; -const createDrawing = (drawingOptions?: IDrawingOptions): Drawing => { - return new Drawing( +const createDrawing = (drawingOptions?: IDrawingOptions): Drawing => + new Drawing( { fileName: "test.jpg", stream: Buffer.from(imageBase64Data, "base64"), @@ -24,7 +24,6 @@ const createDrawing = (drawingOptions?: IDrawingOptions): Drawing => { }, drawingOptions, ); -}; describe("Drawing", () => { let currentBreak: Drawing; diff --git a/src/file/file.ts b/src/file/file.ts index 02eace30a6..aa1b1c64e1 100644 --- a/src/file/file.ts +++ b/src/file/file.ts @@ -33,15 +33,17 @@ export interface ISectionOptions { readonly even?: Footer; }; readonly properties?: ISectionPropertiesOptions; - readonly children: (Paragraph | Table | TableOfContents)[]; + readonly children: readonly (Paragraph | Table | TableOfContents)[]; } export class File { - // tslint:disable-next-line:readonly-keyword + // eslint-disable-next-line functional/immutable-data private currentRelationshipId: number = 1; private readonly documentWrapper: DocumentWrapper; + // eslint-disable-next-line functional/immutable-data private readonly headers: IDocumentHeader[] = []; + // eslint-disable-next-line functional/immutable-data private readonly footers: IDocumentFooter[] = []; private readonly coreProperties: CoreProperties; private readonly numbering: Numbering; @@ -268,11 +270,11 @@ export class File { return this.fileRelationships; } - public get Headers(): HeaderWrapper[] { + public get Headers(): readonly HeaderWrapper[] { return this.headers.map((item) => item.header); } - public get Footers(): FooterWrapper[] { + public get Footers(): readonly FooterWrapper[] { return this.footers.map((item) => item.footer); } diff --git a/src/file/footer-wrapper.spec.ts b/src/file/footer-wrapper.spec.ts index 8978541d21..91187474cd 100644 --- a/src/file/footer-wrapper.spec.ts +++ b/src/file/footer-wrapper.spec.ts @@ -41,7 +41,7 @@ describe("FooterWrapper", () => { it("should call the underlying footer's addChildElement", () => { const file = new FooterWrapper(new Media(), 1); const spy = sinon.spy(file.View, "addChildElement"); - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any file.addChildElement({} as any); expect(spy.called).to.equal(true); diff --git a/src/file/footnotes/footnote/footnote.ts b/src/file/footnotes/footnote/footnote.ts index 4edd5b0419..a2983e0211 100644 --- a/src/file/footnotes/footnote/footnote.ts +++ b/src/file/footnotes/footnote/footnote.ts @@ -12,7 +12,7 @@ export enum FootnoteType { export interface IFootnoteOptions { readonly id: number; readonly type?: FootnoteType; - readonly children: Paragraph[]; + readonly children: readonly Paragraph[]; } export class Footnote extends XmlComponent { diff --git a/src/file/footnotes/footnotes.ts b/src/file/footnotes/footnotes.ts index a963b9cf82..cf215d5aac 100644 --- a/src/file/footnotes/footnotes.ts +++ b/src/file/footnotes/footnotes.ts @@ -67,7 +67,7 @@ export class FootNotes extends XmlComponent { this.root.push(spacing); } - public createFootNote(id: number, paragraph: Paragraph[]): void { + public createFootNote(id: number, paragraph: readonly Paragraph[]): void { const footnote = new Footnote({ id: id, children: paragraph, diff --git a/src/file/header-wrapper.spec.ts b/src/file/header-wrapper.spec.ts index f224743470..9731513537 100644 --- a/src/file/header-wrapper.spec.ts +++ b/src/file/header-wrapper.spec.ts @@ -41,7 +41,7 @@ describe("HeaderWrapper", () => { it("should call the underlying header's addChildElement", () => { const file = new HeaderWrapper(new Media(), 1); const spy = sinon.spy(file.View, "addChildElement"); - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any file.addChildElement({} as any); expect(spy.called).to.equal(true); diff --git a/src/file/header.ts b/src/file/header.ts index 1d9c3a4f9a..d9dd2166f5 100644 --- a/src/file/header.ts +++ b/src/file/header.ts @@ -2,13 +2,17 @@ import { Paragraph } from "./paragraph"; import { Table } from "./table"; export interface IHeaderOptions { - readonly children: (Paragraph | Table)[]; + readonly children: readonly (Paragraph | Table)[]; } export class Header { - public constructor(public readonly options: IHeaderOptions = { children: [] }) {} + public constructor(public readonly options: IHeaderOptions = { children: [] }) { + // noop + } } export class Footer { - public constructor(public readonly options: IHeaderOptions = { children: [] }) {} + public constructor(public readonly options: IHeaderOptions = { children: [] }) { + // noop + } } diff --git a/src/file/media/media.ts b/src/file/media/media.ts index 4daf8d60f1..6b16495809 100644 --- a/src/file/media/media.ts +++ b/src/file/media/media.ts @@ -13,6 +13,7 @@ export interface IMediaTransformation { } export class Media { + // eslint-disable-next-line functional/prefer-readonly-type private readonly map: Map; public constructor() { @@ -68,9 +69,8 @@ export class Media { .map((c) => c.charCodeAt(0)), ); } else { - /* eslint @typescript-eslint/no-require-imports: 0 */ + // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires const b = require("buf" + "fer"); - /* eslint @typescript-eslint/no-require-imports: 2 */ return new b.Buffer(dataURI, "base64"); } } diff --git a/src/file/numbering/abstract-numbering.ts b/src/file/numbering/abstract-numbering.ts index b3e5be265b..24bd1c9842 100644 --- a/src/file/numbering/abstract-numbering.ts +++ b/src/file/numbering/abstract-numbering.ts @@ -32,7 +32,7 @@ class AbstractNumberingAttributes extends XmlAttributeComponent<{ export class AbstractNumbering extends XmlComponent { public readonly id: number; - public constructor(id: number, levelOptions: ILevelsOptions[]) { + public constructor(id: number, levelOptions: readonly ILevelsOptions[]) { super("w:abstractNum"); this.root.push( new AbstractNumberingAttributes({ diff --git a/src/file/numbering/level.spec.ts b/src/file/numbering/level.spec.ts index 9cf033eb28..2216dc1555 100644 --- a/src/file/numbering/level.spec.ts +++ b/src/file/numbering/level.spec.ts @@ -2,8 +2,8 @@ import { expect } from "chai"; import { Formatter } from "@export/formatter"; -import { Level, LevelFormat, LevelSuffix } from "./level"; import { AlignmentType } from ".."; +import { Level, LevelFormat, LevelSuffix } from "./level"; describe("Level", () => { describe("#constructor", () => { diff --git a/src/file/numbering/level.ts b/src/file/numbering/level.ts index c1f7a5d805..0bf575ada1 100644 --- a/src/file/numbering/level.ts +++ b/src/file/numbering/level.ts @@ -118,7 +118,7 @@ class Suffix extends XmlComponent { // http://officeopenxml.com/WPnumbering-isLgl.php // https://docs.microsoft.com/en-us/dotnet/api/documentformat.openxml.wordprocessing.islegalnumberingstyle?view=openxml-2.8.1 class IsLegalNumberingStyle extends XmlComponent { - constructor() { + public constructor() { super("w:isLgl"); } } diff --git a/src/file/numbering/numbering.ts b/src/file/numbering/numbering.ts index 6e0e61836d..233fbeb95a 100644 --- a/src/file/numbering/numbering.ts +++ b/src/file/numbering/numbering.ts @@ -10,8 +10,8 @@ import { ILevelsOptions, LevelFormat } from "./level"; import { ConcreteNumbering } from "./num"; export interface INumberingOptions { - readonly config: { - readonly levels: ILevelsOptions[]; + readonly config: readonly { + readonly levels: readonly ILevelsOptions[]; readonly reference: string; }[]; } @@ -203,33 +203,33 @@ export class Numbering extends XmlComponent { return; } + const referenceConfigLevels = this.referenceConfigMap.get(reference); + const firstLevelStartNumber = referenceConfigLevels && referenceConfigLevels[0].start; + const concreteNumberingSettings = { numId: uniqueNumericId(), abstractNumId: abstractNumbering.id, reference, instance, - overrideLevel: { - num: 0, - start: 1, - }, + overrideLevel: + firstLevelStartNumber && Number.isInteger(firstLevelStartNumber) + ? { + num: 0, + start: firstLevelStartNumber, + } + : { + num: 0, + start: 1, + }, }; - const referenceConfigLevels = this.referenceConfigMap.get(reference); - const firstLevelStartNumber = referenceConfigLevels && referenceConfigLevels[0].start; - if (firstLevelStartNumber && Number.isInteger(firstLevelStartNumber)) { - concreteNumberingSettings.overrideLevel = { - num: 0, - start: firstLevelStartNumber, - }; - } - this.concreteNumberingMap.set(fullReference, new ConcreteNumbering(concreteNumberingSettings)); } - public get ConcreteNumbering(): ConcreteNumbering[] { + public get ConcreteNumbering(): readonly ConcreteNumbering[] { return Array.from(this.concreteNumberingMap.values()); } - public get ReferenceConfig(): object[] { + public get ReferenceConfig(): readonly object[] { return Array.from(this.referenceConfigMap.values()); } } diff --git a/src/file/paragraph/links/bookmark.ts b/src/file/paragraph/links/bookmark.ts index 6addd8c306..5a74cb1c5d 100644 --- a/src/file/paragraph/links/bookmark.ts +++ b/src/file/paragraph/links/bookmark.ts @@ -7,10 +7,10 @@ import { BookmarkEndAttributes, BookmarkStartAttributes } from "./bookmark-attri export class Bookmark { public readonly start: BookmarkStart; - public readonly children: ParagraphChild[]; + public readonly children: readonly ParagraphChild[]; public readonly end: BookmarkEnd; - public constructor(options: { readonly id: string; readonly children: ParagraphChild[] }) { + public constructor(options: { readonly id: string; readonly children: readonly ParagraphChild[] }) { const linkId = uniqueNumericId(); this.start = new BookmarkStart(options.id, linkId); diff --git a/src/file/paragraph/links/hyperlink.ts b/src/file/paragraph/links/hyperlink.ts index f1c98503a5..18380fb805 100644 --- a/src/file/paragraph/links/hyperlink.ts +++ b/src/file/paragraph/links/hyperlink.ts @@ -13,7 +13,7 @@ export enum HyperlinkType { export class ConcreteHyperlink extends XmlComponent { public readonly linkId: string; - public constructor(children: ParagraphChild[], relationshipId: string, anchor?: string) { + public constructor(children: readonly ParagraphChild[], relationshipId: string, anchor?: string) { super("w:hyperlink"); this.linkId = relationshipId; @@ -33,13 +33,13 @@ export class ConcreteHyperlink extends XmlComponent { } export class InternalHyperlink extends ConcreteHyperlink { - public constructor(options: { readonly children: ParagraphChild[]; readonly anchor: string }) { + public constructor(options: { readonly children: readonly ParagraphChild[]; readonly anchor: string }) { super(options.children, uniqueId(), options.anchor); } } export class ExternalHyperlink extends XmlComponent { - public constructor(public readonly options: { readonly children: ParagraphChild[]; readonly link: string }) { + public constructor(public readonly options: { readonly children: readonly ParagraphChild[]; readonly link: string }) { super("w:externalHyperlink"); } } diff --git a/src/file/paragraph/math/brackets/math-angled-brackets.ts b/src/file/paragraph/math/brackets/math-angled-brackets.ts index 82c426d4b4..efef05ea1b 100644 --- a/src/file/paragraph/math/brackets/math-angled-brackets.ts +++ b/src/file/paragraph/math/brackets/math-angled-brackets.ts @@ -6,7 +6,7 @@ import { MathBase } from "../n-ary"; import { MathBracketProperties } from "./math-bracket-properties"; export class MathAngledBrackets extends XmlComponent { - public constructor(options: { readonly children: MathComponent[] }) { + public constructor(options: { readonly children: readonly MathComponent[] }) { super("m:d"); this.root.push( diff --git a/src/file/paragraph/math/brackets/math-curly-brackets.ts b/src/file/paragraph/math/brackets/math-curly-brackets.ts index d260f08012..d7336a7297 100644 --- a/src/file/paragraph/math/brackets/math-curly-brackets.ts +++ b/src/file/paragraph/math/brackets/math-curly-brackets.ts @@ -6,7 +6,7 @@ import { MathBase } from "../n-ary"; import { MathBracketProperties } from "./math-bracket-properties"; export class MathCurlyBrackets extends XmlComponent { - public constructor(options: { readonly children: MathComponent[] }) { + public constructor(options: { readonly children: readonly MathComponent[] }) { super("m:d"); this.root.push( diff --git a/src/file/paragraph/math/brackets/math-round-brackets.ts b/src/file/paragraph/math/brackets/math-round-brackets.ts index d3cb54627c..249d931ec2 100644 --- a/src/file/paragraph/math/brackets/math-round-brackets.ts +++ b/src/file/paragraph/math/brackets/math-round-brackets.ts @@ -6,7 +6,7 @@ import { MathBase } from "../n-ary"; import { MathBracketProperties } from "./math-bracket-properties"; export class MathRoundBrackets extends XmlComponent { - public constructor(options: { readonly children: MathComponent[] }) { + public constructor(options: { readonly children: readonly MathComponent[] }) { super("m:d"); this.root.push(new MathBracketProperties()); diff --git a/src/file/paragraph/math/brackets/math-square-brackets.ts b/src/file/paragraph/math/brackets/math-square-brackets.ts index e4c8079b72..6b27005d36 100644 --- a/src/file/paragraph/math/brackets/math-square-brackets.ts +++ b/src/file/paragraph/math/brackets/math-square-brackets.ts @@ -6,7 +6,7 @@ import { MathBase } from "../n-ary"; import { MathBracketProperties } from "./math-bracket-properties"; export class MathSquareBrackets extends XmlComponent { - public constructor(options: { readonly children: MathComponent[] }) { + public constructor(options: { readonly children: readonly MathComponent[] }) { super("m:d"); this.root.push( diff --git a/src/file/paragraph/math/fraction/math-denominator.ts b/src/file/paragraph/math/fraction/math-denominator.ts index 4d7eacd093..f7052d135e 100644 --- a/src/file/paragraph/math/fraction/math-denominator.ts +++ b/src/file/paragraph/math/fraction/math-denominator.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathDenominator extends XmlComponent { - public constructor(children: MathComponent[]) { + public constructor(children: readonly MathComponent[]) { super("m:den"); for (const child of children) { diff --git a/src/file/paragraph/math/fraction/math-fraction.ts b/src/file/paragraph/math/fraction/math-fraction.ts index 7f92c3455a..e18d92d985 100644 --- a/src/file/paragraph/math/fraction/math-fraction.ts +++ b/src/file/paragraph/math/fraction/math-fraction.ts @@ -5,8 +5,8 @@ import { MathDenominator } from "./math-denominator"; import { MathNumerator } from "./math-numerator"; export interface IMathFractionOptions { - readonly numerator: MathComponent[]; - readonly denominator: MathComponent[]; + readonly numerator: readonly MathComponent[]; + readonly denominator: readonly MathComponent[]; } export class MathFraction extends XmlComponent { diff --git a/src/file/paragraph/math/fraction/math-numerator.ts b/src/file/paragraph/math/fraction/math-numerator.ts index 67bad39fb5..7a54de7f79 100644 --- a/src/file/paragraph/math/fraction/math-numerator.ts +++ b/src/file/paragraph/math/fraction/math-numerator.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathNumerator extends XmlComponent { - public constructor(children: MathComponent[]) { + public constructor(children: readonly MathComponent[]) { super("m:num"); for (const child of children) { diff --git a/src/file/paragraph/math/function/math-function-name.ts b/src/file/paragraph/math/function/math-function-name.ts index b480747112..c6984bce02 100644 --- a/src/file/paragraph/math/function/math-function-name.ts +++ b/src/file/paragraph/math/function/math-function-name.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathFunctionName extends XmlComponent { - public constructor(children: MathComponent[]) { + public constructor(children: readonly MathComponent[]) { super("m:fName"); for (const child of children) { diff --git a/src/file/paragraph/math/function/math-function.ts b/src/file/paragraph/math/function/math-function.ts index e9457975e6..307c8c4390 100644 --- a/src/file/paragraph/math/function/math-function.ts +++ b/src/file/paragraph/math/function/math-function.ts @@ -7,8 +7,8 @@ import { MathFunctionName } from "./math-function-name"; import { MathFunctionProperties } from "./math-function-properties"; export interface IMathFunctionOptions { - readonly children: MathComponent[]; - readonly name: MathComponent[]; + readonly children: readonly MathComponent[]; + readonly name: readonly MathComponent[]; } export class MathFunction extends XmlComponent { diff --git a/src/file/paragraph/math/math.ts b/src/file/paragraph/math/math.ts index a46856c0a2..d0d3bcca41 100644 --- a/src/file/paragraph/math/math.ts +++ b/src/file/paragraph/math/math.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "./math-component"; export interface IMathOptions { - readonly children: MathComponent[]; + readonly children: readonly MathComponent[]; } export class Math extends XmlComponent { diff --git a/src/file/paragraph/math/n-ary/math-base.ts b/src/file/paragraph/math/n-ary/math-base.ts index ba017f6a85..0b95eed36d 100644 --- a/src/file/paragraph/math/n-ary/math-base.ts +++ b/src/file/paragraph/math/n-ary/math-base.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathBase extends XmlComponent { - public constructor(children: MathComponent[]) { + public constructor(children: readonly MathComponent[]) { super("m:e"); for (const child of children) { diff --git a/src/file/paragraph/math/n-ary/math-sub-script.ts b/src/file/paragraph/math/n-ary/math-sub-script.ts index 89a796fd76..69ed2035b2 100644 --- a/src/file/paragraph/math/n-ary/math-sub-script.ts +++ b/src/file/paragraph/math/n-ary/math-sub-script.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathSubScriptElement extends XmlComponent { - public constructor(children: MathComponent[]) { + public constructor(children: readonly MathComponent[]) { super("m:sub"); for (const child of children) { diff --git a/src/file/paragraph/math/n-ary/math-sum.ts b/src/file/paragraph/math/n-ary/math-sum.ts index 5d2c169f11..b5d0995147 100644 --- a/src/file/paragraph/math/n-ary/math-sum.ts +++ b/src/file/paragraph/math/n-ary/math-sum.ts @@ -8,9 +8,9 @@ import { MathSubScriptElement } from "./math-sub-script"; import { MathSuperScriptElement } from "./math-super-script"; export interface IMathSumOptions { - readonly children: MathComponent[]; - readonly subScript?: MathComponent[]; - readonly superScript?: MathComponent[]; + readonly children: readonly MathComponent[]; + readonly subScript?: readonly MathComponent[]; + readonly superScript?: readonly MathComponent[]; } export class MathSum extends XmlComponent { diff --git a/src/file/paragraph/math/n-ary/math-super-script.ts b/src/file/paragraph/math/n-ary/math-super-script.ts index 40fbd6d029..e2d6becf3c 100644 --- a/src/file/paragraph/math/n-ary/math-super-script.ts +++ b/src/file/paragraph/math/n-ary/math-super-script.ts @@ -4,7 +4,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathSuperScriptElement extends XmlComponent { - public constructor(children: MathComponent[]) { + public constructor(children: readonly MathComponent[]) { super("m:sup"); for (const child of children) { diff --git a/src/file/paragraph/math/radical/math-degree.ts b/src/file/paragraph/math/radical/math-degree.ts index 4a1673284b..3942159674 100644 --- a/src/file/paragraph/math/radical/math-degree.ts +++ b/src/file/paragraph/math/radical/math-degree.ts @@ -3,7 +3,7 @@ import { XmlComponent } from "@file/xml-components"; import { MathComponent } from "../math-component"; export class MathDegree extends XmlComponent { - public constructor(children?: MathComponent[]) { + public constructor(children?: readonly MathComponent[]) { super("m:deg"); if (!!children) { diff --git a/src/file/paragraph/math/radical/math-radical.ts b/src/file/paragraph/math/radical/math-radical.ts index bbdcc9fb92..1684024dc1 100644 --- a/src/file/paragraph/math/radical/math-radical.ts +++ b/src/file/paragraph/math/radical/math-radical.ts @@ -7,8 +7,8 @@ import { MathDegree } from "./math-degree"; import { MathRadicalProperties } from "./math-radical-properties"; export interface IMathRadicalOptions { - readonly children: MathComponent[]; - readonly degree?: MathComponent[]; + readonly children: readonly MathComponent[]; + readonly degree?: readonly MathComponent[]; } export class MathRadical extends XmlComponent { diff --git a/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.ts b/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.ts index 686d24f0cd..293a308a36 100644 --- a/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.ts +++ b/src/file/paragraph/math/script/pre-sub-super-script/math-pre-sub-super-script-function.ts @@ -6,9 +6,9 @@ import { MathBase, MathSubScriptElement, MathSuperScriptElement } from "../../n- import { MathPreSubSuperScriptProperties } from "./math-pre-sub-super-script-function-properties"; export interface IMathPreSubSuperScriptOptions { - readonly children: MathComponent[]; - readonly subScript: MathComponent[]; - readonly superScript: MathComponent[]; + readonly children: readonly MathComponent[]; + readonly subScript: readonly MathComponent[]; + readonly superScript: readonly MathComponent[]; } export class MathPreSubSuperScript extends XmlComponent { diff --git a/src/file/paragraph/math/script/sub-script/math-sub-script-function.ts b/src/file/paragraph/math/script/sub-script/math-sub-script-function.ts index fbc54287db..e0f70b2089 100644 --- a/src/file/paragraph/math/script/sub-script/math-sub-script-function.ts +++ b/src/file/paragraph/math/script/sub-script/math-sub-script-function.ts @@ -6,8 +6,8 @@ import { MathBase, MathSubScriptElement } from "../../n-ary"; import { MathSubScriptProperties } from "./math-sub-script-function-properties"; export interface IMathSubScriptOptions { - readonly children: MathComponent[]; - readonly subScript: MathComponent[]; + readonly children: readonly MathComponent[]; + readonly subScript: readonly MathComponent[]; } export class MathSubScript extends XmlComponent { diff --git a/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.ts b/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.ts index b0545324ed..20699561c6 100644 --- a/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.ts +++ b/src/file/paragraph/math/script/sub-super-script/math-sub-super-script-function.ts @@ -6,9 +6,9 @@ import { MathBase, MathSubScriptElement, MathSuperScriptElement } from "../../n- import { MathSubSuperScriptProperties } from "./math-sub-super-script-function-properties"; export interface IMathSubSuperScriptOptions { - readonly children: MathComponent[]; - readonly subScript: MathComponent[]; - readonly superScript: MathComponent[]; + readonly children: readonly MathComponent[]; + readonly subScript: readonly MathComponent[]; + readonly superScript: readonly MathComponent[]; } export class MathSubSuperScript extends XmlComponent { diff --git a/src/file/paragraph/math/script/super-script/math-super-script-function.ts b/src/file/paragraph/math/script/super-script/math-super-script-function.ts index 4d61afb655..148b64d2fe 100644 --- a/src/file/paragraph/math/script/super-script/math-super-script-function.ts +++ b/src/file/paragraph/math/script/super-script/math-super-script-function.ts @@ -6,8 +6,8 @@ import { MathBase, MathSuperScriptElement } from "../../n-ary"; import { MathSuperScriptProperties } from "./math-super-script-function-properties"; export interface IMathSuperScriptOptions { - readonly children: MathComponent[]; - readonly superScript: MathComponent[]; + readonly children: readonly MathComponent[]; + readonly superScript: readonly MathComponent[]; } export class MathSuperScript extends XmlComponent { diff --git a/src/file/paragraph/paragraph.ts b/src/file/paragraph/paragraph.ts index 38642d5be3..6d8074ffa8 100644 --- a/src/file/paragraph/paragraph.ts +++ b/src/file/paragraph/paragraph.ts @@ -36,7 +36,7 @@ export type ParagraphChild = export interface IParagraphOptions extends IParagraphPropertiesOptions { readonly text?: string; - readonly children?: ParagraphChild[]; + readonly children?: readonly ParagraphChild[]; } export class Paragraph extends XmlComponent { diff --git a/src/file/paragraph/properties.spec.ts b/src/file/paragraph/properties.spec.ts index 9d466bc33c..86ecbbf62b 100644 --- a/src/file/paragraph/properties.spec.ts +++ b/src/file/paragraph/properties.spec.ts @@ -26,9 +26,7 @@ describe("ParagraphProperties", () => { // tslint:disable-next-line: no-object-literal-type-assertion file: { Numbering: { - createConcreteNumberingInstance: (_: string, __: number) => { - return; - }, + createConcreteNumberingInstance: (_: string, __: number) => undefined, }, } as File, // tslint:disable-next-line: no-object-literal-type-assertion diff --git a/src/file/paragraph/properties.ts b/src/file/paragraph/properties.ts index 098fee0ccf..6f0088ac98 100644 --- a/src/file/paragraph/properties.ts +++ b/src/file/paragraph/properties.ts @@ -41,7 +41,7 @@ export interface IParagraphPropertiesOptions extends IParagraphStylePropertiesOp readonly heading?: HeadingLevel; readonly bidirectional?: boolean; readonly pageBreakBefore?: boolean; - readonly tabStops?: { + readonly tabStops?: readonly { readonly position: number | TabStopPosition; readonly type: TabStopType; readonly leader?: LeaderType; @@ -57,6 +57,7 @@ export interface IParagraphPropertiesOptions extends IParagraphStylePropertiesOp } export class ParagraphProperties extends IgnoreIfEmptyXmlComponent { + // eslint-disable-next-line functional/prefer-readonly-type private readonly numberingReferences: { readonly reference: string; readonly instance: number }[] = []; public constructor(options?: IParagraphPropertiesOptions) { diff --git a/src/file/paragraph/run/comment-run.ts b/src/file/paragraph/run/comment-run.ts index f4f95b80dd..626f4ccba9 100644 --- a/src/file/paragraph/run/comment-run.ts +++ b/src/file/paragraph/run/comment-run.ts @@ -12,7 +12,7 @@ export interface ICommentOptions { } export interface ICommentsOptions { - readonly children: ICommentOptions[]; + readonly children: readonly ICommentOptions[]; } class CommentAttributes extends XmlAttributeComponent<{ diff --git a/src/file/paragraph/run/image-run.spec.ts b/src/file/paragraph/run/image-run.spec.ts index 972080b49a..7887d4b0cd 100644 --- a/src/file/paragraph/run/image-run.spec.ts +++ b/src/file/paragraph/run/image-run.spec.ts @@ -40,7 +40,7 @@ describe("ImageRun", () => { const tree = new Formatter().format(currentImageRun, { file: { Media: { - // tslint:disable-next-line: no-empty + // eslint-disable-next-line @typescript-eslint/no-empty-function addImage: () => {}, }, } as unknown as File, @@ -290,7 +290,7 @@ describe("ImageRun", () => { const tree = new Formatter().format(currentImageRun, { file: { Media: { - // tslint:disable-next-line: no-empty + // eslint-disable-next-line @typescript-eslint/no-empty-function addImage: () => {}, }, } as unknown as File, @@ -519,6 +519,7 @@ describe("ImageRun", () => { }); it("should return UInt8Array if atob is present", () => { + // eslint-disable-next-line functional/immutable-data global.atob = () => "atob result"; const currentImageRun = new ImageRun({ @@ -542,7 +543,7 @@ describe("ImageRun", () => { const tree = new Formatter().format(currentImageRun, { file: { Media: { - // tslint:disable-next-line: no-empty + // eslint-disable-next-line @typescript-eslint/no-empty-function addImage: () => {}, }, } as unknown as File, @@ -775,6 +776,7 @@ describe("ImageRun", () => { }); it("should use data as is if its not a string", () => { + // eslint-disable-next-line functional/immutable-data global.atob = () => "atob result"; const currentImageRun = new ImageRun({ @@ -798,7 +800,7 @@ describe("ImageRun", () => { const tree = new Formatter().format(currentImageRun, { file: { Media: { - // tslint:disable-next-line: no-empty + // eslint-disable-next-line @typescript-eslint/no-empty-function addImage: () => {}, }, } as unknown as File, diff --git a/src/file/paragraph/run/image-run.ts b/src/file/paragraph/run/image-run.ts index 59dc64fef7..849f7c6306 100644 --- a/src/file/paragraph/run/image-run.ts +++ b/src/file/paragraph/run/image-run.ts @@ -62,6 +62,7 @@ export class ImageRun extends Run { .map((c) => c.charCodeAt(0)), ); } else { + // eslint-disable-next-line @typescript-eslint/no-require-imports, @typescript-eslint/no-var-requires const b = require("buf" + "fer"); return new b.Buffer(dataURI, "base64"); } diff --git a/src/file/paragraph/run/run.ts b/src/file/paragraph/run/run.ts index 49e895bf09..e5344e0e54 100644 --- a/src/file/paragraph/run/run.ts +++ b/src/file/paragraph/run/run.ts @@ -12,7 +12,7 @@ import { Text } from "./run-components/text"; import { TextAttributes } from "./text-attributes"; export interface IRunOptions extends IRunPropertiesOptions { - readonly children?: (Begin | FieldInstruction | Separate | End | PageNumber | FootnoteReferenceRun | string)[]; + readonly children?: readonly (Begin | FieldInstruction | Separate | End | PageNumber | FootnoteReferenceRun | string)[]; readonly break?: number; readonly text?: string; } diff --git a/src/file/styles/external-styles-factory.spec.ts b/src/file/styles/external-styles-factory.spec.ts index 9db766008b..2931b67fdd 100644 --- a/src/file/styles/external-styles-factory.spec.ts +++ b/src/file/styles/external-styles-factory.spec.ts @@ -48,7 +48,7 @@ describe("External styles factory", () => { describe("#parse", () => { it("should parse w:styles attributes", () => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const importedStyle = new ExternalStylesFactory().newInstance(externalStyles) as any; expect(importedStyle.rootKey).to.equal("w:styles"); @@ -59,7 +59,7 @@ describe("External styles factory", () => { }); it("should parse other child elements of w:styles", () => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const importedStyle = new ExternalStylesFactory().newInstance(externalStyles) as any; expect(importedStyle.root[1]).to.deep.equal({ root: [ @@ -147,7 +147,7 @@ describe("External styles factory", () => { }); it("should parse styles elements", () => { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any const importedStyle = new ExternalStylesFactory().newInstance(externalStyles) as any; expect(importedStyle.root.length).to.equal(5); diff --git a/src/file/styles/external-styles-factory.ts b/src/file/styles/external-styles-factory.ts index b40a0bff46..19dc396378 100644 --- a/src/file/styles/external-styles-factory.ts +++ b/src/file/styles/external-styles-factory.ts @@ -23,6 +23,7 @@ export class ExternalStylesFactory { * Or any other element will be parsed to * * + * * @param externalStyles context from styles.xml */ public newInstance(xmlData: string): Styles { diff --git a/src/file/styles/sample/default-style.ts b/src/file/styles/sample/default-style.ts index 7a3421c201..4796968a7c 100644 --- a/src/file/styles/sample/default-style.ts +++ b/src/file/styles/sample/default-style.ts @@ -1,4 +1,4 @@ -const createLsdException = (name, uiPriority, qFormat?, semiHidden?, unhideWhenUsed?) => { +const createLsdException = (name: string, uiPriority?: number, qFormat?: number, semiHidden?: number, unhideWhenUsed?: number) => { "use strict"; return [ @@ -14,8 +14,9 @@ const createLsdException = (name, uiPriority, qFormat?, semiHidden?, unhideWhenU ]; }; -export const DefaultStyle = () => { - var style = { +// eslint-disable-next-line @typescript-eslint/no-explicit-any +export const DefaultStyle = (): Record => { + const style = { "w:styles": [ { _attr: { diff --git a/src/file/styles/styles.ts b/src/file/styles/styles.ts index d61fcd7746..eff550ade4 100644 --- a/src/file/styles/styles.ts +++ b/src/file/styles/styles.ts @@ -7,9 +7,9 @@ import { IParagraphStyleOptions } from "./style/paragraph-style"; export interface IStylesOptions { readonly default?: IDefaultStylesOptions; readonly initialStyles?: BaseXmlComponent; - readonly paragraphStyles?: IParagraphStyleOptions[]; - readonly characterStyles?: ICharacterStyleOptions[]; - readonly importedStyles?: (XmlComponent | StyleForParagraph | StyleForCharacter | ImportedXmlComponent)[]; + readonly paragraphStyles?: readonly IParagraphStyleOptions[]; + readonly characterStyles?: readonly ICharacterStyleOptions[]; + readonly importedStyles?: readonly (XmlComponent | StyleForParagraph | StyleForCharacter | ImportedXmlComponent)[]; } // diff --git a/src/file/table-of-contents/table-of-contents-properties.ts b/src/file/table-of-contents/table-of-contents-properties.ts index a45a40b0cf..f53299d795 100644 --- a/src/file/table-of-contents/table-of-contents-properties.ts +++ b/src/file/table-of-contents/table-of-contents-properties.ts @@ -98,7 +98,7 @@ export interface ITableOfContentsOptions { * with each doublet being a comma-separated set of style name and table of content level. * \t can be combined with \o. */ - readonly stylesWithLevels?: StyleLevel[]; + readonly stylesWithLevels?: readonly StyleLevel[]; /** * \u Uses the applied paragraph outline level. diff --git a/src/file/table-of-contents/table-of-contents.spec.ts b/src/file/table-of-contents/table-of-contents.spec.ts index aba9647dc4..bd55661a41 100644 --- a/src/file/table-of-contents/table-of-contents.spec.ts +++ b/src/file/table-of-contents/table-of-contents.spec.ts @@ -14,9 +14,7 @@ describe("Table of Contents", () => { }); it("should construct a TOC with all the options and alias", () => { - const styles = new Array(); - styles.push(new StyleLevel("SL", 1)); - styles.push(new StyleLevel("SL", 2)); + const styles = [new StyleLevel("SL", 1), new StyleLevel("SL", 2)]; const props = { captionLabel: "A", diff --git a/src/file/table/grid.ts b/src/file/table/grid.ts index dc32154a23..719253b8b2 100644 --- a/src/file/table/grid.ts +++ b/src/file/table/grid.ts @@ -13,7 +13,7 @@ import { XmlAttributeComponent, XmlComponent } from "@file/xml-components"; import { twipsMeasureValue } from "@util/values"; export class TableGrid extends XmlComponent { - public constructor(widths: number[] | string[]) { + public constructor(widths: readonly number[] | readonly string[]) { super("w:tblGrid"); for (const width of widths) { this.root.push(new GridCol(width)); diff --git a/src/file/table/table-cell/table-cell.ts b/src/file/table/table-cell/table-cell.ts index c030edb308..f9547d9ba5 100644 --- a/src/file/table/table-cell/table-cell.ts +++ b/src/file/table/table-cell/table-cell.ts @@ -6,7 +6,7 @@ import { Table } from "../table"; import { ITableCellPropertiesOptions, TableCellProperties } from "./table-cell-properties"; export interface ITableCellOptions extends ITableCellPropertiesOptions { - readonly children: (Paragraph | Table)[]; + readonly children: readonly (Paragraph | Table)[]; } export class TableCell extends XmlComponent { diff --git a/src/file/table/table-row/table-row.ts b/src/file/table/table-row/table-row.ts index 7eba4c4134..863274bccf 100644 --- a/src/file/table/table-row/table-row.ts +++ b/src/file/table/table-row/table-row.ts @@ -3,7 +3,7 @@ import { TableCell } from "../table-cell"; import { ITableRowPropertiesOptions, TableRowProperties } from "./table-row-properties"; export interface ITableRowOptions extends ITableRowPropertiesOptions { - readonly children: TableCell[]; + readonly children: readonly TableCell[]; } export class TableRow extends XmlComponent { @@ -20,7 +20,7 @@ export class TableRow extends XmlComponent { return this.options.children.length; } - public get cells(): TableCell[] { + public get cells(): readonly TableCell[] { return this.root.filter((xmlComponent) => xmlComponent instanceof TableCell); } diff --git a/src/file/table/table.ts b/src/file/table/table.ts index 236d56084a..7f272dfe3e 100644 --- a/src/file/table/table.ts +++ b/src/file/table/table.ts @@ -21,9 +21,9 @@ import { ITableWidthProperties } from "./table-width"; algorithm will expand columns to fit its content */ export interface ITableOptions { - readonly rows: TableRow[]; + readonly rows: readonly TableRow[]; readonly width?: ITableWidthProperties; - readonly columnWidths?: number[]; + readonly columnWidths?: readonly number[]; readonly margins?: ITableCellMarginOptions; readonly indent?: ITableWidthProperties; readonly float?: ITableFloatOptions; @@ -38,6 +38,7 @@ export class Table extends XmlComponent { public constructor({ rows, width, + // eslint-disable-next-line functional/immutable-data columnWidths = Array(Math.max(...rows.map((row) => row.CellCount))).fill(100), margins, indent, diff --git a/src/file/xml-components/default-attributes.ts b/src/file/xml-components/default-attributes.ts index 3e865c0b1d..bf84e95eef 100644 --- a/src/file/xml-components/default-attributes.ts +++ b/src/file/xml-components/default-attributes.ts @@ -1,11 +1,11 @@ import { BaseXmlComponent, IContext } from "./base"; import { IXmlableObject } from "./xmlable-object"; -export type AttributeMap = { [P in keyof T]: string }; +export type AttributeMap = { readonly [P in keyof T]: string }; -export abstract class XmlAttributeComponent extends BaseXmlComponent { +export abstract class XmlAttributeComponent extends BaseXmlComponent { // tslint:disable-next-line:readonly-keyword - protected root: T; + protected readonly root: T; protected readonly xmlKeys?: AttributeMap; public constructor(properties: T) { @@ -19,6 +19,7 @@ export abstract class XmlAttributeComponent extends BaseXmlComponent { const value = this.root[key]; if (value !== undefined) { const newKey = (this.xmlKeys && this.xmlKeys[key]) || key; + // eslint-disable-next-line functional/immutable-data attrs[newKey] = value; } }); diff --git a/src/file/xml-components/imported-xml-component.ts b/src/file/xml-components/imported-xml-component.ts index 6eca0c261b..5385e8a9b6 100644 --- a/src/file/xml-components/imported-xml-component.ts +++ b/src/file/xml-components/imported-xml-component.ts @@ -1,4 +1,4 @@ -// tslint:disable:no-any +// eslint-disable @typescript-eslint/no-explicit-any import { Element as XmlElement, xml2js } from "xml-js"; import { IXmlableObject, XmlAttributeComponent, XmlComponent } from "@file/xml-components"; @@ -7,6 +7,7 @@ import { IContext } from "./base"; /** * Converts the given xml element (in json format) into XmlComponent. + * * @param element the xml element in json presentation */ diff --git a/src/file/xml-components/xml-component.ts b/src/file/xml-components/xml-component.ts index 60fc67d2b9..878931224b 100644 --- a/src/file/xml-components/xml-component.ts +++ b/src/file/xml-components/xml-component.ts @@ -4,7 +4,7 @@ import { IXmlableObject } from "./xmlable-object"; export const EMPTY_OBJECT = Object.seal({}); export abstract class XmlComponent extends BaseXmlComponent { - // tslint:disable-next-line:readonly-keyword no-any + // eslint-disable-next-line functional/prefer-readonly-type, @typescript-eslint/no-explicit-any protected root: (BaseXmlComponent | string | any)[]; public constructor(rootKey: string) { @@ -46,5 +46,7 @@ export abstract class IgnoreIfEmptyXmlComponent extends XmlComponent { if (result && (typeof result[this.rootKey] !== "object" || Object.keys(result[this.rootKey]).length)) { return result; } + + return undefined; } } diff --git a/src/tests/utility.ts b/src/tests/utility.ts index c43d0f6cc3..bfc0d90299 100644 --- a/src/tests/utility.ts +++ b/src/tests/utility.ts @@ -1,5 +1,5 @@ export class Utility { - // tslint:disable-next-line:no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any public static jsonify(obj: object): any { const stringifiedJson = JSON.stringify(obj); return JSON.parse(stringifiedJson); diff --git a/src/util/values.ts b/src/util/values.ts index 67e8031a43..fa666bd084 100644 --- a/src/util/values.ts +++ b/src/util/values.ts @@ -43,27 +43,21 @@ const hexBinary = (val: string, length: number): string => { // // // -export const longHexNumber = (val: string): string => { - return hexBinary(val, 4); -}; +export const longHexNumber = (val: string): string => hexBinary(val, 4); // // // // // -export const shortHexNumber = (val: string): string => { - return hexBinary(val, 2); -}; +export const shortHexNumber = (val: string): string => hexBinary(val, 2); // // // // // -export const uCharHexNumber = (val: string): string => { - return hexBinary(val, 1); -}; +export const uCharHexNumber = (val: string): string => hexBinary(val, 1); // // @@ -129,30 +123,26 @@ export const hexColorValue = (val: string): string => { // // // -export const signedTwipsMeasureValue = (val: string | number): string | number => { - return typeof val === "string" ? universalMeasureValue(val) : decimalNumber(val); -}; +export const signedTwipsMeasureValue = (val: string | number): string | number => + typeof val === "string" ? universalMeasureValue(val) : decimalNumber(val); // // // -export const hpsMeasureValue = (val: string | number): string | number => { - return typeof val === "string" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val); -}; +export const hpsMeasureValue = (val: string | number): string | number => + typeof val === "string" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val); // // // -export const signedHpsMeasureValue = (val: string | number): string | number => { - return typeof val === "string" ? universalMeasureValue(val) : decimalNumber(val); -}; +export const signedHpsMeasureValue = (val: string | number): string | number => + typeof val === "string" ? universalMeasureValue(val) : decimalNumber(val); // // // -export const twipsMeasureValue = (val: string | number): string | number => { - return typeof val === "string" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val); -}; +export const twipsMeasureValue = (val: string | number): string | number => + typeof val === "string" ? positiveUniversalMeasureValue(val) : unsignedDecimalNumber(val); // // @@ -222,6 +212,4 @@ export const pointMeasureValue = unsignedDecimalNumber; // // Luckily, js has this format built in already. See: // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString -export const dateTimeValue = (val: Date): string => { - return val.toISOString(); -}; +export const dateTimeValue = (val: Date): string => val.toISOString(); From 5950055ccafd88b284a8dd910a427a1e43b1663a Mon Sep 17 00:00:00 2001 From: Dolan Miu Date: Mon, 19 Sep 2022 20:48:50 +0100 Subject: [PATCH 4/5] Fix linting and add new lint rules --- .eslintrc.js | 46 ++++++++++++------- demo/74-nodejs-stream.ts | 7 ++- src/export/packer/next-compiler.spec.ts | 4 +- src/export/packer/packer.spec.ts | 12 +++-- src/export/packer/packer.ts | 2 +- .../custom-properties/custom-properties.ts | 1 + src/file/file.ts | 17 +++++-- src/file/header.ts | 12 +++-- src/file/media/media.spec.ts | 6 ++- src/file/numbering/numbering.spec.ts | 3 +- src/file/paragraph/run/image-run.spec.ts | 4 +- .../xml-components/imported-xml-component.ts | 8 ++-- src/util/values.ts | 2 +- 13 files changed, 78 insertions(+), 46 deletions(-) diff --git a/.eslintrc.js b/.eslintrc.js index a4cea40931..d25922b741 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -12,6 +12,7 @@ https://github.com/typescript-eslint/tslint-to-eslint-config/blob/master/docs/FA Happy linting! 💖 */ module.exports = { + extends: "eslint:recommended", env: { browser: true, es6: true, @@ -33,6 +34,31 @@ module.exports = { ], root: true, rules: { + "no-undef": "off", + "no-extra-boolean-cast": "off", + "no-alert": "error", + "no-self-compare": "error", + "no-unreachable-loop": "error", + "no-template-curly-in-string": "error", + "no-unused-private-class-members": "error", + "no-extend-native": "error", + "no-floating-decimal": "error", + "no-implied-eval": "error", + "no-iterator": "error", + "no-lone-blocks": "error", + "no-loop-func": "error", + "no-new-object": "error", + "no-proto": "error", + "no-useless-catch": "error", + "one-var-declaration-per-line": "error", + "prefer-arrow-callback": "error", + "prefer-destructuring": "error", + "prefer-exponentiation-operator": "error", + "prefer-promise-reject-errors": "error", + "prefer-regex-literals": "error", + "prefer-spread": "error", + "prefer-template": "error", + "require-await": "error", "@typescript-eslint/adjacent-overload-signatures": "error", "@typescript-eslint/array-type": [ "error", @@ -95,22 +121,6 @@ module.exports = { allowTypedFunctionExpressions: false, }, ], - "@typescript-eslint/indent": [ - "error", - 4, - { - ObjectExpression: "first", - FunctionDeclaration: { - parameters: "first", - }, - FunctionExpression: { - parameters: "first", - }, - SwitchCase: 1, - flatTernaryExpressions: false, - ignoredNodes: [], - }, - ], "@typescript-eslint/naming-convention": [ "error", { @@ -176,7 +186,7 @@ module.exports = { "import/order": "error", indent: "off", "jsdoc/check-alignment": "error", - "jsdoc/check-indentation": "error", + "jsdoc/check-indentation": "off", "jsdoc/newline-after-description": "error", "max-classes-per-file": "off", "max-len": "off", @@ -245,6 +255,7 @@ module.exports = { "functional/no-method-signature": "error", "functional/no-mixed-type": "error", "functional/prefer-readonly-type": "error", + "no-unused-vars": ["error", { argsIgnorePattern: "^[_]+$" }], }, overrides: [ { @@ -252,6 +263,7 @@ module.exports = { rules: { "@typescript-eslint/no-unused-expressions": "off", "@typescript-eslint/dot-notation": "off", + "prefer-destructuring": "off", }, }, ], diff --git a/demo/74-nodejs-stream.ts b/demo/74-nodejs-stream.ts index 4dea1f7524..0a73bd0508 100644 --- a/demo/74-nodejs-stream.ts +++ b/demo/74-nodejs-stream.ts @@ -1,4 +1,4 @@ -// Simple example to add text to a document +// Exporting the document as a stream // Import from 'docx' rather than '../build' if you install from npm import * as fs from "fs"; import { Document, Packer, Paragraph, TextRun } from "../build"; @@ -26,6 +26,5 @@ const doc = new Document({ ], }); -Packer.toStream(doc).then((stream) => { - stream.pipe(fs.createWriteStream("My Document.docx")); -}); +const stream = Packer.toStream(doc); +stream.pipe(fs.createWriteStream("My Document.docx")); diff --git a/src/export/packer/next-compiler.spec.ts b/src/export/packer/next-compiler.spec.ts index 3cd56c211f..2daac3460a 100644 --- a/src/export/packer/next-compiler.spec.ts +++ b/src/export/packer/next-compiler.spec.ts @@ -25,7 +25,7 @@ describe("Compiler", () => { }); describe("#compile()", () => { - it("should pack all the content", async function () { + it("should pack all the content", function () { this.timeout(99999999); const file = new File({ sections: [], @@ -53,7 +53,7 @@ describe("Compiler", () => { expect(fileNames).to.include("_rels/.rels"); }); - it("should pack all additional headers and footers", async function () { + it("should pack all additional headers and footers", function () { const file = new File({ sections: [ { diff --git a/src/export/packer/packer.spec.ts b/src/export/packer/packer.spec.ts index 9dd5d55021..7055db1e06 100644 --- a/src/export/packer/packer.spec.ts +++ b/src/export/packer/packer.spec.ts @@ -54,7 +54,7 @@ describe("Packer", () => { assert.isTrue(buffer.byteLength > 0); }); - it("should handle exception if it throws any", async () => { + it("should handle exception if it throws any", () => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const compiler = stub((Packer as any).compiler, "compile"); @@ -139,7 +139,7 @@ describe("Packer", () => { const stream = await Packer.toStream(file); return new Promise((resolve, reject) => { stream.on("error", () => { - reject(); + reject(new Error()); }); stream.on("end", () => { @@ -148,7 +148,7 @@ describe("Packer", () => { }); }); - it("should handle exception if it throws any", async () => { + it("should handle exception if it throws any", () => { // eslint-disable-next-line @typescript-eslint/no-explicit-any const compiler = stub((Packer as any).compiler, "compile").callsFake(() => ({ // tslint:disable-next-line: no-empty @@ -160,9 +160,11 @@ describe("Packer", () => { })); compiler.throwsException(); - return Packer.toStream(file).catch((error) => { + try { + Packer.toStream(file); + } catch (error) { assert.isDefined(error); - }); + } }); afterEach(() => { diff --git a/src/export/packer/packer.ts b/src/export/packer/packer.ts index 9e230fda86..523d0226aa 100644 --- a/src/export/packer/packer.ts +++ b/src/export/packer/packer.ts @@ -58,7 +58,7 @@ export class Packer { return zipData; } - public static async toStream(file: File, prettify?: boolean | PrettifyType): Promise { + public static toStream(file: File, prettify?: boolean | PrettifyType): Stream { const zip = this.compiler.compile(file, prettify); const zipData = zip.generateNodeStream({ type: "nodebuffer", diff --git a/src/file/custom-properties/custom-properties.ts b/src/file/custom-properties/custom-properties.ts index 8c15db148f..c85a02ef74 100644 --- a/src/file/custom-properties/custom-properties.ts +++ b/src/file/custom-properties/custom-properties.ts @@ -33,6 +33,7 @@ export class CustomProperties extends XmlComponent { } public addCustomProperty(property: ICustomPropertyOptions): void { + // eslint-disable-next-line functional/immutable-data this.properties.push(new CustomProperty(this.nextId++, property)); } } diff --git a/src/file/file.ts b/src/file/file.ts index aa1b1c64e1..0f170d7d7f 100644 --- a/src/file/file.ts +++ b/src/file/file.ts @@ -37,13 +37,13 @@ export interface ISectionOptions { } export class File { - // eslint-disable-next-line functional/immutable-data + // eslint-disable-next-line functional/prefer-readonly-type private currentRelationshipId: number = 1; private readonly documentWrapper: DocumentWrapper; - // eslint-disable-next-line functional/immutable-data + // eslint-disable-next-line functional/prefer-readonly-type private readonly headers: IDocumentHeader[] = []; - // eslint-disable-next-line functional/immutable-data + // eslint-disable-next-line functional/prefer-readonly-type private readonly footers: IDocumentFooter[] = []; private readonly coreProperties: CoreProperties; private readonly numbering: Numbering; @@ -128,7 +128,7 @@ export class File { } if (options.footnotes) { - // tslint:disable-next-line: forin + // eslint-disable-next-line guard-for-in for (const key in options.footnotes) { this.footnotesWrapper.View.createFootNote(parseFloat(key), options.footnotes[key].children); } @@ -156,6 +156,7 @@ export class File { } private createHeader(header: Header): HeaderWrapper { + // eslint-disable-next-line functional/immutable-data const wrapper = new HeaderWrapper(this.media, this.currentRelationshipId++); for (const child of header.options.children) { @@ -167,6 +168,7 @@ export class File { } private createFooter(footer: Footer): FooterWrapper { + // eslint-disable-next-line functional/immutable-data const wrapper = new FooterWrapper(this.media, this.currentRelationshipId++); for (const child of footer.options.children) { @@ -178,6 +180,7 @@ export class File { } private addHeaderToDocument(header: HeaderWrapper, type: HeaderFooterReferenceType = HeaderFooterReferenceType.DEFAULT): void { + // eslint-disable-next-line functional/immutable-data this.headers.push({ header, type }); this.documentWrapper.Relationships.createRelationship( header.View.ReferenceId, @@ -188,6 +191,7 @@ export class File { } private addFooterToDocument(footer: FooterWrapper, type: HeaderFooterReferenceType = HeaderFooterReferenceType.DEFAULT): void { + // eslint-disable-next-line functional/immutable-data this.footers.push({ footer, type }); this.documentWrapper.Relationships.createRelationship( footer.View.ReferenceId, @@ -220,26 +224,31 @@ export class File { ); this.documentWrapper.Relationships.createRelationship( + // eslint-disable-next-line functional/immutable-data this.currentRelationshipId++, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles", "styles.xml", ); this.documentWrapper.Relationships.createRelationship( + // eslint-disable-next-line functional/immutable-data this.currentRelationshipId++, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/numbering", "numbering.xml", ); this.documentWrapper.Relationships.createRelationship( + // eslint-disable-next-line functional/immutable-data this.currentRelationshipId++, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/footnotes", "footnotes.xml", ); this.documentWrapper.Relationships.createRelationship( + // eslint-disable-next-line functional/immutable-data this.currentRelationshipId++, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/settings", "settings.xml", ); this.documentWrapper.Relationships.createRelationship( + // eslint-disable-next-line functional/immutable-data this.currentRelationshipId++, "http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments", "comments.xml", diff --git a/src/file/header.ts b/src/file/header.ts index d9dd2166f5..76f008ed76 100644 --- a/src/file/header.ts +++ b/src/file/header.ts @@ -6,13 +6,17 @@ export interface IHeaderOptions { } export class Header { - public constructor(public readonly options: IHeaderOptions = { children: [] }) { - // noop + public readonly options: IHeaderOptions; + + public constructor(options: IHeaderOptions = { children: [] }) { + this.options = options; } } export class Footer { - public constructor(public readonly options: IHeaderOptions = { children: [] }) { - // noop + public readonly options: IHeaderOptions; + + public constructor(options: IHeaderOptions = { children: [] }) { + this.options = options; } } diff --git a/src/file/media/media.spec.ts b/src/file/media/media.spec.ts index 79f6591888..9886fa811f 100644 --- a/src/file/media/media.spec.ts +++ b/src/file/media/media.spec.ts @@ -37,6 +37,7 @@ describe("Media", () => { }); it("should return UInt8Array if atob is present", () => { + // eslint-disable-next-line functional/immutable-data global.atob = () => "atob result"; const image = new Media().addMedia("", { @@ -45,11 +46,12 @@ describe("Media", () => { }); expect(image.stream).to.be.an.instanceof(Uint8Array); - // tslint:disable-next-line: no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any, functional/immutable-data (global as any).atob = undefined; }); it("should use data as is if its not a string", () => { + // eslint-disable-next-line functional/immutable-data global.atob = () => "atob result"; const image = new Media().addMedia(Buffer.from(""), { @@ -58,7 +60,7 @@ describe("Media", () => { }); expect(image.stream).to.be.an.instanceof(Uint8Array); - // tslint:disable-next-line: no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any, functional/immutable-data (global as any).atob = undefined; }); }); diff --git a/src/file/numbering/numbering.spec.ts b/src/file/numbering/numbering.spec.ts index fb81a17e2b..71540f8691 100644 --- a/src/file/numbering/numbering.spec.ts +++ b/src/file/numbering/numbering.spec.ts @@ -34,13 +34,14 @@ describe("Numbering", () => { .filter((el) => el["w:lvl"]) .forEach((el, ix) => { expect(Object.keys(el)).to.have.lengthOf(1); - expect(Object.keys(el["w:lvl"]).sort()).to.deep.equal(["_attr", "w:start", "w:lvlJc", "w:numFmt", "w:pPr", "w:rPr"]); + expect(Object.keys(el["w:lvl"])).to.deep.equal(["_attr", "w:start", "w:lvlJc", "w:numFmt", "w:pPr", "w:rPr"]); expect(el["w:lvl"]).to.have.deep.members([ { _attr: { "w:ilvl": ix, "w15:tentative": 1 } }, { "w:start": [{ _attr: { "w:val": 1 } }] }, { "w:lvlJc": [{ _attr: { "w:val": "left" } }] }, { "w:numFmt": [{ _attr: { "w:val": "bullet" } }] }, ]); + // TODO // Once chai 4.0.0 lands and #644 is resolved, we can add the following to the test: // {"w:lvlText": {"_attr": {"w:val": "•"}}}, // {"w:rPr": [{"w:rFonts": {"_attr": {"w:ascii": "Symbol", "w:cs": "Symbol", "w:eastAsia": "Symbol", "w:hAnsi": "Symbol", "w:hint": "default"}}}]}, diff --git a/src/file/paragraph/run/image-run.spec.ts b/src/file/paragraph/run/image-run.spec.ts index 7887d4b0cd..c59ddd1ff4 100644 --- a/src/file/paragraph/run/image-run.spec.ts +++ b/src/file/paragraph/run/image-run.spec.ts @@ -771,7 +771,7 @@ describe("ImageRun", () => { ], }); - // tslint:disable-next-line: no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any, functional/immutable-data (global as any).atob = undefined; }); @@ -1028,7 +1028,7 @@ describe("ImageRun", () => { ], }); - // tslint:disable-next-line: no-any + // eslint-disable-next-line @typescript-eslint/no-explicit-any, functional/immutable-data (global as any).atob = undefined; }); }); diff --git a/src/file/xml-components/imported-xml-component.ts b/src/file/xml-components/imported-xml-component.ts index 5385e8a9b6..aad5719f52 100644 --- a/src/file/xml-components/imported-xml-component.ts +++ b/src/file/xml-components/imported-xml-component.ts @@ -1,4 +1,3 @@ -// eslint-disable @typescript-eslint/no-explicit-any import { Element as XmlElement, xml2js } from "xml-js"; import { IXmlableObject, XmlAttributeComponent, XmlComponent } from "@file/xml-components"; @@ -15,7 +14,9 @@ export const convertToXmlComponent = (element: XmlElement): ImportedXmlComponent switch (element.type) { case undefined: case "element": + // eslint-disable-next-line no-case-declarations const xmlComponent = new ImportedXmlComponent(element.name as string, element.attributes); + // eslint-disable-next-line no-case-declarations const childElements = element.elements || []; for (const childElm of childElements) { const child = convertToXmlComponent(childElm); @@ -31,6 +32,7 @@ export const convertToXmlComponent = (element: XmlElement): ImportedXmlComponent } }; +// eslint-disable-next-line @typescript-eslint/no-explicit-any class ImportedXmlComponentAttributes extends XmlAttributeComponent { // noop } @@ -54,7 +56,7 @@ export class ImportedXmlComponent extends XmlComponent { * @param importedContent xml content of the imported component */ - // tslint:disable-next-line:variable-name + // eslint-disable-next-line @typescript-eslint/no-explicit-any public constructor(rootKey: string, _attr?: any) { super(rootKey); if (_attr) { @@ -71,7 +73,7 @@ export class ImportedXmlComponent extends XmlComponent { * Used for the attributes of root element that is being imported. */ export class ImportedRootElementAttributes extends XmlComponent { - // tslint:disable-next-line:variable-name + // eslint-disable-next-line @typescript-eslint/no-explicit-any public constructor(private readonly _attr: any) { super(""); } diff --git a/src/util/values.ts b/src/util/values.ts index fa666bd084..f44e2eb1d9 100644 --- a/src/util/values.ts +++ b/src/util/values.ts @@ -32,7 +32,7 @@ export const unsignedDecimalNumber = (val: number): number => { // http://www.datypic.com/sc/xsd/t-xsd_hexBinary.html const hexBinary = (val: string, length: number): string => { const expectedLength = length * 2; - if (val.length !== expectedLength || isNaN(Number("0x" + val))) { + if (val.length !== expectedLength || isNaN(Number(`0x${val}`))) { throw new Error(`Invalid hex value '${val}'. Expected ${expectedLength} digit hex value`); } return val; From 0ac23d0646e069c11cb1bbb407a0ee62f7c0e77c Mon Sep 17 00:00:00 2001 From: Dolan Miu Date: Thu, 22 Sep 2022 07:19:14 +0100 Subject: [PATCH 5/5] Add tests and bump coverage --- .nycrc | 6 +- .../properties/columns.spec.ts | 7 +++ src/file/file.spec.ts | 55 +++++++++++++++++++ 3 files changed, 65 insertions(+), 3 deletions(-) diff --git a/.nycrc b/.nycrc index 2d0c37e9f9..87728e5edb 100644 --- a/.nycrc +++ b/.nycrc @@ -1,9 +1,9 @@ { "check-coverage": true, - "statements": 99.62, - "branches": 96.81, + "statements": 99.72, + "branches": 97.95, "functions": 99.82, - "lines": 99.62, + "lines": 99.71, "include": [ "src/**/*.ts" ], diff --git a/src/file/document/body/section-properties/properties/columns.spec.ts b/src/file/document/body/section-properties/properties/columns.spec.ts index c301d4efeb..8f0bcdd655 100644 --- a/src/file/document/body/section-properties/properties/columns.spec.ts +++ b/src/file/document/body/section-properties/properties/columns.spec.ts @@ -13,6 +13,13 @@ describe("Columns", () => { expect(tree["w:cols"]).to.deep.equal({ _attr: { "w:num": 3, "w:space": 720 } }); }); + it("should create set space and count to undefined if they are undefined", () => { + const columns = new Columns({}); + const tree = new Formatter().format(columns); + + expect(tree["w:cols"]).to.deep.equal({ _attr: {} }); + }); + it("should ignore individual column attributes if equalWidth is true", () => { const unequalColumns = [new Column({ width: 1000, space: 400 }), new Column({ width: 2000 })]; const columns = new Columns({ count: 3, space: 720, equalWidth: true, children: unequalColumns }); diff --git a/src/file/file.spec.ts b/src/file/file.spec.ts index b0d9278b18..bc9f554af6 100644 --- a/src/file/file.spec.ts +++ b/src/file/file.spec.ts @@ -6,6 +6,7 @@ import { sectionMarginDefaults, sectionPageSizeDefaults } from "./document"; import { File } from "./file"; import { Footer, Header } from "./header"; import { Paragraph } from "./paragraph"; +import { Media } from "./media"; const PAGE_SIZE_DEFAULTS = { "w:h": sectionPageSizeDefaults.HEIGHT, @@ -411,4 +412,58 @@ describe("File", () => { expect(doc.Numbering).to.not.be.undefined; }); }); + + describe("#getters", () => { + it("should have defined getters", () => { + const doc = new File({ + sections: [], + }); + + expect(doc.CoreProperties).to.not.be.undefined; + expect(doc.Media).to.not.be.undefined; + expect(doc.FileRelationships).to.not.be.undefined; + expect(doc.Headers).to.not.be.undefined; + expect(doc.Footers).to.not.be.undefined; + expect(doc.ContentTypes).to.not.be.undefined; + expect(doc.CustomProperties).to.not.be.undefined; + expect(doc.AppProperties).to.not.be.undefined; + expect(doc.FootNotes).to.not.be.undefined; + expect(doc.Settings).to.not.be.undefined; + expect(doc.Comments).to.not.be.undefined; + }); + }); + + describe("#templates", () => { + // Test will be deprecated when import-dotx and templates are deprecated + it("should work with template", () => { + const doc = new File( + { + sections: [], + }, + { + template: { + currentRelationshipId: 1, + headers: [], + footers: [], + styles: "", + titlePageIsDefined: true, + media: new Media(), + }, + }, + ); + + expect(doc).to.not.be.undefined; + }); + }); + + describe("#externalStyles", () => { + it("should work with external styles", () => { + const doc = new File({ + sections: [], + externalStyles: "", + }); + + expect(doc.Styles).to.not.be.undefined; + }); + }); });