@tamagui/language-service 3.0.0-beta.922.1 → 3.0.0

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 (63) hide show
  1. package/README.md +25 -134
  2. package/dist/cjs/check.cjs +85 -10
  3. package/dist/cjs/check.native.cjs +138 -22
  4. package/dist/cjs/check.native.js +138 -22
  5. package/dist/cjs/check.native.js.map +1 -1
  6. package/dist/cjs/core.cjs +8 -4
  7. package/dist/cjs/core.native.cjs +10 -9
  8. package/dist/cjs/core.native.js +10 -9
  9. package/dist/cjs/core.native.js.map +1 -1
  10. package/dist/cjs/document.cjs +4 -3
  11. package/dist/cjs/document.native.cjs +5 -3
  12. package/dist/cjs/document.native.js +5 -3
  13. package/dist/cjs/document.native.js.map +1 -1
  14. package/dist/cjs/extract-estree.native.cjs +2 -6
  15. package/dist/cjs/extract-estree.native.js +2 -6
  16. package/dist/cjs/extract-estree.native.js.map +1 -1
  17. package/dist/cjs/index.cjs +5 -284
  18. package/dist/cjs/index.native.cjs +5 -395
  19. package/dist/cjs/index.native.js +5 -395
  20. package/dist/cjs/index.native.js.map +1 -1
  21. package/dist/esm/check.mjs +87 -12
  22. package/dist/esm/check.mjs.map +1 -1
  23. package/dist/esm/check.native.js +140 -24
  24. package/dist/esm/check.native.js.map +1 -1
  25. package/dist/esm/core.mjs +8 -4
  26. package/dist/esm/core.mjs.map +1 -1
  27. package/dist/esm/core.native.js +10 -9
  28. package/dist/esm/core.native.js.map +1 -1
  29. package/dist/esm/document.mjs +4 -3
  30. package/dist/esm/document.mjs.map +1 -1
  31. package/dist/esm/document.native.js +5 -3
  32. package/dist/esm/document.native.js.map +1 -1
  33. package/dist/esm/extract-estree.native.js +2 -6
  34. package/dist/esm/extract-estree.native.js.map +1 -1
  35. package/dist/esm/index.mjs +5 -279
  36. package/dist/esm/index.native.js +5 -390
  37. package/package.json +8 -17
  38. package/src/check.ts +118 -13
  39. package/src/core.ts +25 -6
  40. package/src/document.ts +21 -4
  41. package/src/index.ts +4 -452
  42. package/types/check.d.ts +4 -0
  43. package/types/check.d.ts.map +2 -2
  44. package/types/core.d.ts +7 -2
  45. package/types/core.d.ts.map +2 -2
  46. package/types/document.d.ts +8 -2
  47. package/types/document.d.ts.map +2 -2
  48. package/types/index.d.ts +4 -7
  49. package/types/index.d.ts.map +2 -2
  50. package/dist/cjs/host.cjs +0 -37
  51. package/dist/cjs/host.native.cjs +0 -60
  52. package/dist/cjs/host.native.js +0 -62
  53. package/dist/cjs/host.native.js.map +0 -1
  54. package/dist/esm/host.mjs +0 -17
  55. package/dist/esm/host.mjs.map +0 -1
  56. package/dist/esm/host.native.js +0 -38
  57. package/dist/esm/host.native.js.map +0 -1
  58. package/dist/esm/index.mjs.map +0 -1
  59. package/dist/esm/index.native.js.map +0 -1
  60. package/index.cjs +0 -1
  61. package/src/host.ts +0 -32
  62. package/types/host.d.ts +0 -10
  63. package/types/host.d.ts.map +0 -11
