@gettersethya/mira 0.1.0-alpha.13 → 0.1.0-alpha.16

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 (98) hide show
  1. package/README.md +2 -0
  2. package/dist/src/app/types.d.ts +1 -1
  3. package/dist/src/app/types.d.ts.map +1 -1
  4. package/dist/src/cache/cached-collection.d.ts +2 -1
  5. package/dist/src/cache/cached-collection.d.ts.map +1 -1
  6. package/dist/src/cache/cached-collection.js +5 -2
  7. package/dist/src/cache/cached-collection.js.map +1 -1
  8. package/dist/src/cache/ctx-key.d.ts +15 -0
  9. package/dist/src/cache/ctx-key.d.ts.map +1 -0
  10. package/dist/src/cache/ctx-key.js +37 -0
  11. package/dist/src/cache/ctx-key.js.map +1 -0
  12. package/dist/src/cache/index.d.ts +1 -0
  13. package/dist/src/cache/index.d.ts.map +1 -1
  14. package/dist/src/cache/index.js +1 -0
  15. package/dist/src/cache/index.js.map +1 -1
  16. package/dist/src/collection-service/collection-service.d.ts +3 -2
  17. package/dist/src/collection-service/collection-service.d.ts.map +1 -1
  18. package/dist/src/collection-service/collection-service.js +8 -4
  19. package/dist/src/collection-service/collection-service.js.map +1 -1
  20. package/dist/src/collection-service/decode.d.ts +3 -1
  21. package/dist/src/collection-service/decode.d.ts.map +1 -1
  22. package/dist/src/collection-service/decode.js +23 -1
  23. package/dist/src/collection-service/decode.js.map +1 -1
  24. package/dist/src/collection-service/where.d.ts +12 -0
  25. package/dist/src/collection-service/where.d.ts.map +1 -1
  26. package/dist/src/collection-service/where.js +32 -1
  27. package/dist/src/collection-service/where.js.map +1 -1
  28. package/dist/src/cron/cron-service.d.ts +2 -1
  29. package/dist/src/cron/cron-service.d.ts.map +1 -1
  30. package/dist/src/cron/cron-service.js +28 -19
  31. package/dist/src/cron/cron-service.js.map +1 -1
  32. package/dist/src/cron/persistence.d.ts +22 -0
  33. package/dist/src/cron/persistence.d.ts.map +1 -0
  34. package/dist/src/cron/persistence.js +48 -0
  35. package/dist/src/cron/persistence.js.map +1 -0
  36. package/dist/src/databases/sqlite.js +2 -2
  37. package/dist/src/databases/sqlite.js.map +1 -1
  38. package/dist/src/dialect/dialect-sqlite.d.ts +9 -0
  39. package/dist/src/dialect/dialect-sqlite.d.ts.map +1 -0
  40. package/dist/src/dialect/dialect-sqlite.js +109 -0
  41. package/dist/src/dialect/dialect-sqlite.js.map +1 -0
  42. package/dist/src/dialect/dialect.d.ts +26 -0
  43. package/dist/src/dialect/dialect.d.ts.map +1 -0
  44. package/dist/src/dialect/dialect.js +5 -0
  45. package/dist/src/dialect/dialect.js.map +1 -0
  46. package/dist/src/http/router.d.ts +2 -1
  47. package/dist/src/http/router.d.ts.map +1 -1
  48. package/dist/src/http/router.js +3 -2
  49. package/dist/src/http/router.js.map +1 -1
  50. package/dist/src/http/schema.d.ts.map +1 -1
  51. package/dist/src/http/schema.js +4 -1
  52. package/dist/src/http/schema.js.map +1 -1
  53. package/dist/src/migrator/index.d.ts +3 -3
  54. package/dist/src/migrator/index.d.ts.map +1 -1
  55. package/dist/src/migrator/index.js +2 -2
  56. package/dist/src/migrator/index.js.map +1 -1
  57. package/dist/src/migrator/migrator.d.ts +1 -1
  58. package/dist/src/migrator/migrator.d.ts.map +1 -1
  59. package/dist/src/migrator/migrator.js +1 -1
  60. package/dist/src/migrator/migrator.js.map +1 -1
  61. package/dist/src/telemetry/sqlite-logger.d.ts.map +1 -1
  62. package/dist/src/telemetry/sqlite-logger.js +15 -9
  63. package/dist/src/telemetry/sqlite-logger.js.map +1 -1
  64. package/dist/tests/app/app.test.js +30 -7
  65. package/dist/tests/app/app.test.js.map +1 -1
  66. package/dist/tests/cache/cached-collection.test.js +152 -2
  67. package/dist/tests/cache/cached-collection.test.js.map +1 -1
  68. package/dist/tests/collection-service/collection-service.test.js +31 -5
  69. package/dist/tests/collection-service/collection-service.test.js.map +1 -1
  70. package/dist/tests/collection-service/decode.test.d.ts +2 -0
  71. package/dist/tests/collection-service/decode.test.d.ts.map +1 -0
  72. package/dist/tests/collection-service/decode.test.js +37 -0
  73. package/dist/tests/collection-service/decode.test.js.map +1 -0
  74. package/dist/tests/cron/cron-integration.test.js +3 -2
  75. package/dist/tests/cron/cron-integration.test.js.map +1 -1
  76. package/dist/tests/cron/cron-persistence.test.d.ts +2 -0
  77. package/dist/tests/cron/cron-persistence.test.d.ts.map +1 -0
  78. package/dist/tests/cron/cron-persistence.test.js +123 -0
  79. package/dist/tests/cron/cron-persistence.test.js.map +1 -0
  80. package/dist/tests/cron/cron-service.test.js +2 -1
  81. package/dist/tests/cron/cron-service.test.js.map +1 -1
  82. package/dist/tests/hooks/hook-collection.test.js +4 -1
  83. package/dist/tests/hooks/hook-collection.test.js.map +1 -1
  84. package/dist/tests/http/file-serve.test.js +5 -2
  85. package/dist/tests/http/file-serve.test.js.map +1 -1
  86. package/dist/tests/http/file-token.test.js +5 -2
  87. package/dist/tests/http/file-token.test.js.map +1 -1
  88. package/dist/tests/http/router.test.js +5 -2
  89. package/dist/tests/http/router.test.js.map +1 -1
  90. package/dist/tests/migrator/dialect-sqlite.test.js +1 -1
  91. package/dist/tests/migrator/dialect-sqlite.test.js.map +1 -1
  92. package/dist/tests/migrator/integration.test.js +2 -2
  93. package/dist/tests/migrator/integration.test.js.map +1 -1
  94. package/dist/tests/migrator/migrator.test.js +2 -2
  95. package/dist/tests/migrator/migrator.test.js.map +1 -1
  96. package/dist/tests/telemetry/instrumentation.test.js +5 -2
  97. package/dist/tests/telemetry/instrumentation.test.js.map +1 -1
  98. package/package.json +2 -2
