@prisma/orm-target-postgres 8.0.0-rc.1-dev.45 → 8.0.0-rc.1-dev.46

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.
Files changed (96) hide show
  1. package/dist/{adapter-CaAPJalb-B2QNfZbf.mjs → adapter-B0xsc80z-sYcF0RVF.mjs} +28 -10
  2. package/dist/adapter-B0xsc80z-sYcF0RVF.mjs.map +1 -0
  3. package/dist/{adapter-CiyYJ6sy.d.mts → adapter-CPesdzv0.d.mts} +6 -2
  4. package/dist/{adapter-CiyYJ6sy.d.mts.map → adapter-CPesdzv0.d.mts.map} +1 -1
  5. package/dist/adapter.d.mts +1 -1
  6. package/dist/adapter.mjs +4 -4
  7. package/dist/adapter__adapter.d.mts +1 -1
  8. package/dist/adapter__adapter.mjs +1 -1
  9. package/dist/adapter__control.mjs +3 -3
  10. package/dist/adapter__control.mjs.map +1 -1
  11. package/dist/adapter__runtime.mjs +4 -4
  12. package/dist/adapter__runtime.mjs.map +1 -1
  13. package/dist/adapter__sql-renderer.mjs +1 -1
  14. package/dist/{authoring-bh6W1Fe5-D__Gfc6K.mjs → authoring-BOpdZa2N-ClrLFiXw.mjs} +4 -4
  15. package/dist/{authoring-bh6W1Fe5-D__Gfc6K.mjs.map → authoring-BOpdZa2N-ClrLFiXw.mjs.map} +1 -1
  16. package/dist/{check-expressions-drXwak3W-DqFpQtdc.mjs → check-expressions-5vhxWaFy-CBcjFeur.mjs} +3 -3
  17. package/dist/{check-expressions-drXwak3W-DqFpQtdc.mjs.map → check-expressions-5vhxWaFy-CBcjFeur.mjs.map} +1 -1
  18. package/dist/{codecs-C9-AwMlR.mjs → codecs-B1HgsJZ2.mjs} +2 -2
  19. package/dist/{codecs-C9-AwMlR.mjs.map → codecs-B1HgsJZ2.mjs.map} +1 -1
  20. package/dist/{codecs-dXnwOH7P-CIr-fArt.mjs → codecs-BmPCJWqb-DveZGJvm.mjs} +3 -3
  21. package/dist/{codecs-dXnwOH7P-CIr-fArt.mjs.map → codecs-BmPCJWqb-DveZGJvm.mjs.map} +1 -1
  22. package/dist/{contract-free-DOV_X620.mjs → contract-free-aQ4nT-_R.mjs} +3 -3
  23. package/dist/{contract-free-DOV_X620.mjs.map → contract-free-aQ4nT-_R.mjs.map} +1 -1
  24. package/dist/{control-DdSC-9L3.mjs → control-Drq2rquV.mjs} +8 -8
  25. package/dist/{control-DdSC-9L3.mjs.map → control-Drq2rquV.mjs.map} +1 -1
  26. package/dist/{control-adapter-CDXxUXH4--2IlV_vH.mjs → control-adapter-DFr4gS-r-DM3KcZdQ.mjs} +7 -7
  27. package/dist/{control-adapter-CDXxUXH4--2IlV_vH.mjs.map → control-adapter-DFr4gS-r-DM3KcZdQ.mjs.map} +1 -1
  28. package/dist/{control-policy-Cb-V9Wyh--ztBA5LG.mjs → control-policy-B53lnBCT-B9K9Cj1x.mjs} +6 -6
  29. package/dist/{control-policy-Cb-V9Wyh--ztBA5LG.mjs.map → control-policy-B53lnBCT-B9K9Cj1x.mjs.map} +1 -1
  30. package/dist/{ddl-DfzxUAlg-DvJZAdQx.mjs → ddl-CNQJds-C-WfZ3y4y8.mjs} +3 -3
  31. package/dist/{ddl-DfzxUAlg-DvJZAdQx.mjs.map → ddl-CNQJds-C-WfZ3y4y8.mjs.map} +1 -1
  32. package/dist/{descriptor-meta-DzQbQY6O-PYvgDC2L.mjs → descriptor-meta-KVX21fsl-DBDoB4eg.mjs} +4 -4
  33. package/dist/{descriptor-meta-DzQbQY6O-PYvgDC2L.mjs.map → descriptor-meta-KVX21fsl-DBDoB4eg.mjs.map} +1 -1
  34. package/dist/{descriptor-meta-ChnNOqso-Cc2MT-p1.mjs → descriptor-meta-rilAH3ep-dAmiVLpe.mjs} +6 -6
  35. package/dist/{descriptor-meta-ChnNOqso-Cc2MT-p1.mjs.map → descriptor-meta-rilAH3ep-dAmiVLpe.mjs.map} +1 -1
  36. package/dist/{diff-database-schema-Cgc6yPAr-Dtc6WYDZ.mjs → diff-database-schema-DKq76rCk-uehceHYz.mjs} +6 -6
  37. package/dist/{diff-database-schema-Cgc6yPAr-Dtc6WYDZ.mjs.map → diff-database-schema-DKq76rCk-uehceHYz.mjs.map} +1 -1
  38. package/dist/{errors-DCcVX4j1.d.mts → errors-CU4xIwwk.d.mts} +2 -2
  39. package/dist/{errors-DCcVX4j1.d.mts.map → errors-CU4xIwwk.d.mts.map} +1 -1
  40. package/dist/{errors-kYxOQjdD-D4T3rbVp.mjs → errors-DKjQzNaN-DFcF1thx.mjs} +4 -4
  41. package/dist/errors-DKjQzNaN-DFcF1thx.mjs.map +1 -0
  42. package/dist/migration-PTHAY9Cv.mjs.map +1 -1
  43. package/dist/{op-factory-call-BuAJIO_9-D4AoU_gQ.mjs → op-factory-call-H6zeDGLe-_1pAftJk.mjs} +7 -7
  44. package/dist/{op-factory-call-BuAJIO_9-D4AoU_gQ.mjs.map → op-factory-call-H6zeDGLe-_1pAftJk.mjs.map} +1 -1
  45. package/dist/{planner-DxwDv2Uf-BOSfEcQ1.mjs → planner-D0uogzvT-1WyGIC5p.mjs} +8 -8
  46. package/dist/{planner-DxwDv2Uf-BOSfEcQ1.mjs.map → planner-D0uogzvT-1WyGIC5p.mjs.map} +1 -1
  47. package/dist/{planner-ddl-builders-ConHfdcu-DwAriSzj.mjs → planner-ddl-builders-Chxh-LEQ-DXvwOeeA.mjs} +5 -5
  48. package/dist/{planner-ddl-builders-ConHfdcu-DwAriSzj.mjs.map → planner-ddl-builders-Chxh-LEQ-DXvwOeeA.mjs.map} +1 -1
  49. package/dist/{planner-produced-postgres-migration-C3rG2s2Q-B0Gg6xz7.mjs → planner-produced-postgres-migration-D5m8nK6s-CbZ4hlbv.mjs} +5 -5
  50. package/dist/{planner-produced-postgres-migration-C3rG2s2Q-B0Gg6xz7.mjs.map → planner-produced-postgres-migration-D5m8nK6s-CbZ4hlbv.mjs.map} +1 -1
  51. package/dist/{planner-sql-checks-DKialyGJ-BlU4hEEw.mjs → planner-sql-checks-ftgzvIO9-BTtBg2Vz.mjs} +4 -4
  52. package/dist/{planner-sql-checks-DKialyGJ-BlU4hEEw.mjs.map → planner-sql-checks-ftgzvIO9-BTtBg2Vz.mjs.map} +1 -1
  53. package/dist/{postgres-contract-view-B_0-lbVi-C4lFy3bt.mjs → postgres-contract-view-B8ykf2cO-T2LvWVFZ.mjs} +4 -4
  54. package/dist/{postgres-contract-view-B_0-lbVi-C4lFy3bt.mjs.map → postgres-contract-view-B8ykf2cO-T2LvWVFZ.mjs.map} +1 -1
  55. package/dist/{postgres-migration-umkQroaU-71tHIp16.mjs → postgres-migration-Dbq3RGfZ-aMnwfEAb.mjs} +6 -6
  56. package/dist/{postgres-migration-umkQroaU-71tHIp16.mjs.map → postgres-migration-Dbq3RGfZ-aMnwfEAb.mjs.map} +1 -1
  57. package/dist/{postgres-schema-CFOxDfUX-DTZtjh5X.mjs → postgres-schema-CF0yHESb-D7n2X21R.mjs} +3 -3
  58. package/dist/{postgres-schema-CFOxDfUX-DTZtjh5X.mjs.map → postgres-schema-CF0yHESb-D7n2X21R.mjs.map} +1 -1
  59. package/dist/{render-ops-DxzTxSsv-Bz85uUHk.mjs → render-ops-DOsRP0Po-BKn_c_Ia.mjs} +3 -3
  60. package/dist/{render-ops-DxzTxSsv-Bz85uUHk.mjs.map → render-ops-DOsRP0Po-BKn_c_Ia.mjs.map} +1 -1
  61. package/dist/{render-typescript-Cw3lFO28-Cx0lXWmv.mjs → render-typescript-Dqp1Spgn-B128r1qw.mjs} +3 -3
  62. package/dist/render-typescript-Dqp1Spgn-B128r1qw.mjs.map +1 -0
  63. package/dist/{resolve-ddl-schema-BIy8VDVK-Cb6hoVTS.mjs → resolve-ddl-schema-CoaeNP35-C-UZldpj.mjs} +3 -3
  64. package/dist/{resolve-ddl-schema-BIy8VDVK-Cb6hoVTS.mjs.map → resolve-ddl-schema-CoaeNP35-C-UZldpj.mjs.map} +1 -1
  65. package/dist/{sql-renderer-CZE98PJj-CHL66h-G.mjs → sql-renderer-ComgusFq-BBlqM1fw.mjs} +9 -17
  66. package/dist/sql-renderer-ComgusFq-BBlqM1fw.mjs.map +1 -0
  67. package/dist/{sql-utils-BnBlQxyh-DaX9Nb7Z.mjs → sql-utils-DuzN3JZg-DiXy4Vah.mjs} +3 -3
  68. package/dist/{sql-utils-BnBlQxyh-DaX9Nb7Z.mjs.map → sql-utils-DuzN3JZg-DiXy4Vah.mjs.map} +1 -1
  69. package/dist/target.d.mts +1 -1
  70. package/dist/target.mjs +21 -21
  71. package/dist/target__codecs.mjs +2 -2
  72. package/dist/target__contract-free.mjs +3 -3
  73. package/dist/target__control.mjs +1 -1
  74. package/dist/target__diff-database-schema.mjs +1 -1
  75. package/dist/target__errors.d.mts +1 -1
  76. package/dist/target__errors.mjs +1 -1
  77. package/dist/target__issue-planner.mjs +1 -1
  78. package/dist/target__migration.mjs +2 -2
  79. package/dist/target__op-factory-call.mjs +1 -1
  80. package/dist/target__pack.mjs +1 -1
  81. package/dist/target__planner-ddl-builders.mjs +1 -1
  82. package/dist/target__planner-produced-postgres-migration.mjs +1 -1
  83. package/dist/target__planner-sql-checks.mjs +1 -1
  84. package/dist/target__planner.mjs +2 -2
  85. package/dist/target__render-ops.mjs +1 -1
  86. package/dist/target__render-typescript.mjs +1 -1
  87. package/dist/target__runtime.mjs +1 -1
  88. package/dist/target__runtime.mjs.map +1 -1
  89. package/dist/target__schema-ir-annotations.mjs +1 -1
  90. package/dist/target__sql-utils.mjs +1 -1
  91. package/dist/target__types.mjs +2 -2
  92. package/package.json +9 -9
  93. package/dist/adapter-CaAPJalb-B2QNfZbf.mjs.map +0 -1
  94. package/dist/errors-kYxOQjdD-D4T3rbVp.mjs.map +0 -1
  95. package/dist/render-typescript-Cw3lFO28-Cx0lXWmv.mjs.map +0 -1
  96. package/dist/sql-renderer-CZE98PJj-CHL66h-G.mjs.map +0 -1
@@ -1,8 +1,8 @@
1
- import { n as renderLoweredSql, t as adapterError } from "./sql-renderer-CZE98PJj-CHL66h-G.mjs";
2
- import { i as createPostgresCodecRegistryWithBuiltins, t as PostgresControlAdapter } from "./control-adapter-CDXxUXH4--2IlV_vH.mjs";
1
+ import { n as renderLoweredSql, t as adapterError } from "./sql-renderer-ComgusFq-BBlqM1fw.mjs";
2
+ import { i as createPostgresCodecRegistryWithBuiltins, t as PostgresControlAdapter } from "./control-adapter-DFr4gS-r-DM3KcZdQ.mjs";
3
3
  import { isDdlNode } from "@prisma/orm-family-sql/relational-core/ast";
