@open-mercato/cli 0.7.0 → 0.7.1-develop.7103.1.41ff100d93
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/.turbo/turbo-build.log +7 -1
- package/dist/agentic/guides/module-facts.json +5509 -599
- package/dist/agentic/guides/module-facts.v2.json +5595 -599
- 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/di-registrations-rich.md +11 -0
- package/dist/agentic/guides/modules/api_keys/di-service-tokens.md +11 -0
- package/dist/agentic/guides/modules/api_keys/exact-override-targets.md +1 -0
- package/dist/agentic/guides/modules/api_keys/index.md +4 -2
- package/dist/agentic/guides/modules/attachments/di-registrations-rich.md +6 -5
- package/dist/agentic/guides/modules/attachments/di-service-tokens.md +5 -4
- package/dist/agentic/guides/modules/attachments/exact-override-targets.md +6 -5
- package/dist/agentic/guides/modules/attachments/index.md +2 -2
- package/dist/agentic/guides/modules/audit_logs/index.md +1 -1
- package/dist/agentic/guides/modules/auth/di-registrations-rich.md +3 -2
- package/dist/agentic/guides/modules/auth/di-service-tokens.md +3 -2
- package/dist/agentic/guides/modules/auth/exact-override-targets.md +3 -2
- 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/incoming-installed-contributions.md +3 -0
- package/dist/agentic/guides/modules/catalog/index.md +2 -2
- package/dist/agentic/guides/modules/channel_apns/index.md +1 -1
- package/dist/agentic/guides/modules/channel_discord/acl-features.md +13 -0
- package/dist/agentic/guides/modules/channel_discord/ai-agents.md +11 -0
- package/dist/agentic/guides/modules/channel_discord/backend-pages.md +11 -0
- package/dist/agentic/guides/modules/channel_discord/cli-commands.md +13 -0
- package/dist/agentic/guides/modules/channel_discord/contribution-resolutions.md +14 -0
- package/dist/agentic/guides/modules/channel_discord/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/channel_discord/exact-override-targets.md +26 -0
- package/dist/agentic/guides/modules/channel_discord/index.md +22 -0
- package/dist/agentic/guides/modules/channel_discord/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/channel_discord/setup.md +11 -0
- package/dist/agentic/guides/modules/channel_discord/umes-contributions.md +14 -0
- package/dist/agentic/guides/modules/channel_discord/workers.md +12 -0
- 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/di-registrations-rich.md +9 -8
- package/dist/agentic/guides/modules/communication_channels/exact-override-targets.md +9 -8
- package/dist/agentic/guides/modules/communication_channels/incoming-installed-contributions.md +2 -0
- package/dist/agentic/guides/modules/communication_channels/index.md +3 -3
- 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/active-extension-bindings.md +6 -3
- package/dist/agentic/guides/modules/customers/contribution-resolutions.md +1 -0
- package/dist/agentic/guides/modules/customers/events.md +2 -1
- package/dist/agentic/guides/modules/customers/incoming-installed-contributions.md +7 -0
- package/dist/agentic/guides/modules/customers/index.md +4 -4
- package/dist/agentic/guides/modules/customers/umes-contributions.md +1 -0
- package/dist/agentic/guides/modules/customers/umes-hosts.md +1 -0
- package/dist/agentic/guides/modules/dashboards/index.md +1 -1
- package/dist/agentic/guides/modules/data_sync/exact-override-targets.md +2 -2
- package/dist/agentic/guides/modules/data_sync/index.md +1 -1
- package/dist/agentic/guides/modules/data_sync/workers.md +2 -2
- 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/di-registrations-rich.md +12 -0
- package/dist/agentic/guides/modules/directory/di-service-tokens.md +12 -0
- package/dist/agentic/guides/modules/directory/exact-override-targets.md +2 -0
- package/dist/agentic/guides/modules/directory/index.md +5 -3
- package/dist/agentic/guides/modules/documents/acl-features.md +17 -0
- package/dist/agentic/guides/modules/documents/backend-pages.md +13 -0
- package/dist/agentic/guides/modules/documents/contribution-resolutions.md +27 -0
- package/dist/agentic/guides/modules/documents/di-registrations-rich.md +21 -0
- package/dist/agentic/guides/modules/documents/domain-commands.md +37 -0
- package/dist/agentic/guides/modules/documents/encryption.md +11 -0
- package/dist/agentic/guides/modules/documents/entities.md +21 -0
- package/dist/agentic/guides/modules/documents/events.md +25 -0
- package/dist/agentic/guides/modules/documents/exact-override-targets.md +39 -0
- package/dist/agentic/guides/modules/documents/index.md +25 -0
- package/dist/agentic/guides/modules/documents/notifications.md +13 -0
- package/dist/agentic/guides/modules/documents/owned-contract-module-metadata.md +11 -0
- package/dist/agentic/guides/modules/documents/setup.md +11 -0
- package/dist/agentic/guides/modules/documents/umes-contributions.md +27 -0
- package/dist/agentic/guides/modules/documents/umes-hosts.md +36 -0
- 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/exact-override-targets.md +1 -1
- package/dist/agentic/guides/modules/gateway_stripe/index.md +1 -1
- package/dist/agentic/guides/modules/gateway_stripe/workers.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/active-extension-bindings.md +1 -0
- package/dist/agentic/guides/modules/sales/contribution-resolutions.md +1 -0
- package/dist/agentic/guides/modules/sales/exact-override-targets.md +5 -4
- package/dist/agentic/guides/modules/sales/host-extension-points.md +1 -1
- package/dist/agentic/guides/modules/sales/incoming-installed-contributions.md +2 -0
- package/dist/agentic/guides/modules/sales/index.md +3 -3
- package/dist/agentic/guides/modules/sales/setup.md +1 -1
- package/dist/agentic/guides/modules/sales/umes-contributions.md +1 -0
- package/dist/agentic/guides/modules/sales/umes-diagnostics.md +1 -0
- package/dist/agentic/guides/modules/sales/umes-hosts.md +9 -0
- package/dist/agentic/guides/modules/scheduler/cli-commands.md +1 -0
- package/dist/agentic/guides/modules/scheduler/exact-override-targets.md +3 -1
- package/dist/agentic/guides/modules/scheduler/index.md +2 -2
- package/dist/agentic/guides/modules/scheduler/workers.md +2 -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/security/owned-contract-module-metadata.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 +2 -2
- package/dist/agentic/guides/reference-modules/example/index.md +1 -1
- package/dist/agentic/guides/upstream/manifest.json +1 -1
- package/dist/agentic/shared/AGENTS.md.template +3 -3
- package/dist/agentic/shared/ai/harness/README.md +2 -2
- package/dist/agentic/shared/ai/harness/RELEASE.md +8 -6
- package/dist/agentic/shared/ai/harness/cases.json +83 -0
- package/dist/agentic/shared/ai/harness/cases.schema.json +4 -4
- package/dist/agentic/shared/ai/harness/validators.json +1 -1
- package/dist/agentic/shared/scripts/run-agent-harness-release.mjs +37 -11
- 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 +424 -189
- 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/dist/mercato.js +14 -0
- package/dist/mercato.js.map +2 -2
- package/package.json +8 -7
- package/src/__tests__/resolve-queue-abandon-hook.test.ts +39 -0
- 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__/generated-registry-imports.test.ts +128 -0
- package/src/lib/generators/__tests__/metadata-extraction.test.ts +44 -0
- package/src/lib/generators/__tests__/module-facts.bc-guard.test.ts +32 -8
- package/src/lib/generators/__tests__/module-facts.customers.fixture.test.ts +4 -1
- package/src/lib/generators/__tests__/module-facts.extension-hosts.test.ts +1 -1
- 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 +7 -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 +534 -227
- 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
- package/src/mercato.ts +27 -0
|
@@ -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
|
}
|