@prisma/orm-postgres 8.0.0-rc.1-dev.29 → 8.0.0-rc.1-dev.31
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.
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PG_ENUM_CODEC_ID } from "@prisma/orm-target-postgres/target/codec-ids";
|
|
2
2
|
import postgresPackRef from "@prisma/orm-target-postgres/target/pack";
|
|
3
3
|
import { PostgresNativeEnum, RlsPolicyOperation } from "@prisma/orm-target-postgres/target/types";
|
|
4
|
-
import { ComposedAuthoringHelpers, ComposedAuthoringHelpers as ComposedAuthoringHelpers$1, ContractDefinition, ContractInput, ContractInput as ContractInput$1, ContractModelBuilder, EnumMember, EnumTypeHandle, EnumTypeHandle as EnumTypeHandle$1, FieldNode, ForeignKeyNode, IndexNode, MergeEnums, ModelLike, ModelNode, PrimaryKeyNode, RelationNode, ScalarFieldBuilder, ScalarFieldBuilder as ScalarFieldBuilder$1, UniqueConstraintNode, buildBoundContract, buildSqlContractFromDefinition, field, member, model, rel } from "@prisma/orm-family-sql/contract-ts/contract-builder";
|
|
4
|
+
import { CheckNode, ComposedAuthoringHelpers, ComposedAuthoringHelpers as ComposedAuthoringHelpers$1, ContractDefinition, ContractInput, ContractInput as ContractInput$1, ContractModelBuilder, EnumMember, EnumTypeHandle, EnumTypeHandle as EnumTypeHandle$1, FieldNode, ForeignKeyNode, IndexNode, MergeEnums, ModelLike, ModelNode, PrimaryKeyNode, RelationNode, ScalarFieldBuilder, ScalarFieldBuilder as ScalarFieldBuilder$1, UniqueConstraintNode, buildBoundContract, buildSqlContractFromDefinition, check, field, member, model, rel } from "@prisma/orm-family-sql/contract-ts/contract-builder";
|
|
5
5
|
import sqlFamilyPack from "@prisma/orm-family-sql/family/pack";
|
|
6
6
|
import "@prisma/orm-framework/components/authoring";
|
|
7
7
|
import { ColumnTypeDescriptor } from "@prisma/orm-framework/components/codec";
|
|
@@ -529,5 +529,5 @@ declare const pg: {
|
|
|
529
529
|
readonly enum: typeof pgEnumColumn;
|
|
530
530
|
};
|
|
531
531
|
//#endregion
|
|
532
|
-
export { type ComposedAuthoringHelpers, type ContractDefinition, type ContractInput, type ContractModelBuilder, type EnumMember, type EnumTypeHandle, type FieldNode, type ForeignKeyNode, type IndexNode, type ModelNode, type NativeEnumHandle, type PrimaryKeyNode, type RelationNode, type RlsEnablementHandle, type RlsEntityHandle, type RlsPolicyHandle, type RlsRoleHandle, type RlsTargetModel, type RlsUsingPolicyDescriptor, type RlsUsingWithCheckPolicyDescriptor, type RlsWithCheckPolicyDescriptor, type ScalarFieldBuilder, type UniqueConstraintNode, buildSqlContractFromDefinition, defineContract, enumType, field, member, model, nativeEnum, pg, policyAll, policyDelete, policyInsert, policySelect, policyUpdate, rel, rlsEnabled, role };
|
|
532
|
+
export { type CheckNode, type ComposedAuthoringHelpers, type ContractDefinition, type ContractInput, type ContractModelBuilder, type EnumMember, type EnumTypeHandle, type FieldNode, type ForeignKeyNode, type IndexNode, type ModelNode, type NativeEnumHandle, type PrimaryKeyNode, type RelationNode, type RlsEnablementHandle, type RlsEntityHandle, type RlsPolicyHandle, type RlsRoleHandle, type RlsTargetModel, type RlsUsingPolicyDescriptor, type RlsUsingWithCheckPolicyDescriptor, type RlsWithCheckPolicyDescriptor, type ScalarFieldBuilder, type UniqueConstraintNode, buildSqlContractFromDefinition, check, defineContract, enumType, field, member, model, nativeEnum, pg, policyAll, policyDelete, policyInsert, policySelect, policyUpdate, rel, rlsEnabled, role };
|
|
533
533
|
//# sourceMappingURL=contract-builder.d.mts.map
|
|
@@ -3,7 +3,7 @@ import { PG_ENUM_CODEC_ID } from "@prisma/orm-target-postgres/target/codec-ids";
|
|
|
3
3
|
import postgresPackRef from "@prisma/orm-target-postgres/target/pack";
|
|
4
4
|
import { PostgresNativeEnum, postgresCreateNamespace } from "@prisma/orm-target-postgres/target/types";
|
|
5
5
|
import { ifDefined } from "@prisma/orm-framework/utils/defined";
|
|
6
|
-
import { bindEnumType, buildBoundContract, buildSqlContractFromDefinition, field, member, model, rel } from "@prisma/orm-family-sql/contract-ts/contract-builder";
|
|
6
|
+
import { bindEnumType, buildBoundContract, buildSqlContractFromDefinition, check, field, member, model, rel } from "@prisma/orm-family-sql/contract-ts/contract-builder";
|
|
7
7
|
import sqlFamilyPack from "@prisma/orm-family-sql/family/pack";
|
|
8
8
|
import { pgEnumDescriptor } from "@prisma/orm-target-postgres/target/codecs";
|
|
9
9
|
import { InternalError } from "@prisma/orm-framework/utils/internal-error";
|
|
@@ -227,6 +227,6 @@ function policyAll(model, descriptor) {
|
|
|
227
227
|
return buildPolicyHandle("all", model, descriptor);
|
|
228
228
|
}
|
|
229
229
|
//#endregion
|
|
230
|
-
export { buildSqlContractFromDefinition, defineContract, enumType, field, member, model, nativeEnum, pg, policyAll, policyDelete, policyInsert, policySelect, policyUpdate, rel, rlsEnabled, role };
|
|
230
|
+
export { buildSqlContractFromDefinition, check, defineContract, enumType, field, member, model, nativeEnum, pg, policyAll, policyDelete, policyInsert, policySelect, policyUpdate, rel, rlsEnabled, role };
|
|
231
231
|
|
|
232
232
|
//# sourceMappingURL=contract-builder.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract-builder.mjs","names":[],"sources":["../../../../3-extensions/postgres/dist/contract-builder.mjs"],"sourcesContent":["import { t as postgresError } from \"./errors-DfWK9xep.mjs\";\nimport { PG_ENUM_CODEC_ID } from \"@internal/target-postgres/codec-ids\";\nimport postgresPackRef from \"@internal/target-postgres/pack\";\nimport { PostgresNativeEnum, postgresCreateNamespace } from \"@internal/target-postgres/types\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { bindEnumType, buildBoundContract, buildSqlContractFromDefinition, field, member, model, rel } from \"@internal/sql-contract-ts/contract-builder\";\nimport sqlFamilyPack from \"@internal/family-sql/pack\";\nimport { pgEnumDescriptor } from \"@internal/target-postgres/codecs\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { POLICY_OPERATION_PREDICATES } from \"@internal/target-postgres/rls-canonicalize\";\n//#region src/contract/define-contract.ts\nfunction defineContract(definition, factory) {\n\tconst bound = {\n\t\t...definition,\n\t\tcreateNamespace: postgresCreateNamespace\n\t};\n\tif (factory !== void 0) return buildBoundContract(sqlFamilyPack, postgresPackRef, bound, factory);\n\treturn buildBoundContract(sqlFamilyPack, postgresPackRef, bound);\n}\n//#endregion\n//#region src/contract/enum-type.ts\n/**\n* The `enumType` authors call when building a Postgres contract (re-exported\n* from `@internal/postgres/contract-builder`).\n*\n* `bindEnumType` is the core, codec-agnostic `enumType` factory; calling it with\n* the Postgres pack's codec typemap fixes which member-value type each codec\n* permits, so `member()` values are checked against the column's codec at\n* authoring time: `pg/text@1` requires `string`, `pg/int4@1` requires `number`,\n* and a mismatch is a compile error. The core `enumType` can't know the codec\n* set, which is why the binding happens here, per target.\n*/\nconst enumType = bindEnumType();\n//#endregion\n//#region src/contract/native-enum.ts\nfunction buildNativeEnumHandle(name, typeName, members) {\n\tif (typeName.trim().length === 0) throw postgresError(\"CONTRACT.ENUM_INVALID\", `nativeEnum(\"${name}\"): the Postgres type name must be a non-empty string.`, {\n\t\tfix: \"Pass a non-empty Postgres type name to .map(typeName).\",\n\t\tmeta: {\n\t\t\tenumName: name,\n\t\t\treason: \"empty type name\"\n\t\t}\n\t});\n\treturn {\n\t\tentityKind: \"native_enum\",\n\t\tname,\n\t\ttypeName,\n\t\tmembers,\n\t\tentity: new PostgresNativeEnum({\n\t\t\ttypeName,\n\t\t\tmembers\n\t\t}),\n\t\tmap: (mappedTypeName) => buildNativeEnumHandle(name, mappedTypeName, members)\n\t};\n}\n/**\n* Declares a native Postgres enum type for use with {@link pg}'s `.enum()`\n* column helper. Mirrors PSL's `native_enum <Name> { … }` lowering\n* (`lowerNativeEnumFromBlock`): validates a non-empty, duplicate-free member\n* list and builds the same {@link PostgresNativeEnum} entity. Its value-set is\n* derived generically at contract-build time — the same\n* `deriveValueSetFromEntity` fold PSL's native enums go through — once\n* `pg.enum(handle)` lands the entity in the field's owning namespace.\n*\n* The first argument is the entity `name` (the `entries.native_enum` /\n* `entries.valueSet` key). The Postgres type name defaults to `name`; use\n* `.map(typeName)` to override it (PSL's `@@map`).\n*\n* A handle referenced by columns in N different namespaces materialises N\n* native enum types (one per namespace) — by design: a Postgres type lives in\n* exactly one schema, and PSL can't share a type across schemas either.\n*\n* @example\n* ```ts\n* // name === Postgres type name\n* const Role = nativeEnum('Role', 'user', 'admin');\n* // entity name `AalLevel`, Postgres type `aal_level` (Supabase's auth.aal_level)\n* const AalLevel = nativeEnum('AalLevel', 'aal1', 'aal2', 'aal3').map('aal_level');\n* model('Session', { fields: { aal: field.column(pg.enum(AalLevel)).optional() } });\n* ```\n*/\nfunction nativeEnum(name, ...members) {\n\tif (name.trim().length === 0) throw postgresError(\"CONTRACT.ENUM_INVALID\", \"nativeEnum(): name must be a non-empty string.\", {\n\t\tfix: \"Pass a non-empty entity name as the first argument to nativeEnum().\",\n\t\tmeta: {\n\t\t\tenumName: name,\n\t\t\treason: \"empty name\"\n\t\t}\n\t});\n\tif (members.length === 0) throw postgresError(\"CONTRACT.ENUM_INVALID\", `nativeEnum(\"${name}\"): must have at least one member.`, {\n\t\twhy: \"Postgres rejects CREATE TYPE ... AS ENUM () with no labels.\",\n\t\tfix: \"Declare at least one member value after the name.\",\n\t\tmeta: {\n\t\t\tenumName: name,\n\t\t\treason: \"zero members\"\n\t\t}\n\t});\n\tconst seenValues = /* @__PURE__ */ new Set();\n\tfor (const value of members) {\n\t\tif (seenValues.has(value)) throw postgresError(\"CONTRACT.ENUM_INVALID\", `nativeEnum(\"${name}\"): duplicate member value \"${value}\". Member values must be unique.`, {\n\t\t\tfix: \"Remove the duplicate member value.\",\n\t\t\tmeta: {\n\t\t\t\tenumName: name,\n\t\t\t\tmember: value,\n\t\t\t\treason: \"duplicate member value\"\n\t\t\t}\n\t\t});\n\t\tseenValues.add(value);\n\t}\n\treturn buildNativeEnumHandle(name, name, members);\n}\n/**\n* Builds the deferred column descriptor for `handle`: the bare Postgres type\n* name and `typeParams` come from `pgEnumDescriptor.columnFromEntity` (the same\n* authoring hook the PSL `pg.enum(Ref)` type constructor resolves through),\n* carrying `handle.entity` as the descriptor's `entityRef` keyed by the entity\n* `name` (not the Postgres type name — they differ when `.map()` was used).\n* Schema qualification and the storage `valueSet` ref are NOT computed here — a\n* `field.column(pg.enum(handle))` call runs before the enclosing `model(...)`\n* associates a namespace, so `buildSqlContractFromDefinition` resolves both\n* once the field's namespace is known.\n*/\nfunction pgEnumColumn(handle) {\n\tconst resolved = pgEnumDescriptor.columnFromEntity(handle.entity);\n\tif (resolved === void 0) throw new InternalError(`pg.enum(\"${handle.name}\"): handle.entity is not a PostgresNativeEnum. This is an authoring-surface bug — nativeEnum() must always produce one.`);\n\treturn {\n\t\tcodecId: PG_ENUM_CODEC_ID,\n\t\tnativeType: resolved.nativeType,\n\t\ttypeParams: resolved.typeParams,\n\t\tentityRef: {\n\t\t\tentityKind: handle.entityKind,\n\t\t\tentityName: handle.name,\n\t\t\tentity: handle.entity\n\t\t}\n\t};\n}\n/** Postgres-specific TS type-constructor namespace, mirroring the PSL `pg.` prefix. */\nconst pg = { enum: pgEnumColumn };\n//#endregion\n//#region src/contract/rls.ts\nfunction assertNonEmptyName(helper, name) {\n\tif (name.trim().length === 0) throw postgresError(\"CONTRACT.POLICY_INVALID\", `${helper}: name must be a non-empty string.`, {\n\t\tfix: \"Pass a non-empty policy name.\",\n\t\tmeta: {\n\t\t\tpolicyName: name,\n\t\t\treason: \"empty name\"\n\t\t}\n\t});\n}\n/** The user-facing helper name per operation, for runtime error messages. */\nconst HELPER_NAMES = {\n\tselect: \"policySelect\",\n\tinsert: \"policyInsert\",\n\tupdate: \"policyUpdate\",\n\tdelete: \"policyDelete\",\n\tall: \"policyAll\"\n};\nfunction buildPolicyHandle(operation, model, descriptor) {\n\tconst helper = HELPER_NAMES[operation];\n\tconst support = POLICY_OPERATION_PREDICATES[operation];\n\tassertNonEmptyName(`${helper}(\"${descriptor.name}\")`, descriptor.name);\n\tconst supported = support.using && support.withCheck ? \"`using` and `withCheck`\" : support.using ? \"`using` only\" : \"`withCheck` only\";\n\tconst rejectPredicate = (predicate) => {\n\t\tthrow postgresError(\"CONTRACT.POLICY_INVALID\", `${helper}: policy \"${descriptor.name}\" does not take a \\`${predicate}\\` predicate; the ${operation.toUpperCase()} operation uses ${supported}.`, {\n\t\t\tfix: `Use only the predicates the ${operation.toUpperCase()} operation supports: ${supported}.`,\n\t\t\tmeta: {\n\t\t\t\tpolicyName: descriptor.name,\n\t\t\t\treason: `unsupported \\`${predicate}\\` predicate`\n\t\t\t}\n\t\t});\n\t};\n\tif (descriptor.using !== void 0 && !support.using) rejectPredicate(\"using\");\n\tif (descriptor.withCheck !== void 0 && !support.withCheck) rejectPredicate(\"withCheck\");\n\tif (descriptor.using === void 0 && descriptor.withCheck === void 0) throw postgresError(\"CONTRACT.POLICY_INVALID\", `${helper}: policy \"${descriptor.name}\" requires at least one predicate; the ${operation.toUpperCase()} operation uses ${supported}.`, {\n\t\tfix: `Provide at least one predicate: ${supported}.`,\n\t\tmeta: {\n\t\t\tpolicyName: descriptor.name,\n\t\t\treason: \"no predicate given\"\n\t\t}\n\t});\n\treturn Object.freeze({\n\t\tentityKind: \"policy\",\n\t\toperation,\n\t\tname: descriptor.name,\n\t\trefs: Object.freeze({ target: model }),\n\t\troles: Object.freeze([...descriptor.roles]),\n\t\t...ifDefined(\"using\", descriptor.using),\n\t\t...ifDefined(\"withCheck\", descriptor.withCheck)\n\t});\n}\n/**\n* Declares a Postgres role by name, mirroring PSL's bare role identifiers.\n* Returns an inert handle: referenced in a policy's `roles` it contributes\n* the bare name; placed in the `entities` list it declares the role\n* (`entries.role`), making it subject to the existence verify.\n*/\nfunction role(name) {\n\tassertNonEmptyName(`role(\"${name}\")`, name);\n\treturn Object.freeze({\n\t\tentityKind: \"role\",\n\t\tname\n\t});\n}\n/**\n* Marks a model's table RLS-controlled, mirroring PSL's `@@rls`. The\n* enablement marker (never the policy set) drives `ENABLE`/`DISABLE ROW\n* LEVEL SECURITY` planning.\n*/\nfunction rlsEnabled(model) {\n\treturn Object.freeze({\n\t\tentityKind: \"rls\",\n\t\trefs: Object.freeze({ target: model })\n\t});\n}\n/** Authors a `FOR SELECT` policy (PSL `policy_select`): row visibility via `using`. */\nfunction policySelect(model, descriptor) {\n\treturn buildPolicyHandle(\"select\", model, descriptor);\n}\n/** Authors a `FOR INSERT` policy (PSL `policy_insert`): new-row validation via `withCheck`. */\nfunction policyInsert(model, descriptor) {\n\treturn buildPolicyHandle(\"insert\", model, descriptor);\n}\n/** Authors a `FOR UPDATE` policy (PSL `policy_update`): takes `using` and `withCheck`. */\nfunction policyUpdate(model, descriptor) {\n\treturn buildPolicyHandle(\"update\", model, descriptor);\n}\n/** Authors a `FOR DELETE` policy (PSL `policy_delete`): row eligibility via `using`. */\nfunction policyDelete(model, descriptor) {\n\treturn buildPolicyHandle(\"delete\", model, descriptor);\n}\n/** Authors a `FOR ALL` policy (PSL `policy_all`): takes `using` and `withCheck`. */\nfunction policyAll(model, descriptor) {\n\treturn buildPolicyHandle(\"all\", model, descriptor);\n}\n//#endregion\nexport { buildSqlContractFromDefinition, defineContract, enumType, field, member, model, nativeEnum, pg, policyAll, policyDelete, policyInsert, policySelect, policyUpdate, rel, rlsEnabled, role };\n\n//# sourceMappingURL=contract-builder.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"contract-builder.mjs","names":[],"sources":["../../../../3-extensions/postgres/dist/contract-builder.mjs"],"sourcesContent":["import { t as postgresError } from \"./errors-DfWK9xep.mjs\";\nimport { PG_ENUM_CODEC_ID } from \"@internal/target-postgres/codec-ids\";\nimport postgresPackRef from \"@internal/target-postgres/pack\";\nimport { PostgresNativeEnum, postgresCreateNamespace } from \"@internal/target-postgres/types\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { bindEnumType, buildBoundContract, buildSqlContractFromDefinition, check, field, member, model, rel } from \"@internal/sql-contract-ts/contract-builder\";\nimport sqlFamilyPack from \"@internal/family-sql/pack\";\nimport { pgEnumDescriptor } from \"@internal/target-postgres/codecs\";\nimport { InternalError } from \"@internal/utils/internal-error\";\nimport { POLICY_OPERATION_PREDICATES } from \"@internal/target-postgres/rls-canonicalize\";\n//#region src/contract/define-contract.ts\nfunction defineContract(definition, factory) {\n\tconst bound = {\n\t\t...definition,\n\t\tcreateNamespace: postgresCreateNamespace\n\t};\n\tif (factory !== void 0) return buildBoundContract(sqlFamilyPack, postgresPackRef, bound, factory);\n\treturn buildBoundContract(sqlFamilyPack, postgresPackRef, bound);\n}\n//#endregion\n//#region src/contract/enum-type.ts\n/**\n* The `enumType` authors call when building a Postgres contract (re-exported\n* from `@internal/postgres/contract-builder`).\n*\n* `bindEnumType` is the core, codec-agnostic `enumType` factory; calling it with\n* the Postgres pack's codec typemap fixes which member-value type each codec\n* permits, so `member()` values are checked against the column's codec at\n* authoring time: `pg/text@1` requires `string`, `pg/int4@1` requires `number`,\n* and a mismatch is a compile error. The core `enumType` can't know the codec\n* set, which is why the binding happens here, per target.\n*/\nconst enumType = bindEnumType();\n//#endregion\n//#region src/contract/native-enum.ts\nfunction buildNativeEnumHandle(name, typeName, members) {\n\tif (typeName.trim().length === 0) throw postgresError(\"CONTRACT.ENUM_INVALID\", `nativeEnum(\"${name}\"): the Postgres type name must be a non-empty string.`, {\n\t\tfix: \"Pass a non-empty Postgres type name to .map(typeName).\",\n\t\tmeta: {\n\t\t\tenumName: name,\n\t\t\treason: \"empty type name\"\n\t\t}\n\t});\n\treturn {\n\t\tentityKind: \"native_enum\",\n\t\tname,\n\t\ttypeName,\n\t\tmembers,\n\t\tentity: new PostgresNativeEnum({\n\t\t\ttypeName,\n\t\t\tmembers\n\t\t}),\n\t\tmap: (mappedTypeName) => buildNativeEnumHandle(name, mappedTypeName, members)\n\t};\n}\n/**\n* Declares a native Postgres enum type for use with {@link pg}'s `.enum()`\n* column helper. Mirrors PSL's `native_enum <Name> { … }` lowering\n* (`lowerNativeEnumFromBlock`): validates a non-empty, duplicate-free member\n* list and builds the same {@link PostgresNativeEnum} entity. Its value-set is\n* derived generically at contract-build time — the same\n* `deriveValueSetFromEntity` fold PSL's native enums go through — once\n* `pg.enum(handle)` lands the entity in the field's owning namespace.\n*\n* The first argument is the entity `name` (the `entries.native_enum` /\n* `entries.valueSet` key). The Postgres type name defaults to `name`; use\n* `.map(typeName)` to override it (PSL's `@@map`).\n*\n* A handle referenced by columns in N different namespaces materialises N\n* native enum types (one per namespace) — by design: a Postgres type lives in\n* exactly one schema, and PSL can't share a type across schemas either.\n*\n* @example\n* ```ts\n* // name === Postgres type name\n* const Role = nativeEnum('Role', 'user', 'admin');\n* // entity name `AalLevel`, Postgres type `aal_level` (Supabase's auth.aal_level)\n* const AalLevel = nativeEnum('AalLevel', 'aal1', 'aal2', 'aal3').map('aal_level');\n* model('Session', { fields: { aal: field.column(pg.enum(AalLevel)).optional() } });\n* ```\n*/\nfunction nativeEnum(name, ...members) {\n\tif (name.trim().length === 0) throw postgresError(\"CONTRACT.ENUM_INVALID\", \"nativeEnum(): name must be a non-empty string.\", {\n\t\tfix: \"Pass a non-empty entity name as the first argument to nativeEnum().\",\n\t\tmeta: {\n\t\t\tenumName: name,\n\t\t\treason: \"empty name\"\n\t\t}\n\t});\n\tif (members.length === 0) throw postgresError(\"CONTRACT.ENUM_INVALID\", `nativeEnum(\"${name}\"): must have at least one member.`, {\n\t\twhy: \"Postgres rejects CREATE TYPE ... AS ENUM () with no labels.\",\n\t\tfix: \"Declare at least one member value after the name.\",\n\t\tmeta: {\n\t\t\tenumName: name,\n\t\t\treason: \"zero members\"\n\t\t}\n\t});\n\tconst seenValues = /* @__PURE__ */ new Set();\n\tfor (const value of members) {\n\t\tif (seenValues.has(value)) throw postgresError(\"CONTRACT.ENUM_INVALID\", `nativeEnum(\"${name}\"): duplicate member value \"${value}\". Member values must be unique.`, {\n\t\t\tfix: \"Remove the duplicate member value.\",\n\t\t\tmeta: {\n\t\t\t\tenumName: name,\n\t\t\t\tmember: value,\n\t\t\t\treason: \"duplicate member value\"\n\t\t\t}\n\t\t});\n\t\tseenValues.add(value);\n\t}\n\treturn buildNativeEnumHandle(name, name, members);\n}\n/**\n* Builds the deferred column descriptor for `handle`: the bare Postgres type\n* name and `typeParams` come from `pgEnumDescriptor.columnFromEntity` (the same\n* authoring hook the PSL `pg.enum(Ref)` type constructor resolves through),\n* carrying `handle.entity` as the descriptor's `entityRef` keyed by the entity\n* `name` (not the Postgres type name — they differ when `.map()` was used).\n* Schema qualification and the storage `valueSet` ref are NOT computed here — a\n* `field.column(pg.enum(handle))` call runs before the enclosing `model(...)`\n* associates a namespace, so `buildSqlContractFromDefinition` resolves both\n* once the field's namespace is known.\n*/\nfunction pgEnumColumn(handle) {\n\tconst resolved = pgEnumDescriptor.columnFromEntity(handle.entity);\n\tif (resolved === void 0) throw new InternalError(`pg.enum(\"${handle.name}\"): handle.entity is not a PostgresNativeEnum. This is an authoring-surface bug — nativeEnum() must always produce one.`);\n\treturn {\n\t\tcodecId: PG_ENUM_CODEC_ID,\n\t\tnativeType: resolved.nativeType,\n\t\ttypeParams: resolved.typeParams,\n\t\tentityRef: {\n\t\t\tentityKind: handle.entityKind,\n\t\t\tentityName: handle.name,\n\t\t\tentity: handle.entity\n\t\t}\n\t};\n}\n/** Postgres-specific TS type-constructor namespace, mirroring the PSL `pg.` prefix. */\nconst pg = { enum: pgEnumColumn };\n//#endregion\n//#region src/contract/rls.ts\nfunction assertNonEmptyName(helper, name) {\n\tif (name.trim().length === 0) throw postgresError(\"CONTRACT.POLICY_INVALID\", `${helper}: name must be a non-empty string.`, {\n\t\tfix: \"Pass a non-empty policy name.\",\n\t\tmeta: {\n\t\t\tpolicyName: name,\n\t\t\treason: \"empty name\"\n\t\t}\n\t});\n}\n/** The user-facing helper name per operation, for runtime error messages. */\nconst HELPER_NAMES = {\n\tselect: \"policySelect\",\n\tinsert: \"policyInsert\",\n\tupdate: \"policyUpdate\",\n\tdelete: \"policyDelete\",\n\tall: \"policyAll\"\n};\nfunction buildPolicyHandle(operation, model, descriptor) {\n\tconst helper = HELPER_NAMES[operation];\n\tconst support = POLICY_OPERATION_PREDICATES[operation];\n\tassertNonEmptyName(`${helper}(\"${descriptor.name}\")`, descriptor.name);\n\tconst supported = support.using && support.withCheck ? \"`using` and `withCheck`\" : support.using ? \"`using` only\" : \"`withCheck` only\";\n\tconst rejectPredicate = (predicate) => {\n\t\tthrow postgresError(\"CONTRACT.POLICY_INVALID\", `${helper}: policy \"${descriptor.name}\" does not take a \\`${predicate}\\` predicate; the ${operation.toUpperCase()} operation uses ${supported}.`, {\n\t\t\tfix: `Use only the predicates the ${operation.toUpperCase()} operation supports: ${supported}.`,\n\t\t\tmeta: {\n\t\t\t\tpolicyName: descriptor.name,\n\t\t\t\treason: `unsupported \\`${predicate}\\` predicate`\n\t\t\t}\n\t\t});\n\t};\n\tif (descriptor.using !== void 0 && !support.using) rejectPredicate(\"using\");\n\tif (descriptor.withCheck !== void 0 && !support.withCheck) rejectPredicate(\"withCheck\");\n\tif (descriptor.using === void 0 && descriptor.withCheck === void 0) throw postgresError(\"CONTRACT.POLICY_INVALID\", `${helper}: policy \"${descriptor.name}\" requires at least one predicate; the ${operation.toUpperCase()} operation uses ${supported}.`, {\n\t\tfix: `Provide at least one predicate: ${supported}.`,\n\t\tmeta: {\n\t\t\tpolicyName: descriptor.name,\n\t\t\treason: \"no predicate given\"\n\t\t}\n\t});\n\treturn Object.freeze({\n\t\tentityKind: \"policy\",\n\t\toperation,\n\t\tname: descriptor.name,\n\t\trefs: Object.freeze({ target: model }),\n\t\troles: Object.freeze([...descriptor.roles]),\n\t\t...ifDefined(\"using\", descriptor.using),\n\t\t...ifDefined(\"withCheck\", descriptor.withCheck)\n\t});\n}\n/**\n* Declares a Postgres role by name, mirroring PSL's bare role identifiers.\n* Returns an inert handle: referenced in a policy's `roles` it contributes\n* the bare name; placed in the `entities` list it declares the role\n* (`entries.role`), making it subject to the existence verify.\n*/\nfunction role(name) {\n\tassertNonEmptyName(`role(\"${name}\")`, name);\n\treturn Object.freeze({\n\t\tentityKind: \"role\",\n\t\tname\n\t});\n}\n/**\n* Marks a model's table RLS-controlled, mirroring PSL's `@@rls`. The\n* enablement marker (never the policy set) drives `ENABLE`/`DISABLE ROW\n* LEVEL SECURITY` planning.\n*/\nfunction rlsEnabled(model) {\n\treturn Object.freeze({\n\t\tentityKind: \"rls\",\n\t\trefs: Object.freeze({ target: model })\n\t});\n}\n/** Authors a `FOR SELECT` policy (PSL `policy_select`): row visibility via `using`. */\nfunction policySelect(model, descriptor) {\n\treturn buildPolicyHandle(\"select\", model, descriptor);\n}\n/** Authors a `FOR INSERT` policy (PSL `policy_insert`): new-row validation via `withCheck`. */\nfunction policyInsert(model, descriptor) {\n\treturn buildPolicyHandle(\"insert\", model, descriptor);\n}\n/** Authors a `FOR UPDATE` policy (PSL `policy_update`): takes `using` and `withCheck`. */\nfunction policyUpdate(model, descriptor) {\n\treturn buildPolicyHandle(\"update\", model, descriptor);\n}\n/** Authors a `FOR DELETE` policy (PSL `policy_delete`): row eligibility via `using`. */\nfunction policyDelete(model, descriptor) {\n\treturn buildPolicyHandle(\"delete\", model, descriptor);\n}\n/** Authors a `FOR ALL` policy (PSL `policy_all`): takes `using` and `withCheck`. */\nfunction policyAll(model, descriptor) {\n\treturn buildPolicyHandle(\"all\", model, descriptor);\n}\n//#endregion\nexport { buildSqlContractFromDefinition, check, defineContract, enumType, field, member, model, nativeEnum, pg, policyAll, policyDelete, policyInsert, policySelect, policyUpdate, rel, rlsEnabled, role };\n\n//# sourceMappingURL=contract-builder.mjs.map"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "@prisma/orm-family-sql/contract/authored-check-naming";
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prisma/orm-postgres",
|
|
3
|
-
"version": "8.0.0-rc.1-dev.
|
|
3
|
+
"version": "8.0.0-rc.1-dev.31",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -9,19 +9,19 @@
|
|
|
9
9
|
"dist"
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@prisma/orm-family-sql": "8.0.0-rc.1-dev.
|
|
13
|
-
"@prisma/orm-framework": "8.0.0-rc.1-dev.
|
|
14
|
-
"@prisma/orm-target-postgres": "8.0.0-rc.1-dev.
|
|
15
|
-
"@prisma/orm-toolchain": "8.0.0-rc.1-dev.
|
|
12
|
+
"@prisma/orm-family-sql": "8.0.0-rc.1-dev.31",
|
|
13
|
+
"@prisma/orm-framework": "8.0.0-rc.1-dev.31",
|
|
14
|
+
"@prisma/orm-target-postgres": "8.0.0-rc.1-dev.31",
|
|
15
|
+
"@prisma/orm-toolchain": "8.0.0-rc.1-dev.31",
|
|
16
16
|
"@types/pg": "8.20.4",
|
|
17
17
|
"pathe": "^2.0.3",
|
|
18
18
|
"pg": "8.22.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
-
"@internal/postgres": "8.0.0-rc.1-dev.
|
|
22
|
-
"@repo/tsconfig": "8.0.0-rc.1-dev.
|
|
23
|
-
"@internal/publish-surface": "8.0.0-rc.1-dev.
|
|
24
|
-
"@repo/tsdown": "8.0.0-rc.1-dev.
|
|
21
|
+
"@internal/postgres": "8.0.0-rc.1-dev.31",
|
|
22
|
+
"@repo/tsconfig": "8.0.0-rc.1-dev.31",
|
|
23
|
+
"@internal/publish-surface": "8.0.0-rc.1-dev.31",
|
|
24
|
+
"@repo/tsdown": "8.0.0-rc.1-dev.31",
|
|
25
25
|
"tsdown": "0.22.14",
|
|
26
26
|
"typescript": "5.9.3",
|
|
27
27
|
"vitest": "4.1.10"
|
|
@@ -86,6 +86,7 @@
|
|
|
86
86
|
"./family/runtime": "./dist/family__runtime.mjs",
|
|
87
87
|
"./family/verify": "./dist/family__verify.mjs",
|
|
88
88
|
"./family-contract": "./dist/family-contract.mjs",
|
|
89
|
+
"./family-contract/authored-check-naming": "./dist/family-contract__authored-check-naming.mjs",
|
|
89
90
|
"./family-contract/canonicalization-hooks": "./dist/family-contract__canonicalization-hooks.mjs",
|
|
90
91
|
"./family-contract/contract-view": "./dist/family-contract__contract-view.mjs",
|
|
91
92
|
"./family-contract/entity-handle-lowering-hook": "./dist/family-contract__entity-handle-lowering-hook.mjs",
|