ignotum 0.0.12 → 0.0.14

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 (60) hide show
  1. package/dist/cli/bin.mjs +1183 -447
  2. package/dist/cli/bin.mjs.map +1 -1
  3. package/dist/runtime/{api-DzcR7spt.js → api-CAgKDij7.js} +38 -2
  4. package/dist/runtime/api-CAgKDij7.js.map +1 -0
  5. package/dist/runtime/{api-5XSrIeqW.d.ts → api-Cv3hMbzo.d.ts} +4 -4
  6. package/dist/runtime/client.d.ts +39 -9
  7. package/dist/runtime/client.js +362 -63
  8. package/dist/runtime/client.js.map +1 -1
  9. package/dist/runtime/descriptor-DCCz5AHd-_nhlnu8U.js +298 -0
  10. package/dist/runtime/descriptor-DCCz5AHd-_nhlnu8U.js.map +1 -0
  11. package/dist/runtime/id-Bt9XWRGL.js +423 -0
  12. package/dist/runtime/id-Bt9XWRGL.js.map +1 -0
  13. package/dist/runtime/{id-Cs82tq9Q-CK-maMgN.d.ts → id-BzFHf3Wo-DGPCjgrf.d.ts} +2 -2
  14. package/dist/runtime/id-E7JKqQ9r.d.ts +1 -0
  15. package/dist/runtime/index-DWU-7TIh.d.ts +185 -0
  16. package/dist/runtime/internal/api.d.ts +1 -1
  17. package/dist/runtime/internal/api.js +1 -1
  18. package/dist/runtime/internal/host.d.ts +28 -7
  19. package/dist/runtime/internal/host.js +37 -8
  20. package/dist/runtime/internal/host.js.map +1 -1
  21. package/dist/runtime/internal/server.d.ts +1 -1
  22. package/dist/runtime/internal/server.js +1 -1
  23. package/dist/runtime/internal/types.d.ts +2 -1
  24. package/dist/runtime/internal/types.js +1 -1
  25. package/dist/runtime/{pagination-D-R9NR61-CpIoHFoI.d.ts → pagination-CpYCaRYD-C2Rpp4Cw.d.ts} +42 -7
  26. package/dist/runtime/pagination-E7JKqQ9r.d.ts +1 -0
  27. package/dist/runtime/result-DKAA4gpS.d.ts +1 -0
  28. package/dist/runtime/{schema-B9XxyRO8.js → schema-DqogEydG.js} +41 -12
  29. package/dist/runtime/schema-DqogEydG.js.map +1 -0
  30. package/dist/runtime/server.d.ts +7 -4
  31. package/dist/runtime/server.js +2 -2
  32. package/dist/runtime/server.js.map +1 -1
  33. package/dist/runtime/{sync-avN7NkcU.d.ts → sync-Bs8J3fIr.d.ts} +2 -2
  34. package/dist/runtime/types-C1iDP2Yf-BnkfBOQf.d.ts +224 -0
  35. package/package.json +2 -2
  36. package/src/cli/agent-files.ts +10 -0
  37. package/src/cli/build/server.ts +35 -6
  38. package/src/cli/command.ts +25 -2
  39. package/src/cli/deploy.ts +34 -11
  40. package/src/client/hooks.ts +68 -0
  41. package/src/client/id.ts +259 -0
  42. package/src/client/index.ts +5 -2
  43. package/src/client/sync.ts +144 -11
  44. package/src/dev-runtime/database.ts +77 -2
  45. package/src/dev-runtime/functions.ts +111 -88
  46. package/src/dev-runtime/id.ts +190 -0
  47. package/src/dev-runtime/migrations.ts +9 -0
  48. package/src/dev-runtime/query-cache.ts +105 -0
  49. package/src/dev-runtime/sync.ts +149 -17
  50. package/src/internal/host.ts +1 -1
  51. package/src/server/index.ts +2 -0
  52. package/dist/runtime/api-DzcR7spt.js.map +0 -1
  53. package/dist/runtime/descriptor-XzDX2JDw-j3O6YHgW.js +0 -330
  54. package/dist/runtime/descriptor-XzDX2JDw-j3O6YHgW.js.map +0 -1
  55. package/dist/runtime/file-C1abuMgd.js +0 -173
  56. package/dist/runtime/file-C1abuMgd.js.map +0 -1
  57. package/dist/runtime/index-CrWg4Z0y.d.ts +0 -398
  58. package/dist/runtime/pagination-CX5IPbEi.d.ts +0 -1
  59. package/dist/runtime/result-DIjKM-p4.d.ts +0 -1
  60. package/dist/runtime/schema-B9XxyRO8.js.map +0 -1
