@zodmire/core 0.1.2 → 0.1.3

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.
@@ -51,6 +51,12 @@ function contextArtifactOwnership(scopeKey) {
51
51
  scopeKey
52
52
  };
53
53
  }
54
+ function userArtifactOwnership(scopeKey) {
55
+ return {
56
+ ownershipScope: "user-owned",
57
+ scopeKey
58
+ };
59
+ }
54
60
  function applyOwnershipIfMissing(artifacts, ownership) {
55
61
  return artifacts.map((artifact) => artifact.ownershipScope !== void 0 && artifact.scopeKey !== void 0 ? artifact : withArtifactOwnership(artifact, ownership));
56
62
  }
@@ -88,4 +94,4 @@ function resolveArtifactOwnership(artifact, defaultSliceScopeKey = "default") {
88
94
  }
89
95
 
90
96
  //#endregion
91
- export { mergeGeneratedArtifacts as a, sliceArtifactOwnership as c, inferArtifactOwnership as i, withArtifactOwnership as l, contextArtifactOwnership as n, resolveArtifactOwnership as o, createGeneratedArtifact as r, sharedArtifactOwnership as s, applyOwnershipIfMissing as t };
97
+ export { mergeGeneratedArtifacts as a, sliceArtifactOwnership as c, inferArtifactOwnership as i, userArtifactOwnership as l, contextArtifactOwnership as n, resolveArtifactOwnership as o, createGeneratedArtifact as r, sharedArtifactOwnership as s, applyOwnershipIfMissing as t, withArtifactOwnership as u };
@@ -1,5 +1,5 @@
1
1
  //#region packages/core/artifacts.d.ts
