@palbase/backend 35.0.0 → 36.0.0

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 (70) hide show
  1. package/dist/bin/palbase-backend.cjs +556 -487
  2. package/dist/bin/palbase-backend.cjs.map +1 -1
  3. package/dist/bin/palbase-backend.js +6 -6
  4. package/dist/{chunk-L4R7WXLH.js → chunk-7WAGQ3VR.js} +4 -171
  5. package/dist/chunk-7WAGQ3VR.js.map +1 -0
  6. package/dist/{chunk-UMESJJRS.js → chunk-CS6NQ6PO.js} +2 -1
  7. package/dist/chunk-CS6NQ6PO.js.map +1 -0
  8. package/dist/{chunk-BOD3DT6D.js → chunk-EHKEMHB4.js} +560 -430
  9. package/dist/chunk-EHKEMHB4.js.map +1 -0
  10. package/dist/{chunk-PRH45NZU.js → chunk-FFO36MQQ.js} +2 -45
  11. package/dist/chunk-FFO36MQQ.js.map +1 -0
  12. package/dist/{chunk-P7MGSAFT.js → chunk-LFUNRWUE.js} +1 -40
  13. package/dist/chunk-LFUNRWUE.js.map +1 -0
  14. package/dist/{chunk-RZLY4BOY.js → chunk-PDD55QWN.js} +2 -2
  15. package/dist/{chunk-YO5GYM73.js → chunk-X7UR3VXA.js} +5 -6
  16. package/dist/chunk-X7UR3VXA.js.map +1 -0
  17. package/dist/{chunk-6FEHCEB7.js → chunk-YANGWAIM.js} +3 -3
  18. package/dist/db/index.cjs +1 -232
  19. package/dist/db/index.cjs.map +1 -1
  20. package/dist/db/index.d.cts +3 -46
  21. package/dist/db/index.d.ts +3 -46
  22. package/dist/db/index.js +4 -12
  23. package/dist/engine/index.cjs +556 -487
  24. package/dist/engine/index.cjs.map +1 -1
  25. package/dist/engine/index.d.cts +4 -4
  26. package/dist/engine/index.d.ts +4 -4
  27. package/dist/engine/index.js +6 -6
  28. package/dist/{index-DllNjpTl.d.cts → index-CI7S0Wqv.d.cts} +61 -8
  29. package/dist/{endpoint-BI0yGuEL.d.ts → index-CUy50OLU.d.ts} +6 -82
  30. package/dist/{endpoint-DaGnjt42.d.cts → index-DRx880KY.d.cts} +6 -82
  31. package/dist/{index-E8Sd6NFy.d.ts → index-Ogi30dbt.d.ts} +61 -8
  32. package/dist/index.cjs +5 -237
  33. package/dist/index.cjs.map +1 -1
  34. package/dist/index.d.cts +6 -7
  35. package/dist/index.d.ts +6 -7
  36. package/dist/index.js +7 -15
  37. package/dist/index.js.map +1 -1
  38. package/dist/openapi/index.cjs +1 -0
  39. package/dist/openapi/index.cjs.map +1 -1
  40. package/dist/openapi/index.d.cts +3 -3
  41. package/dist/openapi/index.d.ts +3 -3
  42. package/dist/openapi/index.js +2 -2
  43. package/dist/{registry-BnKvIyve.d.cts → registry-C7UCkQf0.d.cts} +1 -1
  44. package/dist/{registry-zDCj0eOU.d.ts → registry-DJcvbomD.d.ts} +1 -1
  45. package/dist/test/index.cjs +3 -11
  46. package/dist/test/index.cjs.map +1 -1
  47. package/dist/test/index.d.cts +2 -2
  48. package/dist/test/index.d.ts +2 -2
  49. package/dist/test/index.js +2 -9
  50. package/dist/test/index.js.map +1 -1
  51. package/docs/README.md +1 -1
  52. package/docs/database.md +84 -67
  53. package/docs/examples/database-dx.ts +12 -17
  54. package/docs/llms-full.txt +82 -65
  55. package/package.json +1 -1
  56. package/stager/inferred_returns.js +153 -0
  57. package/stager/return_types.js +9 -4
  58. package/stager/stage.js +3 -1
  59. package/template/AGENTS.md +5 -5
  60. package/template/package.json +1 -1
  61. package/dist/chunk-BOD3DT6D.js.map +0 -1
  62. package/dist/chunk-L4R7WXLH.js.map +0 -1
  63. package/dist/chunk-P7MGSAFT.js.map +0 -1
  64. package/dist/chunk-PRH45NZU.js.map +0 -1
  65. package/dist/chunk-UMESJJRS.js.map +0 -1
  66. package/dist/chunk-YO5GYM73.js.map +0 -1
  67. package/docs/examples/check-query-contracts.ts +0 -5
  68. package/docs/examples/database-dx.contract.json +0 -65
  69. /package/dist/{chunk-RZLY4BOY.js.map → chunk-PDD55QWN.js.map} +0 -0
  70. /package/dist/{chunk-6FEHCEB7.js.map → chunk-YANGWAIM.js.map} +0 -0
