@platformos/platformos-check-common 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/README.md +92 -0
- package/dist/AugmentedThemeDocset.d.ts +12 -0
- package/dist/AugmentedThemeDocset.js +126 -0
- package/dist/AugmentedThemeDocset.js.map +1 -0
- package/dist/JSONValidator.d.ts +20 -0
- package/dist/JSONValidator.js +76 -0
- package/dist/JSONValidator.js.map +1 -0
- package/dist/checks/app-block-missing-schema/index.d.ts +2 -0
- package/dist/checks/app-block-missing-schema/index.js +46 -0
- package/dist/checks/app-block-missing-schema/index.js.map +1 -0
- package/dist/checks/app-block-valid-tags/index.d.ts +10 -0
- package/dist/checks/app-block-valid-tags/index.js +49 -0
- package/dist/checks/app-block-valid-tags/index.js.map +1 -0
- package/dist/checks/asset-preload/index.d.ts +2 -0
- package/dist/checks/asset-preload/index.js +56 -0
- package/dist/checks/asset-preload/index.js.map +1 -0
- package/dist/checks/asset-size-app-block-css/index.d.ts +6 -0
- package/dist/checks/asset-size-app-block-css/index.js +64 -0
- package/dist/checks/asset-size-app-block-css/index.js.map +1 -0
- package/dist/checks/asset-size-app-block-javascript/index.d.ts +6 -0
- package/dist/checks/asset-size-app-block-javascript/index.js +64 -0
- package/dist/checks/asset-size-app-block-javascript/index.js.map +1 -0
- package/dist/checks/asset-size-css/index.d.ts +6 -0
- package/dist/checks/asset-size-css/index.js +125 -0
- package/dist/checks/asset-size-css/index.js.map +1 -0
- package/dist/checks/asset-size-javascript/index.d.ts +6 -0
- package/dist/checks/asset-size-javascript/index.js +110 -0
- package/dist/checks/asset-size-javascript/index.js.map +1 -0
- package/dist/checks/block-id-usage/index.d.ts +2 -0
- package/dist/checks/block-id-usage/index.js +60 -0
- package/dist/checks/block-id-usage/index.js.map +1 -0
- package/dist/checks/cdn-preconnect/index.d.ts +2 -0
- package/dist/checks/cdn-preconnect/index.js +44 -0
- package/dist/checks/cdn-preconnect/index.js.map +1 -0
- package/dist/checks/content-for-header-modification/index.d.ts +2 -0
- package/dist/checks/content-for-header-modification/index.js +66 -0
- package/dist/checks/content-for-header-modification/index.js.map +1 -0
- package/dist/checks/deprecate-bgsizes/index.d.ts +2 -0
- package/dist/checks/deprecate-bgsizes/index.js +46 -0
- package/dist/checks/deprecate-bgsizes/index.js.map +1 -0
- package/dist/checks/deprecate-lazysizes/index.d.ts +2 -0
- package/dist/checks/deprecate-lazysizes/index.js +52 -0
- package/dist/checks/deprecate-lazysizes/index.js.map +1 -0
- package/dist/checks/deprecated-filter/fixes.d.ts +8 -0
- package/dist/checks/deprecated-filter/fixes.js +205 -0
- package/dist/checks/deprecated-filter/fixes.js.map +1 -0
- package/dist/checks/deprecated-filter/index.d.ts +2 -0
- package/dist/checks/deprecated-filter/index.js +93 -0
- package/dist/checks/deprecated-filter/index.js.map +1 -0
- package/dist/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.d.ts +1 -0
- package/dist/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.js +1347 -0
- package/dist/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.js.map +1 -0
- package/dist/checks/deprecated-fonts-on-sections-and-blocks/index.d.ts +2 -0
- package/dist/checks/deprecated-fonts-on-sections-and-blocks/index.js +156 -0
- package/dist/checks/deprecated-fonts-on-sections-and-blocks/index.js.map +1 -0
- package/dist/checks/deprecated-fonts-on-settings-schema/index.d.ts +2 -0
- package/dist/checks/deprecated-fonts-on-settings-schema/index.js +56 -0
- package/dist/checks/deprecated-fonts-on-settings-schema/index.js.map +1 -0
- package/dist/checks/deprecated-tag/index.d.ts +2 -0
- package/dist/checks/deprecated-tag/index.js +48 -0
- package/dist/checks/deprecated-tag/index.js.map +1 -0
- package/dist/checks/duplicate-content-for-arguments/index.d.ts +2 -0
- package/dist/checks/duplicate-content-for-arguments/index.js +39 -0
- package/dist/checks/duplicate-content-for-arguments/index.js.map +1 -0
- package/dist/checks/duplicate-function-arguments/index.d.ts +2 -0
- package/dist/checks/duplicate-function-arguments/index.js +40 -0
- package/dist/checks/duplicate-function-arguments/index.js.map +1 -0
- package/dist/checks/duplicate-render-partial-arguments/index.d.ts +2 -0
- package/dist/checks/duplicate-render-partial-arguments/index.js +43 -0
- package/dist/checks/duplicate-render-partial-arguments/index.js.map +1 -0
- package/dist/checks/empty-block-content/index.d.ts +2 -0
- package/dist/checks/empty-block-content/index.js +60 -0
- package/dist/checks/empty-block-content/index.js.map +1 -0
- package/dist/checks/graphql/index.d.ts +2 -0
- package/dist/checks/graphql/index.js +58 -0
- package/dist/checks/graphql/index.js.map +1 -0
- package/dist/checks/graphql-variables/index.d.ts +8 -0
- package/dist/checks/graphql-variables/index.js +91 -0
- package/dist/checks/graphql-variables/index.js.map +1 -0
- package/dist/checks/hardcoded-routes/index.d.ts +2 -0
- package/dist/checks/hardcoded-routes/index.js +89 -0
- package/dist/checks/hardcoded-routes/index.js.map +1 -0
- package/dist/checks/img-width-and-height/index.d.ts +2 -0
- package/dist/checks/img-width-and-height/index.js +46 -0
- package/dist/checks/img-width-and-height/index.js.map +1 -0
- package/dist/checks/index.d.ts +8 -0
- package/dist/checks/index.js +154 -0
- package/dist/checks/index.js.map +1 -0
- package/dist/checks/invalid-hash-assign-target/index.d.ts +2 -0
- package/dist/checks/invalid-hash-assign-target/index.js +252 -0
- package/dist/checks/invalid-hash-assign-target/index.js.map +1 -0
- package/dist/checks/json-missing-block/index.d.ts +2 -0
- package/dist/checks/json-missing-block/index.js +48 -0
- package/dist/checks/json-missing-block/index.js.map +1 -0
- package/dist/checks/json-missing-block/missing-block-utils.d.ts +4 -0
- package/dist/checks/json-missing-block/missing-block-utils.js +87 -0
- package/dist/checks/json-missing-block/missing-block-utils.js.map +1 -0
- package/dist/checks/json-syntax-error/index.d.ts +2 -0
- package/dist/checks/json-syntax-error/index.js +92 -0
- package/dist/checks/json-syntax-error/index.js.map +1 -0
- package/dist/checks/liquid-free-settings/index.d.ts +2 -0
- package/dist/checks/liquid-free-settings/index.js +64 -0
- package/dist/checks/liquid-free-settings/index.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidBooleanExpressions.d.ts +3 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidBooleanExpressions.js +23 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidBooleanExpressions.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.d.ts +3 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.js +136 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.d.ts +3 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.js +26 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidEchoValue.d.ts +3 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidEchoValue.js +59 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidEchoValue.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidFilterName.d.ts +3 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidFilterName.js +66 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidFilterName.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.d.ts +3 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.js +73 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopRange.d.ts +4 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopRange.js +54 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopRange.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.d.ts +3 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.js +71 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/MultipleAssignValues.d.ts +3 -0
- package/dist/checks/liquid-html-syntax-error/checks/MultipleAssignValues.js +69 -0
- package/dist/checks/liquid-html-syntax-error/checks/MultipleAssignValues.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/utils.d.ts +15 -0
- package/dist/checks/liquid-html-syntax-error/checks/utils.js +58 -0
- package/dist/checks/liquid-html-syntax-error/checks/utils.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/index.d.ts +2 -0
- package/dist/checks/liquid-html-syntax-error/index.js +131 -0
- package/dist/checks/liquid-html-syntax-error/index.js.map +1 -0
- package/dist/checks/matching-translations/index.d.ts +2 -0
- package/dist/checks/matching-translations/index.js +146 -0
- package/dist/checks/matching-translations/index.js.map +1 -0
- package/dist/checks/metadata-params/index.d.ts +2 -0
- package/dist/checks/metadata-params/index.js +96 -0
- package/dist/checks/metadata-params/index.js.map +1 -0
- package/dist/checks/missing-asset/index.d.ts +2 -0
- package/dist/checks/missing-asset/index.js +44 -0
- package/dist/checks/missing-asset/index.js.map +1 -0
- package/dist/checks/missing-content-for-arguments/index.d.ts +2 -0
- package/dist/checks/missing-content-for-arguments/index.js +36 -0
- package/dist/checks/missing-content-for-arguments/index.js.map +1 -0
- package/dist/checks/missing-template/index.d.ts +6 -0
- package/dist/checks/missing-template/index.js +70 -0
- package/dist/checks/missing-template/index.js.map +1 -0
- package/dist/checks/orphaned-partial/index.d.ts +2 -0
- package/dist/checks/orphaned-partial/index.js +42 -0
- package/dist/checks/orphaned-partial/index.js.map +1 -0
- package/dist/checks/pagination-size/index.d.ts +7 -0
- package/dist/checks/pagination-size/index.js +89 -0
- package/dist/checks/pagination-size/index.js.map +1 -0
- package/dist/checks/parser-blocking-script/index.d.ts +2 -0
- package/dist/checks/parser-blocking-script/index.js +81 -0
- package/dist/checks/parser-blocking-script/index.js.map +1 -0
- package/dist/checks/parser-blocking-script/suggestions.d.ts +4 -0
- package/dist/checks/parser-blocking-script/suggestions.js +22 -0
- package/dist/checks/parser-blocking-script/suggestions.js.map +1 -0
- package/dist/checks/remote-asset/index.d.ts +6 -0
- package/dist/checks/remote-asset/index.js +189 -0
- package/dist/checks/remote-asset/index.js.map +1 -0
- package/dist/checks/reserved-doc-param-names/index.d.ts +2 -0
- package/dist/checks/reserved-doc-param-names/index.js +46 -0
- package/dist/checks/reserved-doc-param-names/index.js.map +1 -0
- package/dist/checks/schema-presets-block-order/index.d.ts +2 -0
- package/dist/checks/schema-presets-block-order/index.js +108 -0
- package/dist/checks/schema-presets-block-order/index.js.map +1 -0
- package/dist/checks/schema-presets-static-blocks/index.d.ts +2 -0
- package/dist/checks/schema-presets-static-blocks/index.js +109 -0
- package/dist/checks/schema-presets-static-blocks/index.js.map +1 -0
- package/dist/checks/static-stylesheet-and-javascript-tags/index.d.ts +2 -0
- package/dist/checks/static-stylesheet-and-javascript-tags/index.js +42 -0
- package/dist/checks/static-stylesheet-and-javascript-tags/index.js.map +1 -0
- package/dist/checks/translation-key-exists/index.d.ts +2 -0
- package/dist/checks/translation-key-exists/index.js +67 -0
- package/dist/checks/translation-key-exists/index.js.map +1 -0
- package/dist/checks/unclosed-html-element/index.d.ts +2 -0
- package/dist/checks/unclosed-html-element/index.js +252 -0
- package/dist/checks/unclosed-html-element/index.js.map +1 -0
- package/dist/checks/undefined-object/index.d.ts +2 -0
- package/dist/checks/undefined-object/index.js +255 -0
- package/dist/checks/undefined-object/index.js.map +1 -0
- package/dist/checks/unique-doc-param-names/index.d.ts +2 -0
- package/dist/checks/unique-doc-param-names/index.js +37 -0
- package/dist/checks/unique-doc-param-names/index.js.map +1 -0
- package/dist/checks/unique-settings-id/index.d.ts +2 -0
- package/dist/checks/unique-settings-id/index.js +69 -0
- package/dist/checks/unique-settings-id/index.js.map +1 -0
- package/dist/checks/unique-settings-id/test-data.d.ts +2 -0
- package/dist/checks/unique-settings-id/test-data.js +1194 -0
- package/dist/checks/unique-settings-id/test-data.js.map +1 -0
- package/dist/checks/unique-static-block-id/index.d.ts +2 -0
- package/dist/checks/unique-static-block-id/index.js +56 -0
- package/dist/checks/unique-static-block-id/index.js.map +1 -0
- package/dist/checks/unknown-filter/index.d.ts +2 -0
- package/dist/checks/unknown-filter/index.js +38 -0
- package/dist/checks/unknown-filter/index.js.map +1 -0
- package/dist/checks/unknown-property/index.d.ts +2 -0
- package/dist/checks/unknown-property/index.js +361 -0
- package/dist/checks/unknown-property/index.js.map +1 -0
- package/dist/checks/unknown-property/property-shape.d.ts +41 -0
- package/dist/checks/unknown-property/property-shape.js +267 -0
- package/dist/checks/unknown-property/property-shape.js.map +1 -0
- package/dist/checks/unrecognized-content-for-arguments/index.d.ts +2 -0
- package/dist/checks/unrecognized-content-for-arguments/index.js +43 -0
- package/dist/checks/unrecognized-content-for-arguments/index.js.map +1 -0
- package/dist/checks/unrecognized-render-partial-arguments/index.d.ts +2 -0
- package/dist/checks/unrecognized-render-partial-arguments/index.js +59 -0
- package/dist/checks/unrecognized-render-partial-arguments/index.js.map +1 -0
- package/dist/checks/unused-assign/index.d.ts +2 -0
- package/dist/checks/unused-assign/index.js +77 -0
- package/dist/checks/unused-assign/index.js.map +1 -0
- package/dist/checks/unused-doc-param/index.d.ts +2 -0
- package/dist/checks/unused-doc-param/index.js +55 -0
- package/dist/checks/unused-doc-param/index.js.map +1 -0
- package/dist/checks/utils.d.ts +22 -0
- package/dist/checks/utils.js +74 -0
- package/dist/checks/utils.js.map +1 -0
- package/dist/checks/valid-block-target/index.d.ts +2 -0
- package/dist/checks/valid-block-target/index.js +99 -0
- package/dist/checks/valid-block-target/index.js.map +1 -0
- package/dist/checks/valid-content-for-argument-types/index.d.ts +2 -0
- package/dist/checks/valid-content-for-argument-types/index.js +35 -0
- package/dist/checks/valid-content-for-argument-types/index.js.map +1 -0
- package/dist/checks/valid-content-for-arguments/index.d.ts +2 -0
- package/dist/checks/valid-content-for-arguments/index.js +82 -0
- package/dist/checks/valid-content-for-arguments/index.js.map +1 -0
- package/dist/checks/valid-doc-param-types/index.d.ts +2 -0
- package/dist/checks/valid-doc-param-types/index.js +61 -0
- package/dist/checks/valid-doc-param-types/index.js.map +1 -0
- package/dist/checks/valid-html-translation/index.d.ts +2 -0
- package/dist/checks/valid-html-translation/index.js +46 -0
- package/dist/checks/valid-html-translation/index.js.map +1 -0
- package/dist/checks/valid-json/index.d.ts +2 -0
- package/dist/checks/valid-json/index.js +36 -0
- package/dist/checks/valid-json/index.js.map +1 -0
- package/dist/checks/valid-local-blocks/index.d.ts +2 -0
- package/dist/checks/valid-local-blocks/index.js +66 -0
- package/dist/checks/valid-local-blocks/index.js.map +1 -0
- package/dist/checks/valid-local-blocks/valid-block-utils.d.ts +13 -0
- package/dist/checks/valid-local-blocks/valid-block-utils.js +74 -0
- package/dist/checks/valid-local-blocks/valid-block-utils.js.map +1 -0
- package/dist/checks/valid-render-partial-argument-types/index.d.ts +2 -0
- package/dist/checks/valid-render-partial-argument-types/index.js +66 -0
- package/dist/checks/valid-render-partial-argument-types/index.js.map +1 -0
- package/dist/checks/valid-schema/index.d.ts +2 -0
- package/dist/checks/valid-schema/index.js +40 -0
- package/dist/checks/valid-schema/index.js.map +1 -0
- package/dist/checks/valid-schema-name/index.d.ts +2 -0
- package/dist/checks/valid-schema-name/index.js +74 -0
- package/dist/checks/valid-schema-name/index.js.map +1 -0
- package/dist/checks/valid-settings-key/index.d.ts +2 -0
- package/dist/checks/valid-settings-key/index.js +90 -0
- package/dist/checks/valid-settings-key/index.js.map +1 -0
- package/dist/checks/valid-static-block-type/index.d.ts +2 -0
- package/dist/checks/valid-static-block-type/index.js +54 -0
- package/dist/checks/valid-static-block-type/index.js.map +1 -0
- package/dist/checks/valid-visible-if/index.d.ts +3 -0
- package/dist/checks/valid-visible-if/index.js +146 -0
- package/dist/checks/valid-visible-if/index.js.map +1 -0
- package/dist/checks/valid-visible-if/visible-if-utils.d.ts +14 -0
- package/dist/checks/valid-visible-if/visible-if-utils.js +125 -0
- package/dist/checks/valid-visible-if/visible-if-utils.js.map +1 -0
- package/dist/checks/variable-name/index.d.ts +6 -0
- package/dist/checks/variable-name/index.js +93 -0
- package/dist/checks/variable-name/index.js.map +1 -0
- package/dist/context-utils.d.ts +15 -0
- package/dist/context-utils.js +185 -0
- package/dist/context-utils.js.map +1 -0
- package/dist/create-safe-check.d.ts +2 -0
- package/dist/create-safe-check.js +15 -0
- package/dist/create-safe-check.js.map +1 -0
- package/dist/disabled-checks/index.d.ts +7 -0
- package/dist/disabled-checks/index.js +145 -0
- package/dist/disabled-checks/index.js.map +1 -0
- package/dist/disabled-checks/test-checks.d.ts +3 -0
- package/dist/disabled-checks/test-checks.js +59 -0
- package/dist/disabled-checks/test-checks.js.map +1 -0
- package/dist/doc-generator/DocBlockGenerator.d.ts +16 -0
- package/dist/doc-generator/DocBlockGenerator.js +464 -0
- package/dist/doc-generator/DocBlockGenerator.js.map +1 -0
- package/dist/doc-generator/index.d.ts +1 -0
- package/dist/doc-generator/index.js +6 -0
- package/dist/doc-generator/index.js.map +1 -0
- package/dist/find-root.d.ts +18 -0
- package/dist/find-root.js +81 -0
- package/dist/find-root.js.map +1 -0
- package/dist/fixes/apply-fix-to-string.d.ts +2 -0
- package/dist/fixes/apply-fix-to-string.js +50 -0
- package/dist/fixes/apply-fix-to-string.js.map +1 -0
- package/dist/fixes/autofix.d.ts +9 -0
- package/dist/fixes/autofix.js +30 -0
- package/dist/fixes/autofix.js.map +1 -0
- package/dist/fixes/corrector.d.ts +0 -0
- package/dist/fixes/corrector.js +2 -0
- package/dist/fixes/corrector.js.map +1 -0
- package/dist/fixes/correctors/base-corrector.d.ts +4 -0
- package/dist/fixes/correctors/base-corrector.js +3 -0
- package/dist/fixes/correctors/base-corrector.js.map +1 -0
- package/dist/fixes/correctors/graphql-corrector.d.ts +56 -0
- package/dist/fixes/correctors/graphql-corrector.js +78 -0
- package/dist/fixes/correctors/graphql-corrector.js.map +1 -0
- package/dist/fixes/correctors/index.d.ts +6 -0
- package/dist/fixes/correctors/index.js +30 -0
- package/dist/fixes/correctors/index.js.map +1 -0
- package/dist/fixes/correctors/json-corrector.d.ts +39 -0
- package/dist/fixes/correctors/json-corrector.js +86 -0
- package/dist/fixes/correctors/json-corrector.js.map +1 -0
- package/dist/fixes/correctors/string-corrector.d.ts +56 -0
- package/dist/fixes/correctors/string-corrector.js +78 -0
- package/dist/fixes/correctors/string-corrector.js.map +1 -0
- package/dist/fixes/index.d.ts +4 -0
- package/dist/fixes/index.js +14 -0
- package/dist/fixes/index.js.map +1 -0
- package/dist/fixes/utils.d.ts +2 -0
- package/dist/fixes/utils.js +9 -0
- package/dist/fixes/utils.js.map +1 -0
- package/dist/ignore.d.ts +2 -0
- package/dist/ignore.js +20 -0
- package/dist/ignore.js.map +1 -0
- package/dist/index.d.ts +23 -0
- package/dist/index.js +211 -0
- package/dist/index.js.map +1 -0
- package/dist/json.d.ts +17 -0
- package/dist/json.js +79 -0
- package/dist/json.js.map +1 -0
- package/dist/jsonc/parse.d.ts +25 -0
- package/dist/jsonc/parse.js +101 -0
- package/dist/jsonc/parse.js.map +1 -0
- package/dist/jsonc/types.d.ts +37 -0
- package/dist/jsonc/types.js +3 -0
- package/dist/jsonc/types.js.map +1 -0
- package/dist/liquid-doc/arguments.d.ts +36 -0
- package/dist/liquid-doc/arguments.js +239 -0
- package/dist/liquid-doc/arguments.js.map +1 -0
- package/dist/liquid-doc/liquidDoc.d.ts +33 -0
- package/dist/liquid-doc/liquidDoc.js +94 -0
- package/dist/liquid-doc/liquidDoc.js.map +1 -0
- package/dist/liquid-doc/utils.d.ts +49 -0
- package/dist/liquid-doc/utils.js +119 -0
- package/dist/liquid-doc/utils.js.map +1 -0
- package/dist/path.d.ts +10 -0
- package/dist/path.js +47 -0
- package/dist/path.js.map +1 -0
- package/dist/tags/content-for.d.ts +3 -0
- package/dist/tags/content-for.js +27 -0
- package/dist/tags/content-for.js.map +1 -0
- package/dist/test/MockFileSystem.d.ts +12 -0
- package/dist/test/MockFileSystem.js +109 -0
- package/dist/test/MockFileSystem.js.map +1 -0
- package/dist/test/MockTheme.d.ts +16 -0
- package/dist/test/MockTheme.js +16 -0
- package/dist/test/MockTheme.js.map +1 -0
- package/dist/test/chai-offer-fix-assertion.d.ts +22 -0
- package/dist/test/chai-offer-fix-assertion.js +20 -0
- package/dist/test/chai-offer-fix-assertion.js.map +1 -0
- package/dist/test/chai-suggest-assertion.d.ts +22 -0
- package/dist/test/chai-suggest-assertion.js +29 -0
- package/dist/test/chai-suggest-assertion.js.map +1 -0
- package/dist/test/contain-offense.d.ts +12 -0
- package/dist/test/contain-offense.js +36 -0
- package/dist/test/contain-offense.js.map +1 -0
- package/dist/test/index.d.ts +3 -0
- package/dist/test/index.js +20 -0
- package/dist/test/index.js.map +1 -0
- package/dist/test/test-helper.d.ts +14 -0
- package/dist/test/test-helper.js +289 -0
- package/dist/test/test-helper.js.map +1 -0
- package/dist/test/test-setup.d.ts +9 -0
- package/dist/test/test-setup.js +26 -0
- package/dist/test/test-setup.js.map +1 -0
- package/dist/to-schema.d.ts +16 -0
- package/dist/to-schema.js +218 -0
- package/dist/to-schema.js.map +1 -0
- package/dist/to-source-code.d.ts +5 -0
- package/dist/to-source-code.js +103 -0
- package/dist/to-source-code.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/schema-prop-factory.d.ts +76 -0
- package/dist/types/schema-prop-factory.js +84 -0
- package/dist/types/schema-prop-factory.js.map +1 -0
- package/dist/types/schemas/index.d.ts +5 -0
- package/dist/types/schemas/index.js +6 -0
- package/dist/types/schemas/index.js.map +1 -0
- package/dist/types/schemas/preset.d.ts +38 -0
- package/dist/types/schemas/preset.js +3 -0
- package/dist/types/schemas/preset.js.map +1 -0
- package/dist/types/schemas/section.d.ts +49 -0
- package/dist/types/schemas/section.js +3 -0
- package/dist/types/schemas/section.js.map +1 -0
- package/dist/types/schemas/setting.d.ts +216 -0
- package/dist/types/schemas/setting.js +3 -0
- package/dist/types/schemas/setting.js.map +1 -0
- package/dist/types/schemas/template.d.ts +30 -0
- package/dist/types/schemas/template.js +3 -0
- package/dist/types/schemas/template.js.map +1 -0
- package/dist/types/schemas/theme-block.d.ts +24 -0
- package/dist/types/schemas/theme-block.js +3 -0
- package/dist/types/schemas/theme-block.js.map +1 -0
- package/dist/types/theme-liquid-docs.d.ts +131 -0
- package/dist/types/theme-liquid-docs.js +3 -0
- package/dist/types/theme-liquid-docs.js.map +1 -0
- package/dist/types/theme-schemas.d.ts +70 -0
- package/dist/types/theme-schemas.js +25 -0
- package/dist/types/theme-schemas.js.map +1 -0
- package/dist/types.d.ts +469 -0
- package/dist/types.js +55 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/array.d.ts +5 -0
- package/dist/utils/array.js +28 -0
- package/dist/utils/array.js.map +1 -0
- package/dist/utils/block.d.ts +22 -0
- package/dist/utils/block.js +179 -0
- package/dist/utils/block.js.map +1 -0
- package/dist/utils/error.d.ts +2 -0
- package/dist/utils/error.js +44 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/file-utils.d.ts +6 -0
- package/dist/utils/file-utils.js +46 -0
- package/dist/utils/file-utils.js.map +1 -0
- package/dist/utils/index.d.ts +8 -0
- package/dist/utils/index.js +25 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/indexBy.d.ts +5 -0
- package/dist/utils/indexBy.js +15 -0
- package/dist/utils/indexBy.js.map +1 -0
- package/dist/utils/markup.d.ts +2 -0
- package/dist/utils/markup.js +10 -0
- package/dist/utils/markup.js.map +1 -0
- package/dist/utils/memo.d.ts +34 -0
- package/dist/utils/memo.js +61 -0
- package/dist/utils/memo.js.map +1 -0
- package/dist/utils/object.d.ts +1 -0
- package/dist/utils/object.js +7 -0
- package/dist/utils/object.js.map +1 -0
- package/dist/utils/position.d.ts +3 -0
- package/dist/utils/position.js +20 -0
- package/dist/utils/position.js.map +1 -0
- package/dist/utils/types.d.ts +52 -0
- package/dist/utils/types.js +23 -0
- package/dist/utils/types.js.map +1 -0
- package/dist/visitor.d.ts +24 -0
- package/dist/visitor.js +119 -0
- package/dist/visitor.js.map +1 -0
- package/dist/visitors/index.d.ts +2 -0
- package/dist/visitors/index.js +8 -0
- package/dist/visitors/index.js.map +1 -0
- package/dist/visitors/json.d.ts +2 -0
- package/dist/visitors/json.js +39 -0
- package/dist/visitors/json.js.map +1 -0
- package/dist/visitors/liquid.d.ts +2 -0
- package/dist/visitors/liquid.js +39 -0
- package/dist/visitors/liquid.js.map +1 -0
- package/package.json +45 -0
- package/src/AugmentedThemeDocset.spec.ts +148 -0
- package/src/AugmentedThemeDocset.ts +148 -0
- package/src/JSONValidator.ts +82 -0
- package/src/checks/app-block-missing-schema/index.spec.ts +121 -0
- package/src/checks/app-block-missing-schema/index.ts +46 -0
- package/src/checks/app-block-valid-tags/index.spec.ts +96 -0
- package/src/checks/app-block-valid-tags/index.ts +54 -0
- package/src/checks/asset-preload/index.spec.ts +78 -0
- package/src/checks/asset-preload/index.ts +65 -0
- package/src/checks/asset-size-app-block-css/index.spec.ts +88 -0
- package/src/checks/asset-size-app-block-css/index.ts +78 -0
- package/src/checks/asset-size-app-block-javascript/index.spec.ts +66 -0
- package/src/checks/asset-size-app-block-javascript/index.ts +78 -0
- package/src/checks/asset-size-css/index.spec.ts +166 -0
- package/src/checks/asset-size-css/index.ts +160 -0
- package/src/checks/asset-size-javascript/index.spec.ts +184 -0
- package/src/checks/asset-size-javascript/index.ts +144 -0
- package/src/checks/block-id-usage/index.spec.ts +76 -0
- package/src/checks/block-id-usage/index.ts +72 -0
- package/src/checks/cdn-preconnect/index.spec.ts +40 -0
- package/src/checks/cdn-preconnect/index.ts +43 -0
- package/src/checks/content-for-header-modification/index.spec.ts +65 -0
- package/src/checks/content-for-header-modification/index.ts +72 -0
- package/src/checks/deprecate-bgsizes/index.spec.ts +41 -0
- package/src/checks/deprecate-bgsizes/index.ts +49 -0
- package/src/checks/deprecate-lazysizes/index.spec.ts +26 -0
- package/src/checks/deprecate-lazysizes/index.ts +58 -0
- package/src/checks/deprecated-filter/fixes.ts +264 -0
- package/src/checks/deprecated-filter/index.spec.ts +274 -0
- package/src/checks/deprecated-filter/index.ts +113 -0
- package/src/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.ts +1343 -0
- package/src/checks/deprecated-fonts-on-sections-and-blocks/index.spec.ts +613 -0
- package/src/checks/deprecated-fonts-on-sections-and-blocks/index.ts +284 -0
- package/src/checks/deprecated-fonts-on-settings-schema/index.spec.ts +102 -0
- package/src/checks/deprecated-fonts-on-settings-schema/index.ts +66 -0
- package/src/checks/deprecated-tag/index.spec.ts +68 -0
- package/src/checks/deprecated-tag/index.ts +46 -0
- package/src/checks/duplicate-content-for-arguments/index.spec.ts +98 -0
- package/src/checks/duplicate-content-for-arguments/index.ts +43 -0
- package/src/checks/duplicate-function-arguments/index.spec.ts +98 -0
- package/src/checks/duplicate-function-arguments/index.ts +44 -0
- package/src/checks/duplicate-render-partial-arguments/index.spec.ts +120 -0
- package/src/checks/duplicate-render-partial-arguments/index.ts +48 -0
- package/src/checks/empty-block-content/index.spec.ts +117 -0
- package/src/checks/empty-block-content/index.ts +60 -0
- package/src/checks/graphql/index.ts +64 -0
- package/src/checks/graphql-variables/index.ts +113 -0
- package/src/checks/hardcoded-routes/index.spec.ts +58 -0
- package/src/checks/hardcoded-routes/index.ts +100 -0
- package/src/checks/img-width-and-height/index.spec.ts +79 -0
- package/src/checks/img-width-and-height/index.ts +52 -0
- package/src/checks/index.ts +160 -0
- package/src/checks/invalid-hash-assign-target/index.spec.ts +176 -0
- package/src/checks/invalid-hash-assign-target/index.ts +306 -0
- package/src/checks/json-missing-block/index.spec.ts +435 -0
- package/src/checks/json-missing-block/index.ts +56 -0
- package/src/checks/json-missing-block/missing-block-utils.ts +147 -0
- package/src/checks/json-syntax-error/index.spec.ts +64 -0
- package/src/checks/json-syntax-error/index.ts +92 -0
- package/src/checks/liquid-free-settings/index.spec.ts +180 -0
- package/src/checks/liquid-free-settings/index.ts +79 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidBooleanExpression.spec.ts +43 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidBooleanExpressions.ts +29 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.spec.ts +385 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidConditionalNode.ts +165 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.spec.ts +52 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidConditionalNodeParenthesis.ts +39 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidEchoValue.spec.ts +108 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidEchoValue.ts +74 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidFilterName.spec.ts +223 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidFilterName.ts +92 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.spec.ts +145 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.ts +116 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidLoopRange.spec.ts +84 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidLoopRange.ts +79 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.spec.ts +184 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidPipeSyntax.ts +91 -0
- package/src/checks/liquid-html-syntax-error/checks/MultipleAssignValues.spec.ts +82 -0
- package/src/checks/liquid-html-syntax-error/checks/MultipleAssignValues.ts +86 -0
- package/src/checks/liquid-html-syntax-error/checks/utils.spec.ts +82 -0
- package/src/checks/liquid-html-syntax-error/checks/utils.ts +66 -0
- package/src/checks/liquid-html-syntax-error/index.spec.ts +129 -0
- package/src/checks/liquid-html-syntax-error/index.ts +152 -0
- package/src/checks/matching-translations/index.spec.ts +400 -0
- package/src/checks/matching-translations/index.ts +175 -0
- package/src/checks/metadata-params/index.spec.ts +103 -0
- package/src/checks/metadata-params/index.ts +119 -0
- package/src/checks/missing-asset/index.spec.ts +59 -0
- package/src/checks/missing-asset/index.ts +48 -0
- package/src/checks/missing-content-for-arguments/index.spec.ts +144 -0
- package/src/checks/missing-content-for-arguments/index.ts +46 -0
- package/src/checks/missing-template/index.spec.ts +61 -0
- package/src/checks/missing-template/index.ts +101 -0
- package/src/checks/orphaned-partial/index.spec.ts +58 -0
- package/src/checks/orphaned-partial/index.ts +43 -0
- package/src/checks/pagination-size/index.spec.ts +158 -0
- package/src/checks/pagination-size/index.ts +104 -0
- package/src/checks/parser-blocking-script/index.spec.ts +225 -0
- package/src/checks/parser-blocking-script/index.ts +91 -0
- package/src/checks/parser-blocking-script/suggestions.ts +42 -0
- package/src/checks/remote-asset/index.spec.ts +280 -0
- package/src/checks/remote-asset/index.ts +238 -0
- package/src/checks/reserved-doc-param-names/index.spec.ts +62 -0
- package/src/checks/reserved-doc-param-names/index.ts +57 -0
- package/src/checks/schema-presets-block-order/index.spec.ts +344 -0
- package/src/checks/schema-presets-block-order/index.ts +154 -0
- package/src/checks/schema-presets-static-blocks/index.spec.ts +145 -0
- package/src/checks/schema-presets-static-blocks/index.ts +126 -0
- package/src/checks/static-stylesheet-and-javascript-tags/index.spec.ts +257 -0
- package/src/checks/static-stylesheet-and-javascript-tags/index.ts +48 -0
- package/src/checks/translation-key-exists/index.spec.ts +44 -0
- package/src/checks/translation-key-exists/index.ts +78 -0
- package/src/checks/unclosed-html-element/index.spec.ts +260 -0
- package/src/checks/unclosed-html-element/index.ts +296 -0
- package/src/checks/undefined-object/index.spec.ts +519 -0
- package/src/checks/undefined-object/index.ts +336 -0
- package/src/checks/unique-doc-param-names/index.spec.ts +35 -0
- package/src/checks/unique-doc-param-names/index.ts +39 -0
- package/src/checks/unique-settings-id/index.spec.ts +24 -0
- package/src/checks/unique-settings-id/index.ts +84 -0
- package/src/checks/unique-settings-id/test-data.ts +1191 -0
- package/src/checks/unique-static-block-id/index.spec.ts +55 -0
- package/src/checks/unique-static-block-id/index.ts +60 -0
- package/src/checks/unknown-filter/index.spec.ts +59 -0
- package/src/checks/unknown-filter/index.ts +38 -0
- package/src/checks/unknown-property/index.spec.ts +234 -0
- package/src/checks/unknown-property/index.ts +468 -0
- package/src/checks/unknown-property/property-shape.ts +315 -0
- package/src/checks/unrecognized-content-for-arguments/index.spec.ts +145 -0
- package/src/checks/unrecognized-content-for-arguments/index.ts +55 -0
- package/src/checks/unrecognized-render-partial-arguments/index.spec.ts +184 -0
- package/src/checks/unrecognized-render-partial-arguments/index.ts +76 -0
- package/src/checks/unused-assign/index.spec.ts +160 -0
- package/src/checks/unused-assign/index.ts +87 -0
- package/src/checks/unused-doc-param/index.spec.ts +89 -0
- package/src/checks/unused-doc-param/index.ts +59 -0
- package/src/checks/utils.ts +117 -0
- package/src/checks/valid-block-target/index.spec.ts +1396 -0
- package/src/checks/valid-block-target/index.ts +142 -0
- package/src/checks/valid-content-for-argument-types/index.spec.ts +382 -0
- package/src/checks/valid-content-for-argument-types/index.ts +42 -0
- package/src/checks/valid-content-for-arguments/index.spec.ts +107 -0
- package/src/checks/valid-content-for-arguments/index.ts +98 -0
- package/src/checks/valid-doc-param-types/index.spec.ts +75 -0
- package/src/checks/valid-doc-param-types/index.ts +71 -0
- package/src/checks/valid-html-translation/index.spec.ts +74 -0
- package/src/checks/valid-html-translation/index.ts +45 -0
- package/src/checks/valid-json/index.spec.ts +102 -0
- package/src/checks/valid-json/index.ts +34 -0
- package/src/checks/valid-local-blocks/index.spec.ts +286 -0
- package/src/checks/valid-local-blocks/index.ts +100 -0
- package/src/checks/valid-local-blocks/valid-block-utils.ts +97 -0
- package/src/checks/valid-render-partial-argument-types/index.spec.ts +468 -0
- package/src/checks/valid-render-partial-argument-types/index.ts +89 -0
- package/src/checks/valid-schema/index.spec.ts +174 -0
- package/src/checks/valid-schema/index.ts +41 -0
- package/src/checks/valid-schema-name/index.spec.ts +112 -0
- package/src/checks/valid-schema-name/index.ts +75 -0
- package/src/checks/valid-settings-key/index.spec.ts +321 -0
- package/src/checks/valid-settings-key/index.ts +144 -0
- package/src/checks/valid-static-block-type/index.spec.ts +38 -0
- package/src/checks/valid-static-block-type/index.ts +58 -0
- package/src/checks/valid-visible-if/index.spec.ts +619 -0
- package/src/checks/valid-visible-if/index.ts +184 -0
- package/src/checks/valid-visible-if/visible-if-utils.ts +158 -0
- package/src/checks/variable-name/index.spec.ts +62 -0
- package/src/checks/variable-name/index.ts +115 -0
- package/src/context-utils.spec.ts +103 -0
- package/src/context-utils.ts +220 -0
- package/src/create-safe-check.ts +13 -0
- package/src/disabled-checks/index.spec.ts +262 -0
- package/src/disabled-checks/index.ts +189 -0
- package/src/disabled-checks/test-checks.ts +60 -0
- package/src/find-root.ts +60 -0
- package/src/fixes/apply-fix-to-string.spec.ts +52 -0
- package/src/fixes/apply-fix-to-string.ts +59 -0
- package/src/fixes/autofix.spec.ts +85 -0
- package/src/fixes/autofix.ts +41 -0
- package/src/fixes/corrector.ts +0 -0
- package/src/fixes/correctors/base-corrector.ts +5 -0
- package/src/fixes/correctors/graphql-corrector.ts +78 -0
- package/src/fixes/correctors/index.ts +29 -0
- package/src/fixes/correctors/json-corrector.spec.ts +111 -0
- package/src/fixes/correctors/json-corrector.ts +106 -0
- package/src/fixes/correctors/string-corrector.ts +78 -0
- package/src/fixes/index.ts +4 -0
- package/src/fixes/utils.ts +6 -0
- package/src/ignore.spec.ts +202 -0
- package/src/ignore.ts +23 -0
- package/src/index.spec.ts +8 -0
- package/src/index.ts +234 -0
- package/src/json.spec.ts +140 -0
- package/src/json.ts +81 -0
- package/src/jsonc/parse.spec.ts +118 -0
- package/src/jsonc/parse.ts +121 -0
- package/src/jsonc/types.ts +47 -0
- package/src/liquid-doc/arguments.spec.ts +146 -0
- package/src/liquid-doc/arguments.ts +315 -0
- package/src/liquid-doc/liquidDoc.spec.ts +296 -0
- package/src/liquid-doc/liquidDoc.ts +147 -0
- package/src/liquid-doc/utils.spec.ts +23 -0
- package/src/liquid-doc/utils.ts +125 -0
- package/src/path.ts +45 -0
- package/src/tags/content-for.ts +25 -0
- package/src/test/MockFileSystem.spec.ts +71 -0
- package/src/test/MockFileSystem.ts +87 -0
- package/src/test/MockTheme.ts +17 -0
- package/src/test/chai-offer-fix-assertion.spec.ts +53 -0
- package/src/test/chai-offer-fix-assertion.ts +45 -0
- package/src/test/chai-suggest-assertion.spec.ts +53 -0
- package/src/test/chai-suggest-assertion.ts +62 -0
- package/src/test/contain-offense.spec.ts +74 -0
- package/src/test/contain-offense.ts +54 -0
- package/src/test/index.ts +3 -0
- package/src/test/test-helper.ts +327 -0
- package/src/test/test-setup.ts +36 -0
- package/src/to-schema.ts +231 -0
- package/src/to-source-code.ts +75 -0
- package/src/types/schema-prop-factory.ts +112 -0
- package/src/types/schemas/index.ts +5 -0
- package/src/types/schemas/preset.ts +52 -0
- package/src/types/schemas/section.ts +86 -0
- package/src/types/schemas/setting.ts +320 -0
- package/src/types/schemas/template.ts +34 -0
- package/src/types/schemas/theme-block.ts +34 -0
- package/src/types/theme-liquid-docs.ts +184 -0
- package/src/types/theme-schemas.ts +80 -0
- package/src/types.ts +617 -0
- package/src/utils/array.ts +31 -0
- package/src/utils/block.ts +300 -0
- package/src/utils/error.spec.ts +71 -0
- package/src/utils/error.ts +48 -0
- package/src/utils/file-utils.ts +58 -0
- package/src/utils/index.ts +8 -0
- package/src/utils/indexBy.ts +14 -0
- package/src/utils/markup.ts +10 -0
- package/src/utils/memo.spec.ts +83 -0
- package/src/utils/memo.ts +80 -0
- package/src/utils/object.ts +3 -0
- package/src/utils/position.ts +16 -0
- package/src/utils/types.ts +57 -0
- package/src/visitor.spec.ts +163 -0
- package/src/visitor.ts +161 -0
- package/src/visitors/index.ts +2 -0
- package/src/visitors/json.ts +41 -0
- package/src/visitors/liquid.ts +40 -0
- package/tsconfig.build.json +8 -0
- package/tsconfig.json +31 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-corrector.js","sourceRoot":"","sources":["../../../src/fixes/correctors/string-corrector.ts"],"names":[],"mappings":";;;AAGA;;;;;;;;;;GAUG;AACH,MAAa,eAAe;IAG1B,YAAmB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;QAFjB,QAAG,GAAU,EAAgB,CAAC;IAEV,CAAC;IAErC;;;;;;;;;;;;;;;OAeG;IACH,MAAM,CAAC,KAAa,EAAE,IAAY;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;OASG;IACH,OAAO,CAAC,KAAa,EAAE,GAAW,EAAE,IAAY;QAC9C,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,IAAI;SACb,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,MAAM,CAAC,KAAa,EAAE,GAAW;QAC/B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;YACZ,UAAU,EAAE,KAAK;YACjB,QAAQ,EAAE,GAAG;YACb,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;IACL,CAAC;CACF;AA/DD,0CA+DC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.applyFixToString = exports.autofix = exports.createCorrector = exports.JSONCorrector = exports.StringCorrector = exports.flattenFixes = void 0;
|
|
4
|
+
var utils_1 = require("./utils");
|
|
5
|
+
Object.defineProperty(exports, "flattenFixes", { enumerable: true, get: function () { return utils_1.flattenFixes; } });
|
|
6
|
+
var correctors_1 = require("./correctors");
|
|
7
|
+
Object.defineProperty(exports, "StringCorrector", { enumerable: true, get: function () { return correctors_1.StringCorrector; } });
|
|
8
|
+
Object.defineProperty(exports, "JSONCorrector", { enumerable: true, get: function () { return correctors_1.JSONCorrector; } });
|
|
9
|
+
Object.defineProperty(exports, "createCorrector", { enumerable: true, get: function () { return correctors_1.createCorrector; } });
|
|
10
|
+
var autofix_1 = require("./autofix");
|
|
11
|
+
Object.defineProperty(exports, "autofix", { enumerable: true, get: function () { return autofix_1.autofix; } });
|
|
12
|
+
var apply_fix_to_string_1 = require("./apply-fix-to-string");
|
|
13
|
+
Object.defineProperty(exports, "applyFixToString", { enumerable: true, get: function () { return apply_fix_to_string_1.applyFixToString; } });
|
|
14
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fixes/index.ts"],"names":[],"mappings":";;;AAAA,iCAAuC;AAA9B,qGAAA,YAAY,OAAA;AACrB,2CAA+E;AAAtE,6GAAA,eAAe,OAAA;AAAE,2GAAA,aAAa,OAAA;AAAE,6GAAA,eAAe,OAAA;AACxD,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAChB,6DAAyD;AAAhD,uHAAA,gBAAgB,OAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.flattenFixes = flattenFixes;
|
|
4
|
+
function flattenFixes(fix) {
|
|
5
|
+
if (!Array.isArray(fix))
|
|
6
|
+
return [fix];
|
|
7
|
+
return fix.flatMap(flattenFixes);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/fixes/utils.ts"],"names":[],"mappings":";;AAEA,oCAGC;AAHD,SAAgB,YAAY,CAAC,GAAQ;IACnC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtC,OAAO,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;AACnC,CAAC"}
|
package/dist/ignore.d.ts
ADDED
package/dist/ignore.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.isIgnored = isIgnored;
|
|
4
|
+
const minimatch_1 = require("minimatch");
|
|
5
|
+
function isIgnored(uri, config, checkDef) {
|
|
6
|
+
const ignorePatterns = [...checkIgnorePatterns(checkDef, config), ...asArray(config.ignore)].map((pattern) => pattern
|
|
7
|
+
.replace(/^\//, config.rootUri + '/') // "absolute patterns" are config.rootUri matches
|
|
8
|
+
.replace(/^([^\/])/, '**/$1') // "relative patterns" are "**/${pattern}"
|
|
9
|
+
.replace(/\/\*$/, '/**'));
|
|
10
|
+
return ignorePatterns.some((pattern) => (0, minimatch_1.minimatch)(uri, pattern));
|
|
11
|
+
}
|
|
12
|
+
function checkIgnorePatterns(checkDef, config) {
|
|
13
|
+
if (!checkDef)
|
|
14
|
+
return [];
|
|
15
|
+
return asArray(config.settings[checkDef.meta.code]?.ignore);
|
|
16
|
+
}
|
|
17
|
+
function asArray(x) {
|
|
18
|
+
return x ?? [];
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=ignore.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ignore.js","sourceRoot":"","sources":["../src/ignore.ts"],"names":[],"mappings":";;AAGA,8BAUC;AAZD,yCAAsC;AAEtC,SAAgB,SAAS,CAAC,GAAc,EAAE,MAAc,EAAE,QAA0B;IAClF,MAAM,cAAc,GAAG,CAAC,GAAG,mBAAmB,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAC9F,CAAC,OAAO,EAAE,EAAE,CACV,OAAO;SACJ,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,GAAG,GAAG,CAAC,CAAC,iDAAiD;SACtF,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,0CAA0C;SACvE,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAC7B,CAAC;IAEF,OAAO,cAAc,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAA,qBAAS,EAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAED,SAAS,mBAAmB,CAAC,QAAqC,EAAE,MAAc;IAChF,IAAI,CAAC,QAAQ;QAAE,OAAO,EAAE,CAAC;IACzB,OAAO,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,OAAO,CAAI,CAAkB;IACpC,OAAO,CAAC,IAAI,EAAE,CAAC;AACjB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { Config, Dependencies, Offense, Theme } from './types';
|
|
2
|
+
export * from './AugmentedThemeDocset';
|
|
3
|
+
export * from './checks';
|
|
4
|
+
export * from './context-utils';
|
|
5
|
+
export * from './find-root';
|
|
6
|
+
export * from './fixes';
|
|
7
|
+
export * from './ignore';
|
|
8
|
+
export * from './json';
|
|
9
|
+
export * from './JSONValidator';
|
|
10
|
+
export * as path from './path';
|
|
11
|
+
export * from './to-schema';
|
|
12
|
+
export * from './to-source-code';
|
|
13
|
+
export * from './types';
|
|
14
|
+
export * from './utils/error';
|
|
15
|
+
export * from './utils/indexBy';
|
|
16
|
+
export * from './utils/memo';
|
|
17
|
+
export * from './utils/types';
|
|
18
|
+
export * from './utils/object';
|
|
19
|
+
export * from './visitor';
|
|
20
|
+
export * from './liquid-doc/liquidDoc';
|
|
21
|
+
export { getBlockName } from './liquid-doc/arguments';
|
|
22
|
+
export * from './liquid-doc/utils';
|
|
23
|
+
export declare function check(theme: Theme, config: Config, injectedDependencies: Dependencies): Promise<Offense[]>;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
36
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.getBlockName = exports.path = void 0;
|
|
40
|
+
exports.check = check;
|
|
41
|
+
const AugmentedThemeDocset_1 = require("./AugmentedThemeDocset");
|
|
42
|
+
const JSONValidator_1 = require("./JSONValidator");
|
|
43
|
+
const context_utils_1 = require("./context-utils");
|
|
44
|
+
const disabled_checks_1 = require("./disabled-checks");
|
|
45
|
+
const ignore_1 = require("./ignore");
|
|
46
|
+
const path = __importStar(require("./path"));
|
|
47
|
+
const types_1 = require("./types");
|
|
48
|
+
const utils_1 = require("./utils");
|
|
49
|
+
const visitors_1 = require("./visitors");
|
|
50
|
+
__exportStar(require("./AugmentedThemeDocset"), exports);
|
|
51
|
+
__exportStar(require("./checks"), exports);
|
|
52
|
+
__exportStar(require("./context-utils"), exports);
|
|
53
|
+
__exportStar(require("./find-root"), exports);
|
|
54
|
+
__exportStar(require("./fixes"), exports);
|
|
55
|
+
__exportStar(require("./ignore"), exports);
|
|
56
|
+
__exportStar(require("./json"), exports);
|
|
57
|
+
__exportStar(require("./JSONValidator"), exports);
|
|
58
|
+
exports.path = __importStar(require("./path"));
|
|
59
|
+
__exportStar(require("./to-schema"), exports);
|
|
60
|
+
__exportStar(require("./to-source-code"), exports);
|
|
61
|
+
__exportStar(require("./types"), exports);
|
|
62
|
+
__exportStar(require("./utils/error"), exports);
|
|
63
|
+
__exportStar(require("./utils/indexBy"), exports);
|
|
64
|
+
__exportStar(require("./utils/memo"), exports);
|
|
65
|
+
__exportStar(require("./utils/types"), exports);
|
|
66
|
+
__exportStar(require("./utils/object"), exports);
|
|
67
|
+
__exportStar(require("./visitor"), exports);
|
|
68
|
+
__exportStar(require("./liquid-doc/liquidDoc"), exports);
|
|
69
|
+
var arguments_1 = require("./liquid-doc/arguments");
|
|
70
|
+
Object.defineProperty(exports, "getBlockName", { enumerable: true, get: function () { return arguments_1.getBlockName; } });
|
|
71
|
+
__exportStar(require("./liquid-doc/utils"), exports);
|
|
72
|
+
const defaultErrorHandler = (_error) => {
|
|
73
|
+
// Silently ignores errors by default.
|
|
74
|
+
};
|
|
75
|
+
async function check(theme, config, injectedDependencies) {
|
|
76
|
+
const pipelines = [];
|
|
77
|
+
const offenses = [];
|
|
78
|
+
const { fs } = injectedDependencies;
|
|
79
|
+
const { rootUri } = config;
|
|
80
|
+
const dependencies = {
|
|
81
|
+
...injectedDependencies,
|
|
82
|
+
mode: config.context,
|
|
83
|
+
fileExists: (0, context_utils_1.makeFileExists)(fs),
|
|
84
|
+
fileSize: (0, context_utils_1.makeFileSize)(fs),
|
|
85
|
+
getDefaultLocale: (0, context_utils_1.makeGetDefaultLocale)(fs, rootUri),
|
|
86
|
+
getDefaultTranslations: (0, context_utils_1.makeGetDefaultTranslations)(fs, theme, rootUri),
|
|
87
|
+
getDefaultSchemaLocale: (0, context_utils_1.makeGetDefaultSchemaLocale)(fs, rootUri),
|
|
88
|
+
getDefaultSchemaTranslations: (0, context_utils_1.makeGetDefaultSchemaTranslations)(fs, theme, rootUri),
|
|
89
|
+
getMetafieldDefinitions: injectedDependencies.getMetafieldDefinitions ?? (0, context_utils_1.makeGetMetafieldDefinitions)(fs),
|
|
90
|
+
};
|
|
91
|
+
const { DisabledChecksVisitor, isDisabled } = (0, disabled_checks_1.createDisabledChecksModule)();
|
|
92
|
+
const jsonValidator = await JSONValidator_1.JSONValidator.create(dependencies.jsonValidationSet, config);
|
|
93
|
+
const validateJSON = jsonValidator?.validate;
|
|
94
|
+
// We're memozing those deps here because they shouldn't change within a run.
|
|
95
|
+
if (dependencies.themeDocset && !dependencies.themeDocset.isAugmented) {
|
|
96
|
+
dependencies.themeDocset = new AugmentedThemeDocset_1.AugmentedThemeDocset(dependencies.themeDocset);
|
|
97
|
+
}
|
|
98
|
+
for (const type of Object.values(types_1.SourceCodeType)) {
|
|
99
|
+
switch (type) {
|
|
100
|
+
case types_1.SourceCodeType.JSON: {
|
|
101
|
+
const files = filesOfType(type, theme);
|
|
102
|
+
const checkDefs = checksOfType(type, config.checks);
|
|
103
|
+
for (const file of files) {
|
|
104
|
+
for (const checkDef of checkDefs) {
|
|
105
|
+
if ((0, ignore_1.isIgnored)(file.uri, config, checkDef))
|
|
106
|
+
continue;
|
|
107
|
+
const check = createCheck(checkDef, file, config, offenses, dependencies, validateJSON);
|
|
108
|
+
pipelines.push(checkJSONFile(check, file));
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
case types_1.SourceCodeType.GraphQL: {
|
|
114
|
+
const files = filesOfType(type, theme);
|
|
115
|
+
const checkDefs = checksOfType(type, config.checks);
|
|
116
|
+
for (const file of files) {
|
|
117
|
+
for (const checkDef of checkDefs) {
|
|
118
|
+
if ((0, ignore_1.isIgnored)(file.uri, config, checkDef))
|
|
119
|
+
continue;
|
|
120
|
+
const check = createCheck(checkDef, file, config, offenses, dependencies, validateJSON);
|
|
121
|
+
pipelines.push(checkGraphQLFile(check, file));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
break;
|
|
125
|
+
}
|
|
126
|
+
case types_1.SourceCodeType.LiquidHtml: {
|
|
127
|
+
const files = filesOfType(type, theme);
|
|
128
|
+
const checkDefs = [DisabledChecksVisitor, ...checksOfType(type, config.checks)];
|
|
129
|
+
for (const file of files) {
|
|
130
|
+
for (const checkDef of checkDefs) {
|
|
131
|
+
if ((0, ignore_1.isIgnored)(file.uri, config, checkDef))
|
|
132
|
+
continue;
|
|
133
|
+
const check = createCheck(checkDef, file, config, offenses, dependencies, validateJSON);
|
|
134
|
+
pipelines.push(checkLiquidFile(check, file));
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
break;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
const onRejected = config.onError || defaultErrorHandler;
|
|
142
|
+
await Promise.all(pipelines.map((pipeline) => pipeline.catch(onRejected)));
|
|
143
|
+
return offenses.filter((offense) => !isDisabled(offense));
|
|
144
|
+
}
|
|
145
|
+
function createContext(check, file, offenses, config, dependencies, validateJSON) {
|
|
146
|
+
const checkSettings = config.settings[check.meta.code];
|
|
147
|
+
return {
|
|
148
|
+
...dependencies,
|
|
149
|
+
validateJSON,
|
|
150
|
+
settings: createSettings(checkSettings, check.meta.schema),
|
|
151
|
+
toUri: (relativePath) => path.join(config.rootUri, ...relativePath.split('/')),
|
|
152
|
+
toRelativePath: (uri) => path.relative(uri, config.rootUri),
|
|
153
|
+
report(problem) {
|
|
154
|
+
offenses.push({
|
|
155
|
+
type: check.meta.type,
|
|
156
|
+
check: check.meta.code,
|
|
157
|
+
message: problem.message,
|
|
158
|
+
uri: file.uri,
|
|
159
|
+
severity: checkSettings?.severity ?? check.meta.severity,
|
|
160
|
+
start: (0, utils_1.getPosition)(file.source, problem.startIndex),
|
|
161
|
+
end: (0, utils_1.getPosition)(file.source, problem.endIndex),
|
|
162
|
+
fix: problem.fix,
|
|
163
|
+
suggest: problem.suggest,
|
|
164
|
+
});
|
|
165
|
+
},
|
|
166
|
+
file,
|
|
167
|
+
config,
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
function createSettings(checkSettings, schema) {
|
|
171
|
+
const settings = {};
|
|
172
|
+
for (const [key, schemaProp] of Object.entries(schema)) {
|
|
173
|
+
settings[key] = checkSettings?.[key] ?? schemaProp.defaultValue();
|
|
174
|
+
}
|
|
175
|
+
return settings;
|
|
176
|
+
}
|
|
177
|
+
function checksOfType(type, checks) {
|
|
178
|
+
return checks.filter((def) => def.meta.type === type);
|
|
179
|
+
}
|
|
180
|
+
function createCheck(check, file, config, offenses, dependencies, validateJSON) {
|
|
181
|
+
const context = createContext(check, file, offenses, config, dependencies, validateJSON);
|
|
182
|
+
return check.create(context);
|
|
183
|
+
}
|
|
184
|
+
function filesOfType(type, sourceCodes) {
|
|
185
|
+
return sourceCodes.filter((file) => file.type === type);
|
|
186
|
+
}
|
|
187
|
+
async function checkJSONFile(check, file) {
|
|
188
|
+
if (check.onCodePathStart)
|
|
189
|
+
await check.onCodePathStart(file);
|
|
190
|
+
if (file.ast instanceof Error)
|
|
191
|
+
return;
|
|
192
|
+
if (Object.keys(check).length > 0)
|
|
193
|
+
await (0, visitors_1.visitJSON)(file.ast, check);
|
|
194
|
+
if (check.onCodePathEnd)
|
|
195
|
+
await check.onCodePathEnd(file);
|
|
196
|
+
}
|
|
197
|
+
async function checkGraphQLFile(check, file) {
|
|
198
|
+
if (check.onCodePathEnd)
|
|
199
|
+
await check.onCodePathEnd(file);
|
|
200
|
+
}
|
|
201
|
+
async function checkLiquidFile(check, file) {
|
|
202
|
+
if (check.onCodePathStart)
|
|
203
|
+
await check.onCodePathStart(file);
|
|
204
|
+
if (file.ast instanceof Error)
|
|
205
|
+
return;
|
|
206
|
+
if (Object.keys(check).length > 0)
|
|
207
|
+
await (0, visitors_1.visitLiquid)(file.ast, check);
|
|
208
|
+
if (check.onCodePathEnd)
|
|
209
|
+
await check.onCodePathEnd(file);
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/json.d.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { JSONNode } from './types';
|
|
2
|
+
export declare function parseJSON(source: string): any | Error;
|
|
3
|
+
export declare function parseJSON(source: string, defaultValue: any): any;
|
|
4
|
+
export declare function parseJSON(source: string, defaultValue: any, isStrict: boolean): any;
|
|
5
|
+
/**
|
|
6
|
+
* Given a known path to a property and an ast, returns the AST node at that path.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* const nameNode = nodeAtPath(ast, ['name'])! as LiteralNode;
|
|
10
|
+
* const blocksNode = nodeAtPath(ast, ['blocks'])! as ArrayNode;
|
|
11
|
+
* const someDeepNode = nodeAtPath(ast, ['blocks', 0, 'settings', 'someDeepKey'])! as LiteralNode;
|
|
12
|
+
*/
|
|
13
|
+
export declare function nodeAtPath(node: JSONNode, path: (string | number)[]): JSONNode | undefined;
|
|
14
|
+
/** Given a JSONNode, returns the start offset of the node in the source string. */
|
|
15
|
+
export declare function getLocStart(node: JSONNode): number;
|
|
16
|
+
/** Given a JSONNode, returns the end offset of the node in the source string. */
|
|
17
|
+
export declare function getLocEnd(node: JSONNode): number;
|
package/dist/json.js
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.parseJSON = parseJSON;
|
|
4
|
+
exports.nodeAtPath = nodeAtPath;
|
|
5
|
+
exports.getLocStart = getLocStart;
|
|
6
|
+
exports.getLocEnd = getLocEnd;
|
|
7
|
+
const jsonc_parser_1 = require("jsonc-parser");
|
|
8
|
+
const utils_1 = require("./utils");
|
|
9
|
+
const PARSE_OPTS = {
|
|
10
|
+
disallowComments: false,
|
|
11
|
+
allowTrailingComma: true,
|
|
12
|
+
allowEmptyContent: false,
|
|
13
|
+
};
|
|
14
|
+
function parseJSON(source, defaultValue, isStrict) {
|
|
15
|
+
try {
|
|
16
|
+
/**
|
|
17
|
+
* The jsonc-parser is fault-tolerant and typically returns a valid
|
|
18
|
+
* result. However, it also mutates the 'errors' array with any
|
|
19
|
+
* errors it encounters during parsing.
|
|
20
|
+
*/
|
|
21
|
+
const errors = [];
|
|
22
|
+
const result = (0, jsonc_parser_1.parse)(source, errors, PARSE_OPTS);
|
|
23
|
+
if (errors.length && isStrict) {
|
|
24
|
+
throw errors[0];
|
|
25
|
+
}
|
|
26
|
+
return result;
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
if (defaultValue !== undefined)
|
|
30
|
+
return defaultValue;
|
|
31
|
+
return (0, utils_1.asError)(error);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Given a known path to a property and an ast, returns the AST node at that path.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* const nameNode = nodeAtPath(ast, ['name'])! as LiteralNode;
|
|
39
|
+
* const blocksNode = nodeAtPath(ast, ['blocks'])! as ArrayNode;
|
|
40
|
+
* const someDeepNode = nodeAtPath(ast, ['blocks', 0, 'settings', 'someDeepKey'])! as LiteralNode;
|
|
41
|
+
*/
|
|
42
|
+
function nodeAtPath(node, path) {
|
|
43
|
+
return path.reduce((acc, key) => {
|
|
44
|
+
if (!acc)
|
|
45
|
+
return;
|
|
46
|
+
switch (acc.type) {
|
|
47
|
+
case 'Object': {
|
|
48
|
+
const property = acc.children.find((child) => child.key.value === key);
|
|
49
|
+
if (!property)
|
|
50
|
+
return;
|
|
51
|
+
return property.value;
|
|
52
|
+
}
|
|
53
|
+
case 'Array': {
|
|
54
|
+
return acc.children[key];
|
|
55
|
+
}
|
|
56
|
+
case 'Literal': {
|
|
57
|
+
// You're probably going too deep
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
case 'Identifier': {
|
|
61
|
+
// This is for keys, shouldn't get there
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
case 'Property': {
|
|
65
|
+
// This is for keys, shouldn't get there
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}, node);
|
|
70
|
+
}
|
|
71
|
+
/** Given a JSONNode, returns the start offset of the node in the source string. */
|
|
72
|
+
function getLocStart(node) {
|
|
73
|
+
return node.loc?.start.offset ?? 0;
|
|
74
|
+
}
|
|
75
|
+
/** Given a JSONNode, returns the end offset of the node in the source string. */
|
|
76
|
+
function getLocEnd(node) {
|
|
77
|
+
return node.loc?.end.offset ?? 0;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=json.js.map
|
package/dist/json.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json.js","sourceRoot":"","sources":["../src/json.ts"],"names":[],"mappings":";;AAaA,8BAmBC;AAUD,gCA4BC;AAGD,kCAEC;AAGD,8BAEC;AAhFD,+CAAiD;AAEjD,mCAAkC;AAElC,MAAM,UAAU,GAAG;IACjB,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,IAAI;IACxB,iBAAiB,EAAE,KAAK;CACzB,CAAC;AAKF,SAAgB,SAAS,CAAC,MAAc,EAAE,YAAkB,EAAE,QAAkB;IAC9E,IAAI,CAAC;QACH;;;;WAIG;QACH,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,IAAA,oBAAK,EAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAEjD,IAAI,MAAM,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC;YAC9B,MAAM,MAAM,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,IAAI,YAAY,KAAK,SAAS;YAAE,OAAO,YAAY,CAAC;QACpD,OAAO,IAAA,eAAO,EAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,SAAgB,UAAU,CAAC,IAAc,EAAE,IAAyB;IAClE,OAAO,IAAI,CAAC,MAAM,CAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;QACpD,IAAI,CAAC,GAAG;YAAE,OAAO;QACjB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;YACjB,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,KAAK,GAAG,CAAC,CAAC;gBACvE,IAAI,CAAC,QAAQ;oBAAE,OAAO;gBACtB,OAAO,QAAQ,CAAC,KAAK,CAAC;YACxB,CAAC;YAED,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAa,CAAC,CAAC;YACrC,CAAC;YAED,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,iCAAiC;gBACjC,OAAO;YACT,CAAC;YACD,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,wCAAwC;gBACxC,OAAO;YACT,CAAC;YACD,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,wCAAwC;gBACxC,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC,EAAE,IAAI,CAAC,CAAC;AACX,CAAC;AAED,mFAAmF;AACnF,SAAgB,WAAW,CAAC,IAAc;IACxC,OAAO,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,iFAAiF;AACjF,SAAgB,SAAS,CAAC,IAAc;IACtC,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,IAAI,CAAC,CAAC;AACnC,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { JSONNode as JSONToASTNode } from './types';
|
|
2
|
+
import { ParseError } from 'jsonc-parser';
|
|
3
|
+
export declare class JSONCParseErrors extends Error {
|
|
4
|
+
errors: ParseError[];
|
|
5
|
+
constructor(message: string, errors: ParseError[]);
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* At some point, we started supporting JSONC. Theme Check 2 was built on top of
|
|
9
|
+
* `json-to-ast` which does not support comments.
|
|
10
|
+
*
|
|
11
|
+
* This little adapter here will take a tree we get from `jsonc-parser` and
|
|
12
|
+
* convert it to the shape of `json-to-ast`.
|
|
13
|
+
*
|
|
14
|
+
* The `json-to-ast` types feel much better to use than the ones from `jsonc-parser`
|
|
15
|
+
* and we don't need to rewrite all our downstream code.
|
|
16
|
+
*/
|
|
17
|
+
export declare function toJSONNode(source: string): JSONToASTNode;
|
|
18
|
+
export declare const location: (start: number, end: number) => {
|
|
19
|
+
start: {
|
|
20
|
+
offset: number;
|
|
21
|
+
};
|
|
22
|
+
end: {
|
|
23
|
+
offset: number;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.location = exports.JSONCParseErrors = void 0;
|
|
4
|
+
exports.toJSONNode = toJSONNode;
|
|
5
|
+
const utils_1 = require("../utils");
|
|
6
|
+
const jsonc_parser_1 = require("jsonc-parser");
|
|
7
|
+
class JSONCParseErrors extends Error {
|
|
8
|
+
constructor(message, errors) {
|
|
9
|
+
super(message);
|
|
10
|
+
this.errors = errors;
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
exports.JSONCParseErrors = JSONCParseErrors;
|
|
14
|
+
/**
|
|
15
|
+
* At some point, we started supporting JSONC. Theme Check 2 was built on top of
|
|
16
|
+
* `json-to-ast` which does not support comments.
|
|
17
|
+
*
|
|
18
|
+
* This little adapter here will take a tree we get from `jsonc-parser` and
|
|
19
|
+
* convert it to the shape of `json-to-ast`.
|
|
20
|
+
*
|
|
21
|
+
* The `json-to-ast` types feel much better to use than the ones from `jsonc-parser`
|
|
22
|
+
* and we don't need to rewrite all our downstream code.
|
|
23
|
+
*/
|
|
24
|
+
function toJSONNode(source) {
|
|
25
|
+
const errors = [];
|
|
26
|
+
const tree = (0, jsonc_parser_1.parseTree)(source, errors, {
|
|
27
|
+
allowTrailingComma: true,
|
|
28
|
+
disallowComments: false,
|
|
29
|
+
});
|
|
30
|
+
if (errors.length || tree === undefined) {
|
|
31
|
+
throw new JSONCParseErrors('Failed to parse JSONC', errors);
|
|
32
|
+
}
|
|
33
|
+
return jsoncToJsonAst(tree);
|
|
34
|
+
}
|
|
35
|
+
function jsoncToJsonAst(node) {
|
|
36
|
+
switch (node.type) {
|
|
37
|
+
case 'object': {
|
|
38
|
+
return objectToObjectNode(node);
|
|
39
|
+
}
|
|
40
|
+
case 'property': {
|
|
41
|
+
return propertyToPropertyNode(node);
|
|
42
|
+
}
|
|
43
|
+
case 'array': {
|
|
44
|
+
return arrayToArrayNode(node);
|
|
45
|
+
}
|
|
46
|
+
case 'boolean':
|
|
47
|
+
case 'null':
|
|
48
|
+
case 'number':
|
|
49
|
+
case 'string': {
|
|
50
|
+
return valueToLiteralNode(node);
|
|
51
|
+
}
|
|
52
|
+
default: {
|
|
53
|
+
(0, utils_1.assertNever)(node.type);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
function objectToObjectNode(node) {
|
|
58
|
+
return {
|
|
59
|
+
type: 'Object',
|
|
60
|
+
children: (node.children ?? []).map(jsoncToJsonAst),
|
|
61
|
+
loc: (0, exports.location)(node.offset, node.offset + node.length),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
function arrayToArrayNode(node) {
|
|
65
|
+
return {
|
|
66
|
+
type: 'Array',
|
|
67
|
+
children: node.children.map(jsoncToJsonAst),
|
|
68
|
+
loc: (0, exports.location)(node.offset, node.offset + node.length),
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
function propertyToPropertyNode(node) {
|
|
72
|
+
return {
|
|
73
|
+
type: 'Property',
|
|
74
|
+
key: identifierToIdentifierNode(node.children[0]),
|
|
75
|
+
value: jsoncToJsonAst(node.children[1]),
|
|
76
|
+
loc: (0, exports.location)(node.offset, node.offset + node.length),
|
|
77
|
+
};
|
|
78
|
+
}
|
|
79
|
+
function identifierToIdentifierNode(node) {
|
|
80
|
+
return {
|
|
81
|
+
type: 'Identifier',
|
|
82
|
+
value: node.value,
|
|
83
|
+
raw: JSON.stringify(node.value),
|
|
84
|
+
loc: (0, exports.location)(node.offset, node.offset + node.length),
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
function valueToLiteralNode(node) {
|
|
88
|
+
return {
|
|
89
|
+
type: 'Literal',
|
|
90
|
+
value: node.value,
|
|
91
|
+
raw: JSON.stringify(node.value),
|
|
92
|
+
loc: (0, exports.location)(node.offset, node.offset + node.length),
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
const location = (start, end) => ({
|
|
96
|
+
start: position(start),
|
|
97
|
+
end: position(end),
|
|
98
|
+
});
|
|
99
|
+
exports.location = location;
|
|
100
|
+
const position = (offset) => ({ offset });
|
|
101
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/jsonc/parse.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
export type JSONNodeTypes = 'Object' | 'Array' | 'Property' | 'Identifier' | 'Literal';
|
|
2
|
+
export type JSONNode = ArrayNode | IdentifierNode | LiteralNode | ObjectNode | PropertyNode;
|
|
3
|
+
export type ValueNode = ObjectNode | ArrayNode | LiteralNode;
|
|
4
|
+
export interface Position {
|
|
5
|
+
offset: number;
|
|
6
|
+
}
|
|
7
|
+
export interface Location {
|
|
8
|
+
start: Position;
|
|
9
|
+
end: Position;
|
|
10
|
+
}
|
|
11
|
+
export interface ASTNode {
|
|
12
|
+
type: string;
|
|
13
|
+
loc: Location;
|
|
14
|
+
}
|
|
15
|
+
export interface ObjectNode extends ASTNode {
|
|
16
|
+
type: 'Object';
|
|
17
|
+
children: PropertyNode[];
|
|
18
|
+
}
|
|
19
|
+
export interface PropertyNode extends ASTNode {
|
|
20
|
+
type: 'Property';
|
|
21
|
+
key: IdentifierNode;
|
|
22
|
+
value: ValueNode;
|
|
23
|
+
}
|
|
24
|
+
export interface IdentifierNode extends ASTNode {
|
|
25
|
+
type: 'Identifier';
|
|
26
|
+
value: string;
|
|
27
|
+
raw: string;
|
|
28
|
+
}
|
|
29
|
+
export interface ArrayNode extends ASTNode {
|
|
30
|
+
type: 'Array';
|
|
31
|
+
children: ValueNode[];
|
|
32
|
+
}
|
|
33
|
+
export interface LiteralNode extends ASTNode {
|
|
34
|
+
type: 'Literal';
|
|
35
|
+
value: string | number | boolean | null;
|
|
36
|
+
raw: string;
|
|
37
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/jsonc/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Helper methods shared between `render` tag and `content_for` tag to report
|
|
3
|
+
* errors when LiquidDoc exists
|
|
4
|
+
*/
|
|
5
|
+
import { ContentForMarkup, RenderMarkup, FunctionMarkup, LiquidNamedArgument } from '@platformos/liquid-html-parser';
|
|
6
|
+
import { Context, LiquidDocParameter, SourceCodeType, StringCorrector } from '..';
|
|
7
|
+
/**
|
|
8
|
+
* Report error when unknown arguments are provided for `content_for` tag or `render` tag
|
|
9
|
+
*/
|
|
10
|
+
export declare function reportUnknownArguments(context: Context<SourceCodeType.LiquidHtml>, node: ContentForMarkup | RenderMarkup | FunctionMarkup, unknownProvidedArgs: LiquidNamedArgument[], name: string): void;
|
|
11
|
+
/**
|
|
12
|
+
* Report error when missing arguments are provided for `content_for` tag or `render` tag
|
|
13
|
+
*/
|
|
14
|
+
export declare function reportMissingArguments(context: Context<SourceCodeType.LiquidHtml>, node: ContentForMarkup | RenderMarkup | FunctionMarkup, missingRequiredArgs: LiquidDocParameter[], name: string): void;
|
|
15
|
+
export declare function reportDuplicateArguments(context: Context<SourceCodeType.LiquidHtml>, node: ContentForMarkup | RenderMarkup | FunctionMarkup, duplicateArgs: LiquidNamedArgument[], name: string): void;
|
|
16
|
+
/**
|
|
17
|
+
* Find type mismatch between the arguments provided for `content_for` tag and `render` tag
|
|
18
|
+
* and their associated file's LiquidDoc
|
|
19
|
+
*/
|
|
20
|
+
export declare function findTypeMismatchParams(liquidDocParameters: Map<string, LiquidDocParameter>, providedParams: LiquidNamedArgument[]): LiquidNamedArgument[];
|
|
21
|
+
/**
|
|
22
|
+
* Report error if the type mismatches between LiquidDoc and provided arguments
|
|
23
|
+
*/
|
|
24
|
+
export declare function reportTypeMismatches(context: Context<SourceCodeType.LiquidHtml>, typeMismatchArgs: LiquidNamedArgument[], liquidDocParameters: Map<string, LiquidDocParameter>): void;
|
|
25
|
+
/**
|
|
26
|
+
* Generates suggestions for type mismatches based on the expected type and node positions
|
|
27
|
+
*/
|
|
28
|
+
export declare function generateTypeMismatchSuggestions(expectedType: string, startPosition: number, endPosition: number): {
|
|
29
|
+
message: string;
|
|
30
|
+
fix: (fixer: StringCorrector) => void;
|
|
31
|
+
}[];
|
|
32
|
+
export declare function getBlockName(node: ContentForMarkup): string | undefined;
|
|
33
|
+
export declare function getPartialName(node: RenderMarkup | FunctionMarkup): string | undefined;
|
|
34
|
+
export declare function getLiquidDocParams(context: Context<SourceCodeType.LiquidHtml>, relativePath: string): Promise<Map<string, LiquidDocParameter> | undefined>;
|
|
35
|
+
export declare function makeRemoveArgumentCorrector(node: ContentForMarkup | RenderMarkup | FunctionMarkup, arg: LiquidNamedArgument): (fixer: StringCorrector) => void;
|
|
36
|
+
export declare function makeAddArgumentCorrector(node: ContentForMarkup | RenderMarkup | FunctionMarkup, arg: LiquidDocParameter): (fixer: StringCorrector) => void;
|