2
- type OwnershipScope = "shared-owned" | "slice-owned" | "context-owned";
2
+ type OwnershipScope = "shared-owned" | "slice-owned" | "context-owned" | "user-owned";
3
3
  type ArtifactOwnership = {
4
4
  ownershipScope: OwnershipScope;
5
5
  scopeKey: string;
@@ -18,8 +18,9 @@ declare function mergeGeneratedArtifacts(...groups: GeneratedArtifact[][]): Gene
18
18
  declare function sharedArtifactOwnership(scopeKey?: string): ArtifactOwnership;
19
19
  declare function sliceArtifactOwnership(scopeKey: string): ArtifactOwnership;
20
20
  declare function contextArtifactOwnership(scopeKey: string): ArtifactOwnership;
21
+ declare function userArtifactOwnership(scopeKey: string): ArtifactOwnership;
21
22
  declare function applyOwnershipIfMissing(artifacts: GeneratedArtifact[], ownership: ArtifactOwnership): GeneratedArtifact[];
22
23
  declare function inferArtifactOwnership(logicalPath: string, defaultSliceScopeKey?: string): ArtifactOwnership;
23
24
  declare function resolveArtifactOwnership(artifact: Pick<GeneratedArtifact, "logicalPath" | "ownershipScope" | "scopeKey">, defaultSliceScopeKey?: string): ArtifactOwnership;
24
25
  //#endregion
25
- export { contextArtifactOwnership as a, mergeGeneratedArtifacts as c, sliceArtifactOwnership as d, withArtifactOwnership as f, applyOwnershipIfMissing as i, resolveArtifactOwnership as l, GeneratedArtifact as n, createGeneratedArtifact as o, OwnershipScope as r, inferArtifactOwnership as s, ArtifactOwnership as t, sharedArtifactOwnership as u };
26
+ export { contextArtifactOwnership as a, mergeGeneratedArtifacts as c, sliceArtifactOwnership as d, userArtifactOwnership as f, applyOwnershipIfMissing as i, resolveArtifactOwnership as l, GeneratedArtifact as n, createGeneratedArtifact as o, withArtifactOwnership as p, OwnershipScope as r, inferArtifactOwnership as s, ArtifactOwnership as t, sharedArtifactOwnership as u };
package/materialize.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { n as GeneratedArtifact } from "./artifacts-QqCpfT50.mjs";
1
+ import { n as GeneratedArtifact } from "./artifacts-lAG6nq88.mjs";
2
2
  import { z } from "zod";
3
3
 
4
4
  //#region packages/core/materialize.d.ts
@@ -8,6 +8,7 @@ declare const OwnedManifestEntrySchema: z.ZodObject<{
8
8
  "shared-owned": "shared-owned";
9
9
  "slice-owned": "slice-owned";
10
10
  "context-owned": "context-owned";
11
+ "user-owned": "user-owned";
11
12
  }>;
12
13
  scopeKey: z.ZodString;
13
14
  sourceArtifactId: z.ZodString;
@@ -22,6 +23,7 @@ declare const MaterializationManifestSchema: z.ZodObject<{
22
23
  "shared-owned": "shared-owned";
23
24
  "slice-owned": "slice-owned";
24
25
  "context-owned": "context-owned";
26
+ "user-owned": "user-owned";
25
27
  }>;
26
28
  scopeKey: z.ZodString;
27
29
  sourceArtifactId: z.ZodString;
@@ -53,6 +55,7 @@ type MaterializeResult = {
53
55
  type MaterializationScope = Pick<OwnedManifestEntry, "ownershipScope" | "scopeKey">;
54
56
  type MaterializeOptions = {
55
57
  reconcileScopes?: MaterializationScope[];
58
+ dryRun?: boolean;
56
59
  };
57
60
  type PreparedArtifact = {
58
61
  artifact: GeneratedArtifact;
package/materialize.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { c as sliceArtifactOwnership, i as inferArtifactOwnership, o as resolveArtifactOwnership } from "./artifacts-CUzHfc15.mjs";
1
+ import { c as sliceArtifactOwnership, i as inferArtifactOwnership, o as resolveArtifactOwnership } from "./artifacts-D0E751FX.mjs";
2
2
  import { z } from "zod";
3
3
  import { dirname, join } from "node:path";
4
4
  import { mkdir, readFile, rm, writeFile } from "node:fs/promises";
@@ -12,7 +12,8 @@ async function loadOxfmt() {
12
12
  const OwnershipScopeSchema = z.enum([
13
13
  "shared-owned",
14
14
  "slice-owned",
15
- "context-owned"
15
+ "context-owned",
16
+ "user-owned"
16
17
  ]);
17
18
  const OwnedManifestEntrySchema = z.strictObject({
18
19
  logicalPath: z.string().min(1),
@@ -189,6 +190,7 @@ async function materializeOwnedArtifacts(targetRoot, artifacts, generatorVersion
189
190
  const destinationSha256 = await readDestinationSha256(destinationPath);
190
191
  const currentManifestEntry = currentManifestEntriesBySourceArtifactId.get(artifact.dataName);
191
192
  if (currentManifestEntry === void 0) throw new Error(`Materialization manifest missing current entry for artifact: ${artifact.logicalPath}`);
193
+ if (artifact.ownershipScope === "user-owned" && destinationSha256 !== void 0) continue;
192
194
  const previousManifestEntry = findScopedManifestEntry(previousOwnedEntries, currentManifestEntry);
193
195
  const action = determineMaterializationAction(destinationSha256 !== void 0, previousManifestEntry?.contentSha256, destinationSha256);
194
196
  if (action === "conflict") throw new Error(`Materialization conflict for generator-owned file: ${artifact.logicalPath}`);
@@ -212,18 +214,20 @@ async function materializeOwnedArtifacts(targetRoot, artifacts, generatorVersion
212
214
  destinationPath
213
215
  });
214
216
  }
215
- for (const staleFile of plannedDeletes) await removePathIfExists(staleFile.destinationPath);
216
- for (const write of plannedWrites) {
217
- await mkdir(dirname(write.destinationPath), { recursive: true });
218
- await writeFile(write.destinationPath, write.artifact.content, "utf-8");
217
+ if (!options.dryRun) {
218
+ for (const staleFile of plannedDeletes) await removePathIfExists(staleFile.destinationPath);
219
+ for (const write of plannedWrites) {
220
+ await mkdir(dirname(write.destinationPath), { recursive: true });
221
+ await writeFile(write.destinationPath, write.artifact.content, "utf-8");
222
+ }
223
+ const persistedManifestPath = getPersistedMaterializationManifestPath(targetRoot);
224
+ const persistedManifest = {
225
+ targetRoot,
226
+ files: [...previousOwnedEntries.filter((file) => !activeOwnershipScopes.has(ownershipScopeKey(file))), ...manifest.files]
227
+ };
228
+ await mkdir(dirname(persistedManifestPath), { recursive: true });
229
+ await writeFile(persistedManifestPath, `${JSON.stringify(persistedManifest, null, 2)}\n`, "utf-8");
219
230
  }
220
- const persistedManifestPath = getPersistedMaterializationManifestPath(targetRoot);
221
- const persistedManifest = {
222
- targetRoot,
223
- files: [...previousOwnedEntries.filter((file) => !activeOwnershipScopes.has(ownershipScopeKey(file))), ...manifest.files]
224
- };
225
- await mkdir(dirname(persistedManifestPath), { recursive: true });
226
- await writeFile(persistedManifestPath, `${JSON.stringify(persistedManifest, null, 2)}\n`, "utf-8");
227
231
  return {
228
232
  targetRoot,
229
233
  files: [...plannedDeletes.map((staleFile) => ({
package/mod.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { a as contextArtifactOwnership, c as mergeGeneratedArtifacts, d as sliceArtifactOwnership, f as withArtifactOwnership, i as applyOwnershipIfMissing, l as resolveArtifactOwnership, n as GeneratedArtifact, o as createGeneratedArtifact, r as OwnershipScope, s as inferArtifactOwnership, t as ArtifactOwnership, u as sharedArtifactOwnership } from "./artifacts-QqCpfT50.mjs";
1
+ import { a as contextArtifactOwnership, c as mergeGeneratedArtifacts, d as sliceArtifactOwnership, f as userArtifactOwnership, i as applyOwnershipIfMissing, l as resolveArtifactOwnership, n as GeneratedArtifact, o as createGeneratedArtifact, p as withArtifactOwnership, r as OwnershipScope, s as inferArtifactOwnership, t as ArtifactOwnership, u as sharedArtifactOwnership } from "./artifacts-lAG6nq88.mjs";
2
2
  import { MaterializationScope } from "./materialize.mjs";
3
3
  import { CodegenMeta, CommandEffect, CompositionConfig, ComputedFieldSpec, ContextConfig, FilterOperator, InvariantRule, ProjectionRebuildMeta, ProjectionSourceMeta, ProjectionSubscriptionMeta, ReadModelIndexMeta, ReadModelUniqueConstraintMeta } from "@zodmire/config";
4
4
 
@@ -82,9 +82,38 @@ declare function flattenEntities(aggregate: NormalizedAggregateWithChildren): No
82
82
  declare function walkEntityTree(aggregate: NormalizedAggregateWithChildren, visitor: EntityVisitor): void;
83
83
  //#endregion
84
84
  //#region packages/core/schema_pipeline.d.ts
85
+ type FieldTypeDescriptor = {
86
+ kind: "scalar";
87
+ scalar: "string" | "number" | "boolean" | "date" | "bigint";
88
+ } | {
89
+ kind: "enum";
90
+ values?: string[];
91
+ } | {
92
+ kind: "literal";
93
+ value: string | number | boolean | null;
94
+ } | {
95
+ kind: "branded";
96
+ brand: string;
97
+ underlying: "string" | "number";
98
+ } | {
99
+ kind: "object";
100
+ } | {
101
+ kind: "union";
102
+ variants?: FieldTypeDescriptor[];
103
+ } | {
104
+ kind: "record";
105
+ } | {
106
+ kind: "tuple";
107
+ } | {
108
+ kind: "intersection";
109
+ } | {
110
+ kind: "unknown";
111
+ rawType: string;
112
+ };
85
113
  type IntrospectedField = {
86
114
  name: string;
87
115
  type: string;
116
+ typeDescriptor?: FieldTypeDescriptor;
88
117
  optional: boolean;
89
118
  array: boolean;
90
119
  nestedFields?: IntrospectedField[];
@@ -205,6 +234,7 @@ type NormalizedGenerationCapability = {
205
234
  status: "generated" | "runtime-throw" | "disabled";
206
235
  reasons: string[];
207
236
  };
237
+ type NormalizedModelStrategy = "drizzle" | "mikroorm";
208
238
  type NormalizedAggregate = {
209
239
  name: string;
210
240
  fields: IntrospectedField[];
@@ -248,7 +278,7 @@ type NormalizedQueryReadSide = {
248
278
  readModelName: string;
249
279
  searchFields: string[];
250
280
  pagination?: {
251
- style: "offset";
281
+ style: "offset" | "cursor";
252
282
  };
253
283
  filters?: Record<string, FilterOperator[]>;
254
284
  sorting?: {
@@ -282,7 +312,7 @@ type NormalizedListQuery = {
282
312
  readModelName?: string;
283
313
  readSide: NormalizedQueryReadSide;
284
314
  pagination: {
285
- style: "offset";
315
+ style: "offset" | "cursor";
286
316
  };
287
317
  filters: Record<string, FilterOperator[]>;
288
318
  sorting: {
@@ -361,6 +391,8 @@ type NormalizedSpec = {
361
391
  adapters: ContextConfig["adapters"];
362
392
  presentation: ContextConfig["presentation"];
363
393
  materialization: ContextConfig["materialization"];
394
+ writeModelStrategy: NormalizedModelStrategy;
395
+ readModelStrategy: NormalizedModelStrategy;
364
396
  };
365
397
  type ContextNormalizedSpec = {
366
398
  context: {
@@ -380,6 +412,8 @@ type ContextNormalizedSpec = {
380
412
  acls: ContextConfig["acls"];
381
413
  presentation: ContextConfig["presentation"];
382
414
  materialization: ContextConfig["materialization"];
415
+ writeModelStrategy: NormalizedModelStrategy;
416
+ readModelStrategy: NormalizedModelStrategy;
383
417
  };
384
418
  declare function buildContextNormalizedSpec(schemaResult: SchemaReadResult, config: ContextConfig): ContextNormalizedSpec;
385
419
  declare function buildNormalizedSpec(schemaResult: SchemaReadResult, config: ContextConfig): NormalizedSpec;
@@ -494,9 +528,26 @@ declare function collectOwnedValueObjects(aggregate: NormalizedAggregate, contex
494
528
  declare function sliceContextIntoAggregateViews(contextSpec: ContextNormalizedSpec): AggregateNormalizedSpecView[];
495
529
  //#endregion
496
530
  //#region packages/core/orchestrator.d.ts
531
+ type GenerationOutputOptions = {
532
+ tests?: boolean;
533
+ include?: string[];
534
+ exclude?: string[];
535
+ };
497
536
  type ContextArtifactGenerationOptions = {
498
537
  infrastructureStrategy?: NormalizedInfrastructureStrategy;
499
- };
538
+ targetRegistry?: ContextGeneratorTargetRegistry;
539
+ generation?: GenerationOutputOptions;
540
+ };
541
+ type ContextGeneratorPhase = "per-aggregate" | "per-context";
542
+ type ContextGeneratorTarget = {
543
+ id: string;
544
+ order: number;
545
+ phases: readonly ContextGeneratorPhase[];
546
+ generateAggregate?: (view: AggregateNormalizedSpecView, options: ContextArtifactGenerationOptions) => GeneratedArtifact[];
547
+ generateContext?: (contextSpec: ContextNormalizedSpec, options: ContextArtifactGenerationOptions) => GeneratedArtifact[];
548
+ };
549
+ type ContextGeneratorTargetRegistry = ReadonlyMap<string, ContextGeneratorTarget>;
550
+ declare const DEFAULT_CONTEXT_GENERATOR_TARGET_REGISTRY: ContextGeneratorTargetRegistry;
500
551
  declare function generateContextArtifacts(contextSpec: ContextNormalizedSpec, options?: ContextArtifactGenerationOptions): GeneratedArtifact[];
501
552
  //#endregion
502
553
  //#region packages/core/spec_artifact.d.ts
@@ -657,6 +708,11 @@ declare function runMigration(opts: RunMigrationOptions): Promise<MigrationResul
657
708
  type ContextConfigLike = {
658
709
  schemaFiles?: string[];
659
710
  _codegenSupportPath?: string;
711
+ generation?: {
712
+ tests?: boolean;
713
+ include?: string[];
714
+ exclude?: string[];
715
+ };
660
716
  materialization?: {
661
717
  targetRoot?: string;
662
718
  };
@@ -746,6 +802,7 @@ declare function buildV5ContextArtifacts(input: {
746
802
  contextConfigPath: string;
747
803
  codegenSupportPath: string;
748
804
  infrastructureStrategy?: NormalizedInfrastructureStrategy;
805
+ generation?: GenerationOutputOptions;
749
806
  }): Promise<GeneratedArtifact[]>;
750
807
  declare function buildV5Artifacts(input: {
751
808
  contextConfigPath: string;
@@ -841,4 +898,4 @@ declare function buildCompositionAclArtifacts(compositionSpec: NormalizedComposi
841
898
  //#region packages/core/generators/composition_dependencies.d.ts
842
899
  declare function buildCompositionDependencyManifestArtifacts(compositionSpec: NormalizedCompositionSpec): GeneratedArtifact[];
843
900
  //#endregion
844
- export { AggregateNormalizedSpecView, ApplicationArtifactOptions, ApplicationErrorDef, ArtifactOwnership, CollisionSafeModulePathNames, ContextArtifactGenerationOptions, ContextConfigLike, ContextNormalizedSpec, DiffBucket, DomainErrorDef, EntityVisitor, GENERATED_READ_SIDE_SCHEMA_LOGICAL_PATH, GeneratedArtifact, InfrastructureArchitecture, InfrastructureArtifactOptions, InfrastructureContextGenerationOptions, InfrastructureOrm, InfrastructurePersistence, IntrospectedField, MigrationPlan, MigrationResult, NormalizedAggregate, NormalizedAggregateWithChildren, NormalizedCommand, NormalizedCompositionAcl, NormalizedCompositionSpec, NormalizedComputedField, NormalizedDomainEvent, NormalizedEntity, NormalizedEntityWithChildren, NormalizedFindByIdQuery, NormalizedGenerationCapability, NormalizedInfrastructureStrategy, NormalizedListQuery, NormalizedProjection, NormalizedProjectionSource, NormalizedQuery, NormalizedQueryReadSide, NormalizedReadAcl, NormalizedReadModel, NormalizedSpec, NormalizedValueObject, NormalizedWriteAcl, OwnershipScope, PreparedVendoredFile, ResolvedContextInputs, ResolvedCrossContextEvent, ResolvedSubscription, RunMigrationOptions, SPEC_ARTIFACT_SCHEMA_VERSION, SPEC_DIFF_SCHEMA_VERSION, SchemaReadResult, SpecDiffArtifact, VENDORED_FILE_MANIFEST, VendoredFileEntry, applyOwnershipIfMissing, buildArtifactPath, buildCollisionSafeModulePathNames, buildCompositionAclArtifacts, buildCompositionArtifacts, buildCompositionBusArtifacts, buildCompositionContainerArtifacts, buildCompositionDependencyManifestArtifacts, buildCompositionOutboxArtifacts, buildCompositionRouterArtifacts, buildCompositionSpecDiff, buildCompositionSubscriptionArtifacts, buildCompositionTypeArtifacts, buildConsumerAclArtifacts, buildContextInputChecks, buildContextNormalizedSpec, buildContextNormalizedSpecFromConfig, buildContextSpecDiff, buildDrizzleConfig, buildFileArtifactTags, buildMaterializationManifestTags, buildMigrationResultTags, buildNormalizedCompositionSpec, buildNormalizedSpec, buildNormalizedSpecFromConfig, buildNormalizedSpecTags, buildProjectionArtifacts, buildReadModelCompositionArtifacts, buildSpecDiffTags, buildSummaryTags, buildV5ApplicationArtifacts, buildV5ApplicationContextArtifacts, buildV5Artifacts, buildV5ContextArtifacts, buildV5DomainArtifacts, buildV5InfrastructureArtifacts, buildV5InfrastructureContextArtifacts, buildV5LibArtifacts, buildV5PortArtifacts, buildV5PresentationArtifacts, buildV5RouteArtifacts, buildV5SharedKernelArtifacts, buildV5TestArtifacts, buildVendoredFileTags, camelCase, collectOwnedValueObjects, compositionSpecDiffDataName, contextArtifactOwnership, contextSpecDiffDataName, contractFileName, createGeneratedArtifact, discoverReferencedVos, ensureContextSupportFilesExist, filterPerContextArtifactsForComposition, flattenEntities, generateContextArtifacts, inferArtifactOwnership, inferCodegenSupportPathForContext, inferCodegenSupportPathFromSchemaFile, inferReconcileScopes, introspectObjectShape, introspectSchema, isRegisteredEntity, kebabCase, loadContextConfig, mergeGeneratedArtifacts, mergeSchemaReadResults, normalizeModulePath, parseConnectionString, parseDrizzleKitOutput, pascalCase, prepareAllVendoredFiles, prepareVendoredFile, readSchemaFile, repositoryPortFileName, repositoryPortTypeName, resolveAbsoluteContextInputs, resolveArtifactOwnership, resolveContextInputs, resolveFactoryPath, resolveGeneratedMigrationSchemaPath, resolveMethodContextInputsForCheck, resolveSchemaFilePathsForContext, resolveVoOwner, rewriteImports, runMigration, serializeCompositionSpec, serializeContextSpec, sharedArtifactOwnership, sliceArtifactOwnership, sliceContextIntoAggregateViews, snakeCase, snakeUpperCase, toImportURL, toUpperSnakeCase, unwrapFieldType, validateContextImports, walkEntityTree, withArtifactOwnership, wordsFromName };
901
+ export { AggregateNormalizedSpecView, ApplicationArtifactOptions, ApplicationErrorDef, ArtifactOwnership, CollisionSafeModulePathNames, ContextArtifactGenerationOptions, ContextConfigLike, ContextGeneratorPhase, ContextGeneratorTarget, ContextGeneratorTargetRegistry, ContextNormalizedSpec, DEFAULT_CONTEXT_GENERATOR_TARGET_REGISTRY, DiffBucket, DomainErrorDef, EntityVisitor, FieldTypeDescriptor, GENERATED_READ_SIDE_SCHEMA_LOGICAL_PATH, GeneratedArtifact, GenerationOutputOptions, InfrastructureArchitecture, InfrastructureArtifactOptions, InfrastructureContextGenerationOptions, InfrastructureOrm, InfrastructurePersistence, IntrospectedField, MigrationPlan, MigrationResult, NormalizedAggregate, NormalizedAggregateWithChildren, NormalizedCommand, NormalizedCompositionAcl, NormalizedCompositionSpec, NormalizedComputedField, NormalizedDomainEvent, NormalizedEntity, NormalizedEntityWithChildren, NormalizedFindByIdQuery, NormalizedGenerationCapability, NormalizedInfrastructureStrategy, NormalizedListQuery, NormalizedModelStrategy, NormalizedProjection, NormalizedProjectionSource, NormalizedQuery, NormalizedQueryReadSide, NormalizedReadAcl, NormalizedReadModel, NormalizedSpec, NormalizedValueObject, NormalizedWriteAcl, OwnershipScope, PreparedVendoredFile, ResolvedContextInputs, ResolvedCrossContextEvent, ResolvedSubscription, RunMigrationOptions, SPEC_ARTIFACT_SCHEMA_VERSION, SPEC_DIFF_SCHEMA_VERSION, SchemaReadResult, SpecDiffArtifact, VENDORED_FILE_MANIFEST, VendoredFileEntry, applyOwnershipIfMissing, buildArtifactPath, buildCollisionSafeModulePathNames, buildCompositionAclArtifacts, buildCompositionArtifacts, buildCompositionBusArtifacts, buildCompositionContainerArtifacts, buildCompositionDependencyManifestArtifacts, buildCompositionOutboxArtifacts, buildCompositionRouterArtifacts, buildCompositionSpecDiff, buildCompositionSubscriptionArtifacts, buildCompositionTypeArtifacts, buildConsumerAclArtifacts, buildContextInputChecks, buildContextNormalizedSpec, buildContextNormalizedSpecFromConfig, buildContextSpecDiff, buildDrizzleConfig, buildFileArtifactTags, buildMaterializationManifestTags, buildMigrationResultTags, buildNormalizedCompositionSpec, buildNormalizedSpec, buildNormalizedSpecFromConfig, buildNormalizedSpecTags, buildProjectionArtifacts, buildReadModelCompositionArtifacts, buildSpecDiffTags, buildSummaryTags, buildV5ApplicationArtifacts, buildV5ApplicationContextArtifacts, buildV5Artifacts, buildV5ContextArtifacts, buildV5DomainArtifacts, buildV5InfrastructureArtifacts, buildV5InfrastructureContextArtifacts, buildV5LibArtifacts, buildV5PortArtifacts, buildV5PresentationArtifacts, buildV5RouteArtifacts, buildV5SharedKernelArtifacts, buildV5TestArtifacts, buildVendoredFileTags, camelCase, collectOwnedValueObjects, compositionSpecDiffDataName, contextArtifactOwnership, contextSpecDiffDataName, contractFileName, createGeneratedArtifact, discoverReferencedVos, ensureContextSupportFilesExist, filterPerContextArtifactsForComposition, flattenEntities, generateContextArtifacts, inferArtifactOwnership, inferCodegenSupportPathForContext, inferCodegenSupportPathFromSchemaFile, inferReconcileScopes, introspectObjectShape, introspectSchema, isRegisteredEntity, kebabCase, loadContextConfig, mergeGeneratedArtifacts, mergeSchemaReadResults, normalizeModulePath, parseConnectionString, parseDrizzleKitOutput, pascalCase, prepareAllVendoredFiles, prepareVendoredFile, readSchemaFile, repositoryPortFileName, repositoryPortTypeName, resolveAbsoluteContextInputs, resolveArtifactOwnership, resolveContextInputs, resolveFactoryPath, resolveGeneratedMigrationSchemaPath, resolveMethodContextInputsForCheck, resolveSchemaFilePathsForContext, resolveVoOwner, rewriteImports, runMigration, serializeCompositionSpec, serializeContextSpec, sharedArtifactOwnership, sliceArtifactOwnership, sliceContextIntoAggregateViews, snakeCase, snakeUpperCase, toImportURL, toUpperSnakeCase, unwrapFieldType, userArtifactOwnership, validateContextImports, walkEntityTree, withArtifactOwnership, wordsFromName };