@vibes.diy/api-svc 6.0.2 → 6.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/intern/apply-seed.js +11 -84
  2. package/intern/apply-seed.js.map +1 -1
  3. package/intern/ensure-app-metadata.js +8 -33
  4. package/intern/ensure-app-metadata.js.map +1 -1
  5. package/intern/ensure-chat-id.js +3 -10
  6. package/intern/ensure-chat-id.js.map +1 -1
  7. package/intern/get-model-defaults.js +11 -22
  8. package/intern/get-model-defaults.js.map +1 -1
  9. package/intern/get-vibe-route-hints.js +16 -3
  10. package/intern/get-vibe-route-hints.js.map +1 -1
  11. package/intern/load-vibe-env.js +2 -7
  12. package/intern/load-vibe-env.js.map +1 -1
  13. package/intern/load-vibe-secrets.js +2 -7
  14. package/intern/load-vibe-secrets.js.map +1 -1
  15. package/intern/process-backend-bindings.js +7 -45
  16. package/intern/process-backend-bindings.js.map +1 -1
  17. package/intern/prompt-assembly.js +18 -21
  18. package/intern/prompt-assembly.js.map +1 -1
  19. package/package.json +11 -11
  20. package/public/app-setting-items.d.ts +30 -4
  21. package/public/app-setting-items.js +163 -18
  22. package/public/app-setting-items.js.map +1 -1
  23. package/public/app-settings-sql-upsert.js +30 -50
  24. package/public/app-settings-sql-upsert.js.map +1 -1
  25. package/public/audience-derived-trigger.js +3 -13
  26. package/public/audience-derived-trigger.js.map +1 -1
  27. package/public/ensure-app-settings.js +12 -9
  28. package/public/ensure-app-settings.js.map +1 -1
  29. package/public/home-feed-common.js +17 -3
  30. package/public/home-feed-common.js.map +1 -1
  31. package/public/list-memberships.js +17 -5
  32. package/public/list-memberships.js.map +1 -1
  33. package/public/list-recent-vibes.js +10 -1
  34. package/public/list-recent-vibes.js.map +1 -1
  35. package/public/related-vibes.js +4 -11
  36. package/public/related-vibes.js.map +1 -1
  37. package/public/request-flow.js +7 -6
  38. package/public/request-flow.js.map +1 -1
  39. package/public/user-slug-bindings.js +3 -0
  40. package/public/user-slug-bindings.js.map +1 -1
@@ -1,6 +1,5 @@
1
1
  import { exception2Result } from "@adviser/cement";
2
- import { and, eq } from "drizzle-orm";
3
- import { ActiveEntry, isActiveBackend, parseArrayWarning, } from "@vibes.diy/api-types";
2
+ import { writeAppSettingItems } from "../public/app-setting-items.js";
4
3
  import { parseBackendConfig } from "@vibes.diy/vibe-runtime/parse-backend-config.js";
5
4
  const BACKEND_FILENAME = "/backend.js";
6
5
  export async function processBackendBindings(vctx, opts) {
@@ -8,7 +7,7 @@ export async function processBackendBindings(vctx, opts) {
8
7
  const { canonicalFileSystem, fullFileSystem } = opts;
9
8
  const canonicalBackend = canonicalFileSystem.find((f) => f.fileName === BACKEND_FILENAME);
10
9
  if (canonicalBackend === undefined) {
11
- await mutateBackendEntry(vctx, opts, (entries) => entries.filter((e) => !isActiveBackend(e)));
10
+ await mutateBackendEntry(vctx, opts, { remove: true });
12
11
  return { handlers: [], intervalMs: null, errors: [], skipped: false };
13
12
  }
14
13
  const pushed = fullFileSystem.find((e) => e.vibeFileItem.filename === BACKEND_FILENAME && e.storage.getURL === canonicalBackend.assetURI);
@@ -27,7 +26,7 @@ export async function processBackendBindings(vctx, opts) {
27
26
  };
28
27
  }
29
28
  if (parsed.handlers.length === 0) {
30
- await mutateBackendEntry(vctx, opts, (entries) => entries.filter((e) => !isActiveBackend(e)));
29
+ await mutateBackendEntry(vctx, opts, { remove: true });
31
30
  return { handlers: [], intervalMs: null, errors: [], skipped: false };
32
31
  }
33
32
  const intervalMs = parsed.schedule?.intervalMs ?? null;
@@ -36,49 +35,12 @@ export async function processBackendBindings(vctx, opts) {
36
35
  handlers: parsed.handlers,
37
36
  ...(intervalMs === null ? {} : { intervalMs }),
38
37
  };
39
- await mutateBackendEntry(vctx, opts, (entries) => [...entries.filter((e) => !isActiveBackend(e)), entry]);
38
+ await mutateBackendEntry(vctx, opts, { upsert: entry });
40
39
  return { handlers: parsed.handlers, intervalMs, errors: [], skipped: false };
41
40
  });
42
41
  }
