@palbase/backend 25.0.0 → 25.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bin/palbase-backend.cjs +2 -0
- package/dist/bin/palbase-backend.cjs.map +1 -1
- package/dist/bin/palbase-backend.js +2 -2
- package/dist/{chunk-43A3KGWL.js → chunk-34I4GB7D.js} +4 -2
- package/dist/{chunk-43A3KGWL.js.map → chunk-34I4GB7D.js.map} +1 -1
- package/dist/{chunk-ZQRWW37O.js → chunk-35PNTIRN.js} +5 -1
- package/dist/chunk-35PNTIRN.js.map +1 -0
- package/dist/{chunk-OEQBHE2Z.js → chunk-7JSEN7UR.js} +20 -4
- package/dist/chunk-7JSEN7UR.js.map +1 -0
- package/dist/{chunk-5CMLOAEF.js → chunk-YOY5DFQS.js} +2 -2
- package/dist/db/env.cjs.map +1 -1
- package/dist/db/env.d.cts +2 -1
- package/dist/db/env.d.ts +2 -1
- package/dist/db/index.cjs +17 -3
- package/dist/db/index.cjs.map +1 -1
- package/dist/db/index.d.cts +2 -2
- package/dist/db/index.d.ts +2 -2
- package/dist/db/index.js +1 -1
- package/dist/{endpoint-DMwJjEHQ.d.ts → endpoint-CTEHhb7A.d.ts} +19 -8
- package/dist/{endpoint-BSGw1pTu.d.cts → endpoint-DYHMo6cC.d.cts} +19 -8
- package/dist/engine/index.cjs +2 -0
- package/dist/engine/index.cjs.map +1 -1
- package/dist/engine/index.d.cts +4 -4
- package/dist/engine/index.d.ts +4 -4
- package/dist/engine/index.js +2 -2
- package/dist/{index-BF1f0DfA.d.ts → index-CUomTA3e.d.ts} +3 -3
- package/dist/{index-Ct1iiB4N.d.ts → index-CW21M9Z3.d.ts} +24 -17
- package/dist/{index-CoaDN9dL.d.cts → index-ClpDeSos.d.cts} +3 -3
- package/dist/{index-CwaWRhyc.d.cts → index-CmBK76nx.d.cts} +24 -17
- package/dist/index.cjs +80 -51
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +13 -11
- package/dist/index.d.ts +13 -11
- package/dist/index.js +62 -51
- package/dist/index.js.map +1 -1
- package/dist/openapi/index.cjs +1 -1
- package/dist/openapi/index.cjs.map +1 -1
- package/dist/openapi/index.d.cts +2 -2
- package/dist/openapi/index.d.ts +2 -2
- package/dist/openapi/index.js +3 -3
- package/dist/openapi/index.js.map +1 -1
- package/dist/{registry-CgJvDYUW.d.cts → registry-CC0WBQq6.d.cts} +1 -1
- package/dist/{registry-B8pld3fj.d.ts → registry-dZZ5JKYg.d.ts} +1 -1
- package/dist/test/index.d.cts +1 -1
- package/dist/test/index.d.ts +1 -1
- package/docs/README.md +9 -8
- package/docs/database.md +2 -2
- package/docs/endpoints.md +6 -5
- package/docs/getting-started.md +1 -1
- package/docs/llms-full.txt +74 -38
- package/docs/migrations.md +16 -14
- package/docs/schema.md +38 -7
- package/docs/services.md +2 -1
- package/package.json +1 -1
- package/dist/chunk-OEQBHE2Z.js.map +0 -1
- package/dist/chunk-ZQRWW37O.js.map +0 -1
- /package/dist/{chunk-5CMLOAEF.js.map → chunk-YOY5DFQS.js.map} +0 -0
package/dist/index.d.cts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { h as PalbaseResult, A as AuthSpec, H as HttpError } from './endpoint-
|
|
2
|
-
export { i as AuthConfig, B as BadRequest, C as CacheClient, j as ClientInfo, k as Conflict, D as DBClient, f as DBOps, E as ErrorDef, l as ErrorMap, m as ErrorThrowers, F as FileContext, n as Forbidden, o as HttpMethod, L as Logger, M as Materialized, p as Middleware, q as MiddlewareContext, r as MiddlewareHandler, N as NotFound, s as PBRequest, t as PalError, u as PalbaseAnalyticsClient, v as PalbaseAnalyticsManagementNamespace, w as PalbaseAnalyticsProperties, x as PalbaseAnalyticsQueryNamespace, y as PalbaseAttestAndroidParams, z as PalbaseAttestAndroidResult, G as PalbaseAttestiOSParams, I as PalbaseAttestiOSResult, J as PalbaseAuthClient, K as PalbaseBatchOverrideOperation, O as PalbaseBatchSetOverridesResult, Q as PalbaseBindDeviceParams, e as PalbaseBucketClient, U as PalbaseClearAllOverridesResult, V as PalbaseClearOverrideResult, W as PalbaseCohortQueryInput, X as PalbaseCohortResult, Y as PalbaseCollectionRef, Z as PalbaseCountQueryInput, _ as PalbaseCountResult, $ as PalbaseCreateLinkParams, a0 as PalbaseDeviceInfo, a1 as PalbaseDeviceTokenView, P as PalbaseDocsClient, a2 as PalbaseDocumentRef, a3 as PalbaseDocumentSnapshot, a4 as PalbaseEmailClient, a5 as PalbaseEmailSendParams, a6 as PalbaseEmailSendResponse, a7 as PalbaseEventNamesResult, a8 as PalbaseEventsQueryInput, a9 as PalbaseEventsResult, aa as PalbaseFileObject, ab as PalbaseFlag, ac as PalbaseFlagContext, ad as PalbaseFlagSource, ae as PalbaseFlagValue, af as PalbaseFlagVariant, a as PalbaseFlagsClient, ag as PalbaseFlagsServiceClient, ah as PalbaseFunctionsClient, ai as PalbaseFunnelQueryInput, aj as PalbaseFunnelResult, ak as PalbaseIdentifyTraits, al as PalbaseInboxClient, am as PalbaseInboxListOptions, an as PalbaseInboxListResult, ao as PalbaseInboxMessage, ap as PalbaseInboxSendParams, aq as PalbaseInboxSendResponse, ar as PalbaseInitialLink, as as PalbaseInvokeOptions, at as PalbaseLink, au as PalbaseLinkAnalytics, av as PalbaseLinkDetails, aw as PalbaseLinksClient, ax as PalbaseListLinksOptions, ay as PalbaseListLinksResult, az as PalbaseListOptions, aA as PalbaseMatchParams, aB as PalbaseMultiChannelResponse, b as PalbaseNotificationsClient, aC as PalbaseOverviewResult, aD as PalbasePreferences, aE as PalbasePreferencesClient, aF as PalbasePushClient, aG as PalbasePushSendParams, aH as PalbasePushSendResponse, aI as PalbaseQrCodeOptions, aJ as PalbaseQuerySnapshot, c as PalbaseRealtimeClient, aK as PalbaseRegisterDeviceParams, aL as PalbaseRetentionQueryInput, aM as PalbaseRetentionResult, aN as PalbaseSession, aO as PalbaseSetOverrideResult, aP as PalbaseSetOverridesResult, aQ as PalbaseSignedUrlResponse, aR as PalbaseSmsClient, aS as PalbaseSmsSendParams, aT as PalbaseSmsSendResponse, d as PalbaseStorageClient, aU as PalbaseTransformOptions, aV as PalbaseUpdateLinkParams, aW as PalbaseUploadOptions, aX as PalbaseUser, aY as PalbaseUserDetailResult, aZ as PalbaseUsersQueryInput, a_ as PalbaseUsersResult, a$ as PalbaseVerifyRequestSignatureParams, b0 as PalbaseWhereOperator, R as RateLimitConfig, b1 as Ref, S as SecretsService, b2 as TooManyRequests, b3 as TxColumnExpr, b4 as TxInsertShape, b5 as TxInsertValue, b6 as TxNow, T as TxPlanBody, b7 as TxPlanError, b8 as TxPlanHandle, b9 as TxPlanOpResult, ba as TxPlanRejection, g as TxPlanResponse, bb as TxRefError, bc as TxRow, bd as TxRows, be as TxSelectOptions, bf as TxSetShape, bg as TxSetValue, bh as TxTable, bi as TxWhere, bj as TxWireExpr, bk as TxWireGuard, bl as TxWireOp, bm as TxWireRef, bn as TxWireValue, bo as Unauthorized, bp as UniqueViolation, bq as UserT, br as VerifiedDevice, bs as dec, bt as defineMiddleware, bu as inc, bv as now } from './endpoint-
|
|
3
|
-
import { M as ModuleClients } from './index-
|
|
4
|
-
export { C as Cache, D as Database, a as Documents, F as Flags, L as LifecycleHook, b as Log, N as Notifications, R as Realtime, c as RequestStore, d as RuntimeServices, S as Secrets, e as ShutdownRunner, f as Storage, _ as __getRuntime, g as __requestALS, h as __resetLifecycleHooks, i as __runStartHooks, j as __runWithRuntime, k as __setRuntime, o as onShutdown, l as onStart } from './index-
|
|
5
|
-
import { S as SchemaDef } from './index-
|
|
6
|
-
export { A as AnyColumn, C as ColumnBuilder, a as ColumnDef, b as ColumnMap, c as ColumnType, d as EXTENSION_DEPENDENCIES, e as EmbeddingModelRef, f as EnvSchemas, g as EnvServiceDatabase, h as EnvTables, E as EnvTypedDatabase, i as EnvTypedTable, I as InsertShape, O as OnDeleteAction, P as PALBASE_EXTENSIONS, j as PalbaseExtension, k as PolicyBuilder, l as PolicyCommand, m as PolicyDef, n as PolicyMode, R as RawConstraintDef, o as RowShape,
|
|
1
|
+
import { h as PalbaseResult, A as AuthSpec, H as HttpError } from './endpoint-DYHMo6cC.cjs';
|
|
2
|
+
export { i as AuthConfig, B as BadRequest, C as CacheClient, j as ClientInfo, k as Conflict, D as DBClient, f as DBOps, E as ErrorDef, l as ErrorMap, m as ErrorThrowers, F as FileContext, n as Forbidden, o as HttpMethod, L as Logger, M as Materialized, p as Middleware, q as MiddlewareContext, r as MiddlewareHandler, N as NotFound, s as PBRequest, t as PalError, u as PalbaseAnalyticsClient, v as PalbaseAnalyticsManagementNamespace, w as PalbaseAnalyticsProperties, x as PalbaseAnalyticsQueryNamespace, y as PalbaseAttestAndroidParams, z as PalbaseAttestAndroidResult, G as PalbaseAttestiOSParams, I as PalbaseAttestiOSResult, J as PalbaseAuthClient, K as PalbaseBatchOverrideOperation, O as PalbaseBatchSetOverridesResult, Q as PalbaseBindDeviceParams, e as PalbaseBucketClient, U as PalbaseClearAllOverridesResult, V as PalbaseClearOverrideResult, W as PalbaseCohortQueryInput, X as PalbaseCohortResult, Y as PalbaseCollectionRef, Z as PalbaseCountQueryInput, _ as PalbaseCountResult, $ as PalbaseCreateLinkParams, a0 as PalbaseDeviceInfo, a1 as PalbaseDeviceTokenView, P as PalbaseDocsClient, a2 as PalbaseDocumentRef, a3 as PalbaseDocumentSnapshot, a4 as PalbaseEmailClient, a5 as PalbaseEmailSendParams, a6 as PalbaseEmailSendResponse, a7 as PalbaseEventNamesResult, a8 as PalbaseEventsQueryInput, a9 as PalbaseEventsResult, aa as PalbaseFileObject, ab as PalbaseFlag, ac as PalbaseFlagContext, ad as PalbaseFlagSource, ae as PalbaseFlagValue, af as PalbaseFlagVariant, a as PalbaseFlagsClient, ag as PalbaseFlagsServiceClient, ah as PalbaseFunctionsClient, ai as PalbaseFunnelQueryInput, aj as PalbaseFunnelResult, ak as PalbaseIdentifyTraits, al as PalbaseInboxClient, am as PalbaseInboxListOptions, an as PalbaseInboxListResult, ao as PalbaseInboxMessage, ap as PalbaseInboxSendParams, aq as PalbaseInboxSendResponse, ar as PalbaseInitialLink, as as PalbaseInvokeOptions, at as PalbaseLink, au as PalbaseLinkAnalytics, av as PalbaseLinkDetails, aw as PalbaseLinksClient, ax as PalbaseListLinksOptions, ay as PalbaseListLinksResult, az as PalbaseListOptions, aA as PalbaseMatchParams, aB as PalbaseMultiChannelResponse, b as PalbaseNotificationsClient, aC as PalbaseOverviewResult, aD as PalbasePreferences, aE as PalbasePreferencesClient, aF as PalbasePushClient, aG as PalbasePushSendParams, aH as PalbasePushSendResponse, aI as PalbaseQrCodeOptions, aJ as PalbaseQuerySnapshot, c as PalbaseRealtimeClient, aK as PalbaseRegisterDeviceParams, aL as PalbaseRetentionQueryInput, aM as PalbaseRetentionResult, aN as PalbaseSession, aO as PalbaseSetOverrideResult, aP as PalbaseSetOverridesResult, aQ as PalbaseSignedUrlResponse, aR as PalbaseSmsClient, aS as PalbaseSmsSendParams, aT as PalbaseSmsSendResponse, d as PalbaseStorageClient, aU as PalbaseTransformOptions, aV as PalbaseUpdateLinkParams, aW as PalbaseUploadOptions, aX as PalbaseUser, aY as PalbaseUserDetailResult, aZ as PalbaseUsersQueryInput, a_ as PalbaseUsersResult, a$ as PalbaseVerifyRequestSignatureParams, b0 as PalbaseWhereOperator, R as RateLimitConfig, b1 as Ref, S as SecretsService, b2 as TooManyRequests, b3 as TxColumnExpr, b4 as TxInsertShape, b5 as TxInsertValue, b6 as TxNow, T as TxPlanBody, b7 as TxPlanError, b8 as TxPlanHandle, b9 as TxPlanOpResult, ba as TxPlanRejection, g as TxPlanResponse, bb as TxRefError, bc as TxRow, bd as TxRows, be as TxSelectOptions, bf as TxSetShape, bg as TxSetValue, bh as TxTable, bi as TxWhere, bj as TxWireExpr, bk as TxWireGuard, bl as TxWireOp, bm as TxWireRef, bn as TxWireValue, bo as Unauthorized, bp as UniqueViolation, bq as UserT, br as VerifiedDevice, bs as dec, bt as defineMiddleware, bu as inc, bv as now } from './endpoint-DYHMo6cC.cjs';
|
|
3
|
+
import { M as ModuleClients } from './index-ClpDeSos.cjs';
|
|
4
|
+
export { C as Cache, D as Database, a as Documents, F as Flags, L as LifecycleHook, b as Log, N as Notifications, R as Realtime, c as RequestStore, d as RuntimeServices, S as Secrets, e as ShutdownRunner, f as Storage, _ as __getRuntime, g as __requestALS, h as __resetLifecycleHooks, i as __runStartHooks, j as __runWithRuntime, k as __setRuntime, o as onShutdown, l as onStart } from './index-ClpDeSos.cjs';
|
|
5
|
+
import { S as SchemaDef } from './index-CmBK76nx.cjs';
|
|
6
|
+
export { A as AnyColumn, C as ColumnBuilder, a as ColumnDef, b as ColumnMap, c as ColumnType, d as EXTENSION_DEPENDENCIES, e as EmbeddingModelRef, f as EnvSchemas, g as EnvServiceDatabase, h as EnvTables, E as EnvTypedDatabase, i as EnvTypedTable, I as InsertShape, O as OnDeleteAction, P as PALBASE_EXTENSIONS, j as PalbaseExtension, k as PolicyBuilder, l as PolicyCommand, m as PolicyDef, n as PolicyMode, R as RawConstraintDef, o as RowShape, T as TABLE_META, p as TableDef, q as TableHandle, r as TableInput, s as TxPlan, t as TxTables, u as TypedDB, v as TypedTable, w as TypedTx, x as bigint, y as boolean, z as defineSchema, B as defineTable, D as enumType, F as installationRef, G as integer, H as isPalbaseExtension, J as jsonb, K as makeTypedDB, L as numeric, M as openai, N as ownedByUser, Q as policy, U as raw, V as text, W as timestamp, X as userRef, Y as uuid, Z as vector } from './index-CmBK76nx.cjs';
|
|
7
7
|
export { TableTypes, Tables } from './db/env.cjs';
|
|
8
8
|
export { PalbaseBucketName, PalbaseFlagKey, PalbaseSecretName } from './stack.cjs';
|
|
9
|
-
import { a as RouteOptions } from './registry-
|
|
10
|
-
export { H as HttpMethodUpper, b as ParamKind, P as ParamMeta, R as RouteMeta, c as Signal, d as Sse, S as SseConfig, e as SseOut, f as SseWriter, T as ThrowDescriptor, g as Upload, U as UploadConfig, h as UploadedObject, i as getRoutes, r as recordThrows } from './registry-
|
|
9
|
+
import { a as RouteOptions } from './registry-CC0WBQq6.cjs';
|
|
10
|
+
export { H as HttpMethodUpper, b as ParamKind, P as ParamMeta, R as RouteMeta, c as Signal, d as Sse, S as SseConfig, e as SseOut, f as SseWriter, T as ThrowDescriptor, g as Upload, U as UploadConfig, h as UploadedObject, i as getRoutes, r as recordThrows } from './registry-CC0WBQq6.cjs';
|
|
11
11
|
import { ZodTypeAny, z } from 'zod';
|
|
12
12
|
export { z } from 'zod';
|
|
13
13
|
import 'node:async_hooks';
|
|
@@ -139,6 +139,7 @@ interface ColumnJSON {
|
|
|
139
139
|
renamedFrom?: string;
|
|
140
140
|
/** See Go's `schema.ColumnJSON.Ignored` — the contraction gate's only signal. */
|
|
141
141
|
ignored?: boolean;
|
|
142
|
+
owns?: boolean;
|
|
142
143
|
references?: {
|
|
143
144
|
table: string;
|
|
144
145
|
column: string;
|
|
@@ -368,7 +369,7 @@ declare function defineChannels(map: ChannelsInput): ChannelsDef;
|
|
|
368
369
|
* The output is FLAT: each table gets a `{ row: {...}; insert: {...} }` entry
|
|
369
370
|
* with plain TypeScript object types. The phantom `ColumnBuilder<...>` type
|
|
370
371
|
* NEVER appears in the generated `.d.ts` — that type only lives at authoring
|
|
371
|
-
* time inside `db
|
|
372
|
+
* time inside the project's `db/*.ts` schema files.
|
|
372
373
|
*/
|
|
373
374
|
|
|
374
375
|
/**
|
|
@@ -384,8 +385,9 @@ declare function defineChannels(map: ChannelsInput): ChannelsDef;
|
|
|
384
385
|
*
|
|
385
386
|
* @example
|
|
386
387
|
* import { makeEnvDts } from "@palbase/backend";
|
|
387
|
-
* import
|
|
388
|
-
*
|
|
388
|
+
* import publicSchema from "./db/public.js";
|
|
389
|
+
* import billing from "./db/billing.js";
|
|
390
|
+
* writeFileSync("palbase-env.d.ts", makeEnvDts([publicSchema, billing]));
|
|
389
391
|
*/
|
|
390
392
|
declare function makeEnvDts(schemas: readonly SchemaDef[]): string;
|
|
391
393
|
|
package/dist/index.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { h as PalbaseResult, A as AuthSpec, H as HttpError } from './endpoint-
|
|
2
|
-
export { i as AuthConfig, B as BadRequest, C as CacheClient, j as ClientInfo, k as Conflict, D as DBClient, f as DBOps, E as ErrorDef, l as ErrorMap, m as ErrorThrowers, F as FileContext, n as Forbidden, o as HttpMethod, L as Logger, M as Materialized, p as Middleware, q as MiddlewareContext, r as MiddlewareHandler, N as NotFound, s as PBRequest, t as PalError, u as PalbaseAnalyticsClient, v as PalbaseAnalyticsManagementNamespace, w as PalbaseAnalyticsProperties, x as PalbaseAnalyticsQueryNamespace, y as PalbaseAttestAndroidParams, z as PalbaseAttestAndroidResult, G as PalbaseAttestiOSParams, I as PalbaseAttestiOSResult, J as PalbaseAuthClient, K as PalbaseBatchOverrideOperation, O as PalbaseBatchSetOverridesResult, Q as PalbaseBindDeviceParams, e as PalbaseBucketClient, U as PalbaseClearAllOverridesResult, V as PalbaseClearOverrideResult, W as PalbaseCohortQueryInput, X as PalbaseCohortResult, Y as PalbaseCollectionRef, Z as PalbaseCountQueryInput, _ as PalbaseCountResult, $ as PalbaseCreateLinkParams, a0 as PalbaseDeviceInfo, a1 as PalbaseDeviceTokenView, P as PalbaseDocsClient, a2 as PalbaseDocumentRef, a3 as PalbaseDocumentSnapshot, a4 as PalbaseEmailClient, a5 as PalbaseEmailSendParams, a6 as PalbaseEmailSendResponse, a7 as PalbaseEventNamesResult, a8 as PalbaseEventsQueryInput, a9 as PalbaseEventsResult, aa as PalbaseFileObject, ab as PalbaseFlag, ac as PalbaseFlagContext, ad as PalbaseFlagSource, ae as PalbaseFlagValue, af as PalbaseFlagVariant, a as PalbaseFlagsClient, ag as PalbaseFlagsServiceClient, ah as PalbaseFunctionsClient, ai as PalbaseFunnelQueryInput, aj as PalbaseFunnelResult, ak as PalbaseIdentifyTraits, al as PalbaseInboxClient, am as PalbaseInboxListOptions, an as PalbaseInboxListResult, ao as PalbaseInboxMessage, ap as PalbaseInboxSendParams, aq as PalbaseInboxSendResponse, ar as PalbaseInitialLink, as as PalbaseInvokeOptions, at as PalbaseLink, au as PalbaseLinkAnalytics, av as PalbaseLinkDetails, aw as PalbaseLinksClient, ax as PalbaseListLinksOptions, ay as PalbaseListLinksResult, az as PalbaseListOptions, aA as PalbaseMatchParams, aB as PalbaseMultiChannelResponse, b as PalbaseNotificationsClient, aC as PalbaseOverviewResult, aD as PalbasePreferences, aE as PalbasePreferencesClient, aF as PalbasePushClient, aG as PalbasePushSendParams, aH as PalbasePushSendResponse, aI as PalbaseQrCodeOptions, aJ as PalbaseQuerySnapshot, c as PalbaseRealtimeClient, aK as PalbaseRegisterDeviceParams, aL as PalbaseRetentionQueryInput, aM as PalbaseRetentionResult, aN as PalbaseSession, aO as PalbaseSetOverrideResult, aP as PalbaseSetOverridesResult, aQ as PalbaseSignedUrlResponse, aR as PalbaseSmsClient, aS as PalbaseSmsSendParams, aT as PalbaseSmsSendResponse, d as PalbaseStorageClient, aU as PalbaseTransformOptions, aV as PalbaseUpdateLinkParams, aW as PalbaseUploadOptions, aX as PalbaseUser, aY as PalbaseUserDetailResult, aZ as PalbaseUsersQueryInput, a_ as PalbaseUsersResult, a$ as PalbaseVerifyRequestSignatureParams, b0 as PalbaseWhereOperator, R as RateLimitConfig, b1 as Ref, S as SecretsService, b2 as TooManyRequests, b3 as TxColumnExpr, b4 as TxInsertShape, b5 as TxInsertValue, b6 as TxNow, T as TxPlanBody, b7 as TxPlanError, b8 as TxPlanHandle, b9 as TxPlanOpResult, ba as TxPlanRejection, g as TxPlanResponse, bb as TxRefError, bc as TxRow, bd as TxRows, be as TxSelectOptions, bf as TxSetShape, bg as TxSetValue, bh as TxTable, bi as TxWhere, bj as TxWireExpr, bk as TxWireGuard, bl as TxWireOp, bm as TxWireRef, bn as TxWireValue, bo as Unauthorized, bp as UniqueViolation, bq as UserT, br as VerifiedDevice, bs as dec, bt as defineMiddleware, bu as inc, bv as now } from './endpoint-
|
|
3
|
-
import { M as ModuleClients } from './index-
|
|
4
|
-
export { C as Cache, D as Database, a as Documents, F as Flags, L as LifecycleHook, b as Log, N as Notifications, R as Realtime, c as RequestStore, d as RuntimeServices, S as Secrets, e as ShutdownRunner, f as Storage, _ as __getRuntime, g as __requestALS, h as __resetLifecycleHooks, i as __runStartHooks, j as __runWithRuntime, k as __setRuntime, o as onShutdown, l as onStart } from './index-
|
|
5
|
-
import { S as SchemaDef } from './index-
|
|
6
|
-
export { A as AnyColumn, C as ColumnBuilder, a as ColumnDef, b as ColumnMap, c as ColumnType, d as EXTENSION_DEPENDENCIES, e as EmbeddingModelRef, f as EnvSchemas, g as EnvServiceDatabase, h as EnvTables, E as EnvTypedDatabase, i as EnvTypedTable, I as InsertShape, O as OnDeleteAction, P as PALBASE_EXTENSIONS, j as PalbaseExtension, k as PolicyBuilder, l as PolicyCommand, m as PolicyDef, n as PolicyMode, R as RawConstraintDef, o as RowShape,
|
|
1
|
+
import { h as PalbaseResult, A as AuthSpec, H as HttpError } from './endpoint-CTEHhb7A.js';
|
|
2
|
+
export { i as AuthConfig, B as BadRequest, C as CacheClient, j as ClientInfo, k as Conflict, D as DBClient, f as DBOps, E as ErrorDef, l as ErrorMap, m as ErrorThrowers, F as FileContext, n as Forbidden, o as HttpMethod, L as Logger, M as Materialized, p as Middleware, q as MiddlewareContext, r as MiddlewareHandler, N as NotFound, s as PBRequest, t as PalError, u as PalbaseAnalyticsClient, v as PalbaseAnalyticsManagementNamespace, w as PalbaseAnalyticsProperties, x as PalbaseAnalyticsQueryNamespace, y as PalbaseAttestAndroidParams, z as PalbaseAttestAndroidResult, G as PalbaseAttestiOSParams, I as PalbaseAttestiOSResult, J as PalbaseAuthClient, K as PalbaseBatchOverrideOperation, O as PalbaseBatchSetOverridesResult, Q as PalbaseBindDeviceParams, e as PalbaseBucketClient, U as PalbaseClearAllOverridesResult, V as PalbaseClearOverrideResult, W as PalbaseCohortQueryInput, X as PalbaseCohortResult, Y as PalbaseCollectionRef, Z as PalbaseCountQueryInput, _ as PalbaseCountResult, $ as PalbaseCreateLinkParams, a0 as PalbaseDeviceInfo, a1 as PalbaseDeviceTokenView, P as PalbaseDocsClient, a2 as PalbaseDocumentRef, a3 as PalbaseDocumentSnapshot, a4 as PalbaseEmailClient, a5 as PalbaseEmailSendParams, a6 as PalbaseEmailSendResponse, a7 as PalbaseEventNamesResult, a8 as PalbaseEventsQueryInput, a9 as PalbaseEventsResult, aa as PalbaseFileObject, ab as PalbaseFlag, ac as PalbaseFlagContext, ad as PalbaseFlagSource, ae as PalbaseFlagValue, af as PalbaseFlagVariant, a as PalbaseFlagsClient, ag as PalbaseFlagsServiceClient, ah as PalbaseFunctionsClient, ai as PalbaseFunnelQueryInput, aj as PalbaseFunnelResult, ak as PalbaseIdentifyTraits, al as PalbaseInboxClient, am as PalbaseInboxListOptions, an as PalbaseInboxListResult, ao as PalbaseInboxMessage, ap as PalbaseInboxSendParams, aq as PalbaseInboxSendResponse, ar as PalbaseInitialLink, as as PalbaseInvokeOptions, at as PalbaseLink, au as PalbaseLinkAnalytics, av as PalbaseLinkDetails, aw as PalbaseLinksClient, ax as PalbaseListLinksOptions, ay as PalbaseListLinksResult, az as PalbaseListOptions, aA as PalbaseMatchParams, aB as PalbaseMultiChannelResponse, b as PalbaseNotificationsClient, aC as PalbaseOverviewResult, aD as PalbasePreferences, aE as PalbasePreferencesClient, aF as PalbasePushClient, aG as PalbasePushSendParams, aH as PalbasePushSendResponse, aI as PalbaseQrCodeOptions, aJ as PalbaseQuerySnapshot, c as PalbaseRealtimeClient, aK as PalbaseRegisterDeviceParams, aL as PalbaseRetentionQueryInput, aM as PalbaseRetentionResult, aN as PalbaseSession, aO as PalbaseSetOverrideResult, aP as PalbaseSetOverridesResult, aQ as PalbaseSignedUrlResponse, aR as PalbaseSmsClient, aS as PalbaseSmsSendParams, aT as PalbaseSmsSendResponse, d as PalbaseStorageClient, aU as PalbaseTransformOptions, aV as PalbaseUpdateLinkParams, aW as PalbaseUploadOptions, aX as PalbaseUser, aY as PalbaseUserDetailResult, aZ as PalbaseUsersQueryInput, a_ as PalbaseUsersResult, a$ as PalbaseVerifyRequestSignatureParams, b0 as PalbaseWhereOperator, R as RateLimitConfig, b1 as Ref, S as SecretsService, b2 as TooManyRequests, b3 as TxColumnExpr, b4 as TxInsertShape, b5 as TxInsertValue, b6 as TxNow, T as TxPlanBody, b7 as TxPlanError, b8 as TxPlanHandle, b9 as TxPlanOpResult, ba as TxPlanRejection, g as TxPlanResponse, bb as TxRefError, bc as TxRow, bd as TxRows, be as TxSelectOptions, bf as TxSetShape, bg as TxSetValue, bh as TxTable, bi as TxWhere, bj as TxWireExpr, bk as TxWireGuard, bl as TxWireOp, bm as TxWireRef, bn as TxWireValue, bo as Unauthorized, bp as UniqueViolation, bq as UserT, br as VerifiedDevice, bs as dec, bt as defineMiddleware, bu as inc, bv as now } from './endpoint-CTEHhb7A.js';
|
|
3
|
+
import { M as ModuleClients } from './index-CUomTA3e.js';
|
|
4
|
+
export { C as Cache, D as Database, a as Documents, F as Flags, L as LifecycleHook, b as Log, N as Notifications, R as Realtime, c as RequestStore, d as RuntimeServices, S as Secrets, e as ShutdownRunner, f as Storage, _ as __getRuntime, g as __requestALS, h as __resetLifecycleHooks, i as __runStartHooks, j as __runWithRuntime, k as __setRuntime, o as onShutdown, l as onStart } from './index-CUomTA3e.js';
|
|
5
|
+
import { S as SchemaDef } from './index-CW21M9Z3.js';
|
|
6
|
+
export { A as AnyColumn, C as ColumnBuilder, a as ColumnDef, b as ColumnMap, c as ColumnType, d as EXTENSION_DEPENDENCIES, e as EmbeddingModelRef, f as EnvSchemas, g as EnvServiceDatabase, h as EnvTables, E as EnvTypedDatabase, i as EnvTypedTable, I as InsertShape, O as OnDeleteAction, P as PALBASE_EXTENSIONS, j as PalbaseExtension, k as PolicyBuilder, l as PolicyCommand, m as PolicyDef, n as PolicyMode, R as RawConstraintDef, o as RowShape, T as TABLE_META, p as TableDef, q as TableHandle, r as TableInput, s as TxPlan, t as TxTables, u as TypedDB, v as TypedTable, w as TypedTx, x as bigint, y as boolean, z as defineSchema, B as defineTable, D as enumType, F as installationRef, G as integer, H as isPalbaseExtension, J as jsonb, K as makeTypedDB, L as numeric, M as openai, N as ownedByUser, Q as policy, U as raw, V as text, W as timestamp, X as userRef, Y as uuid, Z as vector } from './index-CW21M9Z3.js';
|
|
7
7
|
export { TableTypes, Tables } from './db/env.js';
|
|
8
8
|
export { PalbaseBucketName, PalbaseFlagKey, PalbaseSecretName } from './stack.js';
|
|
9
|
-
import { a as RouteOptions } from './registry-
|
|
10
|
-
export { H as HttpMethodUpper, b as ParamKind, P as ParamMeta, R as RouteMeta, c as Signal, d as Sse, S as SseConfig, e as SseOut, f as SseWriter, T as ThrowDescriptor, g as Upload, U as UploadConfig, h as UploadedObject, i as getRoutes, r as recordThrows } from './registry-
|
|
9
|
+
import { a as RouteOptions } from './registry-dZZ5JKYg.js';
|
|
10
|
+
export { H as HttpMethodUpper, b as ParamKind, P as ParamMeta, R as RouteMeta, c as Signal, d as Sse, S as SseConfig, e as SseOut, f as SseWriter, T as ThrowDescriptor, g as Upload, U as UploadConfig, h as UploadedObject, i as getRoutes, r as recordThrows } from './registry-dZZ5JKYg.js';
|
|
11
11
|
import { ZodTypeAny, z } from 'zod';
|
|
12
12
|
export { z } from 'zod';
|
|
13
13
|
import 'node:async_hooks';
|
|
@@ -139,6 +139,7 @@ interface ColumnJSON {
|
|
|
139
139
|
renamedFrom?: string;
|
|
140
140
|
/** See Go's `schema.ColumnJSON.Ignored` — the contraction gate's only signal. */
|
|
141
141
|
ignored?: boolean;
|
|
142
|
+
owns?: boolean;
|
|
142
143
|
references?: {
|
|
143
144
|
table: string;
|
|
144
145
|
column: string;
|
|
@@ -368,7 +369,7 @@ declare function defineChannels(map: ChannelsInput): ChannelsDef;
|
|
|
368
369
|
* The output is FLAT: each table gets a `{ row: {...}; insert: {...} }` entry
|
|
369
370
|
* with plain TypeScript object types. The phantom `ColumnBuilder<...>` type
|
|
370
371
|
* NEVER appears in the generated `.d.ts` — that type only lives at authoring
|
|
371
|
-
* time inside `db
|
|
372
|
+
* time inside the project's `db/*.ts` schema files.
|
|
372
373
|
*/
|
|
373
374
|
|
|
374
375
|
/**
|
|
@@ -384,8 +385,9 @@ declare function defineChannels(map: ChannelsInput): ChannelsDef;
|
|
|
384
385
|
*
|
|
385
386
|
* @example
|
|
386
387
|
* import { makeEnvDts } from "@palbase/backend";
|
|
387
|
-
* import
|
|
388
|
-
*
|
|
388
|
+
* import publicSchema from "./db/public.js";
|
|
389
|
+
* import billing from "./db/billing.js";
|
|
390
|
+
* writeFileSync("palbase-env.d.ts", makeEnvDts([publicSchema, billing]));
|
|
389
391
|
*/
|
|
390
392
|
declare function makeEnvDts(schemas: readonly SchemaDef[]): string;
|
|
391
393
|
|
package/dist/index.js
CHANGED
|
@@ -17,6 +17,7 @@ import {
|
|
|
17
17
|
openai,
|
|
18
18
|
ownedByUser,
|
|
19
19
|
policy,
|
|
20
|
+
qualifiedTableKey,
|
|
20
21
|
raw,
|
|
21
22
|
text,
|
|
22
23
|
timestamp,
|
|
@@ -24,11 +25,11 @@ import {
|
|
|
24
25
|
userRef,
|
|
25
26
|
uuid,
|
|
26
27
|
vector
|
|
27
|
-
} from "./chunk-
|
|
28
|
+
} from "./chunk-7JSEN7UR.js";
|
|
28
29
|
import {
|
|
29
30
|
defineError,
|
|
30
31
|
getErrorRegistry
|
|
31
|
-
} from "./chunk-
|
|
32
|
+
} from "./chunk-YOY5DFQS.js";
|
|
32
33
|
import {
|
|
33
34
|
Cache,
|
|
34
35
|
Database,
|
|
@@ -79,7 +80,7 @@ import {
|
|
|
79
80
|
recordRoute,
|
|
80
81
|
recordThrows,
|
|
81
82
|
resolveEffectiveAuth
|
|
82
|
-
} from "./chunk-
|
|
83
|
+
} from "./chunk-35PNTIRN.js";
|
|
83
84
|
import "./chunk-7D4SUZUM.js";
|
|
84
85
|
|
|
85
86
|
// src/clients/http.ts
|
|
@@ -1059,64 +1060,73 @@ function optionalOnInsert(def) {
|
|
|
1059
1060
|
function forwardName(column) {
|
|
1060
1061
|
return column.endsWith("_id") ? column.slice(0, -3) : column;
|
|
1061
1062
|
}
|
|
1062
|
-
function
|
|
1063
|
-
return
|
|
1063
|
+
function describeOrigin(o) {
|
|
1064
|
+
return o.direction === "forward" ? `the foreign key "${o.table}.${o.column}"` : `the reverse of "${o.table}.${o.column}"`;
|
|
1065
|
+
}
|
|
1066
|
+
function renameCall(o) {
|
|
1067
|
+
if (o.direction === "reverse") return `references(() => \u2026, { reverseAs: "\u2026" })`;
|
|
1068
|
+
if (o.def.owns === true) {
|
|
1069
|
+
return `ownedByUser() takes no { as } \u2014 if "${o.column}" only POINTS at a user, declare it userRef({ onDelete: \u2026 }) instead`;
|
|
1070
|
+
}
|
|
1071
|
+
const target = o.def.references?.table;
|
|
1072
|
+
if (target === "auth.users") return `userRef({ onDelete: \u2026, as: "\u2026" })`;
|
|
1073
|
+
if (target === "auth.installations") return `installationRef({ onDelete: \u2026, as: "\u2026" })`;
|
|
1074
|
+
if (o.def.selfRefColumn !== void 0) return `selfReferences("\u2026", { as: "\u2026" })`;
|
|
1075
|
+
return `references(() => \u2026, { as: "\u2026" })`;
|
|
1064
1076
|
}
|
|
1065
1077
|
function buildRelations(schemas) {
|
|
1066
1078
|
const out = /* @__PURE__ */ new Map();
|
|
1067
|
-
const
|
|
1079
|
+
const taken = /* @__PURE__ */ new Map();
|
|
1068
1080
|
for (const schema of schemas) {
|
|
1069
1081
|
for (const t of Object.values(schema.tables)) {
|
|
1070
|
-
const key =
|
|
1082
|
+
const key = qualifiedTableKey(schema.name, t.name);
|
|
1071
1083
|
out.set(key, []);
|
|
1072
|
-
|
|
1084
|
+
taken.set(key, /* @__PURE__ */ new Map());
|
|
1073
1085
|
}
|
|
1074
1086
|
}
|
|
1087
|
+
const claim = (tableKey, name, origin, edge) => {
|
|
1088
|
+
const names = taken.get(tableKey);
|
|
1089
|
+
if (names === void 0) return;
|
|
1090
|
+
const held = names.get(name);
|
|
1091
|
+
if (held !== void 0) {
|
|
1092
|
+
if (held.def.owns === true && origin.def.owns === true) {
|
|
1093
|
+
throw new Error(
|
|
1094
|
+
`table "${tableKey}" declares TWO owner columns (${held.column}, ${origin.column}) \u2014 a table has at most ONE ownedByUser(). If the other column only POINTS at a user, declare it userRef({ onDelete: \u2026 }) instead.`
|
|
1095
|
+
);
|
|
1096
|
+
}
|
|
1097
|
+
const heldFix = renameCall(held);
|
|
1098
|
+
const originFix = renameCall(origin);
|
|
1099
|
+
const remedy = heldFix === originFix ? `rename one of them: ${heldFix}` : `rename one of them \u2014 "${held.table}.${held.column}": ${heldFix}; "${origin.table}.${origin.column}": ${originFix}`;
|
|
1100
|
+
throw new Error(
|
|
1101
|
+
`table "${tableKey}": ${describeOrigin(held)} and ${describeOrigin(origin)} both resolve to the relation name "${name}" \u2014 ${remedy}.`
|
|
1102
|
+
);
|
|
1103
|
+
}
|
|
1104
|
+
names.set(name, origin);
|
|
1105
|
+
out.get(tableKey)?.push(edge);
|
|
1106
|
+
};
|
|
1075
1107
|
for (const schema of schemas) {
|
|
1076
1108
|
for (const table of Object.values(schema.tables)) {
|
|
1077
|
-
const childKey =
|
|
1078
|
-
|
|
1079
|
-
if (bucket === void 0) continue;
|
|
1080
|
-
const byTarget = /* @__PURE__ */ new Map();
|
|
1081
|
-
for (const [col, builder] of Object.entries(table.columns)) {
|
|
1082
|
-
const ref = builder._def.references;
|
|
1083
|
-
if (ref === void 0) continue;
|
|
1084
|
-
const list = byTarget.get(ref.table) ?? [];
|
|
1085
|
-
list.push(col);
|
|
1086
|
-
byTarget.set(ref.table, list);
|
|
1087
|
-
}
|
|
1088
|
-
for (const [target, cols] of byTarget) {
|
|
1089
|
-
if (cols.length < 2) continue;
|
|
1090
|
-
const unnamed = cols.filter((c) => {
|
|
1091
|
-
const d = table.columns[c]?._def;
|
|
1092
|
-
return d?.refAs === void 0 && d?.owns !== true;
|
|
1093
|
-
});
|
|
1094
|
-
if (unnamed.length > 0) {
|
|
1095
|
-
throw new Error(
|
|
1096
|
-
`table "${table.name}" declares ${cols.length} foreign keys onto "${target}" (${cols.join(", ")}) \u2014 name each one: references(() => \u2026, { as: "\u2026" })`
|
|
1097
|
-
);
|
|
1098
|
-
}
|
|
1099
|
-
}
|
|
1109
|
+
const childKey = qualifiedTableKey(schema.name, table.name);
|
|
1110
|
+
if (!out.has(childKey)) continue;
|
|
1100
1111
|
for (const [col, builder] of Object.entries(table.columns)) {
|
|
1101
1112
|
const def = builder._def;
|
|
1102
1113
|
if (def.references === void 0) continue;
|
|
1114
|
+
const targetKey = def.references.table;
|
|
1103
1115
|
const name = def.owns === true ? "owner" : def.refAs ?? forwardName(col);
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
const
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
}
|
|
1119
|
-
parent.push({ name: reverse, to: childKey, kind: "many", via: col });
|
|
1116
|
+
claim(
|
|
1117
|
+
childKey,
|
|
1118
|
+
name,
|
|
1119
|
+
{ table: table.name, column: col, direction: "forward", def },
|
|
1120
|
+
{ name, to: targetKey, kind: "one", via: col }
|
|
1121
|
+
);
|
|
1122
|
+
if (!out.has(targetKey) || targetKey === childKey) continue;
|
|
1123
|
+
const reverse = def.reverseAs ?? table.name;
|
|
1124
|
+
claim(
|
|
1125
|
+
targetKey,
|
|
1126
|
+
reverse,
|
|
1127
|
+
{ table: table.name, column: col, direction: "reverse", def },
|
|
1128
|
+
{ name: reverse, to: childKey, kind: "many", via: col }
|
|
1129
|
+
);
|
|
1120
1130
|
}
|
|
1121
1131
|
}
|
|
1122
1132
|
}
|
|
@@ -1153,7 +1163,6 @@ function tableBlock(table, relations, indent) {
|
|
|
1153
1163
|
}
|
|
1154
1164
|
function makeEnvDts(schemas) {
|
|
1155
1165
|
const relations = buildRelations(schemas);
|
|
1156
|
-
const qualify2 = (schemaName, table) => schemaName === "public" ? table : `${schemaName}.${table}`;
|
|
1157
1166
|
const publicSchema = schemas.find((s) => s.name === "public");
|
|
1158
1167
|
const others = schemas.filter((s) => s.name !== "public");
|
|
1159
1168
|
const publicBlocks = Object.keys(publicSchema?.tables ?? {}).map(
|
|
@@ -1164,7 +1173,7 @@ ${publicBlocks.join("\n")}
|
|
|
1164
1173
|
` : "";
|
|
1165
1174
|
const schemaBlocks = others.map((schema) => {
|
|
1166
1175
|
const inner = Object.keys(schema.tables).map(
|
|
1167
|
-
(name) => tableBlock(schema.tables[name], relations.get(
|
|
1176
|
+
(name) => tableBlock(schema.tables[name], relations.get(qualifiedTableKey(schema.name, name)) ?? [], " ")
|
|
1168
1177
|
);
|
|
1169
1178
|
return ` ${schema.name}: {
|
|
1170
1179
|
${inner.join("\n")}
|
|
@@ -1555,8 +1564,10 @@ function Req() {
|
|
|
1555
1564
|
}
|
|
1556
1565
|
|
|
1557
1566
|
// src/middleware.ts
|
|
1558
|
-
function defineMiddleware(
|
|
1559
|
-
|
|
1567
|
+
function defineMiddleware(_fn) {
|
|
1568
|
+
throw new Error(
|
|
1569
|
+
"defineMiddleware() is not wired to anything: no bundler reads a `middleware/` directory and the engine has no middleware pipeline, so a handler defined here deploys and never runs. Put cross-cutting work in a service the controllers call, and use route options for auth (`@Controller(path, { auth })`) and rate limits (`@Get(path, { rateLimit })`)."
|
|
1570
|
+
);
|
|
1560
1571
|
}
|
|
1561
1572
|
|
|
1562
1573
|
// src/job.ts
|