@prisma-next/framework-components 0.3.0-dev.154 → 0.3.0-dev.156

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.
@@ -7,6 +7,10 @@ import { Contract, ContractMarkerRecord } from "@prisma-next/contract/types";
7
7
  import { Result } from "@prisma-next/utils/result";
8
8
 
9
9
  //#region src/control-result-types.d.ts
10
+ declare const VERIFY_CODE_MARKER_MISSING = "PN-RUN-3001";
11
+ declare const VERIFY_CODE_HASH_MISMATCH = "PN-RUN-3002";
12
+ declare const VERIFY_CODE_TARGET_MISMATCH = "PN-RUN-3003";
13
+ declare const VERIFY_CODE_SCHEMA_FAILURE = "PN-RUN-3010";
10
14
  interface OperationContext {
11
15
  readonly contractPath?: string;
12
16
  readonly configPath?: string;
@@ -39,7 +43,7 @@ interface VerifyDatabaseResult {
39
43
  };
40
44
  }
41
45
  interface SchemaIssue {
42
- readonly kind: 'missing_table' | 'missing_column' | 'extra_table' | 'extra_column' | 'extra_primary_key' | 'extra_foreign_key' | 'extra_unique_constraint' | 'extra_index' | 'type_mismatch' | 'type_missing' | 'type_values_mismatch' | 'nullability_mismatch' | 'primary_key_mismatch' | 'foreign_key_mismatch' | 'unique_constraint_mismatch' | 'index_mismatch' | 'dependency_missing' | 'default_missing' | 'default_mismatch' | 'extra_default';
46
+ readonly kind: 'missing_table' | 'missing_column' | 'extra_table' | 'extra_column' | 'extra_primary_key' | 'extra_foreign_key' | 'extra_unique_constraint' | 'extra_index' | 'extra_validator' | 'type_mismatch' | 'type_missing' | 'type_values_mismatch' | 'nullability_mismatch' | 'primary_key_mismatch' | 'foreign_key_mismatch' | 'unique_constraint_mismatch' | 'index_mismatch' | 'dependency_missing' | 'default_missing' | 'default_mismatch' | 'extra_default';
43
47
  readonly table?: string;
44
48
  readonly column?: string;
45
49
  readonly indexOrConstraint?: string;
@@ -142,7 +146,7 @@ interface SignDatabaseResult {
142
146
  }
143
147
  //#endregion
144
148
  //#region src/control-instances.d.ts
145
- interface ControlFamilyInstance<TFamilyId extends string, TSchemaIR = unknown> extends FamilyInstance<TFamilyId> {
149
+ interface ControlFamilyInstance<TFamilyId extends string, TSchemaIR> extends FamilyInstance<TFamilyId> {
146
150
  validateContract(contractJson: unknown): Contract;
147
151
  verify(options: {
148
152
  readonly driver: ControlDriverInstance<TFamilyId, string>;
@@ -236,7 +240,7 @@ declare function extractCodecLookup(descriptors: ReadonlyArray<Pick<ComponentMet
236
240
  declare function createControlStack<TFamilyId extends string, TTargetId extends string>(input: CreateControlStackInput<TFamilyId, TTargetId>): ControlStack<TFamilyId, TTargetId>;
237
241
  //#endregion
238
242
  //#region src/control-descriptors.d.ts
239
- interface ControlFamilyDescriptor<TFamilyId extends string, TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>> extends FamilyDescriptor<TFamilyId> {
243
+ interface ControlFamilyDescriptor<TFamilyId extends string, TFamilyInstance extends ControlFamilyInstance<TFamilyId, unknown> = ControlFamilyInstance<TFamilyId, unknown>> extends FamilyDescriptor<TFamilyId> {
240
244
  readonly emission: EmissionSpi;
241
245
  create<TTargetId extends string>(stack: ControlStack<TFamilyId, TTargetId>): TFamilyInstance;
242
246
  }
@@ -434,7 +438,7 @@ interface MigrationRunner<TFamilyId extends string = string, TTargetId extends s
434
438
  * @template TTargetId - The target ID (e.g., 'postgres', 'mysql')
435
439
  * @template TFamilyInstance - The family instance type (e.g., SqlControlFamilyInstance)
436
440
  */
437
- interface TargetMigrationsCapability<TFamilyId extends string = string, TTargetId extends string = string, TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>> {
441
+ interface TargetMigrationsCapability<TFamilyId extends string = string, TTargetId extends string = string, TFamilyInstance extends ControlFamilyInstance<TFamilyId, unknown> = ControlFamilyInstance<TFamilyId, unknown>> {
438
442
  createPlanner(family: TFamilyInstance): MigrationPlanner<TFamilyId, TTargetId>;
439
443
  createRunner(family: TFamilyInstance): MigrationRunner<TFamilyId, TTargetId>;
440
444
  /**
@@ -458,75 +462,26 @@ interface TargetMigrationsCapability<TFamilyId extends string = string, TTargetI
458
462
  *
459
463
  * Families can optionally project their family-specific Schema IR into this
460
464
  * core view via the `toSchemaView` method on `FamilyInstance`.
461
- *
462
- * ## Example: SQL Family Mapping
463
- *
464
- * For the SQL family, `SqlSchemaIR` can be mapped to `CoreSchemaView` as follows:
465
- *
466
- * ```ts
467
- * // SqlSchemaIR structure:
468
- * // {
469
- * // tables: { user: { columns: {...}, primaryKey: {...}, ... }, ... },
470
- * // dependencies: [{ id: 'postgres.extension.vector' }],
471
- * // annotations: {...}
472
- * // }
473
- *
474
- * // CoreSchemaView mapping:
475
- * // {
476
- * // root: {
477
- * // kind: 'root',
478
- * // id: 'sql-schema',
479
- * // label: 'sql schema (tables: 2)',
480
- * // children: [
481
- * // {
482
- * // kind: 'entity',
483
- * // id: 'table-user',
484
- * // label: 'table user',
485
- * // meta: { primaryKey: ['id'], ... },
486
- * // children: [
487
- * // {
488
- * // kind: 'field',
489
- * // id: 'column-id',
490
- * // label: 'id: int4 (pg/int4@1, not null)',
491
- * // meta: { nativeType: 'int4', codecId: 'pg/int4@1', nullable: false, ... }
492
- * // },
493
- * // {
494
- * // kind: 'index',
495
- * // id: 'index-user-email',
496
- * // label: 'index user_email_unique',
497
- * // meta: { columns: ['email'], unique: true, ... }
498
- * // }
499
- * // ]
500
- * // },
501
- * // {
502
- * // kind: 'dependency',
503
- * // id: 'dependency-postgres.extension.pgvector',
504
- * // label: 'pgvector extension is enabled',
505
- * // meta: { ... }
506
- * // }
507
- * // ]
508
- * // }
509
- * // }
510
- * ```
511
- *
512
- * This mapping demonstrates that the core view types are expressive enough
513
- * to represent SQL schemas without being SQL-specific.
514
- */
515
- /**
516
- * Node kinds for schema tree nodes.
517
- * Designed to be generic enough for SQL, document, KV, and future families.
518
465
  */
519
466
  type SchemaNodeKind = 'root' | 'namespace' | 'collection' | 'entity' | 'field' | 'index' | 'dependency';
520
- /**
521
- * A node in the schema tree.
522
- * Tree-shaped structure good for Command Tree-style CLI output.
523
- */
524
- interface SchemaTreeNode {
467
+ interface SchemaTreeVisitor<R> {
468
+ visit(node: SchemaTreeNode): R;
469
+ }
470
+ interface SchemaTreeNodeOptions {
471
+ readonly kind: SchemaNodeKind;
472
+ readonly id: string;
473
+ readonly label: string;
474
+ readonly meta?: Record<string, unknown>;
475
+ readonly children?: readonly SchemaTreeNode[];
476
+ }
477
+ declare class SchemaTreeNode {
525
478
  readonly kind: SchemaNodeKind;
526
479
  readonly id: string;
527
480
  readonly label: string;
528
481
  readonly meta?: Record<string, unknown>;
529
482
  readonly children?: readonly SchemaTreeNode[];
483
+ constructor(options: SchemaTreeNodeOptions);
484
+ accept<R>(visitor: SchemaTreeVisitor<R>): R;
530
485
  }
531
486
  /**
532
487
  * Core schema view providing a family-agnostic tree representation of a schema.
@@ -537,14 +492,14 @@ interface CoreSchemaView {
537
492
  }
538
493
  //#endregion
539
494
  //#region src/control-capabilities.d.ts
540
- interface MigratableTargetDescriptor<TFamilyId extends string, TTargetId extends string, TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>> extends ControlTargetDescriptor<TFamilyId, TTargetId> {
495
+ interface MigratableTargetDescriptor<TFamilyId extends string, TTargetId extends string, TFamilyInstance extends ControlFamilyInstance<TFamilyId, unknown> = ControlFamilyInstance<TFamilyId, unknown>> extends ControlTargetDescriptor<TFamilyId, TTargetId> {
541
496
  readonly migrations: TargetMigrationsCapability<TFamilyId, TTargetId, TFamilyInstance>;
542
497
  }
543
498
  declare function hasMigrations<TFamilyId extends string, TTargetId extends string>(target: ControlTargetDescriptor<TFamilyId, TTargetId>): target is MigratableTargetDescriptor<TFamilyId, TTargetId>;
544
499
  interface SchemaViewCapable<TSchemaIR = unknown> {
545
500
  toSchemaView(schema: TSchemaIR): CoreSchemaView;
546
501
  }
547
- declare function hasSchemaView<TFamilyId extends string>(instance: ControlFamilyInstance<TFamilyId>): instance is ControlFamilyInstance<TFamilyId> & SchemaViewCapable;
502
+ declare function hasSchemaView<TFamilyId extends string, TSchemaIR>(instance: ControlFamilyInstance<TFamilyId, TSchemaIR>): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & SchemaViewCapable<TSchemaIR>;
548
503
  //#endregion
549
- export { type AssembledAuthoringContributions, type ControlAdapterDescriptor, type ControlAdapterInstance, type ControlDriverDescriptor, type ControlDriverInstance, type ControlExtensionDescriptor, type ControlExtensionInstance, type ControlFamilyDescriptor, type ControlFamilyInstance, type ControlStack, type ControlTargetDescriptor, type ControlTargetInstance, type CoreSchemaView, type CreateControlStackInput, type EmitContractResult, type IntrospectSchemaResult, type MigratableTargetDescriptor, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerFailureResult, type MigrationPlannerResult, type MigrationPlannerSuccessResult, type MigrationRunner, type MigrationRunnerExecutionChecks, type MigrationRunnerFailure, type MigrationRunnerResult, type MigrationRunnerSuccessValue, type OperationContext, type SchemaIssue, type SchemaNodeKind, type SchemaTreeNode, type SchemaVerificationNode, type SchemaViewCapable, type SignDatabaseResult, type TargetMigrationsCapability, type VerifyDatabaseResult, type VerifyDatabaseSchemaResult, assembleAuthoringContributions, assertUniqueCodecOwner, createControlStack, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractOperationTypeImports, extractQueryOperationTypeImports, hasMigrations, hasSchemaView };
504
+ export { type AssembledAuthoringContributions, type ControlAdapterDescriptor, type ControlAdapterInstance, type ControlDriverDescriptor, type ControlDriverInstance, type ControlExtensionDescriptor, type ControlExtensionInstance, type ControlFamilyDescriptor, type ControlFamilyInstance, type ControlStack, type ControlTargetDescriptor, type ControlTargetInstance, type CoreSchemaView, type CreateControlStackInput, type EmitContractResult, type IntrospectSchemaResult, type MigratableTargetDescriptor, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerFailureResult, type MigrationPlannerResult, type MigrationPlannerSuccessResult, type MigrationRunner, type MigrationRunnerExecutionChecks, type MigrationRunnerFailure, type MigrationRunnerResult, type MigrationRunnerSuccessValue, type OperationContext, type SchemaIssue, type SchemaNodeKind, SchemaTreeNode, type SchemaTreeNodeOptions, type SchemaTreeVisitor, type SchemaVerificationNode, type SchemaViewCapable, type SignDatabaseResult, type TargetMigrationsCapability, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_SCHEMA_FAILURE, VERIFY_CODE_TARGET_MISMATCH, type VerifyDatabaseResult, type VerifyDatabaseSchemaResult, assembleAuthoringContributions, assertUniqueCodecOwner, createControlStack, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractOperationTypeImports, extractQueryOperationTypeImports, hasMigrations, hasSchemaView };
550
505
  //# sourceMappingURL=control.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.d.mts","names":[],"sources":["../src/control-result-types.ts","../src/control-instances.ts","../src/control-stack.ts","../src/control-descriptors.ts","../src/control-migration-types.ts","../src/control-schema-view.ts","../src/control-capabilities.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"control.d.mts","names":[],"sources":["../src/control-result-types.ts","../src/control-instances.ts","../src/control-stack.ts","../src/control-descriptors.ts","../src/control-migration-types.ts","../src/control-schema-view.ts","../src/control-capabilities.ts"],"sourcesContent":[],"mappings":"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"}
package/dist/control.mjs CHANGED
@@ -6,6 +6,34 @@ function hasSchemaView(instance) {
6
6
  return "toSchemaView" in instance && typeof instance["toSchemaView"] === "function";
7
7
  }
8
8
 
9
+ //#endregion
10
+ //#region src/control-result-types.ts
11
+ const VERIFY_CODE_MARKER_MISSING = "PN-RUN-3001";
12
+ const VERIFY_CODE_HASH_MISMATCH = "PN-RUN-3002";
13
+ const VERIFY_CODE_TARGET_MISMATCH = "PN-RUN-3003";
14
+ const VERIFY_CODE_SCHEMA_FAILURE = "PN-RUN-3010";
15
+
16
+ //#endregion
17
+ //#region src/control-schema-view.ts
18
+ var SchemaTreeNode = class {
19
+ kind;
20
+ id;
21
+ label;
22
+ meta;
23
+ children;
24
+ constructor(options) {
25
+ this.kind = options.kind;
26
+ this.id = options.id;
27
+ this.label = options.label;
28
+ if (options.meta !== void 0) this.meta = options.meta;
29
+ if (options.children !== void 0) this.children = options.children;
30
+ Object.freeze(this);
31
+ }
32
+ accept(visitor) {
33
+ return visitor.visit(this);
34
+ }
35
+ };
36
+
9
37
  //#endregion
10
38
  //#region src/control-stack.ts
11
39
  function addUniqueId(ids, seen, id) {
@@ -136,5 +164,5 @@ function createControlStack(input) {
136
164
  }
137
165
 
138
166
  //#endregion
139
- export { assembleAuthoringContributions, assertUniqueCodecOwner, createControlStack, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractOperationTypeImports, extractQueryOperationTypeImports, hasMigrations, hasSchemaView };
167
+ export { SchemaTreeNode, VERIFY_CODE_HASH_MISMATCH, VERIFY_CODE_MARKER_MISSING, VERIFY_CODE_SCHEMA_FAILURE, VERIFY_CODE_TARGET_MISMATCH, assembleAuthoringContributions, assertUniqueCodecOwner, createControlStack, extractCodecLookup, extractCodecTypeImports, extractComponentIds, extractOperationTypeImports, extractQueryOperationTypeImports, hasMigrations, hasSchemaView };
140
168
  //# sourceMappingURL=control.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.mjs","names":["imports: TypesImportSpec[]","ids: string[]"],"sources":["../src/control-capabilities.ts","../src/control-stack.ts"],"sourcesContent":["import type { ControlTargetDescriptor } from './control-descriptors';\nimport type { ControlFamilyInstance } from './control-instances';\nimport type { TargetMigrationsCapability } from './control-migration-types';\nimport type { CoreSchemaView } from './control-schema-view';\n\nexport interface MigratableTargetDescriptor<\n TFamilyId extends string,\n TTargetId extends string,\n TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>,\n> extends ControlTargetDescriptor<TFamilyId, TTargetId> {\n readonly migrations: TargetMigrationsCapability<TFamilyId, TTargetId, TFamilyInstance>;\n}\n\nexport function hasMigrations<TFamilyId extends string, TTargetId extends string>(\n target: ControlTargetDescriptor<TFamilyId, TTargetId>,\n): target is MigratableTargetDescriptor<TFamilyId, TTargetId> {\n return 'migrations' in target && !!(target as Record<string, unknown>)['migrations'];\n}\n\nexport interface SchemaViewCapable<TSchemaIR = unknown> {\n toSchemaView(schema: TSchemaIR): CoreSchemaView;\n}\n\nexport function hasSchemaView<TFamilyId extends string>(\n instance: ControlFamilyInstance<TFamilyId>,\n): instance is ControlFamilyInstance<TFamilyId> & SchemaViewCapable {\n return (\n 'toSchemaView' in instance &&\n typeof (instance as Record<string, unknown>)['toSchemaView'] === 'function'\n );\n}\n","import type { CodecLookup } from './codec-types';\nimport type {\n ControlAdapterDescriptor,\n ControlDriverDescriptor,\n ControlExtensionDescriptor,\n ControlFamilyDescriptor,\n ControlTargetDescriptor,\n} from './control-descriptors';\nimport type {\n AuthoringContributions,\n AuthoringFieldNamespace,\n AuthoringFieldPresetDescriptor,\n AuthoringTypeConstructorDescriptor,\n AuthoringTypeNamespace,\n} from './framework-authoring';\nimport type { ComponentMetadata } from './framework-components';\nimport type { TypesImportSpec } from './types-import-spec';\n\nexport interface AssembledAuthoringContributions {\n readonly field: AuthoringFieldNamespace;\n readonly type: AuthoringTypeNamespace;\n}\n\nexport interface ControlStack<\n TFamilyId extends string = string,\n TTargetId extends string = string,\n> {\n readonly family: ControlFamilyDescriptor<TFamilyId>;\n readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;\n readonly adapter?: ControlAdapterDescriptor<TFamilyId, TTargetId> | undefined;\n readonly driver?: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;\n readonly extensionPacks: readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[];\n\n readonly codecTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly operationTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly queryOperationTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly extensionIds: ReadonlyArray<string>;\n readonly codecLookup: CodecLookup;\n readonly authoringContributions: AssembledAuthoringContributions;\n}\n\nexport interface CreateControlStackInput<\n TFamilyId extends string = string,\n TTargetId extends string = string,\n> {\n readonly family: ControlFamilyDescriptor<TFamilyId>;\n readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;\n readonly adapter?: ControlAdapterDescriptor<TFamilyId, TTargetId> | undefined;\n readonly driver?: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;\n readonly extensionPacks?:\n | ReadonlyArray<ControlExtensionDescriptor<TFamilyId, TTargetId>>\n | undefined;\n}\n\nfunction addUniqueId(ids: string[], seen: Set<string>, id: string): void {\n if (!seen.has(id)) {\n ids.push(id);\n seen.add(id);\n }\n}\n\nexport function assertUniqueCodecOwner(options: {\n readonly codecId: string;\n readonly owners: Map<string, string>;\n readonly descriptorId: string;\n readonly entityLabel: string;\n readonly entityOwnershipLabel: string;\n}): void {\n const existingOwner = options.owners.get(options.codecId);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate ${options.entityLabel} for codecId \"${options.codecId}\". ` +\n `Descriptor \"${options.descriptorId}\" conflicts with \"${existingOwner}\". ` +\n `Each codecId can only have one ${options.entityOwnershipLabel}.`,\n );\n }\n}\n\nexport function extractCodecTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const codecTypes = descriptor.types?.codecTypes;\n if (codecTypes?.import) {\n imports.push(codecTypes.import);\n }\n if (codecTypes?.typeImports) {\n imports.push(...codecTypes.typeImports);\n }\n }\n\n return imports;\n}\n\nexport function extractOperationTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const operationTypes = descriptor.types?.operationTypes;\n if (operationTypes?.import) {\n imports.push(operationTypes.import);\n }\n }\n\n return imports;\n}\n\nexport function extractQueryOperationTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const queryOperationTypes = descriptor.types?.queryOperationTypes;\n if (queryOperationTypes?.import) {\n imports.push(queryOperationTypes.import);\n }\n }\n\n return imports;\n}\n\nexport function extractComponentIds(\n family: { readonly id: string },\n target: { readonly id: string },\n adapter: { readonly id: string } | undefined,\n extensions: ReadonlyArray<{ readonly id: string }>,\n): ReadonlyArray<string> {\n const ids: string[] = [];\n const seen = new Set<string>();\n\n addUniqueId(ids, seen, family.id);\n addUniqueId(ids, seen, target.id);\n if (adapter) {\n addUniqueId(ids, seen, adapter.id);\n }\n\n for (const ext of extensions) {\n addUniqueId(ids, seen, ext.id);\n }\n\n return ids;\n}\n\nfunction isTypeConstructorDescriptor(value: unknown): value is AuthoringTypeConstructorDescriptor {\n return (\n typeof value === 'object' &&\n value !== null &&\n (value as { kind?: unknown }).kind === 'typeConstructor'\n );\n}\n\nfunction isFieldPresetDescriptor(value: unknown): value is AuthoringFieldPresetDescriptor {\n return (\n typeof value === 'object' &&\n value !== null &&\n (value as { kind?: unknown }).kind === 'fieldPreset'\n );\n}\n\nfunction mergeAuthoringNamespaces(\n target: Record<string, unknown>,\n source: Record<string, unknown>,\n path: readonly string[],\n leafGuard: (value: unknown) => boolean,\n label: string,\n): void {\n const assertSafePath = (currentPath: readonly string[]) => {\n const blockedSegment = currentPath.find(\n (segment) => segment === '__proto__' || segment === 'constructor' || segment === 'prototype',\n );\n if (blockedSegment) {\n throw new Error(\n `Invalid authoring ${label} helper \"${currentPath.join('.')}\". Helper path segments must not use \"${blockedSegment}\".`,\n );\n }\n };\n\n for (const [key, sourceValue] of Object.entries(source)) {\n const currentPath = [...path, key];\n assertSafePath(currentPath);\n const hasExistingValue = Object.hasOwn(target, key);\n const existingValue = hasExistingValue ? target[key] : undefined;\n\n if (!hasExistingValue) {\n target[key] = sourceValue;\n continue;\n }\n\n const existingIsLeaf = leafGuard(existingValue);\n const sourceIsLeaf = leafGuard(sourceValue);\n\n if (existingIsLeaf || sourceIsLeaf) {\n throw new Error(\n `Duplicate authoring ${label} helper \"${currentPath.join('.')}\". Descriptor contributions must be unique across composed components.`,\n );\n }\n\n mergeAuthoringNamespaces(\n existingValue as Record<string, unknown>,\n sourceValue as Record<string, unknown>,\n currentPath,\n leafGuard,\n label,\n );\n }\n}\n\nexport function assembleAuthoringContributions(\n descriptors: ReadonlyArray<{ readonly authoring?: AuthoringContributions }>,\n): AssembledAuthoringContributions {\n const field = {} as Record<string, unknown>;\n const type = {} as Record<string, unknown>;\n\n for (const descriptor of descriptors) {\n if (descriptor.authoring?.field) {\n mergeAuthoringNamespaces(\n field,\n descriptor.authoring.field,\n [],\n isFieldPresetDescriptor,\n 'field',\n );\n }\n if (!descriptor.authoring?.type) {\n continue;\n }\n mergeAuthoringNamespaces(\n type,\n descriptor.authoring.type,\n [],\n isTypeConstructorDescriptor,\n 'type',\n );\n }\n\n return {\n field: field as AuthoringFieldNamespace,\n type: type as AuthoringTypeNamespace,\n };\n}\n\nexport function extractCodecLookup(\n descriptors: ReadonlyArray<Pick<ComponentMetadata & { id?: string }, 'types' | 'id'>>,\n): CodecLookup {\n const byId = new Map<string, import('./codec-types').Codec>();\n const owners = new Map<string, string>();\n for (const descriptor of descriptors) {\n const codecInstances = descriptor.types?.codecTypes?.codecInstances;\n if (!codecInstances) continue;\n const descriptorId = descriptor.id ?? '<unknown>';\n for (const codec of codecInstances) {\n assertUniqueCodecOwner({\n codecId: codec.id,\n owners,\n descriptorId,\n entityLabel: 'codec instance',\n entityOwnershipLabel: 'codec instance provider',\n });\n owners.set(codec.id, descriptorId);\n byId.set(codec.id, codec);\n }\n }\n return { get: (id) => byId.get(id) };\n}\n\nexport function createControlStack<TFamilyId extends string, TTargetId extends string>(\n input: CreateControlStackInput<TFamilyId, TTargetId>,\n): ControlStack<TFamilyId, TTargetId> {\n const { family, target, adapter, driver, extensionPacks = [] } = input;\n\n const allDescriptors = [family, target, ...(adapter ? [adapter] : []), ...extensionPacks];\n\n return {\n family,\n target,\n adapter,\n driver,\n extensionPacks: extensionPacks as readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[],\n\n codecTypeImports: extractCodecTypeImports(allDescriptors),\n operationTypeImports: extractOperationTypeImports(allDescriptors),\n queryOperationTypeImports: extractQueryOperationTypeImports(allDescriptors),\n extensionIds: extractComponentIds(family, target, adapter, extensionPacks),\n codecLookup: extractCodecLookup(allDescriptors),\n authoringContributions: assembleAuthoringContributions(allDescriptors),\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"control.mjs","names":["imports: TypesImportSpec[]","ids: string[]"],"sources":["../src/control-capabilities.ts","../src/control-result-types.ts","../src/control-schema-view.ts","../src/control-stack.ts"],"sourcesContent":["import type { ControlTargetDescriptor } from './control-descriptors';\nimport type { ControlFamilyInstance } from './control-instances';\nimport type { TargetMigrationsCapability } from './control-migration-types';\nimport type { CoreSchemaView } from './control-schema-view';\n\nexport interface MigratableTargetDescriptor<\n TFamilyId extends string,\n TTargetId extends string,\n TFamilyInstance extends ControlFamilyInstance<TFamilyId, unknown> = ControlFamilyInstance<\n TFamilyId,\n unknown\n >,\n> extends ControlTargetDescriptor<TFamilyId, TTargetId> {\n readonly migrations: TargetMigrationsCapability<TFamilyId, TTargetId, TFamilyInstance>;\n}\n\nexport function hasMigrations<TFamilyId extends string, TTargetId extends string>(\n target: ControlTargetDescriptor<TFamilyId, TTargetId>,\n): target is MigratableTargetDescriptor<TFamilyId, TTargetId> {\n return 'migrations' in target && !!(target as Record<string, unknown>)['migrations'];\n}\n\nexport interface SchemaViewCapable<TSchemaIR = unknown> {\n toSchemaView(schema: TSchemaIR): CoreSchemaView;\n}\n\nexport function hasSchemaView<TFamilyId extends string, TSchemaIR>(\n instance: ControlFamilyInstance<TFamilyId, TSchemaIR>,\n): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & SchemaViewCapable<TSchemaIR> {\n return (\n 'toSchemaView' in instance &&\n typeof (instance as Record<string, unknown>)['toSchemaView'] === 'function'\n );\n}\n","export const VERIFY_CODE_MARKER_MISSING = 'PN-RUN-3001';\nexport const VERIFY_CODE_HASH_MISMATCH = 'PN-RUN-3002';\nexport const VERIFY_CODE_TARGET_MISMATCH = 'PN-RUN-3003';\nexport const VERIFY_CODE_SCHEMA_FAILURE = 'PN-RUN-3010';\n\nexport interface OperationContext {\n readonly contractPath?: string;\n readonly configPath?: string;\n readonly meta?: Readonly<Record<string, unknown>>;\n}\n\nexport interface VerifyDatabaseResult {\n readonly ok: boolean;\n readonly code?: string;\n readonly summary: string;\n readonly contract: {\n readonly storageHash: string;\n readonly profileHash?: string;\n };\n readonly marker?: {\n readonly storageHash?: string;\n readonly profileHash?: string;\n };\n readonly target: {\n readonly expected: string;\n readonly actual?: string;\n };\n readonly missingCodecs?: readonly string[];\n readonly codecCoverageSkipped?: boolean;\n readonly meta?: {\n readonly configPath?: string;\n readonly contractPath: string;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n\nexport interface SchemaIssue {\n readonly kind:\n | 'missing_table'\n | 'missing_column'\n | 'extra_table'\n | 'extra_column'\n | 'extra_primary_key'\n | 'extra_foreign_key'\n | 'extra_unique_constraint'\n | 'extra_index'\n | 'extra_validator'\n | 'type_mismatch'\n | 'type_missing'\n | 'type_values_mismatch'\n | 'nullability_mismatch'\n | 'primary_key_mismatch'\n | 'foreign_key_mismatch'\n | 'unique_constraint_mismatch'\n | 'index_mismatch'\n | 'dependency_missing'\n | 'default_missing'\n | 'default_mismatch'\n | 'extra_default';\n readonly table?: string;\n readonly column?: string;\n readonly indexOrConstraint?: string;\n readonly typeName?: string;\n readonly expected?: string;\n readonly actual?: string;\n readonly message: string;\n}\n\nexport interface SchemaVerificationNode {\n readonly status: 'pass' | 'warn' | 'fail';\n readonly kind: string;\n readonly name: string;\n readonly contractPath: string;\n readonly code: string;\n readonly message: string;\n readonly expected: unknown;\n readonly actual: unknown;\n readonly children: readonly SchemaVerificationNode[];\n}\n\nexport interface VerifyDatabaseSchemaResult {\n readonly ok: boolean;\n readonly code?: string;\n readonly summary: string;\n readonly contract: {\n readonly storageHash: string;\n readonly profileHash?: string;\n };\n readonly target: {\n readonly expected: string;\n readonly actual?: string;\n };\n readonly schema: {\n readonly issues: readonly SchemaIssue[];\n readonly root: SchemaVerificationNode;\n readonly counts: {\n readonly pass: number;\n readonly warn: number;\n readonly fail: number;\n readonly totalNodes: number;\n };\n };\n readonly meta?: {\n readonly configPath?: string;\n readonly contractPath?: string;\n readonly strict: boolean;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n\nexport interface EmitContractResult {\n readonly contractJson: string;\n readonly contractDts: string;\n readonly storageHash: string;\n readonly executionHash?: string;\n readonly profileHash: string;\n}\n\nexport interface IntrospectSchemaResult<TSchemaIR> {\n readonly ok: true;\n readonly summary: string;\n readonly target: {\n readonly familyId: string;\n readonly id: string;\n };\n readonly schema: TSchemaIR;\n readonly meta?: {\n readonly configPath?: string;\n readonly dbUrl?: string;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n\nexport interface SignDatabaseResult {\n readonly ok: boolean;\n readonly summary: string;\n readonly contract: {\n readonly storageHash: string;\n readonly profileHash?: string;\n };\n readonly target: {\n readonly expected: string;\n readonly actual?: string;\n };\n readonly marker: {\n readonly created: boolean;\n readonly updated: boolean;\n readonly previous?: {\n readonly storageHash?: string;\n readonly profileHash?: string;\n };\n };\n readonly meta?: {\n readonly configPath?: string;\n readonly contractPath: string;\n };\n readonly timings: {\n readonly total: number;\n };\n}\n","/**\n * Core schema view types for family-agnostic schema visualization.\n *\n * These types provide a minimal, generic, tree-shaped representation of schemas\n * across families, designed for CLI visualization and lightweight tooling.\n *\n * Families can optionally project their family-specific Schema IR into this\n * core view via the `toSchemaView` method on `FamilyInstance`.\n */\n\nexport type SchemaNodeKind =\n | 'root'\n | 'namespace'\n | 'collection'\n | 'entity'\n | 'field'\n | 'index'\n | 'dependency';\n\nexport interface SchemaTreeVisitor<R> {\n visit(node: SchemaTreeNode): R;\n}\n\nexport interface SchemaTreeNodeOptions {\n readonly kind: SchemaNodeKind;\n readonly id: string;\n readonly label: string;\n readonly meta?: Record<string, unknown>;\n readonly children?: readonly SchemaTreeNode[];\n}\n\nexport class SchemaTreeNode {\n readonly kind: SchemaNodeKind;\n readonly id: string;\n readonly label: string;\n readonly meta?: Record<string, unknown>;\n readonly children?: readonly SchemaTreeNode[];\n\n constructor(options: SchemaTreeNodeOptions) {\n this.kind = options.kind;\n this.id = options.id;\n this.label = options.label;\n if (options.meta !== undefined) this.meta = options.meta;\n if (options.children !== undefined) this.children = options.children;\n Object.freeze(this);\n }\n\n accept<R>(visitor: SchemaTreeVisitor<R>): R {\n return visitor.visit(this);\n }\n}\n\n/**\n * Core schema view providing a family-agnostic tree representation of a schema.\n * Used by CLI and cross-family tooling for visualization.\n */\nexport interface CoreSchemaView {\n readonly root: SchemaTreeNode;\n}\n","import type { CodecLookup } from './codec-types';\nimport type {\n ControlAdapterDescriptor,\n ControlDriverDescriptor,\n ControlExtensionDescriptor,\n ControlFamilyDescriptor,\n ControlTargetDescriptor,\n} from './control-descriptors';\nimport type {\n AuthoringContributions,\n AuthoringFieldNamespace,\n AuthoringFieldPresetDescriptor,\n AuthoringTypeConstructorDescriptor,\n AuthoringTypeNamespace,\n} from './framework-authoring';\nimport type { ComponentMetadata } from './framework-components';\nimport type { TypesImportSpec } from './types-import-spec';\n\nexport interface AssembledAuthoringContributions {\n readonly field: AuthoringFieldNamespace;\n readonly type: AuthoringTypeNamespace;\n}\n\nexport interface ControlStack<\n TFamilyId extends string = string,\n TTargetId extends string = string,\n> {\n readonly family: ControlFamilyDescriptor<TFamilyId>;\n readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;\n readonly adapter?: ControlAdapterDescriptor<TFamilyId, TTargetId> | undefined;\n readonly driver?: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;\n readonly extensionPacks: readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[];\n\n readonly codecTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly operationTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly queryOperationTypeImports: ReadonlyArray<TypesImportSpec>;\n readonly extensionIds: ReadonlyArray<string>;\n readonly codecLookup: CodecLookup;\n readonly authoringContributions: AssembledAuthoringContributions;\n}\n\nexport interface CreateControlStackInput<\n TFamilyId extends string = string,\n TTargetId extends string = string,\n> {\n readonly family: ControlFamilyDescriptor<TFamilyId>;\n readonly target: ControlTargetDescriptor<TFamilyId, TTargetId>;\n readonly adapter?: ControlAdapterDescriptor<TFamilyId, TTargetId> | undefined;\n readonly driver?: ControlDriverDescriptor<TFamilyId, TTargetId> | undefined;\n readonly extensionPacks?:\n | ReadonlyArray<ControlExtensionDescriptor<TFamilyId, TTargetId>>\n | undefined;\n}\n\nfunction addUniqueId(ids: string[], seen: Set<string>, id: string): void {\n if (!seen.has(id)) {\n ids.push(id);\n seen.add(id);\n }\n}\n\nexport function assertUniqueCodecOwner(options: {\n readonly codecId: string;\n readonly owners: Map<string, string>;\n readonly descriptorId: string;\n readonly entityLabel: string;\n readonly entityOwnershipLabel: string;\n}): void {\n const existingOwner = options.owners.get(options.codecId);\n if (existingOwner !== undefined) {\n throw new Error(\n `Duplicate ${options.entityLabel} for codecId \"${options.codecId}\". ` +\n `Descriptor \"${options.descriptorId}\" conflicts with \"${existingOwner}\". ` +\n `Each codecId can only have one ${options.entityOwnershipLabel}.`,\n );\n }\n}\n\nexport function extractCodecTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const codecTypes = descriptor.types?.codecTypes;\n if (codecTypes?.import) {\n imports.push(codecTypes.import);\n }\n if (codecTypes?.typeImports) {\n imports.push(...codecTypes.typeImports);\n }\n }\n\n return imports;\n}\n\nexport function extractOperationTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const operationTypes = descriptor.types?.operationTypes;\n if (operationTypes?.import) {\n imports.push(operationTypes.import);\n }\n }\n\n return imports;\n}\n\nexport function extractQueryOperationTypeImports(\n descriptors: ReadonlyArray<Pick<ComponentMetadata, 'types'>>,\n): ReadonlyArray<TypesImportSpec> {\n const imports: TypesImportSpec[] = [];\n\n for (const descriptor of descriptors) {\n const queryOperationTypes = descriptor.types?.queryOperationTypes;\n if (queryOperationTypes?.import) {\n imports.push(queryOperationTypes.import);\n }\n }\n\n return imports;\n}\n\nexport function extractComponentIds(\n family: { readonly id: string },\n target: { readonly id: string },\n adapter: { readonly id: string } | undefined,\n extensions: ReadonlyArray<{ readonly id: string }>,\n): ReadonlyArray<string> {\n const ids: string[] = [];\n const seen = new Set<string>();\n\n addUniqueId(ids, seen, family.id);\n addUniqueId(ids, seen, target.id);\n if (adapter) {\n addUniqueId(ids, seen, adapter.id);\n }\n\n for (const ext of extensions) {\n addUniqueId(ids, seen, ext.id);\n }\n\n return ids;\n}\n\nfunction isTypeConstructorDescriptor(value: unknown): value is AuthoringTypeConstructorDescriptor {\n return (\n typeof value === 'object' &&\n value !== null &&\n (value as { kind?: unknown }).kind === 'typeConstructor'\n );\n}\n\nfunction isFieldPresetDescriptor(value: unknown): value is AuthoringFieldPresetDescriptor {\n return (\n typeof value === 'object' &&\n value !== null &&\n (value as { kind?: unknown }).kind === 'fieldPreset'\n );\n}\n\nfunction mergeAuthoringNamespaces(\n target: Record<string, unknown>,\n source: Record<string, unknown>,\n path: readonly string[],\n leafGuard: (value: unknown) => boolean,\n label: string,\n): void {\n const assertSafePath = (currentPath: readonly string[]) => {\n const blockedSegment = currentPath.find(\n (segment) => segment === '__proto__' || segment === 'constructor' || segment === 'prototype',\n );\n if (blockedSegment) {\n throw new Error(\n `Invalid authoring ${label} helper \"${currentPath.join('.')}\". Helper path segments must not use \"${blockedSegment}\".`,\n );\n }\n };\n\n for (const [key, sourceValue] of Object.entries(source)) {\n const currentPath = [...path, key];\n assertSafePath(currentPath);\n const hasExistingValue = Object.hasOwn(target, key);\n const existingValue = hasExistingValue ? target[key] : undefined;\n\n if (!hasExistingValue) {\n target[key] = sourceValue;\n continue;\n }\n\n const existingIsLeaf = leafGuard(existingValue);\n const sourceIsLeaf = leafGuard(sourceValue);\n\n if (existingIsLeaf || sourceIsLeaf) {\n throw new Error(\n `Duplicate authoring ${label} helper \"${currentPath.join('.')}\". Descriptor contributions must be unique across composed components.`,\n );\n }\n\n mergeAuthoringNamespaces(\n existingValue as Record<string, unknown>,\n sourceValue as Record<string, unknown>,\n currentPath,\n leafGuard,\n label,\n );\n }\n}\n\nexport function assembleAuthoringContributions(\n descriptors: ReadonlyArray<{ readonly authoring?: AuthoringContributions }>,\n): AssembledAuthoringContributions {\n const field = {} as Record<string, unknown>;\n const type = {} as Record<string, unknown>;\n\n for (const descriptor of descriptors) {\n if (descriptor.authoring?.field) {\n mergeAuthoringNamespaces(\n field,\n descriptor.authoring.field,\n [],\n isFieldPresetDescriptor,\n 'field',\n );\n }\n if (!descriptor.authoring?.type) {\n continue;\n }\n mergeAuthoringNamespaces(\n type,\n descriptor.authoring.type,\n [],\n isTypeConstructorDescriptor,\n 'type',\n );\n }\n\n return {\n field: field as AuthoringFieldNamespace,\n type: type as AuthoringTypeNamespace,\n };\n}\n\nexport function extractCodecLookup(\n descriptors: ReadonlyArray<Pick<ComponentMetadata & { id?: string }, 'types' | 'id'>>,\n): CodecLookup {\n const byId = new Map<string, import('./codec-types').Codec>();\n const owners = new Map<string, string>();\n for (const descriptor of descriptors) {\n const codecInstances = descriptor.types?.codecTypes?.codecInstances;\n if (!codecInstances) continue;\n const descriptorId = descriptor.id ?? '<unknown>';\n for (const codec of codecInstances) {\n assertUniqueCodecOwner({\n codecId: codec.id,\n owners,\n descriptorId,\n entityLabel: 'codec instance',\n entityOwnershipLabel: 'codec instance provider',\n });\n owners.set(codec.id, descriptorId);\n byId.set(codec.id, codec);\n }\n }\n return { get: (id) => byId.get(id) };\n}\n\nexport function createControlStack<TFamilyId extends string, TTargetId extends string>(\n input: CreateControlStackInput<TFamilyId, TTargetId>,\n): ControlStack<TFamilyId, TTargetId> {\n const { family, target, adapter, driver, extensionPacks = [] } = input;\n\n const allDescriptors = [family, target, ...(adapter ? [adapter] : []), ...extensionPacks];\n\n return {\n family,\n target,\n adapter,\n driver,\n extensionPacks: extensionPacks as readonly ControlExtensionDescriptor<TFamilyId, TTargetId>[],\n\n codecTypeImports: extractCodecTypeImports(allDescriptors),\n operationTypeImports: extractOperationTypeImports(allDescriptors),\n queryOperationTypeImports: extractQueryOperationTypeImports(allDescriptors),\n extensionIds: extractComponentIds(family, target, adapter, extensionPacks),\n codecLookup: extractCodecLookup(allDescriptors),\n authoringContributions: assembleAuthoringContributions(allDescriptors),\n };\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"framework-authoring-Dt-7rbX9.d.mts","names":[],"sources":["../src/framework-authoring.ts"],"sourcesContent":[],"mappings":";KAEY,eAAA;EAAA,SAAA,IAAA,EAAA,KAAe;EAOf,SAAA,KAAA,EAAA,MAAA;EAKR,SAAA,IAAA,CAAA,EAAA,SAAA,MAAA,EAAA;EACS,SAAA,OAAA,CAAA,EATQ,sBASR;CACiB;AAAsB,KAPxC,sBAAA,GAOwC,MAAA,GAAA,MAAA,GAAA,OAAA,GAAA,IAAA,GAFhD,eAEgD,GAAA,SADvC,sBACuC,EAAA,GAAA;EAE1C,UAAA,GAAA,EAAA,MAAA,CAAA,EAFoB,sBAEa;AAK3C,CAAA;UALU,iCAAA,CAKgC;EAYE,SAAA,IAAA,CAAA,EAAA,MAAA;EAAf,SAAA,QAAA,CAAA,EAAA,OAAA;;AAIZ,KAhBL,2BAAA,GAA8B,iCAgBG,GAAA,CAAA;EAEtB,SAAA,IAAA,EAAA,QAAA;CACgB,GAAA;EAAf,SAAA,IAAA,EAAA,QAAA;EAAM,SAAA,OAAA,CAAA,EAAA,OAAA;EAGb,SAAA,OAAA,CAAA,EAAA,MAAA;EAMA,SAAA,OAAA,CAAA,EAAA,MAAA;AAKjB,CAAA,GAAiB;EAKL,SAAA,IAAA,EAAA,aAAA;AAIZ,CAAA,GAAiB;EAEI,SAAA,IAAA,EAAA,QAAA;EACS,SAAA,UAAA,EAjCD,MAiCC,CAAA,MAAA,EAjCc,2BAiCd,CAAA;CAHsB,CAAA;AAA4B,UA1B/D,4BAAA,CA0B+D;EAQ/D,SAAA,OAAA,EAAA,MAAA;EAML,SAAA,UAAA,EAtCW,sBAuCI;EAGf,SAAA,UAAA,CAAA,EAzCY,MAyCW,CAAA,MAAA,EAzCI,sBA0CZ,CAAA;AAG3B;AAKgB,UA/CC,kCAAA,CA+C0D;EAkB3D,SAAA,IAAA,EAAA,iBAAA;EAYA,SAAA,IAAA,CAAA,EAAA,SA3EW,2BA6Ef,EAAA;EAUI,SAAA,MAAA,EAtFG,4BAuFP;AA2GZ;AAuFgB,UAtRC,qCAAA,CAuRH;EAUE,SAAA,IAAA,EAAA,SAAA;kBA/RE;;UAGD,sCAAA;;uBAEM;;KAGX,8BAAA,GACR,wCACA;UAEa,0BAAA,SAAmC;;qBAE/B;8BACS;;;;UAKb,8BAAA;;2BAEU;mBACR;;KAGP,sBAAA;2BACe,qCAAqC;;KAGpD,uBAAA;2BACe,iCAAiC;;UAG3C,sBAAA;kBACC;mBACC;;iBAGH,iBAAA,2BAA4C;iBAkB5C,oCAAA,2BAEJ;iBAUI,gCAAA,2BAEJ;iBAUI,6BAAA,WACJ;iBA2GI,gCAAA,2CAEQ;iBAqFR,mCAAA,aACF;;;wBAKU;;iBAKR,+BAAA,aACF;;;;0BAMY"}
1
+ {"version":3,"file":"framework-authoring-Dt-7rbX9.d.mts","names":[],"sources":["../src/framework-authoring.ts"],"sourcesContent":[],"mappings":";KAEY,eAAA;EAAA,SAAA,IAAA,EAAA,KAAe;EAOf,SAAA,KAAA,EAAA,MAAA;EAKR,SAAA,IAAA,CAAA,EAAA,SAAA,MAAA,EAAA;EACS,SAAA,OAAA,CAAA,EATQ,sBASR;CACiB;AAAsB,KAPxC,sBAAA,GAOwC,MAAA,GAAA,MAAA,GAAA,OAAA,GAAA,IAAA,GAFhD,eAEgD,GAAA,SADvC,sBACuC,EAAA,GAAA;EAE1C,UAAA,GAAA,EAAA,MAAA,CAAA,EAFoB,sBAEa;AAK3C,CAAA;UALU,iCAAA,CAKgC;EAYE,SAAA,IAAA,CAAA,EAAA,MAAA;EAAf,SAAA,QAAA,CAAA,EAAA,OAAA;;AAIZ,KAhBL,2BAAA,GAA8B,iCAgBG,GAAA,CAAA;EAEtB,SAAA,IAAA,EAAA,QAAA;CACgB,GAAA;EAAf,SAAA,IAAA,EAAA,QAAA;EAAM,SAAA,OAAA,CAAA,EAAA,OAAA;EAGb,SAAA,OAAA,CAAA,EAAA,MAAA;EAMA,SAAA,OAAA,CAAA,EAAA,MAAA;AAKjB,CAAA,GAAiB;EAKL,SAAA,IAAA,EAAA,aAAA;AAIZ,CAAA,GAAiB;EAEI,SAAA,IAAA,EAAA,QAAA;EACS,SAAA,UAAA,EAjCD,MAiCC,CAAA,MAAA,EAjCc,2BAiCd,CAAA;CAHsB,CAAA;AAA4B,UA1B/D,4BAAA,CA0B+D;EAQ/D,SAAA,OAAA,EAAA,MAAA;EAML,SAAA,UAAA,EAtCW,sBAuCI;EAGf,SAAA,UAAA,CAAA,EAzCY,MAyCW,CAAA,MAAA,EAzCI,sBA0CZ,CAAA;AAG3B;AAKgB,UA/CC,kCAAA,CA+C2C;EAkB5C,SAAA,IAAA,EAAA,iBAAA;EAYA,SAAA,IAAA,CAAA,EAAA,SA3EW,2BA6Ef,EAAA;EAUI,SAAA,MAAA,EAtFG,4BAuFP;AA2GZ;AAuFgB,UAtRC,qCAAA,CAuRH;EAUE,SAAA,IAAA,EAAA,SAAA;kBA/RE;;UAGD,sCAAA;;uBAEM;;KAGX,8BAAA,GACR,wCACA;UAEa,0BAAA,SAAmC;;qBAE/B;8BACS;;;;UAKb,8BAAA;;2BAEU;mBACR;;KAGP,sBAAA;2BACe,qCAAqC;;KAGpD,uBAAA;2BACe,iCAAiC;;UAG3C,sBAAA;kBACC;mBACC;;iBAGH,iBAAA,2BAA4C;iBAkB5C,oCAAA,2BAEJ;iBAUI,gCAAA,2BAEJ;iBAUI,6BAAA,WACJ;iBA2GI,gCAAA,2CAEQ;iBAqFR,mCAAA,aACF;;;wBAKU;;iBAKR,+BAAA,aACF;;;;0BAMY"}
package/package.json CHANGED
@@ -1,20 +1,20 @@
1
1
  {
2
2
  "name": "@prisma-next/framework-components",
3
- "version": "0.3.0-dev.154",
3
+ "version": "0.3.0-dev.156",
4
4
  "type": "module",
5
5
  "sideEffects": false,
6
6
  "description": "Framework component types, assembly logic, and stack creation for Prisma Next",
7
7
  "dependencies": {
8
- "@prisma-next/contract": "0.3.0-dev.154",
9
- "@prisma-next/utils": "0.3.0-dev.154",
10
- "@prisma-next/operations": "0.3.0-dev.154"
8
+ "@prisma-next/operations": "0.3.0-dev.156",
9
+ "@prisma-next/utils": "0.3.0-dev.156",
10
+ "@prisma-next/contract": "0.3.0-dev.156"
11
11
  },
12
12
  "devDependencies": {
13
13
  "tsdown": "0.18.4",
14
14
  "typescript": "5.9.3",
15
15
  "vitest": "4.0.17",
16
- "@prisma-next/tsconfig": "0.0.0",
17
- "@prisma-next/tsdown": "0.0.0"
16
+ "@prisma-next/tsdown": "0.0.0",
17
+ "@prisma-next/tsconfig": "0.0.0"
18
18
  },
19
19
  "files": [
20
20
  "dist",
@@ -6,7 +6,10 @@ import type { CoreSchemaView } from './control-schema-view';
6
6
  export interface MigratableTargetDescriptor<
7
7
  TFamilyId extends string,
8
8
  TTargetId extends string,
9
- TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>,
9
+ TFamilyInstance extends ControlFamilyInstance<TFamilyId, unknown> = ControlFamilyInstance<
10
+ TFamilyId,
11
+ unknown
12
+ >,
10
13
  > extends ControlTargetDescriptor<TFamilyId, TTargetId> {
11
14
  readonly migrations: TargetMigrationsCapability<TFamilyId, TTargetId, TFamilyInstance>;
12
15
  }
@@ -21,9 +24,9 @@ export interface SchemaViewCapable<TSchemaIR = unknown> {
21
24
  toSchemaView(schema: TSchemaIR): CoreSchemaView;
22
25
  }
23
26
 
24
- export function hasSchemaView<TFamilyId extends string>(
25
- instance: ControlFamilyInstance<TFamilyId>,
26
- ): instance is ControlFamilyInstance<TFamilyId> & SchemaViewCapable {
27
+ export function hasSchemaView<TFamilyId extends string, TSchemaIR>(
28
+ instance: ControlFamilyInstance<TFamilyId, TSchemaIR>,
29
+ ): instance is ControlFamilyInstance<TFamilyId, TSchemaIR> & SchemaViewCapable<TSchemaIR> {
27
30
  return (
28
31
  'toSchemaView' in instance &&
29
32
  typeof (instance as Record<string, unknown>)['toSchemaView'] === 'function'
@@ -17,7 +17,10 @@ import type {
17
17
 
18
18
  export interface ControlFamilyDescriptor<
19
19
  TFamilyId extends string,
20
- TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>,
20
+ TFamilyInstance extends ControlFamilyInstance<TFamilyId, unknown> = ControlFamilyInstance<
21
+ TFamilyId,
22
+ unknown
23
+ >,
21
24
  > extends FamilyDescriptor<TFamilyId> {
22
25
  readonly emission: EmissionSpi;
23
26
  create<TTargetId extends string>(stack: ControlStack<TFamilyId, TTargetId>): TFamilyInstance;
@@ -13,7 +13,7 @@ import type {
13
13
  TargetInstance,
14
14
  } from './framework-components';
15
15
 
16
- export interface ControlFamilyInstance<TFamilyId extends string, TSchemaIR = unknown>
16
+ export interface ControlFamilyInstance<TFamilyId extends string, TSchemaIR>
17
17
  extends FamilyInstance<TFamilyId> {
18
18
  validateContract(contractJson: unknown): Contract;
19
19
 
@@ -253,7 +253,10 @@ export interface MigrationRunner<
253
253
  export interface TargetMigrationsCapability<
254
254
  TFamilyId extends string = string,
255
255
  TTargetId extends string = string,
256
- TFamilyInstance extends ControlFamilyInstance<TFamilyId> = ControlFamilyInstance<TFamilyId>,
256
+ TFamilyInstance extends ControlFamilyInstance<TFamilyId, unknown> = ControlFamilyInstance<
257
+ TFamilyId,
258
+ unknown
259
+ >,
257
260
  > {
258
261
  createPlanner(family: TFamilyInstance): MigrationPlanner<TFamilyId, TTargetId>;
259
262
  createRunner(family: TFamilyInstance): MigrationRunner<TFamilyId, TTargetId>;
@@ -1,3 +1,8 @@
1
+ export const VERIFY_CODE_MARKER_MISSING = 'PN-RUN-3001';
2
+ export const VERIFY_CODE_HASH_MISMATCH = 'PN-RUN-3002';
3
+ export const VERIFY_CODE_TARGET_MISMATCH = 'PN-RUN-3003';
4
+ export const VERIFY_CODE_SCHEMA_FAILURE = 'PN-RUN-3010';
5
+
1
6
  export interface OperationContext {
2
7
  readonly contractPath?: string;
3
8
  readonly configPath?: string;
@@ -41,6 +46,7 @@ export interface SchemaIssue {
41
46
  | 'extra_foreign_key'
42
47
  | 'extra_unique_constraint'
43
48
  | 'extra_index'
49
+ | 'extra_validator'
44
50
  | 'type_mismatch'
45
51
  | 'type_missing'
46
52
  | 'type_values_mismatch'
@@ -6,65 +6,8 @@
6
6
  *
7
7
  * Families can optionally project their family-specific Schema IR into this
8
8
  * core view via the `toSchemaView` method on `FamilyInstance`.
9
- *
10
- * ## Example: SQL Family Mapping
11
- *
12
- * For the SQL family, `SqlSchemaIR` can be mapped to `CoreSchemaView` as follows:
13
- *
14
- * ```ts
15
- * // SqlSchemaIR structure:
16
- * // {
17
- * // tables: { user: { columns: {...}, primaryKey: {...}, ... }, ... },
18
- * // dependencies: [{ id: 'postgres.extension.vector' }],
19
- * // annotations: {...}
20
- * // }
21
- *
22
- * // CoreSchemaView mapping:
23
- * // {
24
- * // root: {
25
- * // kind: 'root',
26
- * // id: 'sql-schema',
27
- * // label: 'sql schema (tables: 2)',
28
- * // children: [
29
- * // {
30
- * // kind: 'entity',
31
- * // id: 'table-user',
32
- * // label: 'table user',
33
- * // meta: { primaryKey: ['id'], ... },
34
- * // children: [
35
- * // {
36
- * // kind: 'field',
37
- * // id: 'column-id',
38
- * // label: 'id: int4 (pg/int4@1, not null)',
39
- * // meta: { nativeType: 'int4', codecId: 'pg/int4@1', nullable: false, ... }
40
- * // },
41
- * // {
42
- * // kind: 'index',
43
- * // id: 'index-user-email',
44
- * // label: 'index user_email_unique',
45
- * // meta: { columns: ['email'], unique: true, ... }
46
- * // }
47
- * // ]
48
- * // },
49
- * // {
50
- * // kind: 'dependency',
51
- * // id: 'dependency-postgres.extension.pgvector',
52
- * // label: 'pgvector extension is enabled',
53
- * // meta: { ... }
54
- * // }
55
- * // ]
56
- * // }
57
- * // }
58
- * ```
59
- *
60
- * This mapping demonstrates that the core view types are expressive enough
61
- * to represent SQL schemas without being SQL-specific.
62
9
  */
63
10
 
64
- /**
65
- * Node kinds for schema tree nodes.
66
- * Designed to be generic enough for SQL, document, KV, and future families.
67
- */
68
11
  export type SchemaNodeKind =
69
12
  | 'root'
70
13
  | 'namespace'
@@ -74,16 +17,37 @@ export type SchemaNodeKind =
74
17
  | 'index'
75
18
  | 'dependency';
76
19
 
77
- /**
78
- * A node in the schema tree.
79
- * Tree-shaped structure good for Command Tree-style CLI output.
80
- */
81
- export interface SchemaTreeNode {
20
+ export interface SchemaTreeVisitor<R> {
21
+ visit(node: SchemaTreeNode): R;
22
+ }
23
+
24
+ export interface SchemaTreeNodeOptions {
25
+ readonly kind: SchemaNodeKind;
26
+ readonly id: string;
27
+ readonly label: string;
28
+ readonly meta?: Record<string, unknown>;
29
+ readonly children?: readonly SchemaTreeNode[];
30
+ }
31
+
32
+ export class SchemaTreeNode {
82
33
  readonly kind: SchemaNodeKind;
83
34
  readonly id: string;
84
35
  readonly label: string;
85
36
  readonly meta?: Record<string, unknown>;
86
37
  readonly children?: readonly SchemaTreeNode[];
38
+
39
+ constructor(options: SchemaTreeNodeOptions) {
40
+ this.kind = options.kind;
41
+ this.id = options.id;
42
+ this.label = options.label;
43
+ if (options.meta !== undefined) this.meta = options.meta;
44
+ if (options.children !== undefined) this.children = options.children;
45
+ Object.freeze(this);
46
+ }
47
+
48
+ accept<R>(visitor: SchemaTreeVisitor<R>): R {
49
+ return visitor.visit(this);
50
+ }
87
51
  }
88
52
 
89
53
  /**
@@ -41,7 +41,19 @@ export type {
41
41
  VerifyDatabaseResult,
42
42
  VerifyDatabaseSchemaResult,
43
43
  } from '../control-result-types';
44
- export type { CoreSchemaView, SchemaNodeKind, SchemaTreeNode } from '../control-schema-view';
44
+ export {
45
+ VERIFY_CODE_HASH_MISMATCH,
46
+ VERIFY_CODE_MARKER_MISSING,
47
+ VERIFY_CODE_SCHEMA_FAILURE,
48
+ VERIFY_CODE_TARGET_MISMATCH,
49
+ } from '../control-result-types';
50
+ export type {
51
+ CoreSchemaView,
52
+ SchemaNodeKind,
53
+ SchemaTreeNodeOptions,
54
+ SchemaTreeVisitor,
55
+ } from '../control-schema-view';
56
+ export { SchemaTreeNode } from '../control-schema-view';
45
57
  export type {
46
58
  AssembledAuthoringContributions,
47
59
  ControlStack,