@vibes.diy/vibe-runtime 2.0.1 → 2.0.6

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/README.md CHANGED
@@ -19,6 +19,12 @@ Create beautiful, interactive mini apps with zero setup. Your creations are auto
19
19
  - Install with `pnpm i`
20
20
  - Run `pnpm dev`
21
21
 
22
+ ## Community
23
+
24
+ We are committed to providing a welcoming and inclusive environment for all contributors. Please review our [Code of Conduct](CODE_OF_CONDUCT.md) before participating.
25
+
26
+ Interested in contributing? Check out our [Contributing Guide](CONTRIBUTING.md) to get started.
27
+
22
28
  ## Your Work is Always Safe
23
29
 
24
30
  Every app you create is automatically saved, so you can:
@@ -0,0 +1,66 @@
1
+ import type { VibeSandboxApi } from "./register-dependencies.js";
2
+ export type DocTypes = Record<string, any>;
3
+ export type DocWithId<T extends DocTypes = DocTypes> = T & {
4
+ _id: string;
5
+ };
6
+ export interface DocResponse {
7
+ id: string;
8
+ ok: boolean;
9
+ }
10
+ export type ListenerFn<T extends DocTypes = DocTypes> = (changes: DocWithId<T>[]) => void;
11
+ export interface IndexRow<T extends DocTypes = DocTypes> {
12
+ key: string;
13
+ value: DocWithId<T>;
14
+ doc?: DocWithId<T>;
15
+ }
16
+ export interface QueryResponse<T extends DocTypes = DocTypes> {
17
+ rows: IndexRow<T>[];
18
+ docs: DocWithId<T>[];
19
+ }
20
+ export declare class FireflyDatabase {
21
+ readonly name: string;
22
+ readonly logger: any;
23
+ private readonly vibeApi;
24
+ private readonly vibeApp;
25
+ private readonly listeners;
26
+ private readonly updateListeners;
27
+ constructor(name: string, vibeApi: VibeSandboxApi);
28
+ ready(): Promise<void>;
29
+ close(): Promise<void>;
30
+ destroy(): Promise<void>;
31
+ compact(): Promise<void>;
32
+ get<T extends DocTypes>(id: string): Promise<DocWithId<T>>;
33
+ put<T extends DocTypes>(doc: T & {
34
+ _id?: string;
35
+ }): Promise<DocResponse>;
36
+ del(id: string): Promise<DocResponse>;
37
+ remove(id: string): Promise<DocResponse>;
38
+ bulk<T extends DocTypes>(docs: (T & {
39
+ _id?: string;
40
+ })[]): Promise<{
41
+ ids: string[];
42
+ }>;
43
+ query<T extends DocTypes>(mapFn: string | ((doc: DocWithId<T>, emit?: (key: unknown, value?: unknown) => void) => unknown), opts?: {
44
+ includeDocs?: boolean;
45
+ key?: any;
46
+ keys?: any[];
47
+ range?: [any, any];
48
+ prefix?: any;
49
+ descending?: boolean;
50
+ limit?: number;
51
+ }): Promise<QueryResponse<T>>;
52
+ allDocs<T extends DocTypes>(opts?: {
53
+ limit?: number;
54
+ offset?: number;
55
+ descending?: boolean;
56
+ }): Promise<{
57
+ rows: IndexRow<T>[];
58
+ docs: DocWithId<T>[];
59
+ }>;
60
+ changes<T extends DocTypes>(): Promise<{
61
+ rows: IndexRow<T>[];
62
+ docs: DocWithId<T>[];
63
+ }>;
64
+ subscribe<T extends DocTypes>(listener: ListenerFn<T>, updates?: boolean): () => void;
65
+ private notifyListeners;
66
+ }
@@ -0,0 +1,260 @@
1
+ import { isResPutDoc, isResGetDoc, isResQueryDocs, isResDeleteDoc, isEvtDocChanged } from "@vibes.diy/vibe-types";
2
+ import charwise from "charwise";
3
+ const fireflyLogger = {
4
+ Error() {
5
+ return {
6
+ Msg(msg) {
7
+ return {
8
+ AsError() {
9
+ return new Error(msg);
10
+ },
11
+ };
12
+ },
13
+ Str(_key, _val) {
14
+ return {
15
+ Msg(msg) {
16
+ return {
17
+ AsError() {
18
+ return new Error(msg);
19
+ },
20
+ };
21
+ },
22
+ };
23
+ },
24
+ };
25
+ },
26
+ };
27
+ export class FireflyDatabase {
28
+ name;
29
+ logger = fireflyLogger;
30
+ vibeApi;
31
+ vibeApp;
32
+ listeners = new Set();
33
+ updateListeners = new Set();
34
+ constructor(name, vibeApi) {
35
+ this.name = name;
36
+ this.vibeApi = vibeApi;
37
+ this.vibeApp = vibeApi.svc.vibeApp;
38
+ this.vibeApi.onMsg((event) => {
39
+ const { data } = event;
40
+ if (isEvtDocChanged(data) && data.appSlug === this.vibeApp.appSlug) {
41
+ this.notifyListeners([]);
42
+ }
43
+ });
44
+ }
45
+ async ready() {
46
+ return;
47
+ }
48
+ async close() {
49
+ return;
50
+ }
51
+ async destroy() {
52
+ return;
53
+ }
54
+ async compact() {
55
+ return;
56
+ }
57
+ async get(id) {
58
+ const rRes = await this.vibeApi.getDoc(id, this.name);
59
+ if (rRes.isErr()) {
60
+ throw new Error(`Failed to get document: ${rRes.Err()}`);
61
+ }
62
+ const res = rRes.Ok();
63
+ if (isResGetDoc(res)) {
64
+ return { ...res.doc, _id: res.id };
65
+ }
66
+ throw new Error(`Failed to get document: ${JSON.stringify(res)}`);
67
+ }
68
+ async put(doc) {
69
+ const rRes = await this.vibeApi.putDoc(doc, doc._id, this.name);
70
+ if (rRes.isErr()) {
71
+ throw new Error(`Failed to put document: ${rRes.Err()}`);
72
+ }
73
+ const res = rRes.Ok();
74
+ if (isResPutDoc(res)) {
75
+ const savedDoc = { ...doc, _id: res.id };
76
+ this.notifyListeners([savedDoc]);
77
+ return { id: res.id, ok: true };
78
+ }
79
+ throw new Error(`Failed to put document: ${JSON.stringify(res)}`);
80
+ }
81
+ async del(id) {
82
+ const rRes = await this.vibeApi.deleteDoc(id, this.name);
83
+ if (rRes.isErr()) {
84
+ throw new Error(`Failed to delete document: ${rRes.Err()}`);
85
+ }
86
+ const res = rRes.Ok();
87
+ if (isResDeleteDoc(res)) {
88
+ this.notifyListeners([{ _id: res.id, _deleted: true }]);
89
+ return { id: res.id, ok: true };
90
+ }
91
+ throw new Error(`Failed to delete document: ${JSON.stringify(res)}`);
92
+ }
93
+ async remove(id) {
94
+ return this.del(id);
95
+ }
96
+ async bulk(docs) {
97
+ const ids = [];
98
+ for (const doc of docs) {
99
+ const res = await this.put(doc);
100
+ ids.push(res.id);
101
+ }
102
+ return { ids };
103
+ }
104
+ async query(mapFn, opts = {}) {
105
+ const rRes = await this.vibeApi.queryDocs(this.name);
106
+ if (rRes.isErr()) {
107
+ throw new Error(`Failed to query documents: ${rRes.Err()}`);
108
+ }
109
+ const res = rRes.Ok();
110
+ if (!isResQueryDocs(res)) {
111
+ return { rows: [], docs: [] };
112
+ }
113
+ const allDocs = res.docs.map((d) => ({ ...d, _id: d._id }));
114
+ let encodedRows;
115
+ if (typeof mapFn === "string") {
116
+ encodedRows = allDocs
117
+ .filter((doc) => doc[mapFn] !== undefined)
118
+ .map((doc) => ({
119
+ encodedKey: charwise.encode(doc[mapFn]),
120
+ decodedKey: doc[mapFn],
121
+ value: doc,
122
+ doc: opts.includeDocs ? doc : undefined,
123
+ }));
124
+ }
125
+ else if (typeof mapFn === "function") {
126
+ encodedRows = [];
127
+ for (const doc of allDocs) {
128
+ try {
129
+ let emitCalled = false;
130
+ const emit = (key) => {
131
+ emitCalled = true;
132
+ if (typeof key === "undefined")
133
+ return;
134
+ encodedRows.push({
135
+ encodedKey: charwise.encode(key),
136
+ decodedKey: key,
137
+ value: doc,
138
+ doc: opts.includeDocs ? doc : undefined,
139
+ });
140
+ };
141
+ const mapReturn = mapFn.call({ emit }, doc, emit);
142
+ if (!emitCalled && typeof mapReturn !== "undefined") {
143
+ encodedRows.push({
144
+ encodedKey: charwise.encode(mapReturn),
145
+ decodedKey: mapReturn,
146
+ value: doc,
147
+ doc: opts.includeDocs ? doc : undefined,
148
+ });
149
+ }
150
+ }
151
+ catch {
152
+ }
153
+ }
154
+ }
155
+ else {
156
+ encodedRows = allDocs.map((doc) => ({
157
+ encodedKey: charwise.encode(doc._id),
158
+ decodedKey: doc._id,
159
+ value: doc,
160
+ doc: opts.includeDocs ? doc : undefined,
161
+ }));
162
+ }
163
+ if (opts.key !== undefined) {
164
+ const encodedKey = charwise.encode(opts.key);
165
+ encodedRows = encodedRows.filter((r) => r.encodedKey === encodedKey);
166
+ }
167
+ if (opts.keys !== undefined) {
168
+ const encodedKeys = new Set(opts.keys.map((k) => charwise.encode(k)));
169
+ encodedRows = encodedRows.filter((r) => encodedKeys.has(r.encodedKey));
170
+ }
171
+ if (opts.range) {
172
+ const encodedStart = charwise.encode(opts.range[0]);
173
+ const encodedEnd = charwise.encode(opts.range[1]);
174
+ encodedRows = encodedRows.filter((r) => r.encodedKey >= encodedStart && r.encodedKey <= encodedEnd);
175
+ }
176
+ if (opts.prefix !== undefined) {
177
+ let encodedPrefix = charwise.encode(opts.prefix);
178
+ if (Array.isArray(opts.prefix) && encodedPrefix.endsWith("!")) {
179
+ encodedPrefix = encodedPrefix.slice(0, -1);
180
+ }
181
+ encodedRows = encodedRows.filter((r) => r.encodedKey.startsWith(encodedPrefix));
182
+ }
183
+ encodedRows.sort((a, b) => (a.encodedKey < b.encodedKey ? -1 : a.encodedKey > b.encodedKey ? 1 : 0));
184
+ if (opts.descending) {
185
+ encodedRows.reverse();
186
+ }
187
+ if (opts.limit !== undefined) {
188
+ encodedRows = encodedRows.slice(0, opts.limit);
189
+ }
190
+ const rows = encodedRows.map((r) => ({
191
+ key: r.decodedKey,
192
+ value: r.value,
193
+ doc: r.doc,
194
+ }));
195
+ return {
196
+ rows,
197
+ docs: rows.map((r) => r.value),
198
+ };
199
+ }
200
+ async allDocs(opts = {}) {
201
+ const rRes = await this.vibeApi.queryDocs(this.name);
202
+ if (rRes.isErr()) {
203
+ throw new Error(`Failed to query documents: ${rRes.Err()}`);
204
+ }
205
+ const res = rRes.Ok();
206
+ if (!isResQueryDocs(res)) {
207
+ return { rows: [], docs: [] };
208
+ }
209
+ let docs = res.docs.map((d) => ({ ...d, _id: d._id }));
210
+ docs.sort((a, b) => (a._id < b._id ? -1 : a._id > b._id ? 1 : 0));
211
+ if (opts.descending) {
212
+ docs.reverse();
213
+ }
214
+ if (opts.offset) {
215
+ docs = docs.slice(opts.offset);
216
+ }
217
+ if (opts.limit !== undefined) {
218
+ docs = docs.slice(0, opts.limit);
219
+ }
220
+ const rows = docs.map((doc) => ({
221
+ key: doc._id,
222
+ value: doc,
223
+ doc,
224
+ }));
225
+ return { rows, docs };
226
+ }
227
+ async changes() {
228
+ return { rows: [], docs: [] };
229
+ }
230
+ subscribe(listener, updates) {
231
+ const fn = listener;
232
+ if (updates) {
233
+ this.updateListeners.add(fn);
234
+ }
235
+ else {
236
+ this.listeners.add(fn);
237
+ }
238
+ return () => {
239
+ this.listeners.delete(fn);
240
+ this.updateListeners.delete(fn);
241
+ };
242
+ }
243
+ notifyListeners(docs) {
244
+ for (const fn of this.listeners) {
245
+ try {
246
+ fn(docs);
247
+ }
248
+ catch {
249
+ }
250
+ }
251
+ for (const fn of this.updateListeners) {
252
+ try {
253
+ fn(docs);
254
+ }
255
+ catch {
256
+ }
257
+ }
258
+ }
259
+ }
260
+ //# sourceMappingURL=firefly-database.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"firefly-database.js","sourceRoot":"","sources":["../jsr/firefly-database.ts"],"names":[],"mappings":"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"}
package/img-vibes.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ import { VibeSandboxApi } from "./register-dependencies.js";
2
+ export { ImgVibes, useImgVibes } from "@vibes.diy/base";
3
+ export declare let imgVibes: (prompt: string, inputImage?: File) => Promise<string[]>;
4
+ export declare function registerImgVibes(vibeApi: VibeSandboxApi): void;
package/img-vibes.js ADDED
@@ -0,0 +1,22 @@
1
+ import { isResErrorImgVibes } from "@vibes.diy/vibe-types";
2
+ import { resizeImageToBase64 } from "./resize-image.js";
3
+ export { ImgVibes, useImgVibes } from "@vibes.diy/base";
4
+ export let imgVibes;
5
+ export function registerImgVibes(vibeApi) {
6
+ imgVibes = async (prompt, inputImage) => {
7
+ let inputImageBase64;
8
+ if (inputImage) {
9
+ inputImageBase64 = await resizeImageToBase64(inputImage);
10
+ }
11
+ const rResult = await vibeApi.imgVibes(prompt, inputImageBase64);
12
+ if (rResult.isErr()) {
13
+ throw rResult.Err();
14
+ }
15
+ const res = rResult.Ok();
16
+ if (isResErrorImgVibes(res)) {
17
+ throw new Error(res.message);
18
+ }
19
+ return res.imageUrls;
20
+ };
21
+ }
22
+ //# sourceMappingURL=img-vibes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"img-vibes.js","sourceRoot":"","sources":["../jsr/img-vibes.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAGxD,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAExD,MAAM,CAAC,IAAI,QAAkE,CAAC;AAE9E,MAAM,UAAU,gBAAgB,CAAC,OAAuB;IACtD,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,UAAiB,EAAqB,EAAE;QACxE,IAAI,gBAAoC,CAAC;QACzC,IAAI,UAAU,EAAE,CAAC;YACf,gBAAgB,GAAG,MAAM,mBAAmB,CAAC,UAAU,CAAC,CAAC;QAC3D,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC;QACjE,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACpB,MAAM,OAAO,CAAC,GAAG,EAAE,CAAC;QACtB,CAAC;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,EAAE,EAAE,CAAC;QACzB,IAAI,kBAAkB,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,GAAG,CAAC,SAAS,CAAC;IACvB,CAAC,CAAC;AACJ,CAAC"}
package/index.d.ts CHANGED
@@ -2,4 +2,6 @@ export * from "./mount-vibes.js";
2
2
  export * from "./register-dependencies.js";
