@vibes.diy/api-impl 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.
@@ -1,10 +1,10 @@
1
- import { ReturnOnFunc } from "@adviser/cement";
1
+ import { Result, ReturnOnFunc } from "@adviser/cement";
2
2
  import { W3CWebSocketErrorEvent, W3CWebSocketMessageEvent, W3CWebSocketCloseEvent } from "@vibes.diy/api-types";
3
3
  export interface VibeDiyApiConnection {
4
4
  ctx: unknown;
5
5
  onError: ReturnOnFunc<[W3CWebSocketErrorEvent]>;
6
6
  onMessage: ReturnOnFunc<[W3CWebSocketMessageEvent]>;
7
7
  onClose: ReturnOnFunc<[W3CWebSocketCloseEvent]>;
8
- send(data: Uint8Array<ArrayBuffer>): void;
8
+ send(data: Uint8Array<ArrayBuffer>): Result<void>;
9
9
  close(): Promise<void>;
10
10
  }
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { MsgBase, MsgBaseCfg, ReqEnsureAppSlug, ResEnsureAppSlug, ResultVibesDiy, VibesDiyError, MsgBox, ReqOpenChat, ReqListUserSlugAppSlug, ResListUserSlugAppSlug, ReqGetChatDetails, ResGetChatDetails, ReqGetAppByFsId, ResGetAppByFsId, VibesDiyApiIface, OptionalAuth, Req, LLMChat, ReqEnsureUserSettings, ResEnsureUserSettings, ReqListApplicationChats, ResListApplicationChats, ReqEnsureAppSettings, ResEnsureAppSettings, ReqSetModeFs, ResSetModeFs, ReqFPCloudToken, ResFPCloudToken, ReqCreateInvite, ResCreateInvite, ReqRevokeInvite, ResRevokeInvite, ReqRedeemInvite, ResRedeemInviteOK, ReqHasAccessInvite, ResHasAccessInvite, ReqInviteSetRole, ResInviteSetRole, ReqListInviteGrants, ResListInviteGrants, ReqListRequestGrants, ResListRequestGrants, ReqRequestAccess, ReqApproveRequest, ResApproveRequest, ReqRequestSetRole, ResRequestSetRole, ReqRevokeRequest, ResRevokeRequest, ReqHasAccessRequest, ResHasAccessRequest, ResRequestAccess, ReqListUserSlugBindings, ResListUserSlugBindings, ReqCreateUserSlugBinding, ResCreateUserSlugBinding, ReqDeleteUserSlugBinding, ResDeleteUserSlugBinding } from "@vibes.diy/api-types";
1
+ import { MsgBase, MsgBaseCfg, ReqEnsureAppSlug, ResEnsureAppSlug, ResultVibesDiy, VibesDiyError, MsgBox, ReqOpenChat, ReqListUserSlugAppSlug, ResListUserSlugAppSlug, ReqGetChatDetails, ResGetChatDetails, ReqGetAppByFsId, ResGetAppByFsId, VibesDiyApiIface, OptionalAuth, Req, LLMChat, ReqEnsureUserSettings, ResEnsureUserSettings, ReqListApplicationChats, ResListApplicationChats, ReqEnsureAppSettings, ResEnsureAppSettings, ReqSetModeFs, ResSetModeFs, ReqForkApp, ResForkApp, ReqFPCloudToken, ResFPCloudToken, ReqCreateInvite, ResCreateInvite, ReqRevokeInvite, ResRevokeInvite, ReqRedeemInvite, ResRedeemInviteOK, ReqHasAccessInvite, ResHasAccessInvite, ReqInviteSetRole, ResInviteSetRole, ReqListInviteGrants, ResListInviteGrants, ReqListRequestGrants, ResListRequestGrants, ReqRequestAccess, ReqApproveRequest, ResApproveRequest, ReqRequestSetRole, ResRequestSetRole, ReqRevokeRequest, ResRevokeRequest, ReqHasAccessRequest, ResHasAccessRequest, ResRequestAccess, ReqListUserSlugBindings, ResListUserSlugBindings, ReqCreateUserSlugBinding, ResCreateUserSlugBinding, ReqDeleteUserSlugBinding, ResDeleteUserSlugBinding, ReqPutDoc, ResPutDoc, ReqGetDoc, ResGetDoc, ResGetDocNotFound, ReqQueryDocs, ResQueryDocs, ReqDeleteDoc, ResDeleteDoc, ReqSubscribeDocs, ResSubscribeDocs } from "@vibes.diy/api-types";
2
2
  import { Result } from "@adviser/cement";
3
3
  import { ClerkClaim, SuperThis } from "@fireproof/core-types-base";
4
4
  import { VibeDiyApiConnection } from "./api-connection.js";
