@platformos/platformos-graph 0.0.7 → 0.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/CHANGELOG.md +18 -0
  2. package/README.md +10 -11
  3. package/dist/getWebComponentMap.js +1 -1
  4. package/dist/getWebComponentMap.js.map +1 -1
  5. package/dist/graph/augment.js +0 -3
  6. package/dist/graph/augment.js.map +1 -1
  7. package/dist/graph/build.d.ts +2 -2
  8. package/dist/graph/build.js +7 -8
  9. package/dist/graph/build.js.map +1 -1
  10. package/dist/graph/module.d.ts +6 -9
  11. package/dist/graph/module.js +54 -123
  12. package/dist/graph/module.js.map +1 -1
  13. package/dist/graph/serialize.d.ts +2 -2
  14. package/dist/graph/serialize.js +2 -2
  15. package/dist/graph/serialize.js.map +1 -1
  16. package/dist/graph/test-helpers.d.ts +0 -13
  17. package/dist/graph/test-helpers.js +0 -10
  18. package/dist/graph/test-helpers.js.map +1 -1
  19. package/dist/graph/traverse.d.ts +3 -3
  20. package/dist/graph/traverse.js +19 -349
  21. package/dist/graph/traverse.js.map +1 -1
  22. package/dist/index.d.ts +3 -3
  23. package/dist/index.js +4 -6
  24. package/dist/index.js.map +1 -1
  25. package/dist/toSourceCode.d.ts +1 -4
  26. package/dist/toSourceCode.js +8 -52
  27. package/dist/toSourceCode.js.map +1 -1
  28. package/dist/tsconfig.tsbuildinfo +1 -1
  29. package/dist/types.d.ts +21 -78
  30. package/dist/types.js.map +1 -1
  31. package/dist/utils/index.d.ts +0 -3
  32. package/dist/utils/index.js +0 -18
  33. package/dist/utils/index.js.map +1 -1
  34. package/docs/how-it-works.md +9 -10
  35. package/fixtures/skeleton/app/views/layouts/application.liquid +13 -0
  36. package/fixtures/skeleton/app/views/pages/index.liquid +5 -0
  37. package/fixtures/skeleton/app/views/partials/header.liquid +3 -0
  38. package/fixtures/skeleton/app/views/partials/parent.liquid +1 -1
  39. package/package.json +5 -5
  40. package/src/getWebComponentMap.ts +1 -1
  41. package/src/graph/augment.ts +1 -13
  42. package/src/graph/build.spec.ts +33 -173
  43. package/src/graph/build.ts +11 -14
  44. package/src/graph/module.ts +60 -144
  45. package/src/graph/serialize.spec.ts +22 -29
  46. package/src/graph/serialize.ts +2 -2
  47. package/src/graph/test-helpers.ts +1 -18
  48. package/src/graph/traverse.ts +31 -504
  49. package/src/index.ts +3 -3
  50. package/src/toSourceCode.ts +14 -55
  51. package/src/types.ts +23 -100
  52. package/src/utils/index.ts +0 -24
  53. package/fixtures/skeleton/blocks/_private.liquid +0 -1
  54. package/fixtures/skeleton/blocks/_static.liquid +0 -10
  55. package/fixtures/skeleton/blocks/group.liquid +0 -27
  56. package/fixtures/skeleton/blocks/render-static.liquid +0 -22
  57. package/fixtures/skeleton/blocks/text.liquid +0 -14
  58. package/fixtures/skeleton/jsconfig.json +0 -9
  59. package/fixtures/skeleton/layout/theme.liquid +0 -14
  60. package/fixtures/skeleton/sections/custom-section.liquid +0 -6
  61. package/fixtures/skeleton/sections/header-group.json +0 -36
  62. package/fixtures/skeleton/sections/header.liquid +0 -1
  63. package/fixtures/skeleton/templates/index.json +0 -20
  64. /package/fixtures/skeleton/assets/{theme.css → app.css} +0 -0
  65. /package/fixtures/skeleton/assets/{theme.js → app.js} +0 -0
@@ -6,14 +6,14 @@ const liquid_html_parser_1 = require("@platformos/liquid-html-parser");
6
6
  const platformos_check_common_1 = require("@platformos/platformos-check-common");
7
7
  const utils_1 = require("../utils");
8
8
  const module_1 = require("./module");