4
4
  import { APP_SPACE_ID } from "@prisma/orm-framework/components/control";
5
- //#region ../../../3-targets/6-adapters/postgres/dist/adapter-CaAPJalb.mjs
5
+ //#region ../../../3-targets/6-adapters/postgres/dist/adapter-B0xsc80z.mjs
6
6
  const defaultCapabilities = Object.freeze({
7
7
  postgres: {
8
8
  orderBy: true,
@@ -53,14 +53,32 @@ var PostgresAdapterImpl = class {
53
53
  return renderLoweredSql(ast, context.contract, this.codecRegistry);
54
54
  }
55
55
  };
56
- /** Codec-id lookup for bare-literal interpolations used by `fns.raw` on a postgres client. Contributed as the descriptor's static `rawCodecInferer` slot. */
56
+ const INT4_MIN = -2147483648;
57
+ const INT4_MAX = 2147483647;
58
+ /**
59
+ * The codec a bare JS number is bound through.
60
+ *
61
+ * An integer picks the narrowest column type that holds it: `int4` while it
62
+ * fits the signed 32-bit range, `int8` (number-valued) up to the safe-integer
63
+ * limit. Past that limit a JS number is no longer an exact integer, so it
64
+ * binds as `float8` rather than pretending to a precision it does not have.
65
+ */
66
+ function inferNumberCodecId(value) {
67
+ if (!Number.isSafeInteger(value)) return "pg/float8@1";
68
+ return value >= INT4_MIN && value <= INT4_MAX ? "pg/int4@1" : "pg/int8number@1";
69
+ }
70
+ /**
71
+ * Codec-id lookup for bare-literal interpolations used by `fns.raw` on a postgres client. Contributed as the descriptor's static `rawCodecInferer` slot.
72
+ *
73
+ * 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`.
74
+ */
57
75
  const postgresRawCodecInferer = { inferCodec(value) {
58
76
  switch (typeof value) {
59
- case "number": return Number.isSafeInteger(value) && value % 1 === 0 ? "pg/int4" : "pg/float8";
60
- case "bigint": return "pg/int8";
61
- case "string": return "pg/text";
62
- case "boolean": return "pg/bool";
63
- case "object": if (value instanceof Uint8Array) return "pg/bytea";
77
+ case "number": return inferNumberCodecId(value);
78
+ case "bigint": return "pg/int8@1";
79
+ case "string": return "pg/text@1";
80
+ case "boolean": return "pg/bool@1";
81
+ case "object": if (value instanceof Uint8Array) return "pg/bytea@1";
64
82
  }
65
83
  throw 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 } });
66
84
  } };
@@ -74,4 +92,4 @@ function createPostgresAdapterWithCodecRegistry(codecRegistry) {
74
92
  //#endregion
75
93
  export { createPostgresAdapterWithCodecRegistry as n, postgresRawCodecInferer as r, createPostgresAdapter as t };
76
94
 
77
- //# sourceMappingURL=adapter-CaAPJalb-B2QNfZbf.mjs.map
95
+ //# sourceMappingURL=adapter-B0xsc80z-sYcF0RVF.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapter-B0xsc80z-sYcF0RVF.mjs","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/adapter-B0xsc80z.mjs"],"sourcesContent":["import { n as adapterError, t as renderLoweredSql } from \"./sql-renderer-ComgusFq.mjs\";\nimport { i as createPostgresCodecRegistryWithBuiltins, t as PostgresControlAdapter } from \"./control-adapter-DFr4gS-r.mjs\";\nimport { APP_SPACE_ID } from \"@internal/framework-components/control\";\nimport { isDdlNode } from \"@internal/sql-relational-core/ast\";\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}\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-B0xsc80z.mjs.map"],"mappings":";;;;;AAKA,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;CAClB;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"}
@@ -14,9 +14,13 @@ declare class PostgresAdapterImpl implements Adapter<AnyQueryAst, PostgresContra
14
14
  constructor(codecRegistry: PostgresCodecRegistry, profileId?: string);
15
15
  lower(ast: AnyQueryAst | PostgresDdlNode, context: LowererContext<PostgresContract>): PostgresLoweredStatement;
16
16
  }
17
- /** Codec-id lookup for bare-literal interpolations used by `fns.raw` on a postgres client. Contributed as the descriptor's static `rawCodecInferer` slot. */
17
+ /**
18
+ * Codec-id lookup for bare-literal interpolations used by `fns.raw` on a postgres client. Contributed as the descriptor's static `rawCodecInferer` slot.
19
+ *
20
+ * 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`.
21
+ */
18
22
  declare const postgresRawCodecInferer: RawCodecInferer;
19
23
  declare function createPostgresAdapter(options?: PostgresAdapterOptions): Readonly<PostgresAdapterImpl>;
20
24
  //#endregion
21
25
  export { postgresRawCodecInferer as n, createPostgresAdapter as t };
22
- //# sourceMappingURL=adapter-CiyYJ6sy.d.mts.map
26
+ //# sourceMappingURL=adapter-CPesdzv0.d.mts.map
@@ -1 +1 @@
1
- {"version":3,"file":"adapter-CiyYJ6sy.d.mts","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/adapter.d.mts"],"mappings":";;;;;;;;cAKc,+BAA+B,QAAQ,aAAa,kBAAkB;WACzE;WACA;WACA,SAAS;mBACD;EACjB,YAAY,eAAe,uBAAuB;EAClD,MAAM,KAAK,cAAc,iBAAiB,SAAS,eAAe,oBAAoB;;;cAG1E,yBAAyB;iBACtB,sBAAsB,UAAU,yBAAyB,SAAS"}
1
+ {"version":3,"file":"adapter-CPesdzv0.d.mts","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/adapter.d.mts"],"mappings":";;;;;;;;cAKc,+BAA+B,QAAQ,aAAa,kBAAkB;WACzE;WACA;WACA,SAAS;mBACD;EACjB,YAAY,eAAe,uBAAuB;EAClD,MAAM,KAAK,cAAc,iBAAiB,SAAS,eAAe,oBAAoB;;;;;;;cAO1E,yBAAyB;iBACtB,sBAAsB,UAAU,yBAAyB,SAAS"}
@@ -1,6 +1,6 @@
1
1
  import { t as PostgresContract } from "./postgres-schema-Xsjt3RKO-Buv2X8ai.mjs";
2
2
  import { a as OrderClause, c as PostgresCodecRegistry, d as StorageColumn, f as StorageTable, i as Expr, l as PostgresLoweredStatement, n as ColumnRef, o as ParamRef, r as Direction, s as PostgresAdapterOptions, t as BinaryExpr, u as SelectAst } from "./types-CkryN1AS-BcQRGsDn.mjs";
