spacetimedb 2.3.0 → 2.4.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.
- package/LICENSE.txt +2 -2
- package/dist/index.browser.mjs +50 -4
- package/dist/index.browser.mjs.map +1 -1
- package/dist/index.cjs +50 -4
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +50 -4
- package/dist/index.mjs.map +1 -1
- package/dist/lib/autogen/types.d.ts +674 -18
- package/dist/lib/autogen/types.d.ts.map +1 -1
- package/dist/lib/schema.d.ts.map +1 -1
- package/dist/min/index.browser.mjs +1 -1
- package/dist/min/index.browser.mjs.map +1 -1
- package/dist/min/sdk/index.browser.mjs +1 -1
- package/dist/min/sdk/index.browser.mjs.map +1 -1
- package/dist/sdk/decompress.d.ts.map +1 -1
- package/dist/sdk/index.browser.mjs +50 -4
- package/dist/sdk/index.browser.mjs.map +1 -1
- package/dist/sdk/index.cjs +50 -4
- package/dist/sdk/index.cjs.map +1 -1
- package/dist/sdk/index.mjs +50 -4
- package/dist/sdk/index.mjs.map +1 -1
- package/dist/server/http.d.ts +1 -2
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.test-d.d.ts +2 -0
- package/dist/server/http.test-d.d.ts.map +1 -0
- package/dist/server/http_handlers.d.ts +82 -0
- package/dist/server/http_handlers.d.ts.map +1 -0
- package/dist/server/http_internal.d.ts +1 -32
- package/dist/server/http_internal.d.ts.map +1 -1
- package/dist/server/http_shared.d.ts +44 -0
- package/dist/server/http_shared.d.ts.map +1 -0
- package/dist/server/index.d.ts +2 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.mjs +582 -134
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/runtime.d.ts +1 -0
- package/dist/server/runtime.d.ts.map +1 -1
- package/dist/server/schema.d.ts +16 -1
- package/dist/server/schema.d.ts.map +1 -1
- package/dist/server/views.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/lib/autogen/types.ts +29 -0
- package/src/lib/schema.ts +14 -0
- package/src/sdk/decompress.ts +19 -4
- package/src/sdk/logger.ts +1 -1
- package/src/server/http.test-d.ts +80 -0
- package/src/server/http.ts +14 -2
- package/src/server/http_handlers.ts +413 -0
- package/src/server/http_internal.ts +15 -142
- package/src/server/http_shared.ts +186 -0
- package/src/server/index.ts +11 -0
- package/src/server/procedures.ts +8 -30
- package/src/server/runtime.ts +137 -1
- package/src/server/schema.ts +71 -2
- package/src/server/sys.d.ts +7 -0
- package/src/server/views.ts +1 -0
- package/dist/lib/http_types.d.ts +0 -2
- package/dist/lib/http_types.d.ts.map +0 -1
- package/src/lib/http_types.ts +0 -8
package/dist/server/runtime.d.ts
CHANGED
|
@@ -82,5 +82,6 @@ export declare const ReducerCtxImpl: {
|
|
|
82
82
|
* be the root of the call stack.
|
|
83
83
|
*/
|
|
84
84
|
export declare const callUserFunction: <Args extends any[], R>(fn: (...args: Args) => R, ...args: Args) => R;
|
|
85
|
+
export declare function runWithTx<T, Ctx>(makeCtx: (timestamp: Timestamp) => Ctx, body: (ctx: Ctx) => T): T;
|
|
85
86
|
export declare const makeHooks: (schema: SchemaInner) => ModuleHooks;
|
|
86
87
|
//# sourceMappingURL=runtime.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAY3E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/server/runtime.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,YAAY,MAAM,mBAAmB,CAAC;AAGlD,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAY3E,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAuBnC,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,SAAS,EAEf,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAKtD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAGxC,OAAO,EAAc,KAAK,MAAM,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAK5C,eAAO,MAAM,GAAG;oCAmD2B,GAAI;;;;;;;;;;;;;;;;;;;;;;;;;;CAnDQ,CAAC;AAsBxD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,CAexD;AAsHD,eAAO,MAAM,cAAc;SACzB,SAAS,SAAS,gBAAgB,UAaxB,QAAQ,aACL,SAAS,gBACN,YAAY,GAAG,IAAI,UACzB,MAAM,CAAC,GAAG,CAAC;gCAbV,QAAQ,GAAG,SAAS;;;;;;mCAEjB;YAAE,KAAK,EAAE,MAAM,CAAA;SAAE,GAAG,SAAS;8BAClC,MAAM,GAAG,SAAS;gBACnB,QAAQ;mBACL,SAAS;sBACN,YAAY,GAAG,IAAI;YAC7B,MAAM,CAAC,SAAS,CAAC;;;;;;;;;QAgDrB;;WAEG;qBACU,IAAI;QAKjB;;;WAGG;qBACU,IAAI;;IA7CjB,8DAA8D;cAExD,YAAY,gBAAa,UACrB,QAAQ,aACL,SAAS,gBACN,YAAY,GAAG,IAAI;CA6CpC,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,IAAI,SAAS,GAAG,EAAE,EAClB,CAAC,EACD,IAAI,CAAC,GAAG,IAAI,EAAE,IAAI,KAAK,CAAC,EAAE,GAAG,MAAM,IAAI,KAAG,CAE3C,CAAC;AAEF,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAC9B,OAAO,EAAE,CAAC,SAAS,EAAE,SAAS,KAAK,GAAG,EACtC,IAAI,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GACpB,CAAC,CA2BH;AAED,eAAO,MAAM,SAAS,GAAI,QAAQ,WAAW,KAAG,WACnB,CAAC"}
|
package/dist/server/schema.d.ts
CHANGED
|
@@ -1,32 +1,44 @@
|
|
|
1
1
|
import { moduleHooks, type ModuleDefaultExport } from 'spacetime:sys@2.0';
|
|
2
|
-
import { CaseConversionPolicy } from '../lib/autogen/types';
|
|
2
|
+
import { CaseConversionPolicy, type MethodOrAny } from '../lib/autogen/types';
|
|
3
3
|
import { type ParamsObj, type Reducer } from '../lib/reducers';
|
|
4
4
|
import { ModuleContext, type TablesToSchema, type UntypedSchemaDef } from '../lib/schema';
|
|
5
5
|
import type { UntypedTableSchema } from '../lib/table_schema';
|
|
6
6
|
import { TypeBuilder } from '../lib/type_builders';
|
|
7
|
+
import { Router, type HandlerFn, type HttpHandlerExport, type HttpHandlerOpts } from './http_handlers';
|
|
7
8
|
import { type ProcedureExport, type ProcedureFn, type ProcedureOpts, type Procedures } from './procedures';
|
|
8
9
|
import { type ReducerExport, type ReducerOpts, type Reducers } from './reducers';
|
|
9
10
|
import { type AnonViews, type AnonymousViewFn, type ViewExport, type ViewFn, type ViewOpts, type ViewReturnTypeBuilder, type Views } from './views';
|
|
10
11
|
export declare class SchemaInner<S extends UntypedSchemaDef = UntypedSchemaDef> extends ModuleContext {
|
|
11
12
|
schemaType: S;
|
|
12
13
|
existingFunctions: Set<string>;
|
|
14
|
+
existingHttpHandlers: Set<string>;
|
|
13
15
|
reducers: Reducers;
|
|
14
16
|
procedures: Procedures;
|
|
15
17
|
views: Views;
|
|
16
18
|
anonViews: AnonViews;
|
|
19
|
+
httpHandlers: HandlerFn[];
|
|
17
20
|
/**
|
|
18
21
|
* Maps ReducerExport objects to the name of the reducer.
|
|
19
22
|
* Used for resolving the reducers of scheduled tables.
|
|
20
23
|
*/
|
|
21
24
|
functionExports: Map<ReducerExport<UntypedSchemaDef, any> | ProcedureExport<UntypedSchemaDef, any, any>, string>;
|
|
25
|
+
httpHandlerExports: Map<HttpHandlerExport<UntypedSchemaDef>, string>;
|
|
22
26
|
pendingSchedules: PendingSchedule[];
|
|
27
|
+
pendingHttpRoutes: PendingHttpRoute[];
|
|
23
28
|
constructor(getSchemaType: (ctx: SchemaInner<S>) => S);
|
|
24
29
|
defineFunction(name: string): void;
|
|
30
|
+
defineHttpHandler(name: string): void;
|
|
25
31
|
resolveSchedules(): void;
|
|
32
|
+
resolveHttpRoutes(): void;
|
|
26
33
|
}
|
|
27
34
|
type PendingSchedule = UntypedTableSchema['schedule'] & {
|
|
28
35
|
tableName: string;
|
|
29
36
|
};
|
|
37
|
+
type PendingHttpRoute = {
|
|
38
|
+
handler: HttpHandlerExport<UntypedSchemaDef>;
|
|
39
|
+
method: MethodOrAny;
|
|
40
|
+
path: string;
|
|
41
|
+
};
|
|
30
42
|
/**
|
|
31
43
|
* The Schema class represents the database schema for a SpacetimeDB application.
|
|
32
44
|
* It encapsulates the table definitions and typespace, and provides methods to define
|
|
@@ -210,6 +222,9 @@ export declare class Schema<S extends UntypedSchemaDef> implements ModuleDefault
|
|
|
210
222
|
procedure<Ret extends TypeBuilder<any, any>>(ret: Ret, fn: ProcedureFn<S, {}, Ret>): ProcedureFn<S, {}, Ret>;
|
|
211
223
|
procedure<Params extends ParamsObj, Ret extends TypeBuilder<any, any>>(opts: ProcedureOpts, params: Params, ret: Ret, fn: ProcedureFn<S, Params, Ret>): ProcedureFn<S, Params, Ret>;
|
|
212
224
|
procedure<Ret extends TypeBuilder<any, any>>(opts: ProcedureOpts, ret: Ret, fn: ProcedureFn<S, {}, Ret>): ProcedureFn<S, {}, Ret>;
|
|
225
|
+
httpHandler(fn: HandlerFn<S>): HttpHandlerExport<S>;
|
|
226
|
+
httpHandler(opts: HttpHandlerOpts, fn: HandlerFn<S>): HttpHandlerExport<S>;
|
|
227
|
+
httpRouter(router: Router): ModuleExport;
|
|
213
228
|
/**
|
|
214
229
|
* Bundle multiple reducers, procedures, etc into one value to export.
|
|
215
230
|
* The name they will be exported with is their corresponding key in the `exports` argument.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/server/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,
|
|
1
|
+
{"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/server/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,EACL,oBAAoB,EAEpB,KAAK,WAAW,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,KAAK,SAAS,EACd,KAAK,OAAO,EAEb,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,aAAa,EAEb,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAC9D,OAAO,EAAiB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,MAAM,EACN,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,eAAe,EAGrB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAEL,KAAK,eAAe,EACpB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,UAAU,EAChB,MAAM,cAAc,CAAC;AACtB,OAAO,EAEL,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,QAAQ,EACd,MAAM,YAAY,CAAC;AAGpB,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,MAAM,EACX,KAAK,QAAQ,EACb,KAAK,qBAAqB,EAC1B,KAAK,KAAK,EACX,MAAM,SAAS,CAAC;AAGjB,qBAAa,WAAW,CACtB,CAAC,SAAS,gBAAgB,GAAG,gBAAgB,CAC7C,SAAQ,aAAa;IACrB,UAAU,EAAE,CAAC,CAAC;IACd,iBAAiB,cAAqB;IACtC,oBAAoB,cAAqB;IACzC,QAAQ,EAAE,QAAQ,CAAM;IACxB,UAAU,EAAE,UAAU,CAAM;IAC5B,KAAK,EAAE,KAAK,CAAM;IAClB,SAAS,EAAE,SAAS,CAAM;IAC1B,YAAY,EAAE,SAAS,EAAE,CAAM;IAC/B;;;OAGG;IACH,eAAe,EAAE,GAAG,CAChB,aAAa,CAAC,gBAAgB,EAAE,GAAG,CAAC,GACpC,eAAe,CAAC,gBAAgB,EAAE,GAAG,EAAE,GAAG,CAAC,EAC7C,MAAM,CACP,CAAa;IACd,kBAAkB,EAAE,GAAG,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC,CACxD;IACZ,gBAAgB,EAAE,eAAe,EAAE,CAAM;IACzC,iBAAiB,EAAE,gBAAgB,EAAE,CAAM;gBAE/B,aAAa,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC;IAKrD,cAAc,CAAC,IAAI,EAAE,MAAM;IAS3B,iBAAiB,CAAC,IAAI,EAAE,MAAM;IAS9B,gBAAgB;IAgBhB,iBAAiB;CAelB;AAED,KAAK,eAAe,GAAG,kBAAkB,CAAC,UAAU,CAAC,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAC9E,KAAK,gBAAgB,GAAG;IACtB,OAAO,EAAE,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;IAC7C,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAIH,qBAAa,MAAM,CAAC,CAAC,SAAS,gBAAgB,CAAE,YAAW,mBAAmB;;gBAGhE,GAAG,EAAE,WAAW,CAAC,CAAC,CAAC;IAK/B,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,MAAM;IAoB7B,IAAI,UAAU,IAAI,CAAC,CAElB;IAED,IAAI,SAAS,sCAEZ;IAED,IAAI,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAEZ;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACH,OAAO,CAAC,MAAM,SAAS,SAAS,EAC9B,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GACrB,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;IACjD,OAAO,CAAC,MAAM,SAAS,SAAS,EAC9B,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,GACrB,aAAa,CAAC,CAAC,EAAE,MAAM,CAAC;IAC3B,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;IA6BpE;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;IAC9C,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;IAgBjE;;;;;;;;;;;;;;;OAeG;IACH,eAAe,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;IACzD,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;IAgB5E;;;;;;;;;;;;;;;;OAgBG;IACH,kBAAkB,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;IAC5D,kBAAkB,CAChB,IAAI,EAAE,WAAW,EACjB,EAAE,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,CAAC,GACjB,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC;IAgBvB,IAAI,CAAC,GAAG,SAAS,qBAAqB,EAAE,CAAC,SAAS,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAClE,IAAI,EAAE,QAAQ,EACd,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,CAAC,GACJ,UAAU,CAAC,CAAC,CAAC;IA6BhB,aAAa,CACX,GAAG,SAAS,qBAAqB,EACjC,CAAC,SAAS,eAAe,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EACrC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IA6BjD,SAAS,CAAC,MAAM,SAAS,SAAS,EAAE,GAAG,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACnE,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAC9B,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC;IAC9B,SAAS,CAAC,GAAG,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACzC,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAC1B,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IAC1B,SAAS,CAAC,MAAM,SAAS,SAAS,EAAE,GAAG,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACnE,IAAI,EAAE,aAAa,EACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,GAC9B,WAAW,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC;IAC9B,SAAS,CAAC,GAAG,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,CAAC,EACzC,IAAI,EAAE,aAAa,EACnB,GAAG,EAAE,GAAG,EACR,EAAE,EAAE,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,GAC1B,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC;IA8B1B,WAAW,CAAC,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IACnD,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAgB1E,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY;IAIxC;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,GAAG,YAAY;IAYhE,sBAAsB;sBACN,MAAM,KAAG,YAAY;MAMnC;CACH;AAED,eAAO,MAAM,cAAc,eAAuC,CAAC;AACnE,eAAO,MAAM,aAAa,eAAsC,CAAC;AAEjE,MAAM,WAAW,YAAY;IAC3B,CAAC,cAAc,CAAC,CAAC,GAAG,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7D,CAAC,aAAa,CAAC,CAAC,EAAE,WAAW,CAAC;CAC/B;AAiBD;;GAEG;AACH,MAAM,MAAM,WAAW,CAAC,SAAS,SAAS,MAAM,CAAC,GAAG,CAAC,IACnD,SAAS,SAAS,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AAEhD;;;;;;;;;;;GAWG;AACH;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;;;;OAUG;IACH,sBAAsB,CAAC,EAAE,oBAAoB,CAAC;CAC/C;AAED,wBAAgB,MAAM,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,EACvE,MAAM,EAAE,CAAC,EACT,cAAc,CAAC,EAAE,cAAc,GAC9B,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAgC3B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/server/views.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"views.d.ts","sourceRoot":"","sources":["../../src/server/views.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/lib/autogen/types.ts
CHANGED
|
@@ -158,6 +158,15 @@ export const Lifecycle = __t.enum('Lifecycle', {
|
|
|
158
158
|
});
|
|
159
159
|
export type Lifecycle = __Infer<typeof Lifecycle>;
|
|
160
160
|
|
|
161
|
+
// The tagged union or sum type for the algebraic type `MethodOrAny`.
|
|
162
|
+
export const MethodOrAny = __t.enum('MethodOrAny', {
|
|
163
|
+
Any: __t.unit(),
|
|
164
|
+
get Method() {
|
|
165
|
+
return HttpMethod;
|
|
166
|
+
},
|
|
167
|
+
});
|
|
168
|
+
export type MethodOrAny = __Infer<typeof MethodOrAny>;
|
|
169
|
+
|
|
161
170
|
// The tagged union or sum type for the algebraic type `MiscModuleExport`.
|
|
162
171
|
export const MiscModuleExport = __t.enum('MiscModuleExport', {
|
|
163
172
|
get TypeAlias() {
|
|
@@ -239,6 +248,20 @@ export const RawConstraintDefV9 = __t.object('RawConstraintDefV9', {
|
|
|
239
248
|
});
|
|
240
249
|
export type RawConstraintDefV9 = __Infer<typeof RawConstraintDefV9>;
|
|
241
250
|
|
|
251
|
+
export const RawHttpHandlerDefV10 = __t.object('RawHttpHandlerDefV10', {
|
|
252
|
+
sourceName: __t.string(),
|
|
253
|
+
});
|
|
254
|
+
export type RawHttpHandlerDefV10 = __Infer<typeof RawHttpHandlerDefV10>;
|
|
255
|
+
|
|
256
|
+
export const RawHttpRouteDefV10 = __t.object('RawHttpRouteDefV10', {
|
|
257
|
+
handlerFunction: __t.string(),
|
|
258
|
+
get method() {
|
|
259
|
+
return MethodOrAny;
|
|
260
|
+
},
|
|
261
|
+
path: __t.string(),
|
|
262
|
+
});
|
|
263
|
+
export type RawHttpRouteDefV10 = __Infer<typeof RawHttpRouteDefV10>;
|
|
264
|
+
|
|
242
265
|
// The tagged union or sum type for the algebraic type `RawIndexAlgorithm`.
|
|
243
266
|
export const RawIndexAlgorithm = __t.enum('RawIndexAlgorithm', {
|
|
244
267
|
BTree: __t.array(__t.u16()),
|
|
@@ -358,6 +381,12 @@ export const RawModuleDefV10Section = __t.enum('RawModuleDefV10Section', {
|
|
|
358
381
|
get ExplicitNames() {
|
|
359
382
|
return ExplicitNames;
|
|
360
383
|
},
|
|
384
|
+
get HttpHandlers() {
|
|
385
|
+
return __t.array(RawHttpHandlerDefV10);
|
|
386
|
+
},
|
|
387
|
+
get HttpRoutes() {
|
|
388
|
+
return __t.array(RawHttpRouteDefV10);
|
|
389
|
+
},
|
|
361
390
|
});
|
|
362
391
|
export type RawModuleDefV10Section = __Infer<typeof RawModuleDefV10Section>;
|
|
363
392
|
|
package/src/lib/schema.ts
CHANGED
|
@@ -195,6 +195,8 @@ export class ModuleContext {
|
|
|
195
195
|
procedures: [],
|
|
196
196
|
views: [],
|
|
197
197
|
lifeCycleReducers: [],
|
|
198
|
+
httpHandlers: [],
|
|
199
|
+
httpRoutes: [],
|
|
198
200
|
caseConversionPolicy: { tag: 'SnakeCase' },
|
|
199
201
|
explicitNames: {
|
|
200
202
|
entries: [],
|
|
@@ -227,6 +229,18 @@ export class ModuleContext {
|
|
|
227
229
|
value: module.lifeCycleReducers,
|
|
228
230
|
}
|
|
229
231
|
);
|
|
232
|
+
push(
|
|
233
|
+
module.httpHandlers && {
|
|
234
|
+
tag: 'HttpHandlers',
|
|
235
|
+
value: module.httpHandlers,
|
|
236
|
+
}
|
|
237
|
+
);
|
|
238
|
+
push(
|
|
239
|
+
module.httpRoutes && {
|
|
240
|
+
tag: 'HttpRoutes',
|
|
241
|
+
value: module.httpRoutes,
|
|
242
|
+
}
|
|
243
|
+
);
|
|
230
244
|
push(
|
|
231
245
|
module.rowLevelSecurity && {
|
|
232
246
|
tag: 'RowLevelSecurity',
|
package/src/sdk/decompress.ts
CHANGED
|
@@ -28,9 +28,24 @@ export async function decompress(
|
|
|
28
28
|
const decompressedStream = readableStream.pipeThrough(decompressionStream);
|
|
29
29
|
|
|
30
30
|
// Collect the decompressed chunks efficiently
|
|
31
|
-
const
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
const reader = decompressedStream.getReader();
|
|
32
|
+
const chunks: Uint8Array[] = [];
|
|
33
|
+
let totalLength = 0;
|
|
34
|
+
let result: any;
|
|
35
|
+
|
|
36
|
+
while (!(result = await reader.read()).done) {
|
|
37
|
+
chunks.push(result.value);
|
|
38
|
+
totalLength += result.value.length;
|
|
34
39
|
}
|
|
35
|
-
|
|
40
|
+
|
|
41
|
+
// Allocate a single Uint8Array for the decompressed data
|
|
42
|
+
const decompressedArray = new Uint8Array(totalLength);
|
|
43
|
+
let chunkOffset = 0;
|
|
44
|
+
|
|
45
|
+
for (const chunk of chunks) {
|
|
46
|
+
decompressedArray.set(chunk, chunkOffset);
|
|
47
|
+
chunkOffset += chunk.length;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
return decompressedArray;
|
|
36
51
|
}
|
package/src/sdk/logger.ts
CHANGED
|
@@ -73,7 +73,7 @@ const SENSITIVE_KEYS = new Set([
|
|
|
73
73
|
]);
|
|
74
74
|
|
|
75
75
|
export const stringify = (value: unknown): string | undefined =>
|
|
76
|
-
ssStringify(value, (key, current) => {
|
|
76
|
+
ssStringify(value, (key: string, current: unknown) => {
|
|
77
77
|
if (SENSITIVE_KEYS.has(key)) {
|
|
78
78
|
return '[REDACTED]';
|
|
79
79
|
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { table } from '../lib/table';
|
|
2
|
+
import t from '../lib/type_builders';
|
|
3
|
+
import {
|
|
4
|
+
type HandlerContext,
|
|
5
|
+
Request,
|
|
6
|
+
SyncResponse,
|
|
7
|
+
Router,
|
|
8
|
+
schema,
|
|
9
|
+
} from './index';
|
|
10
|
+
|
|
11
|
+
const person = table(
|
|
12
|
+
{},
|
|
13
|
+
{
|
|
14
|
+
id: t.u32().primaryKey(),
|
|
15
|
+
name: t.string(),
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
const stdb = schema({ person });
|
|
20
|
+
|
|
21
|
+
const hello = stdb.httpHandler((ctx, req) => {
|
|
22
|
+
void ctx.identity;
|
|
23
|
+
void ctx.random;
|
|
24
|
+
req.text();
|
|
25
|
+
req.json();
|
|
26
|
+
|
|
27
|
+
ctx.withTx(tx => {
|
|
28
|
+
tx.db.person.insert({ id: 1, name: 'alice' });
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
return new SyncResponse('hello', {
|
|
32
|
+
headers: { 'content-type': 'text/plain' },
|
|
33
|
+
status: 200,
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
const _typedHello: (ctx: HandlerContext<any>, req: Request) => SyncResponse = (
|
|
38
|
+
ctx,
|
|
39
|
+
req
|
|
40
|
+
) => {
|
|
41
|
+
void ctx.timestamp;
|
|
42
|
+
return new SyncResponse(req.text());
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
const named = stdb.httpHandler({ name: 'hello' }, (_ctx, _req) => {
|
|
46
|
+
return new SyncResponse('named');
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
const routes = stdb.httpRouter(
|
|
50
|
+
new Router()
|
|
51
|
+
.get('/hello', hello)
|
|
52
|
+
.get('/named', named)
|
|
53
|
+
.post('/hello-post', hello)
|
|
54
|
+
.nest('/api', new Router().any('/v1', hello))
|
|
55
|
+
.merge(new Router().get('', hello))
|
|
56
|
+
);
|
|
57
|
+
|
|
58
|
+
void routes;
|
|
59
|
+
|
|
60
|
+
// @ts-expect-error handlers must return SyncResponse
|
|
61
|
+
stdb.httpHandler((_ctx, _req) => 123);
|
|
62
|
+
|
|
63
|
+
// @ts-expect-error handlers must take HandlerContext as the first argument
|
|
64
|
+
stdb.httpHandler((_ctx: number, _req: Request) => new SyncResponse('bad'));
|
|
65
|
+
|
|
66
|
+
// @ts-expect-error handlers must take a Request as the second argument
|
|
67
|
+
stdb.httpHandler((_ctx, _req: number) => new SyncResponse('bad'));
|
|
68
|
+
|
|
69
|
+
stdb.httpHandler((ctx, req) => {
|
|
70
|
+
// @ts-expect-error HTTP handlers do not expose sender directly
|
|
71
|
+
void ctx.sender;
|
|
72
|
+
// @ts-expect-error HTTP handlers do not expose connectionId directly
|
|
73
|
+
void ctx.connectionId;
|
|
74
|
+
// @ts-expect-error HTTP handlers do not expose db directly
|
|
75
|
+
void ctx.db;
|
|
76
|
+
return new SyncResponse(req.text());
|
|
77
|
+
});
|
|
78
|
+
|
|
79
|
+
// @ts-expect-error routers must reference exported http handlers, not raw functions
|
|
80
|
+
new Router().get('/raw', (_ctx, _req) => new SyncResponse('bad'));
|
package/src/server/http.ts
CHANGED
|
@@ -1,2 +1,14 @@
|
|
|
1
|
-
export {
|
|
2
|
-
|
|
1
|
+
export {
|
|
2
|
+
type BodyInit,
|
|
3
|
+
type HeadersInit,
|
|
4
|
+
type RequestInit,
|
|
5
|
+
type ResponseInit,
|
|
6
|
+
Headers,
|
|
7
|
+
Request,
|
|
8
|
+
SyncResponse,
|
|
9
|
+
Router,
|
|
10
|
+
type HandlerContext,
|
|
11
|
+
type HandlerFn,
|
|
12
|
+
type HttpHandlerExport,
|
|
13
|
+
type HttpHandlerOpts,
|
|
14
|
+
} from './http_handlers';
|