@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.
- package/dist/agentic/guides/module-facts.json +126 -126
- package/dist/agentic/guides/module-facts.v2.json +126 -126
- package/dist/agentic/guides/modules/ai_assistant/index.md +1 -1
- package/dist/agentic/guides/modules/api_docs/index.md +1 -1
- package/dist/agentic/guides/modules/api_keys/index.md +1 -1
- package/dist/agentic/guides/modules/attachments/index.md +1 -1
- package/dist/agentic/guides/modules/audit_logs/index.md +1 -1
- package/dist/agentic/guides/modules/auth/index.md +1 -1
- package/dist/agentic/guides/modules/business_rules/index.md +1 -1
- package/dist/agentic/guides/modules/catalog/index.md +1 -1
- package/dist/agentic/guides/modules/channel_apns/index.md +1 -1
- package/dist/agentic/guides/modules/channel_expo/index.md +1 -1
- package/dist/agentic/guides/modules/channel_fcm/index.md +1 -1
- package/dist/agentic/guides/modules/channel_gmail/index.md +1 -1
- package/dist/agentic/guides/modules/channel_imap/index.md +1 -1
- package/dist/agentic/guides/modules/checkout/index.md +1 -1
- package/dist/agentic/guides/modules/communication_channels/index.md +1 -1
- package/dist/agentic/guides/modules/configs/index.md +1 -1
- package/dist/agentic/guides/modules/content/index.md +1 -1
- package/dist/agentic/guides/modules/currencies/index.md +1 -1
- package/dist/agentic/guides/modules/customer_accounts/index.md +1 -1
- package/dist/agentic/guides/modules/customers/index.md +1 -1
- package/dist/agentic/guides/modules/dashboards/index.md +1 -1
- package/dist/agentic/guides/modules/data_sync/index.md +1 -1
- package/dist/agentic/guides/modules/design_system/index.md +1 -1
- package/dist/agentic/guides/modules/devices/index.md +1 -1
- package/dist/agentic/guides/modules/dictionaries/index.md +1 -1
- package/dist/agentic/guides/modules/directory/index.md +1 -1
- package/dist/agentic/guides/modules/documents/index.md +1 -1
- package/dist/agentic/guides/modules/entities/index.md +1 -1
- package/dist/agentic/guides/modules/eudr/index.md +1 -1
- package/dist/agentic/guides/modules/events/index.md +1 -1
- package/dist/agentic/guides/modules/feature_toggles/index.md +1 -1
- package/dist/agentic/guides/modules/gateway_stripe/index.md +1 -1
- package/dist/agentic/guides/modules/generators/index.md +1 -1
- package/dist/agentic/guides/modules/inbox_ops/index.md +1 -1
- package/dist/agentic/guides/modules/integrations/index.md +1 -1
- package/dist/agentic/guides/modules/messages/index.md +1 -1
- package/dist/agentic/guides/modules/notifications/index.md +1 -1
- package/dist/agentic/guides/modules/onboarding/index.md +1 -1
- package/dist/agentic/guides/modules/payment_gateways/index.md +1 -1
- package/dist/agentic/guides/modules/perspectives/index.md +1 -1
- package/dist/agentic/guides/modules/planner/index.md +1 -1
- package/dist/agentic/guides/modules/portal/index.md +1 -1
- package/dist/agentic/guides/modules/progress/index.md +1 -1
- package/dist/agentic/guides/modules/push_notifications/index.md +1 -1
- package/dist/agentic/guides/modules/query_index/index.md +1 -1
- package/dist/agentic/guides/modules/record_locks/index.md +1 -1
- package/dist/agentic/guides/modules/resources/index.md +1 -1
- package/dist/agentic/guides/modules/sales/index.md +1 -1
- package/dist/agentic/guides/modules/scheduler/index.md +1 -1
- package/dist/agentic/guides/modules/search/index.md +1 -1
- package/dist/agentic/guides/modules/security/index.md +1 -1
- package/dist/agentic/guides/modules/shipping_carriers/index.md +1 -1
- package/dist/agentic/guides/modules/sso/index.md +1 -1
- package/dist/agentic/guides/modules/staff/index.md +1 -1
- package/dist/agentic/guides/modules/storage_s3/index.md +1 -1
- package/dist/agentic/guides/modules/sync_akeneo/index.md +1 -1
- package/dist/agentic/guides/modules/sync_excel/index.md +1 -1
- package/dist/agentic/guides/modules/system_status_overlays/index.md +1 -1
- package/dist/agentic/guides/modules/translations/index.md +1 -1
- package/dist/agentic/guides/modules/warranty_claims/index.md +1 -1
- package/dist/agentic/guides/modules/webhooks/index.md +1 -1
- package/dist/agentic/guides/modules/wms/index.md +1 -1
- package/dist/agentic/guides/modules/workflows/index.md +1 -1
- package/dist/agentic/guides/reference-module-facts.json +1 -1
- package/dist/agentic/guides/upstream/manifest.json +1 -1
- package/dist/lib/generators/ast/index.js +4 -1
- package/dist/lib/generators/ast/index.js.map +2 -2
- package/dist/lib/generators/ast/source-file.js +8 -1
- package/dist/lib/generators/ast/source-file.js.map +2 -2
- package/dist/lib/generators/ast/writers.js +9 -1
- package/dist/lib/generators/ast/writers.js.map +2 -2
- package/dist/lib/generators/module-registry.js +343 -183
- package/dist/lib/generators/module-registry.js.map +2 -2
- package/dist/lib/generators/route-manifest-shards.js +4 -1
- package/dist/lib/generators/route-manifest-shards.js.map +2 -2
- package/dist/lib/spawn.js +3 -2
- package/dist/lib/spawn.js.map +2 -2
- package/dist/lib/testing/integration.js +162 -24
- package/dist/lib/testing/integration.js.map +2 -2
- package/package.json +6 -6
- package/src/lib/__tests__/spawn.test.ts +23 -0
- package/src/lib/generators/__tests__/__snapshots__/bootstrap-registrations.test.ts.snap +14 -0
- package/src/lib/generators/__tests__/__snapshots__/command-loaders.test.ts.snap +23 -0
- package/src/lib/generators/__tests__/ast-writers-escaping.test.ts +64 -0
- package/src/lib/generators/__tests__/bootstrap-registrations.test.ts +176 -0
- package/src/lib/generators/__tests__/command-loaders.test.ts +239 -0
- package/src/lib/generators/__tests__/module-subset.test.ts +96 -72
- package/src/lib/generators/__tests__/output-snapshots.test.ts +1 -1
- package/src/lib/generators/__tests__/registry-variant-parity.test.ts +258 -0
- package/src/lib/generators/__tests__/route-manifest-shards.test.ts +15 -0
- package/src/lib/generators/__tests__/structural-contracts.test.ts +3 -3
- package/src/lib/generators/ast/index.ts +2 -1
- package/src/lib/generators/ast/source-file.ts +13 -0
- package/src/lib/generators/ast/writers.ts +26 -1
- package/src/lib/generators/module-registry.ts +417 -236
- package/src/lib/generators/route-manifest-shards.ts +8 -1
- package/src/lib/spawn.ts +5 -4
- package/src/lib/testing/__tests__/integration.test.ts +435 -0
- package/src/lib/testing/integration.ts +254 -32
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/generators/ast/index.ts"],
|
|
4
|
-
"sourcesContent": ["export { addImportSpec, addImportSpecs, addImportStatement, addImportStatements, type GeneratedImportSpec } from './imports'\nexport { addAutoGeneratedComment, createGeneratedSourceFile, getSourceText } from './source-file'\nexport {\n arrayLiteral,\n assignmentStatement,\n asExpression,\n awaitExpression,\n arrowFunction,\n binaryExpression,\n block,\n callExpression,\n conditionalExpression,\n elementAccess,\n expressionStatement,\n forOfStatement,\n identifier,\n ifStatement,\n importExpression,\n invokeImmediately,\n logicalAnd,\n logicalOr,\n methodCall,\n newExpression,\n nonNullAssertion,\n objectLiteral,\n objectEntries,\n objectFromEntries,\n objectKeys,\n parenthesized,\n propertyAccess,\n optionalPropertyAccess,\n nullishCoalesce,\n prefixExpression,\n returnStatement,\n spreadExpression,\n templateLiteral,\n variableStatement,\n writeStatements,\n writeArrayLiteral,\n writeCommaSeparated,\n writeLiteral,\n writeObjectLiteral,\n writeValue,\n type GeneratedObjectEntry,\n type GeneratedValue,\n type ObjectPropertyWriter,\n type StatementWriter,\n type SpreadPropertyWriter,\n} from './writers'\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,eAAe,gBAAgB,oBAAoB,2BAAqD;AACjH,SAAS,yBAAyB,2BAA2B,
|
|
4
|
+
"sourcesContent": ["export { addImportSpec, addImportSpecs, addImportStatement, addImportStatements, type GeneratedImportSpec } from './imports'\nexport { addAutoGeneratedComment, createGeneratedSourceFile, getSourceText, renderGeneratedValue } from './source-file'\nexport {\n arrayLiteral,\n assignmentStatement,\n asExpression,\n awaitExpression,\n arrowFunction,\n binaryExpression,\n block,\n callExpression,\n conditionalExpression,\n elementAccess,\n escapeGeneratedJsonLiteral,\n expressionStatement,\n forOfStatement,\n identifier,\n ifStatement,\n importExpression,\n invokeImmediately,\n logicalAnd,\n logicalOr,\n methodCall,\n newExpression,\n nonNullAssertion,\n objectLiteral,\n objectEntries,\n objectFromEntries,\n objectKeys,\n parenthesized,\n propertyAccess,\n optionalPropertyAccess,\n nullishCoalesce,\n prefixExpression,\n returnStatement,\n spreadExpression,\n templateLiteral,\n variableStatement,\n writeStatements,\n writeArrayLiteral,\n writeCommaSeparated,\n writeLiteral,\n writeObjectLiteral,\n writeValue,\n type GeneratedObjectEntry,\n type GeneratedValue,\n type ObjectPropertyWriter,\n type StatementWriter,\n type SpreadPropertyWriter,\n} from './writers'\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,eAAe,gBAAgB,oBAAoB,2BAAqD;AACjH,SAAS,yBAAyB,2BAA2B,eAAe,4BAA4B;AACxG;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OAMK;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { IndentationText, Project } from "ts-morph";
|
|
2
|
+
import { writeValue } from "./writers.js";
|
|
2
3
|
let sharedProject = null;
|
|
3
4
|
function getProject() {
|
|
4
5
|
if (!sharedProject) {
|
|
@@ -20,6 +21,11 @@ function createGeneratedSourceFile(fileName) {
|
|
|
20
21
|
}
|
|
21
22
|
return project.createSourceFile(fileName, "", { overwrite: true });
|
|
22
23
|
}
|
|
24
|
+
function renderGeneratedValue(value) {
|
|
25
|
+
const writer = getProject().createWriter();
|
|
26
|
+
writeValue(writer, value);
|
|
27
|
+
return writer.toString();
|
|
28
|
+
}
|
|
23
29
|
function addAutoGeneratedComment(sourceFile, generator) {
|
|
24
30
|
sourceFile.insertText(0, `// AUTO-GENERATED by mercato generate ${generator}
|
|
25
31
|
`);
|
|
@@ -37,6 +43,7 @@ function getSourceText(sourceFile) {
|
|
|
37
43
|
export {
|
|
38
44
|
addAutoGeneratedComment,
|
|
39
45
|
createGeneratedSourceFile,
|
|
40
|
-
getSourceText
|
|
46
|
+
getSourceText,
|
|
47
|
+
renderGeneratedValue
|
|
41
48
|
};
|
|
42
49
|
//# sourceMappingURL=source-file.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/generators/ast/source-file.ts"],
|
|
4
|
-
"sourcesContent": ["import { IndentationText, Project, type SourceFile } from 'ts-morph'\n\nlet sharedProject: Project | null = null\n\nfunction getProject(): Project {\n if (!sharedProject) {\n sharedProject = new Project({\n useInMemoryFileSystem: true,\n manipulationSettings: {\n indentationText: IndentationText.TwoSpaces,\n useTrailingCommas: false,\n },\n })\n }\n\n return sharedProject\n}\n\nexport function createGeneratedSourceFile(fileName: string): SourceFile {\n const project = getProject()\n const existing = project.getSourceFile(fileName)\n if (existing) {\n project.removeSourceFile(existing)\n }\n\n return project.createSourceFile(fileName, '', { overwrite: true })\n}\n\nexport function addAutoGeneratedComment(sourceFile: SourceFile, generator: string): void {\n sourceFile.insertText(0, `// AUTO-GENERATED by mercato generate ${generator}\\n`)\n}\n\nexport function getSourceText(sourceFile: SourceFile): string {\n const text = sourceFile.getFullText().replace(/\\r\\n/g, '\\n')\n const headerMatch = text.match(/\\/\\/ AUTO-GENERATED by mercato generate [^\\n]+\\n/)\n let normalized = text\n\n if (headerMatch && !text.startsWith(headerMatch[0])) {\n normalized = `${headerMatch[0]}${text.replace(headerMatch[0], '')}`\n }\n\n return normalized.endsWith('\\n') ? normalized : `${normalized}\\n`\n}\n"],
|
|
5
|
-
"mappings": "AAAA,SAAS,iBAAiB,eAAgC;
|
|
4
|
+
"sourcesContent": ["import { IndentationText, Project, type SourceFile } from 'ts-morph'\nimport { writeValue, type GeneratedValue } from './writers'\n\nlet sharedProject: Project | null = null\n\nfunction getProject(): Project {\n if (!sharedProject) {\n sharedProject = new Project({\n useInMemoryFileSystem: true,\n manipulationSettings: {\n indentationText: IndentationText.TwoSpaces,\n useTrailingCommas: false,\n },\n })\n }\n\n return sharedProject\n}\n\nexport function createGeneratedSourceFile(fileName: string): SourceFile {\n const project = getProject()\n const existing = project.getSourceFile(fileName)\n if (existing) {\n project.removeSourceFile(existing)\n }\n\n return project.createSourceFile(fileName, '', { overwrite: true })\n}\n\n/**\n * Renders a single generated value to source text, outside of any source file. Generators\n * that hand a pre-rendered expression to a consumer expecting a string (route manifest\n * shards) use this instead of concatenating the expression by hand, so the AST writers stay\n * the one place an expression is constructed.\n */\nexport function renderGeneratedValue(value: GeneratedValue): string {\n const writer = getProject().createWriter()\n writeValue(writer, value)\n return writer.toString()\n}\n\nexport function addAutoGeneratedComment(sourceFile: SourceFile, generator: string): void {\n sourceFile.insertText(0, `// AUTO-GENERATED by mercato generate ${generator}\\n`)\n}\n\nexport function getSourceText(sourceFile: SourceFile): string {\n const text = sourceFile.getFullText().replace(/\\r\\n/g, '\\n')\n const headerMatch = text.match(/\\/\\/ AUTO-GENERATED by mercato generate [^\\n]+\\n/)\n let normalized = text\n\n if (headerMatch && !text.startsWith(headerMatch[0])) {\n normalized = `${headerMatch[0]}${text.replace(headerMatch[0], '')}`\n }\n\n return normalized.endsWith('\\n') ? normalized : `${normalized}\\n`\n}\n"],
|
|
5
|
+
"mappings": "AAAA,SAAS,iBAAiB,eAAgC;AAC1D,SAAS,kBAAuC;AAEhD,IAAI,gBAAgC;AAEpC,SAAS,aAAsB;AAC7B,MAAI,CAAC,eAAe;AAClB,oBAAgB,IAAI,QAAQ;AAAA,MAC1B,uBAAuB;AAAA,MACvB,sBAAsB;AAAA,QACpB,iBAAiB,gBAAgB;AAAA,QACjC,mBAAmB;AAAA,MACrB;AAAA,IACF,CAAC;AAAA,EACH;AAEA,SAAO;AACT;AAEO,SAAS,0BAA0B,UAA8B;AACtE,QAAM,UAAU,WAAW;AAC3B,QAAM,WAAW,QAAQ,cAAc,QAAQ;AAC/C,MAAI,UAAU;AACZ,YAAQ,iBAAiB,QAAQ;AAAA,EACnC;AAEA,SAAO,QAAQ,iBAAiB,UAAU,IAAI,EAAE,WAAW,KAAK,CAAC;AACnE;AAQO,SAAS,qBAAqB,OAA+B;AAClE,QAAM,SAAS,WAAW,EAAE,aAAa;AACzC,aAAW,QAAQ,KAAK;AACxB,SAAO,OAAO,SAAS;AACzB;AAEO,SAAS,wBAAwB,YAAwB,WAAyB;AACvF,aAAW,WAAW,GAAG,yCAAyC,SAAS;AAAA,CAAI;AACjF;AAEO,SAAS,cAAc,YAAgC;AAC5D,QAAM,OAAO,WAAW,YAAY,EAAE,QAAQ,SAAS,IAAI;AAC3D,QAAM,cAAc,KAAK,MAAM,kDAAkD;AACjF,MAAI,aAAa;AAEjB,MAAI,eAAe,CAAC,KAAK,WAAW,YAAY,CAAC,CAAC,GAAG;AACnD,iBAAa,GAAG,YAAY,CAAC,CAAC,GAAG,KAAK,QAAQ,YAAY,CAAC,GAAG,EAAE,CAAC;AAAA,EACnE;AAEA,SAAO,WAAW,SAAS,IAAI,IAAI,aAAa,GAAG,UAAU;AAAA;AAC/D;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,3 +1,9 @@
|
|
|
1
|
+
function escapeGeneratedJsonLiteral(json) {
|
|
2
|
+
return json.replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
3
|
+
}
|
|
4
|
+
function stringLiteral(value) {
|
|
5
|
+
return escapeGeneratedJsonLiteral(JSON.stringify(value));
|
|
6
|
+
}
|
|
1
7
|
function writeLiteral(writer, value) {
|
|
2
8
|
if (value === void 0) {
|
|
3
9
|
writer.write("undefined");
|
|
@@ -8,7 +14,7 @@ function writeLiteral(writer, value) {
|
|
|
8
14
|
return;
|
|
9
15
|
}
|
|
10
16
|
if (typeof value === "string") {
|
|
11
|
-
writer.write(
|
|
17
|
+
writer.write(stringLiteral(value));
|
|
12
18
|
return;
|
|
13
19
|
}
|
|
14
20
|
writer.write(String(value));
|
|
@@ -354,6 +360,7 @@ export {
|
|
|
354
360
|
callExpression,
|
|
355
361
|
conditionalExpression,
|
|
356
362
|
elementAccess,
|
|
363
|
+
escapeGeneratedJsonLiteral,
|
|
357
364
|
expressionStatement,
|
|
358
365
|
forOfStatement,
|
|
359
366
|
identifier,
|
|
@@ -376,6 +383,7 @@ export {
|
|
|
376
383
|
propertyAccess,
|
|
377
384
|
returnStatement,
|
|
378
385
|
spreadExpression,
|
|
386
|
+
stringLiteral,
|
|
379
387
|
templateLiteral,
|
|
380
388
|
variableStatement,
|
|
381
389
|
writeArrayLiteral,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/lib/generators/ast/writers.ts"],
|
|
4
|
-
"sourcesContent": ["import type { CodeBlockWriter, WriterFunction } from 'ts-morph'\n\nexport type GeneratedValue =\n | string\n | number\n | boolean\n | null\n | undefined\n | WriterFunction\n\nexport interface ObjectPropertyWriter {\n kind?: 'property'\n name: string\n value: GeneratedValue\n}\n\nexport interface SpreadPropertyWriter {\n kind: 'spread'\n value: GeneratedValue\n}\n\nexport type GeneratedObjectEntry = ObjectPropertyWriter | SpreadPropertyWriter\nexport type StatementWriter = WriterFunction\n\nexport function writeLiteral(writer: CodeBlockWriter, value: Exclude<GeneratedValue, WriterFunction>): void {\n if (value === undefined) {\n writer.write('undefined')\n return\n }\n\n if (value === null) {\n writer.write('null')\n return\n }\n\n if (typeof value === 'string') {\n writer.write(JSON.stringify(value))\n return\n }\n\n writer.write(String(value))\n}\n\nexport function writeValue(writer: CodeBlockWriter, value: GeneratedValue): void {\n if (typeof value === 'function') {\n value(writer)\n return\n }\n\n writeLiteral(writer, value)\n}\n\nexport function writeCommaSeparated<T>(\n writer: CodeBlockWriter,\n items: readonly T[],\n writeItem: (writer: CodeBlockWriter, item: T, index: number) => void,\n): void {\n items.forEach((item, index) => {\n if (index > 0) {\n writer.write(', ')\n }\n writeItem(writer, item, index)\n })\n}\n\nexport function writeArrayLiteral<T>(\n writer: CodeBlockWriter,\n items: readonly T[],\n writeItem: (writer: CodeBlockWriter, item: T, index: number) => void,\n): void {\n if (items.length === 0) {\n writer.write('[]')\n return\n }\n\n writer.write('[')\n writer.newLine()\n writer.indent(() => {\n items.forEach((item, index) => {\n writeItem(writer, item, index)\n if (index < items.length - 1) {\n writer.write(',')\n }\n writer.newLine()\n })\n })\n writer.write(']')\n}\n\nexport function arrayLiteral<T>(\n items: readonly T[],\n writeItem: (writer: CodeBlockWriter, item: T, index: number) => void,\n): WriterFunction {\n return (writer) => {\n writeArrayLiteral(writer, items, writeItem)\n }\n}\n\nexport function writeObjectLiteral(\n writer: CodeBlockWriter,\n entries: readonly GeneratedObjectEntry[],\n): void {\n if (entries.length === 0) {\n writer.write('{}')\n return\n }\n\n writer.write('{')\n writer.newLine()\n writer.indent(() => {\n entries.forEach((entry, index) => {\n if (entry.kind === 'spread') {\n writer.write('...')\n writeValue(writer, entry.value)\n } else {\n writer.write(entry.name)\n writer.write(': ')\n writeValue(writer, entry.value)\n }\n\n if (index < entries.length - 1) {\n writer.write(',')\n }\n writer.newLine()\n })\n })\n writer.write('}')\n}\n\nexport function objectLiteral(entries: readonly GeneratedObjectEntry[]): WriterFunction {\n return (writer) => {\n writeObjectLiteral(writer, entries)\n }\n}\n\nexport function parenthesized(value: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write('(')\n writeValue(writer, value)\n writer.write(')')\n }\n}\n\nexport function callExpression(callee: GeneratedValue, args: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n writeValue(writer, callee)\n writer.write('(')\n writeCommaSeparated(writer, args, writeValue)\n writer.write(')')\n }\n}\n\nexport function importExpression(moduleSpecifier: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write('import(')\n writeValue(writer, moduleSpecifier)\n writer.write(')')\n }\n}\n\nexport function awaitExpression(value: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write('await ')\n writeValue(writer, value)\n }\n}\n\nexport function identifier(name: string): WriterFunction {\n return (writer) => {\n writer.write(name)\n }\n}\n\nexport function propertyAccess(target: GeneratedValue, property: string): WriterFunction {\n return (writer) => {\n writeValue(writer, target)\n writer.write('.')\n writer.write(property)\n }\n}\n\nexport function prefixExpression(operator: string, value: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write(operator)\n writeValue(writer, value)\n }\n}\n\nexport function optionalPropertyAccess(target: GeneratedValue, property: string): WriterFunction {\n return (writer) => {\n writeValue(writer, target)\n writer.write('?.')\n writer.write(property)\n }\n}\n\nexport function elementAccess(target: GeneratedValue, index: GeneratedValue): WriterFunction {\n return (writer) => {\n writeValue(writer, target)\n writer.write('[')\n writeValue(writer, index)\n writer.write(']')\n }\n}\n\nexport function spreadExpression(value: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write('...')\n writeValue(writer, value)\n }\n}\n\nexport function asExpression(value: GeneratedValue, type: string): WriterFunction {\n return (writer) => {\n writer.write('(')\n writeValue(writer, value)\n writer.write(' as ')\n writer.write(type)\n writer.write(')')\n }\n}\n\nexport function nonNullAssertion(value: GeneratedValue): WriterFunction {\n return (writer) => {\n writeValue(writer, value)\n writer.write('!')\n }\n}\n\nexport function binaryExpression(left: GeneratedValue, operator: string, right: GeneratedValue): WriterFunction {\n return (writer) => {\n writeValue(writer, left)\n writer.write(` ${operator} `)\n writeValue(writer, right)\n }\n}\n\nexport function conditionalExpression(\n condition: GeneratedValue,\n whenTrue: GeneratedValue,\n whenFalse: GeneratedValue,\n): WriterFunction {\n return (writer) => {\n writeValue(writer, condition)\n writer.write(' ? ')\n writeValue(writer, whenTrue)\n writer.write(' : ')\n writeValue(writer, whenFalse)\n }\n}\n\nexport function logicalAnd(expressions: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n expressions.forEach((expression, index) => {\n if (index > 0) {\n writer.write(' && ')\n }\n writeValue(writer, expression)\n })\n }\n}\n\nexport function logicalOr(expressions: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n expressions.forEach((expression, index) => {\n if (index > 0) {\n writer.write(' || ')\n }\n writeValue(writer, expression)\n })\n }\n}\n\nexport function nullishCoalesce(expressions: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n expressions.forEach((expression, index) => {\n if (index > 0) {\n writer.write(' ?? ')\n }\n writeValue(writer, expression)\n })\n }\n}\n\nexport function methodCall(target: GeneratedValue, method: string, args: readonly GeneratedValue[]): WriterFunction {\n return callExpression(propertyAccess(target, method), args)\n}\n\nexport function newExpression(callee: GeneratedValue, args: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n writer.write('new ')\n writeValue(writer, callee)\n writer.write('(')\n writeCommaSeparated(writer, args, writeValue)\n writer.write(')')\n }\n}\n\nexport function invokeImmediately(expression: GeneratedValue): WriterFunction {\n return callExpression(parenthesized(expression), [])\n}\n\nexport function templateLiteral(parts: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n writer.write('`')\n parts.forEach((part) => {\n if (typeof part === 'string') {\n writer.write(part.replaceAll('\\\\', '\\\\\\\\').replaceAll('`', '\\\\`').replaceAll('${', '\\\\${'))\n return\n }\n\n writer.write('${')\n writeValue(writer, part)\n writer.write('}')\n })\n writer.write('`')\n }\n}\n\nexport function writeStatements(writer: CodeBlockWriter, statements: readonly StatementWriter[]): void {\n statements.forEach((statement, index) => {\n statement(writer)\n if (index < statements.length - 1) {\n writer.newLine()\n }\n })\n}\n\nexport function returnStatement(expression?: GeneratedValue): StatementWriter {\n return (writer) => {\n writer.write('return')\n if (expression !== undefined) {\n writer.write(' ')\n writeValue(writer, expression)\n }\n writer.write(';')\n }\n}\n\nexport function variableStatement(options: {\n declarationKind?: 'const' | 'let' | 'var'\n name: string\n initializer: GeneratedValue\n type?: string\n}): StatementWriter {\n return (writer) => {\n writer.write(options.declarationKind ?? 'const')\n writer.write(' ')\n writer.write(options.name)\n if (options.type) {\n writer.write(': ')\n writer.write(options.type)\n }\n writer.write(' = ')\n writeValue(writer, options.initializer)\n writer.write(';')\n }\n}\n\nexport function assignmentStatement(target: GeneratedValue, value: GeneratedValue): StatementWriter {\n return (writer) => {\n writeValue(writer, target)\n writer.write(' = ')\n writeValue(writer, value)\n writer.write(';')\n }\n}\n\nexport function ifStatement(options: {\n condition: GeneratedValue\n thenStatements: readonly StatementWriter[]\n elseStatements?: readonly StatementWriter[]\n}): StatementWriter {\n return (writer) => {\n const elseStatements = options.elseStatements\n writer.write('if (')\n writeValue(writer, options.condition)\n writer.write(') ')\n writer.block(() => {\n writeStatements(writer, options.thenStatements)\n })\n\n if (elseStatements && elseStatements.length > 0) {\n writer.write(' else ')\n writer.block(() => {\n writeStatements(writer, elseStatements)\n })\n }\n }\n}\n\nexport function forOfStatement(options: {\n variable: string\n iterable: GeneratedValue\n statements: readonly StatementWriter[]\n declarationKind?: 'const' | 'let' | 'var'\n}): StatementWriter {\n return (writer) => {\n writer.write('for (')\n writer.write(options.declarationKind ?? 'const')\n writer.write(' ')\n writer.write(options.variable)\n writer.write(' of ')\n writeValue(writer, options.iterable)\n writer.write(') ')\n writer.block(() => {\n writeStatements(writer, options.statements)\n })\n }\n}\n\nexport function objectKeys(value: GeneratedValue): WriterFunction {\n return methodCall(identifier('Object'), 'keys', [value])\n}\n\nexport function objectEntries(value: GeneratedValue): WriterFunction {\n return methodCall(identifier('Object'), 'entries', [value])\n}\n\nexport function objectFromEntries(value: GeneratedValue): WriterFunction {\n return methodCall(identifier('Object'), 'fromEntries', [value])\n}\n\nexport function arrowFunction(options: {\n async?: boolean\n parameters?: string[]\n body: WriterFunction\n}): WriterFunction {\n return (writer) => {\n if (options.async) {\n writer.write('async ')\n }\n writer.write('(')\n writeCommaSeparated(writer, options.parameters ?? [], (currentWriter, parameter) => currentWriter.write(parameter))\n writer.write(') => ')\n options.body(writer)\n }\n}\n\nexport function block(body: WriterFunction): WriterFunction {\n return (writer) => {\n writer.block(() => {\n body(writer)\n })\n }\n}\n\nexport function expressionStatement(expression: GeneratedValue): WriterFunction {\n return (writer) => {\n writeValue(writer, expression)\n writer.write(';')\n }\n}\n"],
|
|
5
|
-
"mappings": "
|
|
4
|
+
"sourcesContent": ["import type { CodeBlockWriter, WriterFunction } from 'ts-morph'\n\nexport type GeneratedValue =\n | string\n | number\n | boolean\n | null\n | undefined\n | WriterFunction\n\nexport interface ObjectPropertyWriter {\n kind?: 'property'\n name: string\n value: GeneratedValue\n}\n\nexport interface SpreadPropertyWriter {\n kind: 'spread'\n value: GeneratedValue\n}\n\nexport type GeneratedObjectEntry = ObjectPropertyWriter | SpreadPropertyWriter\nexport type StatementWriter = WriterFunction\n\n/**\n * Escapes the characters that are legal inside a JSON string but hazardous inside a\n * generated JavaScript source file: `<` and `>` so an emitted value can never close a\n * surrounding script context, and U+2028 / U+2029 which older JavaScript parsers reject\n * inside a string literal. The escape sequences denote the same runtime string, so this\n * only ever changes the emitted text, never the emitted value.\n */\nexport function escapeGeneratedJsonLiteral(json: string): string {\n return json\n .replace(/</g, '\\\\u003c')\n .replace(/>/g, '\\\\u003e')\n .replace(/\\u2028/g, '\\\\u2028')\n .replace(/\\u2029/g, '\\\\u2029')\n}\n\n/**\n * The single point where a string value becomes source text on the AST path. The string\n * paths that are still emitted as templates share the escaping step above rather than\n * this function, because they also serialize objects, whose nested strings need the same\n * hardening.\n */\nexport function stringLiteral(value: string): string {\n return escapeGeneratedJsonLiteral(JSON.stringify(value))\n}\n\nexport function writeLiteral(writer: CodeBlockWriter, value: Exclude<GeneratedValue, WriterFunction>): void {\n if (value === undefined) {\n writer.write('undefined')\n return\n }\n\n if (value === null) {\n writer.write('null')\n return\n }\n\n if (typeof value === 'string') {\n writer.write(stringLiteral(value))\n return\n }\n\n writer.write(String(value))\n}\n\nexport function writeValue(writer: CodeBlockWriter, value: GeneratedValue): void {\n if (typeof value === 'function') {\n value(writer)\n return\n }\n\n writeLiteral(writer, value)\n}\n\nexport function writeCommaSeparated<T>(\n writer: CodeBlockWriter,\n items: readonly T[],\n writeItem: (writer: CodeBlockWriter, item: T, index: number) => void,\n): void {\n items.forEach((item, index) => {\n if (index > 0) {\n writer.write(', ')\n }\n writeItem(writer, item, index)\n })\n}\n\nexport function writeArrayLiteral<T>(\n writer: CodeBlockWriter,\n items: readonly T[],\n writeItem: (writer: CodeBlockWriter, item: T, index: number) => void,\n): void {\n if (items.length === 0) {\n writer.write('[]')\n return\n }\n\n writer.write('[')\n writer.newLine()\n writer.indent(() => {\n items.forEach((item, index) => {\n writeItem(writer, item, index)\n if (index < items.length - 1) {\n writer.write(',')\n }\n writer.newLine()\n })\n })\n writer.write(']')\n}\n\nexport function arrayLiteral<T>(\n items: readonly T[],\n writeItem: (writer: CodeBlockWriter, item: T, index: number) => void,\n): WriterFunction {\n return (writer) => {\n writeArrayLiteral(writer, items, writeItem)\n }\n}\n\nexport function writeObjectLiteral(\n writer: CodeBlockWriter,\n entries: readonly GeneratedObjectEntry[],\n): void {\n if (entries.length === 0) {\n writer.write('{}')\n return\n }\n\n writer.write('{')\n writer.newLine()\n writer.indent(() => {\n entries.forEach((entry, index) => {\n if (entry.kind === 'spread') {\n writer.write('...')\n writeValue(writer, entry.value)\n } else {\n writer.write(entry.name)\n writer.write(': ')\n writeValue(writer, entry.value)\n }\n\n if (index < entries.length - 1) {\n writer.write(',')\n }\n writer.newLine()\n })\n })\n writer.write('}')\n}\n\nexport function objectLiteral(entries: readonly GeneratedObjectEntry[]): WriterFunction {\n return (writer) => {\n writeObjectLiteral(writer, entries)\n }\n}\n\nexport function parenthesized(value: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write('(')\n writeValue(writer, value)\n writer.write(')')\n }\n}\n\nexport function callExpression(callee: GeneratedValue, args: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n writeValue(writer, callee)\n writer.write('(')\n writeCommaSeparated(writer, args, writeValue)\n writer.write(')')\n }\n}\n\nexport function importExpression(moduleSpecifier: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write('import(')\n writeValue(writer, moduleSpecifier)\n writer.write(')')\n }\n}\n\nexport function awaitExpression(value: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write('await ')\n writeValue(writer, value)\n }\n}\n\nexport function identifier(name: string): WriterFunction {\n return (writer) => {\n writer.write(name)\n }\n}\n\nexport function propertyAccess(target: GeneratedValue, property: string): WriterFunction {\n return (writer) => {\n writeValue(writer, target)\n writer.write('.')\n writer.write(property)\n }\n}\n\nexport function prefixExpression(operator: string, value: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write(operator)\n writeValue(writer, value)\n }\n}\n\nexport function optionalPropertyAccess(target: GeneratedValue, property: string): WriterFunction {\n return (writer) => {\n writeValue(writer, target)\n writer.write('?.')\n writer.write(property)\n }\n}\n\nexport function elementAccess(target: GeneratedValue, index: GeneratedValue): WriterFunction {\n return (writer) => {\n writeValue(writer, target)\n writer.write('[')\n writeValue(writer, index)\n writer.write(']')\n }\n}\n\nexport function spreadExpression(value: GeneratedValue): WriterFunction {\n return (writer) => {\n writer.write('...')\n writeValue(writer, value)\n }\n}\n\nexport function asExpression(value: GeneratedValue, type: string): WriterFunction {\n return (writer) => {\n writer.write('(')\n writeValue(writer, value)\n writer.write(' as ')\n writer.write(type)\n writer.write(')')\n }\n}\n\nexport function nonNullAssertion(value: GeneratedValue): WriterFunction {\n return (writer) => {\n writeValue(writer, value)\n writer.write('!')\n }\n}\n\nexport function binaryExpression(left: GeneratedValue, operator: string, right: GeneratedValue): WriterFunction {\n return (writer) => {\n writeValue(writer, left)\n writer.write(` ${operator} `)\n writeValue(writer, right)\n }\n}\n\nexport function conditionalExpression(\n condition: GeneratedValue,\n whenTrue: GeneratedValue,\n whenFalse: GeneratedValue,\n): WriterFunction {\n return (writer) => {\n writeValue(writer, condition)\n writer.write(' ? ')\n writeValue(writer, whenTrue)\n writer.write(' : ')\n writeValue(writer, whenFalse)\n }\n}\n\nexport function logicalAnd(expressions: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n expressions.forEach((expression, index) => {\n if (index > 0) {\n writer.write(' && ')\n }\n writeValue(writer, expression)\n })\n }\n}\n\nexport function logicalOr(expressions: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n expressions.forEach((expression, index) => {\n if (index > 0) {\n writer.write(' || ')\n }\n writeValue(writer, expression)\n })\n }\n}\n\nexport function nullishCoalesce(expressions: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n expressions.forEach((expression, index) => {\n if (index > 0) {\n writer.write(' ?? ')\n }\n writeValue(writer, expression)\n })\n }\n}\n\nexport function methodCall(target: GeneratedValue, method: string, args: readonly GeneratedValue[]): WriterFunction {\n return callExpression(propertyAccess(target, method), args)\n}\n\nexport function newExpression(callee: GeneratedValue, args: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n writer.write('new ')\n writeValue(writer, callee)\n writer.write('(')\n writeCommaSeparated(writer, args, writeValue)\n writer.write(')')\n }\n}\n\nexport function invokeImmediately(expression: GeneratedValue): WriterFunction {\n return callExpression(parenthesized(expression), [])\n}\n\nexport function templateLiteral(parts: readonly GeneratedValue[]): WriterFunction {\n return (writer) => {\n writer.write('`')\n parts.forEach((part) => {\n if (typeof part === 'string') {\n writer.write(part.replaceAll('\\\\', '\\\\\\\\').replaceAll('`', '\\\\`').replaceAll('${', '\\\\${'))\n return\n }\n\n writer.write('${')\n writeValue(writer, part)\n writer.write('}')\n })\n writer.write('`')\n }\n}\n\nexport function writeStatements(writer: CodeBlockWriter, statements: readonly StatementWriter[]): void {\n statements.forEach((statement, index) => {\n statement(writer)\n if (index < statements.length - 1) {\n writer.newLine()\n }\n })\n}\n\nexport function returnStatement(expression?: GeneratedValue): StatementWriter {\n return (writer) => {\n writer.write('return')\n if (expression !== undefined) {\n writer.write(' ')\n writeValue(writer, expression)\n }\n writer.write(';')\n }\n}\n\nexport function variableStatement(options: {\n declarationKind?: 'const' | 'let' | 'var'\n name: string\n initializer: GeneratedValue\n type?: string\n}): StatementWriter {\n return (writer) => {\n writer.write(options.declarationKind ?? 'const')\n writer.write(' ')\n writer.write(options.name)\n if (options.type) {\n writer.write(': ')\n writer.write(options.type)\n }\n writer.write(' = ')\n writeValue(writer, options.initializer)\n writer.write(';')\n }\n}\n\nexport function assignmentStatement(target: GeneratedValue, value: GeneratedValue): StatementWriter {\n return (writer) => {\n writeValue(writer, target)\n writer.write(' = ')\n writeValue(writer, value)\n writer.write(';')\n }\n}\n\nexport function ifStatement(options: {\n condition: GeneratedValue\n thenStatements: readonly StatementWriter[]\n elseStatements?: readonly StatementWriter[]\n}): StatementWriter {\n return (writer) => {\n const elseStatements = options.elseStatements\n writer.write('if (')\n writeValue(writer, options.condition)\n writer.write(') ')\n writer.block(() => {\n writeStatements(writer, options.thenStatements)\n })\n\n if (elseStatements && elseStatements.length > 0) {\n writer.write(' else ')\n writer.block(() => {\n writeStatements(writer, elseStatements)\n })\n }\n }\n}\n\nexport function forOfStatement(options: {\n variable: string\n iterable: GeneratedValue\n statements: readonly StatementWriter[]\n declarationKind?: 'const' | 'let' | 'var'\n}): StatementWriter {\n return (writer) => {\n writer.write('for (')\n writer.write(options.declarationKind ?? 'const')\n writer.write(' ')\n writer.write(options.variable)\n writer.write(' of ')\n writeValue(writer, options.iterable)\n writer.write(') ')\n writer.block(() => {\n writeStatements(writer, options.statements)\n })\n }\n}\n\nexport function objectKeys(value: GeneratedValue): WriterFunction {\n return methodCall(identifier('Object'), 'keys', [value])\n}\n\nexport function objectEntries(value: GeneratedValue): WriterFunction {\n return methodCall(identifier('Object'), 'entries', [value])\n}\n\nexport function objectFromEntries(value: GeneratedValue): WriterFunction {\n return methodCall(identifier('Object'), 'fromEntries', [value])\n}\n\nexport function arrowFunction(options: {\n async?: boolean\n parameters?: string[]\n body: WriterFunction\n}): WriterFunction {\n return (writer) => {\n if (options.async) {\n writer.write('async ')\n }\n writer.write('(')\n writeCommaSeparated(writer, options.parameters ?? [], (currentWriter, parameter) => currentWriter.write(parameter))\n writer.write(') => ')\n options.body(writer)\n }\n}\n\nexport function block(body: WriterFunction): WriterFunction {\n return (writer) => {\n writer.block(() => {\n body(writer)\n })\n }\n}\n\nexport function expressionStatement(expression: GeneratedValue): WriterFunction {\n return (writer) => {\n writeValue(writer, expression)\n writer.write(';')\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|