@open-mercato/cli 0.6.8-develop.7032.1.70d74d4bfe → 0.6.8-develop.7038.1.ea954afd80

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 (101) hide show
  1. package/dist/agentic/guides/module-facts.json +126 -126
  2. package/dist/agentic/guides/module-facts.v2.json +126 -126
  3. package/dist/agentic/guides/modules/ai_assistant/index.md +1 -1
  4. package/dist/agentic/guides/modules/api_docs/index.md +1 -1
  5. package/dist/agentic/guides/modules/api_keys/index.md +1 -1
  6. package/dist/agentic/guides/modules/attachments/index.md +1 -1
  7. package/dist/agentic/guides/modules/audit_logs/index.md +1 -1
  8. package/dist/agentic/guides/modules/auth/index.md +1 -1
  9. package/dist/agentic/guides/modules/business_rules/index.md +1 -1
  10. package/dist/agentic/guides/modules/catalog/index.md +1 -1
  11. package/dist/agentic/guides/modules/channel_apns/index.md +1 -1
  12. package/dist/agentic/guides/modules/channel_expo/index.md +1 -1
  13. package/dist/agentic/guides/modules/channel_fcm/index.md +1 -1
  14. package/dist/agentic/guides/modules/channel_gmail/index.md +1 -1
  15. package/dist/agentic/guides/modules/channel_imap/index.md +1 -1
  16. package/dist/agentic/guides/modules/checkout/index.md +1 -1
  17. package/dist/agentic/guides/modules/communication_channels/index.md +1 -1
  18. package/dist/agentic/guides/modules/configs/index.md +1 -1
  19. package/dist/agentic/guides/modules/content/index.md +1 -1
  20. package/dist/agentic/guides/modules/currencies/index.md +1 -1
  21. package/dist/agentic/guides/modules/customer_accounts/index.md +1 -1
  22. package/dist/agentic/guides/modules/customers/index.md +1 -1
  23. package/dist/agentic/guides/modules/dashboards/index.md +1 -1
  24. package/dist/agentic/guides/modules/data_sync/index.md +1 -1
  25. package/dist/agentic/guides/modules/design_system/index.md +1 -1
  26. package/dist/agentic/guides/modules/devices/index.md +1 -1
  27. package/dist/agentic/guides/modules/dictionaries/index.md +1 -1
  28. package/dist/agentic/guides/modules/directory/index.md +1 -1
  29. package/dist/agentic/guides/modules/documents/index.md +1 -1
  30. package/dist/agentic/guides/modules/entities/index.md +1 -1
  31. package/dist/agentic/guides/modules/eudr/index.md +1 -1
  32. package/dist/agentic/guides/modules/events/index.md +1 -1
  33. package/dist/agentic/guides/modules/feature_toggles/index.md +1 -1
  34. package/dist/agentic/guides/modules/gateway_stripe/index.md +1 -1
  35. package/dist/agentic/guides/modules/generators/index.md +1 -1
  36. package/dist/agentic/guides/modules/inbox_ops/index.md +1 -1
  37. package/dist/agentic/guides/modules/integrations/index.md +1 -1
  38. package/dist/agentic/guides/modules/messages/index.md +1 -1
  39. package/dist/agentic/guides/modules/notifications/index.md +1 -1
  40. package/dist/agentic/guides/modules/onboarding/index.md +1 -1
  41. package/dist/agentic/guides/modules/payment_gateways/index.md +1 -1
  42. package/dist/agentic/guides/modules/perspectives/index.md +1 -1
  43. package/dist/agentic/guides/modules/planner/index.md +1 -1
  44. package/dist/agentic/guides/modules/portal/index.md +1 -1
  45. package/dist/agentic/guides/modules/progress/index.md +1 -1
  46. package/dist/agentic/guides/modules/push_notifications/index.md +1 -1
  47. package/dist/agentic/guides/modules/query_index/index.md +1 -1
  48. package/dist/agentic/guides/modules/record_locks/index.md +1 -1
  49. package/dist/agentic/guides/modules/resources/index.md +1 -1
  50. package/dist/agentic/guides/modules/sales/index.md +1 -1
  51. package/dist/agentic/guides/modules/scheduler/index.md +1 -1
  52. package/dist/agentic/guides/modules/search/index.md +1 -1
  53. package/dist/agentic/guides/modules/security/index.md +1 -1
  54. package/dist/agentic/guides/modules/shipping_carriers/index.md +1 -1
  55. package/dist/agentic/guides/modules/sso/index.md +1 -1
  56. package/dist/agentic/guides/modules/staff/index.md +1 -1
  57. package/dist/agentic/guides/modules/storage_s3/index.md +1 -1
  58. package/dist/agentic/guides/modules/sync_akeneo/index.md +1 -1
  59. package/dist/agentic/guides/modules/sync_excel/index.md +1 -1
  60. package/dist/agentic/guides/modules/system_status_overlays/index.md +1 -1
  61. package/dist/agentic/guides/modules/translations/index.md +1 -1
  62. package/dist/agentic/guides/modules/warranty_claims/index.md +1 -1
  63. package/dist/agentic/guides/modules/webhooks/index.md +1 -1
  64. package/dist/agentic/guides/modules/wms/index.md +1 -1
  65. package/dist/agentic/guides/modules/workflows/index.md +1 -1
  66. package/dist/agentic/guides/reference-module-facts.json +1 -1
  67. package/dist/agentic/guides/upstream/manifest.json +1 -1
  68. package/dist/lib/generators/ast/index.js +4 -1
  69. package/dist/lib/generators/ast/index.js.map +2 -2
  70. package/dist/lib/generators/ast/source-file.js +8 -1
  71. package/dist/lib/generators/ast/source-file.js.map +2 -2
  72. package/dist/lib/generators/ast/writers.js +9 -1
  73. package/dist/lib/generators/ast/writers.js.map +2 -2
  74. package/dist/lib/generators/module-registry.js +343 -183
  75. package/dist/lib/generators/module-registry.js.map +2 -2
  76. package/dist/lib/generators/route-manifest-shards.js +4 -1
  77. package/dist/lib/generators/route-manifest-shards.js.map +2 -2
  78. package/dist/lib/spawn.js +3 -2
  79. package/dist/lib/spawn.js.map +2 -2
  80. package/dist/lib/testing/integration.js +162 -24
  81. package/dist/lib/testing/integration.js.map +2 -2
  82. package/package.json +6 -6
  83. package/src/lib/__tests__/spawn.test.ts +23 -0
  84. package/src/lib/generators/__tests__/__snapshots__/bootstrap-registrations.test.ts.snap +14 -0
  85. package/src/lib/generators/__tests__/__snapshots__/command-loaders.test.ts.snap +23 -0
  86. package/src/lib/generators/__tests__/ast-writers-escaping.test.ts +64 -0
  87. package/src/lib/generators/__tests__/bootstrap-registrations.test.ts +176 -0
  88. package/src/lib/generators/__tests__/command-loaders.test.ts +239 -0
  89. package/src/lib/generators/__tests__/module-subset.test.ts +96 -72
  90. package/src/lib/generators/__tests__/output-snapshots.test.ts +1 -1
  91. package/src/lib/generators/__tests__/registry-variant-parity.test.ts +258 -0
  92. package/src/lib/generators/__tests__/route-manifest-shards.test.ts +15 -0
  93. package/src/lib/generators/__tests__/structural-contracts.test.ts +3 -3
  94. package/src/lib/generators/ast/index.ts +2 -1
  95. package/src/lib/generators/ast/source-file.ts +13 -0
  96. package/src/lib/generators/ast/writers.ts +26 -1
  97. package/src/lib/generators/module-registry.ts +417 -236
  98. package/src/lib/generators/route-manifest-shards.ts +8 -1
  99. package/src/lib/spawn.ts +5 -4
  100. package/src/lib/testing/__tests__/integration.test.ts +435 -0
  101. package/src/lib/testing/integration.ts +254 -32
