@prisma/orm-target-postgres 8.0.0-rc.14-dev.27 → 8.0.0-rc.14-dev.28
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/{adapter-feboP3zp-Bahi4qVo.mjs → adapter-BNrSLsxC-CXrTrSvP.mjs} +5 -5
- package/dist/{adapter-feboP3zp-Bahi4qVo.mjs.map → adapter-BNrSLsxC-CXrTrSvP.mjs.map} +1 -1
- package/dist/adapter.mjs +5 -5
- package/dist/adapter__adapter.mjs +1 -1
- package/dist/adapter__control.mjs +7 -7
- package/dist/adapter__control.mjs.map +1 -1
- package/dist/adapter__runtime.mjs +4 -4
- package/dist/adapter__runtime.mjs.map +1 -1
- package/dist/adapter__sql-renderer.mjs +1 -1
- package/dist/{authoring-BX7WXyUK-BVUoTS2O.mjs → authoring-C5Ch8RNG-Qgq9GiOY.mjs} +4 -4
- package/dist/{authoring-BX7WXyUK-BVUoTS2O.mjs.map → authoring-C5Ch8RNG-Qgq9GiOY.mjs.map} +1 -1
- package/dist/{codec-helpers-PLBCguwU-BD8nGqjd.mjs → codec-helpers-BmUrP6U9-DuO9gpqZ.mjs} +13 -13
- package/dist/{codec-helpers-PLBCguwU-BD8nGqjd.mjs.map → codec-helpers-BmUrP6U9-DuO9gpqZ.mjs.map} +1 -1
- package/dist/{codecs-4MwR9yYB.mjs → codecs-CWXNVl1P.mjs} +2 -2
- package/dist/{codecs-4MwR9yYB.mjs.map → codecs-CWXNVl1P.mjs.map} +1 -1
- package/dist/{codecs-0cuTthSz-DK4dxeEE.mjs → codecs-CnbVrlil--FxLKWM5.mjs} +4 -4
- package/dist/{codecs-0cuTthSz-DK4dxeEE.mjs.map → codecs-CnbVrlil--FxLKWM5.mjs.map} +1 -1
- package/dist/{control-Dd31Nva0.mjs → control-CyiVFspE.mjs} +9 -9
- package/dist/{control-Dd31Nva0.mjs.map → control-CyiVFspE.mjs.map} +1 -1
- package/dist/{control-D6H04xaA.mjs → control-DJo3P3yL.mjs} +2 -2
- package/dist/control-DJo3P3yL.mjs.map +1 -0
- package/dist/{control-adapter-DzRjCCuc-CNJcK8FQ.mjs → control-adapter-Du0EcG5G-CT4qBFrG.mjs} +11 -6
- package/dist/control-adapter-Du0EcG5G-CT4qBFrG.mjs.map +1 -0
- package/dist/{control-policy-DHnC_3uu-8eaY0QaE.mjs → control-policy-BW5Cgq3Z-Dn2ZVBCP.mjs} +4 -4
- package/dist/{control-policy-DHnC_3uu-8eaY0QaE.mjs.map → control-policy-BW5Cgq3Z-Dn2ZVBCP.mjs.map} +1 -1
- package/dist/{data-type-entries-ofT74QIj-3aJ3Llba.mjs → data-type-entries-cjspFU7A-BBOIqLij.mjs} +3 -3
- package/dist/{data-type-entries-ofT74QIj-3aJ3Llba.mjs.map → data-type-entries-cjspFU7A-BBOIqLij.mjs.map} +1 -1
- package/dist/{data-types-B-8yirZ0-Ba7BPHAy.mjs → data-types-BGsYeBpf-B_5bvuEe.mjs} +3 -3
- package/dist/{data-types-B-8yirZ0-Ba7BPHAy.mjs.map → data-types-BGsYeBpf-B_5bvuEe.mjs.map} +1 -1
- package/dist/{default-normalizer-8E6ew8Nq-CMgRnBkj.mjs → default-normalizer-ByDD_gRm-CKeWEb0x.mjs} +3 -3
- package/dist/{default-normalizer-8E6ew8Nq-CMgRnBkj.mjs.map → default-normalizer-ByDD_gRm-CKeWEb0x.mjs.map} +1 -1
- package/dist/{descriptor-meta-BEigA5Gj-DCtx_hNw.mjs → descriptor-meta-BEigA5Gj-eY7nV4N_.mjs} +5 -5
- package/dist/{descriptor-meta-BEigA5Gj-DCtx_hNw.mjs.map → descriptor-meta-BEigA5Gj-eY7nV4N_.mjs.map} +1 -1
- package/dist/{descriptor-meta-CNocPizV-CM3vRsBg.mjs → descriptor-meta-Bvq6_NJ8-Cn_M79Lf.mjs} +4 -4
- package/dist/{descriptor-meta-CNocPizV-CM3vRsBg.mjs.map → descriptor-meta-Bvq6_NJ8-Cn_M79Lf.mjs.map} +1 -1
- package/dist/{diff-database-schema-Cybx3XZj-X5XgQc3e.mjs → diff-database-schema-_bbfF4oI-D_VmL4Ma.mjs} +4 -4
- package/dist/{diff-database-schema-Cybx3XZj-X5XgQc3e.mjs.map → diff-database-schema-_bbfF4oI-D_VmL4Ma.mjs.map} +1 -1
- package/dist/driver.mjs +2 -2
- package/dist/driver__control.mjs +1 -1
- package/dist/driver__runtime.mjs +1 -1
- package/dist/{full-text-index-expression-BZRAwQ6G-Bus1rjpq.mjs → full-text-index-expression-525ZZWf0-HIGVQbjL.mjs} +3 -3
- package/dist/{full-text-index-expression-BZRAwQ6G-Bus1rjpq.mjs.map → full-text-index-expression-525ZZWf0-HIGVQbjL.mjs.map} +1 -1
- package/dist/{infer-psl-contract-of3HBkov-DJeZHv6R.mjs → infer-psl-contract-Burb6YAz-DbKU4cXm.mjs} +6 -6
- package/dist/{infer-psl-contract-of3HBkov-DJeZHv6R.mjs.map → infer-psl-contract-Burb6YAz-DbKU4cXm.mjs.map} +1 -1
- package/dist/migration-PTHAY9Cv.mjs.map +1 -1
- package/dist/{op-factory-call-DMsjg_Mk-CNSo4lcs.mjs → op-factory-call-DkzlLBzN-Bc6l0sYN.mjs} +3 -3
- package/dist/{op-factory-call-DMsjg_Mk-CNSo4lcs.mjs.map → op-factory-call-DkzlLBzN-Bc6l0sYN.mjs.map} +1 -1
- package/dist/{planner-DKY41UXw-CcoVgq5N.mjs → planner-D7lEhXHR-8Wz1p_6j.mjs} +7 -7
- package/dist/{planner-DKY41UXw-CcoVgq5N.mjs.map → planner-D7lEhXHR-8Wz1p_6j.mjs.map} +1 -1
- package/dist/{planner-ddl-builders-BOvOAj1q-C4IJoysh.mjs → planner-ddl-builders-BZLzBmuq-BrpA53eH.mjs} +4 -4
- package/dist/{planner-ddl-builders-BOvOAj1q-C4IJoysh.mjs.map → planner-ddl-builders-BZLzBmuq-BrpA53eH.mjs.map} +1 -1
- package/dist/{planner-produced-postgres-migration-CajcTGOW-DV0ivYWc.mjs → planner-produced-postgres-migration-GZTusMRD-DPb6XqDu.mjs} +3 -3
- package/dist/{planner-produced-postgres-migration-CajcTGOW-DV0ivYWc.mjs.map → planner-produced-postgres-migration-GZTusMRD-DPb6XqDu.mjs.map} +1 -1
- package/dist/{postgres-contract-view-BqMwLieI-1pQRelL5.mjs → postgres-contract-view-Da0ymIZE-CBV3OE-k.mjs} +3 -3
- package/dist/{postgres-contract-view-BqMwLieI-1pQRelL5.mjs.map → postgres-contract-view-Da0ymIZE-CBV3OE-k.mjs.map} +1 -1
- package/dist/{postgres-migration-CMcrvJni-D7c38x5U.mjs → postgres-migration-Dq60Mixq-DYNJokZW.mjs} +8 -8
- package/dist/{postgres-migration-CMcrvJni-D7c38x5U.mjs.map → postgres-migration-Dq60Mixq-DYNJokZW.mjs.map} +1 -1
- package/dist/{prisma7-binding-JTOc8zQB.mjs → prisma7-binding-Dm24YoM6.mjs} +5 -5
- package/dist/{prisma7-binding-JTOc8zQB.mjs.map → prisma7-binding-Dm24YoM6.mjs.map} +1 -1
- package/dist/{runtime-D7XsforS.mjs → runtime-DugW4mig.mjs} +4 -4
- package/dist/runtime-DugW4mig.mjs.map +1 -0
- package/dist/{temporal-text-parsers-M28a91UF-D938VcZK.mjs → server-text-types-DeNPQpv5-DPxA9uXV.mjs} +8 -22
- package/dist/server-text-types-DeNPQpv5-DPxA9uXV.mjs.map +1 -0
- package/dist/{sql-renderer-CgUgFbU4-cg7P_Tlg.mjs → sql-renderer-CgUgFbU4-BY3PCrmG.mjs} +2 -2
- package/dist/{sql-renderer-CgUgFbU4-cg7P_Tlg.mjs.map → sql-renderer-CgUgFbU4-BY3PCrmG.mjs.map} +1 -1
- package/dist/target.mjs +17 -17
- package/dist/target__codecs.mjs +2 -2
- package/dist/target__control.mjs +3 -3
- package/dist/target__data-types.mjs +2 -2
- package/dist/target__default-normalizer.mjs +1 -1
- package/dist/target__diff-database-schema.mjs +1 -1
- package/dist/target__issue-planner.mjs +1 -1
- package/dist/target__migration.mjs +2 -2
- package/dist/target__op-factory-call.mjs +1 -1
- package/dist/target__pack.mjs +1 -1
- package/dist/target__planner-ddl-builders.mjs +1 -1
- package/dist/target__planner-produced-postgres-migration.mjs +1 -1
- package/dist/target__planner.mjs +2 -2
- package/dist/target__prisma7-binding.mjs +1 -1
- package/dist/target__runtime.mjs +2 -2
- package/dist/target__runtime.mjs.map +1 -1
- package/dist/target__sql-utils.mjs +1 -1
- package/package.json +9 -9
- package/dist/control-D6H04xaA.mjs.map +0 -1
- package/dist/control-adapter-DzRjCCuc-CNJcK8FQ.mjs.map +0 -1
- package/dist/runtime-D7XsforS.mjs.map +0 -1
- package/dist/temporal-text-parsers-M28a91UF-D938VcZK.mjs.map +0 -1
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { i as createPostgresCodecRegistryWithBuiltins } from "./codecs-
|
|
2
|
-
import { n as renderLoweredSql, t as adapterError } from "./sql-renderer-CgUgFbU4-
|
|
3
|
-
import { t as PostgresControlAdapter } from "./control-adapter-
|
|
1
|
+
import { i as createPostgresCodecRegistryWithBuiltins } from "./codecs-CWXNVl1P.mjs";
|
|
2
|
+
import { n as renderLoweredSql, t as adapterError } from "./sql-renderer-CgUgFbU4-BY3PCrmG.mjs";
|
|
3
|
+
import { t as PostgresControlAdapter } from "./control-adapter-Du0EcG5G-CT4qBFrG.mjs";
|
|
4
4
|
import { isDdlNode } from "@prisma/orm-family-sql/relational-core/ast";
|
|
5
5
|
import { APP_SPACE_ID } from "@prisma/orm-framework/components/control";
|
|
6
|
-
//#region ../../../3-targets/6-adapters/postgres/dist/adapter-
|
|
6
|
+
//#region ../../../3-targets/6-adapters/postgres/dist/adapter-BNrSLsxC.mjs
|
|
7
7
|
const defaultCapabilities = Object.freeze({
|
|
8
8
|
postgres: {
|
|
9
9
|
orderBy: true,
|
|
@@ -95,4 +95,4 @@ function createPostgresAdapterWithCodecRegistry(codecRegistry) {
|
|
|
95
95
|
//#endregion
|
|
96
96
|
export { createPostgresAdapterWithCodecRegistry as n, postgresRawCodecInferer as r, createPostgresAdapter as t };
|
|
97
97
|
|
|
98
|
-
//# sourceMappingURL=adapter-
|
|
98
|
+
//# sourceMappingURL=adapter-BNrSLsxC-CXrTrSvP.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter-
|
|
1
|
+
{"version":3,"file":"adapter-BNrSLsxC-CXrTrSvP.mjs","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/adapter-BNrSLsxC.mjs"],"sourcesContent":["import { n as adapterError, t as renderLoweredSql } from \"./sql-renderer-CgUgFbU4.mjs\";\nimport { t as PostgresControlAdapter } from \"./control-adapter-Du0EcG5G.mjs\";\nimport { APP_SPACE_ID } from \"@internal/framework-components/control\";\nimport { isDdlNode } from \"@internal/sql-relational-core/ast\";\nimport { createPostgresCodecRegistryWithBuiltins } from \"@internal/target-postgres/codecs\";\n//#region src/core/adapter.ts\nconst defaultCapabilities = Object.freeze({\n\tpostgres: {\n\t\torderBy: true,\n\t\tlimit: true,\n\t\tlateral: true,\n\t\tjsonAgg: true,\n\t\treturning: true,\n\t\tdistinctOn: true\n\t},\n\tsql: {\n\t\tenums: true,\n\t\treturning: true,\n\t\tdefaultInInsert: true,\n\t\tlateral: true,\n\t\tscalarList: true,\n\t\tcheckConstraint: true,\n\t\tinsertOnConflictSkip: true,\n\t\tinsertOnConflictWithoutTarget: true\n\t}\n});\nvar PostgresAdapterImpl = class {\n\tfamilyId = \"sql\";\n\ttargetId = \"postgres\";\n\tprofile;\n\tcodecRegistry;\n\tconstructor(codecRegistry, profileId) {\n\t\tthis.codecRegistry = codecRegistry;\n\t\tconst controlAdapter = new PostgresControlAdapter(codecRegistry);\n\t\tthis.profile = Object.freeze({\n\t\t\tid: profileId ?? \"postgres/default@1\",\n\t\t\ttarget: \"postgres\",\n\t\t\tcapabilities: defaultCapabilities,\n\t\t\treadMarker: (queryable) => controlAdapter.readMarkerDiscriminated({\n\t\t\t\tfamilyId: \"sql\",\n\t\t\t\ttargetId: \"postgres\",\n\t\t\t\tquery: async (sql, params) => {\n\t\t\t\t\tconst rows = [];\n\t\t\t\t\tfor await (const row of queryable.query({\n\t\t\t\t\t\tsql,\n\t\t\t\t\t\t...params === void 0 ? {} : { params }\n\t\t\t\t\t})) rows.push(row);\n\t\t\t\t\treturn { rows };\n\t\t\t\t},\n\t\t\t\tclose: async () => {}\n\t\t\t}, APP_SPACE_ID)\n\t\t});\n\t}\n\tlower(ast, context) {\n\t\tif (isDdlNode(ast)) throw adapterError(\"RUNTIME.DDL_UNSUPPORTED\", \"lower() does not lower DDL on the runtime adapter — DDL lowering is a control-plane concern handled by the control adapter.\", { meta: { surface: \"runtime-adapter\" } });\n\t\treturn renderLoweredSql(ast, context.contract, this.codecRegistry);\n\t}\n};\nconst INT4_MIN = -2147483648;\nconst INT4_MAX = 2147483647;\n/**\n* The codec a bare JS number is bound through.\n*\n* An integer picks the narrowest column type that holds it: `int4` while it\n* fits the signed 32-bit range, `int8` (number-valued) up to the safe-integer\n* limit. Past that limit a JS number is no longer an exact integer, so it\n* binds as `float8` rather than pretending to a precision it does not have.\n*/\nfunction inferNumberCodecId(value) {\n\tif (!Number.isSafeInteger(value)) return \"pg/float8@1\";\n\treturn value >= INT4_MIN && value <= INT4_MAX ? \"pg/int4@1\" : \"pg/int8number@1\";\n}\n/**\n* Codec-id lookup for bare-literal interpolations used by `fns.raw` on a postgres client. Contributed as the descriptor's static `rawCodecInferer` slot.\n*\n* The ids are versioned because that is how the codec registry keys them: lowering resolves an interpolated value's codec by exact id through `descriptorFor`.\n*/\nconst postgresRawCodecInferer = { inferCodec(value) {\n\tswitch (typeof value) {\n\t\tcase \"number\": return inferNumberCodecId(value);\n\t\tcase \"bigint\": return \"pg/int8@1\";\n\t\tcase \"string\": return \"pg/text@1\";\n\t\tcase \"boolean\": return \"pg/bool@1\";\n\t\tcase \"object\": if (value instanceof Uint8Array) return \"pg/bytea@1\";\n\t}\n\tthrow adapterError(\"RUNTIME.RAW_SQL_UNSUPPORTED_INTERPOLATION\", \"unsupported JS value type for raw-SQL interpolation: wrap this value in `param(...)` with an explicit codec\", { meta: { valueType: typeof value } });\n} };\nfunction createPostgresAdapter(options) {\n\tconst codecRegistry = createPostgresCodecRegistryWithBuiltins(options?.codecDescriptors);\n\treturn Object.freeze(new PostgresAdapterImpl(codecRegistry, options?.profileId));\n}\nfunction createPostgresAdapterWithCodecRegistry(codecRegistry) {\n\treturn Object.freeze(new PostgresAdapterImpl(codecRegistry));\n}\n//#endregion\nexport { createPostgresAdapterWithCodecRegistry as n, postgresRawCodecInferer as r, createPostgresAdapter as t };\n\n//# sourceMappingURL=adapter-BNrSLsxC.mjs.map"],"mappings":";;;;;;AAMA,MAAM,sBAAsB,OAAO,OAAO;CACzC,UAAU;EACT,SAAS;EACT,OAAO;EACP,SAAS;EACT,SAAS;EACT,WAAW;EACX,YAAY;CACb;CACA,KAAK;EACJ,OAAO;EACP,WAAW;EACX,iBAAiB;EACjB,SAAS;EACT,YAAY;EACZ,iBAAiB;EACjB,sBAAsB;EACtB,+BAA+B;CAChC;AACD,CAAC;AACD,IAAI,sBAAsB,MAAM;CAC/B,WAAW;CACX,WAAW;CACX;CACA;CACA,YAAY,eAAe,WAAW;EACrC,KAAK,gBAAgB;EACrB,MAAM,iBAAiB,IAAI,uBAAuB,aAAa;EAC/D,KAAK,UAAU,OAAO,OAAO;GAC5B,IAAI,aAAa;GACjB,QAAQ;GACR,cAAc;GACd,aAAa,cAAc,eAAe,wBAAwB;IACjE,UAAU;IACV,UAAU;IACV,OAAO,OAAO,KAAK,WAAW;KAC7B,MAAM,OAAO,CAAC;KACd,WAAW,MAAM,OAAO,UAAU,MAAM;MACvC;MACA,GAAG,WAAW,KAAK,IAAI,CAAC,IAAI,EAAE,OAAO;KACtC,CAAC,GAAG,KAAK,KAAK,GAAG;KACjB,OAAO,EAAE,KAAK;IACf;IACA,OAAO,YAAY,CAAC;GACrB,GAAG,YAAY;EAChB,CAAC;CACF;CACA,MAAM,KAAK,SAAS;EACnB,IAAI,UAAU,GAAG,GAAG,MAAM,aAAa,2BAA2B,+HAA+H,EAAE,MAAM,EAAE,SAAS,kBAAkB,EAAE,CAAC;EACzO,OAAO,iBAAiB,KAAK,QAAQ,UAAU,KAAK,aAAa;CAClE;AACD;AACA,MAAM,WAAW;AACjB,MAAM,WAAW;;;;;;;;;AASjB,SAAS,mBAAmB,OAAO;CAClC,IAAI,CAAC,OAAO,cAAc,KAAK,GAAG,OAAO;CACzC,OAAO,SAAS,YAAY,SAAS,WAAW,cAAc;AAC/D;;;;;;AAMA,MAAM,0BAA0B,EAAE,WAAW,OAAO;CACnD,QAAQ,OAAO,OAAf;EACC,KAAK,UAAU,OAAO,mBAAmB,KAAK;EAC9C,KAAK,UAAU,OAAO;EACtB,KAAK,UAAU,OAAO;EACtB,KAAK,WAAW,OAAO;EACvB,KAAK,UAAU,IAAI,iBAAiB,YAAY,OAAO;CACxD;CACA,MAAM,aAAa,6CAA6C,+GAA+G,EAAE,MAAM,EAAE,WAAW,OAAO,MAAM,EAAE,CAAC;AACrN,EAAE;AACF,SAAS,sBAAsB,SAAS;CACvC,MAAM,gBAAgB,wCAAwC,SAAS,gBAAgB;CACvF,OAAO,OAAO,OAAO,IAAI,oBAAoB,eAAe,SAAS,SAAS,CAAC;AAChF;AACA,SAAS,uCAAuC,eAAe;CAC9D,OAAO,OAAO,OAAO,IAAI,oBAAoB,aAAa,CAAC;AAC5D"}
|
package/dist/adapter.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { i as createPostgresCodecRegistryWithBuiltins, r as createPostgresBuiltinCodecLookup } from "./codecs-
|
|
1
|
+
import { i as createPostgresCodecRegistryWithBuiltins, r as createPostgresBuiltinCodecLookup } from "./codecs-CWXNVl1P.mjs";
|
|
2
2
|
import { n as qualifyName, r as quoteIdentifier, t as escapeLiteral } from "./sql-utils-Bh-mnsSY-D6hnFPrP.mjs";
|
|
3
|
-
import { t as parsePostgresDefault } from "./default-normalizer-
|
|
3
|
+
import { t as parsePostgresDefault } from "./default-normalizer-ByDD_gRm-CKeWEb0x.mjs";
|
|
4
4
|
import { n as normalizeSchemaNativeType } from "./native-type-normalizer-CW6g9Fut-C5lMRRjS.mjs";
|
|
5
|
-
import { n as renderLoweredSql } from "./sql-renderer-CgUgFbU4-
|
|
6
|
-
import { t as PostgresControlAdapter } from "./control-adapter-
|
|
7
|
-
import { r as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-
|
|
5
|
+
import { n as renderLoweredSql } from "./sql-renderer-CgUgFbU4-BY3PCrmG.mjs";
|
|
6
|
+
import { t as PostgresControlAdapter } from "./control-adapter-Du0EcG5G-CT4qBFrG.mjs";
|
|
7
|
+
import { r as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-BNrSLsxC-CXrTrSvP.mjs";
|
|
8
8
|
import { C as timestamptzTemporalColumn, E as varcharColumn, S as timestamptzStringColumn, T as varbitColumn, _ as timeStringColumn, a as dateStringColumn, b as timestampTemporalColumn, c as float8Column, d as int8Column, f as intervalColumn, g as textColumn, h as numericColumn, i as charColumn, l as int2Column, m as jsonbColumn, n as boolColumn, o as dateTemporalColumn, p as jsonColumn, r as byteaColumn, s as float4Column, t as bitColumn, u as int4Column, v as timeTemporalColumn, w as timetzColumn, x as timestamptzJsDateColumn, y as timestampStringColumn } from "./column-types-CB_qVLNC.mjs";
|
|
9
9
|
export { PostgresControlAdapter, bitColumn, boolColumn, byteaColumn, charColumn, createPostgresAdapter, createPostgresBuiltinCodecLookup, createPostgresCodecRegistryWithBuiltins, dateStringColumn, dateTemporalColumn, escapeLiteral, float4Column, float8Column, int2Column, int4Column, int8Column, intervalColumn, jsonColumn, jsonbColumn, normalizeSchemaNativeType, numericColumn, parsePostgresDefault, postgresRawCodecInferer, qualifyName, quoteIdentifier, renderLoweredSql, textColumn, timeStringColumn, timeTemporalColumn, timestampStringColumn, timestampTemporalColumn, timestamptzJsDateColumn, timestamptzStringColumn, timestamptzTemporalColumn, timetzColumn, varbitColumn, varcharColumn };
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { r as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-
|
|
1
|
+
import { r as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-BNrSLsxC-CXrTrSvP.mjs";
|
|
2
2
|
export { createPostgresAdapter, postgresRawCodecInferer };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { i as createPostgresCodecRegistryWithBuiltins, r as createPostgresBuiltinCodecLookup, t as assemblePostgresCodecRegistry } from "./codecs-
|
|
1
|
+
import { i as createPostgresCodecRegistryWithBuiltins, r as createPostgresBuiltinCodecLookup, t as assemblePostgresCodecRegistry } from "./codecs-CWXNVl1P.mjs";
|
|
2
2
|
import { n as qualifyName, r as quoteIdentifier, t as escapeLiteral } from "./sql-utils-Bh-mnsSY-D6hnFPrP.mjs";
|
|
3
|
-
import { a as instantNowControlDescriptor, s as plainDateTimeNowControlDescriptor } from "./authoring-
|
|
4
|
-
import { t as parsePostgresDefault } from "./default-normalizer-
|
|
3
|
+
import { a as instantNowControlDescriptor, s as plainDateTimeNowControlDescriptor } from "./authoring-C5Ch8RNG-Qgq9GiOY.mjs";
|
|
4
|
+
import { t as parsePostgresDefault } from "./default-normalizer-ByDD_gRm-CKeWEb0x.mjs";
|
|
5
5
|
import { n as normalizeSchemaNativeType } from "./native-type-normalizer-CW6g9Fut-C5lMRRjS.mjs";
|
|
6
|
-
import { t as postgresDataTypeEntries } from "./data-type-entries-
|
|
7
|
-
import { n as postgresScalarAuthoringTypes, t as postgresNativeAuthoringTypes } from "./control-
|
|
8
|
-
import { t as PostgresControlAdapter } from "./control-adapter-
|
|
9
|
-
import { t as postgresAdapterDescriptorMeta } from "./descriptor-meta-BEigA5Gj-
|
|
6
|
+
import { t as postgresDataTypeEntries } from "./data-type-entries-cjspFU7A-BBOIqLij.mjs";
|
|
7
|
+
import { n as postgresScalarAuthoringTypes, t as postgresNativeAuthoringTypes } from "./control-CyiVFspE.mjs";
|
|
8
|
+
import { t as PostgresControlAdapter } from "./control-adapter-Du0EcG5G-CT4qBFrG.mjs";
|
|
9
|
+
import { t as postgresAdapterDescriptorMeta } from "./descriptor-meta-BEigA5Gj-eY7nV4N_.mjs";
|
|
10
10
|
import { timestampNowControlDescriptor } from "@prisma/orm-framework/components/control";
|
|
11
11
|
import { int, num, oneOf, optional } from "@prisma/orm-framework/psl-parser";
|
|
12
12
|
import { builtinGeneratorRegistryMetadata } from "@prisma/orm-framework/ids";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter__control.mjs","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/control.mjs"],"sourcesContent":["import { t as PostgresControlAdapter } from \"./control-adapter-
|
|
1
|
+
{"version":3,"file":"adapter__control.mjs","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/control.mjs"],"sourcesContent":["import { t as PostgresControlAdapter } from \"./control-adapter-Du0EcG5G.mjs\";\nimport { t as postgresAdapterDescriptorMeta } from \"./descriptor-meta-BEigA5Gj.mjs\";\nimport { timestampNowControlDescriptor } from \"@internal/framework-components/control\";\nimport { assemblePostgresCodecRegistry, createPostgresBuiltinCodecLookup, createPostgresCodecRegistryWithBuiltins } from \"@internal/target-postgres/codecs\";\nimport { parsePostgresDefault } from \"@internal/target-postgres/default-normalizer\";\nimport { normalizeSchemaNativeType } from \"@internal/target-postgres/native-type-normalizer\";\nimport { escapeLiteral, qualifyName, quoteIdentifier } from \"@internal/target-postgres/sql-utils\";\nimport { postgresDataTypeEntries } from \"@internal/target-postgres/data-types\";\nimport { builtinGeneratorRegistryMetadata } from \"@internal/ids\";\nimport { int, num, oneOf, optional } from \"@internal/psl-parser\";\nimport { instantNowControlDescriptor, plainDateTimeNowControlDescriptor, postgresNativeAuthoringTypes, postgresScalarAuthoringTypes } from \"@internal/target-postgres/control\";\n//#region src/core/control-mutation-defaults.ts\nfunction executionGenerator(id, params) {\n\treturn {\n\t\tok: true,\n\t\tvalue: {\n\t\t\tkind: \"execution\",\n\t\t\tgenerated: {\n\t\t\t\tkind: \"generator\",\n\t\t\t\tid,\n\t\t\t\t...params ? { params } : {}\n\t\t\t}\n\t\t}\n\t};\n}\nfunction lowerAutoincrement() {\n\treturn {\n\t\tok: true,\n\t\tvalue: {\n\t\t\tkind: \"storage\",\n\t\t\tdefaultValue: {\n\t\t\t\tkind: \"function\",\n\t\t\t\texpression: \"autoincrement()\"\n\t\t\t}\n\t\t}\n\t};\n}\nfunction lowerNow() {\n\treturn {\n\t\tok: true,\n\t\tvalue: {\n\t\t\tkind: \"storage\",\n\t\t\tdefaultValue: {\n\t\t\t\tkind: \"function\",\n\t\t\t\texpression: \"now()\"\n\t\t\t}\n\t\t}\n\t};\n}\nfunction lowerUlid() {\n\treturn executionGenerator(\"ulid\");\n}\nfunction lowerUuid(input) {\n\treturn input.call.args[\"version\"] === 7 ? executionGenerator(\"uuidv7\") : executionGenerator(\"uuidv4\");\n}\nfunction lowerCuid() {\n\treturn executionGenerator(\"cuid2\");\n}\nfunction lowerNanoid(input) {\n\tconst size = input.call.args[\"size\"];\n\treturn typeof size === \"number\" ? executionGenerator(\"nanoid\", { size }) : executionGenerator(\"nanoid\");\n}\nconst nowSig = { documentation: \"Uses the current database timestamp as the default value.\" };\nconst autoincrementSig = { documentation: \"Generates an increasing integer value in the database.\" };\nconst ulidSig = { documentation: \"Generates a ULID when a value is not supplied.\" };\nconst uuidSig = {\n\tdocumentation: \"Generates a UUID when a value is not supplied.\",\n\tpositional: [{\n\t\tkey: \"version\",\n\t\ttype: optional(oneOf(num(4), num(7))),\n\t\tdocumentation: \"The UUID version: `4` or `7`. Defaults to `4`.\"\n\t}]\n};\nconst cuidSig = {\n\tdocumentation: \"Generates a CUID2 identifier when a value is not supplied.\",\n\tpositional: [{\n\t\tkey: \"version\",\n\t\ttype: num(2),\n\t\tdocumentation: \"The CUID version. Only `2` is supported.\"\n\t}]\n};\nconst nanoidSig = {\n\tdocumentation: \"Generates a Nano ID when a value is not supplied.\",\n\tpositional: [{\n\t\tkey: \"size\",\n\t\ttype: optional(int({\n\t\t\tmin: 2,\n\t\t\tmax: 255\n\t\t})),\n\t\tdocumentation: \"The identifier length, from `2` through `255`. Omit to use the generator default.\"\n\t}]\n};\nconst postgresDefaultFunctionRegistryEntries = [\n\t[\"autoincrement\", {\n\t\tsignature: autoincrementSig,\n\t\tlower: lowerAutoincrement,\n\t\tusageSignatures: [\"autoincrement()\"]\n\t}],\n\t[\"now\", {\n\t\tsignature: nowSig,\n\t\tlower: lowerNow,\n\t\tusageSignatures: [\"now()\"]\n\t}],\n\t[\"uuid\", {\n\t\tsignature: uuidSig,\n\t\tlower: lowerUuid,\n\t\tusageSignatures: [\n\t\t\t\"uuid()\",\n\t\t\t\"uuid(4)\",\n\t\t\t\"uuid(7)\"\n\t\t]\n\t}],\n\t[\"cuid\", {\n\t\tsignature: cuidSig,\n\t\tlower: lowerCuid,\n\t\tusageSignatures: [\"cuid(2)\"]\n\t}],\n\t[\"ulid\", {\n\t\tsignature: ulidSig,\n\t\tlower: lowerUlid,\n\t\tusageSignatures: [\"ulid()\"]\n\t}],\n\t[\"nanoid\", {\n\t\tsignature: nanoidSig,\n\t\tlower: lowerNanoid,\n\t\tusageSignatures: [\"nanoid()\", \"nanoid(<2-255>)\"]\n\t}]\n];\nconst postgresAuthoringTypes = {\n\t...postgresScalarAuthoringTypes,\n\t...postgresNativeAuthoringTypes\n};\nfunction createPostgresDefaultFunctionRegistry() {\n\treturn new Map(postgresDefaultFunctionRegistryEntries);\n}\nfunction createPostgresMutationDefaultGeneratorDescriptors() {\n\treturn [\n\t\t...builtinGeneratorRegistryMetadata.map(({ id, applicableCodecIds }) => ({\n\t\t\tid,\n\t\t\tapplicableCodecIds\n\t\t})),\n\t\ttimestampNowControlDescriptor(),\n\t\tinstantNowControlDescriptor(),\n\t\tplainDateTimeNowControlDescriptor()\n\t];\n}\n//#endregion\n//#region src/exports/control.ts\nconst postgresAdapterDescriptor = {\n\t...postgresAdapterDescriptorMeta,\n\tauthoring: {\n\t\ttype: postgresAuthoringTypes,\n\t\tdataTypes: postgresDataTypeEntries(),\n\t\tvalueObjectStorageType: \"Jsonb\"\n\t},\n\tcontrolMutationDefaults: {\n\t\tdefaultFunctionRegistry: createPostgresDefaultFunctionRegistry(),\n\t\tgeneratorDescriptors: createPostgresMutationDefaultGeneratorDescriptors()\n\t},\n\tcreate(stack) {\n\t\treturn new PostgresControlAdapter(assemblePostgresCodecRegistry([\n\t\t\tstack.target,\n\t\t\t...stack.adapter === void 0 ? [] : [stack.adapter],\n\t\t\t...stack.extensions\n\t\t]));\n\t}\n};\n//#endregion\nexport { PostgresControlAdapter, createPostgresBuiltinCodecLookup, createPostgresCodecRegistryWithBuiltins, postgresAdapterDescriptor as default, escapeLiteral, normalizeSchemaNativeType, parsePostgresDefault, qualifyName, quoteIdentifier };\n\n//# sourceMappingURL=control.mjs.map"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { o as postgresCodecRegistry, t as assemblePostgresCodecRegistry } from "./codecs-
|
|
2
|
-
import { i as instantNow, n as PLAIN_DATE_TIME_NOW_GENERATOR_ID, o as plainDateTimeNow, t as INSTANT_NOW_GENERATOR_ID } from "./authoring-
|
|
3
|
-
import { n as createPostgresAdapterWithCodecRegistry, r as postgresRawCodecInferer } from "./adapter-
|
|
4
|
-
import { t as postgresAdapterDescriptorMeta } from "./descriptor-meta-BEigA5Gj-
|
|
1
|
+
import { o as postgresCodecRegistry, t as assemblePostgresCodecRegistry } from "./codecs-CWXNVl1P.mjs";
|
|
2
|
+
import { i as instantNow, n as PLAIN_DATE_TIME_NOW_GENERATOR_ID, o as plainDateTimeNow, t as INSTANT_NOW_GENERATOR_ID } from "./authoring-C5Ch8RNG-Qgq9GiOY.mjs";
|
|
3
|
+
import { n as createPostgresAdapterWithCodecRegistry, r as postgresRawCodecInferer } from "./adapter-BNrSLsxC-CXrTrSvP.mjs";
|
|
4
|
+
import { t as postgresAdapterDescriptorMeta } from "./descriptor-meta-BEigA5Gj-eY7nV4N_.mjs";
|
|
5
5
|
import { builtinGeneratorIds } from "@prisma/orm-framework/ids";
|
|
6
6
|
import { timestampNowRuntimeGenerator } from "@prisma/orm-family-sql/family/runtime";
|
|
7
7
|
import { generateId } from "@prisma/orm-framework/ids/runtime";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adapter__runtime.mjs","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/runtime.mjs"],"sourcesContent":["import { n as createPostgresAdapterWithCodecRegistry, r as postgresRawCodecInferer } from \"./adapter-
|
|
1
|
+
{"version":3,"file":"adapter__runtime.mjs","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/runtime.mjs"],"sourcesContent":["import { n as createPostgresAdapterWithCodecRegistry, r as postgresRawCodecInferer } from \"./adapter-BNrSLsxC.mjs\";\nimport { t as postgresAdapterDescriptorMeta } from \"./descriptor-meta-BEigA5Gj.mjs\";\nimport { assemblePostgresCodecRegistry, postgresCodecRegistry } from \"@internal/target-postgres/codecs\";\nimport { builtinGeneratorIds } from \"@internal/ids\";\nimport { timestampNowRuntimeGenerator } from \"@internal/family-sql/runtime\";\nimport { generateId } from \"@internal/ids/runtime\";\nimport { INSTANT_NOW_GENERATOR_ID, PLAIN_DATE_TIME_NOW_GENERATOR_ID, instantNow, plainDateTimeNow } from \"@internal/target-postgres/runtime\";\n//#region src/exports/runtime.ts\nfunction createPostgresMutationDefaultGenerators() {\n\treturn [\n\t\t...builtinGeneratorIds.map((id) => ({\n\t\t\tid,\n\t\t\tgenerate: (params) => {\n\t\t\t\treturn generateId(params ? {\n\t\t\t\t\tid,\n\t\t\t\t\tparams\n\t\t\t\t} : { id });\n\t\t\t},\n\t\t\tstability: \"field\"\n\t\t})),\n\t\ttimestampNowRuntimeGenerator(),\n\t\t{\n\t\t\tid: INSTANT_NOW_GENERATOR_ID,\n\t\t\tgenerate: () => instantNow(),\n\t\t\tstability: \"query\"\n\t\t},\n\t\t{\n\t\t\tid: PLAIN_DATE_TIME_NOW_GENERATOR_ID,\n\t\t\tgenerate: () => plainDateTimeNow(),\n\t\t\tstability: \"query\"\n\t\t}\n\t];\n}\nconst postgresRuntimeAdapterDescriptor = {\n\t...postgresAdapterDescriptorMeta,\n\tcodecs: () => Array.from(postgresCodecRegistry.values()),\n\tmutationDefaultGenerators: createPostgresMutationDefaultGenerators,\n\trawCodecInferer: postgresRawCodecInferer,\n\tcreate(stack) {\n\t\treturn createPostgresAdapterWithCodecRegistry(assemblePostgresCodecRegistry([\n\t\t\tstack.target,\n\t\t\tstack.adapter,\n\t\t\t...stack.extensions\n\t\t]));\n\t}\n};\n//#endregion\nexport { postgresRuntimeAdapterDescriptor as default };\n\n//# sourceMappingURL=runtime.mjs.map"],"mappings":";;;;;;;;AAQA,SAAS,0CAA0C;CAClD,OAAO;EACN,GAAG,oBAAoB,KAAK,QAAQ;GACnC;GACA,WAAW,WAAW;IACrB,OAAO,WAAW,SAAS;KAC1B;KACA;IACD,IAAI,EAAE,GAAG,CAAC;GACX;GACA,WAAW;EACZ,EAAE;EACF,6BAA6B;EAC7B;GACC,IAAI;GACJ,gBAAgB,WAAW;GAC3B,WAAW;EACZ;EACA;GACC,IAAI;GACJ,gBAAgB,iBAAiB;GACjC,WAAW;EACZ;CACD;AACD;AACA,MAAM,mCAAmC;CACxC,GAAG;CACH,cAAc,MAAM,KAAK,sBAAsB,OAAO,CAAC;CACvD,2BAA2B;CAC3B,iBAAiB;CACjB,OAAO,OAAO;EACb,OAAO,uCAAuC,8BAA8B;GAC3E,MAAM;GACN,MAAM;GACN,GAAG,MAAM;EACV,CAAC,CAAC;CACH;AACD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { n as renderLoweredSql } from "./sql-renderer-CgUgFbU4-
|
|
1
|
+
import { n as renderLoweredSql } from "./sql-renderer-CgUgFbU4-BY3PCrmG.mjs";
|
|
2
2
|
export { renderLoweredSql };
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { C as PG_TIMESTAMPTZ_DATE_CODEC_ID, D as PG_TIMESTAMP_TEMPORAL_CODEC_ID, E as PG_TIMESTAMP_STRING_CODEC_ID, T as PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID, s as PG_ENUM_CODEC_ID, w as PG_TIMESTAMPTZ_STRING_CODEC_ID } from "./codec-ids-Cb0yO-IS--e0P2rfI.mjs";
|
|
2
2
|
import { s as postgresError } from "./errors-DYyzTYzE-39CV_aMo.mjs";
|
|
3
3
|
import { t as PostgresNativeEnum } from "./postgres-native-enum-CdP3b_-R-Cgz9KEKx.mjs";
|
|
4
|
-
import { N as requireTemporal } from "./codecs-
|
|
4
|
+
import { N as requireTemporal } from "./codecs-CnbVrlil--FxLKWM5.mjs";
|
|
5
5
|
import { a as PostgresRlsPolicySchema, i as PostgresRlsPolicy, n as PostgresRlsEnablement, o as PostgresRole, r as PostgresRlsEnablementSchema, s as PostgresRoleSchema, t as PostgresNativeEnumSchema } from "./postgres-schema-C8slJGZo-CFGUyJPt.mjs";
|
|
6
|
-
import { n as renderFullTextIndexExpression, t as isFullTextIndexableCodec } from "./full-text-index-expression-
|
|
6
|
+
import { n as renderFullTextIndexExpression, t as isFullTextIndexableCodec } from "./full-text-index-expression-525ZZWf0-HIGVQbjL.mjs";
|
|
7
7
|
import { n as computeContentHash } from "./canonicalize-CrN3u_xM-D4MrOqcB.mjs";
|
|
8
8
|
import { n as POSTGRES_TEXT_SEARCH_LANGUAGES } from "./text-search-languages-RO0HiUDm-CeJ7P8gS.mjs";
|
|
9
9
|
import { blindCast } from "@prisma/orm-framework/utils/casts";
|
|
@@ -15,7 +15,7 @@ import { temporalCodecPresetWithPrecision, temporalStringAuthoringPresets } from
|
|
|
15
15
|
import { TIMESTAMP_NOW_GENERATOR_ID, temporalAuthoringPresets } from "@prisma/orm-framework/components/authoring";
|
|
16
16
|
import { blockAttribute, bool, entityRef, fieldRef, identifier, leafDiagnostic, list, mapBlock, modelAttribute, oneOf, optional, str, structBlock } from "@prisma/orm-framework/psl-parser";
|
|
17
17
|
import { exactNameBodyWarning } from "@prisma/orm-family-sql/contract/index-naming";
|
|
18
|
-
//#region ../../../3-targets/3-targets/postgres/dist/authoring-
|
|
18
|
+
//#region ../../../3-targets/3-targets/postgres/dist/authoring-C5Ch8RNG.mjs
|
|
19
19
|
const INSTANT_NOW_GENERATOR_ID = "instantNow";
|
|
20
20
|
function instantNowControlDescriptor() {
|
|
21
21
|
return {
|
|
@@ -839,4 +839,4 @@ function postgresLowerEntityHandles(input) {
|
|
|
839
839
|
//#endregion
|
|
840
840
|
export { instantNowControlDescriptor as a, postgresAuthoringEntityTypes as c, postgresAuthoringPslBlockDescriptors as d, postgresAuthoringTypes as f, instantNow as i, postgresAuthoringFieldPresets as l, postgresNowGeneratorIdFor as m, PLAIN_DATE_TIME_NOW_GENERATOR_ID as n, plainDateTimeNow as o, postgresLowerEntityHandles as p, POLICY_BLOCK_KEYWORDS as r, plainDateTimeNowControlDescriptor as s, INSTANT_NOW_GENERATOR_ID as t, postgresAuthoringModelAttributes as u };
|
|
841
841
|
|
|
842
|
-
//# sourceMappingURL=authoring-
|
|
842
|
+
//# sourceMappingURL=authoring-C5Ch8RNG-Qgq9GiOY.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"authoring-BX7WXyUK-BVUoTS2O.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/authoring-BX7WXyUK.mjs"],"sourcesContent":["import { C as PG_TIMESTAMPTZ_DATE_CODEC_ID, D as PG_TIMESTAMP_TEMPORAL_CODEC_ID, E as PG_TIMESTAMP_STRING_CODEC_ID, T as PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID, s as PG_ENUM_CODEC_ID, w as PG_TIMESTAMPTZ_STRING_CODEC_ID } from \"./codec-ids-Cb0yO-IS.mjs\";\nimport { s as postgresError } from \"./errors-DYyzTYzE.mjs\";\nimport { N as requireTemporal } from \"./codecs-0cuTthSz.mjs\";\nimport { t as PostgresNativeEnum } from \"./postgres-native-enum-CdP3b_-R.mjs\";\nimport { n as renderFullTextIndexExpression, t as isFullTextIndexableCodec } from \"./full-text-index-expression-BZRAwQ6G.mjs\";\nimport { _ as PostgresRlsPolicy, d as PostgresNativeEnumSchema, f as PostgresRlsEnablementSchema, h as PostgresRole, m as PostgresRoleSchema, p as PostgresRlsPolicySchema, v as PostgresRlsEnablement } from \"./postgres-schema-C8slJGZo.mjs\";\nimport { n as computeContentHash } from \"./canonicalize-CrN3u_xM.mjs\";\nimport { n as POSTGRES_TEXT_SEARCH_LANGUAGES } from \"./text-search-languages-RO0HiUDm.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { temporalCodecPresetWithPrecision, temporalStringAuthoringPresets } from \"@internal/family-sql/control\";\nimport { TIMESTAMP_NOW_GENERATOR_ID, temporalAuthoringPresets } from \"@internal/framework-components/authoring\";\nimport { blockAttribute, bool, entityRef, fieldRef, identifier, leafDiagnostic, list, mapBlock, modelAttribute, oneOf, optional, str, structBlock } from \"@internal/psl-parser\";\nimport { exactNameBodyWarning } from \"@internal/sql-contract/index-naming\";\nimport { assertWireNamePrefixLength, normalizeSqlBody } from \"@internal/sql-schema-ir/naming\";\nimport { assertDefined, invariant } from \"@internal/utils/assertions\";\nimport { ifDefined } from \"@internal/utils/defined\";\n//#region src/core/instant-now-generator.ts\nconst INSTANT_NOW_GENERATOR_ID = \"instantNow\";\nfunction instantNowControlDescriptor() {\n\treturn {\n\t\tid: INSTANT_NOW_GENERATOR_ID,\n\t\tbuildPhases: () => ({\n\t\t\tonCreate: {\n\t\t\t\tkind: \"generator\",\n\t\t\t\tid: INSTANT_NOW_GENERATOR_ID\n\t\t\t},\n\t\t\tonUpdate: {\n\t\t\t\tkind: \"generator\",\n\t\t\t\tid: INSTANT_NOW_GENERATOR_ID\n\t\t\t}\n\t\t})\n\t};\n}\nfunction instantNow() {\n\treturn requireTemporal({ generatorId: INSTANT_NOW_GENERATOR_ID }).Now.instant();\n}\n//#endregion\n//#region src/core/plain-date-time-now-generator.ts\n/**\n* The \"now\" generator for `timestamp` (without time zone) columns: the current\n* moment as a UTC wall-clock `Temporal.PlainDateTime`, the representation\n* `pg/timestamp-temporal@1` encodes. `timestamptz` columns use `instantNow`.\n*/\nconst PLAIN_DATE_TIME_NOW_GENERATOR_ID = \"plainDateTimeNow\";\nfunction plainDateTimeNowControlDescriptor() {\n\treturn {\n\t\tid: PLAIN_DATE_TIME_NOW_GENERATOR_ID,\n\t\tbuildPhases: () => ({\n\t\t\tonCreate: {\n\t\t\t\tkind: \"generator\",\n\t\t\t\tid: PLAIN_DATE_TIME_NOW_GENERATOR_ID\n\t\t\t},\n\t\t\tonUpdate: {\n\t\t\t\tkind: \"generator\",\n\t\t\t\tid: PLAIN_DATE_TIME_NOW_GENERATOR_ID\n\t\t\t}\n\t\t})\n\t};\n}\nfunction plainDateTimeNow() {\n\treturn requireTemporal({ generatorId: PLAIN_DATE_TIME_NOW_GENERATOR_ID }).Now.plainDateTimeISO(\"UTC\");\n}\n//#endregion\n//#region src/core/now-generators.ts\n/** The \"now\" generator for each codec that has one. The `temporal` field presets read it. */\nconst postgresNowGeneratorIds = {\n\t[PG_TIMESTAMP_TEMPORAL_CODEC_ID]: PLAIN_DATE_TIME_NOW_GENERATOR_ID,\n\t[PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID]: INSTANT_NOW_GENERATOR_ID,\n\t[PG_TIMESTAMPTZ_DATE_CODEC_ID]: TIMESTAMP_NOW_GENERATOR_ID,\n\t[PG_TIMESTAMP_STRING_CODEC_ID]: TIMESTAMP_NOW_GENERATOR_ID,\n\t[PG_TIMESTAMPTZ_STRING_CODEC_ID]: TIMESTAMP_NOW_GENERATOR_ID\n};\nconst nowGeneratorIdByCodecId = new Map(Object.entries(postgresNowGeneratorIds));\nfunction postgresNowGeneratorIdFor(codecId) {\n\treturn nowGeneratorIdByCodecId.get(codecId);\n}\n//#endregion\n//#region src/core/authoring.ts\nconst PSL_POLICY_INVALID_MAP = \"PSL_POLICY_INVALID_MAP\";\nconst PSL_FULL_TEXT_INDEX_ONE_FIELD = \"PSL_FULL_TEXT_INDEX_ONE_FIELD\";\nconst PSL_FULL_TEXT_INDEX_REQUIRES_NAME = \"PSL_FULL_TEXT_INDEX_REQUIRES_NAME\";\nconst PSL_FULL_TEXT_INDEX_NAME_XOR_MAP = \"PSL_FULL_TEXT_INDEX_NAME_XOR_MAP\";\nconst PSL_FULL_TEXT_INDEX_TEXT_FIELD = \"PSL_FULL_TEXT_INDEX_TEXT_FIELD\";\nconst PSL_NATIVE_ENUM_DUPLICATE_MEMBER_VALUE = \"PSL_NATIVE_ENUM_DUPLICATE_MEMBER_VALUE\";\nconst PSL_NATIVE_ENUM_MISSING_MEMBERS = \"PSL_NATIVE_ENUM_MISSING_MEMBERS\";\nconst PSL_ROLE_BLOCK_OUTSIDE_UNBOUND_NAMESPACE = \"PSL_ROLE_BLOCK_OUTSIDE_UNBOUND_NAMESPACE\";\n/**\n* `pg.enum(<ref>)` registers as an ordinary type constructor whose sole\n* positional argument names a `native_enum` entity instead of carrying a\n* literal value. The interpreter resolves the ref to the `native_enum`\n* entity generically (driven by `entityRefArg`); the `pg/enum@1` codec\n* descriptor's `columnFromEntity` hook (see `codecs.ts`) converts that\n* entity into the column's `typeParams` and native type.\n*/\nconst postgresAuthoringTypes = {\n\tBigIntNumber: {\n\t\tkind: \"typeConstructor\",\n\t\tdocumentation: \"A PostgreSQL 64-bit integer represented as a JavaScript number within its safe integer range.\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/int8number@1\",\n\t\t\tnativeType: \"int8\"\n\t\t}\n\t},\n\tUnboundedInt: {\n\t\tkind: \"typeConstructor\",\n\t\tdocumentation: \"An arbitrary-precision integer stored as PostgreSQL numeric and represented as bigint.\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/unboundedint@1\",\n\t\t\tnativeType: \"numeric\"\n\t\t}\n\t},\n\tpg: { enum: {\n\t\tkind: \"typeConstructor\",\n\t\tentityRefArg: {\n\t\t\tindex: 0,\n\t\t\tentityKind: \"native_enum\"\n\t\t},\n\t\toutput: { codecId: PG_ENUM_CODEC_ID }\n\t} }\n};\nconst policyTargetParam = {\n\ttype: entityRef({ kind: \"model\" }),\n\tdocumentation: \"The model protected by this policy; it must declare @@rls.\"\n};\nconst policyRolesParam = {\n\ttype: optional(list(oneOf(entityRef({\n\t\tkind: \"block\",\n\t\tkeyword: \"role\"\n\t}), identifier()))),\n\tdocumentation: \"The database roles to which this policy applies.\"\n};\nconst policyUsingParam = {\n\ttype: optional(str()),\n\tdocumentation: \"A SQL predicate controlling which rows this policy permits.\"\n};\nconst policyWithCheckParam = {\n\ttype: optional(str()),\n\tdocumentation: \"A SQL predicate checking rows being written by this policy.\"\n};\nconst policyPermissiveParam = {\n\ttype: optional(bool()),\n\tdocumentation: \"Whether the policy is permissive (combined with OR) rather than restrictive (combined with AND).\"\n};\nfunction policyUsingOnlySpec() {\n\treturn structBlock({ parameters: {\n\t\ttarget: policyTargetParam,\n\t\troles: policyRolesParam,\n\t\tusing: policyUsingParam,\n\t\tpermissive: policyPermissiveParam\n\t} });\n}\nfunction policyWithCheckOnlySpec() {\n\treturn structBlock({ parameters: {\n\t\ttarget: policyTargetParam,\n\t\troles: policyRolesParam,\n\t\twithCheck: policyWithCheckParam,\n\t\tpermissive: policyPermissiveParam\n\t} });\n}\nfunction policyBothPredicatesSpec() {\n\treturn structBlock({ parameters: {\n\t\ttarget: policyTargetParam,\n\t\troles: policyRolesParam,\n\t\tusing: policyUsingParam,\n\t\twithCheck: policyWithCheckParam,\n\t\tpermissive: policyPermissiveParam\n\t} });\n}\nfunction roleSpec() {\n\treturn structBlock({ parameters: {} });\n}\nfunction nativeEnumSpec() {\n\treturn mapBlock({ value: {\n\t\ttype: str(),\n\t\tdocumentation: \"The member value stored in the database enum type.\"\n\t} });\n}\n/**\n* The block keyword that authors each row-level security operation. The keyword is the operation, so\n* a policy block has no `operation` parameter. The reader looks a block's operation up here, and\n* `contract infer` and `contract print` look up the keyword to write.\n*/\nconst POLICY_BLOCK_KEYWORDS = {\n\tselect: \"policy_select\",\n\tinsert: \"policy_insert\",\n\tupdate: \"policy_update\",\n\tdelete: \"policy_delete\",\n\tall: \"policy_all\"\n};\nfunction isRlsPolicyOperation(value) {\n\treturn Object.hasOwn(POLICY_BLOCK_KEYWORDS, value);\n}\n/** The operation a `policy_<operation>` block keyword authors, or `undefined` for another keyword. */\nfunction policyOperationOfKeyword(keyword) {\n\treturn Object.keys(POLICY_BLOCK_KEYWORDS).filter(isRlsPolicyOperation).find((operation) => POLICY_BLOCK_KEYWORDS[operation] === keyword);\n}\n/**\n* Assembles a {@link PostgresRlsPolicy} from lowered inputs: normalizes the\n* predicates, computes the content-hash wire name, and constructs the frozen\n* entity. The single hash-assembly body shared by the PSL block lowering\n* ({@link lowerRlsPolicyFromBlock}) and the TS entity-handle lowering\n* ({@link postgresLowerEntityHandles}) so the two surfaces cannot drift.\n*/\nfunction buildRlsPolicyEntity(input) {\n\tconst permissive = input.permissive ?? true;\n\tconst wireHash = computeContentHash({\n\t\t...ifDefined(\"using\", input.using !== void 0 ? normalizeSqlBody(input.using) : void 0),\n\t\t...ifDefined(\"withCheck\", input.withCheck !== void 0 ? normalizeSqlBody(input.withCheck) : void 0),\n\t\troles: input.roles,\n\t\toperation: input.operation,\n\t\tpermissive\n\t});\n\treturn new PostgresRlsPolicy({\n\t\tnaming: {\n\t\t\tkind: \"wire\",\n\t\t\tprefix: input.prefix,\n\t\t\thash: wireHash\n\t\t},\n\t\ttableName: input.tableName,\n\t\tnamespaceId: input.namespaceId,\n\t\toperation: input.operation,\n\t\troles: input.roles,\n\t\tusing: input.using,\n\t\twithCheck: input.withCheck,\n\t\tpermissive\n\t});\n}\nfunction lowerRlsPolicyFromBlock(block, ctx) {\n\tconst prefix = block.name;\n\tconst operation = policyOperationOfKeyword(block.keyword) ?? \"select\";\n\tconst target = block.resolvedModelRefs?.[\"target\"];\n\tassertDefined(target, `lowerRlsPolicyFromBlock: policy \"${block.name}\" reached the factory without a projected \\`target\\` coordinate; the interpreter projects checked model references before invoking entity factories.`);\n\tconst roles = block.values.roles === void 0 ? [] : block.values.roles.map((role) => typeof role === \"string\" ? role : role.declaration.name).sort();\n\tconst using = block.values.using;\n\tconst withCheck = block.values.withCheck;\n\tconst permissive = block.values.permissive ?? true;\n\tconst mapAttr = block.attributes[\"map\"];\n\tif (mapAttr !== void 0) {\n\t\tconst exactName = mapAttr.args[\"name\"];\n\t\tinvariant(typeof exactName === \"string\", \"@@map on a policy block parses one string argument\");\n\t\tctx.warnings?.push(exactNameBodyWarning(\"policy\", exactName));\n\t\treturn new PostgresRlsPolicy({\n\t\t\tnaming: {\n\t\t\t\tkind: \"exact\",\n\t\t\t\tname: exactName\n\t\t\t},\n\t\t\ttableName: target.tableName,\n\t\t\tnamespaceId: target.namespaceId,\n\t\t\toperation,\n\t\t\troles,\n\t\t\tusing,\n\t\t\twithCheck,\n\t\t\tpermissive\n\t\t});\n\t}\n\treturn buildRlsPolicyEntity({\n\t\tprefix,\n\t\ttableName: target.tableName,\n\t\tnamespaceId: target.namespaceId,\n\t\toperation,\n\t\troles,\n\t\t...ifDefined(\"using\", using),\n\t\t...ifDefined(\"withCheck\", withCheck),\n\t\tpermissive\n\t});\n}\nconst policyEntityTypeOutput = {\n\tfactory: lowerRlsPolicyFromBlock,\n\tpslPlacement: (entity) => ({ namespaceId: entity.namespaceId })\n};\nfunction lowerNativeEnumFromBlock(block, ctx) {\n\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\tconst diagnostics = ctx.diagnostics;\n\tconst mapAttr = block.attributes[\"map\"];\n\tlet typeName = block.name;\n\tif (mapAttr !== void 0) {\n\t\tconst mapped = mapAttr.args[\"name\"];\n\t\tinvariant(typeof mapped === \"string\", \"@@map on a native_enum block parses one string argument\");\n\t\ttypeName = mapped;\n\t}\n\tlet memberError = false;\n\tconst seenValues = /* @__PURE__ */ new Set();\n\tconst members = [];\n\tfor (const [memberName, value] of Object.entries(block.values)) {\n\t\tif (seenValues.has(value)) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_NATIVE_ENUM_DUPLICATE_MEMBER_VALUE,\n\t\t\t\tmessage: `native_enum \"${block.name}\": duplicate member value \"${value}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: block.parameterSpans[memberName] ?? block.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tseenValues.add(value);\n\t\tmembers.push(value);\n\t}\n\tif (memberError) return void 0;\n\tif (members.length === 0) {\n\t\tdiagnostics?.push({\n\t\t\tcode: PSL_NATIVE_ENUM_MISSING_MEMBERS,\n\t\t\tmessage: `native_enum \"${block.name}\" must have at least one member`,\n\t\t\tsourceId,\n\t\t\tspan: block.span\n\t\t});\n\t\treturn;\n\t}\n\treturn new PostgresNativeEnum({\n\t\ttypeName,\n\t\tmembers\n\t});\n}\n/**\n* `native_enum`'s entity-type factory output, checked separately from the assembled\n* `postgresAuthoringEntityTypes` map below: `deriveValueSet` is SQL-family surface\n* ({@link SqlValueSetDerivingEntityTypeOutput}), not part of the framework\n* `AuthoringEntityTypeFactoryOutput` shape, so folding it directly into the map's single\n* `satisfies AuthoringEntityTypeNamespace` check would trip an excess-property error. Checking it\n* here against the intersection of both shapes keeps it structurally valid against each without\n* widening the map's own check.\n*/\nconst nativeEnumEntityTypeOutput = {\n\tfactory: lowerNativeEnumFromBlock,\n\tderiveValueSet: (entity) => ({\n\t\tkind: \"valueSet\",\n\t\tvalues: [...entity.members]\n\t})\n};\n/**\n* Lowers a `role <name> {}` block into a {@link PostgresRole}. Roles are\n* cluster-scoped in Postgres, so the block must be declared inside\n* `namespace unbound { … }` — any other lexical namespace (a named schema,\n* or the default bucket top-level declarations resolve to) is a load-time\n* diagnostic. The lowered entity carries the unbound coordinate.\n*/\nfunction lowerRoleFromBlock(block, ctx) {\n\tif (block.namespaceId !== UNBOUND_NAMESPACE_ID) {\n\t\tctx.diagnostics?.push({\n\t\t\tcode: PSL_ROLE_BLOCK_OUTSIDE_UNBOUND_NAMESPACE,\n\t\t\tmessage: `\\`role\\` block \"${block.name}\" must be declared inside \\`namespace unbound { }\\`, not in namespace \"${block.namespaceId}\"`,\n\t\t\tsourceId: ctx.sourceId ?? \"unknown\",\n\t\t\tspan: block.span\n\t\t});\n\t\treturn;\n\t}\n\treturn new PostgresRole({\n\t\tname: block.name,\n\t\tnamespaceId: UNBOUND_NAMESPACE_ID\n\t});\n}\nconst postgresAuthoringEntityTypes = {\n\trole: {\n\t\tkind: \"entity\",\n\t\tdiscriminator: \"role\",\n\t\tvalidatorSchema: PostgresRoleSchema,\n\t\toutput: { factory: lowerRoleFromBlock }\n\t},\n\trls: {\n\t\tkind: \"entity\",\n\t\tdiscriminator: \"rls\",\n\t\tvalidatorSchema: PostgresRlsEnablementSchema,\n\t\toutput: { factory: (input) => new PostgresRlsEnablement(input) }\n\t},\n\tpolicy: {\n\t\tkind: \"entity\",\n\t\tdiscriminator: \"policy\",\n\t\tvalidatorSchema: PostgresRlsPolicySchema,\n\t\toutput: policyEntityTypeOutput\n\t},\n\tnative_enum: {\n\t\tkind: \"entity\",\n\t\tdiscriminator: \"native_enum\",\n\t\tvalidatorSchema: PostgresNativeEnumSchema,\n\t\toutput: nativeEnumEntityTypeOutput\n\t}\n};\n/**\n* Field presets contributed by the Postgres target pack.\n*\n* These mirror the PSL scalar-to-codec mapping used by the Postgres adapter\n* (see `createPostgresPslScalarTypeDescriptors`), so that authoring a field\n* via the TS callback surface (e.g. `field.int()`) and via the PSL scalar\n* surface (e.g. `Int`) lowers to byte-identical contracts.\n*\n* The `uuidNative` / `id.uuidv4Native` / `id.uuidv7Native` presets use the\n* native Postgres `uuid` type (codecId `pg/uuid@1`). For cross-target\n* portability use `uuidString` / `id.uuidv4String` / `id.uuidv7String` from\n* the family pack instead.\n*/\nconst policyRequiresRls = {\n\tparameter: \"target\",\n\tattribute: \"rls\"\n};\nconst policyMapAttribute = blockAttribute(\"map\", {\n\tdocumentation: \"Maps this row-level security policy to its PostgreSQL policy name.\",\n\tpositional: [{\n\t\tkey: \"name\",\n\t\ttype: str(),\n\t\tdocumentation: \"The nonempty PostgreSQL policy name.\"\n\t}],\n\trefine: (parsed, ctx, attributeNode) => parsed.name === \"\" ? [leafDiagnostic(ctx, attributeNode, \"@@map policy name must be a non-empty string\", PSL_POLICY_INVALID_MAP)] : []\n});\nconst policyBlockAttributes = { map: () => policyMapAttribute };\nconst nativeEnumMapAttribute = blockAttribute(\"map\", {\n\tdocumentation: \"Maps this native enum to its PostgreSQL type name.\",\n\tpositional: [{\n\t\tkey: \"name\",\n\t\ttype: str(),\n\t\tdocumentation: \"The PostgreSQL enum type name.\"\n\t}]\n});\nconst postgresAuthoringPslBlockDescriptors = {\n\t[POLICY_BLOCK_KEYWORDS.select]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.select,\n\t\tdocumentation: \"Defines a row-level security policy controlling which rows can be selected.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyUsingOnlySpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\t[POLICY_BLOCK_KEYWORDS.delete]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.delete,\n\t\tdocumentation: \"Defines a row-level security policy controlling which rows can be deleted.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyUsingOnlySpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\t[POLICY_BLOCK_KEYWORDS.insert]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.insert,\n\t\tdocumentation: \"Defines a row-level security policy checking rows being inserted.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyWithCheckOnlySpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\t[POLICY_BLOCK_KEYWORDS.update]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.update,\n\t\tdocumentation: \"Defines a row-level security policy controlling row visibility and checks for updates.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyBothPredicatesSpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\t[POLICY_BLOCK_KEYWORDS.all]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.all,\n\t\tdocumentation: \"Defines a row-level security policy applying to all operations.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyBothPredicatesSpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\tnative_enum: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"native_enum\",\n\t\tdocumentation: \"Defines a PostgreSQL enum type with named string-valued members.\",\n\t\tdiscriminator: \"native_enum\",\n\t\tname: { required: true },\n\t\tspec: nativeEnumSpec,\n\t\tattributes: { map: () => nativeEnumMapAttribute }\n\t},\n\t/**\n\t* PSL block descriptor for `role` (e.g. `role anon {}`). Name-only, no\n\t* parameters and no body content. Declared inside `namespace unbound { }`\n\t* — see {@link lowerRoleFromBlock} for the placement check and the\n\t* coordinate the lowered entity carries.\n\t*/\n\trole: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"role\",\n\t\tdocumentation: \"Declares an existing database role in namespace unbound for use in security policies.\",\n\t\tdiscriminator: \"role\",\n\t\tname: { required: true },\n\t\tspec: roleSpec\n\t}\n};\nconst postgresRlsSpec = modelAttribute(\"rls\", { documentation: \"Enables PostgreSQL row-level security on this model’s table.\" });\nconst postgresRlsSpecFactory = () => postgresRlsSpec;\nconst [firstLanguage, ...remainingLanguages] = POSTGRES_TEXT_SEARCH_LANGUAGES;\nconst postgresFullTextIndexSpec = modelAttribute(\"fullTextIndex\", {\n\tdocumentation: \"Indexes one text column for full-text search, rendering the expression `fullTextMatches`, `fullTextRank` and `fullTextHeadline` lower to.\",\n\tpositional: [{\n\t\tkey: \"fields\",\n\t\ttype: list(fieldRef(), {\n\t\t\tallowEmpty: false,\n\t\t\tunique: true\n\t\t}),\n\t\tdocumentation: \"The single field to index.\"\n\t}],\n\tnamed: {\n\t\tlanguage: {\n\t\t\ttype: optional(oneOf(str(firstLanguage), ...remainingLanguages.map((language) => str(language)))),\n\t\t\tdocumentation: \"The text-search configuration. Defaults to `english`, and must match the language the query operations are given.\"\n\t\t},\n\t\tname: {\n\t\t\ttype: optional(str()),\n\t\t\tdocumentation: \"The index name. Mutually exclusive with `map`.\"\n\t\t},\n\t\tmap: {\n\t\t\ttype: optional(str()),\n\t\t\tdocumentation: \"The database index name. Mutually exclusive with `name`.\"\n\t\t},\n\t\twhere: {\n\t\t\ttype: optional(str()),\n\t\t\tdocumentation: \"The SQL predicate restricting rows included in a partial index.\"\n\t\t}\n\t},\n\trefine: (value, ctx, attributeNode) => {\n\t\tconst diagnostics = [];\n\t\tif (value.fields.length !== 1) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"The full-text operations work on one column; declare one `@@fullTextIndex` per column\", PSL_FULL_TEXT_INDEX_ONE_FIELD));\n\t\tif (value.name === void 0 && value.map === void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@fullTextIndex` requires a `name` or `map` argument (a default name cannot be derived from an expression)\", PSL_FULL_TEXT_INDEX_REQUIRES_NAME));\n\t\tif (value.name !== void 0 && value.map !== void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@fullTextIndex` takes at most one of `name` and `map`\", PSL_FULL_TEXT_INDEX_NAME_XOR_MAP));\n\t\treturn diagnostics;\n\t}\n});\nconst postgresFullTextIndexSpecFactory = () => postgresFullTextIndexSpec;\n/**\n* `@@` model attributes contributed by the Postgres target pack.\n*\n* `@@rls` is argument-less: presence marks the model's table\n* RLS-controlled. It lowers to a {@link PostgresRlsEnablement} marker in\n* the namespace's `entries.rls`, keyed by the model's table name — the\n* marker (never the policy set) is what drives\n* `ENABLE`/`DISABLE ROW LEVEL SECURITY` planning.\n*/\nconst postgresAuthoringModelAttributes = {\n\trls: {\n\t\tkind: \"modelAttribute\",\n\t\tattribute: \"rls\",\n\t\tspec: postgresRlsSpecFactory,\n\t\tlower: (_parsed, ctx) => ({\n\t\t\tkey: ctx.storageName,\n\t\t\tentity: new PostgresRlsEnablement({\n\t\t\t\ttableName: ctx.storageName,\n\t\t\t\tnamespaceId: ctx.namespaceId\n\t\t\t})\n\t\t})\n\t},\n\tfullTextIndex: {\n\t\tkind: \"modelAttribute\",\n\t\tattribute: \"fullTextIndex\",\n\t\tspec: postgresFullTextIndexSpecFactory,\n\t\trepeatable: true,\n\t\tlower: (parsed, ctx) => {\n\t\t\tconst fieldName = parsed.fields[0];\n\t\t\tinvariant(fieldName !== void 0 && parsed.fields.length === 1, `@@fullTextIndex on \"${ctx.modelName}\" lowered with ${parsed.fields.length} fields`);\n\t\t\tconst columnName = ctx.fieldStorageName(fieldName);\n\t\t\tconst codecId = ctx.fieldCodecId(fieldName);\n\t\t\tif (columnName === void 0 || codecId === void 0 || !isFullTextIndexableCodec(codecId)) {\n\t\t\t\tctx.diagnostics?.push({\n\t\t\t\t\tcode: PSL_FULL_TEXT_INDEX_TEXT_FIELD,\n\t\t\t\t\tmessage: `\\`@@fullTextIndex\\` indexes a text column, but \"${ctx.modelName}.${fieldName}\" is ${codecId === void 0 ? \"not a stored scalar field\" : `stored as \\`${codecId}\\``}.`,\n\t\t\t\t\tsourceId: ctx.sourceId ?? \"unknown\"\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn { index: {\n\t\t\t\texpression: renderFullTextIndexExpression(parsed.language ?? \"english\", columnName),\n\t\t\t\ttype: \"gin\",\n\t\t\t\toptions: void 0,\n\t\t\t\twhere: parsed.where,\n\t\t\t\tunique: void 0,\n\t\t\t\tname: parsed.name,\n\t\t\t\tmap: parsed.map\n\t\t\t} };\n\t\t}\n\t}\n};\nconst postgresAuthoringFieldPresets = {\n\ttext: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/text@1\",\n\t\t\tnativeType: \"text\"\n\t\t}\n\t},\n\tint: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/int4@1\",\n\t\t\tnativeType: \"int4\"\n\t\t}\n\t},\n\tbigint: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/int8@1\",\n\t\t\tnativeType: \"int8\"\n\t\t}\n\t},\n\tfloat: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/float8@1\",\n\t\t\tnativeType: \"float8\"\n\t\t}\n\t},\n\tdecimal: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/numeric@1\",\n\t\t\tnativeType: \"numeric\"\n\t\t}\n\t},\n\tboolean: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/bool@1\",\n\t\t\tnativeType: \"bool\"\n\t\t}\n\t},\n\tjson: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/jsonb@1\",\n\t\t\tnativeType: \"jsonb\"\n\t\t}\n\t},\n\tbytes: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/bytea@1\",\n\t\t\tnativeType: \"bytea\"\n\t\t}\n\t},\n\tdateTime: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/timestamptz-temporal@1\",\n\t\t\tnativeType: \"timestamptz\"\n\t\t}\n\t},\n\ttemporal: {\n\t\tcreatedAtJsDate: (/* @__PURE__ */ temporalAuthoringPresets({\n\t\t\tcodecId: PG_TIMESTAMPTZ_DATE_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_DATE_CODEC_ID]\n\t\t})).createdAt,\n\t\tupdatedAtJsDate: (/* @__PURE__ */ temporalAuthoringPresets({\n\t\t\tcodecId: PG_TIMESTAMPTZ_DATE_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_DATE_CODEC_ID]\n\t\t})).updatedAt,\n\t\ttimestamptzJsDate: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMPTZ_DATE_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_DATE_CODEC_ID]\n\t\t}),\n\t\t.../* @__PURE__ */ temporalAuthoringPresets({\n\t\t\tcodecId: PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID]\n\t\t}),\n\t\t.../* @__PURE__ */ temporalStringAuthoringPresets({\n\t\t\tcodecId: PG_TIMESTAMPTZ_STRING_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_STRING_CODEC_ID]\n\t\t}),\n\t\ttimestamp: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMP_TEMPORAL_CODEC_ID,\n\t\t\tnativeType: \"timestamp\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMP_TEMPORAL_CODEC_ID]\n\t\t}),\n\t\ttimestamptz: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID]\n\t\t}),\n\t\ttimestampString: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMP_STRING_CODEC_ID,\n\t\t\tnativeType: \"timestamp\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMP_STRING_CODEC_ID]\n\t\t}),\n\t\ttimestamptzString: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMPTZ_STRING_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_STRING_CODEC_ID]\n\t\t})\n\t},\n\tuuidNative: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/uuid@1\",\n\t\t\tnativeType: \"uuid\"\n\t\t}\n\t},\n\tid: {\n\t\tuuidv4Native: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: \"pg/uuid@1\",\n\t\t\t\tnativeType: \"uuid\",\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv4\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tuuidv7Native: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: \"pg/uuid@1\",\n\t\t\t\tnativeType: \"uuid\",\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv7\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t}\n\t}\n};\n/**\n* Resolves an entity handle's `target` ref to a table coordinate of this\n* contract, or throws the load-time diagnostic naming the handle: a\n* cross-space target is rejected (you cannot CREATE POLICY on a table\n* another space owns) and an unresolved target names the model.\n*/\nfunction requireLocalTarget(refs, subject) {\n\tconst target = refs[\"target\"];\n\tif (target !== void 0 && target.kind === \"resolved\") return {\n\t\tnamespaceId: target.namespaceId,\n\t\ttableName: target.tableName\n\t};\n\tif (target !== void 0 && target.kind === \"cross-space\") throw postgresError(\"CONTRACT.POLICY_INVALID\", `defineContract: ${subject} targets model \"${target.modelName ?? target.tableName}\", which lives in another contract space. Policies and rlsEnabled entries must target a model declared in this contract.`, { meta: {\n\t\tmodel: target.modelName ?? target.tableName,\n\t\treason: \"cross-space-target\"\n\t} });\n\tthrow postgresError(\"CONTRACT.MODEL_UNKNOWN\", `defineContract: ${subject} targets model \"${target?.modelName ?? \"<anonymous>\"}\", which is not in the contract's models. Add the model to \\`models\\`.`, { meta: { model: target?.modelName ?? \"<anonymous>\" } });\n}\n/**\n* The SQL-family entity-handle batch lowering hook for the Postgres pack\n* (`SqlEntityHandleLoweringContribution`). Receives every `entities` handle\n* whose kind this pack registered — batch, so the cross-entity diagnostics\n* (duplicate prefix, policy without rlsEnabled, duplicate role) can see\n* sibling handles — and lowers them with the same keying and hash assembly\n* as the PSL path: `policy` keyed by prefix (wire name via\n* {@link buildRlsPolicyEntity}), `rls` keyed by table name, `role` keyed by\n* name and filed under the default namespace (roles are declared\n* contract-wide; PSL has no role block to set a precedent).\n*/\nfunction postgresLowerEntityHandles(input) {\n\tconst enablements = /* @__PURE__ */ new Map();\n\tconst roles = /* @__PURE__ */ new Map();\n\tconst policies = [];\n\tconst coordinateKey = (coordinate) => `${coordinate.namespaceId} ${coordinate.tableName}`;\n\tfor (const { handle, refs } of input.handles) switch (handle.entityKind) {\n\t\tcase \"rls\": {\n\t\t\tconst coordinate = requireLocalTarget(refs, \"an rlsEnabled entry\");\n\t\t\tconst key = coordinateKey(coordinate);\n\t\t\tif (!enablements.has(key)) enablements.set(key, {\n\t\t\t\tcoordinate,\n\t\t\t\tentity: new PostgresRlsEnablement({\n\t\t\t\t\ttableName: coordinate.tableName,\n\t\t\t\t\tnamespaceId: coordinate.namespaceId\n\t\t\t\t})\n\t\t\t});\n\t\t\tbreak;\n\t\t}\n\t\tcase \"role\": {\n\t\t\tconst roleHandle = blindCast(handle);\n\t\t\tif (roles.has(roleHandle.name)) throw postgresError(\"CONTRACT.ROLE_INVALID\", `defineContract: role \"${roleHandle.name}\" is declared more than once in the entities list.`, { meta: {\n\t\t\t\trole: roleHandle.name,\n\t\t\t\treason: \"duplicate\"\n\t\t\t} });\n\t\t\troles.set(roleHandle.name, new PostgresRole({\n\t\t\t\tname: roleHandle.name,\n\t\t\t\tnamespaceId: UNBOUND_NAMESPACE_ID\n\t\t\t}));\n\t\t\tbreak;\n\t\t}\n\t\tcase \"policy\": {\n\t\t\tconst policyHandle = blindCast(handle);\n\t\t\tpolicies.push({\n\t\t\t\thandle: policyHandle,\n\t\t\t\trefs\n\t\t\t});\n\t\t\tbreak;\n\t\t}\n\t\tdefault: throw postgresError(\"CONTRACT.ENTITY_KIND_INVALID\", `defineContract: the postgres pack does not lower \"${handle.entityKind}\" handles from the entities list.`, { meta: { entityKind: handle.entityKind } });\n\t}\n\tconst rows = [];\n\tconst seenPrefixes = /* @__PURE__ */ new Set();\n\tfor (const { handle: policy, refs } of policies) {\n\t\tconst prefix = policy.name;\n\t\tassertWireNamePrefixLength(prefix, \"defineContract: policy prefix\");\n\t\tconst coordinate = requireLocalTarget(refs, `policy \"${prefix}\"`);\n\t\tif (!enablements.has(coordinateKey(coordinate))) {\n\t\t\tconst target = refs[\"target\"];\n\t\t\tthrow postgresError(\"CONTRACT.POLICY_INVALID\", `defineContract: policy \"${prefix}\" targets model \"${target?.modelName ?? coordinate.tableName}\", whose table is not RLS-enabled. Add rlsEnabled(<model>) to the entities list.`, { meta: {\n\t\t\t\tprefix,\n\t\t\t\tmodel: target?.modelName ?? coordinate.tableName,\n\t\t\t\treason: \"target-not-rls-enabled\"\n\t\t\t} });\n\t\t}\n\t\tconst prefixKey = `${coordinate.namespaceId} ${prefix}`;\n\t\tif (seenPrefixes.has(prefixKey)) throw postgresError(\"CONTRACT.POLICY_INVALID\", `defineContract: policy prefix \"${prefix}\" is declared more than once in namespace \"${coordinate.namespaceId}\". Policy prefixes must be unique per namespace.`, { meta: {\n\t\t\tprefix,\n\t\t\tnamespaceId: coordinate.namespaceId,\n\t\t\treason: \"duplicate-prefix\"\n\t\t} });\n\t\tseenPrefixes.add(prefixKey);\n\t\tconst roleNames = [...new Set(policy.roles.map((roleHandle) => roleHandle.name))].sort();\n\t\trows.push({\n\t\t\tnamespaceId: coordinate.namespaceId,\n\t\t\tentityKind: \"policy\",\n\t\t\tkey: prefix,\n\t\t\tentity: buildRlsPolicyEntity({\n\t\t\t\tprefix,\n\t\t\t\ttableName: coordinate.tableName,\n\t\t\t\tnamespaceId: coordinate.namespaceId,\n\t\t\t\toperation: policy.operation,\n\t\t\t\troles: roleNames,\n\t\t\t\t...ifDefined(\"using\", policy.using),\n\t\t\t\t...ifDefined(\"withCheck\", policy.withCheck)\n\t\t\t})\n\t\t});\n\t}\n\tfor (const { coordinate, entity } of enablements.values()) rows.push({\n\t\tnamespaceId: coordinate.namespaceId,\n\t\tentityKind: \"rls\",\n\t\tkey: coordinate.tableName,\n\t\tentity\n\t});\n\tfor (const [name, entity] of roles) rows.push({\n\t\tnamespaceId: UNBOUND_NAMESPACE_ID,\n\t\tentityKind: \"role\",\n\t\tkey: name,\n\t\tentity\n\t});\n\treturn rows;\n}\n//#endregion\nexport { postgresAuthoringPslBlockDescriptors as a, postgresNowGeneratorIdFor as c, plainDateTimeNowControlDescriptor as d, INSTANT_NOW_GENERATOR_ID as f, postgresAuthoringModelAttributes as i, PLAIN_DATE_TIME_NOW_GENERATOR_ID as l, instantNowControlDescriptor as m, postgresAuthoringEntityTypes as n, postgresAuthoringTypes as o, instantNow as p, postgresAuthoringFieldPresets as r, postgresLowerEntityHandles as s, POLICY_BLOCK_KEYWORDS as t, plainDateTimeNow as u };\n\n//# sourceMappingURL=authoring-BX7WXyUK.mjs.map"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"authoring-C5Ch8RNG-Qgq9GiOY.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/authoring-C5Ch8RNG.mjs"],"sourcesContent":["import { C as PG_TIMESTAMPTZ_DATE_CODEC_ID, D as PG_TIMESTAMP_TEMPORAL_CODEC_ID, E as PG_TIMESTAMP_STRING_CODEC_ID, T as PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID, s as PG_ENUM_CODEC_ID, w as PG_TIMESTAMPTZ_STRING_CODEC_ID } from \"./codec-ids-Cb0yO-IS.mjs\";\nimport { s as postgresError } from \"./errors-DYyzTYzE.mjs\";\nimport { N as requireTemporal } from \"./codecs-CnbVrlil.mjs\";\nimport { t as PostgresNativeEnum } from \"./postgres-native-enum-CdP3b_-R.mjs\";\nimport { n as renderFullTextIndexExpression, t as isFullTextIndexableCodec } from \"./full-text-index-expression-525ZZWf0.mjs\";\nimport { _ as PostgresRlsPolicy, d as PostgresNativeEnumSchema, f as PostgresRlsEnablementSchema, h as PostgresRole, m as PostgresRoleSchema, p as PostgresRlsPolicySchema, v as PostgresRlsEnablement } from \"./postgres-schema-C8slJGZo.mjs\";\nimport { n as computeContentHash } from \"./canonicalize-CrN3u_xM.mjs\";\nimport { n as POSTGRES_TEXT_SEARCH_LANGUAGES } from \"./text-search-languages-RO0HiUDm.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { temporalCodecPresetWithPrecision, temporalStringAuthoringPresets } from \"@internal/family-sql/control\";\nimport { TIMESTAMP_NOW_GENERATOR_ID, temporalAuthoringPresets } from \"@internal/framework-components/authoring\";\nimport { blockAttribute, bool, entityRef, fieldRef, identifier, leafDiagnostic, list, mapBlock, modelAttribute, oneOf, optional, str, structBlock } from \"@internal/psl-parser\";\nimport { exactNameBodyWarning } from \"@internal/sql-contract/index-naming\";\nimport { assertWireNamePrefixLength, normalizeSqlBody } from \"@internal/sql-schema-ir/naming\";\nimport { assertDefined, invariant } from \"@internal/utils/assertions\";\nimport { ifDefined } from \"@internal/utils/defined\";\n//#region src/core/instant-now-generator.ts\nconst INSTANT_NOW_GENERATOR_ID = \"instantNow\";\nfunction instantNowControlDescriptor() {\n\treturn {\n\t\tid: INSTANT_NOW_GENERATOR_ID,\n\t\tbuildPhases: () => ({\n\t\t\tonCreate: {\n\t\t\t\tkind: \"generator\",\n\t\t\t\tid: INSTANT_NOW_GENERATOR_ID\n\t\t\t},\n\t\t\tonUpdate: {\n\t\t\t\tkind: \"generator\",\n\t\t\t\tid: INSTANT_NOW_GENERATOR_ID\n\t\t\t}\n\t\t})\n\t};\n}\nfunction instantNow() {\n\treturn requireTemporal({ generatorId: INSTANT_NOW_GENERATOR_ID }).Now.instant();\n}\n//#endregion\n//#region src/core/plain-date-time-now-generator.ts\n/**\n* The \"now\" generator for `timestamp` (without time zone) columns: the current\n* moment as a UTC wall-clock `Temporal.PlainDateTime`, the representation\n* `pg/timestamp-temporal@1` encodes. `timestamptz` columns use `instantNow`.\n*/\nconst PLAIN_DATE_TIME_NOW_GENERATOR_ID = \"plainDateTimeNow\";\nfunction plainDateTimeNowControlDescriptor() {\n\treturn {\n\t\tid: PLAIN_DATE_TIME_NOW_GENERATOR_ID,\n\t\tbuildPhases: () => ({\n\t\t\tonCreate: {\n\t\t\t\tkind: \"generator\",\n\t\t\t\tid: PLAIN_DATE_TIME_NOW_GENERATOR_ID\n\t\t\t},\n\t\t\tonUpdate: {\n\t\t\t\tkind: \"generator\",\n\t\t\t\tid: PLAIN_DATE_TIME_NOW_GENERATOR_ID\n\t\t\t}\n\t\t})\n\t};\n}\nfunction plainDateTimeNow() {\n\treturn requireTemporal({ generatorId: PLAIN_DATE_TIME_NOW_GENERATOR_ID }).Now.plainDateTimeISO(\"UTC\");\n}\n//#endregion\n//#region src/core/now-generators.ts\n/** The \"now\" generator for each codec that has one. The `temporal` field presets read it. */\nconst postgresNowGeneratorIds = {\n\t[PG_TIMESTAMP_TEMPORAL_CODEC_ID]: PLAIN_DATE_TIME_NOW_GENERATOR_ID,\n\t[PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID]: INSTANT_NOW_GENERATOR_ID,\n\t[PG_TIMESTAMPTZ_DATE_CODEC_ID]: TIMESTAMP_NOW_GENERATOR_ID,\n\t[PG_TIMESTAMP_STRING_CODEC_ID]: TIMESTAMP_NOW_GENERATOR_ID,\n\t[PG_TIMESTAMPTZ_STRING_CODEC_ID]: TIMESTAMP_NOW_GENERATOR_ID\n};\nconst nowGeneratorIdByCodecId = new Map(Object.entries(postgresNowGeneratorIds));\nfunction postgresNowGeneratorIdFor(codecId) {\n\treturn nowGeneratorIdByCodecId.get(codecId);\n}\n//#endregion\n//#region src/core/authoring.ts\nconst PSL_POLICY_INVALID_MAP = \"PSL_POLICY_INVALID_MAP\";\nconst PSL_FULL_TEXT_INDEX_ONE_FIELD = \"PSL_FULL_TEXT_INDEX_ONE_FIELD\";\nconst PSL_FULL_TEXT_INDEX_REQUIRES_NAME = \"PSL_FULL_TEXT_INDEX_REQUIRES_NAME\";\nconst PSL_FULL_TEXT_INDEX_NAME_XOR_MAP = \"PSL_FULL_TEXT_INDEX_NAME_XOR_MAP\";\nconst PSL_FULL_TEXT_INDEX_TEXT_FIELD = \"PSL_FULL_TEXT_INDEX_TEXT_FIELD\";\nconst PSL_NATIVE_ENUM_DUPLICATE_MEMBER_VALUE = \"PSL_NATIVE_ENUM_DUPLICATE_MEMBER_VALUE\";\nconst PSL_NATIVE_ENUM_MISSING_MEMBERS = \"PSL_NATIVE_ENUM_MISSING_MEMBERS\";\nconst PSL_ROLE_BLOCK_OUTSIDE_UNBOUND_NAMESPACE = \"PSL_ROLE_BLOCK_OUTSIDE_UNBOUND_NAMESPACE\";\n/**\n* `pg.enum(<ref>)` registers as an ordinary type constructor whose sole\n* positional argument names a `native_enum` entity instead of carrying a\n* literal value. The interpreter resolves the ref to the `native_enum`\n* entity generically (driven by `entityRefArg`); the `pg/enum@1` codec\n* descriptor's `columnFromEntity` hook (see `codecs.ts`) converts that\n* entity into the column's `typeParams` and native type.\n*/\nconst postgresAuthoringTypes = {\n\tBigIntNumber: {\n\t\tkind: \"typeConstructor\",\n\t\tdocumentation: \"A PostgreSQL 64-bit integer represented as a JavaScript number within its safe integer range.\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/int8number@1\",\n\t\t\tnativeType: \"int8\"\n\t\t}\n\t},\n\tUnboundedInt: {\n\t\tkind: \"typeConstructor\",\n\t\tdocumentation: \"An arbitrary-precision integer stored as PostgreSQL numeric and represented as bigint.\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/unboundedint@1\",\n\t\t\tnativeType: \"numeric\"\n\t\t}\n\t},\n\tpg: { enum: {\n\t\tkind: \"typeConstructor\",\n\t\tentityRefArg: {\n\t\t\tindex: 0,\n\t\t\tentityKind: \"native_enum\"\n\t\t},\n\t\toutput: { codecId: PG_ENUM_CODEC_ID }\n\t} }\n};\nconst policyTargetParam = {\n\ttype: entityRef({ kind: \"model\" }),\n\tdocumentation: \"The model protected by this policy; it must declare @@rls.\"\n};\nconst policyRolesParam = {\n\ttype: optional(list(oneOf(entityRef({\n\t\tkind: \"block\",\n\t\tkeyword: \"role\"\n\t}), identifier()))),\n\tdocumentation: \"The database roles to which this policy applies.\"\n};\nconst policyUsingParam = {\n\ttype: optional(str()),\n\tdocumentation: \"A SQL predicate controlling which rows this policy permits.\"\n};\nconst policyWithCheckParam = {\n\ttype: optional(str()),\n\tdocumentation: \"A SQL predicate checking rows being written by this policy.\"\n};\nconst policyPermissiveParam = {\n\ttype: optional(bool()),\n\tdocumentation: \"Whether the policy is permissive (combined with OR) rather than restrictive (combined with AND).\"\n};\nfunction policyUsingOnlySpec() {\n\treturn structBlock({ parameters: {\n\t\ttarget: policyTargetParam,\n\t\troles: policyRolesParam,\n\t\tusing: policyUsingParam,\n\t\tpermissive: policyPermissiveParam\n\t} });\n}\nfunction policyWithCheckOnlySpec() {\n\treturn structBlock({ parameters: {\n\t\ttarget: policyTargetParam,\n\t\troles: policyRolesParam,\n\t\twithCheck: policyWithCheckParam,\n\t\tpermissive: policyPermissiveParam\n\t} });\n}\nfunction policyBothPredicatesSpec() {\n\treturn structBlock({ parameters: {\n\t\ttarget: policyTargetParam,\n\t\troles: policyRolesParam,\n\t\tusing: policyUsingParam,\n\t\twithCheck: policyWithCheckParam,\n\t\tpermissive: policyPermissiveParam\n\t} });\n}\nfunction roleSpec() {\n\treturn structBlock({ parameters: {} });\n}\nfunction nativeEnumSpec() {\n\treturn mapBlock({ value: {\n\t\ttype: str(),\n\t\tdocumentation: \"The member value stored in the database enum type.\"\n\t} });\n}\n/**\n* The block keyword that authors each row-level security operation. The keyword is the operation, so\n* a policy block has no `operation` parameter. The reader looks a block's operation up here, and\n* `contract infer` and `contract print` look up the keyword to write.\n*/\nconst POLICY_BLOCK_KEYWORDS = {\n\tselect: \"policy_select\",\n\tinsert: \"policy_insert\",\n\tupdate: \"policy_update\",\n\tdelete: \"policy_delete\",\n\tall: \"policy_all\"\n};\nfunction isRlsPolicyOperation(value) {\n\treturn Object.hasOwn(POLICY_BLOCK_KEYWORDS, value);\n}\n/** The operation a `policy_<operation>` block keyword authors, or `undefined` for another keyword. */\nfunction policyOperationOfKeyword(keyword) {\n\treturn Object.keys(POLICY_BLOCK_KEYWORDS).filter(isRlsPolicyOperation).find((operation) => POLICY_BLOCK_KEYWORDS[operation] === keyword);\n}\n/**\n* Assembles a {@link PostgresRlsPolicy} from lowered inputs: normalizes the\n* predicates, computes the content-hash wire name, and constructs the frozen\n* entity. The single hash-assembly body shared by the PSL block lowering\n* ({@link lowerRlsPolicyFromBlock}) and the TS entity-handle lowering\n* ({@link postgresLowerEntityHandles}) so the two surfaces cannot drift.\n*/\nfunction buildRlsPolicyEntity(input) {\n\tconst permissive = input.permissive ?? true;\n\tconst wireHash = computeContentHash({\n\t\t...ifDefined(\"using\", input.using !== void 0 ? normalizeSqlBody(input.using) : void 0),\n\t\t...ifDefined(\"withCheck\", input.withCheck !== void 0 ? normalizeSqlBody(input.withCheck) : void 0),\n\t\troles: input.roles,\n\t\toperation: input.operation,\n\t\tpermissive\n\t});\n\treturn new PostgresRlsPolicy({\n\t\tnaming: {\n\t\t\tkind: \"wire\",\n\t\t\tprefix: input.prefix,\n\t\t\thash: wireHash\n\t\t},\n\t\ttableName: input.tableName,\n\t\tnamespaceId: input.namespaceId,\n\t\toperation: input.operation,\n\t\troles: input.roles,\n\t\tusing: input.using,\n\t\twithCheck: input.withCheck,\n\t\tpermissive\n\t});\n}\nfunction lowerRlsPolicyFromBlock(block, ctx) {\n\tconst prefix = block.name;\n\tconst operation = policyOperationOfKeyword(block.keyword) ?? \"select\";\n\tconst target = block.resolvedModelRefs?.[\"target\"];\n\tassertDefined(target, `lowerRlsPolicyFromBlock: policy \"${block.name}\" reached the factory without a projected \\`target\\` coordinate; the interpreter projects checked model references before invoking entity factories.`);\n\tconst roles = block.values.roles === void 0 ? [] : block.values.roles.map((role) => typeof role === \"string\" ? role : role.declaration.name).sort();\n\tconst using = block.values.using;\n\tconst withCheck = block.values.withCheck;\n\tconst permissive = block.values.permissive ?? true;\n\tconst mapAttr = block.attributes[\"map\"];\n\tif (mapAttr !== void 0) {\n\t\tconst exactName = mapAttr.args[\"name\"];\n\t\tinvariant(typeof exactName === \"string\", \"@@map on a policy block parses one string argument\");\n\t\tctx.warnings?.push(exactNameBodyWarning(\"policy\", exactName));\n\t\treturn new PostgresRlsPolicy({\n\t\t\tnaming: {\n\t\t\t\tkind: \"exact\",\n\t\t\t\tname: exactName\n\t\t\t},\n\t\t\ttableName: target.tableName,\n\t\t\tnamespaceId: target.namespaceId,\n\t\t\toperation,\n\t\t\troles,\n\t\t\tusing,\n\t\t\twithCheck,\n\t\t\tpermissive\n\t\t});\n\t}\n\treturn buildRlsPolicyEntity({\n\t\tprefix,\n\t\ttableName: target.tableName,\n\t\tnamespaceId: target.namespaceId,\n\t\toperation,\n\t\troles,\n\t\t...ifDefined(\"using\", using),\n\t\t...ifDefined(\"withCheck\", withCheck),\n\t\tpermissive\n\t});\n}\nconst policyEntityTypeOutput = {\n\tfactory: lowerRlsPolicyFromBlock,\n\tpslPlacement: (entity) => ({ namespaceId: entity.namespaceId })\n};\nfunction lowerNativeEnumFromBlock(block, ctx) {\n\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\tconst diagnostics = ctx.diagnostics;\n\tconst mapAttr = block.attributes[\"map\"];\n\tlet typeName = block.name;\n\tif (mapAttr !== void 0) {\n\t\tconst mapped = mapAttr.args[\"name\"];\n\t\tinvariant(typeof mapped === \"string\", \"@@map on a native_enum block parses one string argument\");\n\t\ttypeName = mapped;\n\t}\n\tlet memberError = false;\n\tconst seenValues = /* @__PURE__ */ new Set();\n\tconst members = [];\n\tfor (const [memberName, value] of Object.entries(block.values)) {\n\t\tif (seenValues.has(value)) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_NATIVE_ENUM_DUPLICATE_MEMBER_VALUE,\n\t\t\t\tmessage: `native_enum \"${block.name}\": duplicate member value \"${value}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: block.parameterSpans[memberName] ?? block.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tseenValues.add(value);\n\t\tmembers.push(value);\n\t}\n\tif (memberError) return void 0;\n\tif (members.length === 0) {\n\t\tdiagnostics?.push({\n\t\t\tcode: PSL_NATIVE_ENUM_MISSING_MEMBERS,\n\t\t\tmessage: `native_enum \"${block.name}\" must have at least one member`,\n\t\t\tsourceId,\n\t\t\tspan: block.span\n\t\t});\n\t\treturn;\n\t}\n\treturn new PostgresNativeEnum({\n\t\ttypeName,\n\t\tmembers\n\t});\n}\n/**\n* `native_enum`'s entity-type factory output, checked separately from the assembled\n* `postgresAuthoringEntityTypes` map below: `deriveValueSet` is SQL-family surface\n* ({@link SqlValueSetDerivingEntityTypeOutput}), not part of the framework\n* `AuthoringEntityTypeFactoryOutput` shape, so folding it directly into the map's single\n* `satisfies AuthoringEntityTypeNamespace` check would trip an excess-property error. Checking it\n* here against the intersection of both shapes keeps it structurally valid against each without\n* widening the map's own check.\n*/\nconst nativeEnumEntityTypeOutput = {\n\tfactory: lowerNativeEnumFromBlock,\n\tderiveValueSet: (entity) => ({\n\t\tkind: \"valueSet\",\n\t\tvalues: [...entity.members]\n\t})\n};\n/**\n* Lowers a `role <name> {}` block into a {@link PostgresRole}. Roles are\n* cluster-scoped in Postgres, so the block must be declared inside\n* `namespace unbound { … }` — any other lexical namespace (a named schema,\n* or the default bucket top-level declarations resolve to) is a load-time\n* diagnostic. The lowered entity carries the unbound coordinate.\n*/\nfunction lowerRoleFromBlock(block, ctx) {\n\tif (block.namespaceId !== UNBOUND_NAMESPACE_ID) {\n\t\tctx.diagnostics?.push({\n\t\t\tcode: PSL_ROLE_BLOCK_OUTSIDE_UNBOUND_NAMESPACE,\n\t\t\tmessage: `\\`role\\` block \"${block.name}\" must be declared inside \\`namespace unbound { }\\`, not in namespace \"${block.namespaceId}\"`,\n\t\t\tsourceId: ctx.sourceId ?? \"unknown\",\n\t\t\tspan: block.span\n\t\t});\n\t\treturn;\n\t}\n\treturn new PostgresRole({\n\t\tname: block.name,\n\t\tnamespaceId: UNBOUND_NAMESPACE_ID\n\t});\n}\nconst postgresAuthoringEntityTypes = {\n\trole: {\n\t\tkind: \"entity\",\n\t\tdiscriminator: \"role\",\n\t\tvalidatorSchema: PostgresRoleSchema,\n\t\toutput: { factory: lowerRoleFromBlock }\n\t},\n\trls: {\n\t\tkind: \"entity\",\n\t\tdiscriminator: \"rls\",\n\t\tvalidatorSchema: PostgresRlsEnablementSchema,\n\t\toutput: { factory: (input) => new PostgresRlsEnablement(input) }\n\t},\n\tpolicy: {\n\t\tkind: \"entity\",\n\t\tdiscriminator: \"policy\",\n\t\tvalidatorSchema: PostgresRlsPolicySchema,\n\t\toutput: policyEntityTypeOutput\n\t},\n\tnative_enum: {\n\t\tkind: \"entity\",\n\t\tdiscriminator: \"native_enum\",\n\t\tvalidatorSchema: PostgresNativeEnumSchema,\n\t\toutput: nativeEnumEntityTypeOutput\n\t}\n};\n/**\n* Field presets contributed by the Postgres target pack.\n*\n* These mirror the PSL scalar-to-codec mapping used by the Postgres adapter\n* (see `createPostgresPslScalarTypeDescriptors`), so that authoring a field\n* via the TS callback surface (e.g. `field.int()`) and via the PSL scalar\n* surface (e.g. `Int`) lowers to byte-identical contracts.\n*\n* The `uuidNative` / `id.uuidv4Native` / `id.uuidv7Native` presets use the\n* native Postgres `uuid` type (codecId `pg/uuid@1`). For cross-target\n* portability use `uuidString` / `id.uuidv4String` / `id.uuidv7String` from\n* the family pack instead.\n*/\nconst policyRequiresRls = {\n\tparameter: \"target\",\n\tattribute: \"rls\"\n};\nconst policyMapAttribute = blockAttribute(\"map\", {\n\tdocumentation: \"Maps this row-level security policy to its PostgreSQL policy name.\",\n\tpositional: [{\n\t\tkey: \"name\",\n\t\ttype: str(),\n\t\tdocumentation: \"The nonempty PostgreSQL policy name.\"\n\t}],\n\trefine: (parsed, ctx, attributeNode) => parsed.name === \"\" ? [leafDiagnostic(ctx, attributeNode, \"@@map policy name must be a non-empty string\", PSL_POLICY_INVALID_MAP)] : []\n});\nconst policyBlockAttributes = { map: () => policyMapAttribute };\nconst nativeEnumMapAttribute = blockAttribute(\"map\", {\n\tdocumentation: \"Maps this native enum to its PostgreSQL type name.\",\n\tpositional: [{\n\t\tkey: \"name\",\n\t\ttype: str(),\n\t\tdocumentation: \"The PostgreSQL enum type name.\"\n\t}]\n});\nconst postgresAuthoringPslBlockDescriptors = {\n\t[POLICY_BLOCK_KEYWORDS.select]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.select,\n\t\tdocumentation: \"Defines a row-level security policy controlling which rows can be selected.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyUsingOnlySpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\t[POLICY_BLOCK_KEYWORDS.delete]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.delete,\n\t\tdocumentation: \"Defines a row-level security policy controlling which rows can be deleted.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyUsingOnlySpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\t[POLICY_BLOCK_KEYWORDS.insert]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.insert,\n\t\tdocumentation: \"Defines a row-level security policy checking rows being inserted.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyWithCheckOnlySpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\t[POLICY_BLOCK_KEYWORDS.update]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.update,\n\t\tdocumentation: \"Defines a row-level security policy controlling row visibility and checks for updates.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyBothPredicatesSpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\t[POLICY_BLOCK_KEYWORDS.all]: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: POLICY_BLOCK_KEYWORDS.all,\n\t\tdocumentation: \"Defines a row-level security policy applying to all operations.\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tspec: policyBothPredicatesSpec,\n\t\trequiresModelAttribute: policyRequiresRls,\n\t\tattributes: policyBlockAttributes\n\t},\n\tnative_enum: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"native_enum\",\n\t\tdocumentation: \"Defines a PostgreSQL enum type with named string-valued members.\",\n\t\tdiscriminator: \"native_enum\",\n\t\tname: { required: true },\n\t\tspec: nativeEnumSpec,\n\t\tattributes: { map: () => nativeEnumMapAttribute }\n\t},\n\t/**\n\t* PSL block descriptor for `role` (e.g. `role anon {}`). Name-only, no\n\t* parameters and no body content. Declared inside `namespace unbound { }`\n\t* — see {@link lowerRoleFromBlock} for the placement check and the\n\t* coordinate the lowered entity carries.\n\t*/\n\trole: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"role\",\n\t\tdocumentation: \"Declares an existing database role in namespace unbound for use in security policies.\",\n\t\tdiscriminator: \"role\",\n\t\tname: { required: true },\n\t\tspec: roleSpec\n\t}\n};\nconst postgresRlsSpec = modelAttribute(\"rls\", { documentation: \"Enables PostgreSQL row-level security on this model’s table.\" });\nconst postgresRlsSpecFactory = () => postgresRlsSpec;\nconst [firstLanguage, ...remainingLanguages] = POSTGRES_TEXT_SEARCH_LANGUAGES;\nconst postgresFullTextIndexSpec = modelAttribute(\"fullTextIndex\", {\n\tdocumentation: \"Indexes one text column for full-text search, rendering the expression `fullTextMatches`, `fullTextRank` and `fullTextHeadline` lower to.\",\n\tpositional: [{\n\t\tkey: \"fields\",\n\t\ttype: list(fieldRef(), {\n\t\t\tallowEmpty: false,\n\t\t\tunique: true\n\t\t}),\n\t\tdocumentation: \"The single field to index.\"\n\t}],\n\tnamed: {\n\t\tlanguage: {\n\t\t\ttype: optional(oneOf(str(firstLanguage), ...remainingLanguages.map((language) => str(language)))),\n\t\t\tdocumentation: \"The text-search configuration. Defaults to `english`, and must match the language the query operations are given.\"\n\t\t},\n\t\tname: {\n\t\t\ttype: optional(str()),\n\t\t\tdocumentation: \"The index name. Mutually exclusive with `map`.\"\n\t\t},\n\t\tmap: {\n\t\t\ttype: optional(str()),\n\t\t\tdocumentation: \"The database index name. Mutually exclusive with `name`.\"\n\t\t},\n\t\twhere: {\n\t\t\ttype: optional(str()),\n\t\t\tdocumentation: \"The SQL predicate restricting rows included in a partial index.\"\n\t\t}\n\t},\n\trefine: (value, ctx, attributeNode) => {\n\t\tconst diagnostics = [];\n\t\tif (value.fields.length !== 1) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"The full-text operations work on one column; declare one `@@fullTextIndex` per column\", PSL_FULL_TEXT_INDEX_ONE_FIELD));\n\t\tif (value.name === void 0 && value.map === void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@fullTextIndex` requires a `name` or `map` argument (a default name cannot be derived from an expression)\", PSL_FULL_TEXT_INDEX_REQUIRES_NAME));\n\t\tif (value.name !== void 0 && value.map !== void 0) diagnostics.push(leafDiagnostic(ctx, attributeNode, \"`@@fullTextIndex` takes at most one of `name` and `map`\", PSL_FULL_TEXT_INDEX_NAME_XOR_MAP));\n\t\treturn diagnostics;\n\t}\n});\nconst postgresFullTextIndexSpecFactory = () => postgresFullTextIndexSpec;\n/**\n* `@@` model attributes contributed by the Postgres target pack.\n*\n* `@@rls` is argument-less: presence marks the model's table\n* RLS-controlled. It lowers to a {@link PostgresRlsEnablement} marker in\n* the namespace's `entries.rls`, keyed by the model's table name — the\n* marker (never the policy set) is what drives\n* `ENABLE`/`DISABLE ROW LEVEL SECURITY` planning.\n*/\nconst postgresAuthoringModelAttributes = {\n\trls: {\n\t\tkind: \"modelAttribute\",\n\t\tattribute: \"rls\",\n\t\tspec: postgresRlsSpecFactory,\n\t\tlower: (_parsed, ctx) => ({\n\t\t\tkey: ctx.storageName,\n\t\t\tentity: new PostgresRlsEnablement({\n\t\t\t\ttableName: ctx.storageName,\n\t\t\t\tnamespaceId: ctx.namespaceId\n\t\t\t})\n\t\t})\n\t},\n\tfullTextIndex: {\n\t\tkind: \"modelAttribute\",\n\t\tattribute: \"fullTextIndex\",\n\t\tspec: postgresFullTextIndexSpecFactory,\n\t\trepeatable: true,\n\t\tlower: (parsed, ctx) => {\n\t\t\tconst fieldName = parsed.fields[0];\n\t\t\tinvariant(fieldName !== void 0 && parsed.fields.length === 1, `@@fullTextIndex on \"${ctx.modelName}\" lowered with ${parsed.fields.length} fields`);\n\t\t\tconst columnName = ctx.fieldStorageName(fieldName);\n\t\t\tconst codecId = ctx.fieldCodecId(fieldName);\n\t\t\tif (columnName === void 0 || codecId === void 0 || !isFullTextIndexableCodec(codecId)) {\n\t\t\t\tctx.diagnostics?.push({\n\t\t\t\t\tcode: PSL_FULL_TEXT_INDEX_TEXT_FIELD,\n\t\t\t\t\tmessage: `\\`@@fullTextIndex\\` indexes a text column, but \"${ctx.modelName}.${fieldName}\" is ${codecId === void 0 ? \"not a stored scalar field\" : `stored as \\`${codecId}\\``}.`,\n\t\t\t\t\tsourceId: ctx.sourceId ?? \"unknown\"\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn { index: {\n\t\t\t\texpression: renderFullTextIndexExpression(parsed.language ?? \"english\", columnName),\n\t\t\t\ttype: \"gin\",\n\t\t\t\toptions: void 0,\n\t\t\t\twhere: parsed.where,\n\t\t\t\tunique: void 0,\n\t\t\t\tname: parsed.name,\n\t\t\t\tmap: parsed.map\n\t\t\t} };\n\t\t}\n\t}\n};\nconst postgresAuthoringFieldPresets = {\n\ttext: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/text@1\",\n\t\t\tnativeType: \"text\"\n\t\t}\n\t},\n\tint: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/int4@1\",\n\t\t\tnativeType: \"int4\"\n\t\t}\n\t},\n\tbigint: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/int8@1\",\n\t\t\tnativeType: \"int8\"\n\t\t}\n\t},\n\tfloat: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/float8@1\",\n\t\t\tnativeType: \"float8\"\n\t\t}\n\t},\n\tdecimal: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/numeric@1\",\n\t\t\tnativeType: \"numeric\"\n\t\t}\n\t},\n\tboolean: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/bool@1\",\n\t\t\tnativeType: \"bool\"\n\t\t}\n\t},\n\tjson: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/jsonb@1\",\n\t\t\tnativeType: \"jsonb\"\n\t\t}\n\t},\n\tbytes: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/bytea@1\",\n\t\t\tnativeType: \"bytea\"\n\t\t}\n\t},\n\tdateTime: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/timestamptz-temporal@1\",\n\t\t\tnativeType: \"timestamptz\"\n\t\t}\n\t},\n\ttemporal: {\n\t\tcreatedAtJsDate: (/* @__PURE__ */ temporalAuthoringPresets({\n\t\t\tcodecId: PG_TIMESTAMPTZ_DATE_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_DATE_CODEC_ID]\n\t\t})).createdAt,\n\t\tupdatedAtJsDate: (/* @__PURE__ */ temporalAuthoringPresets({\n\t\t\tcodecId: PG_TIMESTAMPTZ_DATE_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_DATE_CODEC_ID]\n\t\t})).updatedAt,\n\t\ttimestamptzJsDate: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMPTZ_DATE_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_DATE_CODEC_ID]\n\t\t}),\n\t\t.../* @__PURE__ */ temporalAuthoringPresets({\n\t\t\tcodecId: PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID]\n\t\t}),\n\t\t.../* @__PURE__ */ temporalStringAuthoringPresets({\n\t\t\tcodecId: PG_TIMESTAMPTZ_STRING_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_STRING_CODEC_ID]\n\t\t}),\n\t\ttimestamp: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMP_TEMPORAL_CODEC_ID,\n\t\t\tnativeType: \"timestamp\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMP_TEMPORAL_CODEC_ID]\n\t\t}),\n\t\ttimestamptz: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_TEMPORAL_CODEC_ID]\n\t\t}),\n\t\ttimestampString: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMP_STRING_CODEC_ID,\n\t\t\tnativeType: \"timestamp\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMP_STRING_CODEC_ID]\n\t\t}),\n\t\ttimestamptzString: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: PG_TIMESTAMPTZ_STRING_CODEC_ID,\n\t\t\tnativeType: \"timestamptz\",\n\t\t\tgeneratorId: postgresNowGeneratorIds[PG_TIMESTAMPTZ_STRING_CODEC_ID]\n\t\t})\n\t},\n\tuuidNative: {\n\t\tkind: \"fieldPreset\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/uuid@1\",\n\t\t\tnativeType: \"uuid\"\n\t\t}\n\t},\n\tid: {\n\t\tuuidv4Native: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: \"pg/uuid@1\",\n\t\t\t\tnativeType: \"uuid\",\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv4\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t},\n\t\tuuidv7Native: {\n\t\t\tkind: \"fieldPreset\",\n\t\t\toutput: {\n\t\t\t\tcodecId: \"pg/uuid@1\",\n\t\t\t\tnativeType: \"uuid\",\n\t\t\t\texecutionDefaults: { onCreate: {\n\t\t\t\t\tkind: \"generator\",\n\t\t\t\t\tid: \"uuidv7\"\n\t\t\t\t} },\n\t\t\t\tid: true\n\t\t\t}\n\t\t}\n\t}\n};\n/**\n* Resolves an entity handle's `target` ref to a table coordinate of this\n* contract, or throws the load-time diagnostic naming the handle: a\n* cross-space target is rejected (you cannot CREATE POLICY on a table\n* another space owns) and an unresolved target names the model.\n*/\nfunction requireLocalTarget(refs, subject) {\n\tconst target = refs[\"target\"];\n\tif (target !== void 0 && target.kind === \"resolved\") return {\n\t\tnamespaceId: target.namespaceId,\n\t\ttableName: target.tableName\n\t};\n\tif (target !== void 0 && target.kind === \"cross-space\") throw postgresError(\"CONTRACT.POLICY_INVALID\", `defineContract: ${subject} targets model \"${target.modelName ?? target.tableName}\", which lives in another contract space. Policies and rlsEnabled entries must target a model declared in this contract.`, { meta: {\n\t\tmodel: target.modelName ?? target.tableName,\n\t\treason: \"cross-space-target\"\n\t} });\n\tthrow postgresError(\"CONTRACT.MODEL_UNKNOWN\", `defineContract: ${subject} targets model \"${target?.modelName ?? \"<anonymous>\"}\", which is not in the contract's models. Add the model to \\`models\\`.`, { meta: { model: target?.modelName ?? \"<anonymous>\" } });\n}\n/**\n* The SQL-family entity-handle batch lowering hook for the Postgres pack\n* (`SqlEntityHandleLoweringContribution`). Receives every `entities` handle\n* whose kind this pack registered — batch, so the cross-entity diagnostics\n* (duplicate prefix, policy without rlsEnabled, duplicate role) can see\n* sibling handles — and lowers them with the same keying and hash assembly\n* as the PSL path: `policy` keyed by prefix (wire name via\n* {@link buildRlsPolicyEntity}), `rls` keyed by table name, `role` keyed by\n* name and filed under the default namespace (roles are declared\n* contract-wide; PSL has no role block to set a precedent).\n*/\nfunction postgresLowerEntityHandles(input) {\n\tconst enablements = /* @__PURE__ */ new Map();\n\tconst roles = /* @__PURE__ */ new Map();\n\tconst policies = [];\n\tconst coordinateKey = (coordinate) => `${coordinate.namespaceId} ${coordinate.tableName}`;\n\tfor (const { handle, refs } of input.handles) switch (handle.entityKind) {\n\t\tcase \"rls\": {\n\t\t\tconst coordinate = requireLocalTarget(refs, \"an rlsEnabled entry\");\n\t\t\tconst key = coordinateKey(coordinate);\n\t\t\tif (!enablements.has(key)) enablements.set(key, {\n\t\t\t\tcoordinate,\n\t\t\t\tentity: new PostgresRlsEnablement({\n\t\t\t\t\ttableName: coordinate.tableName,\n\t\t\t\t\tnamespaceId: coordinate.namespaceId\n\t\t\t\t})\n\t\t\t});\n\t\t\tbreak;\n\t\t}\n\t\tcase \"role\": {\n\t\t\tconst roleHandle = blindCast(handle);\n\t\t\tif (roles.has(roleHandle.name)) throw postgresError(\"CONTRACT.ROLE_INVALID\", `defineContract: role \"${roleHandle.name}\" is declared more than once in the entities list.`, { meta: {\n\t\t\t\trole: roleHandle.name,\n\t\t\t\treason: \"duplicate\"\n\t\t\t} });\n\t\t\troles.set(roleHandle.name, new PostgresRole({\n\t\t\t\tname: roleHandle.name,\n\t\t\t\tnamespaceId: UNBOUND_NAMESPACE_ID\n\t\t\t}));\n\t\t\tbreak;\n\t\t}\n\t\tcase \"policy\": {\n\t\t\tconst policyHandle = blindCast(handle);\n\t\t\tpolicies.push({\n\t\t\t\thandle: policyHandle,\n\t\t\t\trefs\n\t\t\t});\n\t\t\tbreak;\n\t\t}\n\t\tdefault: throw postgresError(\"CONTRACT.ENTITY_KIND_INVALID\", `defineContract: the postgres pack does not lower \"${handle.entityKind}\" handles from the entities list.`, { meta: { entityKind: handle.entityKind } });\n\t}\n\tconst rows = [];\n\tconst seenPrefixes = /* @__PURE__ */ new Set();\n\tfor (const { handle: policy, refs } of policies) {\n\t\tconst prefix = policy.name;\n\t\tassertWireNamePrefixLength(prefix, \"defineContract: policy prefix\");\n\t\tconst coordinate = requireLocalTarget(refs, `policy \"${prefix}\"`);\n\t\tif (!enablements.has(coordinateKey(coordinate))) {\n\t\t\tconst target = refs[\"target\"];\n\t\t\tthrow postgresError(\"CONTRACT.POLICY_INVALID\", `defineContract: policy \"${prefix}\" targets model \"${target?.modelName ?? coordinate.tableName}\", whose table is not RLS-enabled. Add rlsEnabled(<model>) to the entities list.`, { meta: {\n\t\t\t\tprefix,\n\t\t\t\tmodel: target?.modelName ?? coordinate.tableName,\n\t\t\t\treason: \"target-not-rls-enabled\"\n\t\t\t} });\n\t\t}\n\t\tconst prefixKey = `${coordinate.namespaceId} ${prefix}`;\n\t\tif (seenPrefixes.has(prefixKey)) throw postgresError(\"CONTRACT.POLICY_INVALID\", `defineContract: policy prefix \"${prefix}\" is declared more than once in namespace \"${coordinate.namespaceId}\". Policy prefixes must be unique per namespace.`, { meta: {\n\t\t\tprefix,\n\t\t\tnamespaceId: coordinate.namespaceId,\n\t\t\treason: \"duplicate-prefix\"\n\t\t} });\n\t\tseenPrefixes.add(prefixKey);\n\t\tconst roleNames = [...new Set(policy.roles.map((roleHandle) => roleHandle.name))].sort();\n\t\trows.push({\n\t\t\tnamespaceId: coordinate.namespaceId,\n\t\t\tentityKind: \"policy\",\n\t\t\tkey: prefix,\n\t\t\tentity: buildRlsPolicyEntity({\n\t\t\t\tprefix,\n\t\t\t\ttableName: coordinate.tableName,\n\t\t\t\tnamespaceId: coordinate.namespaceId,\n\t\t\t\toperation: policy.operation,\n\t\t\t\troles: roleNames,\n\t\t\t\t...ifDefined(\"using\", policy.using),\n\t\t\t\t...ifDefined(\"withCheck\", policy.withCheck)\n\t\t\t})\n\t\t});\n\t}\n\tfor (const { coordinate, entity } of enablements.values()) rows.push({\n\t\tnamespaceId: coordinate.namespaceId,\n\t\tentityKind: \"rls\",\n\t\tkey: coordinate.tableName,\n\t\tentity\n\t});\n\tfor (const [name, entity] of roles) rows.push({\n\t\tnamespaceId: UNBOUND_NAMESPACE_ID,\n\t\tentityKind: \"role\",\n\t\tkey: name,\n\t\tentity\n\t});\n\treturn rows;\n}\n//#endregion\nexport { postgresAuthoringPslBlockDescriptors as a, postgresNowGeneratorIdFor as c, plainDateTimeNowControlDescriptor as d, INSTANT_NOW_GENERATOR_ID as f, postgresAuthoringModelAttributes as i, PLAIN_DATE_TIME_NOW_GENERATOR_ID as l, instantNowControlDescriptor as m, postgresAuthoringEntityTypes as n, postgresAuthoringTypes as o, instantNow as p, postgresAuthoringFieldPresets as r, postgresLowerEntityHandles as s, POLICY_BLOCK_KEYWORDS as t, plainDateTimeNow as u };\n\n//# sourceMappingURL=authoring-C5Ch8RNG.mjs.map"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import { structuredError } from "@prisma/orm-framework/utils/structured-error";
|
|
|
4
4
|
import { SAFE_INTEGER_BIGINT_RANGE, decodeJsonIntegerText, decodeJsonMatching } from "@prisma/orm-framework/components/codec";
|
|
5
5
|
import { withoutTrailing } from "@prisma/orm-framework/utils/text";
|
|
6
6
|
import { type } from "arktype";
|
|
7
|
-
//#region ../../../3-targets/3-targets/postgres/dist/codec-helpers-
|
|
7
|
+
//#region ../../../3-targets/3-targets/postgres/dist/codec-helpers-BmUrP6U9.mjs
|
|
8
8
|
/**
|
|
9
9
|
* Whether text fits `length` characters, counted as PostgreSQL counts them: code points. A `character` value is padded with spaces, and spaces past its length are dropped, so they do not count.
|
|
10
10
|
*/
|
|
@@ -276,7 +276,7 @@ function postgresIntervalFields(text) {
|
|
|
276
276
|
if (match === null || text === "" || text.endsWith(" ")) return void 0;
|
|
277
277
|
const [, years = "0", months = "0", days = "0", sign, hours = "0", minutes = "0", seconds = "0"] = match;
|
|
278
278
|
const fraction = match[8] ?? "";
|
|
279
|
-
const magnitude = (BigInt(hours) * 3600n + BigInt(minutes) * 60n + BigInt(seconds)) * MICROS_PER_SECOND +
|
|
279
|
+
const magnitude = (BigInt(hours) * 3600n + BigInt(minutes) * 60n + BigInt(seconds)) * MICROS_PER_SECOND + microsFromFraction(fraction, sign === "-");
|
|
280
280
|
return {
|
|
281
281
|
months: Number(years) * 12 + Number(months),
|
|
282
282
|
days: Number(days),
|
|
@@ -305,14 +305,17 @@ function pgIntervalCanonical(text) {
|
|
|
305
305
|
const pgIntervalToIso = (value) => formatIsoDuration(value);
|
|
306
306
|
const pgIntervalEncodeJson = (value) => formatIsoDuration(value);
|
|
307
307
|
const pgIntervalDecodeJson = (json) => intervalFieldsOf(decodeJsonMatching("pg/interval@1", json, ISO_DURATION, "an ISO-8601 duration"));
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
308
|
+
const intervalTextFields = (text) => {
|
|
309
|
+
if (ISO_DURATION.test(text)) return intervalFieldsOf(text);
|
|
310
|
+
const fields = postgresIntervalFields(text);
|
|
311
|
+
if (fields === void 0) throw postgresError("RUNTIME.DECODE_FAILED", `pg/interval@1 value must be an ISO-8601 duration or PostgreSQL interval text, got ${text}`, { meta: {
|
|
312
|
+
codecId: "pg/interval@1",
|
|
313
|
+
received: text
|
|
314
|
+
} });
|
|
315
|
+
return fields;
|
|
316
|
+
};
|
|
314
317
|
const pgIntervalDecode = (wire) => {
|
|
315
|
-
if (typeof wire === "string") return
|
|
318
|
+
if (typeof wire === "string") return intervalTextFields(wire);
|
|
316
319
|
const part = (name) => {
|
|
317
320
|
const raw = wire[name];
|
|
318
321
|
return typeof raw === "number" ? raw : 0;
|
|
@@ -347,9 +350,6 @@ function pgByteaCanonical(text) {
|
|
|
347
350
|
if (!BASE64_TEXT.test(text)) byteaRefused(`pg/bytea cannot read ${JSON.stringify(text)}. Write base64 with its padding, as in "aGVsbG8=", or PostgreSQL hex, written "\\\\x68656c6c6f" in a PSL string.`);
|
|
348
351
|
return Buffer.from(text, "base64").toString("base64");
|
|
349
352
|
}
|
|
350
|
-
/**
|
|
351
|
-
* Scalar pg bytea values arrive as Uint8Array/Buffer; target-parsed bytea list elements arrive as PostgreSQL hex text.
|
|
352
|
-
*/
|
|
353
353
|
const pgByteaDecodeWire = (wire) => {
|
|
354
354
|
if (wire instanceof Uint8Array) return wire.constructor === Uint8Array ? wire : new Uint8Array(wire.buffer, wire.byteOffset, wire.byteLength);
|
|
355
355
|
if (!BYTEA_TEXT.test(wire)) throw postgresError("RUNTIME.DECODE_FAILED", "pg/bytea@1 wire value must be a bytea hex string or Uint8Array", { meta: {
|
|
@@ -366,4 +366,4 @@ const pgJsonbDecode = (wire) => typeof wire === "string" ? parseJsonWire(wire) :
|
|
|
366
366
|
//#endregion
|
|
367
367
|
export { pgNumericRenderOutputType as A, pgIntervalEncodeJson as C, pgJsonbDecode as D, pgJsonEncode as E, precisionParamsSchema as M, renderLength as N, pgJsonbEncode as O, renderPrecision as P, pgIntervalDecodeJson as S, pgJsonDecode as T, pgInt8NumberDecodeJson as _, decimalTextNumberLiteral as a, pgIntervalCanonical as b, pgBigintEncode as c, pgByteaDecodeJson as d, pgByteaDecodeWire as f, pgInt8NumberDecode as g, pgInt8Decode as h, decimalTextBigintLiteral as i, pgUnboundedIntDecode as j, pgNumericDecode as k, pgBigintEncodeJson as l, pgFloatEncode as m, FLOAT4_MAX as n, fitsCharacterLength as o, pgByteaEncodeJson as p, canonicalUuid as r, fitsFloat4 as s, CANONICAL_UUID as t, pgByteaCanonical as u, pgInt8NumberEncode as v, pgIntervalToIso as w, pgIntervalDecode as x, pgInt8NumberEncodeJson as y };
|
|
368
368
|
|
|
369
|
-
//# sourceMappingURL=codec-helpers-
|
|
369
|
+
//# sourceMappingURL=codec-helpers-BmUrP6U9-DuO9gpqZ.mjs.map
|