@zodmire/core 0.1.0 → 0.1.1

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 (3) hide show
  1. package/mod.d.mts +1 -1
  2. package/mod.mjs +35 -19
  3. package/package.json +2 -2
package/mod.d.mts CHANGED
@@ -25,7 +25,7 @@ interface VendoredFileEntry {
25
25
  }
26
26
  /** The manifest of config files to vendor into end-user projects. */
27
27
  declare const VENDORED_FILE_MANIFEST: readonly VendoredFileEntry[];
28
- /** Rewrite Deno-style `npm:zod@*` imports to bare `"zod"` for end-user consumption. */
28
+ /** Rewrite `npm:zod@*` imports to bare `"zod"` for end-user consumption. */
29
29
  declare function rewriteImports(content: string): string;
30
30
  /** Apply import rewriting and prepend a version header. */
31
31
  declare function prepareVendoredFile(content: string, generatorVersion: string): string;
package/mod.mjs CHANGED
@@ -63,7 +63,7 @@ const VENDORED_FILE_MANIFEST = [
63
63
  sourceRelativePath: "packages/config/composition_config.ts"
64
64
  }
65
65
  ];
66
- /** Rewrite Deno-style `npm:zod@*` imports to bare `"zod"` for end-user consumption. */
66
+ /** Rewrite `npm:zod@*` imports to bare `"zod"` for end-user consumption. */
67
67
  function rewriteImports(content) {
68
68
  return content.replace(/["']npm:zod@[^"']*["']/g, "\"zod\"");
69
69
  }