@@ -0,0 +1,185 @@
1
+ import { c as Result$1, g as FileValue, i as ErrorValue, n as DocumentNotFoundValue } from "./id-BzFHf3Wo-DGPCjgrf.js";
2
+ import { c as IdContext, n as PaginationPage, t as PaginationOptions } from "./pagination-CpYCaRYD-C2Rpp4Cw.js";
3
+ import { _ as table, a as Id, d as BoundValues, f as IdTargetsOf, g as UnresolvedReferencesTypeId, h as TableDefinition, i as EnvironmentType, n as Document, o as SchemaDefinitionContract, p as IndexDefinitions, t as DefinedEnv, u as emptyEnv, v as values } from "./types-C1iDP2Yf-BnkfBOQf.js";
4
+ import { Effect, Schema } from "effect";
5
+ //#region ../contracts/dist/schema/index.d.ts
6
+ //#region src/schema/definition.d.ts
7
+ type AnyTableDefinition = TableDefinition<Schema.Struct.Fields, IndexDefinitions>;
8
+ interface Tables {
9
+ readonly [tableName: string]: AnyTableDefinition;
10
+ }
11
+ type FieldsOf<Table extends AnyTableDefinition> = Table["fields"];
12
+ type IdTargetsOfFields<Fields extends Schema.Struct.Fields> = { readonly [FieldName in keyof Fields]: IdTargetsOf<Fields[FieldName]>; }[keyof Fields];
13
+ declare const UnknownTableReferenceTypeId: unique symbol;
14
+ interface UnknownTableReference<TableName extends string> {
15
+ readonly [UnknownTableReferenceTypeId]: `Unknown table reference: ${TableName}`;
16
+ }
17
+ type DefinitionReferenceValidation<Definitions extends Tables> = { readonly [TableName in keyof Definitions]: Exclude<IdTargetsOfFields<FieldsOf<Definitions[TableName]>>, keyof Definitions & string> extends (infer UnknownTarget extends string) ? [UnknownTarget] extends [never] ? unknown : UnknownTableReference<UnknownTarget> : never; };
18
+ type TableNameOf<SchemaDefinition extends Tables> = keyof SchemaDefinition & string;
19
+ interface DefinedSchema<SchemaDefinition extends Tables> extends SchemaDefinitionContract<SchemaDefinition> {
20
+ readonly _tag: "Schema";
21
+ }
22
+ interface SchemaAuthoring {
23
+ readonly table: typeof table;
24
+ readonly values: typeof values;
25
+ }
26
+ declare const defineSchema: <const Definitions extends Tables>(define: (authoring: SchemaAuthoring) => Definitions & DefinitionReferenceValidation<NoInfer<Definitions>>) => DefinedSchema<Definitions>;
27
+ //#endregion
28
+ //#region src/schema/server.d.ts
29
+ type TransportSchema = Schema.ConstraintCodec<unknown, unknown, never, never>;
30
+ interface ErrorSchema extends Schema.ConstraintCodec<ErrorValue, unknown, never, never> {
31
+ readonly Type: ErrorValue;
32
+ }
33
+ interface ResolvedFunctionValue {
34
+ readonly [UnresolvedReferencesTypeId]?: never;
35
+ }
36
+ type ContainsFile<Value> = Value extends FileValue ? true : Value extends Date ? false : Value extends ReadonlyArray<infer Item> ? true extends ContainsFile<Item> ? true : false : Value extends object ? true extends { [Key in keyof Value]-?: ContainsFile<Value[Key]>; }[keyof Value] ? true : false : false;
37
+ declare const InvalidFilePositionTypeId: unique symbol;
38
+ type FileFree<Value, Position extends string> = true extends ContainsFile<Value> ? {
39
+ readonly [InvalidFilePositionTypeId]: `Files cannot appear in ${Position}`;
40
+ } : unknown;
41
+ type ResolvedFunctionFields<Fields extends Schema.Struct.Fields> = { readonly [FieldName in keyof Fields]: Fields[FieldName] & ResolvedFunctionValue & TransportSchema; };
42
+ interface ForbiddenSystemFields {
43
+ readonly id?: never;
44
+ readonly createdAt?: never;
45
+ readonly updatedAt?: never;
46
+ }
47
+ type InsertOf<Table extends Tables[string]> = Schema.Struct.MakeIn<FieldsOf<Table>> & ForbiddenSystemFields;
48
+ type PatchOf<Table extends Tables[string]> = Partial<Schema.Struct.MakeIn<FieldsOf<Table>>> & ForbiddenSystemFields;
49
+ type FunctionArgs = Schema.Struct.Fields | undefined;
50
+ type FunctionReturns = TransportSchema | undefined;
51
+ type ArgsOf<Args extends FunctionArgs> = Args extends Schema.Struct.Fields ? keyof Args extends never ? void : Schema.Struct.Type<Args> : void;
52
+ type ReturnOf<Returns extends FunctionReturns> = Returns extends TransportSchema ? Returns["Type"] : void;
53
+ type DocumentNotFound<TableName extends string = string> = DocumentNotFoundValue<TableName, Id<TableName>>;
54
+ declare const IndexRangeTypeId: unique symbol;
55
+ interface IndexRangeExpression {
56
+ readonly [IndexRangeTypeId]: true;
57
+ }
58
+ type IndexFields<Definition extends Tables, Name extends TableNameOf<Definition>, IndexName extends keyof Definition[Name]["indexes"]> = Definition[Name]["indexes"][IndexName]["fields"] extends (infer Fields extends readonly string[]) ? readonly [...Fields, "createdAt", "id"] : never;
59
+ type IndexFieldValue<Definition extends Tables, Name extends TableNameOf<Definition>, FieldName extends string> = FieldName extends "createdAt" ? Date : FieldName extends "id" ? Id<Name> : FieldName extends keyof FieldsOf<Definition[Name]> ? FieldsOf<Definition[Name]>[FieldName]["Type"] : never;
60
+ interface IndexLowerBound<Definition extends Tables, Name extends TableNameOf<Definition>, FieldName extends string> extends IndexRangeExpression {
61
+ lt(field: FieldName, value: IndexFieldValue<Definition, Name, FieldName>): IndexRangeExpression;
62
+ lte(field: FieldName, value: IndexFieldValue<Definition, Name, FieldName>): IndexRangeExpression;
63
+ }
64
+ interface IndexUpperBound<Definition extends Tables, Name extends TableNameOf<Definition>, FieldName extends string> extends IndexRangeExpression {
65
+ gt(field: FieldName, value: IndexFieldValue<Definition, Name, FieldName>): IndexRangeExpression;
66
+ gte(field: FieldName, value: IndexFieldValue<Definition, Name, FieldName>): IndexRangeExpression;
67
+ }
68
+ interface IndexRangeBuilder<Definition extends Tables, Name extends TableNameOf<Definition>, Fields extends readonly string[]> extends IndexRangeExpression {
69
+ eq<FieldName extends Fields[0]>(field: FieldName, value: IndexFieldValue<Definition, Name, FieldName>): IndexRangeBuilder<Definition, Name, Fields extends readonly [string, ...infer Rest extends string[]] ? Rest : []>;
70
+ gt<FieldName extends Fields[0]>(field: FieldName, value: IndexFieldValue<Definition, Name, FieldName>): IndexLowerBound<Definition, Name, FieldName>;
71
+ gte<FieldName extends Fields[0]>(field: FieldName, value: IndexFieldValue<Definition, Name, FieldName>): IndexLowerBound<Definition, Name, FieldName>;
72
+ lt<FieldName extends Fields[0]>(field: FieldName, value: IndexFieldValue<Definition, Name, FieldName>): IndexUpperBound<Definition, Name, FieldName>;
73
+ lte<FieldName extends Fields[0]>(field: FieldName, value: IndexFieldValue<Definition, Name, FieldName>): IndexUpperBound<Definition, Name, FieldName>;
74
+ }
75
+ interface OrderedDatabaseQuery<Definition extends Tables, Name extends TableNameOf<Definition>> {
76
+ collect(): Result$1<ReadonlyArray<Document<Definition, Name>>, never>;
77
+ take(count: number): Result$1<ReadonlyArray<Document<Definition, Name>>, never>;
78
+ first(): Result$1<Document<Definition, Name> | undefined, never>;
79
+ unique(): Result$1<Document<Definition, Name> | undefined, never>;
80
+ paginate(options: PaginationOptions): Result$1<PaginationPage<Document<Definition, Name>>, never>;
81
+ }
82
+ interface SelectableDatabaseQuery<Definition extends Tables, Name extends TableNameOf<Definition>> extends OrderedDatabaseQuery<Definition, Name> {
83
+ order(direction: "asc" | "desc"): OrderedDatabaseQuery<Definition, Name>;
84
+ }
85
+ interface DatabaseQuery<Definition extends Tables, Name extends TableNameOf<Definition>> extends SelectableDatabaseQuery<Definition, Name> {
86
+ index<const IndexName extends keyof Definition[Name]["indexes"] & string>(name: IndexName, range?: (builder: IndexRangeBuilder<Definition, Name, IndexFields<Definition, Name, IndexName>>) => IndexRangeExpression): SelectableDatabaseQuery<Definition, Name>;
87
+ }
88
+ interface DatabaseReader<Definition extends Tables> {
89
+ query<const Name extends TableNameOf<Definition>>(name: Name): DatabaseQuery<Definition, Name>;
90
+ find<const Name extends TableNameOf<Definition>>(name: Name, id: Id<NoInfer<Name>>): Result$1<Document<Definition, Name> | undefined, never>;
91
+ get<const Name extends TableNameOf<Definition>>(name: Name, id: Id<NoInfer<Name>>): Result$1<Document<Definition, Name>, DocumentNotFound<Name>>;
92
+ }
93
+ interface DatabaseWriter<Definition extends Tables> extends DatabaseReader<Definition> {
94
+ delete<const Name extends TableNameOf<Definition>>(name: Name, id: Id<NoInfer<Name>>): Result$1<void, DocumentNotFound<Name>>;
95
+ insert<const Name extends TableNameOf<Definition>>(name: Name, value: InsertOf<Definition[NoInfer<Name>]>): Result$1<Id<Name>, never>;
96
+ patch<const Name extends TableNameOf<Definition>>(name: Name, id: Id<NoInfer<Name>>, value: PatchOf<Definition[NoInfer<Name>]>): Result$1<void, DocumentNotFound<Name>>;
97
+ replace<const Name extends TableNameOf<Definition>>(name: Name, id: Id<NoInfer<Name>>, value: InsertOf<Definition[NoInfer<Name>]>): Result$1<void, DocumentNotFound<Name>>;
98
+ }
99
+ interface QueryContext<Definition extends Tables, Environment extends DefinedEnv = typeof emptyEnv> {
100
+ readonly db: DatabaseReader<Definition>;
101
+ readonly env: EnvironmentType<Environment>;
102
+ readonly id: IdContext;
103
+ }
104
+ interface MutationContext<Definition extends Tables, Environment extends DefinedEnv = typeof emptyEnv> {
105
+ readonly db: DatabaseWriter<Definition>;
106
+ readonly env: EnvironmentType<Environment>;
107
+ readonly id: IdContext;
108
+ }
109
+ type FunctionKind = "Mutation" | "Query";
110
+ type HandlerContext<Kind extends FunctionKind, Definition extends Tables, Environment extends DefinedEnv> = Kind extends "Query" ? QueryContext<Definition, Environment> : MutationContext<Definition, Environment>;
111
+ type Handler<Kind extends FunctionKind, Definition extends Tables, Environment extends DefinedEnv, Args extends FunctionArgs, Success, Failure extends ErrorValue> = (ctx: HandlerContext<Kind, Definition, Environment>, args: ArgsOf<Args>) => Generator<Effect.Effect<unknown, Failure, never>, Success, never>;
112
+ type HandlerFailure<HandlerType> = HandlerType extends ((...arguments_: infer _Arguments) => Generator<infer Yielded, unknown, never>) ? Yielded extends Effect.Effect<unknown, infer Failure extends ErrorValue, never> ? Failure : never : never;
113
+ type FunctionDefinition<Kind extends FunctionKind, Definition extends Tables, Environment extends DefinedEnv, Args extends FunctionArgs, Returns extends FunctionReturns, Errors extends ErrorSchema | undefined, Failure extends ErrorValue> = {
114
+ readonly _tag: Kind;
115
+ readonly handler: Handler<Kind, Definition, Environment, Args, ReturnOf<Returns>, Failure>;
116
+ } & (Args extends Schema.Struct.Fields ? {
117
+ readonly args: Args;
118
+ } : {
119
+ readonly args?: never;
120
+ }) & (Returns extends TransportSchema ? {
121
+ readonly returns: Returns;
122
+ } : {
123
+ readonly returns?: never;
124
+ }) & (Errors extends ErrorSchema ? {
125
+ readonly errors: Errors;
126
+ } : {
127
+ readonly errors?: never;
128
+ });
129
+ interface FunctionInput<Kind extends FunctionKind, Definition extends Tables, Environment extends DefinedEnv, Args extends FunctionArgs, Success, Failure extends ErrorValue> {
130
+ readonly handler: Handler<Kind, Definition, Environment, Args, Success, Failure>;
131
+ }
132
+ type WithArgs<Kind extends FunctionKind, Args extends Schema.Struct.Fields> = {
133
+ readonly args: Args & ResolvedFunctionFields<NoInfer<Args>> & (Kind extends "Query" ? FileFree<Schema.Struct.Type<Args>, "query arguments"> : unknown);
134
+ };
135
+ interface WithoutArgs {
136
+ readonly args?: never;
137
+ }
138
+ type WithReturns<Kind extends FunctionKind, Returns extends TransportSchema> = {
139
+ readonly returns: Returns & ResolvedFunctionValue & (Kind extends "Mutation" ? FileFree<Returns["Type"], "mutation returns"> : unknown);
140
+ };
141
+ interface WithoutReturns {
142
+ readonly returns?: never;
143
+ }
144
+ interface DefineFunction<Kind extends FunctionKind, Definition extends Tables, Environment extends DefinedEnv> {
145
+ <const Args extends Schema.Struct.Fields, Returns extends TransportSchema, Errors extends ErrorSchema>(definition: FunctionInput<Kind, Definition, Environment, Args, Returns["Type"], Errors["Type"]> & WithArgs<Kind, Args> & WithReturns<Kind, Returns> & {
146
+ readonly errors: Errors & ResolvedFunctionValue & FileFree<Errors["Type"], "errors">;
147
+ }): FunctionDefinition<Kind, Definition, Environment, Args, Returns, Errors, Errors["Type"]>;
148
+ <Returns extends TransportSchema, Errors extends ErrorSchema>(definition: FunctionInput<Kind, Definition, Environment, undefined, Returns["Type"], Errors["Type"]> & WithoutArgs & WithReturns<Kind, Returns> & {
149
+ readonly errors: Errors & ResolvedFunctionValue & FileFree<Errors["Type"], "errors">;
150
+ }): FunctionDefinition<Kind, Definition, Environment, undefined, Returns, Errors, Errors["Type"]>;
151
+ <const Args extends Schema.Struct.Fields, Errors extends ErrorSchema>(definition: FunctionInput<Kind, Definition, Environment, Args, void, Errors["Type"]> & WithArgs<Kind, Args> & WithoutReturns & {
152
+ readonly errors: Errors & ResolvedFunctionValue & FileFree<Errors["Type"], "errors">;
153
+ }): FunctionDefinition<Kind, Definition, Environment, Args, undefined, Errors, Errors["Type"]>;
154
+ <Errors extends ErrorSchema>(definition: FunctionInput<Kind, Definition, Environment, undefined, void, Errors["Type"]> & WithoutArgs & WithoutReturns & {
155
+ readonly errors: Errors & ResolvedFunctionValue & FileFree<Errors["Type"], "errors">;
156
+ }): FunctionDefinition<Kind, Definition, Environment, undefined, undefined, Errors, Errors["Type"]>;
157
+ <const Args extends Schema.Struct.Fields, Returns extends TransportSchema, HandlerType extends Handler<Kind, Definition, Environment, Args, Returns["Type"], ErrorValue> = Handler<Kind, Definition, Environment, Args, Returns["Type"], never>>(definition: WithArgs<Kind, Args> & WithReturns<Kind, Returns> & {
158
+ readonly errors?: never;
159
+ readonly handler: HandlerType;
160
+ }): FunctionDefinition<Kind, Definition, Environment, Args, Returns, undefined, HandlerFailure<HandlerType>>;
161
+ <Returns extends TransportSchema, HandlerType extends Handler<Kind, Definition, Environment, undefined, Returns["Type"], ErrorValue> = Handler<Kind, Definition, Environment, undefined, Returns["Type"], never>>(definition: WithoutArgs & WithReturns<Kind, Returns> & {
162
+ readonly errors?: never;
163
+ readonly handler: HandlerType;
164
+ }): FunctionDefinition<Kind, Definition, Environment, undefined, Returns, undefined, HandlerFailure<HandlerType>>;
165
+ <const Args extends Schema.Struct.Fields, HandlerType extends Handler<Kind, Definition, Environment, Args, void, ErrorValue> = Handler<Kind, Definition, Environment, Args, void, never>>(definition: WithArgs<Kind, Args> & WithoutReturns & {
166
+ readonly errors?: never;
167
+ readonly handler: HandlerType;
168
+ }): FunctionDefinition<Kind, Definition, Environment, Args, undefined, undefined, HandlerFailure<HandlerType>>;
169
+ <HandlerType extends Handler<Kind, Definition, Environment, undefined, void, ErrorValue> = Handler<Kind, Definition, Environment, undefined, void, never>>(definition: WithoutArgs & WithoutReturns & {
170
+ readonly errors?: never;
171
+ readonly handler: HandlerType;
172
+ }): FunctionDefinition<Kind, Definition, Environment, undefined, undefined, undefined, HandlerFailure<HandlerType>>;
173
+ }
174
+ interface FunctionBuilders<Definition extends Tables, Environment extends DefinedEnv = typeof emptyEnv> {
175
+ readonly query: DefineFunction<"Query", Definition, Environment>;
176
+ readonly mutation: DefineFunction<"Mutation", Definition, Environment>;
177
+ }
178
+ interface SchemaBindings<Definition extends Tables, Environment extends DefinedEnv = typeof emptyEnv> extends FunctionBuilders<Definition, Environment> {
179
+ readonly values: BoundValues<Definition>;
180
+ }
181
+ declare function bindSchema<const Definition extends Tables>(schema: DefinedSchema<Definition>): SchemaBindings<Definition, typeof emptyEnv>;
182
+ declare function bindSchema<const Definition extends Tables, const Environment extends DefinedEnv>(schema: DefinedSchema<Definition>, environment: Environment): SchemaBindings<Definition, Environment>;
183
+ //#endregion
184
+ export { defineSchema as i, SchemaAuthoring as n, bindSchema as r, DefinedSchema as t };
185
+ //# sourceMappingURL=index-DWU-7TIh.d.ts.map
@@ -1,2 +1,2 @@
1
- import { a as functionPathOf, i as createApi, n as FunctionReference, r as MutationInput, t as Api } from "../api-5XSrIeqW.js";
1
+ import { a as functionPathOf, i as createApi, n as FunctionReference, r as MutationInput, t as Api } from "../api-Cv3hMbzo.js";
2
2
  export { Api, FunctionReference, MutationInput, createApi, functionPathOf };
