@ekairos/domain 1.22.34-beta.development.0 → 1.22.36-beta.development.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.
Files changed (58) hide show
  1. package/README.md +123 -128
  2. package/dist/cli/bin.d.ts +9 -0
  3. package/dist/cli/bin.d.ts.map +1 -0
  4. package/dist/cli/bin.js +488 -0
  5. package/dist/cli/bin.js.map +1 -0
  6. package/dist/cli/client-runtime.d.ts +25 -0
  7. package/dist/cli/client-runtime.d.ts.map +1 -0
  8. package/dist/cli/client-runtime.js +60 -0
  9. package/dist/cli/client-runtime.js.map +1 -0
  10. package/dist/cli/config.d.ts +5 -0
  11. package/dist/cli/config.d.ts.map +1 -0
  12. package/dist/cli/config.js +44 -0
  13. package/dist/cli/config.js.map +1 -0
  14. package/dist/cli/create-app.d.ts +33 -0
  15. package/dist/cli/create-app.d.ts.map +1 -0
  16. package/dist/cli/create-app.js +1317 -0
  17. package/dist/cli/create-app.js.map +1 -0
  18. package/dist/cli/http.d.ts +28 -0
  19. package/dist/cli/http.d.ts.map +1 -0
  20. package/dist/cli/http.js +117 -0
  21. package/dist/cli/http.js.map +1 -0
  22. package/dist/cli/index.d.ts +8 -0
  23. package/dist/cli/index.d.ts.map +1 -0
  24. package/dist/cli/index.js +7 -0
  25. package/dist/cli/index.js.map +1 -0
  26. package/dist/cli/server.d.ts +3 -0
  27. package/dist/cli/server.d.ts.map +1 -0
  28. package/dist/cli/server.js +437 -0
  29. package/dist/cli/server.js.map +1 -0
  30. package/dist/cli/types.d.ts +60 -0
  31. package/dist/cli/types.d.ts.map +1 -0
  32. package/dist/cli/types.js +2 -0
  33. package/dist/cli/types.js.map +1 -0
  34. package/dist/cli/ui.d.ts +3 -0
  35. package/dist/cli/ui.d.ts.map +1 -0
  36. package/dist/cli/ui.js +136 -0
  37. package/dist/cli/ui.js.map +1 -0
  38. package/dist/index.d.ts +70 -11
  39. package/dist/index.d.ts.map +1 -1
  40. package/dist/index.js +121 -18
  41. package/dist/index.js.map +1 -1
  42. package/dist/next.d.ts +21 -21
  43. package/dist/next.d.ts.map +1 -1
  44. package/dist/next.js +212 -345
  45. package/dist/next.js.map +1 -1
  46. package/dist/polyfills/dom-events.d.ts +2 -0
  47. package/dist/polyfills/dom-events.d.ts.map +1 -0
  48. package/dist/polyfills/dom-events.js +92 -0
  49. package/dist/polyfills/dom-events.js.map +1 -0
  50. package/dist/runtime-handle.d.ts +34 -0
  51. package/dist/runtime-handle.d.ts.map +1 -0
  52. package/dist/runtime-handle.js +82 -0
  53. package/dist/runtime-handle.js.map +1 -0
  54. package/dist/runtime.d.ts +3 -2
  55. package/dist/runtime.d.ts.map +1 -1
  56. package/dist/runtime.js +72 -19
  57. package/dist/runtime.js.map +1 -1
  58. package/package.json +37 -4