@@ -2069,6 +2069,9 @@ function readModelPortBaseFileName(readModelName) {
2069
2069
  function resolvedReadModelName$2(query) {
2070
2070
  return query.readSide?.readModelName ?? query.readModelName ?? query.name;
2071
2071
  }
2072
+ function queryOutputExportName$1(query) {
2073
+ return query.outputSchemaExportName?.trim() || void 0;
2074
+ }
2072
2075
  function queryReadModelPortTypeName$1(query) {
2073
2076
  return `${readModelContractName$3(resolvedReadModelName$2(query))}RepositoryPort`;
2074
2077
  }
@@ -2130,7 +2133,7 @@ ${query.outputFields.map((f) => {
2130
2133
  function createListQueryHandlerStub(_spec, query) {
2131
2134
  const handlerName = `${pascalCase(query.name)}Handler`;
2132
2135
  const queryTypeName = `${pascalCase(query.name)}Query`;
2133
- const outputContractName = queryOutputContractName$2(query);
2136
+ const outputContractName = queryOutputContractName$1(query);
2134
2137
  const readModelPortType = queryReadModelPortTypeName$1(query);
2135
2138
  const readModelVariable = queryReadModelVariableName$1(query);
2136
2139
  const readModelMethodName = queryReadModelMethodName$1(query);
@@ -2193,7 +2196,7 @@ ${(query.inputFields ?? []).map((f) => {
2193
2196
  `;
2194
2197
  }
2195
2198
  function createViewContractStub(query) {
2196
- return `export interface ${queryOutputContractName$2(query)} {
2199
+ return `export interface ${queryOutputContractName$1(query)} {
2197
2200
  ${query.outputFields.map((f) => {
2198
2201
  const opt = f.optional ? "?" : "";
2199
2202
  return ` readonly ${camelCase(f.name)}${opt}: ${formatFieldType(f)};`;
@@ -2201,11 +2204,14 @@ ${query.outputFields.map((f) => {
2201
2204
  }
2202
2205
  `;
2203
2206
  }
2204
- function queryOutputContractName$2(query) {
2205
- const baseName = pascalCase(resolvedReadModelName$2(query));
2206
- return baseName.endsWith("View") ? baseName : `${baseName}View`;
2207
+ function queryOutputContractName$1(query) {
2208
+ const outputExportName = queryOutputExportName$1(query);
2209
+ if (outputExportName) return pascalCase(outputExportName);
2210
+ return readModelContractName$3(resolvedReadModelName$2(query));
2207
2211
  }
2208
2212
  function queryViewFileBase$2(query) {
2213
+ const outputExportName = queryOutputExportName$1(query);
2214
+ if (outputExportName) return kebabCase(outputExportName).replace(/-view$/, "");
2209
2215
  return kebabCase(resolvedReadModelName$2(query)).replace(/-view$/, "");
2210
2216
  }
2211
2217
  function createCommandStub(spec, command) {
@@ -2457,7 +2463,7 @@ export interface ${queryName} {
2457
2463
  }
2458
2464
  function buildQueryHandlerBody(_spec, query) {
2459
2465
  const queryTypeName = `${pascalCase(query.name)}Query`;
2460
- const outputContractName = queryOutputContractName$2(query);
2466
+ const outputContractName = queryOutputContractName$1(query);
2461
2467
  const readModelPortType = queryReadModelPortTypeName$1(query);
2462
2468
  const handlerName = `${pascalCase(query.name)}Handler`;
2463
2469
  const readModelVariable = queryReadModelVariableName$1(query);
@@ -2483,7 +2489,7 @@ export class ${handlerName} {
2483
2489
  function createQueryHandlerStub(_spec, query) {
2484
2490
  if (query.outputFields && query.outputFields.length > 0) return buildQueryHandlerBody(_spec, query);
2485
2491
  const queryTypeName = `${pascalCase(query.name)}Query`;
2486
- const outputContractName = queryOutputContractName$2(query);
2492
+ const outputContractName = queryOutputContractName$1(query);
2487
2493
  const readModelPortType = queryReadModelPortTypeName$1(query);
2488
2494
  const handlerName = `${pascalCase(query.name)}Handler`;
2489
2495
  const readModelVariable = queryReadModelVariableName$1(query);
@@ -2557,7 +2563,7 @@ function createReadModelRepositoryPortStub(readModelName, queries) {
2557
2563
  importLines.set("tx", `import type { Transaction } from "../../../../../lib/transaction.ts";`);
2558
2564
  const queryMethodLines = queries.slice().sort((left, right) => left.name.localeCompare(right.name)).map((query) => {
2559
2565
  const queryTypeName = `${pascalCase(query.name)}Query`;
2560
- const outputContractName = queryOutputContractName$2(query);
2566
+ const outputContractName = queryOutputContractName$1(query);
2561
2567
  const viewFileBase = queryViewFileBase$2(query);
2562
2568
  const returnType = query.queryKind === "list" ? `PaginatedResult<${outputContractName}>` : outputContractName;
2563
2569
  if (query.queryKind === "list") needsPaginatedResult = true;
@@ -2590,7 +2596,7 @@ function inputContractFileName(commandOrQueryName) {
2590
2596
  return `${kebabCase(commandOrQueryName)}.input`;
2591
2597
  }
2592
2598
  function viewContractFileName(query) {
2593
- return `${kebabCase(resolvedReadModelName$2(query)).replace(/-view$/, "")}.view`;
2599
+ return `${queryViewFileBase$2(query)}.view`;
2594
2600
  }
2595
2601
  function createHandlerMapStub(spec) {
2596
2602
  const contextPascal = pascalCase(spec.context.name);
@@ -2682,7 +2688,7 @@ function createPublishedReadBoundaryStub(contextSpec) {
2682
2688
  const queryHandlerName = `${pascalCase(query.name)}Handler`;
2683
2689
  const handlerVarName = `${camelCase(query.name)}Handler`;
2684
2690
  const queryTypeName = `${pascalCase(query.name)}Query`;
2685
- const outputContractName = queryOutputContractName$2(query);
2691
+ const outputContractName = queryOutputContractName$1(query);
2686
2692
  const queryFileName = kebabCase(query.name);
2687
2693
  const outputFileName = queryViewFileBase$2(query);
2688
2694
  const readModelDepName = queryReadModelVariableName$1(query);
@@ -2916,10 +2922,17 @@ function readModelTableConstName(readModelName) {
2916
2922
  function resolvedReadModelName$1(query) {
2917
2923
  return query.readSide?.readModelName ?? query.readModelName ?? query.name;
2918
2924
  }
2919
- function queryOutputContractName$1(query) {
2925
+ function queryOutputExportName(query) {
2926
+ return query.outputSchemaExportName?.trim() || void 0;
2927
+ }
2928
+ function queryOutputContractName(query) {
2929
+ const outputExportName = queryOutputExportName(query);
2930
+ if (outputExportName) return pascalCase(outputExportName);
2920
2931
  return readModelContractName$2(resolvedReadModelName$1(query));
2921
2932
  }
2922
2933
  function queryViewFileBase$1(query) {
2934
+ const outputExportName = queryOutputExportName(query);
2935
+ if (outputExportName) return kebabCase(outputExportName).replace(/-view$/, "");
2923
2936
  return readModelRepositoryFileBase$1(resolvedReadModelName$1(query));
2924
2937
  }
2925
2938
  function queryReadModelMethodName(query) {
@@ -3926,7 +3939,7 @@ function createReadModelRepositorySkeleton(modulePath, readModelName, queries) {
3926
3939
  const methodBlocks = queries.slice().sort((left, right) => left.name.localeCompare(right.name)).map((query) => {
3927
3940
  const methodName = queryReadModelMethodName(query);
3928
3941
  const queryTypeName = `${pascalCase(query.name)}Query`;
3929
- const outputTypeName = queryOutputContractName$1(query);
3942
+ const outputTypeName = queryOutputContractName(query);
3930
3943
  const viewFileBase = queryViewFileBase$1(query);
3931
3944
  importLines.set(`query:${queryTypeName}`, `import type { ${queryTypeName} } from "../../../../../core/contexts/${modulePath}/application/queries/${kebabCase(query.name)}.query.ts";`);
3932
3945
  importLines.set(`view:${outputTypeName}`, `import type { ${outputTypeName} } from "../../../../../core/contexts/${modulePath}/application/contracts/${viewFileBase}.view.ts";`);
@@ -6106,10 +6119,14 @@ ${Object.entries(fields).map(([fieldName, expr]) => ` readonly ${camelCase(fiel
6106
6119
  }`;
6107
6120
  }
6108
6121
  function sourceQueryViewTypeName(acl) {
6122
+ const outputExportName = acl.sourceQuery.outputSchemaExportName?.trim();
6123
+ if (outputExportName) return pascalCase(outputExportName);
6109
6124
  const baseName = acl.sourceQuery.readModelName ? pascalCase(acl.sourceQuery.readModelName) : pascalCase(acl.sourceQuery.name);
6110
6125
  return baseName.endsWith("View") ? baseName : `${baseName}View`;
6111
6126
  }
6112
6127
  function sourceQueryViewFileName(acl) {
6128
+ const outputExportName = acl.sourceQuery.outputSchemaExportName?.trim();
6129
+ if (outputExportName) return `${kebabCase(outputExportName).replace(/-view$/, "")}.view.ts`;
6113
6130
  return `${(acl.sourceQuery.readModelName ? kebabCase(acl.sourceQuery.readModelName) : kebabCase(acl.sourceQuery.name)).replace(/-view$/, "")}.view.ts`;
6114
6131
  }
6115
6132
  function readResponseFieldType(acl, mapping) {
@@ -6563,23 +6580,22 @@ function uniqueQueriesByReadModel(queries) {
6563
6580
  }
6564
6581
  return [...queriesByReadModel.values()].sort((left, right) => resolvedReadModelName(left).localeCompare(resolvedReadModelName(right)));
6565
6582
  }
6566
- function queryOutputContractName(query) {
6567
- return readModelContractName(resolvedReadModelName(query));
6568
- }
6569
6583
  function queryViewFileBase(query) {
6584
+ const outputExportName = query.outputSchemaExportName?.trim();
6585
+ if (outputExportName) return kebabCase(outputExportName).replace(/-view$/, "");
6570
6586
  return readModelRepositoryFileBase(resolvedReadModelName(query));
6571
6587
  }
6572
6588
  function queryReadModelPortTypeName(query) {
6573
- return `${queryOutputContractName(query)}RepositoryPort`;
6589
+ return `${readModelContractName(resolvedReadModelName(query))}RepositoryPort`;
6574
6590
  }
6575
6591
  function queryReadModelVariableName(query) {
6576
6592
  return camelCase(queryReadModelPortTypeName(query));
6577
6593
  }
6578
6594
  function queryReadModelRepositoryClassName(query) {
6579
- return `Drizzle${queryOutputContractName(query)}Repository`;
6595
+ return `Drizzle${readModelContractName(resolvedReadModelName(query))}Repository`;
6580
6596
  }
6581
6597
  function queryReadModelRepositoryAlias(contextSymbolStem, query) {
6582
- return `${contextSymbolStem}${queryOutputContractName(query)}Repository`;
6598
+ return `${contextSymbolStem}${readModelContractName(resolvedReadModelName(query))}Repository`;
6583
6599
  }
6584
6600
  function uniqueReadContexts(acls) {
6585
6601
  const seen = /* @__PURE__ */ new Set();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zodmire/core",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "main": "./mod.mjs",
@@ -17,7 +17,7 @@
17
17
  }
18
18
  },
19
19
  "dependencies": {
20
- "@zodmire/config": "^0.1.0",
20
+ "@zodmire/config": "^0.1.1",
21
21
  "@traversable/zod": "^0.0.57",
22
22
  "drizzle-kit": "^0.31.9",
23
23
  "oxfmt": "^0.42.0",