@@ -1,2 +1,2 @@
1
- import { n as functionPathOf, t as createApi } from "../api-DzcR7spt.js";
1
+ import { n as functionPathOf, t as createApi } from "../api-CAgKDij7.js";
2
2
  export { createApi, functionPathOf };
@@ -1,15 +1,32 @@
1
- import { c as Result$1, d as TransportObject, f as TransportValue, i as ErrorValue, u as documentNotFound } from "../id-Cs82tq9Q-CK-maMgN.js";
2
- import "../result-DIjKM-p4.js";
3
- import "../sync-avN7NkcU.js";
4
- import { n as PaginationPage, t as PaginationOptions } from "../pagination-D-R9NR61-CpIoHFoI.js";
5
- import "../pagination-CX5IPbEi.js";
1
+ import { c as Result$1, d as TransportObject, f as TransportValue, i as ErrorValue, u as documentNotFound } from "../id-BzFHf3Wo-DGPCjgrf.js";
2
+ import "../result-DKAA4gpS.js";
3
+ import "../sync-Bs8J3fIr.js";
4
+ import { c as IdContext, n as PaginationPage, t as PaginationOptions } from "../pagination-CpYCaRYD-C2Rpp4Cw.js";
5
+ import "../id-E7JKqQ9r.js";
6
+ import "../pagination-E7JKqQ9r.js";
7
+ import { c as SchemaDefinitionTypeId } from "../types-C1iDP2Yf-BnkfBOQf.js";
6
8
  import { Effect, Schema } from "effect";
7
9
  //#region ../contracts/dist/runtime/functions.d.ts
8
10
  //#region src/runtime/functions.d.ts
9
11
  declare const FunctionKind: Schema.Literals<readonly ["Mutation", "Query"]>;
10
12
  type FunctionKind = typeof FunctionKind.Type;
11
13
  //#endregion
12
- //#region ../runtime/dist/guest-ByvJ3n1R.d.ts
14
+ //#region ../contracts/dist/runtime/schema.d.ts
15
+ interface RuntimeTableDefinition {
16
+ readonly _tag: "Table";
17
+ readonly fields: Schema.Struct.Fields;
18
+ readonly indexes: Readonly<Record<string, {
19
+ readonly name: string;
20
+ readonly fields: readonly string[];
21
+ }>>;
22
+ readonly schema: Schema.Constraint;
23
+ }
24
+ interface RuntimeSchemaDefinition {
25
+ readonly _tag: "Schema";
26
+ readonly [SchemaDefinitionTypeId]: Readonly<Record<string, RuntimeTableDefinition>>;
27
+ }
28
+ //#endregion
29
+ //#region ../runtime/dist/guest-3UrnzCJE.d.ts
13
30
  //#region src/guest.d.ts