3
3
  export * from "./VibeContext.js";
4
4
  export * from "./call-ai.js";
5
- export * from "./img-gen.js";
5
+ export * from "./img-vibes.js";
6
+ export { useFireproof, fireproof } from "./use-firefly.js";
7
+ export { FireflyDatabase, FireflyDatabase as Database, type DocTypes, type DocWithId, type DocResponse, type ListenerFn, type IndexRow, type QueryResponse, } from "./firefly-database.js";
package/index.js CHANGED
@@ -2,5 +2,7 @@ export * from "./mount-vibes.js";
2
2
  export * from "./register-dependencies.js";
3
3
  export * from "./VibeContext.js";
4
4
  export * from "./call-ai.js";
5
- export * from "./img-gen.js";
5
+ export * from "./img-vibes.js";
6
+ export { useFireproof, fireproof } from "./use-firefly.js";
7
+ export { FireflyDatabase, FireflyDatabase as Database, } from "./firefly-database.js";
6
8
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,kBAAkB,CAAC;AACjC,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EACL,eAAe,EACf,eAAe,IAAI,QAAQ,GAO5B,MAAM,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/vibe-runtime",
3
- "version": "2.0.1",
3
+ "version": "2.0.6",
4
4
  "type": "module",
5
5
  "main": "./index.js",