@@ -1 +1 @@
1
- {"version":3,"file":"check.js","names":[],"sources":["esm/check.js"],"sourcesContent":["import { readdirSync, readFileSync } from \"node:fs\";\nimport { join, relative } from \"node:path\";\nimport { parse } from \"sucrase/dist/parser/index.js\";\nimport { TokenType } from \"sucrase/dist/parser/tokenizer/types.js\";\nimport { createStyleTooling } from \"./core\";\nimport {\n createDocumentStyleTooling\n} from \"./document\";\nimport { createSucraseStyleSiteExtractor } from \"./extract-sucrase\";\nconst sourceExtensions = /\\.(tsx|jsx)$/;\nconst skippedDirectories = /* @__PURE__ */ new Set([\n \"node_modules\",\n \"dist\",\n \"build\",\n \"out\",\n \"coverage\",\n \".git\",\n \".next\",\n \".expo\",\n \".tamagui\"\n]);\nclass MissingConfigArtifactError extends Error {\n constructor(configPath) {\n super(\n `no Tamagui config artifact at ${configPath} \\u2014 run your dev server or \\`tamagui generate\\` once so the compiler emits it`\n );\n this.name = \"MissingConfigArtifactError\";\n }\n}\nfunction walkSourceFiles(directory, results) {\n for (const entry of readdirSync(directory, { withFileTypes: true })) {\n if (entry.isDirectory()) {\n if (!skippedDirectories.has(entry.name) && !entry.name.startsWith(\".\")) {\n walkSourceFiles(join(directory, entry.name), results);\n }\n continue;\n }\n if (sourceExtensions.test(entry.name)) results.push(join(directory, entry.name));\n }\n}\nfunction createProjectExtractor(isStyleProp) {\n return createSucraseStyleSiteExtractor({ parse, TokenType }, { isStyleProp });\n}\nfunction checkStyleFiles(options) {\n const configPath = options.configPath ?? join(options.root, \".tamagui\", \"tamagui.config.json\");\n let contents;\n try {\n contents = readFileSync(configPath, \"utf8\");\n } catch {\n throw new MissingConfigArtifactError(configPath);\n }\n const tooling = createStyleTooling(JSON.parse(contents));\n if (!tooling) throw new MissingConfigArtifactError(configPath);\n const document = createDocumentStyleTooling(\n tooling,\n createProjectExtractor((name) => tooling.isStyleProp(name))\n );\n let files;\n if (options.files) {\n files = [...options.files];\n } else {\n files = [];\n walkSourceFiles(options.root, files);\n files.sort();\n }\n const checked = [];\n let diagnosticCount = 0;\n for (const file of files) {\n let source;\n try {\n source = readFileSync(file, \"utf8\");\n } catch {\n continue;\n }\n let diagnostics;\n try {\n diagnostics = document.diagnostics(source);\n } catch {\n continue;\n }\n if (diagnostics.length === 0) continue;\n diagnosticCount += diagnostics.length;\n checked.push({ file: relative(options.root, file), source, diagnostics });\n }\n return { files: checked, checkedFileCount: files.length, diagnosticCount };\n}\nconst ansi = {\n red: (text) => `\\x1B[31m${text}\\x1B[39m`,\n dim: (text) => `\\x1B[2m${text}\\x1B[22m`,\n bold: (text) => `\\x1B[1m${text}\\x1B[22m`,\n cyan: (text) => `\\x1B[36m${text}\\x1B[39m`\n};\nconst plain = {\n red: (text) => text,\n dim: (text) => text,\n bold: (text) => text,\n cyan: (text) => text\n};\nfunction lineStarts(source) {\n const starts = [0];\n for (let index = 0; index < source.length; index++) {\n if (source.charCodeAt(index) === 10) starts.push(index + 1);\n }\n return starts;\n}\nfunction positionOf(starts, offset) {\n let low = 0;\n let high = starts.length - 1;\n while (low < high) {\n const mid = low + high + 1 >> 1;\n if (starts[mid] <= offset) low = mid;\n else high = mid - 1;\n }\n return { line: low, column: offset - starts[low] };\n}\nfunction formatCheckResults(result, options = {}) {\n const paint = options.color === false ? plain : ansi;\n const output = [];\n for (const checked of result.files) {\n const starts = lineStarts(checked.source);\n const lines = checked.source.split(\"\\n\");\n for (const diagnostic of checked.diagnostics) {\n const start = positionOf(starts, diagnostic.start);\n const end = positionOf(starts, diagnostic.end);\n output.push(\n `${paint.bold(checked.file)}${paint.dim(`:${start.line + 1}:${start.column + 1}`)} ${paint.red(\"error\")} ${diagnostic.message}`\n );\n const line = lines[start.line] ?? \"\";\n const gutter = String(start.line + 1);\n output.push(` ${paint.dim(`${gutter} \\u2502`)} ${line}`);\n const underlineLength = end.line === start.line ? Math.max(1, end.column - start.column) : Math.max(1, line.length - start.column);\n output.push(\n ` ${paint.dim(`${\" \".repeat(gutter.length)} \\u2502`)} ${\" \".repeat(start.column)}${paint.red(\"^\".repeat(underlineLength))}`\n );\n output.push(\"\");\n }\n }\n const summary = result.diagnosticCount === 0 ? `${paint.bold(\"\\u2713\")} ${result.checkedFileCount} files, no flat value problems` : `${paint.red(paint.bold(`\\u2717 ${result.diagnosticCount} problem${result.diagnosticCount === 1 ? \"\" : \"s\"}`))} in ${result.files.length} file${result.files.length === 1 ? \"\" : \"s\"} ${paint.dim(`(${result.checkedFileCount} checked)`)}`;\n output.push(summary);\n return output.join(\"\\n\");\n}\nexport {\n MissingConfigArtifactError,\n checkStyleFiles,\n createProjectExtractor,\n formatCheckResults\n};\n//# sourceMappingURL=check.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"check.js","names":[],"sources":["esm/check.js"],"sourcesContent":["import { existsSync, readdirSync, readFileSync } from \"node:fs\";\nimport { dirname, join, relative, resolve } from \"node:path\";\nimport { spawnSync } from \"node:child_process\";\nimport { parse } from \"sucrase/dist/parser/index.js\";\nimport { TokenType } from \"sucrase/dist/parser/tokenizer/types.js\";\nimport { createStyleTooling } from \"./core\";\nimport {\n createDocumentStyleTooling\n} from \"./document\";\nimport { createSucraseStyleSiteExtractor } from \"./extract-sucrase\";\nconst sourceExtensions = /\\.(tsx|jsx)$/;\nconst skippedDirectories = /* @__PURE__ */ new Set([\n \"node_modules\",\n \"dist\",\n \"build\",\n \"out\",\n \"coverage\",\n \".git\",\n \".next\",\n \".expo\",\n \".tamagui\"\n]);\nconst projectMarkers = [\n \"tamagui.build.ts\",\n \"tamagui.build.tsx\",\n \"tamagui.build.js\",\n \"tamagui.build.mjs\",\n \"tamagui.build.cjs\"\n];\nclass MissingConfigArtifactError extends Error {\n constructor(configPath) {\n super(\n `no Tamagui config artifact at ${configPath} \\u2014 run your dev server or \\`tamagui generate\\` once so the compiler emits it`\n );\n this.name = \"MissingConfigArtifactError\";\n }\n}\nfunction walkSourceFiles(directory, root, results, skippedProjects) {\n for (const entry of readdirSync(directory, { withFileTypes: true })) {\n if (entry.isDirectory()) {\n if (skippedDirectories.has(entry.name) || entry.name.startsWith(\".\")) continue;\n const child = join(directory, entry.name);\n if (projectMarkers.some((marker) => existsSync(join(child, marker))) || existsSync(join(child, \".tamagui\", \"tamagui.config.json\"))) {\n skippedProjects.push(relative(root, child));\n continue;\n }\n walkSourceFiles(child, root, results, skippedProjects);\n continue;\n }\n if (sourceExtensions.test(entry.name)) results.push(join(directory, entry.name));\n }\n}\nfunction createProjectExtractor(isStyleProp) {\n return createSucraseStyleSiteExtractor({ parse, TokenType }, { isStyleProp });\n}\nfunction checkStyleFiles(options) {\n const root = resolve(options.root);\n const configPath = options.configPath ?? join(root, \".tamagui\", \"tamagui.config.json\");\n let contents;\n try {\n contents = readFileSync(configPath, \"utf8\");\n } catch {\n throw new MissingConfigArtifactError(configPath);\n }\n const tooling = createStyleTooling(JSON.parse(contents), {\n strictPayloads: options.strict\n });\n if (!tooling) throw new MissingConfigArtifactError(configPath);\n const document = createDocumentStyleTooling(\n tooling,\n createProjectExtractor((name) => tooling.isStyleProp(name)),\n { strictPayloads: options.strict }\n );\n let files;\n const skippedProjects = [];\n if (options.files) {\n files = [...options.files];\n } else {\n files = [];\n const insideGit = spawnSync(\"git\", [\"rev-parse\", \"--is-inside-work-tree\"], {\n cwd: root,\n encoding: \"utf8\"\n });\n if (insideGit.status === 0) {\n const listed = spawnSync(\n \"git\",\n [\n \"ls-files\",\n \"--cached\",\n \"--others\",\n \"--exclude-standard\",\n \"-z\",\n \"--\",\n \"*.tsx\",\n \"*.jsx\"\n ],\n {\n cwd: root,\n encoding: \"utf8\",\n maxBuffer: 64 * 1024 * 1024\n }\n );\n if (listed.error) throw listed.error;\n if (listed.status !== 0) {\n throw new Error(listed.stderr.trim() || \"git ls-files failed\");\n }\n const skipped = /* @__PURE__ */ new Set();\n const projectByDirectory = /* @__PURE__ */ new Map();\n for (const relativeFile of listed.stdout.split(\"\\0\")) {\n if (!relativeFile) continue;\n const file = join(root, relativeFile);\n if (!existsSync(file)) continue;\n let directory = dirname(file);\n let nestedProject = null;\n const visited = [];\n while (directory !== root) {\n if (projectByDirectory.has(directory)) {\n nestedProject = projectByDirectory.get(directory) ?? null;\n break;\n }\n visited.push(directory);\n if (projectMarkers.some((marker) => existsSync(join(directory, marker))) || existsSync(join(directory, \".tamagui\", \"tamagui.config.json\"))) {\n nestedProject = directory;\n break;\n }\n directory = dirname(directory);\n }\n for (const visitedDirectory of visited) {\n projectByDirectory.set(visitedDirectory, nestedProject);\n }\n if (nestedProject) {\n skipped.add(relative(root, nestedProject));\n } else {\n files.push(file);\n }\n }\n skippedProjects.push(...skipped);\n } else {\n walkSourceFiles(root, root, files, skippedProjects);\n }\n files.sort();\n skippedProjects.sort();\n }\n const checked = [];\n let diagnosticCount = 0;\n for (const file of files) {\n let source;\n try {\n source = readFileSync(file, \"utf8\");\n } catch {\n continue;\n }\n let diagnostics;\n try {\n diagnostics = document.diagnostics(source, void 0, {\n strictPayloads: options.strict\n });\n } catch {\n continue;\n }\n if (diagnostics.length === 0) continue;\n diagnosticCount += diagnostics.length;\n checked.push({ file: relative(root, file), source, diagnostics });\n }\n return {\n files: checked,\n checkedFileCount: files.length,\n diagnosticCount,\n skippedProjects\n };\n}\nconst ansi = {\n red: (text) => `\\x1B[31m${text}\\x1B[39m`,\n dim: (text) => `\\x1B[2m${text}\\x1B[22m`,\n bold: (text) => `\\x1B[1m${text}\\x1B[22m`,\n cyan: (text) => `\\x1B[36m${text}\\x1B[39m`\n};\nconst plain = {\n red: (text) => text,\n dim: (text) => text,\n bold: (text) => text,\n cyan: (text) => text\n};\nfunction lineStarts(source) {\n const starts = [0];\n for (let index = 0; index < source.length; index++) {\n if (source.charCodeAt(index) === 10) starts.push(index + 1);\n }\n return starts;\n}\nfunction positionOf(starts, offset) {\n let low = 0;\n let high = starts.length - 1;\n while (low < high) {\n const mid = low + high + 1 >> 1;\n if (starts[mid] <= offset) low = mid;\n else high = mid - 1;\n }\n return { line: low, column: offset - starts[low] };\n}\nfunction formatCheckResults(result, options = {}) {\n const paint = options.color === false ? plain : ansi;\n const output = [];\n for (const checked of result.files) {\n const starts = lineStarts(checked.source);\n const lines = checked.source.split(\"\\n\");\n for (const diagnostic of checked.diagnostics) {\n const start = positionOf(starts, diagnostic.start);\n const end = positionOf(starts, diagnostic.end);\n output.push(\n `${paint.bold(checked.file)}${paint.dim(`:${start.line + 1}:${start.column + 1}`)} ${paint.red(\"error\")} ${diagnostic.message}`\n );\n const line = lines[start.line] ?? \"\";\n const gutter = String(start.line + 1);\n output.push(` ${paint.dim(`${gutter} \\u2502`)} ${line}`);\n const underlineLength = end.line === start.line ? Math.max(1, end.column - start.column) : Math.max(1, line.length - start.column);\n output.push(\n ` ${paint.dim(`${\" \".repeat(gutter.length)} \\u2502`)} ${\" \".repeat(start.column)}${paint.red(\"^\".repeat(underlineLength))}`\n );\n output.push(\"\");\n }\n }\n if (result.skippedProjects.length > 0) {\n output.push(\n paint.dim(`Skipped nested Tamagui projects: ${result.skippedProjects.join(\", \")}`)\n );\n }\n const summary = result.diagnosticCount === 0 ? `${paint.bold(\"\\u2713\")} ${result.checkedFileCount} files, no flat value problems` : `${paint.red(paint.bold(`\\u2717 ${result.diagnosticCount} problem${result.diagnosticCount === 1 ? \"\" : \"s\"}`))} in ${result.files.length} file${result.files.length === 1 ? \"\" : \"s\"} ${paint.dim(`(${result.checkedFileCount} checked)`)}`;\n output.push(summary);\n return output.join(\"\\n\");\n}\nexport {\n MissingConfigArtifactError,\n checkStyleFiles,\n createProjectExtractor,\n formatCheckResults\n};\n//# sourceMappingURL=check.js.map\n"],"mappings":"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"}
@@ -1,5 +1,6 @@
1
- import { readFileSync, readdirSync } from "fs";
2
- import { join, relative } from "path";
1
+ import { existsSync, readFileSync, readdirSync } from "fs";
2
+ import { dirname, join, relative, resolve } from "path";
3
+ import { spawnSync } from "child_process";
3
4
  import { parse } from "sucrase/dist/parser/index.js";