9
- async function traverseModule(module, themeGraph, deps) {
9
+ async function traverseModule(module, appGraph, deps) {
10
10
  // If the module is already traversed, skip it
11
- if (themeGraph.modules[module.uri]) {
11
+ if (appGraph.modules[module.uri]) {
12
12
  return;
13
13
  }
14
14
  // Signal to all users that the file is being traversed
15
15
  // This will prevent multiple traversals of the same file
16
- themeGraph.modules[module.uri] = module;
16
+ appGraph.modules[module.uri] = module;
17
17
  // Check if the module exists on disk
18
18
  module.exists = await (0, utils_1.exists)(deps.fs, module.uri);
19
19
  // If the module doesn't exist, we can't traverse it
@@ -22,25 +22,17 @@ async function traverseModule(module, themeGraph, deps) {
22
22
  }
23
23
  switch (module.type) {
24
24
  case "Liquid" /* ModuleType.Liquid */: {
25
- return traverseLiquidModule(module, themeGraph, deps);
25
+ return traverseLiquidModule(module, appGraph, deps);
26
26
  }
27
- case "JSON" /* ModuleType.Json */: {
28
- return traverseJsonModule(module, themeGraph, deps);
29
- }
30
- case "JavaScript" /* ModuleType.JavaScript */: {
31
- return; // TODO graph import/exports ?
32
- }
33
- case "CSS" /* ModuleType.Css */:
34
- case "SVG" /* ModuleType.Svg */:
35
- case "Image" /* ModuleType.Image */: {
36
- return; // Nothing to do??
27
+ case "Asset" /* ModuleType.Asset */: {
28
+ return; // Nothing to traverse in assets
37
29
  }
38
30
  default: {
39
31
  return (0, utils_1.assertNever)(module);
40
32
  }
41
33
  }
42
34
  }
43
- async function traverseLiquidModule(module, themeGraph, deps) {
35
+ async function traverseLiquidModule(module, appGraph, deps) {
44
36
  const sourceCode = await deps.getSourceCode(module.uri);
45
37
  if (sourceCode.ast instanceof Error)
46
38
  return; // can't visit what you can't parse
@@ -58,32 +50,15 @@ async function traverseLiquidModule(module, themeGraph, deps) {
58
50
  if (parentNode.filters[0] !== node)
59
51
  return;
60
52
  const asset = parentNode.expression.value;
61
- const module = (0, module_1.getAssetModule)(themeGraph, asset);
62
- if (!module)
53
+ const assetModule = (0, module_1.getAssetModule)(appGraph, asset);
54
+ if (!assetModule)
63
55
  return;
64
56
  return {
65
- target: module,
57
+ target: assetModule,
66
58
  sourceRange: [parentNode.position.start, parentNode.position.end],
67
59
  };
68
60
  }
69
61
  },
70
- // {% content_for 'block', type: 'staticBlockName', id: 'id' %}
71
- ContentForMarkup: async (node, ancestors) => {
72
- const parentNode = ancestors.at(-1);
73
- if (node.contentForType.value !== 'block')
74
- return;
75
- const blockTypeArg = node.args.find((arg) => arg.name === 'type');
76
- if (!blockTypeArg)
77
- return;
78
- const blockTypeValue = blockTypeArg.value;
79
- if (blockTypeValue.type !== liquid_html_parser_1.NodeTypes.String)
80
- return;
81
- const blockType = blockTypeValue.value;
82
- return {
83
- target: (0, module_1.getThemeBlockModule)(themeGraph, blockType),
84
- sourceRange: [parentNode.position.start, node.position.end],
85
- };
86
- },
87
62
  // <custom-element></custom-element>
88
63
  HtmlElement: async (node) => {
89
64
  if (node.name.length !== 1)
@@ -98,11 +73,11 @@ async function traverseLiquidModule(module, themeGraph, deps) {
98
73
  if (!result)
99
74
  return;
100
75
  const { assetName, range } = result;
101
- const module = (0, module_1.getAssetModule)(themeGraph, assetName);
102
- if (!module)
76
+ const assetModule = (0, module_1.getAssetModule)(appGraph, assetName);
77
+ if (!assetModule)
103
78
  return;
104
79
  return {
105
- target: module,
80
+ target: assetModule,
106
81
  sourceRange: [node.blockStartPosition.start, nodeNameNode.position.end],
107
82
  targetRange: range,
108
83
  };
@@ -113,35 +88,11 @@ async function traverseLiquidModule(module, themeGraph, deps) {
113
88
  const tag = ancestors.at(-1);
114
89
  if (!(0, utils_1.isString)(snippet) && snippet.type === liquid_html_parser_1.NodeTypes.String) {
115
90
  return {
116
- target: (0, module_1.getPartialModule)(themeGraph, snippet.value),
91
+ target: (0, module_1.getPartialModule)(appGraph, snippet.value),
117
92
  sourceRange: [tag.position.start, tag.position.end],
118
93
  };
119
94
  }
120
95
  },
121
- LiquidTag: async (node) => {
122
- switch (node.name) {
123
- // {% sections 'section-group' %}
124
- case liquid_html_parser_1.NamedTags.sections: {
125
- if (!(0, utils_1.isString)(node.markup)) {
126
- const sectionGroupType = node.markup.value;
127
- return {
128
- target: (0, module_1.getSectionGroupModule)(themeGraph, sectionGroupType),
129
- sourceRange: [node.position.start, node.position.end],
130
- };
131
- }
132
- }
133
- // {% section 'section' %}
134
- case liquid_html_parser_1.NamedTags.section: {
135
- if (!(0, utils_1.isString)(node.markup)) {
136
- const sectionType = node.markup.value;
137
- return {
138
- target: (0, module_1.getSectionModule)(themeGraph, sectionType),
139
- sourceRange: [node.position.start, node.position.end],
140
- };
141
- }
142
- }
143
- }
144
- },
145
96
  };
146
97
  const references = await (0, platformos_check_common_1.visit)(sourceCode.ast, visitor);
147
98
  for (const reference of references) {
@@ -150,293 +101,12 @@ async function traverseLiquidModule(module, themeGraph, deps) {
150
101
  targetRange: reference.targetRange,
151
102
  });
152
103
  }
153
- const modules = (0, utils_1.unique)(references.map((ref) => ref.target));
154
- const promises = modules.map((mod) => traverseModule(mod, themeGraph, deps));
155
- // Look at schema references if any
156
- if (module.kind === "section" /* LiquidModuleKind.Section */) {
157
- const sectionName = platformos_check_common_1.path.basename(module.uri, '.liquid');
158
- const sectionSchema = await deps.getSectionSchema(sectionName);
159
- promises.push(traverseLiquidSchema(sectionSchema, module, themeGraph, deps));
160
- }
161
- else if (module.kind === "block" /* LiquidModuleKind.Block */) {
162
- const blockName = platformos_check_common_1.path.basename(module.uri, '.liquid');
163
- const blockSchema = await deps.getBlockSchema(blockName);
164
- promises.push(traverseLiquidSchema(blockSchema, module, themeGraph, deps));
165
- }
166
- return Promise.all(promises);
167
- }
168
- async function traverseLiquidSchema(schema, module, themeGraph, deps) {
169
- if (!schema)
170
- return;
171
- const isSection = module.kind === "section" /* LiquidModuleKind.Section */;
172
- const hasLocalBlocks = isSection && (await (0, utils_1.acceptsLocalBlocks)(platformos_check_common_1.path.basename(module.uri, '.liquid'), deps));
173
- if (hasLocalBlocks)
174
- return;
175
- const { ast, validSchema } = schema;
176
- if (validSchema instanceof Error || ast instanceof Error)
177
- return;
178
- const promises = [];
179
- // Traverse the blocks
180
- if (validSchema.blocks) {
181
- promises.push(traverseSchemaBlocks(schema, module, ast, validSchema.blocks, themeGraph, deps));
182
- }
183
- // Traverse the presets
184
- if (validSchema.presets) {
185
- promises.push(traverseSchemaPresets(schema, module, ast, validSchema.presets, themeGraph, deps));
186
- }
187
- // Traverse section.default if it exists
188
- if ('default' in validSchema && validSchema.default) {
189
- promises.push(traverseSchemaDefault(schema, module, ast, validSchema.default, themeGraph, deps));
190
- }
191
- return Promise.all(promises);
192
- }
193
- async function traverseSchemaBlocks(schema, module, ast, blocks, themeGraph, deps) {
194
- const promises = [];
195
- for (const [i, blockDef] of Object.entries(blocks)) {
196
- const nodePath = ['blocks', i];
197
- const node = (0, platformos_check_common_1.nodeAtPath)(ast, nodePath);
198
- const typeProperty = node.children.find((child) => child.key.value === 'type');
199
- if (!typeProperty)
200
- continue;
201
- const sourceRange = [
202
- schema.offset + typeProperty.loc.start.offset,
203
- schema.offset + typeProperty.loc.end.offset,
204
- ];
205
- // blocks: [{ "type": "@theme" }, { "type": "custom-block" }]
206
- switch (blockDef.type) {
207
- case '@theme': {
208
- const publicBlocks = await deps
209
- .getThemeBlockNames()
210
- .then((blocks) => blocks.filter((name) => !name.startsWith('_')));
211
- for (const publicBlock of publicBlocks) {
212
- const blockModule = (0, module_1.getThemeBlockModule)(themeGraph, platformos_check_common_1.path.basename(publicBlock, '.liquid'));
213
- bind(module, blockModule, { sourceRange, type: 'indirect' });
214
- promises.push(traverseModule(blockModule, themeGraph, deps));
215
- }
216
- break;
217
- }
218
- case '@app': {
219
- break;
220
- }
221
- default: {
222
- const blockModule = (0, module_1.getThemeBlockModule)(themeGraph, blockDef.type);
223
- bind(module, blockModule, { sourceRange });
224
- promises.push(traverseModule(blockModule, themeGraph, deps));
225
- }
226
- }
227
- }
228
- return Promise.all(promises);
229
- }
230
- async function traverseSchemaPresets(schema, module, ast, presets, themeGraph, deps) {
231
- const promises = [];
232
- for (const [i, preset] of presets.entries()) {
233
- if (!('blocks' in preset))
234
- continue;
235
- // Iterate over array entries or object entries depending on how the blocks are defined
236
- const iterator = Array.isArray(preset.blocks)
237
- ? preset.blocks.entries()
238
- : Object.entries(preset.blocks);
239
- for (const [keyOrIndex, block] of iterator) {
240
- const nodePath = ['presets', i, 'blocks', keyOrIndex];
241
- const node = (0, platformos_check_common_1.nodeAtPath)(ast, nodePath);
242
- const blockModule = (0, module_1.getThemeBlockModule)(themeGraph, block.type);
243
- if (!blockModule)
244
- continue;
245
- const typeProperty = node.children.find((child) => child.key.value === 'type');
246
- if (!typeProperty)
247
- continue;
248
- const sourceRange = [
249
- schema.offset + typeProperty.loc.start.offset,
250
- schema.offset + typeProperty.loc.end.offset,
251
- ];
252
- bind(module, blockModule, { sourceRange, type: 'preset' });
253
- promises.push(traverseModule(blockModule, themeGraph, deps));
254
- if (block.blocks) {
255
- promises.push(traverseSchemaPresetBlock(schema, module, ast, block.blocks, nodePath, themeGraph, deps));
256
- }
257
- }
258
- }
259
- return Promise.all(promises);
260
- }
261
- async function traverseSchemaPresetBlock(schema, module, ast, blocks, parentPath, themeGraph, deps) {
262
- const promises = [];
263
- // Iterate over array entries or object entries depending on how the blocks are defined
264
- const iterator = Array.isArray(blocks) ? blocks.entries() : Object.entries(blocks);
265
- for (const [keyOrIndex, block] of iterator) {
266
- const nodePath = [...parentPath, 'blocks', keyOrIndex];
267
- const node = (0, platformos_check_common_1.nodeAtPath)(ast, nodePath);
268
- const blockModule = (0, module_1.getThemeBlockModule)(themeGraph, block.type);
269
- if (!blockModule)
270
- continue;
271
- const typeProperty = node.children.find((child) => child.key.value === 'type');
272
- if (!typeProperty)
273
- continue;
274
- const sourceRange = [
275
- schema.offset + typeProperty.loc.start.offset,
276
- schema.offset + typeProperty.loc.end.offset,
277
- ];
278
- bind(module, blockModule, { sourceRange, type: 'preset' });
279
- promises.push(traverseModule(blockModule, themeGraph, deps));
280
- if (block.blocks) {
281
- promises.push(traverseSchemaPresetBlock(schema, module, ast, block.blocks, nodePath, themeGraph, deps));
282
- }
283
- }
284
- return Promise.all(promises);
285
- }
286
- async function traverseSchemaDefault(schema, module, ast, preset, themeGraph, deps) {
287
- const promises = [];
288
- if (!('blocks' in preset))
289
- return;
290
- // Iterate over array entries or object entries depending on how the blocks are defined
291
- const iterator = Array.isArray(preset.blocks)
292
- ? preset.blocks.entries()
293
- : Object.entries(preset.blocks);
294
- for (const [keyOrIndex, block] of iterator) {
295
- const nodePath = ['default', 'blocks', keyOrIndex];
296
- const node = (0, platformos_check_common_1.nodeAtPath)(ast, nodePath);
297
- const blockModule = (0, module_1.getThemeBlockModule)(themeGraph, block.type);
298
- if (!blockModule)
299
- continue;
300
- const typeProperty = node.children.find((child) => child.key.value === 'type');
301
- if (!typeProperty)
302
- continue;
303
- const sourceRange = [
304
- schema.offset + typeProperty.loc.start.offset,
305
- schema.offset + typeProperty.loc.end.offset,
306
- ];
307
- bind(module, blockModule, { sourceRange, type: 'preset' });
308
- promises.push(traverseModule(blockModule, themeGraph, deps));
309
- }
104
+ const modules = unique(references.map((ref) => ref.target));
105
+ const promises = modules.map((mod) => traverseModule(mod, appGraph, deps));
310
106
  return Promise.all(promises);
311
107
  }
312
- async function traverseJsonModule(module, themeGraph, deps) {
313
- const sourceCode = await deps.getSourceCode(module.uri);
314
- if (sourceCode.type !== platformos_check_common_1.SourceCodeType.JSON)
315
- throw (0, utils_1.unexpected)();
316
- const ast = sourceCode.ast;
317
- if (ast instanceof Error)
318
- return; // can't visit what you can't parse
319
- switch (module.kind) {
320
- case "template" /* JsonModuleKind.Template */: {
321
- // Should only happen once per template
322
- const template = (0, platformos_check_common_1.parseJSON)(sourceCode.source);
323
- const promises = [];
324
- for (const [key, section] of Object.entries(template.sections)) {
325
- const sectionType = section.type;
326
- const path = ['sections', key];
327
- const node = (0, platformos_check_common_1.nodeAtPath)(ast, path);
328
- const sectionModule = (0, module_1.getSectionModule)(themeGraph, sectionType);
329
- const typeProperty = node.children.find((child) => child.key.value === 'type');
330
- const start = typeProperty.loc.start.offset;
331
- const end = typeProperty.loc.end.offset;
332
- const sourceRange = [start, end];
333
- // Link the template to the section
334
- bind(module, sectionModule, { sourceRange });
335
- promises.push(
336
- // Traverse the section themeselves
337
- traverseModule(sectionModule, themeGraph, deps),
338
- // Link the blocks used in the section to the template
339
- traverseSectionReferences(module, ast, path, section, themeGraph, deps));
340
- }
341
- // Link the template to the layout
342
- const layout = template.layout;
343
- const layoutModule = (0, module_1.getLayoutModule)(themeGraph, template.layout);
344
- if (layoutModule) {
345
- let sourceRange = undefined;
346
- let indirect = true;
347
- if (layout !== false && layout !== undefined) {
348
- const layoutPath = ['layout'];
349
- const node = (0, platformos_check_common_1.nodeAtPath)(ast, layoutPath);
350
- sourceRange = [node.loc.start.offset, node.loc.end.offset];
351
- indirect = false; // this is a direct reference to the layout
352
- }
353
- bind(module, layoutModule, { sourceRange, type: 'indirect' });
354
- promises.push(traverseModule(layoutModule, themeGraph, deps));
355
- }
356
- return Promise.all(promises);
357
- }
358
- case "section-group" /* JsonModuleKind.SectionGroup */: {
359
- const sectionGroup = (0, platformos_check_common_1.parseJSON)(sourceCode.source);
360
- const promises = [];
361
- for (const [key, section] of Object.entries(sectionGroup.sections)) {
362
- const sectionType = section.type;
363
- const path = ['sections', key];
364
- const node = (0, platformos_check_common_1.nodeAtPath)(ast, path);
365
- const sectionModule = (0, module_1.getSectionModule)(themeGraph, sectionType);
366
- const typeProperty = node.children.find((child) => child.key.value === 'type');
367
- const start = typeProperty.loc.start.offset;
368
- const end = typeProperty.loc.end.offset;
369
- const sourceRange = [start, end];
370
- // Link the template to the section
371
- bind(module, sectionModule, { sourceRange });
372
- promises.push(
373
- // Traverse the section themeselves
374
- traverseModule(sectionModule, themeGraph, deps),
375
- // Link the blocks used in the section to the template
376
- traverseSectionReferences(module, ast, path, section, themeGraph, deps));
377
- }
378
- return Promise.all(promises);
379
- }
380
- default: {
381
- return (0, utils_1.assertNever)(module.kind);
382
- }
383
- }
384
- }
385
- /**
386
- * Traverses the actual references contained inside Template.Template['sections'] and Template.SectionGroup['sections'].
387
- *
388
- * Does nothing if the mode is not `GraphMode.Production`.
389
- */
390
- async function traverseSectionReferences(source, // template or section group
391
- sourceAst, nodePath = [], section, themeGraph, deps) {
392
- if (!section.blocks)
393
- return;
394
- const sectionHasLocalBlocks = await (0, utils_1.acceptsLocalBlocks)(section.type, deps);
395
- if (sectionHasLocalBlocks)
396
- return;
397
- const promises = [];
398
- for (const [key, block] of Object.entries(section.blocks)) {
399
- const blockType = block.type;
400
- const blockModule = (0, module_1.getThemeBlockModule)(themeGraph, blockType);
401
- const path = [...nodePath, 'blocks', key];
402
- const node = (0, platformos_check_common_1.nodeAtPath)(sourceAst, path);
403
- const typeProperty = node.children.find((child) => child.key.value === 'type');
404
- const start = typeProperty.loc.start.offset;
405
- const end = typeProperty.loc.end.offset;
406
- const sourceRange = [start, end];
407
- // Link the template to the block
408
- bind(source, blockModule, { sourceRange });
409
- promises.push(
410
- // Traverse the block themselves
411
- traverseModule(blockModule, themeGraph, deps),
412
- // Traverse the block references
413
- traverseBlockReferences(source, sourceAst, path, block, themeGraph, deps));
414
- }
415
- return Promise.all(promises);
416
- }
417
- async function traverseBlockReferences(source, // template or section group
418
- sourceAst, nodePath = [], block, themeGraph, deps) {
419
- if (!block.blocks)
420
- return;
421
- const promises = [];
422
- for (const [key, childBlock] of Object.entries(block.blocks)) {
423
- const childBlockType = childBlock.type;
424
- const childBlockModule = (0, module_1.getThemeBlockModule)(themeGraph, childBlockType);
425
- const path = [...nodePath, 'blocks', key];
426
- const node = (0, platformos_check_common_1.nodeAtPath)(sourceAst, path);
427
- const typeProperty = node.children.find((child) => child.key.value === 'type');
428
- const start = typeProperty.loc.start.offset;
429
- const end = typeProperty.loc.end.offset;
430
- const sourceRange = [start, end];
431
- // Link the template/section group to the block
432
- bind(source, childBlockModule, { sourceRange });
433
- promises.push(
434
- // Traverse the child block themselves
435
- traverseModule(childBlockModule, themeGraph, deps),
436
- // Traverse the child block references
437
- traverseBlockReferences(source, sourceAst, path, childBlock, themeGraph, deps));
438
- }
439
- return Promise.all(promises);
108
+ function unique(arr) {
109
+ return [...new Set(arr)];
440
110
  }
441
111
  /**
442
112
  * The bind method is the method that links two modules together.
@@ -445,7 +115,7 @@ sourceAst, nodePath = [], block, themeGraph, deps) {
445
115
  *
446
116
  * This function mutates the source and target modules.
447
117
  */
448
- function bind(source, target, { sourceRange, targetRange, type = 'direct', // the type of dependency, can be 'direct', 'indirect' or 'preset'
118
+ function bind(source, target, { sourceRange, targetRange, type = 'direct', // the type of dependency, can be 'direct' or 'indirect'
449
119
  } = {}) {
450
120
  const dependency = {
451
121
  source: { uri: source.uri, range: sourceRange },
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../src/graph/traverse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"traverse.js","sourceRoot":"","sources":["../../src/graph/traverse.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export { buildThemeGraph } from './graph/build';
2
- export { serializeThemeGraph } from './graph/serialize';
1
+ export { buildAppGraph } from './graph/build';
2
+ export { serializeAppGraph } from './graph/serialize';
3
3
  export { getWebComponentMap, findWebComponentReferences } from './getWebComponentMap';
4
- export { toCssSourceCode, toJsSourceCode, toSourceCode, toSvgSourceCode } from './toSourceCode';
4
+ export { parseJs, toSourceCode } from './toSourceCode';
5
5
  export * from './types';
package/dist/index.js CHANGED
@@ -14,18 +14,16 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.toSvgSourceCode = exports.toSourceCode = exports.toJsSourceCode = exports.toCssSourceCode = exports.findWebComponentReferences = exports.getWebComponentMap = exports.serializeThemeGraph = exports.buildThemeGraph = void 0;
17
+ exports.toSourceCode = exports.parseJs = exports.findWebComponentReferences = exports.getWebComponentMap = exports.serializeAppGraph = exports.buildAppGraph = void 0;
18
18
  var build_1 = require("./graph/build");
19
- Object.defineProperty(exports, "buildThemeGraph", { enumerable: true, get: function () { return build_1.buildThemeGraph; } });
19
+ Object.defineProperty(exports, "buildAppGraph", { enumerable: true, get: function () { return build_1.buildAppGraph; } });
20
20
  var serialize_1 = require("./graph/serialize");
21
- Object.defineProperty(exports, "serializeThemeGraph", { enumerable: true, get: function () { return serialize_1.serializeThemeGraph; } });
21
+ Object.defineProperty(exports, "serializeAppGraph", { enumerable: true, get: function () { return serialize_1.serializeAppGraph; } });
22
22
  var getWebComponentMap_1 = require("./getWebComponentMap");
23
23
  Object.defineProperty(exports, "getWebComponentMap", { enumerable: true, get: function () { return getWebComponentMap_1.getWebComponentMap; } });
24
24
  Object.defineProperty(exports, "findWebComponentReferences", { enumerable: true, get: function () { return getWebComponentMap_1.findWebComponentReferences; } });
25
25
  var toSourceCode_1 = require("./toSourceCode");
26
- Object.defineProperty(exports, "toCssSourceCode", { enumerable: true, get: function () { return toSourceCode_1.toCssSourceCode; } });
27
- Object.defineProperty(exports, "toJsSourceCode", { enumerable: true, get: function () { return toSourceCode_1.toJsSourceCode; } });
26
+ Object.defineProperty(exports, "parseJs", { enumerable: true, get: function () { return toSourceCode_1.parseJs; } });
28
27
  Object.defineProperty(exports, "toSourceCode", { enumerable: true, get: function () { return toSourceCode_1.toSourceCode; } });
29
- Object.defineProperty(exports, "toSvgSourceCode", { enumerable: true, get: function () { return toSourceCode_1.toSvgSourceCode; } });
30
28
  __exportStar(require("./types"), exports);
31
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAAgD;AAAvC,wGAAA,eAAe,OAAA;AACxB,+CAAwD;AAA/C,gHAAA,mBAAmB,OAAA;AAC5B,2DAAsF;AAA7E,wHAAA,kBAAkB,OAAA;AAAE,gIAAA,0BAA0B,OAAA;AACvD,+CAAgG;AAAvF,+GAAA,eAAe,OAAA;AAAE,8GAAA,cAAc,OAAA;AAAE,4GAAA,YAAY,OAAA;AAAE,+GAAA,eAAe,OAAA;AACvE,0CAAwB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,uCAA8C;AAArC,sGAAA,aAAa,OAAA;AACtB,+CAAsD;AAA7C,8GAAA,iBAAiB,OAAA;AAC1B,2DAAsF;AAA7E,wHAAA,kBAAkB,OAAA;AAAE,gIAAA,0BAA0B,OAAA;AACvD,+CAAuD;AAA9C,uGAAA,OAAO,OAAA;AAAE,4GAAA,YAAY,OAAA;AAC9B,0CAAwB"}
@@ -1,8 +1,5 @@
1
1
  import { UriString } from '@platformos/platformos-check-common';
2
2
  import { Program } from 'acorn';
3
- import { CssSourceCode, FileSourceCode, JsSourceCode, SvgSourceCode } from './types';
4
- export declare function toCssSourceCode(uri: UriString, source: string): Promise<CssSourceCode>;
5
- export declare function toSvgSourceCode(uri: UriString, source: string): Promise<SvgSourceCode>;
6
- export declare function toJsSourceCode(uri: UriString, source: string): Promise<JsSourceCode>;
3
+ import { FileSourceCode } from './types';
7
4
  export declare function parseJs(source: string): Program | Error;
8
5
  export declare function toSourceCode(uri: UriString, source: string): Promise<FileSourceCode>;
@@ -1,46 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.toCssSourceCode = toCssSourceCode;
4
- exports.toSvgSourceCode = toSvgSourceCode;
5
- exports.toJsSourceCode = toJsSourceCode;
6
3
  exports.parseJs = parseJs;
7
4
  exports.toSourceCode = toSourceCode;
8
5
  const platformos_check_common_1 = require("@platformos/platformos-check-common");
9
6
  const acorn_1 = require("acorn");
10
- const types_1 = require("./types");
11
7
  const utils_1 = require("./utils");
12
- async function toCssSourceCode(uri, source) {
13
- return {
14
- type: 'css',
15
- uri,
16
- source,
17
- ast: new Error('File parsing not implemented yet'), // Placeholder for CSS parsing
18
- };
19
- }
20
- async function toSvgSourceCode(uri, source) {
21
- return {
22
- type: 'svg',
23
- uri,
24
- source,
25
- ast: new Error('File parsing not implemented yet'), // Placeholder for SVG parsing
26
- };
27
- }
28
- async function toImageSourceCode(uri, source) {
29
- return {
30
- type: 'image',
31
- uri,
32
- source,
33
- ast: new Error('Image files are not parsed'),
34
- };
35
- }
36
- async function toJsSourceCode(uri, source) {
37
- return {
38
- type: 'javascript',
39
- uri,
40
- source,
41
- ast: parseJs(source),
42
- };
43
- }
44
8
  function parseJs(source) {
45
9
  try {
46
10
  return (0, acorn_1.parse)(source, {
@@ -54,23 +18,15 @@ function parseJs(source) {
54
18
  }
55
19
  async function toSourceCode(uri, source) {
56
20
  const extension = (0, utils_1.extname)(uri);
57
- if (extension === 'json' || extension === 'liquid' || extension === 'graphql') {
21
+ if (extension === 'json' ||
22
+ extension === 'liquid' ||
23
+ extension === 'graphql' ||
24
+ extension === 'yml' ||
25
+ extension === 'yaml') {
58
26
  return (0, platformos_check_common_1.toSourceCode)(uri, source);
59
27
  }
60
- else if (extension === 'js') {
61
- return toJsSourceCode(uri, source);
62
- }
63
- else if (extension === 'css') {
64
- return toCssSourceCode(uri, source);
65
- }
66
- else if (extension === 'svg') {
67
- return toCssSourceCode(uri, source);
68
- }
69
- else if (types_1.SUPPORTED_ASSET_IMAGE_EXTENSIONS.includes(extension)) {
70
- return toImageSourceCode(uri, source);
71
- }
72
- else {
73
- throw new Error(`Unknown source code type for ${uri}`);
74
- }
28
+ const ast = extension === 'js' ? parseJs(source) : new Error('File parsing not implemented');
29
+ const assetSourceCode = { type: 'asset', uri, source, ast };
30
+ return assetSourceCode;
75
31
  }
76
32
  //# sourceMappingURL=toSourceCode.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"toSourceCode.js","sourceRoot":"","sources":["../src/toSourceCode.ts"],"names":[],"mappings":";;AAgBA,0CAOC;AAED,0CAOC;AAWD,wCAOC;AAED,0BASC;AAED,oCAgBC;AA/ED,iFAI6C;AAC7C,iCAAqD;AACrD,mCAOiB;AACjB,mCAAkC;AAE3B,KAAK,UAAU,eAAe,CAAC,GAAc,EAAE,MAAc;IAClE,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG;QACH,MAAM;QACN,GAAG,EAAE,IAAI,KAAK,CAAC,kCAAkC,CAAC,EAAE,8BAA8B;KACnF,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,eAAe,CAAC,GAAc,EAAE,MAAc;IAClE,OAAO;QACL,IAAI,EAAE,KAAK;QACX,GAAG;QACH,MAAM;QACN,GAAG,EAAE,IAAI,KAAK,CAAC,kCAAkC,CAAC,EAAE,8BAA8B;KACnF,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,iBAAiB,CAAC,GAAc,EAAE,MAAc;IAC7D,OAAO;QACL,IAAI,EAAE,OAAO;QACb,GAAG;QACH,MAAM;QACN,GAAG,EAAE,IAAI,KAAK,CAAC,4BAA4B,CAAC;KAC7C,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,cAAc,CAAC,GAAc,EAAE,MAAc;IACjE,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,GAAG;QACH,MAAM;QACN,GAAG,EAAE,OAAO,CAAC,MAAM,CAAC;KACrB,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO,CAAC,MAAc;IACpC,IAAI,CAAC;QACH,OAAO,IAAA,aAAU,EAAC,MAAM,EAAE;YACxB,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,iCAAO,EAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,GAAc,EAAE,MAAc;IAC/D,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC;IAE/B,IAAI,SAAS,KAAK,MAAM,IAAI,SAAS,KAAK,QAAQ,IAAI,SAAS,KAAK,SAAS,EAAE,CAAC;QAC9E,OAAO,IAAA,sCAAc,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;QAC9B,OAAO,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;SAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,SAAS,KAAK,KAAK,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtC,CAAC;SAAM,IAAI,wCAAgC,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;QAChE,OAAO,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,EAAE,CAAC,CAAC;IACzD,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"toSourceCode.js","sourceRoot":"","sources":["../src/toSourceCode.ts"],"names":[],"mappings":";;AASA,0BASC;AAED,oCAkBC;AAtCD,iFAI6C;AAC7C,iCAAqD;AAErD,mCAAkC;AAElC,SAAgB,OAAO,CAAC,MAAc;IACpC,IAAI,CAAC;QACH,OAAO,IAAA,aAAU,EAAC,MAAM,EAAE;YACxB,WAAW,EAAE,QAAQ;YACrB,UAAU,EAAE,QAAQ;SACrB,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,IAAA,iCAAO,EAAC,KAAK,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAEM,KAAK,UAAU,YAAY,CAAC,GAAc,EAAE,MAAc;IAC/D,MAAM,SAAS,GAAG,IAAA,eAAO,EAAC,GAAG,CAAC,CAAC;IAE/B,IACE,SAAS,KAAK,MAAM;QACpB,SAAS,KAAK,QAAQ;QACtB,SAAS,KAAK,SAAS;QACvB,SAAS,KAAK,KAAK;QACnB,SAAS,KAAK,MAAM,EACpB,CAAC;QACD,OAAO,IAAA,sCAAc,EAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,GAAG,GACP,SAAS,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAEnF,MAAM,eAAe,GAAoB,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;IAC7E,OAAO,eAAe,CAAC;AACzB,CAAC"}