@ibgib/space-gib 0.0.19 → 0.0.21
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/client/bootstrap.mjs +7 -7
- package/dist/client/chunk-7YXHRAEW.mjs +2813 -0
- package/dist/client/chunk-M2IO3EMM.mjs +22 -0
- package/dist/client/index.html +4 -3
- package/dist/client/index.mjs +5 -5
- package/dist/client/privacy.html +288 -0
- package/dist/client/script.mjs +1 -1
- package/dist/server/server.mjs +811 -582
- package/generate-privacy-html.js +208 -0
- package/package.json +4 -4
- package/src/client/AUTO-GENERATED-version.mts +1 -1
- package/src/client/README.md +113 -0
- package/src/client/dev-tools/common.mts +1 -0
- package/src/client/index.html +4 -3
- package/src/client/privacy.html +288 -0
- package/dist/client/chunk-NLLBRWVU.mjs +0 -18
- package/dist/client/chunk-YJGD7KHK.mjs +0 -2665
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as Fr,b as jr,c as ca,d as We,e as zr,f as Hr,g as $t,h as Xr,i as Wr,j as Ne,k as Je,l as Vr,m as Jr,n as Yr,o as Qr,p as Kr}from"./chunk-
|
|
1
|
+
import{a as Fr,b as jr,c as ca,d as We,e as zr,f as Hr,g as $t,h as Xr,i as Wr,j as Ne,k as Je,l as Vr,m as Jr,n as Yr,o as Qr,p as Kr}from"./chunk-7YXHRAEW.mjs";import{$ as er,$b as ut,A as J,Aa as ur,Ac as Rr,B as q,Ba as Te,C as H,Ca as Zt,Cc as ia,Da as mr,Ea as gr,F as X,Fa as wr,G as rt,Ga as Er,Gb as Or,Ha as yr,Hb as W,Hc as oe,Ia as dt,J as le,Ja as ft,Jc as na,K as Xt,Ka as $r,Kc as Mr,L as Re,La as Ir,Lc as gt,M as Me,Ma as Fe,Mc as wt,N as Wt,Na as je,Nc as vr,O as ve,Oa as ea,Oc as Ur,P as ot,Pa as bt,Q as Ie,Qa as _r,R as Ya,Ra as Sr,Rc as kr,S as Qa,Sa as Ar,T as Vt,Ta as Tr,Tc as sa,U as Ue,Ua as ht,V as _e,Vc as Xe,W as Ka,Wa as ze,X as Za,Xa as qe,Ya as Gr,Z as Se,Za as Pr,_ as ke,_a as ta,a as b,aa as Ae,ab as Nr,ad as Br,b as kt,ba as tr,bb as aa,ca as ar,cb as Cr,cd as Et,d as O,da as Jt,db as fe,dd as la,e as re,ea as Yt,ed as Pe,f as Bt,fa as rr,fb as xr,fd as yt,g as R,ga as or,gb as Lr,gd as qr,h as $,ha as ir,i as se,ia as nr,ib as pt,id as Ve,j as m,ja as it,k as Ja,ka as nt,l as at,la as de,m as Ft,ma as sr,mb as G,n as jt,na as cr,nb as ra,o as zt,oa as lr,pa as dr,q as ce,qa as st,r as ye,ra as Qt,s as qt,sa as fr,t as $e,ta as br,tb as Ge,ua as hr,ub as Dr,va as ct,w as y,wa as Be,x as C,xa as pr,xc as oa,y as Ht,ya as lt,yc as mt,za as Kt,zc as He}from"./chunk-M2IO3EMM.mjs";var Zr={src:["source","from","in","input"],dest:["destination","to","out","output"]};function Qo({paramName:c,noBare:e,argTypeName:a,description:t}){let r={name:`src-${c}`,argTypeName:a??"string",synonyms:[...Zr.src.map(o=>`${o}-${c}`)],description:t};return e||r.synonyms.push(c),r}b(Qo,"getParam_src");function Ko({paramName:c,argTypeName:e="string",description:a}){return{name:`dest-${c}`,argTypeName:e??"string",synonyms:[...Zr.dest.map(r=>`${r}-${c}`)],description:a}}b(Ko,"getParam_dest");var eo={name:"bare",description:`special param that is used as the only param allowed that doesn't have a "double-dash-specifier=" form. one "bare" arg is allowed atow. if a bare arg is found, it will be mapped to this param info.`,synonyms:["bare-arg","bare-param","no-name","manco","arg-with-no-name","param-with-no-name"],argTypeName:"string"};var Ki=Qo({paramName:"path",description:"for referencing/ingesting file(s)/folder(s) in a fs"}),Zi=Ko({paramName:"path",description:"for indicating where to put generated file(s)/folder(s)"});var Y=!1;function It({paramInfo:c,valueString:e}){let a=`[${It.name}]`;try{switch(c.argTypeName){case"string":let t=e;return(t.startsWith('"')&&t.endsWith('"')||t.startsWith("'")&&t.endsWith("'"))&&(t=t.slice(1),t=t.slice(0,t.length-1)),t;case"integer":if(e===void 0)throw new Error("integer arg value is undefined. integers must be a valid integer string (E: ce17acde3b863ec5e2fdcc594f0f1423)");let r=Number.parseInt(e);if(typeof r!="number")throw new Error(`arg value string (${e})did not parse to an integer. parse result: ${r} (E: 43cde93160458610ffb49fd16a02d123)`);return r;case"boolean":if(e===void 0||e===""){if(!c.isFlag)throw new Error("valueString is undefined or empty string but paramInfo.argTypeName === 'boolean' and paramInfo.isFlag is falsy. (E: 482e595c0ec7344b04def76c1441d623)");return!0}else{if(e===null)throw new Error("(UNEXPECTED) valueString === null? (E: 78f548b93026407968356d9c4f106223)");if(!["true","false"].includes(e))throw new Error(`invalid boolean valueString ("${e}"). must be either "true" or "false" (E: ba7a0d0804131acc2bd9ab37c0382523)`);return e==="true"}default:throw new Error("(UNEXPECTED) invalid paramInfo.argTypeName (E: c8b03ccb71394d22a29858b98753a123)")}}catch(t){throw console.error(`${a} ${m(t)}`),t}}b(It,"getValueFromRawString");function _t({argIdentifier:c,paramInfos:e,throwIfNotFound:a}){let t=`[${_t.name}]`;try{let r=e.filter(o=>o.name===c||(o.synonyms??[]).includes(c));if(r.length===1)return O(r[0]);if(r.length>1)throw new Error(`(UNEXPECTED) multiple param infos found with argIdentifier. do you have overlapping arg names/synonyms? (${c} found in (${r.length} param infos)) (E: d599a6647c5ead6d9fbac4e4c96e6d23)`);if(a)throw new Error(`(UNEXPECTED) param info not found for argIdentifier (${c}) (E: 47e704068f2eb5a0551cf45d0e72c823)`);return}catch(r){throw console.error(`${t} ${m(r)}`),r}}b(_t,"getParamInfo");function to({rawArg:c}){let e=`[${to.name}]`;try{Y&&console.log(`${e} starting... (I: 5d51b75b7a025e2e3fa498da7c08ac24)`);let a=b(o=>o.startsWith('"')&&o.endsWith('"')?"double":o.startsWith("'")&&o.endsWith("'")?"single":void 0,"fnGetQuoteType"),t=b(o=>a(o)?o.slice(0,o.length-1).slice(1):o,"fnStripQuotes"),r=a(c);if(r)return{prefix:void 0,identifier:void 0,isNameValuePair:!1,valueInfo:{rawValueString:c.concat(),resolvedValueString:t(c),singleQuoted:r==="single",doubleQuoted:r==="double"}};if(c.match(/^(--\w|-\w|:\w)/))if(c.includes("=")){let o=/^(--|-|:)([\w\-]+)=(['"]?.+['"]?)$/,i=c.match(o);if(!i)throw new Error(`invalid rawArg (${c}). expected an arg matching regexp ${o}. (E: 05ca56163e184faeb66456a0e9190b28)`);let[n,s,l,d]=i,f=a(d);return{prefix:s,identifier:l,isNameValuePair:!0,valueInfo:{rawValueString:d,resolvedValueString:f?t(d):d,singleQuoted:f==="single",doubleQuoted:f==="double"}}}else{let o=/^(--|-|:)([\w\-]+)$/,i=c.match(o);if(!i)throw new Error(`invalid rawArg (${c}). expected an arg matching regexp ${o}. at this point, it should have a prefix (e.g. "--"), and a single identifier (should be a flag since there is no equal sign). (E: 93305923465d9449bdce3f81373fae24)`);let[n,s,l]=i;return{prefix:s,identifier:l,isNameValuePair:!1,valueInfo:{rawValueString:void 0,resolvedValueString:"true",singleQuoted:!1,doubleQuoted:!1}}}else{if(c.includes("="))throw new Error(`invalid rawArg (${c}). isn't quoted, doesn't start with prefix, but it does have an equal sign? that's bad. (E: e8ad15211ce6fd56a4a214c2778c4724)`);return{prefix:void 0,identifier:void 0,isNameValuePair:!1,valueInfo:{rawValueString:c,resolvedValueString:c,doubleQuoted:!1,singleQuoted:!1}}}}catch(a){throw console.error(`${e} ${a.message}`),a}finally{Y&&console.log(`${e} complete.`)}}b(to,"parseRawArg");function St({args:c,paramInfos:e,bareArgParamInfo:a=O(eo),logalot:t}){let r=`[${St.name}]`;try{(Y||t)&&console.log(`${r} starting... (I: f389aaa490796dfd823bc7b9d4e58b23)`);let o=!1;return c.map((n,s)=>{let l,d,f,{prefix:h,identifier:u,isNameValuePair:g,valueInfo:E}=to({rawArg:n});if(h){if((Y||t)&&console.log(`identifier: ${u} (I: 519ce129a1e34753a9070d3a205c9a8b)`),!u)throw new Error("(UNEXPECTED) prefix truthy but identifier falsy? (E: f33ab3a2b623acc0d1bc36685edfaf24)");if(l=u,!E)throw new Error("(UNEXPECTED) !valueInfo? (E: 05249a361a59008cd313d2dfa8f08b24)");if(g){Y&&console.log(`${r} identifier with equals: ${u}. (I: 5f8ae91d1ddd4a7f94c0f4fb7e688502)`);let w=_t({argIdentifier:l,paramInfos:e,throwIfNotFound:!0});f={...w,value:It({paramInfo:w,valueString:E.rawValueString}),identifier:l}}else{Y&&console.log(`${r} identifier without equals: ${u}`),l=u;let w=_t({argIdentifier:l,paramInfos:e,throwIfNotFound:!0});f={...w,value:It({paramInfo:w,valueString:void 0}),identifier:l,isFlag:!0}}}else if(s===0){if(!E)throw new Error("(UNEXPECTED) argIndex === 0 but valueInfo falsy? (E: 4642b42c855593b7ffdacb85f27dab24)");if(!E.rawValueString)throw new Error("(UNEXPECTED) !valueInfo.rawValueString? (E: 0b35f71eb8227cdd67ccfc32f2e45824)");if(E.singleQuoted)throw new Error("first arg is quoted? (single). a bare arg in first position must be a command/flag. (E: 28cce820417fd3b4f95ba6c7e94b4624)");if(E.doubleQuoted)throw new Error("first arg is quoted? (double). a bare arg in first position must be a command/flag. (E: 0b948c87081043fdb168f08ba05ebbce)");l=E.rawValueString,f={..._t({argIdentifier:l,paramInfos:e,throwIfNotFound:!0}),value:!0,identifier:l,isFlag:!0}}else{if((Y||t)&&console.log("bare arg found. (I: d6f67074c7e44a63864948d4bf04bee8)"),!a)throw new Error(`bare arg found (one without prefix like "--" or ":") but there is no param info expected for bare args. You must provide which param info a bare arg maps to in this ${St.name} call. (E: 650dd3695d62f0f87dd0cbafbf068c23)`);if(o)throw new Error('You can have the first arg - a special arg like a command - be bare (without prefix like "--" or ":") and one additional non-positional arg be bare. But more than one non-positional bare arg found. Also remember if the arg has spaces then you have to enclose it with single or double quotes. (E: 74dea8f13f0c14e3b7a2f125c7faca23)');o=!0;let w=O(a);f={...w,isBare:!0,identifier:w.name,value:It({paramInfo:w,valueString:n})}}return Y&&console.log(`${r} argInfo: ${$(f)}`),f})}catch(o){throw console.error(`${r} ${m(o)}`),o}finally{(Y||t)&&console.log(`${r} complete.`)}}b(St,"buildArgInfos");var z={undefined:"undefined",preparing:"preparing",started:"started",inserted:"inserted",updated:"updated",merged_dna:"merged_dna",merged_state:"merged_state",already_synced:"already_synced",completed:"completed"},Zo={...sr},fn={...Zo,sync:"sync"};var da={encrypt_gib:"encrypt-gib"},hn=Object.values(da);var ei={characters:"characters",spell_out:"spell-out",cardinal:"cardinal",number:"number",ordinal:"ordinal",digits:"digits",fraction:"fraction",unit:"unit",date:"date",time:"time",telephone:"telephone",address:"address",interjection:"interjection",expletive:"expletive"};var be=class c{static{b(this,"Ssml")}static lc=`[${c.name}]`;static wrapSsmlSpeak(e,a=!0){return"<speak>"+e.reduce((r,o)=>a?r+"<p>"+o+"</p>":r+o,"")+"</speak>"}static unwrapSsmlSpeak(e){return e.replace(/\<speak\>/g,"").replace(/\<\/speak\>/g,"")}static p(e){return"<p>"+e+"</p>"}static s(e){return"<s>"+e+"</s>"}static stripSsml(e){return e.replace(/\<\/p\>[ ]*\<p\>/g,"<p>").replace(/\<p\>(?=[ ])/g,"<p>").replace(/\<\/p\>(?=[ ])/g,"</p>").replace(/\<[\/]*p\>/g,`
|
|
2
2
|
|
|
3
3
|
`).replace(/(<([^>]*)>)/ig,"").replace(/ +/g," ").replace(/\\n\\n\\n/g,`
|
|
4
4
|
|
|
@@ -8,7 +8,7 @@ import{a as Fr,b as jr,c as ca,d as We,e as zr,f as Hr,g as $t,h as Xr,i as Wr,j
|
|
|
8
8
|
`):n();case he.delim:return e.join(r);default:throw new Error(`Unknown LexLineConcat: ${t} (E: e19f9c44217f4eb5999e2085d3f77b5c)`)}}catch(i){throw console.error(`${o} ${i.message}`),i}finally{L&&console.log(`${o} complete.`)}}filterLexData({lexData:e,language:a,specifier:t,keywords:r,keywordMode:o,props:i,propsMode:n,fnDatumPredicate:s}){let l=`${this.lc}[${this.filterLexData.name}]`;try{L&&console.log(`${l} starting... (I: 1091755e98f390954d296575d1096722)`);let d=e.concat();if(a&&(d=this.filterLanguage(d,a)),t&&(d=d.filter(f=>f.specifier&&f.specifier===t)),r&&r.length>0)switch(r=r.map(f=>f.toLocaleLowerCase()),o){case"any":d=d.filter(f=>f.keywords&&f.keywords.some(h=>r.map(u=>u.toLocaleLowerCase()).some(u=>h===u)));break;case"all":d=d.filter(f=>{let h=(f.keywords||[]).map(u=>u.toLocaleLowerCase());return r.every(u=>h.includes(u))});break;case"none":d=d.filter(f=>{let h=(f.keywords||[]).map(u=>u.toLocaleLowerCase());return r.every(u=>!h.includes(u))});break;default:console.error(`${l} Unknown keywordMode: ${o}`);break}return i&&(d=this.filterProps({result:d,props:i,propsMode:n})),s&&(d=d.filter(f=>s(f))),d}catch(d){throw console.error(`${l} ${d.message}`),d}finally{L&&console.log(`${l} complete.`)}}filterProps({result:e,props:a,propsMode:t}){if(t==="prop"){let r=a;return e.filter(o=>Object.keys(r).every(i=>{let n=r[i],s=o.props?o.props[i]:void 0;return n(s)}))}else if(t==="props"){let r=a;return e.filter(o=>r(o.props))}else throw new Error(`Invalid propsMode: ${t} (E: 216a926144d2436a900b81ffe0aa6174)`)}filterLanguage(e,a){return e=e.filter(t=>t.language&&t.language===a||!t.language&&this.defaultLanguage.length===2&&a.startsWith(this.defaultLanguage)||!t.language&&this.defaultLanguage===a),e}pickDatum(e){let a=`${this.lc}[${this.pickDatum.name}]`;try{if(L&&console.log(`${a} starting... (I: f95c8585a8274f78a1e724d6ab58ff22)`),!e)throw new Error("lexData required (E: cedb1fd9b67856c33b41c7dd4aab7c22)");if(e.length===0)return null;if(e.length===1)return e[0];{let t=e.reduce((i,n)=>i+(n.weighting?n.weighting:1),0),r=Math.random()*t,o=null;return e.reduce((i,n)=>o?-1:(i+=n.weighting?n.weighting:1,i>=r&&(o=n),i),0),o}}catch(t){throw console.error(`${a} ${t.message}`),t}finally{L&&console.log(`${a} complete.`)}}};var M={hi:"hi",welcome:"welcome",bye:"bye",yes:"yes",no:"no",learn:"learn",wtg:"wtg"},P={help:"semantic_help",hello:"semantic_hello",bye:"semantic_bye",yes:"semantic_yes",no:"semantic_no",cancel:"semantic_cancel",skip:"semantic_skip",forget:"semantic_forget",next:"semantic_next",please:"semantic_please",in_progress:"semantic_in_progress",list:"semantic_list",request:"semantic_request",count:"semantic_count",options:"semantic_options",ready:"semantic_ready",stop:"semantic_stop",result:"semantic_result",unknown:"semantic_unknown",default:"semantic_default"};function V(c,e){return e.flatMap(a=>({texts:[a],language:"en-US",props:{semanticId:c}}))}b(V,"toLexDatums_Semantics");function pe(c,e){return e.flatMap(a=>({texts:[a],language:"en-US",props:{atomicId:c}}))}b(pe,"toLexDatums_Atomics");var ti={[P.help]:[...V(P.help,["h","help","help me"])],[P.yes]:[...V(P.yes,["yes","y","yeah","yea","aye","yup","yep","sure","ok","sounds good","go for it","yes please","yes thanks","ok thanks","uh huh","god yes","affirmative","ten four","10-4","roger"])],[P.no]:[...V(P.no,["no","n","nah","nay","nope","uh uh","no thanks","ick","nuh uh","god no","no way","not at all","negative","that's a negative","nein"])],[P.cancel]:[...V(P.cancel,["cancel","nm","nevermind","cancel that","don't worry about it"])],[P.skip]:[...V(P.skip,["skip","sk"])],[P.forget]:[...V(P.forget,["forget","forget this","forget this one"])],[P.next]:[...V(P.next,["next"])],[P.bye]:[...V(P.bye,["bye","bye bye","see you later","see you"])],[P.unknown]:[...V(P.unknown,["are you mocking me, human?","mmhmm...","i see...","does not compute...","indeed"])]},ai={[M.hi]:[...pe(M.hi,["hi","howdy","hello","greetings","good day","hello there","good day to you","yo"])],[M.welcome]:[...pe(M.welcome,["welcome"])],[M.yes]:[...pe(M.yes,["yes","y","yeah","yea","aye","yup","yep","sure","ok","sounds good","go for it","yes please","yes thanks","ok thanks","uh huh","god yes","affirmative","ten four","10-4","roger"])],[M.no]:[...pe(M.no,["no","n","nope","no thanks","no thank you"])],[M.bye]:[...pe(M.bye,["bye","bye bye","adios","ciao","later"])],[M.learn]:[...pe(M.learn,["learn","study","review"])],[M.wtg]:[...pe(M.wtg,["wtg","nice","not bad","pretty good","good job"])]},ri={...ti,...ai},ao={...O(ri)},oi={...O(ao)},Gn=new Tt(oi,{requestLanguage:"en-US",defaultLanguage:"en-US",defaultCapitalize:"none",defaultLineConcat:"delim",defaultDelim:`
|
|
9
9
|
|
|
10
10
|
`,defaultKeywordMode:"any",defaultPropsMode:"prop"}),ro={...O(ao)};ro[P.bye].push({texts:["EOL"],ssmls:[be.sub("EOL","end of line")],language:"en-US",props:{semanticId:P.bye},weighting:100});ro[P.unknown]=[...V(P.unknown,["i'm not quite sure what you mean","does not compute"])];var Ce=!1;function oo({robbotData:c}){let e=`[${oo.name}]`;try{if(Ce&&console.log(`${e} starting...`),!c)throw new Error("robbotData required (E: 1ac78ffae5354b67acb64a34cfe23c2f)");let a=[],{name:t,uuid:r,classname:o,outputPrefix:i,outputSuffix:n}=c;return t?t.match(Re)||a.push(`name must match regexp: ${Re}`):a.push("name required."),r?r.match(kt)||a.push(`uuid must match regexp: ${kt}`):a.push("uuid required."),i&&(i.match(Me)||a.push(`outputPrefix must match regexp: ${Me}`)),n&&(n.match(Me)||a.push(`outputSuffix must match regexp: ${Me}`)),o&&(o.match(Re)||a.push(`classname must match regexp: ${Re}`)),a}catch(a){throw console.error(`${e} ${a.message}`),a}finally{Ce&&console.log(`${e} complete.`)}}b(oo,"validateCommonRobbotData");async function fa({robbotIbGib:c}){let e=`[${fa.name}]`;try{Ce&&console.log(`${e} starting... (I: f7b34d791a483b8c5a9d188da66d3f22)`);let a=await X({ibGib:c})??[];if(!c.data)throw new Error("robbotIbGib.data required (E: 754a8d2540610696aff04b0d159daa23)");let t=[],{robbotClassname:r,robbotName:o,robbotId:i}=io({robbotIb:c.ib});r||t.push("robbotClassname required (E: 3234d39bf1c74ec3aff59f374282dfc8)"),o||t.push("robbotName required (E: b329dcc62ff548d7aa0681393b2c7057)"),i||t.push("robbotId required (E: b562c953bfaf4dd49e4d3a08304ee2fc)");let n=oo({robbotData:c.data}),s=[...a??[],...t??[],...n??[]];return s.length>0?s:void 0}catch(a){throw console.error(`${e} ${a.message}`),a}finally{Ce&&console.log(`${e} complete.`)}}b(fa,"validateCommonRobbotIbGib");function io({robbotIb:c}){let e=`[${io.name}]`;try{if(!c)throw new Error("robbotIb required (E: 4a35881058094f1a90bb4ea37052d6d7)");let a=c.split(" ");return{robbotClassname:a[2],robbotName:a[3],robbotId:a[4]}}catch(a){throw console.error(`${e} ${a.message}`),a}}b(io,"parseRobbotIb");async function ba({fnPromptRobbot:c,ibgibs:e,space:a}){let t=`[${ba.name}]`;try{if(Ce&&console.log(`${t} starting...`),!e)throw new Error("(UNEXPECTED) ibgibs service required. (E: 4be5d20dc81fcdabb8d7d4cd47458522)");a=a??await e.getLocalUserSpace({lock:!0});let r=await c(a,null);if(!r)throw new Error("robbot prompt returned nothing. canceled? (E: 1a08529b53bd3d79c6587b196e5e0823)");let o=r.newIbGib;try{await se(1e3);let i=[];i.push(o),r.intermediateIbGibs?.forEach(d=>i.push(d)),r.dnas?.forEach(d=>i.push(d));for(let d=0;d<i.length;d++){let f=i[d],h=await X({ibGib:f});if((h??[]).length>0)throw new Error(`(unexpected) invalid robbot ibgib created. validationErrors: ${h}. robbot: ${$(o.toIbGibDto())} (E: a683268621cd6dd3dd60310b164c4d22)`)}await Te({resTransform:r,space:a});let{zeroSpace:n,fnBroadcast:s,fnUpdateBootstrap:l}=e;await dt({ibGib:o,space:a,fnBroadcast:b(d=>s(d),"fnBroadcast")}),await ft({type:"robbots",rel8nName:ve,ibGibsToRel8:[o],space:a,zeroSpace:n,fnUpdateBootstrap:l,fnBroadcast:s})}catch(i){throw console.error(`${t} ${i.message}`),i}return o}catch(r){console.error(`${t} ${r.message}`);return}finally{Ce&&console.log(`${t} complete.`)}}b(ba,"createNewRobbot");var Gt="secret";var no=!1;function Pt({participants:c}){let e=`[${Pt.name}]`;try{no&&console.log(`${e} starting... (I: 43c9a4f1fa1bbc944b98f8eed2f81924)`);let a=c.filter(t=>t.s_d==="src");if(a.length!==1)throw new Error("(UNEXPECTED) participants_src.length !== 1? atow (03/2024) only one src participant is expected. (E: ed4b3ae15f5da34c77655553aaf82224)");return a.at(0).id}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{no&&console.log(`${e} complete.`)}}b(Pt,"getSrcLocalSpaceId");var p=!1,Nt=class c{static{b(this,"MetaspaceBase")}cacheSvc;lc=`[${c.name}]`;instanceId=new Date().toUTCString();_initialized=!1;get initialized(){return this._initialized}_initializedSubj;initialized$;_initializing=!1;get initializing(){return this._initializing}_latestSubj;latestObs;async getLocalUserSpace({lock:e=!1,localSpaceId:a}){let t=`${this.lc}[${this.getLocalUserSpace.name}]`;try{p&&console.log(`${t} starting...`),e??=!1;let r=await je({zeroSpace:this.zeroSpace})??void 0;return await ea({zeroSpace:this.zeroSpace,bootstrapIbGib:r,lock:e,callerInstanceId:this.instanceId,localSpaceId:a,fnDtoToSpace:b(i=>this.metaspaceFactory.fnDtoToSpace(i),"fnDtoToSpace"),localSpaceCacheSvc:this.cacheSvc})}catch(r){throw console.error(`${t} ${r.message}`),r}finally{p&&console.log(`${t} complete.`)}}async getLocalUserSpaces({lock:e=!1}){let a=`${this.lc}[${this.getLocalUserSpaces.name}]`;try{p&&console.log(`${a} starting...`);let t=[];e??=!1;let r=await je({zeroSpace:this.zeroSpace});if(!r)throw new Error("(UNEXPECTED) bootstrapIbGib falsy (E: fff2de921a3ee56a1d70e4ac320e4122)");if(!r.data)throw new Error("(UNEXPECTED) bootstrapIbGib data falsy (E: 7f9d08050f214078b2f85dd2ed47e005)");if(!r.data[Ae])throw new Error(`(UNEXPECTED) bootstrapIbGib data invalid. data[${Ae}] falsy (E: 37614e2e8f914d6ab7c605cf064a80d2)`);if(r.data[Ae].length===0)throw new Error(`(UNEXPECTED) bootstrapIbGib data invalid. data[${Ae}] length === 0 (E: d57691d17e6b4d7ea3a8fed36c0f47e5)`);let o=r.data[Ae];for(let i=0;i<o.length;i++){let n=o[i];if(!n)throw new Error("(UNEXPECTED) localSpaceId falsy (E: 582c520897f5355d642229eae122ac22)");let s=await ea({zeroSpace:this.zeroSpace,bootstrapIbGib:r,lock:e,localSpaceId:n,callerInstanceId:this.instanceId,fnDtoToSpace:b(l=>this.metaspaceFactory.fnDtoToSpace(l),"fnDtoToSpace"),localSpaceCacheSvc:this.cacheSvc});t.push(s)}return t}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}async deleteLocalUserSpace({spaceId:e,deletePhysicalStorage:a=!0}){let t=`${this.lc}[${this.deleteLocalUserSpace.name}]`;try{if(p&&console.log(`${t} starting... spaceId: ${e} (I: 812fa4810b1241a590b512a8e0915623)`),!e)throw new Error("spaceId required. (E: 19fa5120a4024b819e917f9db0972b23)");await _r({spaceId:e,zeroSpace:this.zeroSpace}),await Sr({spaceId:e,zeroSpace:this.zeroSpace}),p&&console.log(`${t} complete.`)}catch(r){throw console.error(`${t} ${r.message}`),r}}passwordCache={};_syncing=!1;get syncing(){return this._syncing}sagaInfoMap={};_alwaysAutosyncTjpAddrsCache=new Set;isPrompting=!1;_precalculatedIds=[];getUUIDSync(){let e=`${this.lc}[${this.getUUIDSync.name}]`;try{p&&console.log(`${e} starting...`);let a=this._precalculatedIds.pop();if(!a)throw new Error("no precalculated ids? (E: 14915489b21d031ee9ca695737ac6923)");return this._precalculatedIds.length<100&&this.precalculateSomeUUIDsPlease(),a}catch(a){throw console.error(`${e} ${a.message}`),a}finally{p&&console.log(`${e} complete.`)}}async precalculateSomeUUIDsPlease(){let e=`${this.lc}[${this.precalculateSomeUUIDsPlease.name}]`;try{p&&console.log(`${e} starting...`);let a=[];for(let t=0;t<500;t++){let r=await R();a.push(r)}this._precalculatedIds=a}catch(a){throw console.error(`${e} ${a.message}`),a}finally{p&&console.log(`${e} complete.`)}}async initializeObservables(){let e=`${this.lc}[${this.initializeObservables.name}]`;try{p&&console.log(`${e} starting... (I: f5dc6d6352eaf2f41809ddec76ea5923)`),this._initializedSubj=await Ve({replay:!0}),this.initialized$=this._initializedSubj.asObservable(),this._latestSubj=await Ve(),this.latestObs=this._latestSubj.asObservable()}catch(a){throw console.error(`${e} ${a.message}`),a}finally{p&&console.log(`${e} complete.`)}}metaspaceFactory={};getFnAlert;getFnPrompt;getFnPromptPassword;constructor(e){this.cacheSvc=e;let a=`${this.lc}[ctor]`;p&&(console.log(`${a}${Xt}`),console.timeLog(Xt),console.log(`${a} created. (I: 5fe7af9fccc2488282eecc8255729cec)`))}async initializeMetaspaceFactory({metaspaceFactory:e}){let a=`[${this.initializeMetaspaceFactory.name}]`;try{p&&console.log(`${a} starting... (I: 0b84dfb68c1e89e0af880d4461fe4b23)`),this.metaspaceFactory=e}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}async initialize({spaceName:e,metaspaceFactory:a,getFnAlert:t,getFnPrompt:r,getFnPromptPassword:o}){let i=`${this.lc}[${this.initialize.name}]`;try{if(this.instanceId=await R(),!t)throw new Error("getFnAlert required (E: c7ded289d9b6265b6d1294988faba923)");if(!r)throw new Error("getFnPrompt required (E: cce7733db0abbf9a41fa45b6b9bf9523)");if(!o)throw new Error("getFnPromptPassword required (E: cadae9f5df9a7c310e76b63cb6afb623)");this.getFnAlert=t,this.getFnPrompt=r,this.getFnPromptPassword=o;let n=`${i}[timer]`;p&&(n=i+"[timer 71cbfa]",console.log(`${i} starting timer ${n}`),console.time(n)),await this.precalculateSomeUUIDsPlease(),await this.initializeObservables(),p&&console.timeLog(n),await this.initializeMetaspaceFactory({metaspaceFactory:a??={}}),await this.initializeLocalSpaces({spaceName:e}),p&&console.timeLog(n),await this.initializeSpecialIbGibs_required({timerName:n}),await this.initializeSpecialIbGibs_other({timerName:n}),p&&(console.timeEnd(n),console.log(`${i} timer ${n} complete.`)),this._initialized=!0,await this._initializedSubj.next(ye),p&&console.log(`${i} initialized (I: e3b3a9652c09445cb055013166ff089c)`)}catch(n){throw console.error(`${i} ${n.message}`),n}}async initializeSpecialIbGibs_required({timerName:e}){let a=`[${this.initializeSpecialIbGibs_required.name}]`;try{p&&console.log(`${a} starting... (I: 8cb7f63d766ab38885dc63d8da9cd323)`),await this.getSpecialIbGib({type:"latest",initialize:!0}),p&&console.timeLog(e),await this.getSpecialIbGib({type:"roots",initialize:!0}),p&&console.timeLog(e),await this.getSpecialIbGib({type:"tags",initialize:!0}),p&&console.timeLog(e),await this.getSpecialIbGib({type:"apps",initialize:!0}),p&&console.timeLog(e)}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}async initializeSpecialIbGibs_outerspaces({timerName:e}){let a=`[${this.initializeSpecialIbGibs_outerspaces.name}]`;try{p&&console.log(`${a} starting... (I: 4f5ca25899384ceabd65e30cdf58f889)`),await this.getSpecialIbGib({type:"outerspaces",initialize:!0}),p&&console.timeLog(e),await this.getSpecialIbGib({type:"autosyncs",initialize:!0}),p&&console.timeLog(e),await this.loadAutoSyncs()}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}async initializeSpecialIbGibs_other({timerName:e}){let a=`[${this.initializeSpecialIbGibs_other.name}]`;try{p&&console.log(`${a} starting... (I: 3cad0b16f5dac3686929dd1923ee3623)`)}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}async initializeLocalSpaces({spaceName:e}){let a=`${this.lc}[${this.initializeLocalSpaces.name}]`;try{p&&console.log(`${a} starting...`);let t=this.zeroSpace;t.gib||(t.gib=await q({ibGib:t,hasTjp:!1})),p&&console.log(`${a} getting bootstrap ibgib (I: a4ad1cfd5c6f895e879d9e6a5f607b22)`);let r=er,o=await je({zeroSpace:t});o?(p&&console.log(`${a} getting bootstrap ibgib with locking from zero space...`),o=await Fe({space:t,scope:r,secondsValid:Ka,fn:b(async()=>{let i=await je({zeroSpace:t});if(!i)throw new Error("failed to get validated bootstrapIbGib (E: a4318a8183c3d8979981c29bd4ecb223)");return i},"fn"),callerInstanceId:this.instanceId}),p&&console.log(`${a} got bootstrap ibgib with locking from zero space.`)):(p&&console.log(`${a} getting from default space...not found. bootstrap space not found. will create... (I: 3170ac1a310d41f29f2b2b075cde6bdb)`),await this.createLocalSpaceAndUpdateBootstrap({zeroSpace:t,allowCancel:!1,createBootstrap:!0,spaceName:e}))}catch(t){throw p&&console.log(`${a} getting from default space...not found. bootstrap space not found. (E: 617bb62c3b6c4c01a5faec7f06c719fd)`),console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}createNewLocalSpace({opts:e,fnLocalSpaceFactory:a}){let t=`[${this.createNewLocalSpace.name}]`;try{if(p&&console.log(`${t} starting... (I: ac652df9d652459d98832be8483544d1)`),!e)throw new Error("opts required (E: f1d50207b35c96985ba6c2e1a18a4e23)");if(e.getFnPrompt||(p&&console.log(`${t} incoming opts getFnPrompt falsy. using this.getFnPrompt (I: 1f331752ac81ffc48e2da0b27dafba23)`),e.getFnPrompt=this.getFnPrompt),a??=this.metaspaceFactory.fnDefaultLocalSpaceFactory,!a)throw new Error("neither fnLocalSpaceFactory nor this.fnDefaultLocalSpaceFactory provided (E: 5142df9dbae63fd0ffef8165782dc423)");return a(e)}catch(r){throw console.error(`${t} ${r.message}`),r}finally{p&&console.log(`${t} complete.`)}}async createLocalSpaceAndUpdateBootstrap({zeroSpace:e,allowCancel:a,createBootstrap:t,spaceName:r,getFnPrompt:o}){let i=`${this.lc}[${this.createLocalSpaceAndUpdateBootstrap.name}]`;try{let n;if(a){if(n=await this.createNewLocalSpace({opts:{allowCancel:a,spaceName:r,logalot:p,getFnPrompt:o??this.getFnPrompt}}),!n)return}else do n=await this.createNewLocalSpace({opts:{allowCancel:a,spaceName:r,logalot:p,getFnPrompt:o??this.getFnPrompt}});while(!n);t&&(p&&console.log(`${i} creating new bootstrap ibgib (I: ecc58dd4af21a0c69a16b3d71dad9c22)`),await bt({space:n,zeroSpace:e,setSpaceAsDefault:!0,createIfNotFound:!0}));let s=await e.argy({ibMetadata:Ar({space:n}),argData:{cmd:"put",ibGibAddrs:[y({ibGib:n})]},ibGibs:[n]});p&&console.log(`${i} save the localSpace in default zero space (I: 1b34fb9f548042ab9d9ae0619377e370)`);let l=await e.witness(s);if(l?.data?.success)p&&console.log(`${i} default zero space witnessed the user space (I: b6314ea887d34609904db3bb76ae2f9b)`);else throw new Error(`${l?.data?.errors?.join("|")||"There was a problem with zeroSpace witnessing the new localSpace (E: b952e888a4954cc5b671034b8384e750)"}`);p&&console.log(`${i} save the new localSpace in its own space (I: e1f520f2cc614b1fa9c1ebd1c4dd6957)`);let d=await n.witness(s);if(d?.data?.success)p&&console.log(`${i} user space witnessed itself`);else throw new Error(`${d?.data?.errors?.join("|")||"There was a problem with localSpace witnessing itself. (E: 33d4b1ffcca64160afe67046531958b5)"}`);return await bt({space:n,zeroSpace:this.zeroSpace}),n}catch(n){throw console.error(`${i} ${n.message}`),this.getFnAlert()({title:"failed",msg:`failed to initialize the local space. error: ${n.message}`}),n}}async createTagIbGib({text:e,icon:a,description:t,space:r}){let o=`${this.lc}[${this.createTagIbGib.name}]`;try{if(r=r??await this.getLocalUserSpace({}),!r)throw new Error("space falsy and localUserSpace not initialized (E: 18f846b645124210a2ff1611641a8daf)");return Ir({text:e,icon:a,description:t,space:r,zeroSpace:this.zeroSpace,fnBroadcast:b(i=>this.fnBroadcast(i),"fnBroadcast"),fnUpdateBootstrap:b(i=>this.fnUpdateBootstrap(i),"fnUpdateBootstrap")})}catch(i){throw console.error(`${o} ${i.message}`),i}}async trash({ibGib_Context:e,rel8nName_Context:a,addr:t,space:r}){let o=`${this.lc}[${this.trash.name}]`;try{if(p&&console.log(`${o} starting... (I: 4cf73be6e3294124a78a4a45368bfbcc)`),!e)throw new Error("ibGib_Context required (E: 09dd5e5a9f784953a42d70b1827ba442)");if(!a)throw new Error("rel8nName_Context required (E: cb6edaaac586773b08fd18855fc11322)");if(!t)throw new Error("addr required (E: 14f27805749c499098cebc0b1b11bc57)");if(r=r??await this.getLocalUserSpace({}),!r)throw new Error("space falsy and localUserSpace not initialized (E: f81574e3437a4b88acd044b2abdc1ae4)");await Gr({ibGib_Context:e,rel8nName_Context:a,addr:t,space:r,zeroSpace:this.zeroSpace,fnBroadcast:b(i=>this.fnBroadcast(i),"fnBroadcast"),fnUpdateBootstrap:b(i=>this.fnUpdateBootstrap(i),"fnUpdateBootstrap")})}catch(i){throw console.error(`${o} ${i.message}`),i}finally{p&&console.log(`${o} complete.`)}}async archive({ibGib_Context:e,rel8nName_Context:a,addr:t,space:r}){let o=`${this.lc}[${this.archive.name}]`;try{if(p&&console.log(`${o} starting... (I: 785b44dbb7b048cb8c210a907b73b4c8)`),!e)throw new Error("ibGib_Context required (E: dc277b47aa4f42118ad14bfc817bf1d5)");if(!a)throw new Error("rel8nName_Context required (E: 87bd7ffa820645e9bdfb17fc726249ba)");if(!t)throw new Error("addr required (E: f6ce4e1325c84aa9b3da31c5b9dcc787)");if(r=r??await this.getLocalUserSpace({}),!r)throw new Error("space falsy and localUserSpace not initialized (E: d6e0b1618eec400e820de6ac37491d39)");await Pr({ibGib_Context:e,rel8nName_Context:a,addr:t,space:r,zeroSpace:this.zeroSpace,fnBroadcast:b(i=>this.fnBroadcast(i),"fnBroadcast"),fnUpdateBootstrap:b(i=>this.fnUpdateBootstrap(i),"fnUpdateBootstrap")}),p&&console.log(`${o} archived '${t.slice(0,32)}...' (I: 767b06c8cadd58c618924f0cd98a1723)`)}catch(i){throw console.error(`${o} ${i.message}`),i}finally{p&&console.log(`${o} complete.`)}}async getConfigAddr({key:e,space:a}){let t=`${this.lc}[${this.getConfigAddr.name}](${e})`;try{if(p&&console.log(`${t} getting...`),a=a??await this.getLocalUserSpace({}),!a)throw new Error("space falsy and could not get local space. (E: b6e7fcc09c6244b99b2e6e6ece398db0)");return gr({key:e,space:a})}catch(r){console.error(`${t} ${r.message}`);return}}fnUpdateBootstrap=b(async e=>{await bt({space:e,zeroSpace:this.zeroSpace})},"fnUpdateBootstrap");fnBroadcast=b(e=>{this._latestSubj.next(e)},"fnBroadcast");async setConfigAddr({key:e,addr:a,space:t}){let r=`${this.lc}[${this.setConfigAddr.name}]`;try{if(t=t??await this.getLocalUserSpace({}),!t)throw new Error("space falsy and localUserSpace not initialized (?) (E: 2149c59ebd584a118304dd54656aa800)");return await wr({key:e,addr:a,space:t,zeroSpace:this.zeroSpace,fnUpdateBootstrap:b(o=>this.fnUpdateBootstrap(o),"fnUpdateBootstrap")})}catch(o){throw console.error(`${r} ${o.message}`),o}}async getCurrentRoot({space:e}){let a=`${this.lc}[${this.getCurrentRoot.name}]`;try{if(e=e??await this.getLocalUserSpace({}),!e)throw new Error("space falsy and localUserSpace not initialized (?) (E: 1f4dc5e9560341a993bf0b28accd75fe)");for(;this.initializing;)p&&console.log(`${a} hacky wait while initializing ibgibs service (I: 5fd759510e584cb69b232259b891cca1)`),await se(100);let t=await this.getSpecialIbGib({type:"roots",space:e});if(!t)throw new Error("Roots not initialized. (E: e7712dc3d183487e98cd44a2b4324bc2)");if(!t.rel8ns)throw new Error("Roots not initialized properly. No rel8ns. (E: 689f47f5d1da4a868d1c1ddd2ff13e17)");if(!t.rel8ns.current)throw new Error("Roots not initialized properly. No current root. (E: 962acd3f60474a329bfbd7682c003916)");if(t.rel8ns.current.length===0)throw new Error("Invalid Roots: empty current root rel8n. (E: fbdc13c157514efa86ade1bf9a38bbd6)");if(t.rel8ns.current.length>1)throw new Error("Invalid Roots: multiple current roots selected. (E: 370fe6e3920a4a1299f879e6fcbbc448)");let r=t.rel8ns.current[0],o=await this.get({addr:r,space:e});if(o.ibGibs?.length===1)return o.ibGibs[0];throw new Error(`could not get current root. addr: ${r} (E: 69de35c5f71e45a1a5d83228e136642b)`)}catch(t){console.error(`${a} ${t.message}`);return}}async setCurrentRoot({root:e,space:a}){let t=`${this.lc}[${this.setCurrentRoot.name}]`;try{if(!e)throw new Error("root required.");if(a=a??await this.getLocalUserSpace({}),!a)throw new Error("space falsy and localUserSpace not initialized (?) (E: 222a3f5b39fc47ccb2a4aa3ddcd49969)");return Er({root:e,space:a,zeroSpace:this.zeroSpace,fnBroadcast:b(r=>this.fnBroadcast(r),"fnBroadcast"),fnUpdateBootstrap:b(r=>this.fnUpdateBootstrap(r),"fnUpdateBootstrap")})}catch(r){throw console.error(`${t} ${r.message}`),r}}async rel8ToCurrentRoot({ibGib:e,linked:a,rel8nName:t,space:r}){let o=`${this.lc}[${this.rel8ToCurrentRoot.name}]`;try{if(r=r??await this.getLocalUserSpace({}),!r)throw new Error("space falsy and localUserSpace not initialized (?) (E: cbc4e519414a405eab7fe470eadbf8f0)");return yr({ibGib:e,linked:a,rel8nName:t,space:r,zeroSpace:this.zeroSpace,fnBroadcast:b(i=>this.fnBroadcast(i),"fnBroadcast"),fnUpdateBootstrap:b(i=>this.fnUpdateBootstrap(i),"fnUpdateBootstrap")})}catch(i){console.error(`${o} ${i.message}`);return}}async rel8ToSpecialIbGib(e){let a=`${this.lc}[${this.rel8ToSpecialIbGib.name}](type:${e.type},rel8nName:${e.rel8nName})`;try{let{type:t,rel8nName:r,ibGibsToRel8:o,ibGibsToUnRel8:i,addrsToUnRel8:n,linked:s,severPast:l,deletePreviousSpecialIbGib:d,space:f}=e;if(f=f??await this.getLocalUserSpace({}),!f)throw new Error("space falsy and localUserSpace not initialized (?) (E: af863928bbc945549ffc4dcca830a70a)");return ft({...e,space:f,zeroSpace:this.zeroSpace,fnUpdateBootstrap:b(h=>this.fnUpdateBootstrap(h),"fnUpdateBootstrap"),fnBroadcast:b(h=>this.fnBroadcast(h),"fnBroadcast")})}catch(t){throw console.error(`${a} ${t.message}`),t}}async registerNewIbGib({ibGib:e,space:a}){let t=`${this.lc}[${this.registerNewIbGib.name}]`;try{let r=y({ibGib:e});if(t=`${t}[${r}]`,a=a??await this.getLocalUserSpace({}),!a)throw new Error("space falsy and localUserSpace not initialized (?) (E: d7e6d609a784449087cbaf1bbfb6b0c2)");return p&&console.log(`${t} starting...`),dt({ibGib:e,space:a,fnBroadcast:b(o=>this.fnBroadcast(o),"fnBroadcast")})}catch(r){throw console.error(`${t} ${r.message}`),r}finally{p&&console.log(`${t} complete.`)}}async pingLatest_Local({ibGib:e,tjpIbGib:a,space:t,useCache:r}){let o=`${this.lc}[${this.pingLatest_Local.name}]`;p&&console.log(`${o} starting...`);try{if(!e){p&&console.log(`${o} ibGib falsy.`);return}if(J({ibGib:e})){console.warn(`${o} tried to ping latest for primitive. returning early... (W: 06c50cfe028cc04cca67e97a48e6fe22)`);return}if(e.ib.startsWith("witness space IonicSpace_V1")){let{spaceId:d}=ze({spaceIb:e.ib}),f=await this.getLocalUserSpace({localSpaceId:d});await this._latestSubj.next({ib:"IbGibTimelineUpdateInfo",latestIbGib:f,latestAddr:y({ibGib:f}),tjpAddr:`${e.ib}^gib`});return}if(t=t??await this.getLocalUserSpace({}),!t){console.warn(`${o} space falsy and localUserSpace not initialized. (W: e6708e58618947a6b66f6a49406cbf35)`);return}let i,n=y({ibGib:e}),s,l=await this.getLatestAddr({ibGib:e,tjp:a,space:t})??n;if(a||(a=await this.getTjpIbGib({ibGib:e,space:t}),a||(console.warn(`${o} tjp not found for ${n}? Should at least just be the ibGib's address itself. (W: 15d9c6daca7e442e968af36b4c18b8f7)`),a=e)),s=y({ibGib:a}),l===n)p&&console.log(`${o} latestAddr === ibGibAddr (I: f38042421fcc3d148a26ed56651c2522)`),i=e;else{p&&console.log(`${o} later version found. ibGibAddr: ${n}
|
|
11
|
-
latestAddr: ${l} (I: 53cabd1643df7d43635af642e4c90922)`);let d=await this.get({addr:l,space:t});if(!d.success||d.ibGibs?.length!==1)throw new Error("latest not found (E: bc54e433573a5a89c6436dc6a3b60922)");i=d.ibGibs[0]}if(i&&l&&s)await this._latestSubj.next({ib:"IbGibTimelineUpdateInfo",latestIbGib:i,latestAddr:l,tjpAddr:s});else{debugger;throw new Error("(UNEXPECTED) latestIbGib, latestAddr and tjpAddr should all be truthy. (E: 20e71fa1a72c45deb1dc5083903a8622)")}}catch(i){console.error(`${o} ${i.message}`)}finally{p&&console.log(`${o} complete.`)}}async persistTransformResult({resTransform:e,force:a,space:t}){let r=`${this.lc}[${this.persistTransformResult.name}]`;try{if(t=t??await this.getLocalUserSpace({}),!t)throw new Error("space falsy and localUserSpace not initialized (?) (E: f8b3d06006874b479240eb45f4015628)");return Te({resTransform:e,force:a,space:t})}catch(o){throw console.error(`${r} ${o.message}`),o}}async get({addr:e,addrs:a,isDna:t,space:r}){let o=`${this.lc}[${this.get.name}]`;try{if(r=r??await this.getLocalUserSpace({}),!r)throw new Error("space falsy and localUserSpace not initialized (?) (E: 86ccdcf3417a45b4a3a8c280fb9a6df7)");return lt({addr:e,addrs:a,isDna:t,space:r})}catch(i){return console.error(`${o} ${i.message}`),Promise.resolve({errorMsg:i.message})}}async put({ibGib:e,ibGibs:a,isDna:t,force:r,space:o}){let i=`${this.lc}[${this.put.name}]`;try{if(o=o??await this.getLocalUserSpace({}),!o)throw new Error("space falsy and localUserSpace not initialized (?) (E: a00eebe0e3d348d09fda62a6be486b6c)");return Kt({ibGib:e,ibGibs:a,isDna:t,force:r,space:o})}catch(n){return console.error(`${i} ${n.message}`),Promise.resolve({errorMsg:n.message})}}async delete({addr:e,isDna:a,space:t}){let r=`${this.lc}[${this.delete.name}]`;try{if(t=t??await this.getLocalUserSpace({}),!t)throw new Error("space falsy and localUserSpace not initialized (?) (E: b4250b0045dc40629447f2cbd162faaa)");return ur({addr:e,isDna:a,space:t})}catch(o){return console.error(`${r} ${o.message}`),Promise.resolve({errorMsg:o.message})}}async getDependencyGraph(e){let a=`${this.lc}[${this.getDependencyGraph.name}]`;try{if(e.space=e.space??await this.getLocalUserSpace({})??null,!e.space)throw new Error("(UNEXPECTED) space falsy and localUserSpace not initialized (?) (E: e2a35a23d12d48ebadcfd4f1a396d6c1)");return
|
|
11
|
+
latestAddr: ${l} (I: 53cabd1643df7d43635af642e4c90922)`);let d=await this.get({addr:l,space:t});if(!d.success||d.ibGibs?.length!==1)throw new Error("latest not found (E: bc54e433573a5a89c6436dc6a3b60922)");i=d.ibGibs[0]}if(i&&l&&s)await this._latestSubj.next({ib:"IbGibTimelineUpdateInfo",latestIbGib:i,latestAddr:l,tjpAddr:s});else{debugger;throw new Error("(UNEXPECTED) latestIbGib, latestAddr and tjpAddr should all be truthy. (E: 20e71fa1a72c45deb1dc5083903a8622)")}}catch(i){console.error(`${o} ${i.message}`)}finally{p&&console.log(`${o} complete.`)}}async persistTransformResult({resTransform:e,force:a,space:t}){let r=`${this.lc}[${this.persistTransformResult.name}]`;try{if(t=t??await this.getLocalUserSpace({}),!t)throw new Error("space falsy and localUserSpace not initialized (?) (E: f8b3d06006874b479240eb45f4015628)");return Te({resTransform:e,force:a,space:t})}catch(o){throw console.error(`${r} ${o.message}`),o}}async get({addr:e,addrs:a,isDna:t,space:r}){let o=`${this.lc}[${this.get.name}]`;try{if(r=r??await this.getLocalUserSpace({}),!r)throw new Error("space falsy and localUserSpace not initialized (?) (E: 86ccdcf3417a45b4a3a8c280fb9a6df7)");return lt({addr:e,addrs:a,isDna:t,space:r})}catch(i){return console.error(`${o} ${i.message}`),Promise.resolve({errorMsg:i.message})}}async put({ibGib:e,ibGibs:a,isDna:t,force:r,space:o}){let i=`${this.lc}[${this.put.name}]`;try{if(o=o??await this.getLocalUserSpace({}),!o)throw new Error("space falsy and localUserSpace not initialized (?) (E: a00eebe0e3d348d09fda62a6be486b6c)");return Kt({ibGib:e,ibGibs:a,isDna:t,force:r,space:o})}catch(n){return console.error(`${i} ${n.message}`),Promise.resolve({errorMsg:n.message})}}async delete({addr:e,isDna:a,space:t}){let r=`${this.lc}[${this.delete.name}]`;try{if(t=t??await this.getLocalUserSpace({}),!t)throw new Error("space falsy and localUserSpace not initialized (?) (E: b4250b0045dc40629447f2cbd162faaa)");return ur({addr:e,isDna:a,space:t})}catch(o){return console.error(`${r} ${o.message}`),Promise.resolve({errorMsg:o.message})}}async getDependencyGraph(e){let a=`${this.lc}[${this.getDependencyGraph.name}]`;try{if(e.space=e.space??await this.getLocalUserSpace({})??null,!e.space)throw new Error("(UNEXPECTED) space falsy and localUserSpace not initialized (?) (E: e2a35a23d12d48ebadcfd4f1a396d6c1)");return ut(e)}catch(t){throw console.error(`${a} ${t.message}`),t}}async getLatestAddr({ibGib:e,addr:a,tjpAddr:t,tjp:r,space:o}){let i=`${this.lc}[${this.getLatestAddr.name}]`;p&&console.log(`${i} starting...`);try{if(!e&&!r&&!t&&!a)throw new Error("ibGib && tjp && tjpAddr && addr are all falsy (E: fe725654342c4d80a33219160b5d81d3)");if(o=o??await this.getLocalUserSpace({}),!o)throw new Error("space falsy and localUserSpace not initialized (?) (E: fd01bb85e91f4c54bfe8b35714d48a38)");let n=await qe({ibGibs:e?[e]:void 0,addrs:a?[a]:void 0,tjpAddrs:t?[t]:void 0,tjps:r?[r]:void 0,space:o});if(!n)throw new Error("resGetLatest falsy (E: 3851bbe4427ae11771f222234e8c6622)");if(!n.data)throw new Error("invalid resGetLatest: data falsy (E: 134e0f1f65edc69c6951c32e00a4bb22)");if(n.data.success){let s=n.data.latestAddrsMap;if(s){let l=Object.keys(s);if(l.length===1)return s[l[0]]||void 0;if(l.length===0)return n.data.addrsNotFound?.length===1,void 0;throw new Error("(UNEXPECTED) latestAddrsMap has multiple entries? We only asked for one. (E: 790518290f6b46729017684698539222)")}else{if(n.data.addrs?.length===1)return n.data.addrs[0];if(n.data.addrsNotFound?.length===1)return}if(n.data.addrsErrored?.length===1){let l=n.data.errors?.join("|")??"[unspecified error(s)] (E: 24f338036aa84ac99e3c39a660207222)";throw new Error(`resGetLatest had error(s): ${l}`)}else throw new Error(`unknown error, invalid resGetLatest: ${$(n)} (E: 6aa5aa225ebf49b588664370cb8feb22)`)}else{let s=n.data.errors?.join("|")??"[unspecified error(s)] (E: dcd6dcd6ec052fd112a4d48f1afa2922)";throw new Error(`resGetLatest had error(s): ${s}`)}}catch(n){throw console.error(`${i} ${n.message}`),n}finally{p&&console.log(`${i} complete.`)}}async getTjpIbGib({ibGib:e,naive:a=!0,space:t}){let r=`${this.lc}[${this.getTjpIbGib.name}]`;try{if(t=t??await this.getLocalUserSpace({}),!t)throw new Error("space falsy and localUserSpace not initialized (?) (E: 0ec806bd2c5641c4844a3698c922e1f6)");return t?$r({ibGib:e,naive:a,space:t}):(console.warn(`${r} space falsy and localUserSpace not initialized.`),e)}catch(o){throw console.error(`${r} ${o.message}`),o}}async getSpecialIbGib({type:e,initialize:a,space:t,lock:r,dontWarnIfNotExist:o}){let i=`${this.lc}[${this.getSpecialIbGib.name}]`;try{if(t=t??await this.getLocalUserSpace({lock:r}),!t)throw new Error("space falsy and localUserSpace not initialized (?) (E: e08e85d8422e479f9d101194fd26cbda)");for(;this.initializing;)p&&console.log(`${i} hacky wait while initializing ibgibs service (I: 497d4becb94f4515a2ec389630420d6c)`),await se(100);return mr({type:e,initialize:a,space:t,zeroSpace:this.zeroSpace,fnUpdateBootstrap:b(n=>this.fnUpdateBootstrap(n),"fnUpdateBootstrap"),fnBroadcast:b(n=>this.fnBroadcast(n),"fnBroadcast"),fnGetInitializing:b(()=>this._initializing,"fnGetInitializing"),fnSetInitializing:b(n=>{this._initializing=n},"fnSetInitializing"),dontWarnIfNotExist:o})}catch(n){return console.error(`${i} ${n.message}`),null}}async getSpecialRel8dIbGibs({type:e,rel8nName:a,space:t}){let r=`${this.lc}[${this.getSpecialRel8dIbGibs.name}]`;try{if(t=t??await this.getLocalUserSpace({}),!t)throw new Error("space falsy and localUserSpace not initialized (?) (E: 476c7d7c68f34197b740be5df09238a2)");return Zt({type:e,rel8nName:a,space:t})}catch(o){throw console.error(`${r} ${o.message}`),o}}async getPasswordForSecrets({secretIbGibs:e,fnPromptPassword:a,dontPrompt:t,checkCacheFirst:r,cacheAfter:o}){let i=`${this.lc}[${this.getPasswordForSecrets.name}]`,n=!1;try{let s=0;for(;this.isPrompting;)if(p&&console.log(`${i} hacky wait while already prompting (I: 852007c8549d42c096defe0105b5e2e6)`),await se(100),s++,s>1e3)throw n=!0,new Error("attempted to prompt for user password, but already prompting for quite awhile now. (E: 8bd4dc907422dd95862b2038ffe2b822)");let l=e.map(w=>y({ibGib:w})).join("");if(r){let w=await this.getCachedSecretPassword({cacheKey:l});if(w)return p&&console.log(`${i} using cachedPassword.`),w}if(t)return null;this.isPrompting=!0;let d=[];for(let w=0;w<e.length;w++){let S=e[w];if(!S.data)throw new Error("invalid secretIbGib. data falsy.");if(S.data.type==="password"){let _=S.data;d.push(_)}else throw new Error("Only password secrets are implemented atm.")}let f="-------------",h=d.map(w=>`name: ${w.name}
|
|
12
12
|
description: ${w.description}
|
|
13
13
|
hint: ${w.hint}`).join(`
|
|
14
14
|
`+f+`
|
|
@@ -25,17 +25,17 @@ latestAddr: ${l} (I: 53cabd1643df7d43635af642e4c90922)`);let d=await this.get({a
|
|
|
25
25
|
`)}.`),console.warn(`${t} putting storeOnlyIbGibs (${e.storeOnlyIbGibs.length}): ${e.storeOnlyIbGibs.map(l=>y({ibGib:l})).join(`
|
|
26
26
|
`)}.`),!(await this.put({ibGibs:e.storeOnlyIbGibs,space:o})).success)throw new Error("Couldn't save storeonly ibGibs locally? (E: c5ab044718ab42bba27f5852149b7ddc)");await i(e.storeOnlyIbGibs)}else p&&console.log(`${t} no storeOnlyIbGibs`);let n=Object.values(e.ibGibsMergeMap??{});for(let s=0;s<n.length;s++){let l=n[s];p&&console.log(`${t} registering latestIbGib in localUserSpace: ${y({ibGib:l})}`),await this.registerNewIbGib({ibGib:l,space:o})}p&&console.log(`${t} complete.`)}catch(r){throw console.error(`${t} ${r.message}`),r}}async _handleSyncStatus_Complete({sagaInfo:e}){let a=`${this.lc}[${this._handleSyncStatus_Complete.name}]`;try{await this._finalizeSyncSaga({sagaInfo:e}),Object.values(this.sagaInfoMap).every(r=>r.complete)&&await this._finalizeAllSyncSagas_NoThrow({})}catch(t){console.error(`${a} ${t.message}`),await this._finalizeAllSyncSagas_NoThrow({error:t})}}async _getLatestIbGibsWithTjps({ibGibs:e,warnIfMultipleLocalTimelines:a}){let t=`${this.lc}[${this._getLatestIbGibsWithTjps.name}]`;try{let r=[],o=e.filter(s=>s.data?.isTjp||(s.rel8ns?.tjp?.length??0)>0||s.gib?.includes($e)),i=Ja({items:o,keyFn:b(s=>H({gib:s.gib}).tjpGib??"","keyFn")}),n=Object.keys(i);for(let s=0;s<n.length;s++){let l=i[n[s]];if(a){let f={};for(let h of l){let u=h.data?.isTjp?-1:h.data?.n??-2;if(u===-2)throw new Error("ibGibFrame.data.n is undefined. We're only working with those with n right now!");f[u]=(f[u]??0)+1}Object.values(f).some(h=>h>1)&&console.warn(`${t} we have multiple local timelines.`)}let d=l.sort((f,h)=>(f.data?.n??-1)>(h.data?.n??-1)?1:-1)[l.length-1];r.push(d)}return r}catch(r){throw console.error(`${t} ${r.message}`),r}}async enableAutosync({tjpIbGibs:e}){let a=`${this.lc}[${this.enableAutosync.name}]`;try{if(p&&console.log(`${a} starting...`),(e??[]).length===0)throw new Error("tjps required. (E: 3e3bb6ef1a3d483795440e0efcef8e04)");if(e.some(s=>!s.data?.isTjp)){let s=e.filter(l=>!l.data?.isTjp).map(l=>y({ibGib:l}));console.warn(`${a} unrelating tjp whose data.isTjp is false. tjpAddrs: ${s.join("|")} (W: 03b3d7a94e6d4ccaace3df4657a82322)`)}let t=e.map(s=>y({ibGib:s})),r=t.filter(s=>!this._alwaysAutosyncTjpAddrsCache.has(s));if(r.length===0){console.warn(`${a} all tjpAddrs already auto syncing. tjpAddrs: ${t.join(`
|
|
27
27
|
`)} (W: 7fbe51c8187840efa1b259417053bd22)`);return}let o=await this.getSpecialIbGib({type:"autosyncs"});if(!o?.rel8ns)throw new Error("autosyncsIbGib?.rel8ns falsy (E: 963313139e919c09aade8b8c412d7b23)");let i=o.rel8ns[Se]??[];if(r=t.filter(s=>!i.includes(s)),r.length===0){console.error(`${a} (UNEXPECTED) all tjpAddrs already auto syncing per special ibgib. Proceeding without throwing here, but this means that the cache is out of sync with the special ibgib also. tjpAddrs: ${t.join(`
|
|
28
|
-
`)} (E: 574e163118f043fa8c50cfd575e62122)`);return}let n=r.map(s=>e.filter(l=>y({ibGib:l})===s)[0]);await this.rel8ToSpecialIbGib({type:"autosyncs",ibGibsToRel8:n,rel8nName:Se}),r.forEach(s=>{this._alwaysAutosyncTjpAddrsCache.add(s)})}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}async disableAutosync({tjpIbGibs:e}){let a=`${this.lc}[${this.disableAutosync.name}]`;try{if(p&&console.log(`${a} starting...`),(e??[]).length===0)throw new Error("tjps required. (E: 7b7e34e20b5848b882e14ff8b6c53622)");if(e.some(l=>!l.data?.isTjp)){let l=e.filter(d=>!d.data?.isTjp).map(d=>y({ibGib:d}));console.warn(`${a} unrelating tjp whose data.isTjp is false. tjpAddrs: ${l.join("|")} (W: 7babdf67dda54a2a9905c6c45ef36522)`)}let t=e.map(l=>y({ibGib:l})),r=await this.getSpecialIbGib({type:"autosyncs"});if(!r?.rel8ns)throw new Error("(UNEXPECTED) invalid autosyncIbGibs. rel8ns falsy. (E: 5f6211c8a41896003db8bfc40230af22)");let o=r.rel8ns[Se]??[],i=[];if(t.forEach(l=>{o.includes(l)?(p&&console.log(`${a} disabling autosync for ${l} (I: 63087804e6c436143971e5039b5e5e22)`),i.push(l)):p&&console.log(`${a} already NOT auto syncing ${l} (I: 88e00fea009964cd2bab4cc580aa2922)`)}),i.length===0){console.warn(`${a} tried to disable autosync for tjpAddrs but none were valid. returning early. (W: f9bdda90d906471aa56804d76b6e9522)`);return}let n=Array.from(new Set(i)),s=n.map(l=>e.filter(d=>y({ibGib:d})===l)[0]);await this.rel8ToSpecialIbGib({type:"autosyncs",ibGibsToUnRel8:s,rel8nName:Se}),n.forEach(l=>{this._alwaysAutosyncTjpAddrsCache.delete(l)})}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}async loadAutoSyncs(){let e=`${this.lc}[${this.loadAutoSyncs.name}]`;try{p&&console.log(`${e} starting...`);let a=await this.getSpecialIbGib({type:"autosyncs"});if(!a){console.warn(`${e} autosyncsIbGib ("autosyncs") special ibgib not found not found. maybe fine, no idea. (W: 30ad2df15b38999106883358722fd425)`);return}a.rel8ns&&(this._alwaysAutosyncTjpAddrsCache=new Set(a.rel8ns[Se]))}catch(a){throw console.error(`${e} ${a.message}`),a}finally{p&&console.log(`${e} complete.`)}}autosyncIsEnabled({tjp:e}){let a=`${this.lc}[${this.autosyncIsEnabled.name}]`;try{return p&&console.log(`${a} starting...`),this._alwaysAutosyncTjpAddrsCache.has(y({ibGib:e}))}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}};var ue=".",Q="utf8",me="ibgib",ge=`000_${Ie}`,K="ibgibs",Z="meta",ee="bin",te="dna",we="l",Ct="This is a filesystem space. The ibgib data contains settings for the space itself, and the witness ibgib object interfaces with a back end that is hierarchical like a filesystem. Descend from this class if you're working with a similar space.",so=240,xt="/",co=32;function ha(){return async({title:c,msg:e})=>{let a=`[${ha.name}]`,t;try{if(!e)throw new Error("msg required. (E: c39d1656b6b803e11bad46efe15b6823)");t=await He({title:c,msg:e})}catch(r){throw console.error(`${a} ${m(r)}`),r}return t||t===""?t:null}}b(ha,"getFnPrompt");var xe=!1,Lt=class c extends Fr{static{b(this,"SpaceBase_V1")}lc=`[${c.name}]`;cacheSvc;constructor(e,a){super(e,a),this.initialized=this.initialize()}async witnessImpl(e){let a=`${this.lc}[${this.witnessImpl.name}]`;return xe&&console.log(`${a}`),await this.routeAndDoCommand({cmd:e.data.cmd,cmdModifiers:e.data.cmdModifiers??[],arg:e})}routeAndDoCommand({cmd:e,cmdModifiers:a,arg:t}){let r=`${this.lc}[${this.routeAndDoCommand.name}]`;switch(e){case de.get:return(a??[]).length===0?this.get(t):a.includes("can")?this.canGet(t):a.includes("latest")?a.includes("addrs")?this.getLatestAddrs(t):this.getLatestIbGibs(t):a.includes("tjps")?a.includes("addrs")?this.getTjpAddrs(t):this.getTjpIbGibs(t):a.includes("addrs")?this.getAddrs(t):a.includes("dependency-graph")?this.getDependencyGraph(t):this.get(t);case de.put:return(a??[]).length===0?this.put(t):a.includes("can")?this.canPut(t):this.put(t);case de.delete:return(a??[]).length===0?this.delete(t):a.includes("can")?this.canDelete(t):this.delete(t);default:throw new Error(`${r} unknown cmd: ${e}. cmdModifiers: ${a}`)}}get(e){return this.getImpl(e)}put(e){return this.putImpl(e)}delete(e){return this.deleteImpl(e)}deleteImpl(e){let a=`${this.lc}[${this.deleteImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getAddrs(e){return this.getAddrsImpl(e)}getAddrsImpl(e){let a=`${this.lc}[${this.getAddrsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getLatestIbGibs(e){return this.getLatestIbGibsImpl(e)}getLatestIbGibsImpl(e){let a=`${this.lc}[${this.getLatestIbGibsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getLatestAddrs(e){return this.getLatestAddrsImpl(e)}getLatestAddrsImpl(e){let a=`${this.lc}[${this.getLatestAddrsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getTjpIbGibs(e){return this.getTjpIbGibsImpl(e)}getTjpIbGibsImpl(e){let a=`${this.lc}[${this.getTjpIbGibsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getTjpAddrs(e){return this.getTjpAddrsImpl(e)}getTjpAddrsImpl(e){let a=`${this.lc}[${this.getTjpAddrsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}canGet(e){return this.canGetImpl(e)}canGetImpl(e){let a=`${this.lc}[${this.canGetImpl.name}]`;throw new Error(`${a} not implemented in base class`)}canPut(e){return this.canPutImpl(e)}canPutImpl(e){let a=`${this.lc}[${this.canPutImpl.name}]`;throw new Error(`${a} not implemented in base class`)}canDelete(e){return this.canPutImpl(e)}canDeleteImpl(e){let a=`${this.lc}[${this.canDeleteImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getDependencyGraph(e){return this.getDependencyGraphImpl(e)}async getDependencyGraphImpl(e){let a=`${this.lc}[${this.getDependencyGraphImpl.name}]`;try{if(xe&&console.log(`${a} starting... (I: 0e5fe807a0169224781f6c2833f34826)`),!e.data)throw new Error("(UNEXPECTED) arg.data falsy? (E: 45eba816295a97a0e55f981861a03f26)");if((e.data.ibGibAddrs??[]).length===0)throw new Error("arg.data.ibGibAddrs is falsy/empty (E: 70adc939c7b80c9938d8fa18fd7c5826)");let t={space:this,ibGibAddrs:e.data.ibGibAddrs,live:e.data.live||!0},r=await wt(t),o=Object.values(r),i={optsAddr:y({ibGib:e}),count:o.length,addrs:Object.keys(r)};return this.resulty({resultData:i,ibGibs:o})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{xe&&console.log(`${a} complete.`)}}async validateWitnessArg(e){let a=`${this.lc}[${this.validateWitnessArg.name}]`,t=[];try{if(t=await super.validateWitnessArg(e),!e.data)return t.push("arg.data required (E: 8ee544d7d88a45c6adcbc15838a283a7)"),t;if(!this.data)return t.push("this.data required (E: 64f80642d7de44329355d6f907e272c8)"),t;let{cmd:r,ibGibAddrs:o}=e.data,i=e.data.cmdModifiers??[],n=e.ibGibs;r||t.push("arg.data.cmd required (E: 72a11ee87a0d4896bcacd65a9c0284d9)"),Object.values(de).includes(r)||t.push(`unknown arg.data.cmd: ${r}. (E: 95282ce61e97429f8049e61ec9f14f0b)`);let s=o?.length??0;if(r===de.get&&!i?.includes("addrs")&&!i?.includes("latest")&&s===0&&t.push(`ibGibAddrs required when cmd is ${r}. (E: ee55a3f60b90423cbe054f27c34ab7d5)`),r===de.put){xe&&console.log(`${a} validate put cmd`);let l=n?.length??0;if(l===0)t.push(`ibGibs required when cmd is ${r}. (E: b3a422169f7344a48a1d44e7ad1ba44e)`);else if(this.data.validateIbGibAddrsMatchIbGibs)if(xe&&console.log(`${a} validateIbGibAddrsMatchIbGibs true, so doing so.`),l!==s)t.push("ibGibsLength !== ibGibAddrsLength and this.data.validateIbGibAddrsMatchIbGibs is true. (E: 6c6bf824ab32443aa4d6b8bf4f8113dd)");else{xe&&console.log(`${a} validateIbGibAddrsMatchIbGibs, lengths match. validating intrinsically`);let d=o.concat();for(let f=0;f<n.length;f++){let h=n[f],u=await X({ibGib:h});if(u?.length??!1){let g=y({ibGib:h});u.forEach(E=>t.push(`(${g}) ERROR: ${E}`))}else{let g=y({ibGib:h}),E=d.indexOf(g);if(E===-1){t.push(`ibGibAddrs don't map to calculated ibGib addrs. calculated Addr: (${g}) (E: b21b3a7a74db43e5a8722acc97274646)`);break}else d.splice(E,1)}}}}return t}catch(r){throw console.error(`${a} ${m(r)}`),r}finally{t?.length>0&&console.error(`${a} errors: ${t}`)}}async argy({argData:e,ibMetadata:a,noTimestamp:t,ibGibs:r}){let o=await Pe({argData:e,ibMetadata:a,noTimestamp:t});return r&&(o.ibGibs=r),o}async resulty({resultData:e,ibGibs:a}){let t=await yt({ibMetadata:Tr({space:this}),resultData:e});return a&&(t.ibGibs=a),t}};var I=!1,lo={version:"3",uuid:ot,name:Ie,classname:"FilesystemSpace_V1",baseDir:ue,encoding:Q,baseSubPath:me,spaceSubPath:ge,ibgibsSubPath:K,metaSubPath:Z,binSubPath:ee,dnaSubPath:te,longSubPath:we,longPathLength:so,mitigateLongPaths:!0,persistOptsAndResultIbGibs:!1,validateIbGibAddrsMatchIbGibs:!1,longPollingIntervalMs:_e,allowPrimitiveArgs:!1,catchAllErrors:!0,description:Ct,trace:!1};var Qe=class c extends Lt{static{b(this,"FilesystemSpace_V1")}lc=`[${c.name}]`;ibGibs={};pathExistsMap={};constructor(e,a){super(e??O(lo),a)}async validateWitnessArg(e){let a=`${this.lc}[${this.validateWitnessArg.name}]`,t=[];try{t=await super.validateWitnessArg(e)||[],e.data?.cmd==="put"&&(e.ibGibs||[]).length===0&&t.push('when "put" cmd is called, ibGibs required.'),e.data?.cmd==="get"&&(e.data?.ibGibAddrs||[]).length===0&&t.push('when "get" cmd is called, ibGibAddrs required.')}catch(r){throw console.error(`${a} ${m(r)}`),r}finally{t?.length>0&&console.error(`${a} errors: ${t}`)}return t}async initialize(){let e=`${this.lc}[${this.initialize.name}]`;try{I&&console.log(`${e} starting...`),this.data||(this.data=O(lo),this.data=this.data),this.data?.classname||(this.data.classname=c.name),this.data.baseDir||(this.data.baseDir=ue),this.data.encoding||(this.data.encoding=Q),this.data.baseSubPath||(this.data.baseSubPath=me),this.data.spaceSubPath||(this.data.spaceSubPath=ge),this.data.ibgibsSubPath||(this.data.ibgibsSubPath=K),this.data.metaSubPath||(this.data.metaSubPath=Z),this.data.binSubPath||(this.data.binSubPath=ee),this.data.dnaSubPath||(this.data.dnaSubPath=te),this.ib=ht({space:this,classname:c.name}),this.gib=await q({ibGib:this})}catch(a){console.error(`${e} ${m(a)}`)}finally{I&&console.log(`${e} complete.`)}}hasInCache({addr:e}){return J({gib:C({ibGibAddr:e}).gib})?Promise.resolve(!1):Object.keys(this.ibGibs).includes(e)?Promise.resolve(!0):this.cacheSvc?this.cacheSvc.has({addr:e}):Promise.resolve(!1)}async putInCache({addr:e,ibGib:a}){let t=`${this.lc}[${this.putInCache.name}][${e}]`;try{if(I&&console.log(`${t} starting...`),!a)throw new Error("ibGib required (E: 993e26fe40894bab9feccac3938f37df)");if(J({ibGib:a})){I&&console.log(`${t} skipping caching primitive (I: a04dfb691582a4db8a0bfecfefe5e622)`);return}else I&&console.log(`${t} caching addr (I: b996a306f256ee5f39db1e2f5d515c22)`);this.ibGibs[e]=a,this.cacheSvc&&await this.cacheSvc.put({addr:e,ibGib:a})}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{I&&console.log(`${t} complete.`)}}async getFromCache({addr:e}){let a=`${this.lc}[${this.getFromCache.name}]`;try{I&&console.log(`${a} starting...`);let t=this.ibGibs[e];return!t&&this.cacheSvc&&(t=(await this.cacheSvc.get({addr:e}))?.ibGib),t}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{I&&console.log(`${a} complete.`)}}deleteFromCache({addr:e}){let a=`${this.lc}[${this.getFromCache.name}]`;try{return I&&console.log(`${a} starting...`),delete this.ibGibs[e],Promise.resolve()}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{I&&console.log(`${a} complete.`)}}async getImpl(e){let a=`${this.lc}[${this.getImpl.name}]`,t=[],r={optsAddr:y({ibGib:e})},o;try{if(!e.data)throw new Error("arg.data is falsy");let{ibGibAddrs:i,isDna:n}=e.data;i||=[];let s=i.filter(d=>fe({addr:d})),l=i.filter(d=>!s.includes(d));I&&console.log(`${a} getting non-bin ibgibs. ibGibAddrsNonBin: ${l}`);for(let d=0;d<l.length;d++){let f=l[d];if(!e.data.force&&await this.hasInCache({addr:f})){I&&console.log(`${a} YES found in naive cache. (I: 0b23f394fd944c2a96df3543dd0a59c5)`);let h=await this.getFromCache({addr:f});if(!h)throw new Error("(UNEXPECTED) we had in cache but failed to retrieve? (E: 4af334f7a90cb22ffa3b549d0db19a22)");t.push(h)}else{let h=await this.getFile({addr:f,isDna:n});h?.success&&h.ibGib?(await this.putInCache({addr:f,ibGib:h.ibGib}),t.push(h.ibGib)):(o||(o=[]),o.push(f))}}for(let d=0;d<s.length;d++){let f=s[d],{binHash:h,binExt:u}=aa({addr:f});I&&console.log(`${a} getting binHash.binExt: ${h}.${u}`);let g=await this.getFile({addr:f});g?.success&&g.ibGib?(I&&console.log(`${a} getResult.success. ibGib.data?.length: ${g.ibGib.data?.length}`),t.push(g.ibGib)):(I&&console.log(`${a} not found in files. (binData is not cached atm)`),o||(o=[]),o.push(f))}o&&o.length>0?(I&&console.log(`${a}[${this.data.uuid.substring(0,8)}] notFoundIbGibAddrs: ${o} (I: 10f7e35e75445a1d64b353851d00b923)`),r.addrsNotFound=o,r.errors??=[],r.errors.push("notFoundIbGibAddrs.length > 0 (E: e7eadcfa2f4643238590469bc917a35c)"),r.success=!1):r.success=!0}catch(i){let n=m(i);console.error(`${a} error: ${n}`),r.errors=[n]}try{let i=await this.resulty({resultData:r});return t.length>0&&(i.ibGibs=t),i}catch(i){throw console.error(`${a} ${m(i)}`),i}}async putImpl(e){let a=`${this.lc}[${this.putImpl.name}]`,t={optsAddr:y({ibGib:e})},r=[];try{if(I&&console.log("validating arg and internal state..."),!e.data)throw new Error("arg.data required. (E: d64a46e5efab4b09b57850ecf0854386)");if(e.ibGibs?.length===0)throw new Error("arg.ibGibs required. (E: b4930d564b284fb9b26b542f14143a28)");return I&&console.log("arg and internal state validated...calling impl func"),await this.putIbGibsImpl(e)}catch(i){let n=m(i);console.error(`${a} error: ${n}`),t.errors=r.concat([n]),t.success=!1}return await this.resulty({resultData:t})}async putIbGibsImpl(e){let a=`${this.lc}[${this.putIbGibsImpl.name}]`,t={optsAddr:y({ibGib:e})},r=[],o=[],i=[];try{if(!e.data)throw new Error("arg.data is falsy (E: aae5757c158d4a799deb7fca9d6245f0)");let{isDna:s,force:l}=e.data,d=e.ibGibs||[],f=[];for(let h=0;h<d.length;h++){let u=d[h],g=y({ibGib:u});I&&console.log(`${a} checking to see if already exists...`);let E=await this.getFile({addr:g,isDna:s});if(E?.success&&E.ibGib)if(I&&console.log(`${a} already exists...`),l){I&&console.log(`${a} Forcing save of already put addr: ${g} (I: 325f363e5d438b43c24b810c150e4e22)`);let w=await this.putFile({ibGib:u,isDna:s});w.success?s||await this.putInCache({addr:g,ibGib:u}):(r.push(w.errorMsg||`${a} error putting ${g}`),i.push(g))}else I&&o.push(`${a} skipping (non-force) of already exists addr: ${g} (W: b7fbe22473014dd090db88aee631fecb)`),f.push(g);else{I&&console.log(`${a} does NOT already exist...`);let w=await this.putFile({ibGib:u,isDna:s});w.success?s||await this.putInCache({addr:g,ibGib:u}):(r.push(w.errorMsg||`${a} error putting ${g}`),i.push(g))}}f.length>0&&(t.addrsAlreadyHave=f),o.length>0&&(t.warnings=o),r.length===0?t.success=!0:(t.errors=r,t.addrsErrored=i)}catch(s){let l=m(s);console.error(`${a} error: ${l}`),t.errors=r.concat([l]),t.addrsErrored=i,t.success=!1}return await this.resulty({resultData:t})}async deleteImpl(e){let a=`${this.lc}[${this.deleteImpl.name}]`,t={optsAddr:y({ibGib:e})},r=[],o=[],i=[],n=[];try{if(!e.data)throw new Error("arg.data is falsy");let{isDna:l}=e.data,d=e.data.ibGibAddrs||[];for(let f=0;f<d.length;f++){let h=d[f];await this.deleteFromCache({addr:h});let u=await this.deleteFile({addr:h,isDna:l});u?.success?i.push(h):(r.push(u.errorMsg||`delete failed: addr (${h})`),n.push(h))}if(o.length>0&&(t.warnings=o),r.length===0)t.success=!0,t.addrs=i;else if(t.errors=r,t.addrsErrored=n,i.length>0){let f=`some addrs (${i.length}) were indeed deleted, but not all. See result addrs and addrsErrored.`;t.warnings=(t.warnings||[]).concat([f])}}catch(l){let d=m(l);console.error(`${a} error: ${d}`),t.errors=r.concat([d]),t.addrsErrored=n,t.success=!1}return await this.resulty({resultData:t})}async getAddrsImpl(e){let a=`${this.lc}[${this.getAddrsImpl.name}]`;throw new Error(`${a} not implemented. (E: 74dd50ce4b564559bc44d6c08d446cb3)`)}async canGetImpl(e){let a=`${this.lc}[${this.canGetImpl.name}]`,t={optsAddr:y({ibGib:e})};try{throw new Error("not implemented (E: 2a45977c584c6bbbc4f164c16106bd22)")}catch(o){let i=m(o);console.error(`${a} error: ${i}`),t.errors=[i]}return await this.resulty({resultData:t})}async canPutImpl(e){let a=`${this.lc}[${this.canPutImpl.name}]`,t={optsAddr:y({ibGib:e})};try{throw new Error("not implemented (E: 25a005d496efc69faefdec155ffb4a22)")}catch(o){let i=m(o);console.error(`${a} error: ${i}`),t.errors=[i]}return await this.resulty({resultData:t})}async canDeleteImpl(e){let a=`${this.lc}[${this.canDeleteImpl.name}]`;throw new Error(`${a} not implemented (E: a3306138b4ac429ba5f8f293ad7dd07b)`)}async getLatestAddrsImpl(e){let a=`${this.lc}[${this.getLatestAddrsImpl.name}]`,t={optsAddr:y({ibGib:e})};try{if(I&&console.log(`${a} starting...`),!e.data)throw new Error("arg.data required (E: cd92cb965d711c8014455c69e898ac23)");if(!e.data.ibGibAddrs)throw new Error("arg.data.ibGibAddrs required (E: 2d0824f9b8aec916a751ef17e2d4a823)");if(e.data.ibGibAddrs.length===0)throw new Error("arg.data.ibGibAddrs required to be non-zero (E: 2d0824f9b8aec916a751ef17e2d4a823)");let r=new Set,o=new Set,i=new Set;t.latestAddrsMap={};for(let n=0;n<e.data.ibGibAddrs.length;n++){let s=e.data.ibGibAddrs[n],l=await this.getFile({addr:s});if(l?.success&&l.ibGib){let d=l.ibGib,f=await this.getLatestAddrImpl({ibGib:d});f?(r.add(f),t.latestAddrsMap[s]=f):(console.warn(`expecting latestAddr to either be assigned or throw. Adding addr (${s}) to addrsErrored. (W: 35c3712b1a1e579ccf28c389eb2ecc22)`),i.add(s))}else if(l?.success)o.add(s),t.latestAddrsMap[s]=null;else if(l.errorMsg)i.add(s);else throw new Error(`unknown (invalid) getResult: ${$(l)} (E: 2674ad5d30294be29a3d3fdcf54ef6d9)`)}t.addrs=r.size>0?[...r]:void 0,t.addrsErrored=i.size>0?[...i]:void 0,t.addrsNotFound=o.size>0?[...o]:void 0,t.success=!0}catch(r){let o=m(r);console.error(`${a} error: ${o}`),t.errors=[o]}try{return await this.resulty({resultData:t})}catch(r){throw console.error(`${a}[resulty] ${m(r)}`),r}}async getLatestAddrImpl({ibGib:e,ibGibAddr:a}){let t=`${this.lc}[${this.getLatestAddrImpl.name}]`;I&&console.log(`${t} starting...`);try{if(!e&&!a)throw new Error("either ibGib or ibGibAddr required (E: 1f8f0cb61d1b4c708b06762048735c22)");if(e&&a&&y({ibGib:e})!==a)throw new Error("(UNEXPECTED) both ibGib and ibGibAddr provided but they don't match? (E: 01d1938252ef49b53d41d58abfaac523)");a||=y({ibGib:e});let{ib:r,gib:o}=C({ibGibAddr:a});if(!o)throw new Error("(UNEXPECTED) gib falsy? (E: d2506b99162e27348310f8e7e68e4523)");if(J({gib:o}))return console.warn(`${t} incoming ibGibAddr is primitive. Why are we calling getLatest on a primitive? returning incoming addr. (W: 57fcf479d5cc48d393841ec3d53587fa)`),a;if(["fork","mut8","rel8"].includes(r))return I&&console.log(`${t} probably is dna (ib === fork/mut8/rel8). returning incoming ibGibAddr early. (I: 2081628936de6a36bbb51224f0223523)`),a;let n=H({ibGibAddr:a}),{tjpGib:s}=n;s||=o;let l=await this.getMetaStoneAddrs({tjpGib:s,ibGibAddr:a});if(l.length===0)return I&&console.warn(`${t} no metastones found for given ibGibAddr (${a}). returning incoming ibGibAddr (W: a6a35cbbf40745e8a3e202226bb457ff)`),a;let f=l.map(_=>[_,C({ibGibAddr:_}).ib]).map(([_,k])=>[_,ct({ib:k})]).sort((_,k)=>{let[A,v]=_,[Qi,tt]=k;return v.n>tt.n?-1:v.n<tt.n?1:v.timestampInTicks>tt.timestampInTicks?-1:v.timestampInTicks<tt.timestampInTicks?1:0});if(I&&(console.log(`${t} console.dir(metaStoneAddrsAndIbInfos_descending)... (I: 1bb5e7d994248e8b6559ca2863c72123)`),console.dir(f)),f.length===0)throw new Error("(UNEXPECTED) metaStoneAddrsAndIbInfos_descending is empty? earlier in the function there should have been a check. did getMetaStoneAddrs return a populated list but no stones were found? (E: 63c035ebed77741f2330c7a625823f23)");let[h,u]=f[0];I&&console.log(`${t} [latestMetaStoneAddr, latestMetaStoneInfo]: ${[h,u]} (I: 1307ca46b4abd62c7a30fe87c08fa923)`);let g,E=await this.getFile({addr:h,isDna:!1});if(E?.success&&E.ibGib){g=E.ibGib;let _=await hr({ibGib:g})??[];if(_.length>0)throw new Error(`invalid metastone (${h}) for tjpGib (${s}). errors: ${_.join("|")} (E: 7fa7c6fa696d860cc7a9148861f96123)`)}else throw new Error(`(UNEXPECTED) we just found a metastone addr (${h}) that was read from the directory's contents, but we can't get the file? (E: 3b934b4adcd9d0efee7820f8d4012e23)`);let S=g.rel8ns[fr].at(0);if(!S)throw new Error("metastone passed validation but latestMetaStoneRel8ns[META_STONE_TARGET_REL8N_NAME].at(0) is empty? (E: c188ec0089ad86efe4d925c118599d23)");return S}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{I&&console.log(`${t} complete.`)}}async persistOptsAndResultIbGibs({arg:e,result:a}){let t=`${this.lc}[${this.persistOptsAndResultIbGibs.name}]`;(I||this.data?.trace)&&console.log(`${t} doing arg?.data?.cmd: ${e?.data?.cmd}, result?.data?.success: ${a?.data?.success}`);let r=[e,a??ye],o=await Pe({argData:{cmd:"put",catchAllErrors:!0,ibGibAddrs:r.map(n=>y({ibGib:n}))}});o.ibGibs=r;let i=await this.putIbGibsImpl(o);if(!i?.data)throw new Error("resPut.data falsy (E: f3115254240b8eff6cd82878a4a35a23)");(!i.data.success||i.data.errors)&&console.error(`${t} Errors persisting arg & result: ${(i.data?.errors??["unknown errs"]).join(`
|
|
29
|
-
`)}. (E: 65ef314a4f8e445d851dab5b290e9a03)`)}async ensurePermissions(){let e=`${this.lc}[${this.ensurePermissions.name}]`,a="ibgib_permissionRequested_ensurePermissions";try{return!0}catch(t){return console.error(`${e} Dont have permissions... error: ${m(t)}`),!1}}async ensureAllDirsExist(){let e=`${this.lc}[${this.ensureAllDirsExist.name}]`;console.warn(`${e} not implemented in base class (W: c1b63ec036134db5960e0d3ea169d15b)`)}getTjpSubpath({viaTargetAddr:e,viaTargetTjpGib:a,viaMetaStoneAddr:t,pathSeparator:r=xt}){let o=`${this.lc}[${this.getTjpSubpath.name}]`;try{if(I&&console.log(`${o} starting... (I: c65dabcf47acf6d6881087b404861e23)`),!e&&!a&&!t)throw new Error("either viaTargetAddr/TargetTjpGib/metaStoneAddr required (E: a784c4f0369e6e38eafcdf3289c38523)");if(!this.data)throw new Error("(UNEXPECTED) this.data falsy? (E: 441ff1b038366a1c07a94cf128454923)");if(r||(console.warn(`${o} pathSeparator falsy? using default: "${xt}" (W: 295d21ab226743dd83a721f78870ab6e)`),r=xt),a||(t?a=ct({ib:C({ibGibAddr:t}).ib}).tjpGib:a=H({ibGibAddr:e}).tjpGib),!a)throw new Error("targetTjpGib could not be gotten. are you sure this has a tjp? or is the ibGib a stone? (E: e507f1996aaa68a229a3158b3dbc5723)");let{baseSubPath:i,spaceSubPath:n,ibgibsSubPath:s}=this.data;return`${i}${r}${n}${r}${s}${r}${a}`}catch(i){throw console.error(`${o} ${m(i)}`),i}finally{I&&console.log(`${o} complete.`)}}async buildPath({addr:e,isDna:a,isBin:t,ensureMetaStonePaths:r,pathSeparator:o="/",pretendItsALongPath:i=!1,addrIsForAMetaStone:n}){let s=`${this.lc}[${this.buildPath.name}]`;try{I&&console.log(`${s} starting... (I: d630823bbe0e1a1aa3592103768e8423)`);let l=this.data;if(!l)throw new Error("this.data required (E: d2553d11b637577aa7b074387b613f23)");if(!e)throw new Error("addr required (E: 68149eccdbe2e6ef95eb50d588d68423)");let d;o||="/";let{ib:f,gib:h}=C({ibGibAddr:e});if(!h)throw new Error("gib required in building paths. if it's a primitive ibgib, then it shouldn't be put into/gotten from a space (E: 8a34bc925496c35d1892638623ec0a23)");d=`${l.baseSubPath}${o}${l.spaceSubPath}${o}`,I&&console.log(`${s} resPath as of space subpath: ${d} (I: 5feccfadec1d8ac856243e78377c1e23)`);let u=Be({addr:e});u&&(n=!0);let g=h.split($e);if(g.length===1)if(a?(d+=`${l.dnaSubPath}${o}`,I&&console.log(`${s} resPath dna appended subpath: ${d} (I: eecd26dfc1699110ae5b91dd68438f23)`)):t&&(d+=`${l.binSubPath}${o}`,I&&console.log(`${s} resPath bin appended subpath: ${d} (I: b53248d5b8d142108cf5a363f148980b)`)),n||u){let A;u?A=ct({ib:f}).tjpGib:A=H({ibGibAddr:e}).tjpGib??C({ibGibAddr:e}).gib,d+=`${A}${o}`}else d+=`${h}${o}`;else if(g.length===2){let{tjpGib:A,punctiliarHash:v}=H({gib:h,gibDelimiter:$e});d+=`${A}${o}${v}${o}`}else throw new Error(`invalid gib atow (11/2023). expected only one gib delimiter (${$e}) that splits two pieces of the gib, but we have ${g.length} many pieces. gib: ${h} (E: 7d5f8608d79854e6d1d2878975258423)`);let E=!!l.mitigateLongPaths,w=l.longPathLength,S;if(fe({addr:e})){let{binExt:A}=aa({addr:e});S=A.concat()}else S="json";let _=`${f}.${S}`,k=`${e}.${S}`;if(E&&w){let A=" you have to place the root folder higher up in the OS's filesystem. (and you should put in a change request to the OS to fix their weak sauce/move to/fund a better OS.) Will try what we have and hope+pray.";if(d.length>=w)throw new Error(`path is already too long without even having a filename. ${A} (E: c126522a5cda4c2acb6de3a92fc2c423)`);if(d.length+f.length>=w||i)if(I&&console.warn(`${s} the path is too long when adding the full ib as the filename (even without the ext). (W: 3011a1e58641c53274d4776f58bb5323)`),n)u&&console.error(`can't even get a metastone ib in the path. ${A} (E: 962c52deb7a5b57842c97676a1192623)`),d+=k;else{I&&console.log(`${s} non metastone ib found (not logging ib here for privacy). will try to shorten... (I: 73dcb3f019c9b48b92fe67a9c4f2f123)`);let v=await this.buildPath_getShorterFilenameExtSubpath_ibTooLong_nonMetaStone({ib:f,ext:S,pathSeparator:o});d+=v,d.length>=w&&console.error(`${s} shortened filenamePlusExt and the path is still too long. i give up. ${A} (E: df9e52098b94a99212c15c167e4d9f23)`)}else n?d+=k:d+=_}else n?d+=k:d+=_;return I&&console.log(`${s} returning resPath: ${d} (I: 62a76a630335a872a4fc5f25dec4b623)`),d}catch(l){throw console.error(`${s} ${m(l)}`),l}finally{I&&console.log(`${s} complete.`)}}async buildPath_getShorterFilenameExtSubpath_ibTooLong_nonMetaStone({ib:e,ext:a,pathSeparator:t}){let r=`${this.lc}[${this.buildPath_getShorterFilenameExtSubpath_ibTooLong_nonMetaStone.name}]`;try{I&&console.log(`${r} starting... (I: 1f14c5de4174d726182c5dc97bd62a23)`);let o="",i=this.data.longSubPath||we;i.length!==1&&(console.warn(`${r} longSubPath (this.data.longSubPath || IBGIB_LONG_SUBPATH) longer than one char. should be 1 char. substringing to the first char. (W: 8c19a983730f4b62ac4208f7d21c90fc)`),i=i.substring(0,1)||"l"),o+=`${i}${t}`;let s=(await Bt({s:e})).substring(0,4);o+=`${s}${t}`;let l=e.substring(0,co);return o+=`${l}.${a}`,o}catch(o){throw console.error(`${r} ${m(o)}`),o}finally{I&&console.log(`${r} complete.`)}}};var ua={version:"1",uuid:ot,name:Ie,classname:"WebFilesystemSpace_V1",baseDir:oe(),encoding:Q,baseSubPath:me,spaceSubPath:ge,ibgibsSubPath:K,metaSubPath:Z,binSubPath:ee,dnaSubPath:te,longSubPath:we,mitigateLongPaths:!1,longPathLength:9999999999999,persistOptsAndResultIbGibs:!1,validateIbGibAddrsMatchIbGibs:!1,longPollingIntervalMs:_e,allowPrimitiveArgs:!1,catchAllErrors:!0,description:Ct,trace:!1},ae={ascii:"ascii",utf8:"utf8",utf_8:"utf-8","utf-8":"utf-8",utf16le:"utf16le",ucs2:"ucs2",ucs_2:"ucs-2","ucs-2":"ucs-2",base64:"base64",base64url:"base64url",latin1:"latin1",binary:"binary",hex:"hex"},fo=Object.values(ae),bo=[ae.utf8,ae.utf16le,ae.base64,ae.binary,void 0];var D=G,ho=new
|
|
28
|
+
`)} (E: 574e163118f043fa8c50cfd575e62122)`);return}let n=r.map(s=>e.filter(l=>y({ibGib:l})===s)[0]);await this.rel8ToSpecialIbGib({type:"autosyncs",ibGibsToRel8:n,rel8nName:Se}),r.forEach(s=>{this._alwaysAutosyncTjpAddrsCache.add(s)})}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}async disableAutosync({tjpIbGibs:e}){let a=`${this.lc}[${this.disableAutosync.name}]`;try{if(p&&console.log(`${a} starting...`),(e??[]).length===0)throw new Error("tjps required. (E: 7b7e34e20b5848b882e14ff8b6c53622)");if(e.some(l=>!l.data?.isTjp)){let l=e.filter(d=>!d.data?.isTjp).map(d=>y({ibGib:d}));console.warn(`${a} unrelating tjp whose data.isTjp is false. tjpAddrs: ${l.join("|")} (W: 7babdf67dda54a2a9905c6c45ef36522)`)}let t=e.map(l=>y({ibGib:l})),r=await this.getSpecialIbGib({type:"autosyncs"});if(!r?.rel8ns)throw new Error("(UNEXPECTED) invalid autosyncIbGibs. rel8ns falsy. (E: 5f6211c8a41896003db8bfc40230af22)");let o=r.rel8ns[Se]??[],i=[];if(t.forEach(l=>{o.includes(l)?(p&&console.log(`${a} disabling autosync for ${l} (I: 63087804e6c436143971e5039b5e5e22)`),i.push(l)):p&&console.log(`${a} already NOT auto syncing ${l} (I: 88e00fea009964cd2bab4cc580aa2922)`)}),i.length===0){console.warn(`${a} tried to disable autosync for tjpAddrs but none were valid. returning early. (W: f9bdda90d906471aa56804d76b6e9522)`);return}let n=Array.from(new Set(i)),s=n.map(l=>e.filter(d=>y({ibGib:d})===l)[0]);await this.rel8ToSpecialIbGib({type:"autosyncs",ibGibsToUnRel8:s,rel8nName:Se}),n.forEach(l=>{this._alwaysAutosyncTjpAddrsCache.delete(l)})}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}async loadAutoSyncs(){let e=`${this.lc}[${this.loadAutoSyncs.name}]`;try{p&&console.log(`${e} starting...`);let a=await this.getSpecialIbGib({type:"autosyncs"});if(!a){console.warn(`${e} autosyncsIbGib ("autosyncs") special ibgib not found not found. maybe fine, no idea. (W: 30ad2df15b38999106883358722fd425)`);return}a.rel8ns&&(this._alwaysAutosyncTjpAddrsCache=new Set(a.rel8ns[Se]))}catch(a){throw console.error(`${e} ${a.message}`),a}finally{p&&console.log(`${e} complete.`)}}autosyncIsEnabled({tjp:e}){let a=`${this.lc}[${this.autosyncIsEnabled.name}]`;try{return p&&console.log(`${a} starting...`),this._alwaysAutosyncTjpAddrsCache.has(y({ibGib:e}))}catch(t){throw console.error(`${a} ${t.message}`),t}finally{p&&console.log(`${a} complete.`)}}};var ue=".",Q="utf8",me="ibgib",ge=`000_${Ie}`,K="ibgibs",Z="meta",ee="bin",te="dna",we="l",Ct="This is a filesystem space. The ibgib data contains settings for the space itself, and the witness ibgib object interfaces with a back end that is hierarchical like a filesystem. Descend from this class if you're working with a similar space.",so=240,xt="/",co=32;function ha(){return async({title:c,msg:e})=>{let a=`[${ha.name}]`,t;try{if(!e)throw new Error("msg required. (E: c39d1656b6b803e11bad46efe15b6823)");t=await He({title:c,msg:e})}catch(r){throw console.error(`${a} ${m(r)}`),r}return t||t===""?t:null}}b(ha,"getFnPrompt");var xe=!1,Lt=class c extends Fr{static{b(this,"SpaceBase_V1")}lc=`[${c.name}]`;cacheSvc;constructor(e,a){super(e,a),this.initialized=this.initialize()}async witnessImpl(e){let a=`${this.lc}[${this.witnessImpl.name}]`;return xe&&console.log(`${a}`),await this.routeAndDoCommand({cmd:e.data.cmd,cmdModifiers:e.data.cmdModifiers??[],arg:e})}routeAndDoCommand({cmd:e,cmdModifiers:a,arg:t}){let r=`${this.lc}[${this.routeAndDoCommand.name}]`;switch(e){case de.get:return(a??[]).length===0?this.get(t):a.includes("can")?this.canGet(t):a.includes("latest")?a.includes("addrs")?this.getLatestAddrs(t):this.getLatestIbGibs(t):a.includes("tjps")?a.includes("addrs")?this.getTjpAddrs(t):this.getTjpIbGibs(t):a.includes("addrs")?this.getAddrs(t):a.includes("dependency-graph")?this.getDependencyGraph(t):this.get(t);case de.put:return(a??[]).length===0?this.put(t):a.includes("can")?this.canPut(t):this.put(t);case de.delete:return(a??[]).length===0?this.delete(t):a.includes("can")?this.canDelete(t):this.delete(t);default:throw new Error(`${r} unknown cmd: ${e}. cmdModifiers: ${a}`)}}get(e){return this.getImpl(e)}put(e){return this.putImpl(e)}delete(e){return this.deleteImpl(e)}deleteImpl(e){let a=`${this.lc}[${this.deleteImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getAddrs(e){return this.getAddrsImpl(e)}getAddrsImpl(e){let a=`${this.lc}[${this.getAddrsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getLatestIbGibs(e){return this.getLatestIbGibsImpl(e)}getLatestIbGibsImpl(e){let a=`${this.lc}[${this.getLatestIbGibsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getLatestAddrs(e){return this.getLatestAddrsImpl(e)}getLatestAddrsImpl(e){let a=`${this.lc}[${this.getLatestAddrsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getTjpIbGibs(e){return this.getTjpIbGibsImpl(e)}getTjpIbGibsImpl(e){let a=`${this.lc}[${this.getTjpIbGibsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getTjpAddrs(e){return this.getTjpAddrsImpl(e)}getTjpAddrsImpl(e){let a=`${this.lc}[${this.getTjpAddrsImpl.name}]`;throw new Error(`${a} not implemented in base class`)}canGet(e){return this.canGetImpl(e)}canGetImpl(e){let a=`${this.lc}[${this.canGetImpl.name}]`;throw new Error(`${a} not implemented in base class`)}canPut(e){return this.canPutImpl(e)}canPutImpl(e){let a=`${this.lc}[${this.canPutImpl.name}]`;throw new Error(`${a} not implemented in base class`)}canDelete(e){return this.canPutImpl(e)}canDeleteImpl(e){let a=`${this.lc}[${this.canDeleteImpl.name}]`;throw new Error(`${a} not implemented in base class`)}getDependencyGraph(e){return this.getDependencyGraphImpl(e)}async getDependencyGraphImpl(e){let a=`${this.lc}[${this.getDependencyGraphImpl.name}]`;try{if(xe&&console.log(`${a} starting... (I: 0e5fe807a0169224781f6c2833f34826)`),!e.data)throw new Error("(UNEXPECTED) arg.data falsy? (E: 45eba816295a97a0e55f981861a03f26)");if((e.data.ibGibAddrs??[]).length===0)throw new Error("arg.data.ibGibAddrs is falsy/empty (E: 70adc939c7b80c9938d8fa18fd7c5826)");let t={space:this,ibGibAddrs:e.data.ibGibAddrs,live:e.data.live||!0},r=await ut(t),o=Object.values(r),i={optsAddr:y({ibGib:e}),count:o.length,addrs:Object.keys(r)};return this.resulty({resultData:i,ibGibs:o})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{xe&&console.log(`${a} complete.`)}}async validateWitnessArg(e){let a=`${this.lc}[${this.validateWitnessArg.name}]`,t=[];try{if(t=await super.validateWitnessArg(e),!e.data)return t.push("arg.data required (E: 8ee544d7d88a45c6adcbc15838a283a7)"),t;if(!this.data)return t.push("this.data required (E: 64f80642d7de44329355d6f907e272c8)"),t;let{cmd:r,ibGibAddrs:o}=e.data,i=e.data.cmdModifiers??[],n=e.ibGibs;r||t.push("arg.data.cmd required (E: 72a11ee87a0d4896bcacd65a9c0284d9)"),Object.values(de).includes(r)||t.push(`unknown arg.data.cmd: ${r}. (E: 95282ce61e97429f8049e61ec9f14f0b)`);let s=o?.length??0;if(r===de.get&&!i?.includes("addrs")&&!i?.includes("latest")&&s===0&&t.push(`ibGibAddrs required when cmd is ${r}. (E: ee55a3f60b90423cbe054f27c34ab7d5)`),r===de.put){xe&&console.log(`${a} validate put cmd`);let l=n?.length??0;if(l===0)t.push(`ibGibs required when cmd is ${r}. (E: b3a422169f7344a48a1d44e7ad1ba44e)`);else if(this.data.validateIbGibAddrsMatchIbGibs)if(xe&&console.log(`${a} validateIbGibAddrsMatchIbGibs true, so doing so.`),l!==s)t.push("ibGibsLength !== ibGibAddrsLength and this.data.validateIbGibAddrsMatchIbGibs is true. (E: 6c6bf824ab32443aa4d6b8bf4f8113dd)");else{xe&&console.log(`${a} validateIbGibAddrsMatchIbGibs, lengths match. validating intrinsically`);let d=o.concat();for(let f=0;f<n.length;f++){let h=n[f],u=await X({ibGib:h});if(u?.length??!1){let g=y({ibGib:h});u.forEach(E=>t.push(`(${g}) ERROR: ${E}`))}else{let g=y({ibGib:h}),E=d.indexOf(g);if(E===-1){t.push(`ibGibAddrs don't map to calculated ibGib addrs. calculated Addr: (${g}) (E: b21b3a7a74db43e5a8722acc97274646)`);break}else d.splice(E,1)}}}}return t}catch(r){throw console.error(`${a} ${m(r)}`),r}finally{t?.length>0&&console.error(`${a} errors: ${t}`)}}async argy({argData:e,ibMetadata:a,noTimestamp:t,ibGibs:r}){let o=await Pe({argData:e,ibMetadata:a,noTimestamp:t});return r&&(o.ibGibs=r),o}async resulty({resultData:e,ibGibs:a}){let t=await yt({ibMetadata:Tr({space:this}),resultData:e});return a&&(t.ibGibs=a),t}};var I=!1,lo={version:"3",uuid:ot,name:Ie,classname:"FilesystemSpace_V1",baseDir:ue,encoding:Q,baseSubPath:me,spaceSubPath:ge,ibgibsSubPath:K,metaSubPath:Z,binSubPath:ee,dnaSubPath:te,longSubPath:we,longPathLength:so,mitigateLongPaths:!0,persistOptsAndResultIbGibs:!1,validateIbGibAddrsMatchIbGibs:!1,longPollingIntervalMs:_e,allowPrimitiveArgs:!1,catchAllErrors:!0,description:Ct,trace:!1};var Qe=class c extends Lt{static{b(this,"FilesystemSpace_V1")}lc=`[${c.name}]`;ibGibs={};pathExistsMap={};constructor(e,a){super(e??O(lo),a)}async validateWitnessArg(e){let a=`${this.lc}[${this.validateWitnessArg.name}]`,t=[];try{t=await super.validateWitnessArg(e)||[],e.data?.cmd==="put"&&(e.ibGibs||[]).length===0&&t.push('when "put" cmd is called, ibGibs required.'),e.data?.cmd==="get"&&(e.data?.ibGibAddrs||[]).length===0&&t.push('when "get" cmd is called, ibGibAddrs required.')}catch(r){throw console.error(`${a} ${m(r)}`),r}finally{t?.length>0&&console.error(`${a} errors: ${t}`)}return t}async initialize(){let e=`${this.lc}[${this.initialize.name}]`;try{I&&console.log(`${e} starting...`),this.data||(this.data=O(lo),this.data=this.data),this.data?.classname||(this.data.classname=c.name),this.data.baseDir||(this.data.baseDir=ue),this.data.encoding||(this.data.encoding=Q),this.data.baseSubPath||(this.data.baseSubPath=me),this.data.spaceSubPath||(this.data.spaceSubPath=ge),this.data.ibgibsSubPath||(this.data.ibgibsSubPath=K),this.data.metaSubPath||(this.data.metaSubPath=Z),this.data.binSubPath||(this.data.binSubPath=ee),this.data.dnaSubPath||(this.data.dnaSubPath=te),this.ib=ht({space:this,classname:c.name}),this.gib=await q({ibGib:this})}catch(a){console.error(`${e} ${m(a)}`)}finally{I&&console.log(`${e} complete.`)}}hasInCache({addr:e}){return J({gib:C({ibGibAddr:e}).gib})?Promise.resolve(!1):Object.keys(this.ibGibs).includes(e)?Promise.resolve(!0):this.cacheSvc?this.cacheSvc.has({addr:e}):Promise.resolve(!1)}async putInCache({addr:e,ibGib:a}){let t=`${this.lc}[${this.putInCache.name}][${e}]`;try{if(I&&console.log(`${t} starting...`),!a)throw new Error("ibGib required (E: 993e26fe40894bab9feccac3938f37df)");if(J({ibGib:a})){I&&console.log(`${t} skipping caching primitive (I: a04dfb691582a4db8a0bfecfefe5e622)`);return}else I&&console.log(`${t} caching addr (I: b996a306f256ee5f39db1e2f5d515c22)`);this.ibGibs[e]=a,this.cacheSvc&&await this.cacheSvc.put({addr:e,ibGib:a})}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{I&&console.log(`${t} complete.`)}}async getFromCache({addr:e}){let a=`${this.lc}[${this.getFromCache.name}]`;try{I&&console.log(`${a} starting...`);let t=this.ibGibs[e];return!t&&this.cacheSvc&&(t=(await this.cacheSvc.get({addr:e}))?.ibGib),t}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{I&&console.log(`${a} complete.`)}}deleteFromCache({addr:e}){let a=`${this.lc}[${this.getFromCache.name}]`;try{return I&&console.log(`${a} starting...`),delete this.ibGibs[e],Promise.resolve()}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{I&&console.log(`${a} complete.`)}}async getImpl(e){let a=`${this.lc}[${this.getImpl.name}]`,t=[],r={optsAddr:y({ibGib:e})},o;try{if(!e.data)throw new Error("arg.data is falsy");let{ibGibAddrs:i,isDna:n}=e.data;i||=[];let s=i.filter(d=>fe({addr:d})),l=i.filter(d=>!s.includes(d));I&&console.log(`${a} getting non-bin ibgibs. ibGibAddrsNonBin: ${l}`);for(let d=0;d<l.length;d++){let f=l[d];if(!e.data.force&&await this.hasInCache({addr:f})){I&&console.log(`${a} YES found in naive cache. (I: 0b23f394fd944c2a96df3543dd0a59c5)`);let h=await this.getFromCache({addr:f});if(!h)throw new Error("(UNEXPECTED) we had in cache but failed to retrieve? (E: 4af334f7a90cb22ffa3b549d0db19a22)");t.push(h)}else{let h=await this.getFile({addr:f,isDna:n});h?.success&&h.ibGib?(await this.putInCache({addr:f,ibGib:h.ibGib}),t.push(h.ibGib)):(o||(o=[]),o.push(f))}}for(let d=0;d<s.length;d++){let f=s[d],{binHash:h,binExt:u}=aa({addr:f});I&&console.log(`${a} getting binHash.binExt: ${h}.${u}`);let g=await this.getFile({addr:f});g?.success&&g.ibGib?(I&&console.log(`${a} getResult.success. ibGib.data?.length: ${g.ibGib.data?.length}`),t.push(g.ibGib)):(I&&console.log(`${a} not found in files. (binData is not cached atm)`),o||(o=[]),o.push(f))}o&&o.length>0?(I&&console.log(`${a}[${this.data.uuid.substring(0,8)}] notFoundIbGibAddrs: ${o} (I: 10f7e35e75445a1d64b353851d00b923)`),r.addrsNotFound=o,r.errors??=[],r.errors.push("notFoundIbGibAddrs.length > 0 (E: e7eadcfa2f4643238590469bc917a35c)"),r.success=!1):r.success=!0}catch(i){let n=m(i);console.error(`${a} error: ${n}`),r.errors=[n]}try{let i=await this.resulty({resultData:r});return t.length>0&&(i.ibGibs=t),i}catch(i){throw console.error(`${a} ${m(i)}`),i}}async putImpl(e){let a=`${this.lc}[${this.putImpl.name}]`,t={optsAddr:y({ibGib:e})},r=[];try{if(I&&console.log("validating arg and internal state..."),!e.data)throw new Error("arg.data required. (E: d64a46e5efab4b09b57850ecf0854386)");if(e.ibGibs?.length===0)throw new Error("arg.ibGibs required. (E: b4930d564b284fb9b26b542f14143a28)");return I&&console.log("arg and internal state validated...calling impl func"),await this.putIbGibsImpl(e)}catch(i){let n=m(i);console.error(`${a} error: ${n}`),t.errors=r.concat([n]),t.success=!1}return await this.resulty({resultData:t})}async putIbGibsImpl(e){let a=`${this.lc}[${this.putIbGibsImpl.name}]`,t={optsAddr:y({ibGib:e})},r=[],o=[],i=[];try{if(!e.data)throw new Error("arg.data is falsy (E: aae5757c158d4a799deb7fca9d6245f0)");let{isDna:s,force:l}=e.data,d=e.ibGibs||[],f=[];for(let h=0;h<d.length;h++){let u=d[h],g=y({ibGib:u});I&&console.log(`${a} checking to see if already exists...`);let E=await this.getFile({addr:g,isDna:s});if(E?.success&&E.ibGib)if(I&&console.log(`${a} already exists...`),l){I&&console.log(`${a} Forcing save of already put addr: ${g} (I: 325f363e5d438b43c24b810c150e4e22)`);let w=await this.putFile({ibGib:u,isDna:s});w.success?s||await this.putInCache({addr:g,ibGib:u}):(r.push(w.errorMsg||`${a} error putting ${g}`),i.push(g))}else I&&o.push(`${a} skipping (non-force) of already exists addr: ${g} (W: b7fbe22473014dd090db88aee631fecb)`),f.push(g);else{I&&console.log(`${a} does NOT already exist...`);let w=await this.putFile({ibGib:u,isDna:s});w.success?s||await this.putInCache({addr:g,ibGib:u}):(r.push(w.errorMsg||`${a} error putting ${g}`),i.push(g))}}f.length>0&&(t.addrsAlreadyHave=f),o.length>0&&(t.warnings=o),r.length===0?t.success=!0:(t.errors=r,t.addrsErrored=i)}catch(s){let l=m(s);console.error(`${a} error: ${l}`),t.errors=r.concat([l]),t.addrsErrored=i,t.success=!1}return await this.resulty({resultData:t})}async deleteImpl(e){let a=`${this.lc}[${this.deleteImpl.name}]`,t={optsAddr:y({ibGib:e})},r=[],o=[],i=[],n=[];try{if(!e.data)throw new Error("arg.data is falsy");let{isDna:l}=e.data,d=e.data.ibGibAddrs||[];for(let f=0;f<d.length;f++){let h=d[f];await this.deleteFromCache({addr:h});let u=await this.deleteFile({addr:h,isDna:l});u?.success?i.push(h):(r.push(u.errorMsg||`delete failed: addr (${h})`),n.push(h))}if(o.length>0&&(t.warnings=o),r.length===0)t.success=!0,t.addrs=i;else if(t.errors=r,t.addrsErrored=n,i.length>0){let f=`some addrs (${i.length}) were indeed deleted, but not all. See result addrs and addrsErrored.`;t.warnings=(t.warnings||[]).concat([f])}}catch(l){let d=m(l);console.error(`${a} error: ${d}`),t.errors=r.concat([d]),t.addrsErrored=n,t.success=!1}return await this.resulty({resultData:t})}async getAddrsImpl(e){let a=`${this.lc}[${this.getAddrsImpl.name}]`;throw new Error(`${a} not implemented. (E: 74dd50ce4b564559bc44d6c08d446cb3)`)}async canGetImpl(e){let a=`${this.lc}[${this.canGetImpl.name}]`,t={optsAddr:y({ibGib:e})};try{throw new Error("not implemented (E: 2a45977c584c6bbbc4f164c16106bd22)")}catch(o){let i=m(o);console.error(`${a} error: ${i}`),t.errors=[i]}return await this.resulty({resultData:t})}async canPutImpl(e){let a=`${this.lc}[${this.canPutImpl.name}]`,t={optsAddr:y({ibGib:e})};try{throw new Error("not implemented (E: 25a005d496efc69faefdec155ffb4a22)")}catch(o){let i=m(o);console.error(`${a} error: ${i}`),t.errors=[i]}return await this.resulty({resultData:t})}async canDeleteImpl(e){let a=`${this.lc}[${this.canDeleteImpl.name}]`;throw new Error(`${a} not implemented (E: a3306138b4ac429ba5f8f293ad7dd07b)`)}async getLatestAddrsImpl(e){let a=`${this.lc}[${this.getLatestAddrsImpl.name}]`,t={optsAddr:y({ibGib:e})};try{if(I&&console.log(`${a} starting...`),!e.data)throw new Error("arg.data required (E: cd92cb965d711c8014455c69e898ac23)");if(!e.data.ibGibAddrs)throw new Error("arg.data.ibGibAddrs required (E: 2d0824f9b8aec916a751ef17e2d4a823)");if(e.data.ibGibAddrs.length===0)throw new Error("arg.data.ibGibAddrs required to be non-zero (E: 2d0824f9b8aec916a751ef17e2d4a823)");let r=new Set,o=new Set,i=new Set;t.latestAddrsMap={};for(let n=0;n<e.data.ibGibAddrs.length;n++){let s=e.data.ibGibAddrs[n],l=await this.getFile({addr:s});if(l?.success&&l.ibGib){let d=l.ibGib,f=await this.getLatestAddrImpl({ibGib:d});f?(r.add(f),t.latestAddrsMap[s]=f):(console.warn(`expecting latestAddr to either be assigned or throw. Adding addr (${s}) to addrsErrored. (W: 35c3712b1a1e579ccf28c389eb2ecc22)`),i.add(s))}else if(l?.success)o.add(s),t.latestAddrsMap[s]=null;else if(l.errorMsg)i.add(s);else throw new Error(`unknown (invalid) getResult: ${$(l)} (E: 2674ad5d30294be29a3d3fdcf54ef6d9)`)}t.addrs=r.size>0?[...r]:void 0,t.addrsErrored=i.size>0?[...i]:void 0,t.addrsNotFound=o.size>0?[...o]:void 0,t.success=!0}catch(r){let o=m(r);console.error(`${a} error: ${o}`),t.errors=[o]}try{return await this.resulty({resultData:t})}catch(r){throw console.error(`${a}[resulty] ${m(r)}`),r}}async getLatestAddrImpl({ibGib:e,ibGibAddr:a}){let t=`${this.lc}[${this.getLatestAddrImpl.name}]`;I&&console.log(`${t} starting...`);try{if(!e&&!a)throw new Error("either ibGib or ibGibAddr required (E: 1f8f0cb61d1b4c708b06762048735c22)");if(e&&a&&y({ibGib:e})!==a)throw new Error("(UNEXPECTED) both ibGib and ibGibAddr provided but they don't match? (E: 01d1938252ef49b53d41d58abfaac523)");a||=y({ibGib:e});let{ib:r,gib:o}=C({ibGibAddr:a});if(!o)throw new Error("(UNEXPECTED) gib falsy? (E: d2506b99162e27348310f8e7e68e4523)");if(J({gib:o}))return console.warn(`${t} incoming ibGibAddr is primitive. Why are we calling getLatest on a primitive? returning incoming addr. (W: 57fcf479d5cc48d393841ec3d53587fa)`),a;if(["fork","mut8","rel8"].includes(r))return I&&console.log(`${t} probably is dna (ib === fork/mut8/rel8). returning incoming ibGibAddr early. (I: 2081628936de6a36bbb51224f0223523)`),a;let n=H({ibGibAddr:a}),{tjpGib:s}=n;s||=o;let l=await this.getMetaStoneAddrs({tjpGib:s,ibGibAddr:a});if(l.length===0)return I&&console.warn(`${t} no metastones found for given ibGibAddr (${a}). returning incoming ibGibAddr (W: a6a35cbbf40745e8a3e202226bb457ff)`),a;let f=l.map(_=>[_,C({ibGibAddr:_}).ib]).map(([_,k])=>[_,ct({ib:k})]).sort((_,k)=>{let[A,v]=_,[Qi,tt]=k;return v.n>tt.n?-1:v.n<tt.n?1:v.timestampInTicks>tt.timestampInTicks?-1:v.timestampInTicks<tt.timestampInTicks?1:0});if(I&&(console.log(`${t} console.dir(metaStoneAddrsAndIbInfos_descending)... (I: 1bb5e7d994248e8b6559ca2863c72123)`),console.dir(f)),f.length===0)throw new Error("(UNEXPECTED) metaStoneAddrsAndIbInfos_descending is empty? earlier in the function there should have been a check. did getMetaStoneAddrs return a populated list but no stones were found? (E: 63c035ebed77741f2330c7a625823f23)");let[h,u]=f[0];I&&console.log(`${t} [latestMetaStoneAddr, latestMetaStoneInfo]: ${[h,u]} (I: 1307ca46b4abd62c7a30fe87c08fa923)`);let g,E=await this.getFile({addr:h,isDna:!1});if(E?.success&&E.ibGib){g=E.ibGib;let _=await hr({ibGib:g})??[];if(_.length>0)throw new Error(`invalid metastone (${h}) for tjpGib (${s}). errors: ${_.join("|")} (E: 7fa7c6fa696d860cc7a9148861f96123)`)}else throw new Error(`(UNEXPECTED) we just found a metastone addr (${h}) that was read from the directory's contents, but we can't get the file? (E: 3b934b4adcd9d0efee7820f8d4012e23)`);let S=g.rel8ns[fr].at(0);if(!S)throw new Error("metastone passed validation but latestMetaStoneRel8ns[META_STONE_TARGET_REL8N_NAME].at(0) is empty? (E: c188ec0089ad86efe4d925c118599d23)");return S}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{I&&console.log(`${t} complete.`)}}async persistOptsAndResultIbGibs({arg:e,result:a}){let t=`${this.lc}[${this.persistOptsAndResultIbGibs.name}]`;(I||this.data?.trace)&&console.log(`${t} doing arg?.data?.cmd: ${e?.data?.cmd}, result?.data?.success: ${a?.data?.success}`);let r=[e,a??ye],o=await Pe({argData:{cmd:"put",catchAllErrors:!0,ibGibAddrs:r.map(n=>y({ibGib:n}))}});o.ibGibs=r;let i=await this.putIbGibsImpl(o);if(!i?.data)throw new Error("resPut.data falsy (E: f3115254240b8eff6cd82878a4a35a23)");(!i.data.success||i.data.errors)&&console.error(`${t} Errors persisting arg & result: ${(i.data?.errors??["unknown errs"]).join(`
|
|
29
|
+
`)}. (E: 65ef314a4f8e445d851dab5b290e9a03)`)}async ensurePermissions(){let e=`${this.lc}[${this.ensurePermissions.name}]`,a="ibgib_permissionRequested_ensurePermissions";try{return!0}catch(t){return console.error(`${e} Dont have permissions... error: ${m(t)}`),!1}}async ensureAllDirsExist(){let e=`${this.lc}[${this.ensureAllDirsExist.name}]`;console.warn(`${e} not implemented in base class (W: c1b63ec036134db5960e0d3ea169d15b)`)}getTjpSubpath({viaTargetAddr:e,viaTargetTjpGib:a,viaMetaStoneAddr:t,pathSeparator:r=xt}){let o=`${this.lc}[${this.getTjpSubpath.name}]`;try{if(I&&console.log(`${o} starting... (I: c65dabcf47acf6d6881087b404861e23)`),!e&&!a&&!t)throw new Error("either viaTargetAddr/TargetTjpGib/metaStoneAddr required (E: a784c4f0369e6e38eafcdf3289c38523)");if(!this.data)throw new Error("(UNEXPECTED) this.data falsy? (E: 441ff1b038366a1c07a94cf128454923)");if(r||(console.warn(`${o} pathSeparator falsy? using default: "${xt}" (W: 295d21ab226743dd83a721f78870ab6e)`),r=xt),a||(t?a=ct({ib:C({ibGibAddr:t}).ib}).tjpGib:a=H({ibGibAddr:e}).tjpGib),!a)throw new Error("targetTjpGib could not be gotten. are you sure this has a tjp? or is the ibGib a stone? (E: e507f1996aaa68a229a3158b3dbc5723)");let{baseSubPath:i,spaceSubPath:n,ibgibsSubPath:s}=this.data;return`${i}${r}${n}${r}${s}${r}${a}`}catch(i){throw console.error(`${o} ${m(i)}`),i}finally{I&&console.log(`${o} complete.`)}}async buildPath({addr:e,isDna:a,isBin:t,ensureMetaStonePaths:r,pathSeparator:o="/",pretendItsALongPath:i=!1,addrIsForAMetaStone:n}){let s=`${this.lc}[${this.buildPath.name}]`;try{I&&console.log(`${s} starting... (I: d630823bbe0e1a1aa3592103768e8423)`);let l=this.data;if(!l)throw new Error("this.data required (E: d2553d11b637577aa7b074387b613f23)");if(!e)throw new Error("addr required (E: 68149eccdbe2e6ef95eb50d588d68423)");let d;o||="/";let{ib:f,gib:h}=C({ibGibAddr:e});if(!h)throw new Error("gib required in building paths. if it's a primitive ibgib, then it shouldn't be put into/gotten from a space (E: 8a34bc925496c35d1892638623ec0a23)");d=`${l.baseSubPath}${o}${l.spaceSubPath}${o}`,I&&console.log(`${s} resPath as of space subpath: ${d} (I: 5feccfadec1d8ac856243e78377c1e23)`);let u=Be({addr:e});u&&(n=!0);let g=h.split($e);if(g.length===1)if(a?(d+=`${l.dnaSubPath}${o}`,I&&console.log(`${s} resPath dna appended subpath: ${d} (I: eecd26dfc1699110ae5b91dd68438f23)`)):t&&(d+=`${l.binSubPath}${o}`,I&&console.log(`${s} resPath bin appended subpath: ${d} (I: b53248d5b8d142108cf5a363f148980b)`)),n||u){let A;u?A=ct({ib:f}).tjpGib:A=H({ibGibAddr:e}).tjpGib??C({ibGibAddr:e}).gib,d+=`${A}${o}`}else d+=`${h}${o}`;else if(g.length===2){let{tjpGib:A,punctiliarHash:v}=H({gib:h,gibDelimiter:$e});d+=`${A}${o}${v}${o}`}else throw new Error(`invalid gib atow (11/2023). expected only one gib delimiter (${$e}) that splits two pieces of the gib, but we have ${g.length} many pieces. gib: ${h} (E: 7d5f8608d79854e6d1d2878975258423)`);let E=!!l.mitigateLongPaths,w=l.longPathLength,S;if(fe({addr:e})){let{binExt:A}=aa({addr:e});S=A.concat()}else S="json";let _=`${f}.${S}`,k=`${e}.${S}`;if(E&&w){let A=" you have to place the root folder higher up in the OS's filesystem. (and you should put in a change request to the OS to fix their weak sauce/move to/fund a better OS.) Will try what we have and hope+pray.";if(d.length>=w)throw new Error(`path is already too long without even having a filename. ${A} (E: c126522a5cda4c2acb6de3a92fc2c423)`);if(d.length+f.length>=w||i)if(I&&console.warn(`${s} the path is too long when adding the full ib as the filename (even without the ext). (W: 3011a1e58641c53274d4776f58bb5323)`),n)u&&console.error(`can't even get a metastone ib in the path. ${A} (E: 962c52deb7a5b57842c97676a1192623)`),d+=k;else{I&&console.log(`${s} non metastone ib found (not logging ib here for privacy). will try to shorten... (I: 73dcb3f019c9b48b92fe67a9c4f2f123)`);let v=await this.buildPath_getShorterFilenameExtSubpath_ibTooLong_nonMetaStone({ib:f,ext:S,pathSeparator:o});d+=v,d.length>=w&&console.error(`${s} shortened filenamePlusExt and the path is still too long. i give up. ${A} (E: df9e52098b94a99212c15c167e4d9f23)`)}else n?d+=k:d+=_}else n?d+=k:d+=_;return I&&console.log(`${s} returning resPath: ${d} (I: 62a76a630335a872a4fc5f25dec4b623)`),d}catch(l){throw console.error(`${s} ${m(l)}`),l}finally{I&&console.log(`${s} complete.`)}}async buildPath_getShorterFilenameExtSubpath_ibTooLong_nonMetaStone({ib:e,ext:a,pathSeparator:t}){let r=`${this.lc}[${this.buildPath_getShorterFilenameExtSubpath_ibTooLong_nonMetaStone.name}]`;try{I&&console.log(`${r} starting... (I: 1f14c5de4174d726182c5dc97bd62a23)`);let o="",i=this.data.longSubPath||we;i.length!==1&&(console.warn(`${r} longSubPath (this.data.longSubPath || IBGIB_LONG_SUBPATH) longer than one char. should be 1 char. substringing to the first char. (W: 8c19a983730f4b62ac4208f7d21c90fc)`),i=i.substring(0,1)||"l"),o+=`${i}${t}`;let s=(await Bt({s:e})).substring(0,4);o+=`${s}${t}`;let l=e.substring(0,co);return o+=`${l}.${a}`,o}catch(o){throw console.error(`${r} ${m(o)}`),o}finally{I&&console.log(`${r} complete.`)}}};var ua={version:"1",uuid:ot,name:Ie,classname:"WebFilesystemSpace_V1",baseDir:oe(),encoding:Q,baseSubPath:me,spaceSubPath:ge,ibgibsSubPath:K,metaSubPath:Z,binSubPath:ee,dnaSubPath:te,longSubPath:we,mitigateLongPaths:!1,longPathLength:9999999999999,persistOptsAndResultIbGibs:!1,validateIbGibAddrsMatchIbGibs:!1,longPollingIntervalMs:_e,allowPrimitiveArgs:!1,catchAllErrors:!0,description:Ct,trace:!1},ae={ascii:"ascii",utf8:"utf8",utf_8:"utf-8","utf-8":"utf-8",utf16le:"utf16le",ucs2:"ucs2",ucs_2:"ucs-2","ucs-2":"ucs-2",base64:"base64",base64url:"base64url",latin1:"latin1",binary:"binary",hex:"hex"},fo=Object.values(ae),bo=[ae.utf8,ae.utf16le,ae.base64,ae.binary,void 0];var D=G,ho=new mt;async function ma({path:c,directory:e,encoding:a}){let t=`[${ma.name}]`;try{D&&(console.log(`${t} starting...`),(c.includes("bootstrap^gib")||c.includes("gib/bootstrap.json"))&&console.log(`${t} trying bootstrap^gib... (I: cde10726c55737e5c5a2e0a66a188e24)`));let r=ho.join(e,c);D&&console.log(`${t} fullPath: ${r} (I: e5cfdd62247c6ba05dffb64d8f25d424)`),a||="utf8";let o,i=await wa(r,{encoding:a});return i instanceof Uint8Array?o=oa(i):typeof i=="string"&&(o=i),D&&(console.log(`${t} record found. data length: ${o?.length??0}. fullPath: ${r}. console.dir(resRead)... (I: be5cfbf04874b4e8e4787ad966cb8424)`),console.dir(o)),o??null}catch(r){return D&&console.log(`${t} fullPath not found from directory (${e}) and path (${c})
|
|
30
30
|
error:
|
|
31
31
|
${m(r)} (I: 8f93e583c048fac0682f55ca74df0324)`),null}finally{D&&console.log(`${t} complete. (I: 22a6958aee350e4d99b76057ec8b9224)`)}}b(ma,"tryRead");async function ga({path:c,directory:e,encoding:a}){let t=`[${ga.name}]`;try{D&&(console.log(`${t} starting...`),c.includes("bootstrap^gib")&&console.log(`${t} trying bootstrap^gib... (I: acdb59d399ca16c45456392d935c0524)`));let r=ho.join(e,c);D&&console.log(`${t} fullPath: ${r} (I: abef0200a4b823b446713349ca102924)`),a||="utf8";let o,i=Ft([a,...fo]),{dataBuffer:n,dataString:s,inputPath:l,detectedEncoding:d}=await po({inputPath:c,encodingsToTry:i});if(!n)throw new Error("getFileDataAndEncoding yielded falsy dataBuffer (E: f748ffc8c71c92be06a3566102ba8e24)");return o=n,D&&(console.log(`${t} record found. data length: ${o?.length??0}. fullPath: ${r}. console.dir(resRead)... (I: b0c1da7e3849edd3edef899d74b21a24)`),console.dir(o)),{dataBuffer:n,dataString:s,inputPath:l,detectedEncoding:d}}catch(r){return D&&console.log(`${t} fullPath not found from directory (${e}) and path (${c})
|
|
32
32
|
error:
|
|
33
|
-
${m(r)} (I: 04b11599387ab37adf2b18a5f767cd24)`),null}finally{D&&console.log(`${t} complete. (I: baa1e9d18134bc451b56bb5a56150824)`)}}b(ga,"tryRead_bin");async function po({inputPath:c,encodingsToTry:e=bo}){let a=`[${po.name}]`;try{D&&console.log(`${a} starting... (I: be8a697780bd9f2dcc4e55ed557d3b24)`),e&&console.warn(`${a} encodingsToTry (${$(e)}) is ignored in this web version of this function. (W: 1dda04d8e0b7fb046cff5d89d3903924)`);let t=await wa(c);if(t instanceof Uint8Array){if(t.length===0)return console.warn(`${a} file at inputPath (${c}) has dataBuffer.length === 0, i.e., no data content. we are treating this as utf8. (W: 8159ac120ec276df17484c1d32870424)`),{inputPath:c,dataBuffer:t,detectedEncoding:ae.utf8,dataString:""};{let r=oa(t);return{inputPath:c,dataString:r,detectedEncoding:ae.utf8,dataBuffer:t}}}else{if(typeof t=="string")return{inputPath:c,dataString:t,detectedEncoding:ae.utf8,dataBuffer:void 0};if(t)throw new Error("(UNEXPECTED) resRead not Uint8Array, not string, not falsy? (E: bdeceb4c354da36708e31406adb30124)");return{inputPath:c,dataString:void 0,detectedEncoding:void 0,dataBuffer:void 0}}}catch(t){let r=m(t);throw r.startsWith("ENOENT:")||console.error(`${a} ${r}`),t}finally{D&&console.log(`${a} complete.`)}}b(po,"getFileDataAndEncoding");function Ke(c){let e=`[${Ke.name}]`;try{D&&console.log(`${e} starting... (I: c911bff0cb7333dfd45bde6925cce524)`);let a=c.split("/");if(a.length<3)throw new Error(`fullPath (${c}) must have at least 3 pieces (E: d99c38d035551af3e85b7f767d911324)`);let t=a.shift();t==="."&&(t=oe());let r=a.shift(),o=a.join("/");return{dbName:t,storeName:r,key:o}}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{D&&console.log(`${e} complete.`)}}b(Ke,"parseFullPath");async function Dt(c,e,a){let t=`[${Dt.name}]`;try{D&&console.log(`${t} starting... (I: 18c4f3558ab1f150382948556ab5f924)`);let{dbName:r,storeName:o,key:i}=Ke(c);if(typeof e=="string"||e instanceof Uint8Array)await Mr({dbName:r,storeName:o,key:i,value:e});else throw new Error("(UNEXPECTED) data not string or Uint8Array? (E: ac3e1c15484dbc7188c75e62ab78b124)")}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{D&&console.log(`${t} complete.`)}}b(Dt,"writeFile");async function wa(c,e){let a=`[${wa.name}]`;try{D&&console.log(`${a} starting... (I: 37fd6ea3d79fc1ab797049ef00f6e224)`);let{dbName:t,storeName:r,key:o}=Ke(c);return await mt({dbName:t,storeName:r,key:o})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{D&&console.log(`${a} complete.`)}}b(wa,"readFile");async function Ea(c,e){let a=`[${Ea.name}]`;D&&(console.log(c),console.log(JSON.stringify(e)));let{dbName:t,storeName:r,key:o}=Ke(c);await gt({dbName:t,storeName:r,pathToRm:o})}b(Ea,"rm");async function ya(c,e){let a=`[${ya.name}]`,{dbName:t,storeName:r,key:o}=Ke(c);return await vr({dbName:t,storeName:r,dirPath:o,withFileTypes:e?.withFileTypes??!1})}b(ya,"readdir");var T=G,Le=new ut,ie=class c extends Qe{static{b(this,"WebFilesystemSpace_V1")}lc=`[${c.name}]`;constructor(e,a){super(e??O(ua),a);let t=`${this.lc}[ctor]`}static async createFromDto(e){let a=`[${Qe.name}][${this.createFromDto.name}]`;T&&console.log(`${a}`);let t=new c;return await t.initialized,await t.loadIbGibDto(e),t}async validateWitnessArg(e){let a=`${this.lc}[${this.validateWitnessArg.name}]`,t=[];try{t=await super.validateWitnessArg(e)||[],e.data?.cmd==="put"&&(e.ibGibs||[]).length===0&&t.push('when "put" cmd is called, ibGibs required.'),e.data?.cmd==="get"&&(e.data?.ibGibAddrs||[]).length===0&&t.push('when "get" cmd is called, ibGibAddrs required.')}catch(r){throw console.error(`${a} ${m(r)}`),r}finally{t?.length>0&&console.error(`${a} errors: ${t}`)}return t}async initialize(){let e=`${this.lc}[${this.initialize.name}]`;try{if(T&&console.log(`${e} starting...`),this.data||(this.data=O(ua),this.data=this.data),this.data.classname!==c.name&&(this.data.classname&&console.warn(`${e} this.data.classname (${this.data.classname}) !== ${c.name}. overriding this. (W: 400ef8f8626132bf763b5c68bc1d3424)`),this.data.classname=c.name),this.data.encoding||(this.data.encoding=Q),this.data.baseDir||(this.data.baseDir=ue),!this.data.uuid)throw new Error("this.data.uuid is falsy. right now i'm assuming data.uuid is truthy. this is what i'm using atow (12/2024) as the indexeddb db.store to be the uuid via the baseSubPath (E: cd3475cc43d1384dccf0b20dd322b124)");this.data.baseSubPath=this.data.uuid,this.data.spaceSubPath||(this.data.spaceSubPath=ge),this.data.ibgibsSubPath||(this.data.ibgibsSubPath=K),this.data.metaSubPath||(this.data.metaSubPath=Z),this.data.binSubPath||(this.data.binSubPath=ee),this.data.dnaSubPath||(this.data.dnaSubPath=te),this.data.longSubPath===void 0&&(this.data.longSubPath=we),this.data.longPathLength===void 0&&(this.data.longPathLength=9999999999999),this.data.mitigateLongPaths===void 0&&(this.data.mitigateLongPaths=!1),this.ib=ht({space:this,classname:this.data.classname}),this.gib=await q({ibGib:this})}catch(a){console.error(`${e} ${m(a)}`)}finally{T&&console.log(`${e} complete.`)}}async putFile({ibGib:e,isDna:a}){let t=`${this.lc}[${this.putFile.name}]`,r={};try{if(!e)throw new Error("ibGib required. (E: bb41678a0e46f60782db4641e7355a24)");let o=this.data,i="",n="",s=y({ibGib:e}),l=fe({addr:s});i=await this.buildPath({addr:s,isDna:a??!1,isBin:l,ensureMetaStonePaths:!0});let d=Le.join(o.baseDir,i);T&&console.log(`${t} fullPath: ${d} (I: accfac2f2ee924da0184e241c2408624)`),T&&console.log(`${t} path: ${i}, directory: ${o.baseDir}, thisData.encoding: ${o.encoding} (I: 498dd4e293f7da0eef4b3dea2ee32524)`);let f;if(l){if(n=e.data,!n)throw new Error("(UNEXPECTED) binIbGib.data falsy? I'm trying to have data always populated for bin ibgibs even if it is an empty Uint8Array. (E: 861489baffc294baf7b463333f389824)");await Dt(d,n)}else{let h=pt({ibGib:e});n=JSON.stringify(h),f=o.encoding||"utf8",await Dt(d,n,f)}r.success=!0}catch(o){let i=`${t} ${m(o)}`;console.error(i),r.errorMsg=i}return r}async deleteFile({addr:e,isDna:a}){let t=`${this.lc}[${this.deleteFile.name}]`,r={};try{if(!e)throw new Error("addr required. (E: a2ca4b3ae9bb79891fd86c98af3de624)");if(!this.data)throw new Error("this.data required (E: 6b6163a397c42adf5b03ca5117c0d624)");let o=this.data,i="";fe({addr:e})?i=await this.buildPath({addr:e,isDna:!1,isBin:!0,ensureMetaStonePaths:!1}):i=await this.buildPath({addr:e,isDna:a??!1,ensureMetaStonePaths:!0}),T&&console.log(`${t} path: ${i}, directory: ${o.baseDir}`);let n=Le.join(this.data.baseDir,i);await Ea(n,{force:!0}),T&&console.log(`${t} deleted. path: ${i}`),r.success=!0}catch(o){let i=`${t} ${m(o)}`;i.includes("File does not exist")?T&&console.log(`${t} attempted to delete non-existent file. ${i} (I: 839257fb70d62a3273335d8536b15724)`):console.error(i),r.errorMsg=i}return r}async getFile({addr:e,isDna:a}){let t=`${this.lc}[${this.getFile.name}(${e})]`,r={};try{if(T&&console.log(`${t} starting... (I: 07e34fff2d9c7108dd79e5d6f93ed724)`),!e)throw new Error("addr required");let o=this.data,{ib:i}=C({ibGibAddr:e}),n=fe({addr:e}),l=["fork","mut8","rel8","plan"].some(f=>f===i||f.startsWith(i+" ")),d=[];if(a||l?d.push(await this.buildPath({addr:e,isDna:!0,ensureMetaStonePaths:!1})):n&&d.push(await this.buildPath({addr:e,isDna:!1,isBin:!0,ensureMetaStonePaths:!1})),d.push(await this.buildPath({addr:e,isDna:!1,ensureMetaStonePaths:!1})),Be({addr:e})||d.push(await this.buildPath({addr:e,isDna:!1,ensureMetaStonePaths:!1,pretendItsALongPath:!0})),n){let f=null,{binEncoding:h,binHash:u}=Cr({addr:e});if(u==="0"){let{ib:g,gib:E}=C({ibGibAddr:e});r.ibGib={ib:g,gib:E,data:new Uint8Array(0)}}else{for(let g of d){let E=await ga({path:g,directory:o.baseDir,encoding:h??o.encoding});if(E){f=E;break}}if(f){let{ib:g,gib:E}=C({ibGibAddr:e}),w={ib:g,gib:E,data:f.dataBuffer};r.ibGib=w}else T&&console.log(`${t} paths not found: ${JSON.stringify(d)} (I: 9116435fa6198d1e2e40ed4467e72924)`)}}else{let f=null;for(let h of d){let u=await ma({path:h,directory:o.baseDir,encoding:o.encoding});if(u){f=u;break}}f?r.ibGib=JSON.parse(f):T&&console.log(`${t} paths not found: ${JSON.stringify(d)} (I: 52287b4a0fb3e3fa5f893fa92bc15324)`)}r.success=!0}catch(o){let i=`${t} ${m(o)}`;console.error(i),r.errorMsg=i}finally{T&&console.log(`${t} complete. (I: d648c9b72261e509dac1e36279f8eb24)`)}return r}async ensurePermissions(){let e=`${this.lc}[${this.ensurePermissions.name}]`;return T&&console.log(`${e} always returns true in base class (I: eaa254b35aadb047b2c4af58f9ec6f24)`),!0}async ensureAllDirsExist(){let e=`${this.lc}[${this.ensureAllDirsExist.name}]`;try{console.warn(`${e} does nothing in web filesystem space. do I need to do anything in this concrete class? (W: 6f71512c4b32df68e483cf54e17e3124)`)}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{T&&console.log(`${e} complete.`)}}async ensureDirsImpl(e){let a=`${this.lc}[${this.ensureDirsImpl.name}]`;try{console.warn(`${a} not implemented in this web-based class. do i need this? (W: 0c50f3eb750f11108e7cd2a1263d8124)`)}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{T&&console.log(`${a} complete.`)}}async getMetaStoneAddrs({ibGibAddr:e,tjpGib:a,fnFilterIb:t}){let r=`${this.lc}[${this.getMetaStoneAddrs.name}]`;try{T&&console.log(`${r} starting... (I: f9da77d2c1920dc33efabee27847d624)`);let o=await this.buildPath({addr:e,ensureMetaStonePaths:!1,isDna:!1,addrIsForAMetaStone:!0}),i=Le.join(this.data.baseDir,o);T&&console.log(`${r} fullPath: ${i} (I: 7d69faa728f178ef5261291b4a44a424)`);let s=H({ibGibAddr:e}).tjpGib?Le.dirname(Le.join(i,"..")):Le.dirname(i);T&&console.log(`${r} containingDir: ${s} (I: 867174fbd4b3640d023dce741208b624)`);let l=t?g=>g.startsWith(Qt)&&t(g):g=>g.startsWith(Qt),d=[];try{T&&console.log(`${r} calling readdir(containingDir) (I: 9adcee17e5b5121a36f3d6e29d3fb224)`),d=await ya(s,{recursive:!1,withFileTypes:!1})}catch(g){m(g).includes("ENOENT")?T&&console.log(`${r} readdir errors: ${m(g)} (I: 95d041a148844dd09700875a1a82c424)`):console.warn(`${r} readdir error did not contain ENOENT...not sure what this is...maybe a different OS no dir exists emsg? Treating this as if dir does not exist. (W: 4fee7ed52dc4c987559eead57c89f724)`),d=[]}if(d.length===0)return T&&console.log(`${r} filenames: [empty]. no metastones found. (I: b42abb33f7636b49c195b36fca6dce24)`),[];T&&console.log(`${r} filenames: ${d} (I: 18e77f7451ce57bbbccddf9bef768624)`);let f=".json",h=5,u=d.filter(g=>{let[E,w]=g.split(qt);return!!w?.endsWith(f)&&l(E)}).map(g=>g.substring(0,g.length-h)).filter(g=>Be({addr:g})&&g.includes(a));T&&console.log(`${r} filtered/mapped filenames -> metaStoneAddrs: ${u} (I: d0396296e7de1167d226f3c84a283424)`);for(let g=0;g<u.length;g++){let E=u[g],w=rt({addr:E});if((w??[]).length>0)throw new Error(`(UNEXPECTED) invalid metastone found? metaStoneAddr (${E}) had basic validation errors: ${w.join("|")} (E: c41e8797d56833c55e32d5b4c8f79524)`);let{ib:S}=C({ibGibAddr:E}),_=br({ib:S});if(_.length>0)throw new Error(`(UNEXPECTED) metaStoneIb had validation errors? metaStoneErrors: ${_.join("|")} (E: 28ab913c2d7376843e7d94584fc94324)`)}return T&&console.log(`${r} returning metaStoneAddrs: ${u} (I: 491d7c31691e4938eb9d087f5854fa24)`),u}catch(o){throw console.error(`${r} ${m(o)}`),o}finally{T&&console.log(`${r} complete.`)}}};var uo=b(async({allowCancel:c,spaceName:e,logalot:a})=>{let t="[fnCreateNewLocalSpace]";try{if(a&&console.log(`${t} starting... (I: b05e12810c1d32269b0fa7e965ccfd24)`),e&&!ta(e))throw new Error(`spaceName (${e}) is invalid. (E: c54aa952ee34102befe5f47681cdf624)`);if(!e&&(await b(async()=>{let d=await ha()({title:"greetings program",msg:`this website does not use cookies. it's driven by ibgib's innovative protocol, and all of YOUR data is stored in a "local space" on YOUR device. in browsers, this means in IndexedDB.
|
|
33
|
+
${m(r)} (I: 04b11599387ab37adf2b18a5f767cd24)`),null}finally{D&&console.log(`${t} complete. (I: baa1e9d18134bc451b56bb5a56150824)`)}}b(ga,"tryRead_bin");async function po({inputPath:c,encodingsToTry:e=bo}){let a=`[${po.name}]`;try{D&&console.log(`${a} starting... (I: be8a697780bd9f2dcc4e55ed557d3b24)`),e&&console.warn(`${a} encodingsToTry (${$(e)}) is ignored in this web version of this function. (W: 1dda04d8e0b7fb046cff5d89d3903924)`);let t=await wa(c);if(t instanceof Uint8Array){if(t.length===0)return console.warn(`${a} file at inputPath (${c}) has dataBuffer.length === 0, i.e., no data content. we are treating this as utf8. (W: 8159ac120ec276df17484c1d32870424)`),{inputPath:c,dataBuffer:t,detectedEncoding:ae.utf8,dataString:""};{let r=oa(t);return{inputPath:c,dataString:r,detectedEncoding:ae.utf8,dataBuffer:t}}}else{if(typeof t=="string")return{inputPath:c,dataString:t,detectedEncoding:ae.utf8,dataBuffer:void 0};if(t)throw new Error("(UNEXPECTED) resRead not Uint8Array, not string, not falsy? (E: bdeceb4c354da36708e31406adb30124)");return{inputPath:c,dataString:void 0,detectedEncoding:void 0,dataBuffer:void 0}}}catch(t){let r=m(t);throw r.startsWith("ENOENT:")||console.error(`${a} ${r}`),t}finally{D&&console.log(`${a} complete.`)}}b(po,"getFileDataAndEncoding");function Ke(c){let e=`[${Ke.name}]`;try{D&&console.log(`${e} starting... (I: c911bff0cb7333dfd45bde6925cce524)`);let a=c.split("/");if(a.length<3)throw new Error(`fullPath (${c}) must have at least 3 pieces (E: d99c38d035551af3e85b7f767d911324)`);let t=a.shift();t==="."&&(t=oe());let r=a.shift(),o=a.join("/");return{dbName:t,storeName:r,key:o}}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{D&&console.log(`${e} complete.`)}}b(Ke,"parseFullPath");async function Dt(c,e,a){let t=`[${Dt.name}]`;try{D&&console.log(`${t} starting... (I: 18c4f3558ab1f150382948556ab5f924)`);let{dbName:r,storeName:o,key:i}=Ke(c);if(typeof e=="string"||e instanceof Uint8Array)await Mr({dbName:r,storeName:o,key:i,value:e});else throw new Error("(UNEXPECTED) data not string or Uint8Array? (E: ac3e1c15484dbc7188c75e62ab78b124)")}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{D&&console.log(`${t} complete.`)}}b(Dt,"writeFile");async function wa(c,e){let a=`[${wa.name}]`;try{D&&console.log(`${a} starting... (I: 37fd6ea3d79fc1ab797049ef00f6e224)`);let{dbName:t,storeName:r,key:o}=Ke(c);return await gt({dbName:t,storeName:r,key:o})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{D&&console.log(`${a} complete.`)}}b(wa,"readFile");async function Ea(c,e){let a=`[${Ea.name}]`;D&&(console.log(c),console.log(JSON.stringify(e)));let{dbName:t,storeName:r,key:o}=Ke(c);await wt({dbName:t,storeName:r,pathToRm:o})}b(Ea,"rm");async function ya(c,e){let a=`[${ya.name}]`,{dbName:t,storeName:r,key:o}=Ke(c);return await vr({dbName:t,storeName:r,dirPath:o,withFileTypes:e?.withFileTypes??!1})}b(ya,"readdir");var T=G,Le=new mt,ie=class c extends Qe{static{b(this,"WebFilesystemSpace_V1")}lc=`[${c.name}]`;constructor(e,a){super(e??O(ua),a);let t=`${this.lc}[ctor]`}static async createFromDto(e){let a=`[${Qe.name}][${this.createFromDto.name}]`;T&&console.log(`${a}`);let t=new c;return await t.initialized,await t.loadIbGibDto(e),t}async validateWitnessArg(e){let a=`${this.lc}[${this.validateWitnessArg.name}]`,t=[];try{t=await super.validateWitnessArg(e)||[],e.data?.cmd==="put"&&(e.ibGibs||[]).length===0&&t.push('when "put" cmd is called, ibGibs required.'),e.data?.cmd==="get"&&(e.data?.ibGibAddrs||[]).length===0&&t.push('when "get" cmd is called, ibGibAddrs required.')}catch(r){throw console.error(`${a} ${m(r)}`),r}finally{t?.length>0&&console.error(`${a} errors: ${t}`)}return t}async initialize(){let e=`${this.lc}[${this.initialize.name}]`;try{if(T&&console.log(`${e} starting...`),this.data||(this.data=O(ua),this.data=this.data),this.data.classname!==c.name&&(this.data.classname&&console.warn(`${e} this.data.classname (${this.data.classname}) !== ${c.name}. overriding this. (W: 400ef8f8626132bf763b5c68bc1d3424)`),this.data.classname=c.name),this.data.encoding||(this.data.encoding=Q),this.data.baseDir||(this.data.baseDir=ue),!this.data.uuid)throw new Error("this.data.uuid is falsy. right now i'm assuming data.uuid is truthy. this is what i'm using atow (12/2024) as the indexeddb db.store to be the uuid via the baseSubPath (E: cd3475cc43d1384dccf0b20dd322b124)");this.data.baseSubPath=this.data.uuid,this.data.spaceSubPath||(this.data.spaceSubPath=ge),this.data.ibgibsSubPath||(this.data.ibgibsSubPath=K),this.data.metaSubPath||(this.data.metaSubPath=Z),this.data.binSubPath||(this.data.binSubPath=ee),this.data.dnaSubPath||(this.data.dnaSubPath=te),this.data.longSubPath===void 0&&(this.data.longSubPath=we),this.data.longPathLength===void 0&&(this.data.longPathLength=9999999999999),this.data.mitigateLongPaths===void 0&&(this.data.mitigateLongPaths=!1),this.ib=ht({space:this,classname:this.data.classname}),this.gib=await q({ibGib:this})}catch(a){console.error(`${e} ${m(a)}`)}finally{T&&console.log(`${e} complete.`)}}async putFile({ibGib:e,isDna:a}){let t=`${this.lc}[${this.putFile.name}]`,r={};try{if(!e)throw new Error("ibGib required. (E: bb41678a0e46f60782db4641e7355a24)");let o=this.data,i="",n="",s=y({ibGib:e}),l=fe({addr:s});i=await this.buildPath({addr:s,isDna:a??!1,isBin:l,ensureMetaStonePaths:!0});let d=Le.join(o.baseDir,i);T&&console.log(`${t} fullPath: ${d} (I: accfac2f2ee924da0184e241c2408624)`),T&&console.log(`${t} path: ${i}, directory: ${o.baseDir}, thisData.encoding: ${o.encoding} (I: 498dd4e293f7da0eef4b3dea2ee32524)`);let f;if(l){if(n=e.data,!n)throw new Error("(UNEXPECTED) binIbGib.data falsy? I'm trying to have data always populated for bin ibgibs even if it is an empty Uint8Array. (E: 861489baffc294baf7b463333f389824)");await Dt(d,n)}else{let h=pt({ibGib:e});n=JSON.stringify(h),f=o.encoding||"utf8",await Dt(d,n,f)}r.success=!0}catch(o){let i=`${t} ${m(o)}`;console.error(i),r.errorMsg=i}return r}async deleteFile({addr:e,isDna:a}){let t=`${this.lc}[${this.deleteFile.name}]`,r={};try{if(!e)throw new Error("addr required. (E: a2ca4b3ae9bb79891fd86c98af3de624)");if(!this.data)throw new Error("this.data required (E: 6b6163a397c42adf5b03ca5117c0d624)");let o=this.data,i="";fe({addr:e})?i=await this.buildPath({addr:e,isDna:!1,isBin:!0,ensureMetaStonePaths:!1}):i=await this.buildPath({addr:e,isDna:a??!1,ensureMetaStonePaths:!0}),T&&console.log(`${t} path: ${i}, directory: ${o.baseDir}`);let n=Le.join(this.data.baseDir,i);await Ea(n,{force:!0}),T&&console.log(`${t} deleted. path: ${i}`),r.success=!0}catch(o){let i=`${t} ${m(o)}`;i.includes("File does not exist")?T&&console.log(`${t} attempted to delete non-existent file. ${i} (I: 839257fb70d62a3273335d8536b15724)`):console.error(i),r.errorMsg=i}return r}async getFile({addr:e,isDna:a}){let t=`${this.lc}[${this.getFile.name}(${e})]`,r={};try{if(T&&console.log(`${t} starting... (I: 07e34fff2d9c7108dd79e5d6f93ed724)`),!e)throw new Error("addr required");let o=this.data,{ib:i}=C({ibGibAddr:e}),n=fe({addr:e}),l=["fork","mut8","rel8","plan"].some(f=>f===i||f.startsWith(i+" ")),d=[];if(a||l?d.push(await this.buildPath({addr:e,isDna:!0,ensureMetaStonePaths:!1})):n&&d.push(await this.buildPath({addr:e,isDna:!1,isBin:!0,ensureMetaStonePaths:!1})),d.push(await this.buildPath({addr:e,isDna:!1,ensureMetaStonePaths:!1})),Be({addr:e})||d.push(await this.buildPath({addr:e,isDna:!1,ensureMetaStonePaths:!1,pretendItsALongPath:!0})),n){let f=null,{binEncoding:h,binHash:u}=Cr({addr:e});if(u==="0"){let{ib:g,gib:E}=C({ibGibAddr:e});r.ibGib={ib:g,gib:E,data:new Uint8Array(0)}}else{for(let g of d){let E=await ga({path:g,directory:o.baseDir,encoding:h??o.encoding});if(E){f=E;break}}if(f){let{ib:g,gib:E}=C({ibGibAddr:e}),w={ib:g,gib:E,data:f.dataBuffer};r.ibGib=w}else T&&console.log(`${t} paths not found: ${JSON.stringify(d)} (I: 9116435fa6198d1e2e40ed4467e72924)`)}}else{let f=null;for(let h of d){let u=await ma({path:h,directory:o.baseDir,encoding:o.encoding});if(u){f=u;break}}f?r.ibGib=JSON.parse(f):T&&console.log(`${t} paths not found: ${JSON.stringify(d)} (I: 52287b4a0fb3e3fa5f893fa92bc15324)`)}r.success=!0}catch(o){let i=`${t} ${m(o)}`;console.error(i),r.errorMsg=i}finally{T&&console.log(`${t} complete. (I: d648c9b72261e509dac1e36279f8eb24)`)}return r}async ensurePermissions(){let e=`${this.lc}[${this.ensurePermissions.name}]`;return T&&console.log(`${e} always returns true in base class (I: eaa254b35aadb047b2c4af58f9ec6f24)`),!0}async ensureAllDirsExist(){let e=`${this.lc}[${this.ensureAllDirsExist.name}]`;try{console.warn(`${e} does nothing in web filesystem space. do I need to do anything in this concrete class? (W: 6f71512c4b32df68e483cf54e17e3124)`)}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{T&&console.log(`${e} complete.`)}}async ensureDirsImpl(e){let a=`${this.lc}[${this.ensureDirsImpl.name}]`;try{console.warn(`${a} not implemented in this web-based class. do i need this? (W: 0c50f3eb750f11108e7cd2a1263d8124)`)}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{T&&console.log(`${a} complete.`)}}async getMetaStoneAddrs({ibGibAddr:e,tjpGib:a,fnFilterIb:t}){let r=`${this.lc}[${this.getMetaStoneAddrs.name}]`;try{T&&console.log(`${r} starting... (I: f9da77d2c1920dc33efabee27847d624)`);let o=await this.buildPath({addr:e,ensureMetaStonePaths:!1,isDna:!1,addrIsForAMetaStone:!0}),i=Le.join(this.data.baseDir,o);T&&console.log(`${r} fullPath: ${i} (I: 7d69faa728f178ef5261291b4a44a424)`);let s=H({ibGibAddr:e}).tjpGib?Le.dirname(Le.join(i,"..")):Le.dirname(i);T&&console.log(`${r} containingDir: ${s} (I: 867174fbd4b3640d023dce741208b624)`);let l=t?g=>g.startsWith(Qt)&&t(g):g=>g.startsWith(Qt),d=[];try{T&&console.log(`${r} calling readdir(containingDir) (I: 9adcee17e5b5121a36f3d6e29d3fb224)`),d=await ya(s,{recursive:!1,withFileTypes:!1})}catch(g){m(g).includes("ENOENT")?T&&console.log(`${r} readdir errors: ${m(g)} (I: 95d041a148844dd09700875a1a82c424)`):console.warn(`${r} readdir error did not contain ENOENT...not sure what this is...maybe a different OS no dir exists emsg? Treating this as if dir does not exist. (W: 4fee7ed52dc4c987559eead57c89f724)`),d=[]}if(d.length===0)return T&&console.log(`${r} filenames: [empty]. no metastones found. (I: b42abb33f7636b49c195b36fca6dce24)`),[];T&&console.log(`${r} filenames: ${d} (I: 18e77f7451ce57bbbccddf9bef768624)`);let f=".json",h=5,u=d.filter(g=>{let[E,w]=g.split(qt);return!!w?.endsWith(f)&&l(E)}).map(g=>g.substring(0,g.length-h)).filter(g=>Be({addr:g})&&g.includes(a));T&&console.log(`${r} filtered/mapped filenames -> metaStoneAddrs: ${u} (I: d0396296e7de1167d226f3c84a283424)`);for(let g=0;g<u.length;g++){let E=u[g],w=rt({addr:E});if((w??[]).length>0)throw new Error(`(UNEXPECTED) invalid metastone found? metaStoneAddr (${E}) had basic validation errors: ${w.join("|")} (E: c41e8797d56833c55e32d5b4c8f79524)`);let{ib:S}=C({ibGibAddr:E}),_=br({ib:S});if(_.length>0)throw new Error(`(UNEXPECTED) metaStoneIb had validation errors? metaStoneErrors: ${_.join("|")} (E: 28ab913c2d7376843e7d94584fc94324)`)}return T&&console.log(`${r} returning metaStoneAddrs: ${u} (I: 491d7c31691e4938eb9d087f5854fa24)`),u}catch(o){throw console.error(`${r} ${m(o)}`),o}finally{T&&console.log(`${r} complete.`)}}};var uo=b(async({allowCancel:c,spaceName:e,logalot:a})=>{let t="[fnCreateNewLocalSpace]";try{if(a&&console.log(`${t} starting... (I: b05e12810c1d32269b0fa7e965ccfd24)`),e&&!ta(e))throw new Error(`spaceName (${e}) is invalid. (E: c54aa952ee34102befe5f47681cdf624)`);if(!e&&(await b(async()=>{let d=await ha()({title:"greetings program",msg:`this website does not use cookies. it's driven by ibgib's innovative protocol, and all of YOUR data is stored in a "local space" on YOUR device. in browsers, this means in IndexedDB.
|
|
34
34
|
|
|
35
35
|
so give your local space a name like 'phone_alice' or 'web_bob_foo', or leave blank to get a random name. then click ok.
|
|
36
|
-
`});d===""&&!c?e="space_"+(await R()).slice(0,10):d&&ta(d)&&(e=d)},"promptName")(),!e))return;let r=new Date,o=re(r),i=r.getMilliseconds(),n=new ie({version:"1",uuid:await R(),isTjp:!0,timestamp:o,timestampMs:i,name:e,baseDir:ue,spaceSubPath:e,baseSubPath:me,binSubPath:ee,dnaSubPath:te,ibgibsSubPath:K,metaSubPath:Z,encoding:Q,persistOptsAndResultIbGibs:Ya,validateIbGibAddrsMatchIbGibs:!0,trace:!1,description:Qa,allowPrimitiveArgs:!1,catchAllErrors:!0,longPollingIntervalMs:_e},void 0);if(a&&console.log(`${t} localSpace.ib: ${n.ib} (I: f57802654c5be84eb96d36d477425924)`),a&&console.log(`${t} localSpace.gib: ${n.gib} (before sha256v1) (I: 4171271b7c1484e90205824a31067924)`),a&&console.log(`${t} localSpace.data: ${$(n.data||"falsy")} (I: 01221a1d7f6f19accf05b17534e3e624)`),a&&console.log(`${t} localSpace.rel8ns: ${$(n.rel8ns||"falsy")} (I: 750a7ec2b25b5d344dea900cf14ca524)`),n.gib=await q({ibGib:pt({ibGib:n}),hasTjp:!0}),n.gib===ce)throw new Error("localSpace.gib not updated correctly. (E: 277f8305ec3fd8dd4b023616c1fa0624)");return a&&console.log(`${t} localSpace.gib: ${n.gib} (after sha256v1) (I: d3ab464fdb4500d95a50bf1e7c036524)`),n}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{a&&console.log(`${t} complete.`)}},"fnCreateNewLocalSpace"),mo=b(c=>Promise.resolve(ie.createFromDto(c)),"fnDtoToSpace_webFilesystem");var x=G,Ee=new Map,$a="zero_space^gib",Ia=new Set,Ot=class c extends Nt{static{b(this,"Metaspace_Webspace")}cacheSvc;lc=`[${c.name}]`;get zeroSpace(){let e=`[${this.lc}][get zeroSpace]`;if(Ee.has($a))return Ee.get($a);if(this.metaspaceFactory.fnZeroSpaceFactory){let a=this.metaspaceFactory.fnZeroSpaceFactory();return Ee.set($a,a),a}else throw new Error(`${e} (UNEXPECTED) this.metaspaceFactory.fnZeroSpaceFactory falsy. not initialized? (E: 9e6c6954dacd868b18c9f34a71e63523)`)}constructor(e){super(e),this.cacheSvc=e;let a=`${this.lc}[ctor]`;x&&(console.log(`${a}${ra}`),console.timeLog(ra),console.log(`${a} created. (I: 5690dc2ebf774df3a442bd463dee7455)`))}async initializeMetaspaceFactory({metaspaceFactory:e}){let a=`[${this.initializeMetaspaceFactory.name}]`;try{x&&console.log(`${a} starting... (I: 5a29670439ac47634dcdfe25225c8223)`),await super.initializeMetaspaceFactory({metaspaceFactory:e}),e.fnDefaultLocalSpaceFactory??=async t=>{let r=await uo(t);if(!r)throw new Error("(UNEXPECTED) createdSpace undefined? (E: 21258175efdd1a9cb1f9fc8ab59e0324)");if(!r.data?.uuid)throw new Error("(UNEXPECTED) createdSpace.data.uuid undefined? (E: 0a6c44c078d9e21e92f703adbc995c24)");let o=r.data.uuid;await na({dbName:oe(),storeName:o,logalot:x});let i=y({ibGib:r});return Ee.set(i,r),r},e.fnDtoToSpace??=async t=>{let r=t.data?.uuid;if(!r)throw new Error("spaceDto.data?.uuid falsy? (E: b73bded9ebede92b8ef53b8d05dca225)");Ia.has(r)||(await na({dbName:oe(),storeName:r,logalot:x}),Ia.add(r));let o=y({ibGib:t}),i=Ee.get(o);if(i=void 0,!i){if(i=await mo(t),!i.data?.uuid)throw new Error("(UNEXPECTED) resCreateNewSpace.data.uuid undefined? (E: f1e0e75f02b607b349b4102a8c8f7724)");Ee.set(o,i)}return i},this.metaspaceFactory.fnZeroSpaceFactory??=()=>{let t=new ie(void 0,void 0);return t.gib="gib",t}}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{x&&console.log(`${a} complete.`)}}async initialize(e){let a=`${this.lc}[${this.initialize.name}]`;await this.initializeZeroSpace(),await super.initialize(e)}async initializeZeroSpace(){let e=`[${this.initializeZeroSpace.name}]`;try{x&&console.log(`${e} starting... (I: a3364e9601c70c8163e67868e5d67723)`),x&&console.log(`${e} we are assuming zero space storage is initialized in indexed db. atow (03/2025), this is done in initBlankGibStorage in index.mts (I: cb1dd69b21efc2fc366956349e865125)`)}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{x&&console.log(`${e} complete.`)}}async getLocalUserSpace({lock:e,localSpaceId:a}){let t=`${this.lc}[${this.getLocalUserSpace.name}]`;try{x&&console.log(`${t} starting... (I: e68ae7f617e4a1af026ab1ac1c52f425)`);let r=await super.getLocalUserSpace({lock:e,localSpaceId:a});return r?((await X({ibGib:r})??[]).length>0&&console.error("(UNEXPECTED) local user space is invalid intrinsically? when did this happen? (E: df5c8e62c204a6972e364fa33d9b7725)"),r):(console.error("(UNEXPECTED) local user space falsy? NOTE: This error is just logged, not thrown as I don't know if this is always improper behavior. (E: 3c7cac40d11b26c3fd95183d06ffc225)"),r)}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{x&&console.log(`${t} complete.`)}}async rel8ToCurrentRoot(e){let a=`${this.lc}[${this.rel8ToCurrentRoot.name}]`;try{x&&console.log(`${a} starting... (I: 0f999532d51b1ad2084ed30670297125)`);let t=e.space??await this.getLocalUserSpace({});if(!t)throw new Error("(UNEXPECTED) space falsy and couldn't get default local user space? (E: e8b63af1b0fb692c4761fe9627eaf525)");await Fe({fn:b(async()=>{let r=`${this.lc}[${this.rel8ToCurrentRoot.name}]`;try{return x&&console.log(`${r} starting... (I: 5444c70bd93b13b59ef9cd06ee72d825)`),super.rel8ToCurrentRoot(e)}catch(o){throw console.error(`${r} ${m(o)}`),o}finally{x&&console.log(`${r} complete.`)}},"fn"),scope:a,secondsValid:60,maxDelayMs:100,maxLockAttempts:600,space:t,callerInstanceId:this.instanceId})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{x&&console.log(`${a} complete.`)}}async rel8ToSpecialIbGib(e){let a=`${this.lc}[${this.rel8ToSpecialIbGib.name}]`;try{x&&console.log(`${a} starting... (I: 906d2e553f163405f3238f141ed6fb25)`);let t=e.space??await this.getLocalUserSpace({});if(!t)throw new Error("(UNEXPECTED) space falsy and couldn't get default local user space? (E: 3c587503d08aa8b8cda25bb7064bf125)");return await Fe({fn:b(async()=>{let o=`${this.lc}[${this.rel8ToCurrentRoot.name}]`;try{return x&&console.log(`${o} starting... (I: 3b9f44934d88196bc3d0087cadd23125)`),super.rel8ToSpecialIbGib(e)}catch(i){throw console.error(`${o} ${m(i)}`),i}finally{x&&console.log(`${o} complete.`)}},"fn"),scope:a,secondsValid:60,maxDelayMs:100,maxLockAttempts:600,space:t,callerInstanceId:this.instanceId})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{x&&console.log(`${a} complete.`)}}async deleteLocalUserSpace({spaceId:e,deletePhysicalStorage:a=!0}){let t=`${this.lc}[${this.deleteLocalUserSpace.name}]`;try{if(x&&console.log(`${t} starting... spaceId: ${e} (I: c81a5120a14941a590b512a8e0915623)`),!e)throw new Error("spaceId required. (E: f3a210410a124b819e917f9db0972b23)");let r=await this.getLocalUserSpace({localSpaceId:e});if(r){let o=y({ibGib:r});Ee.delete(o)}if(Ia.delete(e),await super.deleteLocalUserSpace({spaceId:e,deletePhysicalStorage:a}),a){let o=oe();x&&console.log(`${t} purging IndexedDB store/subpath for spaceId (${e}) in db (${o})... (I: d9410a5170d14b4fb2478d102e3b2e23)`),await
|
|
36
|
+
`});d===""&&!c?e="space_"+(await R()).slice(0,10):d&&ta(d)&&(e=d)},"promptName")(),!e))return;let r=new Date,o=re(r),i=r.getMilliseconds(),n=new ie({version:"1",uuid:await R(),isTjp:!0,timestamp:o,timestampMs:i,name:e,baseDir:ue,spaceSubPath:e,baseSubPath:me,binSubPath:ee,dnaSubPath:te,ibgibsSubPath:K,metaSubPath:Z,encoding:Q,persistOptsAndResultIbGibs:Ya,validateIbGibAddrsMatchIbGibs:!0,trace:!1,description:Qa,allowPrimitiveArgs:!1,catchAllErrors:!0,longPollingIntervalMs:_e},void 0);if(a&&console.log(`${t} localSpace.ib: ${n.ib} (I: f57802654c5be84eb96d36d477425924)`),a&&console.log(`${t} localSpace.gib: ${n.gib} (before sha256v1) (I: 4171271b7c1484e90205824a31067924)`),a&&console.log(`${t} localSpace.data: ${$(n.data||"falsy")} (I: 01221a1d7f6f19accf05b17534e3e624)`),a&&console.log(`${t} localSpace.rel8ns: ${$(n.rel8ns||"falsy")} (I: 750a7ec2b25b5d344dea900cf14ca524)`),n.gib=await q({ibGib:pt({ibGib:n}),hasTjp:!0}),n.gib===ce)throw new Error("localSpace.gib not updated correctly. (E: 277f8305ec3fd8dd4b023616c1fa0624)");return a&&console.log(`${t} localSpace.gib: ${n.gib} (after sha256v1) (I: d3ab464fdb4500d95a50bf1e7c036524)`),n}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{a&&console.log(`${t} complete.`)}},"fnCreateNewLocalSpace"),mo=b(c=>Promise.resolve(ie.createFromDto(c)),"fnDtoToSpace_webFilesystem");var x=G,Ee=new Map,$a="zero_space^gib",Ia=new Set,Ot=class c extends Nt{static{b(this,"Metaspace_Webspace")}cacheSvc;lc=`[${c.name}]`;get zeroSpace(){let e=`[${this.lc}][get zeroSpace]`;if(Ee.has($a))return Ee.get($a);if(this.metaspaceFactory.fnZeroSpaceFactory){let a=this.metaspaceFactory.fnZeroSpaceFactory();return Ee.set($a,a),a}else throw new Error(`${e} (UNEXPECTED) this.metaspaceFactory.fnZeroSpaceFactory falsy. not initialized? (E: 9e6c6954dacd868b18c9f34a71e63523)`)}constructor(e){super(e),this.cacheSvc=e;let a=`${this.lc}[ctor]`;x&&(console.log(`${a}${ra}`),console.timeLog(ra),console.log(`${a} created. (I: 5690dc2ebf774df3a442bd463dee7455)`))}async initializeMetaspaceFactory({metaspaceFactory:e}){let a=`[${this.initializeMetaspaceFactory.name}]`;try{x&&console.log(`${a} starting... (I: 5a29670439ac47634dcdfe25225c8223)`),await super.initializeMetaspaceFactory({metaspaceFactory:e}),e.fnDefaultLocalSpaceFactory??=async t=>{let r=await uo(t);if(!r)throw new Error("(UNEXPECTED) createdSpace undefined? (E: 21258175efdd1a9cb1f9fc8ab59e0324)");if(!r.data?.uuid)throw new Error("(UNEXPECTED) createdSpace.data.uuid undefined? (E: 0a6c44c078d9e21e92f703adbc995c24)");let o=r.data.uuid;await na({dbName:oe(),storeName:o,logalot:x});let i=y({ibGib:r});return Ee.set(i,r),r},e.fnDtoToSpace??=async t=>{let r=t.data?.uuid;if(!r)throw new Error("spaceDto.data?.uuid falsy? (E: b73bded9ebede92b8ef53b8d05dca225)");Ia.has(r)||(await na({dbName:oe(),storeName:r,logalot:x}),Ia.add(r));let o=y({ibGib:t}),i=Ee.get(o);if(i=void 0,!i){if(i=await mo(t),!i.data?.uuid)throw new Error("(UNEXPECTED) resCreateNewSpace.data.uuid undefined? (E: f1e0e75f02b607b349b4102a8c8f7724)");Ee.set(o,i)}return i},this.metaspaceFactory.fnZeroSpaceFactory??=()=>{let t=new ie(void 0,void 0);return t.gib="gib",t}}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{x&&console.log(`${a} complete.`)}}async initialize(e){let a=`${this.lc}[${this.initialize.name}]`;await this.initializeZeroSpace(),await super.initialize(e)}async initializeZeroSpace(){let e=`[${this.initializeZeroSpace.name}]`;try{x&&console.log(`${e} starting... (I: a3364e9601c70c8163e67868e5d67723)`),x&&console.log(`${e} we are assuming zero space storage is initialized in indexed db. atow (03/2025), this is done in initBlankGibStorage in index.mts (I: cb1dd69b21efc2fc366956349e865125)`)}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{x&&console.log(`${e} complete.`)}}async getLocalUserSpace({lock:e,localSpaceId:a}){let t=`${this.lc}[${this.getLocalUserSpace.name}]`;try{x&&console.log(`${t} starting... (I: e68ae7f617e4a1af026ab1ac1c52f425)`);let r=await super.getLocalUserSpace({lock:e,localSpaceId:a});return r?((await X({ibGib:r})??[]).length>0&&console.error("(UNEXPECTED) local user space is invalid intrinsically? when did this happen? (E: df5c8e62c204a6972e364fa33d9b7725)"),r):(console.error("(UNEXPECTED) local user space falsy? NOTE: This error is just logged, not thrown as I don't know if this is always improper behavior. (E: 3c7cac40d11b26c3fd95183d06ffc225)"),r)}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{x&&console.log(`${t} complete.`)}}async rel8ToCurrentRoot(e){let a=`${this.lc}[${this.rel8ToCurrentRoot.name}]`;try{x&&console.log(`${a} starting... (I: 0f999532d51b1ad2084ed30670297125)`);let t=e.space??await this.getLocalUserSpace({});if(!t)throw new Error("(UNEXPECTED) space falsy and couldn't get default local user space? (E: e8b63af1b0fb692c4761fe9627eaf525)");await Fe({fn:b(async()=>{let r=`${this.lc}[${this.rel8ToCurrentRoot.name}]`;try{return x&&console.log(`${r} starting... (I: 5444c70bd93b13b59ef9cd06ee72d825)`),super.rel8ToCurrentRoot(e)}catch(o){throw console.error(`${r} ${m(o)}`),o}finally{x&&console.log(`${r} complete.`)}},"fn"),scope:a,secondsValid:60,maxDelayMs:100,maxLockAttempts:600,space:t,callerInstanceId:this.instanceId})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{x&&console.log(`${a} complete.`)}}async rel8ToSpecialIbGib(e){let a=`${this.lc}[${this.rel8ToSpecialIbGib.name}]`;try{x&&console.log(`${a} starting... (I: 906d2e553f163405f3238f141ed6fb25)`);let t=e.space??await this.getLocalUserSpace({});if(!t)throw new Error("(UNEXPECTED) space falsy and couldn't get default local user space? (E: 3c587503d08aa8b8cda25bb7064bf125)");return await Fe({fn:b(async()=>{let o=`${this.lc}[${this.rel8ToCurrentRoot.name}]`;try{return x&&console.log(`${o} starting... (I: 3b9f44934d88196bc3d0087cadd23125)`),super.rel8ToSpecialIbGib(e)}catch(i){throw console.error(`${o} ${m(i)}`),i}finally{x&&console.log(`${o} complete.`)}},"fn"),scope:a,secondsValid:60,maxDelayMs:100,maxLockAttempts:600,space:t,callerInstanceId:this.instanceId})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{x&&console.log(`${a} complete.`)}}async deleteLocalUserSpace({spaceId:e,deletePhysicalStorage:a=!0}){let t=`${this.lc}[${this.deleteLocalUserSpace.name}]`;try{if(x&&console.log(`${t} starting... spaceId: ${e} (I: c81a5120a14941a590b512a8e0915623)`),!e)throw new Error("spaceId required. (E: f3a210410a124b819e917f9db0972b23)");let r=await this.getLocalUserSpace({localSpaceId:e});if(r){let o=y({ibGib:r});Ee.delete(o)}if(Ia.delete(e),await super.deleteLocalUserSpace({spaceId:e,deletePhysicalStorage:a}),a){let o=oe();x&&console.log(`${t} purging IndexedDB store/subpath for spaceId (${e}) in db (${o})... (I: d9410a5170d14b4fb2478d102e3b2e23)`),await wt({dbName:o,storeName:e,pathToRm:"/"})}x&&console.log(`${t} complete.`)}catch(r){throw console.error(`${t} ${m(r)}`),r}}};async function _a(c){let e=`[${_a.name}]`,a=!0;try{a&&console.log(`${e} starting...`);let t=c.getGlobalThis(c.config);if(t.bootstrapStarted)if(t.bootstrapPromise)console.warn(`${e} already bootstrapping \u2014 awaiting that promise.`);else throw new Error("(UNEXPECTED) bootstrapStarted but bootstrapPromise is falsy?");else t.bootstrapStarted=!0,t.bootstrapPromise=new Promise(async(r,o)=>{try{let i=c.getOpeningArgs?await c.getOpeningArgs():["--interactive"],n=c.paramInfos??[{name:"interactive",isFlag:!0,argTypeName:"boolean"}],s=si({paramInfos:n});if(s.length>0)throw new Error(`(UNEXPECTED) invalid PARAM_INFOS: ${s.join("|")}`);let l=St({args:i,paramInfos:n,logalot:a});if(c.validateArgInfos){let d=c.validateArgInfos({argInfos:l});if(d)throw new Error(`Arg validation errors: ${d}`)}await go({opts:c,args:i,argInfos:l,logalot:a}),r()}catch(i){o(i)}});if(await t.bootstrapPromise,c.onReady){let r=b(()=>t.appInstance||null,"getApp");await c.onReady(r())}}catch(t){throw console.error(`${e} ${m(t)}`),t}finally{a&&console.log(`
|
|
37
37
|
${e} complete.`)}}b(_a,"bootstrapIbGibApp");async function go({opts:c,args:e,argInfos:a,logalot:t}){let r=`[${go.name}]`;try{t&&console.log(`${r} starting...`);let o=await wo({opts:c,logalot:t}),i=Or();i.metaspace=o;let n=c.getGlobalThis(c.config);n.metaspace=o,c.ensureTags&&await Io({metaspace:o,tags:c.ensureTags,logalot:t}),c.registerAgentFunctionInfos&&c.registerAgentFunctionInfos();let s=await ni({args:e,interpretedArgInfos:a});await o.persistTransformResult({resTransform:s}),n.initialCommentIbGib=s.newIbGib;let l=new Hr;await l.initialized,l.setWrappedIbGib({ibGib:s.newIbGib}),n.initialCommentIbGibProxy=l,c.resolveIdentity&&(n.identity=await c.resolveIdentity(o)),await Eo({opts:c,resRequestCommentIbGib:s,metaspace:o,logalot:t})}catch(o){throw console.error(`${r} ${m(o)}`),o}finally{t&&console.log(`
|
|
38
|
-
${r} complete.`)}}b(go,"execFromArgs");async function wo({opts:c,logalot:e}){let a=`[${wo.name}]`;try{e&&console.log(`${a} starting...`);let t=new Ot(void 0),r=c.localSpaceNamePrefix?`${c.localSpaceNamePrefix}_local_space_name`:"local_space_name",o=await
|
|
38
|
+
${r} complete.`)}}b(go,"execFromArgs");async function wo({opts:c,logalot:e}){let a=`[${wo.name}]`;try{e&&console.log(`${a} starting...`);let t=new Ot(void 0),r=c.localSpaceNamePrefix?`${c.localSpaceNamePrefix}_local_space_name`:"local_space_name",o=await gt({dbName:c.config.dbName,storeName:c.config.storeName,key:r}),i=c.localSpaceNamePrefix??"app_space",n=o?void 0:await ii(i);return await t.initialize({spaceName:n,metaspaceFactory:void 0,getFnAlert:b(()=>({title:s,msg:l})=>ia({title:s,msg:l}),"getFnAlert"),getFnPrompt:b(()=>({title:s,msg:l})=>He({title:s,msg:l,confirm:!1}),"getFnPrompt"),getFnPromptPassword:b(()=>()=>Rr({confirm:!0}),"getFnPromptPassword")}),t}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{e&&console.log(`${a} complete.`)}}b(wo,"initMetaspace");async function ii(c){let e=c+"_"+zt({count:12});if(!Vt.test(e))throw new Error(`(UNEXPECTED) generated space name (${e}) failed regexp`);return e}b(ii,"generateLocalSpaceName");async function Eo({opts:c,resRequestCommentIbGib:e,metaspace:a,logalot:t}){let r=`[${Eo.name}]`;try{t&&console.log(`${r} starting...`);let o=await a.getLocalUserSpace({lock:!1});if(!o)throw new Error("(UNEXPECTED) localUserSpace falsy?");let i=c.fnGetOrCreateApp?await c.fnGetOrCreateApp(a,o):await yo({AppClass:c.AppClass,defaultAppData:c.defaultAppData,onBeforeCreate:c.onBeforeCreate,onAppLoaded:c.onAppLoaded,metaspace:a,space:o}),n=c.getGlobalThis(c.config);n.appInstance=i,i.metaspace=a,await i.witness(e.newIbGib)}catch(o){throw console.error(`${r} ${m(o)}`),o}finally{t&&console.log(`${r} complete.`)}}b(Eo,"execInteractive");async function yo({AppClass:c,defaultAppData:e,onBeforeCreate:a,onAppLoaded:t,metaspace:r,space:o}){let i=`[${yo.name}]`,n=!0;try{n&&console.log(`${i} starting...`);let s=await r.getSpecialIbGib({type:Wt.apps,initialize:!1,lock:!1,space:o});if(!s)throw new Error("(UNEXPECTED) no apps index ibgib");if(!s.rel8ns)throw new Error("(UNEXPECTED) appsIbGib.rel8ns falsy");let l=(s.rel8ns[ke]??[]).filter(g=>{let{ib:E}=C({ibGibAddr:g});return dr({appIb:E}).appClassname===c.name}),d,f,h=!1;if(l.length===0)h=!0,a&&await a(r,o),d=await $o({AppClass:c,defaultAppData:e,metaspace:r,space:o}),f=y({ibGib:d});else if(l.length===1)f=l[0];else{let g=l.map(S=>C({ibGibAddr:S}).ib).map((S,_)=>`
|
|
39
39
|
${_}) ${S}`),E,w=!1;do{let S=await He({title:"Which App?",msg:`${w?"huh? ":""}Multiple apps found. Which one?${g}`}),_=Number.parseInt(S);w=Number.isNaN(_)||_>=l.length,w||(E=_)}while(w);f=l[E]}let u=await lt({addr:f,space:o});if(u.success&&u.ibGibs?.length===1)d=u.ibGibs[0];else throw new Error(`Couldn't get app (${f}).`);if(!d.witness){let g=new c(void 0,void 0);await g.loadIbGibDto(d),d=g}return t&&(d=await t(d,h)),d}catch(s){throw console.error(`${i} ${m(s)}`),s}finally{n&&console.log(`${i} complete.`)}}b(yo,"defaultGetOrCreateApp");async function $o({AppClass:c,defaultAppData:e,metaspace:a,space:t}){let r=`[${$o.name}]`,o=!0;try{o&&console.log(`${r} starting...`);let n=await st({fnPromptApp:async()=>{let s=`${c.name}_${zt({count:8})}`,l=O(e);l.name=s,l.uuid=await R();let d=void 0,{classname:f}=l,h=lr({appData:l,classname:f});return await le.firstGen({ib:h,parentIbGib:le.primitive({ib:`app ${f}`}),data:l,rel8ns:d,dna:!0,linkedRel8ns:[Ht.ancestor,Ht.past],nCounter:!0,tjp:{timestamp:!0}})},space:t,ibgibs:a});if(!n)throw new Error("Failed to create app (falsy).");if(n?.data?.classname!==c.name)throw new Error("(UNEXPECTED) wrong app classname.");return n}catch(i){throw console.error(`${r} ${m(i)}`),i}finally{o&&console.log(`${r} complete.`)}}b($o,"createAndSaveNewApp");async function Io({metaspace:c,tags:e,logalot:a}){let t=`[${Io.name}]`;try{a&&console.log(`${t} starting...`);let r=await c.getSpecialRel8dIbGibs({type:"tags",rel8nName:Za});for(let o of e)r.some(i=>i.data?.text===o.text)||await c.createTagIbGib({text:o.text,icon:o.icon,description:o.description,space:void 0})}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{a&&console.log(`${t} complete.`)}}b(Io,"ensureTagsExist");async function ni({args:c,interpretedArgInfos:e}){let a=c.join(" "),t={uuid:await R(),text:a,args:c,interpretedArgInfos:e,textTimestamp:re()};return await le.firstGen({parentIbGib:le.primitive({ib:"comment"}),ib:`comment ${a.substring(0,32).replace(/ /g,"_")}`,data:t,dna:!0,tjp:{uuid:!0,timestamp:!0},nCounter:!0})}b(ni,"createRequestCommentIbGib_Common");function si({paramInfos:c}){let e=[],a=[];return c.forEach(t=>{[t.name,...t.synonyms??[]].forEach(o=>{a.includes(o.toLowerCase())&&e.push(`Duplicate identifier found: ${o}`),a.push(o.toLowerCase())})}),e}b(si,"validateParamInfos");var _o;(function(c){c.roots="roots",c.tags="tags",c.latest="latest",c.outerspaces="outerspaces",c.secrets="secrets",c.encryptions="encryptions"})(_o||(_o={}));var Rt={ib:"ib",gib:"gib",ibgib:"ibgib"};var De=!1;function Sa({ibGib:c}){let e=`[${Sa.name}]`;try{if(De&&console.log(`${e} starting...`),!c)throw new Error("ibGib required (E: 1237b2d4602a3d526f6b159cb6ad0922)");let{ib:a,data:t,rel8ns:r}=c;if(!r)return De&&console.log(`${e} rel8ns falsy, not a pic (I: 563a3e779b85b070550581e652e0ca22)`),!1;let o=r.ancestor||[];return o&&o.includes("pic^gib")?!0:t?t.binHash&&t.ext&&t.filename&&a?.includes("pic")?(De&&console.log(`${e} has binHash, ext, filename and ib has pic (I: f754b6b023d5379ee770038617edc722)`),!0):(De&&console.log(`${e} reached end, doesn't have pic qualities. not a pic. (I: 298c5e9a2916445df1cdd22a96f57522)`),!1):(De&&console.log(`${e} data falsy, not a pic (I: 6c05c03cdfca4085aef8f2a19df91690)`),!1)}catch(a){throw console.error(`${e} ${a.message}`),a}finally{De&&console.log(`${e} complete.`)}}b(Sa,"isPic");var N=!1,Mt=class c extends zr{static{b(this,"AppBase_V1")}lc=`[${c.name}]`;constructor(e,a){super(e,a)}async witnessImpl(e){let a=`${this.lc}[${this.witnessImpl.name}]`;try{N&&console.log(`${a} starting...`),await this.loadNewerSelfIfAvailable();let t;return la({ibGib:e})?t=await this.routeAndDoArg({arg:e}):t=await this.doNonArg({ibGib:e}),t||(console.warn(`${a} result still falsy. doing default handler. (W: aba0de32c3835056447d7de3a2fb0223)`),t=await this.doDefault({ibGib:e})),t||console.warn(`${a} result falsy...Could not produce result? Was doDefault implemented in concrete class? (W: 15e70486bc33922f9388961bab815223)`),t}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{N&&console.log(`${a} complete.`)}}async routeAndDoArg({arg:e}){let a=`${this.lc}[${this.routeAndDoArg.name}]`;try{N&&console.log(`${a} starting...`);let t=e;if(!la({ibGib:t}))throw new Error("ibGib is not an arg (E: f0e36b13acbcdb1123ee72bdb9ee7723)");return qr({ibGib:t})?this.doCmdArg({arg:e}):void 0}catch(t){if(console.error(`${a} ${m(t)}`),this.data?.catchAllErrors)return await Br({rawMsg:m(t)});throw t}finally{N&&console.log(`${a} complete.`)}}doCmdArg({arg:e}){let a=`${this.lc}[${this.doCmdArg.name}]`;try{if(N&&console.log(`${a} starting...`),!e.data?.cmd)throw new Error("invalid cmd arg. arg.data.cmd required. (E: aec4dd5bd967fbf36f9c4fad22210222)");if(e.data.cmd===Rt.ib)return this.doCmdIb({arg:e});if(e.data.cmd===Rt.gib)return this.doCmdGib({arg:e});if(e.data.cmd===Rt.ibgib)return this.doCmdIbgib({arg:e});throw new Error(`unknown arg.data.cmd: ${e.data.cmd} (E: 721fa6a5166327134f9504c1caa3e422)`)}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{N&&console.log(`${a} complete.`)}}doCmdIb({arg:e}){let a=`${this.lc}[${this.doCmdIb.name}]`;try{throw N&&console.log(`${a} starting...`),new Error("not implemented in base class (E: 7298662a2b8f67611d16a8af0e499422)")}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{N&&console.log(`${a} complete.`)}}doCmdGib({arg:e}){let a=`${this.lc}[${this.doCmdGib.name}]`;try{throw N&&console.log(`${a} starting...`),new Error("not implemented in base class (E: b6bf2c788c734051956481be7283d006)")}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{N&&console.log(`${a} complete.`)}}doCmdIbgib({arg:e}){let a=`${this.lc}[${this.doCmdIbgib.name}]`;try{throw N&&console.log(`${a} starting...`),new Error("not implemented in base class (E: 4fee11f05315467abd036cd8555d27db)")}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{N&&console.log(`${a} complete.`)}}doPic({ibGib:e}){let a=`${this.lc}[${this.doPic.name}]`;try{throw N&&console.log(`${a} starting...`),new Error("not implemented in base class (E: 16ba889931644d42ad9e476757dd0617)")}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{N&&console.log(`${a} complete.`)}}doComment({ibGib:e}){let a=`${this.lc}[${this.doComment.name}]`;try{throw N&&console.log(`${a} starting...`),new Error("not implemented in base class (E: 0486a7864729456d993a1afe246faea4)")}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{N&&console.log(`${a} complete.`)}}doNonArg({ibGib:e}){let a=`${this.lc}[${this.doNonArg.name}]`;try{return N&&console.log(`${a} starting...`),We({ibGib:e})?this.doComment({ibGib:e}):Sa({ibGib:e})?this.doPic({ibGib:e}):this.doDefault({ibGib:e})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{N&&console.log(`${a} complete.`)}}doDefault({ibGib:e}){let a=`${this.lc}[${this.doDefault.name}]`;try{throw N&&console.log(`${a} starting...`),new Error("not implemented in base class (E: 5038662186617aaf1f0cc698fd1f9622)")}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{N&&console.log(`${a} complete.`)}}async validateThis(){let e=`${this.lc}[${this.validateThis.name}]`;try{return N&&console.log(`${e} starting...`),this.data,[...cr({appData:this.data})]}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{N&&console.log(`${e} complete.`)}}async argy({argData:e,ibMetadata:a,noTimestamp:t,ibGibs:r}){let o=await Pe({argData:e,ibMetadata:a,noTimestamp:t});return r&&(o.ibGibs=r),o}async resulty({resultData:e,ibGibs:a}){let t=await yt({resultData:e});return a&&(t.ibGibs=a),t}};function So({ibGib:c}){if(!We({ibGib:c}))return!1;let e=c.data;return!!(e?.args?.length&&e?.interpretedArgInfos?.length)}b(So,"isRequestComment");var ci={help:"help",quit:"quit"},Td=Object.values(ci),Aa={name:"interactive",isFlag:!0,synonyms:["i"],argTypeName:"boolean",allowMultiple:!1},Ao=[Aa];var ne=Ge,vt=class c extends Mt{static{b(this,"SpaceGibApp_V1")}lc=`[${c.name}]`;constructor(e,a){super(e,a);let t=`${this.lc}[ctor]`;try{ne&&console.log(`${t} starting...`),this.initialized=this.initialize()}catch(r){throw console.error(`${t} ${m(r)}`),r}finally{ne&&console.log(`${t} complete.`)}}getAddlMetadata(){return super.getAddlMetadata()}parseAddlMetadataString({ib:e}){if(!e)throw new Error("ib required (E: aec93595c12cc15ee71d92dd8a4f4f23)");let a=`[${this.parseAddlMetadataString.name}]`;try{let[t,r,o,i]=e.split("_");return{atom:t,classnameIsh:r,nameIsh:o,idIsh:i}}catch(t){throw console.error(`${a} ${m(t)}`),t}}async handleNewContextChild({newChild:e}){let a=`${this.lc}[${this.handleNewContextChild.name}]`;try{ne&&console.log(`${a} starting... (I: 8494f1d374a8490bb4598c8bffa1fe75)`)}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{ne&&console.log(`${a} complete.`)}}async doNonArg({ibGib:e}){let a=`${this.lc}[${this.doNonArg.name}]`;try{return ne&&console.log(`${a} starting...`),So({ibGib:e})?await this.doContextRequestComment({requestCommentIbGib:e}):await super.doNonArg({ibGib:e})}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{ne&&console.log(`${a} complete.`)}}async doContextRequestComment({requestCommentIbGib:e}){let a=`${this.lc}[${this.doContextRequestComment.name}]`;try{ne&&console.log(`${a} starting...`);let{interpretedArgInfos:t}=e.data;return t.some(r=>r.name===Aa.name)?(await this.initializeContext({contextIbGib:e,rel8nName:pr}),console.log(`${this.lc} space-gib initialized and ready.`)):console.warn(`${a} other requests not implemented yet.`),ye}catch(t){throw console.error(`${a} ${m(t)}`),t}finally{ne&&console.log(`${a} complete.`)}}};var li="",di="space_gib",fi="SpaceGib: ibgib durable storage and SaaS provider at ibgib.space.",To={version:"1",uuid:li,name:di,description:fi,classname:"SpaceGibApp_V1",icon:"cube",persistOptsAndResultIbGibs:!1,allowPrimitiveArgs:!0,catchAllErrors:!0,trace:!1};var B={agentId:$t,agentName:Ne,repromptWithResult:{type:"boolean",description:"Set this to true if you want to be reprompted with the function's result. Unless you really want a fire-and-forget style of function call, set this to true. NOTE: This is ignored with tellUser command, so you can't call tellUser and then repromptWithResult of true and then tellUser again."},notesToSelf:{type:"string",description:"Quick note scratchpad related to a requested function. For example, you could write your intent here."}};var Ga=class c{static{b(this,"CommandService_V1")}lc=`[${c.name}]`;commandQueue=[];isProcessing=!1;constructor(){}enqueueCommand(e){this.commandQueue.push(e),this.isProcessing||this.startProcessing()}startProcessing(){this.isProcessing=!0,this.processQueue().finally(()=>{this.isProcessing=!1,this.commandQueue.length>0&&this.startProcessing()})}async processQueue(){let e=`${this.lc}[${this.processQueue.name}]`;for(;this.commandQueue.length>0;){let a=this.commandQueue.shift();if(a)try{let t=await this.executeCommand(a.command,a.anonApiFn);a.resolve(t)}catch(t){console.error(`Error executing command ${a.command.cmd} ${a.command.cmdModifiers?.join(",")??""}:`,t),a.reject(t)}}}async executeCommand(e,a){let t=`[${c.name}.${this.executeCommand.name}]`;try{let r=a??Array.from(Vr().entries()).map(o=>o[1]).find(o=>o.cmd===e.cmd&&o.cmdModifiers.every(i=>!!e.cmdModifiers?.includes(i)));if(r){console.log(`${t} command executing. cmdData: ${$(e)}`),e.notesToSelf&&console.log(`${t} Notes to self: ${e.notesToSelf}. (I: ebcc5471b2b309ba186281c134f77e25)`);let o=this.getCommandArgs(e,r);return await r.functionImpl(o)}else throw new Error(`${t} Unknown command: ${e.cmd} with modifiers ${e.cmdModifiers?.join(", ")} (E: cc9cb829f118de05b762020213ef2825)`)}catch(r){debugger;let o=`${t} ${m(r)}`;return console.error(o),{errorMsg:o}}}getCommandArgs(e,a){return e}},Ta;function F(){return Ta||(Ta=new Ga),Ta}b(F,"getCommandService");var j="## Examples: ";var Pa=G,Na="getIbGibs",Ca="ibgib",xa=[Na],bi={ibGibAddrs:["project SomeProject 1748386170000^A2D75E05B14E264619D24ABA4F1A1B2328E183B4524CC26029E54B84BF7BFD73.02544DDD1E042D481EAF62E36229EEC54F20C1899250D6F664ABB48A2013C994"],notesToSelf:"Example of getting a single ibgib. Note that even though it's only getting a single ibgib, it still passes in an array. Usually reprompt is set because you're calling this to see the full ibgib record(s).",repromptWithResult:!0},hi={ibGibAddrs:["project SomeProject 1748386170000^A2D75E05B14E264619D24ABA4F1A1B2328E183B4524CC26029E54B84BF7BFD73.02544DDD1E042D481EAF62E36229EEC54F20C1899250D6F664ABB48A2013C994","comment HelloWorld^98289357698348694683943689487958972634583644598269186EA90A3F4A73.298986986BC82792837498759817F9827395872AC87519CDAFFE8175786E5098"],notesToSelf:"Example of getting multiple ibgibs. Usually reprompt is set because you're calling this to see the full ibgib record(s).",repromptWithResult:!0},pi=[j,$(bi),$(hi)].join(`
|
|
40
40
|
`),ui=["Gets one or more full ibgib records via their addrs.","Note that all of these must be in a single space, determined by the spaceId arg. IF not provided, then the default local user space will be used.",pi].join(`
|
|
41
41
|
`),mi={type:"array",description:"The ibGib addresses (ib^gib) of the ibGibs to load.",items:{type:"string",description:'caret-delimited ib^gib address, e.g., "comment HelloWorld^98289357698348694683943689487958972634583644598269186EA90A3F4A73.298986986BC82792837498759817F9827395872AC87519CDAFFE8175786E5098"'}},gi={name:Na,description:ui,parameters:{type:"object",properties:{...B,spaceId:{type:"string",description:"The id of the local user space. If not provided, will use the default local space. Only provide this if you don't want to use the default space. Agents should either leave this unset, or if they are trying to mut8 an ibGib that is inside *their* subspace, then they should provide this. Otherwise, it will look in the default space which will be incorrect. In the future, agents will have a different API for interacting with their subspaces, but for now this may be used (if the agent even has access to their subspace id. it's so early in dev, I'm not sure if this is true.)"},ibGibAddrs:mi,getLatest:{type:"boolean",description:"Set to true if you want to get the latest ibgib in a timeline for the given incoming ibGibAddr. This is usually going to be true, unless you are specifically looking for ibGibs in the past or some other use case where you want the specific ibGib in time, so agents should explicitly decide this before calling this function (but no need to tell the user or anything, just make this decision)."}},required:["ibGibAddrs"]}};function wi(c){let e=F(),a={...c,cmd:Ca,cmdModifiers:xa};return new Promise((t,r)=>{e.enqueueCommand({command:a,resolve:t,reject:r})})}b(wi,"getIbGibsViaCmd");async function Go(c){let e=`[${Go.name}]`;try{Pa&&console.log(`${e} starting... (I: genuuid)`),console.log(`${e} ${Ca} ${xa} opts: ${$(c)}`);let{spaceId:a,ibGibAddrs:t,getLatest:r}=c;if(!t)throw new Error("(UNEXPECTED) ibGibAddrs falsy? (E: e9beaad8ab3cf56608dd5fc79c4c1825)");if(t.length===0)throw new Error("ibGibAddrs is empty (E: f0b1462f482872acba0612c8eb461925)");let o=await W();if(!o)throw new Error(`${e} metaspace falsy ($1: 85aa77c76e583edda3549ff59fadf825)`);let i=await o.getLocalUserSpace({localSpaceId:a});if(!i)throw a?new Error(`could not get local user space for spaceId (${a}) ($1: genuuid)`):new Error("(UNEXPECTED) couldn't get default local user space? ($1: 9b1528024148052dd871b4f323881825)");let n={};if(r){let f=await qe({addrs:t,space:i});if(!f.data)throw new Error("(UNEXPECTED) resLatestAddrs.data falsy? we tried calling getLatestAddrs and this means there is a problem lower in the lib. (E: 0baaf8072abd4feed8330ab503925b25)");if(f.data.latestAddrsMap)Object.entries(f.data.latestAddrsMap).forEach(([h,u])=>{if(u)n[h]=u;else{debugger;console.warn(`${e} we're getting latest addrs and I don't know what it means downstream when we get a null for latest addr. (W: bb1db99ccf189afff83a1b5807263a25)`),n[h]=h}});else throw new Error("(UNEXPECTED) resLatestAddrs.data.latestAddrsMap falsy? we tried calling getLatestAddrs and this was supposed to be the resulting map. This means there is a problem lower in the lib. (E: 9dcca8343a284dfb1a43cf282b82f825)")}let s=r?Object.values(n):t;if(s.length!==t.length)throw new Error("(UNEXPECTED) addrsToGet.length !== ibGibAddrs.length? at this point it's assumed that these are the same length (E: 745698a1ba78a14077d648e8d0150825)");let l=await o.get({addrs:s,space:i});if(l.errorMsg||(l.ibGibs??[]).length!==s.length)throw new Error(`getIbGibs failed. error: ${m(l.errorMsg??`[unknown error. resGet.ibGib length (${(l.ibGibs??[]).length}). addrsToGet.length (${s.length})]`)} (E: 09aca916068c6254580f5e29fb63e825)`);let d={};return l.ibGibs.forEach(f=>{let h=y({ibGib:f});if(!s.find(g=>g===h))throw new Error(`ibGibAddr (${h}) in result ibGibs not found in addrsToGet (${s})? Here are the original ibGibAddrs: ${t}. Here is the resGet.ibGibs: ${$(l.ibGibs)} (E: 07535883a3a89fcb686f2409bf799825)`);d[h]=f}),Pa&&console.log(`${e} resMap: ${$(d)} (I: 70d79d873dd271949b48d837c286d825)`),d}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{Pa&&console.log(`${e} complete.`)}}b(Go,"getIbGibsImpl");var Po={nameOrId:Na,fnViaCmd:wi,functionImpl:Go,cmd:Ca,cmdModifiers:xa,schema:gi};var Ze="project";var af=`${Qr}_${Ze}`,No=32;var et=G;function La({name:c}){let e=`[${La.name}]`;try{et&&console.log(`${e} starting... (I: ec0c81cb0e8ec820f882ecafc2fbc825)`);let a=jt({text:c,length:No});if(!a)throw new Error(`${e} Could not generate safeName from name: ${c}. (E: genuuid)`);return a}catch(a){throw console.error(`${e} ${m(a)}`),a}finally{et&&console.log(`${e} complete.`)}}b(La,"getProjectSafeName");function Da({ib:c}){let e=`[${Da.name}]`;try{if(et&&console.log(`${e} starting... parsing ib: ${c}`),!c)throw new Error(`${e} ib required (E: genuuid)`);let a=c.split(" ");if(a.length!==3)throw new Error(`${e} Invalid project ib format. Expected 3 space-delimited pieces. Got: ${a.length}. ib: ${c} (E: genuuid)`);let[t,r,o]=a;if(t!==Ze)throw new Error(`${e} Invalid atom. Expected '${Ze}', got '${t}'. ib: ${c} (E: genuuid)`);if(!r)throw new Error(`${e} safeName segment is empty. ib: ${c} (E: genuuid)`);if(!o)throw new Error(`${e} addlMetadataText segment is empty. ib: ${c} (E: genuuid)`);let i=o.split("_");if(i.length!==1)throw new Error(`${e} Could not parse addlMetadataText. Expected 1 underscore-delimited piece. Got: ${i.length}. addlMetadataText: ${o} (E: genuuid)`);let n=i[0],s=parseInt(n,10);if(isNaN(s))throw new Error(`${e} Could not parse timestampInTicks from addlMetadataText. isNan. Expected a decimal number. timestampInTicksStr: ${n}. addlMetadataText: ${o} (E: genuuid)`);let d={atom:Ze,safeName:r,addlMetadataText:o,addlMetadata:{timestampInTicks:s}};return et&&console.log(`${e} parsed info: ${$(d)}`),d}catch(a){throw console.error(`${e} ${a.message}`),a}finally{et&&console.log(`${e} complete.`)}}b(Da,"parseProjectIb");var Oa=G,Ua="mut8IbGib",ka="ibgib",Ba=[Ua],va=["uuid","timestamp","timestampMs","n","textTimestamp"],Ei={ibGibAddr:"project SomeProject 1748386170000^A2D75E05B14E264619D24ABA4F1A1B2328E183B4524CC26029E54B84BF7BFD73.02544DDD1E042D481EAF62E36229EEC54F20C1899250D6F664ABB48A2013C994",dataToAddOrPatchJSONString:JSON.stringify({name:"New Title"}),mut8Ib:"project NewTitle 1748386170000",notesToSelf:`Example of editing/adding a project ibgib's "title". In project ibgibs, this is in the "data.name" field, and the 2nd spot in the ib is a alphanumerics-only version of the name.`,repromptWithResult:!1},yi={ibGibAddr:"project SomeProject^A2D75E05B14E264619D24ABA4F1A1B2328E183B4524CC26029E54B84BF7BFD73.02544DDD1E042D481EAF62E36229EEC54F20C1899250D6F664ABB48A2013C994",dataToAddOrPatchJSONString:JSON.stringify({description:"Updated description for the project. You do not have to include all the properties, only the ones you want to change/patch."}),notesToSelf:"Example of editing/adding an ibGib's description. This will change the description in the ibGib's data map.",repromptWithResult:!1},$i={ibGibAddr:"project SomeProject^AAAA2827879982375961098098B239047928374987987F6029E54B84BF7BFD73.02544DDD1E042D481EAF62E36229EEC54F20C1899250D6F664ABB48A2013C994",dataToRemoveJSONString:JSON.stringify({identity:{middleInitial:""}}),notesToSelf:`Example of removing a nested key. This will delete the "middleInitial" property from the "identity" object in an ibgib's data map.`,repromptWithResult:!0},Ii={ibGibAddr:"project SomeProject^AAAA2827879982375961098098B239047928374987987F6029E54B84BF7BFD73.02544DDD1E042D481EAF62E36229EEC54F20C1899250D6F664ABB48A2013C994",dataToRenameJSONString:JSON.stringify({identity:{oldKeyName:"newKeyName"}}),notesToSelf:`Example of renaming a key. This will rename the "oldKeyName" key to "newKeyName" in an ibgib's data map.`,repromptWithResult:!1},_i={ibGibAddr:"project SomeProject^AAAA2827879982375961098098B239047928374987987F6029E54B84BF7BFD73.02544DDD1E042D481EAF62E36229EEC54F20C1899250D6F664ABB48A2013C994",mut8Ib:"project SomeNewIb",notesToSelf:'Example of renaming a key. This will rename the "ib" value, in this case "project SomeProject" to the new value. Empty values will throw.',repromptWithResult:!0},Si=[j,$(Ei),$(yi),$($i),$(Ii),$(_i)].join(`
|