@@ -1,48 +1,5 @@
1
- import { P as PreparedRead, c9 as QueryDatabase, U as EnvQueryDatabase, C as CompiledRead, F as ColumnMap, cq as TableHandle, cY as WhereFilter, dE as ColValue, a2 as FindManyOpts } from '../endpoint-DaGnjt42.cjs';
2
- export { q as AnyColumn, r as AtomicDatabase, s as AtomicOptions, y as ColumnBuilder, z as ColumnDef, G as ColumnType, i as CommandOptions, D as DatabaseBudget, d as DatabaseDiagnostics, c as DatabaseDiagnosticsOptions, K as DatabaseQueryEvent, L as DatabaseWorkload, O as EXTENSION_DEPENDENCIES, Q as EmbeddingModelRef, E as EnvServiceDatabase, X as EnvTypedDatabase, a8 as InsertManyOptions, a9 as InsertShape, ae as Materialized, al as OnDeleteAction, an as PALBASE_EXTENSIONS, g as Page, ap as PageInfo, aq as PageInput, ar as PageNavigation, a_ as PalbaseExtension, c1 as PolicyBuilder, c2 as PolicyCommand, c3 as PolicyDef, c6 as PolicyMode, c8 as QueryColumnContract, cb as RawConstraintDef, f as RawPageOptions, cd as Ref, cf as RowShape, S as SchemaDef, co as TABLE_META, cp as TableDef, cr as TableInput, T as TransactionIsolation, ct as TxColumnExpr, cu as TxInsertShape, cw as TxNow, cx as TxPlan, h as TxPlanBody, cy as TxPlanError, cz as TxPlanHandle, cA as TxPlanOpResult, cB as TxPlanRejection, j as TxPlanResponse, cC as TxRefError, cD as TxRow, cE as TxRows, cF as TxSelectOptions, cG as TxSetShape, cI as TxTable, cJ as TxTables, cK as TxWhere, cQ as TypedDB, cR as TypedTable, cS as TypedTx, cV as UniqueWhere, c_ as WorkloadOptions, d3 as bigint, d4 as boolean, d7 as dec, da as defineSchema, db as defineTable, dc as defineWorkload, dd as enumType, df as inc, di as installationRef, dj as integer, dk as isPalbaseExtension, dm as jsonb, dn as makeTypedDB, dp as now, dt as openai, du as ownedByUser, dv as policy, dw as raw, dy as text, dz as timestamp, dA as userRef, dB as uuid, dC as vector } from '../endpoint-DaGnjt42.cjs';
3
- import { z } from 'zod';
4
- import '../stack.cjs';
1
+ export { o as AnyColumn, p as AtomicDatabase, q as AtomicOptions, w as ColumnBuilder, x as ColumnDef, y as ColumnMap, z as ColumnType, C as CommandOptions, D as DatabaseBudget, d as DatabaseDiagnostics, c as DatabaseDiagnosticsOptions, I as DatabaseQueryEvent, L as EXTENSION_DEPENDENCIES, M as EmbeddingModelRef, E as EnvServiceDatabase, Q as EnvTypedDatabase, a4 as InsertManyOptions, a5 as InsertShape, aa as Materialized, ah as OnDeleteAction, aj as PALBASE_EXTENSIONS, P as Page, al as PageInfo, am as PageInput, an as PageNavigation, aW as PalbaseExtension, bZ as PolicyBuilder, b_ as PolicyCommand, b$ as PolicyDef, c2 as PolicyMode, c5 as RawConstraintDef, f as RawPageOptions, c7 as Ref, c9 as RowShape, S as SchemaDef, ci as TABLE_META, cj as TableDef, ck as TableHandle, cl as TableInput, T as TransactionIsolation, cn as TxColumnExpr, co as TxInsertShape, cq as TxNow, cr as TxPlan, g as TxPlanBody, cs as TxPlanError, ct as TxPlanHandle, cu as TxPlanOpResult, cv as TxPlanRejection, h as TxPlanResponse, cw as TxRefError, cx as TxRow, cy as TxRows, cz as TxSelectOptions, cA as TxSetShape, cC as TxTable, cD as TxTables, cE as TxWhere, cK as TypedDB, cL as TypedTable, cM as TypedTx, cP as UniqueWhere, cY as bigint, cZ as boolean, d0 as dec, d3 as defineSchema, d4 as defineTable, d5 as enumType, d7 as inc, da as installationRef, db as integer, dc as isPalbaseExtension, de as jsonb, df as makeTypedDB, dg as now, dk as openai, dl as ownedByUser, dm as policy, dn as raw, dq as text, dr as timestamp, ds as userRef, dt as uuid, du as vector } from '../index-DRx880KY.cjs';
2
+ import 'zod';
5
3
  import './env.cjs';
