@platformos/platformos-check-common 0.0.13 → 0.0.17

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 CHANGED
@@ -1,5 +1,39 @@
1
1
  # @platformos/theme-check-common
2
2
 
3
+ ## 0.0.17
4
+
5
+ ### Patch Changes
6
+
7
+ - Fixed validation on unknown objects
8
+
9
+ ## 0.0.16
10
+
11
+ ### Patch Changes
12
+
13
+ - Improved Liquid Linting
14
+ - Better metadata params validation — Reworked detection of undefined variables in page/partial metadata parameters, reducing false positives
15
+ - Improved undefined object detection — More accurate identification of undefined objects in Liquid templates
16
+ - Fixed invalid property detection — The unknown-property check now correctly catches more cases of invalid property access on objects
17
+
18
+ - Updated dependencies
19
+ - @platformos/liquid-html-parser@0.0.15
20
+
21
+ ## 0.0.15
22
+
23
+ ### Patch Changes
24
+
25
+ - ctrl+click fix
26
+ - Updated dependencies
27
+ - @platformos/liquid-html-parser@0.0.14
28
+
29
+ ## 0.0.14
30
+
31
+ ### Patch Changes
32
+
33
+ - better ctrl click, more checks
34
+ - Updated dependencies
35
+ - @platformos/liquid-html-parser@0.0.13
36
+
3
37
  ## 0.0.13
4
38
 
