@alistigo/claude-storage-plugin 0.2.10

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/dist/index.js ADDED
@@ -0,0 +1,1169 @@
1
+ class Q extends Error {
2
+ constructor(n) {
3
+ super(n), this.name = "ListError";
4
+ }
5
+ }
6
+ class ke extends Q {
7
+ constructor(n) {
8
+ super(`ListElement not found: ${n}`), this.name = "ListElementNotFoundError";
9
+ }
10
+ }
11
+ const De = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i;
12
+ function Ue(e) {
13
+ return typeof e == "string" && De.test(e);
14
+ }
15
+ var w = [];
16
+ for (var ne = 0; ne < 256; ++ne)
17
+ w.push((ne + 256).toString(16).slice(1));
18
+ function Ie(e, n = 0) {
19
+ return (w[e[n + 0]] + w[e[n + 1]] + w[e[n + 2]] + w[e[n + 3]] + "-" + w[e[n + 4]] + w[e[n + 5]] + "-" + w[e[n + 6]] + w[e[n + 7]] + "-" + w[e[n + 8]] + w[e[n + 9]] + "-" + w[e[n + 10]] + w[e[n + 11]] + w[e[n + 12]] + w[e[n + 13]] + w[e[n + 14]] + w[e[n + 15]]).toLowerCase();
20
+ }
21
+ function Pe(e, n = 0) {
22
+ var t = Ie(e, n);
23
+ if (!Ue(t))
24
+ throw TypeError("Stringified UUID is invalid");
25
+ return t;
26
+ }
27
+ var G, $e = new Uint8Array(16);
28
+ function Fe() {
29
+ if (!G && (G = typeof crypto < "u" && crypto.getRandomValues && crypto.getRandomValues.bind(crypto), !G))
30
+ throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");
31
+ return G($e);
32
+ }
33
+ var me = null, he = null, A = 0;
34
+ function Re(e, n, t) {
35
+ e = e || {};
36
+ var i = 0, c = n || new Uint8Array(16), m = e.random || (e.rng || Fe)(), _ = e.msecs !== void 0 ? e.msecs : Date.now(), I = e.seq !== void 0 ? e.seq : null, E = he, p = me;
37
+ return _ > A && e.msecs === void 0 && (A = _, I !== null && (E = null, p = null)), I !== null && (I > 2147483647 && (I = 2147483647), E = I >>> 19 & 4095, p = I & 524287), (E === null || p === null) && (E = m[6] & 127, E = E << 8 | m[7], p = m[8] & 63, p = p << 8 | m[9], p = p << 5 | m[10] >>> 3), _ + 1e4 > A && I === null ? ++p > 524287 && (p = 0, ++E > 4095 && (E = 0, A++)) : A = _, he = E, me = p, c[i++] = A / 1099511627776 & 255, c[i++] = A / 4294967296 & 255, c[i++] = A / 16777216 & 255, c[i++] = A / 65536 & 255, c[i++] = A / 256 & 255, c[i++] = A & 255, c[i++] = E >>> 4 & 15 | 112, c[i++] = E & 255, c[i++] = p >>> 13 & 63 | 128, c[i++] = p >>> 5 & 255, c[i++] = p << 3 & 255 | m[10] & 7, c[i++] = m[11], c[i++] = m[12], c[i++] = m[13], c[i++] = m[14], c[i++] = m[15], n || Ie(c);
38
+ }
39
+ function Ve(e) {
40
+ let n;
41
+ const t = new Uint8Array(16);
42
+ return t[0] = (n = parseInt(e.slice(0, 8), 16)) >>> 24, t[1] = n >>> 16 & 255, t[2] = n >>> 8 & 255, t[3] = n & 255, t[4] = (n = parseInt(e.slice(9, 13), 16)) >>> 8, t[5] = n & 255, t[6] = (n = parseInt(e.slice(14, 18), 16)) >>> 8, t[7] = n & 255, t[8] = (n = parseInt(e.slice(19, 23), 16)) >>> 8, t[9] = n & 255, t[10] = (n = parseInt(e.slice(24, 36), 16)) / 1099511627776 & 255, t[11] = n / 4294967296 & 255, t[12] = n >>> 24 & 255, t[13] = n >>> 16 & 255, t[14] = n >>> 8 & 255, t[15] = n & 255, t;
43
+ }
44
+ var h = "0123456789abcdefghjkmnpqrstvwxyz", s = new Uint8Array([
45
+ 255,
46
+ 255,
47
+ 255,
48
+ 255,
49
+ 255,
50
+ 255,
51
+ 255,
52
+ 255,
53
+ 255,
54
+ 255,
55
+ 255,
56
+ 255,
57
+ 255,
58
+ 255,
59
+ 255,
60
+ 255,
61
+ 255,
62
+ 255,
63
+ 255,
64
+ 255,
65
+ 255,
66
+ 255,
67
+ 255,
68
+ 255,
69
+ 255,
70
+ 255,
71
+ 255,
72
+ 255,
73
+ 255,
74
+ 255,
75
+ 255,
76
+ 255,
77
+ 255,
78
+ 255,
79
+ 255,
80
+ 255,
81
+ 255,
82
+ 255,
83
+ 255,
84
+ 255,
85
+ 255,
86
+ 255,
87
+ 255,
88
+ 255,
89
+ 255,
90
+ 255,
91
+ 255,
92
+ 255,
93
+ 0,
94
+ 1,
95
+ 2,
96
+ 3,
97
+ 4,
98
+ 5,
99
+ 6,
100
+ 7,
101
+ 8,
102
+ 9,
103
+ 255,
104
+ 255,
105
+ 255,
106
+ 255,
107
+ 255,
108
+ 255,
109
+ 255,
110
+ 255,
111
+ 255,
112
+ 255,
113
+ 255,
114
+ 255,
115
+ 255,
116
+ 255,
117
+ 255,
118
+ 255,
119
+ 255,
120
+ 255,
121
+ 255,
122
+ 255,
123
+ 255,
124
+ 255,
125
+ 255,
126
+ 255,
127
+ 255,
128
+ 255,
129
+ 255,
130
+ 255,
131
+ 255,
132
+ 255,
133
+ 255,
134
+ 255,
135
+ 255,
136
+ 255,
137
+ 255,
138
+ 255,
139
+ 255,
140
+ 255,
141
+ 255,
142
+ 10,
143
+ 11,
144
+ 12,
145
+ 13,
146
+ 14,
147
+ 15,
148
+ 16,
149
+ 17,
150
+ 255,
151
+ 18,
152
+ 19,
153
+ 255,
154
+ 20,
155
+ 21,
156
+ 255,
157
+ 22,
158
+ 23,
159
+ 24,
160
+ 25,
161
+ 26,
162
+ 255,
163
+ 27,
164
+ 28,
165
+ 29,
166
+ 30,
167
+ 31,
168
+ 255,
169
+ 255,
170
+ 255,
171
+ 255,
172
+ 255,
173
+ 255,
174
+ 255,
175
+ 255,
176
+ 255,
177
+ 255,
178
+ 255,
179
+ 255,
180
+ 255,
181
+ 255,
182
+ 255,
183
+ 255,
184
+ 255,
185
+ 255,
186
+ 255,
187
+ 255,
188
+ 255,
189
+ 255,
190
+ 255,
191
+ 255,
192
+ 255,
193
+ 255,
194
+ 255,
195
+ 255,
196
+ 255,
197
+ 255,
198
+ 255,
199
+ 255,
200
+ 255,
201
+ 255,
202
+ 255,
203
+ 255,
204
+ 255,
205
+ 255,
206
+ 255,
207
+ 255,
208
+ 255,
209
+ 255,
210
+ 255,
211
+ 255,
212
+ 255,
213
+ 255,
214
+ 255,
215
+ 255,
216
+ 255,
217
+ 255,
218
+ 255,
219
+ 255,
220
+ 255,
221
+ 255,
222
+ 255,
223
+ 255,
224
+ 255,
225
+ 255,
226
+ 255,
227
+ 255,
228
+ 255,
229
+ 255,
230
+ 255,
231
+ 255,
232
+ 255,
233
+ 255,
234
+ 255,
235
+ 255,
236
+ 255,
237
+ 255,
238
+ 255,
239
+ 255,
240
+ 255,
241
+ 255,
242
+ 255,
243
+ 255,
244
+ 255,
245
+ 255,
246
+ 255,
247
+ 255,
248
+ 255,
249
+ 255,
250
+ 255,
251
+ 255,
252
+ 255,
253
+ 255,
254
+ 255,
255
+ 255,
256
+ 255,
257
+ 255,
258
+ 255,
259
+ 255,
260
+ 255,
261
+ 255,
262
+ 255,
263
+ 255,
264
+ 255,
265
+ 255,
266
+ 255,
267
+ 255,
268
+ 255,
269
+ 255,
270
+ 255,
271
+ 255,
272
+ 255,
273
+ 255,
274
+ 255,
275
+ 255,
276
+ 255,
277
+ 255,
278
+ 255,
279
+ 255,
280
+ 255,
281
+ 255,
282
+ 255,
283
+ 255,
284
+ 255,
285
+ 255,
286
+ 255,
287
+ 255,
288
+ 255,
289
+ 255,
290
+ 255,
291
+ 255,
292
+ 255,
293
+ 255,
294
+ 255,
295
+ 255,
296
+ 255,
297
+ 255,
298
+ 255,
299
+ 255,
300
+ 255
301
+ ]);
302
+ function ie(e) {
303
+ const n = new Array(26).fill("");
304
+ if (e.length !== 16)
305
+ throw new Error(
306
+ `Invalid length. Expected 16 bytes, got ${e.length}. Input: ${e}`
307
+ );
308
+ return n[0] = h[(e[0] & 224) >> 5], n[1] = h[e[0] & 31], n[2] = h[(e[1] & 248) >> 3], n[3] = h[(e[1] & 7) << 2 | (e[2] & 192) >> 6], n[4] = h[(e[2] & 62) >> 1], n[5] = h[(e[2] & 1) << 4 | (e[3] & 240) >> 4], n[6] = h[(e[3] & 15) << 1 | (e[4] & 128) >> 7], n[7] = h[(e[4] & 124) >> 2], n[8] = h[(e[4] & 3) << 3 | (e[5] & 224) >> 5], n[9] = h[e[5] & 31], n[10] = h[(e[6] & 248) >> 3], n[11] = h[(e[6] & 7) << 2 | (e[7] & 192) >> 6], n[12] = h[(e[7] & 62) >> 1], n[13] = h[(e[7] & 1) << 4 | (e[8] & 240) >> 4], n[14] = h[(e[8] & 15) << 1 | (e[9] & 128) >> 7], n[15] = h[(e[9] & 124) >> 2], n[16] = h[(e[9] & 3) << 3 | (e[10] & 224) >> 5], n[17] = h[e[10] & 31], n[18] = h[(e[11] & 248) >> 3], n[19] = h[(e[11] & 7) << 2 | (e[12] & 192) >> 6], n[20] = h[(e[12] & 62) >> 1], n[21] = h[(e[12] & 1) << 4 | (e[13] & 240) >> 4], n[22] = h[(e[13] & 15) << 1 | (e[14] & 128) >> 7], n[23] = h[(e[14] & 124) >> 2], n[24] = h[(e[14] & 3) << 3 | (e[15] & 224) >> 5], n[25] = h[e[15] & 31], n.join("");
309
+ }
310
+ function xe(e) {
311
+ if (e.length !== 26)
312
+ throw new Error(
313
+ `Invalid length. Expected 26 bytes, got ${e.length}. Input: ${e}`
314
+ );
315
+ const t = new TextEncoder().encode(e);
316
+ if (s[t[0]] === 255 || s[t[1]] === 255 || s[t[2]] === 255 || s[t[3]] === 255 || s[t[4]] === 255 || s[t[5]] === 255 || s[t[6]] === 255 || s[t[7]] === 255 || s[t[8]] === 255 || s[t[9]] === 255 || s[t[10]] === 255 || s[t[11]] === 255 || s[t[12]] === 255 || s[t[13]] === 255 || s[t[14]] === 255 || s[t[15]] === 255 || s[t[16]] === 255 || s[t[17]] === 255 || s[t[18]] === 255 || s[t[19]] === 255 || s[t[20]] === 255 || s[t[21]] === 255 || s[t[22]] === 255 || s[t[23]] === 255 || s[t[24]] === 255 || s[t[25]] === 255)
317
+ throw new Error("Invalid base32 character");
318
+ const i = new Uint8Array(16);
319
+ return i[0] = s[t[0]] << 5 | s[t[1]], i[1] = s[t[2]] << 3 | s[t[3]] >> 2, i[2] = (s[t[3]] & 3) << 6 | s[t[4]] << 1 | s[t[5]] >> 4, i[3] = (s[t[5]] & 15) << 4 | s[t[6]] >> 1, i[4] = (s[t[6]] & 1) << 7 | s[t[7]] << 2 | s[t[8]] >> 3, i[5] = (s[t[8]] & 7) << 5 | s[t[9]], i[6] = s[t[10]] << 3 | s[t[11]] >> 2, i[7] = (s[t[11]] & 3) << 6 | s[t[12]] << 1 | s[t[13]] >> 4, i[8] = (s[t[13]] & 15) << 4 | s[t[14]] >> 1, i[9] = (s[t[14]] & 1) << 7 | s[t[15]] << 2 | s[t[16]] >> 3, i[10] = (s[t[16]] & 7) << 5 | s[t[17]], i[11] = s[t[18]] << 3 | s[t[19]] >> 2, i[12] = (s[t[19]] & 3) << 6 | s[t[20]] << 1 | s[t[21]] >> 4, i[13] = (s[t[21]] & 15) << 4 | s[t[22]] >> 1, i[14] = (s[t[22]] & 1) << 7 | s[t[23]] << 2 | s[t[24]] >> 3, i[15] = (s[t[24]] & 7) << 5 | s[t[25]], i;
320
+ }
321
+ function qe(e) {
322
+ if (e.length > 63)
323
+ return !1;
324
+ let n, t, i;
325
+ for (t = 0, i = e.length; t < i; t += 1) {
326
+ n = e.charCodeAt(t);
327
+ const c = n > 96 && n < 123, m = n === 95;
328
+ if ((t === 0 || t === i - 1) && !c || !(c || m))
329
+ return !1;
330
+ }
331
+ return !0;
332
+ }
333
+ var Ne = class extends Error {
334
+ constructor(e) {
335
+ super(`Invalid prefix "${e}". Must be at most 63 ASCII letters [a-z_]`), this.name = "InvalidPrefixError";
336
+ }
337
+ }, Me = class extends Error {
338
+ constructor(e, n) {
339
+ super(`Invalid TypeId. Prefix mismatch. Expected ${e}, got ${n}`), this.name = "PrefixMismatchError";
340
+ }
341
+ }, Be = class extends Error {
342
+ constructor(e) {
343
+ super(`Invalid TypeId. Prefix cannot be empty when there's a separator: ${e}`), this.name = "EmptyPrefixError";
344
+ }
345
+ }, Le = class extends Error {
346
+ constructor(e) {
347
+ super(`Invalid length. Suffix should have 26 characters, got ${e}`), this.name = "InvalidSuffixLengthError";
348
+ }
349
+ }, He = class extends Error {
350
+ constructor(e) {
351
+ super(`Invalid suffix. First character "${e}" must be in the range [0-7]`), this.name = "InvalidSuffixCharacterError";
352
+ }
353
+ }, Ge = class extends Error {
354
+ constructor(e, n) {
355
+ super(`Cannot convert TypeID of type ${e} to type ${n}`), this.name = "TypeIDConversionError";
356
+ }
357
+ };
358
+ function Se(e = "", n = "") {
359
+ if (!qe(e))
360
+ throw new Ne(e);
361
+ let t;
362
+ if (n)
363
+ t = n;
364
+ else {
365
+ const i = new Uint8Array(16);
366
+ Re(void 0, i), t = ie(i);
367
+ }
368
+ if (t.length !== 26)
369
+ throw new Le(t.length);
370
+ if (t[0] > "7")
371
+ throw new He(t[0]);
372
+ return xe(t), e === "" ? t : `${e}_${t}`;
373
+ }
374
+ function Ke(e, n) {
375
+ let t, i;
376
+ const c = e.lastIndexOf("_");
377
+ if (c === -1)
378
+ t = "", i = e;
379
+ else if (t = e.substring(0, c), i = e.substring(c + 1), !t)
380
+ throw new Be(e);
381
+ if (!i)
382
+ throw new Le(0);
383
+ if (n && t !== n)
384
+ throw new Me(n, t);
385
+ return Se(t, i);
386
+ }
387
+ function ge(e) {
388
+ const n = e.lastIndexOf("_");
389
+ return n === -1 ? "" : e.substring(0, n);
390
+ }
391
+ function ve(e) {
392
+ const n = e.lastIndexOf("_");
393
+ return n === -1 ? e : e.substring(n + 1);
394
+ }
395
+ var D = class {
396
+ constructor(e, n = "") {
397
+ this.prefix = e, this.suffix = n;
398
+ const t = Se(e, n);
399
+ this.prefix = ge(t), this.suffix = ve(t);
400
+ }
401
+ getType() {
402
+ return this.prefix;
403
+ }
404
+ getSuffix() {
405
+ return this.suffix;
406
+ }
407
+ asType(e) {
408
+ const n = this;
409
+ if (n.prefix !== e)
410
+ throw new Ge(n.prefix, e);
411
+ return n;
412
+ }
413
+ toUUIDBytes() {
414
+ return xe(this.suffix);
415
+ }
416
+ toUUID() {
417
+ return Pe(this.toUUIDBytes());
418
+ }
419
+ toString() {
420
+ return this.prefix === "" ? this.suffix : `${this.prefix}_${this.suffix}`;
421
+ }
422
+ static fromString(e, n) {
423
+ const t = Ke(e, n);
424
+ return new D(ge(t), ve(t));
425
+ }
426
+ static fromUUIDBytes(e, n) {
427
+ const t = ie(n);
428
+ return new D(e, t);
429
+ }
430
+ static fromUUID(e, n) {
431
+ const t = ie(Ve(n));
432
+ return new D(e, t);
433
+ }
434
+ };
435
+ function se(e = "", n = "") {
436
+ return new D(e, n);
437
+ }
438
+ function Je() {
439
+ return se("lse");
440
+ }
441
+ function pe(e) {
442
+ return D.fromString(e, "lse");
443
+ }
444
+ function K() {
445
+ return se("lev");
446
+ }
447
+ function Xe(e) {
448
+ return D.fromString(e, "lev");
449
+ }
450
+ function Qe() {
451
+ return se("lst");
452
+ }
453
+ function Oe(e) {
454
+ return D.fromString(e, "lst");
455
+ }
456
+ function We(e) {
457
+ const n = new Date(e);
458
+ if (Number.isNaN(n.getTime()))
459
+ throw new Q(`Invalid Timestamp: "${e}" does not parse as a valid date`);
460
+ return e;
461
+ }
462
+ function J() {
463
+ return (/* @__PURE__ */ new Date()).toISOString();
464
+ }
465
+ class W {
466
+ #t;
467
+ #i;
468
+ #n;
469
+ #e;
470
+ constructor(n) {
471
+ this.#t = n, this.#i = void 0, this.#n = /* @__PURE__ */ new Map(), this.#e = [];
472
+ }
473
+ get id() {
474
+ return this.#t;
475
+ }
476
+ get title() {
477
+ return this.#i;
478
+ }
479
+ get elements() {
480
+ return [...this.#n.values()];
481
+ }
482
+ // ─────────────────────────────────────────────── Factory
483
+ /**
484
+ * Creates a new List aggregate and emits ListCreated.
485
+ * Generates a ListId if not provided in the command.
486
+ */
487
+ static create(n) {
488
+ const t = n.listId ?? Qe(), i = new W(t), c = {
489
+ type: "ListCreated",
490
+ listEventId: K(),
491
+ listId: t,
492
+ actorId: n.actorId,
493
+ timestamp: J(),
494
+ ...n.title !== void 0 ? { title: n.title } : {}
495
+ };
496
+ return i.#r(c), i.#e.push(c), { list: i, event: c };
497
+ }
498
+ // ─────────────────────────────────────────────── Rehydration
499
+ /**
500
+ * Reconstructs a List from its full event log.
501
+ * The resulting List has no uncommitted events.
502
+ */
503
+ static rehydrate(n, t) {
504
+ const i = new W(n);
505
+ for (const c of t)
506
+ i.#r(c);
507
+ return i;
508
+ }
509
+ // ─────────────────────────────────────────────── Command Handlers
510
+ /**
511
+ * Appends a new ListElement to the List.
512
+ * Invariant: content must be non-empty after trimming (enforced at ListElementContent creation).
513
+ */
514
+ addListElement(n) {
515
+ const t = Je(), i = {
516
+ type: "ListElementAdded",
517
+ listEventId: K(),
518
+ listId: this.#t,
519
+ actorId: n.actorId,
520
+ timestamp: J(),
521
+ listElementId: t,
522
+ content: n.content
523
+ };
524
+ return this.#r(i), this.#e.push(i), i;
525
+ }
526
+ /**
527
+ * Removes a ListElement from the List by its stable identity.
528
+ * Invariant: the ListElementId must exist in the current elements.
529
+ * Throws ListElementNotFoundError if not found.
530
+ */
531
+ deleteListElement(n) {
532
+ const t = n.listElementId.toString();
533
+ if (!this.#n.has(t))
534
+ throw new ke(t);
535
+ const i = {
536
+ type: "ListElementDeleted",
537
+ listEventId: K(),
538
+ listId: this.#t,
539
+ actorId: n.actorId,
540
+ timestamp: J(),
541
+ listElementId: n.listElementId
542
+ };
543
+ return this.#r(i), this.#e.push(i), i;
544
+ }
545
+ /**
546
+ * Emits a ListExported audit event.
547
+ * Export is always valid — no invariants to check.
548
+ */
549
+ exportListDocument(n) {
550
+ const t = {
551
+ type: "ListExported",
552
+ listEventId: K(),
553
+ listId: this.#t,
554
+ actorId: n.actorId,
555
+ timestamp: J(),
556
+ format: "json-ld"
557
+ };
558
+ return this.#r(t), this.#e.push(t), t;
559
+ }
560
+ // ─────────────────────────────────────────────── Uncommitted Events
561
+ /** Returns all events emitted since the last load/save. */
562
+ getUncommittedEvents() {
563
+ return [...this.#e];
564
+ }
565
+ /** Clears uncommitted events after they have been persisted. */
566
+ markEventsAsCommitted() {
567
+ this.#e.length = 0;
568
+ }
569
+ // ─────────────────────────────────────────────── Private State Mutation
570
+ /** Mutates state from a single event. Used by both command handlers and rehydration. */
571
+ #r(n) {
572
+ ({
573
+ ListCreated: (i) => {
574
+ this.#i = i.title;
575
+ },
576
+ ListElementAdded: (i) => {
577
+ this.#n.set(i.listElementId.toString(), {
578
+ id: i.listElementId,
579
+ content: i.content,
580
+ addedAt: i.timestamp
581
+ });
582
+ },
583
+ ListElementDeleted: (i) => {
584
+ this.#n.delete(i.listElementId.toString());
585
+ },
586
+ // Audit-only event — no state change
587
+ ListExported: (i) => {
588
+ }
589
+ })[n.type](n);
590
+ }
591
+ }
592
+ function Ze(e) {
593
+ return D.fromString(e, "act");
594
+ }
595
+ const be = 2e3;
596
+ function Ye(e) {
597
+ const n = e.trim();
598
+ if (n.length === 0)
599
+ throw new Q("ListElementContent cannot be empty");
600
+ if (n.length > be)
601
+ throw new Q(`ListElementContent exceeds maximum length of ${be} characters`);
602
+ return n;
603
+ }
604
+ const et = {
605
+ "@vocab": "https://schema.org/",
606
+ alistigo: "https://alistigo.ai/vocab/"
607
+ }, tt = "1.0.0";
608
+ function nt(e) {
609
+ const n = {
610
+ "alistigo:listEventId": e.listEventId.toString(),
611
+ "alistigo:listId": e.listId.toString(),
612
+ "alistigo:actorId": e.actorId.toString(),
613
+ "alistigo:timestamp": e.timestamp
614
+ };
615
+ switch (e.type) {
616
+ case "ListCreated":
617
+ return {
618
+ ...n,
619
+ "alistigo:eventType": "ListCreated",
620
+ ...e.title !== void 0 ? { name: e.title } : {}
621
+ };
622
+ case "ListElementAdded":
623
+ return {
624
+ ...n,
625
+ "alistigo:eventType": "ListElementAdded",
626
+ "alistigo:listElementId": e.listElementId.toString(),
627
+ name: e.content
628
+ };
629
+ case "ListElementDeleted":
630
+ return {
631
+ ...n,
632
+ "alistigo:eventType": "ListElementDeleted",
633
+ "alistigo:listElementId": e.listElementId.toString()
634
+ };
635
+ case "ListExported":
636
+ return {
637
+ ...n,
638
+ "alistigo:eventType": "ListExported"
639
+ };
640
+ }
641
+ }
642
+ function rt(e) {
643
+ const n = {
644
+ listEventId: Xe(e["alistigo:listEventId"]),
645
+ listId: Oe(e["alistigo:listId"]),
646
+ actorId: Ze(e["alistigo:actorId"]),
647
+ timestamp: We(e["alistigo:timestamp"])
648
+ };
649
+ switch (e["alistigo:eventType"]) {
650
+ case "ListCreated": {
651
+ const t = e;
652
+ return {
653
+ ...n,
654
+ type: "ListCreated",
655
+ ...t.name !== void 0 ? { title: t.name } : {}
656
+ };
657
+ }
658
+ case "ListElementAdded": {
659
+ const t = e;
660
+ return {
661
+ ...n,
662
+ type: "ListElementAdded",
663
+ listElementId: pe(t["alistigo:listElementId"]),
664
+ content: Ye(t.name)
665
+ };
666
+ }
667
+ case "ListElementDeleted":
668
+ return {
669
+ ...n,
670
+ type: "ListElementDeleted",
671
+ listElementId: pe(e["alistigo:listElementId"])
672
+ };
673
+ case "ListExported":
674
+ return {
675
+ ...n,
676
+ type: "ListExported",
677
+ format: "json-ld"
678
+ };
679
+ }
680
+ }
681
+ const ye = {
682
+ serialize(e, n) {
683
+ const t = n?.["alistigo:listEventLog"] ?? [], i = e.getUncommittedEvents().map(nt), c = e.elements.map((_, I) => ({
684
+ "@type": "ListItem",
685
+ "alistigo:listElementId": _.id.toString(),
686
+ position: I + 1,
687
+ name: _.content
688
+ })), m = {
689
+ "@context": et,
690
+ "@type": "ItemList",
691
+ "alistigo:listId": e.id.toString(),
692
+ "alistigo:schemaVersion": tt,
693
+ itemListElement: c,
694
+ "alistigo:listEventLog": [...t, ...i]
695
+ };
696
+ return e.title !== void 0 && (m.name = e.title), m;
697
+ },
698
+ deserialize(e) {
699
+ const n = Oe(e["alistigo:listId"]), t = e["alistigo:listEventLog"].map(rt);
700
+ return W.rehydrate(n, t);
701
+ }
702
+ };
703
+ function it(e) {
704
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
705
+ }
706
+ var F = { exports: {} }, re, Ee;
707
+ function st() {
708
+ if (Ee) return re;
709
+ Ee = 1;
710
+ function e(t) {
711
+ try {
712
+ return JSON.stringify(t);
713
+ } catch {
714
+ return '"[Circular]"';
715
+ }
716
+ }
717
+ re = n;
718
+ function n(t, i, c) {
719
+ var m = c && c.stringify || e, _ = 1;
720
+ if (typeof t == "object" && t !== null) {
721
+ var I = i.length + _;
722
+ if (I === 1) return t;
723
+ var E = new Array(I);
724
+ E[0] = m(t);
725
+ for (var p = 1; p < I; p++)
726
+ E[p] = m(i[p]);
727
+ return E.join(" ");
728
+ }
729
+ if (typeof t != "string")
730
+ return t;
731
+ var O = i.length;
732
+ if (O === 0) return t;
733
+ for (var x = "", b = 1 - _, g = -1, z = t && t.length || 0, d = 0; d < z; ) {
734
+ if (t.charCodeAt(d) === 37 && d + 1 < z) {
735
+ switch (g = g > -1 ? g : 0, t.charCodeAt(d + 1)) {
736
+ case 100:
737
+ // 'd'
738
+ case 102:
739
+ if (b >= O || i[b] == null) break;
740
+ g < d && (x += t.slice(g, d)), x += Number(i[b]), g = d + 2, d++;
741
+ break;
742
+ case 105:
743
+ if (b >= O || i[b] == null) break;
744
+ g < d && (x += t.slice(g, d)), x += Math.floor(Number(i[b])), g = d + 2, d++;
745
+ break;
746
+ case 79:
747
+ // 'O'
748
+ case 111:
749
+ // 'o'
750
+ case 106:
751
+ if (b >= O || i[b] === void 0) break;
752
+ g < d && (x += t.slice(g, d));
753
+ var q = typeof i[b];
754
+ if (q === "string") {
755
+ x += "'" + i[b] + "'", g = d + 2, d++;
756
+ break;
757
+ }
758
+ if (q === "function") {
759
+ x += i[b].name || "<anonymous>", g = d + 2, d++;
760
+ break;
761
+ }
762
+ x += m(i[b]), g = d + 2, d++;
763
+ break;
764
+ case 115:
765
+ if (b >= O)
766
+ break;
767
+ g < d && (x += t.slice(g, d)), x += String(i[b]), g = d + 2, d++;
768
+ break;
769
+ case 37:
770
+ g < d && (x += t.slice(g, d)), x += "%", g = d + 2, d++, b--;
771
+ break;
772
+ }
773
+ ++b;
774
+ }
775
+ ++d;
776
+ }
777
+ return g === -1 ? t : (g < z && (x += t.slice(g)), x);
778
+ }
779
+ return re;
780
+ }
781
+ var we;
782
+ function ot() {
783
+ if (we) return F.exports;
784
+ we = 1;
785
+ const e = st();
786
+ F.exports = O;
787
+ const n = Ce().console || {}, t = {
788
+ mapHttpRequest: N,
789
+ mapHttpResponse: N,
790
+ wrapRequestSerializer: ee,
791
+ wrapResponseSerializer: ee,
792
+ wrapErrorSerializer: ee,
793
+ req: N,
794
+ res: N,
795
+ err: oe,
796
+ errWithCause: oe
797
+ };
798
+ function i(r, o) {
799
+ return r === "silent" ? 1 / 0 : o.levels.values[r];
800
+ }
801
+ const c = /* @__PURE__ */ Symbol("pino.logFuncs"), m = /* @__PURE__ */ Symbol("pino.hierarchy"), _ = {
802
+ error: "log",
803
+ fatal: "error",
804
+ warn: "error",
805
+ info: "log",
806
+ debug: "log",
807
+ trace: "log"
808
+ };
809
+ function I(r, o) {
810
+ const l = {
811
+ logger: o,
812
+ parent: r[m]
813
+ };
814
+ o[m] = l;
815
+ }
816
+ function E(r, o, l) {
817
+ const u = {};
818
+ o.forEach((f) => {
819
+ u[f] = l[f] ? l[f] : n[f] || n[_[f] || "log"] || U;
820
+ }), r[c] = u;
821
+ }
822
+ function p(r, o) {
823
+ return Array.isArray(r) ? r.filter(function(u) {
824
+ return u !== "!stdSerializers.err";
825
+ }) : r === !0 ? Object.keys(o) : !1;
826
+ }
827
+ function O(r) {
828
+ r = r || {}, r.browser = r.browser || {};
829
+ const o = r.browser.transmit;
830
+ if (o && typeof o.send != "function")
831
+ throw Error("pino: transmit option must have a send function");
832
+ const l = r.browser.write || n;
833
+ r.browser.write && (r.browser.asObject = !0);
834
+ const u = r.serializers || {}, f = p(r.browser.serialize, u);
835
+ let L = r.browser.serialize;
836
+ Array.isArray(r.browser.serialize) && r.browser.serialize.indexOf("!stdSerializers.err") > -1 && (L = !1);
837
+ const j = Object.keys(r.customLevels || {}), v = ["error", "fatal", "warn", "info", "debug", "trace"].concat(j);
838
+ typeof l == "function" && v.forEach(function(T) {
839
+ l[T] = l;
840
+ }), (r.enabled === !1 || r.browser.disabled) && (r.level = "silent");
841
+ const S = r.level || "info", a = Object.create(l);
842
+ a.log || (a.log = U), E(a, v, l), I({}, a), Object.defineProperty(a, "levelVal", {
843
+ get: C
844
+ }), Object.defineProperty(a, "level", {
845
+ get: te,
846
+ set: M
847
+ });
848
+ const y = {
849
+ transmit: o,
850
+ serialize: f,
851
+ asObject: r.browser.asObject,
852
+ asObjectBindingsOnly: r.browser.asObjectBindingsOnly,
853
+ formatters: r.browser.formatters,
854
+ levels: v,
855
+ timestamp: _e(r),
856
+ messageKey: r.messageKey || "msg",
857
+ onChild: r.onChild || U
858
+ };
859
+ a.levels = x(r), a.level = S, a.isLevelEnabled = function(T) {
860
+ return this.levels.values[T] ? this.levels.values[T] >= this.levels.values[this.level] : !1;
861
+ }, a.setMaxListeners = a.getMaxListeners = a.emit = a.addListener = a.on = a.prependListener = a.once = a.prependOnceListener = a.removeListener = a.removeAllListeners = a.listeners = a.listenerCount = a.eventNames = a.write = a.flush = U, a.serializers = u, a._serialize = f, a._stdErrSerialize = L, a.child = function(...T) {
862
+ return ce.call(this, y, ...T);
863
+ }, o && (a._logEvent = Y());
864
+ function C() {
865
+ return i(this.level, this);
866
+ }
867
+ function te() {
868
+ return this._level;
869
+ }
870
+ function M(T) {
871
+ if (T !== "silent" && !this.levels.values[T])
872
+ throw Error("unknown level " + T);
873
+ this._level = T, z(this, y, a, "error"), z(this, y, a, "fatal"), z(this, y, a, "warn"), z(this, y, a, "info"), z(this, y, a, "debug"), z(this, y, a, "trace"), j.forEach((k) => {
874
+ z(this, y, a, k);
875
+ });
876
+ }
877
+ function ce(T, k, P) {
878
+ if (!k)
879
+ throw new Error("missing bindings for child Pino");
880
+ P = P || {}, f && k.serializers && (P.serializers = k.serializers);
881
+ const ue = P.serializers;
882
+ if (f && ue) {
883
+ var B = Object.assign({}, u, ue), fe = r.browser.serialize === !0 ? Object.keys(B) : f;
884
+ delete k.serializers, Z([k], fe, B, this._stdErrSerialize);
885
+ }
886
+ function de(H) {
887
+ this._childLevel = (H._childLevel | 0) + 1, this.bindings = k, B && (this.serializers = B, this._serialize = fe), o && (this._logEvent = Y(
888
+ [].concat(H._logEvent.bindings, k)
889
+ ));
890
+ }
891
+ de.prototype = this;
892
+ const $ = new de(this);
893
+ return I(this, $), $.child = function(...H) {
894
+ return ce.call(this, T, ...H);
895
+ }, $.level = P.level || this.level, T.onChild($), $;
896
+ }
897
+ return a;
898
+ }
899
+ function x(r) {
900
+ const o = r.customLevels || {}, l = Object.assign({}, O.levels.values, o), u = Object.assign({}, O.levels.labels, b(o));
901
+ return {
902
+ values: l,
903
+ labels: u
904
+ };
905
+ }
906
+ function b(r) {
907
+ const o = {};
908
+ return Object.keys(r).forEach(function(l) {
909
+ o[r[l]] = l;
910
+ }), o;
911
+ }
912
+ O.levels = {
913
+ values: {
914
+ fatal: 60,
915
+ error: 50,
916
+ warn: 40,
917
+ info: 30,
918
+ debug: 20,
919
+ trace: 10
920
+ },
921
+ labels: {
922
+ 10: "trace",
923
+ 20: "debug",
924
+ 30: "info",
925
+ 40: "warn",
926
+ 50: "error",
927
+ 60: "fatal"
928
+ }
929
+ }, O.stdSerializers = t, O.stdTimeFunctions = Object.assign({}, { nullTime: ae, epochTime: le, unixTime: ze, isoTime: Ae });
930
+ function g(r) {
931
+ const o = [];
932
+ r.bindings && o.push(r.bindings);
933
+ let l = r[m];
934
+ for (; l.parent; )
935
+ l = l.parent, l.logger.bindings && o.push(l.logger.bindings);
936
+ return o.reverse();
937
+ }
938
+ function z(r, o, l, u) {
939
+ if (Object.defineProperty(r, u, {
940
+ value: i(r.level, l) > i(u, l) ? U : l[c][u],
941
+ writable: !0,
942
+ enumerable: !0,
943
+ configurable: !0
944
+ }), r[u] === U) {
945
+ if (!o.transmit) return;
946
+ const L = o.transmit.level || r.level, j = i(L, l);
947
+ if (i(u, l) < j) return;
948
+ }
949
+ r[u] = q(r, o, l, u);
950
+ const f = g(r);
951
+ f.length !== 0 && (r[u] = d(f, r[u]));
952
+ }
953
+ function d(r, o) {
954
+ return function() {
955
+ return o.apply(this, [...r, ...arguments]);
956
+ };
957
+ }
958
+ function q(r, o, l, u) {
959
+ return /* @__PURE__ */ (function(f) {
960
+ return function() {
961
+ const j = o.timestamp(), v = new Array(arguments.length), S = Object.getPrototypeOf && Object.getPrototypeOf(this) === n ? n : this;
962
+ for (var a = 0; a < v.length; a++) v[a] = arguments[a];
963
+ var y = !1;
964
+ if (o.serialize && (Z(v, this._serialize, this.serializers, this._stdErrSerialize), y = !0), o.asObject || o.formatters ? f.call(S, ...Te(this, u, v, j, o)) : f.apply(S, v), o.transmit) {
965
+ const C = o.transmit.level || r._level, te = i(C, l), M = i(u, l);
966
+ if (M < te) return;
967
+ je(this, {
968
+ ts: j,
969
+ methodLevel: u,
970
+ methodValue: M,
971
+ transmitValue: l.levels.values[o.transmit.level || r._level],
972
+ send: o.transmit.send,
973
+ val: i(r._level, l)
974
+ }, v, y);
975
+ }
976
+ };
977
+ })(r[c][u]);
978
+ }
979
+ function Te(r, o, l, u, f) {
980
+ const {
981
+ level: L,
982
+ log: j = (C) => C
983
+ } = f.formatters || {}, v = l.slice();
984
+ let S = v[0];
985
+ const a = {};
986
+ let y = (r._childLevel | 0) + 1;
987
+ if (y < 1 && (y = 1), u && (a.time = u), L) {
988
+ const C = L(o, r.levels.values[o]);
989
+ Object.assign(a, C);
990
+ } else
991
+ a.level = r.levels.values[o];
992
+ if (f.asObjectBindingsOnly) {
993
+ if (S !== null && typeof S == "object")
994
+ for (; y-- && typeof v[0] == "object"; )
995
+ Object.assign(a, v.shift());
996
+ return [j(a), ...v];
997
+ } else {
998
+ if (S !== null && typeof S == "object") {
999
+ for (; y-- && typeof v[0] == "object"; )
1000
+ Object.assign(a, v.shift());
1001
+ S = v.length ? e(v.shift(), v) : void 0;
1002
+ } else typeof S == "string" && (S = e(v.shift(), v));
1003
+ return S !== void 0 && (a[f.messageKey] = S), [j(a)];
1004
+ }
1005
+ }
1006
+ function Z(r, o, l, u) {
1007
+ for (const f in r)
1008
+ if (u && r[f] instanceof Error)
1009
+ r[f] = O.stdSerializers.err(r[f]);
1010
+ else if (typeof r[f] == "object" && !Array.isArray(r[f]) && o)
1011
+ for (const L in r[f])
1012
+ o.indexOf(L) > -1 && L in l && (r[f][L] = l[L](r[f][L]));
1013
+ }
1014
+ function je(r, o, l, u = !1) {
1015
+ const f = o.send, L = o.ts, j = o.methodLevel, v = o.methodValue, S = o.val, a = r._logEvent.bindings;
1016
+ u || Z(
1017
+ l,
1018
+ r._serialize || Object.keys(r.serializers),
1019
+ r.serializers,
1020
+ r._stdErrSerialize === void 0 ? !0 : r._stdErrSerialize
1021
+ ), r._logEvent.ts = L, r._logEvent.messages = l.filter(function(y) {
1022
+ return a.indexOf(y) === -1;
1023
+ }), r._logEvent.level.label = j, r._logEvent.level.value = v, f(j, r._logEvent, S), r._logEvent = Y(a);
1024
+ }
1025
+ function Y(r) {
1026
+ return {
1027
+ ts: 0,
1028
+ messages: [],
1029
+ bindings: r || [],
1030
+ level: { label: "", value: 0 }
1031
+ };
1032
+ }
1033
+ function oe(r) {
1034
+ const o = {
1035
+ type: r.constructor.name,
1036
+ msg: r.message,
1037
+ stack: r.stack
1038
+ };
1039
+ for (const l in r)
1040
+ o[l] === void 0 && (o[l] = r[l]);
1041
+ return o;
1042
+ }
1043
+ function _e(r) {
1044
+ return typeof r.timestamp == "function" ? r.timestamp : r.timestamp === !1 ? ae : le;
1045
+ }
1046
+ function N() {
1047
+ return {};
1048
+ }
1049
+ function ee(r) {
1050
+ return r;
1051
+ }
1052
+ function U() {
1053
+ }
1054
+ function ae() {
1055
+ return !1;
1056
+ }
1057
+ function le() {
1058
+ return Date.now();
1059
+ }
1060
+ function ze() {
1061
+ return Math.round(Date.now() / 1e3);
1062
+ }
1063
+ function Ae() {
1064
+ return new Date(Date.now()).toISOString();
1065
+ }
1066
+ function Ce() {
1067
+ function r(o) {
1068
+ return typeof o < "u" && o;
1069
+ }
1070
+ try {
1071
+ return typeof globalThis < "u" || Object.defineProperty(Object.prototype, "globalThis", {
1072
+ get: function() {
1073
+ return delete Object.prototype.globalThis, this.globalThis = this;
1074
+ },
1075
+ configurable: !0
1076
+ }), globalThis;
1077
+ } catch {
1078
+ return r(self) || r(window) || r(this) || {};
1079
+ }
1080
+ }
1081
+ return F.exports.default = O, F.exports.pino = O, F.exports;
1082
+ }
1083
+ var at = ot();
1084
+ const lt = /* @__PURE__ */ it(at), ct = lt({
1085
+ level: "silent",
1086
+ browser: { asObject: !0 }
1087
+ }), ut = (e, n) => ct.child({ module: e, ...n }), X = ut("alistigo:claude-storage"), ft = 1e3;
1088
+ function V(e) {
1089
+ return Promise.race([
1090
+ e,
1091
+ new Promise(
1092
+ (n, t) => setTimeout(() => t(new Error("Storage operation timed out")), ft)
1093
+ )
1094
+ ]);
1095
+ }
1096
+ const R = (e) => `alistigo-${e.toString()}`;
1097
+ class dt {
1098
+ get storage() {
1099
+ const n = window.storage;
1100
+ if (!n)
1101
+ throw new Error(
1102
+ "ClaudeArtifactListRepository requires window.storage — use isClaudeArtifactContext() before instantiating"
1103
+ );
1104
+ return n;
1105
+ }
1106
+ async load(n) {
1107
+ try {
1108
+ X.debug({ key: R(n) }, "loading from claude storage");
1109
+ const t = await V(this.storage.get(R(n))), i = JSON.parse(t.value);
1110
+ return ye.deserialize(i);
1111
+ } catch (t) {
1112
+ X.debug({ err: t }, "load from claude storage returned nothing (key may not exist)");
1113
+ return;
1114
+ }
1115
+ }
1116
+ async save(n) {
1117
+ const t = await this.loadDocument(n.id), i = ye.serialize(n, t);
1118
+ await V(this.storage.set(R(n.id), JSON.stringify(i))), X.debug({ key: R(n.id) }, "saved to claude storage");
1119
+ }
1120
+ async loadDocument(n) {
1121
+ try {
1122
+ const t = await V(this.storage.get(R(n)));
1123
+ return JSON.parse(t.value);
1124
+ } catch (t) {
1125
+ X.debug({ err: t }, "loadDocument from claude storage returned nothing (key may not exist)");
1126
+ return;
1127
+ }
1128
+ }
1129
+ }
1130
+ function mt() {
1131
+ return typeof window < "u" && typeof window.claude?.complete == "function";
1132
+ }
1133
+ const ht = {
1134
+ name: "@alistigo/claude-storage-plugin",
1135
+ type: "storage",
1136
+ storage: {
1137
+ isAvailable() {
1138
+ return mt();
1139
+ },
1140
+ createStore() {
1141
+ return new dt();
1142
+ },
1143
+ async listKeys(e = "") {
1144
+ const n = window.storage;
1145
+ if (!n) return [];
1146
+ try {
1147
+ const t = await V(n.list(e));
1148
+ return t ? (await Promise.all(
1149
+ t.keys.map(async (c) => {
1150
+ try {
1151
+ const m = await V(n.get(c));
1152
+ return { key: c, value: m.value };
1153
+ } catch {
1154
+ return null;
1155
+ }
1156
+ })
1157
+ )).filter((c) => c !== null) : [];
1158
+ } catch {
1159
+ return [];
1160
+ }
1161
+ }
1162
+ }
1163
+ };
1164
+ export {
1165
+ dt as ClaudeArtifactListRepository,
1166
+ ht as default,
1167
+ mt as isClaudeArtifactContext
1168
+ };
1169
+ //# sourceMappingURL=index.js.map