vibes-diy 2.2.12 → 2.2.13-dev.1

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 (40) hide show
  1. package/cli/cmd-evento.js +18 -1
  2. package/cli/cmd-evento.js.map +1 -1
  3. package/cli/cmd-evento.test.d.ts +1 -0
  4. package/cli/cmd-evento.test.js +11 -0
  5. package/cli/cmd-evento.test.js.map +1 -0
  6. package/cli/cmds/db/del-cmd.d.ts +42 -0
  7. package/cli/cmds/db/del-cmd.js +83 -0
  8. package/cli/cmds/db/del-cmd.js.map +1 -0
  9. package/cli/cmds/db/get-cmd.d.ts +43 -0
  10. package/cli/cmds/db/get-cmd.js +85 -0
  11. package/cli/cmds/db/get-cmd.js.map +1 -0
  12. package/cli/cmds/db/index.d.ts +188 -0
  13. package/cli/cmds/db/index.js +28 -0
  14. package/cli/cmds/db/index.js.map +1 -0
  15. package/cli/cmds/db/list-cmd.d.ts +37 -0
  16. package/cli/cmds/db/list-cmd.js +65 -0
  17. package/cli/cmds/db/list-cmd.js.map +1 -0
  18. package/cli/cmds/db/put-cmd.d.ts +45 -0
  19. package/cli/cmds/db/put-cmd.js +99 -0
  20. package/cli/cmds/db/put-cmd.js.map +1 -0
  21. package/cli/cmds/db/query-cmd.d.ts +58 -0
  22. package/cli/cmds/db/query-cmd.js +166 -0
  23. package/cli/cmds/db/query-cmd.js.map +1 -0
  24. package/cli/cmds/db/shared.d.ts +15 -0
  25. package/cli/cmds/db/shared.js +42 -0
  26. package/cli/cmds/db/shared.js.map +1 -0
  27. package/cli/cmds/db/subscribe-cmd.d.ts +32 -0
  28. package/cli/cmds/db/subscribe-cmd.js +66 -0
  29. package/cli/cmds/db/subscribe-cmd.js.map +1 -0
  30. package/cli/cmds/edit-cmd.d.ts +52 -0
  31. package/cli/cmds/edit-cmd.js +222 -0
  32. package/cli/cmds/edit-cmd.js.map +1 -0
  33. package/cli/cmds/edit-cmd.test.d.ts +1 -0
  34. package/cli/cmds/edit-cmd.test.js +297 -0
  35. package/cli/cmds/edit-cmd.test.js.map +1 -0
  36. package/cli/cmds/resolve-section-stream.test.js +20 -0
  37. package/cli/cmds/resolve-section-stream.test.js.map +1 -1
  38. package/cli/main.js +29 -0
  39. package/cli/main.js.map +1 -1
  40. package/package.json +6 -5
package/cli/cmd-evento.js CHANGED
@@ -5,6 +5,8 @@ import { systemEvento } from "./cmds/system-cmd.js";
5
5
  import { pushEvento } from "./cmds/push-cmd.js";
6
6
  import { putAssetEvento } from "./cmds/put-asset-cmd.js";
7
7
  import { generateEvento } from "./cmds/generate-cmd.js";
8
+ import { dbListEvento, dbGetEvento, dbPutEvento, dbDelEvento, dbQueryEvento, dbSubscribeEvento } from "./cmds/db/index.js";
9
+ import { editEvento } from "./cmds/edit-cmd.js";
8
10
  import { deviceIdRegisterEvento, isCmdProgress, isCmdTSMsg, sendProgress, } from "@fireproof/core-cli";
9
11
  export { isCmdProgress, sendProgress };
10
12
  export async function sendMsg(ctx, result) {
@@ -24,7 +26,22 @@ export function cmdTsEvento() {
24
26
  },
25
27
  decode: (i) => Promise.resolve(Result.Ok(i)),
26
28
  });