5
39
  ### Patch Changes
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Parses a Liquid source string and returns a deduplicated list of variable names
3
+ * that are used but never defined. Returns [] on parse errors.
4
+ *
5
+ * This mirrors the variable tracking logic from the UndefinedObject check but
6
+ * packaged as a standalone synchronous function.
7
+ */
8
+ export declare function extractUndefinedVariables(source: string, globalObjectNames?: string[]): string[];
@@ -0,0 +1,213 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.extractUndefinedVariables = extractUndefinedVariables;
4
+ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
5
+ /**
6
+ * Parses a Liquid source string and returns a deduplicated list of variable names
7
+ * that are used but never defined. Returns [] on parse errors.
8
+ *
9
+ * This mirrors the variable tracking logic from the UndefinedObject check but
10
+ * packaged as a standalone synchronous function.
11
+ */
12
+ function extractUndefinedVariables(source, globalObjectNames = []) {
13
+ let ast;
14
+ try {
15
+ ast = (0, liquid_html_parser_1.toLiquidHtmlAST)(source);
16
+ }
17
+ catch {
18
+ return [];
19
+ }
20
+ const scopedVariables = new Map();
21
+ const fileScopedVariables = new Set(globalObjectNames);
22
+ const variables = [];
23
+ function indexVariableScope(variableName, scope) {
24
+ if (!variableName)
25
+ return;
26
+ const indexedScope = scopedVariables.get(variableName) ?? [];
27
+ scopedVariables.set(variableName, indexedScope.concat(scope));
28
+ }
29
+ function walk(node, ancestors) {
30
+ // Process definitions from LiquidTag nodes
31
+ if (node.type === liquid_html_parser_1.NodeTypes.LiquidTag) {
32
+ handleLiquidTag(node, ancestors);
33
+ }
34
+ // Process definitions from LiquidBranch nodes (catch)
35
+ if (node.type === liquid_html_parser_1.NodeTypes.LiquidBranch) {
36
+ handleLiquidBranch(node);
37
+ }
38
+ // Process variable usages
39
+ if (node.type === liquid_html_parser_1.NodeTypes.VariableLookup) {
40
+ handleVariableLookup(node, ancestors);
41
+ }
42
+ // Recurse into children
43
+ const newAncestors = ancestors.concat(node);
44
+ for (const value of Object.values(node)) {
45
+ if (Array.isArray(value)) {
46
+ for (const item of value) {
47
+ if (isNode(item)) {
48
+ walk(item, newAncestors);
49
+ }
50
+ }
51
+ }
52
+ else if (isNode(value)) {
53
+ walk(value, newAncestors);
54
+ }
55
+ }
56
+ }
57
+ function handleLiquidTag(node, _ancestors) {
58
+ if (isLiquidTagAssign(node) || isLiquidTagGraphQL(node) || isLiquidTagParseJson(node)) {
59
+ indexVariableScope(node.markup.name, {
60
+ start: node.blockStartPosition.end,
61
+ });
62
+ }
63
+ if (isLiquidTagHashAssign(node) && node.markup.target.name) {
64
+ indexVariableScope(node.markup.target.name, {
65
+ start: node.blockStartPosition.end,
66
+ });
67
+ }
68
+ if (isLiquidTagCapture(node)) {
69
+ indexVariableScope(node.markup.name, {
70
+ start: node.blockEndPosition?.end,
71
+ });
72
+ }
73
+ if (node.name === 'form') {
74
+ indexVariableScope(node.name, {
75
+ start: node.blockStartPosition.end,
76
+ end: node.blockEndPosition?.start,
77
+ });
78
+ }
79
+ if (node.name === 'function') {
80
+ const fnName = node.markup.name;
81
+ if (fnName.lookups.length === 0 && fnName.name !== null) {
82
+ indexVariableScope(fnName.name, {
83
+ start: node.position.end,
84
+ });
85
+ }
86
+ }
87
+ if ((isLiquidTagIncrement(node) || isLiquidTagDecrement(node)) && node.markup.name !== null) {
88
+ indexVariableScope(node.markup.name, {
89
+ start: node.position.start,
90
+ });
91
+ }
92
+ if (isLiquidForTag(node) || isLiquidTableRowTag(node)) {
93
+ indexVariableScope(node.markup.variableName, {
94
+ start: node.blockStartPosition.end,
95
+ end: node.blockEndPosition?.start,
96
+ });
97
+ indexVariableScope(node.name === 'for' ? 'forloop' : 'tablerowloop', {
98
+ start: node.blockStartPosition.end,
99
+ end: node.blockEndPosition?.start,
100
+ });
101
+ }
102
+ if (isLiquidTagBackground(node)) {
103
+ indexVariableScope(node.markup.jobId, {
104
+ start: node.position.end,
105
+ });
106
+ }
107
+ }
108
+ function handleLiquidBranch(node) {
109
+ if (node.name === liquid_html_parser_1.NamedTags.catch &&
110
+ node.markup &&
111
+ typeof node.markup !== 'string' &&
112
+ 'name' in node.markup &&
113
+ node.markup.name) {
114
+ indexVariableScope(node.markup.name, {
115
+ start: node.blockStartPosition.end,
116
+ end: node.blockEndPosition?.start,
117
+ });
118
+ }
119
+ }
120
+ function handleVariableLookup(node, ancestors) {
121
+ const parent = ancestors[ancestors.length - 1];
122
+ if (isLiquidTag(parent) && isLiquidTagCapture(parent))
123
+ return;
124
+ if (isLiquidTag(parent) && isLiquidTagParseJson(parent))
125
+ return;
126
+ if (isFunctionMarkup(parent) && parent.name === node)
127
+ return;
128
+ if (isLiquidBranchCatch(parent) && parent.markup === node)
129
+ return;
130
+ if (isHashAssignMarkup(parent) && parent.target === node)
131
+ return;
132
+ variables.push(node);
133
+ }
134
+ walk(ast, []);
135
+ // Determine undefined variables
136
+ const seen = new Set();
137
+ const result = [];
138
+ for (const variable of variables) {
139
+ if (!variable.name)
140
+ continue;
141
+ if (seen.has(variable.name))
142
+ continue;
143
+ const isVariableDefined = isDefined(variable.name, variable.position, fileScopedVariables, scopedVariables);
144
+ if (!isVariableDefined) {
145
+ seen.add(variable.name);
146
+ result.push(variable.name);
147
+ }
148
+ }
149
+ return result;
150
+ }
151
+ function isNode(x) {
152
+ return x !== null && typeof x === 'object' && typeof x.type === 'string';
153
+ }
154
+ function isDefined(variableName, variablePosition, fileScopedVariables, scopedVariables) {
155
+ if (fileScopedVariables.has(variableName)) {
156
+ return true;
157
+ }
158
+ const scopes = scopedVariables.get(variableName);
159
+ if (!scopes) {
160
+ return false;
161
+ }
162
+ return scopes.some((scope) => {
163
+ const start = variablePosition.start;
164
+ const isVariableAfterScopeStart = !scope.start || start > scope.start;
165
+ const isVariableBeforeScopeEnd = !scope.end || start < scope.end;
166
+ return isVariableAfterScopeStart && isVariableBeforeScopeEnd;
167
+ });
168
+ }
169
+ function isLiquidTag(node) {
170
+ return node?.type === liquid_html_parser_1.NodeTypes.LiquidTag;
171
+ }
172
+ function isLiquidTagCapture(node) {
173
+ return node.name === liquid_html_parser_1.NamedTags.capture;
174
+ }
175
+ function isLiquidTagAssign(node) {
176
+ return node.name === liquid_html_parser_1.NamedTags.assign && typeof node.markup !== 'string';
177
+ }
178
+ function isLiquidTagHashAssign(node) {
179
+ return node.name === liquid_html_parser_1.NamedTags.hash_assign && typeof node.markup !== 'string';
180
+ }
181
+ function isLiquidTagGraphQL(node) {
182
+ return node.name === liquid_html_parser_1.NamedTags.graphql && typeof node.markup !== 'string';
183
+ }
184
+ function isLiquidTagParseJson(node) {
185
+ return node.name === liquid_html_parser_1.NamedTags.parse_json && typeof node.markup !== 'string';
186
+ }
187
+ function isLiquidForTag(node) {
188
+ return node.name === liquid_html_parser_1.NamedTags.for && typeof node.markup !== 'string';
189
+ }
190
+ function isLiquidTableRowTag(node) {
191
+ return node.name === liquid_html_parser_1.NamedTags.tablerow && typeof node.markup !== 'string';
192
+ }
193
+ function isLiquidTagIncrement(node) {
194
+ return node.name === liquid_html_parser_1.NamedTags.increment && typeof node.markup !== 'string';
195
+ }
196
+ function isLiquidTagDecrement(node) {
197
+ return node.name === liquid_html_parser_1.NamedTags.decrement && typeof node.markup !== 'string';
198
+ }
199
+ function isLiquidTagBackground(node) {
200
+ return (node.name === liquid_html_parser_1.NamedTags.background &&
201
+ typeof node.markup !== 'string' &&
202
+ node.markup.type === liquid_html_parser_1.NodeTypes.BackgroundMarkup);
203
+ }
204
+ function isHashAssignMarkup(node) {
205
+ return node?.type === liquid_html_parser_1.NodeTypes.HashAssignMarkup;
206
+ }
207
+ function isFunctionMarkup(node) {
208
+ return node?.type === liquid_html_parser_1.NodeTypes.FunctionMarkup;
209
+ }
210
+ function isLiquidBranchCatch(node) {
211
+ return node?.type === liquid_html_parser_1.NodeTypes.LiquidBranch && node.name === liquid_html_parser_1.NamedTags.catch;
212
+ }
213
+ //# sourceMappingURL=extract-undefined-variables.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extract-undefined-variables.js","sourceRoot":"","sources":["../../../src/checks/metadata-params/extract-undefined-variables.ts"],"names":[],"mappings":"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"}
@@ -1,36 +1,17 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.MetadataParamsCheck = void 0;
7
4
  const types_1 = require("../../types");