@@ -57,6 +57,7 @@ export declare class VibesDiyApi implements VibesDiyApiIface<{
57
57
  ensureAppSettings(req: Req<ReqEnsureAppSettings>): Promise<Result<ResEnsureAppSettings, VibesDiyError>>;
58
58
  listApplicationChats(req: Req<ReqListApplicationChats>): Promise<Result<ResListApplicationChats, VibesDiyError>>;
59
59
  setSetModeFs(req: Req<ReqSetModeFs>): Promise<Result<ResSetModeFs>>;
60
+ forkApp(req: Req<ReqForkApp>): Promise<Result<ResForkApp, VibesDiyError>>;
60
61
  getFPCloudToken(req: Req<ReqFPCloudToken>): Promise<Result<ResFPCloudToken>>;
61
62
  getCertFromCsr(req: Req<ReqCertFromCsr>): Promise<Result<ResCertFromCsr>>;
62
63
  openChat(req: Req<ReqOpenChat>): Promise<Result<LLMChat>>;
@@ -87,5 +88,11 @@ export declare class VibesDiyApi implements VibesDiyApiIface<{
87
88
  preSelected?: ("app" | "chat" | "fs-set" | "fs-update" | "img")[] | undefined;
88
89
  }[];
89
90
  }, VibesDiyError>>;
91
+ putDoc(req: Req<ReqPutDoc>): Promise<Result<ResPutDoc, VibesDiyError>>;
92
+ getDoc(req: Req<ReqGetDoc>): Promise<Result<ResGetDoc | ResGetDocNotFound, VibesDiyError>>;
93
+ queryDocs(req: Req<ReqQueryDocs>): Promise<Result<ResQueryDocs, VibesDiyError>>;
94
+ deleteDoc(req: Req<ReqDeleteDoc>): Promise<Result<ResDeleteDoc, VibesDiyError>>;
95
+ subscribeDocs(req: Req<ReqSubscribeDocs>): Promise<Result<ResSubscribeDocs, VibesDiyError>>;
96
+ onDocChanged(fn: (appSlug: string, docId: string) => void): void;
90
97
  }
91
98
  export * from "./api-connection.js";
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- import { msgBase, resError, isResError, sectionEvent, isResEnsureAppSlug, isResOpenChat, isResPromptChatSection, isResListUserSlugAppSlug, isResGetChatDetails, isResGetAppByFsId, isResEnsureUserSettings, isResListApplicationChats, isResEnsureAppSettings, isResSetModeFs, isResFPCloudToken, isResCreateInvite, isResRevokeInvite, isResRedeemInvite, isResHasAccessInvite, isResInviteSetRole, isResListInviteGrants, isResListRequestGrants, isResApproveRequest, isResRequestSetRole, isResRevokeRequest, isResRequestAccessFlow, isResHasAccessRequestFlow, isResListUserSlugBindings, isResCreateUserSlugBinding, isResDeleteUserSlugBinding, isResListModels, isPromptLLMStyle, isFSUpdate, vibeFile, } from "@vibes.diy/api-types";
1
+ import { msgBase, resError, isResError, sectionEvent, isResEnsureAppSlug, isResOpenChat, isResPromptChatSection, isResListUserSlugAppSlug, isResGetChatDetails, isResGetAppByFsId, isResEnsureUserSettings, isResListApplicationChats, isResEnsureAppSettings, isResSetModeFs, isResForkApp, isResFPCloudToken, isResCreateInvite, isResRevokeInvite, isResRedeemInvite, isResHasAccessInvite, isResInviteSetRole, isResListInviteGrants, isResListRequestGrants, isResApproveRequest, isResRequestSetRole, isResRevokeRequest, isResRequestAccessFlow, isResHasAccessRequestFlow, isResListUserSlugBindings, isResCreateUserSlugBinding, isResDeleteUserSlugBinding, isResListModels, isPromptLLMStyle, isResPutDoc, isResGetDoc, isResGetDocNotFound, isResQueryDocs, isResDeleteDoc, isResSubscribeDocs, isEvtDocChanged, isFSUpdate, vibeFile, } from "@vibes.diy/api-types";
2
2
  import { Evento, Future, JSONEnDecoderSingleton, Result, Option, timeouted, EventoResult, Lazy, } from "@adviser/cement";
3
3
  import { ensureSuperThis } from "@fireproof/core-runtime";
4
4
  import { W3CWebSocketEventEventoEnDecoder } from "@vibes.diy/api-pkg";
@@ -69,7 +69,15 @@ export class VibesDiyApi {
69
69
  const conn = await this.getReadyConnection();
70
70
  const ende = JSONEnDecoderSingleton();
71
71
  const uint8ify = ende.uint8ify(msgBox);
72
- conn.send(uint8ify);
72
+ const rSend = conn.send(uint8ify);
73
+ if (rSend.isErr()) {
74
+ return Result.Err({
75
+ type: "vibes.diy.error",
76
+ name: "VibesDiyError",
77
+ message: `Reconnecting, please retry (${String(rSend.Err())})`,
78
+ code: "websocket-send-failed",
79
+ });
80
+ }
73
81
  return Result.Ok(msgBox);
74
82
  }
