@platformos/platformos-check-common 0.0.11 → 0.0.13

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.
Files changed (140) hide show
  1. package/CHANGELOG.md +39 -0
  2. package/CLAUDE.md +150 -0
  3. package/dist/AugmentedPlatformOSDocset.js +1 -0
  4. package/dist/AugmentedPlatformOSDocset.js.map +1 -1
  5. package/dist/checks/circular-render/index.d.ts +2 -0
  6. package/dist/checks/circular-render/index.js +164 -0
  7. package/dist/checks/circular-render/index.js.map +1 -0
  8. package/dist/checks/deprecated-filter/index.js +15 -0
  9. package/dist/checks/deprecated-filter/index.js.map +1 -1
  10. package/dist/checks/duplicate-content-for-arguments/index.js +1 -1
  11. package/dist/checks/duplicate-content-for-arguments/index.js.map +1 -1
  12. package/dist/checks/graphql/index.d.ts +1 -0
  13. package/dist/checks/graphql/index.js +20 -7
  14. package/dist/checks/graphql/index.js.map +1 -1
  15. package/dist/checks/index.d.ts +1 -1
  16. package/dist/checks/index.js +6 -0
  17. package/dist/checks/index.js.map +1 -1
  18. package/dist/checks/invalid-hash-assign-target/index.js +4 -3
  19. package/dist/checks/invalid-hash-assign-target/index.js.map +1 -1
  20. package/dist/checks/missing-content-for-arguments/index.js +1 -1
  21. package/dist/checks/missing-content-for-arguments/index.js.map +1 -1
  22. package/dist/checks/missing-page/index.d.ts +2 -0
  23. package/dist/checks/missing-page/index.js +73 -0
  24. package/dist/checks/missing-page/index.js.map +1 -0
  25. package/dist/checks/missing-partial/index.js +31 -31
  26. package/dist/checks/missing-partial/index.js.map +1 -1
  27. package/dist/checks/missing-render-partial-arguments/index.d.ts +2 -0
  28. package/dist/checks/missing-render-partial-arguments/index.js +37 -0
  29. package/dist/checks/missing-render-partial-arguments/index.js.map +1 -0
  30. package/dist/checks/nested-graphql-query/index.d.ts +2 -0
  31. package/dist/checks/nested-graphql-query/index.js +146 -0
  32. package/dist/checks/nested-graphql-query/index.js.map +1 -0
  33. package/dist/checks/pagination-size/index.js +1 -1
  34. package/dist/checks/pagination-size/index.js.map +1 -1
  35. package/dist/checks/translation-key-exists/index.js +16 -19
  36. package/dist/checks/translation-key-exists/index.js.map +1 -1
  37. package/dist/checks/translation-utils.d.ts +20 -0
  38. package/dist/checks/translation-utils.js +51 -0
  39. package/dist/checks/translation-utils.js.map +1 -0
  40. package/dist/checks/undefined-object/index.js +35 -13
  41. package/dist/checks/undefined-object/index.js.map +1 -1
  42. package/dist/checks/unknown-property/index.js +75 -10
  43. package/dist/checks/unknown-property/index.js.map +1 -1
  44. package/dist/checks/unknown-property/property-shape.js +14 -1
  45. package/dist/checks/unknown-property/property-shape.js.map +1 -1
  46. package/dist/checks/unrecognized-content-for-arguments/index.js +1 -1
  47. package/dist/checks/unrecognized-content-for-arguments/index.js.map +1 -1
  48. package/dist/checks/unused-assign/index.js +23 -1
  49. package/dist/checks/unused-assign/index.js.map +1 -1
  50. package/dist/checks/unused-translation-key/index.d.ts +4 -0
  51. package/dist/checks/unused-translation-key/index.js +85 -0
  52. package/dist/checks/unused-translation-key/index.js.map +1 -0
  53. package/dist/checks/valid-content-for-argument-types/index.js +1 -1
  54. package/dist/checks/valid-content-for-argument-types/index.js.map +1 -1
  55. package/dist/checks/valid-render-partial-argument-types/index.js +2 -1
  56. package/dist/checks/valid-render-partial-argument-types/index.js.map +1 -1
  57. package/dist/checks/variable-name/index.js +4 -0
  58. package/dist/checks/variable-name/index.js.map +1 -1
  59. package/dist/context-utils.d.ts +2 -1
  60. package/dist/context-utils.js +31 -1
  61. package/dist/context-utils.js.map +1 -1
  62. package/dist/doc-generator/DocBlockGenerator.d.ts +16 -0
  63. package/dist/doc-generator/DocBlockGenerator.js +464 -0
  64. package/dist/doc-generator/DocBlockGenerator.js.map +1 -0
  65. package/dist/doc-generator/index.d.ts +1 -0
  66. package/dist/doc-generator/index.js +6 -0
  67. package/dist/doc-generator/index.js.map +1 -0
  68. package/dist/frontmatter/index.d.ts +59 -0
  69. package/dist/frontmatter/index.js +301 -0
  70. package/dist/frontmatter/index.js.map +1 -0
  71. package/dist/index.d.ts +3 -1
  72. package/dist/index.js +6 -1
  73. package/dist/index.js.map +1 -1
  74. package/dist/liquid-doc/arguments.js +9 -0
  75. package/dist/liquid-doc/arguments.js.map +1 -1
  76. package/dist/liquid-doc/utils.d.ts +10 -2
  77. package/dist/liquid-doc/utils.js +26 -1
  78. package/dist/liquid-doc/utils.js.map +1 -1
  79. package/dist/path.d.ts +1 -1
  80. package/dist/path.js +3 -1
  81. package/dist/path.js.map +1 -1
  82. package/dist/to-schema.d.ts +1 -1
  83. package/dist/tsconfig.tsbuildinfo +1 -1
  84. package/dist/types.d.ts +8 -1
  85. package/dist/types.js.map +1 -1
  86. package/dist/url-helpers.d.ts +55 -0
  87. package/dist/url-helpers.js +334 -0
  88. package/dist/url-helpers.js.map +1 -0
  89. package/dist/utils/block.js.map +1 -1
  90. package/dist/utils/index.d.ts +1 -0
  91. package/dist/utils/index.js +1 -0
  92. package/dist/utils/index.js.map +1 -1
  93. package/dist/utils/levenshtein.d.ts +3 -0
  94. package/dist/utils/levenshtein.js +39 -0
  95. package/dist/utils/levenshtein.js.map +1 -0
  96. package/package.json +2 -2
  97. package/src/AugmentedPlatformOSDocset.ts +1 -0
  98. package/src/checks/deprecated-filter/index.spec.ts +41 -1
  99. package/src/checks/deprecated-filter/index.ts +17 -0
  100. package/src/checks/graphql/index.spec.ts +173 -0
  101. package/src/checks/graphql/index.ts +21 -10
  102. package/src/checks/index.ts +6 -0
  103. package/src/checks/invalid-hash-assign-target/index.spec.ts +26 -0
  104. package/src/checks/invalid-hash-assign-target/index.ts +6 -4
  105. package/src/checks/missing-page/index.spec.ts +755 -0
  106. package/src/checks/missing-page/index.ts +89 -0
  107. package/src/checks/missing-partial/index.spec.ts +361 -0
  108. package/src/checks/missing-partial/index.ts +39 -47
  109. package/src/checks/missing-render-partial-arguments/index.spec.ts +74 -0
  110. package/src/checks/missing-render-partial-arguments/index.ts +44 -0
  111. package/src/checks/nested-graphql-query/index.spec.ts +175 -0
  112. package/src/checks/nested-graphql-query/index.ts +203 -0
  113. package/src/checks/parser-blocking-script/index.spec.ts +7 -3
  114. package/src/checks/translation-key-exists/index.spec.ts +79 -2
  115. package/src/checks/translation-key-exists/index.ts +18 -27
  116. package/src/checks/translation-utils.ts +63 -0
  117. package/src/checks/undefined-object/index.spec.ts +153 -19
  118. package/src/checks/undefined-object/index.ts +43 -19
  119. package/src/checks/unknown-property/index.spec.ts +133 -0
  120. package/src/checks/unknown-property/index.ts +84 -10
  121. package/src/checks/unknown-property/property-shape.ts +15 -1
  122. package/src/checks/unused-assign/index.spec.ts +75 -1
  123. package/src/checks/unused-assign/index.ts +26 -1
  124. package/src/checks/unused-doc-param/index.spec.ts +4 -2
  125. package/src/checks/valid-doc-param-types/index.spec.ts +1 -1
  126. package/src/checks/valid-render-partial-argument-types/index.spec.ts +24 -1
  127. package/src/checks/valid-render-partial-argument-types/index.ts +3 -2
  128. package/src/checks/variable-name/index.spec.ts +10 -1
  129. package/src/checks/variable-name/index.ts +5 -0
  130. package/src/context-utils.ts +33 -1
  131. package/src/frontmatter/index.ts +344 -0
  132. package/src/index.ts +6 -0
  133. package/src/liquid-doc/arguments.ts +9 -0
  134. package/src/liquid-doc/utils.ts +26 -2
  135. package/src/path.ts +2 -0
  136. package/src/types.ts +9 -1
  137. package/src/url-helpers.spec.ts +241 -0
  138. package/src/url-helpers.ts +363 -0
  139. package/src/utils/index.ts +1 -0
  140. package/src/utils/levenshtein.ts +41 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,44 @@
