@prisma-next/family-sql 0.13.0-dev.1 → 0.13.0-dev.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/control.d.mts +18 -29
- package/dist/control.d.mts.map +1 -1
- package/dist/control.mjs +7 -6
- package/dist/control.mjs.map +1 -1
- package/dist/schema-verify.mjs +1 -1
- package/dist/{verify-sql-schema-DlAgBiT_.mjs → verify-sql-schema-Dns8QyxY.mjs} +24 -10
- package/dist/verify-sql-schema-Dns8QyxY.mjs.map +1 -0
- package/package.json +21 -21
- package/src/core/migrations/contract-to-schema-ir.ts +58 -44
- package/src/core/psl-contract-infer/postgres-type-map.ts +18 -9
- package/src/exports/control.ts +1 -1
- package/dist/verify-sql-schema-DlAgBiT_.mjs.map +0 -1
package/dist/control.d.mts
CHANGED
|
@@ -272,30 +272,19 @@ type NativeTypeExpander = (input: {
|
|
|
272
272
|
*/
|
|
273
273
|
type DefaultRenderer = (def: ColumnDefault, column: StorageColumn) => string;
|
|
274
274
|
/**
|
|
275
|
-
* Target-supplied callback that
|
|
276
|
-
*
|
|
275
|
+
* Target-supplied callback that resolves a contract namespace to the live
|
|
276
|
+
* database schema its enums are stored under.
|
|
277
277
|
*
|
|
278
|
-
*
|
|
279
|
-
* namespaces holding an enum with
|
|
280
|
-
* native type
|
|
281
|
-
*
|
|
282
|
-
*
|
|
283
|
-
*
|
|
284
|
-
*
|
|
285
|
-
* target
|
|
286
|
-
* still emits keys that match the target's read side exactly.
|
|
287
|
-
*/
|
|
288
|
-
type EnumStorageKeyResolver = (storage: SqlStorage, namespaceId: string, nativeType: string) => string;
|
|
289
|
-
/**
|
|
290
|
-
* Resolves a `ValueSetRef` to its permitted values from the contract storage.
|
|
291
|
-
*
|
|
292
|
-
* Throws when the referenced namespace or value-set is absent — this indicates
|
|
293
|
-
* the contract was built incorrectly (the check and the value-set must be
|
|
294
|
-
* co-emitted by the lowering step). Used by `convertCheck` (schema-IR
|
|
295
|
-
* projection), `verifyCheckConstraints` (verification), and
|
|
296
|
-
* `checkConstraintPlanCallStrategy` (migration planning) so all three agree on
|
|
297
|
-
* the resolved values and the error behavior on a missing reference.
|
|
278
|
+
* The projected enum annotations are nested by schema
|
|
279
|
+
* (`storageTypes[schema][nativeType]`) so two namespaces holding an enum with
|
|
280
|
+
* the same native type resolve to distinct live-database types. Mapping a
|
|
281
|
+
* namespace to its DDL schema is target-specific (Postgres schemas;
|
|
282
|
+
* SQLite/MySQL differ), so the target injects it here rather than the family
|
|
283
|
+
* importing a concrete `ddlSchemaName`. This keeps the family layer
|
|
284
|
+
* target-agnostic while the projection nests under the same schema the
|
|
285
|
+
* target's read side (`readExistingEnumValues`) looks up.
|
|
298
286
|
*/
|
|
287
|
+
type EnumNamespaceSchemaResolver = (storage: SqlStorage, namespaceId: string) => string;
|
|
299
288
|
declare function resolveValueSetValues(ref: {
|
|
300
289
|
readonly namespaceId: string;
|
|
301
290
|
readonly name: string;
|
|
@@ -315,13 +304,13 @@ interface ContractToSchemaIROptions {
|
|
|
315
304
|
readonly expandNativeType?: NativeTypeExpander;
|
|
316
305
|
readonly renderDefault?: DefaultRenderer;
|
|
317
306
|
/**
|
|
318
|
-
* Target-supplied resolver
|
|
319
|
-
*
|
|
320
|
-
*
|
|
321
|
-
* `readExistingEnumValues` lookup. Targets without
|
|
322
|
-
* storage (SQLite) omit it; enums are absent there.
|
|
307
|
+
* Target-supplied resolver mapping a namespace to the live database schema
|
|
308
|
+
* its enums are stored under. When provided (Postgres), namespace-scoped
|
|
309
|
+
* enums are nested by that schema in `enumTypes` so the projection matches
|
|
310
|
+
* the target's `readExistingEnumValues` lookup. Targets without
|
|
311
|
+
* schema-scoped enum storage (SQLite) omit it; enums are absent there.
|
|
323
312
|
*/
|
|
324
|
-
readonly
|
|
313
|
+
readonly resolveEnumNamespaceSchema?: EnumNamespaceSchemaResolver;
|
|
325
314
|
}
|
|
326
315
|
/**
|
|
327
316
|
* Converts a `Contract` to `SqlSchemaIR`.
|
|
@@ -562,5 +551,5 @@ declare function temporalAuthoringPresets<const CodecId extends string, const Na
|
|
|
562
551
|
//#region src/exports/control.d.ts
|
|
563
552
|
declare const _default: SqlFamilyDescriptor;
|
|
564
553
|
//#endregion
|
|
565
|
-
export { type CodecControlHooks, type ContractToSchemaIROptions, type ControlPolicySubject, type CreateSqlMigrationPlanOptions, type DefaultRenderer, type
|
|
554
|
+
export { type CodecControlHooks, type ContractToSchemaIROptions, type ControlPolicySubject, type CreateSqlMigrationPlanOptions, type DefaultRenderer, type EnumNamespaceSchemaResolver, type ExpandNativeTypeInput, type FieldEvent, type FieldEventContext, INIT_ADDITIVE_POLICY, type MigrationOperationClass, type MigrationOperationPolicy, type MigrationPlan, type MigrationPlanOperation, type MigrationPlanner, type MigrationPlannerConflict, type MigrationPlannerResult, type NativeTypeExpander, type PlanFieldEventOperationsOptions, type ResolveIdentityValueInput, type SqlControlAdapterDescriptor, type SqlControlExtensionDescriptor, type SqlControlFamilyInstance, type SqlControlTargetDescriptor, type SqlMigrationPlan, type SqlMigrationPlanContractInfo, type SqlMigrationPlanOperation, type SqlMigrationPlanOperationStep, type SqlMigrationPlanOperationTarget, type SqlMigrationPlanner, type SqlMigrationPlannerPlanOptions, type SqlMigrationRunner, type SqlMigrationRunnerErrorCode, type SqlMigrationRunnerExecuteCallbacks, type SqlMigrationRunnerExecuteOptions, type SqlMigrationRunnerFailure, type SqlMigrationRunnerResult, type SqlMigrationRunnerSuccessValue, type SqlPlanTargetDetails, type SqlPlannerConflict, type SqlPlannerConflictKind, type SqlPlannerConflictLocation, type SqlPlannerFailureResult, type SqlPlannerResult, type SqlPlannerSuccessResult, type StorageTypePlanResult, type TargetMigrationsCapability, assembleAuthoringContributions, contractToSchemaIR, controlPolicyForCall, createMigrationPlan, _default as default, detectDestructiveChanges, extractCodecControlHooks, partitionCallsByControlPolicy, partitionIssuesByControlPolicy, planFieldEventOperations, plannerFailure, plannerSuccess, resolveValueSetValues, runnerFailure, runnerSuccess, temporalAuthoringPresets, timestampNowControlDescriptor };
|
|
566
555
|
//# sourceMappingURL=control.d.mts.map
|
package/dist/control.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/control-descriptor.ts","../src/core/assembly.ts","../src/core/migrations/contract-to-schema-ir.ts","../src/core/migrations/control-policy.ts","../src/core/migrations/field-event-planner.ts","../src/core/migrations/plan-helpers.ts","../src/core/migrations/policies.ts","../src/core/timestamp-now-generator.ts","../src/exports/control.ts"],"mappings":";;;;;;;;;;cAUa,mBAAA,YACA,uBAAA,QAA+B,wBAAA;EAAA,SAEjC,IAAA;EAAA,SACA,EAAA;EAAA,SACA,QAAA;EAAA,SACA,OAAA;EAAA,SACA,QAAA,EAAU,WAAA;EAAA,SACV,SAAA;IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAKT,MAAA,2BACE,KAAA,EAAO,YAAA,QAAoB,SAAA,IAC1B,wBAAA;AAAA;;;iBCHW,wBAAA,CACd,WAAA,EAAa,aAAA,CAAc,8BAAA,mBAC1B,GAAA,SAAY,iBAAA;;;;;;;;;ADdf;;;;KE+BY,kBAAA,IAAsB,KAAA;EAAA,SACvB,UAAA;EAAA,SACA,OAAA;EAAA,SACA,UAAA,GAAa,MAAM;AAAA;;;;;;;;;;KAYlB,eAAA,IAAmB,GAAA,EAAK,aAAA,EAAe,MAAA,EAAQ,aAAa
|
|
1
|
+
{"version":3,"file":"control.d.mts","names":[],"sources":["../src/core/control-descriptor.ts","../src/core/assembly.ts","../src/core/migrations/contract-to-schema-ir.ts","../src/core/migrations/control-policy.ts","../src/core/migrations/field-event-planner.ts","../src/core/migrations/plan-helpers.ts","../src/core/migrations/policies.ts","../src/core/timestamp-now-generator.ts","../src/exports/control.ts"],"mappings":"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"}
|
package/dist/control.mjs
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as sqlFamilyAuthoringFieldPresets, t as sqlFamilyAuthoringTypes } from "./authoring-type-constructors-D4lQ-qpj.mjs";
|
|
2
2
|
import { t as SqlContractSerializer } from "./sql-contract-serializer-CY7qnms7.mjs";
|
|
3
|
-
import { a as contractToSchemaIR, c as extractCodecControlHooks, o as detectDestructiveChanges, s as resolveValueSetValues, t as verifySqlSchema } from "./verify-sql-schema-
|
|
3
|
+
import { a as contractToSchemaIR, c as extractCodecControlHooks, o as detectDestructiveChanges, s as resolveValueSetValues, t as verifySqlSchema } from "./verify-sql-schema-Dns8QyxY.mjs";
|
|
4
4
|
import { t as collectSupportedCodecTypeIds } from "./verify-C-G0obRm.mjs";
|
|
5
5
|
import { n as temporalAuthoringPresets, r as timestampNowControlDescriptor } from "./timestamp-now-generator-CloimujU.mjs";
|
|
6
6
|
import { sqlEmission } from "@prisma-next/sql-contract-emitter";
|
|
@@ -387,14 +387,15 @@ function createPostgresTypeMap(enumTypeNames) {
|
|
|
387
387
|
} };
|
|
388
388
|
}
|
|
389
389
|
function extractEnumInfo(annotations) {
|
|
390
|
-
const
|
|
390
|
+
const enumTypes = (annotations?.["pg"])?.["enumTypes"];
|
|
391
391
|
const typeNames = /* @__PURE__ */ new Set();
|
|
392
392
|
const definitions = /* @__PURE__ */ new Map();
|
|
393
|
-
if (
|
|
394
|
-
for (const
|
|
395
|
-
|
|
393
|
+
if (enumTypes) {
|
|
394
|
+
for (const bySchema of Object.values(enumTypes)) for (const typeInstance of Object.values(bySchema)) if (typeInstance.codecId === ENUM_CODEC_ID) {
|
|
395
|
+
const nativeType = typeInstance.nativeType;
|
|
396
|
+
typeNames.add(nativeType);
|
|
396
397
|
const values = typeInstance.typeParams?.["values"];
|
|
397
|
-
if (Array.isArray(values)) definitions.set(
|
|
398
|
+
if (Array.isArray(values) && values.every((v) => typeof v === "string")) definitions.set(nativeType, values);
|
|
398
399
|
}
|
|
399
400
|
}
|
|
400
401
|
return {
|