4
5
  import { TokenType } from "sucrase/dist/parser/tokenizer/types.js";
5
6
  import { createStyleTooling } from "./core.native.js";
@@ -117,6 +118,13 @@ var skippedDirectories = /* @__PURE__ */ new Set([
117
118
  ".expo",
118
119
  ".tamagui"
119
120
  ]);
121
+ var projectMarkers = [
122
+ "tamagui.build.ts",
123
+ "tamagui.build.tsx",
124
+ "tamagui.build.js",
125
+ "tamagui.build.mjs",
126
+ "tamagui.build.cjs"
127
+ ];
120
128
  var MissingConfigArtifactError = /* @__PURE__ */ (function(Error1) {
121
129
  "use strict";
122
130
  _inherits(MissingConfigArtifactError2, Error1);
@@ -129,19 +137,26 @@ var MissingConfigArtifactError = /* @__PURE__ */ (function(Error1) {
129
137
  }
130
138
  return MissingConfigArtifactError2;
131
139
  })(_wrap_native_super(Error));
132
- function walkSourceFiles(directory, results) {
140
+ function walkSourceFiles(directory, root, results, skippedProjects) {
133
141
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
134
142
  try {
135
- for (var _iterator = readdirSync(directory, { withFileTypes: true })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
143
+ var _loop = function() {
136
144
  var entry = _step.value;
137
145
  if (entry.isDirectory()) {
138
- if (!skippedDirectories.has(entry.name) && !entry.name.startsWith(".")) {
139
- walkSourceFiles(join(directory, entry.name), results);
146
+ if (skippedDirectories.has(entry.name) || entry.name.startsWith(".")) return "continue";
147
+ var child = join(directory, entry.name);
148
+ if (projectMarkers.some(function(marker) {
149
+ return existsSync(join(child, marker));
150
+ }) || existsSync(join(child, ".tamagui", "tamagui.config.json"))) {
151
+ skippedProjects.push(relative(root, child));
152
+ return "continue";
140
153
  }
141
- continue;
154
+ walkSourceFiles(child, root, results, skippedProjects);
155
+ return "continue";
142
156
  }
143
157
  if (sourceExtensions.test(entry.name)) results.push(join(directory, entry.name));
144
- }
158
+ };
159
+ for (var _iterator = readdirSync(directory, { withFileTypes: true })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
145
160
  } catch (err) {
146
161
  _didIteratorError = true;
147
162
  _iteratorError = err;
@@ -164,33 +179,130 @@ function createProjectExtractor(isStyleProp) {
164
179
  }, { isStyleProp });
165
180
  }
166
181
  function checkStyleFiles(options) {
182
+ var root = resolve(options.root);
167
183
  var _options_configPath;
168
- var configPath = (_options_configPath = options.configPath) !== null && _options_configPath !== void 0 ? _options_configPath : join(options.root, ".tamagui", "tamagui.config.json");
184
+ var configPath = (_options_configPath = options.configPath) !== null && _options_configPath !== void 0 ? _options_configPath : join(root, ".tamagui", "tamagui.config.json");
169
185
  var contents;
170
186
  try {
171
187
  contents = readFileSync(configPath, "utf8");
172
188
  } catch (e) {
173
189
  throw new MissingConfigArtifactError(configPath);
174
190
  }
175
- var tooling = createStyleTooling(JSON.parse(contents));
191
+ var tooling = createStyleTooling(JSON.parse(contents), { strictPayloads: options.strict });
176
192
  if (!tooling) throw new MissingConfigArtifactError(configPath);
177
193
  var document = createDocumentStyleTooling(tooling, createProjectExtractor(function(name) {
178
194
  return tooling.isStyleProp(name);
179
- }));
195
+ }), { strictPayloads: options.strict });
180
196
  var files;
197
+ var skippedProjects = [];
181
198
  if (options.files) {
182
199
  files = [...options.files];
183
200
  } else {
184
201
  files = [];
185
- walkSourceFiles(options.root, files);
202
+ var insideGit = spawnSync("git", ["rev-parse", "--is-inside-work-tree"], {
203
+ cwd: root,
204
+ encoding: "utf8"
205
+ });
206
+ if (insideGit.status === 0) {
207
+ var listed = spawnSync("git", [
208
+ "ls-files",
209
+ "--cached",
210
+ "--others",
211
+ "--exclude-standard",
212
+ "-z",
213
+ "--",
214
+ "*.tsx",
215
+ "*.jsx"
216
+ ], {
217
+ cwd: root,
218
+ encoding: "utf8",
219
+ maxBuffer: 64 * 1024 * 1024
220
+ });
221
+ if (listed.error) throw listed.error;
222
+ if (listed.status !== 0) {
223
+ throw new Error(listed.stderr.trim() || "git ls-files failed");
224
+ }
225
+ var skipped = /* @__PURE__ */ new Set();
226
+ var projectByDirectory = /* @__PURE__ */ new Map();
227
+ var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
228
+ try {
229
+ var _loop = function() {
230
+ var relativeFile = _step.value;
231
+ if (!relativeFile) return "continue";
232
+ var file2 = join(root, relativeFile);
233
+ if (!existsSync(file2)) return "continue";
234
+ var directory = dirname(file2);
235
+ var nestedProject = null;
236
+ var visited = [];
237
+ while (directory !== root) {
238
+ if (projectByDirectory.has(directory)) {
239
+ var _projectByDirectory_get;
240
+ nestedProject = (_projectByDirectory_get = projectByDirectory.get(directory)) !== null && _projectByDirectory_get !== void 0 ? _projectByDirectory_get : null;
241
+ break;
242
+ }
243
+ visited.push(directory);
244
+ if (projectMarkers.some(function(marker) {
245
+ return existsSync(join(directory, marker));
246
+ }) || existsSync(join(directory, ".tamagui", "tamagui.config.json"))) {
247
+ nestedProject = directory;
248
+ break;
249
+ }
250
+ directory = dirname(directory);
251
+ }
252
+ var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;
253
+ try {
254
+ for (var _iterator2 = visited[Symbol.iterator](), _step12; !(_iteratorNormalCompletion2 = (_step12 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
255
+ var visitedDirectory = _step12.value;
256
+ projectByDirectory.set(visitedDirectory, nestedProject);
257
+ }
258
+ } catch (err) {
259
+ _didIteratorError2 = true;
260
+ _iteratorError2 = err;
261
+ } finally {
262
+ try {
263
+ if (!_iteratorNormalCompletion2 && _iterator2.return != null) {
264
+ _iterator2.return();
265
+ }
266
+ } finally {
267
+ if (_didIteratorError2) {
268
+ throw _iteratorError2;
269
+ }
270
+ }
271
+ }
272
+ if (nestedProject) {
273
+ skipped.add(relative(root, nestedProject));
274
+ } else {
275
+ files.push(file2);
276
+ }
277
+ };
278
+ for (var _iterator = listed.stdout.split("\0")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();
279
+ } catch (err) {
280
+ _didIteratorError = true;
281
+ _iteratorError = err;
282
+ } finally {
283
+ try {
284
+ if (!_iteratorNormalCompletion && _iterator.return != null) {
285
+ _iterator.return();
286
+ }
287
+ } finally {
288
+ if (_didIteratorError) {
289
+ throw _iteratorError;
290
+ }
291
+ }
292
+ }
293
+ skippedProjects.push(...skipped);
294
+ } else {
295
+ walkSourceFiles(root, root, files, skippedProjects);
296
+ }
186
297
  files.sort();
298
+ skippedProjects.sort();
187
299
  }
188
300
  var checked = [];
189
301
  var diagnosticCount = 0;
190
- var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;
302
+ var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;
191
303
  try {
192
- for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
193
- var file = _step.value;
304
+ for (var _iterator1 = files[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {
305
+ var file = _step1.value;
194
306
  var source = void 0;
195
307
  try {
196
308
  source = readFileSync(file, "utf8");
@@ -199,36 +311,37 @@ function checkStyleFiles(options) {
199
311
  }
200
312
  var diagnostics = void 0;
201
313
  try {
202
- diagnostics = document.diagnostics(source);
314
+ diagnostics = document.diagnostics(source, void 0, { strictPayloads: options.strict });
203
315
  } catch (e) {
204
316
  continue;
205
317
  }
206
318
  if (diagnostics.length === 0) continue;
207
319
  diagnosticCount += diagnostics.length;
208
320
  checked.push({
209
- file: relative(options.root, file),
321
+ file: relative(root, file),
210
322
  source,
211
323
  diagnostics
212
324
  });
213
325
  }
214
326
  } catch (err) {
215
- _didIteratorError = true;
216
- _iteratorError = err;
327
+ _didIteratorError1 = true;
328
+ _iteratorError1 = err;
217
329
  } finally {
218
330
  try {
219
- if (!_iteratorNormalCompletion && _iterator.return != null) {
220
- _iterator.return();
331
+ if (!_iteratorNormalCompletion1 && _iterator1.return != null) {
332
+ _iterator1.return();
221
333
  }
222
334
  } finally {
223
- if (_didIteratorError) {
224
- throw _iteratorError;
335
+ if (_didIteratorError1) {
336
+ throw _iteratorError1;
225
337
  }
226
338
  }
227
339
  }
228
340
  return {
229
341
  files: checked,
230
342
  checkedFileCount: files.length,
231
- diagnosticCount
343
+ diagnosticCount,
344
+ skippedProjects
232
345
  };
233
346
  }
234
347
  var ansi = {
@@ -333,6 +446,9 @@ function formatCheckResults(result) {
333
446
  }
334
447
  }
335
448
  }
449
+ if (result.skippedProjects.length > 0) {
450
+ output.push(paint.dim(`Skipped nested Tamagui projects: ${result.skippedProjects.join(", ")}`));
451
+ }
336
452
  var summary = result.diagnosticCount === 0 ? `${paint.bold("✓")} ${result.checkedFileCount} files, no flat value problems` : `${paint.red(paint.bold(`\u2717 ${result.diagnosticCount} problem${result.diagnosticCount === 1 ? "" : "s"}`))} in ${result.files.length} file${result.files.length === 1 ? "" : "s"} ${paint.dim(`(${result.checkedFileCount} checked)`)}`;
337
453
  output.push(summary);
338
454
  return output.join("\n");
@@ -1 +1 @@
1
- {"version":3,"file":"check.native.js","names":[],"sources":["esm/check.native.js"],"sourcesContent":["import { readdirSync, readFileSync } from \"fs\";\nimport { join, relative } from \"path\";\nimport { parse } from \"sucrase/dist/parser/index.js\";\nimport { TokenType } from \"sucrase/dist/parser/tokenizer/types.js\";\nimport { createStyleTooling } from \"./core\";\nimport { createDocumentStyleTooling } from \"./document\";\nimport { createSucraseStyleSiteExtractor } from \"./extract-sucrase\";\nfunction _assert_this_initialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _call_super(_this, derived, args) {\n derived = _get_prototype_of(derived);\n return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));\n}\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function construct(Parent2, args2, Class2) {\n var a = [\n null\n ];\n a.push.apply(a, args2);\n var Constructor = Function.bind.apply(Parent2, a);\n var instance = new Constructor();\n if (Class2) _set_prototype_of(instance, Class2.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _get_prototype_of(o);\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nfunction _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _possible_constructor_return(self, call) {\n if (call && (_type_of(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assert_this_initialized(self);\n}\nfunction _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _set_prototype_of(o, p);\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? /* @__PURE__ */ new Map() : void 0;\n _wrap_native_super = function wrapNativeSuper(Class2) {\n if (Class2 === null || !_is_native_function(Class2)) return Class2;\n if (typeof Class2 !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class2)) return _cache.get(Class2);\n _cache.set(Class2, Wrapper);\n }\n function Wrapper() {\n return _construct(Class2, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class2.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _set_prototype_of(Wrapper, Class2);\n };\n return _wrap_native_super(Class);\n}\nfunction _is_native_reflect_construct() {\n try {\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n } catch (_) {\n }\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\nvar sourceExtensions = /\\.(tsx|jsx)$/;\nvar skippedDirectories = /* @__PURE__ */ new Set([\n \"node_modules\",\n \"dist\",\n \"build\",\n \"out\",\n \"coverage\",\n \".git\",\n \".next\",\n \".expo\",\n \".tamagui\"\n]);\nvar MissingConfigArtifactError = /* @__PURE__ */ (function(Error1) {\n \"use strict\";\n _inherits(MissingConfigArtifactError2, Error1);\n function MissingConfigArtifactError2(configPath) {\n _class_call_check(this, MissingConfigArtifactError2);\n var _this;\n _this = _call_super(this, MissingConfigArtifactError2, [\n `no Tamagui config artifact at ${configPath} \\u2014 run your dev server or \\`tamagui generate\\` once so the compiler emits it`\n ]);\n _this.name = \"MissingConfigArtifactError\";\n return _this;\n }\n return MissingConfigArtifactError2;\n})(_wrap_native_super(Error));\nfunction walkSourceFiles(directory, results) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = readdirSync(directory, {\n withFileTypes: true\n })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var entry = _step.value;\n if (entry.isDirectory()) {\n if (!skippedDirectories.has(entry.name) && !entry.name.startsWith(\".\")) {\n walkSourceFiles(join(directory, entry.name), results);\n }\n continue;\n }\n if (sourceExtensions.test(entry.name)) results.push(join(directory, entry.name));\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction createProjectExtractor(isStyleProp) {\n return createSucraseStyleSiteExtractor({\n parse,\n TokenType\n }, {\n isStyleProp\n });\n}\nfunction checkStyleFiles(options) {\n var _options_configPath;\n var configPath = (_options_configPath = options.configPath) !== null && _options_configPath !== void 0 ? _options_configPath : join(options.root, \".tamagui\", \"tamagui.config.json\");\n var contents;\n try {\n contents = readFileSync(configPath, \"utf8\");\n } catch (e) {\n throw new MissingConfigArtifactError(configPath);\n }\n var tooling = createStyleTooling(JSON.parse(contents));\n if (!tooling) throw new MissingConfigArtifactError(configPath);\n var document = createDocumentStyleTooling(tooling, createProjectExtractor(function(name) {\n return tooling.isStyleProp(name);\n }));\n var files;\n if (options.files) {\n files = [\n ...options.files\n ];\n } else {\n files = [];\n walkSourceFiles(options.root, files);\n files.sort();\n }\n var checked = [];\n var diagnosticCount = 0;\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var file = _step.value;\n var source = void 0;\n try {\n source = readFileSync(file, \"utf8\");\n } catch (e) {\n continue;\n }\n var diagnostics = void 0;\n try {\n diagnostics = document.diagnostics(source);\n } catch (e) {\n continue;\n }\n if (diagnostics.length === 0) continue;\n diagnosticCount += diagnostics.length;\n checked.push({\n file: relative(options.root, file),\n source,\n diagnostics\n });\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n return {\n files: checked,\n checkedFileCount: files.length,\n diagnosticCount\n };\n}\nvar ansi = {\n red: function(text) {\n return `\\x1B[31m${text}\\x1B[39m`;\n },\n dim: function(text) {\n return `\\x1B[2m${text}\\x1B[22m`;\n },\n bold: function(text) {\n return `\\x1B[1m${text}\\x1B[22m`;\n },\n cyan: function(text) {\n return `\\x1B[36m${text}\\x1B[39m`;\n }\n};\nvar plain = {\n red: function(text) {\n return text;\n },\n dim: function(text) {\n return text;\n },\n bold: function(text) {\n return text;\n },\n cyan: function(text) {\n return text;\n }\n};\nfunction lineStarts(source) {\n var starts = [\n 0\n ];\n for (var index = 0; index < source.length; index++) {\n if (source.charCodeAt(index) === 10) starts.push(index + 1);\n }\n return starts;\n}\nfunction positionOf(starts, offset) {\n var low = 0;\n var high = starts.length - 1;\n while (low < high) {\n var mid = low + high + 1 >> 1;\n if (starts[mid] <= offset) low = mid;\n else high = mid - 1;\n }\n return {\n line: low,\n column: offset - starts[low]\n };\n}\nfunction formatCheckResults(result) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var paint = options.color === false ? plain : ansi;\n var output = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = result.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var checked = _step.value;\n var starts = lineStarts(checked.source);\n var lines = checked.source.split(\"\\n\");\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = checked.diagnostics[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var diagnostic = _step1.value;\n var start = positionOf(starts, diagnostic.start);\n var end = positionOf(starts, diagnostic.end);\n output.push(`${paint.bold(checked.file)}${paint.dim(`:${start.line + 1}:${start.column + 1}`)} ${paint.red(\"error\")} ${diagnostic.message}`);\n var _lines_start_line;\n var line = (_lines_start_line = lines[start.line]) !== null && _lines_start_line !== void 0 ? _lines_start_line : \"\";\n var gutter = String(start.line + 1);\n output.push(` ${paint.dim(`${gutter} \\u2502`)} ${line}`);\n var underlineLength = end.line === start.line ? Math.max(1, end.column - start.column) : Math.max(1, line.length - start.column);\n output.push(` ${paint.dim(`${\" \".repeat(gutter.length)} \\u2502`)} ${\" \".repeat(start.column)}${paint.red(\"^\".repeat(underlineLength))}`);\n output.push(\"\");\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n var summary = result.diagnosticCount === 0 ? `${paint.bold(\"\\u2713\")} ${result.checkedFileCount} files, no flat value problems` : `${paint.red(paint.bold(`\\u2717 ${result.diagnosticCount} problem${result.diagnosticCount === 1 ? \"\" : \"s\"}`))} in ${result.files.length} file${result.files.length === 1 ? \"\" : \"s\"} ${paint.dim(`(${result.checkedFileCount} checked)`)}`;\n output.push(summary);\n return output.join(\"\\n\");\n}\nexport {\n MissingConfigArtifactError,\n checkStyleFiles,\n createProjectExtractor,\n formatCheckResults\n};\n//# sourceMappingURL=check.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"check.native.js","names":[],"sources":["esm/check.native.js"],"sourcesContent":["import { existsSync, readdirSync, readFileSync } from \"fs\";\nimport { dirname, join, relative, resolve } from \"path\";\nimport { spawnSync } from \"child_process\";\nimport { parse } from \"sucrase/dist/parser/index.js\";\nimport { TokenType } from \"sucrase/dist/parser/tokenizer/types.js\";\nimport { createStyleTooling } from \"./core\";\nimport { createDocumentStyleTooling } from \"./document\";\nimport { createSucraseStyleSiteExtractor } from \"./extract-sucrase\";\nfunction _assert_this_initialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nfunction _call_super(_this, derived, args) {\n derived = _get_prototype_of(derived);\n return _possible_constructor_return(_this, _is_native_reflect_construct() ? Reflect.construct(derived, args || [], _get_prototype_of(_this).constructor) : derived.apply(_this, args));\n}\nfunction _class_call_check(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\nfunction _construct(Parent, args, Class) {\n if (_is_native_reflect_construct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function construct(Parent2, args2, Class2) {\n var a = [\n null\n ];\n a.push.apply(a, args2);\n var Constructor = Function.bind.apply(Parent2, a);\n var instance = new Constructor();\n if (Class2) _set_prototype_of(instance, Class2.prototype);\n return instance;\n };\n }\n return _construct.apply(null, arguments);\n}\nfunction _get_prototype_of(o) {\n _get_prototype_of = Object.setPrototypeOf ? Object.getPrototypeOf : function getPrototypeOf(o2) {\n return o2.__proto__ || Object.getPrototypeOf(o2);\n };\n return _get_prototype_of(o);\n}\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _set_prototype_of(subClass, superClass);\n}\nfunction _is_native_function(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\nfunction _possible_constructor_return(self, call) {\n if (call && (_type_of(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n return _assert_this_initialized(self);\n}\nfunction _set_prototype_of(o, p) {\n _set_prototype_of = Object.setPrototypeOf || function setPrototypeOf(o2, p2) {\n o2.__proto__ = p2;\n return o2;\n };\n return _set_prototype_of(o, p);\n}\nfunction _type_of(obj) {\n \"@swc/helpers - typeof\";\n return obj && typeof Symbol !== \"undefined\" && obj.constructor === Symbol ? \"symbol\" : typeof obj;\n}\nfunction _wrap_native_super(Class) {\n var _cache = typeof Map === \"function\" ? /* @__PURE__ */ new Map() : void 0;\n _wrap_native_super = function wrapNativeSuper(Class2) {\n if (Class2 === null || !_is_native_function(Class2)) return Class2;\n if (typeof Class2 !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class2)) return _cache.get(Class2);\n _cache.set(Class2, Wrapper);\n }\n function Wrapper() {\n return _construct(Class2, arguments, _get_prototype_of(this).constructor);\n }\n Wrapper.prototype = Object.create(Class2.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _set_prototype_of(Wrapper, Class2);\n };\n return _wrap_native_super(Class);\n}\nfunction _is_native_reflect_construct() {\n try {\n var result = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function() {\n }));\n } catch (_) {\n }\n return (_is_native_reflect_construct = function() {\n return !!result;\n })();\n}\nvar sourceExtensions = /\\.(tsx|jsx)$/;\nvar skippedDirectories = /* @__PURE__ */ new Set([\n \"node_modules\",\n \"dist\",\n \"build\",\n \"out\",\n \"coverage\",\n \".git\",\n \".next\",\n \".expo\",\n \".tamagui\"\n]);\nvar projectMarkers = [\n \"tamagui.build.ts\",\n \"tamagui.build.tsx\",\n \"tamagui.build.js\",\n \"tamagui.build.mjs\",\n \"tamagui.build.cjs\"\n];\nvar MissingConfigArtifactError = /* @__PURE__ */ (function(Error1) {\n \"use strict\";\n _inherits(MissingConfigArtifactError2, Error1);\n function MissingConfigArtifactError2(configPath) {\n _class_call_check(this, MissingConfigArtifactError2);\n var _this;\n _this = _call_super(this, MissingConfigArtifactError2, [\n `no Tamagui config artifact at ${configPath} \\u2014 run your dev server or \\`tamagui generate\\` once so the compiler emits it`\n ]);\n _this.name = \"MissingConfigArtifactError\";\n return _this;\n }\n return MissingConfigArtifactError2;\n})(_wrap_native_super(Error));\nfunction walkSourceFiles(directory, root, results, skippedProjects) {\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = function() {\n var entry = _step.value;\n if (entry.isDirectory()) {\n if (skippedDirectories.has(entry.name) || entry.name.startsWith(\".\")) return \"continue\";\n var child = join(directory, entry.name);\n if (projectMarkers.some(function(marker) {\n return existsSync(join(child, marker));\n }) || existsSync(join(child, \".tamagui\", \"tamagui.config.json\"))) {\n skippedProjects.push(relative(root, child));\n return \"continue\";\n }\n walkSourceFiles(child, root, results, skippedProjects);\n return \"continue\";\n }\n if (sourceExtensions.test(entry.name)) results.push(join(directory, entry.name));\n };\n for (var _iterator = readdirSync(directory, {\n withFileTypes: true\n })[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n}\nfunction createProjectExtractor(isStyleProp) {\n return createSucraseStyleSiteExtractor({\n parse,\n TokenType\n }, {\n isStyleProp\n });\n}\nfunction checkStyleFiles(options) {\n var root = resolve(options.root);\n var _options_configPath;\n var configPath = (_options_configPath = options.configPath) !== null && _options_configPath !== void 0 ? _options_configPath : join(root, \".tamagui\", \"tamagui.config.json\");\n var contents;\n try {\n contents = readFileSync(configPath, \"utf8\");\n } catch (e) {\n throw new MissingConfigArtifactError(configPath);\n }\n var tooling = createStyleTooling(JSON.parse(contents), {\n strictPayloads: options.strict\n });\n if (!tooling) throw new MissingConfigArtifactError(configPath);\n var document = createDocumentStyleTooling(tooling, createProjectExtractor(function(name) {\n return tooling.isStyleProp(name);\n }), {\n strictPayloads: options.strict\n });\n var files;\n var skippedProjects = [];\n if (options.files) {\n files = [\n ...options.files\n ];\n } else {\n files = [];\n var insideGit = spawnSync(\"git\", [\n \"rev-parse\",\n \"--is-inside-work-tree\"\n ], {\n cwd: root,\n encoding: \"utf8\"\n });\n if (insideGit.status === 0) {\n var listed = spawnSync(\"git\", [\n \"ls-files\",\n \"--cached\",\n \"--others\",\n \"--exclude-standard\",\n \"-z\",\n \"--\",\n \"*.tsx\",\n \"*.jsx\"\n ], {\n cwd: root,\n encoding: \"utf8\",\n maxBuffer: 64 * 1024 * 1024\n });\n if (listed.error) throw listed.error;\n if (listed.status !== 0) {\n throw new Error(listed.stderr.trim() || \"git ls-files failed\");\n }\n var skipped = /* @__PURE__ */ new Set();\n var projectByDirectory = /* @__PURE__ */ new Map();\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n var _loop = function() {\n var relativeFile = _step.value;\n if (!relativeFile) return \"continue\";\n var file2 = join(root, relativeFile);\n if (!existsSync(file2)) return \"continue\";\n var directory = dirname(file2);\n var nestedProject = null;\n var visited = [];\n while (directory !== root) {\n if (projectByDirectory.has(directory)) {\n var _projectByDirectory_get;\n nestedProject = (_projectByDirectory_get = projectByDirectory.get(directory)) !== null && _projectByDirectory_get !== void 0 ? _projectByDirectory_get : null;\n break;\n }\n visited.push(directory);\n if (projectMarkers.some(function(marker) {\n return existsSync(join(directory, marker));\n }) || existsSync(join(directory, \".tamagui\", \"tamagui.config.json\"))) {\n nestedProject = directory;\n break;\n }\n directory = dirname(directory);\n }\n var _iteratorNormalCompletion2 = true, _didIteratorError2 = false, _iteratorError2 = void 0;\n try {\n for (var _iterator2 = visited[Symbol.iterator](), _step12; !(_iteratorNormalCompletion2 = (_step12 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {\n var visitedDirectory = _step12.value;\n projectByDirectory.set(visitedDirectory, nestedProject);\n }\n } catch (err) {\n _didIteratorError2 = true;\n _iteratorError2 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion2 && _iterator2.return != null) {\n _iterator2.return();\n }\n } finally {\n if (_didIteratorError2) {\n throw _iteratorError2;\n }\n }\n }\n if (nestedProject) {\n skipped.add(relative(root, nestedProject));\n } else {\n files.push(file2);\n }\n };\n for (var _iterator = listed.stdout.split(\"\\0\")[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) _loop();\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n skippedProjects.push(...skipped);\n } else {\n walkSourceFiles(root, root, files, skippedProjects);\n }\n files.sort();\n skippedProjects.sort();\n }\n var checked = [];\n var diagnosticCount = 0;\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = files[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var file = _step1.value;\n var source = void 0;\n try {\n source = readFileSync(file, \"utf8\");\n } catch (e) {\n continue;\n }\n var diagnostics = void 0;\n try {\n diagnostics = document.diagnostics(source, void 0, {\n strictPayloads: options.strict\n });\n } catch (e) {\n continue;\n }\n if (diagnostics.length === 0) continue;\n diagnosticCount += diagnostics.length;\n checked.push({\n file: relative(root, file),\n source,\n diagnostics\n });\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n return {\n files: checked,\n checkedFileCount: files.length,\n diagnosticCount,\n skippedProjects\n };\n}\nvar ansi = {\n red: function(text) {\n return `\\x1B[31m${text}\\x1B[39m`;\n },\n dim: function(text) {\n return `\\x1B[2m${text}\\x1B[22m`;\n },\n bold: function(text) {\n return `\\x1B[1m${text}\\x1B[22m`;\n },\n cyan: function(text) {\n return `\\x1B[36m${text}\\x1B[39m`;\n }\n};\nvar plain = {\n red: function(text) {\n return text;\n },\n dim: function(text) {\n return text;\n },\n bold: function(text) {\n return text;\n },\n cyan: function(text) {\n return text;\n }\n};\nfunction lineStarts(source) {\n var starts = [\n 0\n ];\n for (var index = 0; index < source.length; index++) {\n if (source.charCodeAt(index) === 10) starts.push(index + 1);\n }\n return starts;\n}\nfunction positionOf(starts, offset) {\n var low = 0;\n var high = starts.length - 1;\n while (low < high) {\n var mid = low + high + 1 >> 1;\n if (starts[mid] <= offset) low = mid;\n else high = mid - 1;\n }\n return {\n line: low,\n column: offset - starts[low]\n };\n}\nfunction formatCheckResults(result) {\n var options = arguments.length > 1 && arguments[1] !== void 0 ? arguments[1] : {};\n var paint = options.color === false ? plain : ansi;\n var output = [];\n var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = void 0;\n try {\n for (var _iterator = result.files[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var checked = _step.value;\n var starts = lineStarts(checked.source);\n var lines = checked.source.split(\"\\n\");\n var _iteratorNormalCompletion1 = true, _didIteratorError1 = false, _iteratorError1 = void 0;\n try {\n for (var _iterator1 = checked.diagnostics[Symbol.iterator](), _step1; !(_iteratorNormalCompletion1 = (_step1 = _iterator1.next()).done); _iteratorNormalCompletion1 = true) {\n var diagnostic = _step1.value;\n var start = positionOf(starts, diagnostic.start);\n var end = positionOf(starts, diagnostic.end);\n output.push(`${paint.bold(checked.file)}${paint.dim(`:${start.line + 1}:${start.column + 1}`)} ${paint.red(\"error\")} ${diagnostic.message}`);\n var _lines_start_line;\n var line = (_lines_start_line = lines[start.line]) !== null && _lines_start_line !== void 0 ? _lines_start_line : \"\";\n var gutter = String(start.line + 1);\n output.push(` ${paint.dim(`${gutter} \\u2502`)} ${line}`);\n var underlineLength = end.line === start.line ? Math.max(1, end.column - start.column) : Math.max(1, line.length - start.column);\n output.push(` ${paint.dim(`${\" \".repeat(gutter.length)} \\u2502`)} ${\" \".repeat(start.column)}${paint.red(\"^\".repeat(underlineLength))}`);\n output.push(\"\");\n }\n } catch (err) {\n _didIteratorError1 = true;\n _iteratorError1 = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion1 && _iterator1.return != null) {\n _iterator1.return();\n }\n } finally {\n if (_didIteratorError1) {\n throw _iteratorError1;\n }\n }\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return != null) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n if (result.skippedProjects.length > 0) {\n output.push(paint.dim(`Skipped nested Tamagui projects: ${result.skippedProjects.join(\", \")}`));\n }\n var summary = result.diagnosticCount === 0 ? `${paint.bold(\"\\u2713\")} ${result.checkedFileCount} files, no flat value problems` : `${paint.red(paint.bold(`\\u2717 ${result.diagnosticCount} problem${result.diagnosticCount === 1 ? \"\" : \"s\"}`))} in ${result.files.length} file${result.files.length === 1 ? \"\" : \"s\"} ${paint.dim(`(${result.checkedFileCount} checked)`)}`;\n output.push(summary);\n return output.join(\"\\n\");\n}\nexport {\n MissingConfigArtifactError,\n checkStyleFiles,\n createProjectExtractor,\n formatCheckResults\n};\n//# sourceMappingURL=check.js.map\n"],"mappings":"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"}
package/dist/esm/core.mjs CHANGED
@@ -39,7 +39,7 @@ function parseColor(value, opacity) {
39
39
  if (opacity !== void 0) color.a = color.a * (opacity / 100);
40
40
  return color;
41
41
  }
42
- function createStyleTooling(file) {
42
+ function createStyleTooling(file, toolingOptions) {
43
43
  const serialized = file.tamaguiConfig;
44
44
  if (!serialized) return null;
45
45
  const config = createGrammarConfigViewFromSerializedConfig(serialized, file.tamaguiConfigMetadata);
@@ -48,7 +48,8 @@ function createStyleTooling(file) {
48
48
  const engine = {
49
49
  config,
50
50
  registry,
51
- candidates
51
+ candidates,
52
+ strictPayloads: toolingOptions?.strictPayloads
52
53
  };
53
54
  const styleProps = createStylePropSet(config);
54
55
  const themes = serialized.themes || {};
@@ -113,9 +114,12 @@ function createStyleTooling(file) {
113
114
  if (!styleProps.has(property)) return null;
114
115
  return completeStyleValueAtCursor(property, value, cursor, engine);
115
116
  },
116
- diagnostics(property, value) {
117
+ diagnostics(property, value, diagnosticOptions) {
117
118
  if (!styleProps.has(property)) return [];
118
- return diagnoseStyleValueProgram(property, value, engine);
119
+ return diagnoseStyleValueProgram(property, value, {
120
+ ...engine,
121
+ strictPayloads: diagnosticOptions?.strictPayloads ?? engine.strictPayloads
122
+ });
119
123
  },
120
124
  annotations,
121
125
  colors(property, value) {
@@ -1 +1 @@
1
- {"version":3,"file":"core.js","names":[],"sources":["esm/core.js"],"sourcesContent":["import { normalizeCSSColor, rgba } from \"@tamagui/normalize-css-color\";\nimport {\n annotateStyleValue,\n completeStyleValueAtCursor,\n createCandidatePropertyVocabulary,\n createGrammarConfigViewFromSerializedConfig,\n createModifierRegistry,\n createStylePropSet,\n diagnoseStyleValueProgram,\n programEligibility,\n stateModifierNames\n} from \"@tamagui/style-grammar/tooling\";\nconst modifierKindLabel = {\n state: \"state modifier\",\n media: \"media modifier\",\n theme: \"theme modifier\",\n platform: \"platform modifier\",\n group: \"group modifier\",\n container: \"container modifier\"\n};\nconst modifierKindSort = {\n state: \"00\",\n group: \"01\",\n media: \"02\",\n container: \"03\",\n theme: \"04\",\n platform: \"05\"\n};\nconst stateModifierSort = new Map(\n stateModifierNames.map((name, index) => [name, index])\n);\nfunction completionSortText(completion, modifierKind) {\n if (modifierKind) {\n const stateOrder = modifierKind === \"state\" ? `${String(stateModifierSort.get(completion.value) ?? 999).padStart(3, \"0\")}:` : \"\";\n return `${modifierKindSort[modifierKind]}:${stateOrder}${completion.value}`;\n }\n return `${completion.kind === \"configured\" ? \"10\" : \"11\"}:${completion.value}`;\n}\nfunction tokenValue(entry) {\n if (entry && typeof entry === \"object\" && \"val\" in entry) {\n return entry.val;\n }\n return entry;\n}\nfunction parseColor(value, opacity) {\n if (typeof value !== \"string\") return null;\n const normalized = normalizeCSSColor(value);\n if (normalized === null) return null;\n const color = rgba(normalized);\n if (opacity !== void 0) color.a = color.a * (opacity / 100);\n return color;\n}\nfunction createStyleTooling(file) {\n const serialized = file.tamaguiConfig;\n if (!serialized) return null;\n const config = createGrammarConfigViewFromSerializedConfig(\n serialized,\n file.tamaguiConfigMetadata\n );\n const registry = createModifierRegistry(config).registry;\n const candidates = createCandidatePropertyVocabulary(config);\n const engine = { config, registry, candidates };\n const styleProps = createStylePropSet(config);\n const themes = serialized.themes || {};\n const rootThemes = Object.keys(themes).filter((name) => !name.includes(\"_\"));\n const previewThemes = [\n ...[\"light\", \"dark\"].filter((name) => rootThemes.includes(name)),\n ...rootThemes.filter((name) => name !== \"light\" && name !== \"dark\")\n ];\n const tokens = serialized.tokens || {};\n const media = serialized.media || {};\n const targetProperty = (name) => config.shorthands?.[name] || name;\n const themeValue = (name) => {\n for (const theme of previewThemes) {\n const value = themes[theme]?.[name];\n if (value !== void 0) return { theme, value };\n }\n return null;\n };\n const annotationColor = (annotation) => {\n if (annotation.kind === \"token\" || annotation.kind === \"identifier\") {\n const name = annotation.opacity !== void 0 ? annotation.text.slice(0, annotation.text.lastIndexOf(\"/\")) : annotation.text;\n if (annotation.tokenCategory === \"color\") {\n const themed = themeValue(name);\n if (themed) {\n const color2 = parseColor(themed.value, annotation.opacity);\n return color2 ? { color: color2, theme: themed.theme } : null;\n }\n const color = parseColor(tokenValue(tokens.color?.[name]), annotation.opacity);\n return color ? { color } : null;\n }\n if (annotation.kind === \"identifier\") {\n const color = parseColor(name);\n return color ? { color } : null;\n }\n return null;\n }\n if (annotation.kind === \"keyword\" && annotation.text === \"transparent\") {\n return { color: { r: 0, g: 0, b: 0, a: 0 } };\n }\n return null;\n };\n const annotations = (property, value) => annotateStyleValue(property, value, engine);\n const formatRgba = (color) => color.a === 1 ? `rgb(${color.r}, ${color.g}, ${color.b})` : `rgba(${color.r}, ${color.g}, ${color.b}, ${Number(color.a.toFixed(3))})`;\n return {\n styleProps,\n engine,\n previewThemes,\n isStyleProp: (name) => styleProps.has(name),\n targetProperty,\n modifierKind: (name) => registry.get(name),\n completions(property, value, cursor) {\n const target = targetProperty(property);\n if (programEligibility(target) === \"legacy-part\") return null;\n if (!styleProps.has(property)) return null;\n return completeStyleValueAtCursor(property, value, cursor, engine);\n },\n diagnostics(property, value) {\n if (!styleProps.has(property)) return [];\n return diagnoseStyleValueProgram(property, value, engine);\n },\n annotations,\n colors(property, value) {\n if (!styleProps.has(property)) return [];\n const results = [];\n for (const annotation of annotations(property, value)) {\n const resolved = annotationColor(annotation);\n if (!resolved) continue;\n results.push({\n start: annotation.start,\n end: annotation.end,\n text: annotation.text,\n color: resolved.color,\n ...resolved.theme !== void 0 && { theme: resolved.theme }\n });\n }\n return results;\n },\n hover(property, value, offset) {\n if (!styleProps.has(property)) return null;\n const annotation = annotations(property, value).find(\n (entry) => offset >= entry.start && offset <= entry.end\n );\n if (!annotation) return null;\n const lines = [];\n let color;\n if (annotation.kind === \"modifier\" && annotation.modifierKind) {\n lines.push(\n `**${annotation.text}** \\xB7 Tamagui ${modifierKindLabel[annotation.modifierKind]}`\n );\n if (annotation.modifierKind === \"media\") {\n const query = media[annotation.text];\n if (query !== void 0) {\n lines.push(\"```json\\n\" + JSON.stringify(query) + \"\\n```\");\n }\n }\n } else if (annotation.kind === \"token\") {\n const name = annotation.opacity !== void 0 ? annotation.text.slice(0, annotation.text.lastIndexOf(\"/\")) : annotation.text;\n if (annotation.tokenCategory === \"color\") {\n lines.push(`**${name}** \\xB7 Tamagui color`);\n let shown = 0;\n for (const theme of previewThemes) {\n const value2 = themes[theme]?.[name];\n if (value2 === void 0 || shown >= 4) continue;\n shown++;\n lines.push(`- ${theme}: \\`${String(value2)}\\``);\n }\n if (shown === 0) {\n const value2 = tokenValue(tokens.color?.[name]);\n if (value2 !== void 0) lines.push(`- \\`${String(value2)}\\``);\n }\n if (annotation.opacity !== void 0) {\n lines.push(`- opacity: ${annotation.opacity}%`);\n }\n } else {\n const value2 = tokenValue(tokens[annotation.tokenCategory || \"\"]?.[name]);\n lines.push(\n `**${name}** \\xB7 Tamagui ${annotation.tokenCategory} token` + (value2 !== void 0 ? ` = \\`${String(value2)}\\`` : \"\")\n );\n }\n const resolved = annotationColor(annotation);\n if (resolved) {\n color = resolved.color;\n lines.push(`- resolves: \\`${formatRgba(resolved.color)}\\``);\n }\n } else if (annotation.kind === \"keyword\") {\n lines.push(\n `**${annotation.text}** \\xB7 CSS keyword` + (annotation.property ? ` for \\`${annotation.property}\\`` : \"\")\n );\n } else {\n const resolved = annotationColor(annotation);\n if (!resolved) return null;\n color = resolved.color;\n lines.push(\n `**${annotation.text}** \\xB7 CSS color = \\`${formatRgba(resolved.color)}\\``\n );\n }\n return {\n start: annotation.start,\n end: annotation.end,\n text: annotation.text,\n markdown: lines.join(\"\\n\\n\"),\n ...color !== void 0 && { color }\n };\n }\n };\n}\nexport {\n completionSortText,\n createStyleTooling\n};\n//# sourceMappingURL=core.js.map\n"],"mappings":"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"}
1
+ {"version":3,"file":"core.js","names":[],"sources":["esm/core.js"],"sourcesContent":["import { normalizeCSSColor, rgba } from \"@tamagui/normalize-css-color\";\nimport {\n annotateStyleValue,\n completeStyleValueAtCursor,\n createCandidatePropertyVocabulary,\n createGrammarConfigViewFromSerializedConfig,\n createModifierRegistry,\n createStylePropSet,\n diagnoseStyleValueProgram,\n programEligibility,\n stateModifierNames\n} from \"@tamagui/style-grammar/tooling\";\nconst modifierKindLabel = {\n state: \"state modifier\",\n media: \"media modifier\",\n theme: \"theme modifier\",\n platform: \"platform modifier\",\n group: \"group modifier\",\n container: \"container modifier\"\n};\nconst modifierKindSort = {\n state: \"00\",\n group: \"01\",\n media: \"02\",\n container: \"03\",\n theme: \"04\",\n platform: \"05\"\n};\nconst stateModifierSort = new Map(\n stateModifierNames.map((name, index) => [name, index])\n);\nfunction completionSortText(completion, modifierKind) {\n if (modifierKind) {\n const stateOrder = modifierKind === \"state\" ? `${String(stateModifierSort.get(completion.value) ?? 999).padStart(3, \"0\")}:` : \"\";\n return `${modifierKindSort[modifierKind]}:${stateOrder}${completion.value}`;\n }\n return `${completion.kind === \"configured\" ? \"10\" : \"11\"}:${completion.value}`;\n}\nfunction tokenValue(entry) {\n if (entry && typeof entry === \"object\" && \"val\" in entry) {\n return entry.val;\n }\n return entry;\n}\nfunction parseColor(value, opacity) {\n if (typeof value !== \"string\") return null;\n const normalized = normalizeCSSColor(value);\n if (normalized === null) return null;\n const color = rgba(normalized);\n if (opacity !== void 0) color.a = color.a * (opacity / 100);\n return color;\n}\nfunction createStyleTooling(file, toolingOptions) {\n const serialized = file.tamaguiConfig;\n if (!serialized) return null;\n const config = createGrammarConfigViewFromSerializedConfig(\n serialized,\n file.tamaguiConfigMetadata\n );\n const registry = createModifierRegistry(config).registry;\n const candidates = createCandidatePropertyVocabulary(config);\n const engine = {\n config,\n registry,\n candidates,\n strictPayloads: toolingOptions?.strictPayloads\n };\n const styleProps = createStylePropSet(config);\n const themes = serialized.themes || {};\n const rootThemes = Object.keys(themes).filter((name) => !name.includes(\"_\"));\n const previewThemes = [\n ...[\"light\", \"dark\"].filter((name) => rootThemes.includes(name)),\n ...rootThemes.filter((name) => name !== \"light\" && name !== \"dark\")\n ];\n const tokens = serialized.tokens || {};\n const media = serialized.media || {};\n const targetProperty = (name) => config.shorthands?.[name] || name;\n const themeValue = (name) => {\n for (const theme of previewThemes) {\n const value = themes[theme]?.[name];\n if (value !== void 0) return { theme, value };\n }\n return null;\n };\n const annotationColor = (annotation) => {\n if (annotation.kind === \"token\" || annotation.kind === \"identifier\") {\n const name = annotation.opacity !== void 0 ? annotation.text.slice(0, annotation.text.lastIndexOf(\"/\")) : annotation.text;\n if (annotation.tokenCategory === \"color\") {\n const themed = themeValue(name);\n if (themed) {\n const color2 = parseColor(themed.value, annotation.opacity);\n return color2 ? { color: color2, theme: themed.theme } : null;\n }\n const color = parseColor(tokenValue(tokens.color?.[name]), annotation.opacity);\n return color ? { color } : null;\n }\n if (annotation.kind === \"identifier\") {\n const color = parseColor(name);\n return color ? { color } : null;\n }\n return null;\n }\n if (annotation.kind === \"keyword\" && annotation.text === \"transparent\") {\n return { color: { r: 0, g: 0, b: 0, a: 0 } };\n }\n return null;\n };\n const annotations = (property, value) => annotateStyleValue(property, value, engine);\n const formatRgba = (color) => color.a === 1 ? `rgb(${color.r}, ${color.g}, ${color.b})` : `rgba(${color.r}, ${color.g}, ${color.b}, ${Number(color.a.toFixed(3))})`;\n return {\n styleProps,\n engine,\n previewThemes,\n isStyleProp: (name) => styleProps.has(name),\n targetProperty,\n modifierKind: (name) => registry.get(name),\n completions(property, value, cursor) {\n const target = targetProperty(property);\n if (programEligibility(target) === \"legacy-part\") return null;\n if (!styleProps.has(property)) return null;\n return completeStyleValueAtCursor(property, value, cursor, engine);\n },\n diagnostics(property, value, diagnosticOptions) {\n if (!styleProps.has(property)) return [];\n return diagnoseStyleValueProgram(property, value, {\n ...engine,\n strictPayloads: diagnosticOptions?.strictPayloads ?? engine.strictPayloads\n });\n },\n annotations,\n colors(property, value) {\n if (!styleProps.has(property)) return [];\n const results = [];\n for (const annotation of annotations(property, value)) {\n const resolved = annotationColor(annotation);\n if (!resolved) continue;\n results.push({\n start: annotation.start,\n end: annotation.end,\n text: annotation.text,\n color: resolved.color,\n ...resolved.theme !== void 0 && { theme: resolved.theme }\n });\n }\n return results;\n },\n hover(property, value, offset) {\n if (!styleProps.has(property)) return null;\n const annotation = annotations(property, value).find(\n (entry) => offset >= entry.start && offset <= entry.end\n );\n if (!annotation) return null;\n const lines = [];\n let color;\n if (annotation.kind === \"modifier\" && annotation.modifierKind) {\n lines.push(\n `**${annotation.text}** \\xB7 Tamagui ${modifierKindLabel[annotation.modifierKind]}`\n );\n if (annotation.modifierKind === \"media\") {\n const query = media[annotation.text];\n if (query !== void 0) {\n lines.push(\"```json\\n\" + JSON.stringify(query) + \"\\n```\");\n }\n }\n } else if (annotation.kind === \"token\") {\n const name = annotation.opacity !== void 0 ? annotation.text.slice(0, annotation.text.lastIndexOf(\"/\")) : annotation.text;\n if (annotation.tokenCategory === \"color\") {\n lines.push(`**${name}** \\xB7 Tamagui color`);\n let shown = 0;\n for (const theme of previewThemes) {\n const value2 = themes[theme]?.[name];\n if (value2 === void 0 || shown >= 4) continue;\n shown++;\n lines.push(`- ${theme}: \\`${String(value2)}\\``);\n }\n if (shown === 0) {\n const value2 = tokenValue(tokens.color?.[name]);\n if (value2 !== void 0) lines.push(`- \\`${String(value2)}\\``);\n }\n if (annotation.opacity !== void 0) {\n lines.push(`- opacity: ${annotation.opacity}%`);\n }\n } else {\n const value2 = tokenValue(tokens[annotation.tokenCategory || \"\"]?.[name]);\n lines.push(\n `**${name}** \\xB7 Tamagui ${annotation.tokenCategory} token` + (value2 !== void 0 ? ` = \\`${String(value2)}\\`` : \"\")\n );\n }\n const resolved = annotationColor(annotation);\n if (resolved) {\n color = resolved.color;\n lines.push(`- resolves: \\`${formatRgba(resolved.color)}\\``);\n }\n } else if (annotation.kind === \"keyword\") {\n lines.push(\n `**${annotation.text}** \\xB7 CSS keyword` + (annotation.property ? ` for \\`${annotation.property}\\`` : \"\")\n );\n } else {\n const resolved = annotationColor(annotation);\n if (!resolved) return null;\n color = resolved.color;\n lines.push(\n `**${annotation.text}** \\xB7 CSS color = \\`${formatRgba(resolved.color)}\\``\n );\n }\n return {\n start: annotation.start,\n end: annotation.end,\n text: annotation.text,\n markdown: lines.join(\"\\n\\n\"),\n ...color !== void 0 && { color }\n };\n }\n };\n}\nexport {\n completionSortText,\n createStyleTooling\n};\n//# sourceMappingURL=core.js.map\n"],"mappings":"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"}
@@ -1,10 +1,6 @@
1
1
  import { normalizeCSSColor, rgba } from "@tamagui/normalize-css-color";
2
2
  import { annotateStyleValue, completeStyleValueAtCursor, createCandidatePropertyVocabulary, createGrammarConfigViewFromSerializedConfig, createModifierRegistry, createStylePropSet, diagnoseStyleValueProgram, programEligibility, stateModifierNames } from "@tamagui/style-grammar/tooling";
3
3
 
4
- function _type_of(obj) {
5
- "@swc/helpers - typeof";
6
- return obj && typeof Symbol !== "undefined" && obj.constructor === Symbol ? "symbol" : typeof obj;
7
- }
8
4
  var modifierKindLabel = {
9
5
  state: "state modifier",
10
6
  media: "media modifier",
@@ -33,7 +29,7 @@ function completionSortText(completion, modifierKind) {
33
29
  return `${completion.kind === "configured" ? "10" : "11"}:${completion.value}`;
34
30
  }
35
31
  function tokenValue(entry) {
36
- if (entry && (typeof entry === "undefined" ? "undefined" : _type_of(entry)) === "object" && "val" in entry) {
32
+ if (entry && typeof entry === "object" && "val" in entry) {
37
33
  return entry.val;
38
34
  }
39
35
  return entry;
@@ -46,7 +42,7 @@ function parseColor(value, opacity) {
46
42
  if (opacity !== void 0) color.a = color.a * (opacity / 100);
47
43
  return color;
48
44
  }
49
- function createStyleTooling(file) {
45
+ function createStyleTooling(file, toolingOptions) {
50
46
  var serialized = file.tamaguiConfig;
51
47
  if (!serialized) return null;
52
48
  var config = createGrammarConfigViewFromSerializedConfig(serialized, file.tamaguiConfigMetadata);
@@ -55,7 +51,8 @@ function createStyleTooling(file) {
55
51
  var engine = {
56
52
  config,
57
53
  registry,
58
- candidates
54
+ candidates,
55
+ strictPayloads: toolingOptions === null || toolingOptions === void 0 ? void 0 : toolingOptions.strictPayloads
59
56
  };
60
57
  var styleProps = createStylePropSet(config);
61
58
  var themes = serialized.themes || {};
@@ -156,9 +153,13 @@ function createStyleTooling(file) {
156
153
  if (!styleProps.has(property)) return null;
157
154
  return completeStyleValueAtCursor(property, value, cursor, engine);
158
155
  },
159
- diagnostics(property, value) {
156
+ diagnostics(property, value, diagnosticOptions) {
160
157
  if (!styleProps.has(property)) return [];
161
- return diagnoseStyleValueProgram(property, value, engine);
158
+ var _diagnosticOptions_strictPayloads;
159
+ return diagnoseStyleValueProgram(property, value, {
160
+ ...engine,
161
+ strictPayloads: (_diagnosticOptions_strictPayloads = diagnosticOptions === null || diagnosticOptions === void 0 ? void 0 : diagnosticOptions.strictPayloads) !== null && _diagnosticOptions_strictPayloads !== void 0 ? _diagnosticOptions_strictPayloads : engine.strictPayloads
162
+ });
162
163
  },
163
164
  annotations,
164
165
  colors(property, value) {