yaml-flow 8.11.0 → 8.11.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/browser/adapters/firestore-storage.js +1 -1
- package/browser/adapters/localstorage-storage.js +1 -1
- package/browser/asset-integrity.json +5 -5
- package/browser/server-runtime-controlface.js +5 -5
- package/examples/board/test/server-http-test.js +9 -0
- package/lib/board-live-cards-node.cjs +2 -2
- package/lib/board-live-cards-node.js +1 -1
- package/lib/board-live-cards-public.cjs +1 -1
- package/lib/board-live-cards-public.js +1 -1
- package/lib/board-live-cards-server-runtime.cjs +1 -1
- package/lib/board-live-cards-server-runtime.js +1 -1
- package/lib/board-state-reducer.cjs +1 -1
- package/lib/board-state-reducer.d.cts +1 -0
- package/lib/board-state-reducer.d.ts +1 -0
- package/lib/board-state-reducer.js +1 -1
- package/lib/chunk-42ZOYXEV.cjs +3 -0
- package/lib/chunk-AHW6EMUO.js +3 -0
- package/lib/chunk-EYBDAEVO.cjs +3 -0
- package/lib/chunk-HFI2NAZJ.js +3 -0
- package/lib/chunk-LDVJPFIW.js +3 -0
- package/lib/chunk-ZOZ7ZDGA.cjs +3 -0
- package/lib/cloud-storage.cjs +1 -1
- package/lib/cloud-storage.js +1 -1
- package/lib/firestore-storage/index.cjs +1 -1
- package/lib/firestore-storage/index.js +1 -1
- package/lib/localstorage-storage/index.cjs +1 -1
- package/lib/localstorage-storage/index.js +1 -1
- package/lib/server-runtime/index.cjs +1 -1
- package/lib/server-runtime/index.js +1 -1
- package/lib/server-runtime-controlface/index.cjs +1 -1
- package/lib/server-runtime-controlface/index.js +1 -1
- package/package.json +1 -1
- package/lib/chunk-5U5NMYGT.js +0 -3
- package/lib/chunk-BDT43KYE.cjs +0 -3
- package/lib/chunk-H5FKNSCO.js +0 -3
- package/lib/chunk-VNLMJEIX.cjs +0 -3
- package/lib/chunk-WQANIJAQ.js +0 -3
- package/lib/chunk-X5CZE2L7.cjs +0 -3
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
var FirestoreStorage=(function(exports){'use strict';var k="b64:";function ae(e){let t=new TextEncoder().encode(e),o=globalThis.Buffer,r;if(o)r=o.from(t).toString("base64");else if(typeof btoa=="function"){let n="";for(let s of t)n+=String.fromCharCode(s);r=btoa(n);}else throw new Error("No base64 encoder available in this runtime");return r.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function ie(e){let t=e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-e.length%4)%4),o=globalThis.Buffer;if(o)return o.from(t,"base64").toString("utf8");if(typeof atob=="function"){let r=atob(t),n=new Uint8Array(r.length);for(let s=0;s<r.length;s+=1)n[s]=r.charCodeAt(s);return new TextDecoder().decode(n)}throw new Error("No base64 decoder available in this runtime")}function l(e){return `${k}${ae(JSON.stringify(e))}`}function p(e){if(!e.startsWith(k))throw new Error(`Invalid ref format (expected ${k}<base64url(json)>): ${e}`);let t;try{t=JSON.parse(ie(e.slice(k.length)));}catch{throw new Error(`Invalid ref format (malformed base64url/json): ${e}`)}if(!t||typeof t!="object")throw new Error(`Invalid ref format (expected object payload): ${e}`);let o=t;if(typeof o.kind!="string"||typeof o.value!="string")throw new Error(`Invalid ref format (payload must contain string kind/value): ${e}`);return {kind:o.kind,value:o.value}}function E(e){return {messageId:e.id,enqueuedAt:e.enqueuedAt,attempt:e.attempt,request:e.body}}function le(e){return typeof e=="string"?e.startsWith("b64:")?p(e).value:e:e.value}function K(e){return {async enqueueRequest(t){return (await e.enqueue(t)).id},async leaseRequests(t){return (await e.lease(t)).map(o=>({...E(o),leaseToken:o.leaseToken,leaseExpiresAt:o.leaseExpiresAt}))},ackRequest(t,o){return e.ack(t,o)},nackRequest(t,o,r){return e.nack(t,o,r)},async peekActive(){return (await e.peekActive()).map(E)},async peekDeadLetter(){return (await e.peekDeadLetter()).map(t=>({...E(t),reason:t.reason}))}}}function I(e){let t=e.callbackTransport,o=e.resolveBlob??(async n=>{let s=await e.blobStorage("").read(n.value);if(s==null)throw new Error(`Blob not found for ref ${n.kind}:${n.value}`);return s});async function r(n,s){if(n.howToRun==="queue-storage")return e.queueStoreRef?(await K(e.queueStorageForRef(e.queueStoreRef,"task-executor")).enqueueRequest({boardId:typeof n.extra?.boardId=="string"?n.extra.boardId:e.boardId,ref:n,args:s}),{dispatched:true}):{dispatched:false,error:"queue-storage dispatch requires queueStoreRef"};if(n.howToRun==="http:post"){let a=e.fetch??globalThis.fetch;if(!a)return {dispatched:false,error:"http:post dispatch requires fetch support"};let i=await a(le(n.whatToRun),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,...n.extra?{extra:n.extra}:{}})});if(!i.ok){let c=await i.text().catch(()=>"");return {dispatched:false,error:`HTTP ${i.status}: ${c}`}}return {dispatched:true}}return {dispatched:false,error:`Unsupported hosted async transport "${n.howToRun}"`}}return {kvStorage:e.kvStorage,kvStorageForRef:e.kvStorageForRef,blobStorage:e.blobStorage,blobStorageForRef:e.blobStorageForRef,chatStorageForRef:e.chatStorageForRef,queueStorageForRef:e.queueStorageForRef,scratchStorage:e.scratchStorage,scratchStorageForRef:e.scratchStorageForRef,archiveFactory:e.archiveFactory,archiveFactoryForRef:e.archiveFactoryForRef,journalStorage:e.journalStorage,journalStorageForRef:e.journalStorageForRef,lock:e.lock,get callbackTransport(){return t},set callbackTransport(n){t=n;},dispatchExecution:(n,s)=>e.dispatchExecution?.(n,s)??r(n,s),supportsDirectSourceOutput:e.supportsDirectSourceOutput,resolveBlob:o,hashFn:e.hashFn,genId:e.genId,requestProcessAccumulated:e.requestProcessAccumulated,publishBoardChangeNotifications:e.publishBoardChangeNotifications,warn:e.onWarn}}function P(e){if(e==null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return `[${e.map(P).join(",")}]`;let t=e;return `{${Object.keys(t).sort().map(r=>`${JSON.stringify(r)}:${P(t[r])}`).join(",")}}`}function b(e,t){let o=t>>>0;for(let r=0;r<e.length;r++)o^=e.charCodeAt(r),o=Math.imul(o,16777619)>>>0;return o}function z(e){let t=P(e),o=b(t,2166136261),r=b(t,3735928559),n=b(t,19088743),s=b(t,4277009102);return [o,r,n,s].map(a=>a.toString(16).padStart(8,"0")).join("")}function W(e){return String(e).replace(/[^a-zA-Z0-9_-]/g,"_")}function Y(e){let t=e.payload??{};return {id:e.id,role:typeof t.role=="string"?t.role:"system",text:typeof t.text=="string"?t.text:"",files:Array.isArray(t.files)?t.files:[],turn:typeof t.turn=="string"?t.turn:"",updated_at:typeof t.updated_at=="string"?t.updated_at:""}}function X(e,t){let o=n=>`chats/${W(n)}/processing`,r=n=>`chats/${W(n)}/config`;return {async append(n,s,a,i=[],c=""){return (await e(n).append({role:s,text:a,files:i,turn:c,updated_at:new Date().toISOString()})).id},async readAll(n){return (await e(n).readAll()).map(Y)},async readAfter(n,s){let a=await e(n).readAfter(s);return {records:a.entries.map(Y),cursor:a.newCursor}},async clear(n){await e(n).clear?.();},async setProcessing(n,s){s?await t.write(o(n),true):await t.delete(o(n));},async isProcessing(n){return await t.read(o(n))===true},async getConfig(n){return await t.read(r(n))??{}},async setConfig(n,s){let a=await t.read(r(n))??{};await t.write(r(n),{...a,...s});}}}function qe(e){return String(e).replace(/[^a-zA-Z0-9_-]/g,"_")}function te(e){let t="";for(let o=0;o<e.length;o++)t+=String.fromCharCode(e[o]);return btoa(t)}function Ne(e){let t=atob(e),o=new Uint8Array(t.length);for(let r=0;r<t.length;r++)o[r]=t.charCodeAt(r);return o}function Le(e){let t=new TextEncoder().encode(e);return te(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function De(e){return z(e).slice(0,16)}function re(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID=="function"?globalThis.crypto.randomUUID():`${Date.now().toString(16)}-${Math.random().toString(16).slice(2,10)}`}function u(e){return Le(String(e))}function m(){let e=String(Date.now()).padStart(13,"0"),t=Math.random().toString(36).slice(2,10).padEnd(8,"0");return `${e}-${t}`}function ne(e){try{return p(e)}catch{return null}}function y(e,t){let o=ne(e);return o?.kind==="firestore"&&o.value?o.value:t}function g(e){if(e===void 0)return null;if(Array.isArray(e))return e.map(t=>g(t===void 0?null:t));if(e&&typeof e=="object"){let t=Object.entries(e).filter(([,o])=>o!==void 0).map(([o,r])=>[o,g(r)]);return Object.fromEntries(t)}return e}function oe(e,t){return e.collection("boards").doc(t)}function S(e,t,o){return oe(e,t).collection(o)}function O(e){return {kind:"firestore",value:String(e)}}function f(e){return l(O(e))}function se(e){return {baseRef:O(`boards/${e}`),boardRuntimeStoreRef:f(`boards/${e}/runtime-board`),cardStoreRef:f(`boards/${e}/cards`),outputsStoreRef:f(`boards/${e}/runtime-out`),queueStoreRef:f(`boards/${e}/runtime`),scratchStoreRef:f(`boards/${e}/scratch`),chatStoreRef:f(`boards/${e}/chat`),artifactsStoreRef:f(`boards/${e}/files`),fetchedSourcesStoreRef:f(`boards/${e}/sources`)}}function _(e){return {async read(t){let o=await e.doc(u(t)).get();return o.exists?o.data()?.value??null:null},async write(t,o){await e.doc(u(t)).set(g({k:t,value:o}));},async delete(t){await e.doc(u(t)).delete();},async listKeys(t=""){return (await(t?e.where("k",">=",t).where("k","<",`${t}\uF8FF`).orderBy("k"):e.orderBy("k")).get()).docs.map(n=>n.data()?.k??n.id)}}}function v(e){return {async append(t){let o=m();return await e.doc(o).set(g({id:o,createdAt:new Date().toISOString(),payload:t})),{id:o,payload:t}},async readAll(){return (await e.orderBy("id").get()).docs.map(o=>{let r=o.data()??{};return {id:String(r.id??o.id),payload:r.payload}})},async readAfter(t){let n=(await(t?e.where("id",">",t).orderBy("id"):e.orderBy("id")).get()).docs.map(s=>{let a=s.data()??{};return {id:String(a.id??s.id),payload:a.payload}});return {entries:n,newCursor:n.length>0?n[n.length-1].id:t}},async clear(){let t=await e.get();if(typeof e.firestore.batch=="function"){let o=e.firestore.batch();for(let r of t.docs)o.delete(e.doc(r.id));await o.commit();return}await Promise.all(t.docs.map(o=>e.doc(o.id).delete()));}}}function A(e){return {async read(t){let o=await e.doc(u(t)).get();return o.exists?o.data()?.content??null:null},async write(t,o){await e.doc(u(t)).set({k:t,content:o});},async exists(t){return (await e.doc(u(t)).get()).exists},async remove(t){await e.doc(u(t)).delete();},async readBytes(t){let o=await e.doc(u(t)).get();if(!o.exists)return null;let r=o.data()??{};return typeof r.bytesBase64=="string"?Ne(r.bytesBase64):typeof r.content=="string"?new TextEncoder().encode(r.content):null},async writeBytes(t,o){await e.doc(u(t)).set({k:t,bytesBase64:te(o)});},async listKeys(t=""){return (await(t?e.where("k",">=",t).where("k","<",`${t}\uF8FF`).orderBy("k"):e.orderBy("k")).get()).docs.map(n=>n.data()?.k??n.id)},async stat(t){let o=await e.doc(u(t)).get();if(!o.exists)return null;let r=o.data()??{},n=typeof r.bytesBase64=="string"?Math.floor(r.bytesBase64.length*3/4):typeof r.content=="string"?r.content.length:0;return {key:t,size:n,contentType:String(r.contentType??"application/octet-stream")}},async renameKey(t,o){let r=await e.doc(u(t)).get();if(!r.exists)return false;let n=r.data()??{};return await e.doc(u(o)).set({...n,k:o}),await e.doc(u(t)).delete(),true}}}function Z(e){let t=A(e);return {...t,async getUniqueKey(o="scratch-",r=""){return `${o}${m()}${r}`},async create(o,r="scratch-",n=""){let s=`${r}${m()}${n}`;return await t.write(s,o),s},keyRef(o){return O(`${e.path}/${u(o)}`)},config:{async get(o){let r=await t.read(`__config__/${o}`);if(r==null)return null;try{return JSON.parse(r)}catch{return r}},async set(o,r){await t.write(`__config__/${o}`,JSON.stringify(r));}}}}function ee(e,t){let o=oe(e,t);return {stream(r){return v(o.collection(`archive-stream-${r}`))},blob(r){return A(o.collection(`archive-blob-${r}`))},async listStreams(r=""){return typeof o.listCollections!="function"?[]:(await o.listCollections()).map(s=>s.path.split("/").at(-1)??"").filter(s=>s.startsWith(`archive-stream-${r}`)).map(s=>s.slice(15))},async listBlobs(r=""){return typeof o.listCollections!="function"?[]:(await o.listCollections()).map(s=>s.path.split("/").at(-1)??"").filter(s=>s.startsWith(`archive-blob-${r}`)).map(s=>s.slice(13))},config:{async get(r){let n=await o.collection("archive-config").doc("main").get();return n.exists?n.data()?.[r]??null:null},async set(r,n){await o.collection("archive-config").doc("main").set(g({[r]:n}),{merge:true});}}}}function je(e,t={}){let o=t.holderId??re(),r=t.ttlMs??3e4;return {async tryAcquire(){try{await e.firestore.runTransaction(async n=>{let s=await n.get(e),a=new Date().toISOString();if(s.exists){let i=s.data()??{};if(i.held===!0&&typeof i.expiresAt=="string"&&i.expiresAt>a)throw Object.assign(new Error("locked"),{code:"locked"})}n.set(e,{held:!0,holderId:o,acquiredAt:a,expiresAt:new Date(Date.now()+r).toISOString()});});}catch(n){if(n?.code==="locked")return null;throw n}return async()=>{try{await e.firestore.runTransaction(async n=>{let s=await n.get(e);if(!s.exists)return;(s.data()??{}).holderId===o&&n.update(e,{held:!1,holderId:null});});}catch{}}}}}function $e(e,t={}){let o=t.defaultVisibilityMs??3e4;return {async enqueue(r){let n=m(),s=new Date().toISOString();return await e.doc(n).set(g({id:n,body:r,enqueuedAt:s,attempt:0,staged:false,visibleAfter:s,leaseToken:null,leaseExpiresAt:null,dead:false,deadReason:null})),{id:n,body:r,enqueuedAt:s,attempt:0}},async enqueueMany(r){let n=[];for(let s of r)n.push(await this.enqueue(s));return n},async enqueueIfAbsent(r,n){if((await e.where("dedupKey","==",n).where("dead","==",false).limit(1).get()).docs.length>0)return null;let a=m(),i=new Date().toISOString();return await e.doc(a).set(g({id:a,body:r,dedupKey:n,enqueuedAt:i,attempt:0,staged:false,visibleAfter:i,leaseToken:null,leaseExpiresAt:null,dead:false,deadReason:null})),{id:a,body:r,enqueuedAt:i,attempt:0}},async stage(r,n={}){if(n.dedupKey&&(await e.where("dedupKey","==",n.dedupKey).where("dead","==",false).limit(1).get()).docs.length>0)return null;let s=m(),a=new Date().toISOString();return await e.doc(s).set(g({id:s,body:r,dedupKey:n.dedupKey,enqueuedAt:a,attempt:0,staged:true,visibleAfter:null,leaseToken:null,leaseExpiresAt:null,dead:false,deadReason:null})),{id:s,body:r,enqueuedAt:a,attempt:0}},async commitStaged(r){try{return await e.firestore.runTransaction(async n=>{let s=e.doc(r),a=await n.get(s);if(!a.exists)throw new Error("missing");let i=a.data()??{};if(i.dead===!0||i.staged!==!0)throw new Error("not-staged");n.update(s,{staged:!1,enqueuedAt:new Date().toISOString(),attempt:0,visibleAfter:new Date().toISOString()});}),!0}catch{return false}},async discardStaged(r,n){try{return await e.firestore.runTransaction(async s=>{let a=e.doc(r),i=await s.get(a);if(!i.exists)throw new Error("missing");let c=i.data()??{};if(c.dead===!0||c.staged!==!0)throw new Error("not-staged");s.update(a,{staged:!1,dead:!0,deadReason:n??"discarded"});}),!0}catch{return false}},async peekStaged(r=""){return (await e.where("dead","==",false).where("staged","==",true).orderBy("enqueuedAt").get()).docs.map(s=>s.data()??{}).filter(s=>!r||String(s.id??"").startsWith(r)).map(s=>({id:String(s.id??""),body:s.body,enqueuedAt:String(s.enqueuedAt??""),attempt:Number(s.attempt??0)}))},async lease(r={}){let n=Math.max(1,Number(r.max??1)),s=Math.max(1,Number(r.visibilityMs??o)),a=new Date().toISOString(),i=Math.max(n*32,128),c=await e.where("dead","==",false).where("staged","==",false).where("visibleAfter","<=",a).orderBy("visibleAfter").limit(i).get(),h=[];for(let F of c.docs){if(h.length>=n)break;let B=e.doc(F.id);try{let x=null;await e.firestore.runTransaction(async q=>{let N=await q.get(B);if(!N.exists)throw new Error("gone");let d=N.data()??{},T=new Date().toISOString();if(d.dead===!0)throw new Error("dead");if(d.staged===!0)throw new Error("staged");if(typeof d.visibleAfter=="string"&&d.visibleAfter>T)throw new Error("hidden");if(d.leaseToken&&typeof d.leaseExpiresAt=="string"&&d.leaseExpiresAt>T)throw new Error("leased");let L=re(),D=new Date(Date.now()+s).toISOString(),j=Number(d.attempt??0)+1;q.update(B,{leaseToken:L,leaseExpiresAt:D,attempt:j}),x={id:String(d.id??F.id),body:d.body,enqueuedAt:String(d.enqueuedAt??T),attempt:j,leaseToken:L,leaseExpiresAt:D};}),x&&h.push(x);}catch{}}return h},async ack(r,n){try{return await e.firestore.runTransaction(async s=>{let a=e.doc(r),i=await s.get(a);if(!i.exists)return;if((i.data()??{}).leaseToken!==n)throw new Error("token mismatch");s.delete(a);}),!0}catch{return false}},async nack(r,n,s={}){try{return await e.firestore.runTransaction(async a=>{let i=e.doc(r),c=await a.get(i);if(!c.exists)return;if((c.data()??{}).leaseToken!==n)throw new Error("token mismatch");s.dead===!0?a.update(i,{dead:!0,deadReason:s.reason??"nacked",leaseToken:null,leaseExpiresAt:null}):a.update(i,{leaseToken:null,leaseExpiresAt:null,visibleAfter:new Date().toISOString()});}),!0}catch{return false}},async peekActive(r=""){return (await e.where("dead","==",false).where("staged","==",false).orderBy("enqueuedAt").get()).docs.map(s=>s.data()??{}).filter(s=>!r||String(s.id??"").startsWith(r)).map(s=>({id:String(s.id??""),body:s.body,enqueuedAt:String(s.enqueuedAt??""),attempt:Number(s.attempt??0)}))},async peekDeadLetter(r=""){return (await e.where("dead","==",true).orderBy("enqueuedAt").get()).docs.map(s=>s.data()??{}).filter(s=>!r||String(s.id??"").startsWith(r)).map(s=>({id:String(s.id??""),body:s.body,enqueuedAt:String(s.enqueuedAt??""),attempt:Number(s.attempt??0),reason:s.deadReason}))}}}function Ke(e,t,o={}){return I({boardId:t,kvStorage(r){return _(S(e,t,`kv-${r||"root"}`))},kvStorageForRef(r){return _(e.collection(y(r,`boards/${t}/kv-root`)))},blobStorage(r){return A(S(e,t,`blobs-${r||"root"}`))},blobStorageForRef(r){return A(e.collection(y(r,`boards/${t}/blobs-root`)))},chatStorageForRef(r){let n=y(r,`boards/${t}/chat`);return X(s=>v(e.collection(`${n}-journal-${qe(s)}`)),_(e.collection(`${n}-kv`)))},queueStoreRef:se(t).queueStoreRef,queueStorageForRef(r,n){let s=y(r,`boards/${t}/runtime`);return $e(e.collection(`${s}-${n}`))},scratchStorage(){return Z(S(e,t,"scratch"))},scratchStorageForRef(r){return Z(e.collection(y(r,`boards/${t}/scratch`)))},archiveFactory(){return ee(e,t)},archiveFactoryForRef(r){let n=ne(r),s=n?.kind==="firestore-board"?n.value:t;return ee(e,s)},journalStorage(){return v(S(e,t,"journal"))},journalStorageForRef(r){let n=y(r,`boards/${t}/runtime-board`);return v(e.collection(`${n}-journal`))},lock:je(S(e,t,"locks").doc("board-lock"),{holderId:o.holderId}),hashFn(r){return De(r)},genId(){return m()},supportsDirectSourceOutput(r){return r.howToRun==="queue-storage"||r.howToRun==="http:post"},requestProcessAccumulated:o.requestProcessAccumulated,publishBoardChangeNotifications:o.publishBoardChangeNotifications,onWarn:r=>console.warn(`[firestore-board-adapter:${t}] ${r}`)})}function Mn(e,t,o={}){let r={...se(t),...o.refs??{}},n=Ke(e,t,o);return {refs:r,boardAdapter:n}}
|
|
1
|
+
var FirestoreStorage=(function(exports){'use strict';var k="b64:";function ae(e){let t=new TextEncoder().encode(e),o=globalThis.Buffer,r;if(o)r=o.from(t).toString("base64");else if(typeof btoa=="function"){let n="";for(let s of t)n+=String.fromCharCode(s);r=btoa(n);}else throw new Error("No base64 encoder available in this runtime");return r.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function ie(e){let t=e.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-e.length%4)%4),o=globalThis.Buffer;if(o)return o.from(t,"base64").toString("utf8");if(typeof atob=="function"){let r=atob(t),n=new Uint8Array(r.length);for(let s=0;s<r.length;s+=1)n[s]=r.charCodeAt(s);return new TextDecoder().decode(n)}throw new Error("No base64 decoder available in this runtime")}function l(e){return `${k}${ae(JSON.stringify(e))}`}function p(e){if(!e.startsWith(k))throw new Error(`Invalid ref format (expected ${k}<base64url(json)>): ${e}`);let t;try{t=JSON.parse(ie(e.slice(k.length)));}catch{throw new Error(`Invalid ref format (malformed base64url/json): ${e}`)}if(!t||typeof t!="object")throw new Error(`Invalid ref format (expected object payload): ${e}`);let o=t;if(typeof o.kind!="string"||typeof o.value!="string")throw new Error(`Invalid ref format (payload must contain string kind/value): ${e}`);return {kind:o.kind,value:o.value}}function E(e){return {messageId:e.id,enqueuedAt:e.enqueuedAt,attempt:e.attempt,request:e.body}}function le(e){return typeof e=="string"?e.startsWith("b64:")?p(e).value:e:e.value}function K(e){return {async enqueueRequest(t){return (await e.enqueue(t)).id},async leaseRequests(t){return (await e.lease(t)).map(o=>({...E(o),leaseToken:o.leaseToken,leaseExpiresAt:o.leaseExpiresAt}))},ackRequest(t,o){return e.ack(t,o)},nackRequest(t,o,r){return e.nack(t,o,r)},async peekActive(){return (await e.peekActive()).map(E)},async peekDeadLetter(){return (await e.peekDeadLetter()).map(t=>({...E(t),reason:t.reason}))}}}function I(e){let t=e.callbackTransport,o=e.resolveBlob??(async n=>{let s=await e.blobStorage("").read(n.value);if(s==null)throw new Error(`Blob not found for ref ${n.kind}:${n.value}`);return s});async function r(n,s){if(n.howToRun==="queue-storage")return e.queueStoreRef?(await K(e.queueStorageForRef(e.queueStoreRef,"task-executor")).enqueueRequest({boardId:typeof n.extra?.boardId=="string"?n.extra.boardId:e.boardId,ref:n,args:s}),{dispatched:true}):{dispatched:false,error:"queue-storage dispatch requires queueStoreRef"};if(n.howToRun==="http:post"){let a=e.fetch??globalThis.fetch;if(!a)return {dispatched:false,error:"http:post dispatch requires fetch support"};let i=await a(le(n.whatToRun),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,...n.extra?{extra:n.extra}:{}})});if(!i.ok){let c=await i.text().catch(()=>"");return {dispatched:false,error:`HTTP ${i.status}: ${c}`}}return {dispatched:true}}return {dispatched:false,error:`Unsupported hosted async transport "${n.howToRun}"`}}return {kvStorage:e.kvStorage,kvStorageForRef:e.kvStorageForRef,blobStorage:e.blobStorage,blobStorageForRef:e.blobStorageForRef,chatStorageForRef:e.chatStorageForRef,queueStorageForRef:e.queueStorageForRef,scratchStorage:e.scratchStorage,scratchStorageForRef:e.scratchStorageForRef,archiveFactory:e.archiveFactory,archiveFactoryForRef:e.archiveFactoryForRef,journalStorage:e.journalStorage,journalStorageForRef:e.journalStorageForRef,lock:e.lock,get callbackTransport(){return t},set callbackTransport(n){t=n;},dispatchExecution:(n,s)=>e.dispatchExecution?.(n,s)??r(n,s),supportsDirectSourceOutput:e.supportsDirectSourceOutput,resolveBlob:o,hashFn:e.hashFn,genId:e.genId,requestProcessAccumulated:e.requestProcessAccumulated,publishBoardChangeNotifications:e.publishBoardChangeNotifications,warn:e.onWarn}}function P(e){if(e==null||typeof e!="object")return JSON.stringify(e);if(Array.isArray(e))return `[${e.map(P).join(",")}]`;let t=e;return `{${Object.keys(t).sort().map(r=>`${JSON.stringify(r)}:${P(t[r])}`).join(",")}}`}function b(e,t){let o=t>>>0;for(let r=0;r<e.length;r++)o^=e.charCodeAt(r),o=Math.imul(o,16777619)>>>0;return o}function z(e){let t=P(e),o=b(t,2166136261),r=b(t,3735928559),n=b(t,19088743),s=b(t,4277009102);return [o,r,n,s].map(a=>a.toString(16).padStart(8,"0")).join("")}function W(e){return String(e).replace(/[^a-zA-Z0-9_-]/g,"_")}function Y(e){let t=e.payload??{};return {id:e.id,role:typeof t.role=="string"?t.role:"system",text:typeof t.text=="string"?t.text:"",files:Array.isArray(t.files)?t.files:[],turn:typeof t.turn=="string"?t.turn:"",updated_at:typeof t.updated_at=="string"?t.updated_at:""}}function X(e,t){let o=n=>`chats/${W(n)}/processing`,r=n=>`chats/${W(n)}/config`;return {async append(n,s,a,i=[],c=""){return (await e(n).append({role:s,text:a,files:i,turn:c,updated_at:new Date().toISOString()})).id},async readAll(n){return (await e(n).readAll()).map(Y)},async readAfter(n,s){let a=await e(n).readAfter(s);return {records:a.entries.map(Y),cursor:a.newCursor}},async clear(n){await e(n).clear?.();},async setProcessing(n,s){s?await t.write(o(n),true):await t.delete(o(n));},async isProcessing(n){return await t.read(o(n))===true},async getConfig(n){return await t.read(r(n))??{}},async setConfig(n,s){let a=await t.read(r(n))??{};await t.write(r(n),{...a,...s});}}}function qe(e){return String(e).replace(/[^a-zA-Z0-9_-]/g,"_")}function te(e){let t="";for(let o=0;o<e.length;o++)t+=String.fromCharCode(e[o]);return btoa(t)}function Ne(e){let t=atob(e),o=new Uint8Array(t.length);for(let r=0;r<t.length;r++)o[r]=t.charCodeAt(r);return o}function Le(e){let t=new TextEncoder().encode(e);return te(t).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function De(e){return z(e).slice(0,16)}function re(){return globalThis.crypto&&typeof globalThis.crypto.randomUUID=="function"?globalThis.crypto.randomUUID():`${Date.now().toString(16)}-${Math.random().toString(16).slice(2,10)}`}function u(e){return Le(String(e))}function m(){let e=String(Date.now()).padStart(13,"0"),t=Math.random().toString(36).slice(2,10).padEnd(8,"0");return `${e}-${t}`}function ne(e){try{return p(e)}catch{return null}}function y(e,t){let o=ne(e);return o?.kind==="firestore"&&o.value?o.value:t}function g(e){if(e===void 0)return null;if(Array.isArray(e))return e.map(t=>g(t===void 0?null:t));if(e&&typeof e=="object"){let t=Object.entries(e).filter(([,o])=>o!==void 0).map(([o,r])=>[o,g(r)]);return Object.fromEntries(t)}return e}function oe(e,t){return e.collection("boards").doc(t)}function h(e,t,o){return oe(e,t).collection(o)}function O(e){return {kind:"firestore",value:String(e)}}function f(e){return l(O(e))}function se(e){return {baseRef:O(`boards/${e}`),boardRuntimeStoreRef:f(`boards/${e}/runtime-board`),cardStoreRef:f(`boards/${e}/cards`),outputsStoreRef:f(`boards/${e}/runtime-out`),queueStoreRef:f(`boards/${e}/runtime`),scratchStoreRef:f(`boards/${e}/scratch`),chatStoreRef:f(`boards/${e}/chat`),artifactsStoreRef:f(`boards/${e}/files`),fetchedSourcesStoreRef:f(`boards/${e}/sources`)}}function _(e){return {async read(t){let o=await e.doc(u(t)).get();return o.exists?o.data()?.value??null:null},async write(t,o){await e.doc(u(t)).set(g({k:t,value:o}));},async delete(t){await e.doc(u(t)).delete();},async listKeys(t=""){return (await(t?e.where("k",">=",t).where("k","<",`${t}\uF8FF`).orderBy("k"):e.orderBy("k")).get()).docs.map(n=>n.data()?.k??n.id)}}}function v(e){return {async append(t){let o=m();return await e.doc(o).set(g({id:o,createdAt:new Date().toISOString(),payload:t})),{id:o,payload:t}},async readAll(){return (await e.orderBy("id").get()).docs.map(o=>{let r=o.data()??{};return {id:String(r.id??o.id),payload:r.payload}})},async readAfter(t){let n=(await(t?e.where("id",">",t).orderBy("id"):e.orderBy("id")).get()).docs.map(s=>{let a=s.data()??{};return {id:String(a.id??s.id),payload:a.payload}});return {entries:n,newCursor:n.length>0?n[n.length-1].id:t}},async clear(){let t=await e.get();if(typeof e.firestore.batch=="function"){let o=e.firestore.batch();for(let r of t.docs)o.delete(e.doc(r.id));await o.commit();return}await Promise.all(t.docs.map(o=>e.doc(o.id).delete()));}}}function A(e){return {async read(t){let o=await e.doc(u(t)).get();return o.exists?o.data()?.content??null:null},async write(t,o){await e.doc(u(t)).set({k:t,content:o});},async exists(t){return (await e.doc(u(t)).get()).exists},async remove(t){await e.doc(u(t)).delete();},async readBytes(t){let o=await e.doc(u(t)).get();if(!o.exists)return null;let r=o.data()??{};return typeof r.bytesBase64=="string"?Ne(r.bytesBase64):typeof r.content=="string"?new TextEncoder().encode(r.content):null},async writeBytes(t,o){await e.doc(u(t)).set({k:t,bytesBase64:te(o)});},async listKeys(t=""){return (await(t?e.where("k",">=",t).where("k","<",`${t}\uF8FF`).orderBy("k"):e.orderBy("k")).get()).docs.map(n=>n.data()?.k??n.id)},async stat(t){let o=await e.doc(u(t)).get();if(!o.exists)return null;let r=o.data()??{},n=typeof r.bytesBase64=="string"?Math.floor(r.bytesBase64.length*3/4):typeof r.content=="string"?r.content.length:0;return {key:t,size:n,contentType:String(r.contentType??"application/octet-stream")}},async renameKey(t,o){let r=await e.doc(u(t)).get();if(!r.exists)return false;let n=r.data()??{};return await e.doc(u(o)).set({...n,k:o}),await e.doc(u(t)).delete(),true}}}function Z(e){let t=A(e);return {...t,async getUniqueKey(o="scratch-",r=""){return `${o}${m()}${r}`},async create(o,r="scratch-",n=""){let s=`${r}${m()}${n}`;return await t.write(s,o),s},keyRef(o){return O(`${e.path}/${u(o)}`)},config:{async get(o){let r=await t.read(`__config__/${o}`);if(r==null)return null;try{return JSON.parse(r)}catch{return r}},async set(o,r){await t.write(`__config__/${o}`,JSON.stringify(r));}}}}function ee(e,t){let o=oe(e,t);return {stream(r){return v(o.collection(`archive-stream-${r}`))},blob(r){return A(o.collection(`archive-blob-${r}`))},async listStreams(r=""){return typeof o.listCollections!="function"?[]:(await o.listCollections()).map(s=>s.path.split("/").at(-1)??"").filter(s=>s.startsWith(`archive-stream-${r}`)).map(s=>s.slice(15))},async listBlobs(r=""){return typeof o.listCollections!="function"?[]:(await o.listCollections()).map(s=>s.path.split("/").at(-1)??"").filter(s=>s.startsWith(`archive-blob-${r}`)).map(s=>s.slice(13))},config:{async get(r){let n=await o.collection("archive-config").doc("main").get();return n.exists?n.data()?.[r]??null:null},async set(r,n){await o.collection("archive-config").doc("main").set(g({[r]:n}),{merge:true});}}}}function je(e,t={}){let o=t.holderId??re(),r=t.ttlMs??3e4;return {async tryAcquire(){try{await e.firestore.runTransaction(async n=>{let s=await n.get(e),a=new Date().toISOString();if(s.exists){let i=s.data()??{};if(i.held===!0&&typeof i.expiresAt=="string"&&i.expiresAt>a)throw Object.assign(new Error("locked"),{code:"locked"})}n.set(e,{held:!0,holderId:o,acquiredAt:a,expiresAt:new Date(Date.now()+r).toISOString()});});}catch(n){if(n?.code==="locked")return null;throw n}return async()=>{try{await e.firestore.runTransaction(async n=>{let s=await n.get(e);if(!s.exists)return;(s.data()??{}).holderId===o&&n.update(e,{held:!1,holderId:null});});}catch{}}}}}function $e(e,t={}){let o=t.defaultVisibilityMs??3e4;return {async enqueue(r){let n=m(),s=new Date().toISOString();return await e.doc(n).set(g({id:n,body:r,enqueuedAt:s,attempt:0,staged:false,visibleAfter:s,leaseToken:null,leaseExpiresAt:null,dead:false,deadReason:null})),{id:n,body:r,enqueuedAt:s,attempt:0}},async enqueueMany(r){let n=[];for(let s of r)n.push(await this.enqueue(s));return n},async enqueueIfAbsent(r,n){if((await e.where("dedupKey","==",n).where("dead","==",false).limit(1).get()).docs.length>0)return null;let a=m(),i=new Date().toISOString();return await e.doc(a).set(g({id:a,body:r,dedupKey:n,enqueuedAt:i,attempt:0,staged:false,visibleAfter:i,leaseToken:null,leaseExpiresAt:null,dead:false,deadReason:null})),{id:a,body:r,enqueuedAt:i,attempt:0}},async stage(r,n={}){if(n.dedupKey&&(await e.where("dedupKey","==",n.dedupKey).where("dead","==",false).limit(1).get()).docs.length>0)return null;let s=m(),a=new Date().toISOString();return await e.doc(s).set(g({id:s,body:r,dedupKey:n.dedupKey,enqueuedAt:a,attempt:0,staged:true,visibleAfter:null,leaseToken:null,leaseExpiresAt:null,dead:false,deadReason:null})),{id:s,body:r,enqueuedAt:a,attempt:0}},async commitStaged(r){try{return await e.firestore.runTransaction(async n=>{let s=e.doc(r),a=await n.get(s);if(!a.exists)throw new Error("missing");let i=a.data()??{};if(i.dead===!0||i.staged!==!0)throw new Error("not-staged");n.update(s,{staged:!1,enqueuedAt:new Date().toISOString(),attempt:0,visibleAfter:new Date().toISOString()});}),!0}catch{return false}},async discardStaged(r,n){try{return await e.firestore.runTransaction(async s=>{let a=e.doc(r),i=await s.get(a);if(!i.exists)throw new Error("missing");let c=i.data()??{};if(c.dead===!0||c.staged!==!0)throw new Error("not-staged");s.update(a,{staged:!1,dead:!0,deadReason:n??"discarded"});}),!0}catch{return false}},async peekStaged(r=""){return (await e.where("dead","==",false).where("staged","==",true).orderBy("enqueuedAt").get()).docs.map(s=>s.data()??{}).filter(s=>!r||String(s.id??"").startsWith(r)).map(s=>({id:String(s.id??""),body:s.body,enqueuedAt:String(s.enqueuedAt??""),attempt:Number(s.attempt??0)}))},async lease(r={}){let n=Math.max(1,Number(r.max??1)),s=Math.max(1,Number(r.visibilityMs??o)),a=new Date().toISOString(),i=Math.max(n*32,128),c=await e.where("dead","==",false).where("staged","==",false).where("visibleAfter","<=",a).orderBy("visibleAfter").limit(i).get(),S=[];for(let F of c.docs){if(S.length>=n)break;let B=e.doc(F.id);try{let x=null;await e.firestore.runTransaction(async q=>{let N=await q.get(B);if(!N.exists)throw new Error("gone");let d=N.data()??{},T=new Date().toISOString();if(d.dead===!0)throw new Error("dead");if(d.staged===!0)throw new Error("staged");if(typeof d.visibleAfter=="string"&&d.visibleAfter>T)throw new Error("hidden");if(d.leaseToken&&typeof d.leaseExpiresAt=="string"&&d.leaseExpiresAt>T)throw new Error("leased");let L=re(),D=new Date(Date.now()+s).toISOString(),j=Number(d.attempt??0)+1;q.update(B,{leaseToken:L,leaseExpiresAt:D,attempt:j}),x={id:String(d.id??F.id),body:d.body,enqueuedAt:String(d.enqueuedAt??T),attempt:j,leaseToken:L,leaseExpiresAt:D};}),x&&S.push(x);}catch{}}return S},async ack(r,n){try{return await e.firestore.runTransaction(async s=>{let a=e.doc(r),i=await s.get(a);if(!i.exists)return;if((i.data()??{}).leaseToken!==n)throw new Error("token mismatch");s.delete(a);}),!0}catch{return false}},async nack(r,n,s={}){try{return await e.firestore.runTransaction(async a=>{let i=e.doc(r),c=await a.get(i);if(!c.exists)return;if((c.data()??{}).leaseToken!==n)throw new Error("token mismatch");s.dead===!0?a.update(i,{dead:!0,deadReason:s.reason??"nacked",leaseToken:null,leaseExpiresAt:null}):a.update(i,{leaseToken:null,leaseExpiresAt:null,visibleAfter:new Date().toISOString()});}),!0}catch{return false}},async peekActive(r=""){return (await e.where("dead","==",false).where("staged","==",false).orderBy("enqueuedAt").get()).docs.map(s=>s.data()??{}).filter(s=>!r||String(s.id??"").startsWith(r)).map(s=>({id:String(s.id??""),body:s.body,enqueuedAt:String(s.enqueuedAt??""),attempt:Number(s.attempt??0)}))},async peekDeadLetter(r=""){return (await e.where("dead","==",true).orderBy("enqueuedAt").get()).docs.map(s=>s.data()??{}).filter(s=>!r||String(s.id??"").startsWith(r)).map(s=>({id:String(s.id??""),body:s.body,enqueuedAt:String(s.enqueuedAt??""),attempt:Number(s.attempt??0),reason:s.deadReason}))}}}function Ke(e,t,o={}){return I({boardId:t,kvStorage(r){return _(h(e,t,`kv-${r||"root"}`))},kvStorageForRef(r){return _(e.collection(y(r,`boards/${t}/kv-root`)))},blobStorage(r){return A(h(e,t,`blobs-${r||"root"}`))},blobStorageForRef(r){return A(e.collection(y(r,`boards/${t}/blobs-root`)))},chatStorageForRef(r){let n=y(r,`boards/${t}/chat`);return X(s=>v(e.collection(`${n}-journal-${qe(s)}`)),_(e.collection(`${n}-kv`)))},queueStoreRef:se(t).queueStoreRef,queueStorageForRef(r,n){let s=y(r,`boards/${t}/runtime`);return $e(e.collection(`${s}-${n}`))},scratchStorage(){return Z(h(e,t,"scratch"))},scratchStorageForRef(r){return Z(e.collection(y(r,`boards/${t}/scratch`)))},archiveFactory(){return ee(e,t)},archiveFactoryForRef(r){let n=ne(r),s=n?.kind==="firestore-board"?n.value:t;return ee(e,s)},journalStorage(){return v(h(e,t,"journal"))},journalStorageForRef(r){let n=y(r,`boards/${t}/runtime-board`);return v(e.collection(`${n}-journal`))},lock:je(h(e,t,"locks").doc("board-lock"),{holderId:o.holderId}),hashFn(r){return De(r)},genId(){return m()},supportsDirectSourceOutput(r){return r.howToRun==="queue-storage"||r.howToRun==="http:post"},requestProcessAccumulated:o.requestProcessAccumulated,publishBoardChangeNotifications:o.publishBoardChangeNotifications,onWarn:r=>console.warn(`[firestore-board-adapter:${t}] ${r}`)})}function Mn(e,t,o={}){let r={...se(t),...o.refs??{}},n=Ke(e,t,o);return {refs:r,boardAdapter:n}}
|
|
2
2
|
exports.createFirestoreArchiveFactory=ee;exports.createFirestoreBlobStorage=A;exports.createFirestoreBoardAdapter=Ke;exports.createFirestoreBoardRefs=se;exports.createFirestoreBoardRuntimeBundle=Mn;exports.createFirestoreJournalStorage=v;exports.createFirestoreKvStorage=_;exports.createFirestoreLock=je;exports.createFirestoreQueueStorage=$e;exports.createFirestoreScratchStorage=Z;exports.makeFirestoreRef=O;exports.serializeFirestoreRef=f;return exports;})({});//# sourceMappingURL=firestore-storage.js.map
|
|
3
3
|
//# sourceMappingURL=firestore-storage.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
var LocalStorageStorage=(function(exports){'use strict';var A="b64:";function le(r){let t=new TextEncoder().encode(r),n=globalThis.Buffer,o;if(n)o=n.from(t).toString("base64");else if(typeof btoa=="function"){let e="";for(let s of t)e+=String.fromCharCode(s);o=btoa(e);}else throw new Error("No base64 encoder available in this runtime");return o.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/g,"")}function fe(r){let t=r.replace(/-/g,"+").replace(/_/g,"/")+"=".repeat((4-r.length%4)%4),n=globalThis.Buffer;if(n)return n.from(t,"base64").toString("utf8");if(typeof atob=="function"){let o=atob(t),e=new Uint8Array(o.length);for(let s=0;s<o.length;s+=1)e[s]=o.charCodeAt(s);return new TextDecoder().decode(e)}throw new Error("No base64 decoder available in this runtime")}function h(r){return `${A}${le(JSON.stringify(r))}`}function v(r){if(!r.startsWith(A))throw new Error(`Invalid ref format (expected ${A}<base64url(json)>): ${r}`);let t;try{t=JSON.parse(fe(r.slice(A.length)));}catch{throw new Error(`Invalid ref format (malformed base64url/json): ${r}`)}if(!t||typeof t!="object")throw new Error(`Invalid ref format (expected object payload): ${r}`);let n=t;if(typeof n.kind!="string"||typeof n.value!="string")throw new Error(`Invalid ref format (payload must contain string kind/value): ${r}`);return {kind:n.kind,value:n.value}}function B(r){return {messageId:r.id,enqueuedAt:r.enqueuedAt,attempt:r.attempt,request:r.body}}function ye(r){return typeof r=="string"?r.startsWith("b64:")?v(r).value:r:r.value}function K(r){return {async enqueueRequest(t){return (await r.enqueue(t)).id},async leaseRequests(t){return (await r.lease(t)).map(n=>({...B(n),leaseToken:n.leaseToken,leaseExpiresAt:n.leaseExpiresAt}))},ackRequest(t,n){return r.ack(t,n)},nackRequest(t,n,o){return r.nack(t,n,o)},async peekActive(){return (await r.peekActive()).map(B)},async peekDeadLetter(){return (await r.peekDeadLetter()).map(t=>({...B(t),reason:t.reason}))}}}function q(r){let t=r.callbackTransport,n=r.resolveBlob??(async e=>{let s=await r.blobStorage("").read(e.value);if(s==null)throw new Error(`Blob not found for ref ${e.kind}:${e.value}`);return s});async function o(e,s){if(e.howToRun==="queue-storage")return r.queueStoreRef?(await K(r.queueStorageForRef(r.queueStoreRef,"task-executor")).enqueueRequest({boardId:typeof e.extra?.boardId=="string"?e.extra.boardId:r.boardId,ref:e,args:s}),{dispatched:true}):{dispatched:false,error:"queue-storage dispatch requires queueStoreRef"};if(e.howToRun==="http:post"){let u=r.fetch??globalThis.fetch;if(!u)return {dispatched:false,error:"http:post dispatch requires fetch support"};let a=await u(ye(e.whatToRun),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({...s,...e.extra?{extra:e.extra}:{}})});if(!a.ok){let c=await a.text().catch(()=>"");return {dispatched:false,error:`HTTP ${a.status}: ${c}`}}return {dispatched:true}}return {dispatched:false,error:`Unsupported hosted async transport "${e.howToRun}"`}}return {kvStorage:r.kvStorage,kvStorageForRef:r.kvStorageForRef,blobStorage:r.blobStorage,blobStorageForRef:r.blobStorageForRef,chatStorageForRef:r.chatStorageForRef,queueStorageForRef:r.queueStorageForRef,scratchStorage:r.scratchStorage,scratchStorageForRef:r.scratchStorageForRef,archiveFactory:r.archiveFactory,archiveFactoryForRef:r.archiveFactoryForRef,journalStorage:r.journalStorage,journalStorageForRef:r.journalStorageForRef,lock:r.lock,get callbackTransport(){return t},set callbackTransport(e){t=e;},dispatchExecution:(e,s)=>r.dispatchExecution?.(e,s)??o(e,s),supportsDirectSourceOutput:r.supportsDirectSourceOutput,resolveBlob:n,hashFn:r.hashFn,genId:r.genId,requestProcessAccumulated:r.requestProcessAccumulated,publishBoardChangeNotifications:r.publishBoardChangeNotifications,warn:r.onWarn}}function N(r){if(r==null||typeof r!="object")return JSON.stringify(r);if(Array.isArray(r))return `[${r.map(N).join(",")}]`;let t=r;return `{${Object.keys(t).sort().map(o=>`${JSON.stringify(o)}:${N(t[o])}`).join(",")}}`}function I(r,t){let n=t>>>0;for(let o=0;o<r.length;o++)n^=r.charCodeAt(o),n=Math.imul(n,16777619)>>>0;return n}function Y(r){let t=N(r),n=I(t,2166136261),o=I(t,3735928559),e=I(t,19088743),s=I(t,4277009102);return [n,o,e,s].map(u=>u.toString(16).padStart(8,"0")).join("")}function _(r){function t(s){return `${r}:blob:${s}`}let n=new TextEncoder;function o(s){if(typeof btoa=="function"){let u="";for(let a=0;a<s.length;a++)u+=String.fromCharCode(s[a]);return btoa(u)}return ""}function e(s){if(typeof atob=="function"){let u=atob(s),a=new Uint8Array(u.length);for(let c=0;c<u.length;c++)a[c]=u.charCodeAt(c);return a}return new Uint8Array}return {read(s){return globalThis.localStorage.getItem(t(s))},write(s,u){globalThis.localStorage.setItem(t(s),u);},exists(s){return globalThis.localStorage.getItem(t(s))!==null},remove(s){globalThis.localStorage.removeItem(t(s));},readBytes(s){let u=globalThis.localStorage.getItem(t(s));if(u===null)return null;try{let a=JSON.parse(u);if(a&&a.__kind==="bytes-b64"&&typeof a.data=="string")return e(a.data)}catch{}return n.encode(u)},writeBytes(s,u){let a=JSON.stringify({__kind:"bytes-b64",data:o(u)});globalThis.localStorage.setItem(t(s),a);},listKeys(s){let u=t(s??""),a=[];for(let c=0;c<globalThis.localStorage.length;c++){let l=globalThis.localStorage.key(c);l&&l.startsWith(u)&&a.push(l.slice(t("").length));}return a.sort()},stat(s){let u=globalThis.localStorage.getItem(t(s));if(u===null)return null;let a=n.encode(u).byteLength;try{let c=JSON.parse(u);c&&c.__kind==="bytes-b64"&&typeof c.data=="string"&&(a=e(c.data).byteLength);}catch{}return {key:s,size:a}},renameKey(s,u){let a=globalThis.localStorage.getItem(t(s));return a===null?false:(globalThis.localStorage.setItem(t(u),a),globalThis.localStorage.removeItem(t(s)),true)}}}var Ke=":scratch-marker",$e=":scratch-config",P=":scratch:",Ve=1440*60*1e3,Me=720*60*1e3,Je=200;function Q(r,t){if(!r)return t;let n=r.replace(/[^A-Za-z0-9._-]/g,"_");return n.length>0?n:t}function X(r){let t=`${r}${Ke}`,n=`${r}${$e}`,o=i=>`${r}${P}${i}`,e=i=>`${r}${P}${i}:__ts`,s=globalThis.localStorage.getItem(t)===null;if(s)try{globalThis.localStorage.setItem(t,`scratch-store
|
|
2
|
-
${new Date().toISOString()}`);}catch{}function u(){let i=globalThis.localStorage.getItem(n);if(i===null)return {};try{let d=JSON.parse(i);return d&&typeof d=="object"&&!Array.isArray(d)?d:{}}catch{return {}}}function a(i){try{globalThis.localStorage.setItem(n,JSON.stringify(i));}catch{}}if(s){let i=u();typeof i["retention.lastSweepAt"]!="number"&&(i["retention.lastSweepAt"]=Date.now(),a(i));}function c(){if(globalThis.localStorage.getItem(t)===null)return;let i=u(),d=typeof i["retention.maxAgeMs"]=="number"?i["retention.maxAgeMs"]:Ve,f=typeof i["retention.sweepIntervalMs"]=="number"?i["retention.sweepIntervalMs"]:Me;if(d<=0||f<=0)return;let m=typeof i["retention.lastSweepAt"]=="number"?i["retention.lastSweepAt"]:0,p=Date.now();if(p-m<f)return;i["retention.lastSweepAt"]=p,a(i);let y=p,S=`${r}${P}`,k=[];for(let
|
|
2
|
+
${new Date().toISOString()}`);}catch{}function u(){let i=globalThis.localStorage.getItem(n);if(i===null)return {};try{let d=JSON.parse(i);return d&&typeof d=="object"&&!Array.isArray(d)?d:{}}catch{return {}}}function a(i){try{globalThis.localStorage.setItem(n,JSON.stringify(i));}catch{}}if(s){let i=u();typeof i["retention.lastSweepAt"]!="number"&&(i["retention.lastSweepAt"]=Date.now(),a(i));}function c(){if(globalThis.localStorage.getItem(t)===null)return;let i=u(),d=typeof i["retention.maxAgeMs"]=="number"?i["retention.maxAgeMs"]:Ve,f=typeof i["retention.sweepIntervalMs"]=="number"?i["retention.sweepIntervalMs"]:Me;if(d<=0||f<=0)return;let m=typeof i["retention.lastSweepAt"]=="number"?i["retention.lastSweepAt"]:0,p=Date.now();if(p-m<f)return;i["retention.lastSweepAt"]=p,a(i);let y=p,S=`${r}${P}`,k=[];for(let b=0;b<globalThis.localStorage.length;b++){let C=globalThis.localStorage.key(b);C&&C.startsWith(S)&&!C.endsWith(":__ts")&&k.push(C);}for(let b of k){if(Date.now()-y>Je)break;let C=globalThis.localStorage.getItem(`${b}:__ts`),O=C===null?0:Number(C);if(Number.isFinite(O)&&O>0&&p-O>d){try{globalThis.localStorage.removeItem(b);}catch{}try{globalThis.localStorage.removeItem(`${b}:__ts`);}catch{}}}}function l(i,d){let f=Q(i,"scratch"),m=Q(d,".json"),p=m.startsWith(".")?m:`.${m}`,y=Math.random().toString(36).slice(2,10);return `${f}-${Date.now()}-${y}${p}`}function g(i,d){globalThis.localStorage.setItem(o(i),d),globalThis.localStorage.setItem(e(i),String(Date.now()));}return {read(i){return globalThis.localStorage.getItem(o(i))},write(i,d){g(i,d);try{c();}catch{}},exists(i){return globalThis.localStorage.getItem(o(i))!==null},remove(i){try{globalThis.localStorage.removeItem(o(i));}catch{}try{globalThis.localStorage.removeItem(e(i));}catch{}},readBytes(i){let d=globalThis.localStorage.getItem(o(i));return d===null?null:new TextEncoder().encode(d)},writeBytes(i,d){let f="";for(let m=0;m<d.length;m++)f+=String.fromCharCode(d[m]);g(i,f);try{c();}catch{}},stat(i){let d=globalThis.localStorage.getItem(o(i));if(d===null)return null;let f=globalThis.localStorage.getItem(e(i)),m=f===null?null:Number(f);return {key:i,size:new TextEncoder().encode(d).byteLength,updatedAt:m!==null&&Number.isFinite(m)?new Date(m).toISOString():void 0}},listKeys(i){let d=`${r}${P}`,f=[];for(let m=0;m<globalThis.localStorage.length;m++){let p=globalThis.localStorage.key(m);if(p&&p.startsWith(d)&&!p.endsWith(":__ts")){let y=p.slice(d.length);(!i||y.startsWith(i))&&f.push(y);}}return f.sort()},getUniqueKey(i,d){return l(i,d)},create(i,d,f){let m=l(d,f);g(m,i);try{c();}catch{}return m},keyRef(i){return {kind:"local-storage-scratch",value:i,extra:{prefix:r}}},renameKey(i,d){let f=globalThis.localStorage.getItem(o(i));if(f===null)return false;g(d,f);try{globalThis.localStorage.removeItem(o(i));}catch{}try{globalThis.localStorage.removeItem(e(i));}catch{}return true},config:{get(i){return u()[i]??null},set(i,d){let f=u();d==null?delete f[i]:f[i]=d,a(f);}}}}var Ge=":archive-marker",Ue=":archive-config",F=":archive:stream:",z=":archive:blob:";function W(r){let t=r.replace(/[^A-Za-z0-9._-]/g,"_");if(!t)throw new Error("Archive segment name cannot be empty after sanitization");return t}function Z(r){let t=`${r}${Ge}`,n=`${r}${Ue}`,o=a=>`${r}${F}${a}`;if(globalThis.localStorage.getItem(t)===null)try{globalThis.localStorage.setItem(t,`archive-store
|
|
3
3
|
${new Date().toISOString()}`);}catch{}function e(){let a=globalThis.localStorage.getItem(n);if(a===null)return {};try{let c=JSON.parse(a);return c&&typeof c=="object"&&!Array.isArray(c)?c:{}}catch{return {}}}function s(a){try{globalThis.localStorage.setItem(n,JSON.stringify(a));}catch{}}function u(){if(globalThis.localStorage.getItem(t)===null)return;let a=e(),c=typeof a["retention.maxAgeMs"]=="number"?a["retention.maxAgeMs"]:0,l=typeof a["retention.sweepIntervalMs"]=="number"?a["retention.sweepIntervalMs"]:0;if(c<=0||l<=0)return;let g=typeof a["retention.lastSweepAt"]=="number"?a["retention.lastSweepAt"]:0,i=Date.now();if(i-g<l)return;a["retention.lastSweepAt"]=i,s(a);let d=`${r}${F}`;for(let f=0;f<globalThis.localStorage.length;f++){let m=globalThis.localStorage.key(f);if(!m||!m.startsWith(d))continue;let p=globalThis.localStorage.getItem(m);if(p)try{let y=JSON.parse(p),S=y.filter(k=>typeof k.__ts!="number"||i-k.__ts<=c);S.length!==y.length&&globalThis.localStorage.setItem(m,JSON.stringify(S));}catch{}}}return {stream(a){let c=W(a),l=o(c);function g(){let d=globalThis.localStorage.getItem(l);if(!d)return [];try{return JSON.parse(d)}catch{return []}}function i(d){try{globalThis.localStorage.setItem(l,JSON.stringify(d));}catch{}}return {append(d){let f={id:globalThis.crypto.randomUUID(),payload:d,__ts:Date.now()},m=g();m.push(f),i(m);try{u();}catch{}return {id:f.id,payload:f.payload}},readAll(){return g().map(d=>({id:d.id,payload:d.payload}))},readAfter(d){let f=g();if(!d){let S=f.map(k=>({id:k.id,payload:k.payload}));return {entries:S,newCursor:S.length>0?S[S.length-1].id:null}}let m=f.findIndex(S=>S.id===d),y=(m===-1?f:f.slice(m+1)).map(S=>({id:S.id,payload:S.payload}));return {entries:y,newCursor:y.length>0?y[y.length-1].id:d}},clear(){try{globalThis.localStorage.removeItem(l);}catch{}}}},blob(a){let c=W(a),l=_(`${r}${z}${c}`);return {read:g=>l.read(g),write:(g,i)=>{l.write(g,i);try{u();}catch{}},exists:g=>l.exists(g),remove:g=>l.remove(g),readBytes:l.readBytes?g=>l.readBytes(g):void 0,writeBytes:l.writeBytes?(g,i)=>{l.writeBytes(g,i);try{u();}catch{}}:void 0,listKeys:g=>l.listKeys(g),stat:l.stat?g=>l.stat(g):void 0,renameKey:(g,i)=>l.renameKey(g,i)}},listStreams(a){let c=`${r}${F}`,l=[];for(let g=0;g<globalThis.localStorage.length;g++){let i=globalThis.localStorage.key(g);if(!i||!i.startsWith(c))continue;let d=i.slice(c.length);(!a||d.startsWith(a))&&l.push(d);}return l.sort()},listBlobs(a){let c=`${r}${z}`,l=new Set;for(let g=0;g<globalThis.localStorage.length;g++){let i=globalThis.localStorage.key(g);if(!i||!i.startsWith(c))continue;let d=i.slice(c.length),f=d.indexOf(":"),m=f===-1?d:d.slice(0,f);(!a||m.startsWith(a))&&l.add(m);}return Array.from(l).sort()},config:{get(a){return e()[a]??null},set(a,c){let l=e();c==null?delete l[a]:l[a]=c,s(l);}}}}function ee(r){function t(n){return `${r}:kv:${n}`}return {read(n){let o=globalThis.localStorage.getItem(t(n));if(o===null)return null;try{return JSON.parse(o)}catch{return null}},write(n,o){globalThis.localStorage.setItem(t(n),JSON.stringify(o));},delete(n){globalThis.localStorage.removeItem(t(n));},listKeys(n){let o=t(n??""),e=[];for(let s=0;s<globalThis.localStorage.length;s++){let u=globalThis.localStorage.key(s);u!==null&&u.startsWith(o)&&e.push(u.slice(t("").length));}return e}}}function te(r){function t(){let o=globalThis.localStorage.getItem(r);if(!o)return [];try{return JSON.parse(o)}catch{return []}}function n(o){globalThis.localStorage.setItem(r,JSON.stringify(o));}return {readAllEntries(){return t()},appendEntry(o){let e=t();e.push(o),n(e);},generateId(){return globalThis.crypto.randomUUID()}}}function re(r){return String(r).replace(/[^a-zA-Z0-9_-]/g,"_")}function ne(r){let t=r.payload??{};return {id:r.id,role:typeof t.role=="string"?t.role:"system",text:typeof t.text=="string"?t.text:"",files:Array.isArray(t.files)?t.files:[],turn:typeof t.turn=="string"?t.turn:"",updated_at:typeof t.updated_at=="string"?t.updated_at:""}}function oe(r,t){let n=e=>`chats/${re(e)}/processing`,o=e=>`chats/${re(e)}/config`;return {async append(e,s,u,a=[],c=""){return (await r(e).append({role:s,text:u,files:a,turn:c,updated_at:new Date().toISOString()})).id},async readAll(e){return (await r(e).readAll()).map(ne)},async readAfter(e,s){let u=await r(e).readAfter(s);return {records:u.entries.map(ne),cursor:u.newCursor}},async clear(e){await r(e).clear?.();},async setProcessing(e,s){s?await t.write(n(e),true):await t.delete(n(e));},async isProcessing(e){return await t.read(n(e))===true},async getConfig(e){return await t.read(o(e))??{}},async setConfig(e,s){let u=await t.read(o(e))??{};await t.write(o(e),{...u,...s});}}}function He(){let r=false;return {async tryAcquire(){return r?null:(r=true,()=>{r=false;})}}}function Qe(){let r=new Map,t=new Map,n=new Map;return {async enqueue(o){let e={id:globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`,body:o,enqueuedAt:new Date().toISOString(),attempt:0};return r.set(e.id,e),e},async enqueueMany(o){let e=[];for(let s of o)e.push(await this.enqueue(s));return e},async enqueueIfAbsent(o,e){for(let u of r.values())if(u.dedupKey===e)return null;for(let u of t.values())if(u.dedupKey===e)return null;let s={id:globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`,body:o,enqueuedAt:new Date().toISOString(),attempt:0,dedupKey:e};return r.set(s.id,s),s},async stage(o,e){let s=e?.dedupKey;if(s){for(let a of r.values())if(a.dedupKey===s)return null;for(let a of t.values())if(a.dedupKey===s)return null}let u={id:globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`,body:o,enqueuedAt:new Date().toISOString(),attempt:0,...s?{dedupKey:s}:{}};return t.set(u.id,u),u},async commitStaged(o){let e=t.get(o);return e?(t.delete(o),r.set(o,{...e,enqueuedAt:new Date().toISOString(),attempt:0}),true):false},async discardStaged(o,e){let s=t.get(o);return s?(t.delete(o),n.set(o,{...s,reason:e}),true):false},async peekStaged(o=""){return Array.from(t.values()).filter(e=>!o||e.id.startsWith(o)).map(e=>({id:e.id,body:e.body,enqueuedAt:e.enqueuedAt,attempt:e.attempt}))},async lease(o){let e=Math.max(1,Math.floor(o?.max??1)),s=Math.max(1,Math.floor(o?.visibilityMs??6e4)),u=Date.now();for(let c of r.values())c.leaseExpiresAt&&Date.parse(c.leaseExpiresAt)<=u&&(delete c.leaseToken,delete c.leaseExpiresAt);let a=[];for(let c of r.values()){if(a.length>=e)break;c.leaseToken||(c.attempt+=1,c.leaseToken=globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`,c.leaseExpiresAt=new Date(Date.now()+s).toISOString(),a.push({id:c.id,body:c.body,enqueuedAt:c.enqueuedAt,attempt:c.attempt,leaseToken:c.leaseToken,leaseExpiresAt:c.leaseExpiresAt}));}return a},async ack(o,e){let s=r.get(o);return !s||s.leaseToken!==e?false:(r.delete(o),true)},async nack(o,e,s){let u=r.get(o);return !u||u.leaseToken!==e?false:(delete u.leaseToken,delete u.leaseExpiresAt,s?.dead&&(r.delete(o),n.set(o,{...u,reason:s.reason})),true)},async peekActive(o=""){return Array.from(r.values()).filter(e=>!e.leaseToken).filter(e=>!o||e.id.startsWith(o)).map(e=>({id:e.id,body:e.body,enqueuedAt:e.enqueuedAt,attempt:e.attempt}))},async peekDeadLetter(o=""){return Array.from(n.values()).filter(e=>!o||e.id.startsWith(o)).map(e=>({id:e.id,body:e.body,enqueuedAt:e.enqueuedAt,attempt:e.attempt,reason:e.reason}))}}}function L(r){let t=ee(r);return {async read(n){return t.read(n)},async write(n,o){t.write(n,o);},async delete(n){t.delete(n);},async listKeys(n){return t.listKeys(n)}}}function se(r){let t=_(r);return {async read(n){return t.read(n)},async write(n,o){t.write(n,o);},async exists(n){return t.exists(n)},async remove(n){t.remove(n);},async readBytes(n){return t.readBytes?.(n)??null},async writeBytes(n,o){await t.writeBytes?.(n,o);},async listKeys(n){return t.listKeys(n)},async stat(n){return t.stat?.(n)??null},async renameKey(n,o){let e=await t.read(n);return e==null?false:(t.write(o,e),t.remove(n),true)}}}function ae(r){let t=X(r);return {async read(n){return t.read(n)},async write(n,o){t.write(n,o);},async exists(n){return t.exists(n)},async remove(n){t.remove(n);},async readBytes(n){return t.readBytes?.(n)??null},async writeBytes(n,o){await t.writeBytes?.(n,o);},async listKeys(n){return t.listKeys(n)},async stat(n){return t.stat?.(n)??null},async getUniqueKey(n,o){return t.getUniqueKey(n,o)},async create(n,o,e){return t.create(n,o,e)},keyRef(n){return t.keyRef(n)},async renameKey(n,o){let e=t.read(n);return e==null?false:(t.write(o,e),t.remove(n),true)},config:{async get(n){return t.config.get(n)},async set(n,o){t.config.set(n,o);}}}}function D(r){let t=te(r);function n(o){return {id:o.id,payload:o.event}}return {async append(o){let e={id:t.generateId(),event:o};return t.appendEntry(e),n(e)},async readAll(){return t.readAllEntries().map(n)},async readAfter(o){let e=t.readAllEntries().map(n);if(!o)return {entries:e,newCursor:e.length>0?e[e.length-1].id:null};let s=e.findIndex(a=>a.id===o),u=s===-1?e:e.slice(s+1);return {entries:u,newCursor:u.length>0?u[u.length-1].id:o}}}}function ie(r){let t=Z(r);return {stream(n){let o=t.stream(n);return {async append(e){return o.append(e)},async readAll(){return o.readAll()},async readAfter(e){return o.readAfter(e)},async clear(){o.clear?.();}}},blob(n){let o=t.blob(n);return {async read(e){return o.read(e)},async write(e,s){o.write(e,s);},async exists(e){return o.exists(e)},async remove(e){o.remove(e);},async readBytes(e){return o.readBytes?.(e)??null},async writeBytes(e,s){await o.writeBytes?.(e,s);},async listKeys(e){return o.listKeys(e)},async stat(e){return o.stat?.(e)??null},async renameKey(e,s){let u=o.read(e);return u==null?false:(o.write(s,u),o.remove(e),true)}}},async listStreams(n){return t.listStreams(n)},async listBlobs(n){return t.listBlobs(n)},config:{async get(n){return t.config.get(n)},async set(n,o){t.config.set(n,o);}}}}function ue(r){return String(r||"").trim()}function ze(r){return String(r).replace(/[^a-zA-Z0-9_-]/g,"_")}function ce(r){return {kind:"local-storage",value:ue(r)}}function R(r){return h(ce(r))}function de(r){let t=`boards:${r}`;return {baseRef:ce(t),boardRuntimeStoreRef:R(`${t}:runtime-board`),cardStoreRef:R(`${t}:cards`),outputsStoreRef:R(`${t}:runtime-out`),queueStoreRef:R(`${t}:runtime`),scratchStoreRef:R(`${t}:scratch`),chatStoreRef:R(`${t}:chat`),artifactsStoreRef:R(`${t}:files`),fetchedSourcesStoreRef:R(`${t}:sources`)}}function w(r,t){try{let n=v(r);if(n?.kind==="local-storage"&&n.value)return ue(n.value)}catch{}return t}function We(r,t={}){let n=de(r),o=new Map;return q({boardId:r,kvStorage(e){return L(`${n.baseRef.value}:${e||"root"}`)},kvStorageForRef(e){return L(w(e,`${n.baseRef.value}:root`))},blobStorage(e){return se(e?`${n.baseRef.value}:${e}`:n.baseRef.value)},blobStorageForRef(e){return se(w(e,n.baseRef.value))},chatStorageForRef(e){let s=w(e,`${n.baseRef.value}:chat`);return oe(u=>D(`${s}:journal:${ze(u)}`),L(s))},queueStoreRef:n.queueStoreRef,queueStorageForRef(e,s){let u=`${w(e,`${n.baseRef.value}:runtime`)}:queue:${s}`,a=o.get(u);return a||(a=Qe(),o.set(u,a)),a},scratchStorage(){return ae(`${n.baseRef.value}:scratch`)},scratchStorageForRef(e){return ae(w(e,`${n.baseRef.value}:scratch`))},archiveFactory(){return ie(`${n.baseRef.value}:archive`)},archiveFactoryForRef(e){return ie(w(e,`${n.baseRef.value}:archive`))},journalStorage(){return D(`${n.baseRef.value}:journal`)},journalStorageForRef(e){return D(`${w(e,`${n.baseRef.value}:runtime-board`)}:journal`)},lock:He(),resolveBlob:async e=>{let s=e?.kind==="local-storage"?e:null;if(!s?.value)throw new Error(`Unsupported localStorage ref: ${h(e)}`);let u=_(s.value),a=await Promise.resolve(u.read(""));if(a===null)throw new Error(`Blob not found: ${h(e)}`);try{let c=JSON.parse(a);if(c?.__kind==="bytes-b64"&&typeof c.data=="string"){let l=await Promise.resolve(u.readBytes?.(""));if(l)return new TextDecoder().decode(l)}}catch{}return a},hashFn:Y,genId:()=>(globalThis.crypto?.randomUUID?.()??`${Date.now()}-${Math.random().toString(36).slice(2,10)}`).replace(/-/g,""),requestProcessAccumulated:t.requestProcessAccumulated,publishBoardChangeNotifications:t.publishBoardChangeNotifications,onWarn:e=>console.warn(`[localstorage-board-adapter:${r}] ${e}`)})}function Wn(r,t={}){return {refs:{...de(r),...t.refs??{}},boardAdapter:We(r,t)}}exports.createLocalStorageBoardAdapter=We;exports.createLocalStorageBoardRefs=de;exports.createLocalStorageBoardRuntimeBundle=Wn;exports.makeLocalStorageRef=ce;exports.serializeLocalStorageRef=R;return exports;})({});//# sourceMappingURL=localstorage-storage.js.map
|
|
4
4
|
//# sourceMappingURL=localstorage-storage.js.map
|
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"generatedAt": "2026-06-
|
|
2
|
+
"generatedAt": "2026-06-11T12:30:08.340Z",
|
|
3
3
|
"algorithm": "sha256",
|
|
4
4
|
"files": {
|
|
5
5
|
"browser/server-runtime-controlface.js": {
|
|
6
|
-
"sha256": "sha256-
|
|
7
|
-
"bytes":
|
|
6
|
+
"sha256": "sha256-XLLQkRH4P1XAqkQ2GNs3CcRajc34x/4OQtfTiwKf0xU=",
|
|
7
|
+
"bytes": 187605
|
|
8
8
|
},
|
|
9
9
|
"browser/adapters/firestore-storage.js": {
|
|
10
|
-
"sha256": "sha256-
|
|
10
|
+
"sha256": "sha256-Lk3jtF5uy3qjom4TVPHeekHjuNbQDdLpeZ4iAdPUwmo=",
|
|
11
11
|
"bytes": 17558
|
|
12
12
|
},
|
|
13
13
|
"browser/adapters/localstorage-storage.js": {
|
|
14
|
-
"sha256": "sha256-
|
|
14
|
+
"sha256": "sha256-9pG7tw/nCC7fHW9IGebLFNpE1XoxP5sU8etK2kt7eb0=",
|
|
15
15
|
"bytes": 22193
|
|
16
16
|
},
|
|
17
17
|
"browser/adapters/firebase-storage.js": {
|