@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.
- package/cf-serve.d.ts +1 -4
- package/cf-serve.js +10 -15
- package/cf-serve.js.map +1 -1
- package/check-auth.js +13 -3
- package/check-auth.js.map +1 -1
- package/create-handler.d.ts +5 -6
- package/create-handler.js +6 -32
- package/create-handler.js.map +1 -1
- package/index.d.ts +0 -1
- package/index.js +0 -1
- package/index.js.map +1 -1
- package/intern/ensure-application-chat-id.js +5 -5
- package/intern/ensure-application-chat-id.js.map +1 -1
- package/intern/ensure-chat-id.js +45 -33
- package/intern/ensure-chat-id.js.map +1 -1
- package/intern/ensure-slug-binding.d.ts +12 -26
- package/intern/ensure-slug-binding.js +125 -29
- package/intern/ensure-slug-binding.js.map +1 -1
- package/intern/get-model-defaults.d.ts +12 -0
- package/intern/get-model-defaults.js +90 -0
- package/intern/get-model-defaults.js.map +1 -0
- package/intern/get-slug-binding.d.ts +2 -3
- package/intern/get-slug-binding.js +13 -4
- package/intern/get-slug-binding.js.map +1 -1
- package/intern/grouped-vibe-import-map.d.ts +2 -0
- package/intern/grouped-vibe-import-map.js +2 -0
- package/intern/grouped-vibe-import-map.js.map +1 -1
- package/intern/render-vibe.d.ts +2 -2
- package/intern/render-vibe.js.map +1 -1
- package/intern/resend-prev-msg.js +5 -13
- package/intern/resend-prev-msg.js.map +1 -1
- package/intern/write-apps.d.ts +4 -5
- package/intern/write-apps.js +27 -18
- package/intern/write-apps.js.map +1 -1
- package/models.json +179 -0
- package/package.json +12 -9
- package/peers/s3.d.ts +1 -1
- package/public/ensure-app-settings.js +39 -12
- package/public/ensure-app-settings.js.map +1 -1
- package/public/ensure-app-slug-item.js +23 -47
- package/public/ensure-app-slug-item.js.map +1 -1
- package/public/ensure-user-settings.js +9 -8
- package/public/ensure-user-settings.js.map +1 -1
- package/public/get-chat-details.js +7 -5
- package/public/get-chat-details.js.map +1 -1
- package/public/invite-flow.js +59 -36
- package/public/invite-flow.js.map +1 -1
- package/public/list-models.d.ts +14 -0
- package/public/list-models.js +41 -0
- package/public/list-models.js.map +1 -0
- package/public/open-chat.js +2 -2
- package/public/open-chat.js.map +1 -1
- package/public/prompt-chat-section.d.ts +1 -1
- package/public/prompt-chat-section.js +40 -15
- package/public/prompt-chat-section.js.map +1 -1
- package/public/request-flow.js +65 -53
- package/public/request-flow.js.map +1 -1
- package/public/user-slug-bindings.d.ts +5 -0
- package/public/user-slug-bindings.js +144 -0
- package/public/user-slug-bindings.js.map +1 -0
- package/types.d.ts +37 -18
- package/types.js +27 -1
- package/types.js.map +1 -1
- package/usage-report/README.md +27 -0
- package/usage-report/inspect-db-report-template.d.ts +29 -0
- package/usage-report/inspect-db-report-template.js +379 -0
- package/usage-report/inspect-db-report-template.js.map +1 -0
- package/usage-report/inspect-db-report.d.ts +1 -0
- package/usage-report/inspect-db-report.js +264 -0
- package/usage-report/inspect-db-report.js.map +1 -0
- package/usage-report/inspect-db.d.ts +1 -0
- package/usage-report/inspect-db.js +226 -0
- package/usage-report/inspect-db.js.map +1 -0
- package/vibes-msg-evento.js +3 -1
- package/vibes-msg-evento.js.map +1 -1
- package/intern/ensure-storage.d.ts +0 -26
- package/intern/ensure-storage.js +0 -86
- package/intern/ensure-storage.js.map +0 -1
- package/intern/send-email.d.ts +0 -4
- package/intern/send-email.js +0 -55
- package/intern/send-email.js.map +0 -1
- package/intern/store-screenshot.d.ts +0 -17
- package/intern/store-screenshot.js +0 -36
- package/intern/store-screenshot.js.map +0 -1
- package/peers/sql.d.ts +0 -22
- package/peers/sql.js +0 -102
- package/peers/sql.js.map +0 -1
- package/sql/tables.d.ts +0 -1536
- package/sql/tables.js +0 -38
- package/sql/tables.js.map +0 -1
- package/sql/vibes-diy-api-schema-pg.d.ts +0 -1418
- package/sql/vibes-diy-api-schema-pg.js +0 -141
- package/sql/vibes-diy-api-schema-pg.js.map +0 -1
- package/sql/vibes-diy-api-schema-sqlite.d.ts +0 -1536
- package/sql/vibes-diy-api-schema-sqlite.js +0 -131
- 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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"}
|
package/intern/send-email.d.ts
DELETED
package/intern/send-email.js
DELETED
|
@@ -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
|
package/intern/send-email.js.map
DELETED
|
@@ -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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"}
|