1
1
  # @platformos/theme-check-common
2
2
 
3
+ ## 0.0.13
4
+
5
+ ### Patch Changes
6
+
7
+ - **MissingRenderPartialArguments**: Reports an error when required `@param` arguments declared in a partial's LiquidDoc are not provided at the `{% render %}` call site.
8
+ - **NestedGraphQLQuery**: Detects N+1 query patterns — `{% graphql %}` tags inside `{% for %}`/`{% tablerow %}` loops. Also follows `{% function %}` and `{% render %}` calls transitively to detect indirect GraphQL queries. Skips loops wrapped in `{% cache %}` or `{% background %}`.
9
+ - Added **GraphQLFieldCompletionProvider**: Provides completions for GraphQL field names.
10
+ - Added **GraphQLFieldHoverProvider**: Shows hover documentation for GraphQL fields.
11
+ - Added `theme_render_rc` as a new document type, enabling the `{% theme_render_rc %}` tag to resolve partials through configurable `theme_search_paths` defined in `app/config.yml`.
12
+ - **DocumentsLocator**: New `locateWithSearchPaths()` method resolves partials using prioritized search paths, including dynamic paths with `{{ }}` Liquid expressions that expand by enumerating subdirectories.
13
+ - **loadSearchPaths()**: New utility to read and parse `theme_search_paths` from `app/config.yml`.
14
+ - **TranslationKeyExists**: Refactored to load all defined keys (app-level and module-level) in a single pass. Now suggests nearest matching keys using Levenshtein distance when a translation key is not found.
15
+ - Extracted shared translation utilities into `translation-utils.ts` for module discovery and key loading.
16
+ - Added `levenshtein.ts` utility for fuzzy key matching.
17
+ - Added support for `{% try %}...{% catch error %}` — the error variable in catch branches is now correctly registered as defined, preventing false-positive "undefined object" warnings.
18
+ - `null`/`nil` literals are now treated as compatible with any `@param` type, preventing false type-mismatch errors when passing null values to partials.
19
+ - `recursiveReadDirectory` now gracefully handles `ENOENT` errors instead of crashing when a directory doesn't exist.
20
+ - **MissingPartial** check updated to support `theme_render_rc` tag resolution through search paths.
21
+ - Extracted `tryExtractAssignUrl()` helper to deduplicate assign-to-URL resolution logic shared between `MissingPage` check and `buildVariableMap`.
22
+ - Fixed `buildVariableMap` to correctly recurse into block tags (`{% if %}`, `{% for %}`) whose position spans beyond the cursor offset — previously assigns inside such blocks could be missed.
23
+ - **SearchPathsLoader**: Now caches `theme_search_paths` per root URI to avoid re-reading `app/config.yml` on every request. Invalidated when file watchers detect config changes.
24
+ - Immediate cache invalidation on `app/config.yml` save (via `onDidSaveTextDocument`) so go-to-definition doesn't see stale data.
25
+ - Bulk file-watcher threshold extracted to `BULK_PAGE_CHANGE_THRESHOLD` constant.
26
+ - **RouteTable**: Added `routeCount()` method returning total number of route entries.
27
+ - Route table build errors are now properly handled — a failed build resets the cached promise so subsequent attempts can retry.
28
+ - `MissingPartial` check simplified with a shared `reportIfMissing()` helper, reducing code duplication across `RenderMarkup`, `FunctionMarkup`, and `GraphQLMarkup` visitors.
29
+ - AST traversal helpers (`getTraversableChildren`, `getTraversableMarkup`) extracted in `url-helpers.ts`.
30
+ - `MissingPage` check front-loads route table building in `onCodePathStart` instead of lazy-loading per element visit.
31
+ - Updated dependencies
32
+ - @platformos/liquid-html-parser@0.0.12
33
+
34
+ ## 0.0.12
35
+
36
+ ### Patch Changes
37
+
38
+ - Beta release
39
+ - Updated dependencies
40
+ - @platformos/liquid-html-parser@0.0.11
41
+
3
42
  ## 0.0.11