43
- function loadSettingsRow(vctx, opts) {
44
- const t = vctx.sql.tables.appSettings;
45
- return vctx.sql.db
46
- .select()
47
- .from(t)
48
- .where(and(eq(t.userId, opts.userId), eq(t.ownerHandle, opts.ownerHandle), eq(t.appSlug, opts.appSlug)))
49
- .limit(1)
50
- .then((r) => r[0]);
51
- }
52
- async function mutateBackendEntry(vctx, opts, fn) {
53
- const t = vctx.sql.tables.appSettings;
54
- const MAX_ATTEMPTS = 3;
55
- for (let attempt = 0; attempt < MAX_ATTEMPTS; attempt++) {
56
- const existing = await loadSettingsRow(vctx, opts);
57
- const now = new Date().toISOString();
58
- if (existing !== undefined) {
59
- const { filtered } = parseArrayWarning(existing.settings ?? [], ActiveEntry);
60
- const next = fn(filtered);
61
- await vctx.sql.db
62
- .update(t)
63
- .set({ settings: next, updated: now })
64
- .where(and(eq(t.userId, opts.userId), eq(t.ownerHandle, opts.ownerHandle), eq(t.appSlug, opts.appSlug)));
65
- return;
66
- }
67
- const next = fn([]);
68
- if (next.length === 0)
69
- return;
70
- const rIns = await exception2Result(() => vctx.sql.db.insert(t).values({
71
- userId: opts.userId,
72
- ownerHandle: opts.ownerHandle,
73
- appSlug: opts.appSlug,
74
- settings: next,
75
- updated: now,
76
- created: now,
77
- }));
78
- if (rIns.isOk())
79
- return;
80
- if (attempt === MAX_ATTEMPTS - 1)
81
- throw rIns.Err();
82
- }
42
+ async function mutateBackendEntry(vctx, opts, input) {
43
+ const key = { userId: opts.userId, ownerHandle: opts.ownerHandle, appSlug: opts.appSlug };
44
+ await writeAppSettingItems(vctx, key, "upsert" in input ? { upserts: [input.upsert] } : { removeKeys: ["active.backend"] });
83
45
  }
84
46
  //# sourceMappingURL=process-backend-bindings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"process-backend-bindings.js","sourceRoot":"","sources":["../../jsr/intern/process-backend-bindings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"process-backend-bindings.js","sourceRoot":"","sources":["../../jsr/intern/process-backend-bindings.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Result, exception2Result } from "@adviser/cement";
2
- import { ActiveEntry, PromptAndBlockMsgs, isActiveCodegenTheme, isActiveEnrichedPrompt, isActiveSkills, isActiveTheme, isActiveTitle, isPromptReq, parseArrayWarning, } from "@vibes.diy/api-types";
2
+ import { PromptAndBlockMsgs, isActiveCodegenTheme, isActiveEnrichedPrompt, isActiveSkills, isActiveTheme, isActiveTitle, isPromptReq, parseArrayWarning, } from "@vibes.diy/api-types";
3
3
  import { isCodeBegin, isCodeEnd, isCodeLine, isToplevelLine } from "@vibes.diy/call-ai-v2";
4
4
  import { ensureLogger } from "@vibes.diy/identity";
5
5
  import { and, eq } from "drizzle-orm/sql/expressions";
@@ -11,6 +11,7 @@ import { modelSupportsImageInput } from "./model-vision.js";
11
11
  import { inflateFileAttachments, stripVibesFileBlocks } from "./inflate-file-attachments.js";
12
12
  import { assembleSlotMessages, renderSlotMessagesAs } from "./slot-assembler.js";
13
13
  import { loadLatestPromptId, loadVersionTimeline, selectSlotSources } from "./version-timeline.js";
14
+ import { readComposedSettings, readComposedSettingsForApp, writeAppSettingItems } from "../public/app-setting-items.js";
14
15
  const SCREENSHOT_CAPTION = "Attached is a screenshot of the app as it currently renders, for visual reference. Use it to ground layout, spacing, color, and alignment edits.";
15
16
  export function reconstructConversationMessages(sectionMsgs, opts = {}) {
16
17
  const messages = [];
@@ -90,15 +91,10 @@ async function loadActiveSettings(vctx, chatId) {
90
91
  return {};
91
92
  const { appSlug, ownerHandle } = rChat.Ok();
92
93
  const appScope = { appSlug, ownerHandle };
93
- const rApp = await exception2Result(() => vctx.sql.db
94
- .select({ settings: vctx.sql.tables.appSettings.settings })
95
- .from(vctx.sql.tables.appSettings)
96
- .where(and(eq(vctx.sql.tables.appSettings.appSlug, appSlug), eq(vctx.sql.tables.appSettings.ownerHandle, ownerHandle)))
97
- .limit(1)
98
- .then((r) => r[0]));
99
- if (rApp.isErr() || !rApp.Ok())
94
+ const rApp = await exception2Result(() => readComposedSettingsForApp(vctx, ownerHandle, appSlug));
95
+ if (rApp.isErr())
100
96
  return { appScope };
101
- const entries = (rApp.Ok().settings ?? []);
97
+ const entries = rApp.Ok();
102
98
  return {
103
99
  skills: entries.find(isActiveSkills)?.skills,
104
100
  theme: entries.find(isActiveTheme)?.theme,
@@ -252,25 +248,26 @@ export async function assemblePromptPayload(vctx, args) {
252
248
  }
253
249
  export async function persistCodegenThemeMarker(vctx, args) {
254
250
  const t = vctx.sql.tables.appSettings;
255
- const row = await vctx.sql.db
256
- .select({ settings: t.settings })
251
+ const key = { userId: args.userId, ownerHandle: args.ownerHandle, appSlug: args.appSlug };
252
+ const existing = await vctx.sql.db
253
+ .select({ userId: t.userId })
257
254
  .from(t)
258
255
  .where(and(eq(t.appSlug, args.appSlug), eq(t.ownerHandle, args.ownerHandle), eq(t.userId, args.userId)))
259
256
  .limit(1)
260
257
  .then((r) => r[0]);
261
- if (row === undefined)
258
+ if (existing === undefined)
262
259
  return;
263
- const { filtered } = parseArrayWarning((row.settings ?? []), ActiveEntry);
260
+ const filtered = await readComposedSettings(vctx, key);
264
261
  const markedTheme = filtered.findLast(isActiveCodegenTheme)?.theme;
265
262
  if ((args.theme ?? "") === (markedTheme ?? ""))
266
263
  return;
267
- const next = [
268
- ...filtered.filter((e) => !isActiveCodegenTheme(e)),
269
- ...(args.theme ? [{ type: "active.codegen-theme", theme: args.theme }] : []),
270
- ];
271
- await vctx.sql.db
272
- .update(t)
273
- .set({ settings: next, updated: new Date().toISOString() })
274
- .where(and(eq(t.appSlug, args.appSlug), eq(t.ownerHandle, args.ownerHandle), eq(t.userId, args.userId)));
264
+ if (args.theme) {
265
+ await writeAppSettingItems(vctx, key, {
266
+ upserts: [{ type: "active.codegen-theme", theme: args.theme }],
267
+ });
268
+ }
269
+ else {
270
+ await writeAppSettingItems(vctx, key, { removeKeys: ["active.codegen-theme"] });
271
+ }
275
272
  }
276
273
  //# sourceMappingURL=prompt-assembly.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-assembly.js","sourceRoot":"","sources":["../../jsr/intern/prompt-assembly.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-assembly.js","sourceRoot":"","sources":["../../jsr/intern/prompt-assembly.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAEL,kBAAkB,EAClB,oBAAoB,EACpB,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,aAAa,EACb,WAAW,EACX,iBAAiB,GAGlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAe,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACxG,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,6BAA6B,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACtD,OAAO,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AAC7F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AACjF,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AACnG,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAQxH,MAAM,kBAAkB,GACtB,kJAAkJ,CAAC;AAWrJ,MAAM,UAAU,+BAA+B,CAAC,WAAiC,EAAE,IAAI,GAAoB,EAAE;IAC3G,MAAM,QAAQ,GAAkB,EAAE,CAAC;IACnC,MAAM,cAAc,GAAa,EAAE,CAAC;IACpC,IAAI,eAAmC,CAAC;IACxC,IAAI,WAAW,GAAuE,IAAI,CAAC;IAE3F,SAAS,cAAc;QACrB,IAAI,cAAc,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QACxC,QAAQ,CAAC,IAAI,CAAC;YACZ,IAAI,EAAE,WAAW;YACjB,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;SAC7D,CAAC,CAAC;QACH,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,MAAM,GAAG,IAAI,WAAW,EAAE,CAAC;QAC9B,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW,CAAC,GAAG,CAAC;gBACnB,cAAc,EAAE,CAAC;gBAIjB,eAAe,GAAG,GAAG,CAAC,QAAQ,CAAC;gBAC/B,QAAQ,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC;gBACxE,MAAM;YACR,KAAK,cAAc,CAAC,GAAG,CAAC;gBACtB,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;YACR,KAAK,WAAW,CAAC,GAAG,CAAC,EAAE,CAAC;gBACtB,MAAM,OAAO,GAAG,IAAI,CAAC,oBAAoB,KAAK,SAAS,IAAI,eAAe,KAAK,IAAI,CAAC,oBAAoB,CAAC;gBACzG,IAAI,OAAO,EAAE,CAAC;oBACZ,WAAW,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC;gBAC9D,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;gBACxC,CAAC;gBACD,MAAM;YACR,CAAC;YACD,KAAK,UAAU,CAAC,GAAG,CAAC;gBAClB,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,CAAC,SAAS,EAAE,CAAC;oBACxB,IAAI,CAAC,WAAW,CAAC,aAAa,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC7D,WAAW,CAAC,aAAa,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBAC9C,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;gBACD,MAAM;YACR,KAAK,SAAS,CAAC,GAAG,CAAC;gBACjB,IAAI,WAAW,EAAE,CAAC;oBAChB,MAAM,MAAM,GAAG,WAAW,CAAC,aAAa,KAAK,gBAAgB,CAAC;oBAC9D,IAAI,MAAM,EAAE,CAAC;wBACX,cAAc,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,SAAS,iBAAiB,WAAW,CAAC,IAAI,GAAG,CAAC,CAAC;oBACrF,CAAC;yBAAM,CAAC;wBACN,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC;wBAC9E,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC;wBAC9B,cAAc,CAAC,IAAI,CAAC,YAAY,WAAW,CAAC,IAAI,MAAM,KAAK,WAAW,KAAK,SAAS,CAAC,CAAC;oBACxF,CAAC;oBACD,WAAW,GAAG,IAAI,CAAC;gBACrB,CAAC;qBAAM,CAAC;oBACN,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC7B,CAAC;gBACD,MAAM;QACV,CAAC;IACH,CAAC;IACD,cAAc,EAAE,CAAC;IACjB,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,kBAAkB,CAC/B,IAAoB,EACpB,MAAc;IASd,MAAM,KAAK,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CACxC,IAAI,CAAC,GAAG,CAAC,EAAE;SACR,MAAM,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;SAChH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;SAClC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtD,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CACrB,CAAC;IACF,IAAI,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,EAAE;QAAE,OAAO,EAAE,CAAC;IAC5C,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC,EAAE,EAAE,CAAC;IAC5C,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC;IAK1C,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,GAAG,EAAE,CAAC,0BAA0B,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,CAAC,CAAC;IAClG,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;IACtC,MAAM,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;IAC1B,OAAO;QACL,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,EAAE,MAAM;QAC5C,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK;QACzC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,KAAK;QACzC,cAAc,EAAE,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,EAAE,cAAc;QACpE,YAAY,EAAE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK;QAC3D,QAAQ;KACT,CAAC;AACJ,CAAC;AAgDD,KAAK,UAAU,iCAAiC,CAAC,IAAoB,EAAE,OAAe;IACpF,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC;IACvC,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;QACpB,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,GAAG,CAAC,yCAAyC,CAAC,CAAC;QACrH,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,uBAAuB,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAC/D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAoB,EACpB,IAA+B;IAY/B,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IAChD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC/B,MAAM,EAAE;SACR,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC;SAClC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;SACtD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAIjD,MAAM,cAAc,GAAyB,EAAE,CAAC;IAChD,KAAK,MAAM,UAAU,IAAI,QAAQ,EAAE,CAAC;QAClC,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;QACpH,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9B,YAAY,CAAC,IAAI,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,EAAE,WAAW,EAAE,cAAc,EAAE,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5G,CAAC;QACD,cAAc,CAAC,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC;IACtC,CAAC;IAID,MAAM,cAAc,GAAG,MAAM,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC/D,IAAI,cAAc,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;IAE9D,MAAM,oBAAoB,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpE,IAAI,oBAAoB,CAAC,KAAK,EAAE;QAAE,OAAO,MAAM,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAE1E,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,EAAE,CAAC;IACrC,MAAM,cAAc,GAAG,oBAAoB,CAAC,EAAE,EAAE,CAAC;IAMjD,MAAM,kBAAkB,GAAG,IAAI,CAAC,KAAK,EAAE,UAAU,KAAK,KAAK,CAAC;IAC5D,MAAM,aAAa,GAAG,+BAA+B,CAAC,cAAc,EAAE;QACpE,oBAAoB,EAAE,kBAAkB,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,cAAc;KACtE,CAAC,CAAC;IACH,MAAM,WAAW,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACrE,MAAM,WAAW,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CACzD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,YAAY,CAAC,CAC3E,CAAC;IAQF,MAAM,cAAc,GAAG,IAAI,CAAC,sBAAsB,IAAI,CAAC,MAAM,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC/F,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,GAAG,cAAc,CAAC;IAIhE,MAAM,YAAY,GAAG,cAAc,IAAI,cAAc,CAAC,CAAC,CAAC,cAAc,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC;IAChG,MAAM,SAAS,GAAG,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAC;IAQxC,MAAM,YAAY,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,IAAI,EAAE,CAAC,CAAC;IAC5D,MAAM,YAAY,GAAG,SAAS,IAAI,YAAY,CAAC;IAE/C,MAAM,YAAY,GAAG,MAAM,gBAAgB,CAAC,KAAK,IAAI,EAAE;QACrD,OAAO,oBAAoB,CAAC,KAAK,EAAE;YACjC,MAAM;YACN,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;YACvC,KAAK;YACL,cAAc,EAAE,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS;YACzD,QAAQ,EAAE,KAAK;YAIf,0BAA0B,EAAE,CAAC,YAAY,IAAI,OAAO,CAAC,KAAK,CAAC;YAS3D,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,cAAc;YACvD,UAAU,EAAE,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;YAC7D,KAAK,EAAE,sBAAsB,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;SAC/D,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IACH,IAAI,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,CAAC,iCAAiC,EAAE,YAAY,CAAC,GAAG,EAAE,CAAC,CAAC;QACrE,OAAO,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,cAAc,GAAG,CAAC,GAAG,aAAa,EAAE,GAAG,WAAW,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;IACzF,IAAI,cAAc,KAAK,KAAK,EAAE,CAAC;QAC7B,OAAO,MAAM,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IAC5D,CAAC;IAKD,MAAM,WAAW,GAAG,iBAAiB,CAAC,QAAQ,CAAC,CAAC;IAGhD,IAAI,eAAqG,CAAC;IAC1G,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1B,IAAI,GAAG,EAAE,IAAI,KAAK,SAAS,EAAE,CAAC;QAC5B,MAAM,GAAG,GAAG,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3D,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;YACb,eAAe,GAAG,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC;QACpF,CAAC;IACH,CAAC;IAID,MAAM,gBAAgB,GACpB,IAAI,CAAC,QAAQ,EAAE,IAAI,KAAK,OAAO;QAC7B,CAAC,CAAC,IAAI,GAAG,CACL,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAChC,CAAC,CAAC,IAAI,KAAK,YAAY,IAAI,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CACzF,CACF;QACH,CAAC,CAAC,SAAS,CAAC;IAEhB,MAAM,YAAY,GAAG,oBAAoB,CAAC;QACxC,QAAQ,EAAE,WAAW,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,WAAW,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS;QAC3H,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,GAAG;QAC7B,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,GAAG;QACnC,eAAe;QACf,aAAa,EAAE,gBAAgB;QAC/B,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,SAAS;QACtC,MAAM,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;KACzB,CAAC,CAAC;IAGH,MAAM,gBAAgB,GACpB,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,oBAAoB,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IACvG,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;IAO9E,IAAI,YAAY,GAAG,WAAW,CAAC;IAC/B,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,CAAC,SAAS,CAAC;IACrE,MAAM,cAAc,GAClB,eAAe,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC;QAClE,CAAC,CAAC,MAAM,iCAAiC,CAAC,IAAI,EAAE,KAAK,CAAC;QACtD,CAAC,CAAC,KAAK,CAAC;IACZ,IAAI,eAAe,IAAI,cAAc,EAAE,CAAC;QACtC,MAAM,gBAAgB,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAC/D,MAAM,IAAI,GAAG,MAAM,2BAA2B,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;QACvE,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,WAAW,GAAG,CAAC,GAAG,EAAE;gBACxB,KAAK,IAAI,CAAC,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;oBAClD,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM;wBAAE,OAAO,CAAC,CAAC;gBAChD,CAAC;gBACD,OAAO,CAAC,CAAC,CAAC;YACZ,CAAC,CAAC,EAAE,CAAC;YACL,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;gBAIzC,YAAY,GAAG;oBACb,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,WAAW,CAAC;oBACrC;wBACE,GAAG,MAAM;wBACT,OAAO,EAAE;4BACP,GAAG,MAAM,CAAC,OAAO;4BACjB,EAAE,IAAI,EAAE,MAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE;4BACnD,EAAE,IAAI,EAAE,WAAoB,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE;yBACjE;qBACF;oBACD,GAAG,YAAY,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC;iBACvC,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,SAAS,GAAkB;QAC/B,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE;QACrF,GAAG,aAAa;QAChB,GAAG,gBAAgB;QACnB,GAAG,YAAY;KAChB,CAAC;IAOF,MAAM,mBAAmB,GACvB,UAAU,IAAI,cAAc,CAAC,CAAC,CAAE,cAAc,CAAC,QAAiE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC/H,MAAM,QAAQ,GAAG,WAAW;QAC1B,CAAC,CAAC,IAAI,CAAC,kBAAkB,KAAK,IAAI;YAChC,CAAC,CAAC,oBAAoB,CAAC,SAAS,CAAC;YACjC,CAAC,CAAC,MAAM,sBAAsB,CAAC,IAAI,EAAE;gBACjC,QAAQ,EAAE,SAAS;gBACnB,KAAK,EAAE,mBAAmB;gBAC1B,mBAAmB,EAAE,cAAc;aACpC,CAAC;QACN,CAAC,CAAC,SAAS,CAAC;IAEd,OAAO,MAAM,CAAC,EAAE,CAAC;QACf,KAAK;QACL,QAAQ;QACR,YAAY,EAAE,KAAK;KACpB,CAAC,CAAC;AACL,CAAC;AAuBD,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC7C,IAAoB,EACpB,IAAkH;IAElH,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC;IACtC,MAAM,GAAG,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IAG1F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE;SAC/B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC;SAC5B,IAAI,CAAC,CAAC,CAAC;SACP,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;SACvG,KAAK,CAAC,CAAC,CAAC;SACR,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACrB,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO;IAEnC,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACvD,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC;IACnE,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;QAAE,OAAO;IAGvD,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE;YACpC,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAA+B,CAAC;SAC5F,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,MAAM,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,EAAE,UAAU,EAAE,CAAC,sBAAsB,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/api-svc",
3
- "version": "6.0.2",
3
+ "version": "6.1.0",
4
4
  "license": "Apache-2.0",
5
5
  "type": "module",
6
6
  "main": "./index.js",
@@ -20,18 +20,18 @@
20
20
  "@libsql/client": "~0.17.4",
21
21
  "@neondatabase/serverless": "~1.1.0",
22
22
  "@noble/hashes": "~2.2.0",
23
- "@vibes.diy/api-pkg": "6.0.2",
24
- "@vibes.diy/api-sql": "6.0.2",
25
- "@vibes.diy/api-types": "6.0.2",
26
- "@vibes.diy/call-ai-v2": "6.0.2",
27
- "@vibes.diy/identity": "6.0.2",
28
- "@vibes.diy/prompts": "6.0.2",
29
- "@vibes.diy/vibe-db-explorer": "6.0.2",
30
- "@vibes.diy/vibe-runtime": "6.0.2",
31
- "@vibes.diy/vibe-types": "6.0.2",
23
+ "@vibes.diy/api-pkg": "6.1.0",
24
+ "@vibes.diy/api-sql": "6.1.0",
25
+ "@vibes.diy/api-types": "6.1.0",
26
+ "@vibes.diy/call-ai-v2": "6.1.0",
27
+ "@vibes.diy/identity": "6.1.0",
28
+ "@vibes.diy/prompts": "6.1.0",
29
+ "@vibes.diy/vibe-db-explorer": "6.1.0",
30
+ "@vibes.diy/vibe-runtime": "6.1.0",
31
+ "@vibes.diy/vibe-types": "6.1.0",
32
32
  "acorn": "~8.17.0",
33
33
  "arktype": "~2.2.3",
34
- "call-ai": "6.0.2",
34
+ "call-ai": "6.1.0",
35
35
  "cookie": "~2.0.1",
36
36
  "drizzle-orm": "~0.45.2",
37
37
  "jose": "~6.2.2",
@@ -1,10 +1,36 @@
1
1
  import { ActiveEntry, AppScopedActiveEntry } from "@vibes.diy/api-types";
2
- import type { VibesApiSQLCtx } from "../types.js";
2
+ import type { DBFlavour, VibesApiTables, VibesSqlite } from "@vibes.diy/api-sql";
3
+ export interface AppSettingItemsCtx {
4
+ readonly sql: {
5
+ readonly db: VibesSqlite;
6
+ readonly tables: VibesApiTables;
7
+ readonly flavour?: DBFlavour;
8
+ };
9
+ }
3
10
  export interface AppSettingItemKey {
4
11
  readonly userId: string;
5
12
  readonly ownerHandle: string;
6
13
  readonly appSlug: string;
7
14
  }
8
- export declare function upsertAppSettingItem(vctx: VibesApiSQLCtx, key: AppSettingItemKey, entry: AppScopedActiveEntry): Promise<void>;
9
- export declare function removeAppSettingItem(vctx: VibesApiSQLCtx, key: AppSettingItemKey, itemKey: string): Promise<void>;
10
- export declare function readComposedSettings(vctx: VibesApiSQLCtx, key: AppSettingItemKey): Promise<ActiveEntry[]>;
15
+ export declare function canonicalizeAppScopedEntry(entry: AppScopedActiveEntry): AppScopedActiveEntry;
16
+ export declare function upsertAppSettingItem(ctx: AppSettingItemsCtx, key: AppSettingItemKey, rawEntry: AppScopedActiveEntry): Promise<void>;
17
+ export declare function removeAppSettingItem(ctx: AppSettingItemsCtx, key: AppSettingItemKey, itemKey: string): Promise<void>;
18
+ export declare const __appSettingItemsTestHooks: {
19
+ afterReadMarker?: () => Promise<void>;
20
+ };
21
+ export declare function seedItemIfUnmigrated(ctx: AppSettingItemsCtx, key: AppSettingItemKey, rawEntry: AppScopedActiveEntry): Promise<void>;
22
+ export interface WriteAppSettingItemsInput {
23
+ readonly upserts?: readonly AppScopedActiveEntry[];
24
+ readonly removeKeys?: readonly string[];
25
+ }
26
+ export declare function writeAppSettingItems(ctx: AppSettingItemsCtx, key: AppSettingItemKey, input: WriteAppSettingItemsInput): Promise<void>;
27
+ export declare function readComposedSettings(ctx: AppSettingItemsCtx, key: AppSettingItemKey): Promise<ActiveEntry[]>;
28
+ export declare function readComposedSettingsForApp(ctx: AppSettingItemsCtx, ownerHandle: string, appSlug: string): Promise<ActiveEntry[]>;
29
+ export interface SettingsRowForCompose {
30
+ readonly userId: string;
31
+ readonly ownerHandle: string;
32
+ readonly appSlug: string;
33
+ readonly settings: unknown;
34
+ readonly settingsItemizedAt: string | null;
35
+ }
36
+ export declare function composeSettingsRows(ctx: AppSettingItemsCtx, rows: readonly SettingsRowForCompose[]): Promise<Map<string, ActiveEntry[]>>;
@@ -1,10 +1,19 @@
1
- import { ActiveEntry, keyForEntry, parseArrayWarning } from "@vibes.diy/api-types";
2
- import { and, asc, eq } from "drizzle-orm/sql/expressions";
3
- export async function upsertAppSettingItem(vctx, key, entry) {
1
+ import { ActiveEntry, isAppScopedEntry, keyForEntry, parseArrayWarning } from "@vibes.diy/api-types";
2
+ import { and, asc, eq, isNull, or } from "drizzle-orm/sql/expressions";
3
+ import { sql } from "drizzle-orm";
4
+ import { canonicalEmail } from "./social-invite-store.js";
5
+ export function canonicalizeAppScopedEntry(entry) {
6
+ if (entry.type === "app.acl.active.invite") {
7
+ return { ...entry, invite: { ...entry.invite, email: canonicalEmail(entry.invite.email) } };
8
+ }
9
+ return entry;
10
+ }
11
+ export async function upsertAppSettingItem(ctx, key, rawEntry) {
4
12
  const now = new Date().toISOString();
13
+ const entry = canonicalizeAppScopedEntry(rawEntry);
5
14
  const itemKey = keyForEntry(entry);
6
- const t = vctx.sql.tables.appSettingItems;
7
- await vctx.sql.db
15
+ const t = ctx.sql.tables.appSettingItems;
16
+ await ctx.sql.db
8
17
  .insert(t)
9
18
  .values({
10
19
  userId: key.userId,
@@ -20,31 +29,167 @@ export async function upsertAppSettingItem(vctx, key, entry) {
20
29
  set: { item: entry, updated: now },
21
30
  });
22
31
  }
23
- export async function removeAppSettingItem(vctx, key, itemKey) {
24
- const t = vctx.sql.tables.appSettingItems;
25
- await vctx.sql.db
32
+ export async function removeAppSettingItem(ctx, key, itemKey) {
33
+ const t = ctx.sql.tables.appSettingItems;
34
+ await ctx.sql.db
26
35
  .delete(t)
27
36
  .where(and(eq(t.userId, key.userId), eq(t.ownerHandle, key.ownerHandle), eq(t.appSlug, key.appSlug), eq(t.itemKey, itemKey)));
28
37
  }
29
- export async function readComposedSettings(vctx, key) {
30
- const at = vctx.sql.tables.appSettings;
31
- const settingsRows = await vctx.sql.db
38
+ function runItemsSql(db, flavour, stmt) {
39
+ if (flavour === "pg") {
40
+ return db.execute(stmt);
41
+ }
42
+ return db.run(stmt);
43
+ }
44
+ export const __appSettingItemsTestHooks = {};
45
+ export async function seedItemIfUnmigrated(ctx, key, rawEntry) {
46
+ const flavour = ctx.sql.flavour;
47
+ const now = new Date().toISOString();
48
+ const entry = canonicalizeAppScopedEntry(rawEntry);
49
+ const itemKey = keyForEntry(entry);
50
+ const itemJson = flavour === "pg" ? sql `${JSON.stringify(entry)}::jsonb` : sql `${JSON.stringify(entry)}`;
51
+ const stmt = sql `
52
+ INSERT INTO "AppSettingItems" ("userId","userSlug","appSlug","itemKey","item","updated","created")
53
+ SELECT ${key.userId}, ${key.ownerHandle}, ${key.appSlug}, ${itemKey}, ${itemJson}, ${now}, ${now}
54
+ FROM "AppSettings"
55
+ WHERE "userId"=${key.userId} AND "userSlug"=${key.ownerHandle} AND "appSlug"=${key.appSlug}
56
+ AND "settingsItemizedAt" IS NULL
57
+ ON CONFLICT ("userId","userSlug","appSlug","itemKey") DO NOTHING`;
58
+ await runItemsSql(ctx.sql.db, flavour, stmt);
59
+ }
60
+ export async function writeAppSettingItems(ctx, key, input) {
61
+ await migrateAndApply(ctx, key, { upserts: input.upserts ?? [], removeKeys: input.removeKeys ?? [] });
62
+ }
63
+ async function migrateAndApply(ctx, key, input) {
64
+ const { upserts, removeKeys } = input;
65
+ const at = ctx.sql.tables.appSettings;
66
+ const now = new Date().toISOString();
67
+ const rows = await ctx.sql.db
32
68
  .select({ settings: at.settings, settingsItemizedAt: at.settingsItemizedAt })
33
69
  .from(at)
34
70
  .where(and(eq(at.userId, key.userId), eq(at.ownerHandle, key.ownerHandle), eq(at.appSlug, key.appSlug)))
35
71
  .limit(1);
36
- const row = settingsRows[0];
37
- if (row === undefined)
38
- return [];
39
- if (row.settingsItemizedAt === null || row.settingsItemizedAt === undefined) {
40
- return parseArrayWarning(row.settings ?? [], ActiveEntry).filtered;
72
+ const row = rows[0];
73
+ await __appSettingItemsTestHooks.afterReadMarker?.();
74
+ let bumpedUpdated = false;
75
+ if (row === undefined) {
76
+ if (upserts.length === 0)
77
+ return;
78
+ await ctx.sql.db
79
+ .insert(at)
80
+ .values({
81
+ userId: key.userId,
82
+ ownerHandle: key.ownerHandle,
83
+ appSlug: key.appSlug,
84
+ settings: [],
85
+ settingsItemizedAt: now,
86
+ updated: now,
87
+ created: now,
88
+ })
89
+ .onConflictDoNothing({ target: [at.userId, at.appSlug, at.ownerHandle] });
90
+ bumpedUpdated = true;
91
+ }
92
+ else if (row.settingsItemizedAt === null || row.settingsItemizedAt === undefined) {
93
+ const { filtered } = parseArrayWarning(row.settings ?? [], ActiveEntry);
94
+ for (const e of filtered) {
95
+ if (isAppScopedEntry(e))
96
+ await seedItemIfUnmigrated(ctx, key, e);
97
+ }
98
+ await ctx.sql.db
99
+ .update(at)
100
+ .set({ settingsItemizedAt: now, updated: now })
101
+ .where(and(eq(at.userId, key.userId), eq(at.ownerHandle, key.ownerHandle), eq(at.appSlug, key.appSlug), isNull(at.settingsItemizedAt)));
102
+ bumpedUpdated = true;
41
103
  }
42
- const it = vctx.sql.tables.appSettingItems;
43
- const itemRows = await vctx.sql.db
104
+ for (const e of upserts)
105
+ await upsertAppSettingItem(ctx, key, e);
106
+ for (const k of removeKeys)
107
+ await removeAppSettingItem(ctx, key, k);
108
+ if ((upserts.length > 0 || removeKeys.length > 0) && bumpedUpdated === false) {
109
+ await ctx.sql.db
110
+ .update(at)
111
+ .set({ updated: now })
112
+ .where(and(eq(at.userId, key.userId), eq(at.ownerHandle, key.ownerHandle), eq(at.appSlug, key.appSlug)));
113
+ }
114
+ }
115
+ async function composeItemRows(ctx, key) {
116
+ const it = ctx.sql.tables.appSettingItems;
117
+ const itemRows = await ctx.sql.db
44
118
  .select({ item: it.item })
45
119
  .from(it)
46
120
  .where(and(eq(it.userId, key.userId), eq(it.ownerHandle, key.ownerHandle), eq(it.appSlug, key.appSlug)))
47
121
  .orderBy(asc(it.itemKey));
48
122
  return parseArrayWarning(itemRows.map((r) => r.item), ActiveEntry).filtered;
49
123
  }
124
+ export async function readComposedSettings(ctx, key) {
125
+ const at = ctx.sql.tables.appSettings;
126
+ const settingsRows = await ctx.sql.db
127
+ .select({ settings: at.settings, settingsItemizedAt: at.settingsItemizedAt })
128
+ .from(at)
129
+ .where(and(eq(at.userId, key.userId), eq(at.ownerHandle, key.ownerHandle), eq(at.appSlug, key.appSlug)))
130
+ .limit(1);
131
+ const row = settingsRows[0];
132
+ if (row === undefined)
133
+ return [];
134
+ if (row.settingsItemizedAt === null || row.settingsItemizedAt === undefined) {
135
+ return parseArrayWarning(row.settings ?? [], ActiveEntry).filtered;
136
+ }
137
+ return composeItemRows(ctx, key);
138
+ }
139
+ export async function readComposedSettingsForApp(ctx, ownerHandle, appSlug) {
140
+ const at = ctx.sql.tables.appSettings;
141
+ const hb = ctx.sql.tables.handleBinding;
142
+ const rows = await ctx.sql.db
143
+ .select({ userId: at.userId, settings: at.settings, settingsItemizedAt: at.settingsItemizedAt })
144
+ .from(at)
145
+ .innerJoin(hb, and(eq(hb.handle, at.ownerHandle), eq(hb.userId, at.userId)))
146
+ .where(and(eq(at.ownerHandle, ownerHandle), eq(at.appSlug, appSlug)))
147
+ .limit(1);
148
+ const row = rows[0];
149
+ if (row === undefined)
150
+ return [];
151
+ if (row.settingsItemizedAt === null || row.settingsItemizedAt === undefined) {
152
+ return parseArrayWarning(row.settings ?? [], ActiveEntry).filtered;
153
+ }
154
+ return composeItemRows(ctx, { userId: row.userId, ownerHandle, appSlug });
155
+ }
156
+ export async function composeSettingsRows(ctx, rows) {
157
+ const out = new Map();
158
+ const migrated = [];
159
+ for (const r of rows) {
160
+ const mapKey = `${r.ownerHandle}/${r.appSlug}`;
161
+ if (r.settingsItemizedAt === null || r.settingsItemizedAt === undefined) {
162
+ out.set(mapKey, parseArrayWarning(r.settings ?? [], ActiveEntry).filtered);
163
+ }
164
+ else {
165
+ migrated.push(r);
166
+ }
167
+ }
168
+ if (migrated.length > 0) {
169
+ const it = ctx.sql.tables.appSettingItems;
170
+ const conds = migrated.map((r) => and(eq(it.userId, r.userId), eq(it.ownerHandle, r.ownerHandle), eq(it.appSlug, r.appSlug)));
171
+ const [first, ...rest] = conds;
172
+ if (first !== undefined) {
173
+ const where = rest.length === 0 ? first : or(first, ...rest);
174
+ const itemRows = await ctx.sql.db
175
+ .select({ ownerHandle: it.ownerHandle, appSlug: it.appSlug, item: it.item })
176
+ .from(it)
177
+ .where(where);
178
+ const grouped = new Map();
179
+ for (const ir of itemRows) {
180
+ const mapKey = `${ir.ownerHandle}/${ir.appSlug}`;
181
+ const bucket = grouped.get(mapKey);
182
+ if (bucket === undefined)
183
+ grouped.set(mapKey, [ir.item]);
184
+ else
185
+ bucket.push(ir.item);
186
+ }
187
+ for (const r of migrated) {
188
+ const mapKey = `${r.ownerHandle}/${r.appSlug}`;
189
+ out.set(mapKey, parseArrayWarning(grouped.get(mapKey) ?? [], ActiveEntry).filtered);
190
+ }
191
+ }
192
+ }
193
+ return out;
194
+ }
50
195
  //# sourceMappingURL=app-setting-items.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"app-setting-items.js","sourceRoot":"","sources":["../../jsr/public/app-setting-items.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app-setting-items.js","sourceRoot":"","sources":["../../jsr/public/app-setting-items.ts"],"names":[],"mappings":"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"}