@@ -1,9 +1,11 @@
1
+ import { SqlClient } from "@effect/sql";
1
2
  import { Cause, Context, Effect, Exit, HashMap, Layer, Option, Ref } from "effect";
2
3
  import { CronNotFoundError } from "./types.js";
3
4
  import { HookService as HookServiceTag } from "../hooks/hook-service.js";
5
+ import { loadPersistedCronState, savePersistedCronState } from "./persistence.js";
4
6
  export class CronService extends Context.Tag("CronService")() {
5
7
  }
6
- function executeAndTrack(def, stateRef, ctx, hookService, env) {
8
+ function executeAndTrack(def, stateRef, ctx, hookService, env, sql) {
7
9
  return Effect.gen(function* () {
8
10
  yield* Ref.update(stateRef, (m) => {
9
11
  const existing = HashMap.get(m, def.name);
@@ -15,7 +17,7 @@ function executeAndTrack(def, stateRef, ctx, hookService, env) {
15
17
  const exit = yield* Effect.exit(def.handler().pipe(Effect.provide(env), Effect.withSpan("cron.execute", { kind: "internal" })));
16
18
  const durationMs = Date.now() - startedAt;
17
19
  if (Exit.isSuccess(exit)) {
18
- yield* Ref.update(stateRef, (m) => HashMap.set(m, def.name, {
20
+ const updated = yield* Ref.updateAndGet(stateRef, (m) => HashMap.set(m, def.name, {
19
21
  name: def.name,
20
22
  description: def.description,
21
23
  status: "standby",
@@ -24,6 +26,7 @@ function executeAndTrack(def, stateRef, ctx, hookService, env) {
24
26
  lastDurationMs: durationMs,
25
27
  lastError: undefined
26
28
  }));
29
+ yield* savePersistedCronState(sql, updated);
27
30
  const resultCtx = { name: def.name, scheduledAt: ctx.scheduledAt, durationMs };
28
31
  const finishedCtx = {
29
32
  name: def.name,
@@ -39,7 +42,7 @@ function executeAndTrack(def, stateRef, ctx, hookService, env) {
39
42
  const maybeFailure = Cause.failureOption(exit.cause);
40
43
  const defects = Array.from(Cause.defects(exit.cause));
41
44
  const error = Option.isSome(maybeFailure) ? maybeFailure.value : defects[0];
42
- yield* Ref.update(stateRef, (m) => HashMap.set(m, def.name, {
45
+ const updated = yield* Ref.updateAndGet(stateRef, (m) => HashMap.set(m, def.name, {
43
46
  name: def.name,
44
47
  description: def.description,
45
48
  status: "standby",
@@ -48,6 +51,7 @@ function executeAndTrack(def, stateRef, ctx, hookService, env) {
48
51
  lastDurationMs: durationMs,
49
52
  lastError: error
50
53
  }));
54
+ yield* savePersistedCronState(sql, updated);
51
55
  yield* Effect.log(`[cron] error in "${def.name}": ${String(error)}`);
52
56
  const errorCtx = { name: def.name, scheduledAt: ctx.scheduledAt, durationMs, error };
53
57
  const finishedCtx = {
@@ -66,13 +70,13 @@ function executeAndTrack(def, stateRef, ctx, hookService, env) {
66
70
  attributes: { "cron.name": def.name, "cron.scheduled_at": ctx.scheduledAt.toISOString() }
67
71
  }));
68
72
  }
69
- function runOneTick(def, stateRef, hookService, env) {
73
+ function runOneTick(def, stateRef, hookService, env, sql) {
70
74
  return Effect.gen(function* () {
71
75
  const scheduledAt = new Date();
72
76
  let ctx = { name: def.name, scheduledAt };
73
77
  ctx = yield* hookService.runCronStart(ctx);
74
78
  ctx = yield* hookService.runCronExecute(ctx);
75
- yield* Effect.forkDaemon(executeAndTrack(def, stateRef, ctx, hookService, env).pipe(Effect.catchAllCause(() => Effect.void)));
79
+ yield* Effect.forkDaemon(executeAndTrack(def, stateRef, ctx, hookService, env, sql).pipe(Effect.catchAllCause(() => Effect.void)));
76
80
  });
77
81
  }
78
82
  export function makeCronServiceLayer(defs) {
@@ -85,18 +89,23 @@ export function makeCronServiceLayer(defs) {
85
89
  seen.add(def.name);
86
90
  }
87
91
  const hookService = yield* HookServiceTag;
88
- const initialEntries = defs.map((def) => [
89
- def.name,
90
- {
91
- name: def.name,
92
- description: def.description,
93
- status: "standby",
94
- lastRunAt: undefined,
95
- lastStatus: undefined,
96
- lastDurationMs: undefined,
97
- lastError: undefined
98
- }
99
- ]);
92
+ const sql = yield* SqlClient.SqlClient;
93
+ const persisted = yield* loadPersistedCronState(sql);
94
+ const initialEntries = defs.map((def) => {
95
+ const entry = persisted[def.name];
96
+ return [
97
+ def.name,
98
+ {
99
+ name: def.name,
100
+ description: def.description,
101
+ status: "standby",
102
+ lastRunAt: entry?.lastRunAt ? new Date(entry.lastRunAt) : undefined,
103
+ lastStatus: entry?.lastStatus ?? undefined,
104
+ lastDurationMs: entry?.lastDurationMs ?? undefined,
105
+ lastError: entry?.lastError ?? undefined
106
+ }
107
+ ];
108
+ });
100
109
  const stateRef = yield* Ref.make(HashMap.fromIterable(initialEntries));
101
110
  const env = yield* Effect.context();
102
111
  for (const def of defs) {
@@ -106,7 +115,7 @@ export function makeCronServiceLayer(defs) {
106
115
  skipFirst = false;
107
116
  return Effect.void;
108
117
  }
109
- return runOneTick(def, stateRef, hookService, env);
118
+ return runOneTick(def, stateRef, hookService, env, sql);
110
119
  }).pipe(Effect.repeat(def.schedule), Effect.forkScoped);
111
120
  }
112
121
  return CronService.of({
@@ -118,7 +127,7 @@ export function makeCronServiceLayer(defs) {
118
127
  }
119
128
  const scheduledAt = new Date();
120
129
  const ctx = { name, scheduledAt };
121
- yield* Effect.forkDaemon(executeAndTrack(def, stateRef, ctx, hookService, env).pipe(Effect.catchAllCause(() => Effect.void)));
130
+ yield* Effect.forkDaemon(executeAndTrack(def, stateRef, ctx, hookService, env, sql).pipe(Effect.catchAllCause(() => Effect.void)));
122
131
  })
123
132
  });
124
133
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"cron-service.js","sourceRoot":"","sources":["../../../src/cron/cron-service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cron-service.js","sourceRoot":"","sources":["../../../src/cron/cron-service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import { SqlClient } from "@effect/sql";
2
+ import { Effect, HashMap, Schema } from "effect";
3
+ import type { CronState } from "./types.js";
4
+ export declare const CRON_STATE_CONFIG_KEY = "cron_state";
5
+ declare const PersistedCronStateSchema: Schema.Record$<typeof Schema.String, Schema.Struct<{
6
+ lastRunAt: Schema.NullOr<typeof Schema.String>;
7
+ lastStatus: Schema.NullOr<Schema.Literal<["success", "error"]>>;
8
+ lastDurationMs: Schema.NullOr<typeof Schema.Number>;
9
+ lastError: Schema.NullOr<typeof Schema.String>;
10
+ }>>;
11
+ export type PersistedCronState = typeof PersistedCronStateSchema.Type;
12
+ export declare function loadPersistedCronState(sql: SqlClient.SqlClient): Effect.Effect<{
13
+ readonly [x: string]: {
14
+ readonly lastRunAt: string | null;
15
+ readonly lastStatus: "error" | "success" | null;
16
+ readonly lastDurationMs: number | null;
17
+ readonly lastError: string | null;
18
+ };
19
+ }, import("effect/ParseResult").ParseError | import("@effect/sql/SqlError").SqlError, never>;
20
+ export declare function savePersistedCronState(sql: SqlClient.SqlClient, states: HashMap.HashMap<string, CronState>): Effect.Effect<void, never, never>;
21
+ export {};
22
+ //# sourceMappingURL=persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/cron/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,MAAM,aAAa,CAAA;AAClD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAChD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAE3C,eAAO,MAAM,qBAAqB,eAAe,CAAA;AASjD,QAAA,MAAM,wBAAwB;;;;;GAAyE,CAAA;AAEvG,MAAM,MAAM,kBAAkB,GAAG,OAAO,wBAAwB,CAAC,IAAI,CAAA;AAIrE,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS;;;;;;;6FA2B9D;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,SAAS,CAAC,qCAoB1G"}
@@ -0,0 +1,48 @@
1
+ import { SqlSchema } from "@effect/sql";
2
+ import { Effect, HashMap, Schema } from "effect";
3
+ export const CRON_STATE_CONFIG_KEY = "cron_state";
4
+ const PersistedCronEntrySchema = Schema.Struct({
5
+ lastRunAt: Schema.NullOr(Schema.String),
6
+ lastStatus: Schema.NullOr(Schema.Literal("success", "error")),
7
+ lastDurationMs: Schema.NullOr(Schema.Number),
8
+ lastError: Schema.NullOr(Schema.String)
9
+ });
10
+ const PersistedCronStateSchema = Schema.Record({ key: Schema.String, value: PersistedCronEntrySchema });
11
+ const ConfigRowSchema = Schema.Struct({ value: Schema.String });
12
+ export function loadPersistedCronState(sql) {
13
+ return Effect.gen(function* () {
14
+ // DDL — sql.unsafe is fine for CREATE TABLE
15
+ yield* sql.unsafe(`CREATE TABLE IF NOT EXISTS _config (key TEXT PRIMARY KEY, value TEXT NOT NULL)`);
16
+ const rows = yield* SqlSchema.findAll({
17
+ Request: Schema.String,
18
+ Result: ConfigRowSchema,
19
+ execute: (key) => sql `SELECT value FROM ${sql("_config")} WHERE key = ${key}`
20
+ })(CRON_STATE_CONFIG_KEY);
21
+ const row = rows[0];
22
+ if (row === undefined)
23
+ return {};
24
+ return yield* Schema.decode(Schema.parseJson(PersistedCronStateSchema))(row.value).pipe(Effect.catchAll((e) => Effect.logWarning(`[cron] failed to decode persisted cron_state, starting fresh: ${String(e)}`).pipe(Effect.as({}))));
25
+ }).pipe(Effect.withSpan("cron.persistence.load", {
26
+ kind: "client",
27
+ attributes: { table: "_config", "cron.config_key": CRON_STATE_CONFIG_KEY }
28
+ }));
29
+ }
30
+ export function savePersistedCronState(sql, states) {
31
+ return Effect.gen(function* () {
32
+ const blob = {};
33
+ for (const state of HashMap.values(states)) {
34
+ blob[state.name] = {
35
+ lastRunAt: state.lastRunAt ? state.lastRunAt.toISOString() : null,
36
+ lastStatus: state.lastStatus ?? null,
37
+ lastDurationMs: state.lastDurationMs ?? null,
38
+ lastError: state.lastError !== undefined ? String(state.lastError) : null
39
+ };
40
+ }
41
+ const json = yield* Schema.encode(Schema.parseJson(PersistedCronStateSchema))(blob);
42
+ yield* sql `INSERT OR REPLACE INTO ${sql("_config")} ${sql.insert({ key: CRON_STATE_CONFIG_KEY, value: json })}`;
43
+ }).pipe(Effect.withSpan("cron.persistence.save", {
44
+ kind: "client",
45
+ attributes: { table: "_config", "cron.config_key": CRON_STATE_CONFIG_KEY }
46
+ }), Effect.catchAllCause((cause) => Effect.logWarning(`[cron] failed to persist cron_state: ${String(cause)}`)));
47
+ }
48
+ //# sourceMappingURL=persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../../src/cron/persistence.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { SqliteClient } from "@effect/sql-sqlite-node";
2
2
  import { Layer } from "effect";
3
- import { Dialect } from "../migrator/dialect.js";
4
- import { sqliteDialect } from "../migrator/dialect-sqlite.js";
3
+ import { Dialect } from "../dialect/dialect.js";
4
+ import { sqliteDialect } from "../dialect/dialect-sqlite.js";
5
5
  /**
6
6
  * SQLite database preset using `@effect/sql-sqlite-node`.
7
7
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../src/databases/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AAG5D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAA4B,EAAgB,EAAE,CAAC,CAAC;IAC7E,KAAK,EAAE,KAAK,CAAC,QAAQ,CACnB,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EACnE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CACtC;CACF,CAAC,CAAA"}
1
+ {"version":3,"file":"sqlite.js","sourceRoot":"","sources":["../../../src/databases/sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,QAAQ,CAAA;AAC9B,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAG3D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,MAA4B,EAAgB,EAAE,CAAC,CAAC;IAC7E,KAAK,EAAE,KAAK,CAAC,QAAQ,CACnB,YAAY,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EACnE,KAAK,CAAC,OAAO,CAAC,OAAO,EAAE,aAAa,CAAC,CACtC;CACF,CAAC,CAAA"}
@@ -0,0 +1,9 @@
1
+ import type { DialectType } from "./dialect.js";
2
+ /**
3
+ * SQLite dialect implementation.
4
+ * - Identifiers are double-quoted.
5
+ * - Booleans are stored as INTEGER (0/1).
6
+ * - `dropColumn` and `alterColumn` emit comment stubs — SQLite requires table recreation for these.
7
+ */
8
+ export declare const sqliteDialect: DialectType;
9
+ //# sourceMappingURL=dialect-sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect-sqlite.d.ts","sourceRoot":"","sources":["../../../src/dialect/dialect-sqlite.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;;;;GAKG;AACH,eAAO,MAAM,aAAa,EAAE,WA0G3B,CAAA"}
@@ -0,0 +1,109 @@
1
+ /**
2
+ * SQLite dialect implementation.
3
+ * - Identifiers are double-quoted.
4
+ * - Booleans are stored as INTEGER (0/1).
5
+ * - `dropColumn` and `alterColumn` emit comment stubs — SQLite requires table recreation for these.
6
+ */
7
+ export const sqliteDialect = {
8
+ storesBooleanAsInteger: true,
9
+ quoteIdentifier: (name) => `"${name}"`,
10
+ quoteLiteral: (value) => {
11
+ if (value === null)
12
+ return "NULL";
13
+ if (typeof value === "boolean")
14
+ return value ? "1" : "0";
15
+ if (typeof value === "number")
16
+ return String(value);
17
+ return `'${String(value).replace(/'/g, "''")}'`;
18
+ },
19
+ nativeType: (col) => {
20
+ switch (col.type) {
21
+ case "boolean":
22
+ return "INTEGER";
23
+ case "integer":
24
+ return "INTEGER";
25
+ case "real":
26
+ return "REAL";
27
+ case "text":
28
+ return "TEXT";
29
+ }
30
+ },
31
+ indexName: (table, fields) => `idx_${table}_${fields.join("_")}`,
32
+ translate: (step) => {
33
+ switch (step.kind) {
34
+ case "createTable": {
35
+ const cols = step.columns.map((col) => {
36
+ if (col.autoIncrement) {
37
+ return `${sqliteDialect.quoteIdentifier(col.name)} INTEGER PRIMARY KEY AUTOINCREMENT`;
38
+ }
39
+ const parts = [sqliteDialect.quoteIdentifier(col.name), sqliteDialect.nativeType(col)];
40
+ if (!col.nullable)
41
+ parts.push("NOT NULL");
42
+ if (col.unique)
43
+ parts.push("UNIQUE");
44
+ if (col.default !== undefined)
45
+ parts.push(`DEFAULT ${sqliteDialect.quoteLiteral(col.default)}`);
46
+ if (col.primaryKey)
47
+ parts.push("PRIMARY KEY");
48
+ return parts.join(" ");
49
+ });
50
+ return [`CREATE TABLE ${sqliteDialect.quoteIdentifier(step.table)} (\n ${cols.join(",\n ")}\n)`];
51
+ }
52
+ case "dropTable":
53
+ return [`DROP TABLE IF EXISTS ${sqliteDialect.quoteIdentifier(step.table)}`];
54
+ case "renameTable":
55
+ return [
56
+ `ALTER TABLE ${sqliteDialect.quoteIdentifier(step.from)} RENAME TO ${sqliteDialect.quoteIdentifier(step.to)}`
57
+ ];
58
+ case "addColumn": {
59
+ const c = step.column;
60
+ const parts = [sqliteDialect.quoteIdentifier(c.name), sqliteDialect.nativeType(c)];
61
+ if (!c.nullable)
62
+ parts.push("NOT NULL");
63
+ if (c.default !== undefined) {
64
+ parts.push(`DEFAULT ${sqliteDialect.quoteLiteral(c.default)}`);
65
+ }
66
+ else if (!c.nullable) {
67
+ // SQLite rejects ADD COLUMN NOT NULL without a DEFAULT when rows exist.
68
+ const fallback = c.type === "text" ? "" : 0;
69
+ parts.push(`DEFAULT ${sqliteDialect.quoteLiteral(fallback)}`);
70
+ }
71
+ return [`ALTER TABLE ${sqliteDialect.quoteIdentifier(step.table)} ADD COLUMN ${parts.join(" ")}`];
72
+ }
73
+ case "dropColumn":
74
+ return [`-- dropColumn for ${step.column} requires table recreation`];
75
+ case "renameColumn":
76
+ return [
77
+ `ALTER TABLE ${sqliteDialect.quoteIdentifier(step.table)} RENAME COLUMN ${sqliteDialect.quoteIdentifier(step.from)} TO ${sqliteDialect.quoteIdentifier(step.to)}`
78
+ ];
79
+ case "alterColumn":
80
+ return [`-- alterColumn for ${step.column.name} requires table recreation`];
81
+ case "createIndex": {
82
+ const name = sqliteDialect.indexName(step.table, step.fields);
83
+ const unique = step.unique ? "UNIQUE " : "";
84
+ const cols = step.fields.map((f) => sqliteDialect.quoteIdentifier(f)).join(", ");
85
+ return [
86
+ `CREATE ${unique}INDEX ${sqliteDialect.quoteIdentifier(name)} ON ${sqliteDialect.quoteIdentifier(step.table)} (${cols})`
87
+ ];
88
+ }
89
+ case "dropIndex":
90
+ return [`DROP INDEX IF EXISTS ${sqliteDialect.quoteIdentifier(step.indexName)}`];
91
+ case "createSystemTable": {
92
+ const cols = step.columns.map((col) => {
93
+ const parts = [sqliteDialect.quoteIdentifier(col.name), sqliteDialect.nativeType(col)];
94
+ if (!col.nullable)
95
+ parts.push("NOT NULL");
96
+ if (col.primaryKey)
97
+ parts.push("PRIMARY KEY");
98
+ return parts.join(" ");
99
+ });
100
+ return [`CREATE TABLE IF NOT EXISTS ${sqliteDialect.quoteIdentifier(step.table)} (\n ${cols.join(",\n ")}\n)`];
101
+ }
102
+ case "createView":
103
+ return [`CREATE VIEW IF NOT EXISTS ${sqliteDialect.quoteIdentifier(step.view)} AS ${step.query}`];
104
+ case "dropView":
105
+ return [`DROP VIEW IF EXISTS ${sqliteDialect.quoteIdentifier(step.view)}`];
106
+ }
107
+ }
108
+ };
109
+ //# sourceMappingURL=dialect-sqlite.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect-sqlite.js","sourceRoot":"","sources":["../../../src/dialect/dialect-sqlite.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ import { Context } from "effect";
2
+ import type { ColumnDef, MigrationStep } from "../migrator/types.js";
3
+ /**
4
+ * Interface a SQL dialect must implement to translate abstract `MigrationStep` values
5
+ * into executable SQL strings and to handle quoting/naming conventions.
6
+ */
7
+ export type DialectType = {
8
+ /** Translates a single `MigrationStep` into one or more SQL statements. */
9
+ translate: (step: MigrationStep) => string[];
10
+ /** Returns the dialect's native SQL type keyword for a given `ColumnDef`. */
11
+ nativeType: (col: ColumnDef) => string;
12
+ /** Wraps an identifier (table or column name) in dialect-appropriate quotes. */
13
+ quoteIdentifier: (name: string) => string;
14
+ /** Serializes a literal value to a SQL-safe string. */
15
+ quoteLiteral: (value: unknown) => string;
16
+ /** Produces a deterministic index name from a table name and field list. */
17
+ indexName: (table: string, fields: string[]) => string;
18
+ /** Whether this dialect stores boolean columns as 0/1 integers (true for SQLite; false for dialects with a native boolean type, e.g. Postgres). */
19
+ storesBooleanAsInteger: boolean;
20
+ };
21
+ declare const Dialect_base: Context.TagClass<Dialect, "Dialect", DialectType>;
22
+ /** Effect `Context.Tag` for the active SQL dialect. Inject via `Layer.succeed(Dialect, sqliteDialect)`. */
23
+ export declare class Dialect extends Dialect_base {
24
+ }
25
+ export {};
26
+ //# sourceMappingURL=dialect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.d.ts","sourceRoot":"","sources":["../../../src/dialect/dialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAEnE;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,2EAA2E;IAC3E,SAAS,EAAE,CAAC,IAAI,EAAE,aAAa,KAAK,MAAM,EAAE,CAAA;IAC5C,6EAA6E;IAC7E,UAAU,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,MAAM,CAAA;IACtC,gFAAgF;IAChF,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAA;IACzC,uDAAuD;IACvD,YAAY,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,MAAM,CAAA;IACxC,4EAA4E;IAC5E,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,MAAM,CAAA;IACtD,mJAAmJ;IACnJ,sBAAsB,EAAE,OAAO,CAAA;CAChC,CAAA;;AAED,2GAA2G;AAC3G,qBAAa,OAAQ,SAAQ,YAA8C;CAAG"}
@@ -0,0 +1,5 @@
1
+ import { Context } from "effect";
2
+ /** Effect `Context.Tag` for the active SQL dialect. Inject via `Layer.succeed(Dialect, sqliteDialect)`. */
3
+ export class Dialect extends Context.Tag("Dialect")() {
4
+ }
5
+ //# sourceMappingURL=dialect.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialect.js","sourceRoot":"","sources":["../../../src/dialect/dialect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAuBhC,2GAA2G;AAC3G,MAAM,OAAO,OAAQ,SAAQ,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,EAAwB;CAAG"}
@@ -6,6 +6,7 @@ import { FileStorage } from "../storage/storage.js";
6
6
  import { ThumbnailService } from "../thumbnail/types.js";
7
7
  import { AppConfig } from "../config/index.js";
8
8
  import { CryptoService } from "../crypto/index.js";
9
+ import { Dialect } from "../dialect/dialect.js";
9
10
  import { AuthService } from "./auth.js";
10
- export declare function makeCollectionRouter(collections: ReadonlyArray<AnyCollectionDef>): HttpRouter.HttpRouter<never, CryptoService | AppConfig | AuthService | FileStorage | Repository | CollectionService | ThumbnailService>;
11
+ export declare function makeCollectionRouter(collections: ReadonlyArray<AnyCollectionDef>): HttpRouter.HttpRouter<never, CryptoService | Dialect | AppConfig | AuthService | FileStorage | Repository | CollectionService | ThumbnailService>;
11
12
  //# sourceMappingURL=router.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/http/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyC,MAAM,kBAAkB,CAAA;AAEpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAoD,MAAM,WAAW,CAAA;AAkFzF,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC,2IA6VhF"}
1
+ {"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../../src/http/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAyC,MAAM,kBAAkB,CAAA;AAEpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,4CAA4C,CAAA;AAG9E,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AAEvD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAoD,MAAM,WAAW,CAAA;AA0FzF,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC,qJA6VhF"}
@@ -4,6 +4,7 @@ import { CollectionService } from "../collection-service/collection-service.js";
4
4
  import { ValidationError } from "../collection-service/errors.js";
5
5
  import { Repository } from "../repository/repository.js";
6
6
  import { AppConfig } from "../config/index.js";
7
+ import { Dialect } from "../dialect/dialect.js";
7
8
  import { signJwt, verifyAnyJwt, verifyJwt, verifyPassword } from "./auth.js";
8
9
  import { makeRowDecoder } from "../collection-service/decode.js";
9
10
  import { catchCollectionErrors } from "./errors.js";
@@ -75,7 +76,6 @@ function getBody(req, collection) {
75
76
  }
76
77
  export function makeCollectionRouter(collections) {
77
78
  const collectionMap = new Map(collections.map((c) => [c.name, c]));
78
- const decoderMap = new Map(collections.map((c) => [c.name, makeRowDecoder(c.schema)]));
79
79
  function collectionRoute(operation, body) {
80
80
  return Effect.flatMap(HttpRouter.RouteContext, (routeCtx) => {
81
81
  const name = routeCtx.params["name"];
@@ -225,7 +225,8 @@ export function makeCollectionRouter(collections) {
225
225
  const config = yield* AppConfig;
226
226
  const jwtSecret = Redacted.value(config.jwtSecret);
227
227
  const token = yield* signJwt({ sub: rid, col: col.name }, jwtSecret).pipe(Effect.mapError(() => HttpServerResponse.unsafeJson({ error: "internal" }, { status: 500 })));
228
- const decode = decoderMap.get(col.name) ?? Effect.succeed;
228
+ const dialect = yield* Dialect;
229
+ const decode = makeRowDecoder(col.schema, dialect.storesBooleanAsInteger);
229
230
  const decodedRow = yield* decode(fullRow);
230
231
  const publicRow = Object.fromEntries(Object.entries(decodedRow).filter(([k]) => {
231
232
  const prop = col.schema.properties[k];
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/http/router.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sourceRoot":"","sources":["../../../src/http/router.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/http/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAA;AAEjE,wBAAgB,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC,sEAa3E"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../../src/http/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AACrD,OAAO,KAAK,EAAE,gBAAgB,EAAsB,MAAM,2BAA2B,CAAA;AAMrF,wBAAgB,eAAe,CAAC,WAAW,EAAE,aAAa,CAAC,gBAAgB,CAAC,sEAa3E"}
@@ -1,11 +1,14 @@
1
1
  import { Effect } from "effect";
2
2
  import { HttpServerResponse } from "@effect/platform";
3
+ function visibleFields(properties) {
4
+ return Object.fromEntries(Object.entries(properties).filter(([, p]) => !p["x-hidden"]));
5
+ }
3
6
  export function makeSchemaRoute(collections) {
4
7
  return Effect.gen(function* () {
5
8
  const schemas = collections.map((c) => ({
6
9
  name: c.name,
7
10
  kind: c.schema["x-collection-kind"],
8
- fields: c.schema.properties,
11
+ fields: visibleFields(c.schema.properties),
9
12
  required: c.schema.required,
10
13
  indexes: c.schema["x-indexes"],
11
14
  rules: c.schema["x-rules"],
@@ -1 +1 @@
1
- {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/http/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrD,MAAM,UAAU,eAAe,CAAC,WAA4C;IAC1E,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;YACnC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU;YAC3B,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;YAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;YAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;YAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;SACpC,CAAC,CAAC,CAAA;QACH,OAAO,kBAAkB,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../../src/http/schema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAA;AAC/B,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAGrD,SAAS,aAAa,CAAC,UAA8C;IACnE,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;AACzF,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,WAA4C;IAC1E,OAAO,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;QACzB,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YACtC,IAAI,EAAE,CAAC,CAAC,IAAI;YACZ,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC;YACnC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC;YAC1C,QAAQ,EAAE,CAAC,CAAC,MAAM,CAAC,QAAQ;YAC3B,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC;YAC9B,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC;YAC1B,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC;SACpC,CAAC,CAAC,CAAA;QACH,OAAO,kBAAkB,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC,CAAA;IAChE,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
- export { sqliteDialect } from "./dialect-sqlite.js";
2
- export { Dialect } from "./dialect.js";
3
- export type { DialectType } from "./dialect.js";
1
+ export { sqliteDialect } from "../dialect/dialect-sqlite.js";
2
+ export { Dialect } from "../dialect/dialect.js";
3
+ export type { DialectType } from "../dialect/dialect.js";
4
4
  export { Migrator, MigratorLive, SYSTEM_TABLE_STEPS } from "./migrator.js";
5
5
  export { computePlan, diffSchemas, propertyToColumnType, schemaToColumns } from "./schema-diff.js";
6
6
  export type { ColumnDef, ColumnType, MigrationPlan, MigrationStep, MigrateOptions, NamedSchema } from "./types.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClG,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAClH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/migrator/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAA;AAC9C,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AAC1E,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClG,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAClH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA"}