@alistigo/claude-storage-plugin 0.4.1 → 0.4.3
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 +75 -75
- package/dist/index.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -26,64 +26,64 @@ function fe() {
|
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
G = s;
|
|
29
|
-
function s(i,
|
|
29
|
+
function s(i, a, m) {
|
|
30
30
|
var E = m && m.stringify || d, V = 1;
|
|
31
31
|
if (typeof i == "object" && i !== null) {
|
|
32
|
-
var z =
|
|
32
|
+
var z = a.length + V;
|
|
33
33
|
if (z === 1) return i;
|
|
34
34
|
var C = new Array(z);
|
|
35
35
|
C[0] = E(i);
|
|
36
36
|
for (var k = 1; k < z; k++)
|
|
37
|
-
C[k] = E(
|
|
37
|
+
C[k] = E(a[k]);
|
|
38
38
|
return C.join(" ");
|
|
39
39
|
}
|
|
40
40
|
if (typeof i != "string")
|
|
41
41
|
return i;
|
|
42
|
-
var w =
|
|
42
|
+
var w = a.length;
|
|
43
43
|
if (w === 0) return i;
|
|
44
|
-
for (var v = "", h = 1 - V, c = -1, j = i && i.length || 0,
|
|
45
|
-
if (i.charCodeAt(
|
|
46
|
-
switch (c = c > -1 ? c : 0, i.charCodeAt(
|
|
44
|
+
for (var v = "", h = 1 - V, c = -1, j = i && i.length || 0, u = 0; u < j; ) {
|
|
45
|
+
if (i.charCodeAt(u) === 37 && u + 1 < j) {
|
|
46
|
+
switch (c = c > -1 ? c : 0, i.charCodeAt(u + 1)) {
|
|
47
47
|
case 100:
|
|
48
48
|
// 'd'
|
|
49
49
|
case 102:
|
|
50
|
-
if (h >= w ||
|
|
51
|
-
c <
|
|
50
|
+
if (h >= w || a[h] == null) break;
|
|
51
|
+
c < u && (v += i.slice(c, u)), v += Number(a[h]), c = u + 2, u++;
|
|
52
52
|
break;
|
|
53
53
|
case 105:
|
|
54
|
-
if (h >= w ||
|
|
55
|
-
c <
|
|
54
|
+
if (h >= w || a[h] == null) break;
|
|
55
|
+
c < u && (v += i.slice(c, u)), v += Math.floor(Number(a[h])), c = u + 2, u++;
|
|
56
56
|
break;
|
|
57
57
|
case 79:
|
|
58
58
|
// 'O'
|
|
59
59
|
case 111:
|
|
60
60
|
// 'o'
|
|
61
61
|
case 106:
|
|
62
|
-
if (h >= w ||
|
|
63
|
-
c <
|
|
64
|
-
var R = typeof
|
|
62
|
+
if (h >= w || a[h] === void 0) break;
|
|
63
|
+
c < u && (v += i.slice(c, u));
|
|
64
|
+
var R = typeof a[h];
|
|
65
65
|
if (R === "string") {
|
|
66
|
-
v += "'" +
|
|
66
|
+
v += "'" + a[h] + "'", c = u + 2, u++;
|
|
67
67
|
break;
|
|
68
68
|
}
|
|
69
69
|
if (R === "function") {
|
|
70
|
-
v +=
|
|
70
|
+
v += a[h].name || "<anonymous>", c = u + 2, u++;
|
|
71
71
|
break;
|
|
72
72
|
}
|
|
73
|
-
v += E(
|
|
73
|
+
v += E(a[h]), c = u + 2, u++;
|
|
74
74
|
break;
|
|
75
75
|
case 115:
|
|
76
76
|
if (h >= w)
|
|
77
77
|
break;
|
|
78
|
-
c <
|
|
78
|
+
c < u && (v += i.slice(c, u)), v += String(a[h]), c = u + 2, u++;
|
|
79
79
|
break;
|
|
80
80
|
case 37:
|
|
81
|
-
c <
|
|
81
|
+
c < u && (v += i.slice(c, u)), v += "%", c = u + 2, u++, h--;
|
|
82
82
|
break;
|
|
83
83
|
}
|
|
84
84
|
++h;
|
|
85
85
|
}
|
|
86
|
-
++
|
|
86
|
+
++u;
|
|
87
87
|
}
|
|
88
88
|
return c === -1 ? i : (c < j && (v += i.slice(c)), v);
|
|
89
89
|
}
|
|
@@ -106,7 +106,7 @@ function de() {
|
|
|
106
106
|
err: J,
|
|
107
107
|
errWithCause: J
|
|
108
108
|
};
|
|
109
|
-
function
|
|
109
|
+
function a(e, t) {
|
|
110
110
|
return e === "silent" ? 1 / 0 : t.levels.values[e];
|
|
111
111
|
}
|
|
112
112
|
const m = /* @__PURE__ */ Symbol("pino.logFuncs"), E = /* @__PURE__ */ Symbol("pino.hierarchy"), V = {
|
|
@@ -125,14 +125,14 @@ function de() {
|
|
|
125
125
|
t[E] = n;
|
|
126
126
|
}
|
|
127
127
|
function C(e, t, n) {
|
|
128
|
-
const
|
|
129
|
-
t.forEach((
|
|
130
|
-
|
|
131
|
-
}), e[m] =
|
|
128
|
+
const o = {};
|
|
129
|
+
t.forEach((l) => {
|
|
130
|
+
o[l] = n[l] ? n[l] : s[l] || s[V[l] || "log"] || L;
|
|
131
|
+
}), e[m] = o;
|
|
132
132
|
}
|
|
133
133
|
function k(e, t) {
|
|
134
|
-
return Array.isArray(e) ? e.filter(function(
|
|
135
|
-
return
|
|
134
|
+
return Array.isArray(e) ? e.filter(function(o) {
|
|
135
|
+
return o !== "!stdSerializers.err";
|
|
136
136
|
}) : e === !0 ? Object.keys(t) : !1;
|
|
137
137
|
}
|
|
138
138
|
function w(e) {
|
|
@@ -142,7 +142,7 @@ function de() {
|
|
|
142
142
|
throw Error("pino: transmit option must have a send function");
|
|
143
143
|
const n = e.browser.write || s;
|
|
144
144
|
e.browser.write && (e.browser.asObject = !0);
|
|
145
|
-
const
|
|
145
|
+
const o = e.serializers || {}, l = k(e.browser.serialize, o);
|
|
146
146
|
let g = e.browser.serialize;
|
|
147
147
|
Array.isArray(e.browser.serialize) && e.browser.serialize.indexOf("!stdSerializers.err") > -1 && (g = !1);
|
|
148
148
|
const O = Object.keys(e.customLevels || {}), f = ["error", "fatal", "warn", "info", "debug", "trace"].concat(O);
|
|
@@ -158,7 +158,7 @@ function de() {
|
|
|
158
158
|
});
|
|
159
159
|
const b = {
|
|
160
160
|
transmit: t,
|
|
161
|
-
serialize:
|
|
161
|
+
serialize: l,
|
|
162
162
|
asObject: e.browser.asObject,
|
|
163
163
|
asObjectBindingsOnly: e.browser.asObjectBindingsOnly,
|
|
164
164
|
formatters: e.browser.formatters,
|
|
@@ -169,11 +169,11 @@ function de() {
|
|
|
169
169
|
};
|
|
170
170
|
r.levels = v(e), r.level = y, r.isLevelEnabled = function(p) {
|
|
171
171
|
return this.levels.values[p] ? this.levels.values[p] >= this.levels.values[this.level] : !1;
|
|
172
|
-
}, r.setMaxListeners = r.getMaxListeners = r.emit = r.addListener = r.on = r.prependListener = r.once = r.prependOnceListener = r.removeListener = r.removeAllListeners = r.listeners = r.listenerCount = r.eventNames = r.write = r.flush = L, r.serializers =
|
|
172
|
+
}, r.setMaxListeners = r.getMaxListeners = r.emit = r.addListener = r.on = r.prependListener = r.once = r.prependOnceListener = r.removeListener = r.removeAllListeners = r.listeners = r.listenerCount = r.eventNames = r.write = r.flush = L, r.serializers = o, r._serialize = l, r._stdErrSerialize = g, r.child = function(...p) {
|
|
173
173
|
return Q.call(this, b, ...p);
|
|
174
174
|
}, t && (r._logEvent = K());
|
|
175
175
|
function S() {
|
|
176
|
-
return
|
|
176
|
+
return a(this.level, this);
|
|
177
177
|
}
|
|
178
178
|
function D() {
|
|
179
179
|
return this._level;
|
|
@@ -188,10 +188,10 @@ function de() {
|
|
|
188
188
|
function Q(p, _, A) {
|
|
189
189
|
if (!_)
|
|
190
190
|
throw new Error("missing bindings for child Pino");
|
|
191
|
-
A = A || {},
|
|
191
|
+
A = A || {}, l && _.serializers && (A.serializers = _.serializers);
|
|
192
192
|
const $ = A.serializers;
|
|
193
|
-
if (
|
|
194
|
-
var B = Object.assign({},
|
|
193
|
+
if (l && $) {
|
|
194
|
+
var B = Object.assign({}, o, $), X = e.browser.serialize === !0 ? Object.keys(B) : l;
|
|
195
195
|
delete _.serializers, U([_], X, B, this._stdErrSerialize);
|
|
196
196
|
}
|
|
197
197
|
function Y(M) {
|
|
@@ -208,10 +208,10 @@ function de() {
|
|
|
208
208
|
return r;
|
|
209
209
|
}
|
|
210
210
|
function v(e) {
|
|
211
|
-
const t = e.customLevels || {}, n = Object.assign({}, w.levels.values, t),
|
|
211
|
+
const t = e.customLevels || {}, n = Object.assign({}, w.levels.values, t), o = Object.assign({}, w.levels.labels, h(t));
|
|
212
212
|
return {
|
|
213
213
|
values: n,
|
|
214
|
-
labels:
|
|
214
|
+
labels: o
|
|
215
215
|
};
|
|
216
216
|
}
|
|
217
217
|
function h(e) {
|
|
@@ -246,61 +246,61 @@ function de() {
|
|
|
246
246
|
n = n.parent, n.logger.bindings && t.push(n.logger.bindings);
|
|
247
247
|
return t.reverse();
|
|
248
248
|
}
|
|
249
|
-
function j(e, t, n,
|
|
250
|
-
if (Object.defineProperty(e,
|
|
251
|
-
value:
|
|
249
|
+
function j(e, t, n, o) {
|
|
250
|
+
if (Object.defineProperty(e, o, {
|
|
251
|
+
value: a(e.level, n) > a(o, n) ? L : n[m][o],
|
|
252
252
|
writable: !0,
|
|
253
253
|
enumerable: !0,
|
|
254
254
|
configurable: !0
|
|
255
|
-
}), e[
|
|
255
|
+
}), e[o] === L) {
|
|
256
256
|
if (!t.transmit) return;
|
|
257
|
-
const g = t.transmit.level || e.level, O =
|
|
258
|
-
if (
|
|
257
|
+
const g = t.transmit.level || e.level, O = a(g, n);
|
|
258
|
+
if (a(o, n) < O) return;
|
|
259
259
|
}
|
|
260
|
-
e[
|
|
261
|
-
const
|
|
262
|
-
|
|
260
|
+
e[o] = R(e, t, n, o);
|
|
261
|
+
const l = c(e);
|
|
262
|
+
l.length !== 0 && (e[o] = u(l, e[o]));
|
|
263
263
|
}
|
|
264
|
-
function
|
|
264
|
+
function u(e, t) {
|
|
265
265
|
return function() {
|
|
266
266
|
return t.apply(this, [...e, ...arguments]);
|
|
267
267
|
};
|
|
268
268
|
}
|
|
269
|
-
function R(e, t, n,
|
|
270
|
-
return /* @__PURE__ */ (function(
|
|
269
|
+
function R(e, t, n, o) {
|
|
270
|
+
return /* @__PURE__ */ (function(l) {
|
|
271
271
|
return function() {
|
|
272
272
|
const O = t.timestamp(), f = new Array(arguments.length), y = Object.getPrototypeOf && Object.getPrototypeOf(this) === s ? s : this;
|
|
273
273
|
for (var r = 0; r < f.length; r++) f[r] = arguments[r];
|
|
274
274
|
var b = !1;
|
|
275
|
-
if (t.serialize && (U(f, this._serialize, this.serializers, this._stdErrSerialize), b = !0), t.asObject || t.formatters ?
|
|
276
|
-
const S = t.transmit.level || e._level, D =
|
|
275
|
+
if (t.serialize && (U(f, this._serialize, this.serializers, this._stdErrSerialize), b = !0), t.asObject || t.formatters ? l.call(y, ...re(this, o, f, O, t)) : l.apply(y, f), t.transmit) {
|
|
276
|
+
const S = t.transmit.level || e._level, D = a(S, n), x = a(o, n);
|
|
277
277
|
if (x < D) return;
|
|
278
278
|
ne(this, {
|
|
279
279
|
ts: O,
|
|
280
|
-
methodLevel:
|
|
280
|
+
methodLevel: o,
|
|
281
281
|
methodValue: x,
|
|
282
282
|
transmitValue: n.levels.values[t.transmit.level || e._level],
|
|
283
283
|
send: t.transmit.send,
|
|
284
|
-
val:
|
|
284
|
+
val: a(e._level, n)
|
|
285
285
|
}, f, b);
|
|
286
286
|
}
|
|
287
287
|
};
|
|
288
|
-
})(e[m][
|
|
288
|
+
})(e[m][o]);
|
|
289
289
|
}
|
|
290
|
-
function re(e, t, n,
|
|
290
|
+
function re(e, t, n, o, l) {
|
|
291
291
|
const {
|
|
292
292
|
level: g,
|
|
293
293
|
log: O = (S) => S
|
|
294
|
-
} =
|
|
294
|
+
} = l.formatters || {}, f = n.slice();
|
|
295
295
|
let y = f[0];
|
|
296
296
|
const r = {};
|
|
297
297
|
let b = (e._childLevel | 0) + 1;
|
|
298
|
-
if (b < 1 && (b = 1),
|
|
298
|
+
if (b < 1 && (b = 1), o && (r.time = o), g) {
|
|
299
299
|
const S = g(t, e.levels.values[t]);
|
|
300
300
|
Object.assign(r, S);
|
|
301
301
|
} else
|
|
302
302
|
r.level = e.levels.values[t];
|
|
303
|
-
if (
|
|
303
|
+
if (l.asObjectBindingsOnly) {
|
|
304
304
|
if (y !== null && typeof y == "object")
|
|
305
305
|
for (; b-- && typeof f[0] == "object"; )
|
|
306
306
|
Object.assign(r, f.shift());
|
|
@@ -311,27 +311,27 @@ function de() {
|
|
|
311
311
|
Object.assign(r, f.shift());
|
|
312
312
|
y = f.length ? d(f.shift(), f) : void 0;
|
|
313
313
|
} else typeof y == "string" && (y = d(f.shift(), f));
|
|
314
|
-
return y !== void 0 && (r[
|
|
314
|
+
return y !== void 0 && (r[l.messageKey] = y), [O(r)];
|
|
315
315
|
}
|
|
316
316
|
}
|
|
317
|
-
function U(e, t, n,
|
|
318
|
-
for (const
|
|
319
|
-
if (
|
|
320
|
-
e[
|
|
321
|
-
else if (typeof e[
|
|
322
|
-
for (const g in e[
|
|
323
|
-
t.indexOf(g) > -1 && g in n && (e[
|
|
324
|
-
}
|
|
325
|
-
function ne(e, t, n,
|
|
326
|
-
const
|
|
327
|
-
|
|
317
|
+
function U(e, t, n, o) {
|
|
318
|
+
for (const l in e)
|
|
319
|
+
if (o && e[l] instanceof Error)
|
|
320
|
+
e[l] = w.stdSerializers.err(e[l]);
|
|
321
|
+
else if (typeof e[l] == "object" && !Array.isArray(e[l]) && t)
|
|
322
|
+
for (const g in e[l])
|
|
323
|
+
t.indexOf(g) > -1 && g in n && (e[l][g] = n[g](e[l][g]));
|
|
324
|
+
}
|
|
325
|
+
function ne(e, t, n, o = !1) {
|
|
326
|
+
const l = t.send, g = t.ts, O = t.methodLevel, f = t.methodValue, y = t.val, r = e._logEvent.bindings;
|
|
327
|
+
o || U(
|
|
328
328
|
n,
|
|
329
329
|
e._serialize || Object.keys(e.serializers),
|
|
330
330
|
e.serializers,
|
|
331
331
|
e._stdErrSerialize === void 0 ? !0 : e._stdErrSerialize
|
|
332
332
|
), e._logEvent.ts = g, e._logEvent.messages = n.filter(function(b) {
|
|
333
333
|
return r.indexOf(b) === -1;
|
|
334
|
-
}), e._logEvent.level.label = O, e._logEvent.level.value = f,
|
|
334
|
+
}), e._logEvent.level.label = O, e._logEvent.level.value = f, l(O, e._logEvent, y), e._logEvent = K(r);
|
|
335
335
|
}
|
|
336
336
|
function K(e) {
|
|
337
337
|
return {
|
|
@@ -405,11 +405,11 @@ function we(d, s) {
|
|
|
405
405
|
]);
|
|
406
406
|
}
|
|
407
407
|
async function T(d, s = ge, i = ye) {
|
|
408
|
-
for (let
|
|
408
|
+
for (let a = 0; a <= i; a++) {
|
|
409
409
|
const m = await we(d, s);
|
|
410
410
|
if (m.tag === "ok") return m.value;
|
|
411
411
|
if (m.tag === "error") throw m.err;
|
|
412
|
-
|
|
412
|
+
a < i && ve.debug({ attempt: a }, "claude storage timed out, retrying");
|
|
413
413
|
}
|
|
414
414
|
throw new Error(`Claude storage timed out after ${i + 1} attempts`);
|
|
415
415
|
}
|
|
@@ -433,8 +433,8 @@ class pe {
|
|
|
433
433
|
this.requirePublished();
|
|
434
434
|
try {
|
|
435
435
|
q.debug({ key: s }, "get");
|
|
436
|
-
const
|
|
437
|
-
return JSON.parse(
|
|
436
|
+
const a = (await T(() => this.storage.get(s))).value;
|
|
437
|
+
return typeof a == "string" ? JSON.parse(a) : a;
|
|
438
438
|
} catch (i) {
|
|
439
439
|
q.debug({ key: s, err: i }, "get returned nothing (key may not exist)");
|
|
440
440
|
return;
|
|
@@ -458,7 +458,7 @@ class pe {
|
|
|
458
458
|
function Oe() {
|
|
459
459
|
return typeof window < "u" && typeof window.claude?.complete == "function";
|
|
460
460
|
}
|
|
461
|
-
const je = "0.4.
|
|
461
|
+
const je = "0.4.3", Ee = {
|
|
462
462
|
version: je
|
|
463
463
|
}, Se = {
|
|
464
464
|
name: "@alistigo/claude-storage-plugin",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../claude-artifact-api/src/index.ts","../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../node_modules/.pnpm/pino@9.14.0/node_modules/pino/browser.js","../../logger/dist/index.js","../src/retry.ts","../src/claude-key-value-store.ts","../src/claude-storage-plugin.ts"],"sourcesContent":["export interface ClaudeStorageGetResult {\n key: string;\n value: string;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageSetResult {\n key: string;\n value: string;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageDeleteResult {\n key: string;\n deleted: boolean;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageListResult {\n keys: string[];\n prefix: string;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorage {\n /** Rejects (never resolves) when the key does not exist. */\n get(key: string, shared?: boolean): Promise<ClaudeStorageGetResult>;\n set(key: string, value: string, shared?: boolean): Promise<ClaudeStorageSetResult>;\n /** Rejects (never resolves) when the key does not exist. */\n delete(key: string, shared?: boolean): Promise<ClaudeStorageDeleteResult>;\n list(prefix?: string, shared?: boolean): Promise<ClaudeStorageListResult>;\n}\n\nexport interface ClaudeApi {\n complete(prompt: string): Promise<string>;\n}\n\ndeclare global {\n interface Window {\n storage?: ClaudeStorage;\n claude?: ClaudeApi;\n /** Dev-mode override injected by the playground — supersedes URL-based detection in artifactContext(). */\n claudeArtifactStatus?: \"published\";\n }\n}\n\nexport interface ArtifactContext {\n /** True only when the artifact is accessed via its published public URL. */\n published: boolean;\n /** The artifact UUID extracted from the public URL, or null in draft mode. */\n artifactId: string | null;\n}\n\n/**\n * Detects whether the artifact is running in draft (AI preview panel) or\n * published (public URL) mode by inspecting document.baseURI.\n *\n * Draft: https://www.claudeusercontent.com/?domain=… → published: false\n * Published: https://www.claudeusercontent.com/artifact/<uuid> → published: true\n */\nfunction baseURIPath(): string {\n try {\n return new URL(document.baseURI).pathname;\n } catch {\n return \"\";\n }\n}\n\nexport function artifactContext(): ArtifactContext {\n // Playground injects window.claudeArtifactStatus = \"published\" to simulate published mode.\n if (window.claudeArtifactStatus === \"published\") {\n return { published: true, artifactId: null };\n }\n const m = baseURIPath().match(/^\\/artifact\\/([0-9a-f-]{36})/i);\n return { published: Boolean(m), artifactId: m?.[1] ?? null };\n}\n","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || '<anonymous>'\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue,\n errWithCause: asErrValue\n}\nfunction levelToValue (level, logger) {\n return level === 'silent'\n ? Infinity\n : logger.levels.values[level]\n}\nconst baseLogFunctionSymbol = Symbol('pino.logFuncs')\nconst hierarchySymbol = Symbol('pino.hierarchy')\n\nconst logFallbackMap = {\n error: 'log',\n fatal: 'error',\n warn: 'error',\n info: 'log',\n debug: 'log',\n trace: 'log'\n}\n\nfunction appendChildLogger (parentLogger, childLogger) {\n const newEntry = {\n logger: childLogger,\n parent: parentLogger[hierarchySymbol]\n }\n childLogger[hierarchySymbol] = newEntry\n}\n\nfunction setupBaseLogFunctions (logger, levels, proto) {\n const logFunctions = {}\n levels.forEach(level => {\n logFunctions[level] = proto[level] ? proto[level] : (_console[level] || _console[logFallbackMap[level] || 'log'] || noop)\n })\n logger[baseLogFunctionSymbol] = logFunctions\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const customLevels = Object.keys(opts.customLevels || {})\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace'].concat(customLevels)\n\n if (typeof proto === 'function') {\n levels.forEach(function (level) {\n proto[level] = proto\n })\n }\n if (opts.enabled === false || opts.browser.disabled) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n setupBaseLogFunctions(logger, levels, proto)\n // setup root hierarchy entry\n appendChildLogger({}, logger)\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n asObjectBindingsOnly: opts.browser.asObjectBindingsOnly,\n formatters: opts.browser.formatters,\n levels,\n timestamp: getTimeFunction(opts),\n messageKey: opts.messageKey || 'msg',\n onChild: opts.onChild || noop\n }\n logger.levels = getLevels(opts)\n logger.level = level\n\n logger.isLevelEnabled = function (level) {\n if (!this.levels.values[level]) {\n return false\n }\n\n return this.levels.values[level] >= this.levels.values[this.level]\n }\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = function (...args) { return child.call(this, setOpts, ...args) }\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return levelToValue(this.level, this)\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(this, setOpts, logger, 'error') // <-- must stay first\n set(this, setOpts, logger, 'fatal')\n set(this, setOpts, logger, 'warn')\n set(this, setOpts, logger, 'info')\n set(this, setOpts, logger, 'debug')\n set(this, setOpts, logger, 'trace')\n\n customLevels.forEach((level) => {\n set(this, setOpts, logger, level)\n })\n }\n\n function child (setOpts, bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n\n // make sure bindings are available in the `set` function\n this.bindings = bindings\n\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n const newLogger = new Child(this)\n\n // must happen before the level is assigned\n appendChildLogger(this, newLogger)\n newLogger.child = function (...args) { return child.call(this, setOpts, ...args) }\n // required to actually initialize the logger functions for any given child\n newLogger.level = childOptions.level || this.level // allow level to be set by childOptions\n setOpts.onChild(newLogger)\n\n return newLogger\n }\n return logger\n}\n\nfunction getLevels (opts) {\n const customLevels = opts.customLevels || {}\n\n const values = Object.assign({}, pino.levels.values, customLevels)\n const labels = Object.assign({}, pino.levels.labels, invertObject(customLevels))\n\n return {\n values,\n labels\n }\n}\n\nfunction invertObject (obj) {\n const inverted = {}\n Object.keys(obj).forEach(function (key) {\n inverted[obj[key]] = key\n })\n return inverted\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction getBindingChain (logger) {\n const bindings = []\n if (logger.bindings) {\n bindings.push(logger.bindings)\n }\n\n // traverse up the tree to get all bindings\n let hierarchy = logger[hierarchySymbol]\n while (hierarchy.parent) {\n hierarchy = hierarchy.parent\n if (hierarchy.logger.bindings) {\n bindings.push(hierarchy.logger.bindings)\n }\n }\n\n return bindings.reverse()\n}\n\nfunction set (self, opts, rootLogger, level) {\n // override the current log functions with either `noop` or the base log function\n Object.defineProperty(self, level, {\n value: (levelToValue(self.level, rootLogger) > levelToValue(level, rootLogger)\n ? noop\n : rootLogger[baseLogFunctionSymbol][level]),\n writable: true,\n enumerable: true,\n configurable: true\n })\n\n if (self[level] === noop) {\n if (!opts.transmit) return\n\n const transmitLevel = opts.transmit.level || self.level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n }\n\n // make sure the log format is correct\n self[level] = createWrap(self, opts, rootLogger, level)\n\n // prepend bindings if it is not the root logger\n const bindings = getBindingChain(self)\n if (bindings.length === 0) {\n // early exit in case for rootLogger\n return\n }\n self[level] = prependBindingsInArguments(bindings, self[level])\n}\n\nfunction prependBindingsInArguments (bindings, logFunc) {\n return function () {\n return logFunc.apply(this, [...bindings, ...arguments])\n }\n}\n\nfunction createWrap (self, opts, rootLogger, level) {\n return (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n var argsIsSerialized = false\n if (opts.serialize) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n argsIsSerialized = true\n }\n if (opts.asObject || opts.formatters) {\n write.call(proto, ...asObject(this, level, args, ts, opts))\n } else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || self._level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: rootLogger.levels.values[opts.transmit.level || self._level],\n send: opts.transmit.send,\n val: levelToValue(self._level, rootLogger)\n }, args, argsIsSerialized)\n }\n }\n })(self[baseLogFunctionSymbol][level])\n}\n\nfunction asObject (logger, level, args, ts, opts) {\n const {\n level: levelFormatter,\n log: logObjectFormatter = (obj) => obj\n } = opts.formatters || {}\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const logObject = {}\n\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n\n if (ts) {\n logObject.time = ts\n }\n\n if (levelFormatter) {\n const formattedLevel = levelFormatter(level, logger.levels.values[level])\n Object.assign(logObject, formattedLevel)\n } else {\n logObject.level = logger.levels.values[level]\n }\n\n if (opts.asObjectBindingsOnly) {\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n }\n\n const formattedLogObject = logObjectFormatter(logObject)\n return [formattedLogObject, ...argsCloned]\n } else {\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) logObject[opts.messageKey] = msg\n\n const formattedLogObject = logObjectFormatter(logObject)\n return [formattedLogObject]\n }\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i]) && serialize) {\n for (const k in args[i]) {\n if (serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction transmit (logger, opts, args, argsIsSerialized = false) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n if (!argsIsSerialized) {\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n }\n\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n\nmodule.exports.default = pino\nmodule.exports.pino = pino\n","import pino from \"pino\";\n// Root logger — starts silent. App entry points call setLogLevel() before rendering.\n// Changing root.level propagates to all child loggers at write time (pino checks the\n// root level before forwarding to its transport).\nconst root = pino({\n level: \"silent\",\n browser: { asObject: true },\n});\nexport const setLogLevel = (level) => {\n root.level = level;\n};\n// Creates a child logger with a bound `module` field on every log entry.\n// Optionally accepts additional static context (e.g. { listId }).\nexport const createLogger = (module, ctx) => root.child({ module, ...ctx });\n//# sourceMappingURL=index.js.map","import { createLogger } from \"@alistigo/logger\";\n\nconst log = createLogger(\"alistigo:claude-storage:retry\");\n\nconst STORAGE_TIMEOUT_MS = 1000;\nconst STORAGE_MAX_RETRIES = 3;\n\ntype AttemptResult<T> =\n | { tag: \"ok\"; value: T }\n | { tag: \"timeout\" }\n | { tag: \"error\"; err: unknown };\n\nfunction attemptWithTimeout<T>(\n factory: () => Promise<T>,\n timeoutMs: number,\n): Promise<AttemptResult<T>> {\n return Promise.race([\n factory()\n .then((value): AttemptResult<T> => ({ tag: \"ok\", value }))\n .catch((err): AttemptResult<T> => ({ tag: \"error\", err })),\n new Promise<AttemptResult<T>>((resolve) =>\n setTimeout(() => resolve({ tag: \"timeout\" }), timeoutMs),\n ),\n ]);\n}\n\n/**\n * Calls `factory()` and waits up to `timeoutMs` (default 1 s). On timeout retries up to\n * `maxRetries` (default 3) times. Non-timeout errors are re-thrown immediately.\n * After all attempts time out, throws a descriptive error.\n */\nexport async function withStorageRetry<T>(\n factory: () => Promise<T>,\n timeoutMs = STORAGE_TIMEOUT_MS,\n maxRetries = STORAGE_MAX_RETRIES,\n): Promise<T> {\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n const result = await attemptWithTimeout(factory, timeoutMs);\n if (result.tag === \"ok\") return result.value;\n if (result.tag === \"error\") throw result.err;\n if (attempt < maxRetries) {\n log.debug({ attempt }, \"claude storage timed out, retrying\");\n }\n }\n throw new Error(`Claude storage timed out after ${maxRetries + 1} attempts`);\n}\n","import type { KeyValueStore } from \"@alistigo/artifact-plugin-api\";\nimport { artifactContext, type ClaudeStorage } from \"@alistigo/claude-artifact-api\";\nimport { createLogger } from \"@alistigo/logger\";\nimport { withStorageRetry } from \"./retry.js\";\n\nconst log = createLogger(\"alistigo:claude-storage\");\n\nexport class ClaudeKeyValueStore implements KeyValueStore {\n private get storage(): ClaudeStorage {\n const s = (window as Window).storage;\n if (!s)\n throw new Error(\n \"ClaudeKeyValueStore requires window.storage — check isClaudeArtifactContext() first\",\n );\n return s;\n }\n\n private requirePublished(): void {\n if (!artifactContext().published) {\n throw new Error(\n \"Storage is unavailable in draft mode — publish the artifact and open it via its public URL.\",\n );\n }\n }\n\n async get(key: string): Promise<unknown> {\n this.requirePublished();\n try {\n log.debug({ key }, \"get\");\n const result = await withStorageRetry(() => this.storage.get(key));\n return JSON.parse(result.value) as unknown;\n } catch (err) {\n log.debug({ key, err }, \"get returned nothing (key may not exist)\");\n return undefined;\n }\n }\n\n async set(key: string, value: unknown): Promise<void> {\n this.requirePublished();\n log.debug({ key }, \"set\");\n await withStorageRetry(() => this.storage.set(key, JSON.stringify(value)));\n }\n\n async del(key: string): Promise<void> {\n this.requirePublished();\n log.debug({ key }, \"del\");\n await withStorageRetry(() => this.storage.delete(key));\n }\n\n async list(prefix = \"\"): Promise<string[]> {\n this.requirePublished();\n try {\n log.debug({ prefix }, \"list\");\n const result = await withStorageRetry(() => this.storage.list(prefix));\n return result?.keys ?? [];\n } catch {\n return [];\n }\n }\n}\n\n/** Returns true when running inside a Claude artifact that exposes window.claude */\nexport function isClaudeArtifactContext(): boolean {\n return typeof window !== \"undefined\" && typeof window.claude?.complete === \"function\";\n}\n","import type { AlistigoPlugin } from \"@alistigo/artifact-plugin-api\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { ClaudeKeyValueStore, isClaudeArtifactContext } from \"./claude-key-value-store.js\";\nimport { withStorageRetry } from \"./retry.js\";\n\nconst claudeStoragePlugin: AlistigoPlugin = {\n name: \"@alistigo/claude-storage-plugin\",\n version: pkg.version,\n type: \"storage\",\n storage: {\n isAvailable(): boolean {\n return isClaudeArtifactContext();\n },\n createStore() {\n return new ClaudeKeyValueStore();\n },\n async listKeys(prefix = \"\"): Promise<Array<{ key: string; value: string }>> {\n const storage = window.storage;\n if (!storage) return [];\n try {\n const result = await withStorageRetry(() => storage.list(prefix));\n if (!result) return [];\n const entries = await Promise.all(\n result.keys.map(async (key) => {\n try {\n const item = await withStorageRetry(() => storage.get(key));\n return { key, value: item.value };\n } catch {\n return null;\n }\n }),\n );\n return entries.filter((e): e is { key: string; value: string } => e !== null);\n } catch {\n return [];\n }\n },\n },\n};\n\nexport default claudeStoragePlugin;\n"],"names":["baseURIPath","artifactContext","m","tryStringify","o","quickFormatUnescaped","format","f","args","opts","ss","offset","len","objects","index","argLen","str","a","lastPos","flen","i","type","require$$0","browserModule","pino","_console","pfGlobalThisOrFallback","stdSerializers","mock","passthrough","asErrValue","levelToValue","level","logger","baseLogFunctionSymbol","hierarchySymbol","logFallbackMap","appendChildLogger","parentLogger","childLogger","newEntry","setupBaseLogFunctions","levels","proto","logFunctions","noop","shouldSerialize","serialize","serializers","k","transmit","stdErrSerialize","customLevels","getLevelVal","getLevel","setLevel","setOpts","getTimeFunction","getLevels","child","createLogEventShape","set","bindings","childOptions","childOptionsSerializers","childSerializers","childSerialize","applySerializers","Child","parent","newLogger","values","labels","invertObject","obj","inverted","key","nullTime","epochTime","unixTime","isoTime","getBindingChain","hierarchy","self","rootLogger","transmitLevel","transmitValue","createWrap","prependBindingsInArguments","logFunc","write","ts","argsIsSerialized","asObject","methodValue","levelFormatter","logObjectFormatter","argsCloned","msg","logObject","lvl","formattedLevel","send","methodLevel","val","arg","err","defd","root","createLogger","module","ctx","log","STORAGE_TIMEOUT_MS","STORAGE_MAX_RETRIES","attemptWithTimeout","factory","timeoutMs","value","resolve","withStorageRetry","maxRetries","attempt","result","ClaudeKeyValueStore","prefix","isClaudeArtifactContext","claudeStoragePlugin","pkg","storage","item","e"],"mappings":"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","x_google_ignoreList":[1,2]}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../claude-artifact-api/src/index.ts","../../../node_modules/.pnpm/quick-format-unescaped@4.0.4/node_modules/quick-format-unescaped/index.js","../../../node_modules/.pnpm/pino@9.14.0/node_modules/pino/browser.js","../../logger/dist/index.js","../src/retry.ts","../src/claude-key-value-store.ts","../src/claude-storage-plugin.ts"],"sourcesContent":["export interface ClaudeStorageGetResult {\n key: string;\n value: string;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageSetResult {\n key: string;\n value: string;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageDeleteResult {\n key: string;\n deleted: boolean;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageListResult {\n keys: string[];\n prefix: string;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorage {\n /** Rejects (never resolves) when the key does not exist. */\n get(key: string, shared?: boolean): Promise<ClaudeStorageGetResult>;\n set(key: string, value: string, shared?: boolean): Promise<ClaudeStorageSetResult>;\n /** Rejects (never resolves) when the key does not exist. */\n delete(key: string, shared?: boolean): Promise<ClaudeStorageDeleteResult>;\n list(prefix?: string, shared?: boolean): Promise<ClaudeStorageListResult>;\n}\n\nexport interface ClaudeApi {\n complete(prompt: string): Promise<string>;\n}\n\ndeclare global {\n interface Window {\n storage?: ClaudeStorage;\n claude?: ClaudeApi;\n /** Dev-mode override injected by the playground — supersedes URL-based detection in artifactContext(). */\n claudeArtifactStatus?: \"published\";\n }\n}\n\nexport interface ArtifactContext {\n /** True only when the artifact is accessed via its published public URL. */\n published: boolean;\n /** The artifact UUID extracted from the public URL, or null in draft mode. */\n artifactId: string | null;\n}\n\n/**\n * Detects whether the artifact is running in draft (AI preview panel) or\n * published (public URL) mode by inspecting document.baseURI.\n *\n * Draft: https://www.claudeusercontent.com/?domain=… → published: false\n * Published: https://www.claudeusercontent.com/artifact/<uuid> → published: true\n */\nfunction baseURIPath(): string {\n try {\n return new URL(document.baseURI).pathname;\n } catch {\n return \"\";\n }\n}\n\nexport function artifactContext(): ArtifactContext {\n // Playground injects window.claudeArtifactStatus = \"published\" to simulate published mode.\n if (window.claudeArtifactStatus === \"published\") {\n return { published: true, artifactId: null };\n }\n const m = baseURIPath().match(/^\\/artifact\\/([0-9a-f-]{36})/i);\n return { published: Boolean(m), artifactId: m?.[1] ?? null };\n}\n","'use strict'\nfunction tryStringify (o) {\n try { return JSON.stringify(o) } catch(e) { return '\"[Circular]\"' }\n}\n\nmodule.exports = format\n\nfunction format(f, args, opts) {\n var ss = (opts && opts.stringify) || tryStringify\n var offset = 1\n if (typeof f === 'object' && f !== null) {\n var len = args.length + offset\n if (len === 1) return f\n var objects = new Array(len)\n objects[0] = ss(f)\n for (var index = 1; index < len; index++) {\n objects[index] = ss(args[index])\n }\n return objects.join(' ')\n }\n if (typeof f !== 'string') {\n return f\n }\n var argLen = args.length\n if (argLen === 0) return f\n var str = ''\n var a = 1 - offset\n var lastPos = -1\n var flen = (f && f.length) || 0\n for (var i = 0; i < flen;) {\n if (f.charCodeAt(i) === 37 && i + 1 < flen) {\n lastPos = lastPos > -1 ? lastPos : 0\n switch (f.charCodeAt(i + 1)) {\n case 100: // 'd'\n case 102: // 'f'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Number(args[a])\n lastPos = i + 2\n i++\n break\n case 105: // 'i'\n if (a >= argLen)\n break\n if (args[a] == null) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += Math.floor(Number(args[a]))\n lastPos = i + 2\n i++\n break\n case 79: // 'O'\n case 111: // 'o'\n case 106: // 'j'\n if (a >= argLen)\n break\n if (args[a] === undefined) break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n var type = typeof args[a]\n if (type === 'string') {\n str += '\\'' + args[a] + '\\''\n lastPos = i + 2\n i++\n break\n }\n if (type === 'function') {\n str += args[a].name || '<anonymous>'\n lastPos = i + 2\n i++\n break\n }\n str += ss(args[a])\n lastPos = i + 2\n i++\n break\n case 115: // 's'\n if (a >= argLen)\n break\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += String(args[a])\n lastPos = i + 2\n i++\n break\n case 37: // '%'\n if (lastPos < i)\n str += f.slice(lastPos, i)\n str += '%'\n lastPos = i + 2\n i++\n a--\n break\n }\n ++a\n }\n ++i\n }\n if (lastPos === -1)\n return f\n else if (lastPos < flen) {\n str += f.slice(lastPos)\n }\n\n return str\n}\n","'use strict'\n\nconst format = require('quick-format-unescaped')\n\nmodule.exports = pino\n\nconst _console = pfGlobalThisOrFallback().console || {}\nconst stdSerializers = {\n mapHttpRequest: mock,\n mapHttpResponse: mock,\n wrapRequestSerializer: passthrough,\n wrapResponseSerializer: passthrough,\n wrapErrorSerializer: passthrough,\n req: mock,\n res: mock,\n err: asErrValue,\n errWithCause: asErrValue\n}\nfunction levelToValue (level, logger) {\n return level === 'silent'\n ? Infinity\n : logger.levels.values[level]\n}\nconst baseLogFunctionSymbol = Symbol('pino.logFuncs')\nconst hierarchySymbol = Symbol('pino.hierarchy')\n\nconst logFallbackMap = {\n error: 'log',\n fatal: 'error',\n warn: 'error',\n info: 'log',\n debug: 'log',\n trace: 'log'\n}\n\nfunction appendChildLogger (parentLogger, childLogger) {\n const newEntry = {\n logger: childLogger,\n parent: parentLogger[hierarchySymbol]\n }\n childLogger[hierarchySymbol] = newEntry\n}\n\nfunction setupBaseLogFunctions (logger, levels, proto) {\n const logFunctions = {}\n levels.forEach(level => {\n logFunctions[level] = proto[level] ? proto[level] : (_console[level] || _console[logFallbackMap[level] || 'log'] || noop)\n })\n logger[baseLogFunctionSymbol] = logFunctions\n}\n\nfunction shouldSerialize (serialize, serializers) {\n if (Array.isArray(serialize)) {\n const hasToFilter = serialize.filter(function (k) {\n return k !== '!stdSerializers.err'\n })\n return hasToFilter\n } else if (serialize === true) {\n return Object.keys(serializers)\n }\n\n return false\n}\n\nfunction pino (opts) {\n opts = opts || {}\n opts.browser = opts.browser || {}\n\n const transmit = opts.browser.transmit\n if (transmit && typeof transmit.send !== 'function') { throw Error('pino: transmit option must have a send function') }\n\n const proto = opts.browser.write || _console\n if (opts.browser.write) opts.browser.asObject = true\n const serializers = opts.serializers || {}\n const serialize = shouldSerialize(opts.browser.serialize, serializers)\n let stdErrSerialize = opts.browser.serialize\n\n if (\n Array.isArray(opts.browser.serialize) &&\n opts.browser.serialize.indexOf('!stdSerializers.err') > -1\n ) stdErrSerialize = false\n\n const customLevels = Object.keys(opts.customLevels || {})\n const levels = ['error', 'fatal', 'warn', 'info', 'debug', 'trace'].concat(customLevels)\n\n if (typeof proto === 'function') {\n levels.forEach(function (level) {\n proto[level] = proto\n })\n }\n if (opts.enabled === false || opts.browser.disabled) opts.level = 'silent'\n const level = opts.level || 'info'\n const logger = Object.create(proto)\n if (!logger.log) logger.log = noop\n\n setupBaseLogFunctions(logger, levels, proto)\n // setup root hierarchy entry\n appendChildLogger({}, logger)\n\n Object.defineProperty(logger, 'levelVal', {\n get: getLevelVal\n })\n Object.defineProperty(logger, 'level', {\n get: getLevel,\n set: setLevel\n })\n\n const setOpts = {\n transmit,\n serialize,\n asObject: opts.browser.asObject,\n asObjectBindingsOnly: opts.browser.asObjectBindingsOnly,\n formatters: opts.browser.formatters,\n levels,\n timestamp: getTimeFunction(opts),\n messageKey: opts.messageKey || 'msg',\n onChild: opts.onChild || noop\n }\n logger.levels = getLevels(opts)\n logger.level = level\n\n logger.isLevelEnabled = function (level) {\n if (!this.levels.values[level]) {\n return false\n }\n\n return this.levels.values[level] >= this.levels.values[this.level]\n }\n logger.setMaxListeners = logger.getMaxListeners =\n logger.emit = logger.addListener = logger.on =\n logger.prependListener = logger.once =\n logger.prependOnceListener = logger.removeListener =\n logger.removeAllListeners = logger.listeners =\n logger.listenerCount = logger.eventNames =\n logger.write = logger.flush = noop\n logger.serializers = serializers\n logger._serialize = serialize\n logger._stdErrSerialize = stdErrSerialize\n logger.child = function (...args) { return child.call(this, setOpts, ...args) }\n\n if (transmit) logger._logEvent = createLogEventShape()\n\n function getLevelVal () {\n return levelToValue(this.level, this)\n }\n\n function getLevel () {\n return this._level\n }\n function setLevel (level) {\n if (level !== 'silent' && !this.levels.values[level]) {\n throw Error('unknown level ' + level)\n }\n this._level = level\n\n set(this, setOpts, logger, 'error') // <-- must stay first\n set(this, setOpts, logger, 'fatal')\n set(this, setOpts, logger, 'warn')\n set(this, setOpts, logger, 'info')\n set(this, setOpts, logger, 'debug')\n set(this, setOpts, logger, 'trace')\n\n customLevels.forEach((level) => {\n set(this, setOpts, logger, level)\n })\n }\n\n function child (setOpts, bindings, childOptions) {\n if (!bindings) {\n throw new Error('missing bindings for child Pino')\n }\n childOptions = childOptions || {}\n if (serialize && bindings.serializers) {\n childOptions.serializers = bindings.serializers\n }\n const childOptionsSerializers = childOptions.serializers\n if (serialize && childOptionsSerializers) {\n var childSerializers = Object.assign({}, serializers, childOptionsSerializers)\n var childSerialize = opts.browser.serialize === true\n ? Object.keys(childSerializers)\n : serialize\n delete bindings.serializers\n applySerializers([bindings], childSerialize, childSerializers, this._stdErrSerialize)\n }\n function Child (parent) {\n this._childLevel = (parent._childLevel | 0) + 1\n\n // make sure bindings are available in the `set` function\n this.bindings = bindings\n\n if (childSerializers) {\n this.serializers = childSerializers\n this._serialize = childSerialize\n }\n if (transmit) {\n this._logEvent = createLogEventShape(\n [].concat(parent._logEvent.bindings, bindings)\n )\n }\n }\n Child.prototype = this\n const newLogger = new Child(this)\n\n // must happen before the level is assigned\n appendChildLogger(this, newLogger)\n newLogger.child = function (...args) { return child.call(this, setOpts, ...args) }\n // required to actually initialize the logger functions for any given child\n newLogger.level = childOptions.level || this.level // allow level to be set by childOptions\n setOpts.onChild(newLogger)\n\n return newLogger\n }\n return logger\n}\n\nfunction getLevels (opts) {\n const customLevels = opts.customLevels || {}\n\n const values = Object.assign({}, pino.levels.values, customLevels)\n const labels = Object.assign({}, pino.levels.labels, invertObject(customLevels))\n\n return {\n values,\n labels\n }\n}\n\nfunction invertObject (obj) {\n const inverted = {}\n Object.keys(obj).forEach(function (key) {\n inverted[obj[key]] = key\n })\n return inverted\n}\n\npino.levels = {\n values: {\n fatal: 60,\n error: 50,\n warn: 40,\n info: 30,\n debug: 20,\n trace: 10\n },\n labels: {\n 10: 'trace',\n 20: 'debug',\n 30: 'info',\n 40: 'warn',\n 50: 'error',\n 60: 'fatal'\n }\n}\n\npino.stdSerializers = stdSerializers\npino.stdTimeFunctions = Object.assign({}, { nullTime, epochTime, unixTime, isoTime })\n\nfunction getBindingChain (logger) {\n const bindings = []\n if (logger.bindings) {\n bindings.push(logger.bindings)\n }\n\n // traverse up the tree to get all bindings\n let hierarchy = logger[hierarchySymbol]\n while (hierarchy.parent) {\n hierarchy = hierarchy.parent\n if (hierarchy.logger.bindings) {\n bindings.push(hierarchy.logger.bindings)\n }\n }\n\n return bindings.reverse()\n}\n\nfunction set (self, opts, rootLogger, level) {\n // override the current log functions with either `noop` or the base log function\n Object.defineProperty(self, level, {\n value: (levelToValue(self.level, rootLogger) > levelToValue(level, rootLogger)\n ? noop\n : rootLogger[baseLogFunctionSymbol][level]),\n writable: true,\n enumerable: true,\n configurable: true\n })\n\n if (self[level] === noop) {\n if (!opts.transmit) return\n\n const transmitLevel = opts.transmit.level || self.level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n }\n\n // make sure the log format is correct\n self[level] = createWrap(self, opts, rootLogger, level)\n\n // prepend bindings if it is not the root logger\n const bindings = getBindingChain(self)\n if (bindings.length === 0) {\n // early exit in case for rootLogger\n return\n }\n self[level] = prependBindingsInArguments(bindings, self[level])\n}\n\nfunction prependBindingsInArguments (bindings, logFunc) {\n return function () {\n return logFunc.apply(this, [...bindings, ...arguments])\n }\n}\n\nfunction createWrap (self, opts, rootLogger, level) {\n return (function (write) {\n return function LOG () {\n const ts = opts.timestamp()\n const args = new Array(arguments.length)\n const proto = (Object.getPrototypeOf && Object.getPrototypeOf(this) === _console) ? _console : this\n for (var i = 0; i < args.length; i++) args[i] = arguments[i]\n\n var argsIsSerialized = false\n if (opts.serialize) {\n applySerializers(args, this._serialize, this.serializers, this._stdErrSerialize)\n argsIsSerialized = true\n }\n if (opts.asObject || opts.formatters) {\n write.call(proto, ...asObject(this, level, args, ts, opts))\n } else write.apply(proto, args)\n\n if (opts.transmit) {\n const transmitLevel = opts.transmit.level || self._level\n const transmitValue = levelToValue(transmitLevel, rootLogger)\n const methodValue = levelToValue(level, rootLogger)\n if (methodValue < transmitValue) return\n transmit(this, {\n ts,\n methodLevel: level,\n methodValue,\n transmitLevel,\n transmitValue: rootLogger.levels.values[opts.transmit.level || self._level],\n send: opts.transmit.send,\n val: levelToValue(self._level, rootLogger)\n }, args, argsIsSerialized)\n }\n }\n })(self[baseLogFunctionSymbol][level])\n}\n\nfunction asObject (logger, level, args, ts, opts) {\n const {\n level: levelFormatter,\n log: logObjectFormatter = (obj) => obj\n } = opts.formatters || {}\n const argsCloned = args.slice()\n let msg = argsCloned[0]\n const logObject = {}\n\n let lvl = (logger._childLevel | 0) + 1\n if (lvl < 1) lvl = 1\n\n if (ts) {\n logObject.time = ts\n }\n\n if (levelFormatter) {\n const formattedLevel = levelFormatter(level, logger.levels.values[level])\n Object.assign(logObject, formattedLevel)\n } else {\n logObject.level = logger.levels.values[level]\n }\n\n if (opts.asObjectBindingsOnly) {\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n }\n\n const formattedLogObject = logObjectFormatter(logObject)\n return [formattedLogObject, ...argsCloned]\n } else {\n // deliberate, catching objects, arrays\n if (msg !== null && typeof msg === 'object') {\n while (lvl-- && typeof argsCloned[0] === 'object') {\n Object.assign(logObject, argsCloned.shift())\n }\n msg = argsCloned.length ? format(argsCloned.shift(), argsCloned) : undefined\n } else if (typeof msg === 'string') msg = format(argsCloned.shift(), argsCloned)\n if (msg !== undefined) logObject[opts.messageKey] = msg\n\n const formattedLogObject = logObjectFormatter(logObject)\n return [formattedLogObject]\n }\n}\n\nfunction applySerializers (args, serialize, serializers, stdErrSerialize) {\n for (const i in args) {\n if (stdErrSerialize && args[i] instanceof Error) {\n args[i] = pino.stdSerializers.err(args[i])\n } else if (typeof args[i] === 'object' && !Array.isArray(args[i]) && serialize) {\n for (const k in args[i]) {\n if (serialize.indexOf(k) > -1 && k in serializers) {\n args[i][k] = serializers[k](args[i][k])\n }\n }\n }\n }\n}\n\nfunction transmit (logger, opts, args, argsIsSerialized = false) {\n const send = opts.send\n const ts = opts.ts\n const methodLevel = opts.methodLevel\n const methodValue = opts.methodValue\n const val = opts.val\n const bindings = logger._logEvent.bindings\n\n if (!argsIsSerialized) {\n applySerializers(\n args,\n logger._serialize || Object.keys(logger.serializers),\n logger.serializers,\n logger._stdErrSerialize === undefined ? true : logger._stdErrSerialize\n )\n }\n\n logger._logEvent.ts = ts\n logger._logEvent.messages = args.filter(function (arg) {\n // bindings can only be objects, so reference equality check via indexOf is fine\n return bindings.indexOf(arg) === -1\n })\n\n logger._logEvent.level.label = methodLevel\n logger._logEvent.level.value = methodValue\n\n send(methodLevel, logger._logEvent, val)\n\n logger._logEvent = createLogEventShape(bindings)\n}\n\nfunction createLogEventShape (bindings) {\n return {\n ts: 0,\n messages: [],\n bindings: bindings || [],\n level: { label: '', value: 0 }\n }\n}\n\nfunction asErrValue (err) {\n const obj = {\n type: err.constructor.name,\n msg: err.message,\n stack: err.stack\n }\n for (const key in err) {\n if (obj[key] === undefined) {\n obj[key] = err[key]\n }\n }\n return obj\n}\n\nfunction getTimeFunction (opts) {\n if (typeof opts.timestamp === 'function') {\n return opts.timestamp\n }\n if (opts.timestamp === false) {\n return nullTime\n }\n return epochTime\n}\n\nfunction mock () { return {} }\nfunction passthrough (a) { return a }\nfunction noop () {}\n\nfunction nullTime () { return false }\nfunction epochTime () { return Date.now() }\nfunction unixTime () { return Math.round(Date.now() / 1000.0) }\nfunction isoTime () { return new Date(Date.now()).toISOString() } // using Date.now() for testability\n\n/* eslint-disable */\n/* istanbul ignore next */\nfunction pfGlobalThisOrFallback () {\n function defd (o) { return typeof o !== 'undefined' && o }\n try {\n if (typeof globalThis !== 'undefined') return globalThis\n Object.defineProperty(Object.prototype, 'globalThis', {\n get: function () {\n delete Object.prototype.globalThis\n return (this.globalThis = this)\n },\n configurable: true\n })\n return globalThis\n } catch (e) {\n return defd(self) || defd(window) || defd(this) || {}\n }\n}\n/* eslint-enable */\n\nmodule.exports.default = pino\nmodule.exports.pino = pino\n","import pino from \"pino\";\n// Root logger — starts silent. App entry points call setLogLevel() before rendering.\n// Changing root.level propagates to all child loggers at write time (pino checks the\n// root level before forwarding to its transport).\nconst root = pino({\n level: \"silent\",\n browser: { asObject: true },\n});\nexport const setLogLevel = (level) => {\n root.level = level;\n};\n// Creates a child logger with a bound `module` field on every log entry.\n// Optionally accepts additional static context (e.g. { listId }).\nexport const createLogger = (module, ctx) => root.child({ module, ...ctx });\n//# sourceMappingURL=index.js.map","import { createLogger } from \"@alistigo/logger\";\n\nconst log = createLogger(\"alistigo:claude-storage:retry\");\n\nconst STORAGE_TIMEOUT_MS = 1000;\nconst STORAGE_MAX_RETRIES = 3;\n\ntype AttemptResult<T> =\n | { tag: \"ok\"; value: T }\n | { tag: \"timeout\" }\n | { tag: \"error\"; err: unknown };\n\nfunction attemptWithTimeout<T>(\n factory: () => Promise<T>,\n timeoutMs: number,\n): Promise<AttemptResult<T>> {\n return Promise.race([\n factory()\n .then((value): AttemptResult<T> => ({ tag: \"ok\", value }))\n .catch((err): AttemptResult<T> => ({ tag: \"error\", err })),\n new Promise<AttemptResult<T>>((resolve) =>\n setTimeout(() => resolve({ tag: \"timeout\" }), timeoutMs),\n ),\n ]);\n}\n\n/**\n * Calls `factory()` and waits up to `timeoutMs` (default 1 s). On timeout retries up to\n * `maxRetries` (default 3) times. Non-timeout errors are re-thrown immediately.\n * After all attempts time out, throws a descriptive error.\n */\nexport async function withStorageRetry<T>(\n factory: () => Promise<T>,\n timeoutMs = STORAGE_TIMEOUT_MS,\n maxRetries = STORAGE_MAX_RETRIES,\n): Promise<T> {\n for (let attempt = 0; attempt <= maxRetries; attempt++) {\n const result = await attemptWithTimeout(factory, timeoutMs);\n if (result.tag === \"ok\") return result.value;\n if (result.tag === \"error\") throw result.err;\n if (attempt < maxRetries) {\n log.debug({ attempt }, \"claude storage timed out, retrying\");\n }\n }\n throw new Error(`Claude storage timed out after ${maxRetries + 1} attempts`);\n}\n","import type { KeyValueStore } from \"@alistigo/artifact-plugin-api\";\nimport { artifactContext, type ClaudeStorage } from \"@alistigo/claude-artifact-api\";\nimport { createLogger } from \"@alistigo/logger\";\nimport { withStorageRetry } from \"./retry.js\";\n\nconst log = createLogger(\"alistigo:claude-storage\");\n\nexport class ClaudeKeyValueStore implements KeyValueStore {\n private get storage(): ClaudeStorage {\n const s = (window as Window).storage;\n if (!s)\n throw new Error(\n \"ClaudeKeyValueStore requires window.storage — check isClaudeArtifactContext() first\",\n );\n return s;\n }\n\n private requirePublished(): void {\n if (!artifactContext().published) {\n throw new Error(\n \"Storage is unavailable in draft mode — publish the artifact and open it via its public URL.\",\n );\n }\n }\n\n async get(key: string): Promise<unknown> {\n this.requirePublished();\n try {\n log.debug({ key }, \"get\");\n const result = await withStorageRetry(() => this.storage.get(key));\n const raw = result.value;\n return typeof raw === \"string\" ? (JSON.parse(raw) as unknown) : raw;\n } catch (err) {\n log.debug({ key, err }, \"get returned nothing (key may not exist)\");\n return undefined;\n }\n }\n\n async set(key: string, value: unknown): Promise<void> {\n this.requirePublished();\n log.debug({ key }, \"set\");\n await withStorageRetry(() => this.storage.set(key, JSON.stringify(value)));\n }\n\n async del(key: string): Promise<void> {\n this.requirePublished();\n log.debug({ key }, \"del\");\n await withStorageRetry(() => this.storage.delete(key));\n }\n\n async list(prefix = \"\"): Promise<string[]> {\n this.requirePublished();\n try {\n log.debug({ prefix }, \"list\");\n const result = await withStorageRetry(() => this.storage.list(prefix));\n return result?.keys ?? [];\n } catch {\n return [];\n }\n }\n}\n\n/** Returns true when running inside a Claude artifact that exposes window.claude */\nexport function isClaudeArtifactContext(): boolean {\n return typeof window !== \"undefined\" && typeof window.claude?.complete === \"function\";\n}\n","import type { AlistigoPlugin } from \"@alistigo/artifact-plugin-api\";\nimport pkg from \"../package.json\" with { type: \"json\" };\nimport { ClaudeKeyValueStore, isClaudeArtifactContext } from \"./claude-key-value-store.js\";\nimport { withStorageRetry } from \"./retry.js\";\n\nconst claudeStoragePlugin: AlistigoPlugin = {\n name: \"@alistigo/claude-storage-plugin\",\n version: pkg.version,\n type: \"storage\",\n storage: {\n isAvailable(): boolean {\n return isClaudeArtifactContext();\n },\n createStore() {\n return new ClaudeKeyValueStore();\n },\n async listKeys(prefix = \"\"): Promise<Array<{ key: string; value: string }>> {\n const storage = window.storage;\n if (!storage) return [];\n try {\n const result = await withStorageRetry(() => storage.list(prefix));\n if (!result) return [];\n const entries = await Promise.all(\n result.keys.map(async (key) => {\n try {\n const item = await withStorageRetry(() => storage.get(key));\n return { key, value: item.value };\n } catch {\n return null;\n }\n }),\n );\n return entries.filter((e): e is { key: string; value: string } => e !== null);\n } catch {\n return [];\n }\n },\n },\n};\n\nexport default claudeStoragePlugin;\n"],"names":["baseURIPath","artifactContext","m","tryStringify","o","quickFormatUnescaped","format","f","args","opts","ss","offset","len","objects","index","argLen","str","a","lastPos","flen","i","type","require$$0","browserModule","pino","_console","pfGlobalThisOrFallback","stdSerializers","mock","passthrough","asErrValue","levelToValue","level","logger","baseLogFunctionSymbol","hierarchySymbol","logFallbackMap","appendChildLogger","parentLogger","childLogger","newEntry","setupBaseLogFunctions","levels","proto","logFunctions","noop","shouldSerialize","serialize","serializers","k","transmit","stdErrSerialize","customLevels","getLevelVal","getLevel","setLevel","setOpts","getTimeFunction","getLevels","child","createLogEventShape","set","bindings","childOptions","childOptionsSerializers","childSerializers","childSerialize","applySerializers","Child","parent","newLogger","values","labels","invertObject","obj","inverted","key","nullTime","epochTime","unixTime","isoTime","getBindingChain","hierarchy","self","rootLogger","transmitLevel","transmitValue","createWrap","prependBindingsInArguments","logFunc","write","ts","argsIsSerialized","asObject","methodValue","levelFormatter","logObjectFormatter","argsCloned","msg","logObject","lvl","formattedLevel","send","methodLevel","val","arg","err","defd","root","createLogger","module","ctx","log","STORAGE_TIMEOUT_MS","STORAGE_MAX_RETRIES","attemptWithTimeout","factory","timeoutMs","value","resolve","withStorageRetry","maxRetries","attempt","result","ClaudeKeyValueStore","raw","prefix","isClaudeArtifactContext","claudeStoragePlugin","pkg","storage","item","e"],"mappings":"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","x_google_ignoreList":[1,2]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@alistigo/claude-storage-plugin",
|
|
3
|
-
"version": "0.4.
|
|
3
|
+
"version": "0.4.3",
|
|
4
4
|
"description": "Window.storage-backed AlistigoPlugin (type: storage) implementation for the Claude artifact runtime.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": {
|
|
@@ -43,8 +43,8 @@
|
|
|
43
43
|
},
|
|
44
44
|
"dependencies": {
|
|
45
45
|
"@alistigo/artifact-plugin-api": "0.3.2",
|
|
46
|
-
"@alistigo/
|
|
47
|
-
"@alistigo/
|
|
46
|
+
"@alistigo/claude-artifact-api": "0.2.5",
|
|
47
|
+
"@alistigo/logger": "0.2.17"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"vite": "^7.0.0"
|