6
6
  "scripts": {
@@ -8,13 +8,12 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@adviser/cement": "~0.5.34",
11
- "@fireproof/core-types-protocols-cloud": "~0.24.16",
12
- "@vibes.diy/base": "2.0.1",
13
- "@vibes.diy/vibe-types": "2.0.1",
11
+ "@vibes.diy/base": "2.0.6",
12
+ "@vibes.diy/vibe-types": "2.0.6",
14
13
  "arktype": "~2.2.0",
14
+ "charwise": "~3.0.1",
15
15
  "react": "~19.2.5",
16
- "react-dom": "~19.2.5",
17
- "use-fireproof": "~0.24.16"
16
+ "react-dom": "~19.2.5"
18
17
  },
19
18
  "repository": {
20
19
  "type": "git",
@@ -1,4 +1,4 @@
1
- import { ResCallAI, ReqFetchCloudToken, ReqVibeRegisterFPDb, ResFetchCloudToken, EvtVibeAttachStatusFPDb } from "@vibes.diy/vibe-types";
1
+ import { ResCallAI, ResImgVibes, ReqFetchCloudToken, ReqVibeRegisterFPDb, ResFetchCloudToken, EvtVibeAttachStatusFPDb, ResPutDoc, ResGetDoc, ResQueryDocs, ResDeleteDoc, ResSubscribeDocs } from "@vibes.diy/vibe-types";
2
2
  import { KeyedResolvOnce, Result } from "@adviser/cement";
3
3
  import { CallAIOpts } from "./call-ai.js";
4
4
  export interface VibeApp {
@@ -22,6 +22,7 @@ export declare class VibeSandboxApi {
22
22
  readonly onMsg: import("@adviser/cement").ReturnOnFunc<[event: MessageEvent<any>], unknown, unknown>;
23
23
  constructor(svc: VibeSandboxApiOptions);
24
24
  callAI(prompt: string, opts: CallAIOpts): Promise<Result<ResCallAI>>;
25
+ imgVibes(prompt: string, inputImageBase64?: string): Promise<Result<ResImgVibes>>;
25
26
  sendRegisterFPDbMessage(req: Omit<ReqVibeRegisterFPDb, "type" | "tid">): Promise<Result<{
26
27
  tid: string;
27
28
  type: "vibe.res.register.fpdb";
@@ -39,6 +40,11 @@ export declare class VibeSandboxApi {
39
40
  }, Error>>;
40
41
  sendRuntimeReady(deps: string[]): void;
41
42
  sendAttachStatusFPDbMessage(evt: Omit<EvtVibeAttachStatusFPDb, "type" | "tid">): void;
43
+ putDoc(doc: Record<string, unknown>, docId?: string, dbName?: string): Promise<Result<ResPutDoc>>;
44
+ getDoc(docId: string, dbName?: string): Promise<Result<ResGetDoc>>;
45
+ queryDocs(dbName?: string): Promise<Result<ResQueryDocs>>;
46
+ deleteDoc(docId: string, dbName?: string): Promise<Result<ResDeleteDoc>>;
47
+ subscribeDocs(dbName?: string): Promise<Result<ResSubscribeDocs>>;
42
48
  readonly tokenCache: KeyedResolvOnce<unknown, string, object>;
43
49
  fetchCloudToken(req: Omit<ReqFetchCloudToken, "type" | "tid">): Promise<Result<ResFetchCloudToken>>;
44
50
  }
@@ -1,8 +1,9 @@
1
- import { isResErrorVibeRegisterFPDb, isResFetchCloudToken, isResOkVibeRegisterFPDb, isResVibeRegisterFPDb, isResCallAI, ResFetchCloudToken, isEvtAttachFPDb, } from "@vibes.diy/vibe-types";
2
- import { Future, KeyedResolvOnce, Lazy, OnFunc, ResolveOnce, Result, timeouted } from "@adviser/cement";
3
- import { toCloud } from "use-fireproof";
1
+ import { isResFetchCloudToken, isResVibeRegisterFPDb, isResCallAI, isResImgVibes, ResFetchCloudToken, isResPutDoc, isResGetDoc, isResGetDocNotFound, isResQueryDocs, isResDeleteDoc, isResSubscribeDocs, } from "@vibes.diy/vibe-types";
2
+ import { Future, KeyedResolvOnce, Lazy, OnFunc, Result, timeouted } from "@adviser/cement";
4
3
  import { type } from "arktype";
5
4
  import { registerCallAI } from "./call-ai.js";
5
+ import { registerImgVibes } from "./img-vibes.js";
6
+ import { registerFirefly } from "./use-firefly.js";
6
7
  export class VibeSandboxApi {
7
8
  svc;
8
9
  handleMessage = (event) => {
@@ -44,6 +45,14 @@ export class VibeSandboxApi {
44
45
  schema: opts.schema,
45
46
  }, { wait: isResCallAI, timeout: 60000 });
46
47
  }
48
+ imgVibes(prompt, inputImageBase64) {
49
+ return this.request({
50
+ type: "vibe.req.imgVibes",
51
+ prompt,
52
+ ...(inputImageBase64 ? { inputImageBase64 } : {}),
53
+ ...this.svc.vibeApp,
54
+ }, { wait: isResImgVibes, timeout: 120000 });
55
+ }
47
56
  sendRegisterFPDbMessage(req) {
48
57
  return this.request({
49
58
  type: "vibe.req.register.fpdb",
@@ -62,6 +71,45 @@ export class VibeSandboxApi {
62
71
  ...evt,
63
72
  }, "*");
64
73
  }
74
+ putDoc(doc, docId, dbName = "default") {
75
+ return this.request({
76
+ type: "vibes.diy.req-put-doc",
77
+ ...this.svc.vibeApp,
78
+ dbName,
79
+ doc,
80
+ ...(docId ? { docId } : {}),
81
+ }, { wait: isResPutDoc, timeout: 10000 });
82
+ }
83
+ getDoc(docId, dbName = "default") {
84
+ return this.request({
85
+ type: "vibes.diy.req-get-doc",
86
+ ...this.svc.vibeApp,
87
+ dbName,
88
+ docId,
89
+ }, { wait: (x) => isResGetDoc(x) || isResGetDocNotFound(x), timeout: 10000 });
90
+ }
91
+ queryDocs(dbName = "default") {
92
+ return this.request({
93
+ type: "vibes.diy.req-query-docs",
94
+ ...this.svc.vibeApp,
95
+ dbName,
96
+ }, { wait: isResQueryDocs, timeout: 10000 });
97
+ }
98
+ deleteDoc(docId, dbName = "default") {
99
+ return this.request({
100
+ type: "vibes.diy.req-delete-doc",
101
+ ...this.svc.vibeApp,
102
+ dbName,
103
+ docId,
104
+ }, { wait: isResDeleteDoc, timeout: 10000 });
105
+ }
106
+ subscribeDocs(dbName = "default") {
107
+ return this.request({
108
+ type: "vibes.diy.req-subscribe-docs",
109
+ ...this.svc.vibeApp,
110
+ dbName,
111
+ }, { wait: isResSubscribeDocs, timeout: 10000 });
112
+ }
65
113
  tokenCache = new KeyedResolvOnce();
66
114
  fetchCloudToken(req) {
67
115
  const key = `vibe-${req.data.dbName}-${req.data.userSlug}-${req.data.appSlug}`;
@@ -87,41 +135,6 @@ export class VibeSandboxApi {
87
135
  });
88
136
  }
89
137
  }
90
- class VibeTokenStrategie {
91
- vibeApi;
92
- my;
93
- constructor(vibeApi, my) {
94
- this.vibeApi = vibeApi;
95
- this.my = my;
96
- }
97
- hash() {
98
- return "vibe-token-strategie";
99
- }
100
- open(_sthis, _logger, _deviceId, _opts) {
101
- return;
102
- }
103
- tryToken(_sthis, _logger, _opts) {
104
- return Promise.resolve(undefined);
105
- }
106
- async waitForToken(_sthis, _logger, _deviceId, _opts) {
107
- const resToken = await this.vibeApi.fetchCloudToken({
108
- data: this.my,
109
- });
110
- if (resToken.isErr()) {
111
- console.error("Failed to fetch cloud token from vibe sandbox", resToken.Err());
112
- return undefined;
113
- }
114
- const token = resToken.Ok();
115
- return {
116
- token: token.token.cloudToken,
117
- claims: token.token.claims,
118
- };
119
- return Promise.resolve(undefined);
120
- }
121
- stop() {
122
- console.log("VibeTokenStrategie stop called");
123
- }
124
- }
125
138
  export const vibeApi = Lazy((svc) => new VibeSandboxApi(svc));
126
139
  export async function registerDependencies(vibeApp, deps) {
127
140
  const ctxVibeApi = vibeApi({
@@ -130,67 +143,21 @@ export async function registerDependencies(vibeApp, deps) {
130
143
  postMessage: window.parent.postMessage.bind(window.parent),
131
144
  });
132
145
  const runTimeReady = [];
133
- const useFireproofDep = deps["use-fireproof"];
146
+ const useFireproofDep = deps["use-fireproof"] || deps["@fireproof/use-fireproof"];
134
147
  if (useFireproofDep && window.parent !== window) {
135
148
  runTimeReady.push("use-fireproof");
136
- const fp = (await import(useFireproofDep));
137
- const attachables = new Map();
138
- ctxVibeApi.onMsg((event) => {
139
- const { data: evt } = event;
140
- if (isEvtAttachFPDb(evt)) {
141
- const key = `${evt.data.dbName}-${evt.data.userSlug}-${evt.data.appSlug}`;
142
- const attabable = attachables.get(key);
143
- if (attabable) {
144
- attabable.attach.once(async () => {
145
- console.log("Attaching FPDb with key", evt.data);
146
- const result = await attabable.ledger.attach(toCloud({
147
- name: `vibe-${evt.data.dbName}-${evt.data.userSlug}-${evt.data.appSlug}`,
148
- strategy: new VibeTokenStrategie(ctxVibeApi, evt.data),
149
- urls: {
150
- base: evt.data.fpcloudUrl,
151
- },
152
- }));
153
- ctxVibeApi.sendAttachStatusFPDbMessage({
154
- data: evt.data,
155
- status: result.status(),
156
- });
157
- });
158
- }
159
- }
160
- });
161
- fp.getLedgerSvc().onCreate((ledger) => {
162
- ctxVibeApi
163
- .sendRegisterFPDbMessage({
164
- dbName: ledger.name,
165
- appSlug: vibeApp.appSlug,
166
- userSlug: vibeApp.userSlug,
167
- fsId: vibeApp.fsId,
168
- })
169
- .then((rResMsg) => {
170
- if (rResMsg.isErr()) {
171
- console.error("Failed to register FPDb with vibe sandbox", rResMsg.Err());
172
- }
173
- const res = rResMsg.Ok();
174
- if (isResErrorVibeRegisterFPDb(res)) {
175
- console.error("Failed to register FPDb with vibe sandbox", res.message);
176
- }
177
- if (isResOkVibeRegisterFPDb(res)) {
178
- console.log("Registered FPDb with vibe sandbox", res);
179
- const key = `${res.data.dbName}-${res.data.userSlug}-${res.data.appSlug}`;
180
- attachables.set(key, {
181
- key,
182
- ledger,
183
- attach: new ResolveOnce(),
184
- });
185
- }
186
- });
187
- });
149
+ await registerFirefly(ctxVibeApi);
188
150
  }
189
151
  const callAI = deps["call-ai"];
190
152
  if (callAI && window.parent !== window) {
191
153
  runTimeReady.push("call-ai");
192
154
  registerCallAI(ctxVibeApi);
193
155
  }
156
+ const imgVibes = deps["img-vibes"];
157
+ if (imgVibes && window.parent !== window) {
158
+ runTimeReady.push("img-vibes");
159
+ registerImgVibes(ctxVibeApi);
160
+ }
194
161
  ctxVibeApi.sendRuntimeReady(runTimeReady);
195
162
  return;
196
163
  }
@@ -1 +1 @@
1
- {"version":3,"file":"register-dependencies.js","sourceRoot":"","sources":["../jsr/register-dependencies.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register-dependencies.js","sourceRoot":"","sources":["../jsr/register-dependencies.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function resizeImageToBase64(file: File, maxDim?: number, quality?: number): Promise<string>;
@@ -0,0 +1,21 @@
1
+ export async function resizeImageToBase64(file, maxDim = 1024, quality = 0.85) {
2
+ const bitmap = await createImageBitmap(file);
3
+ const { width, height } = bitmap;
4
+ const scale = Math.min(1, maxDim / Math.max(width, height));
5
+ const w = Math.round(width * scale);
6
+ const h = Math.round(height * scale);
7
+ const canvas = new OffscreenCanvas(w, h);
8
+ const ctx = canvas.getContext("2d");
9
+ if (!ctx)
10
+ throw new Error("Failed to get 2d context from OffscreenCanvas");
11
+ ctx.drawImage(bitmap, 0, 0, w, h);
12
+ bitmap.close();
13
+ const blob = await canvas.convertToBlob({ type: "image/jpeg", quality });
14
+ return new Promise((resolve, reject) => {
15
+ const reader = new FileReader();
16
+ reader.onload = () => resolve(reader.result);
17
+ reader.onerror = reject;
18
+ reader.readAsDataURL(blob);
19
+ });
20
+ }
21
+ //# sourceMappingURL=resize-image.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resize-image.js","sourceRoot":"","sources":["../jsr/resize-image.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAU,EAAE,MAAM,GAAG,IAAI,EAAE,OAAO,GAAG,IAAI;IACjF,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC;IAErC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACzC,MAAM,GAAG,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACpC,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC3E,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;IAClC,MAAM,CAAC,KAAK,EAAE,CAAC;IAEf,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,CAAC;IACzE,OAAO,IAAI,OAAO,CAAS,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAChC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,MAAgB,CAAC,CAAC;QACvD,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC;QACxB,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,26 @@
1
+ import { FireflyDatabase } from "./firefly-database.js";
2
+ import type { VibeSandboxApi } from "./register-dependencies.js";
3
+ export declare function registerFirefly(api: VibeSandboxApi): Promise<void>;
4
+ export declare function fireproof(name: string): FireflyDatabase;
5
+ export declare function useFireproof(name?: string, _config?: any): {
6
+ database: FireflyDatabase;
7
+ useLiveQuery: (mapFn: any, query?: any, initialRows?: any[]) => {
8
+ docs: any[];
9
+ rows: any[];
10
+ };
11
+ useDocument: (initialDocOrFn?: any) => {
12
+ doc: {
13
+ [x: string]: unknown;
14
+ };
15
+ merge: (newDoc: Record<string, unknown>) => void;
16
+ replace: (newDoc: Record<string, unknown>) => void;
17
+ reset: () => void;
18
+ refresh: () => Promise<void>;
19
+ save: (existingDoc?: Record<string, unknown>) => Promise<import("./firefly-database.js").DocResponse>;
20
+ remove: (existingDoc?: Record<string, unknown>) => Promise<import("./firefly-database.js").DocResponse>;
21
+ submit: (e?: any) => Promise<void>;
22
+ };
23
+ useAllDocs: (query?: any) => any;
24
+ useChanges: (_since?: any[], opts?: any) => any;
25
+ attach: () => Promise<void>;
26
+ };
package/use-firefly.js ADDED
@@ -0,0 +1,181 @@
1
+ import { useCallback, useEffect, useMemo, useState, useRef } from "react";
2
+ import { FireflyDatabase } from "./firefly-database.js";
3
+ let vibeApiRef;
4
+ const dbCache = new Map();
5
+ function getOrCreateDb(name) {
6
+ let db = dbCache.get(name);
7
+ if (!db) {
8
+ if (!vibeApiRef) {
9
+ throw new Error("Firefly not initialized — registerFirefly() must be called before useFireproof()");
10
+ }
11
+ db = new FireflyDatabase(name, vibeApiRef);
12
+ dbCache.set(name, db);
13
+ }
14
+ return db;
15
+ }
16
+ export async function registerFirefly(api) {
17
+ vibeApiRef = api;
18
+ api.subscribeDocs().then((rRes) => {
19
+ if (rRes.isErr()) {
20
+ console.error("Failed to subscribe to docs:", rRes.Err());
21
+ }
22
+ });
23
+ }
24
+ export function fireproof(name) {
25
+ return getOrCreateDb(name);
26
+ }
27
+ export function useFireproof(name = "useFireproof", _config = {}) {
28
+ const database = useMemo(() => getOrCreateDb(name), [name]);
29
+ const useDocument = useMemo(() => createUseDocument(database), [database]);
30
+ const useLiveQuery = useMemo(() => createUseLiveQuery(database), [database]);
31
+ const useAllDocs = useMemo(() => createUseAllDocs(database), [database]);
32
+ const useChanges = useMemo(() => createUseChanges(database), [database]);
33
+ const attach = () => Promise.resolve();
34
+ return { database, useLiveQuery, useDocument, useAllDocs, useChanges, attach };
35
+ }
36
+ function createUseDocument(database) {
37
+ return function useDocument(initialDocOrFn) {
38
+ const updateHappenedRef = useRef(false);
39
+ let initialDoc;
40
+ if (typeof initialDocOrFn === "function") {
41
+ initialDoc = initialDocOrFn();
42
+ }
43
+ else {
44
+ initialDoc = initialDocOrFn ?? {};
45
+ }
46
+ const originalInitialDoc = useMemo(() => structuredClone({ ...initialDoc }), []);
47
+ const [doc, setDoc] = useState(initialDoc);
48
+ const refresh = useCallback(async () => {
49
+ if (doc._id) {
50
+ try {
51
+ const gotDoc = await database.get(doc._id);
52
+ setDoc(gotDoc);
53
+ }
54
+ catch {
55
+ setDoc(initialDoc);
56
+ }
57
+ }
58
+ else {
59
+ setDoc(initialDoc);
60
+ }
61
+ }, [doc._id]);
62
+ const save = useCallback(async (existingDoc) => {
63
+ updateHappenedRef.current = false;
64
+ const toSave = existingDoc ?? doc;
65
+ const res = await database.put(toSave);
66
+ if (!updateHappenedRef.current && !doc._id && !existingDoc) {
67
+ setDoc((d) => ({ ...d, _id: res.id }));
68
+ }
69
+ return res;
70
+ }, [doc]);
71
+ const remove = useCallback(async (existingDoc) => {
72
+ const id = (existingDoc?._id ?? doc._id);
73
+ if (!id)
74
+ throw new Error("Document must have an _id to be removed");
75
+ const gotDoc = await database.get(id).catch(() => undefined);
76
+ if (!gotDoc)
77
+ throw new Error(`Document not found: ${id}`);
78
+ const res = await database.del(id);
79
+ setDoc(initialDoc);
80
+ return res;
81
+ }, [doc, initialDoc]);
82
+ const merge = useCallback((newDoc) => {
83
+ updateHappenedRef.current = true;
84
+ setDoc((prev) => ({ ...prev, ...newDoc }));
85
+ }, []);
86
+ const replace = useCallback((newDoc) => {
87
+ updateHappenedRef.current = true;
88
+ setDoc(newDoc);
89
+ }, []);
90
+ const reset = useCallback(() => {
91
+ updateHappenedRef.current = true;
92
+ setDoc({ ...originalInitialDoc });
93
+ }, [originalInitialDoc]);
94
+ const _updateDoc = useCallback((newDoc, opts = { replace: false, reset: false }) => {
95
+ if (!newDoc) {
96
+ return opts.reset ? reset() : refresh();
97
+ }
98
+ return opts.replace ? replace(newDoc) : merge(newDoc);
99
+ }, [refresh, reset, replace, merge]);
100
+ useEffect(() => {
101
+ if (!doc._id)
102
+ return;
103
+ return database.subscribe((changes) => {
104
+ if (updateHappenedRef.current)
105
+ return;
106
+ if (changes.find((c) => c._id === doc._id)) {
107
+ void refresh();
108
+ }
109
+ }, true);
110
+ }, [doc._id, refresh]);
111
+ useEffect(() => {
112
+ void refresh();
113
+ }, [refresh]);
114
+ const submit = useCallback(async (e) => {
115
+ if (e?.preventDefault)
116
+ e.preventDefault();
117
+ await save();
118
+ reset();
119
+ }, [save, reset]);
120
+ return { doc: { ...doc }, merge, replace, reset, refresh, save, remove, submit };
121
+ };
122
+ }
123
+ function createUseLiveQuery(database) {
124
+ return function useLiveQuery(mapFn, query = {}, initialRows = []) {
125
+ const [result, setResult] = useState({
126
+ docs: initialRows.map((r) => r.doc).filter((r) => !!r),
127
+ rows: initialRows,
128
+ });
129
+ const queryString = useMemo(() => JSON.stringify(query), [query]);
130
+ const mapFnString = useMemo(() => mapFn.toString(), [mapFn]);
131
+ const refreshRows = useCallback(async () => {
132
+ const res = await database.query(mapFn, { ...query, includeDocs: true });
133
+ setResult(res);
134
+ }, [database, mapFnString, queryString]);
135
+ useEffect(() => {
136
+ refreshRows();
137
+ const unsubscribe = database.subscribe(refreshRows);
138
+ return () => {
139
+ unsubscribe();
140
+ };
141
+ }, [database, refreshRows]);
142
+ return result;
143
+ };
144
+ }
145
+ function createUseAllDocs(database) {
146
+ return function useAllDocs(query = {}) {
147
+ const [result, setResult] = useState({ docs: [], rows: [] });
148
+ const queryString = useMemo(() => JSON.stringify(query), [query]);
149
+ const refreshRows = useCallback(async () => {
150
+ const res = await database.allDocs(query);
151
+ setResult({
152
+ ...res,
153
+ docs: res.rows.map((r) => r.value),
154
+ });
155
+ }, [database, queryString]);
156
+ useEffect(() => {
157
+ refreshRows();
158
+ const unsubscribe = database.subscribe(refreshRows);
159
+ return () => {
160
+ unsubscribe();
161
+ };
162
+ }, [database, refreshRows]);
163
+ return result;
164
+ };
165
+ }
166
+ function createUseChanges(database) {
167
+ return function useChanges(_since = [], opts = {}) {
168
+ const [result, setResult] = useState({ docs: [], rows: [] });
169
+ const queryString = useMemo(() => JSON.stringify(opts), [opts]);
170
+ const refreshRows = useCallback(async () => {
171
+ const res = await database.changes();
172
+ setResult({ ...res, docs: res.rows.map((r) => r.value) });
173
+ }, [queryString]);
174
+ useEffect(() => {
175
+ refreshRows();
176
+ return database.subscribe(refreshRows);
177
+ }, [refreshRows]);
178
+ return result;
179
+ };
180
+ }
181
+ //# sourceMappingURL=use-firefly.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-firefly.js","sourceRoot":"","sources":["../jsr/use-firefly.ts"],"names":[],"mappings":"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"}
package/img-gen.d.ts DELETED
@@ -1,2 +0,0 @@
1
- import React from "react";
2
- export declare function ImgGen(): React.JSX.Element;
package/img-gen.js DELETED
@@ -1,5 +0,0 @@
1
- import React from "react";
2
- export function ImgGen() {
3
- return React.createElement("div", null, "ImgGen");
4
- }
5
- //# sourceMappingURL=img-gen.js.map
package/img-gen.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"img-gen.js","sourceRoot":"","sources":["../jsr/img-gen.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,UAAU,MAAM;IACpB,OAAO,0CAAiB,CAAC;AAC3B,CAAC"}