75
83
  async request(req, msgParam) {
@@ -169,6 +177,11 @@ export class VibesDiyApi {
169
177
  resMatch: isResSetModeFs,
170
178
  });
171
179
  }
180
+ forkApp(req) {
181
+ return this.request({ ...req, type: "vibes.diy.req-fork-app" }, {
182
+ resMatch: isResForkApp,
183
+ });
184
+ }
172
185
  getFPCloudToken(req) {
173
186
  return this.request({ ...req, type: "vibes.diy.req-fpcloud-token" }, {
174
187
  resMatch: isResFPCloudToken,
@@ -233,6 +246,43 @@ export class VibesDiyApi {
233
246
  listModels = Lazy((req) => {
234
247
  return this.request({ ...req, type: "vibes.diy.req-list-models" }, { resMatch: isResListModels });
235
248
  }, { resetAfter: 10 * 60 * 1000 });
249
+ putDoc(req) {
250
+ return this.request({ ...req, type: "vibes.diy.req-put-doc" }, { resMatch: isResPutDoc });
251
+ }
252
+ getDoc(req) {
253
+ return this.request({ ...req, type: "vibes.diy.req-get-doc" }, { resMatch: (obj) => isResGetDoc(obj) || isResGetDocNotFound(obj) });
254
+ }
255
+ queryDocs(req) {
256
+ return this.request({ ...req, type: "vibes.diy.req-query-docs" }, { resMatch: isResQueryDocs });
257
+ }
258
+ deleteDoc(req) {
259
+ return this.request({ ...req, type: "vibes.diy.req-delete-doc" }, { resMatch: isResDeleteDoc });
260
+ }
261
+ subscribeDocs(req) {
262
+ return this.request({ ...req, type: "vibes.diy.req-subscribe-docs" }, { resMatch: isResSubscribeDocs });
263
+ }
264
+ onDocChanged(fn) {
265
+ this.getReadyConnection().then((conn) => {
266
+ conn.onMessage((wsEvent) => {
267
+ if (wsEvent.type !== "MessageEvent")
268
+ return;
269
+ const raw = wsEvent.event.data;
270
+ const textPromise = raw instanceof Blob
271
+ ? raw.text()
272
+ : Promise.resolve(typeof raw === "string" ? raw : new TextDecoder().decode(raw));
273
+ textPromise
274
+ .then((text) => {
275
+ const parsed = JSON.parse(text);
276
+ const msg = msgBase(parsed);
277
+ if (!(msg instanceof type.errors) && isEvtDocChanged(msg.payload)) {
278
+ fn(msg.payload.appSlug, msg.payload.docId);
279
+ }
280
+ })
281
+ .catch(() => {
282
+ });
283
+ });
284
+ });
285
+ }
236
286
  }
237
287
  class LLMChatImpl {
238
288
  api;
@@ -277,6 +327,8 @@ class LLMChatImpl {
277
327
  if (!(se instanceof type.errors)) {
278
328
  await sectionEventsWriter.write(se);
279
329
  }
330
+ else {
331
+ }
280
332
  }
281
333
  return Result.Ok(EventoResult.Continue);
282
334
  },
@@ -348,7 +400,7 @@ class LLMChatImpl {
348
400
  });
349
401
  }
350
402
  }