8
- const js_yaml_1 = __importDefault(require("js-yaml"));
9
5
  const platformos_common_1 = require("@platformos/platformos-common");
10
6
  const vscode_uri_1 = require("vscode-uri");
11
7
  const path_1 = require("../../path");
12
- function extractMetadataParams(source) {
13
- source = source.trim();
14
- if (!source.startsWith('---'))
15
- return null;
16
- const end = source.indexOf('---', 3);
17
- if (end === -1)
18
- return null;
19
- const yamlBlock = source.slice(3, end).trim();
20
- try {
21
- const result = js_yaml_1.default.load(yamlBlock);
22
- return Object.keys(result.metadata.params);
23
- }
24
- catch (e) {
25
- return null;
26
- }
27
- }
8
+ const extract_undefined_variables_1 = require("./extract-undefined-variables");
28
9
  exports.MetadataParamsCheck = {
29
10
  meta: {
30
11
  code: 'MetadataParamsCheck',
31
12
  name: 'Metadata Params Check',
32
13
  docs: {
33
- description: 'Ensures that parameters referenced in the document exist in metadata.params or in the doc tag.',
14
+ description: 'Ensures that parameters referenced in the document exist in the doc tag or are inferred from undefined variables.',
34
15
  recommended: true,
35
16
  url: undefined,
36
17
  },
@@ -46,21 +27,55 @@ exports.MetadataParamsCheck = {
46
27
  if (!locatedFile) {
47
28
  return;
48
29
  }
49
- let params = extractMetadataParams(await context.fs.readFile(locatedFile));
50
- if (!params) {
51
- if (!context.getDocDefinition)
52
- return;
53
- const relativePath = (0, path_1.relative)(locatedFile, context.config.rootUri);
54
- const docDef = await context.getDocDefinition(relativePath);
55
- if (!docDef?.liquidDoc?.parameters)
56
- return;
57
- const liquidDocParameters = new Map(docDef.liquidDoc.parameters.map((p) => [p.name, p]));
58
- params = Array.from(liquidDocParameters.values())
30
+ const source = await context.fs.readFile(locatedFile);
31
+ const relativePath = (0, path_1.relative)(locatedFile, context.config.rootUri);
32
+ let requiredParams;
33
+ let allowedParams;
34
+ // Check for @doc tag first — if present, it's the complete param list
35
+ const docDef = context.getDocDefinition
36
+ ? await context.getDocDefinition(relativePath)
37
+ : undefined;
38
+ if (docDef?.liquidDoc?.parameters) {
39
+ const globalObjectNames = [];
40
+ if (context.platformosDocset) {
41
+ const objects = await context.platformosDocset.objects();
42
+ for (const obj of objects) {
43
+ if (!obj.access || obj.access.global === true || obj.access.template.length > 0) {
44
+ globalObjectNames.push(obj.name);
45
+ }
46
+ }
47
+ }
48
+ const undefinedVars = (0, extract_undefined_variables_1.extractUndefinedVariables)(source, globalObjectNames);
49
+ const docRequiredNames = docDef.liquidDoc.parameters
59
50
  .filter((p) => p.required)
60
51
  .map((p) => p.name);
52
+ requiredParams = docRequiredNames.filter((name) => undefinedVars.includes(name));
53
+ allowedParams = docDef.liquidDoc.parameters.map((p) => p.name);
54
+ }
55
+ else {
56
+ // No @doc — scan for undefined variables, treat all as required
57
+ const globalObjectNames = [];
58
+ if (context.platformosDocset) {
59
+ const objects = await context.platformosDocset.objects();
60
+ for (const obj of objects) {
61
+ if (!obj.access || obj.access.global === true || obj.access.template.length > 0) {
62
+ globalObjectNames.push(obj.name);
63
+ }
64
+ }
65
+ }
66
+ if (relativePath.includes('views/partials/') || relativePath.includes('/lib/')) {
67
+ if (!globalObjectNames.includes('app')) {
68
+ globalObjectNames.push('app');
69
+ }
70
+ }
71
+ const undefinedVars = (0, extract_undefined_variables_1.extractUndefinedVariables)(source, globalObjectNames);
72
+ if (undefinedVars.length === 0)
73
+ return;
74
+ requiredParams = undefinedVars;
75
+ allowedParams = undefinedVars;
61
76
  }
62
77
  args
63
- .filter((arg) => !params.includes(arg.name))
78
+ .filter((arg) => !allowedParams.includes(arg.name))
64
79
  .forEach((arg) => {
65
80
  context.report({
66
81
  message: `Unknown parameter ${arg.name} passed to ${nodeType} call`,
@@ -68,7 +83,7 @@ exports.MetadataParamsCheck = {
68
83
  endIndex: arg.position.end,
69
84
  });
70
85
  });
71
- params
86
+ requiredParams
72
87
  .filter((param) => !args.find((arg) => arg.name === param))
73
88
  .forEach((param) => {
74
89
  context.report({
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/metadata-params/index.ts"],"names":[],"mappings":";;;;;;AAAA,uCAA8E;AAC9E,sDAA2B;AAC3B,qEAA+E;AAC/E,2CAAiC;AAEjC,qCAAsC;AAQtC,SAAS,qBAAqB,CAAC,MAAc;IAC3C,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;IACvB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,GAAG,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IACrC,IAAI,GAAG,KAAK,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAE5B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,iBAAI,CAAC,IAAI,CAAC,SAAS,CAAa,CAAC;QAChD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAEY,QAAA,mBAAmB,GAA0B;IACxD,IAAI,EAAE;QACJ,IAAI,EAAE,qBAAqB;QAC3B,IAAI,EAAE,uBAAuB;QAC7B,IAAI,EAAE;YACJ,WAAW,EACT,gGAAgG;YAClG,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,SAAS;SACf;QACD,IAAI,EAAE,sBAAc,CAAC,UAAU;QAC/B,QAAQ,EAAE,gBAAQ,CAAC,KAAK;QACxB,MAAM,EAAE,EAAE;QACV,OAAO,EAAE,EAAE;KACZ;IAED,MAAM,CAAC,OAAO;QACZ,MAAM,OAAO,GAAG,IAAI,oCAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEjD,MAAM,QAAQ,GAAG,KAAK,EACpB,QAAsB,EACtB,UAAkB,EAClB,IAA2B,EAC3B,QAAkB,EAClB,EAAE;YACF,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,MAAM,CACtC,gBAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,EACjC,QAAQ,EACR,UAAU,CACX,CAAC;YAEF,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO;YACT,CAAC;YACD,IAAI,MAAM,GAAG,qBAAqB,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC,CAAC;YAC3E,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,IAAI,CAAC,OAAO,CAAC,gBAAgB;oBAAE,OAAO;gBACtC,MAAM,YAAY,GAAG,IAAA,eAAQ,EAAC,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACnE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;gBAC5D,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU;oBAAE,OAAO;gBAC3C,MAAM,mBAAmB,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEzF,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,CAAC;qBAC9C,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC;qBACzB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YACxB,CAAC;YAED,IAAI;iBACD,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBAC3C,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBACf,OAAO,CAAC,MAAM,CAAC;oBACb,OAAO,EAAE,qBAAqB,GAAG,CAAC,IAAI,cAAc,QAAQ,OAAO;oBACnE,UAAU,EAAE,GAAG,CAAC,QAAQ,CAAC,KAAK;oBAC9B,QAAQ,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG;iBAC3B,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEL,MAAM;iBACH,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;iBAC1D,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBACjB,OAAO,CAAC,MAAM,CAAC;oBACb,OAAO,EAAE,sBAAsB,KAAK,sBAAsB,QAAQ,OAAO;oBACzE,UAAU,EAAE,QAAQ,CAAC,KAAK;oBAC1B,QAAQ,EAAE,QAAQ,CAAC,GAAG;iBACvB,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACP,CAAC,CAAC;QAEF,OAAO;YACL,KAAK,CAAC,YAAY,CAAC,IAAI;gBACrB,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpF,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO;gBACT,CAAC;gBAED,MAAM,QAAQ,CAAC,QAAQ,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACjE,CAAC;YACD,KAAK,CAAC,cAAc,CAAC,IAAI;gBACvB,MAAM,UAAU,GAAG,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBACpF,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO;gBACT,CAAC;gBAED,MAAM,QAAQ,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YACnE,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/metadata-params/index.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,11 @@
1
- import { FileType } from '@platformos/platformos-common';
1
+ import { AbstractFileSystem } from '@platformos/platformos-common';
2
2
  /**
3
3
  * Discovers all module names by listing app/modules/ and modules/ directories.
4
4
  * Returns a deduplicated set of module names.
5
5
  */
6
- export declare function discoverModules(fs: {
7
- readDirectory(uri: string): Promise<[string, FileType][]>;
8
- }, ...moduleDirUris: string[]): Promise<Set<string>>;
6
+ export declare function discoverModules(fs: AbstractFileSystem, ...moduleDirUris: string[]): Promise<Set<string>>;
9
7
  export interface TranslationContext {
10
- fs: {
11
- readDirectory(uri: string): Promise<[string, FileType][]>;
12
- };
8
+ fs: AbstractFileSystem;
13
9
  toUri(relativePath: string): string;
14
10
  getTranslationsForBase(uri: string, locale: string): Promise<Record<string, any>>;
15
11
  }
@@ -19,8 +19,8 @@ async function discoverModules(fs, ...moduleDirUris) {
19
19
  }
20
20
  }
21
21
  }
22
- catch (error) {
23
- console.error(`[translation-utils] Failed to read module directory ${dirUri}:`, error);
22
+ catch {
23
+ // Directory doesn't exist or isn't accessible — skip
24
24
  }
25
25
  }
26
26
  return modules;
@@ -1 +1 @@
1
- {"version":3,"file":"translation-utils.js","sourceRoot":"","sources":["../../src/checks/translation-utils.ts"],"names":[],"mappings":";;AAOA,0CAkBC;AAYD,gDAyBC;AA9DD,qEAA8E;AAC9E,sDAA8D;AAE9D;;;GAGG;AACI,KAAK,UAAU,eAAe,CACnC,EAAiE,EACjE,GAAG,aAAuB;IAE1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC5C,IAAI,SAAS,KAAK,4BAAQ,CAAC,SAAS,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,uDAAuD,MAAM,GAAG,EAAE,KAAK,CAAC,CAAC;QACzF,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAQD;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAA2B;IAClE,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,yBAAyB;IACzB,KAAK,MAAM,IAAI,IAAI,uCAAmB,CAAC,cAAc,EAAE,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACrF,WAAW,CAAC,IAAI,CAAC,GAAG,IAAA,oCAAsB,EAAC,YAAY,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,sBAAsB;IACtB,MAAM,OAAO,GAAG,MAAM,eAAe,CACnC,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAC5B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CACzB,CAAC;IACF,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,uCAAmB,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACrF,KAAK,MAAM,GAAG,IAAI,IAAA,oCAAsB,EAAC,YAAY,CAAC,EAAE,CAAC;gBACvD,WAAW,CAAC,IAAI,CAAC,WAAW,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
1
+ {"version":3,"file":"translation-utils.js","sourceRoot":"","sources":["../../src/checks/translation-utils.ts"],"names":[],"mappings":";;AAOA,0CAkBC;AAYD,gDAyBC;AA9DD,qEAAkG;AAClG,sDAA8D;AAE9D;;;GAGG;AACI,KAAK,UAAU,eAAe,CACnC,EAAsB,EACtB,GAAG,aAAuB;IAE1B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAClC,KAAK,MAAM,MAAM,IAAI,aAAa,EAAE,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;YAC/C,KAAK,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC;gBAC5C,IAAI,SAAS,KAAK,4BAAQ,CAAC,SAAS,EAAE,CAAC;oBACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC,CAAC;gBAC1C,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qDAAqD;QACvD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAQD;;;GAGG;AACI,KAAK,UAAU,kBAAkB,CAAC,OAA2B;IAClE,MAAM,WAAW,GAAa,EAAE,CAAC;IAEjC,yBAAyB;IACzB,KAAK,MAAM,IAAI,IAAI,uCAAmB,CAAC,cAAc,EAAE,EAAE,CAAC;QACxD,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;QACrF,WAAW,CAAC,IAAI,CAAC,GAAG,IAAA,oCAAsB,EAAC,YAAY,CAAC,CAAC,CAAC;IAC5D,CAAC;IAED,sBAAsB;IACtB,MAAM,OAAO,GAAG,MAAM,eAAe,CACnC,OAAO,CAAC,EAAE,EACV,OAAO,CAAC,KAAK,CAAC,aAAa,CAAC,EAC5B,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CACzB,CAAC;IACF,KAAK,MAAM,UAAU,IAAI,OAAO,EAAE,CAAC;QACjC,KAAK,MAAM,IAAI,IAAI,uCAAmB,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;YAClE,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,CAAC;YACrF,KAAK,MAAM,GAAG,IAAI,IAAA,oCAAsB,EAAC,YAAY,CAAC,EAAE,CAAC;gBACvD,WAAW,CAAC,IAAI,CAAC,WAAW,UAAU,IAAI,GAAG,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC"}
@@ -5,6 +5,7 @@ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
5
5
  const types_1 = require("../../types");
6
6
  const utils_1 = require("../../utils");
7
7
  const utils_2 = require("../utils");
8
+ const path_1 = require("../../path");
8
9
  exports.UndefinedObject = {
9
10
  meta: {
10
11
  code: 'UndefinedObject',
@@ -34,6 +35,7 @@ exports.UndefinedObject = {
34
35
  const scopedVariables = new Map();
35
36
  const fileScopedVariables = new Set();
36
37
  const variables = [];
38
+ let hasDocTag = false;
37
39
  function indexVariableScope(variableName, scope) {
38
40
  if (!variableName)
39
41
  return;
@@ -47,6 +49,11 @@ exports.UndefinedObject = {
47
49
  fileScopedVariables.add(paramName);
48
50
  }
49
51
  },
52
+ async LiquidRawTag(node) {
53
+ if (node.name === 'doc') {
54
+ hasDocTag = true;
55
+ }
56
+ },
50
57
  async LiquidTag(node, ancestors) {
51
58
  if ((0, utils_2.isWithinRawTagThatDoesNotParseItsContents)(ancestors))
52
59
  return;
@@ -152,6 +159,10 @@ exports.UndefinedObject = {
152
159
  variables.push(node);
153
160
  },
154
161
  async onCodePathEnd() {
162
+ const fileIsPage = (0, path_1.isPage)(context.file.uri);
163
+ // If no @doc tag and not a page, assume undefined variables are params from caller
164
+ if (!hasDocTag && !fileIsPage)
165
+ return;
155
166
  const objects = await globalObjects(platformosDocset, relativePath);
156
167
  objects.forEach((obj) => fileScopedVariables.add(obj.name));
157
168
  variables.forEach((variable) => {
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/undefined-object/index.ts"],"names":[],"mappings":";;;AAAA,uEAoBwC;AACxC,uCAAgG;AAChG,uCAA4C;AAC5C,oCAAqE;AAKxD,QAAA,eAAe,GAA0B;IACpD,IAAI,EAAE;QACJ,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,kBAAkB;QACxB,IAAI,EAAE;YACJ,WAAW,EAAE,uEAAuE;YACpF,WAAW,EAAE,IAAI;YACjB,GAAG,EAAE,+FAA+F;SACrG;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,MAAM,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;QAE7B,IAAI,IAAA,eAAO,EAAC,GAAG,CAAC;YAAE,OAAO,EAAE,CAAC;QAE5B;;WAEG;QACH,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC9B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;QAClD,MAAM,eAAe,GAAyB,IAAI,GAAG,EAAE,CAAC;QACxD,MAAM,mBAAmB,GAAgB,IAAI,GAAG,EAAE,CAAC;QACnD,MAAM,SAAS,GAA2B,EAAE,CAAC;QAE7C,SAAS,kBAAkB,CAAC,YAA2B,EAAE,KAAY;YACnE,IAAI,CAAC,YAAY;gBAAE,OAAO;YAE1B,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAC7D,eAAe,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;QAChE,CAAC;QAED,OAAO;YACL,KAAK,CAAC,kBAAkB,CAAC,IAAwB;gBAC/C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC;gBACxC,IAAI,SAAS,EAAE,CAAC;oBACd,mBAAmB,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;gBACrC,CAAC;YACH,CAAC;YAED,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,SAAS;gBAC7B,IAAI,IAAA,iDAAyC,EAAC,SAAS,CAAC;oBAAE,OAAO;gBAEjE,IAAI,iBAAiB,CAAC,IAAI,CAAC,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtF,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;wBACnC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG;qBACnC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,qBAAqB,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;oBAC3D,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE;wBAC1C,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG;qBACnC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAC7B,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;wBACnC,KAAK,EAAE,IAAI,CAAC,gBAAgB,EAAE,GAAG;qBAClC,CAAC,CAAC;gBACL,CAAC;gBAED;;;;mBAIG;gBACH,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;oBACzB,kBAAkB,CAAC,IAAI,CAAC,IAAI,EAAE;wBAC5B,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG;wBAClC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK;qBAClC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;oBAC7B,MAAM,MAAM,GAAI,IAAI,CAAC,MAAyB,CAAC,IAAI,CAAC;oBACpD,kFAAkF;oBAClF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;wBACxD,kBAAkB,CAAC,MAAM,CAAC,IAAI,EAAE;4BAC9B,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;yBACzB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;oBAC3B,kBAAkB,CAAC,MAAM,EAAE;wBACzB,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;wBAC1B,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;qBACvB,CAAC,CAAC;gBACL,CAAC;gBAED,yBAAyB;gBACzB,IACE,CAAC,oBAAoB,CAAC,IAAI,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC;oBAC1D,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,IAAI,EACzB,CAAC;oBACD,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;wBACnC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK;qBAC3B,CAAC,CAAC;gBACL,CAAC;gBAED;;;;;mBAKG;gBACH,IAAI,cAAc,CAAC,IAAI,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,EAAE,CAAC;oBACtD,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE;wBAC3C,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG;wBAClC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK;qBAClC,CAAC,CAAC;oBACH,kBAAkB,CAAC,IAAI,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc,EAAE;wBACnE,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG;wBAClC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK;qBAClC,CAAC,CAAC;gBACL,CAAC;gBAED,IAAI,qBAAqB,CAAC,IAAI,CAAC,EAAE,CAAC;oBAChC,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE;wBACpC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG;qBACzB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,KAAK,CAAC,YAAY,CAAC,IAAI,EAAE,SAAS;gBAChC,IAAI,IAAA,iDAAyC,EAAC,SAAS,CAAC;oBAAE,OAAO;gBAEjE,+DAA+D;gBAC/D,IACE,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,KAAK;oBAC7B,IAAI,CAAC,MAAM;oBACX,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;oBAC/B,MAAM,IAAI,IAAI,CAAC,MAAM;oBACrB,IAAI,CAAC,MAAM,CAAC,IAAI,EAChB,CAAC;oBACD,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;wBACnC,KAAK,EAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG;wBAClC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK;qBAClC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;YAED,KAAK,CAAC,cAAc,CAAC,IAAI,EAAE,SAAS;gBAClC,IAAI,IAAA,iDAAyC,EAAC,SAAS,CAAC;oBAAE,OAAO;gBAEjE,MAAM,MAAM,GAAG,IAAA,YAAI,EAAC,SAAS,CAAC,CAAC;gBAC/B,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,kBAAkB,CAAC,MAAM,CAAC;oBAAE,OAAO;gBAC9D,IAAI,WAAW,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,MAAM,CAAC;oBAAE,OAAO;gBAChE,6EAA6E;gBAC7E,IAAI,gBAAgB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;oBAAE,OAAO;gBAC7D,uDAAuD;gBACvD,IAAI,mBAAmB,CAAC,MAAM,CAAC,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;oBAAE,OAAO;gBAElE,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACvB,CAAC;YAED,KAAK,CAAC,aAAa;gBACjB,MAAM,OAAO,GAAG,MAAM,aAAa,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;gBAEpE,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,mBAAmB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE5D,SAAS,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,EAAE;oBAC7B,IAAI,CAAC,QAAQ,CAAC,IAAI;wBAAE,OAAO;oBAE3B,MAAM,iBAAiB,GAAG,SAAS,CACjC,QAAQ,CAAC,IAAI,EACb,QAAQ,CAAC,QAAQ,EACjB,mBAAmB,EACnB,eAAe,CAChB,CAAC;oBACF,IAAI,iBAAiB;wBAAE,OAAO;oBAE9B,OAAO,CAAC,MAAM,CAAC;wBACb,OAAO,EAAE,mBAAmB,QAAQ,CAAC,IAAI,SAAS;wBAClD,UAAU,EAAE,QAAQ,CAAC,QAAQ,CAAC,KAAK;wBACnC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,GAAG;qBAChC,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC;AAEF,KAAK,UAAU,aAAa,CAAC,gBAAkC,EAAE,YAAoB;IACnF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,OAAO,EAAE,CAAC;IACjD,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAE7D,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE;QACxD,OAAO,CACL,iBAAiB,CAAC,QAAQ,CAAC,IAAI,CAAC;YAChC,CAAC,MAAM;YACP,MAAM,CAAC,MAAM,KAAK,IAAI;YACtB,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAC3B,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,SAAS,oBAAoB,CAAC,YAAoB;IAChD,IAAI,YAAY,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC/E,OAAO,CAAC,KAAK,CAAC,CAAC;IACjB,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,SAAS,CAChB,YAAoB,EACpB,gBAA0B,EAC1B,mBAAgC,EAChC,eAAqC;IAErC;;OAEG;IACH,IAAI,mBAAmB,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;QAC1C,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,MAAM,MAAM,GAAG,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAEjD;;OAEG;IACH,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,gBAAgB,CAAC,gBAAgB,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3E,CAAC;AAED,SAAS,gBAAgB,CAAC,gBAA0B,EAAE,KAAY;IAChE,MAAM,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;IACrC,MAAM,yBAAyB,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;IACtE,MAAM,wBAAwB,GAAG,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;IAEjE,OAAO,yBAAyB,IAAI,wBAAwB,CAAC;AAC/D,CAAC;AAED,SAAS,WAAW,CAAC,IAAqB;IACxC,OAAO,IAAI,EAAE,IAAI,KAAK,8BAAS,CAAC,SAAS,CAAC;AAC5C,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAe;IACzC,OAAO,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,OAAO,CAAC;AACzC,CAAC;AAED,SAAS,iBAAiB,CAAC,IAAe;IACxC,OAAO,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,MAAM,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC3E,CAAC;AAED,SAAS,qBAAqB,CAAC,IAAe;IAC5C,OAAO,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAChF,CAAC;AAED,SAAS,kBAAkB,CAAC,IAAe;IACzC,OAAO,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,OAAO,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC5E,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAe;IAC3C,OAAO,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,UAAU,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC/E,CAAC;AAED,SAAS,cAAc,CAAC,IAAe;IACrC,OAAO,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,GAAG,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AACxE,CAAC;AAED,SAAS,mBAAmB,CAAC,IAAe;IAC1C,OAAO,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,QAAQ,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC7E,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAe;IAC3C,OAAO,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC9E,CAAC;AAED,SAAS,oBAAoB,CAAC,IAAe;IAC3C,OAAO,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,SAAS,IAAI,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC;AAC9E,CAAC;AAED,SAAS,qBAAqB,CAC5B,IAAe;IAEf,OAAO,CACL,IAAI,CAAC,IAAI,KAAK,8BAAS,CAAC,UAAU;QAClC,OAAO,IAAI,CAAC,MAAM,KAAK,QAAQ;QAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,8BAAS,CAAC,gBAAgB,CAChD,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAqB;IAC7C,OAAO,IAAI,EAAE,IAAI,KAAK,8BAAS,CAAC,cAAc,CAAC;AACjD,CAAC;AAED,SAAS,mBAAmB,CAC1B,IAAqB;IAErB,OAAO,IAAI,EAAE,IAAI,KAAK,8BAAS,CAAC,YAAY,IAAK,IAAY,CAAC,IAAI,KAAK,8BAAS,CAAC,KAAK,CAAC;AACzF,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/checks/undefined-object/index.ts"],"names":[],"mappings":"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"}