3
- import { n as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-CiyYJ6sy.mjs";
3
+ import { n as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-CPesdzv0.mjs";
4
4
  import { _ as timestamptzColumn, a as float4Column, b as varcharColumn, c as int4Column, d as jsonColumn, f as jsonbColumn, g as timestampColumn, h as timeColumn, i as charColumn, l as int8Column, m as textColumn, n as boolColumn, o as float8Column, p as numericColumn, r as byteaColumn, s as int2Column, t as bitColumn, u as intervalColumn, v as timetzColumn, y as varbitColumn } from "./column-types-BH-MU6uU.mjs";
5
5
  import { t as parsePostgresDefault } from "./default-normalizer-B36TOul4.mjs";
6
6
  import { t as normalizeSchemaNativeType } from "./native-type-normalizer-DqJlOTeX.mjs";
package/dist/adapter.mjs CHANGED
@@ -1,8 +1,8 @@
1
- import { n as qualifyName, r as quoteIdentifier, t as escapeLiteral } from "./sql-utils-BnBlQxyh-DaX9Nb7Z.mjs";
1
+ import { n as qualifyName, r as quoteIdentifier, t as escapeLiteral } from "./sql-utils-DuzN3JZg-DiXy4Vah.mjs";
2
2
  import { t as parsePostgresDefault } from "./default-normalizer-Ba5ZebHM-isV86rjy.mjs";
3
3
  import { t as normalizeSchemaNativeType } from "./native-type-normalizer-yvd3tqv-.mjs";
4
- import { n as renderLoweredSql } from "./sql-renderer-CZE98PJj-CHL66h-G.mjs";
5
- import { i as createPostgresCodecRegistryWithBuiltins, r as createPostgresBuiltinCodecLookup, t as PostgresControlAdapter } from "./control-adapter-CDXxUXH4--2IlV_vH.mjs";
6
- import { r as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-CaAPJalb-B2QNfZbf.mjs";
4
+ import { n as renderLoweredSql } from "./sql-renderer-ComgusFq-BBlqM1fw.mjs";
5
+ import { i as createPostgresCodecRegistryWithBuiltins, r as createPostgresBuiltinCodecLookup, t as PostgresControlAdapter } from "./control-adapter-DFr4gS-r-DM3KcZdQ.mjs";
6
+ import { r as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-B0xsc80z-sYcF0RVF.mjs";
7
7
  import { _ as timestamptzColumn, a as float4Column, b as varcharColumn, c as int4Column, d as jsonColumn, f as jsonbColumn, g as timestampColumn, h as timeColumn, i as charColumn, l as int8Column, m as textColumn, n as boolColumn, o as float8Column, p as numericColumn, r as byteaColumn, s as int2Column, t as bitColumn, u as intervalColumn, v as timetzColumn, y as varbitColumn } from "./column-types-Bh92dNjD.mjs";
8
8
  export { PostgresControlAdapter, bitColumn, boolColumn, byteaColumn, charColumn, createPostgresAdapter, createPostgresBuiltinCodecLookup, createPostgresCodecRegistryWithBuiltins, escapeLiteral, float4Column, float8Column, int2Column, int4Column, int8Column, intervalColumn, jsonColumn, jsonbColumn, normalizeSchemaNativeType, numericColumn, parsePostgresDefault, postgresRawCodecInferer, qualifyName, quoteIdentifier, renderLoweredSql, textColumn, timeColumn, timestampColumn, timestamptzColumn, timetzColumn, varbitColumn, varcharColumn };
@@ -1,2 +1,2 @@
1
- import { n as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-CiyYJ6sy.mjs";
1
+ import { n as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-CPesdzv0.mjs";
2
2
  export { createPostgresAdapter, postgresRawCodecInferer };
@@ -1,2 +1,2 @@
1
- import { r as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-CaAPJalb-B2QNfZbf.mjs";
1
+ import { r as postgresRawCodecInferer, t as createPostgresAdapter } from "./adapter-B0xsc80z-sYcF0RVF.mjs";
2
2
  export { createPostgresAdapter, postgresRawCodecInferer };
@@ -1,8 +1,8 @@
1
- import { n as qualifyName, r as quoteIdentifier, t as escapeLiteral } from "./sql-utils-BnBlQxyh-DaX9Nb7Z.mjs";
1
+ import { n as qualifyName, r as quoteIdentifier, t as escapeLiteral } from "./sql-utils-DuzN3JZg-DiXy4Vah.mjs";
2
2
  import { t as parsePostgresDefault } from "./default-normalizer-Ba5ZebHM-isV86rjy.mjs";
3
3
  import { t as normalizeSchemaNativeType } from "./native-type-normalizer-yvd3tqv-.mjs";
4
- import { i as createPostgresCodecRegistryWithBuiltins, n as assemblePostgresCodecRegistry, r as createPostgresBuiltinCodecLookup, t as PostgresControlAdapter } from "./control-adapter-CDXxUXH4--2IlV_vH.mjs";
5
- import { t as postgresAdapterDescriptorMeta } from "./descriptor-meta-DzQbQY6O-PYvgDC2L.mjs";
4
+ import { i as createPostgresCodecRegistryWithBuiltins, n as assemblePostgresCodecRegistry, r as createPostgresBuiltinCodecLookup, t as PostgresControlAdapter } from "./control-adapter-DFr4gS-r-DM3KcZdQ.mjs";
5
+ import { t as postgresAdapterDescriptorMeta } from "./descriptor-meta-KVX21fsl-DBDoB4eg.mjs";
6
6
  import { timestampNowControlDescriptor } from "@prisma/orm-family-sql/family/control";
7
7
  import { int, num, oneOf, optional, str } from "@prisma/orm-framework/psl-parser";
8
8
  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 { i as createPostgresCodecRegistryWithBuiltins, n as assemblePostgresCodecRegistry, r as createPostgresBuiltinCodecLookup, t as PostgresControlAdapter } from \"./control-adapter-CDXxUXH4.mjs\";\nimport { t as postgresAdapterDescriptorMeta } from \"./descriptor-meta-DzQbQY6O.mjs\";\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 { timestampNowControlDescriptor } from \"@internal/family-sql/control\";\nimport { builtinGeneratorRegistryMetadata } from \"@internal/ids\";\nimport { int, num, oneOf, optional, str } from \"@internal/psl-parser\";\n//#region src/core/control-mutation-defaults.ts\nfunction invalidArgumentDiagnostic(input) {\n\treturn {\n\t\tok: false,\n\t\tdiagnostic: {\n\t\t\tcode: \"PSL_INVALID_DEFAULT_FUNCTION_ARGUMENT\",\n\t\t\tmessage: input.message,\n\t\t\tsourceId: input.context.sourceId,\n\t\t\tspan: input.span\n\t\t}\n\t};\n}\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}\nfunction lowerDbgenerated(input) {\n\tconst expression = input.call.args[\"expression\"];\n\tif (typeof expression !== \"string\" || expression.trim().length === 0) return invalidArgumentDiagnostic({\n\t\tcontext: input.context,\n\t\tspan: input.call.span,\n\t\tmessage: \"Default function \\\"dbgenerated\\\" argument cannot be empty.\"\n\t});\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\n\t\t\t}\n\t\t}\n\t};\n}\nconst nowSig = {};\nconst autoincrementSig = {};\nconst ulidSig = {};\nconst uuidSig = { positional: [{\n\tkey: \"version\",\n\ttype: optional(oneOf(num(4), num(7)))\n}] };\nconst cuidSig = { positional: [{\n\tkey: \"version\",\n\ttype: num(2)\n}] };\nconst nanoidSig = { positional: [{\n\tkey: \"size\",\n\ttype: optional(int({\n\t\tmin: 2,\n\t\tmax: 255\n\t}))\n}] };\nconst dbgeneratedSig = { positional: [{\n\tkey: \"expression\",\n\ttype: str()\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\t[\"dbgenerated\", {\n\t\tsignature: dbgeneratedSig,\n\t\tlower: lowerDbgenerated,\n\t\tusageSignatures: [\"dbgenerated(\\\"...\\\")\"]\n\t}]\n];\n/**\n* The base PSL scalars as zero-arg type constructors in the unified authoring\n* channel, with explicit `nativeType` values pinned to the codec manifests\n* (`codecLookup.targetTypesFor(codecId)[0]`).\n*\n* The type position is the only storage decider: a mutation-default generator\n* (`@default(uuid())`) never re-picks a column's storage.\n*/\nconst postgresScalarAuthoringTypes = {\n\tString: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/text@1\",\n\t\t\tnativeType: \"text\"\n\t\t}\n\t},\n\tBoolean: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/bool@1\",\n\t\t\tnativeType: \"bool\"\n\t\t}\n\t},\n\tInt: {\n\t\tkind: \"typeConstructor\",\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: \"typeConstructor\",\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: \"typeConstructor\",\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: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/numeric@1\",\n\t\t\tnativeType: \"numeric\"\n\t\t}\n\t},\n\tDateTime: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/timestamptz@1\",\n\t\t\tnativeType: \"timestamptz\"\n\t\t}\n\t},\n\tJson: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/json@1\",\n\t\t\tnativeType: \"json\"\n\t\t}\n\t},\n\tJsonb: {\n\t\tkind: \"typeConstructor\",\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: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/bytea@1\",\n\t\t\tnativeType: \"bytea\"\n\t\t}\n\t}\n};\nconst postgresNativeAuthoringTypes = {\n\tVarChar: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"length\",\n\t\t\tinteger: true,\n\t\t\tminimum: 1,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"sql/varchar@1\",\n\t\t\tnativeType: \"character varying\",\n\t\t\ttypeParams: { length: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tChar: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"length\",\n\t\t\tinteger: true,\n\t\t\tminimum: 1,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"sql/char@1\",\n\t\t\tnativeType: \"character\",\n\t\t\ttypeParams: { length: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tNumeric: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 1,\n\t\t\toptional: true\n\t\t}, {\n\t\t\tkind: \"number\",\n\t\t\tname: \"scale\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/numeric@1\",\n\t\t\tnativeType: \"numeric\",\n\t\t\ttypeParams: {\n\t\t\t\tprecision: {\n\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\tindex: 0\n\t\t\t\t},\n\t\t\t\tscale: {\n\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\tindex: 1\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tTimestamp: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/timestamp@1\",\n\t\t\tnativeType: \"timestamp\",\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tTimestamptz: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/timestamptz@1\",\n\t\t\tnativeType: \"timestamptz\",\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tTime: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/time@1\",\n\t\t\tnativeType: \"time\",\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tTimetz: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/timetz@1\",\n\t\t\tnativeType: \"timetz\",\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tUuid: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/uuid@1\",\n\t\t\tnativeType: \"uuid\"\n\t\t}\n\t},\n\tInet: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/inet@1\",\n\t\t\tnativeType: \"inet\"\n\t\t}\n\t},\n\tSmallInt: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/int2@1\",\n\t\t\tnativeType: \"int2\"\n\t\t}\n\t},\n\tReal: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/float4@1\",\n\t\t\tnativeType: \"float4\"\n\t\t}\n\t},\n\tDate: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/date@1\",\n\t\t\tnativeType: \"date\"\n\t\t}\n\t}\n};\nconst postgresAuthoringTypes = {\n\t...postgresScalarAuthoringTypes,\n\t...postgresNativeAuthoringTypes\n};\nfunction createPostgresDefaultFunctionRegistry() {\n\treturn new Map(postgresDefaultFunctionRegistryEntries);\n}\nfunction createPostgresMutationDefaultGeneratorDescriptors() {\n\treturn [...builtinGeneratorRegistryMetadata.map(({ id, applicableCodecIds }) => ({\n\t\tid,\n\t\tapplicableCodecIds\n\t})), timestampNowControlDescriptor()];\n}\n//#endregion\n//#region src/exports/control.ts\nconst postgresAdapterDescriptor = {\n\t...postgresAdapterDescriptorMeta,\n\tauthoring: {\n\t\ttype: postgresAuthoringTypes,\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":";;;;;;;;;AASA,SAAS,0BAA0B,OAAO;CACzC,OAAO;EACN,IAAI;EACJ,YAAY;GACX,MAAM;GACN,SAAS,MAAM;GACf,UAAU,MAAM,QAAQ;GACxB,MAAM,MAAM;EACb;CACD;AACD;AACA,SAAS,mBAAmB,IAAI,QAAQ;CACvC,OAAO;EACN,IAAI;EACJ,OAAO;GACN,MAAM;GACN,WAAW;IACV,MAAM;IACN;IACA,GAAG,SAAS,EAAE,OAAO,IAAI,CAAC;GAC3B;EACD;CACD;AACD;AACA,SAAS,qBAAqB;CAC7B,OAAO;EACN,IAAI;EACJ,OAAO;GACN,MAAM;GACN,cAAc;IACb,MAAM;IACN,YAAY;GACb;EACD;CACD;AACD;AACA,SAAS,WAAW;CACnB,OAAO;EACN,IAAI;EACJ,OAAO;GACN,MAAM;GACN,cAAc;IACb,MAAM;IACN,YAAY;GACb;EACD;CACD;AACD;AACA,SAAS,YAAY;CACpB,OAAO,mBAAmB,MAAM;AACjC;AACA,SAAS,UAAU,OAAO;CACzB,OAAO,MAAM,KAAK,KAAK,eAAe,IAAI,mBAAmB,QAAQ,IAAI,mBAAmB,QAAQ;AACrG;AACA,SAAS,YAAY;CACpB,OAAO,mBAAmB,OAAO;AAClC;AACA,SAAS,YAAY,OAAO;CAC3B,MAAM,OAAO,MAAM,KAAK,KAAK;CAC7B,OAAO,OAAO,SAAS,WAAW,mBAAmB,UAAU,EAAE,KAAK,CAAC,IAAI,mBAAmB,QAAQ;AACvG;AACA,SAAS,iBAAiB,OAAO;CAChC,MAAM,aAAa,MAAM,KAAK,KAAK;CACnC,IAAI,OAAO,eAAe,YAAY,WAAW,KAAK,CAAC,CAAC,WAAW,GAAG,OAAO,0BAA0B;EACtG,SAAS,MAAM;EACf,MAAM,MAAM,KAAK;EACjB,SAAS;CACV,CAAC;CACD,OAAO;EACN,IAAI;EACJ,OAAO;GACN,MAAM;GACN,cAAc;IACb,MAAM;IACN;GACD;EACD;CACD;AACD;AACA,MAAM,SAAS,CAAC;AAChB,MAAM,mBAAmB,CAAC;AAC1B,MAAM,UAAU,CAAC;AACjB,MAAM,UAAU,EAAE,YAAY,CAAC;CAC9B,KAAK;CACL,MAAM,SAAS,MAAM,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;AACrC,CAAC,EAAE;AACH,MAAM,UAAU,EAAE,YAAY,CAAC;CAC9B,KAAK;CACL,MAAM,IAAI,CAAC;AACZ,CAAC,EAAE;AACH,MAAM,YAAY,EAAE,YAAY,CAAC;CAChC,KAAK;CACL,MAAM,SAAS,IAAI;EAClB,KAAK;EACL,KAAK;CACN,CAAC,CAAC;AACH,CAAC,EAAE;AACH,MAAM,iBAAiB,EAAE,YAAY,CAAC;CACrC,KAAK;CACL,MAAM,IAAI;AACX,CAAC,EAAE;AACH,MAAM,yCAAyC;CAC9C,CAAC,iBAAiB;EACjB,WAAW;EACX,OAAO;EACP,iBAAiB,CAAC,iBAAiB;CACpC,CAAC;CACD,CAAC,OAAO;EACP,WAAW;EACX,OAAO;EACP,iBAAiB,CAAC,OAAO;CAC1B,CAAC;CACD,CAAC,QAAQ;EACR,WAAW;EACX,OAAO;EACP,iBAAiB;GAChB;GACA;GACA;EACD;CACD,CAAC;CACD,CAAC,QAAQ;EACR,WAAW;EACX,OAAO;EACP,iBAAiB,CAAC,SAAS;CAC5B,CAAC;CACD,CAAC,QAAQ;EACR,WAAW;EACX,OAAO;EACP,iBAAiB,CAAC,QAAQ;CAC3B,CAAC;CACD,CAAC,UAAU;EACV,WAAW;EACX,OAAO;EACP,iBAAiB,CAAC,YAAY,iBAAiB;CAChD,CAAC;CACD,CAAC,eAAe;EACf,WAAW;EACX,OAAO;EACP,iBAAiB,CAAC,sBAAsB;CACzC,CAAC;AACF;;;;;;;;;AASA,MAAM,+BAA+B;CACpC,QAAQ;EACP,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,SAAS;EACR,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,KAAK;EACJ,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,QAAQ;EACP,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,OAAO;EACN,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,SAAS;EACR,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,UAAU;EACT,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,MAAM;EACL,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,OAAO;EACN,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,OAAO;EACN,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;AACD;AACA,MAAM,+BAA+B;CACpC,SAAS;EACR,MAAM;EACN,MAAM,CAAC;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU;EACX,CAAC;EACD,QAAQ;GACP,SAAS;GACT,YAAY;GACZ,YAAY,EAAE,QAAQ;IACrB,MAAM;IACN,OAAO;GACR,EAAE;EACH;CACD;CACA,MAAM;EACL,MAAM;EACN,MAAM,CAAC;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU;EACX,CAAC;EACD,QAAQ;GACP,SAAS;GACT,YAAY;GACZ,YAAY,EAAE,QAAQ;IACrB,MAAM;IACN,OAAO;GACR,EAAE;EACH;CACD;CACA,SAAS;EACR,MAAM;EACN,MAAM,CAAC;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU;EACX,GAAG;GACF,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU;EACX,CAAC;EACD,QAAQ;GACP,SAAS;GACT,YAAY;GACZ,YAAY;IACX,WAAW;KACV,MAAM;KACN,OAAO;IACR;IACA,OAAO;KACN,MAAM;KACN,OAAO;IACR;GACD;EACD;CACD;CACA,WAAW;EACV,MAAM;EACN,MAAM,CAAC;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU;EACX,CAAC;EACD,QAAQ;GACP,SAAS;GACT,YAAY;GACZ,YAAY,EAAE,WAAW;IACxB,MAAM;IACN,OAAO;GACR,EAAE;EACH;CACD;CACA,aAAa;EACZ,MAAM;EACN,MAAM,CAAC;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU;EACX,CAAC;EACD,QAAQ;GACP,SAAS;GACT,YAAY;GACZ,YAAY,EAAE,WAAW;IACxB,MAAM;IACN,OAAO;GACR,EAAE;EACH;CACD;CACA,MAAM;EACL,MAAM;EACN,MAAM,CAAC;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU;EACX,CAAC;EACD,QAAQ;GACP,SAAS;GACT,YAAY;GACZ,YAAY,EAAE,WAAW;IACxB,MAAM;IACN,OAAO;GACR,EAAE;EACH;CACD;CACA,QAAQ;EACP,MAAM;EACN,MAAM,CAAC;GACN,MAAM;GACN,MAAM;GACN,SAAS;GACT,SAAS;GACT,UAAU;EACX,CAAC;EACD,QAAQ;GACP,SAAS;GACT,YAAY;GACZ,YAAY,EAAE,WAAW;IACxB,MAAM;IACN,OAAO;GACR,EAAE;EACH;CACD;CACA,MAAM;EACL,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,MAAM;EACL,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,UAAU;EACT,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,MAAM;EACL,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;CACA,MAAM;EACL,MAAM;EACN,QAAQ;GACP,SAAS;GACT,YAAY;EACb;CACD;AACD;AACA,MAAM,yBAAyB;CAC9B,GAAG;CACH,GAAG;AACJ;AACA,SAAS,wCAAwC;CAChD,OAAO,IAAI,IAAI,sCAAsC;AACtD;AACA,SAAS,oDAAoD;CAC5D,OAAO,CAAC,GAAG,iCAAiC,KAAK,EAAE,IAAI,0BAA0B;EAChF;EACA;CACD,EAAE,GAAG,8BAA8B,CAAC;AACrC;AAGA,MAAM,4BAA4B;CACjC,GAAG;CACH,WAAW;EACV,MAAM;EACN,wBAAwB;CACzB;CACA,yBAAyB;EACxB,yBAAyB,sCAAsC;EAC/D,sBAAsB,kDAAkD;CACzE;CACA,OAAO,OAAO;EACb,OAAO,IAAI,uBAAuB,8BAA8B;GAC/D,MAAM;GACN,GAAG,MAAM,YAAY,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,OAAO;GACjD,GAAG,MAAM;EACV,CAAC,CAAC;CACH;AACD"}
1
+ {"version":3,"file":"adapter__control.mjs","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/control.mjs"],"sourcesContent":["import { i as createPostgresCodecRegistryWithBuiltins, n as assemblePostgresCodecRegistry, r as createPostgresBuiltinCodecLookup, t as PostgresControlAdapter } from \"./control-adapter-DFr4gS-r.mjs\";\nimport { t as postgresAdapterDescriptorMeta } from \"./descriptor-meta-KVX21fsl.mjs\";\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 { timestampNowControlDescriptor } from \"@internal/family-sql/control\";\nimport { builtinGeneratorRegistryMetadata } from \"@internal/ids\";\nimport { int, num, oneOf, optional, str } from \"@internal/psl-parser\";\n//#region src/core/control-mutation-defaults.ts\nfunction invalidArgumentDiagnostic(input) {\n\treturn {\n\t\tok: false,\n\t\tdiagnostic: {\n\t\t\tcode: \"PSL_INVALID_DEFAULT_FUNCTION_ARGUMENT\",\n\t\t\tmessage: input.message,\n\t\t\tsourceId: input.context.sourceId,\n\t\t\tspan: input.span\n\t\t}\n\t};\n}\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}\nfunction lowerDbgenerated(input) {\n\tconst expression = input.call.args[\"expression\"];\n\tif (typeof expression !== \"string\" || expression.trim().length === 0) return invalidArgumentDiagnostic({\n\t\tcontext: input.context,\n\t\tspan: input.call.span,\n\t\tmessage: \"Default function \\\"dbgenerated\\\" argument cannot be empty.\"\n\t});\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\n\t\t\t}\n\t\t}\n\t};\n}\nconst nowSig = {};\nconst autoincrementSig = {};\nconst ulidSig = {};\nconst uuidSig = { positional: [{\n\tkey: \"version\",\n\ttype: optional(oneOf(num(4), num(7)))\n}] };\nconst cuidSig = { positional: [{\n\tkey: \"version\",\n\ttype: num(2)\n}] };\nconst nanoidSig = { positional: [{\n\tkey: \"size\",\n\ttype: optional(int({\n\t\tmin: 2,\n\t\tmax: 255\n\t}))\n}] };\nconst dbgeneratedSig = { positional: [{\n\tkey: \"expression\",\n\ttype: str()\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\t[\"dbgenerated\", {\n\t\tsignature: dbgeneratedSig,\n\t\tlower: lowerDbgenerated,\n\t\tusageSignatures: [\"dbgenerated(\\\"...\\\")\"]\n\t}]\n];\n/**\n* The base PSL scalars as zero-arg type constructors in the unified authoring\n* channel, with explicit `nativeType` values pinned to the codec manifests\n* (`codecLookup.targetTypesFor(codecId)[0]`).\n*\n* The type position is the only storage decider: a mutation-default generator\n* (`@default(uuid())`) never re-picks a column's storage.\n*/\nconst postgresScalarAuthoringTypes = {\n\tString: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/text@1\",\n\t\t\tnativeType: \"text\"\n\t\t}\n\t},\n\tBoolean: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/bool@1\",\n\t\t\tnativeType: \"bool\"\n\t\t}\n\t},\n\tInt: {\n\t\tkind: \"typeConstructor\",\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: \"typeConstructor\",\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: \"typeConstructor\",\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: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/numeric@1\",\n\t\t\tnativeType: \"numeric\"\n\t\t}\n\t},\n\tDateTime: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/timestamptz@1\",\n\t\t\tnativeType: \"timestamptz\"\n\t\t}\n\t},\n\tJson: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/json@1\",\n\t\t\tnativeType: \"json\"\n\t\t}\n\t},\n\tJsonb: {\n\t\tkind: \"typeConstructor\",\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: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/bytea@1\",\n\t\t\tnativeType: \"bytea\"\n\t\t}\n\t}\n};\nconst postgresNativeAuthoringTypes = {\n\tVarChar: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"length\",\n\t\t\tinteger: true,\n\t\t\tminimum: 1,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"sql/varchar@1\",\n\t\t\tnativeType: \"character varying\",\n\t\t\ttypeParams: { length: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tChar: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"length\",\n\t\t\tinteger: true,\n\t\t\tminimum: 1,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"sql/char@1\",\n\t\t\tnativeType: \"character\",\n\t\t\ttypeParams: { length: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tNumeric: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 1,\n\t\t\toptional: true\n\t\t}, {\n\t\t\tkind: \"number\",\n\t\t\tname: \"scale\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/numeric@1\",\n\t\t\tnativeType: \"numeric\",\n\t\t\ttypeParams: {\n\t\t\t\tprecision: {\n\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\tindex: 0\n\t\t\t\t},\n\t\t\t\tscale: {\n\t\t\t\t\tkind: \"arg\",\n\t\t\t\t\tindex: 1\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\tTimestamp: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/timestamp@1\",\n\t\t\tnativeType: \"timestamp\",\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tTimestamptz: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/timestamptz@1\",\n\t\t\tnativeType: \"timestamptz\",\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tTime: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/time@1\",\n\t\t\tnativeType: \"time\",\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tTimetz: {\n\t\tkind: \"typeConstructor\",\n\t\targs: [{\n\t\t\tkind: \"number\",\n\t\t\tname: \"precision\",\n\t\t\tinteger: true,\n\t\t\tminimum: 0,\n\t\t\toptional: true\n\t\t}],\n\t\toutput: {\n\t\t\tcodecId: \"pg/timetz@1\",\n\t\t\tnativeType: \"timetz\",\n\t\t\ttypeParams: { precision: {\n\t\t\t\tkind: \"arg\",\n\t\t\t\tindex: 0\n\t\t\t} }\n\t\t}\n\t},\n\tUuid: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/uuid@1\",\n\t\t\tnativeType: \"uuid\"\n\t\t}\n\t},\n\tInet: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/inet@1\",\n\t\t\tnativeType: \"inet\"\n\t\t}\n\t},\n\tSmallInt: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/int2@1\",\n\t\t\tnativeType: \"int2\"\n\t\t}\n\t},\n\tReal: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/float4@1\",\n\t\t\tnativeType: \"float4\"\n\t\t}\n\t},\n\tDate: {\n\t\tkind: \"typeConstructor\",\n\t\toutput: {\n\t\t\tcodecId: \"pg/date@1\",\n\t\t\tnativeType: \"date\"\n\t\t}\n\t}\n};\nconst postgresAuthoringTypes = {\n\t...postgresScalarAuthoringTypes,\n\t...postgresNativeAuthoringTypes\n};\nfunction createPostgresDefaultFunctionRegistry() {\n\treturn new Map(postgresDefaultFunctionRegistryEntries);\n}\nfunction createPostgresMutationDefaultGeneratorDescriptors() {\n\treturn [...builtinGeneratorRegistryMetadata.map(({ id, applicableCodecIds }) => ({\n\t\tid,\n\t\tapplicableCodecIds\n\t})), timestampNowControlDescriptor()];\n}\n//#endregion\n//#region src/exports/control.ts\nconst postgresAdapterDescriptor = {\n\t...postgresAdapterDescriptorMeta,\n\tauthoring: {\n\t\ttype: postgresAuthoringTypes,\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 { n as postgresCodecRegistry } from "./codecs-C9-AwMlR.mjs";
2
- import { n as assemblePostgresCodecRegistry } from "./control-adapter-CDXxUXH4--2IlV_vH.mjs";
3
- import { n as createPostgresAdapterWithCodecRegistry, r as postgresRawCodecInferer } from "./adapter-CaAPJalb-B2QNfZbf.mjs";
4
- import { n as postgresQueryOperations, t as postgresAdapterDescriptorMeta } from "./descriptor-meta-DzQbQY6O-PYvgDC2L.mjs";
1
+ import { n as postgresCodecRegistry } from "./codecs-B1HgsJZ2.mjs";
2
+ import { n as assemblePostgresCodecRegistry } from "./control-adapter-DFr4gS-r-DM3KcZdQ.mjs";
3
+ import { n as createPostgresAdapterWithCodecRegistry, r as postgresRawCodecInferer } from "./adapter-B0xsc80z-sYcF0RVF.mjs";
4
+ import { n as postgresQueryOperations, t as postgresAdapterDescriptorMeta } from "./descriptor-meta-KVX21fsl-DBDoB4eg.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 assemblePostgresCodecRegistry } from \"./control-adapter-CDXxUXH4.mjs\";\nimport { n as createPostgresAdapterWithCodecRegistry, r as postgresRawCodecInferer } from \"./adapter-CaAPJalb.mjs\";\nimport { n as postgresQueryOperations, t as postgresAdapterDescriptorMeta } from \"./descriptor-meta-DzQbQY6O.mjs\";\nimport { postgresCodecRegistry } from \"@internal/target-postgres/codecs\";\nimport { builtinGeneratorIds } from \"@internal/ids\";\nimport { timestampNowRuntimeGenerator } from \"@internal/family-sql/runtime\";\nimport { generateId } from \"@internal/ids/runtime\";\n//#region src/exports/runtime.ts\nfunction createPostgresMutationDefaultGenerators() {\n\treturn [...builtinGeneratorIds.map((id) => ({\n\t\tid,\n\t\tgenerate: (params) => {\n\t\t\treturn generateId(params ? {\n\t\t\t\tid,\n\t\t\t\tparams\n\t\t\t} : { id });\n\t\t},\n\t\tstability: \"field\"\n\t})), timestampNowRuntimeGenerator()];\n}\nconst postgresRuntimeAdapterDescriptor = {\n\t...postgresAdapterDescriptorMeta,\n\tcodecs: () => Array.from(postgresCodecRegistry.values()),\n\tqueryOperations: () => postgresQueryOperations(),\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,CAAC,GAAG,oBAAoB,KAAK,QAAQ;EAC3C;EACA,WAAW,WAAW;GACrB,OAAO,WAAW,SAAS;IAC1B;IACA;GACD,IAAI,EAAE,GAAG,CAAC;EACX;EACA,WAAW;CACZ,EAAE,GAAG,6BAA6B,CAAC;AACpC;AACA,MAAM,mCAAmC;CACxC,GAAG;CACH,cAAc,MAAM,KAAK,sBAAsB,OAAO,CAAC;CACvD,uBAAuB,wBAAwB;CAC/C,2BAA2B;CAC3B,iBAAiB;CACjB,OAAO,OAAO;EACb,OAAO,uCAAuC,8BAA8B;GAC3E,MAAM;GACN,MAAM;GACN,GAAG,MAAM;EACV,CAAC,CAAC;CACH;AACD"}
1
+ {"version":3,"file":"adapter__runtime.mjs","names":[],"sources":["../../../../3-targets/6-adapters/postgres/dist/runtime.mjs"],"sourcesContent":["import { n as assemblePostgresCodecRegistry } from \"./control-adapter-DFr4gS-r.mjs\";\nimport { n as createPostgresAdapterWithCodecRegistry, r as postgresRawCodecInferer } from \"./adapter-B0xsc80z.mjs\";\nimport { n as postgresQueryOperations, t as postgresAdapterDescriptorMeta } from \"./descriptor-meta-KVX21fsl.mjs\";\nimport { postgresCodecRegistry } from \"@internal/target-postgres/codecs\";\nimport { builtinGeneratorIds } from \"@internal/ids\";\nimport { timestampNowRuntimeGenerator } from \"@internal/family-sql/runtime\";\nimport { generateId } from \"@internal/ids/runtime\";\n//#region src/exports/runtime.ts\nfunction createPostgresMutationDefaultGenerators() {\n\treturn [...builtinGeneratorIds.map((id) => ({\n\t\tid,\n\t\tgenerate: (params) => {\n\t\t\treturn generateId(params ? {\n\t\t\t\tid,\n\t\t\t\tparams\n\t\t\t} : { id });\n\t\t},\n\t\tstability: \"field\"\n\t})), timestampNowRuntimeGenerator()];\n}\nconst postgresRuntimeAdapterDescriptor = {\n\t...postgresAdapterDescriptorMeta,\n\tcodecs: () => Array.from(postgresCodecRegistry.values()),\n\tqueryOperations: () => postgresQueryOperations(),\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,CAAC,GAAG,oBAAoB,KAAK,QAAQ;EAC3C;EACA,WAAW,WAAW;GACrB,OAAO,WAAW,SAAS;IAC1B;IACA;GACD,IAAI,EAAE,GAAG,CAAC;EACX;EACA,WAAW;CACZ,EAAE,GAAG,6BAA6B,CAAC;AACpC;AACA,MAAM,mCAAmC;CACxC,GAAG;CACH,cAAc,MAAM,KAAK,sBAAsB,OAAO,CAAC;CACvD,uBAAuB,wBAAwB;CAC/C,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-CZE98PJj-CHL66h-G.mjs";
1
+ import { n as renderLoweredSql } from "./sql-renderer-ComgusFq-BBlqM1fw.mjs";
2
2
  export { renderLoweredSql };
@@ -1,7 +1,7 @@
1
1
  import { o as PG_ENUM_CODEC_ID } from "./codec-ids-C5Rkltkw-DMf87l9s.mjs";
2
- import { n as postgresError } from "./errors-kYxOQjdD-D4T3rbVp.mjs";
2
+ import { n as postgresError } from "./errors-DKjQzNaN-DFcF1thx.mjs";
3
3
  import { t as PostgresNativeEnum } from "./postgres-native-enum-CdP3b_-R-Cgz9KEKx.mjs";
4
- 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-CFOxDfUX-DTZtjh5X.mjs";
4
+ 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-CF0yHESb-D7n2X21R.mjs";
5
5
  import { n as computeContentHash, t as POLICY_OPERATION_PREDICATES } from "./canonicalize-CrN3u_xM-D4MrOqcB.mjs";
6
6
  import { blindCast } from "@prisma/orm-framework/utils/casts";
7
7
  import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
@@ -11,7 +11,7 @@ import { assertDefined } from "@prisma/orm-framework/utils/assertions";
11
11
  import { temporalAuthoringPresets, temporalCodecPresetWithPrecision } from "@prisma/orm-family-sql/family/control";
12
12
  import { modelAttribute } from "@prisma/orm-framework/psl-parser";
13
13
  import { exactNameBodyWarning } from "@prisma/orm-family-sql/contract/index-naming";
14
- //#region ../../../3-targets/3-targets/postgres/dist/authoring-bh6W1Fe5.mjs
14
+ //#region ../../../3-targets/3-targets/postgres/dist/authoring-BOpdZa2N.mjs
15
15
  const PSL_RLS_PREDICATE_NOT_FOR_OPERATION = "PSL_RLS_PREDICATE_NOT_FOR_OPERATION";
16
16
  const PSL_POLICY_INVALID_MAP = "PSL_POLICY_INVALID_MAP";
17
17
  const PSL_NATIVE_ENUM_INVALID_MAP = "PSL_NATIVE_ENUM_INVALID_MAP";
@@ -770,4 +770,4 @@ function postgresLowerEntityHandles(input) {
770
770
  //#endregion
771
771
  export { postgresAuthoringTypes as a, postgresAuthoringPslBlockDescriptors as i, postgresAuthoringFieldPresets as n, postgresLowerEntityHandles as o, postgresAuthoringModelAttributes as r, postgresAuthoringEntityTypes as t };
772
772
 
773
- //# sourceMappingURL=authoring-bh6W1Fe5-D__Gfc6K.mjs.map
773
+ //# sourceMappingURL=authoring-BOpdZa2N-ClrLFiXw.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"authoring-bh6W1Fe5-D__Gfc6K.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/authoring-bh6W1Fe5.mjs"],"sourcesContent":["import { o as PG_ENUM_CODEC_ID } from \"./codec-ids-C5Rkltkw.mjs\";\nimport { n as postgresError } from \"./errors-kYxOQjdD.mjs\";\nimport { t as PostgresNativeEnum } from \"./postgres-native-enum-CdP3b_-R.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-CFOxDfUX.mjs\";\nimport { n as computeContentHash, t as POLICY_OPERATION_PREDICATES } from \"./canonicalize-CrN3u_xM.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { temporalAuthoringPresets, temporalCodecPresetWithPrecision } from \"@internal/family-sql/control\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { modelAttribute } from \"@internal/psl-parser\";\nimport { exactNameBodyWarning } from \"@internal/sql-contract/index-naming\";\nimport { assertWireNamePrefixLength, normalizeSqlBody } from \"@internal/sql-schema-ir/naming\";\nimport { assertDefined } from \"@internal/utils/assertions\";\n//#region src/core/authoring.ts\nconst PSL_RLS_PREDICATE_NOT_FOR_OPERATION = \"PSL_RLS_PREDICATE_NOT_FOR_OPERATION\";\nconst PSL_POLICY_INVALID_MAP = \"PSL_POLICY_INVALID_MAP\";\nconst PSL_NATIVE_ENUM_INVALID_MAP = \"PSL_NATIVE_ENUM_INVALID_MAP\";\nconst PSL_NATIVE_ENUM_BARE_MEMBER = \"PSL_NATIVE_ENUM_BARE_MEMBER\";\nconst PSL_EXTENSION_INVALID_VALUE = \"PSL_EXTENSION_INVALID_VALUE\";\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\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\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};\n/**\n* Maps a `policy_<op>` keyword to the RLS operation it authors. The keyword\n* IS the operation (per the project's rejection of a `policy { operation = … }`\n* conditional block).\n*/\nconst POLICY_KEYWORD_OPERATION = {\n\tpolicy_select: \"select\",\n\tpolicy_insert: \"insert\",\n\tpolicy_update: \"update\",\n\tpolicy_delete: \"delete\",\n\tpolicy_all: \"all\"\n};\nfunction readValueParam(block, key) {\n\tconst param = block.parameters[key];\n\treturn param?.kind === \"value\" ? param.raw : void 0;\n}\nfunction readListRefParams(block, key) {\n\tconst param = block.parameters[key];\n\tif (param?.kind !== \"list\") return [];\n\treturn param.items.flatMap((item) => item.kind === \"ref\" ? [item.identifier] : []);\n}\n/**\n* Unwraps a quoted PSL string argument, inverting the printer's\n* `escapePslString` escapes (`\\\\`, `\\\"`, `\\n`, `\\r`). An unknown escape\n* sequence is kept verbatim, matching the printer-side `unescapePslString`\n* convention.\n*/\nfunction unwrapQuotedString(raw) {\n\tif (!(raw.startsWith(\"\\\"\") && raw.endsWith(\"\\\"\") && raw.length >= 2)) return raw;\n\tconst inner = raw.slice(1, -1);\n\tlet result = \"\";\n\tfor (let i = 0; i < inner.length; i++) {\n\t\tif (inner[i] !== \"\\\\\" || i + 1 >= inner.length) {\n\t\t\tresult += inner[i];\n\t\t\tcontinue;\n\t\t}\n\t\tconst next = inner[i + 1];\n\t\tif (next === \"\\\\\" || next === \"\\\"\") result += next;\n\t\telse if (next === \"n\") result += \"\\n\";\n\t\telse if (next === \"r\") result += \"\\r\";\n\t\telse {\n\t\t\tresult += \"\\\\\";\n\t\t\tresult += next;\n\t\t}\n\t\ti++;\n\t}\n\treturn result;\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 = POLICY_KEYWORD_OPERATION[block.keyword] ?? \"select\";\n\tconst tableName = block.resolvedModelRefs?.[\"target\"]?.tableName;\n\tassertDefined(tableName, `lowerRlsPolicyFromBlock: policy \"${block.name}\" reached the factory without a resolved \\`target\\` ref; the interpreter resolves same-namespace model refs before invoking entity factories.`);\n\tconst roles = [...readListRefParams(block, \"roles\")].sort();\n\tconst usingRaw = readValueParam(block, \"using\");\n\tconst withCheckRaw = readValueParam(block, \"withCheck\");\n\tconst support = POLICY_OPERATION_PREDICATES[operation];\n\tconst rejectPredicate = (predicate) => {\n\t\tctx.diagnostics?.push({\n\t\t\tcode: PSL_RLS_PREDICATE_NOT_FOR_OPERATION,\n\t\t\tmessage: `\\`${block.keyword}\\` policy \"${block.name}\" does not take a \\`${predicate}\\` predicate; the ${operation.toUpperCase()} operation uses ${support.using ? \"`using`\" : \"`withCheck`\"}${support.using && support.withCheck ? \" and `withCheck`\" : \" only\"}.`,\n\t\t\tsourceId: ctx.sourceId ?? \"unknown\",\n\t\t\tspan: block.parameters[predicate]?.span ?? block.span\n\t\t});\n\t};\n\tif (usingRaw !== void 0 && !support.using) return rejectPredicate(\"using\");\n\tif (withCheckRaw !== void 0 && !support.withCheck) return rejectPredicate(\"withCheck\");\n\tconst using = usingRaw !== void 0 ? unwrapQuotedString(usingRaw) : void 0;\n\tconst withCheck = withCheckRaw !== void 0 ? unwrapQuotedString(withCheckRaw) : void 0;\n\tconst permissiveRaw = readValueParam(block, \"permissive\");\n\tif (permissiveRaw !== void 0 && permissiveRaw !== \"true\" && permissiveRaw !== \"false\") {\n\t\tctx.diagnostics?.push({\n\t\t\tcode: PSL_EXTENSION_INVALID_VALUE,\n\t\t\tmessage: `\\`${block.keyword}\\` policy \"${block.name}\" \\`permissive\\` must be \\`true\\` or \\`false\\`, got ${permissiveRaw}.`,\n\t\t\tsourceId: ctx.sourceId ?? \"unknown\",\n\t\t\tspan: block.parameters[\"permissive\"]?.span ?? block.span\n\t\t});\n\t\treturn;\n\t}\n\tconst permissive = permissiveRaw !== \"false\";\n\tconst mapAttr = block.blockAttributes.find((a) => a.name === \"map\");\n\tif (mapAttr) {\n\t\tconst rawArg = mapAttr.args[0]?.value;\n\t\tconst exactName = rawArg?.startsWith(\"\\\"\") && rawArg.endsWith(\"\\\"\") && rawArg.length >= 2 ? unwrapQuotedString(rawArg) : void 0;\n\t\tif (exactName === void 0 || exactName === \"\") {\n\t\t\tctx.diagnostics?.push({\n\t\t\t\tcode: PSL_POLICY_INVALID_MAP,\n\t\t\t\tmessage: `\\`${block.keyword}\\` policy \"${block.name}\" @@map attribute must have a quoted, non-empty policy-name argument`,\n\t\t\t\tsourceId: ctx.sourceId ?? \"unknown\",\n\t\t\t\tspan: mapAttr.span\n\t\t\t});\n\t\t\treturn;\n\t\t}\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,\n\t\t\tnamespaceId: block.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,\n\t\tnamespaceId: block.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}\n/**\n* Lowers a `native_enum { memberName = \"value\" … @@map(\"type_name\") }` block\n* into a {@link PostgresNativeEnum}. Members must be authored as explicit\n* `key = \"value\"` pairs — a bare (value-less) member is a diagnostic, not\n* accepted (authoring-design.md §2.1). The parsed `memberName` is only used\n* to duplicate-check and report diagnostics; the lowered entity carries just\n* the member values (a native enum is value-only — the member \"name\" isn't\n* a separate authoring concept from the value). `typeName` comes from\n* `@@map` or defaults to the block name verbatim.\n*/\nfunction lowerNativeEnumFromBlock(block, ctx) {\n\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\tconst diagnostics = ctx.diagnostics;\n\tconst mapAttr = block.blockAttributes.find((a) => a.name === \"map\");\n\tlet typeName = block.name;\n\tif (mapAttr) {\n\t\tconst rawArg = mapAttr.args[0]?.value;\n\t\tconst mapped = rawArg !== void 0 ? unwrapQuotedString(rawArg) : void 0;\n\t\tif (mapped === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_NATIVE_ENUM_INVALID_MAP,\n\t\t\t\tmessage: `native_enum \"${block.name}\" @@map attribute must have a quoted type-name argument`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: mapAttr.span\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\ttypeName = mapped;\n\t}\n\tlet memberError = false;\n\tconst seenValues = /* @__PURE__ */ new Set();\n\tconst members = [];\n\tfor (const [memberName, paramValue] of Object.entries(block.parameters)) {\n\t\tif (paramValue.kind === \"bare\") {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_NATIVE_ENUM_BARE_MEMBER,\n\t\t\t\tmessage: `native_enum \"${block.name}\" member \"${memberName}\" has no value; members must be authored as \"${memberName} = \\\\\"value\\\\\"\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: paramValue.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (paramValue.kind !== \"value\") continue;\n\t\tlet jsonValue;\n\t\ttry {\n\t\t\tjsonValue = JSON.parse(paramValue.raw);\n\t\t} catch {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_EXTENSION_INVALID_VALUE,\n\t\t\t\tmessage: `native_enum \"${block.name}\" member \"${memberName}\" value \"${paramValue.raw}\" is not valid JSON`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: paramValue.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof jsonValue !== \"string\") {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_EXTENSION_INVALID_VALUE,\n\t\t\t\tmessage: `native_enum \"${block.name}\" member \"${memberName}\" value must be a string`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: paramValue.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (seenValues.has(jsonValue)) {\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 \"${jsonValue}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: paramValue.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tseenValues.add(jsonValue);\n\t\tmembers.push(jsonValue);\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: { factory: lowerRlsPolicyFromBlock }\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*/\n/**\n* Shared parameter descriptors for the five `policy_<op>` PSL block\n* keywords. All five share the `policy` discriminator — the parser\n* dispatches by keyword (see the framework's PSL-block SPI), and every\n* keyword's factory lowers to `PostgresRlsPolicy` via `lowerRlsPolicyFromBlock`.\n*\n* The `roles` list uses `scope:'cross-space'` because same-namespace\n* role ref resolution requires PSL namespace entries keyed by `refKind`\n* (i.e. `'role'`), which in turn requires the role block discriminator to\n* equal `'role'`. Aligning discriminator with refKind is tracked for\n* slice 4 (cross-space roles). Until then cross-space passes validation\n* unconditionally and the authored role names flow through unchanged.\n*/\nconst policyTargetParam = {\n\tkind: \"ref\",\n\trefKind: \"model\",\n\tscope: \"same-namespace\",\n\trequired: true\n};\nconst policyRolesParam = {\n\tkind: \"list\",\n\tof: {\n\t\tkind: \"ref\",\n\t\trefKind: \"role\",\n\t\tscope: \"cross-space\"\n\t}\n};\nconst policyPredicateParam = {\n\tkind: \"value\",\n\tcodecId: \"pg/text@1\",\n\trequired: true\n};\nconst policyPermissiveParam = {\n\tkind: \"value\",\n\tcodecId: \"pg/bool@1\"\n};\nconst policyRequiresRls = {\n\tparameter: \"target\",\n\tattribute: \"rls\"\n};\nconst postgresAuthoringPslBlockDescriptors = {\n\tpolicy_select: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_select\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\tusing: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\tpolicy_delete: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_delete\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\tusing: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\tpolicy_insert: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_insert\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\twithCheck: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\tpolicy_update: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_update\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\tusing: policyPredicateParam,\n\t\t\twithCheck: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\tpolicy_all: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_all\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\tusing: policyPredicateParam,\n\t\t\twithCheck: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\t/**\n\t* PSL block descriptor for `native_enum`.\n\t*\n\t* Reuses the existing variadic-block mechanism (the same shape the SQL\n\t* family's `enum` block ships): the body is an open `memberName = \"value\"`\n\t* list. `variadicParameters: true` opens the block to arbitrary keys\n\t* beyond the declared (empty) `parameters` set — the lowering factory\n\t* (`lowerNativeEnumFromBlock`) turns the variadic entries into ordered\n\t* members and rejects a bare (value-less) member.\n\t*/\n\tnative_enum: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"native_enum\",\n\t\tdiscriminator: \"native_enum\",\n\t\tname: { required: true },\n\t\tparameters: {},\n\t\tvariadicParameters: true\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\tdiscriminator: \"role\",\n\t\tname: { required: true },\n\t\tparameters: {}\n\t}\n};\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 = { rls: {\n\tkind: \"modelAttribute\",\n\tattribute: \"rls\",\n\tspec: modelAttribute(\"rls\", {}),\n\tlower: (_parsed, ctx) => ({\n\t\tkey: ctx.storageName,\n\t\tentity: new PostgresRlsEnablement({\n\t\t\ttableName: ctx.storageName,\n\t\t\tnamespaceId: ctx.namespaceId\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@1\",\n\t\t\tnativeType: \"timestamptz\"\n\t\t}\n\t},\n\ttemporal: {\n\t\t.../* @__PURE__ */ temporalAuthoringPresets({\n\t\t\tcodecId: \"pg/timestamptz@1\",\n\t\t\tnativeType: \"timestamptz\"\n\t\t}),\n\t\ttimestamp: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: \"pg/timestamp@1\",\n\t\t\tnativeType: \"timestamp\"\n\t\t}),\n\t\ttimestamptz: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: \"pg/timestamptz@1\",\n\t\t\tnativeType: \"timestamptz\"\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 { postgresAuthoringTypes as a, postgresAuthoringPslBlockDescriptors as i, postgresAuthoringFieldPresets as n, postgresLowerEntityHandles as o, postgresAuthoringModelAttributes as r, postgresAuthoringEntityTypes as t };\n\n//# sourceMappingURL=authoring-bh6W1Fe5.mjs.map"],"mappings":"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"}
1
+ {"version":3,"file":"authoring-BOpdZa2N-ClrLFiXw.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/authoring-BOpdZa2N.mjs"],"sourcesContent":["import { o as PG_ENUM_CODEC_ID } from \"./codec-ids-C5Rkltkw.mjs\";\nimport { n as postgresError } from \"./errors-DKjQzNaN.mjs\";\nimport { t as PostgresNativeEnum } from \"./postgres-native-enum-CdP3b_-R.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-CF0yHESb.mjs\";\nimport { n as computeContentHash, t as POLICY_OPERATION_PREDICATES } from \"./canonicalize-CrN3u_xM.mjs\";\nimport { blindCast } from \"@internal/utils/casts\";\nimport { UNBOUND_NAMESPACE_ID } from \"@internal/framework-components/ir\";\nimport { temporalAuthoringPresets, temporalCodecPresetWithPrecision } from \"@internal/family-sql/control\";\nimport { ifDefined } from \"@internal/utils/defined\";\nimport { modelAttribute } from \"@internal/psl-parser\";\nimport { exactNameBodyWarning } from \"@internal/sql-contract/index-naming\";\nimport { assertWireNamePrefixLength, normalizeSqlBody } from \"@internal/sql-schema-ir/naming\";\nimport { assertDefined } from \"@internal/utils/assertions\";\n//#region src/core/authoring.ts\nconst PSL_RLS_PREDICATE_NOT_FOR_OPERATION = \"PSL_RLS_PREDICATE_NOT_FOR_OPERATION\";\nconst PSL_POLICY_INVALID_MAP = \"PSL_POLICY_INVALID_MAP\";\nconst PSL_NATIVE_ENUM_INVALID_MAP = \"PSL_NATIVE_ENUM_INVALID_MAP\";\nconst PSL_NATIVE_ENUM_BARE_MEMBER = \"PSL_NATIVE_ENUM_BARE_MEMBER\";\nconst PSL_EXTENSION_INVALID_VALUE = \"PSL_EXTENSION_INVALID_VALUE\";\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\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\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};\n/**\n* Maps a `policy_<op>` keyword to the RLS operation it authors. The keyword\n* IS the operation (per the project's rejection of a `policy { operation = … }`\n* conditional block).\n*/\nconst POLICY_KEYWORD_OPERATION = {\n\tpolicy_select: \"select\",\n\tpolicy_insert: \"insert\",\n\tpolicy_update: \"update\",\n\tpolicy_delete: \"delete\",\n\tpolicy_all: \"all\"\n};\nfunction readValueParam(block, key) {\n\tconst param = block.parameters[key];\n\treturn param?.kind === \"value\" ? param.raw : void 0;\n}\nfunction readListRefParams(block, key) {\n\tconst param = block.parameters[key];\n\tif (param?.kind !== \"list\") return [];\n\treturn param.items.flatMap((item) => item.kind === \"ref\" ? [item.identifier] : []);\n}\n/**\n* Unwraps a quoted PSL string argument, inverting the printer's\n* `escapePslString` escapes (`\\\\`, `\\\"`, `\\n`, `\\r`). An unknown escape\n* sequence is kept verbatim, matching the printer-side `unescapePslString`\n* convention.\n*/\nfunction unwrapQuotedString(raw) {\n\tif (!(raw.startsWith(\"\\\"\") && raw.endsWith(\"\\\"\") && raw.length >= 2)) return raw;\n\tconst inner = raw.slice(1, -1);\n\tlet result = \"\";\n\tfor (let i = 0; i < inner.length; i++) {\n\t\tif (inner[i] !== \"\\\\\" || i + 1 >= inner.length) {\n\t\t\tresult += inner[i];\n\t\t\tcontinue;\n\t\t}\n\t\tconst next = inner[i + 1];\n\t\tif (next === \"\\\\\" || next === \"\\\"\") result += next;\n\t\telse if (next === \"n\") result += \"\\n\";\n\t\telse if (next === \"r\") result += \"\\r\";\n\t\telse {\n\t\t\tresult += \"\\\\\";\n\t\t\tresult += next;\n\t\t}\n\t\ti++;\n\t}\n\treturn result;\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 = POLICY_KEYWORD_OPERATION[block.keyword] ?? \"select\";\n\tconst tableName = block.resolvedModelRefs?.[\"target\"]?.tableName;\n\tassertDefined(tableName, `lowerRlsPolicyFromBlock: policy \"${block.name}\" reached the factory without a resolved \\`target\\` ref; the interpreter resolves same-namespace model refs before invoking entity factories.`);\n\tconst roles = [...readListRefParams(block, \"roles\")].sort();\n\tconst usingRaw = readValueParam(block, \"using\");\n\tconst withCheckRaw = readValueParam(block, \"withCheck\");\n\tconst support = POLICY_OPERATION_PREDICATES[operation];\n\tconst rejectPredicate = (predicate) => {\n\t\tctx.diagnostics?.push({\n\t\t\tcode: PSL_RLS_PREDICATE_NOT_FOR_OPERATION,\n\t\t\tmessage: `\\`${block.keyword}\\` policy \"${block.name}\" does not take a \\`${predicate}\\` predicate; the ${operation.toUpperCase()} operation uses ${support.using ? \"`using`\" : \"`withCheck`\"}${support.using && support.withCheck ? \" and `withCheck`\" : \" only\"}.`,\n\t\t\tsourceId: ctx.sourceId ?? \"unknown\",\n\t\t\tspan: block.parameters[predicate]?.span ?? block.span\n\t\t});\n\t};\n\tif (usingRaw !== void 0 && !support.using) return rejectPredicate(\"using\");\n\tif (withCheckRaw !== void 0 && !support.withCheck) return rejectPredicate(\"withCheck\");\n\tconst using = usingRaw !== void 0 ? unwrapQuotedString(usingRaw) : void 0;\n\tconst withCheck = withCheckRaw !== void 0 ? unwrapQuotedString(withCheckRaw) : void 0;\n\tconst permissiveRaw = readValueParam(block, \"permissive\");\n\tif (permissiveRaw !== void 0 && permissiveRaw !== \"true\" && permissiveRaw !== \"false\") {\n\t\tctx.diagnostics?.push({\n\t\t\tcode: PSL_EXTENSION_INVALID_VALUE,\n\t\t\tmessage: `\\`${block.keyword}\\` policy \"${block.name}\" \\`permissive\\` must be \\`true\\` or \\`false\\`, got ${permissiveRaw}.`,\n\t\t\tsourceId: ctx.sourceId ?? \"unknown\",\n\t\t\tspan: block.parameters[\"permissive\"]?.span ?? block.span\n\t\t});\n\t\treturn;\n\t}\n\tconst permissive = permissiveRaw !== \"false\";\n\tconst mapAttr = block.blockAttributes.find((a) => a.name === \"map\");\n\tif (mapAttr) {\n\t\tconst rawArg = mapAttr.args[0]?.value;\n\t\tconst exactName = rawArg?.startsWith(\"\\\"\") && rawArg.endsWith(\"\\\"\") && rawArg.length >= 2 ? unwrapQuotedString(rawArg) : void 0;\n\t\tif (exactName === void 0 || exactName === \"\") {\n\t\t\tctx.diagnostics?.push({\n\t\t\t\tcode: PSL_POLICY_INVALID_MAP,\n\t\t\t\tmessage: `\\`${block.keyword}\\` policy \"${block.name}\" @@map attribute must have a quoted, non-empty policy-name argument`,\n\t\t\t\tsourceId: ctx.sourceId ?? \"unknown\",\n\t\t\t\tspan: mapAttr.span\n\t\t\t});\n\t\t\treturn;\n\t\t}\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,\n\t\t\tnamespaceId: block.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,\n\t\tnamespaceId: block.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}\n/**\n* Lowers a `native_enum { memberName = \"value\" … @@map(\"type_name\") }` block\n* into a {@link PostgresNativeEnum}. Members must be authored as explicit\n* `key = \"value\"` pairs — a bare (value-less) member is a diagnostic, not\n* accepted (authoring-design.md §2.1). The parsed `memberName` is only used\n* to duplicate-check and report diagnostics; the lowered entity carries just\n* the member values (a native enum is value-only — the member \"name\" isn't\n* a separate authoring concept from the value). `typeName` comes from\n* `@@map` or defaults to the block name verbatim.\n*/\nfunction lowerNativeEnumFromBlock(block, ctx) {\n\tconst sourceId = ctx.sourceId ?? \"unknown\";\n\tconst diagnostics = ctx.diagnostics;\n\tconst mapAttr = block.blockAttributes.find((a) => a.name === \"map\");\n\tlet typeName = block.name;\n\tif (mapAttr) {\n\t\tconst rawArg = mapAttr.args[0]?.value;\n\t\tconst mapped = rawArg !== void 0 ? unwrapQuotedString(rawArg) : void 0;\n\t\tif (mapped === void 0) {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_NATIVE_ENUM_INVALID_MAP,\n\t\t\t\tmessage: `native_enum \"${block.name}\" @@map attribute must have a quoted type-name argument`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: mapAttr.span\n\t\t\t});\n\t\t\treturn;\n\t\t}\n\t\ttypeName = mapped;\n\t}\n\tlet memberError = false;\n\tconst seenValues = /* @__PURE__ */ new Set();\n\tconst members = [];\n\tfor (const [memberName, paramValue] of Object.entries(block.parameters)) {\n\t\tif (paramValue.kind === \"bare\") {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_NATIVE_ENUM_BARE_MEMBER,\n\t\t\t\tmessage: `native_enum \"${block.name}\" member \"${memberName}\" has no value; members must be authored as \"${memberName} = \\\\\"value\\\\\"\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: paramValue.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (paramValue.kind !== \"value\") continue;\n\t\tlet jsonValue;\n\t\ttry {\n\t\t\tjsonValue = JSON.parse(paramValue.raw);\n\t\t} catch {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_EXTENSION_INVALID_VALUE,\n\t\t\t\tmessage: `native_enum \"${block.name}\" member \"${memberName}\" value \"${paramValue.raw}\" is not valid JSON`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: paramValue.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (typeof jsonValue !== \"string\") {\n\t\t\tdiagnostics?.push({\n\t\t\t\tcode: PSL_EXTENSION_INVALID_VALUE,\n\t\t\t\tmessage: `native_enum \"${block.name}\" member \"${memberName}\" value must be a string`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: paramValue.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tif (seenValues.has(jsonValue)) {\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 \"${jsonValue}\"`,\n\t\t\t\tsourceId,\n\t\t\t\tspan: paramValue.span\n\t\t\t});\n\t\t\tmemberError = true;\n\t\t\tcontinue;\n\t\t}\n\t\tseenValues.add(jsonValue);\n\t\tmembers.push(jsonValue);\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: { factory: lowerRlsPolicyFromBlock }\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*/\n/**\n* Shared parameter descriptors for the five `policy_<op>` PSL block\n* keywords. All five share the `policy` discriminator — the parser\n* dispatches by keyword (see the framework's PSL-block SPI), and every\n* keyword's factory lowers to `PostgresRlsPolicy` via `lowerRlsPolicyFromBlock`.\n*\n* The `roles` list uses `scope:'cross-space'` because same-namespace\n* role ref resolution requires PSL namespace entries keyed by `refKind`\n* (i.e. `'role'`), which in turn requires the role block discriminator to\n* equal `'role'`. Aligning discriminator with refKind is tracked for\n* slice 4 (cross-space roles). Until then cross-space passes validation\n* unconditionally and the authored role names flow through unchanged.\n*/\nconst policyTargetParam = {\n\tkind: \"ref\",\n\trefKind: \"model\",\n\tscope: \"same-namespace\",\n\trequired: true\n};\nconst policyRolesParam = {\n\tkind: \"list\",\n\tof: {\n\t\tkind: \"ref\",\n\t\trefKind: \"role\",\n\t\tscope: \"cross-space\"\n\t}\n};\nconst policyPredicateParam = {\n\tkind: \"value\",\n\tcodecId: \"pg/text@1\",\n\trequired: true\n};\nconst policyPermissiveParam = {\n\tkind: \"value\",\n\tcodecId: \"pg/bool@1\"\n};\nconst policyRequiresRls = {\n\tparameter: \"target\",\n\tattribute: \"rls\"\n};\nconst postgresAuthoringPslBlockDescriptors = {\n\tpolicy_select: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_select\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\tusing: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\tpolicy_delete: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_delete\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\tusing: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\tpolicy_insert: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_insert\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\twithCheck: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\tpolicy_update: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_update\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\tusing: policyPredicateParam,\n\t\t\twithCheck: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\tpolicy_all: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"policy_all\",\n\t\tdiscriminator: \"policy\",\n\t\tname: { required: true },\n\t\tparameters: {\n\t\t\ttarget: policyTargetParam,\n\t\t\troles: policyRolesParam,\n\t\t\tusing: policyPredicateParam,\n\t\t\twithCheck: policyPredicateParam,\n\t\t\tpermissive: policyPermissiveParam\n\t\t},\n\t\trequiresModelAttribute: policyRequiresRls\n\t},\n\t/**\n\t* PSL block descriptor for `native_enum`.\n\t*\n\t* Reuses the existing variadic-block mechanism (the same shape the SQL\n\t* family's `enum` block ships): the body is an open `memberName = \"value\"`\n\t* list. `variadicParameters: true` opens the block to arbitrary keys\n\t* beyond the declared (empty) `parameters` set — the lowering factory\n\t* (`lowerNativeEnumFromBlock`) turns the variadic entries into ordered\n\t* members and rejects a bare (value-less) member.\n\t*/\n\tnative_enum: {\n\t\tkind: \"pslBlock\",\n\t\tkeyword: \"native_enum\",\n\t\tdiscriminator: \"native_enum\",\n\t\tname: { required: true },\n\t\tparameters: {},\n\t\tvariadicParameters: true\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\tdiscriminator: \"role\",\n\t\tname: { required: true },\n\t\tparameters: {}\n\t}\n};\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 = { rls: {\n\tkind: \"modelAttribute\",\n\tattribute: \"rls\",\n\tspec: modelAttribute(\"rls\", {}),\n\tlower: (_parsed, ctx) => ({\n\t\tkey: ctx.storageName,\n\t\tentity: new PostgresRlsEnablement({\n\t\t\ttableName: ctx.storageName,\n\t\t\tnamespaceId: ctx.namespaceId\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@1\",\n\t\t\tnativeType: \"timestamptz\"\n\t\t}\n\t},\n\ttemporal: {\n\t\t.../* @__PURE__ */ temporalAuthoringPresets({\n\t\t\tcodecId: \"pg/timestamptz@1\",\n\t\t\tnativeType: \"timestamptz\"\n\t\t}),\n\t\ttimestamp: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: \"pg/timestamp@1\",\n\t\t\tnativeType: \"timestamp\"\n\t\t}),\n\t\ttimestamptz: /* @__PURE__ */ temporalCodecPresetWithPrecision({\n\t\t\tcodecId: \"pg/timestamptz@1\",\n\t\t\tnativeType: \"timestamptz\"\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 { postgresAuthoringTypes as a, postgresAuthoringPslBlockDescriptors as i, postgresAuthoringFieldPresets as n, postgresLowerEntityHandles as o, postgresAuthoringModelAttributes as r, postgresAuthoringEntityTypes as t };\n\n//# sourceMappingURL=authoring-BOpdZa2N.mjs.map"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { r as quoteIdentifier, t as escapeLiteral } from "./sql-utils-BnBlQxyh-DaX9Nb7Z.mjs";
1
+ import { r as quoteIdentifier, t as escapeLiteral } from "./sql-utils-DuzN3JZg-DiXy4Vah.mjs";
2
2
  import { invariant } from "@prisma/orm-framework/utils/assertions";
3
- //#region ../../../3-targets/3-targets/postgres/dist/check-expressions-drXwak3W.mjs
3
+ //#region ../../../3-targets/3-targets/postgres/dist/check-expressions-5vhxWaFy.mjs
4
4
  /**
5
5
  * Renders the checks a Postgres column needs, as opaque predicate text.
6
6
  *
@@ -38,4 +38,4 @@ function postgresRenderCheckExpressions(input) {
38
38
  //#endregion
39
39
  export { postgresRenderCheckExpressions as t };
40
40
 
41
- //# sourceMappingURL=check-expressions-drXwak3W-DqFpQtdc.mjs.map
41
+ //# sourceMappingURL=check-expressions-5vhxWaFy-CBcjFeur.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"check-expressions-drXwak3W-DqFpQtdc.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/check-expressions-drXwak3W.mjs"],"sourcesContent":["import { r as quoteIdentifier, t as escapeLiteral } from \"./sql-utils-BnBlQxyh.mjs\";\nimport { invariant } from \"@internal/utils/assertions\";\n//#region src/core/check-expressions.ts\n/**\n* Renders the checks a Postgres column needs, as opaque predicate text.\n*\n* A text-backed domain enum has no type-level enforcement, so membership is a\n* predicate: `IN` for a scalar, and `<@` containment for an array — an array\n* column cannot use `IN` at all (`operator does not exist: text[] = text`),\n* and containment additionally rejects NULL elements. Every list column also\n* gets an element-non-null check, which no Postgres column type can express.\n*\n* The array side casts the COLUMN to `text[]` rather than assuming its element\n* type already is: `<@` needs both operands in one type, so a `varchar[]` or\n* `char[]` column meeting a bare `text[]` literal raises the same\n* `operator does not exist` this project exists to eliminate. The scalar `IN`\n* form needs no cast — `varchar = text` resolves on its own.\n*/\nfunction postgresRenderCheckExpressions(input) {\n\tconst candidates = [];\n\tconst column = quoteIdentifier(input.columnName);\n\tif (input.memberValues !== void 0) {\n\t\tinvariant(input.memberValues.length > 0, `check for \"${input.tableName}\".\"${input.columnName}\": empty member set; both authoring surfaces reject a member-less enum before rendering`);\n\t\tconst members = input.memberValues.map((value) => `'${escapeLiteral(value)}'`).join(\", \");\n\t\tcandidates.push({\n\t\t\tkind: \"membership\",\n\t\t\tcolumnName: input.columnName,\n\t\t\texpression: input.many ? `${column}::text[] <@ ARRAY[${members}]::text[]` : `${column} IN (${members})`\n\t\t});\n\t}\n\tif (input.many) candidates.push({\n\t\tkind: \"elementNotNull\",\n\t\tcolumnName: input.columnName,\n\t\texpression: `array_position(${column}, NULL) IS NULL`\n\t});\n\treturn candidates;\n}\n//#endregion\nexport { postgresRenderCheckExpressions as t };\n\n//# sourceMappingURL=check-expressions-drXwak3W.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,SAAS,+BAA+B,OAAO;CAC9C,MAAM,aAAa,CAAC;CACpB,MAAM,SAAS,gBAAgB,MAAM,UAAU;CAC/C,IAAI,MAAM,iBAAiB,KAAK,GAAG;EAClC,UAAU,MAAM,aAAa,SAAS,GAAG,cAAc,MAAM,UAAU,KAAK,MAAM,WAAW,wFAAwF;EACrL,MAAM,UAAU,MAAM,aAAa,KAAK,UAAU,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI;EACxF,WAAW,KAAK;GACf,MAAM;GACN,YAAY,MAAM;GAClB,YAAY,MAAM,OAAO,GAAG,OAAO,oBAAoB,QAAQ,aAAa,GAAG,OAAO,OAAO,QAAQ;EACtG,CAAC;CACF;CACA,IAAI,MAAM,MAAM,WAAW,KAAK;EAC/B,MAAM;EACN,YAAY,MAAM;EAClB,YAAY,kBAAkB,OAAO;CACtC,CAAC;CACD,OAAO;AACR"}
1
+ {"version":3,"file":"check-expressions-5vhxWaFy-CBcjFeur.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/check-expressions-5vhxWaFy.mjs"],"sourcesContent":["import { r as quoteIdentifier, t as escapeLiteral } from \"./sql-utils-DuzN3JZg.mjs\";\nimport { invariant } from \"@internal/utils/assertions\";\n//#region src/core/check-expressions.ts\n/**\n* Renders the checks a Postgres column needs, as opaque predicate text.\n*\n* A text-backed domain enum has no type-level enforcement, so membership is a\n* predicate: `IN` for a scalar, and `<@` containment for an array — an array\n* column cannot use `IN` at all (`operator does not exist: text[] = text`),\n* and containment additionally rejects NULL elements. Every list column also\n* gets an element-non-null check, which no Postgres column type can express.\n*\n* The array side casts the COLUMN to `text[]` rather than assuming its element\n* type already is: `<@` needs both operands in one type, so a `varchar[]` or\n* `char[]` column meeting a bare `text[]` literal raises the same\n* `operator does not exist` this project exists to eliminate. The scalar `IN`\n* form needs no cast — `varchar = text` resolves on its own.\n*/\nfunction postgresRenderCheckExpressions(input) {\n\tconst candidates = [];\n\tconst column = quoteIdentifier(input.columnName);\n\tif (input.memberValues !== void 0) {\n\t\tinvariant(input.memberValues.length > 0, `check for \"${input.tableName}\".\"${input.columnName}\": empty member set; both authoring surfaces reject a member-less enum before rendering`);\n\t\tconst members = input.memberValues.map((value) => `'${escapeLiteral(value)}'`).join(\", \");\n\t\tcandidates.push({\n\t\t\tkind: \"membership\",\n\t\t\tcolumnName: input.columnName,\n\t\t\texpression: input.many ? `${column}::text[] <@ ARRAY[${members}]::text[]` : `${column} IN (${members})`\n\t\t});\n\t}\n\tif (input.many) candidates.push({\n\t\tkind: \"elementNotNull\",\n\t\tcolumnName: input.columnName,\n\t\texpression: `array_position(${column}, NULL) IS NULL`\n\t});\n\treturn candidates;\n}\n//#endregion\nexport { postgresRenderCheckExpressions as t };\n\n//# sourceMappingURL=check-expressions-5vhxWaFy.mjs.map"],"mappings":";;;;;;;;;;;;;;;;;;AAkBA,SAAS,+BAA+B,OAAO;CAC9C,MAAM,aAAa,CAAC;CACpB,MAAM,SAAS,gBAAgB,MAAM,UAAU;CAC/C,IAAI,MAAM,iBAAiB,KAAK,GAAG;EAClC,UAAU,MAAM,aAAa,SAAS,GAAG,cAAc,MAAM,UAAU,KAAK,MAAM,WAAW,wFAAwF;EACrL,MAAM,UAAU,MAAM,aAAa,KAAK,UAAU,IAAI,cAAc,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI;EACxF,WAAW,KAAK;GACf,MAAM;GACN,YAAY,MAAM;GAClB,YAAY,MAAM,OAAO,GAAG,OAAO,oBAAoB,QAAQ,aAAa,GAAG,OAAO,OAAO,QAAQ;EACtG,CAAC;CACF;CACA,IAAI,MAAM,MAAM,WAAW,KAAK;EAC/B,MAAM;EACN,YAAY,MAAM;EAClB,YAAY,kBAAkB,OAAO;CACtC,CAAC;CACD,OAAO;AACR"}
@@ -1,5 +1,5 @@
1
1
  import { n as buildPostgresCodecDescriptorRegistry } from "./codec-descriptor-LT7BpQta-BaDM8UQQ.mjs";
2
- import { t as codecDescriptors } from "./codecs-dXnwOH7P-CIr-fArt.mjs";
2
+ import { t as codecDescriptors } from "./codecs-BmPCJWqb-DveZGJvm.mjs";
3
3
  import { buildCodecDescriptorRegistry } from "@prisma/orm-family-sql/relational-core/codec-descriptor-registry";
4
4
  //#region ../../../3-targets/3-targets/postgres/dist/codecs.mjs
5
5
  /**
@@ -12,4 +12,4 @@ const postgresCodecDescriptorRegistry = buildPostgresCodecDescriptorRegistry(cod
12
12
  //#endregion
13
13
  export { postgresCodecRegistry as n, postgresCodecDescriptorRegistry as t };
14
14
 
15
- //# sourceMappingURL=codecs-C9-AwMlR.mjs.map
15
+ //# sourceMappingURL=codecs-B1HgsJZ2.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"codecs-C9-AwMlR.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/codecs.mjs"],"sourcesContent":["import { n as buildPostgresCodecDescriptorRegistry } from \"./codec-descriptor-LT7BpQta.mjs\";\nimport { C as pgTimestampColumn, D as pgUuidColumn, E as pgUnboundedIntColumn, O as pgVarbitColumn, S as pgTimeColumn, T as pgTimetzColumn, _ as pgIntervalColumn, a as pgCharColumn, b as pgNumericColumn, c as pgFloat4Column, d as pgInetColumn, f as pgInt2Column, g as pgIntColumn, h as pgInt8NumberColumn, i as pgBoolColumn, k as pgVarcharColumn, l as pgFloat8Column, m as pgInt8Column, n as isPgEnumParams, o as pgDateColumn, p as pgInt4Column, r as pgBitColumn, s as pgEnumDescriptor, t as codecDescriptors, u as pgFloatColumn, v as pgJsonColumn, w as pgTimestamptzColumn, x as pgTextColumn, y as pgJsonbColumn } from \"./codecs-dXnwOH7P.mjs\";\nimport { buildCodecDescriptorRegistry } from \"@internal/sql-relational-core/codec-descriptor-registry\";\n//#region src/core/registry.ts\n/**\n* Registry of every codec descriptor shipped by `@internal/target-postgres`.\n*\n* Public consumer surface for the postgres codec set: the postgres adapter and any other consumer that needs to enumerate or look up a postgres codec by id consumes this rather than the raw descriptor array. See ADR 208.\n*/\nconst postgresCodecRegistry = buildCodecDescriptorRegistry(codecDescriptors);\nconst postgresCodecDescriptorRegistry = buildPostgresCodecDescriptorRegistry(codecDescriptors);\n//#endregion\nexport { isPgEnumParams, pgBitColumn, pgBoolColumn, pgCharColumn, pgDateColumn, pgEnumDescriptor, pgFloat4Column, pgFloat8Column, pgFloatColumn, pgInetColumn, pgInt2Column, pgInt4Column, pgInt8Column, pgInt8NumberColumn, pgIntColumn, pgIntervalColumn, pgJsonColumn, pgJsonbColumn, pgNumericColumn, pgTextColumn, pgTimeColumn, pgTimestampColumn, pgTimestamptzColumn, pgTimetzColumn, pgUnboundedIntColumn, pgUuidColumn, pgVarbitColumn, pgVarcharColumn, postgresCodecDescriptorRegistry, postgresCodecRegistry };\n\n//# sourceMappingURL=codecs.mjs.map"],"mappings":";;;;;;;;;AASA,MAAM,wBAAwB,6BAA6B,gBAAgB;AAC3E,MAAM,kCAAkC,qCAAqC,gBAAgB"}
1
+ {"version":3,"file":"codecs-B1HgsJZ2.mjs","names":[],"sources":["../../../../3-targets/3-targets/postgres/dist/codecs.mjs"],"sourcesContent":["import { n as buildPostgresCodecDescriptorRegistry } from \"./codec-descriptor-LT7BpQta.mjs\";\nimport { C as pgTimestampColumn, D as pgUuidColumn, E as pgUnboundedIntColumn, O as pgVarbitColumn, S as pgTimeColumn, T as pgTimetzColumn, _ as pgIntervalColumn, a as pgCharColumn, b as pgNumericColumn, c as pgFloat4Column, d as pgInetColumn, f as pgInt2Column, g as pgIntColumn, h as pgInt8NumberColumn, i as pgBoolColumn, k as pgVarcharColumn, l as pgFloat8Column, m as pgInt8Column, n as isPgEnumParams, o as pgDateColumn, p as pgInt4Column, r as pgBitColumn, s as pgEnumDescriptor, t as codecDescriptors, u as pgFloatColumn, v as pgJsonColumn, w as pgTimestamptzColumn, x as pgTextColumn, y as pgJsonbColumn } from \"./codecs-BmPCJWqb.mjs\";\nimport { buildCodecDescriptorRegistry } from \"@internal/sql-relational-core/codec-descriptor-registry\";\n//#region src/core/registry.ts\n/**\n* Registry of every codec descriptor shipped by `@internal/target-postgres`.\n*\n* Public consumer surface for the postgres codec set: the postgres adapter and any other consumer that needs to enumerate or look up a postgres codec by id consumes this rather than the raw descriptor array. See ADR 208.\n*/\nconst postgresCodecRegistry = buildCodecDescriptorRegistry(codecDescriptors);\nconst postgresCodecDescriptorRegistry = buildPostgresCodecDescriptorRegistry(codecDescriptors);\n//#endregion\nexport { isPgEnumParams, pgBitColumn, pgBoolColumn, pgCharColumn, pgDateColumn, pgEnumDescriptor, pgFloat4Column, pgFloat8Column, pgFloatColumn, pgInetColumn, pgInt2Column, pgInt4Column, pgInt8Column, pgInt8NumberColumn, pgIntColumn, pgIntervalColumn, pgJsonColumn, pgJsonbColumn, pgNumericColumn, pgTextColumn, pgTimeColumn, pgTimestampColumn, pgTimestamptzColumn, pgTimetzColumn, pgUnboundedIntColumn, pgUuidColumn, pgVarbitColumn, pgVarcharColumn, postgresCodecDescriptorRegistry, postgresCodecRegistry };\n\n//# sourceMappingURL=codecs.mjs.map"],"mappings":";;;;;;;;;AASA,MAAM,wBAAwB,6BAA6B,gBAAgB;AAC3E,MAAM,kCAAkC,qCAAqC,gBAAgB"}
@@ -1,13 +1,13 @@
1
1
  import { C as PG_TIMESTAMP_CODEC_ID, D as PG_UUID_CODEC_ID, E as PG_UNBOUNDED_INT_CODEC_ID, O as PG_VARBIT_CODEC_ID, S as PG_TIMESTAMPTZ_CODEC_ID, T as PG_TIME_CODEC_ID, _ as PG_JSONB_CODEC_ID, a as PG_DATE_CODEC_ID, b as PG_TEXT_ARRAY_CODEC_ID, c as PG_FLOAT8_CODEC_ID, d as PG_INT2_CODEC_ID, f as PG_INT4_CODEC_ID, g as PG_INT_CODEC_ID, h as PG_INTERVAL_CODEC_ID, i as PG_CHAR_CODEC_ID, k as PG_VARCHAR_CODEC_ID, l as PG_FLOAT_CODEC_ID, m as PG_INT8_NUMBER_CODEC_ID, n as PG_BOOL_CODEC_ID, o as PG_ENUM_CODEC_ID, p as PG_INT8_CODEC_ID, r as PG_BYTEA_CODEC_ID, s as PG_FLOAT4_CODEC_ID, t as PG_BIT_CODEC_ID, u as PG_INET_CODEC_ID, v as PG_JSON_CODEC_ID, w as PG_TIMETZ_CODEC_ID, x as PG_TEXT_CODEC_ID, y as PG_NUMERIC_CODEC_ID } from "./codec-ids-C5Rkltkw-DMf87l9s.mjs";
2
2
  import { a as postgresCodec, r as definePostgresCodecs, t as PostgresCodecDescriptor } from "./codec-descriptor-LT7BpQta-BaDM8UQQ.mjs";
3
- import { n as postgresError } from "./errors-kYxOQjdD-D4T3rbVp.mjs";
3
+ import { n as postgresError } from "./errors-DKjQzNaN-DFcF1thx.mjs";
4
4
  import { t as PostgresNativeEnum } from "./postgres-native-enum-CdP3b_-R-Cgz9KEKx.mjs";
5
5
  import { BinaryExpr, CaseExpr, CastExpr, FunctionCallExpr, LiteralExpr, NullCheckExpr, OrExpr, SqlCharCodec, SqlFloatCodec, SqlIntCodec, SqlVarcharCodec, sqlCharDescriptor, sqlFloatDescriptor, sqlIntDescriptor, sqlTextDescriptor, sqlTimestampDescriptor, sqlVarcharDescriptor } from "@prisma/orm-family-sql/relational-core/ast";
6
6
  import { CodecImpl, column, renderTsLiteral, voidParamsSchema } from "@prisma/orm-framework/components/codec";
7
7
  import { blindCast } from "@prisma/orm-framework/utils/casts";
8
8
  import { UNBOUND_NAMESPACE_ID } from "@prisma/orm-framework/components/ir";
9
9
  import { type } from "arktype";
10
- //#region ../../../3-targets/3-targets/postgres/dist/codecs-dXnwOH7P.mjs
10
+ //#region ../../../3-targets/3-targets/postgres/dist/codecs-BmPCJWqb.mjs
11
11
  function renderLength(typeName, typeParams) {
12
12
  const length = typeParams["length"];
13
13
  if (length === void 0) return;
@@ -1677,4 +1677,4 @@ const codecDescriptors = definePostgresCodecs([
1677
1677
  //#endregion
1678
1678
  export { postgresQualifyColumnType as A, pgTimestampColumn as C, pgUuidColumn as D, pgUnboundedIntColumn as E, pgVarbitColumn as O, pgTimeColumn as S, pgTimetzColumn as T, pgIntervalColumn as _, pgCharColumn as a, pgNumericColumn as b, pgFloat4Column as c, pgInetColumn as d, pgInt2Column as f, pgIntColumn as g, pgInt8NumberColumn as h, pgBoolColumn as i, pgVarcharColumn as k, pgFloat8Column as l, pgInt8Column as m, isPgEnumParams as n, pgDateColumn as o, pgInt4Column as p, pgBitColumn as r, pgEnumDescriptor as s, codecDescriptors as t, pgFloatColumn as u, pgJsonColumn as v, pgTimestamptzColumn as w, pgTextColumn as x, pgJsonbColumn as y };
1679
1679
 
1680
- //# sourceMappingURL=codecs-dXnwOH7P-CIr-fArt.mjs.map
1680
+ //# sourceMappingURL=codecs-BmPCJWqb-DveZGJvm.mjs.map