@frehilm/ordna-web 0.1.4 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,15 @@
1
1
  import { type StoreContext } from "@frehilm/ordna-core";
2
2
  import { Hono } from "hono";
3
3
  import { type AgentHookConfig } from "./agent.js";
4
- export declare function buildApiRoutes(ctx: StoreContext, agentHook: AgentHookConfig | null): Hono;
4
+ /**
5
+ * Mutable handle the API routes read from at request time. Letting routes
6
+ * resolve `ctx` lazily is what makes the in-place setup → ready transition
7
+ * possible: the same Hono app is mounted once, and the API surface flips on
8
+ * as soon as `state.ctx` becomes non-null.
9
+ */
10
+ export interface ApiState {
11
+ ctx: StoreContext | null;
12
+ agentHook: AgentHookConfig | null;
13
+ }
14
+ export declare function buildApiRoutes(state: ApiState): Hono;
5
15
  //# sourceMappingURL=routes.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAMN,KAAK,YAAY,EAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,YAAY,CAAC;AAE7D,wBAAgB,cAAc,CAC7B,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,eAAe,GAAG,IAAI,GAC/B,IAAI,CA2FN"}
1
+ {"version":3,"file":"routes.d.ts","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"AAAA,OAAO,EAQN,KAAK,YAAY,EAEjB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAE5B,OAAO,EAAE,KAAK,eAAe,EAAa,MAAM,YAAY,CAAC;AAE7D;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACxB,GAAG,EAAE,YAAY,GAAG,IAAI,CAAC;IACzB,SAAS,EAAE,eAAe,GAAG,IAAI,CAAC;CAClC;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI,CA8HpD"}
@@ -1,19 +1,47 @@
1
- import { createTask, deleteTask, getTask, listTasks, moveTask, updateTask, } from "@frehilm/ordna-core";
1
+ import { canFetch, createTask, deleteTask, fetchTasks, getTask, listTasks, moveTask, updateTask, } from "@frehilm/ordna-core";
2
2
  import { Hono } from "hono";
3
3
  import { toWireTask } from "../shared/types.js";
4
4
  import { postAgent } from "./agent.js";
5
- export function buildApiRoutes(ctx, agentHook) {
5
+ export function buildApiRoutes(state) {
6
6
  const api = new Hono();
7
- api.get("/config", (c) => c.json({
8
- ...ctx.config,
9
- agentHook: agentHook ? { enabled: true, label: agentHook.label } : null,
10
- }));
7
+ // Gate every /api/* request on a configured context. The outer gate in
8
+ // start.ts already short-circuits non-setup paths when ctx is null, so
9
+ // this is belt-and-braces but it also keeps the route handlers free
10
+ // of repeated null checks.
11
+ api.use("*", async (c, next) => {
12
+ if (!state.ctx)
13
+ return c.json({ error: "not configured" }, 503);
14
+ return next();
15
+ });
16
+ api.get("/config", (c) => {
17
+ const ctx = state.ctx;
18
+ return c.json({
19
+ ...ctx.config,
20
+ agentHook: state.agentHook
21
+ ? { enabled: true, label: state.agentHook.label }
22
+ : null,
23
+ capabilities: { fetch: canFetch(ctx) },
24
+ });
25
+ });
26
+ api.post("/fetch", async (c) => {
27
+ const ctx = state.ctx;
28
+ if (!canFetch(ctx)) {
29
+ return c.json({ error: `storage: ${ctx.backend.kind} doesn't support fetch` }, 501);
30
+ }
31
+ try {
32
+ const result = await fetchTasks(ctx);
33
+ return c.json({ ok: true, ...result });
34
+ }
35
+ catch (err) {
36
+ return c.json({ error: err.message }, 500);
37
+ }
38
+ });
11
39
  api.get("/tasks", async (c) => {
12
- const tasks = await listTasks(ctx);
40
+ const tasks = await listTasks(state.ctx);
13
41
  return c.json(tasks.map(toWireTask));
14
42
  });
15
43
  api.get("/tasks/:id", async (c) => {
16
- const task = await getTask(c.req.param("id"), ctx);
44
+ const task = await getTask(c.req.param("id"), state.ctx);
17
45
  if (!task)
18
46
  return c.json({ error: "not found" }, 404);
19
47
  return c.json(toWireTask(task));
@@ -23,14 +51,14 @@ export function buildApiRoutes(ctx, agentHook) {
23
51
  if (!body.title || body.title.trim().length === 0) {
24
52
  return c.json({ error: "title is required" }, 400);
25
53
  }
26
- const task = await createTask(body, ctx);
54
+ const task = await createTask(body, state.ctx);
27
55
  return c.json(toWireTask(task), 201);
28
56
  });
29
57
  api.patch("/tasks/:id", async (c) => {
30
58
  const id = c.req.param("id");
31
59
  const patch = await c.req.json();
32
60
  try {
33
- const task = await updateTask(id, patch, ctx);
61
+ const task = await updateTask(id, patch, state.ctx);
34
62
  return c.json(toWireTask(task));
35
63
  }
36
64
  catch (error) {
@@ -41,7 +69,7 @@ export function buildApiRoutes(ctx, agentHook) {
41
69
  const id = c.req.param("id");
42
70
  const { status } = (await c.req.json());
43
71
  try {
44
- const task = await moveTask(id, status, ctx);
72
+ const task = await moveTask(id, status, state.ctx);
45
73
  return c.json(toWireTask(task));
46
74
  }
47
75
  catch (error) {
@@ -49,13 +77,15 @@ export function buildApiRoutes(ctx, agentHook) {
49
77
  }
50
78
  });
51
79
  api.post("/tasks/:id/agent", async (c) => {
52
- if (!agentHook)
80
+ if (!state.agentHook) {
53
81
  return c.json({ error: "agent hook not configured" }, 501);
82
+ }
83
+ const ctx = state.ctx;
54
84
  const task = await getTask(c.req.param("id"), ctx);
55
85
  if (!task)
56
86
  return c.json({ error: "not found" }, 404);
57
87
  try {
58
- const result = await postAgent(agentHook, task, {
88
+ const result = await postAgent(state.agentHook, task, {
59
89
  tasksDir: ctx.config.tasksDir,
60
90
  cwd: ctx.cwd,
61
91
  schema: ctx.config.schema,
@@ -71,7 +101,7 @@ export function buildApiRoutes(ctx, agentHook) {
71
101
  });
72
102
  api.delete("/tasks/:id", async (c) => {
73
103
  try {
74
- await deleteTask(c.req.param("id"), ctx);
104
+ await deleteTask(c.req.param("id"), state.ctx);
75
105
  return c.body(null, 204);
76
106
  }
77
107
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"routes.js","sourceRoot":"","sources":["../../src/server/routes.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,15 @@ export interface RunWebOptions {
15
15
  export interface RunWebHandle {
16
16
  port: number;
17
17
  close: () => Promise<void>;
18
- context: StoreContext;
18
+ /**
19
+ * The active `StoreContext` once a storage mode has been chosen. `null`
20
+ * while the server is in setup mode (no `.ordna/config.yaml` and
21
+ * detection landed on "ask"). Flips to a real context in-place after
22
+ * the user POSTs a mode to `/api/setup-mode` — no restart required.
23
+ */
24
+ context: StoreContext | null;
25
+ /** True when the server is in setup mode (see `context` above). */
26
+ needsSetup: boolean;
19
27
  }
20
28
  export declare function runWeb(options?: RunWebOptions): Promise<RunWebHandle>;
21
29
  //# sourceMappingURL=start.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/server/start.ts"],"names":[],"mappings":"AAGA,OAAO,EAAmD,KAAK,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAKzG,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,YAAY,CAAC;AAIjE,MAAM,WAAW,aAAa;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B,OAAO,EAAE,YAAY,CAAC;CACtB;AAgBD,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAwI/E"}
1
+ {"version":3,"file":"start.d.ts","sourceRoot":"","sources":["../../src/server/start.ts"],"names":[],"mappings":"AAGA,OAAO,EAIN,KAAK,YAAY,EAGjB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,KAAK,eAAe,EAAiB,MAAM,YAAY,CAAC;AAIjE,MAAM,WAAW,aAAa;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;CACnC;AAED,MAAM,WAAW,YAAY;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC3B;;;;;OAKG;IACH,OAAO,EAAE,YAAY,GAAG,IAAI,CAAC;IAC7B,mEAAmE;IACnE,UAAU,EAAE,OAAO,CAAC;CACpB;AA+CD,wBAAsB,MAAM,CAAC,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,YAAY,CAAC,CAkM/E"}
@@ -1,7 +1,7 @@
1
1
  import { serveStatic } from "@hono/node-server/serve-static";
2
2
  import { serve } from "@hono/node-server";
3
3
  import { createNodeWebSocket } from "@hono/node-ws";
4
- import { createContext as createStoreContext, watchTasks } from "@frehilm/ordna-core";
4
+ import { createContext as createStoreContext, ensureStorageConfig, NeedsModeSelection, watchTasks, writeStorageConfig, } from "@frehilm/ordna-core";
5
5
  import { existsSync } from "node:fs";
6
6
  import { dirname, join, resolve } from "node:path";
7
7
  import { fileURLToPath } from "node:url";
@@ -22,16 +22,50 @@ function resolveClientDir(clientDir) {
22
22
  }
23
23
  return null;
24
24
  }
25
+ function wireWatcher(state) {
26
+ if (!state.ctx || state.unsubscribe)
27
+ return;
28
+ state.unsubscribe = watchTasks(state.ctx, (event) => {
29
+ if (event.type === "removed") {
30
+ const id = event.filePath.split("/").pop()?.replace(/\.md$/, "") ??
31
+ event.filePath;
32
+ state.broadcast({ type: "removed", id });
33
+ }
34
+ else if (event.type === "renamed") {
35
+ state.broadcast({
36
+ type: "renamed",
37
+ oldId: event.oldId,
38
+ newId: event.newId,
39
+ task: toWireTask(event.task),
40
+ });
41
+ }
42
+ else {
43
+ state.broadcast({ type: event.type, task: toWireTask(event.task) });
44
+ }
45
+ });
46
+ }
25
47
  export async function runWeb(options = {}) {
26
- const ctx = createStoreContext(options.cwd);
27
- const port = options.port ?? ctx.config.webPort;
48
+ const cwd = options.cwd ?? process.cwd();
28
49
  const host = options.host ?? "127.0.0.1";
29
- const app = new Hono();
30
- const { injectWebSocket, upgradeWebSocket } = createNodeWebSocket({ app });
31
- const agentHook = options.agentHook === null
32
- ? null
33
- : options.agentHook ?? loadAgentHook();
34
- app.route("/api", buildApiRoutes(ctx, agentHook));
50
+ // Bootstrap context if config exists or detection lands on a confident
51
+ // mode. If detection lands on "ask", we still listen the gate
52
+ // middleware serves the setup page until the user POSTs a mode.
53
+ let initialCtx = null;
54
+ let reason = "";
55
+ try {
56
+ await ensureStorageConfig(cwd);
57
+ initialCtx = createStoreContext(cwd);
58
+ }
59
+ catch (err) {
60
+ if (err instanceof NeedsModeSelection) {
61
+ reason = err.reason;
62
+ }
63
+ else {
64
+ throw err;
65
+ }
66
+ }
67
+ const port = options.port ?? initialCtx?.config.webPort ?? 7420;
68
+ const agentHook = options.agentHook === null ? null : (options.agentHook ?? loadAgentHook());
35
69
  const clients = new Set();
36
70
  const broadcast = (event) => {
37
71
  const data = JSON.stringify(event);
@@ -44,15 +78,50 @@ export async function runWeb(options = {}) {
44
78
  }
45
79
  }
46
80
  };
47
- const unsubscribe = watchTasks(ctx, (event) => {
48
- if (event.type === "removed") {
49
- const id = event.filePath.split("/").pop()?.replace(/\.md$/, "") ?? event.filePath;
50
- broadcast({ type: "removed", id });
81
+ const state = {
82
+ cwd,
83
+ ctx: initialCtx,
84
+ agentHook,
85
+ unsubscribe: null,
86
+ reason,
87
+ clients,
88
+ broadcast,
89
+ };
90
+ if (state.ctx)
91
+ wireWatcher(state);
92
+ const app = new Hono();
93
+ const { injectWebSocket, upgradeWebSocket } = createNodeWebSocket({ app });
94
+ // Setup gate: when no ctx, short-circuit every request with the setup
95
+ // page (except the POST that writes the config). Once state.ctx flips
96
+ // to a real context, this gate falls through and the regular API /
97
+ // websocket / static routes take over.
98
+ app.use("*", async (c, next) => {
99
+ if (state.ctx !== null)
100
+ return next();
101
+ const path = c.req.path;
102
+ if (c.req.method === "POST" && path === "/api/setup-mode")
103
+ return next();
104
+ if (path === "/favicon.ico")
105
+ return c.notFound();
106
+ return c.html(setupPage(state.reason));
107
+ });
108
+ app.post("/api/setup-mode", async (c) => {
109
+ if (state.ctx !== null) {
110
+ return c.text("Already configured.", 400);
51
111
  }
52
- else {
53
- broadcast({ type: event.type, task: toWireTask(event.task) });
112
+ const body = await c.req.parseBody();
113
+ const storage = body.storage;
114
+ if (storage !== "file" &&
115
+ storage !== "hybrid" &&
116
+ storage !== "namespace") {
117
+ return c.text("Invalid storage mode", 400);
54
118
  }
119
+ writeStorageConfig(state.cwd, storage);
120
+ state.ctx = createStoreContext(state.cwd);
121
+ wireWatcher(state);
122
+ return c.html(savedPage(storage));
55
123
  });
124
+ app.route("/api", buildApiRoutes(state));
56
125
  app.get("/ws", upgradeWebSocket(() => ({
57
126
  onOpen(_evt, ws) {
58
127
  const client = { send: (data) => ws.send(data) };
@@ -60,7 +129,8 @@ export async function runWeb(options = {}) {
60
129
  ws._ordnaClient = client;
61
130
  },
62
131
  onClose(_evt, ws) {
63
- const client = ws._ordnaClient;
132
+ const client = ws
133
+ ._ordnaClient;
64
134
  if (client)
65
135
  clients.delete(client);
66
136
  },
@@ -130,12 +200,88 @@ export async function runWeb(options = {}) {
130
200
  }
131
201
  }
132
202
  const close = async () => {
133
- await unsubscribe();
203
+ if (state.unsubscribe)
204
+ await state.unsubscribe();
134
205
  const s = server;
135
206
  s.closeIdleConnections?.();
136
207
  s.closeAllConnections?.();
137
208
  await new Promise((r) => s.close(() => r()));
138
209
  };
139
- return { port: actualPort, close, context: ctx };
210
+ return {
211
+ port: actualPort,
212
+ close,
213
+ get context() {
214
+ return state.ctx;
215
+ },
216
+ get needsSetup() {
217
+ return state.ctx === null;
218
+ },
219
+ };
220
+ }
221
+ function setupPage(reason) {
222
+ return `<!doctype html>
223
+ <html lang="en">
224
+ <head>
225
+ <meta charset="utf-8" />
226
+ <title>Ordna setup</title>
227
+ <style>
228
+ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; max-width: 640px; margin: 4rem auto; padding: 0 1.5rem; color: #1a1a1a; line-height: 1.5; }
229
+ h1 { font-size: 1.5rem; margin-bottom: 0.25rem; }
230
+ p.lede { color: #666; margin-top: 0; }
231
+ fieldset { border: 1px solid #ddd; border-radius: 6px; padding: 1rem 1.25rem; margin: 1.5rem 0; }
232
+ legend { font-weight: 600; padding: 0 0.5rem; }
233
+ label { display: block; padding: 0.5rem 0; cursor: pointer; }
234
+ label code { background: #f3f3f6; padding: 1px 6px; border-radius: 3px; font-size: 0.9rem; }
235
+ label small { display: block; color: #666; margin-left: 1.6rem; margin-top: 0.15rem; }
236
+ button { background: #2563eb; color: white; border: 0; padding: 0.6rem 1.2rem; border-radius: 6px; cursor: pointer; font-size: 1rem; }
237
+ button:hover { background: #1d4ed8; }
238
+ </style>
239
+ </head>
240
+ <body>
241
+ <h1>Ordna setup</h1>
242
+ <p class="lede">${escapeHtml(reason)}</p>
243
+ <form method="post" action="/api/setup-mode">
244
+ <fieldset>
245
+ <legend>Pick a storage mode</legend>
246
+ <label><input type="radio" name="storage" value="file" checked /> <code>file</code> <small>Tasks as markdown in <code>tasks/</code> (default, recommended)</small></label>
247
+ <label><input type="radio" name="storage" value="hybrid" /> <code>hybrid</code> <small>Tasks as files + synced ID allocator + audit log in git</small></label>
248
+ <label><input type="radio" name="storage" value="namespace" /> <code>namespace</code> <small>Tasks as git refs; working tree stays clean</small></label>
249
+ </fieldset>
250
+ <button type="submit">Save and continue</button>
251
+ </form>
252
+ </body>
253
+ </html>`;
254
+ }
255
+ function savedPage(mode) {
256
+ return `<!doctype html>
257
+ <html lang="en">
258
+ <head>
259
+ <meta charset="utf-8" />
260
+ <title>Ordna ready</title>
261
+ <meta http-equiv="refresh" content="1; url=/" />
262
+ <style>
263
+ body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif; max-width: 640px; margin: 4rem auto; padding: 0 1.5rem; color: #1a1a1a; line-height: 1.5; }
264
+ h1 { font-size: 1.5rem; margin-bottom: 0.25rem; }
265
+ .done { background: #dcfce7; border: 1px solid #86efac; padding: 1rem 1.25rem; border-radius: 6px; }
266
+ .done p { margin: 0.25rem 0; }
267
+ a { color: #2563eb; }
268
+ </style>
269
+ </head>
270
+ <body>
271
+ <h1>Ordna setup</h1>
272
+ <div class="done">
273
+ <p><strong>Storage mode set to <code>${escapeHtml(mode)}</code>.</strong></p>
274
+ <p>Loading the board… <a href="/">click here</a> if you're not redirected.</p>
275
+ </div>
276
+ </body>
277
+ </html>`;
278
+ }
279
+ function escapeHtml(s) {
280
+ return s
281
+ .replace(/&/g, "&amp;")
282
+ .replace(/</g, "&lt;")
283
+ .replace(/>/g, "&gt;")
284
+ .replace(/"/g, "&quot;")
285
+ .replace(/'/g, "&#39;");
140
286
  }
141
287
  //# sourceMappingURL=start.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/server/start.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"start.js","sourceRoot":"","sources":["../../src/server/start.ts"],"names":[],"mappings":"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"}
@@ -4,9 +4,18 @@ export interface AgentHookInfo {
4
4
  enabled: boolean;
5
5
  label: string;
6
6
  }
7
+ export interface UiCapabilities {
8
+ fetch: boolean;
9
+ }
7
10
  export type UiConfig = OrdnaConfig & {
8
11
  agentHook: AgentHookInfo | null;
12
+ capabilities: UiCapabilities;
9
13
  };
14
+ export interface FetchResponse {
15
+ ok: true;
16
+ refsUpdated: number;
17
+ durationMs: number;
18
+ }
10
19
  export type WireTask = Omit<Task, "rawContent">;
11
20
  export type WsEvent = {
12
21
  type: "added";
@@ -17,6 +26,11 @@ export type WsEvent = {
17
26
  } | {
18
27
  type: "removed";
19
28
  id: string;
29
+ } | {
30
+ type: "renamed";
31
+ oldId: string;
32
+ newId: string;
33
+ task: WireTask;
20
34
  };
21
35
  export declare function toWireTask(task: Task): WireTask;
22
36
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE/F,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG;IACpC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAEhD,MAAM,MAAM,OAAO,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,CAAC;AAEnC,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAG/C"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAE/F,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC;AAEpE,MAAM,WAAW,aAAa;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC9B,KAAK,EAAE,OAAO,CAAC;CACf;AAED,MAAM,MAAM,QAAQ,GAAG,WAAW,GAAG;IACpC,SAAS,EAAE,aAAa,GAAG,IAAI,CAAC;IAChC,YAAY,EAAE,cAAc,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,aAAa;IAC7B,EAAE,EAAE,IAAI,CAAC;IACT,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;AAEhD,MAAM,MAAM,OAAO,GAChB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACjC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,GACnC;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,EAAE,EAAE,MAAM,CAAA;CAAE,GAC/B;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,QAAQ,CAAA;CAAE,CAAC;AAErE,wBAAgB,UAAU,CAAC,IAAI,EAAE,IAAI,GAAG,QAAQ,CAG/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAoBA,MAAM,UAAU,UAAU,CAAC,IAAU;IACpC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAClD,OAAO,IAAI,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAgCA,MAAM,UAAU,UAAU,CAAC,IAAU;IACpC,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,CAAC;IAClD,OAAO,IAAI,CAAC;AACb,CAAC"}