351
- async prompt(msg) {
403
+ async prompt(msg, opts) {
352
404
  const mode = this.res.mode;
353
405
  if (!isPromptLLMStyle(mode)) {
354
406
  return Result.Err({
@@ -364,6 +416,7 @@ class LLMChatImpl {
364
416
  chatId: this.res.chatId,
365
417
  outerTid: this.tid,
366
418
  prompt: msg,
419
+ ...(mode === "img" && opts?.inputImageBase64 ? { inputImageBase64: opts.inputImageBase64 } : {}),
367
420
  }, {
368
421
  resMatch: isResPromptChatSection,
369
422
  });
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../jsr/index.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,OAAO,EACP,QAAQ,EACR,UAAU,EAGV,YAAY,EAEZ,kBAAkB,EAClB,aAAa,EACb,sBAAsB,EAGtB,wBAAwB,EAGxB,mBAAmB,EAGnB,iBAAiB,EAQjB,uBAAuB,EAGvB,yBAAyB,EAGzB,sBAAsB,EAGtB,cAAc,EAGd,YAAY,EAGZ,iBAAiB,EAIjB,iBAAiB,EAGjB,iBAAiB,EAGjB,iBAAiB,EAGjB,oBAAoB,EAGpB,kBAAkB,EAGlB,qBAAqB,EAGrB,sBAAsB,EAKtB,mBAAmB,EAGnB,mBAAmB,EAGnB,kBAAkB,EAGlB,sBAAsB,EACtB,yBAAyB,EAIzB,yBAAyB,EAGzB,0BAA0B,EAG1B,0BAA0B,EAG1B,eAAe,EACf,gBAAgB,EAGhB,WAAW,EAIX,WAAW,EACX,mBAAmB,EAGnB,cAAc,EAGd,cAAc,EAGd,kBAAkB,EAClB,eAAe,EAGf,UAAU,EACV,QAAQ,GAGT,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACL,MAAM,EAEN,MAAM,EACN,sBAAsB,EACtB,MAAM,EACN,MAAM,EAEN,SAAS,EAET,YAAY,EAEZ,IAAI,GACL,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,oBAAoB,CAAC;AAEtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,2BAA2B,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AAsCpE,MAAM,OAAO,WAAW;IAIb,GAAG,CAAoB;IACf,eAAe,GAAG,IAAI,GAAG,EAAmC,CAAC;IAE9E,YAAY,GAAqB;QAC/B,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC;QAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC;QAK1B,IAAI,CAAC,GAAG,GAAG;YACT,MAAM;YACN,EAAE,EAAE,GAAG,CAAC,EAAE;YAEV,EAAE,EAAE,GAAG,CAAC,EAAE,IAAI,oBAAoB,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE;YACtD,QAAQ,EAAE,GAAG,CAAC,QAAQ;YACtB,KAAK,EAAE,GAAG,CAAC,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC;YAC1C,EAAE,EAAE,GAAG,CAAC,EAAE;YACV,SAAS,EAAE,GAAG,CAAC,SAAS,IAAI,KAAK;YACjC,GAAG,EAAE;gBACH,GAAG,EAAE,kBAAkB;gBACvB,GAAG,EAAE,kBAAkB;gBACvB,GAAG,EAAE,EAAE;gBACP,GAAG,GAAG,CAAC,GAAG;aACX;YACD,KAAK;SACN,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;QACzC,IAAI,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC5B,CAAC;QAED,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;QAChC,MAAM,QAAQ,GAAG,IAAI,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QACzD,IAAI,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CAAC,+BAA+B,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9D,OAAO,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,EAAE,EAAmD,CAAC,CAAC;IAClF,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,kBAAkB;QAChB,OAAO,8BAA8B,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,IAAI,CACR,GAAM,EACN,QAAyD;QAEzD,IAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACpB,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACd,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YAC5C,IAAI,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC;gBACrB,IAAI,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC;YACxB,CAAC;QAEH,CAAC;QACD,MAAM,MAAM,GAAY;YACtB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;YACpB,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE;YAChB,GAAG,EAAE,CAAC;YACN,GAAG,QAAQ;YACX,OAAO,EAAE;gBACP,GAAG,GAAG;gBACN,IAAI;aACL;SACF,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAE7C,MAAM,IAAI,GAAG,sBAAsB,EAAE,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAClC,IAAI,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;YAClB,OAAO,MAAM,CAAC,GAAG,CAAqC;gBACpD,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,+BAA+B,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG;gBAC9D,IAAI,EAAE,uBAAuB;aAC9B,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAA6B,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,OAAO,CACX,GAAM,EACN,QAGC;QAED,MAAM,GAAG,GAAG,QAAQ,EAAE,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAC3D,IAAI,KAA+B,CAAC;QACpC,MAAM,KAAK,GAAG,MAAM,SAAS,CAC3B,KAAK,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,kBAAkB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,gCAAgC,EAAE,CAAC,CAAC;YAClE,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,GAAG;gBACT,QAAQ,EAAE,KAAK,EAAE,OAAyE,EAAE,EAAE;oBAC5F,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;oBACvC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;wBAE/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;oBAClC,CAAC;oBACD,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;wBACnF,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC;oBACnD,CAAC;oBACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClC,CAAC;gBACD,MAAM,EAAE,KAAK,EAAE,OAAuE,EAAE,EAAE;oBACxF,IAAI,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC;wBAC1C,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAmB,OAAO,CAAC,SAAS,CAAC,OAAwB,CAAC,CAAC,CAAC;oBACpG,CAAC;yBAAM,CAAC;wBACN,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAmB,OAAO,CAAC,SAAS,CAAC,OAAY,CAAC,CAAC,CAAC;oBACvF,CAAC;oBACD,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;gBACtC,CAAC;aACF,CAAC,CAAC;YAEH,MAAM,eAAe,GAAG,IAAI,MAAM,EAA4B,CAAC;YAC/D,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC/B,MAAM,CAAC,OAAO,CAAC;oBACb,OAAO,EAAE,KAAK;oBACd,IAAI,EAAE,CAAC,KAAK,EAAE,IAAqD,EAAE,IAAa,EAAE,EAAE;wBAEpF,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,IAAmC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;wBAC1E,OAAO,GAAG,CAAC;oBACb,CAAC,CAAuE;iBACzE,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;YAC3C,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACjB,OAAO,MAAM,CAAC,GAAG,CAAmB,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;YAClD,CAAC;YACD,OAAO,eAAe,CAAC,SAAS,EAAE,CAAC;QACrC,CAAC,EACD;YACE,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS;SAC5B,CACF,CAAC;QACF,KAAK,EAAE,EAAE,CAAC;QACV,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,CAAC;YACvB,OAAO,MAAM,CAAC,GAAG,CAAmB;gBAClC,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,yBAAyB,IAAI,CAAC,GAAG,CAAC,SAAS,IAAI;gBACxD,IAAI,EAAE,iBAAiB;aACxB,CAAC,CAAC;QACL,CAAC;QACD,OAAO,KAAK,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,aAAa,CAAC,GAA0B;QACtC,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,+BAA+B,EAAE,EACjD;YACE,QAAQ,EAAE,kBAAkB;SAC7B,CACF,CAAC;IACJ,CAAC;IAWD,mBAAmB,CAAC,GAAgC;QAClD,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,uCAAuC,EAAE,EACzD;YACE,QAAQ,EAAE,wBAAwB;SACnC,CACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,GAA2B;QACxC,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,gCAAgC,EAAE,EAClD;YACE,QAAQ,EAAE,mBAAmB;SAC9B,CACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,GAAyB;QACpC,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,+BAA+B,EAAE,EACjD;YACE,QAAQ,EAAE,iBAAiB;SAC5B,CACF,CAAC;IACJ,CAAC;IAED,kBAAkB,CAAC,GAA+B;QAChD,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,oCAAoC,EAAE,EACtD;YACE,QAAQ,EAAE,uBAAuB;SAClC,CACF,CAAC;IACJ,CAAC;IAED,iBAAiB,CAAC,GAA8B;QAC9C,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,mCAAmC,EAAE,EACrD;YACE,QAAQ,EAAE,sBAAsB;SACjC,CACF,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAC,GAAiC;QACpD,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,sCAAsC,EAAE,EACxD;YACE,QAAQ,EAAE,yBAAyB;SACpC,CACF,CAAC;IACJ,CAAC;IAED,YAAY,CAAC,GAAsB;QACjC,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,2BAA2B,EAAE,EAC7C;YACE,QAAQ,EAAE,cAAc;SACzB,CACF,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAoB;QAC1B,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,wBAAwB,EAAE,EAC1C;YACE,QAAQ,EAAE,YAAY;SACvB,CACF,CAAC;IACJ,CAAC;IAED,eAAe,CAAC,GAAyB;QACvC,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAC/C;YACE,QAAQ,EAAE,iBAAiB;SAC5B,CACF,CAAC;IACJ,CAAC;IAED,cAAc,CAAC,GAAwB;QACrC,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAClC;YACE,QAAQ,EAAE,CAAC,GAAG,EAAyB,EAAE;gBACvC,MAAM,CAAC,GAAI,GAAsB,CAAC,IAAI,KAAK,gBAAgB,CAAC;gBAC5D,OAAO,CAAC,CAAC;YACX,CAAC;SACF,CACF,CAAC;IACJ,CAAC;IAED,QAAQ,CAAC,GAAqB;QAC5B,OAAO,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,IAAI,CAAC,CAAC;IAC7E,CAAC;IAED,YAAY,CAAC,GAAyB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,YAAY,CAAC,GAAyB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,YAAY,CAAC,GAAyB;QACpC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,6BAA6B,EAAE,EAAE,EAAE,QAAQ,EAAE,iBAAiB,EAAE,CAAC,CAAC;IACxG,CAAC;IAED,eAAe,CAAC,GAA4B;QAC1C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,iCAAiC,EAAE,EAAE,EAAE,QAAQ,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC/G,CAAC;IAED,aAAa,CAAC,GAA0B;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,+BAA+B,EAAE,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC3G,CAAC;IAED,gBAAgB,CAAC,GAA6B;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,kCAAkC,EAAE,EAAE,EAAE,QAAQ,EAAE,qBAAqB,EAAE,CAAC,CAAC;IACjH,CAAC;IAED,aAAa,CAAC,GAA0B;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,8BAA8B,EAAE,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,CAAC;IAC9G,CAAC;IAED,cAAc,CAAC,GAA2B;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,+BAA+B,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC5G,CAAC;IAED,cAAc,CAAC,GAA2B;QACxC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,gCAAgC,EAAE,EAAE,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC,CAAC;IAC7G,CAAC;IAED,aAAa,CAAC,GAA0B;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,8BAA8B,EAAE,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,iBAAiB,CAAC,GAA8B;QAC9C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,mCAAmC,EAAE,EAAE,EAAE,QAAQ,EAAE,sBAAsB,EAAE,CAAC,CAAC;IACnH,CAAC;IAED,gBAAgB,CAAC,GAA6B;QAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,kCAAkC,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,oBAAoB,CAAC,GAAiC;QACpD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,uCAAuC,EAAE,EAAE,EAAE,QAAQ,EAAE,yBAAyB,EAAE,CAAC,CAAC;IAC1H,CAAC;IAED,qBAAqB,CAAC,GAAkC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,wCAAwC,EAAE,EAAE,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAC5H,CAAC;IAED,qBAAqB,CAAC,GAAkC;QACtD,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,wCAAwC,EAAE,EAAE,EAAE,QAAQ,EAAE,0BAA0B,EAAE,CAAC,CAAC;IAC5H,CAAC;IAED,UAAU,GAAG,IAAI,CACf,CAAC,GAAuB,EAAiD,EAAE;QACzE,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,2BAA2B,EAAE,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;IACpG,CAAC,EACD,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,IAAI,EAAmB,CAChD,CAAC;IAGF,MAAM,CAAC,GAAmB;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;IAC5F,CAAC;IAED,MAAM,CAAC,GAAmB;QACxB,OAAO,IAAI,CAAC,OAAO,CACjB,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE,EACzC,EAAE,QAAQ,EAAE,CAAC,GAAY,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,mBAAmB,CAAC,GAAG,CAAC,EAAE,CAC7E,CAAC;IACJ,CAAC;IAED,SAAS,CAAC,GAAsB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,SAAS,CAAC,GAAsB;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,0BAA0B,EAAE,EAAE,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAClG,CAAC;IAED,aAAa,CAAC,GAA0B;QACtC,OAAO,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,EAAE,IAAI,EAAE,8BAA8B,EAAE,EAAE,EAAE,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;IAC1G,CAAC;IAED,YAAY,CAAC,EAA4C;QAGvD,IAAI,CAAC,kBAAkB,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,IAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE;gBACzB,IAAI,OAAO,CAAC,IAAI,KAAK,cAAc;oBAAE,OAAO;gBAC5C,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;gBAE/B,MAAM,WAAW,GACf,GAAG,YAAY,IAAI;oBACjB,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE;oBACZ,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,GAAiB,CAAC,CAAC,CAAC;gBACnG,WAAW;qBACR,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;oBACb,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;oBAChC,MAAM,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;oBAC5B,IAAI,CAAC,CAAC,GAAG,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,eAAe,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;wBAClE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC,CAAC;qBACD,KAAK,CAAC,GAAG,EAAE;gBAEZ,CAAC,CAAC,CAAC;YACP,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,WAAW;IACN,GAAG,CAAc;IACjB,GAAG,CAAS;IACZ,GAAG,CAAc;IAEjB,aAAa,CAAkC;IAE/C,OAAO,CAA+C;IAK/D,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;IACzB,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;IAC3B,CAAC;IACD,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;IAC1B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAA0B,EAAE,GAAgB;QAC5D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC;QAC5C,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC;QAEzC,MAAM,aAAa,GAAG,IAAI,eAAe,EAAoC,CAAC;QAE9E,MAAM,mBAAmB,GAAG,aAAa,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC;QAE/D,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,gCAAgC,EAAE,CAAC,CAAC;QAClE,MAAM,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,iBAAiB,GAAG,GAAG;YAC7B,QAAQ,EAAE,KAAK,EAAE,OAAoE,EAAE,EAAE;gBACvF,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACvC,IAAI,GAAG,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC/B,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;gBAClC,CAAC;gBACD,IAAI,GAAG,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;oBACpB,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACrC,CAAC;gBACD,OAAO,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;YAClC,CAAC;YACD,MAAM,EAAE,KAAK,EAAE,OAAkE,EAAE,EAAE;gBACnF,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBACpD,IAAI,CAAC,CAAC,OAAO,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;oBAEtC,OAAO,MAAM,CAAC,GAAG,CAAC,OAAwB,CAAC,CAAC;gBAC9C,CAAC;qBAAM,CAAC;oBACN,MAAM,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;oBACnD,IAAI,CAAC,CAAC,EAAE,YAAY,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;wBACjC,MAAM,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;oBACtC,CAAC;yBAAM,CAAC;oBAER,CAAC;gBACH,CAAC;gBACD,OAAO,MAAM,CAAC,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC1C,CAAC;SACF,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE;YAKrC,MAAM;iBACH,OAAO,CAAC;gBACP,OAAO,EAAE,KAAK;gBACd,IAAI,EAAE,CAAC,KAAK,EAAE,IAAqD,EAAE,IAAa,EAAE,EAAE;oBACpF,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,IAAsC,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;oBAC5E,OAAO,GAAG,CAAC;gBACb,CAAC,CAAuE;aACzE,CAAC;iBACD,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACb,mBAAmB,CAAC,KAAK,CAAC;oBACxB,IAAI,EAAE,iBAAiB;oBACvB,OAAO,EAAE,iCAAiC,GAAG,CAAC,OAAO,EAAE;oBACvD,IAAI,EAAE,sBAAsB;iBAC7B,CAAC,CAAC;gBACH,mBAAmB,CAAC,KAAK,EAAE,CAAC;YAC9B,CAAC,CAAC,CAAC;QACP,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACpB,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEpB,MAAM,GAAG,GAAG,MAAM,GAAG,CAAC,OAAO,CAAgC,IAAI,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,CAAC,CAAC;QACrG,IAAI,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC,GAAG,CAAU,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAAC;QACjG,OAAO,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAGD,YACE,GAAgB,EAChB,GAAW,EACX,GAAgB,EAChB,aAA8C,EAC9C,MAAoD;QAEpD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IAExB,CAAC;IAiBD,KAAK,CAAC,QAAQ,CAAC,GAA0B;QACvC,IAAI,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CACrB;gBACE,IAAI,EAAE,mCAAmC;gBACzC,IAAI,EAAE,WAAW;gBACjB,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;gBACvB,QAAQ,EAAE,IAAI,CAAC,GAAG;gBAClB,QAAQ,EAAE,GAAG;aACd,EACD;gBACE,QAAQ,EAAE,sBAAsB;aACjC,CACF,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,aAAa,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC,GAAG,CAAC,CAAC;YAC5C,IAAI,aAAa,YAAY,IAAI,CAAC,MAAM,EAAE,CAAC;gBACzC,OAAO,MAAM,CAAC,GAAG,CAAC;oBAChB,IAAI,EAAE,iBAAiB;oBACvB,IAAI,EAAE,eAAe;oBACrB,OAAO,EAAE,wBAAwB;oBACjC,IAAI,EAAE,wBAAwB;iBACd,CAAC,CAAC;YACtB,CAAC;YACD,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CACrB;gBACE,IAAI,EAAE,mCAAmC;gBACzC,IAAI,EAAE,QAAQ;gBACd,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;gBACvB,QAAQ,EAAE,IAAI,CAAC,GAAG;gBAClB,KAAK,EAAE,aAAa;aACrB,EACD;gBACE,QAAQ,EAAE,sBAAsB;aACjC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,GAAe,EAAE,IAAoC;QAChE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,MAAM,CAAC,GAAG,CAAC;gBAChB,IAAI,EAAE,iBAAiB;gBACvB,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,aAAa,IAAI,CAAC,GAAG,CAAC,IAAI,6BAA6B;gBAChE,IAAI,EAAE,uBAAuB;aACb,CAAC,CAAC;QACtB,CAAC;QACD,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,OAAO,CAChC;YACE,IAAI,EAAE,mCAAmC;YACzC,IAAI;YACJ,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM;YACvB,QAAQ,EAAE,IAAI,CAAC,GAAG;YAClB,MAAM,EAAE,GAAG;YACX,GAAG,CAAC,IAAI,KAAK,KAAK,IAAI,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjG,EACD;YACE,QAAQ,EAAE,sBAAsB;SACjC,CACF,CAAC;QAIF,OAAO,GAAG,CAAC;IACb,CAAC;IACD,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK;QACxB,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;CACF;AAED,cAAc,qBAAqB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibes.diy/api-impl",
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,13 @@
8
8
  },
9
9
  "dependencies": {
10
10
  "@adviser/cement": "~0.5.34",
11
- "@fireproof/core-protocols-dashboard": "~0.24.16",
12
- "@fireproof/core-runtime": "~0.24.16",
13
- "@fireproof/core-types-base": "~0.24.16",
14
- "@fireproof/core-types-protocols-dashboard": "~0.24.16",
15
- "@vibes.diy/api-pkg": "2.0.1",
16
- "@vibes.diy/api-types": "2.0.1",
17
- "@vibes.diy/call-ai-v2": "2.0.1",
11
+ "@fireproof/core-protocols-dashboard": "~0.24.19",
12
+ "@fireproof/core-runtime": "~0.24.19",
13
+ "@fireproof/core-types-base": "~0.24.19",
14
+ "@fireproof/core-types-protocols-dashboard": "~0.24.19",
15
+ "@vibes.diy/api-pkg": "2.0.6",
16
+ "@vibes.diy/api-types": "2.0.6",
17
+ "@vibes.diy/call-ai-v2": "2.0.6",
18
18
  "arktype": "~2.2.0",
19
19
  "ws": "~8.20.0"
20
20
  },
@@ -1,4 +1,4 @@
1
- import { BuildURI, Future, KeyedResolvOnce, OnFunc, runtimeFn, URI } from "@adviser/cement";
1
+ import { BuildURI, exception2Result, Future, KeyedResolvOnce, OnFunc, Result, runtimeFn, URI } from "@adviser/cement";
2
2
  const vibesDiyApiPerConnection = new KeyedResolvOnce();
3
3
  async function createWebSocket(url, ca) {
4
4
  if (!runtimeFn().isBrowser) {
@@ -11,28 +11,49 @@ export function getVibesDiyWebSocketConnection(url, presetWs, ca) {
11
11
  const wsSocketUrl = BuildURI.from(url)
12
12
  .protocol(["https", "wss"].find((i) => URI.from(url).protocol.startsWith(i)) ? "wss:" : "ws:")
13
13
  .toString();
14
- return vibesDiyApiPerConnection.get(wsSocketUrl).once(async ({ ctx }) => {
14
+ const slot = vibesDiyApiPerConnection.get(wsSocketUrl);
15
+ return slot.once(async ({ ctx }) => {
15
16
  const url = ctx.givenKey;
16
17
  const ws = presetWs ?? (await createWebSocket(wsSocketUrl, ca));
17
18
  const waitOpen = new Future();
18
19
  const onError = OnFunc();
19
20
  const onMessage = OnFunc();
20
21
  const onClose = OnFunc();
22
+ const nativeClose = ws.close?.bind(ws);
23
+ let opened = false;
24
+ const evictIfCurrent = () => {
25
+ if (vibesDiyApiPerConnection.has(url) && vibesDiyApiPerConnection.get(url) === slot) {
26
+ vibesDiyApiPerConnection.delete(url);
27
+ }
28
+ };
29
+ const fail = (msg) => {
30
+ evictIfCurrent();
31
+ nativeClose?.();
32
+ return Result.Err(msg);
33
+ };
21
34
  ws.onopen = () => {
35
+ opened = true;
22
36
  waitOpen.resolve(ws);
23
37
  };
24
38
  ws.onerror = (event) => {
25
39
  onError.invoke({ type: "ErrorEvent", event: event });
26
- waitOpen.reject(new Error(`WebSocket error: ${event}`));
40
+ evictIfCurrent();
41
+ if (!opened) {
42
+ waitOpen.reject(new Error(`WebSocket error: ${event}`));
43
+ }
27
44
  };
28
- ws.close = (code, reason) => {
29
- onClose.invoke({ type: "CloseEvent", event: { wasClean: true, code: code ?? 1000, reason: reason ?? "Closed by client" } });
30
- vibesDiyApiPerConnection.delete(url);
45
+ ws.onclose = (event) => {
46
+ evictIfCurrent();
47
+ onClose.invoke({ type: "CloseEvent", event: { wasClean: event.wasClean, code: event.code, reason: event.reason } });
48
+ if (!opened) {
49
+ waitOpen.reject(new Error(`WebSocket closed before open: code=${event.code} reason=${event.reason}`));
50
+ }
31
51
  };
32
52
  ws.onmessage = (event) => {
33
53
  onMessage.invoke({ type: "MessageEvent", event });
34
54
  };
35
55
  if (ws.readyState === WebSocket.OPEN) {
56
+ opened = true;
36
57
  waitOpen.resolve(ws);
37
58
  }
38
59
  return waitOpen.asPromise().then((ws) => ({
@@ -41,11 +62,19 @@ export function getVibesDiyWebSocketConnection(url, presetWs, ca) {
41
62
  onMessage,
42
63
  onClose,
43
64
  close: () => {
44
- ws.close();
65
+ evictIfCurrent();
66
+ nativeClose?.();
45
67
  return Promise.resolve();
46
68
  },
47
69
  send: (data) => {
48
- ws.send(data);
70
+ if (ws.readyState === WebSocket.CLOSING || ws.readyState === WebSocket.CLOSED) {
71
+ return fail(`WebSocket is not open (readyState=${ws.readyState})`);
72
+ }
73
+ const rSend = exception2Result(() => ws.send(data));
74
+ if (rSend.isErr()) {
75
+ return fail(`WebSocket send failed: ${String(rSend.Err())}`);
76
+ }
77
+ return Result.Ok(undefined);
49
78
  },
50
79
  }));
51
80
  });
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-connection.js","sourceRoot":"","sources":["../jsr/websocket-connection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-connection.js","sourceRoot":"","sources":["../jsr/websocket-connection.ts"],"names":[],"mappings":"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"}