ignotum 0.0.2 → 0.0.3

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.
@@ -1,5 +1,5 @@
1
1
  import { n as ErrorBrand, r as ErrorValue, s as Result, t as DocumentNotFoundValue } from "./result-C1ZdsM6Y.js";
2
- import { Brand, Effect, Schema } from "effect";
2
+ import { Brand, Effect, Schema, Struct } from "effect";
3
3
  //#region ../contracts/dist/id-BD_sn1pR.d.ts
4
4
  declare const GeneratedId: Schema.brand<Schema.String, "ignotum/id">;
5
5
  type GeneratedId = typeof GeneratedId.Type;
@@ -19,7 +19,7 @@ interface TableDefinitionLike {
19
19
  interface TablesLike {
20
20
  readonly [tableName: string]: TableDefinitionLike;
21
21
  }
22
- type TableNameOf$1<Definition extends TablesLike> = keyof Definition & string;
22
+ type TableNameOf$2<Definition extends TablesLike> = keyof Definition & string;
23
23
  interface SystemFields<TableName extends string> {
24
24
  readonly id: Id<TableName>;
25
25
  readonly createdAt: Date;
@@ -27,7 +27,7 @@ interface SystemFields<TableName extends string> {
27
27
  }
28
28
  type DocumentFields<TableName extends string, Table extends TableDefinitionLike> = SystemFields<TableName> & Schema.Struct.Type<Table["fields"]>;
29
29
  /** The complete document returned for a table, including Ignotum system fields. */
30
- type Document<Definition extends TablesLike, TableName extends TableNameOf$1<Definition>> = { readonly [FieldName in keyof DocumentFields<TableName, Definition[TableName]>]: DocumentFields<TableName, Definition[TableName]>[FieldName]; };
30
+ type Document<Definition extends TablesLike, TableName extends TableNameOf$2<Definition>> = { readonly [FieldName in keyof DocumentFields<TableName, Definition[TableName]>]: DocumentFields<TableName, Definition[TableName]>[FieldName]; };
31
31
  //#endregion
32
32
  //#region ../contracts/dist/schema/values.d.ts
33
33
  //#region src/schema/values.d.ts
@@ -46,12 +46,28 @@ type WithUnresolvedReferences<Value, TableName extends string> = [TableName] ext
46
46
  type PreserveIdMetadata<Value, Source> = WithUnresolvedReferences<WithIdTargets<Value, IdTargetsOf<Source>>, UnresolvedReferencesOf<Source>>;
47
47
  type IdDefinition<TableName extends string> = Schema.brand<typeof GeneratedId, `ignotum/id/${TableName}`> & IdTargets<TableName>;
48
48
  type ReferenceDefinition<TableName extends string> = IdDefinition<TableName> & UnresolvedReferences<TableName>;
49
+ type AddedFieldValidation<Fields, AddedFields> = Extract<keyof AddedFields, keyof Fields> extends never ? readonly [] : readonly [invalidFields: never];
50
+ type OverriddenFieldValidation<Fields, OverriddenFields> = Exclude<keyof OverriddenFields, keyof Fields> extends never ? readonly [] : readonly [invalidFields: never];
51
+ type PartialFields<Fields extends Schema.Struct.Fields> = { readonly [FieldName in keyof Fields]: Fields[FieldName] extends Schema.Constraint ? PreserveIdMetadata<Schema.optional<Fields[FieldName]>, Fields[FieldName]> : never; };
52
+ interface FixedObjectValidator<Fields extends Schema.Struct.Fields> extends Schema.Struct<Fields> {
53
+ readonly pick: <const Keys extends ReadonlyArray<keyof Fields>>(...keys: Keys) => ObjectDefinition<Pick<Fields, Keys[number]>>;
54
+ readonly omit: <const Keys extends ReadonlyArray<keyof Fields>>(...keys: Keys) => ObjectDefinition<Omit<Fields, Keys[number]>>;
55
+ readonly extend: <const AddedFields extends Schema.Struct.Fields>(fields: AddedFields, ...validation: AddedFieldValidation<Fields, AddedFields>) => ObjectDefinition<Struct.Assign<Fields, AddedFields>>;
56
+ readonly override: <const OverriddenFields extends Partial<Record<keyof Fields, Schema.Constraint>>>(fields: OverriddenFields, ...validation: OverriddenFieldValidation<Fields, OverriddenFields>) => ObjectDefinition<Struct.Assign<Fields, OverriddenFields>>;
57
+ readonly partial: () => ObjectDefinition<PartialFields<Fields>>;
58
+ }
59
+ type ObjectDefinition<Fields extends Schema.Struct.Fields> = PreserveIdMetadata<FixedObjectValidator<Fields>, Fields[keyof Fields]>;
60
+ type ResolvedFields<Fields extends Schema.Struct.Fields> = { readonly [FieldName in keyof Fields]: Omit<Fields[FieldName], typeof UnresolvedReferencesTypeId>; };
49
61
  type LiteralValue = string | number | boolean;
50
62
  interface TableDefinition<Fields extends Schema.Struct.Fields> {
51
63
  readonly _tag: "Table";
52
64
  readonly fields: Fields;
53
65
  readonly schema: Schema.Struct<Fields>;
54
66
  }
67
+ interface TableDefinitions {
68
+ readonly [tableName: string]: TableDefinition<Schema.Struct.Fields>;
69
+ }
70
+ type TableNameOf$1<Definition extends TableDefinitions> = keyof Definition & string;
55
71
  type ReservedFieldName = "createdAt" | "id" | "updatedAt";
56
72
  type ReservedErrorTagName = "InternalServerError";
57
73
  declare const ReservedFieldTypeId: unique symbol;
@@ -78,7 +94,7 @@ declare const literal: <const Value extends LiteralValue>(value: Value) => Schem
78
94
  declare const literals: <const Members extends readonly [LiteralValue, LiteralValue, ...ReadonlyArray<LiteralValue>]>(...members: Members) => Schema.Literals<Members>;
79
95
  declare const id: <const TableName extends string>(tableName: TableName) => ReferenceDefinition<TableName>;
80
96
  declare const array: <Value extends Schema.Constraint>(value: Value) => PreserveIdMetadata<Schema.$Array<Value>, Value>;
81
- declare const object: <const Fields extends Schema.Struct.Fields>(fields: Fields) => PreserveIdMetadata<Schema.Struct<Fields>, Fields[keyof Fields]>;
97
+ declare const object: <const Fields extends Schema.Struct.Fields>(fields: Fields) => ObjectDefinition<Fields>;
82
98
  declare const optional: <Value extends Schema.Constraint>(value: Value) => PreserveIdMetadata<Schema.optional<Value>, Value>;
83
99
  declare const nullable: <Value extends Schema.Constraint>(value: Value) => PreserveIdMetadata<Schema.NullOr<Value>, Value>;
84
100
  declare const record: <Value extends Schema.Constraint>(value: Value) => PreserveIdMetadata<Schema.$Record<Schema.String, Value>, Value>;
@@ -103,8 +119,14 @@ declare const values: {
103
119
  string: typeof string;
104
120
  union: typeof union;
105
121
  };
106
- type BoundValues<TableName extends string> = Omit<typeof values, "id"> & {
107
- readonly id: <const Target extends TableName>(tableName: Target) => IdDefinition<Target>;
122
+ type DocumentDefinition<Definition extends TableDefinitions, TableName extends TableNameOf$1<Definition>> = ObjectDefinition<Struct.Assign<ResolvedFields<Definition[TableName]["fields"]>, {
123
+ readonly id: IdDefinition<TableName>;
124
+ readonly createdAt: typeof Schema.DateFromMillis;
125
+ readonly updatedAt: typeof Schema.DateFromMillis;
126
+ }>>;
127
+ type BoundValues<Definition extends TableDefinitions> = Omit<typeof values, "id"> & {
128
+ readonly doc: <const TableName extends TableNameOf$1<Definition>>(tableName: TableName) => DocumentDefinition<Definition, TableName>;
129
+ readonly id: <const TableName extends TableNameOf$1<Definition>>(tableName: TableName) => IdDefinition<TableName>;
108
130
  };
109
131
  //#endregion
110
132
  //#region ../contracts/dist/schema/index.d.ts
@@ -241,9 +263,9 @@ interface FunctionBuilders<Definition extends Tables> {
241
263
  readonly mutation: DefineFunction<"Mutation", Definition>;
242
264
  }
243
265
  interface SchemaBindings<Definition extends Tables> extends FunctionBuilders<Definition> {
244
- readonly values: BoundValues<TableNameOf<Definition>>;
266
+ readonly values: BoundValues<Definition>;
245
267
  }
246
268
  declare const bindSchema: <const Definition extends Tables>(schema: DefinedSchema<Definition>) => SchemaBindings<Definition>;
247
269
  //#endregion
248
270
  export { Document as a, SchemaDefinitionTypeId as c, defineSchema as i, SchemaAuthoring as n, Id as o, bindSchema as r, SchemaDefinitionOf as s, DefinedSchema as t };
249
- //# sourceMappingURL=index-BgWROoyk.d.ts.map
271
+ //# sourceMappingURL=index-C6KO3ZdI.d.ts.map
@@ -1,4 +1,4 @@
1
- import { r as bindSchema$1 } from "../index-BgWROoyk.js";
1
+ import { r as bindSchema$1 } from "../index-C6KO3ZdI.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-CNEVLF7D.js";
1
+ import { n as bindSchema$1 } from "../schema-wiFI7rgx.js";
2
2
  //#region src/internal/server.ts
3
3
  const bindSchema = bindSchema$1;
4
4
  //#endregion
@@ -1,2 +1,2 @@
1
- import { a as Document, c as SchemaDefinitionTypeId, o as Id, s as SchemaDefinitionOf } from "../index-BgWROoyk.js";
1
+ import { a as Document, c as SchemaDefinitionTypeId, o as Id, s as SchemaDefinitionOf } from "../index-C6KO3ZdI.js";
2
2
  export { type Document, type Id, type SchemaDefinitionOf, SchemaDefinitionTypeId };
@@ -1,2 +1,2 @@
1
- import { t as SchemaDefinitionTypeId } from "../schema-CNEVLF7D.js";
1
+ import { t as SchemaDefinitionTypeId } from "../schema-wiFI7rgx.js";
2
2
  export { SchemaDefinitionTypeId };
@@ -1,5 +1,5 @@
1
1
  import { t as ErrorBrand } from "./result-B2W-z2wG.js";
2
- import { Schema } from "effect";
2
+ import { Schema, Struct } from "effect";
3
3
  //#region ../contracts/dist/runtime/id.js
4
4
  const GeneratedId = Schema.String.check(Schema.isPattern(/^[0-9a-z]{24}$/)).pipe(Schema.brand("ignotum/id"));
5
5
  //#endregion
@@ -38,7 +38,40 @@ const makeIdSchema = (tableName) => {
38
38
  };
39
39
  const id = (tableName) => makeIdSchema(tableName);
40
40
  const array = (value) => Schema.Array(value);
41
- const object = (fields) => Schema.Struct(fields);
41
+ const assertFieldsExist = (fields, keys, operation) => {
42
+ for (const key of keys) if (!Object.hasOwn(fields, key)) throw new Error(`Cannot ${operation} unknown field '${String(key)}'.`);
43
+ };
44
+ const fixedObject = (fields) => {
45
+ const pick = (...keys) => {
46
+ assertFieldsExist(fields, keys, "pick");
47
+ return fixedObject(Struct.pick(fields, keys));
48
+ };
49
+ const omit = (...keys) => {
50
+ assertFieldsExist(fields, keys, "omit");
51
+ return fixedObject(Struct.omit(fields, keys));
52
+ };
53
+ const extend = (addedFields, ..._validation) => {
54
+ for (const key of Reflect.ownKeys(addedFields)) if (Object.hasOwn(fields, key)) throw new Error(`Cannot extend existing field '${String(key)}'.`);
55
+ return fixedObject(Struct.assign(fields, addedFields));
56
+ };
57
+ const override = (overriddenFields, ..._validation) => {
58
+ assertFieldsExist(fields, Reflect.ownKeys(overriddenFields), "override");
59
+ return fixedObject(Struct.assign(fields, overriddenFields));
60
+ };
61
+ const partial = () => {
62
+ const partialFields = Struct.map(fields, Schema.optional);
63
+ return fixedObject(partialFields);
64
+ };
65
+ const schema = Schema.Struct(fields);
66
+ return Object.assign(schema, {
67
+ extend,
68
+ omit,
69
+ override,
70
+ partial,
71
+ pick
72
+ });
73
+ };
74
+ const object = (fields) => fixedObject(fields);
42
75
  const optional = (value) => Schema.optional(value);
43
76
  const nullable = (value) => Schema.NullOr(value);
44
77
  const record = (value) => Schema.Record(Schema.String, value);
@@ -72,7 +105,25 @@ const values = {
72
105
  string,
73
106
  union
74
107
  };
75
- const bindValues = () => values;
108
+ const bindValues = (definition) => {
109
+ const boundId = (tableName) => makeIdSchema(tableName);
110
+ const doc = (tableName) => {
111
+ const tableDefinition = definition[tableName];
112
+ if (tableDefinition === void 0) throw new Error(`Unknown table '${tableName}'.`);
113
+ const tableFields = tableDefinition.fields;
114
+ const systemFields = {
115
+ id: boundId(tableName),
116
+ createdAt: Schema.DateFromMillis,
117
+ updatedAt: Schema.DateFromMillis
118
+ };
119
+ return fixedObject(Struct.assign(tableFields, systemFields));
120
+ };
121
+ return {
122
+ ...values,
123
+ doc,
124
+ id: boundId
125
+ };
126
+ };
76
127
  //#endregion
77
128
  //#region ../contracts/dist/runtime/schema.js
78
129
  const FunctionSchemaTypeId = Symbol.for("ignotum/runtime/schema/FunctionSchema");
@@ -107,10 +158,10 @@ const makeFunctionBuilders = (schema) => ({
107
158
  query: makeFunctionBuilder(schema, "Query")
108
159
  });
109
160
  const bindSchema = (schema) => ({
110
- values: bindValues(),
161
+ values: bindValues(schema[SchemaDefinitionTypeId]),
111
162
  ...makeFunctionBuilders(schema)
112
163
  });
113
164
  //#endregion
114
165
  export { bindSchema as n, defineSchema as r, SchemaDefinitionTypeId as t };
115
166
 
116
- //# sourceMappingURL=schema-CNEVLF7D.js.map
167
+ //# sourceMappingURL=schema-wiFI7rgx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema-wiFI7rgx.js","names":[],"sources":["../../../contracts/dist/runtime/id.js","../../../contracts/dist/schema/values.js","../../../contracts/dist/runtime/schema.js","../../../contracts/dist/schema/index.js"],"sourcesContent":["import { Schema } from \"effect\";\n//#region src/runtime/id.ts\nconst IdAlphabet = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nconst IdLength = 24;\nconst GeneratedId = Schema.String.check(Schema.isPattern(/^[0-9a-z]{24}$/)).pipe(Schema.brand(\"ignotum/id\"));\n//#endregion\nexport { GeneratedId, IdAlphabet, IdLength };\n\n//# sourceMappingURL=id.js.map","import { GeneratedId } from \"../runtime/id.js\";\nimport { ErrorBrand } from \"../runtime/result.js\";\nimport { Schema, Struct } from \"effect\";\n//#region src/schema/values.ts\nconst LiteralValueSchema = Schema.Union([\n\tSchema.String,\n\tSchema.Finite,\n\tSchema.Boolean\n]);\nconst table = (fields) => {\n\tconst tableFields = fields;\n\treturn {\n\t\t_tag: \"Table\",\n\t\tfields: tableFields,\n\t\tschema: Schema.Struct(tableFields)\n\t};\n};\nconst string = () => Schema.String;\nconst number = () => Schema.Finite;\nconst integer = () => Schema.Int;\nconst boolean = () => Schema.Boolean;\nconst date = () => Schema.DateFromMillis;\nconst never = () => Schema.Never;\nconst nullValue = () => Schema.Null;\nconst literal = (value) => {\n\tSchema.decodeSync(LiteralValueSchema)(value);\n\treturn Schema.Literal(value);\n};\nconst literals = (...members) => {\n\tSchema.decodeSync(Schema.Array(LiteralValueSchema))(members);\n\treturn Schema.Literals(members);\n};\nconst makeIdSchema = (tableName) => {\n\tconst identifier = `ignotum/id/${tableName}`;\n\treturn GeneratedId.pipe(Schema.brand(identifier), Schema.annotate({ \"ignotum/table\": tableName }));\n};\nconst id = (tableName) => makeIdSchema(tableName);\nconst array = (value) => Schema.Array(value);\nconst assertFieldsExist = (fields, keys, operation) => {\n\tfor (const key of keys) if (!Object.hasOwn(fields, key)) throw new Error(`Cannot ${operation} unknown field '${String(key)}'.`);\n};\nconst fixedObject = (fields) => {\n\tconst pick = (...keys) => {\n\t\tassertFieldsExist(fields, keys, \"pick\");\n\t\treturn fixedObject(Struct.pick(fields, keys));\n\t};\n\tconst omit = (...keys) => {\n\t\tassertFieldsExist(fields, keys, \"omit\");\n\t\treturn fixedObject(Struct.omit(fields, keys));\n\t};\n\tconst extend = (addedFields, ..._validation) => {\n\t\tfor (const key of Reflect.ownKeys(addedFields)) if (Object.hasOwn(fields, key)) throw new Error(`Cannot extend existing field '${String(key)}'.`);\n\t\treturn fixedObject(Struct.assign(fields, addedFields));\n\t};\n\tconst override = (overriddenFields, ..._validation) => {\n\t\tassertFieldsExist(fields, Reflect.ownKeys(overriddenFields), \"override\");\n\t\treturn fixedObject(Struct.assign(fields, overriddenFields));\n\t};\n\tconst partial = () => {\n\t\tconst partialFields = Struct.map(fields, Schema.optional);\n\t\treturn fixedObject(partialFields);\n\t};\n\tconst schema = Schema.Struct(fields);\n\treturn Object.assign(schema, {\n\t\textend,\n\t\tomit,\n\t\toverride,\n\t\tpartial,\n\t\tpick\n\t});\n};\nconst object = (fields) => fixedObject(fields);\nconst optional = (value) => Schema.optional(value);\nconst nullable = (value) => Schema.NullOr(value);\nconst record = (value) => Schema.Record(Schema.String, value);\nconst union = (...members) => Schema.Union(members);\nconst error = (tag, fields) => {\n\tif (tag === \"InternalServerError\") throw new Error(\"The error tag 'InternalServerError' is reserved by Ignotum.\");\n\tconst errorFields = { ...fields };\n\tReflect.deleteProperty(errorFields, \"_tag\");\n\tconst schema = Schema.TaggedStruct(tag, errorFields).pipe(Schema.brand(ErrorBrand));\n\tconst make = (input) => schema.make(input);\n\tconst definition = Object.assign(make, schema);\n\tObject.setPrototypeOf(definition, Object.getPrototypeOf(schema));\n\treturn definition;\n};\nconst values = {\n\tarray,\n\tboolean,\n\tdate,\n\terror,\n\tid,\n\tinteger,\n\tliteral,\n\tliterals,\n\tnever,\n\tnull: nullValue,\n\tnullable,\n\tnumber,\n\tobject,\n\toptional,\n\trecord,\n\tstring,\n\tunion\n};\nconst bindValues = (definition) => {\n\tconst boundId = (tableName) => makeIdSchema(tableName);\n\tconst doc = (tableName) => {\n\t\tconst tableDefinition = definition[tableName];\n\t\tif (tableDefinition === void 0) throw new Error(`Unknown table '${tableName}'.`);\n\t\tconst tableFields = tableDefinition.fields;\n\t\tconst systemFields = {\n\t\t\tid: boundId(tableName),\n\t\t\tcreatedAt: Schema.DateFromMillis,\n\t\t\tupdatedAt: Schema.DateFromMillis\n\t\t};\n\t\treturn fixedObject(Struct.assign(tableFields, systemFields));\n\t};\n\treturn {\n\t\t...values,\n\t\tdoc,\n\t\tid: boundId\n\t};\n};\n//#endregion\nexport { bindValues, table, values };\n\n//# sourceMappingURL=values.js.map","//#region src/runtime/schema.ts\nconst FunctionSchemaTypeId = Symbol.for(\"ignotum/runtime/schema/FunctionSchema\");\nconst attachFunctionSchema = (schema) => (definition) => {\n\tObject.defineProperty(definition, FunctionSchemaTypeId, {\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\tvalue: schema,\n\t\twritable: false\n\t});\n\treturn definition;\n};\nconst getFunctionSchema = (value) => value[FunctionSchemaTypeId];\n//#endregion\nexport { FunctionSchemaTypeId, attachFunctionSchema, getFunctionSchema };\n\n//# sourceMappingURL=schema.js.map","import { Result } from \"../runtime/result.js\";\nimport { bindValues, table, values } from \"./values.js\";\nimport { attachFunctionSchema } from \"../runtime/schema.js\";\n//#region src/schema/types.ts\nconst SchemaDefinitionTypeId = Symbol.for(\"ignotum/schema/SchemaDefinition\");\n//#endregion\n//#region src/schema/definition.ts\nconst defineSchema = (define) => ({\n\t_tag: \"Schema\",\n\t[SchemaDefinitionTypeId]: define({\n\t\ttable,\n\t\tvalues\n\t})\n});\n//#endregion\n//#region src/schema/server.ts\nconst makeFunctionBuilder = (schema, kind) => {\n\tconst define = (definition) => attachFunctionSchema(schema)({\n\t\t_tag: kind,\n\t\t...definition\n\t});\n\treturn define;\n};\nconst makeFunctionBuilders = (schema) => ({\n\tmutation: makeFunctionBuilder(schema, \"Mutation\"),\n\tquery: makeFunctionBuilder(schema, \"Query\")\n});\nconst bindSchema = (schema) => ({\n\tvalues: bindValues(schema[SchemaDefinitionTypeId]),\n\t...makeFunctionBuilders(schema)\n});\n//#endregion\nexport { Result, SchemaDefinitionTypeId, bindSchema, bindValues, defineSchema, table, values };\n\n//# sourceMappingURL=index.js.map"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { r as ErrorValue, s as Result$1 } from "./result-C1ZdsM6Y.js";
2
- import { i as defineSchema$1, n as SchemaAuthoring, t as DefinedSchema } from "./index-BgWROoyk.js";
2
+ import { i as defineSchema$1, n as SchemaAuthoring, t as DefinedSchema } from "./index-C6KO3ZdI.js";
3
3
  //#region src/server/index.d.ts
4
4
  declare const Result: typeof Result$1;
5
5
  type Result<Success, Failure extends ErrorValue> = Result$1<Success, Failure>;
@@ -1,5 +1,5 @@
1
1
  import { n as Result$1 } from "./result-B2W-z2wG.js";
2
- import { r as defineSchema$1 } from "./schema-CNEVLF7D.js";
2
+ import { r as defineSchema$1 } from "./schema-wiFI7rgx.js";
3
3
  //#region src/server/index.ts
4
4
  const Result = Result$1;
5
5
  const defineSchema = defineSchema$1;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ignotum",
3
- "version": "0.0.2",
3
+ "version": "0.0.3",
4
4
  "description": "Ignotum is an opinionated TypeScript application cloud.",
5
5
  "author": "Johannes Schießl",
6
6
  "repository": {
@@ -59,8 +59,6 @@
59
59
  "registry": "https://registry.npmjs.org/"
60
60
  },
61
61
  "dependencies": {
62
- "@effect/platform-node": "4.0.0-rc.111",
63
- "@effect/sql-sqlite-node": "4.0.0-rc.111",
64
62
  "@prefresh/vite": "3.0.1",
65
63
  "@tailwindcss/vite": "4.3.3",
66
64
  "effect": "4.0.0-rc.111",
@@ -70,6 +68,8 @@
70
68
  "vite": "8.2.2"
71
69
  },
72
70
  "devDependencies": {
71
+ "@effect/platform-node": "4.0.0-rc.111",
72
+ "@effect/sql-sqlite-node": "4.0.0-rc.111",
73
73
  "@ignotum/contracts": "0.0.0",
74
74
  "@ignotum/runtime": "0.0.0"
75
75
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"schema-CNEVLF7D.js","names":[],"sources":["../../../contracts/dist/runtime/id.js","../../../contracts/dist/schema/values.js","../../../contracts/dist/runtime/schema.js","../../../contracts/dist/schema/index.js"],"sourcesContent":["import { Schema } from \"effect\";\n//#region src/runtime/id.ts\nconst IdAlphabet = \"0123456789abcdefghijklmnopqrstuvwxyz\";\nconst IdLength = 24;\nconst GeneratedId = Schema.String.check(Schema.isPattern(/^[0-9a-z]{24}$/)).pipe(Schema.brand(\"ignotum/id\"));\n//#endregion\nexport { GeneratedId, IdAlphabet, IdLength };\n\n//# sourceMappingURL=id.js.map","import { GeneratedId } from \"../runtime/id.js\";\nimport { ErrorBrand } from \"../runtime/result.js\";\nimport { Schema } from \"effect\";\n//#region src/schema/values.ts\nconst LiteralValueSchema = Schema.Union([\n\tSchema.String,\n\tSchema.Finite,\n\tSchema.Boolean\n]);\nconst table = (fields) => {\n\tconst tableFields = fields;\n\treturn {\n\t\t_tag: \"Table\",\n\t\tfields: tableFields,\n\t\tschema: Schema.Struct(tableFields)\n\t};\n};\nconst string = () => Schema.String;\nconst number = () => Schema.Finite;\nconst integer = () => Schema.Int;\nconst boolean = () => Schema.Boolean;\nconst date = () => Schema.DateFromMillis;\nconst never = () => Schema.Never;\nconst nullValue = () => Schema.Null;\nconst literal = (value) => {\n\tSchema.decodeSync(LiteralValueSchema)(value);\n\treturn Schema.Literal(value);\n};\nconst literals = (...members) => {\n\tSchema.decodeSync(Schema.Array(LiteralValueSchema))(members);\n\treturn Schema.Literals(members);\n};\nconst makeIdSchema = (tableName) => {\n\tconst identifier = `ignotum/id/${tableName}`;\n\treturn GeneratedId.pipe(Schema.brand(identifier), Schema.annotate({ \"ignotum/table\": tableName }));\n};\nconst id = (tableName) => makeIdSchema(tableName);\nconst array = (value) => Schema.Array(value);\nconst object = (fields) => Schema.Struct(fields);\nconst optional = (value) => Schema.optional(value);\nconst nullable = (value) => Schema.NullOr(value);\nconst record = (value) => Schema.Record(Schema.String, value);\nconst union = (...members) => Schema.Union(members);\nconst error = (tag, fields) => {\n\tif (tag === \"InternalServerError\") throw new Error(\"The error tag 'InternalServerError' is reserved by Ignotum.\");\n\tconst errorFields = { ...fields };\n\tReflect.deleteProperty(errorFields, \"_tag\");\n\tconst schema = Schema.TaggedStruct(tag, errorFields).pipe(Schema.brand(ErrorBrand));\n\tconst make = (input) => schema.make(input);\n\tconst definition = Object.assign(make, schema);\n\tObject.setPrototypeOf(definition, Object.getPrototypeOf(schema));\n\treturn definition;\n};\nconst values = {\n\tarray,\n\tboolean,\n\tdate,\n\terror,\n\tid,\n\tinteger,\n\tliteral,\n\tliterals,\n\tnever,\n\tnull: nullValue,\n\tnullable,\n\tnumber,\n\tobject,\n\toptional,\n\trecord,\n\tstring,\n\tunion\n};\nconst bindValues = () => values;\n//#endregion\nexport { bindValues, table, values };\n\n//# sourceMappingURL=values.js.map","//#region src/runtime/schema.ts\nconst FunctionSchemaTypeId = Symbol.for(\"ignotum/runtime/schema/FunctionSchema\");\nconst attachFunctionSchema = (schema) => (definition) => {\n\tObject.defineProperty(definition, FunctionSchemaTypeId, {\n\t\tconfigurable: false,\n\t\tenumerable: false,\n\t\tvalue: schema,\n\t\twritable: false\n\t});\n\treturn definition;\n};\nconst getFunctionSchema = (value) => value[FunctionSchemaTypeId];\n//#endregion\nexport { FunctionSchemaTypeId, attachFunctionSchema, getFunctionSchema };\n\n//# sourceMappingURL=schema.js.map","import { Result } from \"../runtime/result.js\";\nimport { bindValues, table, values } from \"./values.js\";\nimport { attachFunctionSchema } from \"../runtime/schema.js\";\n//#region src/schema/types.ts\nconst SchemaDefinitionTypeId = Symbol.for(\"ignotum/schema/SchemaDefinition\");\n//#endregion\n//#region src/schema/definition.ts\nconst defineSchema = (define) => ({\n\t_tag: \"Schema\",\n\t[SchemaDefinitionTypeId]: define({\n\t\ttable,\n\t\tvalues\n\t})\n});\n//#endregion\n//#region src/schema/server.ts\nconst makeFunctionBuilder = (schema, kind) => {\n\tconst define = (definition) => attachFunctionSchema(schema)({\n\t\t_tag: kind,\n\t\t...definition\n\t});\n\treturn define;\n};\nconst makeFunctionBuilders = (schema) => ({\n\tmutation: makeFunctionBuilder(schema, \"Mutation\"),\n\tquery: makeFunctionBuilder(schema, \"Query\")\n});\nconst bindSchema = (schema) => ({\n\tvalues: bindValues(),\n\t...makeFunctionBuilders(schema)\n});\n//#endregion\nexport { Result, SchemaDefinitionTypeId, bindSchema, bindValues, defineSchema, table, values };\n\n//# sourceMappingURL=index.js.map"],"mappings":";;;AAIA,MAAM,cAAc,OAAO,OAAO,MAAM,OAAO,UAAU,gBAAgB,CAAC,CAAC,CAAC,KAAK,OAAO,MAAM,YAAY,CAAC;;;ACA3G,MAAM,qBAAqB,OAAO,MAAM;CACvC,OAAO;CACP,OAAO;CACP,OAAO;AACR,CAAC;AACD,MAAM,SAAS,WAAW;CACzB,MAAM,cAAc;CACpB,OAAO;EACN,MAAM;EACN,QAAQ;EACR,QAAQ,OAAO,OAAO,WAAW;CAClC;AACD;AACA,MAAM,eAAe,OAAO;AAC5B,MAAM,eAAe,OAAO;AAC5B,MAAM,gBAAgB,OAAO;AAC7B,MAAM,gBAAgB,OAAO;AAC7B,MAAM,aAAa,OAAO;AAC1B,MAAM,cAAc,OAAO;AAC3B,MAAM,kBAAkB,OAAO;AAC/B,MAAM,WAAW,UAAU;CAC1B,OAAO,WAAW,kBAAkB,CAAC,CAAC,KAAK;CAC3C,OAAO,OAAO,QAAQ,KAAK;AAC5B;AACA,MAAM,YAAY,GAAG,YAAY;CAChC,OAAO,WAAW,OAAO,MAAM,kBAAkB,CAAC,CAAC,CAAC,OAAO;CAC3D,OAAO,OAAO,SAAS,OAAO;AAC/B;AACA,MAAM,gBAAgB,cAAc;CACnC,MAAM,aAAa,cAAc;CACjC,OAAO,YAAY,KAAK,OAAO,MAAM,UAAU,GAAG,OAAO,SAAS,EAAE,iBAAiB,UAAU,CAAC,CAAC;AAClG;AACA,MAAM,MAAM,cAAc,aAAa,SAAS;AAChD,MAAM,SAAS,UAAU,OAAO,MAAM,KAAK;AAC3C,MAAM,UAAU,WAAW,OAAO,OAAO,MAAM;AAC/C,MAAM,YAAY,UAAU,OAAO,SAAS,KAAK;AACjD,MAAM,YAAY,UAAU,OAAO,OAAO,KAAK;AAC/C,MAAM,UAAU,UAAU,OAAO,OAAO,OAAO,QAAQ,KAAK;AAC5D,MAAM,SAAS,GAAG,YAAY,OAAO,MAAM,OAAO;AAClD,MAAM,SAAS,KAAK,WAAW;CAC9B,IAAI,QAAQ,uBAAuB,MAAM,IAAI,MAAM,6DAA6D;CAChH,MAAM,cAAc,EAAE,GAAG,OAAO;CAChC,QAAQ,eAAe,aAAa,MAAM;CAC1C,MAAM,SAAS,OAAO,aAAa,KAAK,WAAW,CAAC,CAAC,KAAK,OAAO,MAAM,UAAU,CAAC;CAClF,MAAM,QAAQ,UAAU,OAAO,KAAK,KAAK;CACzC,MAAM,aAAa,OAAO,OAAO,MAAM,MAAM;CAC7C,OAAO,eAAe,YAAY,OAAO,eAAe,MAAM,CAAC;CAC/D,OAAO;AACR;AACA,MAAM,SAAS;CACd;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA,MAAM;CACN;CACA;CACA;CACA;CACA;CACA;CACA;AACD;AACA,MAAM,mBAAmB;;;ACvEzB,MAAM,uBAAuB,OAAO,IAAI,uCAAuC;AAC/E,MAAM,wBAAwB,YAAY,eAAe;CACxD,OAAO,eAAe,YAAY,sBAAsB;EACvD,cAAc;EACd,YAAY;EACZ,OAAO;EACP,UAAU;CACX,CAAC;CACD,OAAO;AACR;;;ACNA,MAAM,yBAAyB,OAAO,IAAI,iCAAiC;AAG3E,MAAM,gBAAgB,YAAY;CACjC,MAAM;EACL,yBAAyB,OAAO;EAChC;EACA;CACD,CAAC;AACF;AAGA,MAAM,uBAAuB,QAAQ,SAAS;CAC7C,MAAM,UAAU,eAAe,qBAAqB,MAAM,CAAC,CAAC;EAC3D,MAAM;EACN,GAAG;CACJ,CAAC;CACD,OAAO;AACR;AACA,MAAM,wBAAwB,YAAY;CACzC,UAAU,oBAAoB,QAAQ,UAAU;CAChD,OAAO,oBAAoB,QAAQ,OAAO;AAC3C;AACA,MAAM,cAAc,YAAY;CAC/B,QAAQ,WAAW;CACnB,GAAG,qBAAqB,MAAM;AAC/B"}