27
- evento.push([userSettingsEvento, skillsEvento, systemEvento, pushEvento, putAssetEvento, generateEvento, deviceIdRegisterEvento]);
29
+ evento.push([
30
+ userSettingsEvento,
31
+ skillsEvento,
32
+ systemEvento,
33
+ pushEvento,
34
+ putAssetEvento,
35
+ generateEvento,
36
+ editEvento,
37
+ deviceIdRegisterEvento,
38
+ dbListEvento,
39
+ dbGetEvento,
40
+ dbPutEvento,
41
+ dbDelEvento,
42
+ dbQueryEvento,
43
+ dbSubscribeEvento,
44
+ ]);
28
45
  return evento;
29
46
  }
30
47
  //# sourceMappingURL=cmd-evento.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"cmd-evento.js","sourceRoot":"","sources":["../../jsr/cli/cmd-evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAsC,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,YAAY,GAIb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAkD,EAClD,MAAS;IAET,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QACvB,GAAG,GAAG,CAAC,OAAO;QACd,MAAM;KACmB,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC7C,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC,CAAC,kBAAkB,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,sBAAsB,CAAC,CAAC,CAAC;IAClI,OAAO,MAAM,CAAC;AAChB,CAAC"}
1
+ {"version":3,"file":"cmd-evento.js","sourceRoot":"","sources":["../../jsr/cli/cmd-evento.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAsC,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnG,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAC3H,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EACL,sBAAsB,EACtB,aAAa,EACb,UAAU,EACV,YAAY,GAIb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,OAAO,CAC3B,GAAkD,EAClD,MAAS;IAET,MAAM,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;QACvB,GAAG,GAAG,CAAC,OAAO;QACd,MAAM;KACmB,CAAC,CAAC;IAC7B,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC;QACxB,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;YACZ,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;gBAClB,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;KAC7C,CAAC,CAAC;IACH,MAAM,CAAC,IAAI,CAAC;QACV,kBAAkB;QAClB,YAAY;QACZ,YAAY;QACZ,UAAU;QACV,cAAc;QACd,cAAc;QACd,UAAU;QACV,sBAAsB;QACtB,YAAY;QACZ,WAAW;QACX,WAAW;QACX,WAAW;QACX,aAAa;QACb,iBAAiB;KAClB,CAAC,CAAC;IACH,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,11 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { cmdTsEvento } from "./cmd-evento.js";
3
+ describe("cmdTsEvento", () => {
4
+ it("registers the edit command handler", () => {
5
+ const handlers = cmdTsEvento()
6
+ .handlers()
7
+ .actions.map((h) => h.hash);
8
+ expect(handlers).toContain("use-vibes.cli.edit");
9
+ });
10
+ });
11
+ //# sourceMappingURL=cmd-evento.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cmd-evento.test.js","sourceRoot":"","sources":["../../jsr/cli/cmd-evento.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC3B,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC5C,MAAM,QAAQ,GAAG,WAAW,EAAE;aAC3B,QAAQ,EAAE;aACV,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC9B,MAAM,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,oBAAoB,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ import type { EventoHandler } from "@adviser/cement";
2
+ import type { CliCtx } from "../../cli-ctx.js";
3
+ import { WrapCmdTSMsg } from "../../cmd-evento.js";
4
+ export declare const ReqDbDel: import("arktype/internal/variants/object.ts").ObjectType<{
5
+ type: "vibes-diy.cli.db.del";
6
+ apiUrl: string;
7
+ appSlug: string;
8
+ userSlug: string;
9
+ dbName: string;
10
+ docId: string;
11
+ }, {}>;
12
+ export type ReqDbDel = typeof ReqDbDel.infer;
13
+ export declare function isReqDbDel(obj: unknown): obj is ReqDbDel;
14
+ export declare const ResDbDel: import("arktype/internal/variants/object.ts").ObjectType<{
15
+ type: "vibes-diy.cli.db.del-res";
16
+ id: string;
17
+ ok: true;
18
+ }, {}>;
19
+ export type ResDbDel = typeof ResDbDel.infer;
20
+ export declare function isResDbDel(obj: unknown): obj is ResDbDel;
21
+ export declare const dbDelEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqDbDel, ResDbDel>;
22
+ export declare function dbDelCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
23
+ parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
24
+ appSlug: string;
25
+ userSlug: string;
26
+ dbName: string;
27
+ docId: string;
28
+ apiUrl: string;
29
+ json: boolean;
30
+ text: boolean;
31
+ }>>;
32
+ } & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
33
+ appSlug: string;
34
+ userSlug: string;
35
+ dbName: string;
36
+ docId: string;
37
+ apiUrl: string;
38
+ json: boolean;
39
+ text: boolean;
40
+ }, never> & {
41
+ run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
42
+ } & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
@@ -0,0 +1,83 @@
1
+ import { command, positional, string } from "cmd-ts";
2
+ import { type } from "arktype";
3
+ import { Result, Option } from "@adviser/cement";
4
+ import { FireflyApiAdapter } from "@vibes.diy/api-impl";
5
+ import { isResDeleteDoc } from "@vibes.diy/api-types";
6
+ import { cmdTsDefaultArgs } from "../../cli-ctx.js";
7
+ import { sendMsg } from "../../cmd-evento.js";
8
+ import { dbCommonArgs, resolveUserSlug } from "./shared.js";
9
+ export const ReqDbDel = type({
10
+ type: "'vibes-diy.cli.db.del'",
11
+ apiUrl: "string",
12
+ appSlug: "string",
13
+ userSlug: "string",
14
+ dbName: "string",
15
+ docId: "string",
16
+ });
17
+ export function isReqDbDel(obj) {
18
+ return !(ReqDbDel(obj) instanceof type.errors);
19
+ }
20
+ export const ResDbDel = type({
21
+ type: "'vibes-diy.cli.db.del-res'",
22
+ id: "string",
23
+ ok: "true",
24
+ });
25
+ export function isResDbDel(obj) {
26
+ return !(ResDbDel(obj) instanceof type.errors);
27
+ }
28
+ export const dbDelEvento = {
29
+ hash: "vibes-diy.cli.db.del",
30
+ validate: (ctx) => {
31
+ if (isReqDbDel(ctx.enRequest)) {
32
+ return Promise.resolve(Result.Ok(Option.Some(ctx.enRequest)));
33
+ }
34
+ return Promise.resolve(Result.Ok(Option.None()));
35
+ },
36
+ handle: async (ctx) => {
37
+ const ectx = ctx.ctx.getOrThrow("cliCtx");
38
+ if (ectx.vibesDiyApiFactory === undefined) {
39
+ return Result.Err("Not logged in. Run 'vibes-diy login' first.");
40
+ }
41
+ const api = ectx.vibesDiyApiFactory(ctx.validated.apiUrl);
42
+ const rUser = await resolveUserSlug(api, ctx.validated.userSlug);
43
+ if (rUser.isErr())
44
+ return Result.Err(rUser.Err());
45
+ const adapter = new FireflyApiAdapter(api, ctx.validated.appSlug, { userSlug: rUser.Ok() });
46
+ const r = await adapter.deleteDoc(ctx.validated.docId, ctx.validated.dbName);
47
+ if (r.isErr())
48
+ return Result.Err(r.Err());
49
+ const res = r.Ok();
50
+ if (!isResDeleteDoc(res)) {
51
+ return Result.Err(`Unexpected response: ${JSON.stringify(res)}`);
52
+ }
53
+ return sendMsg(ctx, {
54
+ type: "vibes-diy.cli.db.del-res",
55
+ id: res.id,
56
+ ok: true,
57
+ });
58
+ },
59
+ };
60
+ export function dbDelCmd(ctx) {
61
+ return command({
62
+ name: "del",
63
+ description: "Delete a document by ID",
64
+ args: {
65
+ ...cmdTsDefaultArgs(ctx),
66
+ ...dbCommonArgs(ctx),
67
+ docId: positional({
68
+ type: string,
69
+ displayName: "docId",
70
+ description: "Document ID to delete",
71
+ }),
72
+ },
73
+ handler: ctx.cliStream.enqueue((args) => ({
74
+ type: "vibes-diy.cli.db.del",
75
+ apiUrl: args.apiUrl,
76
+ appSlug: args.appSlug,
77
+ userSlug: args.userSlug,
78
+ dbName: args.dbName,
79
+ docId: args.docId,
80
+ })),
81
+ });
82
+ }
83
+ //# sourceMappingURL=del-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"del-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/del-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,43 @@
1
+ import type { EventoHandler } from "@adviser/cement";
2
+ import type { CliCtx } from "../../cli-ctx.js";
3
+ import { WrapCmdTSMsg } from "../../cmd-evento.js";
4
+ export declare const ReqDbGet: import("arktype/internal/variants/object.ts").ObjectType<{
5
+ type: "vibes-diy.cli.db.get";
6
+ apiUrl: string;
7
+ appSlug: string;
8
+ userSlug: string;
9
+ dbName: string;
10
+ docId: string;
11
+ }, {}>;
12
+ export type ReqDbGet = typeof ReqDbGet.infer;
13
+ export declare function isReqDbGet(obj: unknown): obj is ReqDbGet;
14
+ export declare const ResDbGet: import("arktype/internal/variants/object.ts").ObjectType<{
15
+ type: "vibes-diy.cli.db.get-res";
16
+ doc: {
17
+ [x: string]: unknown;
18
+ };
19
+ }, {}>;
20
+ export type ResDbGet = typeof ResDbGet.infer;
21
+ export declare function isResDbGet(obj: unknown): obj is ResDbGet;
22
+ export declare const dbGetEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqDbGet, ResDbGet>;
23
+ export declare function dbGetCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
24
+ parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
25
+ appSlug: string;
26
+ userSlug: string;
27
+ dbName: string;
28
+ docId: string;
29
+ apiUrl: string;
30
+ json: boolean;
31
+ text: boolean;
32
+ }>>;
33
+ } & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
34
+ appSlug: string;
35
+ userSlug: string;
36
+ dbName: string;
37
+ docId: string;
38
+ apiUrl: string;
39
+ json: boolean;
40
+ text: boolean;
41
+ }, never> & {
42
+ run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
43
+ } & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
@@ -0,0 +1,85 @@
1
+ import { command, positional, string } from "cmd-ts";
2
+ import { type } from "arktype";
3
+ import { Result, Option } from "@adviser/cement";
4
+ import { FireflyApiAdapter } from "@vibes.diy/api-impl";
5
+ import { isResGetDoc, isResGetDocNotFound } from "@vibes.diy/api-types";
6
+ import { cmdTsDefaultArgs } from "../../cli-ctx.js";
7
+ import { sendMsg } from "../../cmd-evento.js";
8
+ import { dbCommonArgs, resolveUserSlug } from "./shared.js";
9
+ export const ReqDbGet = type({
10
+ type: "'vibes-diy.cli.db.get'",
11
+ apiUrl: "string",
12
+ appSlug: "string",
13
+ userSlug: "string",
14
+ dbName: "string",
15
+ docId: "string",
16
+ });
17
+ export function isReqDbGet(obj) {
18
+ return !(ReqDbGet(obj) instanceof type.errors);
19
+ }
20
+ export const ResDbGet = type({
21
+ type: "'vibes-diy.cli.db.get-res'",
22
+ doc: type({ "[string]": "unknown" }),
23
+ });
24
+ export function isResDbGet(obj) {
25
+ return !(ResDbGet(obj) instanceof type.errors);
26
+ }
27
+ export const dbGetEvento = {
28
+ hash: "vibes-diy.cli.db.get",
29
+ validate: (ctx) => {
30
+ if (isReqDbGet(ctx.enRequest)) {
31
+ return Promise.resolve(Result.Ok(Option.Some(ctx.enRequest)));
32
+ }
33
+ return Promise.resolve(Result.Ok(Option.None()));
34
+ },
35
+ handle: async (ctx) => {
36
+ const ectx = ctx.ctx.getOrThrow("cliCtx");
37
+ if (ectx.vibesDiyApiFactory === undefined) {
38
+ return Result.Err("Not logged in. Run 'vibes-diy login' first.");
39
+ }
40
+ const api = ectx.vibesDiyApiFactory(ctx.validated.apiUrl);
41
+ const rUser = await resolveUserSlug(api, ctx.validated.userSlug);
42
+ if (rUser.isErr())
43
+ return Result.Err(rUser.Err());
44
+ const adapter = new FireflyApiAdapter(api, ctx.validated.appSlug, { userSlug: rUser.Ok() });
45
+ const r = await adapter.getDoc(ctx.validated.docId, ctx.validated.dbName);
46
+ if (r.isErr())
47
+ return Result.Err(r.Err());
48
+ const res = r.Ok();
49
+ if (isResGetDocNotFound(res)) {
50
+ return Result.Err(`Document not found: ${ctx.validated.docId}`);
51
+ }
52
+ if (!isResGetDoc(res)) {
53
+ return Result.Err(`Unexpected response: ${JSON.stringify(res)}`);
54
+ }
55
+ const getRes = res;
56
+ return sendMsg(ctx, {
57
+ type: "vibes-diy.cli.db.get-res",
58
+ doc: { ...getRes.doc, _id: getRes.id },
59
+ });
60
+ },
61
+ };
62
+ export function dbGetCmd(ctx) {
63
+ return command({
64
+ name: "get",
65
+ description: "Get a document by ID",
66
+ args: {
67
+ ...cmdTsDefaultArgs(ctx),
68
+ ...dbCommonArgs(ctx),
69
+ docId: positional({
70
+ type: string,
71
+ displayName: "docId",
72
+ description: "Document ID to fetch",
73
+ }),
74
+ },
75
+ handler: ctx.cliStream.enqueue((args) => ({
76
+ type: "vibes-diy.cli.db.get",
77
+ apiUrl: args.apiUrl,
78
+ appSlug: args.appSlug,
79
+ userSlug: args.userSlug,
80
+ dbName: args.dbName,
81
+ docId: args.docId,
82
+ })),
83
+ });
84
+ }
85
+ //# sourceMappingURL=get-cmd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"get-cmd.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/get-cmd.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,188 @@
1
+ import type { CliCtx } from "../../cli-ctx.js";
2
+ export { dbListEvento, isResDbList, type ResDbList } from "./list-cmd.js";
3
+ export { dbGetEvento, isResDbGet, type ResDbGet } from "./get-cmd.js";
4
+ export { dbPutEvento, isResDbPut, type ResDbPut } from "./put-cmd.js";
5
+ export { dbDelEvento, isResDbDel, type ResDbDel } from "./del-cmd.js";
6
+ export { dbQueryEvento, isResDbQuery, type ResDbQuery } from "./query-cmd.js";
7
+ export { dbSubscribeEvento } from "./subscribe-cmd.js";
8
+ export declare function dbSubcommands(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
9
+ parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
10
+ command: "del";
11
+ args: {
12
+ appSlug: string;
13
+ userSlug: string;
14
+ dbName: string;
15
+ docId: string;
16
+ apiUrl: string;
17
+ json: boolean;
18
+ text: boolean;
19
+ };
20
+ } | {
21
+ command: "get";
22
+ args: {
23
+ appSlug: string;
24
+ userSlug: string;
25
+ dbName: string;
26
+ docId: string;
27
+ apiUrl: string;
28
+ json: boolean;
29
+ text: boolean;
30
+ };
31
+ } | {
32
+ command: "list";
33
+ args: {
34
+ appSlug: string;
35
+ userSlug: string;
36
+ dbName: string;
37
+ apiUrl: string;
38
+ json: boolean;
39
+ text: boolean;
40
+ };
41
+ } | {
42
+ command: "put";
43
+ args: {
44
+ appSlug: string;
45
+ userSlug: string;
46
+ dbName: string;
47
+ docJson: string;
48
+ docId: string;
49
+ apiUrl: string;
50
+ json: boolean;
51
+ text: boolean;
52
+ };
53
+ } | {
54
+ command: "query";
55
+ args: {
56
+ appSlug: string;
57
+ userSlug: string;
58
+ dbName: string;
59
+ field: string;
60
+ key: string;
61
+ prefix: string;
62
+ range: string;
63
+ limit: number;
64
+ descending: boolean;
65
+ apiUrl: string;
66
+ json: boolean;
67
+ text: boolean;
68
+ };
69
+ } | {
70
+ command: "subscribe";
71
+ args: {
72
+ appSlug: string;
73
+ userSlug: string;
74
+ dbName: string;
75
+ apiUrl: string;
76
+ json: boolean;
77
+ text: boolean;
78
+ };
79
+ }>>;
80
+ } & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
81
+ command: "del";
82
+ args: {
83
+ appSlug: string;
84
+ userSlug: string;
85
+ dbName: string;
86
+ docId: string;
87
+ apiUrl: string;
88
+ json: boolean;
89
+ text: boolean;
90
+ };
91
+ } | {
92
+ command: "get";
93
+ args: {
94
+ appSlug: string;
95
+ userSlug: string;
96
+ dbName: string;
97
+ docId: string;
98
+ apiUrl: string;
99
+ json: boolean;
100
+ text: boolean;
101
+ };
102
+ } | {
103
+ command: "list";
104
+ args: {
105
+ appSlug: string;
106
+ userSlug: string;
107
+ dbName: string;
108
+ apiUrl: string;
109
+ json: boolean;
110
+ text: boolean;
111
+ };
112
+ } | {
113
+ command: "put";
114
+ args: {
115
+ appSlug: string;
116
+ userSlug: string;
117
+ dbName: string;
118
+ docJson: string;
119
+ docId: string;
120
+ apiUrl: string;
121
+ json: boolean;
122
+ text: boolean;
123
+ };
124
+ } | {
125
+ command: "query";
126
+ args: {
127
+ appSlug: string;
128
+ userSlug: string;
129
+ dbName: string;
130
+ field: string;
131
+ key: string;
132
+ prefix: string;
133
+ range: string;
134
+ limit: number;
135
+ descending: boolean;
136
+ apiUrl: string;
137
+ json: boolean;
138
+ text: boolean;
139
+ };
140
+ } | {
141
+ command: "subscribe";
142
+ args: {
143
+ appSlug: string;
144
+ userSlug: string;
145
+ dbName: string;
146
+ apiUrl: string;
147
+ json: boolean;
148
+ text: boolean;
149
+ };
150
+ }, {
151
+ command: "del";
152
+ value: never;
153
+ } | {
154
+ command: "get";
155
+ value: never;
156
+ } | {
157
+ command: "list";
158
+ value: never;
159
+ } | {
160
+ command: "put";
161
+ value: never;
162
+ } | {
163
+ command: "query";
164
+ value: never;
165
+ } | {
166
+ command: "subscribe";
167
+ value: never;
168
+ }> & {
169
+ run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
170
+ command: "del";
171
+ value: never;
172
+ } | {
173
+ command: "get";
174
+ value: never;
175
+ } | {
176
+ command: "list";
177
+ value: never;
178
+ } | {
179
+ command: "put";
180
+ value: never;
181
+ } | {
182
+ command: "query";
183
+ value: never;
184
+ } | {
185
+ command: "subscribe";
186
+ value: never;
187
+ }>>;
188
+ };
@@ -0,0 +1,28 @@
1
+ import { subcommands } from "cmd-ts";
2
+ import { dbListCmd } from "./list-cmd.js";
3
+ import { dbGetCmd } from "./get-cmd.js";
4
+ import { dbPutCmd } from "./put-cmd.js";
5
+ import { dbDelCmd } from "./del-cmd.js";
6
+ import { dbQueryCmd } from "./query-cmd.js";
7
+ import { dbSubscribeCmd } from "./subscribe-cmd.js";
8
+ export { dbListEvento, isResDbList } from "./list-cmd.js";
9
+ export { dbGetEvento, isResDbGet } from "./get-cmd.js";
10
+ export { dbPutEvento, isResDbPut } from "./put-cmd.js";
11
+ export { dbDelEvento, isResDbDel } from "./del-cmd.js";
12
+ export { dbQueryEvento, isResDbQuery } from "./query-cmd.js";
13
+ export { dbSubscribeEvento } from "./subscribe-cmd.js";
14
+ export function dbSubcommands(ctx) {
15
+ return subcommands({
16
+ name: "db",
17
+ description: "Read and write Fireproof documents",
18
+ cmds: {
19
+ list: dbListCmd(ctx),
20
+ get: dbGetCmd(ctx),
21
+ put: dbPutCmd(ctx),
22
+ del: dbDelCmd(ctx),
23
+ query: dbQueryCmd(ctx),
24
+ subscribe: dbSubscribeCmd(ctx),
25
+ },
26
+ });
27
+ }
28
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../jsr/cli/cmds/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAErC,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAkB,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,UAAU,EAAiB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAiB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAiB,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAmB,MAAM,gBAAgB,CAAC;AAC9E,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,aAAa,CAAC,GAAW;IACvC,OAAO,WAAW,CAAC;QACjB,IAAI,EAAE,IAAI;QACV,WAAW,EAAE,oCAAoC;QACjD,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS,CAAC,GAAG,CAAC;YACpB,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;YAClB,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;YAClB,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC;YAClB,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC;YACtB,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC;SAC/B;KACF,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,37 @@
1
+ import type { EventoHandler } from "@adviser/cement";
2
+ import type { CliCtx } from "../../cli-ctx.js";
3
+ import { WrapCmdTSMsg } from "../../cmd-evento.js";
4
+ export declare const ReqDbList: import("arktype/internal/variants/object.ts").ObjectType<{
5
+ type: "vibes-diy.cli.db.list";
6
+ apiUrl: string;
7
+ appSlug: string;
8
+ userSlug: string;
9
+ }, {}>;
10
+ export type ReqDbList = typeof ReqDbList.infer;
11
+ export declare function isReqDbList(obj: unknown): obj is ReqDbList;
12
+ export declare const ResDbList: import("arktype/internal/variants/object.ts").ObjectType<{
13
+ type: "vibes-diy.cli.db.list-res";
14
+ dbNames: string[];
15
+ }, {}>;
16
+ export type ResDbList = typeof ResDbList.infer;
17
+ export declare function isResDbList(obj: unknown): obj is ResDbList;
18
+ export declare const dbListEvento: EventoHandler<WrapCmdTSMsg<unknown>, ReqDbList, ResDbList>;
19
+ export declare function dbListCmd(ctx: CliCtx): Partial<import("cmd-ts/dist/cjs/argparser.js").Register> & {
20
+ parse(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<{
21
+ appSlug: string;
22
+ userSlug: string;
23
+ dbName: string;
24
+ apiUrl: string;
25
+ json: boolean;
26
+ text: boolean;
27
+ }>>;
28
+ } & import("cmd-ts/dist/cjs/helpdoc.js").PrintHelp & import("cmd-ts/dist/cjs/helpdoc.js").ProvidesHelp & import("cmd-ts/dist/cjs/helpdoc.js").Named & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned> & import("cmd-ts/dist/cjs/argparser.js").Register & import("cmd-ts/dist/cjs/runner.js").Handling<{
29
+ appSlug: string;
30
+ userSlug: string;
31
+ dbName: string;
32
+ apiUrl: string;
33
+ json: boolean;
34
+ text: boolean;
35
+ }, never> & {
36
+ run(context: import("cmd-ts/dist/cjs/argparser.js").ParseContext): Promise<import("cmd-ts/dist/cjs/argparser.js").ParsingResult<never>>;
37
+ } & Partial<import("cmd-ts/dist/cjs/helpdoc.js").Versioned & import("cmd-ts/dist/cjs/helpdoc.js").Descriptive & import("cmd-ts/dist/cjs/helpdoc.js").Aliased>;
@@ -0,0 +1,65 @@
1
+ import { command } from "cmd-ts";
2
+ import { type } from "arktype";
3
+ import { Result, Option } from "@adviser/cement";
4
+ import { cmdTsDefaultArgs } from "../../cli-ctx.js";
5
+ import { sendMsg } from "../../cmd-evento.js";
6
+ import { dbCommonArgs, resolveUserSlug } from "./shared.js";
7
+ export const ReqDbList = type({
8
+ type: "'vibes-diy.cli.db.list'",
9
+ apiUrl: "string",
10
+ appSlug: "string",
11
+ userSlug: "string",
12
+ });
13
+ export function isReqDbList(obj) {
14
+ return !(ReqDbList(obj) instanceof type.errors);
15
+ }
16
+ export const ResDbList = type({
17
+ type: "'vibes-diy.cli.db.list-res'",
18
+ dbNames: type("string").array(),
19
+ });
20
+ export function isResDbList(obj) {
21
+ return !(ResDbList(obj) instanceof type.errors);
22
+ }
23
+ export const dbListEvento = {
24
+ hash: "vibes-diy.cli.db.list",
25
+ validate: (ctx) => {
26
+ if (isReqDbList(ctx.enRequest)) {
27
+ return Promise.resolve(Result.Ok(Option.Some(ctx.enRequest)));
28
+ }
29
+ return Promise.resolve(Result.Ok(Option.None()));
30
+ },
31
+ handle: async (ctx) => {
32
+ const ectx = ctx.ctx.getOrThrow("cliCtx");
33
+ if (ectx.vibesDiyApiFactory === undefined) {
34
+ return Result.Err("Not logged in. Run 'vibes-diy login' first.");
35
+ }
36
+ const api = ectx.vibesDiyApiFactory(ctx.validated.apiUrl);
37
+ const rUser = await resolveUserSlug(api, ctx.validated.userSlug);
38
+ if (rUser.isErr())
39
+ return Result.Err(rUser.Err());
40
+ const r = await api.listDbNames({ appSlug: ctx.validated.appSlug, userSlug: rUser.Ok() });
41
+ if (r.isErr())
42
+ return Result.Err(r.Err());
43
+ return sendMsg(ctx, {
44
+ type: "vibes-diy.cli.db.list-res",
45
+ dbNames: r.Ok().dbNames,
46
+ });
47
+ },
48
+ };
49
+ export function dbListCmd(ctx) {
50
+ return command({
51
+ name: "list",
52
+ description: "List database names for an app",
53
+ args: {
54
+ ...cmdTsDefaultArgs(ctx),
55
+ ...dbCommonArgs(ctx),
56
+ },
57
+ handler: ctx.cliStream.enqueue((args) => ({
58
+ type: "vibes-diy.cli.db.list",
59
+ apiUrl: args.apiUrl,
60
+ appSlug: args.appSlug,
61
+ userSlug: args.userSlug,
62
+ })),
63
+ });
64
+ }
65
+ //# sourceMappingURL=list-cmd.js.map