@vibes.diy/api-svc 2.0.0-dev-cli-e → 2.0.0-dev-cli-i

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 (96) hide show
  1. package/cf-serve.d.ts +1 -4
  2. package/cf-serve.js +10 -15
  3. package/cf-serve.js.map +1 -1
  4. package/check-auth.js +13 -3
  5. package/check-auth.js.map +1 -1
  6. package/create-handler.d.ts +5 -6
  7. package/create-handler.js +6 -32
  8. package/create-handler.js.map +1 -1
  9. package/index.d.ts +0 -1
  10. package/index.js +0 -1
  11. package/index.js.map +1 -1
  12. package/intern/ensure-application-chat-id.js +5 -5
  13. package/intern/ensure-application-chat-id.js.map +1 -1
  14. package/intern/ensure-chat-id.js +45 -33
  15. package/intern/ensure-chat-id.js.map +1 -1
  16. package/intern/ensure-slug-binding.d.ts +12 -26
  17. package/intern/ensure-slug-binding.js +125 -29
  18. package/intern/ensure-slug-binding.js.map +1 -1
  19. package/intern/get-model-defaults.d.ts +12 -0
  20. package/intern/get-model-defaults.js +90 -0
  21. package/intern/get-model-defaults.js.map +1 -0
  22. package/intern/get-slug-binding.d.ts +2 -3
  23. package/intern/get-slug-binding.js +13 -4
  24. package/intern/get-slug-binding.js.map +1 -1
  25. package/intern/grouped-vibe-import-map.d.ts +2 -0
  26. package/intern/grouped-vibe-import-map.js +2 -0
  27. package/intern/grouped-vibe-import-map.js.map +1 -1
  28. package/intern/render-vibe.d.ts +2 -2
  29. package/intern/render-vibe.js.map +1 -1
  30. package/intern/resend-prev-msg.js +5 -13
  31. package/intern/resend-prev-msg.js.map +1 -1
  32. package/intern/write-apps.d.ts +4 -5
  33. package/intern/write-apps.js +27 -18
  34. package/intern/write-apps.js.map +1 -1
  35. package/models.json +179 -0
  36. package/package.json +12 -9
  37. package/peers/s3.d.ts +1 -1
  38. package/public/ensure-app-settings.js +39 -12
  39. package/public/ensure-app-settings.js.map +1 -1
  40. package/public/ensure-app-slug-item.js +23 -47
  41. package/public/ensure-app-slug-item.js.map +1 -1
  42. package/public/ensure-user-settings.js +9 -8
  43. package/public/ensure-user-settings.js.map +1 -1
  44. package/public/get-chat-details.js +7 -5
  45. package/public/get-chat-details.js.map +1 -1
  46. package/public/invite-flow.js +59 -36
  47. package/public/invite-flow.js.map +1 -1
  48. package/public/list-models.d.ts +14 -0
  49. package/public/list-models.js +41 -0
  50. package/public/list-models.js.map +1 -0
  51. package/public/open-chat.js +2 -2
  52. package/public/open-chat.js.map +1 -1
  53. package/public/prompt-chat-section.d.ts +1 -1
  54. package/public/prompt-chat-section.js +40 -15
  55. package/public/prompt-chat-section.js.map +1 -1
  56. package/public/request-flow.js +65 -53
  57. package/public/request-flow.js.map +1 -1
  58. package/public/user-slug-bindings.d.ts +5 -0
  59. package/public/user-slug-bindings.js +144 -0
  60. package/public/user-slug-bindings.js.map +1 -0
  61. package/types.d.ts +37 -18
  62. package/types.js +27 -1
  63. package/types.js.map +1 -1
  64. package/usage-report/README.md +27 -0
  65. package/usage-report/inspect-db-report-template.d.ts +29 -0
  66. package/usage-report/inspect-db-report-template.js +379 -0
  67. package/usage-report/inspect-db-report-template.js.map +1 -0
  68. package/usage-report/inspect-db-report.d.ts +1 -0
  69. package/usage-report/inspect-db-report.js +264 -0
  70. package/usage-report/inspect-db-report.js.map +1 -0
  71. package/usage-report/inspect-db.d.ts +1 -0
  72. package/usage-report/inspect-db.js +226 -0
  73. package/usage-report/inspect-db.js.map +1 -0
  74. package/vibes-msg-evento.js +3 -1
  75. package/vibes-msg-evento.js.map +1 -1
  76. package/intern/ensure-storage.d.ts +0 -26
  77. package/intern/ensure-storage.js +0 -86
  78. package/intern/ensure-storage.js.map +0 -1
  79. package/intern/send-email.d.ts +0 -4
  80. package/intern/send-email.js +0 -55
  81. package/intern/send-email.js.map +0 -1
  82. package/intern/store-screenshot.d.ts +0 -17
  83. package/intern/store-screenshot.js +0 -36
  84. package/intern/store-screenshot.js.map +0 -1
  85. package/peers/sql.d.ts +0 -22
  86. package/peers/sql.js +0 -102
  87. package/peers/sql.js.map +0 -1
  88. package/sql/tables.d.ts +0 -1536
  89. package/sql/tables.js +0 -38
  90. package/sql/tables.js.map +0 -1
  91. package/sql/vibes-diy-api-schema-pg.d.ts +0 -1418
  92. package/sql/vibes-diy-api-schema-pg.js +0 -141
  93. package/sql/vibes-diy-api-schema-pg.js.map +0 -1
  94. package/sql/vibes-diy-api-schema-sqlite.d.ts +0 -1536
  95. package/sql/vibes-diy-api-schema-sqlite.js +0 -131
  96. package/sql/vibes-diy-api-schema-sqlite.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"ensure-storage.js","sourceRoot":"","sources":["../../jsr/intern/ensure-storage.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { Result } from "@adviser/cement";
2
- import { EmailOps } from "@vibes.diy/api-types";
3
- import { VibesApiSQLCtx } from "../types.js";
4
- export declare function sendEmailOpts(vctx: VibesApiSQLCtx, ops: EmailOps[]): Promise<Result<void>[]>;
@@ -1,55 +0,0 @@
1
- import { BuildURI, Result } from "@adviser/cement";
2
- import { isEmailOpsInvite } from "@vibes.diy/api-types";
3
- export function sendEmailOpts(vctx, ops) {
4
- return Promise.all(ops.map((op) => {
5
- let raw;
6
- const buri = BuildURI.from(vctx.params.vibes.env.VIBES_DIY_PUBLIC_BASE_URL)
7
- .appendRelative("vibe")
8
- .appendRelative(op.userSlug)
9
- .appendRelative(op.appSlug);
10
- if (isEmailOpsInvite(op)) {
11
- buri.setParam("token", op.token);
12
- }
13
- switch (op.action) {
14
- case "invite":
15
- raw = {
16
- to: op.dst,
17
- subject: `You've been invited as ${op.role} a Vibe App from ${op.userSlug}`,
18
- text: [
19
- "Hello,",
20
- `You have been invited as ${op.role} to the app "${op.appSlug}" on Vibes DIY by ${op.userSlug}.`,
21
- "To accept the invitation and start collaborating, please click the link below:",
22
- `${buri.toString()}`,
23
- ].join("\n"),
24
- };
25
- break;
26
- case "req-accepted":
27
- raw = {
28
- to: op.dst,
29
- subject: `Your request to join "${op.appSlug}" has been approved`,
30
- text: [
31
- "Hello,",
32
- `Great news — ${op.userSlug} has approved your request to access the app "${op.appSlug}" on Vibes DIY as ${op.role}.`,
33
- "You can open the app here:",
34
- `${buri.toString()}`,
35
- ].join("\n\n"),
36
- };
37
- break;
38
- case "req-rejected":
39
- raw = {
40
- to: op.dst,
41
- subject: `Your request to join "${op.appSlug}" was not approved`,
42
- text: [
43
- "Hello,",
44
- `Unfortunately, your request to access the app "${op.appSlug}" on Vibes DIY was not approved by ${op.userSlug}.`,
45
- "If you think this was a mistake, you can reach out to the app owner directly.",
46
- ].join("\n\n"),
47
- };
48
- break;
49
- default:
50
- return Result.Err(new Error(`unsupported email action: ${JSON.stringify(op)}`));
51
- }
52
- return vctx.sendEmail(raw);
53
- }));
54
- }
55
- //# sourceMappingURL=send-email.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"send-email.js","sourceRoot":"","sources":["../../jsr/intern/send-email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAY,gBAAgB,EAAuB,MAAM,sBAAsB,CAAC;AAGvF,MAAM,UAAU,aAAa,CAAC,IAAoB,EAAE,GAAe;IACjE,OAAO,OAAO,CAAC,GAAG,CAChB,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE;QACb,IAAI,GAAyB,CAAC;QAE9B,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,yBAAyB,CAAC;aACxE,cAAc,CAAC,MAAM,CAAC;aACtB,cAAc,CAAC,EAAE,CAAC,QAAQ,CAAC;aAC3B,cAAc,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAE9B,IAAI,gBAAgB,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAED,QAAQ,EAAE,CAAC,MAAM,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACX,GAAG,GAAG;oBACJ,EAAE,EAAE,EAAE,CAAC,GAAG;oBACV,OAAO,EAAE,0BAA0B,EAAE,CAAC,IAAI,oBAAoB,EAAE,CAAC,QAAQ,EAAE;oBAC3E,IAAI,EAAE;wBACJ,QAAQ;wBAER,4BAA4B,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC,OAAO,qBAAqB,EAAE,CAAC,QAAQ,GAAG;wBAEhG,gFAAgF;wBAChF,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE;qBACrB,CAAC,IAAI,CAAC,IAAI,CAAC;iBACb,CAAC;gBACF,MAAM;YACR,KAAK,cAAc;gBACjB,GAAG,GAAG;oBACJ,EAAE,EAAE,EAAE,CAAC,GAAG;oBACV,OAAO,EAAE,yBAAyB,EAAE,CAAC,OAAO,qBAAqB;oBACjE,IAAI,EAAE;wBACJ,QAAQ;wBAER,gBAAgB,EAAE,CAAC,QAAQ,iDAAiD,EAAE,CAAC,OAAO,qBAAqB,EAAE,CAAC,IAAI,GAAG;wBAErH,4BAA4B;wBAC5B,GAAG,IAAI,CAAC,QAAQ,EAAE,EAAE;qBACrB,CAAC,IAAI,CAAC,MAAM,CAAC;iBACf,CAAC;gBACF,MAAM;YACR,KAAK,cAAc;gBACjB,GAAG,GAAG;oBACJ,EAAE,EAAE,EAAE,CAAC,GAAG;oBACV,OAAO,EAAE,yBAAyB,EAAE,CAAC,OAAO,oBAAoB;oBAChE,IAAI,EAAE;wBACJ,QAAQ;wBAER,kDAAkD,EAAE,CAAC,OAAO,sCAAsC,EAAE,CAAC,QAAQ,GAAG;wBAEhH,+EAA+E;qBAChF,CAAC,IAAI,CAAC,MAAM,CAAC;iBACf,CAAC;gBACF,MAAM;YACR;gBACE,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,KAAK,CAAC,6BAA6B,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC,CAAC,CACH,CAAC;AACJ,CAAC"}
@@ -1,17 +0,0 @@
1
- import { Result } from "@adviser/cement";
2
- import { VibesSqlite } from "../create-handler.js";
3
- import type { VibesApiTables } from "../types.js";
4
- import { S3Api } from "@vibes.diy/api-types";
5
- import { DBFlavour } from "../sql/tables.js";
6
- export interface StoreScreenshotResult {
7
- readonly fsId: string;
8
- readonly assetUrl: string;
9
- }
10
- export declare function storeScreenshot({ sql, s3Api }: {
11
- s3Api: S3Api;
12
- sql: {
13
- dbFlavour: DBFlavour;
14
- db: VibesSqlite;
15
- tables: Pick<VibesApiTables, "apps" | "assets">;
16
- };
17
- }, fsId: string, screenshotData: Uint8Array): Promise<Result<StoreScreenshotResult>>;
@@ -1,36 +0,0 @@
1
- import { Result, uint8array2stream } from "@adviser/cement";
2
- import { eq } from "drizzle-orm/sql/expressions";
3
- import { type } from "arktype";
4
- import { isMetaScreenShot, MetaItem } from "@vibes.diy/api-types";
5
- import { ensureStorage } from "./ensure-storage.js";
6
- export async function storeScreenshot({ sql, s3Api, }, fsId, screenshotData) {
7
- const { db, tables } = sql;
8
- const found = await db.select().from(tables.apps).where(eq(tables.apps.fsId, fsId)).limit(1);
9
- if (found.length === 0) {
10
- return Result.Err(`App with fsId ${fsId} not found`);
11
- }
12
- const app = found[0];
13
- const meta = MetaItem.array()(app.meta);
14
- if (meta instanceof type.errors) {
15
- return Result.Err(`Invalid meta format: ${meta.summary}`);
16
- }
17
- const [storageResult] = await ensureStorage(sql.dbFlavour, db, tables.assets, s3Api).ensure(uint8array2stream(screenshotData));
18
- if (!storageResult || storageResult.isErr()) {
19
- return Result.Err(`Failed to store screenshot: ${storageResult?.Err()}`);
20
- }
21
- const existingIdx = meta.findIndex((item) => isMetaScreenShot(item));
22
- if (existingIdx >= 0) {
23
- meta.splice(existingIdx, 1);
24
- }
25
- meta.push({
26
- type: "screen-shot-ref",
27
- mime: "image/jpeg",
28
- assetUrl: storageResult.Ok().getURL,
29
- });
30
- await db.update(tables.apps).set({ meta }).where(eq(tables.apps.fsId, fsId));
31
- return Result.Ok({
32
- fsId,
33
- assetUrl: storageResult.Ok().getURL,
34
- });
35
- }
36
- //# sourceMappingURL=store-screenshot.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"store-screenshot.js","sourceRoot":"","sources":["../../jsr/intern/store-screenshot.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACjD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAS,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAgBpD,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,EACE,GAAG,EACH,KAAK,GAIN,EACD,IAAY,EACZ,cAA0B;IAE1B,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IAE3B,MAAM,KAAK,GAAG,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IAE7F,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,MAAM,CAAC,GAAG,CAAC,iBAAiB,IAAI,YAAY,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;IAGrB,MAAM,IAAI,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,IAAI,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;QAChC,OAAO,MAAM,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAMD,MAAM,CAAC,aAAa,CAAC,GAAG,MAAM,aAAa,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,cAAc,CAAC,CAAC,CAAC;IAC/H,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC;QAC5C,OAAO,MAAM,CAAC,GAAG,CAAC,+BAA+B,aAAa,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC;IACrE,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAGD,IAAI,CAAC,IAAI,CAAC;QACR,IAAI,EAAE,iBAAiB;QACvB,IAAI,EAAE,YAAY;QAClB,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,MAAM;KACpC,CAAC,CAAC;IAGH,MAAM,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC;IAE7E,OAAO,MAAM,CAAC,EAAE,CAAC;QACf,IAAI;QACJ,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,MAAM;KACpC,CAAC,CAAC;AACL,CAAC"}
package/peers/sql.d.ts DELETED
@@ -1,22 +0,0 @@
1
- import { Option, URI, Result } from "@adviser/cement";
2
- import { VibesSqlite } from "../create-handler.js";
3
- import type { VibesApiTables } from "../types.js";
4
- import { Cider, PeerStreamWithCommit, PeerWithCommit } from "../intern/ensure-storage.js";
5
- import { FetchResult } from "@vibes.diy/api-types";
6
- import { DBFlavour } from "../sql/tables.js";
7
- export declare class SQLPeer implements PeerWithCommit {
8
- readonly db: VibesSqlite;
9
- readonly assets: VibesApiTables["assets"];
10
- readonly cider: Cider;
11
- readonly cutoffSize: number;
12
- readonly flavour: DBFlavour;
13
- constructor(flavour: DBFlavour, db: VibesSqlite, assets: VibesApiTables["assets"], cider: Cider, cutoffSize: number);
14
- begin(): Promise<Result<PeerStreamWithCommit>>;
15
- }
16
- export declare class SQLPeerFetch {
17
- readonly db: VibesSqlite;
18
- readonly assets: VibesApiTables["assets"];
19
- readonly flavour: DBFlavour;
20
- constructor(flavour: DBFlavour, db: VibesSqlite, assets: VibesApiTables["assets"]);
21
- fetch(url: URI): Promise<Option<FetchResult>>;
22
- }
package/peers/sql.js DELETED
@@ -1,102 +0,0 @@
1
- import { Option, uint8array2stream, exception2Result, concatUint8, Result } from "@adviser/cement";
2
- import { eq } from "drizzle-orm/sql/expressions";
3
- class SQLPeerStream {
4
- owner;
5
- chunks = [];
6
- constructor(owner) {
7
- this.owner = owner;
8
- }
9
- write(chunk) {
10
- this.chunks.push(chunk);
11
- if (this.chunks.reduce((acc, curr) => acc + curr.length, 0) > this.owner.cutoffSize) {
12
- return Promise.reject(new Error("SQLitePeerStream: max size exceeded (4KB)"));
13
- }
14
- return Promise.resolve();
15
- }
16
- async cancel() {
17
- }
18
- async close() {
19
- }
20
- async commit() {
21
- const now = new Date();
22
- const created = now.toISOString();
23
- const { cid: assetID } = await this.owner.cider.getCID();
24
- const res = await exception2Result(() => this.owner.db
25
- .insert(this.owner.assets)
26
- .values({
27
- assetId: assetID,
28
- content: concatUint8(...this.chunks),
29
- created,
30
- })
31
- .onConflictDoNothing());
32
- if (res.isErr()) {
33
- return Result.Err(res);
34
- }
35
- return Result.Ok({
36
- url: `${this.owner.flavour}://Assets/${assetID}`,
37
- });
38
- }
39
- }
40
- export class SQLPeer {
41
- db;
42
- assets;
43
- cider;
44
- cutoffSize;
45
- flavour;
46
- constructor(flavour, db, assets, cider, cutoffSize) {
47
- this.flavour = flavour;
48
- this.db = db;
49
- this.assets = assets;
50
- this.cider = cider;
51
- this.cutoffSize = cutoffSize;
52
- }
53
- begin() {
54
- return Promise.resolve(Result.Ok(new SQLPeerStream(this)));
55
- }
56
- }
57
- export class SQLPeerFetch {
58
- db;
59
- assets;
60
- flavour;
61
- constructor(flavour, db, assets) {
62
- this.flavour = flavour;
63
- this.db = db;
64
- this.assets = assets;
65
- }
66
- async fetch(url) {
67
- let compatProtocol = url.protocol;
68
- if (compatProtocol === "sql:") {
69
- compatProtocol = this.flavour + ":";
70
- }
71
- if (compatProtocol !== `${this.flavour}:`) {
72
- return Promise.resolve(Option.None());
73
- }
74
- const assetId = url.pathname.slice("Assets/".length);
75
- const rAsset = await exception2Result(() => this.db
76
- .select()
77
- .from(this.assets)
78
- .where(eq(this.assets.assetId, assetId))
79
- .limit(1)
80
- .then((r) => r[0]));
81
- if (rAsset.isErr()) {
82
- return Option.Some({
83
- type: "fetch.err",
84
- url: url.toString(),
85
- error: rAsset.Err(),
86
- });
87
- }
88
- const asset = rAsset.Ok();
89
- if (!asset) {
90
- return Option.Some({
91
- type: "fetch.notfound",
92
- url: url.toString(),
93
- });
94
- }
95
- return Option.Some({
96
- type: "fetch.ok",
97
- url: url.toString(),
98
- data: uint8array2stream(asset.content),
99
- });
100
- }
101
- }
102
- //# sourceMappingURL=sql.js.map
package/peers/sql.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql.js","sourceRoot":"","sources":["../../jsr/peers/sql.ts"],"names":[],"mappings":"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"}