4
43
 
5
44
  ## 0.0.10
package/CLAUDE.md ADDED
@@ -0,0 +1,150 @@
1
+ # CLAUDE.md
2
+
3
+ This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4
+
5
+ ## Overview
6
+
7
+ `@platformos/platformos-check-common` is the runtime-agnostic core of the platformOS linting engine. It defines all check logic, types, the visitor traversal system, the fix/autofix infrastructure, and test utilities. It has no Node.js or browser dependencies — those are in `-node` / `-browser` sibling packages.
8
+
9
+ ## Commands
10
+
11
+ ```bash
12
+ # From this directory:
13
+ yarn test # Run all tests (vitest)
14
+ yarn build # tsc -b tsconfig.build.json
15
+ yarn type-check # tsc --noEmit
16
+
17
+ # Run a single test file:
18
+ yarn test src/checks/deprecated-filter/index.spec.ts
19
+
20
+ # Run tests matching a name pattern:
21
+ yarn test --reporter=verbose -t "DeprecatedFilter"
22
+ ```
23
+
24
+ ## Architecture
25
+
26
+ ### Core pipeline (`src/index.ts`)
27
+
28
+ `check(app, config, dependencies)` is the entry point. It:
29
+ 1. Wraps raw `Dependencies` with augmented helpers (file-exists, translations, etc.)
30
+ 2. Wraps the raw docset in `AugmentedPlatformOSDocset` (memoized, adds undocumented filters/tags)
31
+ 3. Iterates over `SourceCodeType` values (JSON, LiquidHtml, GraphQL, YAML) and runs each applicable `CheckDefinition` against each file via visitors
32
+
33
+ ### Source code types (`src/types.ts`)
34
+
35
+ `SourceCodeType` has four values. Their AST types:
36
+ - `LiquidHtml` → `LiquidHtmlNode` (from `@platformos/liquid-html-parser`)
37
+ - `JSON` → `JSONNode` (jsonc-parser wrapper, `src/jsonc/types.ts`)
38
+ - `YAML` → **also `JSONNode`** — YAML is parsed into the same JSONNode AST via `src/yaml/parse.ts`
39
+ - `GraphQL` → `GraphQLDocumentNode` (just `{ type: 'Document', content: string }`)
40
+
41
+ ### Check definition pattern
42
+
43
+ Every check exports a `CheckDefinition<SourceCodeType.X>` object:
44
+
45
+ ```ts
46
+ export const MyCheck: LiquidCheckDefinition = {
47
+ meta: {
48
+ code: 'MyCheck', // used in config and offenses
49
+ name: '...',
50
+ docs: { description: '...', recommended: true },
51
+ type: SourceCodeType.LiquidHtml,
52
+ severity: Severity.WARNING,
53
+ schema: {}, // configurable settings shape
54
+ targets: [], // ConfigTarget[] or empty = all configs
55
+ },
56
+ create(context) {
57
+ // Called once per file. Return visitor methods as a plain object.
58
+ return {
59
+ async LiquidTag(node, ancestors) { ... },
60
+ async onCodePathEnd(file) { ... },
61
+ };
62
+ },
63
+ };
64
+ ```
65
+
66
+ - `context` has: `report()`, `file`, `config`, `settings`, `toUri()`, `toRelativePath()`, `fs`, `platformosDocset`, `getDocDefinition`, `getReferences`, `fileExists`, `fileSize`, `getDefaultLocale`, `getDefaultTranslations`, `getTranslationsForBase`, `validateJSON`
67
+ - `context.report({ message, startIndex, endIndex, fix?, suggest? })` records an offense
68
+ - `fix` is safe auto-fix; `suggest` is manual (multiple options or unsafe)
69
+ - New checks must be registered in `src/checks/index.ts` → `allChecks` array
70
+
71
+ ### Visitor system (`src/visitor.ts`)
72
+
73
+ `visit<S, R>(ast, visitor)` walks an AST depth-first and collects return values.
74
+
75
+ For checks the engine calls `visitLiquid` / `visitJSON` which support both entry (`NodeType`) and exit (`NodeType:exit`) visitor methods, plus `onCodePathStart` / `onCodePathEnd` lifecycle hooks.
76
+
77
+ `findCurrentNode(ast, cursorPosition)` — used by LSP for cursor-aware features.
78
+
79
+ ### Fix / autofix infrastructure (`src/fixes/`)
80
+
81
+ - `StringCorrector` — for Liquid/YAML: records `replace(start, end, text)` and `remove(start, end)` operations
82
+ - `JSONCorrector` — for JSON: operates on the JSONNode tree
83
+ - `GraphQLCorrector` — for GraphQL
84
+ - `createCorrector(type, source)` — factory returning the right corrector
85
+ - `applyFixToString(source, fix)` — applies collected `FixDescription[]` to a string
86
+ - No YAML autofix: `createCorrector` throws for `SourceCodeType.YAML`
87
+
88
+ ### `AugmentedPlatformOSDocset` (`src/AugmentedPlatformOSDocset.ts`)
89
+
90
+ Wraps the raw `PlatformOSDocset` (from dependency injection) with:
91
+ - Memoization on all methods
92
+ - Alias expansion for filters
93
+ - Normalization of inconsistent `deprecated: false` + `deprecation_reason: 'true'` entries
94
+ - Injection of undocumented-but-valid filters/tags
95
+
96
+ ### Context utilities (`src/context-utils.ts`)
97
+
98
+ Factory functions for the augmented dependency methods:
99
+ - `makeGetTranslationsForBase(fs, app)` — loads and merges YAML translation files; open editor buffers take precedence over filesystem
100
+ - `makeGetDefaultTranslations(fs, app, rootUri)` — loads `app/translations/en.yml`, strips locale root key
101
+ - `makeGetDefaultLocale(fs, rootUri)` — always returns `'en'`
102
+
103
+ ## Testing
104
+
105
+ Tests use **Vitest** with custom matchers defined in `src/test/`.
106
+
107
+ ### Test utilities (`src/test/test-helper.ts`)
108
+
109
+ ```ts
110
+ import { runLiquidCheck, runJSONCheck, runYAMLCheck, check } from '../../test';
111
+
112
+ // Run a single check on one file:
113
+ const offenses = await runLiquidCheck(MyCheck, '{{ x | unknown }}', 'file.liquid', mockDependencies);
114
+
115
+ // Run recommended checks on a whole mock app:
116
+ const offenses = await check({ 'app/views/partials/foo.liquid': '...' });
117
+
118
+ // Apply the auto-fix suggestion:
119
+ const result = applySuggestions(sourceCode, offenses[0]);
120
+
121
+ // Show highlighted source ranges for offenses:
122
+ const highlighted = highlightedOffenses({ 'file.liquid': sourceCode }, offenses);
123
+ ```
124
+
125
+ `MockApp` is `Record<relativePath, source>`. `MockFileSystem` provides the `AbstractFileSystem` implementation backed by the same object.
126
+
127
+ ### Custom matchers
128
+
129
+ - `expect(offenses).containOffense('message string')` — checks by message
130
+ - `expect(offenses).containOffense({ check: 'Code', severity: Severity.WARNING })` — checks by subset of keys
131
+ - Chai-based (legacy): `.to.offer.fix()`, `.to.suggest()`
132
+
133
+ ### Test setup (`src/test/test-setup.ts`)
134
+
135
+ Loaded automatically by vitest (see root `vitest.config.ts`). Registers the custom matchers. New tests should use `expect.extend` / `containOffense` style, not chai.
136
+
137
+ ## Key types to know
138
+
139
+ | Type | Purpose |
140
+ |------|---------|
141
+ | `App` | `SourceCode[]` — the full set of files to check |
142
+ | `SourceCode<T>` | `{ uri, type, source, ast, version? }` |
143
+ | `CheckDefinition<T>` | Static descriptor with `meta` + `create` factory |
144
+ | `Check<T>` | Visitor object returned by `create()` |
145
+ | `Context<T, S>` | Passed to `create()`; includes `report()` and all deps |
146
+ | `Offense` | Recorded problem: `{ check, message, uri, severity, start, end, fix?, suggest? }` |
147
+ | `Problem<T>` | Argument to `context.report()` |
148
+ | `Dependencies` | Injectable services (`fs`, `platformosDocset`, etc.) |
149
+ | `AugmentedDependencies` | Extends `Dependencies` with derived helpers |
150
+ | `PlatformOSDocset` | `filters()`, `objects()`, `tags()`, `graphQL()` |
@@ -33,6 +33,7 @@ const undocumentedFilters = [
33
33
  'handle_from',
34
34
  'pad_spaces',
35
35
  'paragraphize',
36
+ 'push',
36
37
  'sentence',
37
38
  'unit',
38
39
  'weight',
@@ -1 +1 @@
1
- {"version":3,"file":"AugmentedPlatformOSDocset.js","sourceRoot":"","sources":["../src/AugmentedPlatformOSDocset.ts"],"names":[],"mappings":";;;AACA,mCAA+B;AAE/B,MAAM,aAAa,GAAG,CAAC,IAAY,EAAe,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAEhE,MAAM,aAAa,GAAG,CAAC,OAAsB,EAAiB,EAAE;IAC9D,OAAO,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAc,KAAa,CAAC,OAAO,IAAI,EAAE,CAAC;QACvD,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,oBAAoB,GAAG,CAAC,KAAkB,EAAe,EAAE;IAC/D,IAAI,CAAC,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,kBAAkB,KAAK,MAAM,EAAE,CAAC;QAC7D,OAAO,EAAE,GAAG,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AAEF;;GAEG;AACH,MAAM,mBAAmB,GAAG;IAC1B,OAAO;IACP,eAAe;IACf,sBAAsB;IACtB,SAAS;IACT,aAAa;IACb,GAAG;IACH,aAAa;IACb,YAAY;IACZ,cAAc;IACd,UAAU;IACV,MAAM;IACN,QAAQ;CACT,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAE1D;;GAEG;AACH,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,WAAW,EAAE,MAAM,CAAC,CAAC;AAExD,MAAa,yBAAyB;IACpC,YAAoB,gBAAkC;QAAlC,qBAAgB,GAAhB,gBAAgB,CAAkB;QACtD,YAAO,GAAG,IAAA,YAAI,EAAC,KAAK,IAA4B,EAAE;YAChD,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEI,gBAAW,GAAG,IAAI,CAAC;QAE1B,YAAO,GAAG,IAAA,YAAI,EAAC,KAAK,IAA4B,EAAE;YAChD,MAAM,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;YAC1F,OAAO;gBACL,GAAG,eAAe;gBAClB,GAAG,aAAa,CAAC,eAAe,CAAC;gBACjC,GAAG,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC;aAC1C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,YAAO,GAAG,IAAA,YAAI,EAAC,KAAK,IAA4B,EAAE;YAChD,OAAO,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,gBAAW,GAAG,IAAA,YAAI,EAAC,KAAK,IAA4B,EAAE;YACpD,OAAO,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC5D,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;oBACnB,OAAO,KAAK,CAAC;gBACf,CAAC;gBAED,qDAAqD;gBACrD,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACpF,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,SAAI,GAAG,IAAA,YAAI,EAAC,KAAK,IAAyB,EAAE;YAC1C,OAAO,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACxF,CAAC,CAAC,CAAC;IArCsD,CAAC;CAsC3D;AAvCD,8DAuCC"}
1
+ {"version":3,"file":"AugmentedPlatformOSDocset.js","sourceRoot":"","sources":["../src/AugmentedPlatformOSDocset.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { LiquidCheckDefinition } from '../../types';
2
+ export declare const CircularRender: LiquidCheckDefinition;
@@ -0,0 +1,164 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CircularRender = void 0;
4
+ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
5
+ const types_1 = require("../../types");
6
+ const platformos_common_1 = require("@platformos/platformos-common");
7
+ const vscode_uri_1 = require("vscode-uri");
8
+ const MAX_DEPTH = 50;
9
+ // Module-level cache: URI -> partial references extracted from that file.
10
+ // Shared across all files in a check run to avoid re-parsing.
11
+ const parseCacheMap = new WeakMap();
12
+ function getParseCache(context) {
13
+ if (!parseCacheMap.has(context.fs)) {
14
+ parseCacheMap.set(context.fs, new Map());
15
+ }
16
+ return parseCacheMap.get(context.fs);
17
+ }
18
+ /**
19
+ * Extract partial references (render/function/include) from a Liquid source string.
20
+ * Returns an empty array on parse errors.
21
+ */
22
+ function extractPartialRefs(source) {
23
+ let ast;
24
+ try {
25
+ ast = (0, liquid_html_parser_1.toLiquidHtmlAST)(source);
26
+ }
27
+ catch {
28
+ return [];
29
+ }
30
+ const refs = [];
31
+ const stack = [ast];
32
+ while (stack.length > 0) {
33
+ const node = stack.pop();
34
+ if (!node || typeof node !== 'object')
35
+ continue;
36
+ if (node.type === liquid_html_parser_1.NodeTypes.LiquidTag &&
37
+ node.markup &&
38
+ typeof node.markup === 'object' &&
39
+ (node.markup.type === liquid_html_parser_1.NodeTypes.RenderMarkup ||
40
+ node.markup.type === liquid_html_parser_1.NodeTypes.FunctionMarkup) &&
41
+ node.markup.partial &&
42
+ node.markup.partial.type !== liquid_html_parser_1.NodeTypes.VariableLookup) {
43
+ refs.push({
44
+ name: node.markup.partial.value,
45
+ documentType: node.name || 'render',
46
+ startIndex: node.markup.partial.position.start,
47
+ endIndex: node.markup.partial.position.end,
48
+ });
49
+ }
50
+ // Traverse children (skip circular references like parentNode, prev, next)
51
+ for (const key of Object.keys(node)) {
52
+ if (liquid_html_parser_1.nonTraversableProperties.has(key))
53
+ continue;
54
+ const value = node[key];
55
+ if (Array.isArray(value)) {
56
+ for (const child of value) {
57
+ if (child && typeof child === 'object') {
58
+ stack.push(child);
59
+ }
60
+ }
61
+ }
62
+ else if (value && typeof value === 'object' && value.type) {
63
+ stack.push(value);
64
+ }
65
+ }
66
+ }
67
+ return refs;
68
+ }
69
+ exports.CircularRender = {
70
+ meta: {
71
+ code: 'CircularRender',
72
+ name: 'Prevent circular renders',
73
+ docs: {
74
+ description: 'Reports circular render/function/include chains that would cause infinite loops at runtime.',
75
+ recommended: true,
76
+ url: 'https://documentation.platformos.com/developer-guide/platformos-check/checks/circular-render',
77
+ },
78
+ type: types_1.SourceCodeType.LiquidHtml,
79
+ severity: types_1.Severity.ERROR,
80
+ schema: {},
81
+ targets: [],
82
+ },
83
+ create(context) {
84
+ const locator = new platformos_common_1.DocumentsLocator(context.fs);
85
+ const rootUri = vscode_uri_1.URI.parse(context.config.rootUri);
86
+ const parseCache = getParseCache(context);
87
+ const collectedRefs = [];
88
+ return {
89
+ async RenderMarkup(node, ancestors) {
90
+ if (node.partial.type === liquid_html_parser_1.NodeTypes.VariableLookup)
91
+ return;
92
+ const parent = ancestors.at(-1);
93
+ const documentType = parent?.name === 'include' ? 'include' : 'render';
94
+ collectedRefs.push({
95
+ name: node.partial.value,
96
+ documentType,
97
+ startIndex: node.partial.position.start,
98
+ endIndex: node.partial.position.end,
99
+ });
100
+ },
101
+ async FunctionMarkup(node) {
102
+ if (node.partial.type === liquid_html_parser_1.NodeTypes.VariableLookup)
103
+ return;
104
+ collectedRefs.push({
105
+ name: node.partial.value,
106
+ documentType: 'function',
107
+ startIndex: node.partial.position.start,
108
+ endIndex: node.partial.position.end,
109
+ });
110
+ },
111
+ async onCodePathEnd() {
112
+ const fileUri = context.file.uri;
113
+ for (const ref of collectedRefs) {
114
+ const cycle = await findCycle(locator, rootUri, context.fs, parseCache, fileUri, ref.name, ref.documentType, [fileUri], 0);
115
+ if (cycle) {
116
+ const cyclePath = cycle
117
+ .map((u) => {
118
+ const parts = u.split('/');
119
+ return parts.slice(-2).join('/');
120
+ })
121
+ .join(' -> ');
122
+ context.report({
123
+ message: `Circular render detected: ${cyclePath}. This will cause an infinite loop at runtime.`,
124
+ startIndex: ref.startIndex,
125
+ endIndex: ref.endIndex,
126
+ });
127
+ }
128
+ }
129
+ },
130
+ };
131
+ },
132
+ };
133
+ async function findCycle(locator, rootUri, fs, parseCache, originUri, partialName, documentType, path, depth) {
134
+ if (depth >= MAX_DEPTH)
135
+ return null;
136
+ const uri = await locator.locate(rootUri, documentType, partialName);
137
+ if (!uri)
138
+ return null;
139
+ if (uri === originUri) {
140
+ return [...path, uri];
141
+ }
142
+ if (path.includes(uri)) {
143
+ // This is a cycle, but it doesn't include the origin file — skip it
144
+ return null;
145
+ }
146
+ let refs = parseCache.get(uri);
147
+ if (!refs) {
148
+ try {
149
+ const source = await fs.readFile(uri);
150
+ refs = extractPartialRefs(source);
151
+ }
152
+ catch {
153
+ refs = [];
154
+ }
155
+ parseCache.set(uri, refs);
156
+ }
157
+ for (const dep of refs) {
158
+ const cycle = await findCycle(locator, rootUri, fs, parseCache, originUri, dep.name, dep.documentType, [...path, uri], depth + 1);
159
+ if (cycle)
160
+ return cycle;
161
+ }
162
+ return null;
163
+ }
164
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/circular-render/index.ts"],"names":[],"mappings":"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"}
@@ -33,10 +33,25 @@ exports.DeprecatedFilter = {
33
33
  const recommendedFilterName = findRecommendedAlternative(deprecatedFilter);
34
34
  const recommendedFilter = filters.find((f) => f.name === recommendedFilterName);
35
35
  const message = deprecatedFilterMessage(deprecatedFilter, recommendedFilter);
36
+ const filterText = node.source.slice(node.position.start, node.position.end);
37
+ const afterPipeIdx = filterText.indexOf('|') + 1;
38
+ const nameIdx = afterPipeIdx + filterText.slice(afterPipeIdx).indexOf(deprecatedFilter.name);
39
+ const filterNameStart = node.position.start + nameIdx;
40
+ const filterNameEnd = filterNameStart + deprecatedFilter.name.length;
36
41
  context.report({
37
42
  message,
38
43
  startIndex: node.position.start + 1,
39
44
  endIndex: node.position.end,
45
+ suggest: recommendedFilter
46
+ ? [
47
+ {
48
+ message: `Replace '${deprecatedFilter.name}' with '${recommendedFilter.name}'`,
49
+ fix: (corrector) => {
50
+ corrector.replace(filterNameStart, filterNameEnd, recommendedFilter.name);
51
+ },
52
+ },
53
+ ]
54
+ : undefined,
40
55
  });
41
56
  },
42
57
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/deprecated-filter/index.ts"],"names":[],"mappings":";;;AACA,uCAA2F;AAE9E,QAAA,gBAAgB,GAA0B;IACrD,IAAI,EAAE;QACJ,IAAI,EAAE,kBAAkB;QACxB,OAAO,EAAE,CAAC,mBAAmB,CAAC;QAC9B,IAAI,EAAE,mBAAmB;QACzB,IAAI,EAAE;YACJ,WAAW,EAAE,uCAAuC;YACpD,GAAG,EAAE,gGAAgG;YACrG,WAAW,EAAE,IAAI;SAClB;QACD,IAAI,EAAE,sBAAc,CAAC,UAAU;QAC/B,QAAQ,EAAE,gBAAQ,CAAC,OAAO;QAC1B,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ;IAED,MAAM,CAAC,OAAO;QACZ,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,OAAO;YACL,YAAY,EAAE,KAAK,EAAE,IAAkB,EAAE,EAAE;gBACzC,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,gBAAiB,CAAC,OAAO,EAAE,CAAC;gBAE1D,MAAM,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE;oBAC1C,OAAO,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC;gBAC9C,CAAC,CAAC,CAAC;gBAEH,IAAI,CAAC,gBAAgB,EAAE,CAAC;oBACtB,OAAO;gBACT,CAAC;gBAED,MAAM,qBAAqB,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;gBAC3E,MAAM,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,qBAAqB,CAAC,CAAC;gBAEhF,MAAM,OAAO,GAAG,uBAAuB,CAAC,gBAAgB,EAAE,iBAAiB,CAAC,CAAC;gBAE7E,OAAO,CAAC,MAAM,CAAC;oBACb,OAAO;oBACP,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,CAAC;oBACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;iBAC5B,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,SAAS,uBAAuB,CAAC,UAAuB,EAAE,WAAyB;IACjF,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO,sBAAsB,UAAU,CAAC,IAAI,sBAAsB,WAAW,CAAC,IAAI,IAAI,CAAC;IACzF,CAAC;IAED,OAAO,sBAAsB,UAAU,CAAC,IAAI,IAAI,CAAC;AACnD,CAAC;AAED,SAAS,0BAA0B,CAAC,gBAA6B;IAC/D,MAAM,MAAM,GAAG,gBAAgB,CAAC,kBAAkB,CAAC;IACnD,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAEvD,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC;AACpB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/deprecated-filter/index.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ exports.DuplicateContentForArguments = {
10
10
  docs: {
11
11
  description: 'This check ensures that no duplicate argument names are provided when rendering a static block.',
12
12
  recommended: true,
13
- url: 'https://documentation.platformos.com/developer-guide/platformos-check/checks/duplicate-content-for-arguments',
13
+ url: 'https://shopify.dev/docs/storefronts/themes/tools/theme-check/checks/duplicate-content-for-arguments',
14
14
  },
15
15
  type: types_1.SourceCodeType.LiquidHtml,
16
16
  severity: types_1.Severity.WARNING,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/duplicate-content-for-arguments/index.ts"],"names":[],"mappings":";;;AAAA,uCAA8E;AAE9E,0DAAoF;AAEvE,QAAA,4BAA4B,GAA0B;IACjE,IAAI,EAAE;QACJ,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE;YACJ,WAAW,EACT,iGAAiG;YACnG,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,8GAA8G;SACpH;QACD,IAAI,EAAE,sBAAc,CAAC,UAAU;QAC/B,QAAQ,EAAE,gBAAQ,CAAC,OAAO;QAC1B,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ;IAED,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,KAAK,CAAC,gBAAgB,CAAC,IAAsB;gBAC3C,MAAM,SAAS,GAAG,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAC;gBAErC,IAAI,CAAC,SAAS;oBAAE,OAAO;gBAEvB,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC9C,MAAM,aAAa,GAA0B,EAAE,CAAC;gBAEhD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9B,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBAED,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;gBAED,IAAA,oCAAwB,EAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;YACpE,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/duplicate-content-for-arguments/index.ts"],"names":[],"mappings":";;;AAAA,uCAA8E;AAE9E,0DAAoF;AAEvE,QAAA,4BAA4B,GAA0B;IACjE,IAAI,EAAE;QACJ,IAAI,EAAE,8BAA8B;QACpC,IAAI,EAAE,gCAAgC;QACtC,IAAI,EAAE;YACJ,WAAW,EACT,iGAAiG;YACnG,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,sGAAsG;SAC5G;QACD,IAAI,EAAE,sBAAc,CAAC,UAAU;QAC/B,QAAQ,EAAE,gBAAQ,CAAC,OAAO;QAC1B,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ;IAED,MAAM,CAAC,OAAO;QACZ,OAAO;YACL,KAAK,CAAC,gBAAgB,CAAC,IAAsB;gBAC3C,MAAM,SAAS,GAAG,IAAA,wBAAY,EAAC,IAAI,CAAC,CAAC;gBAErC,IAAI,CAAC,SAAS;oBAAE,OAAO;gBAEvB,MAAM,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;gBAC9C,MAAM,aAAa,GAA0B,EAAE,CAAC;gBAEhD,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9B,IAAI,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBACxC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;oBAC5B,CAAC;oBAED,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;gBAED,IAAA,oCAAwB,EAAC,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;YACpE,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { GraphQLCheckDefinition } from '../../types';
2
+ export declare function lineToRange(text: string, line: number): [number, number];
2
3
  export declare const GraphQLCheck: GraphQLCheckDefinition;
@@ -1,19 +1,18 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.GraphQLCheck = void 0;
4
+ exports.lineToRange = lineToRange;
4
5
  const types_1 = require("../../types");
5
6
  const language_1 = require("graphql/language");
6
7
  const graphql_1 = require("graphql");
7
8
  function lineToRange(text, line) {
8
9
  const lines = text.split(/\r?\n/);
9
- if (line < 1 || line > lines.length) {
10
- return [0, text.length];
11
- }
10
+ const clampedLine = Math.max(1, Math.min(line, lines.length));
12
11
  let start = 0;
13
- for (let i = 0; i < line - 1; i++) {
12
+ for (let i = 0; i < clampedLine - 1; i++) {
14
13
  start += lines[i].length + 1;
15
14
  }
16
- const end = start + lines[line - 1].length;
15
+ const end = start + lines[clampedLine - 1].length;
17
16
  return [start, end];
18
17
  }
19
18
  exports.GraphQLCheck = {
@@ -37,10 +36,24 @@ exports.GraphQLCheck = {
37
36
  return;
38
37
  }
39
38
  const graphQLSchema = (0, graphql_1.buildSchema)(graphQLSchemaString);
40
- const document = (0, language_1.parse)(content);
39
+ let document;
40
+ try {
41
+ document = (0, language_1.parse)(content);
42
+ }
43
+ catch (e) {
44
+ if (e instanceof graphql_1.GraphQLError) {
45
+ const [start, end] = lineToRange(content, e.locations?.[0]?.line ?? 1);
46
+ context.report({
47
+ message: e.message,
48
+ startIndex: start,
49
+ endIndex: end,
50
+ });
51
+ }
52
+ return;
53
+ }
41
54
  const errors = (0, graphql_1.validate)(graphQLSchema, document);
42
55
  errors.forEach((error) => {
43
- const [start, end] = lineToRange(content, error.locations?.[0].line ?? 0);
56
+ const [start, end] = lineToRange(content, error.locations?.[0]?.line ?? 0);
44
57
  context.report({
45
58
  message: error.message,
46
59
  startIndex: start,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/graphql/index.ts"],"names":[],"mappings":";;;AAAA,uCAA+E;AAC/E,+CAAyC;AACzC,qCAAgD;AAEhD,SAAS,WAAW,CAAC,IAAY,EAAE,IAAY;IAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IAElC,IAAI,IAAI,GAAG,CAAC,IAAI,IAAI,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;QACpC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QAClC,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;IAC3C,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACtB,CAAC;AAEY,QAAA,YAAY,GAA2B;IAClD,IAAI,EAAE;QACJ,IAAI,EAAE,cAAc;QACpB,IAAI,EAAE,eAAe;QACrB,IAAI,EAAE;YACJ,WAAW,EAAE,gFAAgF;YAC7F,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,SAAS;SACf;QACD,IAAI,EAAE,sBAAc,CAAC,OAAO;QAC5B,QAAQ,EAAE,gBAAQ,CAAC,KAAK;QACxB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,eAAe,GAAG,KAAK,EAAE,OAAe,EAAE,EAAE;YAChD,MAAM,mBAAmB,GAAG,MAAM,OAAO,CAAC,gBAAgB,EAAE,OAAO,EAAE,CAAC;YACtE,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBACzB,OAAO;YACT,CAAC;YAED,MAAM,aAAa,GAAG,IAAA,qBAAW,EAAC,mBAAmB,CAAC,CAAC;YAEvD,MAAM,QAAQ,GAAG,IAAA,gBAAK,EAAC,OAAO,CAAC,CAAC;YAChC,MAAM,MAAM,GAAG,IAAA,kBAAQ,EAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;YAEjD,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACvB,MAAM,CAAC,KAAK,EAAE,GAAG,CAAC,GAAG,WAAW,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC;gBAC1E,OAAO,CAAC,MAAM,CAAC;oBACb,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,UAAU,EAAE,KAAK;oBACjB,QAAQ,EAAE,GAAG;iBACd,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,OAAO;YACL,KAAK,CAAC,aAAa,CAAC,IAAI;gBACtB,MAAM,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/graphql/index.ts"],"names":[],"mappings":"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"}
@@ -5,4 +5,4 @@ export declare const allChecks: (LiquidCheckDefinition | JSONCheckDefinition | G
5
5
  * - meta.docs.recommended: true
6
6
  * - Either no meta.targets list exist or if it does exist then Recommended is a target
7
7
  */
8
- export declare const recommended: (LiquidCheckDefinition | JSONCheckDefinition | GraphQLCheckDefinition | YAMLCheckDefinition)[];
8
+ export declare const recommended: (LiquidCheckDefinition | JSONCheckDefinition | YAMLCheckDefinition | GraphQLCheckDefinition)[];
@@ -32,6 +32,9 @@ const graphql_1 = require("./graphql");
32
32
  const unknown_property_1 = require("./unknown-property");
33
33
  const invalid_hash_assign_target_1 = require("./invalid-hash-assign-target");
34
34
  const duplicate_function_arguments_1 = require("./duplicate-function-arguments");
35
+ const missing_render_partial_arguments_1 = require("./missing-render-partial-arguments");
36
+ const nested_graphql_query_1 = require("./nested-graphql-query");
37
+ const missing_page_1 = require("./missing-page");
35
38
  exports.allChecks = [
36
39
  deprecated_filter_1.DeprecatedFilter,
37
40
  deprecated_tag_1.DeprecatedTag,
@@ -63,6 +66,9 @@ exports.allChecks = [
63
66
  graphql_1.GraphQLCheck,
64
67
  unknown_property_1.UnknownProperty,
65
68
  invalid_hash_assign_target_1.InvalidHashAssignTarget,
69
+ missing_render_partial_arguments_1.MissingRenderPartialArguments,
70
+ nested_graphql_query_1.NestedGraphQLQuery,
71
+ missing_page_1.MissingPage,
66
72
  ];
67
73
  /**
68
74
  * The recommended checks is populated by all checks with the following conditions:
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":";;;AAAA,oCAMkB;AAElB,2DAAuD;AACvD,qDAAiD;AACjD,6FAAuF;AACvF,iEAA2D;AAC3D,2DAAsD;AACtD,yEAAmE;AACnE,mEAA+D;AAC/D,mDAA+C;AAC/C,uDAAmD;AACnD,yDAAqD;AACrD,qEAAgE;AAChE,qEAAgE;AAChE,mEAA8D;AAC9D,yDAAqD;AACrD,qEAA+D;AAC/D,qDAAiD;AACjD,mGAA6F;AAC7F,mDAA+C;AAC/C,yDAAoD;AACpD,qEAAgE;AAChE,6CAAyC;AACzC,mEAA6D;AAC7D,+FAAwF;AACxF,mDAA+C;AAC/C,uDAAwD;AACxD,2DAA4D;AAC5D,uCAAyC;AACzC,yDAAqD;AACrD,6EAAuE;AACvE,iFAA4E;AAE/D,QAAA,SAAS,GAKhB;IACJ,oCAAgB;IAChB,8BAAa;IACb,yDAA0B;IAC1B,oEAA+B;IAC/B,wCAAiB;IACjB,mCAAe;IACf,gDAAqB;IACrB,4CAAoB;IACpB,4BAAY;IACZ,gCAAc;IACd,kCAAe;IACf,6CAAoB;IACpB,6CAAoB;IACpB,2CAAmB;IACnB,kCAAe;IACf,4CAAmB;IACnB,8BAAa;IACb,0EAAkC;IAClC,4BAAY;IACZ,iCAAc;IACd,6CAAoB;IACpB,sBAAS;IACT,0CAAkB;IAClB,qEAA+B;IAC/B,4BAAY;IACZ,qCAAmB;IACnB,yCAAqB;IACrB,sBAAY;IACZ,kCAAe;IACf,oDAAuB;CACxB,CAAC;AAEF;;;;GAIG;AACU,QAAA,WAAW,GAAG,iBAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;IACpD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IAClD,MAAM,aAAa,GACjB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;QACnB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;QAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAY,CAAC,WAAW,CAAC,CAAC;IAExD,OAAO,aAAa,IAAI,aAAa,CAAC;AACxC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/checks/index.ts"],"names":[],"mappings":";;;AAAA,oCAMkB;AAElB,2DAAuD;AACvD,qDAAiD;AACjD,6FAAuF;AACvF,iEAA2D;AAC3D,2DAAsD;AACtD,yEAAmE;AACnE,mEAA+D;AAC/D,mDAA+C;AAC/C,uDAAmD;AACnD,yDAAqD;AACrD,qEAAgE;AAChE,qEAAgE;AAChE,mEAA8D;AAC9D,yDAAqD;AACrD,qEAA+D;AAC/D,qDAAiD;AACjD,mGAA6F;AAC7F,mDAA+C;AAC/C,yDAAoD;AACpD,qEAAgE;AAChE,6CAAyC;AACzC,mEAA6D;AAC7D,+FAAwF;AACxF,mDAA+C;AAC/C,uDAAwD;AACxD,2DAA4D;AAC5D,uCAAyC;AACzC,yDAAqD;AACrD,6EAAuE;AACvE,iFAA4E;AAC5E,yFAAmF;AACnF,iEAA4D;AAC5D,iDAA6C;AAEhC,QAAA,SAAS,GAKhB;IACJ,oCAAgB;IAChB,8BAAa;IACb,yDAA0B;IAC1B,oEAA+B;IAC/B,wCAAiB;IACjB,mCAAe;IACf,gDAAqB;IACrB,4CAAoB;IACpB,4BAAY;IACZ,gCAAc;IACd,kCAAe;IACf,6CAAoB;IACpB,6CAAoB;IACpB,2CAAmB;IACnB,kCAAe;IACf,4CAAmB;IACnB,8BAAa;IACb,0EAAkC;IAClC,4BAAY;IACZ,iCAAc;IACd,6CAAoB;IACpB,sBAAS;IACT,0CAAkB;IAClB,qEAA+B;IAC/B,4BAAY;IACZ,qCAAmB;IACnB,yCAAqB;IACrB,sBAAY;IACZ,kCAAe;IACf,oDAAuB;IACvB,gEAA6B;IAC7B,yCAAkB;IAClB,0BAAW;CACZ,CAAC;AAEF;;;;GAIG;AACU,QAAA,WAAW,GAAG,iBAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;IACpD,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;IAClD,MAAM,aAAa,GACjB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO;QACnB,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM;QAC1B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,oBAAY,CAAC,WAAW,CAAC,CAAC;IAExD,OAAO,aAAa,IAAI,aAAa,CAAC;AACxC,CAAC,CAAC,CAAC"}
@@ -190,11 +190,12 @@ exports.InvalidHashAssignTarget = {
190
190
  // {% function result = 'path' %}
191
191
  if (node.name === liquid_html_parser_1.NamedTags.function && typeof node.markup !== 'string') {
192
192
  const markup = node.markup;
193
- if (markup.name) {
194
- closeTypeRange(markup.name, node.position.start);
193
+ const varName = markup.name.name;
194
+ if (varName) {
195
+ closeTypeRange(varName, node.position.start);
195
196
  // Function returns are untyped unless we can infer them
196
197
  variableTypes.push({
197
- name: markup.name,
198
+ name: varName,
198
199
  type: 'untyped',
199
200
  range: [node.position.end],
200
201
  });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/invalid-hash-assign-target/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/invalid-hash-assign-target/index.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ exports.MissingContentForArguments = {
10
10
  docs: {
11
11
  description: 'This check ensures that all required arguments are provided when rendering a static block.',
12
12
  recommended: true,
13
- url: 'https://documentation.platformos.com/developer-guide/platformos-check/checks/missing-content-for-arguments',
13
+ url: 'https://shopify.dev/docs/storefronts/themes/tools/theme-check/checks/missing-content-for-arguments',
14
14
  },
15
15
  type: types_1.SourceCodeType.LiquidHtml,
16
16
  severity: types_1.Severity.WARNING,