14
31
  interface GuestFunctionDefinition {
15
32
  readonly _tag: FunctionKind;
@@ -52,11 +69,15 @@ interface GuestDatabaseWriter extends GuestDatabaseReader {
52
69
  }
53
70
  interface GuestQueryContext {
54
71
  readonly db: GuestDatabaseReader;
72
+ readonly id: IdContext;
55
73
  }
56
74
  interface GuestMutationContext {
57
75
  readonly db: GuestDatabaseWriter;
76
+ readonly id: IdContext;
58
77
  }
59
78
  declare const invoke: (definition: GuestFunctionDefinition, encodedArgs: Schema.Json, call: GuestHostCall, rawEnvironment?: Readonly<Record<string, string>>) => Promise<string>;
79
+ /** Entry point for the isolated schema bundle. It has no host capabilities. */
80
+ declare const evolve: (schema: RuntimeSchemaDefinition, encodedRequest: string) => string;
60
81
  //#endregion
61
- export { invoke };
82
+ export { evolve, invoke };
62
83
  //# sourceMappingURL=host.d.ts.map
@@ -1,6 +1,6 @@
1
- import { g as runtimeFileOccurrencesOf, y as GeneratedId } from "../file-C1abuMgd.js";
2
- import { _ as resultFromEffect, b as datePathsOfObject, d as ErrorValueSchema, o as PaginationCursor, p as documentNotFound, s as PaginationPageSize, v as TransportObjectTypeSchema, y as datePathsOf } from "../descriptor-XzDX2JDw-j3O6YHgW.js";
3
- import { c as getFunctionSchema, o as emptyEnv, r as decodeDefinedEnvironment, s as getFunctionEnvironment, t as SchemaDefinitionTypeId } from "../schema-B9XxyRO8.js";
1
+ import { C as TransportObjectTypeSchema, S as resultFromEffect, T as datePathsOfObject, V as runtimeFileOccurrencesOf, W as GeneratedId, g as ErrorValueSchema, s as User, u as makeIdContext, v as documentNotFound, w as datePathsOf } from "../id-Bt9XWRGL.js";
2
+ import { d as PaginationPageSize, n as applyValueDefaults, o as evolveStoredFields, u as PaginationCursor } from "../descriptor-DCCz5AHd-_nhlnu8U.js";
3
+ import { c as getFunctionSchema, o as emptyEnv, r as decodeDefinedEnvironment, s as getFunctionEnvironment, t as SchemaDefinitionTypeId } from "../schema-DqogEydG.js";
4
4
  import { Effect, Predicate, Schema } from "effect";
5
5
  //#region ../contracts/dist/runtime/host.js
6
6
  const HostDocument = Schema.Struct({
@@ -74,7 +74,7 @@ const HostReplace = Schema.Struct({
74
74
  id: GeneratedId,
75
75
  fields: Schema.JsonObject
76
76
  });
77
- const QuickJsHostRequest = Schema.Union([
77
+ const DatabaseHostRequest = Schema.Union([
78
78
  HostCollect,
79
79
  HostQuery,
80
80
  HostPaginate,
@@ -84,6 +84,12 @@ const QuickJsHostRequest = Schema.Union([
84
84
  HostPatch,
85
85
  HostReplace
86
86
  ]);
87
+ const HostReadId = Schema.Struct({ type: Schema.Literal("ReadId") });
88
+ const QuickJsHostRequest = Schema.Union([DatabaseHostRequest, HostReadId]);
89
+ const HostIdentity = Schema.Struct({
90
+ type: Schema.Literal("Identity"),
91
+ user: Schema.NullOr(User)
92
+ });
87
93
  const HostDocuments = Schema.Struct({
88
94
  type: Schema.Literal("Documents"),
89
95
  documents: Schema.Array(HostDocument)
@@ -106,6 +112,7 @@ const HostCompleted = Schema.Struct({
106
112
  found: Schema.Boolean
107
113
  });
108
114
  Schema.Union([
115
+ HostIdentity,
109
116
  HostDocuments,
110
117
  HostPage,
111
118
  HostFound,
@@ -119,7 +126,8 @@ const decodeHostResponse = Schema.decodeEffect(Schema.fromJsonString(Schema.Unio
119
126
  HostPage,
120
127
  HostFound,
121
128
  HostInserted,
122
- HostCompleted
129
+ HostCompleted,
130
+ HostIdentity
123
131
  ])));
124
132
  const encodeHostRequest = Schema.encodeSync(Schema.fromJsonString(QuickJsHostRequest));
125
133
  const callHost = Effect.fn("Guest.callHost")(function* (call, request) {
@@ -133,7 +141,7 @@ const tableFor = (schema, table) => {
133
141
  const guestCodec = (schema) => schema;
134
142
  const encodeFields = (schema, table, fields) => {
135
143
  const definition = tableFor(schema, table);
136
- return Schema.decodeUnknownSync(Schema.JsonObject)(Schema.encodeUnknownSync(Schema.toCodecJson(guestCodec(definition.schema)), { onExcessProperty: "error" })(fields));
144
+ return Schema.decodeUnknownSync(Schema.JsonObject)(Schema.encodeUnknownSync(Schema.toCodecJson(guestCodec(definition.schema)), { onExcessProperty: "error" })(applyValueDefaults(definition.schema, fields)));
137
145
  };
138
146
  const encodePatchFields = (schema, table, fields) => {
139
147
  const definition = tableFor(schema, table);
@@ -398,7 +406,8 @@ const runGuest = Effect.fn("Guest.invoke")(function* (definition, encodedArgs, c
398
406
  const args = yield* Schema.decodeUnknownEffect(Schema.ObjectKeyword)(decodedArgs.value);
399
407
  const context = Object.freeze({
400
408
  db: definition._tag === "Query" ? makeReader(schema, call) : makeWriter(schema, call),
401
- env: environment
409
+ env: environment,
410
+ id: makeIdContext(callHost(call, { type: "ReadId" }).pipe(Effect.flatMap((response) => response.type === "Identity" ? Effect.succeed(response.user) : Effect.die("The ID response is invalid."))))
402
411
  });
403
412
  return yield* Effect.gen(() => definition.handler(context, args)).pipe(Effect.matchEffect({
404
413
  onFailure: (error) => encodeFailure(definition, error),
@@ -406,7 +415,27 @@ const runGuest = Effect.fn("Guest.invoke")(function* (definition, encodedArgs, c
406
415
  }));
407
416
  });
408
417
  const invoke = (definition, encodedArgs, call, rawEnvironment = {}) => Effect.runPromise(runGuest(definition, encodedArgs, call, rawEnvironment)).then((result) => Schema.encodeSync(Schema.fromJsonString(Schema.Json))(result));
418
+ const EvolutionRequest = Schema.Struct({
419
+ table: Schema.String,
420
+ fields: Schema.JsonObject
421
+ });
422
+ /** Entry point for the isolated schema bundle. It has no host capabilities. */
423
+ const evolve = (schema, encodedRequest) => {
424
+ const request = Schema.decodeSync(Schema.fromJsonString(EvolutionRequest))(encodedRequest);
425
+ const definition = tableFor(schema, request.table);
426
+ try {
427
+ return JSON.stringify({
428
+ type: "Success",
429
+ value: { fields: evolveStoredFields(definition.schema, request.fields) }
430
+ });
431
+ } catch {
432
+ return JSON.stringify({
433
+ type: "Success",
434
+ value: { error: `Stored fields in '${request.table}' do not match the new schema or its conversion rules.` }
435
+ });
436
+ }
437
+ };
409
438
  //#endregion
410
- export { invoke };
439
+ export { evolve, invoke };
411
440
 
412
441
  //# sourceMappingURL=host.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"host.js","names":[],"sources":["../../../../contracts/dist/runtime/host.js","../../../../runtime/dist/guest.js"],"sourcesContent":["import { GeneratedId } from \"./id.js\";\nimport { PaginationCursor, PaginationPageSize } from \"./pagination.js\";\nimport { Schema } from \"effect\";\n//#region src/runtime/host.ts\nconst HostDocument = Schema.Struct({\n\tid: GeneratedId,\n\tcreatedAt: Schema.Int,\n\tupdatedAt: Schema.Int,\n\tfields: Schema.JsonObject\n});\nconst HostCollect = Schema.Struct({\n\ttype: Schema.Literal(\"Collect\"),\n\ttable: Schema.String\n});\nconst HostIndexComparison = Schema.Struct({\n\tfield: Schema.String,\n\tvalue: Schema.Json\n});\nconst HostIndexRange = Schema.Struct({\n\tequal: Schema.Array(HostIndexComparison),\n\tlower: Schema.optional(Schema.Struct({\n\t\t...HostIndexComparison.fields,\n\t\tinclusive: Schema.Boolean\n\t})),\n\tupper: Schema.optional(Schema.Struct({\n\t\t...HostIndexComparison.fields,\n\t\tinclusive: Schema.Boolean\n\t}))\n});\nconst HostQuery = Schema.Struct({\n\ttype: Schema.Literal(\"Query\"),\n\ttable: Schema.String,\n\tindex: Schema.optional(Schema.String),\n\trange: Schema.optional(HostIndexRange),\n\torder: Schema.Literals([\"Asc\", \"Desc\"]),\n\tlimit: Schema.optional(Schema.Natural)\n});\nconst HostPaginate = Schema.Struct({\n\ttype: Schema.Literal(\"Paginate\"),\n\ttable: Schema.String,\n\tindex: Schema.optional(Schema.String),\n\trange: Schema.optional(HostIndexRange),\n\torder: Schema.Literals([\"Asc\", \"Desc\"]),\n\tpagination: Schema.Struct({\n\t\tcursor: Schema.NullOr(PaginationCursor),\n\t\tpageSize: PaginationPageSize\n\t})\n});\nconst HostFind = Schema.Struct({\n\ttype: Schema.Literal(\"Find\"),\n\ttable: Schema.String,\n\tid: GeneratedId\n});\nconst HostInsert = Schema.Struct({\n\ttype: Schema.Literal(\"Insert\"),\n\ttable: Schema.String,\n\tfields: Schema.JsonObject\n});\nconst HostDelete = Schema.Struct({\n\ttype: Schema.Literal(\"Delete\"),\n\ttable: Schema.String,\n\tid: GeneratedId\n});\nconst HostPatch = Schema.Struct({\n\ttype: Schema.Literal(\"Patch\"),\n\ttable: Schema.String,\n\tid: GeneratedId,\n\tfields: Schema.JsonObject\n});\nconst HostReplace = Schema.Struct({\n\ttype: Schema.Literal(\"Replace\"),\n\ttable: Schema.String,\n\tid: GeneratedId,\n\tfields: Schema.JsonObject\n});\nconst QuickJsHostRequest = Schema.Union([\n\tHostCollect,\n\tHostQuery,\n\tHostPaginate,\n\tHostFind,\n\tHostInsert,\n\tHostDelete,\n\tHostPatch,\n\tHostReplace\n]);\nconst HostDocuments = Schema.Struct({\n\ttype: Schema.Literal(\"Documents\"),\n\tdocuments: Schema.Array(HostDocument)\n});\nconst HostPage = Schema.Struct({\n\ttype: Schema.Literal(\"Page\"),\n\tdocuments: Schema.Array(HostDocument),\n\tnextCursor: Schema.NullOr(PaginationCursor)\n});\nconst HostFound = Schema.Struct({\n\ttype: Schema.Literal(\"Found\"),\n\tdocument: Schema.NullOr(HostDocument)\n});\nconst HostInserted = Schema.Struct({\n\ttype: Schema.Literal(\"Inserted\"),\n\tid: GeneratedId\n});\nconst HostCompleted = Schema.Struct({\n\ttype: Schema.Literal(\"Completed\"),\n\tfound: Schema.Boolean\n});\nconst QuickJsHostResponse = Schema.Union([\n\tHostDocuments,\n\tHostPage,\n\tHostFound,\n\tHostInserted,\n\tHostCompleted\n]);\n//#endregion\nexport { HostCollect, HostCompleted, HostDelete, HostDocument, HostDocuments, HostFind, HostFound, HostIndexComparison, HostIndexRange, HostInsert, HostInserted, HostPage, HostPaginate, HostPatch, HostQuery, HostReplace, QuickJsHostRequest, QuickJsHostResponse };\n\n//# sourceMappingURL=host.js.map","import { HostCompleted, HostDocuments, HostFound, HostInserted, HostPage, QuickJsHostRequest } from \"@ignotum/contracts/runtime/host\";\nimport { runtimeFileOccurrencesOf } from \"@ignotum/contracts/schema/file\";\nimport { GeneratedId } from \"@ignotum/contracts/runtime/id\";\nimport { Effect, Predicate, Schema } from \"effect\";\nimport { ErrorValueSchema, documentNotFound, resultFromEffect } from \"@ignotum/contracts/runtime/result\";\nimport { getFunctionEnvironment, getFunctionSchema } from \"@ignotum/contracts/runtime/schema\";\nimport { SchemaDefinitionTypeId, decodeDefinedEnvironment, emptyEnv } from \"@ignotum/contracts/schema\";\nimport { TransportObjectTypeSchema, datePathsOf, datePathsOfObject } from \"@ignotum/contracts/runtime/value\";\n//#region src/guest.ts\nconst decodeHostResponse = Schema.decodeEffect(Schema.fromJsonString(Schema.Union([\n\tHostDocuments,\n\tHostPage,\n\tHostFound,\n\tHostInserted,\n\tHostCompleted\n])));\nconst encodeHostRequest = Schema.encodeSync(Schema.fromJsonString(QuickJsHostRequest));\nconst callHost = Effect.fn(\"Guest.callHost\")(function* (call, request) {\n\treturn yield* Effect.tryPromise(() => call(encodeHostRequest(request))).pipe(Effect.flatMap(decodeHostResponse), Effect.orDie);\n});\nconst tableFor = (schema, table) => {\n\tconst definition = schema[SchemaDefinitionTypeId][table];\n\tif (definition === void 0) throw new Error(`Unknown database table '${table}'.`);\n\treturn definition;\n};\nconst guestCodec = (schema) => schema;\nconst encodeFields = (schema, table, fields) => {\n\tconst definition = tableFor(schema, table);\n\treturn Schema.decodeUnknownSync(Schema.JsonObject)(Schema.encodeUnknownSync(Schema.toCodecJson(guestCodec(definition.schema)), { onExcessProperty: \"error\" })(fields));\n};\nconst encodePatchFields = (schema, table, fields) => {\n\tconst definition = tableFor(schema, table);\n\treturn Schema.decodeSync(Schema.JsonObject)(Object.fromEntries(Object.entries(fields).map(([name, value]) => {\n\t\tconst field = definition.fields[name];\n\t\tif (field === void 0) throw new Error(`Unknown field '${name}' on table '${table}'.`);\n\t\treturn [name, Schema.encodeUnknownSync(Schema.toCodecJson(guestCodec(field)))(value)];\n\t})));\n};\nconst documentCodec = (schema, table) => guestCodec(Schema.Struct({\n\t...tableFor(schema, table).fields,\n\tid: Schema.String,\n\tcreatedAt: Schema.DateFromMillis,\n\tupdatedAt: Schema.DateFromMillis\n}));\nconst decodeDocument = (schema, table, document) => Schema.decodeUnknownSync(TransportObjectTypeSchema)(Schema.decodeSync(Schema.toCodecJson(documentCodec(schema, table)))({\n\t...document.fields,\n\tid: document.id,\n\tcreatedAt: document.createdAt,\n\tupdatedAt: document.updatedAt\n}));\nconst expectResponse = (response, tag) => {\n\tif (response.type !== tag) throw new Error(`Unexpected host response '${response.type}'.`);\n\treturn response;\n};\nconst makeReader = (schema, call) => {\n\tconst findEffect = (table, id) => callHost(call, {\n\t\ttype: \"Find\",\n\t\ttable,\n\t\tid: GeneratedId.make(id)\n\t}).pipe(Effect.map((response) => expectResponse(response, \"Found\")), Effect.map(({ document }) => document === null ? void 0 : decodeDocument(schema, table, document)));\n\tconst query = (table, selectedIndex, selectedRange, order = \"Asc\") => {\n\t\tconst definition = tableFor(schema, table);\n\t\tconst encodeIndexValue = (field, value) => {\n\t\t\tconst codec = field === \"createdAt\" ? Schema.DateFromMillis : field === \"id\" ? GeneratedId : definition.fields[field];\n\t\t\tif (codec === void 0) throw new Error(`Unknown index field '${field}'.`);\n\t\t\treturn Schema.decodeUnknownSync(Schema.Json)(Schema.encodeUnknownSync(guestCodec(codec))(value));\n\t\t};\n\t\tconst execute = (limit) => {\n\t\t\tconst request = selectedIndex === void 0 ? {\n\t\t\t\ttype: \"Query\",\n\t\t\t\ttable,\n\t\t\t\torder\n\t\t\t} : selectedRange === void 0 ? {\n\t\t\t\ttype: \"Query\",\n\t\t\t\ttable,\n\t\t\t\tindex: selectedIndex,\n\t\t\t\torder\n\t\t\t} : {\n\t\t\t\ttype: \"Query\",\n\t\t\t\ttable,\n\t\t\t\tindex: selectedIndex,\n\t\t\t\trange: selectedRange,\n\t\t\t\torder\n\t\t\t};\n\t\t\treturn callHost(call, limit === void 0 ? request : {\n\t\t\t\t...request,\n\t\t\t\tlimit\n\t\t\t}).pipe(Effect.map((response) => expectResponse(response, \"Documents\")), Effect.map(({ documents }) => documents.map((document) => decodeDocument(schema, table, document))));\n\t\t};\n\t\tconst executePage = (pagination) => {\n\t\t\treturn callHost(call, selectedIndex === void 0 ? {\n\t\t\t\ttype: \"Paginate\",\n\t\t\t\ttable,\n\t\t\t\torder,\n\t\t\t\tpagination\n\t\t\t} : selectedRange === void 0 ? {\n\t\t\t\ttype: \"Paginate\",\n\t\t\t\ttable,\n\t\t\t\tindex: selectedIndex,\n\t\t\t\torder,\n\t\t\t\tpagination\n\t\t\t} : {\n\t\t\t\ttype: \"Paginate\",\n\t\t\t\ttable,\n\t\t\t\tindex: selectedIndex,\n\t\t\t\trange: selectedRange,\n\t\t\t\torder,\n\t\t\t\tpagination\n\t\t\t}).pipe(Effect.map((response) => expectResponse(response, \"Page\")), Effect.map(({ documents, nextCursor }) => ({\n\t\t\t\titems: documents.map((document) => decodeDocument(schema, table, document)),\n\t\t\t\tnextCursor\n\t\t\t})));\n\t\t};\n\t\tconst validateLimit = (count) => {\n\t\t\tif (!Number.isInteger(count) || count < 0 || count > 1e3) throw new Error(\"Query limits must be integers between 0 and 1000.\");\n\t\t\treturn count;\n\t\t};\n\t\treturn Object.freeze({\n\t\t\tindex: (name, buildRange) => {\n\t\t\t\tif (selectedIndex !== void 0) throw new Error(\"A query can select only one index.\");\n\t\t\t\tconst index = definition.indexes[name];\n\t\t\t\tif (index === void 0) throw new Error(`Unknown index '${name}' on table '${table}'.`);\n\t\t\t\tif (buildRange === void 0) return query(table, name, void 0, order);\n\t\t\t\tconst fields = [\n\t\t\t\t\t...index.fields,\n\t\t\t\t\t\"createdAt\",\n\t\t\t\t\t\"id\"\n\t\t\t\t];\n\t\t\t\tconst range = { equal: [] };\n\t\t\t\tlet position = 0;\n\t\t\t\tlet boundedField;\n\t\t\t\tconst expectField = (field) => {\n\t\t\t\t\tconst expected = fields[position];\n\t\t\t\t\tif (field !== expected) throw new Error(`Expected index field '${expected}', received '${field}'.`);\n\t\t\t\t};\n\t\t\t\tconst builder = {\n\t\t\t\t\teq: (field, value) => {\n\t\t\t\t\t\tif (boundedField !== void 0) throw new Error(\"Equality cannot follow an index bound.\");\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\trange.equal.push({\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value)\n\t\t\t\t\t\t});\n\t\t\t\t\t\tposition += 1;\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t},\n\t\t\t\t\tgt: (field, value) => {\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\tif (range.lower !== void 0) throw new Error(\"An index range has only one lower bound.\");\n\t\t\t\t\t\tboundedField = field;\n\t\t\t\t\t\trange.lower = {\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value),\n\t\t\t\t\t\t\tinclusive: false\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t},\n\t\t\t\t\tgte: (field, value) => {\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\tif (range.lower !== void 0) throw new Error(\"An index range has only one lower bound.\");\n\t\t\t\t\t\tboundedField = field;\n\t\t\t\t\t\trange.lower = {\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value),\n\t\t\t\t\t\t\tinclusive: true\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t},\n\t\t\t\t\tlt: (field, value) => {\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\tif (range.upper !== void 0) throw new Error(\"An index range has only one upper bound.\");\n\t\t\t\t\t\tboundedField = field;\n\t\t\t\t\t\trange.upper = {\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value),\n\t\t\t\t\t\t\tinclusive: false\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t},\n\t\t\t\t\tlte: (field, value) => {\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\tif (range.upper !== void 0) throw new Error(\"An index range has only one upper bound.\");\n\t\t\t\t\t\tboundedField = field;\n\t\t\t\t\t\trange.upper = {\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value),\n\t\t\t\t\t\t\tinclusive: true\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst built = buildRange(builder);\n\t\t\t\tif (!Predicate.isObject(built)) throw new Error(\"An index range callback must return its builder.\");\n\t\t\t\treturn query(table, name, range, order);\n\t\t\t},\n\t\t\torder: (direction) => query(table, selectedIndex, selectedRange, direction === \"asc\" ? \"Asc\" : \"Desc\"),\n\t\t\tcollect: () => resultFromEffect(execute()),\n\t\t\ttake: (count) => resultFromEffect(execute(validateLimit(count))),\n\t\t\tfirst: () => resultFromEffect(execute(1).pipe(Effect.map((documents) => documents[0]))),\n\t\t\tunique: () => resultFromEffect(execute(2).pipe(Effect.flatMap((documents) => documents.length > 1 ? Effect.die(/* @__PURE__ */ new Error(\"A unique database query matched more than one document.\")) : Effect.succeed(documents[0])))),\n\t\t\tpaginate: (options) => resultFromEffect(executePage(options))\n\t\t});\n\t};\n\treturn Object.freeze({\n\t\tfind: (table, id) => resultFromEffect(findEffect(table, id)),\n\t\tget: (table, id) => resultFromEffect(findEffect(table, id).pipe(Effect.flatMap((document) => document === void 0 ? Effect.fail(documentNotFound(table, id)) : Effect.succeed(document)))),\n\t\tquery: (table) => query(table)\n\t});\n};\nconst makeWriter = (schema, call) => {\n\tconst reader = makeReader(schema, call);\n\tconst complete = Effect.fn(\"Guest.completeWrite\")(function* (table, id, request) {\n\t\tif (expectResponse(yield* callHost(call, request), \"Completed\").found === false) return yield* Effect.fail(documentNotFound(table, id));\n\t});\n\tconst writer = {\n\t\t...reader,\n\t\tdelete: (table, id) => resultFromEffect(complete(table, id, {\n\t\t\ttype: \"Delete\",\n\t\t\ttable,\n\t\t\tid: GeneratedId.make(id)\n\t\t})),\n\t\tinsert: (table, value) => resultFromEffect(callHost(call, {\n\t\t\ttype: \"Insert\",\n\t\t\ttable,\n\t\t\tfields: encodeFields(schema, table, value)\n\t\t}).pipe(Effect.map((response) => expectResponse(response, \"Inserted\").id))),\n\t\tpatch: (table, id, value) => resultFromEffect(complete(table, id, {\n\t\t\ttype: \"Patch\",\n\t\t\ttable,\n\t\t\tid: GeneratedId.make(id),\n\t\t\tfields: encodePatchFields(schema, table, value)\n\t\t})),\n\t\treplace: (table, id, value) => resultFromEffect(complete(table, id, {\n\t\t\ttype: \"Replace\",\n\t\t\ttable,\n\t\t\tid: GeneratedId.make(id),\n\t\t\tfields: encodeFields(schema, table, value)\n\t\t}))\n\t};\n\treturn Object.freeze(writer);\n};\nconst encodeSuccess = Effect.fn(\"Guest.encodeSuccess\")(function* (definition, value) {\n\tif (definition.returns === void 0) {\n\t\tyield* Schema.encodeUnknownEffect(Schema.Undefined)(value);\n\t\treturn { type: \"Success\" };\n\t}\n\tconst encoded = yield* Schema.encodeUnknownEffect(Schema.toCodecJson(definition.returns))(value);\n\tconst files = runtimeFileOccurrencesOf(value);\n\tconst result = files.length === 0 ? {\n\t\ttype: \"Success\",\n\t\tvalue: encoded\n\t} : {\n\t\ttype: \"Success\",\n\t\tvalue: encoded,\n\t\tfiles\n\t};\n\tconst dates = datePathsOf(value);\n\treturn dates.length === 0 ? result : {\n\t\t...result,\n\t\tdates\n\t};\n});\nconst encodeFailure = Effect.fn(\"Guest.encodeFailure\")(function* (definition, error) {\n\tconst result = {\n\t\ttype: \"Failure\",\n\t\terror: yield* Schema.encodeUnknownEffect(Schema.toCodecJson(definition.errors ?? ErrorValueSchema))(error)\n\t};\n\tconst dates = datePathsOfObject(error);\n\treturn dates.length === 0 ? result : {\n\t\t...result,\n\t\tdates\n\t};\n});\nconst runGuest = Effect.fn(\"Guest.invoke\")(function* (definition, encodedArgs, call, rawEnvironment) {\n\tconst schema = getFunctionSchema(definition);\n\tif (schema === void 0) return yield* Effect.die(\"The function has no bound schema.\");\n\tconst environmentDefinition = getFunctionEnvironment(definition) ?? emptyEnv;\n\tconst environment = yield* decodeDefinedEnvironment(environmentDefinition, rawEnvironment).pipe(Effect.mapError(() => /* @__PURE__ */ new Error(\"The deployment environment is invalid.\")));\n\tconst decodedArgs = yield* Schema.decodeEffect(Schema.toCodecJson(guestCodec(Schema.Struct(definition.args ?? {}))))(encodedArgs).pipe(Effect.match({\n\t\tonFailure: () => ({ valid: false }),\n\t\tonSuccess: (value) => ({\n\t\t\tvalid: true,\n\t\t\tvalue\n\t\t})\n\t}));\n\tif (!decodedArgs.valid) return {\n\t\ttype: \"InvocationRejected\",\n\t\tcode: \"InvalidArguments\",\n\t\tmessage: \"The invocation arguments do not match the function definition.\"\n\t};\n\tconst args = yield* Schema.decodeUnknownEffect(Schema.ObjectKeyword)(decodedArgs.value);\n\tconst context = Object.freeze({\n\t\tdb: definition._tag === \"Query\" ? makeReader(schema, call) : makeWriter(schema, call),\n\t\tenv: environment\n\t});\n\treturn yield* Effect.gen(() => definition.handler(context, args)).pipe(Effect.matchEffect({\n\t\tonFailure: (error) => encodeFailure(definition, error),\n\t\tonSuccess: (value) => encodeSuccess(definition, value)\n\t}));\n});\nconst invoke = (definition, encodedArgs, call, rawEnvironment = {}) => Effect.runPromise(runGuest(definition, encodedArgs, call, rawEnvironment)).then((result) => Schema.encodeSync(Schema.fromJsonString(Schema.Json))(result));\n//#endregion\nexport { invoke };\n\n//# sourceMappingURL=guest.js.map"],"mappings":"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"}
1
+ {"version":3,"file":"host.js","names":[],"sources":["../../../../contracts/dist/runtime/host.js","../../../../runtime/dist/guest.js"],"sourcesContent":["import { GeneratedId } from \"./id.js\";\nimport { User } from \"../id.js\";\nimport { PaginationCursor, PaginationPageSize } from \"./pagination.js\";\nimport { Schema } from \"effect\";\n//#region src/runtime/host.ts\nconst HostDocument = Schema.Struct({\n\tid: GeneratedId,\n\tcreatedAt: Schema.Int,\n\tupdatedAt: Schema.Int,\n\tfields: Schema.JsonObject\n});\nconst HostCollect = Schema.Struct({\n\ttype: Schema.Literal(\"Collect\"),\n\ttable: Schema.String\n});\nconst HostIndexComparison = Schema.Struct({\n\tfield: Schema.String,\n\tvalue: Schema.Json\n});\nconst HostIndexRange = Schema.Struct({\n\tequal: Schema.Array(HostIndexComparison),\n\tlower: Schema.optional(Schema.Struct({\n\t\t...HostIndexComparison.fields,\n\t\tinclusive: Schema.Boolean\n\t})),\n\tupper: Schema.optional(Schema.Struct({\n\t\t...HostIndexComparison.fields,\n\t\tinclusive: Schema.Boolean\n\t}))\n});\nconst HostQuery = Schema.Struct({\n\ttype: Schema.Literal(\"Query\"),\n\ttable: Schema.String,\n\tindex: Schema.optional(Schema.String),\n\trange: Schema.optional(HostIndexRange),\n\torder: Schema.Literals([\"Asc\", \"Desc\"]),\n\tlimit: Schema.optional(Schema.Natural)\n});\nconst HostPaginate = Schema.Struct({\n\ttype: Schema.Literal(\"Paginate\"),\n\ttable: Schema.String,\n\tindex: Schema.optional(Schema.String),\n\trange: Schema.optional(HostIndexRange),\n\torder: Schema.Literals([\"Asc\", \"Desc\"]),\n\tpagination: Schema.Struct({\n\t\tcursor: Schema.NullOr(PaginationCursor),\n\t\tpageSize: PaginationPageSize\n\t})\n});\nconst HostFind = Schema.Struct({\n\ttype: Schema.Literal(\"Find\"),\n\ttable: Schema.String,\n\tid: GeneratedId\n});\nconst HostInsert = Schema.Struct({\n\ttype: Schema.Literal(\"Insert\"),\n\ttable: Schema.String,\n\tfields: Schema.JsonObject\n});\nconst HostDelete = Schema.Struct({\n\ttype: Schema.Literal(\"Delete\"),\n\ttable: Schema.String,\n\tid: GeneratedId\n});\nconst HostPatch = Schema.Struct({\n\ttype: Schema.Literal(\"Patch\"),\n\ttable: Schema.String,\n\tid: GeneratedId,\n\tfields: Schema.JsonObject\n});\nconst HostReplace = Schema.Struct({\n\ttype: Schema.Literal(\"Replace\"),\n\ttable: Schema.String,\n\tid: GeneratedId,\n\tfields: Schema.JsonObject\n});\nconst DatabaseHostRequest = Schema.Union([\n\tHostCollect,\n\tHostQuery,\n\tHostPaginate,\n\tHostFind,\n\tHostInsert,\n\tHostDelete,\n\tHostPatch,\n\tHostReplace\n]);\nconst HostReadId = Schema.Struct({ type: Schema.Literal(\"ReadId\") });\nconst QuickJsHostRequest = Schema.Union([DatabaseHostRequest, HostReadId]);\nconst HostIdentity = Schema.Struct({\n\ttype: Schema.Literal(\"Identity\"),\n\tuser: Schema.NullOr(User)\n});\nconst HostDocuments = Schema.Struct({\n\ttype: Schema.Literal(\"Documents\"),\n\tdocuments: Schema.Array(HostDocument)\n});\nconst HostPage = Schema.Struct({\n\ttype: Schema.Literal(\"Page\"),\n\tdocuments: Schema.Array(HostDocument),\n\tnextCursor: Schema.NullOr(PaginationCursor)\n});\nconst HostFound = Schema.Struct({\n\ttype: Schema.Literal(\"Found\"),\n\tdocument: Schema.NullOr(HostDocument)\n});\nconst HostInserted = Schema.Struct({\n\ttype: Schema.Literal(\"Inserted\"),\n\tid: GeneratedId\n});\nconst HostCompleted = Schema.Struct({\n\ttype: Schema.Literal(\"Completed\"),\n\tfound: Schema.Boolean\n});\nconst QuickJsHostResponse = Schema.Union([\n\tHostIdentity,\n\tHostDocuments,\n\tHostPage,\n\tHostFound,\n\tHostInserted,\n\tHostCompleted\n]);\n//#endregion\nexport { DatabaseHostRequest, HostCollect, HostCompleted, HostDelete, HostDocument, HostDocuments, HostFind, HostFound, HostIdentity, HostIndexComparison, HostIndexRange, HostInsert, HostInserted, HostPage, HostPaginate, HostPatch, HostQuery, HostReadId, HostReplace, QuickJsHostRequest, QuickJsHostResponse };\n\n//# sourceMappingURL=host.js.map","import { HostCompleted, HostDocuments, HostFound, HostIdentity, HostInserted, HostPage, QuickJsHostRequest } from \"@ignotum/contracts/runtime/host\";\nimport { runtimeFileOccurrencesOf } from \"@ignotum/contracts/schema/file\";\nimport { Effect, Predicate, Schema } from \"effect\";\nimport { GeneratedId } from \"@ignotum/contracts/runtime/id\";\nimport { makeIdContext } from \"@ignotum/contracts/id\";\nimport { ErrorValueSchema, documentNotFound, resultFromEffect } from \"@ignotum/contracts/runtime/result\";\nimport { getFunctionEnvironment, getFunctionSchema } from \"@ignotum/contracts/runtime/schema\";\nimport { SchemaDefinitionTypeId, applyValueDefaults, decodeDefinedEnvironment, emptyEnv, evolveStoredFields } from \"@ignotum/contracts/schema\";\nimport { TransportObjectTypeSchema, datePathsOf, datePathsOfObject } from \"@ignotum/contracts/runtime/value\";\n//#region src/guest.ts\nconst decodeHostResponse = Schema.decodeEffect(Schema.fromJsonString(Schema.Union([\n\tHostDocuments,\n\tHostPage,\n\tHostFound,\n\tHostInserted,\n\tHostCompleted,\n\tHostIdentity\n])));\nconst encodeHostRequest = Schema.encodeSync(Schema.fromJsonString(QuickJsHostRequest));\nconst callHost = Effect.fn(\"Guest.callHost\")(function* (call, request) {\n\treturn yield* Effect.tryPromise(() => call(encodeHostRequest(request))).pipe(Effect.flatMap(decodeHostResponse), Effect.orDie);\n});\nconst tableFor = (schema, table) => {\n\tconst definition = schema[SchemaDefinitionTypeId][table];\n\tif (definition === void 0) throw new Error(`Unknown database table '${table}'.`);\n\treturn definition;\n};\nconst guestCodec = (schema) => schema;\nconst encodeFields = (schema, table, fields) => {\n\tconst definition = tableFor(schema, table);\n\treturn Schema.decodeUnknownSync(Schema.JsonObject)(Schema.encodeUnknownSync(Schema.toCodecJson(guestCodec(definition.schema)), { onExcessProperty: \"error\" })(applyValueDefaults(definition.schema, fields)));\n};\nconst encodePatchFields = (schema, table, fields) => {\n\tconst definition = tableFor(schema, table);\n\treturn Schema.decodeSync(Schema.JsonObject)(Object.fromEntries(Object.entries(fields).map(([name, value]) => {\n\t\tconst field = definition.fields[name];\n\t\tif (field === void 0) throw new Error(`Unknown field '${name}' on table '${table}'.`);\n\t\treturn [name, Schema.encodeUnknownSync(Schema.toCodecJson(guestCodec(field)))(value)];\n\t})));\n};\nconst documentCodec = (schema, table) => guestCodec(Schema.Struct({\n\t...tableFor(schema, table).fields,\n\tid: Schema.String,\n\tcreatedAt: Schema.DateFromMillis,\n\tupdatedAt: Schema.DateFromMillis\n}));\nconst decodeDocument = (schema, table, document) => Schema.decodeUnknownSync(TransportObjectTypeSchema)(Schema.decodeSync(Schema.toCodecJson(documentCodec(schema, table)))({\n\t...document.fields,\n\tid: document.id,\n\tcreatedAt: document.createdAt,\n\tupdatedAt: document.updatedAt\n}));\nconst expectResponse = (response, tag) => {\n\tif (response.type !== tag) throw new Error(`Unexpected host response '${response.type}'.`);\n\treturn response;\n};\nconst makeReader = (schema, call) => {\n\tconst findEffect = (table, id) => callHost(call, {\n\t\ttype: \"Find\",\n\t\ttable,\n\t\tid: GeneratedId.make(id)\n\t}).pipe(Effect.map((response) => expectResponse(response, \"Found\")), Effect.map(({ document }) => document === null ? void 0 : decodeDocument(schema, table, document)));\n\tconst query = (table, selectedIndex, selectedRange, order = \"Asc\") => {\n\t\tconst definition = tableFor(schema, table);\n\t\tconst encodeIndexValue = (field, value) => {\n\t\t\tconst codec = field === \"createdAt\" ? Schema.DateFromMillis : field === \"id\" ? GeneratedId : definition.fields[field];\n\t\t\tif (codec === void 0) throw new Error(`Unknown index field '${field}'.`);\n\t\t\treturn Schema.decodeUnknownSync(Schema.Json)(Schema.encodeUnknownSync(guestCodec(codec))(value));\n\t\t};\n\t\tconst execute = (limit) => {\n\t\t\tconst request = selectedIndex === void 0 ? {\n\t\t\t\ttype: \"Query\",\n\t\t\t\ttable,\n\t\t\t\torder\n\t\t\t} : selectedRange === void 0 ? {\n\t\t\t\ttype: \"Query\",\n\t\t\t\ttable,\n\t\t\t\tindex: selectedIndex,\n\t\t\t\torder\n\t\t\t} : {\n\t\t\t\ttype: \"Query\",\n\t\t\t\ttable,\n\t\t\t\tindex: selectedIndex,\n\t\t\t\trange: selectedRange,\n\t\t\t\torder\n\t\t\t};\n\t\t\treturn callHost(call, limit === void 0 ? request : {\n\t\t\t\t...request,\n\t\t\t\tlimit\n\t\t\t}).pipe(Effect.map((response) => expectResponse(response, \"Documents\")), Effect.map(({ documents }) => documents.map((document) => decodeDocument(schema, table, document))));\n\t\t};\n\t\tconst executePage = (pagination) => {\n\t\t\treturn callHost(call, selectedIndex === void 0 ? {\n\t\t\t\ttype: \"Paginate\",\n\t\t\t\ttable,\n\t\t\t\torder,\n\t\t\t\tpagination\n\t\t\t} : selectedRange === void 0 ? {\n\t\t\t\ttype: \"Paginate\",\n\t\t\t\ttable,\n\t\t\t\tindex: selectedIndex,\n\t\t\t\torder,\n\t\t\t\tpagination\n\t\t\t} : {\n\t\t\t\ttype: \"Paginate\",\n\t\t\t\ttable,\n\t\t\t\tindex: selectedIndex,\n\t\t\t\trange: selectedRange,\n\t\t\t\torder,\n\t\t\t\tpagination\n\t\t\t}).pipe(Effect.map((response) => expectResponse(response, \"Page\")), Effect.map(({ documents, nextCursor }) => ({\n\t\t\t\titems: documents.map((document) => decodeDocument(schema, table, document)),\n\t\t\t\tnextCursor\n\t\t\t})));\n\t\t};\n\t\tconst validateLimit = (count) => {\n\t\t\tif (!Number.isInteger(count) || count < 0 || count > 1e3) throw new Error(\"Query limits must be integers between 0 and 1000.\");\n\t\t\treturn count;\n\t\t};\n\t\treturn Object.freeze({\n\t\t\tindex: (name, buildRange) => {\n\t\t\t\tif (selectedIndex !== void 0) throw new Error(\"A query can select only one index.\");\n\t\t\t\tconst index = definition.indexes[name];\n\t\t\t\tif (index === void 0) throw new Error(`Unknown index '${name}' on table '${table}'.`);\n\t\t\t\tif (buildRange === void 0) return query(table, name, void 0, order);\n\t\t\t\tconst fields = [\n\t\t\t\t\t...index.fields,\n\t\t\t\t\t\"createdAt\",\n\t\t\t\t\t\"id\"\n\t\t\t\t];\n\t\t\t\tconst range = { equal: [] };\n\t\t\t\tlet position = 0;\n\t\t\t\tlet boundedField;\n\t\t\t\tconst expectField = (field) => {\n\t\t\t\t\tconst expected = fields[position];\n\t\t\t\t\tif (field !== expected) throw new Error(`Expected index field '${expected}', received '${field}'.`);\n\t\t\t\t};\n\t\t\t\tconst builder = {\n\t\t\t\t\teq: (field, value) => {\n\t\t\t\t\t\tif (boundedField !== void 0) throw new Error(\"Equality cannot follow an index bound.\");\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\trange.equal.push({\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value)\n\t\t\t\t\t\t});\n\t\t\t\t\t\tposition += 1;\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t},\n\t\t\t\t\tgt: (field, value) => {\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\tif (range.lower !== void 0) throw new Error(\"An index range has only one lower bound.\");\n\t\t\t\t\t\tboundedField = field;\n\t\t\t\t\t\trange.lower = {\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value),\n\t\t\t\t\t\t\tinclusive: false\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t},\n\t\t\t\t\tgte: (field, value) => {\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\tif (range.lower !== void 0) throw new Error(\"An index range has only one lower bound.\");\n\t\t\t\t\t\tboundedField = field;\n\t\t\t\t\t\trange.lower = {\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value),\n\t\t\t\t\t\t\tinclusive: true\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t},\n\t\t\t\t\tlt: (field, value) => {\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\tif (range.upper !== void 0) throw new Error(\"An index range has only one upper bound.\");\n\t\t\t\t\t\tboundedField = field;\n\t\t\t\t\t\trange.upper = {\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value),\n\t\t\t\t\t\t\tinclusive: false\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t},\n\t\t\t\t\tlte: (field, value) => {\n\t\t\t\t\t\texpectField(field);\n\t\t\t\t\t\tif (range.upper !== void 0) throw new Error(\"An index range has only one upper bound.\");\n\t\t\t\t\t\tboundedField = field;\n\t\t\t\t\t\trange.upper = {\n\t\t\t\t\t\t\tfield,\n\t\t\t\t\t\t\tvalue: encodeIndexValue(field, value),\n\t\t\t\t\t\t\tinclusive: true\n\t\t\t\t\t\t};\n\t\t\t\t\t\treturn builder;\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst built = buildRange(builder);\n\t\t\t\tif (!Predicate.isObject(built)) throw new Error(\"An index range callback must return its builder.\");\n\t\t\t\treturn query(table, name, range, order);\n\t\t\t},\n\t\t\torder: (direction) => query(table, selectedIndex, selectedRange, direction === \"asc\" ? \"Asc\" : \"Desc\"),\n\t\t\tcollect: () => resultFromEffect(execute()),\n\t\t\ttake: (count) => resultFromEffect(execute(validateLimit(count))),\n\t\t\tfirst: () => resultFromEffect(execute(1).pipe(Effect.map((documents) => documents[0]))),\n\t\t\tunique: () => resultFromEffect(execute(2).pipe(Effect.flatMap((documents) => documents.length > 1 ? Effect.die(/* @__PURE__ */ new Error(\"A unique database query matched more than one document.\")) : Effect.succeed(documents[0])))),\n\t\t\tpaginate: (options) => resultFromEffect(executePage(options))\n\t\t});\n\t};\n\treturn Object.freeze({\n\t\tfind: (table, id) => resultFromEffect(findEffect(table, id)),\n\t\tget: (table, id) => resultFromEffect(findEffect(table, id).pipe(Effect.flatMap((document) => document === void 0 ? Effect.fail(documentNotFound(table, id)) : Effect.succeed(document)))),\n\t\tquery: (table) => query(table)\n\t});\n};\nconst makeWriter = (schema, call) => {\n\tconst reader = makeReader(schema, call);\n\tconst complete = Effect.fn(\"Guest.completeWrite\")(function* (table, id, request) {\n\t\tif (expectResponse(yield* callHost(call, request), \"Completed\").found === false) return yield* Effect.fail(documentNotFound(table, id));\n\t});\n\tconst writer = {\n\t\t...reader,\n\t\tdelete: (table, id) => resultFromEffect(complete(table, id, {\n\t\t\ttype: \"Delete\",\n\t\t\ttable,\n\t\t\tid: GeneratedId.make(id)\n\t\t})),\n\t\tinsert: (table, value) => resultFromEffect(callHost(call, {\n\t\t\ttype: \"Insert\",\n\t\t\ttable,\n\t\t\tfields: encodeFields(schema, table, value)\n\t\t}).pipe(Effect.map((response) => expectResponse(response, \"Inserted\").id))),\n\t\tpatch: (table, id, value) => resultFromEffect(complete(table, id, {\n\t\t\ttype: \"Patch\",\n\t\t\ttable,\n\t\t\tid: GeneratedId.make(id),\n\t\t\tfields: encodePatchFields(schema, table, value)\n\t\t})),\n\t\treplace: (table, id, value) => resultFromEffect(complete(table, id, {\n\t\t\ttype: \"Replace\",\n\t\t\ttable,\n\t\t\tid: GeneratedId.make(id),\n\t\t\tfields: encodeFields(schema, table, value)\n\t\t}))\n\t};\n\treturn Object.freeze(writer);\n};\nconst encodeSuccess = Effect.fn(\"Guest.encodeSuccess\")(function* (definition, value) {\n\tif (definition.returns === void 0) {\n\t\tyield* Schema.encodeUnknownEffect(Schema.Undefined)(value);\n\t\treturn { type: \"Success\" };\n\t}\n\tconst encoded = yield* Schema.encodeUnknownEffect(Schema.toCodecJson(definition.returns))(value);\n\tconst files = runtimeFileOccurrencesOf(value);\n\tconst result = files.length === 0 ? {\n\t\ttype: \"Success\",\n\t\tvalue: encoded\n\t} : {\n\t\ttype: \"Success\",\n\t\tvalue: encoded,\n\t\tfiles\n\t};\n\tconst dates = datePathsOf(value);\n\treturn dates.length === 0 ? result : {\n\t\t...result,\n\t\tdates\n\t};\n});\nconst encodeFailure = Effect.fn(\"Guest.encodeFailure\")(function* (definition, error) {\n\tconst result = {\n\t\ttype: \"Failure\",\n\t\terror: yield* Schema.encodeUnknownEffect(Schema.toCodecJson(definition.errors ?? ErrorValueSchema))(error)\n\t};\n\tconst dates = datePathsOfObject(error);\n\treturn dates.length === 0 ? result : {\n\t\t...result,\n\t\tdates\n\t};\n});\nconst runGuest = Effect.fn(\"Guest.invoke\")(function* (definition, encodedArgs, call, rawEnvironment) {\n\tconst schema = getFunctionSchema(definition);\n\tif (schema === void 0) return yield* Effect.die(\"The function has no bound schema.\");\n\tconst environmentDefinition = getFunctionEnvironment(definition) ?? emptyEnv;\n\tconst environment = yield* decodeDefinedEnvironment(environmentDefinition, rawEnvironment).pipe(Effect.mapError(() => /* @__PURE__ */ new Error(\"The deployment environment is invalid.\")));\n\tconst decodedArgs = yield* Schema.decodeEffect(Schema.toCodecJson(guestCodec(Schema.Struct(definition.args ?? {}))))(encodedArgs).pipe(Effect.match({\n\t\tonFailure: () => ({ valid: false }),\n\t\tonSuccess: (value) => ({\n\t\t\tvalid: true,\n\t\t\tvalue\n\t\t})\n\t}));\n\tif (!decodedArgs.valid) return {\n\t\ttype: \"InvocationRejected\",\n\t\tcode: \"InvalidArguments\",\n\t\tmessage: \"The invocation arguments do not match the function definition.\"\n\t};\n\tconst args = yield* Schema.decodeUnknownEffect(Schema.ObjectKeyword)(decodedArgs.value);\n\tconst context = Object.freeze({\n\t\tdb: definition._tag === \"Query\" ? makeReader(schema, call) : makeWriter(schema, call),\n\t\tenv: environment,\n\t\tid: makeIdContext(callHost(call, { type: \"ReadId\" }).pipe(Effect.flatMap((response) => response.type === \"Identity\" ? Effect.succeed(response.user) : Effect.die(\"The ID response is invalid.\"))))\n\t});\n\treturn yield* Effect.gen(() => definition.handler(context, args)).pipe(Effect.matchEffect({\n\t\tonFailure: (error) => encodeFailure(definition, error),\n\t\tonSuccess: (value) => encodeSuccess(definition, value)\n\t}));\n});\nconst invoke = (definition, encodedArgs, call, rawEnvironment = {}) => Effect.runPromise(runGuest(definition, encodedArgs, call, rawEnvironment)).then((result) => Schema.encodeSync(Schema.fromJsonString(Schema.Json))(result));\nconst EvolutionRequest = Schema.Struct({\n\ttable: Schema.String,\n\tfields: Schema.JsonObject\n});\n/** Entry point for the isolated schema bundle. It has no host capabilities. */\nconst evolve = (schema, encodedRequest) => {\n\tconst request = Schema.decodeSync(Schema.fromJsonString(EvolutionRequest))(encodedRequest);\n\tconst definition = tableFor(schema, request.table);\n\ttry {\n\t\treturn JSON.stringify({\n\t\t\ttype: \"Success\",\n\t\t\tvalue: { fields: evolveStoredFields(definition.schema, request.fields) }\n\t\t});\n\t} catch {\n\t\treturn JSON.stringify({\n\t\t\ttype: \"Success\",\n\t\t\tvalue: { error: `Stored fields in '${request.table}' do not match the new schema or its conversion rules.` }\n\t\t});\n\t}\n};\n//#endregion\nexport { evolve, invoke };\n\n//# sourceMappingURL=guest.js.map"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { r as bindSchema$1 } from "../index-CrWg4Z0y.js";
1
+ import { r as bindSchema$1 } from "../index-DWU-7TIh.js";
2
2
  //#region src/internal/server.d.ts
3
3
  declare const bindSchema: typeof bindSchema$1;
4
4
  //#endregion
@@ -1,4 +1,4 @@
1
- import { n as bindSchema$1 } from "../schema-B9XxyRO8.js";
1
+ import { n as bindSchema$1 } from "../schema-DqogEydG.js";
2
2
  //#region src/internal/server.ts
3
3
  const bindSchema = bindSchema$1;
4
4
  //#endregion
@@ -1,2 +1,3 @@
1
- import { c as Id, l as SchemaDefinitionOf, o as Document, u as SchemaDefinitionTypeId } from "../index-CrWg4Z0y.js";
1
+ import { a as Id, c as SchemaDefinitionTypeId, n as Document, s as SchemaDefinitionOf } from "../types-C1iDP2Yf-BnkfBOQf.js";
2
+ import "../index-DWU-7TIh.js";
2
3
  export { type Document, type Id, type SchemaDefinitionOf, SchemaDefinitionTypeId };
@@ -1,2 +1,2 @@
1
- import { t as SchemaDefinitionTypeId } from "../schema-B9XxyRO8.js";
1
+ import { t as SchemaDefinitionTypeId } from "../schema-DqogEydG.js";
2
2
  export { SchemaDefinitionTypeId };
@@ -1,6 +1,39 @@
1
- import "./id-Cs82tq9Q-CK-maMgN.js";
2
- import { Schema } from "effect";
3
- //#region ../contracts/dist/descriptor-CxL_qKgP.d.ts
1
+ import { c as Result$1 } from "./id-BzFHf3Wo-DGPCjgrf.js";
2
+ import { Effect, Schema } from "effect";
3
+ //#region ../contracts/dist/id-W_I1iiJQ.d.ts
4
+ declare const UserId: Schema.brand<Schema.String, "ignotum/id/UserId">;
5
+ type UserId = typeof UserId.Type;
6
+ declare const User: Schema.Struct<{
7
+ readonly id: Schema.brand<Schema.String, "ignotum/id/UserId">;
8
+ readonly name: Schema.optional<Schema.String>;
9
+ readonly email: Schema.optional<Schema.String>;
10
+ readonly image: Schema.optional<Schema.String>;
11
+ }>;
12
+ type User = typeof User.Type;
13
+ declare const ProfileField: Schema.Literals<readonly ["name", "email", "image"]>;
14
+ type ProfileField = typeof ProfileField.Type;
15
+ declare const IdRequired: Schema.brand<Schema.Struct<{
16
+ readonly _tag: Schema.tag<"IdRequired">;
17
+ }>, "ignotum/error">;
18
+ type IdRequired = typeof IdRequired.Type;
19
+ interface IdContext {
20
+ readonly current: () => Result$1<User | null, never>;
21
+ readonly require: () => Result$1<User, IdRequired>;
22
+ }
23
+ declare const SessionOutcome: Schema.Literals<readonly ["SignedIn", "ProfileUpdated", "Cancelled"]>;
24
+ type SessionOutcome = typeof SessionOutcome.Type;
25
+ //#endregion
26
+ //#region ../contracts/dist/descriptor-DAHJJO3I.d.ts
27
+ //#region src/schema/evolution.d.ts
28
+ type Defaulted<Value extends Schema.Constraint> = Omit<Value, "~type.constructor.default"> & {
29
+ readonly "~type.constructor.default": "with-default";
30
+ };
31
+ interface ValueEvolution<Value extends Schema.Constraint> {
32
+ default(value: Value["Type"]): DescribedValue<Defaulted<Value>>;
33
+ renameFrom(name: string): DescribedValue<Value>;
34
+ from<Previous extends DescribedValue>(previous: Previous, convert: (value: Previous["Type"]) => Value["Type"]): DescribedValue<Value>;
35
+ }
36
+ //#endregion
4
37
  //#region src/schema/descriptor.d.ts
5
38
  interface DescriptorField {
6
39
  readonly name: string;
@@ -24,6 +57,8 @@ type ValueDescriptor = {
24
57
  } | {
25
58
  readonly type: "id";
26
59
  readonly table: string;
60
+ } | {
61
+ readonly type: "userId";
27
62
  } | {
28
63
  readonly type: "integer";
29
64
  } | {
@@ -64,12 +99,12 @@ declare const ValueDescriptorTypeId: unique symbol;
64
99
  interface ValueDescriptorCarrier {
65
100
  readonly [ValueDescriptorTypeId]: ValueDescriptor;
66
101
  }
67
- type DescribedValue<Value extends Schema.Constraint = Schema.Constraint> = Value & ValueDescriptorCarrier;
102
+ type DescribedValue<Value extends Schema.Constraint = Schema.Constraint> = Value & ValueDescriptorCarrier & ValueEvolution<Value>;
68
103
  type ValueFields = {
69
104
  readonly [fieldName: PropertyKey]: DescribedValue;
70
105
  };
71
106
  //#endregion
72
- //#region ../contracts/dist/pagination-D-R9NR61.d.ts
107
+ //#region ../contracts/dist/pagination-CpYCaRYD.d.ts
73
108
  //#region src/runtime/pagination.d.ts
74
109
  declare const PaginationCursor: Schema.brand<Schema.String, "ignotum/runtime/PaginationCursor">;
75
110
  type PaginationCursor = typeof PaginationCursor.Type;
@@ -83,5 +118,5 @@ interface PaginationPage<Item> {
83
118
  readonly nextCursor: PaginationCursor | null;
84
119
  }
85
120
  //#endregion
86
- export { ValueDescriptor as a, DescriptorField as i, PaginationPage as n, ValueDescriptorCarrier as o, DescribedValue as r, ValueFields as s, PaginationOptions as t };
87
- //# sourceMappingURL=pagination-D-R9NR61-CpIoHFoI.d.ts.map
121
+ export { ValueDescriptor as a, IdContext as c, User as d, UserId as f, DescriptorField as i, ProfileField as l, PaginationPage as n, ValueDescriptorCarrier as o, DescribedValue as r, ValueFields as s, PaginationOptions as t, SessionOutcome as u };
122
+ //# sourceMappingURL=pagination-CpYCaRYD-C2Rpp4Cw.d.ts.map
@@ -0,0 +1 @@
1
+ import "./pagination-CpYCaRYD-C2Rpp4Cw.js";
@@ -0,0 +1 @@
1
+ import "./id-BzFHf3Wo-DGPCjgrf.js";