4
+ import '../stack.cjs';
6
5
  import 'node:async_hooks';
7
-
8
- type QueryRow<C extends ColumnMap> = {
9
- [K in keyof C]: ColValue<C[K]>;
10
- };
11
- type Database = QueryDatabase | EnvQueryDatabase;
12
- /** The query IS its response Zod schema, so the existing return-type binder,
13
- * OpenAPI generator and clients use the same declaration without a second DTO. */
14
- type QueryDefinition<Row, Input extends z.ZodTypeAny> = z.ZodArray<z.ZodType<Row>> & {
15
- readonly queryName: string;
16
- readonly input: Input;
17
- prepare(input: z.input<Input>): PreparedRead;
18
- run(database: Database, input: z.input<Input>): Promise<Row[]>;
19
- sql(database: Database, input: z.input<Input>): CompiledRead;
20
- /** Plain EXPLAIN only: never ANALYZE, and always under the caller's RLS identity. */
21
- explain(database: Database, input: z.input<Input>): Promise<unknown[]>;
22
- contract(): Record<string, unknown>;
23
- };
24
- /** Declare a reusable SELECT with an explicit response projection. */
25
- declare function defineQuery<C extends ColumnMap, const K extends readonly Extract<keyof C, string>[], Input extends z.ZodTypeAny>(name: string, options: {
26
- table: TableHandle<C>;
27
- input: Input;
28
- select: K;
29
- where?: (input: z.output<Input>) => WhereFilter<QueryRow<NoInfer<C>>>;
30
- orderBy?: FindManyOpts<QueryRow<NoInfer<C>>>["orderBy"];
31
- limit?: number | ((input: z.output<Input>) => number);
32
- /** Required for jsonb; can also explicitly narrow another response field. */
33
- fields?: {
34
- [P in K[number]]?: z.ZodType<QueryRow<NoInfer<C>>[P]>;
35
- };
36
- }): QueryDefinition<Pick<QueryRow<C>, K[number]>, Input>;
37
- declare function queryManifest(queries: readonly {
38
- queryName: string;
39
- contract(): Record<string, unknown>;
40
- }[]): Record<string, unknown>;
41
- /** Commit the manifest; CI compares the generated value before accepting a
42
- * changed response. A reviewed baseline update is explicit, never automatic. */
43
- declare function assertQueryManifest(queries: readonly {
44
- queryName: string;
45
- contract(): Record<string, unknown>;
46
- }[], baseline: unknown): void;
47
-
48
- export { ColumnMap, CompiledRead, EnvQueryDatabase, PreparedRead, QueryDatabase, type QueryDefinition, TableHandle, assertQueryManifest, defineQuery, queryManifest };
@@ -1,48 +1,5 @@
1
- import { P as PreparedRead, c9 as QueryDatabase, U as EnvQueryDatabase, C as CompiledRead, F as ColumnMap, cq as TableHandle, cY as WhereFilter, dE as ColValue, a2 as FindManyOpts } from '../endpoint-BI0yGuEL.js';
2
- export { q as AnyColumn, r as AtomicDatabase, s as AtomicOptions, y as ColumnBuilder, z as ColumnDef, G as ColumnType, i as CommandOptions, D as DatabaseBudget, d as DatabaseDiagnostics, c as DatabaseDiagnosticsOptions, K as DatabaseQueryEvent, L as DatabaseWorkload, O as EXTENSION_DEPENDENCIES, Q as EmbeddingModelRef, E as EnvServiceDatabase, X as EnvTypedDatabase, a8 as InsertManyOptions, a9 as InsertShape, ae as Materialized, al as OnDeleteAction, an as PALBASE_EXTENSIONS, g as Page, ap as PageInfo, aq as PageInput, ar as PageNavigation, a_ as PalbaseExtension, c1 as PolicyBuilder, c2 as PolicyCommand, c3 as PolicyDef, c6 as PolicyMode, c8 as QueryColumnContract, cb as RawConstraintDef, f as RawPageOptions, cd as Ref, cf as RowShape, S as SchemaDef, co as TABLE_META, cp as TableDef, cr as TableInput, T as TransactionIsolation, ct as TxColumnExpr, cu as TxInsertShape, cw as TxNow, cx as TxPlan, h as TxPlanBody, cy as TxPlanError, cz as TxPlanHandle, cA as TxPlanOpResult, cB as TxPlanRejection, j as TxPlanResponse, cC as TxRefError, cD as TxRow, cE as TxRows, cF as TxSelectOptions, cG as TxSetShape, cI as TxTable, cJ as TxTables, cK as TxWhere, cQ as TypedDB, cR as TypedTable, cS as TypedTx, cV as UniqueWhere, c_ as WorkloadOptions, d3 as bigint, d4 as boolean, d7 as dec, da as defineSchema, db as defineTable, dc as defineWorkload, dd as enumType, df as inc, di as installationRef, dj as integer, dk as isPalbaseExtension, dm as jsonb, dn as makeTypedDB, dp as now, dt as openai, du as ownedByUser, dv as policy, dw as raw, dy as text, dz as timestamp, dA as userRef, dB as uuid, dC as vector } from '../endpoint-BI0yGuEL.js';
3
- import { z } from 'zod';
4
- import '../stack.js';
1
+ export { o as AnyColumn, p as AtomicDatabase, q as AtomicOptions, w as ColumnBuilder, x as ColumnDef, y as ColumnMap, z as ColumnType, C as CommandOptions, D as DatabaseBudget, d as DatabaseDiagnostics, c as DatabaseDiagnosticsOptions, I as DatabaseQueryEvent, L as EXTENSION_DEPENDENCIES, M as EmbeddingModelRef, E as EnvServiceDatabase, Q as EnvTypedDatabase, a4 as InsertManyOptions, a5 as InsertShape, aa as Materialized, ah as OnDeleteAction, aj as PALBASE_EXTENSIONS, P as Page, al as PageInfo, am as PageInput, an as PageNavigation, aW as PalbaseExtension, bZ as PolicyBuilder, b_ as PolicyCommand, b$ as PolicyDef, c2 as PolicyMode, c5 as RawConstraintDef, f as RawPageOptions, c7 as Ref, c9 as RowShape, S as SchemaDef, ci as TABLE_META, cj as TableDef, ck as TableHandle, cl as TableInput, T as TransactionIsolation, cn as TxColumnExpr, co as TxInsertShape, cq as TxNow, cr as TxPlan, g as TxPlanBody, cs as TxPlanError, ct as TxPlanHandle, cu as TxPlanOpResult, cv as TxPlanRejection, h as TxPlanResponse, cw as TxRefError, cx as TxRow, cy as TxRows, cz as TxSelectOptions, cA as TxSetShape, cC as TxTable, cD as TxTables, cE as TxWhere, cK as TypedDB, cL as TypedTable, cM as TypedTx, cP as UniqueWhere, cY as bigint, cZ as boolean, d0 as dec, d3 as defineSchema, d4 as defineTable, d5 as enumType, d7 as inc, da as installationRef, db as integer, dc as isPalbaseExtension, de as jsonb, df as makeTypedDB, dg as now, dk as openai, dl as ownedByUser, dm as policy, dn as raw, dq as text, dr as timestamp, ds as userRef, dt as uuid, du as vector } from '../index-CUy50OLU.js';
2
+ import 'zod';
5
3
  import './env.js';