@@ -22,6 +22,31 @@ export interface SpreadPropertyWriter {
22
22
  export type GeneratedObjectEntry = ObjectPropertyWriter | SpreadPropertyWriter
23
23
  export type StatementWriter = WriterFunction
24
24
 
25
+ /**
26
+ * Escapes the characters that are legal inside a JSON string but hazardous inside a
27
+ * generated JavaScript source file: `<` and `>` so an emitted value can never close a
28
+ * surrounding script context, and U+2028 / U+2029 which older JavaScript parsers reject
29
+ * inside a string literal. The escape sequences denote the same runtime string, so this
30
+ * only ever changes the emitted text, never the emitted value.
31
+ */
32
+ export function escapeGeneratedJsonLiteral(json: string): string {
33
+ return json
34
+ .replace(/</g, '\\u003c')
35
+ .replace(/>/g, '\\u003e')
36
+ .replace(/\u2028/g, '\\u2028')
37
+ .replace(/\u2029/g, '\\u2029')
38
+ }
39
+
40
+ /**
41
+ * The single point where a string value becomes source text on the AST path. The string
42
+ * paths that are still emitted as templates share the escaping step above rather than
43
+ * this function, because they also serialize objects, whose nested strings need the same
44
+ * hardening.
45
+ */
46
+ export function stringLiteral(value: string): string {
47
+ return escapeGeneratedJsonLiteral(JSON.stringify(value))
48
+ }
49
+
25
50
  export function writeLiteral(writer: CodeBlockWriter, value: Exclude<GeneratedValue, WriterFunction>): void {
26
51
  if (value === undefined) {
27
52
  writer.write('undefined')
@@ -34,7 +59,7 @@ export function writeLiteral(writer: CodeBlockWriter, value: Exclude<GeneratedVa
34
59
  }
35
60
 
36
61
  if (typeof value === 'string') {
37
- writer.write(JSON.stringify(value))
62
+ writer.write(stringLiteral(value))
38
63
  return
39
64
  }
40
65