@platformos/platformos-check-common 0.0.7 → 0.0.9
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 +16 -0
- package/README.md +4 -4
- package/dist/AugmentedPlatformOSDocset.d.ts +11 -0
- package/dist/AugmentedPlatformOSDocset.js +81 -0
- package/dist/AugmentedPlatformOSDocset.js.map +1 -0
- package/dist/JSONValidator.js +1 -1
- package/dist/JSONValidator.js.map +1 -1
- package/dist/checks/deprecated-filter/index.js +4 -41
- package/dist/checks/deprecated-filter/index.js.map +1 -1
- package/dist/checks/deprecated-tag/index.js +21 -22
- package/dist/checks/deprecated-tag/index.js.map +1 -1
- package/dist/checks/duplicate-function-arguments/index.js +1 -1
- package/dist/checks/duplicate-function-arguments/index.js.map +1 -1
- package/dist/checks/duplicate-render-partial-arguments/index.js +1 -1
- package/dist/checks/duplicate-render-partial-arguments/index.js.map +1 -1
- package/dist/checks/graphql/index.js +1 -1
- package/dist/checks/graphql/index.js.map +1 -1
- package/dist/checks/graphql-variables/index.js +4 -0
- package/dist/checks/graphql-variables/index.js.map +1 -1
- package/dist/checks/img-width-and-height/index.js +1 -1
- package/dist/checks/img-width-and-height/index.js.map +1 -1
- package/dist/checks/index.d.ts +3 -3
- package/dist/checks/index.js +4 -79
- package/dist/checks/index.js.map +1 -1
- package/dist/checks/json-syntax-error/index.js +1 -1
- package/dist/checks/json-syntax-error/index.js.map +1 -1
- package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.js +1 -1
- package/dist/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.js.map +1 -1
- package/dist/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.d.ts +19 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.js +79 -0
- package/dist/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/checks/UnknownTag.d.ts +3 -0
- package/dist/checks/liquid-html-syntax-error/checks/UnknownTag.js +32 -0
- package/dist/checks/liquid-html-syntax-error/checks/UnknownTag.js.map +1 -0
- package/dist/checks/liquid-html-syntax-error/index.js +23 -5
- package/dist/checks/liquid-html-syntax-error/index.js.map +1 -1
- package/dist/checks/matching-translations/index.d.ts +2 -2
- package/dist/checks/matching-translations/index.js +114 -90
- package/dist/checks/matching-translations/index.js.map +1 -1
- package/dist/checks/metadata-params/index.js +6 -3
- package/dist/checks/metadata-params/index.js.map +1 -1
- package/dist/checks/missing-asset/index.js +1 -1
- package/dist/checks/missing-asset/index.js.map +1 -1
- package/dist/checks/missing-partial/index.d.ts +6 -0
- package/dist/checks/missing-partial/index.js +70 -0
- package/dist/checks/missing-partial/index.js.map +1 -0
- package/dist/checks/orphaned-partial/index.js +4 -4
- package/dist/checks/orphaned-partial/index.js.map +1 -1
- package/dist/checks/parser-blocking-script/index.js +10 -36
- package/dist/checks/parser-blocking-script/index.js.map +1 -1
- package/dist/checks/parser-blocking-script/suggestions.d.ts +1 -2
- package/dist/checks/parser-blocking-script/suggestions.js +1 -11
- package/dist/checks/parser-blocking-script/suggestions.js.map +1 -1
- package/dist/checks/reserved-doc-param-names/index.js +6 -5
- package/dist/checks/reserved-doc-param-names/index.js.map +1 -1
- package/dist/checks/translation-key-exists/index.js +1 -1
- package/dist/checks/translation-key-exists/index.js.map +1 -1
- package/dist/checks/unclosed-html-element/index.js +5 -1
- package/dist/checks/unclosed-html-element/index.js.map +1 -1
- package/dist/checks/undefined-object/index.js +13 -31
- package/dist/checks/undefined-object/index.js.map +1 -1
- package/dist/checks/unique-doc-param-names/index.js +1 -1
- package/dist/checks/unique-doc-param-names/index.js.map +1 -1
- package/dist/checks/unknown-filter/index.js +3 -3
- package/dist/checks/unknown-filter/index.js.map +1 -1
- package/dist/checks/unknown-property/index.js +1 -1
- package/dist/checks/unknown-property/index.js.map +1 -1
- package/dist/checks/unrecognized-render-partial-arguments/index.js +2 -2
- package/dist/checks/unrecognized-render-partial-arguments/index.js.map +1 -1
- package/dist/checks/unused-assign/index.js +1 -1
- package/dist/checks/unused-assign/index.js.map +1 -1
- package/dist/checks/unused-doc-param/index.js +1 -1
- package/dist/checks/unused-doc-param/index.js.map +1 -1
- package/dist/checks/utils.js +1 -1
- package/dist/checks/utils.js.map +1 -1
- package/dist/checks/valid-content-for-arguments/index.js +1 -1
- package/dist/checks/valid-content-for-arguments/index.js.map +1 -1
- package/dist/checks/valid-doc-param-types/index.js +4 -4
- package/dist/checks/valid-doc-param-types/index.js.map +1 -1
- package/dist/checks/valid-html-translation/index.d.ts +2 -2
- package/dist/checks/valid-html-translation/index.js +4 -4
- package/dist/checks/valid-html-translation/index.js.map +1 -1
- package/dist/checks/valid-json/index.js +1 -1
- package/dist/checks/valid-json/index.js.map +1 -1
- package/dist/checks/valid-render-partial-argument-types/index.js +2 -2
- package/dist/checks/valid-render-partial-argument-types/index.js.map +1 -1
- package/dist/checks/variable-name/index.js +1 -1
- package/dist/checks/variable-name/index.js.map +1 -1
- package/dist/context-utils.d.ts +18 -7
- package/dist/context-utils.js +68 -109
- package/dist/context-utils.js.map +1 -1
- package/dist/disabled-checks/index.js +4 -2
- package/dist/disabled-checks/index.js.map +1 -1
- 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 +7 -10
- package/dist/find-root.js +10 -17
- package/dist/find-root.js.map +1 -1
- package/dist/fixes/autofix.d.ts +4 -4
- package/dist/fixes/autofix.js +2 -2
- package/dist/fixes/autofix.js.map +1 -1
- package/dist/fixes/correctors/index.js +4 -0
- package/dist/fixes/correctors/index.js.map +1 -1
- package/dist/index.d.ts +5 -5
- package/dist/index.js +50 -17
- package/dist/index.js.map +1 -1
- package/dist/jsonc/parse.d.ts +1 -1
- package/dist/jsonc/parse.js +1 -1
- package/dist/liquid-doc/arguments.d.ts +7 -8
- package/dist/liquid-doc/arguments.js +28 -29
- package/dist/liquid-doc/arguments.js.map +1 -1
- package/dist/liquid-doc/liquidDoc.d.ts +1 -1
- package/dist/liquid-doc/liquidDoc.js.map +1 -1
- package/dist/liquid-doc/utils.d.ts +3 -3
- package/dist/liquid-doc/utils.js +14 -3
- package/dist/liquid-doc/utils.js.map +1 -1
- package/dist/path.d.ts +1 -0
- package/dist/path.js +16 -1
- package/dist/path.js.map +1 -1
- package/{src/test/MockTheme.ts → dist/test/MockApp.d.ts} +2 -3
- package/dist/test/MockApp.js +16 -0
- package/dist/test/MockApp.js.map +1 -0
- package/dist/test/MockFileSystem.d.ts +3 -3
- package/dist/test/MockFileSystem.js +6 -6
- package/dist/test/MockFileSystem.js.map +1 -1
- package/dist/test/index.d.ts +1 -1
- package/dist/test/index.js +1 -1
- package/dist/test/index.js.map +1 -1
- package/dist/test/test-helper.d.ts +10 -9
- package/dist/test/test-helper.js +15 -106
- package/dist/test/test-helper.js.map +1 -1
- package/dist/to-schema.d.ts +1 -1
- package/dist/to-source-code.d.ts +3 -2
- package/dist/to-source-code.js +20 -0
- package/dist/to-source-code.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types/platformos-liquid-docs.d.ts +128 -0
- package/dist/types/platformos-liquid-docs.js +3 -0
- package/dist/types/platformos-liquid-docs.js.map +1 -0
- package/dist/types/schemas/index.d.ts +0 -2
- package/dist/types/schemas/index.js.map +1 -1
- package/dist/types.d.ts +26 -67
- package/dist/types.js +3 -5
- package/dist/types.js.map +1 -1
- package/dist/utils/block.js.map +1 -1
- package/dist/utils/index.d.ts +0 -1
- package/dist/utils/index.js +0 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/yaml/parse.d.ts +5 -0
- package/dist/yaml/parse.js +94 -0
- package/dist/yaml/parse.js.map +1 -0
- package/package.json +4 -3
- package/src/{AugmentedThemeDocset.spec.ts → AugmentedPlatformOSDocset.spec.ts} +47 -34
- package/src/AugmentedPlatformOSDocset.ts +89 -0
- package/src/JSONValidator.ts +1 -1
- package/src/checks/deprecated-filter/index.spec.ts +76 -248
- package/src/checks/deprecated-filter/index.ts +5 -53
- package/src/checks/deprecated-tag/index.spec.ts +85 -34
- package/src/checks/deprecated-tag/index.ts +27 -22
- package/src/checks/duplicate-function-arguments/index.ts +1 -1
- package/src/checks/duplicate-render-partial-arguments/index.spec.ts +12 -12
- package/src/checks/duplicate-render-partial-arguments/index.ts +1 -1
- package/src/checks/graphql/index.ts +1 -1
- package/src/checks/graphql-variables/index.spec.ts +95 -0
- package/src/checks/graphql-variables/index.ts +4 -0
- package/src/checks/img-width-and-height/index.ts +2 -2
- package/src/checks/index.ts +11 -80
- package/src/checks/invalid-hash-assign-target/index.spec.ts +27 -27
- package/src/checks/json-syntax-error/index.ts +2 -2
- package/src/checks/liquid-html-syntax-error/checks/InvalidBooleanExpression.spec.ts +0 -11
- package/src/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.spec.ts +1 -2
- package/src/checks/liquid-html-syntax-error/checks/InvalidLoopArguments.ts +2 -2
- package/src/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.spec.ts +259 -0
- package/src/checks/liquid-html-syntax-error/checks/InvalidTagSyntax.ts +89 -0
- package/src/checks/liquid-html-syntax-error/checks/UnknownTag.spec.ts +293 -0
- package/src/checks/liquid-html-syntax-error/checks/UnknownTag.ts +43 -0
- package/src/checks/liquid-html-syntax-error/index.spec.ts +1 -6
- package/src/checks/liquid-html-syntax-error/index.ts +26 -5
- package/src/checks/matching-translations/index.spec.ts +187 -354
- package/src/checks/matching-translations/index.ts +117 -107
- package/src/checks/metadata-params/index.ts +6 -8
- package/src/checks/missing-asset/index.ts +1 -1
- package/src/checks/{missing-template → missing-partial}/index.spec.ts +6 -6
- package/src/checks/{missing-template → missing-partial}/index.ts +12 -26
- package/src/checks/orphaned-partial/index.ts +3 -3
- package/src/checks/parser-blocking-script/index.spec.ts +0 -118
- package/src/checks/parser-blocking-script/index.ts +3 -33
- package/src/checks/parser-blocking-script/suggestions.ts +1 -28
- package/src/checks/translation-key-exists/index.ts +1 -1
- package/src/checks/unclosed-html-element/index.ts +5 -1
- package/src/checks/undefined-object/index.spec.ts +32 -111
- package/src/checks/undefined-object/index.ts +15 -34
- package/src/checks/unique-doc-param-names/index.ts +1 -1
- package/src/checks/unknown-filter/index.spec.ts +2 -2
- package/src/checks/unknown-filter/index.ts +3 -3
- package/src/checks/unknown-property/index.ts +1 -1
- package/src/checks/unrecognized-render-partial-arguments/index.spec.ts +5 -5
- package/src/checks/unrecognized-render-partial-arguments/index.ts +2 -5
- package/src/checks/unused-assign/index.spec.ts +0 -30
- package/src/checks/unused-assign/index.ts +2 -2
- package/src/checks/unused-doc-param/index.ts +1 -1
- package/src/checks/utils.ts +1 -1
- package/src/checks/valid-doc-param-types/index.ts +4 -4
- package/src/checks/valid-html-translation/index.spec.ts +42 -32
- package/src/checks/valid-html-translation/index.ts +7 -7
- package/src/checks/valid-json/index.ts +2 -2
- package/src/checks/valid-render-partial-argument-types/index.spec.ts +13 -13
- package/src/checks/valid-render-partial-argument-types/index.ts +2 -5
- package/src/checks/variable-name/index.ts +1 -1
- package/src/context-utils.spec.ts +49 -77
- package/src/context-utils.ts +81 -129
- package/src/disabled-checks/index.spec.ts +26 -26
- package/src/disabled-checks/index.ts +2 -2
- package/src/disabled-checks/test-checks.ts +4 -4
- package/src/find-root.ts +12 -22
- package/src/fixes/autofix.spec.ts +2 -2
- package/src/fixes/autofix.ts +4 -4
- package/src/fixes/correctors/index.ts +4 -0
- package/src/ignore.spec.ts +4 -5
- package/src/index.ts +51 -21
- package/src/jsonc/parse.ts +1 -1
- package/src/liquid-doc/arguments.spec.ts +19 -45
- package/src/liquid-doc/arguments.ts +35 -42
- package/src/liquid-doc/liquidDoc.spec.ts +1 -1
- package/src/liquid-doc/liquidDoc.ts +1 -2
- package/src/liquid-doc/utils.ts +17 -8
- package/src/path.ts +16 -0
- package/src/test/MockApp.ts +17 -0
- package/src/test/MockFileSystem.spec.ts +10 -11
- package/src/test/MockFileSystem.ts +6 -6
- package/src/test/contain-offense.spec.ts +11 -3
- package/src/test/index.ts +1 -1
- package/src/test/test-helper.ts +43 -145
- package/src/to-source-code.ts +20 -1
- package/src/types/{theme-liquid-docs.ts → platformos-liquid-docs.ts} +8 -13
- package/src/types.ts +29 -92
- package/src/utils/index.ts +0 -1
- package/src/visitor.spec.ts +2 -2
- package/src/yaml/parse.ts +111 -0
- package/src/AugmentedThemeDocset.ts +0 -137
- package/src/checks/app-block-missing-schema/index.spec.ts +0 -121
- package/src/checks/app-block-missing-schema/index.ts +0 -46
- package/src/checks/app-block-valid-tags/index.spec.ts +0 -96
- package/src/checks/app-block-valid-tags/index.ts +0 -54
- package/src/checks/asset-preload/index.spec.ts +0 -78
- package/src/checks/asset-preload/index.ts +0 -65
- package/src/checks/asset-size-app-block-css/index.spec.ts +0 -88
- package/src/checks/asset-size-app-block-css/index.ts +0 -78
- package/src/checks/asset-size-app-block-javascript/index.spec.ts +0 -66
- package/src/checks/asset-size-app-block-javascript/index.ts +0 -78
- package/src/checks/asset-size-css/index.spec.ts +0 -166
- package/src/checks/asset-size-css/index.ts +0 -160
- package/src/checks/asset-size-javascript/index.spec.ts +0 -184
- package/src/checks/asset-size-javascript/index.ts +0 -144
- package/src/checks/block-id-usage/index.spec.ts +0 -76
- package/src/checks/block-id-usage/index.ts +0 -72
- package/src/checks/cdn-preconnect/index.spec.ts +0 -40
- package/src/checks/cdn-preconnect/index.ts +0 -43
- package/src/checks/content-for-header-modification/index.spec.ts +0 -65
- package/src/checks/content-for-header-modification/index.ts +0 -72
- package/src/checks/deprecate-bgsizes/index.spec.ts +0 -41
- package/src/checks/deprecate-bgsizes/index.ts +0 -49
- package/src/checks/deprecate-lazysizes/index.spec.ts +0 -26
- package/src/checks/deprecate-lazysizes/index.ts +0 -58
- package/src/checks/deprecated-filter/fixes.ts +0 -264
- package/src/checks/deprecated-fonts-on-sections-and-blocks/deprecated-fonts-data.ts +0 -1343
- package/src/checks/deprecated-fonts-on-sections-and-blocks/index.spec.ts +0 -613
- package/src/checks/deprecated-fonts-on-sections-and-blocks/index.ts +0 -284
- package/src/checks/deprecated-fonts-on-settings-schema/index.spec.ts +0 -102
- package/src/checks/deprecated-fonts-on-settings-schema/index.ts +0 -66
- package/src/checks/duplicate-content-for-arguments/index.spec.ts +0 -98
- package/src/checks/duplicate-content-for-arguments/index.ts +0 -43
- package/src/checks/empty-block-content/index.spec.ts +0 -117
- package/src/checks/empty-block-content/index.ts +0 -60
- package/src/checks/hardcoded-routes/index.spec.ts +0 -58
- package/src/checks/hardcoded-routes/index.ts +0 -100
- package/src/checks/json-missing-block/index.spec.ts +0 -435
- package/src/checks/json-missing-block/index.ts +0 -56
- package/src/checks/json-missing-block/missing-block-utils.ts +0 -147
- package/src/checks/liquid-free-settings/index.spec.ts +0 -180
- package/src/checks/liquid-free-settings/index.ts +0 -79
- package/src/checks/missing-content-for-arguments/index.spec.ts +0 -144
- package/src/checks/missing-content-for-arguments/index.ts +0 -46
- package/src/checks/pagination-size/index.spec.ts +0 -158
- package/src/checks/pagination-size/index.ts +0 -104
- package/src/checks/remote-asset/index.spec.ts +0 -280
- package/src/checks/remote-asset/index.ts +0 -238
- package/src/checks/reserved-doc-param-names/index.spec.ts +0 -62
- package/src/checks/reserved-doc-param-names/index.ts +0 -57
- package/src/checks/schema-presets-block-order/index.spec.ts +0 -344
- package/src/checks/schema-presets-block-order/index.ts +0 -154
- package/src/checks/schema-presets-static-blocks/index.spec.ts +0 -145
- package/src/checks/schema-presets-static-blocks/index.ts +0 -126
- package/src/checks/static-stylesheet-and-javascript-tags/index.spec.ts +0 -257
- package/src/checks/static-stylesheet-and-javascript-tags/index.ts +0 -48
- package/src/checks/unique-settings-id/index.spec.ts +0 -24
- package/src/checks/unique-settings-id/index.ts +0 -84
- package/src/checks/unique-settings-id/test-data.ts +0 -1191
- package/src/checks/unique-static-block-id/index.spec.ts +0 -55
- package/src/checks/unique-static-block-id/index.ts +0 -60
- package/src/checks/unrecognized-content-for-arguments/index.spec.ts +0 -145
- package/src/checks/unrecognized-content-for-arguments/index.ts +0 -55
- package/src/checks/valid-block-target/index.spec.ts +0 -1396
- package/src/checks/valid-block-target/index.ts +0 -142
- package/src/checks/valid-content-for-argument-types/index.spec.ts +0 -382
- package/src/checks/valid-content-for-argument-types/index.ts +0 -42
- package/src/checks/valid-content-for-arguments/index.spec.ts +0 -107
- package/src/checks/valid-content-for-arguments/index.ts +0 -98
- package/src/checks/valid-local-blocks/index.spec.ts +0 -286
- package/src/checks/valid-local-blocks/index.ts +0 -100
- package/src/checks/valid-local-blocks/valid-block-utils.ts +0 -97
- package/src/checks/valid-schema/index.spec.ts +0 -174
- package/src/checks/valid-schema/index.ts +0 -41
- package/src/checks/valid-schema-name/index.spec.ts +0 -112
- package/src/checks/valid-schema-name/index.ts +0 -75
- package/src/checks/valid-settings-key/index.spec.ts +0 -321
- package/src/checks/valid-settings-key/index.ts +0 -144
- package/src/checks/valid-static-block-type/index.spec.ts +0 -38
- package/src/checks/valid-static-block-type/index.ts +0 -58
- package/src/checks/valid-visible-if/index.spec.ts +0 -619
- package/src/checks/valid-visible-if/index.ts +0 -184
- package/src/checks/valid-visible-if/visible-if-utils.ts +0 -158
- package/src/tags/content-for.ts +0 -25
- package/src/to-schema.ts +0 -231
- package/src/types/schemas/index.ts +0 -5
- package/src/types/schemas/preset.ts +0 -52
- package/src/types/schemas/section.ts +0 -86
- package/src/types/schemas/setting.ts +0 -320
- package/src/types/schemas/template.ts +0 -34
- package/src/types/schemas/theme-block.ts +0 -34
- package/src/types/theme-schemas.ts +0 -80
- package/src/utils/block.ts +0 -300
- package/src/utils/markup.ts +0 -10
package/src/checks/index.ts
CHANGED
|
@@ -3,140 +3,71 @@ import {
|
|
|
3
3
|
GraphQLCheckDefinition,
|
|
4
4
|
JSONCheckDefinition,
|
|
5
5
|
LiquidCheckDefinition,
|
|
6
|
+
YAMLCheckDefinition,
|
|
6
7
|
} from '../types';
|
|
7
8
|
|
|
8
|
-
import { AppBlockValidTags } from './app-block-valid-tags';
|
|
9
|
-
import { AssetPreload } from './asset-preload';
|
|
10
|
-
import { AssetSizeAppBlockCSS } from './asset-size-app-block-css';
|
|
11
|
-
import { AssetSizeAppBlockJavaScript } from './asset-size-app-block-javascript';
|
|
12
|
-
import { AssetSizeCSS } from './asset-size-css';
|
|
13
|
-
import { AssetSizeJavaScript } from './asset-size-javascript';
|
|
14
|
-
import { BlockIdUsage } from './block-id-usage';
|
|
15
|
-
import { CdnPreconnect } from './cdn-preconnect';
|
|
16
|
-
import { ContentForHeaderModification } from './content-for-header-modification';
|
|
17
|
-
import { DeprecateBgsizes } from './deprecate-bgsizes';
|
|
18
|
-
import { DeprecateLazysizes } from './deprecate-lazysizes';
|
|
19
9
|
import { DeprecatedFilter } from './deprecated-filter';
|
|
20
|
-
import { DeprecatedFontsOnSectionsAndBlocks } from './deprecated-fonts-on-sections-and-blocks';
|
|
21
|
-
import { DeprecatedFontsOnSettingsSchema } from './deprecated-fonts-on-settings-schema';
|
|
22
10
|
import { DeprecatedTag } from './deprecated-tag';
|
|
23
11
|
import { DuplicateRenderPartialArguments } from './duplicate-render-partial-arguments';
|
|
24
|
-
import { DuplicateContentForArguments } from './duplicate-content-for-arguments';
|
|
25
|
-
import { EmptyBlockContent } from './empty-block-content';
|
|
26
|
-
import { HardcodedRoutes } from './hardcoded-routes';
|
|
27
12
|
import { ImgWidthAndHeight } from './img-width-and-height';
|
|
28
|
-
import { JSONMissingBlock } from './json-missing-block';
|
|
29
13
|
import { JSONSyntaxError } from './json-syntax-error';
|
|
30
|
-
import { LiquidFreeSettings } from './liquid-free-settings';
|
|
31
14
|
import { LiquidHTMLSyntaxError } from './liquid-html-syntax-error';
|
|
32
15
|
import { MatchingTranslations } from './matching-translations';
|
|
33
16
|
import { MissingAsset } from './missing-asset';
|
|
34
|
-
import {
|
|
35
|
-
import { MissingTemplate } from './missing-template';
|
|
17
|
+
import { MissingPartial } from './missing-partial';
|
|
36
18
|
import { OrphanedPartial } from './orphaned-partial';
|
|
37
|
-
import { PaginationSize } from './pagination-size';
|
|
38
19
|
import { ParserBlockingScript } from './parser-blocking-script';
|
|
39
|
-
import { SchemaPresetsBlockOrder } from './schema-presets-block-order';
|
|
40
|
-
import { SchemaPresetsStaticBlocks } from './schema-presets-static-blocks';
|
|
41
|
-
import { RemoteAsset } from './remote-asset';
|
|
42
|
-
import { ReservedDocParamNames } from './reserved-doc-param-names';
|
|
43
|
-
import { StaticStylesheetAndJavascriptTags } from './static-stylesheet-and-javascript-tags';
|
|
44
20
|
import { TranslationKeyExists } from './translation-key-exists';
|
|
45
21
|
import { UnclosedHTMLElement } from './unclosed-html-element';
|
|
46
22
|
import { UndefinedObject } from './undefined-object';
|
|
47
23
|
import { UniqueDocParamNames } from './unique-doc-param-names';
|
|
48
|
-
import { UniqueStaticBlockId } from './unique-static-block-id';
|
|
49
24
|
import { UnknownFilter } from './unknown-filter';
|
|
50
|
-
import { UnrecognizedContentForArguments } from './unrecognized-content-for-arguments';
|
|
51
25
|
import { UnrecognizedRenderPartialArguments } from './unrecognized-render-partial-arguments';
|
|
52
26
|
import { UnusedAssign } from './unused-assign';
|
|
53
27
|
import { UnusedDocParam } from './unused-doc-param';
|
|
54
|
-
import { ValidContentForArguments } from './valid-content-for-arguments';
|
|
55
|
-
import { ValidContentForArgumentTypes } from './valid-content-for-argument-types';
|
|
56
|
-
import { ValidBlockTarget } from './valid-block-target';
|
|
57
28
|
import { ValidHTMLTranslation } from './valid-html-translation';
|
|
58
29
|
import { ValidJSON } from './valid-json';
|
|
59
30
|
import { ValidDocParamTypes } from './valid-doc-param-types';
|
|
60
|
-
import { ValidLocalBlocks } from './valid-local-blocks';
|
|
61
31
|
import { ValidRenderPartialArgumentTypes } from './valid-render-partial-argument-types';
|
|
62
|
-
import { ValidSchema } from './valid-schema';
|
|
63
|
-
import { ValidSchemaName } from './valid-schema-name';
|
|
64
|
-
import { ValidSettingsKey } from './valid-settings-key';
|
|
65
|
-
import { ValidStaticBlockType } from './valid-static-block-type';
|
|
66
|
-
import { ValidVisibleIf, ValidVisibleIfSettingsSchema } from './valid-visible-if';
|
|
67
32
|
import { VariableName } from './variable-name';
|
|
68
|
-
import { AppBlockMissingSchema } from './app-block-missing-schema';
|
|
69
|
-
import { UniqueSettingIds } from './unique-settings-id';
|
|
70
33
|
import { MetadataParamsCheck } from './metadata-params';
|
|
71
34
|
import { GraphQLVariablesCheck } from './graphql-variables';
|
|
72
35
|
import { GraphQLCheck } from './graphql';
|
|
73
36
|
import { UnknownProperty } from './unknown-property';
|
|
74
37
|
import { InvalidHashAssignTarget } from './invalid-hash-assign-target';
|
|
38
|
+
import { DuplicateFunctionArguments } from './duplicate-function-arguments';
|
|
75
39
|
|
|
76
|
-
export const allChecks: (
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
AssetSizeJavaScript,
|
|
83
|
-
BlockIdUsage,
|
|
84
|
-
CdnPreconnect,
|
|
85
|
-
ContentForHeaderModification,
|
|
86
|
-
DeprecateBgsizes,
|
|
87
|
-
DeprecateLazysizes,
|
|
40
|
+
export const allChecks: (
|
|
41
|
+
| LiquidCheckDefinition
|
|
42
|
+
| JSONCheckDefinition
|
|
43
|
+
| GraphQLCheckDefinition
|
|
44
|
+
| YAMLCheckDefinition
|
|
45
|
+
)[] = [
|
|
88
46
|
DeprecatedFilter,
|
|
89
|
-
DeprecatedFontsOnSectionsAndBlocks,
|
|
90
|
-
DeprecatedFontsOnSettingsSchema,
|
|
91
47
|
DeprecatedTag,
|
|
92
|
-
|
|
48
|
+
DuplicateFunctionArguments,
|
|
93
49
|
DuplicateRenderPartialArguments,
|
|
94
|
-
EmptyBlockContent,
|
|
95
|
-
HardcodedRoutes,
|
|
96
50
|
ImgWidthAndHeight,
|
|
97
|
-
JSONMissingBlock,
|
|
98
51
|
JSONSyntaxError,
|
|
99
|
-
LiquidFreeSettings,
|
|
100
52
|
LiquidHTMLSyntaxError,
|
|
101
53
|
MatchingTranslations,
|
|
102
54
|
MissingAsset,
|
|
103
|
-
|
|
104
|
-
MissingTemplate,
|
|
105
|
-
AppBlockMissingSchema,
|
|
55
|
+
MissingPartial,
|
|
106
56
|
OrphanedPartial,
|
|
107
|
-
PaginationSize,
|
|
108
57
|
ParserBlockingScript,
|
|
109
|
-
SchemaPresetsBlockOrder,
|
|
110
|
-
SchemaPresetsStaticBlocks,
|
|
111
|
-
RemoteAsset,
|
|
112
|
-
ReservedDocParamNames,
|
|
113
|
-
StaticStylesheetAndJavascriptTags,
|
|
114
58
|
TranslationKeyExists,
|
|
115
59
|
UnclosedHTMLElement,
|
|
116
60
|
UndefinedObject,
|
|
117
61
|
UniqueDocParamNames,
|
|
118
|
-
UniqueSettingIds,
|
|
119
|
-
UniqueStaticBlockId,
|
|
120
62
|
UnknownFilter,
|
|
121
|
-
UnrecognizedContentForArguments,
|
|
122
63
|
UnrecognizedRenderPartialArguments,
|
|
123
64
|
UnusedAssign,
|
|
124
65
|
UnusedDocParam,
|
|
125
|
-
ValidBlockTarget,
|
|
126
66
|
ValidHTMLTranslation,
|
|
127
|
-
ValidContentForArguments,
|
|
128
|
-
ValidContentForArgumentTypes,
|
|
129
67
|
ValidJSON,
|
|
130
68
|
ValidDocParamTypes,
|
|
131
|
-
ValidLocalBlocks,
|
|
132
69
|
ValidRenderPartialArgumentTypes,
|
|
133
|
-
ValidSchema,
|
|
134
|
-
ValidSettingsKey,
|
|
135
|
-
ValidStaticBlockType,
|
|
136
|
-
ValidVisibleIf,
|
|
137
|
-
ValidVisibleIfSettingsSchema,
|
|
138
70
|
VariableName,
|
|
139
|
-
ValidSchemaName,
|
|
140
71
|
MetadataParamsCheck,
|
|
141
72
|
GraphQLVariablesCheck,
|
|
142
73
|
GraphQLCheck,
|
|
@@ -1,75 +1,75 @@
|
|
|
1
1
|
import { describe, it, expect } from 'vitest';
|
|
2
2
|
import { InvalidHashAssignTarget } from './index';
|
|
3
|
-
import { check,
|
|
3
|
+
import { check, MockApp } from '../../test';
|
|
4
4
|
|
|
5
5
|
describe('Module: InvalidHashAssignTarget', () => {
|
|
6
6
|
it('should report an error when hash_assign is used on a number', async () => {
|
|
7
|
-
const
|
|
7
|
+
const app: MockApp = {
|
|
8
8
|
'file.liquid': `
|
|
9
9
|
{% assign x = 10 %}
|
|
10
10
|
{% hash_assign x['key'] = 'value' %}
|
|
11
11
|
`,
|
|
12
12
|
};
|
|
13
13
|
|
|
14
|
-
const offenses = await check(
|
|
14
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
15
15
|
expect(offenses).toHaveLength(1);
|
|
16
16
|
expect(offenses[0].message).toContain('number');
|
|
17
17
|
expect(offenses[0].message).toContain('hash_assign');
|
|
18
18
|
});
|
|
19
19
|
|
|
20
20
|
it('should report an error when hash_assign is used on a string', async () => {
|
|
21
|
-
const
|
|
21
|
+
const app: MockApp = {
|
|
22
22
|
'file.liquid': `
|
|
23
23
|
{% assign x = 'hello' %}
|
|
24
24
|
{% hash_assign x['key'] = 'value' %}
|
|
25
25
|
`,
|
|
26
26
|
};
|
|
27
27
|
|
|
28
|
-
const offenses = await check(
|
|
28
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
29
29
|
expect(offenses).toHaveLength(1);
|
|
30
30
|
expect(offenses[0].message).toContain('string');
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
it('should report an error when hash_assign is used on a boolean', async () => {
|
|
34
|
-
const
|
|
34
|
+
const app: MockApp = {
|
|
35
35
|
'file.liquid': `
|
|
36
36
|
{% assign x = true %}
|
|
37
37
|
{% hash_assign x['key'] = 'value' %}
|
|
38
38
|
`,
|
|
39
39
|
};
|
|
40
40
|
|
|
41
|
-
const offenses = await check(
|
|
41
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
42
42
|
expect(offenses).toHaveLength(1);
|
|
43
43
|
expect(offenses[0].message).toContain('boolean');
|
|
44
44
|
});
|
|
45
45
|
|
|
46
46
|
it('should report an error when hash_assign is used on an array (range)', async () => {
|
|
47
|
-
const
|
|
47
|
+
const app: MockApp = {
|
|
48
48
|
'file.liquid': `
|
|
49
49
|
{% assign x = (1..5) %}
|
|
50
50
|
{% hash_assign x['key'] = 'value' %}
|
|
51
51
|
`,
|
|
52
52
|
};
|
|
53
53
|
|
|
54
|
-
const offenses = await check(
|
|
54
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
55
55
|
expect(offenses).toHaveLength(1);
|
|
56
56
|
expect(offenses[0].message).toContain('array');
|
|
57
57
|
});
|
|
58
58
|
|
|
59
59
|
it('should not report an error when hash_assign is used on an object from parse_json', async () => {
|
|
60
|
-
const
|
|
60
|
+
const app: MockApp = {
|
|
61
61
|
'file.liquid': `
|
|
62
62
|
{% assign x = '{}' | parse_json %}
|
|
63
63
|
{% hash_assign x['key'] = 'value' %}
|
|
64
64
|
`,
|
|
65
65
|
};
|
|
66
66
|
|
|
67
|
-
const offenses = await check(
|
|
67
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
68
68
|
expect(offenses).toHaveLength(0);
|
|
69
69
|
});
|
|
70
70
|
|
|
71
71
|
it('should not report an error when hash_assign is used on an object from parse_json tag', async () => {
|
|
72
|
-
const
|
|
72
|
+
const app: MockApp = {
|
|
73
73
|
'file.liquid': `
|
|
74
74
|
{% parse_json x %}
|
|
75
75
|
{}
|
|
@@ -78,12 +78,12 @@ describe('Module: InvalidHashAssignTarget', () => {
|
|
|
78
78
|
`,
|
|
79
79
|
};
|
|
80
80
|
|
|
81
|
-
const offenses = await check(
|
|
81
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
82
82
|
expect(offenses).toHaveLength(0);
|
|
83
83
|
});
|
|
84
84
|
|
|
85
85
|
it('should not report an error when hash_assign is used on an object from graphql', async () => {
|
|
86
|
-
const
|
|
86
|
+
const app: MockApp = {
|
|
87
87
|
'file.liquid': `
|
|
88
88
|
{% graphql result %}
|
|
89
89
|
query { user { id } }
|
|
@@ -92,35 +92,35 @@ describe('Module: InvalidHashAssignTarget', () => {
|
|
|
92
92
|
`,
|
|
93
93
|
};
|
|
94
94
|
|
|
95
|
-
const offenses = await check(
|
|
95
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
96
96
|
expect(offenses).toHaveLength(0);
|
|
97
97
|
});
|
|
98
98
|
|
|
99
99
|
it('should not report an error when hash_assign is used on an untyped variable', async () => {
|
|
100
|
-
const
|
|
100
|
+
const app: MockApp = {
|
|
101
101
|
'file.liquid': `
|
|
102
102
|
{% hash_assign unknown_var['key'] = 'value' %}
|
|
103
103
|
`,
|
|
104
104
|
};
|
|
105
105
|
|
|
106
|
-
const offenses = await check(
|
|
106
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
107
107
|
expect(offenses).toHaveLength(0);
|
|
108
108
|
});
|
|
109
109
|
|
|
110
110
|
it('should not report an error when hash_assign is used on a function return', async () => {
|
|
111
|
-
const
|
|
111
|
+
const app: MockApp = {
|
|
112
112
|
'file.liquid': `
|
|
113
113
|
{% function data = 'lib/get_data' %}
|
|
114
114
|
{% hash_assign data['extra'] = 'value' %}
|
|
115
115
|
`,
|
|
116
116
|
};
|
|
117
117
|
|
|
118
|
-
const offenses = await check(
|
|
118
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
119
119
|
expect(offenses).toHaveLength(0);
|
|
120
120
|
});
|
|
121
121
|
|
|
122
122
|
it('should track reassignment and report error on new type', async () => {
|
|
123
|
-
const
|
|
123
|
+
const app: MockApp = {
|
|
124
124
|
'file.liquid': `
|
|
125
125
|
{% assign x = '{}' | parse_json %}
|
|
126
126
|
{% hash_assign x['key1'] = 'value1' %}
|
|
@@ -129,39 +129,39 @@ describe('Module: InvalidHashAssignTarget', () => {
|
|
|
129
129
|
`,
|
|
130
130
|
};
|
|
131
131
|
|
|
132
|
-
const offenses = await check(
|
|
132
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
133
133
|
expect(offenses).toHaveLength(1);
|
|
134
134
|
expect(offenses[0].message).toContain('number');
|
|
135
135
|
});
|
|
136
136
|
|
|
137
137
|
it('should handle increment/decrement as numbers', async () => {
|
|
138
|
-
const
|
|
138
|
+
const app: MockApp = {
|
|
139
139
|
'file.liquid': `
|
|
140
140
|
{% increment counter %}
|
|
141
141
|
{% hash_assign counter['key'] = 'value' %}
|
|
142
142
|
`,
|
|
143
143
|
};
|
|
144
144
|
|
|
145
|
-
const offenses = await check(
|
|
145
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
146
146
|
expect(offenses).toHaveLength(1);
|
|
147
147
|
expect(offenses[0].message).toContain('number');
|
|
148
148
|
});
|
|
149
149
|
|
|
150
150
|
it('should handle capture as string', async () => {
|
|
151
|
-
const
|
|
151
|
+
const app: MockApp = {
|
|
152
152
|
'file.liquid': `
|
|
153
153
|
{% capture x %}hello{% endcapture %}
|
|
154
154
|
{% hash_assign x['key'] = 'value' %}
|
|
155
155
|
`,
|
|
156
156
|
};
|
|
157
157
|
|
|
158
|
-
const offenses = await check(
|
|
158
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
159
159
|
expect(offenses).toHaveLength(1);
|
|
160
160
|
expect(offenses[0].message).toContain('string');
|
|
161
161
|
});
|
|
162
162
|
|
|
163
163
|
it('should allow multiple hash_assign on same object', async () => {
|
|
164
|
-
const
|
|
164
|
+
const app: MockApp = {
|
|
165
165
|
'file.liquid': `
|
|
166
166
|
{% assign x = '{}' | parse_json %}
|
|
167
167
|
{% hash_assign x['key1'] = 'value1' %}
|
|
@@ -170,7 +170,7 @@ describe('Module: InvalidHashAssignTarget', () => {
|
|
|
170
170
|
`,
|
|
171
171
|
};
|
|
172
172
|
|
|
173
|
-
const offenses = await check(
|
|
173
|
+
const offenses = await check(app, [InvalidHashAssignTarget]);
|
|
174
174
|
expect(offenses).toHaveLength(0);
|
|
175
175
|
});
|
|
176
176
|
});
|
|
@@ -13,9 +13,9 @@ export const JSONSyntaxError: JSONCheckDefinition = {
|
|
|
13
13
|
code: 'JSONSyntaxError',
|
|
14
14
|
name: 'Enforce valid JSON',
|
|
15
15
|
docs: {
|
|
16
|
-
description: 'This check exists to prevent invalid JSON files in
|
|
16
|
+
description: 'This check exists to prevent invalid JSON files in apps.',
|
|
17
17
|
recommended: true,
|
|
18
|
-
url: 'https://
|
|
18
|
+
url: 'https://documentation.platformos.com/developer-guide/platformos-check/checks/json-syntax-error',
|
|
19
19
|
},
|
|
20
20
|
type: SourceCodeType.JSON,
|
|
21
21
|
severity: Severity.ERROR,
|
|
@@ -12,17 +12,6 @@ describe('detectTrailingAssignValue', async () => {
|
|
|
12
12
|
}
|
|
13
13
|
});
|
|
14
14
|
|
|
15
|
-
it('should not report when the boolean expression is in a schema tag', async () => {
|
|
16
|
-
const sourceCode = `{% schema %}
|
|
17
|
-
{
|
|
18
|
-
"visible_if": "{{ this > that }}"
|
|
19
|
-
}
|
|
20
|
-
{% endschema %}`;
|
|
21
|
-
|
|
22
|
-
const offenses = await runLiquidCheck(LiquidHTMLSyntaxError, sourceCode);
|
|
23
|
-
expect(offenses).to.have.length(0);
|
|
24
|
-
});
|
|
25
|
-
|
|
26
15
|
it('should report all use of boolean expressions', async () => {
|
|
27
16
|
const testCases = [
|
|
28
17
|
[`{% assign foo = something == else %}`, '{% assign foo = something %}'],
|
|
@@ -109,7 +109,7 @@ describe('detectInvalidLoopArguments', async () => {
|
|
|
109
109
|
|
|
110
110
|
function testCheck(sourceCode: string) {
|
|
111
111
|
return runLiquidCheck(LiquidHTMLSyntaxError, sourceCode, undefined, {
|
|
112
|
-
|
|
112
|
+
platformosDocset: {
|
|
113
113
|
graphQL: async () => null,
|
|
114
114
|
tags: () =>
|
|
115
115
|
Promise.resolve([
|
|
@@ -139,7 +139,6 @@ function testCheck(sourceCode: string) {
|
|
|
139
139
|
filters: () => Promise.resolve([]),
|
|
140
140
|
objects: () => Promise.resolve([]),
|
|
141
141
|
liquidDrops: () => Promise.resolve([]),
|
|
142
|
-
systemTranslations: () => Promise.resolve({}),
|
|
143
142
|
},
|
|
144
143
|
});
|
|
145
144
|
}
|
|
@@ -101,13 +101,13 @@ export function detectInvalidLoopArguments(
|
|
|
101
101
|
}
|
|
102
102
|
|
|
103
103
|
function isSupportedTagArgument(
|
|
104
|
-
tags: TagEntry[],
|
|
104
|
+
tags: TagEntry[] | undefined,
|
|
105
105
|
tagName: string,
|
|
106
106
|
key: string,
|
|
107
107
|
positional: boolean,
|
|
108
108
|
) {
|
|
109
109
|
return (
|
|
110
|
-
tags
|
|
110
|
+
(tags ?? [])
|
|
111
111
|
.find((tag) => tag.name === tagName)
|
|
112
112
|
?.parameters?.some(
|
|
113
113
|
(parameter) => parameter.name === key && parameter.positional === positional,
|