4
+ import '../stack.js';
6
5
  import 'node:async_hooks';
7
-
8
- type QueryRow<C extends ColumnMap> = {
9
- [K in keyof C]: ColValue<C[K]>;
10
- };
11
- type Database = QueryDatabase | EnvQueryDatabase;
12
- /** The query IS its response Zod schema, so the existing return-type binder,
13
- * OpenAPI generator and clients use the same declaration without a second DTO. */
14
- type QueryDefinition<Row, Input extends z.ZodTypeAny> = z.ZodArray<z.ZodType<Row>> & {
15
- readonly queryName: string;
16
- readonly input: Input;
17
- prepare(input: z.input<Input>): PreparedRead;
18
- run(database: Database, input: z.input<Input>): Promise<Row[]>;
19
- sql(database: Database, input: z.input<Input>): CompiledRead;
20
- /** Plain EXPLAIN only: never ANALYZE, and always under the caller's RLS identity. */
21
- explain(database: Database, input: z.input<Input>): Promise<unknown[]>;
22
- contract(): Record<string, unknown>;
23
- };
24
- /** Declare a reusable SELECT with an explicit response projection. */
25
- declare function defineQuery<C extends ColumnMap, const K extends readonly Extract<keyof C, string>[], Input extends z.ZodTypeAny>(name: string, options: {
26
- table: TableHandle<C>;
27
- input: Input;
28
- select: K;
29
- where?: (input: z.output<Input>) => WhereFilter<QueryRow<NoInfer<C>>>;
30
- orderBy?: FindManyOpts<QueryRow<NoInfer<C>>>["orderBy"];
31
- limit?: number | ((input: z.output<Input>) => number);
32
- /** Required for jsonb; can also explicitly narrow another response field. */
33
- fields?: {
34
- [P in K[number]]?: z.ZodType<QueryRow<NoInfer<C>>[P]>;
35
- };
36
- }): QueryDefinition<Pick<QueryRow<C>, K[number]>, Input>;
37
- declare function queryManifest(queries: readonly {
38
- queryName: string;
39
- contract(): Record<string, unknown>;
40
- }[]): Record<string, unknown>;
41
- /** Commit the manifest; CI compares the generated value before accepting a
42
- * changed response. A reviewed baseline update is explicit, never automatic. */
43
- declare function assertQueryManifest(queries: readonly {
44
- queryName: string;
45
- contract(): Record<string, unknown>;
46
- }[], baseline: unknown): void;
47
-
48
- export { ColumnMap, CompiledRead, EnvQueryDatabase, PreparedRead, QueryDatabase, type QueryDefinition, TableHandle, assertQueryManifest, defineQuery, queryManifest };
package/dist/db/index.js CHANGED
@@ -3,17 +3,14 @@ import {
3
3
  PALBASE_EXTENSIONS,
4
4
  PolicyBuilder,
5
5
  TABLE_META,
6
- assertQueryManifest,
7
- defineQuery,
8
6
  defineSchema,
9
7
  defineTable,
10
8
  isPalbaseExtension,
11
9
  makeTypedDB,
12
10
  openai,
13
11
  policy,
14
- queryManifest,
15
12
  raw
16
- } from "../chunk-L4R7WXLH.js";
13
+ } from "../chunk-7WAGQ3VR.js";
17
14
  import {
18
15
  bigint,
19
16
  boolean,
@@ -27,16 +24,15 @@ import {
27
24
  userRef,
28
25
  uuid,
29
26
  vector
30
- } from "../chunk-PRH45NZU.js";
27
+ } from "../chunk-FFO36MQQ.js";
31
28
  import {
32
29
  TxPlanError,
33
30
  TxRefError,
34
31
  dec,
35
- defineWorkload,
36
32
  inc,
37
33
  now
38
- } from "../chunk-P7MGSAFT.js";
39
- import "../chunk-UMESJJRS.js";
34
+ } from "../chunk-LFUNRWUE.js";
35
+ import "../chunk-CS6NQ6PO.js";
40
36
  import "../chunk-VXPNPVAG.js";
41
37
  export {
42
38
  EXTENSION_DEPENDENCIES,
@@ -45,14 +41,11 @@ export {
45
41
  TABLE_META,
46
42
  TxPlanError,
47
43
  TxRefError,
48
- assertQueryManifest,
49
44
  bigint,
50
45
  boolean,
51
46
  dec,
52
- defineQuery,
53
47
  defineSchema,
54
48
  defineTable,
55
- defineWorkload,
56
49
  enumType,
57
50
  inc,
58
51
  installationRef,
@@ -64,7 +57,6 @@ export {
64
57
  openai,
65
58
  ownedByUser,
66
59
  policy,
67
- queryManifest,
68
60
  raw,
69
61
  text,
70
62
  timestamp,