@alistigo/claude-storage-plugin 0.4.0 → 0.4.2

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 CHANGED
@@ -26,64 +26,64 @@ function fe() {
26
26
  }
27
27
  }
28
28
  G = s;
29
- function s(i, u, m) {
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 = u.length + V;
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(u[k]);
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 = u.length;
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, l = 0; l < j; ) {
45
- if (i.charCodeAt(l) === 37 && l + 1 < j) {
46
- switch (c = c > -1 ? c : 0, i.charCodeAt(l + 1)) {
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 || u[h] == null) break;
51
- c < l && (v += i.slice(c, l)), v += Number(u[h]), c = l + 2, l++;
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 || u[h] == null) break;
55
- c < l && (v += i.slice(c, l)), v += Math.floor(Number(u[h])), c = l + 2, l++;
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 || u[h] === void 0) break;
63
- c < l && (v += i.slice(c, l));
64
- var R = typeof u[h];
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 += "'" + u[h] + "'", c = l + 2, l++;
66
+ v += "'" + a[h] + "'", c = u + 2, u++;
67
67
  break;
68
68
  }
69
69
  if (R === "function") {
70
- v += u[h].name || "<anonymous>", c = l + 2, l++;
70
+ v += a[h].name || "<anonymous>", c = u + 2, u++;
71
71
  break;
72
72
  }
73
- v += E(u[h]), c = l + 2, l++;
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 < l && (v += i.slice(c, l)), v += String(u[h]), c = l + 2, l++;
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 < l && (v += i.slice(c, l)), v += "%", c = l + 2, l++, h--;
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
- ++l;
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 u(e, t) {
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 a = {};
129
- t.forEach((o) => {
130
- a[o] = n[o] ? n[o] : s[o] || s[V[o] || "log"] || L;
131
- }), e[m] = a;
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(a) {
135
- return a !== "!stdSerializers.err";
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 a = e.serializers || {}, o = k(e.browser.serialize, a);
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: o,
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 = a, r._serialize = o, r._stdErrSerialize = g, r.child = function(...p) {
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 u(this.level, this);
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 || {}, o && _.serializers && (A.serializers = _.serializers);
191
+ A = A || {}, l && _.serializers && (A.serializers = _.serializers);
192
192
  const $ = A.serializers;
193
- if (o && $) {
194
- var B = Object.assign({}, a, $), X = e.browser.serialize === !0 ? Object.keys(B) : o;
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), a = Object.assign({}, w.levels.labels, h(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: a
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, a) {
250
- if (Object.defineProperty(e, a, {
251
- value: u(e.level, n) > u(a, n) ? L : n[m][a],
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[a] === L) {
255
+ }), e[o] === L) {
256
256
  if (!t.transmit) return;
257
- const g = t.transmit.level || e.level, O = u(g, n);
258
- if (u(a, n) < O) return;
257
+ const g = t.transmit.level || e.level, O = a(g, n);
258
+ if (a(o, n) < O) return;
259
259
  }
260
- e[a] = R(e, t, n, a);
261
- const o = c(e);
262
- o.length !== 0 && (e[a] = l(o, e[a]));
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 l(e, t) {
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, a) {
270
- return /* @__PURE__ */ (function(o) {
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 ? o.call(y, ...re(this, a, f, O, t)) : o.apply(y, f), t.transmit) {
276
- const S = t.transmit.level || e._level, D = u(S, n), x = u(a, n);
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: a,
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: u(e._level, n)
284
+ val: a(e._level, n)
285
285
  }, f, b);
286
286
  }
287
287
  };
288
- })(e[m][a]);
288
+ })(e[m][o]);
289
289
  }
290
- function re(e, t, n, a, o) {
290
+ function re(e, t, n, o, l) {
291
291
  const {
292
292
  level: g,
293
293
  log: O = (S) => S
294
- } = o.formatters || {}, f = n.slice();
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), a && (r.time = a), g) {
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 (o.asObjectBindingsOnly) {
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[o.messageKey] = y), [O(r)];
314
+ return y !== void 0 && (r[l.messageKey] = y), [O(r)];
315
315
  }
316
316
  }
317
- function U(e, t, n, a) {
318
- for (const o in e)
319
- if (a && e[o] instanceof Error)
320
- e[o] = w.stdSerializers.err(e[o]);
321
- else if (typeof e[o] == "object" && !Array.isArray(e[o]) && t)
322
- for (const g in e[o])
323
- t.indexOf(g) > -1 && g in n && (e[o][g] = n[g](e[o][g]));
324
- }
325
- function ne(e, t, n, a = !1) {
326
- const o = t.send, g = t.ts, O = t.methodLevel, f = t.methodValue, y = t.val, r = e._logEvent.bindings;
327
- a || U(
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, o(O, e._logEvent, y), e._logEvent = K(r);
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 u = 0; u <= i; u++) {
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
- u < i && ve.debug({ attempt: u }, "claude storage timed out, retrying");
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 i = await T(() => this.storage.get(s));
437
- return JSON.parse(i.value);
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.0", Ee = {
461
+ const je = "0.4.2", 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: unknown;\n shared: boolean;\n \"@type\": string;\n}\n\nexport interface ClaudeStorageSetResult {\n key: string;\n value: unknown;\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: unknown, 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.0",
3
+ "version": "0.4.2",
4
4
  "description": "Window.storage-backed AlistigoPlugin (type: storage) implementation for the Claude artifact runtime.",
5
5
  "license": "MIT",
6
6
  "author": {
@@ -42,9 +42,9 @@
42
42
  "access": "public"
43
43
  },
44
44
  "dependencies": {
45
- "@alistigo/artifact-plugin-api": "0.3.1",
46
- "@alistigo/claude-artifact-api": "0.2.2",
47
- "@alistigo/logger": "0.2.16"
45
+ "@alistigo/claude-artifact-api": "0.2.4",
46
+ "@alistigo/logger": "0.2.17",
47
+ "@alistigo/artifact-plugin-api": "0.3.2"
48
48
  },
49
49
  "devDependencies": {
50
50
  "vite": "^7.0.0"