@@ -0,0 +1,488 @@
1
+ #!/usr/bin/env node
2
+ import { readFile } from "node:fs/promises";
3
+ import { stdin as input, stdout as output } from "node:process";
4
+ import readline from "node:readline/promises";
5
+ import JSON5 from "json5";
6
+ import { clearCliSession, fetchDomainManifest, normalizeBaseUrl, postDomainAction, postDomainQuery, readCliSession, writeCliSession, ClientRuntime, } from "./index.js";
7
+ import { createDomainApp } from "./create-app.js";
8
+ import { runCreateAppInk } from "./ui.js";
9
+ function printHelp(ctx) {
10
+ ctx.stdout.write([
11
+ "ekairos-domain",
12
+ "",
13
+ "Commands:",
14
+ " login <baseUrl> [--refreshToken=<token>] [--appId=<appId>]",
15
+ " create-app [dir] --next [--install] [--instantToken=<token>]",
16
+ " inspect [filter] [--baseUrl=<url>]",
17
+ " query <json5|@file|-> [--admin|--as-email <email>|--as-guest|--as-token <token>]",
18
+ " action <name> <json5|@file|-> [--env=<json5>] [--admin|--as-email <email>|--as-guest|--as-token <token>]",
19
+ " logout",
20
+ "",
21
+ "Input forms:",
22
+ " <json5> Inline JSON5, e.g. { tasks: { comments: {} } }",
23
+ " @file Read JSON5 from a file",
24
+ " - Read JSON5 from stdin",
25
+ "",
26
+ "Shorthand:",
27
+ " ekairos-domain <actionKey> <json5|@file|-> [--env=<json5>]",
28
+ "",
29
+ "Output:",
30
+ " Stable JSON by default. Add --pretty for indented JSON.",
31
+ " In interactive terminals, create-app shows a live React/Ink UI unless you pass --json.",
32
+ "",
33
+ "Scaffold flags:",
34
+ " --workspace <path> Use the local workspace package instead of a published version",
35
+ " --instantToken Provision an Instant app and write .env.local",
36
+ " --appId/--adminToken Reuse an existing Instant app",
37
+ " --json Force plain JSON output and disable the interactive UI",
38
+ "",
39
+ ].join("\n"));
40
+ }
41
+ function parseFlags(argv) {
42
+ const positionals = [];
43
+ const flags = new Map();
44
+ for (let index = 0; index < argv.length; index += 1) {
45
+ const arg = argv[index];
46
+ if (arg === "--") {
47
+ positionals.push(...argv.slice(index + 1));
48
+ break;
49
+ }
50
+ if (!arg.startsWith("--")) {
51
+ positionals.push(arg);
52
+ continue;
53
+ }
54
+ const raw = arg.slice(2);
55
+ if (!raw)
56
+ continue;
57
+ if (raw.startsWith("no-") && raw.length > 3) {
58
+ flags.set(raw.slice(3), false);
59
+ continue;
60
+ }
61
+ const separator = raw.indexOf("=");
62
+ if (separator >= 0) {
63
+ const name = raw.slice(0, separator);
64
+ const value = raw.slice(separator + 1);
65
+ flags.set(name, value);
66
+ continue;
67
+ }
68
+ const next = argv[index + 1];
69
+ if (next && !next.startsWith("--")) {
70
+ flags.set(raw, next);
71
+ index += 1;
72
+ continue;
73
+ }
74
+ flags.set(raw, true);
75
+ }
76
+ return { positionals, flags };
77
+ }
78
+ function flagValue(flags, names) {
79
+ for (const name of names) {
80
+ if (flags.has(name))
81
+ return flags.get(name);
82
+ }
83
+ return undefined;
84
+ }
85
+ function hasFlag(flags, names) {
86
+ const value = flagValue(flags, names);
87
+ return value === true || value === "true";
88
+ }
89
+ function shouldUseInteractiveCli(flags, ctx) {
90
+ return (ctx.stdout === output &&
91
+ ctx.stderr === output &&
92
+ Boolean(input.isTTY) &&
93
+ Boolean(output.isTTY) &&
94
+ !hasFlag(flags, ["json", "plain", "no-ui"]));
95
+ }
96
+ function asTrimmedString(value) {
97
+ return typeof value === "string" ? value.trim() : "";
98
+ }
99
+ async function promptRefreshToken() {
100
+ const rl = readline.createInterface({ input, output });
101
+ try {
102
+ const value = await rl.question("Instant refresh token: ");
103
+ return String(value ?? "").trim();
104
+ }
105
+ finally {
106
+ rl.close();
107
+ }
108
+ }
109
+ function sortJsonValue(value) {
110
+ if (Array.isArray(value)) {
111
+ return value.map((entry) => sortJsonValue(entry));
112
+ }
113
+ if (!value || typeof value !== "object") {
114
+ return value;
115
+ }
116
+ const sorted = {};
117
+ for (const key of Object.keys(value).sort()) {
118
+ sorted[key] = sortJsonValue(value[key]);
119
+ }
120
+ return sorted;
121
+ }
122
+ function toJsonText(value, flags) {
123
+ const pretty = hasFlag(flags ?? new Map(), ["pretty"]);
124
+ const normalized = sortJsonValue(value);
125
+ return `${JSON.stringify(normalized, null, pretty ? 2 : 0)}\n`;
126
+ }
127
+ function writeJson(stream, value, flags) {
128
+ stream.write(toJsonText(value, flags));
129
+ }
130
+ async function readStdinText() {
131
+ let data = "";
132
+ for await (const chunk of input) {
133
+ data += typeof chunk === "string" ? chunk : Buffer.from(chunk).toString("utf8");
134
+ }
135
+ return data;
136
+ }
137
+ async function readInputText(raw) {
138
+ const source = String(raw ?? "").trim();
139
+ if (!source || source === "-") {
140
+ if (input.isTTY)
141
+ return "";
142
+ return await readStdinText();
143
+ }
144
+ if (source.startsWith("@")) {
145
+ const filePath = source.slice(1).trim();
146
+ if (!filePath) {
147
+ throw new Error("input file path is required after @");
148
+ }
149
+ return await readFile(filePath, "utf8");
150
+ }
151
+ return source;
152
+ }
153
+ async function parseJsonInput(raw, label) {
154
+ const text = String(await readInputText(raw)).trim();
155
+ if (!text)
156
+ return {};
157
+ try {
158
+ return JSON5.parse(text);
159
+ }
160
+ catch (error) {
161
+ throw new Error(`${label} must be valid JSON5: ${error instanceof Error ? error.message : String(error)}`);
162
+ }
163
+ }
164
+ async function resolveSession(flags) {
165
+ const stored = await readCliSession();
166
+ const baseUrlFlag = flagValue(flags, ["baseUrl", "base-url"]);
167
+ const appIdFlag = flagValue(flags, ["appId", "app-id"]);
168
+ const refreshTokenFlag = flagValue(flags, ["refreshToken", "refresh-token"]);
169
+ const apiURIFlag = flagValue(flags, ["apiURI", "api-uri"]);
170
+ const baseUrl = asTrimmedString(baseUrlFlag) ||
171
+ asTrimmedString(process.env.EKAIROS_DOMAIN_BASE_URL) ||
172
+ asTrimmedString(stored?.baseUrl);
173
+ return {
174
+ baseUrl: baseUrl ? normalizeBaseUrl(baseUrl) : "",
175
+ appId: asTrimmedString(appIdFlag) ||
176
+ asTrimmedString(process.env.EKAIROS_DOMAIN_APP_ID) ||
177
+ asTrimmedString(stored?.appId),
178
+ refreshToken: asTrimmedString(refreshTokenFlag) ||
179
+ asTrimmedString(process.env.EKAIROS_REFRESH_TOKEN) ||
180
+ asTrimmedString(stored?.refreshToken),
181
+ apiURI: asTrimmedString(apiURIFlag) ||
182
+ asTrimmedString(process.env.EKAIROS_DOMAIN_API_URI) ||
183
+ asTrimmedString(stored?.apiURI) ||
184
+ "https://api.instantdb.com",
185
+ };
186
+ }
187
+ function resolveAuthContext(flags, session) {
188
+ const asEmail = asTrimmedString(flagValue(flags, ["as-email", "asEmail"]));
189
+ const asToken = asTrimmedString(flagValue(flags, ["as-token", "asToken"])) || session.refreshToken;
190
+ const asGuest = hasFlag(flags, ["as-guest", "asGuest"]);
191
+ const admin = hasFlag(flags, ["admin"]);
192
+ const explicitContexts = [
193
+ admin ? "admin" : null,
194
+ asEmail ? "email" : null,
195
+ asGuest ? "guest" : null,
196
+ asTrimmedString(flagValue(flags, ["as-token", "asToken"])) ? "token" : null,
197
+ ].filter(Boolean);
198
+ if (explicitContexts.length > 1) {
199
+ throw new Error("Please specify exactly one context: --admin, --as-email <email>, --as-guest, or --as-token <token>");
200
+ }
201
+ if (admin)
202
+ return { mode: "admin" };
203
+ if (asEmail)
204
+ return { mode: "email", email: asEmail };
205
+ if (asGuest)
206
+ return { mode: "guest" };
207
+ if (asToken)
208
+ return { mode: "token", refreshToken: asToken };
209
+ return { mode: "admin" };
210
+ }
211
+ async function commandLogin(args, ctx) {
212
+ const { positionals, flags } = parseFlags(args);
213
+ const baseUrl = normalizeBaseUrl(positionals[0] ?? "");
214
+ let refreshToken = asTrimmedString(flagValue(flags, ["refreshToken", "refresh-token"])) ||
215
+ asTrimmedString(flagValue(flags, ["as-token", "asToken"])) ||
216
+ asTrimmedString(process.env.EKAIROS_REFRESH_TOKEN);
217
+ if (!refreshToken) {
218
+ refreshToken = await promptRefreshToken();
219
+ }
220
+ if (!refreshToken) {
221
+ throw new Error("refreshToken is required");
222
+ }
223
+ const manifest = await fetchDomainManifest({ baseUrl, refreshToken });
224
+ const appId = asTrimmedString(flagValue(flags, ["appId", "app-id"])) ||
225
+ asTrimmedString(manifest.instant.appId);
226
+ if (!appId) {
227
+ throw new Error("appId is required. Pass --appId=... or expose it from the domain endpoint.");
228
+ }
229
+ const runtime = new ClientRuntime({
230
+ appId,
231
+ refreshToken,
232
+ apiURI: asTrimmedString(manifest.instant.apiURI) || "https://api.instantdb.com",
233
+ });
234
+ const user = await runtime.verify();
235
+ await writeCliSession({
236
+ version: 1,
237
+ baseUrl,
238
+ appId,
239
+ refreshToken,
240
+ apiURI: runtime.apiURI,
241
+ savedAt: new Date().toISOString(),
242
+ });
243
+ writeJson(ctx.stdout, {
244
+ ok: true,
245
+ command: "login",
246
+ data: {
247
+ actions: manifest.actions.map((action) => action.key || action.name),
248
+ actor: {
249
+ email: user.email ?? null,
250
+ id: user.id,
251
+ isGuest: user.isGuest,
252
+ },
253
+ appId,
254
+ baseUrl,
255
+ entities: Array.isArray(manifest.domain?.entities)
256
+ ? manifest.domain.entities.length
257
+ : null,
258
+ },
259
+ }, flags);
260
+ }
261
+ async function commandInspect(args, ctx) {
262
+ const { positionals, flags } = parseFlags(args);
263
+ const session = await resolveSession(flags);
264
+ if (!session.baseUrl) {
265
+ throw new Error("baseUrl is required. Run login first or pass --baseUrl=<url>.");
266
+ }
267
+ const auth = resolveAuthContext(flags, session);
268
+ const manifest = await fetchDomainManifest({
269
+ baseUrl: session.baseUrl,
270
+ refreshToken: auth.mode === "token" ? auth.refreshToken : undefined,
271
+ });
272
+ const filter = String(positionals[0] ?? "").trim().toLowerCase();
273
+ const actions = manifest.actions.filter((action) => {
274
+ if (!filter)
275
+ return true;
276
+ return (String(action.name ?? "").toLowerCase().includes(filter) ||
277
+ String(action.key ?? "").toLowerCase().includes(filter));
278
+ });
279
+ writeJson(ctx.stdout, {
280
+ ok: true,
281
+ command: "inspect",
282
+ data: {
283
+ actions,
284
+ appId: manifest.instant.appId ?? session.appId,
285
+ auth: manifest.auth,
286
+ baseUrl: session.baseUrl,
287
+ contextString: manifest.contextString ?? null,
288
+ entities: manifest.domain?.entities ?? [],
289
+ links: manifest.domain?.links ?? [],
290
+ rooms: manifest.domain?.rooms ?? [],
291
+ },
292
+ }, flags);
293
+ }
294
+ async function commandCreateApp(args, ctx) {
295
+ const { positionals, flags } = parseFlags(args);
296
+ if (!hasFlag(flags, ["next"])) {
297
+ throw new Error("create-app currently requires --next");
298
+ }
299
+ const directory = String(positionals[0] ?? ".").trim() || ".";
300
+ const install = flagValue(flags, ["install"]) !== false;
301
+ const params = {
302
+ directory,
303
+ framework: "next",
304
+ install,
305
+ force: hasFlag(flags, ["force"]),
306
+ packageManager: asTrimmedString(flagValue(flags, ["packageManager", "package-manager"])),
307
+ workspacePath: asTrimmedString(flagValue(flags, ["workspace"])),
308
+ instantToken: asTrimmedString(flagValue(flags, ["instantToken", "instant-token"])) ||
309
+ asTrimmedString(process.env.INSTANT_PERSONAL_ACCESS_TOKEN) ||
310
+ asTrimmedString(process.env.INSTANTDB_PERSONAL_ACCESS_TOKEN) ||
311
+ asTrimmedString(process.env.INSTANT_PLATFORM_ACCESS_TOKEN),
312
+ orgId: asTrimmedString(flagValue(flags, ["orgId", "org-id"])),
313
+ appId: asTrimmedString(flagValue(flags, ["appId", "app-id"])),
314
+ adminToken: asTrimmedString(flagValue(flags, ["adminToken", "admin-token"])),
315
+ };
316
+ const interactive = shouldUseInteractiveCli(flags, ctx);
317
+ const result = interactive
318
+ ? await runCreateAppInk(params)
319
+ : await createDomainApp(params);
320
+ if (interactive) {
321
+ return;
322
+ }
323
+ writeJson(ctx.stdout, {
324
+ ok: true,
325
+ command: "create-app",
326
+ data: result,
327
+ }, flags);
328
+ }
329
+ async function commandQuery(args, ctx) {
330
+ const { positionals, flags } = parseFlags(args);
331
+ const session = await resolveSession(flags);
332
+ if (!session.baseUrl) {
333
+ throw new Error("baseUrl is required. Run login first or pass --baseUrl=<url>.");
334
+ }
335
+ const query = (await parseJsonInput(positionals[0], "query"));
336
+ const envFlag = flagValue(flags, ["env"]);
337
+ const env = typeof envFlag === "string" && envFlag.trim()
338
+ ? (await parseJsonInput(envFlag, "env"))
339
+ : undefined;
340
+ const auth = resolveAuthContext(flags, session);
341
+ const envelope = hasFlag(flags, ["envelope", "meta"]);
342
+ const preferServer = auth.mode !== "token" || hasFlag(flags, ["remote"]);
343
+ if (!preferServer && session.appId) {
344
+ const manifest = await fetchDomainManifest({
345
+ baseUrl: session.baseUrl,
346
+ refreshToken: auth.refreshToken,
347
+ });
348
+ const runtime = new ClientRuntime({
349
+ appId: session.appId,
350
+ refreshToken: auth.refreshToken,
351
+ apiURI: session.apiURI,
352
+ });
353
+ const result = await runtime.query(query, manifest.schema);
354
+ const data = result && typeof result === "object" && "data" in result
355
+ ? result.data
356
+ : result;
357
+ writeJson(ctx.stdout, envelope ? { ok: true, source: "client", data } : data, flags);
358
+ return;
359
+ }
360
+ const result = await postDomainQuery({
361
+ baseUrl: session.baseUrl,
362
+ appId: session.appId || undefined,
363
+ refreshToken: auth.mode === "token" ? auth.refreshToken : undefined,
364
+ query,
365
+ env,
366
+ admin: auth.mode === "admin",
367
+ asEmail: auth.mode === "email" ? auth.email : undefined,
368
+ asGuest: auth.mode === "guest",
369
+ });
370
+ if (!result.ok) {
371
+ throw new Error(result.error || "domain_query_failed");
372
+ }
373
+ writeJson(ctx.stdout, envelope
374
+ ? {
375
+ ok: true,
376
+ source: "server",
377
+ data: result.data ?? {},
378
+ truncated: result.truncated ?? null,
379
+ }
380
+ : (result.data ?? {}), flags);
381
+ }
382
+ async function commandAction(actionName, args, ctx) {
383
+ const { positionals, flags } = parseFlags(args);
384
+ const session = await resolveSession(flags);
385
+ if (!session.baseUrl) {
386
+ throw new Error("baseUrl is required. Run login first or pass --baseUrl=<url>.");
387
+ }
388
+ const inputValue = await parseJsonInput(positionals[0], "action input");
389
+ const envFlag = flagValue(flags, ["env"]);
390
+ const env = typeof envFlag === "string" && envFlag.trim()
391
+ ? (await parseJsonInput(envFlag, "env"))
392
+ : undefined;
393
+ const auth = resolveAuthContext(flags, session);
394
+ const manifest = await fetchDomainManifest({
395
+ baseUrl: session.baseUrl,
396
+ refreshToken: auth.mode === "token" ? auth.refreshToken : undefined,
397
+ });
398
+ const resolvedActionName = manifest.actions.find((entry) => entry.name === actionName || String(entry.key ?? "") === actionName)?.name ?? actionName;
399
+ const result = await postDomainAction({
400
+ baseUrl: session.baseUrl,
401
+ appId: session.appId || undefined,
402
+ refreshToken: auth.mode === "token" ? auth.refreshToken : undefined,
403
+ action: resolvedActionName,
404
+ input: inputValue,
405
+ env,
406
+ admin: auth.mode === "admin",
407
+ asEmail: auth.mode === "email" ? auth.email : undefined,
408
+ asGuest: auth.mode === "guest",
409
+ });
410
+ if (!result.ok) {
411
+ throw new Error(result.error || "domain_action_failed");
412
+ }
413
+ writeJson(ctx.stdout, {
414
+ ok: true,
415
+ command: "action",
416
+ data: result,
417
+ }, flags);
418
+ }
419
+ async function commandLogout(args, ctx) {
420
+ const { flags } = parseFlags(args);
421
+ await clearCliSession();
422
+ writeJson(ctx.stdout, {
423
+ ok: true,
424
+ command: "logout",
425
+ data: { cleared: true },
426
+ }, flags);
427
+ }
428
+ export async function runCli(argv, ctx = { stdout: output, stderr: output }) {
429
+ const [command, ...rest] = argv;
430
+ try {
431
+ if (!command || command === "help" || command === "--help" || command === "-h") {
432
+ printHelp(ctx);
433
+ return 0;
434
+ }
435
+ if (command === "login") {
436
+ await commandLogin(rest, ctx);
437
+ return 0;
438
+ }
439
+ if (command === "inspect") {
440
+ await commandInspect(rest, ctx);
441
+ return 0;
442
+ }
443
+ if (command === "create-app") {
444
+ await commandCreateApp(rest, ctx);
445
+ return 0;
446
+ }
447
+ if (command === "query") {
448
+ await commandQuery(rest, ctx);
449
+ return 0;
450
+ }
451
+ if (command === "action") {
452
+ const [actionName, ...args] = rest;
453
+ if (!actionName)
454
+ throw new Error("action name is required");
455
+ await commandAction(actionName, args, ctx);
456
+ return 0;
457
+ }
458
+ if (command === "logout") {
459
+ await commandLogout(rest, ctx);
460
+ return 0;
461
+ }
462
+ await commandAction(command, rest, ctx);
463
+ return 0;
464
+ }
465
+ catch (error) {
466
+ writeJson(ctx.stderr, {
467
+ ok: false,
468
+ error: error instanceof Error ? error.message : String(error),
469
+ }, new Map());
470
+ return 1;
471
+ }
472
+ }
473
+ const isDirectExecution = (() => {
474
+ const current = process.argv[1] ?? "";
475
+ const normalized = current.replace(/\\/g, "/");
476
+ const fileName = normalized.split("/").pop() ?? "";
477
+ return (current.endsWith("bin.js") ||
478
+ current.endsWith("bin.ts") ||
479
+ fileName === "ekairos-domain" ||
480
+ fileName === "ekairos-domain.cmd" ||
481
+ fileName === "ekairos-domain.ps1");
482
+ })();
483
+ if (isDirectExecution) {
484
+ runCli(process.argv.slice(2)).then((code) => {
485
+ process.exitCode = code;
486
+ });
487
+ }
488
+ //# sourceMappingURL=bin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type InstantSchemaDef, type User } from "@instantdb/core";
2
+ export type ClientRuntimeParams = {
3
+ appId: string;
4
+ refreshToken: string;
5
+ apiURI?: string;
6
+ schema?: InstantSchemaDef<any, any, any>;
7
+ };
8
+ export declare class ClientRuntime {
9
+ readonly appId: string;
10
+ readonly refreshToken: string;
11
+ readonly apiURI: string;
12
+ readonly env: {
13
+ appId: string;
14
+ refreshToken: string;
15
+ };
16
+ constructor(params: ClientRuntimeParams);
17
+ private createDb;
18
+ verify(): Promise<User>;
19
+ query(query: Record<string, unknown>, schema?: InstantSchemaDef<any, any, any> | unknown): Promise<{
20
+ data: any;
21
+ pageInfo?: any;
22
+ aggregate?: any;
23
+ }>;
24
+ }
25
+ //# sourceMappingURL=client-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-runtime.d.ts","sourceRoot":"","sources":["../../src/cli/client-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,gBAAgB,EACrB,KAAK,IAAI,EACV,MAAM,iBAAiB,CAAA;AAExB,MAAM,MAAM,mBAAmB,GAAG;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAA;CACzC,CAAA;AAED,qBAAa,aAAa;IACxB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAA;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,GAAG,EAAE;QACZ,KAAK,EAAE,MAAM,CAAA;QACb,YAAY,EAAE,MAAM,CAAA;KACrB,CAAA;gBAEW,MAAM,EAAE,mBAAmB;IAkBvC,OAAO,CAAC,QAAQ;IAaV,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAqBvB,KAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,gBAAgB,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,OAAO;;;;;CAe/F"}
@@ -0,0 +1,60 @@
1
+ import { FrameworkClient, init, parseSchemaFromJSON, } from "@instantdb/core";
2
+ export class ClientRuntime {
3
+ constructor(params) {
4
+ this.appId = String(params.appId ?? "").trim();
5
+ this.refreshToken = String(params.refreshToken ?? "").trim();
6
+ this.apiURI = String(params.apiURI ?? "https://api.instantdb.com").trim();
7
+ if (!this.appId) {
8
+ throw new Error("ClientRuntime requires appId");
9
+ }
10
+ if (!this.refreshToken) {
11
+ throw new Error("ClientRuntime requires refreshToken");
12
+ }
13
+ this.env = {
14
+ appId: this.appId,
15
+ refreshToken: this.refreshToken,
16
+ };
17
+ }
18
+ createDb(schema) {
19
+ const parsedSchema = schema && typeof schema === "object"
20
+ ? parseSchemaFromJSON(schema)
21
+ : undefined;
22
+ return init({
23
+ appId: this.appId,
24
+ apiURI: this.apiURI,
25
+ useDateObjects: true,
26
+ ...(parsedSchema ? { schema: parsedSchema } : {}),
27
+ });
28
+ }
29
+ async verify() {
30
+ const response = await fetch(`${this.apiURI}/runtime/auth/verify_refresh_token`, {
31
+ method: "POST",
32
+ headers: {
33
+ "content-type": "application/json",
34
+ },
35
+ body: JSON.stringify({
36
+ "app-id": this.appId,
37
+ "refresh-token": this.refreshToken,
38
+ }),
39
+ });
40
+ if (!response.ok) {
41
+ throw new Error(`refresh_token_verify_failed:${response.status}`);
42
+ }
43
+ const data = (await response.json());
44
+ if (!data?.user) {
45
+ throw new Error("refresh_token_verify_failed");
46
+ }
47
+ return data.user;
48
+ }
49
+ async query(query, schema) {
50
+ const db = this.createDb(schema);
51
+ const client = new FrameworkClient({
52
+ db,
53
+ token: this.refreshToken,
54
+ });
55
+ const { query: coerced } = client.hashQuery(query);
56
+ const payload = await client.getTriplesAndAttrsForQuery(coerced);
57
+ return client.completeIsomorphic(payload.query, payload.triples, payload.attrs, payload.pageInfo);
58
+ }
59
+ }
60
+ //# sourceMappingURL=client-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-runtime.js","sourceRoot":"","sources":["../../src/cli/client-runtime.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ import type { DomainCliSession } from "./types.js";
2
+ export declare function readCliSession(): Promise<DomainCliSession | null>;
3
+ export declare function writeCliSession(session: DomainCliSession): Promise<void>;
4
+ export declare function clearCliSession(): Promise<void>;
5
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/cli/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAYlD,wBAAsB,cAAc,IAAI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAWvE;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CAI9E;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CASrD"}