tinybase 3.0.0-beta.1 → 3.0.0

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/lib/store.d.ts CHANGED
@@ -114,6 +114,7 @@ export type CellOrUndefined = Cell | undefined;
114
114
  * const values: Values = {open: true, employees: 4};
115
115
  * ```
116
116
  * @category Store
117
+ * @since v3.0.0
117
118
  */
118
119
  export type Values = {[valueId: Id]: Value};
119
120
 
@@ -130,6 +131,7 @@ export type Values = {[valueId: Id]: Value};
130
131
  * const value: Value = 'dog';
131
132
  * ```
132
133
  * @category Store
134
+ * @since v3.0.0
133
135
  */
134
136
  export type Value = string | number | boolean;
135
137
 
@@ -142,6 +144,7 @@ export type Value = string | number | boolean;
142
144
  * state where the Value has since been added.
143
145
  *
144
146
  * @category Store
147
+ * @since v3.0.0
145
148
  */
146
149
  export type ValueOrUndefined = Value | undefined;
147
150
 
@@ -206,6 +209,7 @@ export type CellCallback = (cellId: Id, cell: Cell) => void;
206
209
  * @param valueId The Id of the Value that the callback can operate on.
207
210
  * @param value The Value itself.
208
211
  * @category Callback
212
+ * @since v3.0.0
209
213
  */
210
214
  export type ValueCallback = (valueId: Id, value: Value) => void;
211
215
 
@@ -232,6 +236,7 @@ export type MapCell = (cell: CellOrUndefined) => Cell;
232
236
  *
233
237
  * @param value The current Value to map to a new Value.
234
238
  * @category Callback
239
+ * @since v3.0.0
235
240
  */
236
241
  export type MapValue = (value: ValueOrUndefined) => Value;
237
242
 
@@ -570,6 +575,7 @@ export type ValueIdsListener = (store: Store) => void;
570
575
  * @param getValueChange A function that returns information about any Value's
571
576
  * changes.
572
577
  * @category Listener
578
+ * @since v3.0.0
573
579
  */
574
580
  export type ValueListener = (
575
581
  store: Store,
@@ -2898,6 +2904,33 @@ export interface Store {
2898
2904
  */
2899
2905
  delValuesSchema(): Store;
2900
2906
 
2907
+ /**
2908
+ * The delSchema method lets you remove both the TablesSchema and ValuesSchema
2909
+ * of the Store.
2910
+ *
2911
+ * Prior to v3.0.0, this method removed the TablesSchema only.
2912
+ *
2913
+ * @returns A reference to the Store.
2914
+ * @example
2915
+ * This example removes the TablesSchema and ValuesSchema of a Store.
2916
+ *
2917
+ * ```js
2918
+ * const store = createStore()
2919
+ * .setTablesSchema({
2920
+ * pets: {species: {type: 'string'}},
2921
+ * })
2922
+ * .setValuesSchema({
2923
+ * sold: {type: 'boolean', default: false},
2924
+ * });
2925
+ * store.delSchema();
2926
+ * console.log(store.getSchemaJson());
2927
+ * // -> '[{},{}]'
2928
+ * ```
2929
+ * @category Deleter
2930
+ * @since v3.0.0
2931
+ */
2932
+ delSchema(): Store;
2933
+
2901
2934
  /**
2902
2935
  * The transaction method takes a function that makes multiple mutations to
2903
2936
  * the Store, buffering all calls to the relevant listeners until it
@@ -4388,7 +4421,7 @@ export interface Store {
4388
4421
  */
4389
4422
  addValueListener(
4390
4423
  valueId: IdOrNull,
4391
- listener: CellListener,
4424
+ listener: ValueListener,
4392
4425
  mutator?: boolean,
4393
4426
  ): Id;
4394
4427
 
package/lib/store.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t=e(""),s=e(!0),l=e(0),a=e(e),n=e=>""+e,r=(e,t)=>e.forEach(t),o=(e,t)=>e.map(t),c=e=>e.length,u=(e,t,s)=>e.slice(t,s),i=(e,...t)=>e.push(...t),d=e=>JSON.stringify(e,((e,t)=>{return T(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),l={},[...t].reduce(s,l)):t;var s,l})),f=JSON.parse,h=isFinite,T=(e,t)=>e instanceof t,V=e=>null==e,g=(e,t,s)=>V(e)?s?.():t(e),b=e=>e==t||e==s,v=t=>e(t)==a,S=(e,t)=>e?.has(t)??!1,w=e=>V(e)||0==(e=>e.size)(e),y=e=>e.clear(),I=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),p=e=>new Map(e),C=e=>[...e?.keys()??[]],J=(e,t)=>e?.get(t),m=(e,t)=>I(e,((e,s)=>t(s,e))),L=(e,t,s)=>V(s)?(R(e,t),e):e?.set(t,s),E=(e,t,s)=>(S(e,t)||L(e,t,s()),J(e,t)),F=(e,t,s)=>{const l={},a=t??(e=>e);return I(e,((e,t)=>g(a(e),(e=>s?.(e)?0:l[t]=e)))),l},z=(e,t)=>{const s=p(),l=t??(e=>e);return I(e,((e,t)=>s.set(t,l(e)))),s},O=e=>z(e,z),k=(e,t,s,l,a=0)=>g((s?E:J)(e,t[a],a>c(t)-2?s:p),(n=>{if(a>c(t)-2)return l?.(n)&&L(e,t[a]),n;const r=k(n,t,s,l,a+1);return w(n)&&L(e,t[a]),r})),A=e=>new Set(Array.isArray(e)||V(e)?e:[e]),M=(e,t)=>e?.add(t),N=/^\d+$/,P=()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{N.test(t)&&c(e)<1e3&&i(e,t)}]},j=Object,x=j.keys,D=j.isFrozen,W=j.freeze,$=e=>T(e,j)&&e.constructor==j,q=(e,t)=>!V(((e,t)=>g(e,(e=>e[t])))(e,t)),B=(e,t)=>delete e[t],G=(e,t)=>o(j.entries(e),(([e,s])=>t(s,e))),H=e=>{return $(e)&&(t=x(e),0==c(t));var t},K=e=>[e,e],Q=()=>[p(),p()],U=t=>{const s=e(t);return b(s)||s==l&&h(t)?s:void 0},X=(e,t,s,l=L)=>{const a=(n=e=>!q(t,e),C(e).filter(n));var n;return r(x(t),(l=>s(e,l,t[l]))),r(a,(t=>l(e,t))),e},Y=(e,t,s)=>V(e)||!$(e)||H(e)||D(e)?(s?.(),!1):(G(e,((s,l)=>{t(s,l)||B(e,l)})),!H(e)),Z=(e,t,s)=>L(e,t,J(e,t)==-s?void 0:s),_=()=>{let e,t,s,a,h=0;const T=p(),N=p(),j=p(),x=p(),D=p(),$=p(),ee=p(),te=p(),se=p(),le=p(),ae=p(),ne=p(),re=A(),oe=p(),ce=p(),ue=p(),ie=Q(),de=Q(),fe=Q(),he=Q(),Te=Q(),Ve=Q(),ge=Q(),be=Q(),ve=Q(),Se=Q(),we=Q(),ye=Q(),Ie=Q(),Re=Q(),[pe,Ce,Je,me]=(e=>{let t;const[s,l]=P(),a=p();return[(e,l,n,r=[],o=(()=>[]))=>{t??=Mt;const c=s();return L(a,c,[e,l,n,r,o]),M(k(l,n??[""],A),c),c},(e,s,...l)=>r(((e,t=[""])=>{const s=[],l=(e,a)=>a==c(t)?i(s,e):null===t[a]?I(e,(e=>l(e,a+1))):r([t[a],null],(t=>l(J(e,t),a+1)));return l(e,0),s})(e,s),(e=>I(e,(e=>J(a,e)[0](t,...s??[],...l))))),e=>g(J(a,e),(([,t,s])=>(k(t,s??[""],void 0,(t=>(R(t,e),w(t)?1:0))),L(a,e),l(e),s))),e=>g(J(a,e),(([e,,s=[],l,a])=>{const n=(...o)=>{const u=c(o);u==c(s)?e(t,...o,...a(o)):V(s[u])?r(l[u]?.(...o)??[],(e=>n(...o,e))):n(...o,s[u])};n()}))]})(),Le=e=>{if(!Y(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!b(t)&&t!=l||(U(e.default)!=t&&B(e,"default"),0))},Ee=(t,s)=>(!e||S(se,s)||nt(s))&&Y(t,((e,t)=>Fe(s,t,e)),(()=>nt(s))),Fe=(e,t,s,l)=>Y(l?s:Ae(s,e,t),((l,a)=>g(ze(e,t,a,l),(e=>(s[a]=e,!0)),(()=>!1))),(()=>nt(e,t))),ze=(t,s,l,a)=>e?g(J(J(se,t),l),(e=>U(a)!=e.type?nt(t,s,l,a,e.default):a),(()=>nt(t,s,l,a))):V(U(a))?nt(t,s,l,a):a,Oe=(e,t)=>Y(t?e:Me(e),((t,s)=>g(ke(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>rt())),ke=(e,s)=>t?g(J(ae,e),(t=>U(s)!=t.type?rt(e,s,t.default):s),(()=>rt(e,s))):V(U(s))?rt(e,s):s,Ae=(e,t,s)=>(g(J(le,t),(([l,a])=>{I(l,((t,s)=>{q(e,s)||(e[s]=t)})),I(a,(l=>{q(e,l)||nt(t,s,l)}))})),e),Me=e=>(t&&(I(ne,((t,s)=>{q(e,s)||(e[s]=t)})),I(re,(t=>{q(e,t)||rt(t)}))),e),Ne=e=>X(se,e,((e,t,s)=>{const l=p(),a=A();X(E(se,t,p),s,((e,t,s)=>{L(e,t,s),g(s.default,(e=>L(l,t,e)),(()=>M(a,t)))})),L(le,t,[l,a])}),((e,t)=>{L(se,t),L(le,t)})),Pe=e=>X(ae,e,((e,t,s)=>{L(ae,t,s),g(s.default,(e=>L(ne,t,e)),(()=>M(re,t)))}),((e,t)=>{L(ae,t),L(ne,t),R(re,t)})),je=e=>H(e)?Et():pt(e),xe=e=>X(ce,e,((e,t,s)=>De(t,s)),((e,t)=>Ue(t))),De=(e,t)=>X(E(ce,e,(()=>(_e(e,1),p()))),t,((t,s,l)=>We(e,t,s,l)),((t,s)=>Xe(e,t,s))),We=(e,t,s,l,a)=>X(E(t,s,(()=>(et(e,s,1),p()))),l,((t,l,a)=>$e(e,s,t,l,a)),((l,n)=>Ye(e,t,s,l,n,a))),$e=(e,t,s,l,a)=>{S(s,l)||tt(e,t,l,1);const n=J(s,l);a!==n&&(st(e,t,l,n,a),L(s,l,a))},qe=(e,t,s,l,a)=>g(J(t,s),(t=>$e(e,s,t,l,a)),(()=>We(e,t,s,Ae({[l]:a},e,s)))),Be=e=>H(e)?Ft():Ct(e),Ge=e=>X(ue,e,((e,t,s)=>He(t,s)),((e,t)=>Ze(t))),He=(e,t)=>{S(ue,e)||lt(e,1);const s=J(ue,e);t!==s&&(at(e,s,t),L(ue,e,t))},Ke=e=>{const[t]=E(oe,e,P),s=t();return S(J(ce,e),s)?Ke(e):s},Qe=e=>J(ce,e)??De(e,{}),Ue=e=>De(e,{}),Xe=(e,t,s)=>{const[,l]=E(oe,e,P);l(s),We(e,t,s,{},!0)},Ye=(e,t,s,l,a,n)=>{const r=J(J(le,e)?.[0],a);if(!V(r)&&!n)return $e(e,s,l,a,r);const o=t=>{st(e,s,t,J(l,t)),tt(e,s,t,-1),L(l,t)};V(r)?o(a):m(l,o),w(l)&&(et(e,s,-1),w(L(t,s))&&(_e(e,-1),L(ce,e),L(oe,e)))},Ze=e=>{const t=J(ne,e);if(!V(t))return He(e,t);at(e,J(ue,e)),lt(e,-1),L(ue,e)},_e=(e,t)=>Z(T,e,t),et=(e,t,s)=>Z(E(N,e,p),t,s),tt=(e,t,s,l)=>Z(E(E(j,e,p),t,p),s,l),st=(e,t,s,l,a)=>E(E(E(x,e,p),t,p),s,(()=>[l,0]))[1]=a,lt=(e,t)=>Z(D,e,t),at=(e,t,s)=>E($,e,(()=>[t,0]))[1]=s,nt=(e,t,s,l,a)=>(i(E(E(E(ee,e,p),t,p),s,(()=>[])),l),a),rt=(e,t,s)=>(i(E(te,e,(()=>[])),t),s),ot=(e,t,s)=>g(J(J(J(x,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...K(wt(e,t,s))])),ct=e=>g(J($,e),(([e,t])=>[!0,e,t]),(()=>[!1,...K(Rt(e))])),ut=e=>w(ee)||w(ve[e])?0:I(e?z(ee,O):ee,((t,s)=>I(t,((t,l)=>I(t,((t,a)=>Ce(ve[e],[s,l,a],t))))))),it=e=>w(te)||w(Se[e])?0:I(e?z(te):te,((t,s)=>Ce(Se[e],[s],t))),dt=(e,t,s)=>{if(!w(t))return Ce(e,s),1},ft=e=>{const t=w(Te[e]),s=w(ge[e])&&w(he[e])&&t&&w(de[e]),l=w(be[e])&&w(Ve[e])&&w(fe[e])&&w(ie[e]);if(!s||!l){const a=e?[z(T),O(N),z(j,O),z(x,O)]:[T,N,j,x];if(!s){I(a[2],((t,s)=>I(t,((t,l)=>dt(ge[e],t,[s,l])))));const s=A();I(a[1],((l,a)=>{dt(he[e],l,[a])&&!t&&(Ce(Te[e],[a,null]),M(s,a))})),t||I(a[3],((t,l)=>{if(!S(s,l)){const s=A();I(t,(e=>I(e,(([t,l],a)=>l!==t?M(s,a):R(e,a))))),I(s,(t=>Ce(Te[e],[l,t])))}})),dt(de[e],a[0])}if(!l){let t;I(a[3],((s,l)=>{let a;I(s,((s,n)=>{let r;I(s,(([s,o],c)=>{o!==s&&(Ce(be[e],[l,n,c],o,s,ot),t=a=r=1)})),r&&Ce(Ve[e],[l,n],ot)})),a&&Ce(fe[e],[l],ot)})),t&&Ce(ie[e],void 0,ot)}}},ht=e=>{const t=w(ye[e]),s=w(Ie[e])&&w(we[e]);if(!t||!s){const l=e?[z(D),z($)]:[D,$];if(t||dt(ye[e],l[0]),!s){let t;I(l[1],(([s,l],a)=>{l!==s&&(Ce(Ie[e],[a],l,s,ct),t=1)})),t&&Ce(we[e],void 0,ct)}}},Tt=(e,...t)=>(Ot((()=>e(...o(t,n)))),Mt),Vt=()=>F(ce,(e=>F(e,F))),gt=()=>C(ce),bt=e=>C(J(ce,n(e))),vt=(e,t,s,l=0,a)=>{return o(u((c=J(ce,n(e)),i=(e,s)=>[V(t)?s:J(e,n(t)),s],r=([e],[t])=>(e<t?-1:1)*(s?-1:1),o([...c?.entries()??[]],(([e,t])=>i(t,e))).sort(r)),l,V(a)?a:l+a),(([,e])=>e));var r,c,i},St=(e,t)=>C(J(J(ce,n(e)),n(t))),wt=(e,t,s)=>J(J(J(ce,n(e)),n(t)),n(s)),yt=()=>F(ue),It=()=>C(ue),Rt=e=>J(ue,n(e)),pt=e=>Tt((()=>(e=>Y(e,Ee,nt))(e)?xe(e):0)),Ct=e=>Tt((()=>Oe(e)?Ge(e):0)),Jt=e=>{try{je(f(e))}catch{}return Mt},mt=t=>Tt((()=>{if((e=Y(t,(e=>Y(e,Le))))&&(Ne(t),!w(ce))){const e=Vt();Et(),pt(e)}})),Lt=e=>Tt((()=>{if(t=(e=>Y(e,Le))(e)){const s=yt();zt(),Ft(),t=!0,Pe(e),Ct(s)}})),Et=()=>Tt((()=>xe({}))),Ft=()=>Tt((()=>Ge({}))),zt=()=>Tt((()=>{Pe({}),t=!1})),Ot=(e,t)=>{if(-1==h)return;kt();const s=e();return At(t),s},kt=()=>(h++,Mt),At=e=>(h>0&&(h--,0==h&&(s=!w(x),a=!w($),h=1,ut(1),s&&ft(1),it(1),a&&ht(1),h=-1,e?.(F(x,(e=>F(e,(e=>F(e,(e=>[...e]),(([e,t])=>e===t))),H)),H),F(ee,(e=>F(e,F))),F($,(e=>[...e]),(([e,t])=>e===t)),F(te))&&(h=1,I(x,((e,t)=>I(e,((e,s)=>I(e,(([e],l)=>((e,t,s,l,a)=>V(a)?e.delCell(t,s,l,!0):e.setCell(t,s,l,a))(Mt,t,s,l,e))))))),I($,(([e],t)=>((e,t,s)=>V(s)?e.delValue(t):e.setValue(t,s))(Mt,t,e))),h=-1,s=a=!1),Ce(Re[0],void 0,s,a),ut(0),s&&ft(0),it(0),a&&ht(0),Ce(Re[1],void 0,s,a),h=0,r([T,N,j,x,ee,D,$,te],y))),Mt),Mt={getTables:Vt,getTableIds:gt,getTable:e=>F(J(ce,n(e)),F),getRowIds:bt,getSortedRowIds:vt,getRow:(e,t)=>F(J(J(ce,n(e)),n(t))),getCellIds:St,getCell:wt,getValues:yt,getValueIds:It,getValue:Rt,hasTables:()=>!w(ce),hasTable:e=>S(ce,n(e)),hasRow:(e,t)=>S(J(ce,n(e)),n(t)),hasCell:(e,t,s)=>S(J(J(ce,n(e)),n(t)),n(s)),hasValues:()=>!w(ue),hasValue:e=>S(ue,n(e)),getTablesJson:()=>d(ce),getValuesJson:()=>d(ue),getJson:()=>d([ce,ue]),getTablesSchemaJson:()=>d(se),getValuesSchemaJson:()=>d(ae),getSchemaJson:()=>d([se,ae]),setTables:pt,setTable:(e,t)=>Tt((e=>Ee(t,e)?De(e,t):0),e),setRow:(e,t,s)=>Tt(((e,t)=>Fe(e,t,s)?We(e,Qe(e),t,s):0),e,t),addRow:(e,t)=>Ot((()=>{let s;return Fe(e,s,t)&&(e=n(e),We(e,Qe(e),s=Ke(e),t)),s})),setPartialRow:(e,t,s)=>Tt(((e,t)=>{if(Fe(e,t,s,1)){const l=Qe(e);G(s,((s,a)=>qe(e,l,t,a,s)))}}),e,t),setCell:(e,t,s,l)=>Tt(((e,t,s)=>g(ze(e,t,s,v(l)?l(wt(e,t,s)):l),(l=>qe(e,Qe(e),t,s,l)))),e,t,s),setValues:Ct,setPartialValues:e=>Tt((()=>Oe(e,1)?G(e,((e,t)=>He(t,e))):0)),setValue:(e,t)=>Tt((e=>g(ke(e,v(t)?t(Rt(e)):t),(t=>He(e,t)))),e),setTablesJson:Jt,setValuesJson:e=>{try{Be(f(e))}catch{}return Mt},setJson:e=>{try{const[t,s]=f(e);je(t),Be(s)}catch{Jt(e)}return Mt},setTablesSchema:mt,setValuesSchema:Lt,setSchema:(e,t)=>Tt((()=>{mt(e),Lt(t)})),delTables:Et,delTable:e=>Tt((e=>S(ce,e)?Ue(e):0),e),delRow:(e,t)=>Tt(((e,t)=>g(J(ce,e),(s=>S(s,t)?Xe(e,s,t):0))),e,t),delCell:(e,t,s,l)=>Tt(((e,t,s)=>g(J(ce,e),(a=>g(J(a,t),(n=>S(n,s)?Ye(e,a,t,n,s,l):0))))),e,t,s),delValues:Ft,delValue:e=>Tt((e=>S(ue,e)?Ze(e):0),e),delTablesSchema:()=>Tt((()=>{Ne({}),e=!1})),delValuesSchema:zt,transaction:Ot,startTransaction:kt,finishTransaction:At,forEachTable:e=>I(ce,((t,s)=>e(s,(e=>I(t,((t,s)=>e(s,(e=>m(t,e))))))))),forEachRow:(e,t)=>I(J(ce,n(e)),((e,s)=>t(s,(t=>m(e,t))))),forEachCell:(e,t,s)=>m(J(J(ce,n(e)),n(t)),s),forEachValue:e=>m(ue,e),addSortedRowIdsListener:(e,t,s,l,a,n,r)=>{let o=vt(e,t,s,l,a);return pe((()=>{const r=vt(e,t,s,l,a);var u,i,d;i=o,c(u=r)===c(i)&&(d=(e,t)=>i[t]===e,u.every(d))||(o=r,n(Mt,e,t,s,l,a,o))}),Te[r?1:0],[e,t],[gt])},addWillFinishTransactionListener:e=>pe(e,Re[0]),addDidFinishTransactionListener:e=>pe(e,Re[1]),callListener:e=>(me(e),Mt),delListener:e=>(Je(e),Mt),getListenerStats:()=>({}),createStore:_};return G({Tables:[0,ie],TableIds:[0,de],Table:[1,fe,[gt]],RowIds:[1,he,[gt]],Row:[2,Ve,[gt,bt]],CellIds:[2,ge,[gt,bt]],Cell:[3,be,[gt,bt,St],e=>K(wt(...e))],InvalidCell:[3,ve],Values:[0,we],ValueIds:[0,ye],Value:[1,Ie,[It],e=>K(Rt(e[0]))],InvalidValue:[1,Se]},(([e,t,s,l],a)=>{Mt["add"+a+"Listener"]=(...a)=>pe(a[e],t[a[e+1]?1:0],e>0?u(a,0,e):void 0,s,l)})),W(Mt)};export{_ as createStore};
1
+ const e=e=>typeof e,t=e(""),s=e(!0),l=e(0),a=e(e),n=e=>""+e,r=(e,t)=>e.forEach(t),o=(e,t)=>e.map(t),c=e=>e.length,u=(e,t,s)=>e.slice(t,s),i=(e,...t)=>e.push(...t),d=e=>JSON.stringify(e,((e,t)=>{return T(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),l={},[...t].reduce(s,l)):t;var s,l})),f=JSON.parse,h=isFinite,T=(e,t)=>e instanceof t,V=e=>null==e,g=(e,t,s)=>V(e)?s?.():t(e),b=e=>e==t||e==s,v=t=>e(t)==a,S=(e,t)=>e?.has(t)??!1,w=e=>V(e)||0==(e=>e.size)(e),y=e=>e.clear(),I=(e,t)=>e?.forEach(t),R=(e,t)=>e?.delete(t),p=e=>new Map(e),C=e=>[...e?.keys()??[]],J=(e,t)=>e?.get(t),m=(e,t)=>I(e,((e,s)=>t(s,e))),L=(e,t,s)=>V(s)?(R(e,t),e):e?.set(t,s),E=(e,t,s)=>(S(e,t)||L(e,t,s()),J(e,t)),F=(e,t,s)=>{const l={},a=t??(e=>e);return I(e,((e,t)=>g(a(e),(e=>s?.(e)?0:l[t]=e)))),l},z=(e,t)=>{const s=p(),l=t??(e=>e);return I(e,((e,t)=>s.set(t,l(e)))),s},O=e=>z(e,z),k=(e,t,s,l,a=0)=>g((s?E:J)(e,t[a],a>c(t)-2?s:p),(n=>{if(a>c(t)-2)return l?.(n)&&L(e,t[a]),n;const r=k(n,t,s,l,a+1);return w(n)&&L(e,t[a]),r})),A=e=>new Set(Array.isArray(e)||V(e)?e:[e]),M=(e,t)=>e?.add(t),N=/^\d+$/,P=()=>{const e=[];let t=0;return[()=>e.shift()??""+t++,t=>{N.test(t)&&c(e)<1e3&&i(e,t)}]},j=Object,x=j.keys,D=j.isFrozen,W=j.freeze,$=e=>T(e,j)&&e.constructor==j,q=(e,t)=>!V(((e,t)=>g(e,(e=>e[t])))(e,t)),B=(e,t)=>delete e[t],G=(e,t)=>o(j.entries(e),(([e,s])=>t(s,e))),H=e=>{return $(e)&&(t=x(e),0==c(t));var t},K=e=>[e,e],Q=()=>[p(),p()],U=t=>{const s=e(t);return b(s)||s==l&&h(t)?s:void 0},X=(e,t,s,l=L)=>{const a=(n=e=>!q(t,e),C(e).filter(n));var n;return r(x(t),(l=>s(e,l,t[l]))),r(a,(t=>l(e,t))),e},Y=(e,t,s)=>V(e)||!$(e)||H(e)||D(e)?(s?.(),!1):(G(e,((s,l)=>{t(s,l)||B(e,l)})),!H(e)),Z=(e,t,s)=>L(e,t,J(e,t)==-s?void 0:s),_=()=>{let e,t,s,a,h=0;const T=p(),N=p(),j=p(),x=p(),D=p(),$=p(),ee=p(),te=p(),se=p(),le=p(),ae=p(),ne=p(),re=A(),oe=p(),ce=p(),ue=p(),ie=Q(),de=Q(),fe=Q(),he=Q(),Te=Q(),Ve=Q(),ge=Q(),be=Q(),ve=Q(),Se=Q(),we=Q(),ye=Q(),Ie=Q(),Re=Q(),[pe,Ce,Je,me]=(e=>{let t;const[s,l]=P(),a=p();return[(e,l,n,r=[],o=(()=>[]))=>{t??=Nt;const c=s();return L(a,c,[e,l,n,r,o]),M(k(l,n??[""],A),c),c},(e,s,...l)=>r(((e,t=[""])=>{const s=[],l=(e,a)=>a==c(t)?i(s,e):null===t[a]?I(e,(e=>l(e,a+1))):r([t[a],null],(t=>l(J(e,t),a+1)));return l(e,0),s})(e,s),(e=>I(e,(e=>J(a,e)[0](t,...s??[],...l))))),e=>g(J(a,e),(([,t,s])=>(k(t,s??[""],void 0,(t=>(R(t,e),w(t)?1:0))),L(a,e),l(e),s))),e=>g(J(a,e),(([e,,s=[],l,a])=>{const n=(...o)=>{const u=c(o);u==c(s)?e(t,...o,...a(o)):V(s[u])?r(l[u]?.(...o)??[],(e=>n(...o,e))):n(...o,s[u])};n()}))]})(),Le=e=>{if(!Y(e,((e,t)=>["type","default"].includes(t))))return!1;const t=e.type;return!(!b(t)&&t!=l||(U(e.default)!=t&&B(e,"default"),0))},Ee=(t,s)=>(!e||S(se,s)||nt(s))&&Y(t,((e,t)=>Fe(s,t,e)),(()=>nt(s))),Fe=(e,t,s,l)=>Y(l?s:Ae(s,e,t),((l,a)=>g(ze(e,t,a,l),(e=>(s[a]=e,!0)),(()=>!1))),(()=>nt(e,t))),ze=(t,s,l,a)=>e?g(J(J(se,t),l),(e=>U(a)!=e.type?nt(t,s,l,a,e.default):a),(()=>nt(t,s,l,a))):V(U(a))?nt(t,s,l,a):a,Oe=(e,t)=>Y(t?e:Me(e),((t,s)=>g(ke(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>rt())),ke=(e,s)=>t?g(J(ae,e),(t=>U(s)!=t.type?rt(e,s,t.default):s),(()=>rt(e,s))):V(U(s))?rt(e,s):s,Ae=(e,t,s)=>(g(J(le,t),(([l,a])=>{I(l,((t,s)=>{q(e,s)||(e[s]=t)})),I(a,(l=>{q(e,l)||nt(t,s,l)}))})),e),Me=e=>(t&&(I(ne,((t,s)=>{q(e,s)||(e[s]=t)})),I(re,(t=>{q(e,t)||rt(t)}))),e),Ne=e=>X(se,e,((e,t,s)=>{const l=p(),a=A();X(E(se,t,p),s,((e,t,s)=>{L(e,t,s),g(s.default,(e=>L(l,t,e)),(()=>M(a,t)))})),L(le,t,[l,a])}),((e,t)=>{L(se,t),L(le,t)})),Pe=e=>X(ae,e,((e,t,s)=>{L(ae,t,s),g(s.default,(e=>L(ne,t,e)),(()=>M(re,t)))}),((e,t)=>{L(ae,t),L(ne,t),R(re,t)})),je=e=>H(e)?Et():pt(e),xe=e=>X(ce,e,((e,t,s)=>De(t,s)),((e,t)=>Ue(t))),De=(e,t)=>X(E(ce,e,(()=>(_e(e,1),p()))),t,((t,s,l)=>We(e,t,s,l)),((t,s)=>Xe(e,t,s))),We=(e,t,s,l,a)=>X(E(t,s,(()=>(et(e,s,1),p()))),l,((t,l,a)=>$e(e,s,t,l,a)),((l,n)=>Ye(e,t,s,l,n,a))),$e=(e,t,s,l,a)=>{S(s,l)||tt(e,t,l,1);const n=J(s,l);a!==n&&(st(e,t,l,n,a),L(s,l,a))},qe=(e,t,s,l,a)=>g(J(t,s),(t=>$e(e,s,t,l,a)),(()=>We(e,t,s,Ae({[l]:a},e,s)))),Be=e=>H(e)?Ft():Ct(e),Ge=e=>X(ue,e,((e,t,s)=>He(t,s)),((e,t)=>Ze(t))),He=(e,t)=>{S(ue,e)||lt(e,1);const s=J(ue,e);t!==s&&(at(e,s,t),L(ue,e,t))},Ke=e=>{const[t]=E(oe,e,P),s=t();return S(J(ce,e),s)?Ke(e):s},Qe=e=>J(ce,e)??De(e,{}),Ue=e=>De(e,{}),Xe=(e,t,s)=>{const[,l]=E(oe,e,P);l(s),We(e,t,s,{},!0)},Ye=(e,t,s,l,a,n)=>{const r=J(J(le,e)?.[0],a);if(!V(r)&&!n)return $e(e,s,l,a,r);const o=t=>{st(e,s,t,J(l,t)),tt(e,s,t,-1),L(l,t)};V(r)?o(a):m(l,o),w(l)&&(et(e,s,-1),w(L(t,s))&&(_e(e,-1),L(ce,e),L(oe,e)))},Ze=e=>{const t=J(ne,e);if(!V(t))return He(e,t);at(e,J(ue,e)),lt(e,-1),L(ue,e)},_e=(e,t)=>Z(T,e,t),et=(e,t,s)=>Z(E(N,e,p),t,s),tt=(e,t,s,l)=>Z(E(E(j,e,p),t,p),s,l),st=(e,t,s,l,a)=>E(E(E(x,e,p),t,p),s,(()=>[l,0]))[1]=a,lt=(e,t)=>Z(D,e,t),at=(e,t,s)=>E($,e,(()=>[t,0]))[1]=s,nt=(e,t,s,l,a)=>(i(E(E(E(ee,e,p),t,p),s,(()=>[])),l),a),rt=(e,t,s)=>(i(E(te,e,(()=>[])),t),s),ot=(e,t,s)=>g(J(J(J(x,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...K(wt(e,t,s))])),ct=e=>g(J($,e),(([e,t])=>[!0,e,t]),(()=>[!1,...K(Rt(e))])),ut=e=>w(ee)||w(ve[e])?0:I(e?z(ee,O):ee,((t,s)=>I(t,((t,l)=>I(t,((t,a)=>Ce(ve[e],[s,l,a],t))))))),it=e=>w(te)||w(Se[e])?0:I(e?z(te):te,((t,s)=>Ce(Se[e],[s],t))),dt=(e,t,s)=>{if(!w(t))return Ce(e,s),1},ft=e=>{const t=w(Te[e]),s=w(ge[e])&&w(he[e])&&t&&w(de[e]),l=w(be[e])&&w(Ve[e])&&w(fe[e])&&w(ie[e]);if(!s||!l){const a=e?[z(T),O(N),z(j,O),z(x,O)]:[T,N,j,x];if(!s){I(a[2],((t,s)=>I(t,((t,l)=>dt(ge[e],t,[s,l])))));const s=A();I(a[1],((l,a)=>{dt(he[e],l,[a])&&!t&&(Ce(Te[e],[a,null]),M(s,a))})),t||I(a[3],((t,l)=>{if(!S(s,l)){const s=A();I(t,(e=>I(e,(([t,l],a)=>l!==t?M(s,a):R(e,a))))),I(s,(t=>Ce(Te[e],[l,t])))}})),dt(de[e],a[0])}if(!l){let t;I(a[3],((s,l)=>{let a;I(s,((s,n)=>{let r;I(s,(([s,o],c)=>{o!==s&&(Ce(be[e],[l,n,c],o,s,ot),t=a=r=1)})),r&&Ce(Ve[e],[l,n],ot)})),a&&Ce(fe[e],[l],ot)})),t&&Ce(ie[e],void 0,ot)}}},ht=e=>{const t=w(ye[e]),s=w(Ie[e])&&w(we[e]);if(!t||!s){const l=e?[z(D),z($)]:[D,$];if(t||dt(ye[e],l[0]),!s){let t;I(l[1],(([s,l],a)=>{l!==s&&(Ce(Ie[e],[a],l,s,ct),t=1)})),t&&Ce(we[e],void 0,ct)}}},Tt=(e,...t)=>(kt((()=>e(...o(t,n)))),Nt),Vt=()=>F(ce,(e=>F(e,F))),gt=()=>C(ce),bt=e=>C(J(ce,n(e))),vt=(e,t,s,l=0,a)=>{return o(u((c=J(ce,n(e)),i=(e,s)=>[V(t)?s:J(e,n(t)),s],r=([e],[t])=>(e<t?-1:1)*(s?-1:1),o([...c?.entries()??[]],(([e,t])=>i(t,e))).sort(r)),l,V(a)?a:l+a),(([,e])=>e));var r,c,i},St=(e,t)=>C(J(J(ce,n(e)),n(t))),wt=(e,t,s)=>J(J(J(ce,n(e)),n(t)),n(s)),yt=()=>F(ue),It=()=>C(ue),Rt=e=>J(ue,n(e)),pt=e=>Tt((()=>(e=>Y(e,Ee,nt))(e)?xe(e):0)),Ct=e=>Tt((()=>Oe(e)?Ge(e):0)),Jt=e=>{try{je(f(e))}catch{}return Nt},mt=t=>Tt((()=>{if((e=Y(t,(e=>Y(e,Le))))&&(Ne(t),!w(ce))){const e=Vt();Et(),pt(e)}})),Lt=e=>Tt((()=>{if(t=(e=>Y(e,Le))(e)){const s=yt();Ot(),Ft(),t=!0,Pe(e),Ct(s)}})),Et=()=>Tt((()=>xe({}))),Ft=()=>Tt((()=>Ge({}))),zt=()=>Tt((()=>{Ne({}),e=!1})),Ot=()=>Tt((()=>{Pe({}),t=!1})),kt=(e,t)=>{if(-1==h)return;At();const s=e();return Mt(t),s},At=()=>(h++,Nt),Mt=e=>(h>0&&(h--,0==h&&(s=!w(x),a=!w($),h=1,ut(1),s&&ft(1),it(1),a&&ht(1),h=-1,e?.(F(x,(e=>F(e,(e=>F(e,(e=>[...e]),(([e,t])=>e===t))),H)),H),F(ee,(e=>F(e,F))),F($,(e=>[...e]),(([e,t])=>e===t)),F(te))&&(h=1,I(x,((e,t)=>I(e,((e,s)=>I(e,(([e],l)=>((e,t,s,l,a)=>V(a)?e.delCell(t,s,l,!0):e.setCell(t,s,l,a))(Nt,t,s,l,e))))))),I($,(([e],t)=>((e,t,s)=>V(s)?e.delValue(t):e.setValue(t,s))(Nt,t,e))),h=-1,s=a=!1),Ce(Re[0],void 0,s,a),ut(0),s&&ft(0),it(0),a&&ht(0),Ce(Re[1],void 0,s,a),h=0,r([T,N,j,x,ee,D,$,te],y))),Nt),Nt={getTables:Vt,getTableIds:gt,getTable:e=>F(J(ce,n(e)),F),getRowIds:bt,getSortedRowIds:vt,getRow:(e,t)=>F(J(J(ce,n(e)),n(t))),getCellIds:St,getCell:wt,getValues:yt,getValueIds:It,getValue:Rt,hasTables:()=>!w(ce),hasTable:e=>S(ce,n(e)),hasRow:(e,t)=>S(J(ce,n(e)),n(t)),hasCell:(e,t,s)=>S(J(J(ce,n(e)),n(t)),n(s)),hasValues:()=>!w(ue),hasValue:e=>S(ue,n(e)),getTablesJson:()=>d(ce),getValuesJson:()=>d(ue),getJson:()=>d([ce,ue]),getTablesSchemaJson:()=>d(se),getValuesSchemaJson:()=>d(ae),getSchemaJson:()=>d([se,ae]),setTables:pt,setTable:(e,t)=>Tt((e=>Ee(t,e)?De(e,t):0),e),setRow:(e,t,s)=>Tt(((e,t)=>Fe(e,t,s)?We(e,Qe(e),t,s):0),e,t),addRow:(e,t)=>kt((()=>{let s;return Fe(e,s,t)&&(e=n(e),We(e,Qe(e),s=Ke(e),t)),s})),setPartialRow:(e,t,s)=>Tt(((e,t)=>{if(Fe(e,t,s,1)){const l=Qe(e);G(s,((s,a)=>qe(e,l,t,a,s)))}}),e,t),setCell:(e,t,s,l)=>Tt(((e,t,s)=>g(ze(e,t,s,v(l)?l(wt(e,t,s)):l),(l=>qe(e,Qe(e),t,s,l)))),e,t,s),setValues:Ct,setPartialValues:e=>Tt((()=>Oe(e,1)?G(e,((e,t)=>He(t,e))):0)),setValue:(e,t)=>Tt((e=>g(ke(e,v(t)?t(Rt(e)):t),(t=>He(e,t)))),e),setTablesJson:Jt,setValuesJson:e=>{try{Be(f(e))}catch{}return Nt},setJson:e=>{try{const[t,s]=f(e);je(t),Be(s)}catch{Jt(e)}return Nt},setTablesSchema:mt,setValuesSchema:Lt,setSchema:(e,t)=>Tt((()=>{mt(e),Lt(t)})),delTables:Et,delTable:e=>Tt((e=>S(ce,e)?Ue(e):0),e),delRow:(e,t)=>Tt(((e,t)=>g(J(ce,e),(s=>S(s,t)?Xe(e,s,t):0))),e,t),delCell:(e,t,s,l)=>Tt(((e,t,s)=>g(J(ce,e),(a=>g(J(a,t),(n=>S(n,s)?Ye(e,a,t,n,s,l):0))))),e,t,s),delValues:Ft,delValue:e=>Tt((e=>S(ue,e)?Ze(e):0),e),delTablesSchema:zt,delValuesSchema:Ot,delSchema:()=>Tt((()=>{zt(),Ot()})),transaction:kt,startTransaction:At,finishTransaction:Mt,forEachTable:e=>I(ce,((t,s)=>e(s,(e=>I(t,((t,s)=>e(s,(e=>m(t,e))))))))),forEachRow:(e,t)=>I(J(ce,n(e)),((e,s)=>t(s,(t=>m(e,t))))),forEachCell:(e,t,s)=>m(J(J(ce,n(e)),n(t)),s),forEachValue:e=>m(ue,e),addSortedRowIdsListener:(e,t,s,l,a,n,r)=>{let o=vt(e,t,s,l,a);return pe((()=>{const r=vt(e,t,s,l,a);var u,i,d;i=o,c(u=r)===c(i)&&(d=(e,t)=>i[t]===e,u.every(d))||(o=r,n(Nt,e,t,s,l,a,o))}),Te[r?1:0],[e,t],[gt])},addWillFinishTransactionListener:e=>pe(e,Re[0]),addDidFinishTransactionListener:e=>pe(e,Re[1]),callListener:e=>(me(e),Nt),delListener:e=>(Je(e),Nt),getListenerStats:()=>({}),createStore:_};return G({Tables:[0,ie],TableIds:[0,de],Table:[1,fe,[gt]],RowIds:[1,he,[gt]],Row:[2,Ve,[gt,bt]],CellIds:[2,ge,[gt,bt]],Cell:[3,be,[gt,bt,St],e=>K(wt(...e))],InvalidCell:[3,ve],Values:[0,we],ValueIds:[0,ye],Value:[1,Ie,[It],e=>K(Rt(e[0]))],InvalidValue:[1,Se]},(([e,t,s,l],a)=>{Nt["add"+a+"Listener"]=(...a)=>pe(a[e],t[a[e+1]?1:0],e>0?u(a,0,e):void 0,s,l)})),W(Nt)};export{_ as createStore};
package/lib/store.js.gz CHANGED
Binary file
package/lib/tinybase.js CHANGED
@@ -1 +1 @@
1
- import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),a=s(0),r=s(s),l=e=>""+e,i=(e,t)=>e.includes(t),d=(e,t)=>e.every(t),c=(e,t)=>w(e)===w(t)&&d(e,((e,s)=>t[s]===e)),u=(e,t)=>d(e,((s,n)=>0==n||t(e[n-1],s)<=0)),h=(e,t)=>e.sort(t),f=(e,t)=>e.forEach(t),g=(e,t)=>e.map(t),L=e=>I(e,((e,t)=>e+t),0),w=e=>e.length,v=e=>0==w(e),I=(e,t,s)=>e.reduce(t,s),R=(e,t,s)=>e.slice(t,s),S=(e,...t)=>e.push(...t),T=e=>e.pop(),y=e=>e.shift(),p=e=>JSON.stringify(e,((e,t)=>E(t,Map)?I([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),b=JSON.parse,C=Math.max,m=Math.min,V=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,J=(e,t,s)=>k(e)?s?.():t(e),A=e=>e==n||e==o,M=e=>s(e)==r,D=e=>Array.isArray(e),x=()=>{},F=e=>e.size,Q=(e,t)=>e?.has(t)??!1,z=e=>k(e)||0==F(e),N=e=>[...e?.values()??[]],O=e=>e.clear(),j=(e,t)=>e?.forEach(t),P=(e,t)=>e?.delete(t),W=e=>new Map(e),B=e=>[...e?.keys()??[]],H=(e,t)=>e?.get(t),$=(e,t)=>j(e,((e,s)=>t(s,e))),q=(e,t,s)=>k(s)?(P(e,t),e):e?.set(t,s),G=(e,t,s)=>(Q(e,t)||q(e,t,s()),H(e,t)),K=(e,t,s)=>{const n={},o=t??(e=>e);return j(e,((e,t)=>J(o(e),(e=>s?.(e)?0:n[t]=e)))),n},U=(e,t)=>{const s=W(),n=t??(e=>e);return j(e,((e,t)=>s.set(t,n(e)))),s},X=e=>U(e,U),Y=(e,t,s,n,o=0)=>J((s?G:H)(e,t[o],o>w(t)-2?s:W),(a=>{if(o>w(t)-2)return n?.(a)&&q(e,t[o]),a;const r=Y(a,t,s,n,o+1);return z(a)&&q(e,t[o]),r})),Z=e=>{const t=s(e);return A(t)||t==a&&V(e)?t:void 0},_=(e,t,s,n,o)=>k(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),te=e=>new Set(D(e)||k(e)?e:[e]),se=(e,t)=>e?.add(t),ne=(e,t,s)=>{const n=e.hasRow,o=W(),a=W(),r=W(),l=W(),i=W(),d=(t,s,...n)=>{const o=G(i,t,te);return f(n,(t=>se(o,t)&&s&&e.callListener(t))),n},u=(t,...s)=>J(H(i,t),(n=>{f(v(s)?N(n):s,(t=>{e.delListener(t),P(n,t)})),z(n)&&q(i,t)})),h=(e,s)=>{q(o,e,s),Q(a,e)||(q(a,e,t()),q(r,e,W()),q(l,e,W()))},g=e=>{q(o,e),q(a,e),q(r,e),q(l,e),u(e)};return[()=>e,()=>B(o),e=>$(a,e),e=>Q(a,e),e=>H(o,e),e=>H(a,e),(e,t)=>q(a,e,t),h,(t,o,a,i,g)=>{h(t,o);const L=W(),w=W(),v=H(r,t),I=H(l,t),R=t=>{const a=s=>e.getCell(o,t,s),r=H(v,t),l=n(o,t)?s(i(a,t)):void 0;if(r===l||D(r)&&D(l)&&c(r,l)||q(L,t,[r,l]),!k(g)){const e=H(I,t),s=n(o,t)?g(a,t):void 0;e!=s&&q(w,t,s)}},S=e=>{a((()=>{j(L,(([,e],t)=>q(v,t,e))),j(w,((e,t)=>q(I,t,e)))}),L,w,v,I,e),O(L),O(w)};$(v,R),e.hasTable(o)&&f(e.getRowIds(o),(e=>{Q(v,e)||R(e)})),S(!0),u(t),d(t,0,e.addRowListener(o,null,((e,t,s)=>R(s))),e.addTableListener(o,(()=>S())))},g,()=>$(i,g),d,u]},oe=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},re=/^\d+$/,le=()=>{const e=[];let t=0;return[()=>y(e)??""+t++,t=>{re.test(t)&&w(e)<1e3&&S(e,t)}]},ie=e=>{let t;const[s,n]=le(),o=W();return[(n,a,r,l=[],i=(()=>[]))=>{t??=e();const d=s();return q(o,d,[n,a,r,l,i]),se(Y(a,r??[""],te),d),d},(e,s,...n)=>f(((e,t=[""])=>{const s=[],n=(e,o)=>o==w(t)?S(s,e):null===t[o]?j(e,(e=>n(e,o+1))):f([t[o],null],(t=>n(H(e,t),o+1)));return n(e,0),s})(e,s),(e=>j(e,(e=>H(o,e)[0](t,...s??[],...n))))),e=>J(H(o,e),(([,t,s])=>(Y(t,s??[""],void 0,(t=>(P(t,e),z(t)?1:0))),q(o,e),n(e),s))),e=>J(H(o,e),(([e,,s=[],n,o])=>{const a=(...r)=>{const l=w(r);l==w(s)?e(t,...r,...o(r)):k(s[l])?f(n[l]?.(...r)??[],(e=>a(...r,e))):a(...r,s[l])};a()}))]},de=Object,ce=de.keys,ue=de.isFrozen,he=de.freeze,fe=e=>E(e,de)&&e.constructor==de,ge=(e,t)=>!k(((e,t)=>J(e,(e=>e[t])))(e,t)),Le=(e,t)=>delete e[t],we=(e,t)=>g(de.entries(e),(([e,s])=>t(s,e))),ve=e=>fe(e)&&v(ce(e)),Ie=ae((e=>{let t,s,n,o=100,a=W(),r=W(),l=1;const d=W(),c=W(),[u,h,g]=ie((()=>U)),L=W(),I=W(),R=[],p=[],b=(t,s)=>{l=0,e.transaction((()=>{const[n,o]=H(L,s);j(n,((s,n)=>j(s,((s,o)=>j(s,((s,a)=>_(e,n,o,a,s[t]))))))),j(o,((s,n)=>ee(e,n,s[t])))})),l=1},C=e=>{q(L,e),q(I,e),h(c,[e])},m=(e,t)=>f(((e,t)=>e.splice(0,t))(e,t??w(e)),C),V=()=>m(R,w(R)-o),E=()=>J(t,(()=>{S(R,t),V(),m(p),t=void 0,n=1})),A=()=>{t=T(R),n=1},M=e.addCellListener(null,null,null,((e,t,s,n,o,r)=>{if(l){E();const e=G(a,t,W),l=G(e,s,W),i=G(l,n,(()=>[r,void 0]));i[1]=o,i[0]===o&&z(q(l,n))&&z(q(e,s))&&z(q(a,t))&&A(),O()}})),D=e.addValueListener(null,((e,t,s,n)=>{if(l){E();const e=G(r,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&z(q(r,t))&&A(),O()}})),x=(e="")=>(k(t)&&(t=""+s++,q(L,t,[a,r]),B(t,e),a=W(),r=W(),n=1),t),F=()=>{v(R)||(((e,...t)=>{e.unshift(...t)})(p,x()),b(0,t),t=T(R),n=1)},N=()=>{v(p)||(S(R,t),t=y(p),b(1,t),n=1)},O=()=>{n&&(h(d),n=0)},P=e=>{const t=x(e);return O(),t},B=(e,t)=>(K(e)&&H(I,e)!==t&&(q(I,e,t),h(c,[e])),U),K=e=>Q(L,e),U={setSize:e=>(o=e,V(),U),addCheckpoint:P,setCheckpoint:B,getStore:()=>e,getCheckpointIds:()=>[[...R],t,[...p]],forEachCheckpoint:e=>$(I,e),hasCheckpoint:K,getCheckpoint:e=>H(I,e),goBackward:()=>(F(),O(),U),goForward:()=>(N(),O(),U),goTo:e=>{const s=i(R,e)?F:i(p,e)?N:null;for(;!k(s)&&e!=t;)s();return O(),U},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(g(e),U),clear:()=>(m(R),m(p),k(t)||C(t),t=void 0,s=0,P(),U),destroy:()=>{e.delListener(M),e.delListener(D)},getListenerStats:()=>({})};return he(U.clear())})),Re=(e,t)=>e<t?-1:1,Se=ae((e=>{const t=W(),s=W(),[n,o,a,r,i,d,c,,f,L,w]=ne(e,W,(e=>k(e)?"":D(e)?g(e,l):l(e))),[v,I,R]=ie((()=>T)),S=(t,s,n)=>{const o=i(t);j(n,((t,n)=>s(n,(s=>j(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},T={setIndexDefinition:(e,n,o,a,r,l=Re)=>{const i=k(r)?void 0:([e],[t])=>r(e,t);return f(e,n,((n,o,r,f,g,L)=>{let w=0;const v=te(),R=te(),S=d(e);if(j(o,(([e,t],s)=>{const n=te(e),o=te(t);j(n,(e=>P(o,e)?P(n,e):0)),j(n,(e=>{se(v,e),J(H(S,e),(t=>{P(t,s),z(t)&&(q(S,e),w=1)}))})),j(o,(e=>{se(v,e),Q(S,e)||(q(S,e,te()),w=1),se(H(S,e),s),k(a)||se(R,e)}))})),n(),z(g)||(L?$(S,(e=>se(R,e))):$(r,(e=>J(H(f,e),(e=>se(R,e))))),j(R,(e=>{const t=(t,s)=>l(H(g,t),H(g,s),e),s=[...H(S,e)];u(s,t)||(q(S,e,te(h(s,t))),se(v,e))}))),(w||L)&&!k(i)){const t=[...S];u(t,i)||(c(e,W(h(t,i))),w=1)}w&&I(t,[e]),j(v,(t=>I(s,[e,t])))}),oe(o),J(a,oe)),T},delIndexDefinition:e=>(L(e),T),getStore:n,getIndexIds:o,forEachIndex:e=>a(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,d(e)),hasIndex:r,hasSlice:(e,t)=>Q(d(e),t),getTableId:i,getSliceIds:e=>B(d(e)),getSliceRowIds:(e,t)=>N(H(d(e),t)),addSliceIdsListener:(e,s)=>v(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>v(n,s,[e,t]),delListener:e=>(R(e),T),destroy:w,getListenerStats:()=>({})};return he(T)})),Te=W([["avg",[(e,t)=>L(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:C(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["sum",[e=>L(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),ye=(e,t,s,n,o,a=!1)=>{if(z(s))return;const[r,l,i,d]=o;return a||=k(e),j(n,(([s,n])=>{a||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):d?.(e,n,s,t),a||=k(e))})),a?r(N(s),F(s)):e},pe=ae((e=>{const t=W(),[s,n,o,a,r,l,i,,d,c,u]=ne(e,x,(e=>isNaN(e)||k(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,f,g]=ie((()=>L)),L={setMetricDefinition:(e,s,n,o,a,r,c)=>{const u=M(n)?[n,a,r,c]:H(Te,n)??H(Te,"sum");return d(e,s,((s,n,o,a,r,d)=>{const c=l(e),h=F(a);d||=k(c),s();let g=ye(c,h,a,n,u,d);V(g)||(g=void 0),g!=c&&(i(e,g),f(t,[e],g,c))}),oe(o,1)),L},delMetricDefinition:e=>(c(e),L),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:a,getTableId:r,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(g(e),L),destroy:u,getListenerStats:()=>({})};return he(L)})),be=(e,t,s,n,o)=>{let a,r,l=0;const i={load:async(s,n)=>{if(2!=l){l=1;const o=await t();k(o)||""==o?e.transaction((()=>e.setTables(s).setValues(n))):e.setJson(o),l=0}return i},startAutoLoad:async(e,t)=>(i.stopAutoLoad(),await i.load(e,t),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=l&&(l=2,await s(e.getJson()),l=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),a=e.addTablesListener(i.save),r=e.addValuesListener(i.save),i),stopAutoSave:()=>(J(a,e.delListener),J(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return he(i)},Ce=globalThis.window,me=(e,t,s)=>{let n;return be(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Ce.addEventListener("storage",n)}),(()=>{Ce.removeEventListener("storage",n),n=void 0}))},Ve=(e,t)=>me(e,t,localStorage),Ee=(e,t)=>me(e,t,sessionStorage),ke=(s,n)=>{let o;return be(s,(async()=>{try{return await e.readFile(n,"utf8")}catch{}}),(async t=>{try{await e.writeFile(n,t,"utf8")}catch{}}),(e=>{o=t(n,e)}),(()=>{o?.close(),o=void 0}))},Je=e=>e.headers.get("ETag"),Ae=(e,t,s,n)=>{let o,a;return be(e,(async()=>{const e=await fetch(t);return a=Je(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=Je(s);k(a)||k(n)||n==a||(a=n,e())}),1e3*n)}),(()=>{J(o,clearInterval),o=void 0}))},Me=ae((e=>{const t=e.createStore,[s,n,o,a,r,,,l,,i,c,u,h]=ne(e,(()=>!0),x),g=t(),L=t(),I=W(),T=(e,t,...s)=>f(s,(s=>se(G(G(I,t,W),e,te),s))),y=e=>{J(H(I,e),(e=>{$(e,((e,t)=>j(t,(t=>e.delListener(t))))),O(e)})),f([L,g],(t=>t.delTable(e)))},p=(e,t,s)=>T(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),b={setQueryDefinition:(t,s,n)=>{l(t,s),y(t);const o=[],a=[[null,[s,null,null,[],W()]]],r=[],i=[],c=[];n({select:(e,t)=>{const s=M(e)?[w(o)+"",e]:[k(t)?e:t,s=>s(e,t)];return S(o,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=k(s)||M(t)?null:t,o=k(n)?t:s,r=[e,[e,n,M(o)?o:e=>e(o),[],W()]];return S(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>S(r,M(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const a=[e,[e,M(t)?[t,s,n,o]:H(Te,t)??[(e,t)=>t]]];return S(i,a),{as:e=>a[0]=e}},having:(e,t)=>S(c,M(e)?e:s=>s(e)===t)});const I=W(o);if(z(I))return b;const R=W(a);$(R,((e,[,t])=>J(H(R,t),(({3:t})=>k(e)?0:S(t,e)))));const C=W(i);let m=g;if(z(C)&&v(c))m=L;else{p(t,m,L);const e=W();$(C,((t,[s,n])=>se(G(e,s,te),[t,n])));const s=te();$(I,(t=>Q(e,t)?0:se(s,t)));const n=W(),o=(s,n,o,a)=>J(s,(([r,l,i,u])=>{$(n,((t,[s])=>{const n=G(r,t,W),l=H(n,o),i=a?void 0:s;if(l!==i){const s=te([[l,i]]),a=F(n);q(n,o,i),j(H(e,t),(([e,t])=>{const o=ye(u[e],a,n,s,t);u[e]=k(Z(o))?null:o}))}})),z(l)||!d(c,(e=>e((e=>u[e]))))?L.delRow(t,i):k(i)?s[2]=L.addRow(t,u):L.setRow(t,i,u)}));T(m,t,m.addRowListener(t,null,((a,r,l,i)=>{const d=[],c=[],u=W(),h=m.hasRow(t,l);let f=!h;j(s,(e=>{const[s,n,o]=i(t,l,e);S(d,n),S(c,o),f||=s})),$(e,(e=>{const[s,,n]=i(t,l,e);(f||s)&&q(u,e,[n])})),f&&o(Y(n,d,void 0,(([,e])=>(P(e,l),z(e)))),u,l,1),h&&o(Y(n,c,(()=>{const e={};return j(s,(s=>e[s]=m.getCell(t,l,s))),[W(),te(),void 0,e]}),(([,e])=>{se(e,l)})),u,l)})))}p(t,e,m);const V=(n,o,a,l)=>{const i=t=>e.getCell(o,a,t);f(l,(s=>{const[o,,a,r,l]=H(R,s),d=a?.(i,n),[c,f]=H(l,n)??[];d!=c&&(k(f)||h(t,f),q(l,n,k(d)?null:[d,...u(t,1,e.addRowListener(o,d,(()=>V(n,o,d,r))))]))})),(n=>{const o=(t,o)=>e.getCell(...k(o)?[s,n,t]:t===s?[s,n,o]:[H(R,t)?.[0],H(H(R,t)?.[4],n)?.[0],o]);m.transaction((()=>d(r,(e=>e(o)))?$(I,((e,s)=>_(m,t,n,e,s(o,n)))):m.delRow(t,n)))})(n)},{3:E}=H(R,null);return m.transaction((()=>u(t,1,e.addRowListener(s,null,((n,o,a)=>{e.hasRow(s,a)?V(a,s,a,E):(m.delRow(t,a),j(R,(({4:e})=>J(H(e,a),(([,s])=>{h(t,s),q(e,a)})))))}))))),b},delQueryDefinition:e=>(y(e),i(e),b),getStore:s,getQueryIds:n,forEachQuery:o,hasQuery:a,getTableId:r,delListener:e=>(L.delListener(e),b),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=L.getListenerStats();return n}};return we({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],s)=>{f(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+s]=(...t)=>L[e+s](...t))),b["addResult"+s+"Listener"]=(...e)=>L["add"+s+"Listener"](...R(e,0,t),((s,...n)=>e[t](b,...n)))})),he(b)})),De=ae((e=>{const t=W(),s=W(),n=W(),o=W(),[a,r,l,i,d,c,,,u,h,f]=ne(e,(()=>[W(),W(),W(),W()]),(e=>k(e)?void 0:e+"")),[g,L,w]=ie((()=>S)),v=(e,t,s)=>J(c(e),(([n,,o])=>{if(!Q(o,t)){const a=te();if(d(e)!=R(e))se(a,t);else{let e=t;for(;!k(e)&&!Q(a,e);)se(a,e),e=H(n,e)}if(s)return a;q(o,t,a)}return H(o,t)})),I=(e,t)=>J(c(e),(([,,e])=>q(e,t))),R=e=>H(t,e),S={setRelationshipDefinition:(e,a,r,l)=>(q(t,e,r),u(e,a,((t,a)=>{const r=te(),l=te(),i=te(),[d,u]=c(e);j(a,(([t,s],n)=>{k(t)||(se(l,t),J(H(u,t),(e=>{P(e,n),z(e)&&q(u,t)}))),k(s)||(se(l,s),Q(u,s)||q(u,s,te()),se(H(u,s),n)),se(r,n),q(d,n,s),$(H(o,e),(t=>{Q(v(e,t),n)&&se(i,t)}))})),t(),j(r,(t=>L(s,[e,t]))),j(l,(t=>L(n,[e,t]))),j(i,(t=>{I(e,t),L(o,[e,t])}))}),oe(l)),S),delRelationshipDefinition:e=>(q(t,e),h(e),S),getStore:a,getRelationshipIds:r,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:i,getLocalTableId:d,getRemoteTableId:R,getRemoteRowId:(e,t)=>H(c(e)?.[0],t),getLocalRowIds:(e,t)=>N(H(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(c(e))?[t]:N(v(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>g(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>g(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),g(s,o,[e,t])),delListener:e=>(I(...w(e)),S),destroy:f,getListenerStats:()=>({})};return he(S)})),xe=e=>[e,e],Fe=()=>[W(),W()],Qe=(e,t,s,n=q)=>{const o=(a=e=>!ge(t,e),B(e).filter(a));var a;return f(ce(t),(n=>s(e,n,t[n]))),f(o,(t=>n(e,t))),e},ze=(e,t,s)=>k(e)||!fe(e)||ve(e)||ue(e)?(s?.(),!1):(we(e,((s,n)=>{t(s,n)||Le(e,n)})),!ve(e)),Ne=(e,t,s)=>q(e,t,H(e,t)==-s?void 0:s),Oe=()=>{let e,t,s,n,o=0;const r=W(),d=W(),u=W(),L=W(),w=W(),v=W(),I=W(),T=W(),y=W(),C=W(),m=W(),V=W(),E=te(),D=W(),x=W(),F=W(),N=Fe(),Y=Fe(),ne=Fe(),oe=Fe(),ae=Fe(),re=Fe(),de=Fe(),ce=Fe(),ue=Fe(),fe=Fe(),Ie=Fe(),Se=Fe(),Te=Fe(),ye=Fe(),[pe,be,Ce,me]=ie((()=>jt)),Ve=e=>{if(!ze(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!A(t)&&t!=a||(Z(e.default)!=t&&Le(e,"default"),0))},Ee=(t,s)=>(!e||Q(y,s)||ct(s))&&ze(t,((e,t)=>ke(s,t,e)),(()=>ct(s))),ke=(e,t,s,n)=>ze(n?s:De(s,e,t),((n,o)=>J(Je(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>ct(e,t))),Je=(t,s,n,o)=>e?J(H(H(y,t),n),(e=>Z(o)!=e.type?ct(t,s,n,o,e.default):o),(()=>ct(t,s,n,o))):k(Z(o))?ct(t,s,n,o):o,Ae=(e,t)=>ze(t?e:je(e),((t,s)=>J(Me(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>ut())),Me=(e,s)=>t?J(H(m,e),(t=>Z(s)!=t.type?ut(e,s,t.default):s),(()=>ut(e,s))):k(Z(s))?ut(e,s):s,De=(e,t,s)=>(J(H(C,t),(([n,o])=>{j(n,((t,s)=>{ge(e,s)||(e[s]=t)})),j(o,(n=>{ge(e,n)||ct(t,s,n)}))})),e),je=e=>(t&&(j(V,((t,s)=>{ge(e,s)||(e[s]=t)})),j(E,(t=>{ge(e,t)||ut(t)}))),e),Pe=e=>Qe(y,e,((e,t,s)=>{const n=W(),o=te();Qe(G(y,t,W),s,((e,t,s)=>{q(e,t,s),J(s.default,(e=>q(n,t,e)),(()=>se(o,t)))})),q(C,t,[n,o])}),((e,t)=>{q(y,t),q(C,t)})),We=e=>Qe(m,e,((e,t,s)=>{q(m,t,s),J(s.default,(e=>q(V,t,e)),(()=>se(E,t)))}),((e,t)=>{q(m,t),q(V,t),P(E,t)})),Be=e=>ve(e)?xt():kt(e),He=e=>Qe(x,e,((e,t,s)=>$e(t,s)),((e,t)=>et(t))),$e=(e,t)=>Qe(G(x,e,(()=>(ot(e,1),W()))),t,((t,s,n)=>qe(e,t,s,n)),((t,s)=>tt(e,t,s))),qe=(e,t,s,n,o)=>Qe(G(t,s,(()=>(at(e,s,1),W()))),n,((t,n,o)=>Ge(e,s,t,n,o)),((n,a)=>st(e,t,s,n,a,o))),Ge=(e,t,s,n,o)=>{Q(s,n)||rt(e,t,n,1);const a=H(s,n);o!==a&&(lt(e,t,n,a,o),q(s,n,o))},Ke=(e,t,s,n,o)=>J(H(t,s),(t=>Ge(e,s,t,n,o)),(()=>qe(e,t,s,De({[n]:o},e,s)))),Ue=e=>ve(e)?Ft():Jt(e),Xe=e=>Qe(F,e,((e,t,s)=>Ye(t,s)),((e,t)=>nt(t))),Ye=(e,t)=>{Q(F,e)||it(e,1);const s=H(F,e);t!==s&&(dt(e,s,t),q(F,e,t))},Ze=e=>{const[t]=G(D,e,le),s=t();return Q(H(x,e),s)?Ze(e):s},_e=e=>H(x,e)??$e(e,{}),et=e=>$e(e,{}),tt=(e,t,s)=>{const[,n]=G(D,e,le);n(s),qe(e,t,s,{},!0)},st=(e,t,s,n,o,a)=>{const r=H(H(C,e)?.[0],o);if(!k(r)&&!a)return Ge(e,s,n,o,r);const l=t=>{lt(e,s,t,H(n,t)),rt(e,s,t,-1),q(n,t)};k(r)?l(o):$(n,l),z(n)&&(at(e,s,-1),z(q(t,s))&&(ot(e,-1),q(x,e),q(D,e)))},nt=e=>{const t=H(V,e);if(!k(t))return Ye(e,t);dt(e,H(F,e)),it(e,-1),q(F,e)},ot=(e,t)=>Ne(r,e,t),at=(e,t,s)=>Ne(G(d,e,W),t,s),rt=(e,t,s,n)=>Ne(G(G(u,e,W),t,W),s,n),lt=(e,t,s,n,o)=>G(G(G(L,e,W),t,W),s,(()=>[n,0]))[1]=o,it=(e,t)=>Ne(w,e,t),dt=(e,t,s)=>G(v,e,(()=>[t,0]))[1]=s,ct=(e,t,s,n,o)=>(S(G(G(G(I,e,W),t,W),s,(()=>[])),n),o),ut=(e,t,s)=>(S(G(T,e,(()=>[])),t),s),ht=(e,t,s)=>J(H(H(H(L,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xe(Ct(e,t,s))])),ft=e=>J(H(v,e),(([e,t])=>[!0,e,t]),(()=>[!1,...xe(Et(e))])),gt=e=>z(I)||z(ue[e])?0:j(e?U(I,X):I,((t,s)=>j(t,((t,n)=>j(t,((t,o)=>be(ue[e],[s,n,o],t))))))),Lt=e=>z(T)||z(fe[e])?0:j(e?U(T):T,((t,s)=>be(fe[e],[s],t))),wt=(e,t,s)=>{if(!z(t))return be(e,s),1},vt=e=>{const t=z(ae[e]),s=z(de[e])&&z(oe[e])&&t&&z(Y[e]),n=z(ce[e])&&z(re[e])&&z(ne[e])&&z(N[e]);if(!s||!n){const o=e?[U(r),X(d),U(u,X),U(L,X)]:[r,d,u,L];if(!s){j(o[2],((t,s)=>j(t,((t,n)=>wt(de[e],t,[s,n])))));const s=te();j(o[1],((n,o)=>{wt(oe[e],n,[o])&&!t&&(be(ae[e],[o,null]),se(s,o))})),t||j(o[3],((t,n)=>{if(!Q(s,n)){const s=te();j(t,(e=>j(e,(([t,n],o)=>n!==t?se(s,o):P(e,o))))),j(s,(t=>be(ae[e],[n,t])))}})),wt(Y[e],o[0])}if(!n){let t;j(o[3],((s,n)=>{let o;j(s,((s,a)=>{let r;j(s,(([s,l],i)=>{l!==s&&(be(ce[e],[n,a,i],l,s,ht),t=o=r=1)})),r&&be(re[e],[n,a],ht)})),o&&be(ne[e],[n],ht)})),t&&be(N[e],void 0,ht)}}},It=e=>{const t=z(Se[e]),s=z(Te[e])&&z(Ie[e]);if(!t||!s){const n=e?[U(w),U(v)]:[w,v];if(t||wt(Se[e],n[0]),!s){let t;j(n[1],(([s,n],o)=>{n!==s&&(be(Te[e],[o],n,s,ft),t=1)})),t&&be(Ie[e],void 0,ft)}}},Rt=(e,...t)=>(zt((()=>e(...g(t,l)))),jt),St=()=>K(x,(e=>K(e,K))),Tt=()=>B(x),yt=e=>B(H(x,l(e))),pt=(e,t,s,n=0,o)=>{return g(R(h((a=H(x,l(e)),r=(e,s)=>[k(t)?s:H(e,l(t)),s],g([...a?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Re(e,t)*(s?-1:1))),n,k(o)?o:n+o),(([,e])=>e));var a,r},bt=(e,t)=>B(H(H(x,l(e)),l(t))),Ct=(e,t,s)=>H(H(H(x,l(e)),l(t)),l(s)),mt=()=>K(F),Vt=()=>B(F),Et=e=>H(F,l(e)),kt=e=>Rt((()=>(e=>ze(e,Ee,ct))(e)?He(e):0)),Jt=e=>Rt((()=>Ae(e)?Xe(e):0)),At=e=>{try{Be(b(e))}catch{}return jt},Mt=t=>Rt((()=>{if((e=ze(t,(e=>ze(e,Ve))))&&(Pe(t),!z(x))){const e=St();xt(),kt(e)}})),Dt=e=>Rt((()=>{if(t=(e=>ze(e,Ve))(e)){const s=mt();Qt(),Ft(),t=!0,We(e),Jt(s)}})),xt=()=>Rt((()=>He({}))),Ft=()=>Rt((()=>Xe({}))),Qt=()=>Rt((()=>{We({}),t=!1})),zt=(e,t)=>{if(-1==o)return;Nt();const s=e();return Ot(t),s},Nt=()=>(o++,jt),Ot=e=>(o>0&&(o--,0==o&&(s=!z(L),n=!z(v),o=1,gt(1),s&&vt(1),Lt(1),n&&It(1),o=-1,e?.(K(L,(e=>K(e,(e=>K(e,(e=>[...e]),(([e,t])=>e===t))),ve)),ve),K(I,(e=>K(e,K))),K(v,(e=>[...e]),(([e,t])=>e===t)),K(T))&&(o=1,j(L,((e,t)=>j(e,((e,s)=>j(e,(([e],n)=>_(jt,t,s,n,e))))))),j(v,(([e],t)=>ee(jt,t,e))),o=-1,s=n=!1),be(ye[0],void 0,s,n),gt(0),s&&vt(0),Lt(0),n&&It(0),be(ye[1],void 0,s,n),o=0,f([r,d,u,L,I,w,v,T],O))),jt),jt={getTables:St,getTableIds:Tt,getTable:e=>K(H(x,l(e)),K),getRowIds:yt,getSortedRowIds:pt,getRow:(e,t)=>K(H(H(x,l(e)),l(t))),getCellIds:bt,getCell:Ct,getValues:mt,getValueIds:Vt,getValue:Et,hasTables:()=>!z(x),hasTable:e=>Q(x,l(e)),hasRow:(e,t)=>Q(H(x,l(e)),l(t)),hasCell:(e,t,s)=>Q(H(H(x,l(e)),l(t)),l(s)),hasValues:()=>!z(F),hasValue:e=>Q(F,l(e)),getTablesJson:()=>p(x),getValuesJson:()=>p(F),getJson:()=>p([x,F]),getTablesSchemaJson:()=>p(y),getValuesSchemaJson:()=>p(m),getSchemaJson:()=>p([y,m]),setTables:kt,setTable:(e,t)=>Rt((e=>Ee(t,e)?$e(e,t):0),e),setRow:(e,t,s)=>Rt(((e,t)=>ke(e,t,s)?qe(e,_e(e),t,s):0),e,t),addRow:(e,t)=>zt((()=>{let s;return ke(e,s,t)&&(e=l(e),qe(e,_e(e),s=Ze(e),t)),s})),setPartialRow:(e,t,s)=>Rt(((e,t)=>{if(ke(e,t,s,1)){const n=_e(e);we(s,((s,o)=>Ke(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Rt(((e,t,s)=>J(Je(e,t,s,M(n)?n(Ct(e,t,s)):n),(n=>Ke(e,_e(e),t,s,n)))),e,t,s),setValues:Jt,setPartialValues:e=>Rt((()=>Ae(e,1)?we(e,((e,t)=>Ye(t,e))):0)),setValue:(e,t)=>Rt((e=>J(Me(e,M(t)?t(Et(e)):t),(t=>Ye(e,t)))),e),setTablesJson:At,setValuesJson:e=>{try{Ue(b(e))}catch{}return jt},setJson:e=>{try{const[t,s]=b(e);Be(t),Ue(s)}catch{At(e)}return jt},setTablesSchema:Mt,setValuesSchema:Dt,setSchema:(e,t)=>Rt((()=>{Mt(e),Dt(t)})),delTables:xt,delTable:e=>Rt((e=>Q(x,e)?et(e):0),e),delRow:(e,t)=>Rt(((e,t)=>J(H(x,e),(s=>Q(s,t)?tt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Rt(((e,t,s)=>J(H(x,e),(o=>J(H(o,t),(a=>Q(a,s)?st(e,o,t,a,s,n):0))))),e,t,s),delValues:Ft,delValue:e=>Rt((e=>Q(F,e)?nt(e):0),e),delTablesSchema:()=>Rt((()=>{Pe({}),e=!1})),delValuesSchema:Qt,transaction:zt,startTransaction:Nt,finishTransaction:Ot,forEachTable:e=>j(x,((t,s)=>e(s,(e=>j(t,((t,s)=>e(s,(e=>$(t,e))))))))),forEachRow:(e,t)=>j(H(x,l(e)),((e,s)=>t(s,(t=>$(e,t))))),forEachCell:(e,t,s)=>$(H(H(x,l(e)),l(t)),s),forEachValue:e=>$(F,e),addSortedRowIdsListener:(e,t,s,n,o,a,r)=>{let l=pt(e,t,s,n,o);return pe((()=>{const r=pt(e,t,s,n,o);c(r,l)||(l=r,a(jt,e,t,s,n,o,l))}),ae[r?1:0],[e,t],[Tt])},addWillFinishTransactionListener:e=>pe(e,ye[0]),addDidFinishTransactionListener:e=>pe(e,ye[1]),callListener:e=>(me(e),jt),delListener:e=>(Ce(e),jt),getListenerStats:()=>({}),createStore:Oe};return we({Tables:[0,N],TableIds:[0,Y],Table:[1,ne,[Tt]],RowIds:[1,oe,[Tt]],Row:[2,re,[Tt,yt]],CellIds:[2,de,[Tt,yt]],Cell:[3,ce,[Tt,yt,bt],e=>xe(Ct(...e))],InvalidCell:[3,ue],Values:[0,Ie],ValueIds:[0,Se],Value:[1,Te,[Vt],e=>xe(Et(e[0]))],InvalidValue:[1,fe]},(([e,t,s,n],o)=>{jt["add"+o+"Listener"]=(...o)=>pe(o[e],t[o[e+1]?1:0],e>0?R(o,0,e):void 0,s,n)})),he(jt)};export{Ie as createCheckpoints,be as createCustomPersister,ke as createFilePersister,Se as createIndexes,Ve as createLocalPersister,pe as createMetrics,Me as createQueries,De as createRelationships,Ae as createRemotePersister,Ee as createSessionPersister,Oe as createStore,Re as defaultSorter};
1
+ import{promises as e,watch as t}from"fs";const s=e=>typeof e,n=s(""),o=s(!0),a=s(0),r=s(s),l=e=>""+e,i=(e,t)=>e.includes(t),d=(e,t)=>e.every(t),c=(e,t)=>w(e)===w(t)&&d(e,((e,s)=>t[s]===e)),u=(e,t)=>d(e,((s,n)=>0==n||t(e[n-1],s)<=0)),h=(e,t)=>e.sort(t),f=(e,t)=>e.forEach(t),g=(e,t)=>e.map(t),L=e=>I(e,((e,t)=>e+t),0),w=e=>e.length,v=e=>0==w(e),I=(e,t,s)=>e.reduce(t,s),R=(e,t,s)=>e.slice(t,s),S=(e,...t)=>e.push(...t),T=e=>e.pop(),y=e=>e.shift(),p=e=>JSON.stringify(e,((e,t)=>E(t,Map)?I([...t],((e,[t,s])=>(e[t]=s,e)),{}):t)),b=JSON.parse,C=Math.max,m=Math.min,V=isFinite,E=(e,t)=>e instanceof t,k=e=>null==e,J=(e,t,s)=>k(e)?s?.():t(e),A=e=>e==n||e==o,M=e=>s(e)==r,D=e=>Array.isArray(e),x=()=>{},F=e=>e.size,Q=(e,t)=>e?.has(t)??!1,z=e=>k(e)||0==F(e),N=e=>[...e?.values()??[]],O=e=>e.clear(),j=(e,t)=>e?.forEach(t),P=(e,t)=>e?.delete(t),W=e=>new Map(e),B=e=>[...e?.keys()??[]],H=(e,t)=>e?.get(t),$=(e,t)=>j(e,((e,s)=>t(s,e))),q=(e,t,s)=>k(s)?(P(e,t),e):e?.set(t,s),G=(e,t,s)=>(Q(e,t)||q(e,t,s()),H(e,t)),K=(e,t,s)=>{const n={},o=t??(e=>e);return j(e,((e,t)=>J(o(e),(e=>s?.(e)?0:n[t]=e)))),n},U=(e,t)=>{const s=W(),n=t??(e=>e);return j(e,((e,t)=>s.set(t,n(e)))),s},X=e=>U(e,U),Y=(e,t,s,n,o=0)=>J((s?G:H)(e,t[o],o>w(t)-2?s:W),(a=>{if(o>w(t)-2)return n?.(a)&&q(e,t[o]),a;const r=Y(a,t,s,n,o+1);return z(a)&&q(e,t[o]),r})),Z=e=>{const t=s(e);return A(t)||t==a&&V(e)?t:void 0},_=(e,t,s,n,o)=>k(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),ee=(e,t,s)=>k(s)?e.delValue(t):e.setValue(t,s),te=e=>new Set(D(e)||k(e)?e:[e]),se=(e,t)=>e?.add(t),ne=(e,t,s)=>{const n=e.hasRow,o=W(),a=W(),r=W(),l=W(),i=W(),d=(t,s,...n)=>{const o=G(i,t,te);return f(n,(t=>se(o,t)&&s&&e.callListener(t))),n},u=(t,...s)=>J(H(i,t),(n=>{f(v(s)?N(n):s,(t=>{e.delListener(t),P(n,t)})),z(n)&&q(i,t)})),h=(e,s)=>{q(o,e,s),Q(a,e)||(q(a,e,t()),q(r,e,W()),q(l,e,W()))},g=e=>{q(o,e),q(a,e),q(r,e),q(l,e),u(e)};return[()=>e,()=>B(o),e=>$(a,e),e=>Q(a,e),e=>H(o,e),e=>H(a,e),(e,t)=>q(a,e,t),h,(t,o,a,i,g)=>{h(t,o);const L=W(),w=W(),v=H(r,t),I=H(l,t),R=t=>{const a=s=>e.getCell(o,t,s),r=H(v,t),l=n(o,t)?s(i(a,t)):void 0;if(r===l||D(r)&&D(l)&&c(r,l)||q(L,t,[r,l]),!k(g)){const e=H(I,t),s=n(o,t)?g(a,t):void 0;e!=s&&q(w,t,s)}},S=e=>{a((()=>{j(L,(([,e],t)=>q(v,t,e))),j(w,((e,t)=>q(I,t,e)))}),L,w,v,I,e),O(L),O(w)};$(v,R),e.hasTable(o)&&f(e.getRowIds(o),(e=>{Q(v,e)||R(e)})),S(!0),u(t),d(t,0,e.addRowListener(o,null,((e,t,s)=>R(s))),e.addTableListener(o,(()=>S())))},g,()=>$(i,g),d,u]},oe=(e,t)=>s(e)==n?t=>t(e):e??(()=>t??""),ae=e=>{const t=new WeakMap;return s=>(t.has(s)||t.set(s,e(s)),t.get(s))},re=/^\d+$/,le=()=>{const e=[];let t=0;return[()=>y(e)??""+t++,t=>{re.test(t)&&w(e)<1e3&&S(e,t)}]},ie=e=>{let t;const[s,n]=le(),o=W();return[(n,a,r,l=[],i=(()=>[]))=>{t??=e();const d=s();return q(o,d,[n,a,r,l,i]),se(Y(a,r??[""],te),d),d},(e,s,...n)=>f(((e,t=[""])=>{const s=[],n=(e,o)=>o==w(t)?S(s,e):null===t[o]?j(e,(e=>n(e,o+1))):f([t[o],null],(t=>n(H(e,t),o+1)));return n(e,0),s})(e,s),(e=>j(e,(e=>H(o,e)[0](t,...s??[],...n))))),e=>J(H(o,e),(([,t,s])=>(Y(t,s??[""],void 0,(t=>(P(t,e),z(t)?1:0))),q(o,e),n(e),s))),e=>J(H(o,e),(([e,,s=[],n,o])=>{const a=(...r)=>{const l=w(r);l==w(s)?e(t,...r,...o(r)):k(s[l])?f(n[l]?.(...r)??[],(e=>a(...r,e))):a(...r,s[l])};a()}))]},de=Object,ce=de.keys,ue=de.isFrozen,he=de.freeze,fe=e=>E(e,de)&&e.constructor==de,ge=(e,t)=>!k(((e,t)=>J(e,(e=>e[t])))(e,t)),Le=(e,t)=>delete e[t],we=(e,t)=>g(de.entries(e),(([e,s])=>t(s,e))),ve=e=>fe(e)&&v(ce(e)),Ie=ae((e=>{let t,s,n,o=100,a=W(),r=W(),l=1;const d=W(),c=W(),[u,h,g]=ie((()=>U)),L=W(),I=W(),R=[],p=[],b=(t,s)=>{l=0,e.transaction((()=>{const[n,o]=H(L,s);j(n,((s,n)=>j(s,((s,o)=>j(s,((s,a)=>_(e,n,o,a,s[t]))))))),j(o,((s,n)=>ee(e,n,s[t])))})),l=1},C=e=>{q(L,e),q(I,e),h(c,[e])},m=(e,t)=>f(((e,t)=>e.splice(0,t))(e,t??w(e)),C),V=()=>m(R,w(R)-o),E=()=>J(t,(()=>{S(R,t),V(),m(p),t=void 0,n=1})),A=()=>{t=T(R),n=1},M=e.addCellListener(null,null,null,((e,t,s,n,o,r)=>{if(l){E();const e=G(a,t,W),l=G(e,s,W),i=G(l,n,(()=>[r,void 0]));i[1]=o,i[0]===o&&z(q(l,n))&&z(q(e,s))&&z(q(a,t))&&A(),O()}})),D=e.addValueListener(null,((e,t,s,n)=>{if(l){E();const e=G(r,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&z(q(r,t))&&A(),O()}})),x=(e="")=>(k(t)&&(t=""+s++,q(L,t,[a,r]),B(t,e),a=W(),r=W(),n=1),t),F=()=>{v(R)||(((e,...t)=>{e.unshift(...t)})(p,x()),b(0,t),t=T(R),n=1)},N=()=>{v(p)||(S(R,t),t=y(p),b(1,t),n=1)},O=()=>{n&&(h(d),n=0)},P=e=>{const t=x(e);return O(),t},B=(e,t)=>(K(e)&&H(I,e)!==t&&(q(I,e,t),h(c,[e])),U),K=e=>Q(L,e),U={setSize:e=>(o=e,V(),U),addCheckpoint:P,setCheckpoint:B,getStore:()=>e,getCheckpointIds:()=>[[...R],t,[...p]],forEachCheckpoint:e=>$(I,e),hasCheckpoint:K,getCheckpoint:e=>H(I,e),goBackward:()=>(F(),O(),U),goForward:()=>(N(),O(),U),goTo:e=>{const s=i(R,e)?F:i(p,e)?N:null;for(;!k(s)&&e!=t;)s();return O(),U},addCheckpointIdsListener:e=>u(e,d),addCheckpointListener:(e,t)=>u(t,c,[e]),delListener:e=>(g(e),U),clear:()=>(m(R),m(p),k(t)||C(t),t=void 0,s=0,P(),U),destroy:()=>{e.delListener(M),e.delListener(D)},getListenerStats:()=>({})};return he(U.clear())})),Re=(e,t)=>e<t?-1:1,Se=ae((e=>{const t=W(),s=W(),[n,o,a,r,i,d,c,,f,L,w]=ne(e,W,(e=>k(e)?"":D(e)?g(e,l):l(e))),[v,I,R]=ie((()=>T)),S=(t,s,n)=>{const o=i(t);j(n,((t,n)=>s(n,(s=>j(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},T={setIndexDefinition:(e,n,o,a,r,l=Re)=>{const i=k(r)?void 0:([e],[t])=>r(e,t);return f(e,n,((n,o,r,f,g,L)=>{let w=0;const v=te(),R=te(),S=d(e);if(j(o,(([e,t],s)=>{const n=te(e),o=te(t);j(n,(e=>P(o,e)?P(n,e):0)),j(n,(e=>{se(v,e),J(H(S,e),(t=>{P(t,s),z(t)&&(q(S,e),w=1)}))})),j(o,(e=>{se(v,e),Q(S,e)||(q(S,e,te()),w=1),se(H(S,e),s),k(a)||se(R,e)}))})),n(),z(g)||(L?$(S,(e=>se(R,e))):$(r,(e=>J(H(f,e),(e=>se(R,e))))),j(R,(e=>{const t=(t,s)=>l(H(g,t),H(g,s),e),s=[...H(S,e)];u(s,t)||(q(S,e,te(h(s,t))),se(v,e))}))),(w||L)&&!k(i)){const t=[...S];u(t,i)||(c(e,W(h(t,i))),w=1)}w&&I(t,[e]),j(v,(t=>I(s,[e,t])))}),oe(o),J(a,oe)),T},delIndexDefinition:e=>(L(e),T),getStore:n,getIndexIds:o,forEachIndex:e=>a(((t,s)=>e(t,(e=>S(t,e,s))))),forEachSlice:(e,t)=>S(e,t,d(e)),hasIndex:r,hasSlice:(e,t)=>Q(d(e),t),getTableId:i,getSliceIds:e=>B(d(e)),getSliceRowIds:(e,t)=>N(H(d(e),t)),addSliceIdsListener:(e,s)=>v(s,t,[e]),addSliceRowIdsListener:(e,t,n)=>v(n,s,[e,t]),delListener:e=>(R(e),T),destroy:w,getListenerStats:()=>({})};return he(T)})),Te=W([["avg",[(e,t)=>L(e)/t,(e,t,s)=>e+(t-e)/(s+1),(e,t,s)=>e+(e-t)/(s-1),(e,t,s,n)=>e+(t-s)/n]],["max",[e=>C(...e),(e,t)=>C(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:C(t,e)]],["min",[e=>m(...e),(e,t)=>m(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:m(t,e)]],["sum",[e=>L(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),ye=(e,t,s,n,o,a=!1)=>{if(z(s))return;const[r,l,i,d]=o;return a||=k(e),j(n,(([s,n])=>{a||(e=k(s)?l?.(e,n,t++):k(n)?i?.(e,s,t--):d?.(e,n,s,t),a||=k(e))})),a?r(N(s),F(s)):e},pe=ae((e=>{const t=W(),[s,n,o,a,r,l,i,,d,c,u]=ne(e,x,(e=>isNaN(e)||k(e)||!0===e||!1===e||""===e?void 0:1*e)),[h,f,g]=ie((()=>L)),L={setMetricDefinition:(e,s,n,o,a,r,c)=>{const u=M(n)?[n,a,r,c]:H(Te,n)??H(Te,"sum");return d(e,s,((s,n,o,a,r,d)=>{const c=l(e),h=F(a);d||=k(c),s();let g=ye(c,h,a,n,u,d);V(g)||(g=void 0),g!=c&&(i(e,g),f(t,[e],g,c))}),oe(o,1)),L},delMetricDefinition:e=>(c(e),L),getStore:s,getMetricIds:n,forEachMetric:o,hasMetric:a,getTableId:r,getMetric:l,addMetricListener:(e,s)=>h(s,t,[e]),delListener:e=>(g(e),L),destroy:u,getListenerStats:()=>({})};return he(L)})),be=(e,t,s,n,o)=>{let a,r,l=0;const i={load:async(s,n)=>{if(2!=l){l=1;const o=await t();k(o)||""==o?e.transaction((()=>e.setTables(s).setValues(n))):e.setJson(o),l=0}return i},startAutoLoad:async(e,t)=>(i.stopAutoLoad(),await i.load(e,t),n(i.load),i),stopAutoLoad:()=>(o(),i),save:async()=>(1!=l&&(l=2,await s(e.getJson()),l=0),i),startAutoSave:async()=>(await i.stopAutoSave().save(),a=e.addTablesListener(i.save),r=e.addValuesListener(i.save),i),stopAutoSave:()=>(J(a,e.delListener),J(r,e.delListener),i),getStore:()=>e,destroy:()=>i.stopAutoLoad().stopAutoSave(),getStats:()=>({})};return he(i)},Ce=globalThis.window,me=(e,t,s)=>{let n;return be(e,(async()=>s.getItem(t)),(async e=>s.setItem(t,e)),(e=>{n=n=>{n.storageArea===s&&n.key===t&&e()},Ce.addEventListener("storage",n)}),(()=>{Ce.removeEventListener("storage",n),n=void 0}))},Ve=(e,t)=>me(e,t,localStorage),Ee=(e,t)=>me(e,t,sessionStorage),ke=(s,n)=>{let o;return be(s,(async()=>{try{return await e.readFile(n,"utf8")}catch{}}),(async t=>{try{await e.writeFile(n,t,"utf8")}catch{}}),(e=>{o=t(n,e)}),(()=>{o?.close(),o=void 0}))},Je=e=>e.headers.get("ETag"),Ae=(e,t,s,n)=>{let o,a;return be(e,(async()=>{const e=await fetch(t);return a=Je(e),e.text()}),(async e=>await fetch(s,{method:"POST",headers:{"Content-Type":"application/json"},body:e})),(e=>{o=setInterval((async()=>{const s=await fetch(t,{method:"HEAD"}),n=Je(s);k(a)||k(n)||n==a||(a=n,e())}),1e3*n)}),(()=>{J(o,clearInterval),o=void 0}))},Me=ae((e=>{const t=e.createStore,[s,n,o,a,r,,,l,,i,c,u,h]=ne(e,(()=>!0),x),g=t(),L=t(),I=W(),T=(e,t,...s)=>f(s,(s=>se(G(G(I,t,W),e,te),s))),y=e=>{J(H(I,e),(e=>{$(e,((e,t)=>j(t,(t=>e.delListener(t))))),O(e)})),f([L,g],(t=>t.delTable(e)))},p=(e,t,s)=>T(t,e,t.addWillFinishTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),b={setQueryDefinition:(t,s,n)=>{l(t,s),y(t);const o=[],a=[[null,[s,null,null,[],W()]]],r=[],i=[],c=[];n({select:(e,t)=>{const s=M(e)?[w(o)+"",e]:[k(t)?e:t,s=>s(e,t)];return S(o,s),{as:e=>s[0]=e}},join:(e,t,s)=>{const n=k(s)||M(t)?null:t,o=k(n)?t:s,r=[e,[e,n,M(o)?o:e=>e(o),[],W()]];return S(a,r),{as:e=>r[0]=e}},where:(e,t,s)=>S(r,M(e)?e:k(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const a=[e,[e,M(t)?[t,s,n,o]:H(Te,t)??[(e,t)=>t]]];return S(i,a),{as:e=>a[0]=e}},having:(e,t)=>S(c,M(e)?e:s=>s(e)===t)});const I=W(o);if(z(I))return b;const R=W(a);$(R,((e,[,t])=>J(H(R,t),(({3:t})=>k(e)?0:S(t,e)))));const C=W(i);let m=g;if(z(C)&&v(c))m=L;else{p(t,m,L);const e=W();$(C,((t,[s,n])=>se(G(e,s,te),[t,n])));const s=te();$(I,(t=>Q(e,t)?0:se(s,t)));const n=W(),o=(s,n,o,a)=>J(s,(([r,l,i,u])=>{$(n,((t,[s])=>{const n=G(r,t,W),l=H(n,o),i=a?void 0:s;if(l!==i){const s=te([[l,i]]),a=F(n);q(n,o,i),j(H(e,t),(([e,t])=>{const o=ye(u[e],a,n,s,t);u[e]=k(Z(o))?null:o}))}})),z(l)||!d(c,(e=>e((e=>u[e]))))?L.delRow(t,i):k(i)?s[2]=L.addRow(t,u):L.setRow(t,i,u)}));T(m,t,m.addRowListener(t,null,((a,r,l,i)=>{const d=[],c=[],u=W(),h=m.hasRow(t,l);let f=!h;j(s,(e=>{const[s,n,o]=i(t,l,e);S(d,n),S(c,o),f||=s})),$(e,(e=>{const[s,,n]=i(t,l,e);(f||s)&&q(u,e,[n])})),f&&o(Y(n,d,void 0,(([,e])=>(P(e,l),z(e)))),u,l,1),h&&o(Y(n,c,(()=>{const e={};return j(s,(s=>e[s]=m.getCell(t,l,s))),[W(),te(),void 0,e]}),(([,e])=>{se(e,l)})),u,l)})))}p(t,e,m);const V=(n,o,a,l)=>{const i=t=>e.getCell(o,a,t);f(l,(s=>{const[o,,a,r,l]=H(R,s),d=a?.(i,n),[c,f]=H(l,n)??[];d!=c&&(k(f)||h(t,f),q(l,n,k(d)?null:[d,...u(t,1,e.addRowListener(o,d,(()=>V(n,o,d,r))))]))})),(n=>{const o=(t,o)=>e.getCell(...k(o)?[s,n,t]:t===s?[s,n,o]:[H(R,t)?.[0],H(H(R,t)?.[4],n)?.[0],o]);m.transaction((()=>d(r,(e=>e(o)))?$(I,((e,s)=>_(m,t,n,e,s(o,n)))):m.delRow(t,n)))})(n)},{3:E}=H(R,null);return m.transaction((()=>u(t,1,e.addRowListener(s,null,((n,o,a)=>{e.hasRow(s,a)?V(a,s,a,E):(m.delRow(t,a),j(R,(({4:e})=>J(H(e,a),(([,s])=>{h(t,s),q(e,a)})))))}))))),b},delQueryDefinition:e=>(y(e),i(e),b),getStore:s,getQueryIds:n,forEachQuery:o,hasQuery:a,getTableId:r,delListener:e=>(L.delListener(e),b),destroy:c,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=L.getListenerStats();return n}};return we({Table:[1,1],RowIds:[0,1],SortedRowIds:[0,5],Row:[1,2],CellIds:[0,2],Cell:[1,3]},(([e,t],s)=>{f(e?["get","has","forEach"]:["get"],(e=>b[e+"Result"+s]=(...t)=>L[e+s](...t))),b["addResult"+s+"Listener"]=(...e)=>L["add"+s+"Listener"](...R(e,0,t),((s,...n)=>e[t](b,...n)))})),he(b)})),De=ae((e=>{const t=W(),s=W(),n=W(),o=W(),[a,r,l,i,d,c,,,u,h,f]=ne(e,(()=>[W(),W(),W(),W()]),(e=>k(e)?void 0:e+"")),[g,L,w]=ie((()=>S)),v=(e,t,s)=>J(c(e),(([n,,o])=>{if(!Q(o,t)){const a=te();if(d(e)!=R(e))se(a,t);else{let e=t;for(;!k(e)&&!Q(a,e);)se(a,e),e=H(n,e)}if(s)return a;q(o,t,a)}return H(o,t)})),I=(e,t)=>J(c(e),(([,,e])=>q(e,t))),R=e=>H(t,e),S={setRelationshipDefinition:(e,a,r,l)=>(q(t,e,r),u(e,a,((t,a)=>{const r=te(),l=te(),i=te(),[d,u]=c(e);j(a,(([t,s],n)=>{k(t)||(se(l,t),J(H(u,t),(e=>{P(e,n),z(e)&&q(u,t)}))),k(s)||(se(l,s),Q(u,s)||q(u,s,te()),se(H(u,s),n)),se(r,n),q(d,n,s),$(H(o,e),(t=>{Q(v(e,t),n)&&se(i,t)}))})),t(),j(r,(t=>L(s,[e,t]))),j(l,(t=>L(n,[e,t]))),j(i,(t=>{I(e,t),L(o,[e,t])}))}),oe(l)),S),delRelationshipDefinition:e=>(q(t,e),h(e),S),getStore:a,getRelationshipIds:r,forEachRelationship:t=>l((s=>t(s,(t=>e.forEachRow(d(s),t))))),hasRelationship:i,getLocalTableId:d,getRemoteTableId:R,getRemoteRowId:(e,t)=>H(c(e)?.[0],t),getLocalRowIds:(e,t)=>N(H(c(e)?.[1],t)),getLinkedRowIds:(e,t)=>k(c(e))?[t]:N(v(e,t,!0)),addRemoteRowIdListener:(e,t,n)=>g(n,s,[e,t]),addLocalRowIdsListener:(e,t,s)=>g(s,n,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(v(e,t),g(s,o,[e,t])),delListener:e=>(I(...w(e)),S),destroy:f,getListenerStats:()=>({})};return he(S)})),xe=e=>[e,e],Fe=()=>[W(),W()],Qe=(e,t,s,n=q)=>{const o=(a=e=>!ge(t,e),B(e).filter(a));var a;return f(ce(t),(n=>s(e,n,t[n]))),f(o,(t=>n(e,t))),e},ze=(e,t,s)=>k(e)||!fe(e)||ve(e)||ue(e)?(s?.(),!1):(we(e,((s,n)=>{t(s,n)||Le(e,n)})),!ve(e)),Ne=(e,t,s)=>q(e,t,H(e,t)==-s?void 0:s),Oe=()=>{let e,t,s,n,o=0;const r=W(),d=W(),u=W(),L=W(),w=W(),v=W(),I=W(),T=W(),y=W(),C=W(),m=W(),V=W(),E=te(),D=W(),x=W(),F=W(),N=Fe(),Y=Fe(),ne=Fe(),oe=Fe(),ae=Fe(),re=Fe(),de=Fe(),ce=Fe(),ue=Fe(),fe=Fe(),Ie=Fe(),Se=Fe(),Te=Fe(),ye=Fe(),[pe,be,Ce,me]=ie((()=>Pt)),Ve=e=>{if(!ze(e,((e,t)=>i(["type","default"],t))))return!1;const t=e.type;return!(!A(t)&&t!=a||(Z(e.default)!=t&&Le(e,"default"),0))},Ee=(t,s)=>(!e||Q(y,s)||ct(s))&&ze(t,((e,t)=>ke(s,t,e)),(()=>ct(s))),ke=(e,t,s,n)=>ze(n?s:De(s,e,t),((n,o)=>J(Je(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>ct(e,t))),Je=(t,s,n,o)=>e?J(H(H(y,t),n),(e=>Z(o)!=e.type?ct(t,s,n,o,e.default):o),(()=>ct(t,s,n,o))):k(Z(o))?ct(t,s,n,o):o,Ae=(e,t)=>ze(t?e:je(e),((t,s)=>J(Me(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>ut())),Me=(e,s)=>t?J(H(m,e),(t=>Z(s)!=t.type?ut(e,s,t.default):s),(()=>ut(e,s))):k(Z(s))?ut(e,s):s,De=(e,t,s)=>(J(H(C,t),(([n,o])=>{j(n,((t,s)=>{ge(e,s)||(e[s]=t)})),j(o,(n=>{ge(e,n)||ct(t,s,n)}))})),e),je=e=>(t&&(j(V,((t,s)=>{ge(e,s)||(e[s]=t)})),j(E,(t=>{ge(e,t)||ut(t)}))),e),Pe=e=>Qe(y,e,((e,t,s)=>{const n=W(),o=te();Qe(G(y,t,W),s,((e,t,s)=>{q(e,t,s),J(s.default,(e=>q(n,t,e)),(()=>se(o,t)))})),q(C,t,[n,o])}),((e,t)=>{q(y,t),q(C,t)})),We=e=>Qe(m,e,((e,t,s)=>{q(m,t,s),J(s.default,(e=>q(V,t,e)),(()=>se(E,t)))}),((e,t)=>{q(m,t),q(V,t),P(E,t)})),Be=e=>ve(e)?xt():kt(e),He=e=>Qe(x,e,((e,t,s)=>$e(t,s)),((e,t)=>et(t))),$e=(e,t)=>Qe(G(x,e,(()=>(ot(e,1),W()))),t,((t,s,n)=>qe(e,t,s,n)),((t,s)=>tt(e,t,s))),qe=(e,t,s,n,o)=>Qe(G(t,s,(()=>(at(e,s,1),W()))),n,((t,n,o)=>Ge(e,s,t,n,o)),((n,a)=>st(e,t,s,n,a,o))),Ge=(e,t,s,n,o)=>{Q(s,n)||rt(e,t,n,1);const a=H(s,n);o!==a&&(lt(e,t,n,a,o),q(s,n,o))},Ke=(e,t,s,n,o)=>J(H(t,s),(t=>Ge(e,s,t,n,o)),(()=>qe(e,t,s,De({[n]:o},e,s)))),Ue=e=>ve(e)?Ft():Jt(e),Xe=e=>Qe(F,e,((e,t,s)=>Ye(t,s)),((e,t)=>nt(t))),Ye=(e,t)=>{Q(F,e)||it(e,1);const s=H(F,e);t!==s&&(dt(e,s,t),q(F,e,t))},Ze=e=>{const[t]=G(D,e,le),s=t();return Q(H(x,e),s)?Ze(e):s},_e=e=>H(x,e)??$e(e,{}),et=e=>$e(e,{}),tt=(e,t,s)=>{const[,n]=G(D,e,le);n(s),qe(e,t,s,{},!0)},st=(e,t,s,n,o,a)=>{const r=H(H(C,e)?.[0],o);if(!k(r)&&!a)return Ge(e,s,n,o,r);const l=t=>{lt(e,s,t,H(n,t)),rt(e,s,t,-1),q(n,t)};k(r)?l(o):$(n,l),z(n)&&(at(e,s,-1),z(q(t,s))&&(ot(e,-1),q(x,e),q(D,e)))},nt=e=>{const t=H(V,e);if(!k(t))return Ye(e,t);dt(e,H(F,e)),it(e,-1),q(F,e)},ot=(e,t)=>Ne(r,e,t),at=(e,t,s)=>Ne(G(d,e,W),t,s),rt=(e,t,s,n)=>Ne(G(G(u,e,W),t,W),s,n),lt=(e,t,s,n,o)=>G(G(G(L,e,W),t,W),s,(()=>[n,0]))[1]=o,it=(e,t)=>Ne(w,e,t),dt=(e,t,s)=>G(v,e,(()=>[t,0]))[1]=s,ct=(e,t,s,n,o)=>(S(G(G(G(I,e,W),t,W),s,(()=>[])),n),o),ut=(e,t,s)=>(S(G(T,e,(()=>[])),t),s),ht=(e,t,s)=>J(H(H(H(L,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xe(Ct(e,t,s))])),ft=e=>J(H(v,e),(([e,t])=>[!0,e,t]),(()=>[!1,...xe(Et(e))])),gt=e=>z(I)||z(ue[e])?0:j(e?U(I,X):I,((t,s)=>j(t,((t,n)=>j(t,((t,o)=>be(ue[e],[s,n,o],t))))))),Lt=e=>z(T)||z(fe[e])?0:j(e?U(T):T,((t,s)=>be(fe[e],[s],t))),wt=(e,t,s)=>{if(!z(t))return be(e,s),1},vt=e=>{const t=z(ae[e]),s=z(de[e])&&z(oe[e])&&t&&z(Y[e]),n=z(ce[e])&&z(re[e])&&z(ne[e])&&z(N[e]);if(!s||!n){const o=e?[U(r),X(d),U(u,X),U(L,X)]:[r,d,u,L];if(!s){j(o[2],((t,s)=>j(t,((t,n)=>wt(de[e],t,[s,n])))));const s=te();j(o[1],((n,o)=>{wt(oe[e],n,[o])&&!t&&(be(ae[e],[o,null]),se(s,o))})),t||j(o[3],((t,n)=>{if(!Q(s,n)){const s=te();j(t,(e=>j(e,(([t,n],o)=>n!==t?se(s,o):P(e,o))))),j(s,(t=>be(ae[e],[n,t])))}})),wt(Y[e],o[0])}if(!n){let t;j(o[3],((s,n)=>{let o;j(s,((s,a)=>{let r;j(s,(([s,l],i)=>{l!==s&&(be(ce[e],[n,a,i],l,s,ht),t=o=r=1)})),r&&be(re[e],[n,a],ht)})),o&&be(ne[e],[n],ht)})),t&&be(N[e],void 0,ht)}}},It=e=>{const t=z(Se[e]),s=z(Te[e])&&z(Ie[e]);if(!t||!s){const n=e?[U(w),U(v)]:[w,v];if(t||wt(Se[e],n[0]),!s){let t;j(n[1],(([s,n],o)=>{n!==s&&(be(Te[e],[o],n,s,ft),t=1)})),t&&be(Ie[e],void 0,ft)}}},Rt=(e,...t)=>(Nt((()=>e(...g(t,l)))),Pt),St=()=>K(x,(e=>K(e,K))),Tt=()=>B(x),yt=e=>B(H(x,l(e))),pt=(e,t,s,n=0,o)=>{return g(R(h((a=H(x,l(e)),r=(e,s)=>[k(t)?s:H(e,l(t)),s],g([...a?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>Re(e,t)*(s?-1:1))),n,k(o)?o:n+o),(([,e])=>e));var a,r},bt=(e,t)=>B(H(H(x,l(e)),l(t))),Ct=(e,t,s)=>H(H(H(x,l(e)),l(t)),l(s)),mt=()=>K(F),Vt=()=>B(F),Et=e=>H(F,l(e)),kt=e=>Rt((()=>(e=>ze(e,Ee,ct))(e)?He(e):0)),Jt=e=>Rt((()=>Ae(e)?Xe(e):0)),At=e=>{try{Be(b(e))}catch{}return Pt},Mt=t=>Rt((()=>{if((e=ze(t,(e=>ze(e,Ve))))&&(Pe(t),!z(x))){const e=St();xt(),kt(e)}})),Dt=e=>Rt((()=>{if(t=(e=>ze(e,Ve))(e)){const s=mt();zt(),Ft(),t=!0,We(e),Jt(s)}})),xt=()=>Rt((()=>He({}))),Ft=()=>Rt((()=>Xe({}))),Qt=()=>Rt((()=>{Pe({}),e=!1})),zt=()=>Rt((()=>{We({}),t=!1})),Nt=(e,t)=>{if(-1==o)return;Ot();const s=e();return jt(t),s},Ot=()=>(o++,Pt),jt=e=>(o>0&&(o--,0==o&&(s=!z(L),n=!z(v),o=1,gt(1),s&&vt(1),Lt(1),n&&It(1),o=-1,e?.(K(L,(e=>K(e,(e=>K(e,(e=>[...e]),(([e,t])=>e===t))),ve)),ve),K(I,(e=>K(e,K))),K(v,(e=>[...e]),(([e,t])=>e===t)),K(T))&&(o=1,j(L,((e,t)=>j(e,((e,s)=>j(e,(([e],n)=>_(Pt,t,s,n,e))))))),j(v,(([e],t)=>ee(Pt,t,e))),o=-1,s=n=!1),be(ye[0],void 0,s,n),gt(0),s&&vt(0),Lt(0),n&&It(0),be(ye[1],void 0,s,n),o=0,f([r,d,u,L,I,w,v,T],O))),Pt),Pt={getTables:St,getTableIds:Tt,getTable:e=>K(H(x,l(e)),K),getRowIds:yt,getSortedRowIds:pt,getRow:(e,t)=>K(H(H(x,l(e)),l(t))),getCellIds:bt,getCell:Ct,getValues:mt,getValueIds:Vt,getValue:Et,hasTables:()=>!z(x),hasTable:e=>Q(x,l(e)),hasRow:(e,t)=>Q(H(x,l(e)),l(t)),hasCell:(e,t,s)=>Q(H(H(x,l(e)),l(t)),l(s)),hasValues:()=>!z(F),hasValue:e=>Q(F,l(e)),getTablesJson:()=>p(x),getValuesJson:()=>p(F),getJson:()=>p([x,F]),getTablesSchemaJson:()=>p(y),getValuesSchemaJson:()=>p(m),getSchemaJson:()=>p([y,m]),setTables:kt,setTable:(e,t)=>Rt((e=>Ee(t,e)?$e(e,t):0),e),setRow:(e,t,s)=>Rt(((e,t)=>ke(e,t,s)?qe(e,_e(e),t,s):0),e,t),addRow:(e,t)=>Nt((()=>{let s;return ke(e,s,t)&&(e=l(e),qe(e,_e(e),s=Ze(e),t)),s})),setPartialRow:(e,t,s)=>Rt(((e,t)=>{if(ke(e,t,s,1)){const n=_e(e);we(s,((s,o)=>Ke(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>Rt(((e,t,s)=>J(Je(e,t,s,M(n)?n(Ct(e,t,s)):n),(n=>Ke(e,_e(e),t,s,n)))),e,t,s),setValues:Jt,setPartialValues:e=>Rt((()=>Ae(e,1)?we(e,((e,t)=>Ye(t,e))):0)),setValue:(e,t)=>Rt((e=>J(Me(e,M(t)?t(Et(e)):t),(t=>Ye(e,t)))),e),setTablesJson:At,setValuesJson:e=>{try{Ue(b(e))}catch{}return Pt},setJson:e=>{try{const[t,s]=b(e);Be(t),Ue(s)}catch{At(e)}return Pt},setTablesSchema:Mt,setValuesSchema:Dt,setSchema:(e,t)=>Rt((()=>{Mt(e),Dt(t)})),delTables:xt,delTable:e=>Rt((e=>Q(x,e)?et(e):0),e),delRow:(e,t)=>Rt(((e,t)=>J(H(x,e),(s=>Q(s,t)?tt(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Rt(((e,t,s)=>J(H(x,e),(o=>J(H(o,t),(a=>Q(a,s)?st(e,o,t,a,s,n):0))))),e,t,s),delValues:Ft,delValue:e=>Rt((e=>Q(F,e)?nt(e):0),e),delTablesSchema:Qt,delValuesSchema:zt,delSchema:()=>Rt((()=>{Qt(),zt()})),transaction:Nt,startTransaction:Ot,finishTransaction:jt,forEachTable:e=>j(x,((t,s)=>e(s,(e=>j(t,((t,s)=>e(s,(e=>$(t,e))))))))),forEachRow:(e,t)=>j(H(x,l(e)),((e,s)=>t(s,(t=>$(e,t))))),forEachCell:(e,t,s)=>$(H(H(x,l(e)),l(t)),s),forEachValue:e=>$(F,e),addSortedRowIdsListener:(e,t,s,n,o,a,r)=>{let l=pt(e,t,s,n,o);return pe((()=>{const r=pt(e,t,s,n,o);c(r,l)||(l=r,a(Pt,e,t,s,n,o,l))}),ae[r?1:0],[e,t],[Tt])},addWillFinishTransactionListener:e=>pe(e,ye[0]),addDidFinishTransactionListener:e=>pe(e,ye[1]),callListener:e=>(me(e),Pt),delListener:e=>(Ce(e),Pt),getListenerStats:()=>({}),createStore:Oe};return we({Tables:[0,N],TableIds:[0,Y],Table:[1,ne,[Tt]],RowIds:[1,oe,[Tt]],Row:[2,re,[Tt,yt]],CellIds:[2,de,[Tt,yt]],Cell:[3,ce,[Tt,yt,bt],e=>xe(Ct(...e))],InvalidCell:[3,ue],Values:[0,Ie],ValueIds:[0,Se],Value:[1,Te,[Vt],e=>xe(Et(e[0]))],InvalidValue:[1,fe]},(([e,t,s,n],o)=>{Pt["add"+o+"Listener"]=(...o)=>pe(o[e],t[o[e+1]?1:0],e>0?R(o,0,e):void 0,s,n)})),he(Pt)};export{Ie as createCheckpoints,be as createCustomPersister,ke as createFilePersister,Se as createIndexes,Ve as createLocalPersister,pe as createMetrics,Me as createQueries,De as createRelationships,Ae as createRemotePersister,Ee as createSessionPersister,Oe as createStore,Re as defaultSorter};
Binary file
package/lib/tools.d.ts CHANGED
@@ -442,6 +442,26 @@ export interface Tools {
442
442
  * @since v2.2.0
443
443
  */
444
444
  getPrettyStoreApi(storeName: string): Promise<[string, string]>;
445
+
446
+ /**
447
+ * The getStore method returns a reference to the underlying Store that is
448
+ * backing this Tools object.
449
+ *
450
+ * @returns A reference to the Store.
451
+ * @example
452
+ * This example creates a Tools object against a newly-created Store and
453
+ * then gets its reference in order to update its data.
454
+ *
455
+ * ```js
456
+ * const tools = createTools(createStore());
457
+ * tools.getStore().setCell('species', 'dog', 'price', 5);
458
+ * console.log(tools.getStoreStats().totalCells);
459
+ * // -> 1
460
+ * ```
461
+ * @category Getter
462
+ * @since v3.0.0
463
+ */
464
+ getStore(): Store;
445
465
  }
446
466
 
447
467
  /* eslint-disable max-len */
package/lib/tools.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,a="",l=e(a),t=e(!0),s=e(0),o="type",n="default",d=(e,a)=>e.every(a),r=(e,a)=>e.sort(a),$=(e,a)=>e.forEach(a),i=(e,a)=>e.map(a),u=e=>e.length,I=e=>0==u(e),c=(e,...a)=>e.push(...a),b=e=>e.pop(),w=(e,...a)=>e.unshift(...a),h=e=>e.shift(),g=JSON.parse,C=isFinite,V=(e,a)=>e instanceof a,T=e=>null==e,f=e=>e==l||e==t,R=a=>e(a)==l,m=e=>Array.isArray(e),v=a=>{const l=e(a);return f(l)||l==s&&C(a)?l:void 0},p=(e,a)=>e?.has(a)??!1,L=e=>[...e?.values()??[]],y=(e,a)=>e?.forEach(a),k=(e,a)=>e?.delete(a),S=e=>new Map(e),J=(e,a)=>e?.get(a),E=(e,a)=>y(e,((e,l)=>a(l,e))),A=(e,a)=>i([...e?.entries()??[]],(([e,l])=>a(l,e))),j=(e,a,l)=>T(l)?(k(e,a),e):e?.set(a,l),O=(e,a,l)=>(p(e,a)||j(e,a,l()),J(e,a)),x=e=>new Set(m(e)||T(e)?e:[e]),D=(e,a)=>e?.add(a),N=e=>[e,e],G=()=>[S(),S()],z=/[^A-Za-z]+/,F=/[^A-Za-z0-9]+/,P=/^( *)\/\*\* *(.*?) *\*\/$/gm,W=(e,a,l)=>e.substring(a,l),M=e=>e.toUpperCase(),Z=e=>e.toLowerCase(),_=(e,a,l,t=1)=>{const s=`${a}${1==t?"":t}`;return p(e,s)?_(e,a,l,t+1):(j(e,s,l),s)},Q=e=>e.replace(P,((e,a,l)=>{const t=77-U(a);return`${a}/**\n${l.replace(RegExp(`([^\\n]{1,${t}})(\\s|$)`,"g"),a+" * $1\n")}${a} */`})),U=e=>e.length,q=(e,l=a)=>e.join(l),B=e=>e.flat(1e3),H=(e,a=0)=>q(i(e.split(F),((e,l)=>(l>0||a?M:Z)(W(e,0,1))+W(e,1)))),K=e=>M(q((e&&!z.test(e[0])?e:" "+e).split(F),"_")),X=e=>`/** ${e}. */`,Y=()=>{const e=G(),l=S(),t=S(),s=S();return[(...e)=>q(B(e),"\n"),(a,l,...t)=>$(t,(t=>D(O(e[a],l,x),t))),(e,a,t)=>_(l,e,[a,t]),(e,a,l,s,o,n="")=>_(t,e,[a,l,s,o,n]),(e,a,l)=>_(s,e,m(l)?[`(${a}) => {`,l,"}"]:[`(${a}) => ${l}`]),(e,a)=>J(s,e)===a?e:_(s,e,a),l=>[...r(A(e[l],((e,a)=>`import {${q(r(L(e)),", ")}} from '${a}';`))),a],()=>A(l,(([e,l],t)=>[X(l),`export type ${t} = ${e};`,a])),e=>A(t,(([l,t,s,o,n],d)=>{const r=e?[`${d}: ${n}(${l}): ${t} => ${s},`]:[`${d}${n}(${l}): ${t};`];return e||w(r,X(o)),c(r,a),r})),()=>A(s,((e,l)=>(e=m(e)?e:[e],c(e,b(e)+";"),[`const ${l} = ${h(e)}`,e,a])))]},ee=Object,ae=ee.keys,le=ee.freeze,te=e=>V(e,ee)&&e.constructor==ee,se=(e,a)=>i(ee.entries(e),(([e,l])=>a(l,e))),oe=e=>te(e)&&I(ae(e)),ne="the Store",de="A function for",re="export",$e="listener",ie=" | undefined",ue=`Registers a ${$e} that will be called`,Ie="Represents",ce=" => void",be="the end of the transaction",we="the specified Row",he="a string serialization of",ge=(e=0,a=0)=>`the ${De[e]}content of${a?" "+ne:""}`,Ce=(e,a=0,l=0)=>`${Oe[e]} ${ge(a,1)}${l?" when set":""}`,Ve=(e,a=0)=>`${Ie} a Row when ${a?"s":"g"}etting ${ge()} the '${e}' Table`,Te=(e,a,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in ${a}`,fe=(e,a)=>`Calls a function for each ${e} in ${a}`,Re=(e,a=ne)=>`Gets whether ${e} exists in ${a}`,me=e=>"A function that takes "+e,ve=(e,a=0)=>`${de} listening to changes to ${xe[e]} in ${xe[a]}`,pe=(e,l,t=0)=>`${ue} whenever ${e} in ${l} change`+(t?a:"s"),Le=e=>`the '${e}' Table`,ye=e=>`${we} in ${Le(e)}`,ke=e=>`the '${e}' Cell`,Se=e=>`the '${e}' Value`,Je=(e,a=0)=>`${Oe[a]} ${ge()} ${Le(e)}`,Ee=(e,a=0)=>`${Oe[a]} ${ge()} ${ye(e)}`,Ae=(e,a,l=0)=>`${Oe[l]} ${ke(a)} for ${ye(e)}`,je=(e,a=0)=>`${Oe[a]} ${Se(e)}`,Oe=["Gets","Sets","Sets part of","Deletes",Ie,"Gets "+he,"Sets "+he,ue+" whenever"],xe=[ne,"Tables","Table Ids","a Table","Row Ids","a Row","Cell Ids","a Cell","invalid Cell changes","Values","Value Ids","a Value","invalid Value changes"],De=["","tabular ","keyed value "],Ne=["DoRollback","Id","IdOrNull","Ids","Json","Store"],Ge=(e,l=a,t=a)=>`store.${e}(${l})${t?" as "+t:a}`,ze=(e,l=a)=>`fluent(() => ${Ge(e,l)})`,Fe=(e,l=a,t=a)=>`store.${e}(${l?l+", ":a}proxy(${$e})${t?", "+t:a})`,Pe=(e,l,s)=>{if(oe(e)&&oe(l))return N(a);const[d,r,$,i,u,I,b,w,h,g]=Y(),C=`./${H(s)}.d`,V=H(s,1),f=H(V),m=[],v=S(),p=l=>se(e,((e,t)=>l(t,O(v,t,(()=>{const e=H(t,1);return[$(e+"Table",`{[rowId: Id]: ${e}Row}`,`${Ie} the '${t}' Table`),$(e+"Row",`{${q(y(t,((e,l,t)=>`'${e}'${T(t)?"?":a}: ${l};`))," ")}}`,Ve(t)),$(e+"RowWhenSet",`{${q(y(t,((e,a)=>`'${e}'?: ${a};`))," ")}}`,Ve(t,1)),$(e+"CellId",q(y(t,(e=>`'${e}'`))," | "),`A Cell Id for the '${t}' Table`),$(e+"CellCallback",`(...[cellId, cell]: ${q(y(t,((e,a)=>`[cellId: '${e}', cell: ${a}]`))," | ")})${ce}`,me(`a Cell Id and value from a Row in the '${t}' Table`)),$(e+"RowCallback",`(rowId: Id, forEachCell: (cellCallback: ${e}CellCallback)${ce})${ce}`,me(`a Row Id from the '${t}' Table, and a Cell iterator`))]})),H(t,1),I(K(t),`'${t}'`)))),y=(a,l)=>se(e[a],((e,a)=>l(a,e[o],e[n],I(K(a),`'${a}'`),H(a,1)))),k=e=>se(l,((a,l)=>e(l,a[o],a[n],I(K(l),`'${l}'`),H(l,1))));if(r(1,C,V,`create${V} as create${V}Decl`),!oe(e)){const e=$("Tables",`{${q(p(((e,a)=>`'${e}'?: ${a[0]};`))," ")}}`,Ce(4,1)),l=$("TableId",q(p((e=>`'${e}'`))," | "),"A Table Id in "+ne),s=$("TableCallback",`(...[tableId, rowCallback]: ${q(p(((e,a)=>`[tableId: '${e}', forEachRow: (rowCallback: ${a[5]})${ce}]`))," | ")})${ce}`,me("a Table Id, and a Row iterator")),d=$("GetCellChange",`(...[tableId, rowId, cellId]: ${q(p(((e,a)=>`[tableId: '${e}', rowId: Id, cellId: ${a[3]}]`))," | ")}) => CellChange`,de+" returning information about any Cell's changes during a transaction"),u=$("TablesListener",`(${f}: ${V}, getCellChange: ${d}${ie})${ce}`,ve(1)),b=$("TableIdsListener",`(${f}: ${V})${ce}`,ve(2)),w=$("TableListener",`(${f}: ${V}, tableId: ${l}, getCellChange: ${d}${ie})${ce}`,ve(3)),h=$("RowIdsListener",`(${f}: ${V}, tableId: ${l})`+ce,ve(4,3)),g=$("RowListener",`(${f}: ${V}, tableId: ${l}, rowId: Id, getCellChange: ${d}${ie})${ce}`,ve(5,3)),v=$("CellIdsListener",`(${f}: ${V}, tableId: ${l}, rowId: Id)`+ce,ve(6,5)),k=$("CellListener",`(...[${f}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${q(B(p((e=>y(e,((a,l)=>`[${f}: ${V}, tableId: '${e}', rowId: Id, cellId: '${a}', newCell: ${l}${ie}, oldCell: ${l}${ie}, getCellChange: ${d} | undefined]`)))))," | ")})${ce}`,ve(7,5)),J=$("InvalidCellListener",`(${f}: ${V}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[])${ce}`,ve(8));i("hasTables",a,t,Ge("hasTables"),Re("any Table")),i("getTables",a,e,Ge("getTables"),Ce(0,1)),i("setTables","tables: "+e,V,ze("setTables","tables"),Ce(1,1)),i("delTables",a,V,ze("delTables"),Ce(3,1)),i("getTableIds",a,l+"[]",Ge("getTableIds",a,l+"[]"),Te("Table",ne)),i("forEachTable","tableCallback: "+s,"void",Ge("forEachTable","tableCallback as any"),fe("Table",ne));const A=S();p(((e,[l,s,o,n,d,$],u,I)=>{r(1,C,l,s,o,n,d,$),i(`has${u}Table`,a,t,Ge("hasTable",I),Re(Le(e))),i(`get${u}Table`,a,l,Ge("getTable",I,l),Je(e)),i(`set${u}Table`,"table: "+l,V,ze("setTable",I+", table"),Je(e,1)),i(`del${u}Table`,a,V,ze("delTable",I),Je(e,3)),i(`get${u}RowIds`,a,"Ids",Ge("getRowIds",I),Te("Row",Le(e))),i(`get${u}SortedRowIds`,`cellId?: ${n}, descending?: boolean, offset?: number, limit?: number`,"Ids",Ge("getSortedRowIds",I+", cellId, descending, offset, limit"),Te("Row",Le(e),1)),i(`forEach${u}Row`,"rowCallback: "+$,"void",Ge("forEachRow",I+", rowCallback as any"),fe("Row",Le(e))),i(`has${u}Row`,"rowId: Id",t,Ge("hasRow",I+", rowId"),Re(we,Le(e))),i(`get${u}Row`,"rowId: Id",s,Ge("getRow",I+", rowId",s),Ee(e)),i(`set${u}Row`,"rowId: Id, row: "+o,V,ze("setRow",I+", rowId, row"),Ee(e,1)),i(`add${u}Row`,"row: "+o,"Id"+ie,Ge("addRow",I+", row"),"Adds a new Row to "+Le(e)),i(`set${u}PartialRow`,"rowId: Id, partialRow: "+o,V,ze("setPartialRow",I+", rowId, partialRow"),Ee(e,2)),i(`del${u}Row`,"rowId: Id",V,ze("delRow",I+", rowId"),Ee(e,3)),i(`get${u}CellIds`,"rowId: Id",n+"[]",Ge("getCellIds",I+", rowId",n+"[]"),Te("Cell",ye(e))),i(`forEach${u}Cell`,"rowId: Id, cellCallback: "+d,"void",Ge("forEachCell",I+", rowId, cellCallback as any"),fe("Cell",ye(e))),y(e,((l,s,o,n,d)=>{const r="Map"+H(s,1);j(A,s,r),i(`has${u}${d}Cell`,"rowId: Id",t,Ge("hasCell",`${I}, rowId, ${n}`),Re(ke(l),ye(e)));const $=`${s}${T(o)?ie:a}`;i(`get${u}${d}Cell`,"rowId: Id",$,Ge("getCell",`${I}, rowId, ${n}`,$),Ae(e,l)),i(`set${u}${d}Cell`,`rowId: Id, cell: ${s} | ${r}`,V,ze("setCell",`${I}, rowId, ${n}, cell as any`),Ae(e,l,1)),i(`del${u}${d}Cell`,"rowId: Id",V,ze("delCell",`${I}, rowId, ${n}`),Ae(e,l,3))}))})),i("getTablesJson",a,"Json",Ge("getTablesJson"),Ce(5,1)),i("setTablesJson","tablesJson: Json",V,ze("setTablesJson","tablesJson"),Ce(6,1)),i("addTablesListener",`${$e}: ${u}, mutator?: boolean`,"Id",Fe("addTablesListener",a,"mutator"),Ce(7,1)+" changes"),i("addTableIdsListener",`${$e}: ${b}, mutator?: boolean`,"Id",Fe("addTableIdsListener",a,"mutator"),pe("the Table Ids",ne,1)),i("addTableListener",`tableId: ${l} | null, ${$e}: ${w}, mutator?: boolean`,"Id",Fe("addTableListener","tableId","mutator"),pe("a Table",ne)),i("addRowIdsListener",`tableId: ${l} | null, ${$e}: ${h}, mutator?: boolean`,"Id",Fe("addRowIdsListener","tableId","mutator"),pe("the Row Ids","a Table",1)),i("addRowListener",`tableId: ${l} | null, rowId: IdOrNull, ${$e}: ${g}, mutator?: boolean`,"Id",Fe("addRowListener","tableId, rowId","mutator"),pe("a Row","a Table")),i("addCellIdsListener",`tableId: ${l} | null, rowId: IdOrNull, ${$e}: ${v}, mutator?: boolean`,"Id",Fe("addCellIdsListener","tableId, rowId","mutator"),pe("the Cell Ids","a Row",1)),i("addCellListener",`tableId: ${l} | null, rowId: IdOrNull, cellId: ${q(p(((e,a)=>a[3]))," | ")} | null, ${$e}: ${k}, mutator?: boolean`,"Id",Fe("addCellListener","tableId, rowId, cellId","mutator"),pe("a Cell","a Row")),i("addInvalidCellListener",`tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull, ${$e}: ${J}, mutator?: boolean`,"Id",Fe("addInvalidCellListener","tableId, rowId, cellId","mutator"),ue+" whenever an invalid Cell change was attempted"),E(A,((e,a)=>$(a,`(cell: ${e}${ie}) => ${e}`,`Takes a ${e} Cell value and returns another`))),r(1,C,e,l,s,u,b,w,h,g,v,k,J,...L(A)),r(0,"tinybase","CellChange"),c(m,".setTablesSchema({",B(p(((e,l,t,s)=>[`[${s}]: {`,...y(e,((e,l,t,s)=>`[${s}]: {[${I(K(o),`'${o}'`)}]: ${I(K(l),`'${l}'`)}${T(t)?a:`, [${I(K(n),`'${n}'`)}]: ${R(t)?I(K(t),`'${t}'`):t}`}},`)),"},"]))),"})")}if(!oe(l)){const e=$("Values",`{${q(k(((e,l,t)=>`'${e}'${T(t)?"?":a}: ${l};`))," ")}}`,Ce(4,2)),l=$("ValuesWhenSet",`{${q(k(((e,a)=>`'${e}'?: ${a};`))," ")}}`,Ce(4,2,1)),s=$("ValueId",q(k((e=>`'${e}'`))," | "),"A Value Id in "+ne),d=$("ValueCallback",`(...[valueId, rowCallback]: ${q(k(((e,a)=>`[valueId: '${e}', value: ${a}]`))," | ")})${ce}`,me("a Value Id, and value")),u=$("GetValueChange",`(valueId: ${s}) => ValueChange`,de+" returning information about any Value's changes during a transaction"),b=$("ValuesListener",`(${f}: ${V}, getValueChange: ${u}${ie})`+ce,ve(9)),w=$("ValueIdsListener",`(${f}: ${V})${ce}`,ve(10)),h=$("ValueListener",`(...[${f}, valueId, newValue, oldValue, getValueChange]: ${q(k(((e,a)=>`[${f}: ${V}, valueId: '${e}', newValue: ${a}${ie}, oldValue: ${a}${ie}, getValueChange: ${u} | undefined]`))," | ")})${ce}`,ve(11)),g=$("InvalidValueListener",`(${f}: ${V}, valueId: Id, invalidValues: any[])${ce}`,ve(12));i("hasValues",a,t,Ge("hasValues"),Re("any Value")),i("getValues",a,e,Ge("getValues"),Ce(0,2)),i("setValues","values: "+l,V,ze("setValues","values"),Ce(1,2)),i("setPartialValues","partialValues: "+l,V,ze("setPartialValues","partialValues"),Ce(2,2)),i("delValues",a,V,ze("delValues"),Ce(3,2)),i("getValueIds",a,s+"[]",Ge("getValueIds",a,s+"[]"),Te("Value",ne)),i("forEachValue","valueCallback: "+d,"void",Ge("forEachValue","valueCallback as any"),fe("Value",ne)),k(((e,l,s,o,n)=>{i(`has${n}Value`,a,t,Ge("hasValue",o),Re(Se(e))),i(`get${n}Value`,a,l,Ge("getValue",o,l),je(e)),i(`set${n}Value`,"value: "+l,V,ze("setValue",o+", value"),je(e,1)),i(`del${n}Value`,a,V,ze("delValue",o),je(e,3))})),i("getValuesJson",a,"Json",Ge("getValuesJson"),Ce(5,2)),i("setValuesJson","valuesJson: Json",V,ze("setValuesJson","valuesJson"),Ce(6,2)),i("addValuesListener",`${$e}: ${b}, mutator?: boolean`,"Id",Fe("addValuesListener",a,"mutator"),Ce(7,2)+" changes"),i("addValueIdsListener",`${$e}: ${w}, mutator?: boolean`,"Id",Fe("addValueIdsListener",a,"mutator"),pe("the Value Ids",ne,1)),i("addValueListener",`valueId: ${s} | null, ${$e}: ${h}, mutator?: boolean`,"Id",Fe("addValueListener","valueId","mutator"),pe("a Value",ne)),i("addInvalidValueListener",`valueId: IdOrNull, ${$e}: ${g}, mutator?: boolean`,"Id",Fe("addInvalidValueListener","valueId","mutator"),ue+" whenever an invalid Cell change was attempted"),r(1,C,e,s,d,b,w,h,g),r(0,"tinybase","ValueChange"),c(m,".setValuesSchema({",k(((e,l,t,s)=>[`[${s}]: {[${I(K(o),`'${o}'`)}]: ${I(K(l),`'${l}'`)}${T(t)?a:`, [${I(K(n),`'${n}'`)}]: ${R(t)?I(K(t),`'${t}'`):t}`}},`])),"})")}r(0,"tinybase",...Ne);const J=$("TransactionListener",`(${f}: ${V}, cellsTouched: boolean, valuesTouched: boolean)${ce}`,de+" listening to the completion of a transaction");return i("getJson",a,"Json",Ge("getJson"),Ce(5)),i("setJson","json: Json",V,ze("setJson","json"),Ce(6)),i("transaction","actions: () => Return, doRollback?: DoRollback","Return",Ge("transaction","actions, doRollback"),"Execute a transaction to make multiple mutations","<Return>"),i("startTransaction",a,V,ze("startTransaction"),"Explicitly starts a transaction"),i("finishTransaction","doRollback?: DoRollback,",V,ze("finishTransaction","doRollback"),"Explicitly finishes a transaction"),i("addWillFinishTransactionListener",`${$e}: ${J}`,"Id",Fe("addWillFinishTransactionListener"),`${ue} just before ${be}`),i("addDidFinishTransactionListener",`${$e}: ${J}`,"Id",Fe("addDidFinishTransactionListener"),`${ue} just after ${be}`),i("callListener",$e+"Id: Id",V,ze("callListener",$e+"Id"),`Manually provoke a ${$e} to be called`),i("delListener",$e+"Id: Id",V,ze("delListener",$e+"Id"),`Remove a ${$e} that was previously added to ${ne}`),i("getStore",a,"Store","store",Oe[0]+" the underlying Store object"),r(1,"tinybase","createStore",...Ne),r(1,C,V,`create${V} as create${V}Decl`,J),I("store",["createStore()",...m]),u("fluent","actions: () => Store",["actions();",`return ${f};`]),u("proxy",$e+": any",`(_: Store, ...args: any[]) => ${$e}(${f}, ...args)`),I(f,["{",...h(1),"}"]),[d(...b(0),...w(),`${re} interface ${V} {`,...h(0),"}",a,X(`Creates a ${V} object`),`${re} function create${V}(): ${V};`),d(...b(1),`${re} const create${V}: typeof create${V}Decl = () => {`,...g(),`return Object.freeze(${f});`,"};")]},We={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Me=(e=>{const a=new WeakMap;return l=>(a.has(l)||a.set(l,e(l)),a.get(l))})((e=>{const a=()=>{const a=g(e.getTablesSchemaJson());return!oe(a)||d(e.getTableIds(),(l=>{const t=e.getRowIds(l),s=S();if(d(t,(a=>d(e.getCellIds(l,a),(t=>{const o=e.getCell(l,a,t),n=O(s,t,(()=>[v(o),S(),[0],0])),[d,r,[$]]=n,i=O(r,o,(()=>0))+1;return i>$&&(n[2]=[i,o]),j(r,o,i),n[3]++,d==v(o)})))))return a[l]={},y(s,(([e,,[,s],d],r)=>{a[l][r]={[o]:e,...d==u(t)?{[n]:s}:{}}})),1}))?a:{}},l=()=>{const a=g(e.getValuesSchemaJson());return oe(a)&&e.forEachValue(((e,l)=>{a[e]={[o]:v(l)}})),a},t=e=>Pe(a(),l(),e),s=async e=>{let a;try{a=(await import("prettier")).format}catch{a=e=>e}return i(t(e),(e=>Q(a(e,We))))};return le({getStoreStats:a=>{let l=0,t=0,s=0;const o={};return e.forEachTable(((e,n)=>{l++;let d=0,r=0;const $={};n(((e,l)=>{d++;let t=0;l((()=>t++)),r+=t,a&&($[e]={rowCells:t})})),t+=d,s+=r,a&&(o[e]={tableRows:d,tableCells:r,rows:$})})),{totalTables:l,totalRows:t,totalCells:s,totalValues:u(e.getValueIds()),jsonLength:U(e.getJson()),...a?{detail:{tables:o}}:{}}},getStoreTablesSchema:a,getStoreValuesSchema:l,getStoreApi:t,getPrettyStoreApi:s})}));export{Me as createTools};
1
+ const e=e=>typeof e,a="",l=e(a),t=e(!0),s=e(0),o="type",n="default",d=(e,a)=>e.every(a),r=(e,a)=>e.sort(a),$=(e,a)=>e.forEach(a),i=(e,a)=>e.map(a),u=e=>e.length,I=e=>0==u(e),c=(e,...a)=>e.push(...a),b=e=>e.pop(),w=(e,...a)=>e.unshift(...a),h=e=>e.shift(),g=JSON.parse,C=isFinite,V=(e,a)=>e instanceof a,T=e=>null==e,f=e=>e==l||e==t,R=a=>e(a)==l,m=e=>Array.isArray(e),v=a=>{const l=e(a);return f(l)||l==s&&C(a)?l:void 0},p=(e,a)=>e?.has(a)??!1,L=e=>[...e?.values()??[]],y=(e,a)=>e?.forEach(a),S=(e,a)=>e?.delete(a),k=e=>new Map(e),J=(e,a)=>e?.get(a),E=(e,a)=>y(e,((e,l)=>a(l,e))),A=(e,a)=>i([...e?.entries()??[]],(([e,l])=>a(l,e))),j=(e,a,l)=>T(l)?(S(e,a),e):e?.set(a,l),O=(e,a,l)=>(p(e,a)||j(e,a,l()),J(e,a)),x=e=>new Set(m(e)||T(e)?e:[e]),D=(e,a)=>e?.add(a),N=e=>[e,e],G=()=>[k(),k()],z=/[^A-Za-z]+/,F=/[^A-Za-z0-9]+/,P=/^( *)\/\*\* *(.*?) *\*\/$/gm,W=(e,a,l)=>e.substring(a,l),M=e=>e.toUpperCase(),Z=e=>e.toLowerCase(),_=(e,a,l,t=1)=>{const s=`${a}${1==t?"":t}`;return p(e,s)?_(e,a,l,t+1):(j(e,s,l),s)},Q=e=>e.replace(P,((e,a,l)=>{const t=77-U(a);return`${a}/**\n${l.replace(RegExp(`([^\\n]{1,${t}})(\\s|$)`,"g"),a+" * $1\n")}${a} */`})),U=e=>e.length,q=(e,l=a)=>e.join(l),B=e=>e.flat(1e3),H=(e,a=0)=>q(i(e.split(F),((e,l)=>(l>0||a?M:Z)(W(e,0,1))+W(e,1)))),K=e=>M(q((e&&!z.test(e[0])?e:" "+e).split(F),"_")),X=e=>`/** ${e}. */`,Y=()=>{const e=G(),l=k(),t=k(),s=k();return[(...e)=>q(B(e),"\n"),(a,l,...t)=>$(t,(t=>D(O(e[a],l,x),t))),(e,a,t)=>_(l,e,[a,t]),(e,a,l,s,o,n="")=>_(t,e,[a,l,s,o,n]),(e,a,l)=>_(s,e,m(l)?[`(${a}) => {`,l,"}"]:[`(${a}) => ${l}`]),(e,a)=>J(s,e)===a?e:_(s,e,a),l=>[...r(A(e[l],((e,a)=>`import {${q(r(L(e)),", ")}} from '${a}';`))),a],()=>A(l,(([e,l],t)=>[X(l),`export type ${t} = ${e};`,a])),e=>A(t,(([l,t,s,o,n],d)=>{const r=e?[`${d}: ${n}(${l}): ${t} => ${s},`]:[`${d}${n}(${l}): ${t};`];return e||w(r,X(o)),c(r,a),r})),()=>A(s,((e,l)=>(e=m(e)?e:[e],c(e,b(e)+";"),[`const ${l} = ${h(e)}`,e,a])))]},ee=Object,ae=ee.keys,le=ee.freeze,te=e=>V(e,ee)&&e.constructor==ee,se=(e,a)=>i(ee.entries(e),(([e,l])=>a(l,e))),oe=e=>te(e)&&I(ae(e)),ne="the Store",de="A function for",re="export",$e="listener",ie=" | undefined",ue=`Registers a ${$e} that will be called`,Ie="Represents",ce=" => void",be="the end of the transaction",we="the specified Row",he="a string serialization of",ge=(e=0,a=0)=>`the ${De[e]}content of${a?" "+ne:""}`,Ce=(e,a=0,l=0)=>`${Oe[e]} ${ge(a,1)}${l?" when set":""}`,Ve=(e,a=0)=>`${Ie} a Row when ${a?"s":"g"}etting ${ge()} the '${e}' Table`,Te=(e,a,l=0)=>`Gets ${l?"sorted, paginated":"the"} Ids of the ${e}s in ${a}`,fe=(e,a)=>`Calls a function for each ${e} in ${a}`,Re=(e,a=ne)=>`Gets whether ${e} exists in ${a}`,me=e=>"A function that takes "+e,ve=(e,a=0)=>`${de} listening to changes to ${xe[e]} in ${xe[a]}`,pe=(e,l,t=0)=>`${ue} whenever ${e} in ${l} change`+(t?a:"s"),Le=e=>`the '${e}' Table`,ye=e=>`${we} in ${Le(e)}`,Se=e=>`the '${e}' Cell`,ke=e=>`the '${e}' Value`,Je=(e,a=0)=>`${Oe[a]} ${ge()} ${Le(e)}`,Ee=(e,a=0)=>`${Oe[a]} ${ge()} ${ye(e)}`,Ae=(e,a,l=0)=>`${Oe[l]} ${Se(a)} for ${ye(e)}`,je=(e,a=0)=>`${Oe[a]} ${ke(e)}`,Oe=["Gets","Sets","Sets part of","Deletes",Ie,"Gets "+he,"Sets "+he,ue+" whenever"],xe=[ne,"Tables","Table Ids","a Table","Row Ids","a Row","Cell Ids","a Cell","invalid Cell changes","Values","Value Ids","a Value","invalid Value changes"],De=["","tabular ","keyed value "],Ne=["DoRollback","Id","IdOrNull","Ids","Json","Store"],Ge=(e,l=a,t=a)=>`store.${e}(${l})${t?" as "+t:a}`,ze=(e,l=a)=>`fluent(() => ${Ge(e,l)})`,Fe=(e,l=a,t=a)=>`store.${e}(${l?l+", ":a}proxy(${$e})${t?", "+t:a})`,Pe=(e,l,s)=>{if(oe(e)&&oe(l))return N(a);const[d,r,$,i,u,I,b,w,h,g]=Y(),C=`./${H(s)}.d`,V=H(s,1),f=H(V),m=[],v=k(),p=l=>se(e,((e,t)=>l(t,O(v,t,(()=>{const e=H(t,1);return[$(e+"Table",`{[rowId: Id]: ${e}Row}`,`${Ie} the '${t}' Table`),$(e+"Row",`{${q(y(t,((e,l,t)=>`'${e}'${T(t)?"?":a}: ${l};`))," ")}}`,Ve(t)),$(e+"RowWhenSet",`{${q(y(t,((e,a)=>`'${e}'?: ${a};`))," ")}}`,Ve(t,1)),$(e+"CellId",q(y(t,(e=>`'${e}'`))," | "),`A Cell Id for the '${t}' Table`),$(e+"CellCallback",`(...[cellId, cell]: ${q(y(t,((e,a)=>`[cellId: '${e}', cell: ${a}]`))," | ")})${ce}`,me(`a Cell Id and value from a Row in the '${t}' Table`)),$(e+"RowCallback",`(rowId: Id, forEachCell: (cellCallback: ${e}CellCallback)${ce})${ce}`,me(`a Row Id from the '${t}' Table, and a Cell iterator`))]})),H(t,1),I(K(t),`'${t}'`)))),y=(a,l)=>se(e[a],((e,a)=>l(a,e[o],e[n],I(K(a),`'${a}'`),H(a,1)))),S=e=>se(l,((a,l)=>e(l,a[o],a[n],I(K(l),`'${l}'`),H(l,1))));if(r(1,C,V,`create${V} as create${V}Decl`),!oe(e)){const e=$("Tables",`{${q(p(((e,a)=>`'${e}'?: ${a[0]};`))," ")}}`,Ce(4,1)),l=$("TableId",q(p((e=>`'${e}'`))," | "),"A Table Id in "+ne),s=$("TableCallback",`(...[tableId, rowCallback]: ${q(p(((e,a)=>`[tableId: '${e}', forEachRow: (rowCallback: ${a[5]})${ce}]`))," | ")})${ce}`,me("a Table Id, and a Row iterator")),d=$("GetCellChange",`(...[tableId, rowId, cellId]: ${q(p(((e,a)=>`[tableId: '${e}', rowId: Id, cellId: ${a[3]}]`))," | ")}) => CellChange`,de+" returning information about any Cell's changes during a transaction"),u=$("TablesListener",`(${f}: ${V}, getCellChange: ${d}${ie})${ce}`,ve(1)),b=$("TableIdsListener",`(${f}: ${V})${ce}`,ve(2)),w=$("TableListener",`(${f}: ${V}, tableId: ${l}, getCellChange: ${d}${ie})${ce}`,ve(3)),h=$("RowIdsListener",`(${f}: ${V}, tableId: ${l})`+ce,ve(4,3)),g=$("RowListener",`(${f}: ${V}, tableId: ${l}, rowId: Id, getCellChange: ${d}${ie})${ce}`,ve(5,3)),v=$("CellIdsListener",`(${f}: ${V}, tableId: ${l}, rowId: Id)`+ce,ve(6,5)),S=$("CellListener",`(...[${f}, tableId, rowId, cellId, newCell, oldCell, getCellChange]: ${q(B(p((e=>y(e,((a,l)=>`[${f}: ${V}, tableId: '${e}', rowId: Id, cellId: '${a}', newCell: ${l}${ie}, oldCell: ${l}${ie}, getCellChange: ${d} | undefined]`)))))," | ")})${ce}`,ve(7,5)),J=$("InvalidCellListener",`(${f}: ${V}, tableId: Id, rowId: Id, cellId: Id, invalidCells: any[])${ce}`,ve(8));i("hasTables",a,t,Ge("hasTables"),Re("any Table")),i("getTables",a,e,Ge("getTables"),Ce(0,1)),i("setTables","tables: "+e,V,ze("setTables","tables"),Ce(1,1)),i("delTables",a,V,ze("delTables"),Ce(3,1)),i("getTableIds",a,l+"[]",Ge("getTableIds",a,l+"[]"),Te("Table",ne)),i("forEachTable","tableCallback: "+s,"void",Ge("forEachTable","tableCallback as any"),fe("Table",ne));const A=k();p(((e,[l,s,o,n,d,$],u,I)=>{r(1,C,l,s,o,n,d,$),i(`has${u}Table`,a,t,Ge("hasTable",I),Re(Le(e))),i(`get${u}Table`,a,l,Ge("getTable",I,l),Je(e)),i(`set${u}Table`,"table: "+l,V,ze("setTable",I+", table"),Je(e,1)),i(`del${u}Table`,a,V,ze("delTable",I),Je(e,3)),i(`get${u}RowIds`,a,"Ids",Ge("getRowIds",I),Te("Row",Le(e))),i(`get${u}SortedRowIds`,`cellId?: ${n}, descending?: boolean, offset?: number, limit?: number`,"Ids",Ge("getSortedRowIds",I+", cellId, descending, offset, limit"),Te("Row",Le(e),1)),i(`forEach${u}Row`,"rowCallback: "+$,"void",Ge("forEachRow",I+", rowCallback as any"),fe("Row",Le(e))),i(`has${u}Row`,"rowId: Id",t,Ge("hasRow",I+", rowId"),Re(we,Le(e))),i(`get${u}Row`,"rowId: Id",s,Ge("getRow",I+", rowId",s),Ee(e)),i(`set${u}Row`,"rowId: Id, row: "+o,V,ze("setRow",I+", rowId, row"),Ee(e,1)),i(`add${u}Row`,"row: "+o,"Id"+ie,Ge("addRow",I+", row"),"Adds a new Row to "+Le(e)),i(`set${u}PartialRow`,"rowId: Id, partialRow: "+o,V,ze("setPartialRow",I+", rowId, partialRow"),Ee(e,2)),i(`del${u}Row`,"rowId: Id",V,ze("delRow",I+", rowId"),Ee(e,3)),i(`get${u}CellIds`,"rowId: Id",n+"[]",Ge("getCellIds",I+", rowId",n+"[]"),Te("Cell",ye(e))),i(`forEach${u}Cell`,"rowId: Id, cellCallback: "+d,"void",Ge("forEachCell",I+", rowId, cellCallback as any"),fe("Cell",ye(e))),y(e,((l,s,o,n,d)=>{const r="Map"+H(s,1);j(A,s,r),i(`has${u}${d}Cell`,"rowId: Id",t,Ge("hasCell",`${I}, rowId, ${n}`),Re(Se(l),ye(e)));const $=`${s}${T(o)?ie:a}`;i(`get${u}${d}Cell`,"rowId: Id",$,Ge("getCell",`${I}, rowId, ${n}`,$),Ae(e,l)),i(`set${u}${d}Cell`,`rowId: Id, cell: ${s} | ${r}`,V,ze("setCell",`${I}, rowId, ${n}, cell as any`),Ae(e,l,1)),i(`del${u}${d}Cell`,"rowId: Id",V,ze("delCell",`${I}, rowId, ${n}`),Ae(e,l,3))}))})),i("getTablesJson",a,"Json",Ge("getTablesJson"),Ce(5,1)),i("setTablesJson","tablesJson: Json",V,ze("setTablesJson","tablesJson"),Ce(6,1)),i("addTablesListener",`${$e}: ${u}, mutator?: boolean`,"Id",Fe("addTablesListener",a,"mutator"),Ce(7,1)+" changes"),i("addTableIdsListener",`${$e}: ${b}, mutator?: boolean`,"Id",Fe("addTableIdsListener",a,"mutator"),pe("the Table Ids",ne,1)),i("addTableListener",`tableId: ${l} | null, ${$e}: ${w}, mutator?: boolean`,"Id",Fe("addTableListener","tableId","mutator"),pe("a Table",ne)),i("addRowIdsListener",`tableId: ${l} | null, ${$e}: ${h}, mutator?: boolean`,"Id",Fe("addRowIdsListener","tableId","mutator"),pe("the Row Ids","a Table",1)),i("addRowListener",`tableId: ${l} | null, rowId: IdOrNull, ${$e}: ${g}, mutator?: boolean`,"Id",Fe("addRowListener","tableId, rowId","mutator"),pe("a Row","a Table")),i("addCellIdsListener",`tableId: ${l} | null, rowId: IdOrNull, ${$e}: ${v}, mutator?: boolean`,"Id",Fe("addCellIdsListener","tableId, rowId","mutator"),pe("the Cell Ids","a Row",1)),i("addCellListener",`tableId: ${l} | null, rowId: IdOrNull, cellId: ${q(p(((e,a)=>a[3]))," | ")} | null, ${$e}: ${S}, mutator?: boolean`,"Id",Fe("addCellListener","tableId, rowId, cellId","mutator"),pe("a Cell","a Row")),i("addInvalidCellListener",`tableId: IdOrNull, rowId: IdOrNull, cellId: IdOrNull, ${$e}: ${J}, mutator?: boolean`,"Id",Fe("addInvalidCellListener","tableId, rowId, cellId","mutator"),ue+" whenever an invalid Cell change was attempted"),E(A,((e,a)=>$(a,`(cell: ${e}${ie}) => ${e}`,`Takes a ${e} Cell value and returns another`))),r(1,C,e,l,s,u,b,w,h,g,v,S,J,...L(A)),r(0,"tinybase","CellChange"),c(m,".setTablesSchema({",B(p(((e,l,t,s)=>[`[${s}]: {`,...y(e,((e,l,t,s)=>`[${s}]: {[${I(K(o),`'${o}'`)}]: ${I(K(l),`'${l}'`)}${T(t)?a:`, [${I(K(n),`'${n}'`)}]: ${R(t)?I(K(t),`'${t}'`):t}`}},`)),"},"]))),"})")}if(!oe(l)){const e=$("Values",`{${q(S(((e,l,t)=>`'${e}'${T(t)?"?":a}: ${l};`))," ")}}`,Ce(4,2)),l=$("ValuesWhenSet",`{${q(S(((e,a)=>`'${e}'?: ${a};`))," ")}}`,Ce(4,2,1)),s=$("ValueId",q(S((e=>`'${e}'`))," | "),"A Value Id in "+ne),d=$("ValueCallback",`(...[valueId, rowCallback]: ${q(S(((e,a)=>`[valueId: '${e}', value: ${a}]`))," | ")})${ce}`,me("a Value Id, and value")),u=$("GetValueChange",`(valueId: ${s}) => ValueChange`,de+" returning information about any Value's changes during a transaction"),b=$("ValuesListener",`(${f}: ${V}, getValueChange: ${u}${ie})`+ce,ve(9)),w=$("ValueIdsListener",`(${f}: ${V})${ce}`,ve(10)),h=$("ValueListener",`(...[${f}, valueId, newValue, oldValue, getValueChange]: ${q(S(((e,a)=>`[${f}: ${V}, valueId: '${e}', newValue: ${a}${ie}, oldValue: ${a}${ie}, getValueChange: ${u} | undefined]`))," | ")})${ce}`,ve(11)),g=$("InvalidValueListener",`(${f}: ${V}, valueId: Id, invalidValues: any[])${ce}`,ve(12));i("hasValues",a,t,Ge("hasValues"),Re("any Value")),i("getValues",a,e,Ge("getValues"),Ce(0,2)),i("setValues","values: "+l,V,ze("setValues","values"),Ce(1,2)),i("setPartialValues","partialValues: "+l,V,ze("setPartialValues","partialValues"),Ce(2,2)),i("delValues",a,V,ze("delValues"),Ce(3,2)),i("getValueIds",a,s+"[]",Ge("getValueIds",a,s+"[]"),Te("Value",ne)),i("forEachValue","valueCallback: "+d,"void",Ge("forEachValue","valueCallback as any"),fe("Value",ne)),S(((e,l,s,o,n)=>{i(`has${n}Value`,a,t,Ge("hasValue",o),Re(ke(e))),i(`get${n}Value`,a,l,Ge("getValue",o,l),je(e)),i(`set${n}Value`,"value: "+l,V,ze("setValue",o+", value"),je(e,1)),i(`del${n}Value`,a,V,ze("delValue",o),je(e,3))})),i("getValuesJson",a,"Json",Ge("getValuesJson"),Ce(5,2)),i("setValuesJson","valuesJson: Json",V,ze("setValuesJson","valuesJson"),Ce(6,2)),i("addValuesListener",`${$e}: ${b}, mutator?: boolean`,"Id",Fe("addValuesListener",a,"mutator"),Ce(7,2)+" changes"),i("addValueIdsListener",`${$e}: ${w}, mutator?: boolean`,"Id",Fe("addValueIdsListener",a,"mutator"),pe("the Value Ids",ne,1)),i("addValueListener",`valueId: ${s} | null, ${$e}: ${h}, mutator?: boolean`,"Id",Fe("addValueListener","valueId","mutator"),pe("a Value",ne)),i("addInvalidValueListener",`valueId: IdOrNull, ${$e}: ${g}, mutator?: boolean`,"Id",Fe("addInvalidValueListener","valueId","mutator"),ue+" whenever an invalid Cell change was attempted"),r(1,C,e,s,d,b,w,h,g),r(0,"tinybase","ValueChange"),c(m,".setValuesSchema({",S(((e,l,t,s)=>[`[${s}]: {[${I(K(o),`'${o}'`)}]: ${I(K(l),`'${l}'`)}${T(t)?a:`, [${I(K(n),`'${n}'`)}]: ${R(t)?I(K(t),`'${t}'`):t}`}},`])),"})")}r(0,"tinybase",...Ne);const J=$("TransactionListener",`(${f}: ${V}, cellsTouched: boolean, valuesTouched: boolean)${ce}`,de+" listening to the completion of a transaction");return i("getJson",a,"Json",Ge("getJson"),Ce(5)),i("setJson","json: Json",V,ze("setJson","json"),Ce(6)),i("transaction","actions: () => Return, doRollback?: DoRollback","Return",Ge("transaction","actions, doRollback"),"Execute a transaction to make multiple mutations","<Return>"),i("startTransaction",a,V,ze("startTransaction"),"Explicitly starts a transaction"),i("finishTransaction","doRollback?: DoRollback,",V,ze("finishTransaction","doRollback"),"Explicitly finishes a transaction"),i("addWillFinishTransactionListener",`${$e}: ${J}`,"Id",Fe("addWillFinishTransactionListener"),`${ue} just before ${be}`),i("addDidFinishTransactionListener",`${$e}: ${J}`,"Id",Fe("addDidFinishTransactionListener"),`${ue} just after ${be}`),i("callListener",$e+"Id: Id",V,ze("callListener",$e+"Id"),`Manually provoke a ${$e} to be called`),i("delListener",$e+"Id: Id",V,ze("delListener",$e+"Id"),`Remove a ${$e} that was previously added to ${ne}`),i("getStore",a,"Store","store",Oe[0]+" the underlying Store object"),r(1,"tinybase","createStore",...Ne),r(1,C,V,`create${V} as create${V}Decl`,J),I("store",["createStore()",...m]),u("fluent","actions: () => Store",["actions();",`return ${f};`]),u("proxy",$e+": any",`(_: Store, ...args: any[]) => ${$e}(${f}, ...args)`),I(f,["{",...h(1),"}"]),[d(...b(0),...w(),`${re} interface ${V} {`,...h(0),"}",a,X(`Creates a ${V} object`),`${re} function create${V}(): ${V};`),d(...b(1),`${re} const create${V}: typeof create${V}Decl = () => {`,...g(),`return Object.freeze(${f});`,"};")]},We={parser:"typescript",singleQuote:!0,trailingComma:"all",bracketSpacing:!1,jsdocSingleLineComment:!1},Me=(e=>{const a=new WeakMap;return l=>(a.has(l)||a.set(l,e(l)),a.get(l))})((e=>{const a=()=>{const a=g(e.getTablesSchemaJson());return!oe(a)||d(e.getTableIds(),(l=>{const t=e.getRowIds(l),s=k();if(d(t,(a=>d(e.getCellIds(l,a),(t=>{const o=e.getCell(l,a,t),n=O(s,t,(()=>[v(o),k(),[0],0])),[d,r,[$]]=n,i=O(r,o,(()=>0))+1;return i>$&&(n[2]=[i,o]),j(r,o,i),n[3]++,d==v(o)})))))return a[l]={},y(s,(([e,,[,s],d],r)=>{a[l][r]={[o]:e,...d==u(t)?{[n]:s}:{}}})),1}))?a:{}},l=()=>{const a=g(e.getValuesSchemaJson());return oe(a)&&e.forEachValue(((e,l)=>{a[e]={[o]:v(l)}})),a},t=e=>Pe(a(),l(),e),s=async e=>{let a;try{a=(await import("prettier")).format}catch{a=e=>e}return i(t(e),(e=>Q(a(e,We))))};return le({getStoreStats:a=>{let l=0,t=0,s=0;const o={};return e.forEachTable(((e,n)=>{l++;let d=0,r=0;const $={};n(((e,l)=>{d++;let t=0;l((()=>t++)),r+=t,a&&($[e]={rowCells:t})})),t+=d,s+=r,a&&(o[e]={tableRows:d,tableCells:r,rows:$})})),{totalTables:l,totalRows:t,totalCells:s,totalValues:u(e.getValueIds()),jsonLength:U(e.getJson()),...a?{detail:{tables:o}}:{}}},getStoreTablesSchema:a,getStoreValuesSchema:l,getStoreApi:t,getPrettyStoreApi:s,getStore:()=>e})}));export{Me as createTools};
package/lib/tools.js.gz CHANGED
Binary file
@@ -114,6 +114,7 @@ export type CellOrUndefined = Cell | undefined;
114
114
  * const values: Values = {open: true, employees: 4};
115
115
  * ```
116
116
  * @category Store
117
+ * @since v3.0.0
117
118
  */
118
119
  export type Values = {[valueId: Id]: Value};
119
120
 
@@ -130,6 +131,7 @@ export type Values = {[valueId: Id]: Value};
130
131
  * const value: Value = 'dog';
131
132
  * ```
132
133
  * @category Store
134
+ * @since v3.0.0
133
135
  */
134
136
  export type Value = string | number | boolean;
135
137
 
@@ -142,6 +144,7 @@ export type Value = string | number | boolean;
142
144
  * state where the Value has since been added.
143
145
  *
144
146
  * @category Store
147
+ * @since v3.0.0
145
148
  */
146
149
  export type ValueOrUndefined = Value | undefined;
147
150
 
@@ -206,6 +209,7 @@ export type CellCallback = (cellId: Id, cell: Cell) => void;
206
209
  * @param valueId The Id of the Value that the callback can operate on.
207
210
  * @param value The Value itself.
208
211
  * @category Callback
212
+ * @since v3.0.0
209
213
  */
210
214
  export type ValueCallback = (valueId: Id, value: Value) => void;
211
215
 
@@ -232,6 +236,7 @@ export type MapCell = (cell: CellOrUndefined) => Cell;
232
236
  *
233
237
  * @param value The current Value to map to a new Value.
234
238
  * @category Callback
239
+ * @since v3.0.0
235
240
  */
236
241
  export type MapValue = (value: ValueOrUndefined) => Value;
237
242
 
@@ -570,6 +575,7 @@ export type ValueIdsListener = (store: Store) => void;
570
575
  * @param getValueChange A function that returns information about any Value's
571
576
  * changes.
572
577
  * @category Listener
578
+ * @since v3.0.0
573
579
  */
574
580
  export type ValueListener = (
575
581
  store: Store,
@@ -2898,6 +2904,33 @@ export interface Store {
2898
2904
  */
2899
2905
  delValuesSchema(): Store;
2900
2906
 
2907
+ /**
2908
+ * The delSchema method lets you remove both the TablesSchema and ValuesSchema
2909
+ * of the Store.
2910
+ *
2911
+ * Prior to v3.0.0, this method removed the TablesSchema only.
2912
+ *
2913
+ * @returns A reference to the Store.
2914
+ * @example
2915
+ * This example removes the TablesSchema and ValuesSchema of a Store.
2916
+ *
2917
+ * ```js
2918
+ * const store = createStore()
2919
+ * .setTablesSchema({
2920
+ * pets: {species: {type: 'string'}},
2921
+ * })
2922
+ * .setValuesSchema({
2923
+ * sold: {type: 'boolean', default: false},
2924
+ * });
2925
+ * store.delSchema();
2926
+ * console.log(store.getSchemaJson());
2927
+ * // -> '[{},{}]'
2928
+ * ```
2929
+ * @category Deleter
2930
+ * @since v3.0.0
2931
+ */
2932
+ delSchema(): Store;
2933
+
2901
2934
  /**
2902
2935
  * The transaction method takes a function that makes multiple mutations to
2903
2936
  * the Store, buffering all calls to the relevant listeners until it
@@ -4388,7 +4421,7 @@ export interface Store {
4388
4421
  */
4389
4422
  addValueListener(
4390
4423
  valueId: IdOrNull,
4391
- listener: CellListener,
4424
+ listener: ValueListener,
4392
4425
  mutator?: boolean,
4393
4426
  ): Id;
4394
4427
 
package/lib/umd/store.js CHANGED
@@ -1 +1 @@
1
- var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),l=t(!0),a=t(0),r=t(t),o="type",c="default",i=e=>s+e,u=(e,t)=>e.forEach(t),d=(e,t)=>e.map(t),f=e=>e.length,h=(e,t,s)=>e.slice(t,s),T=(e,...t)=>e.push(...t),g=e=>JSON.stringify(e,((e,t)=>{return y(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),n={},[...t].reduce(s,n)):t;var s,n})),b=JSON.parse,V=isFinite,y=(e,t)=>e instanceof t,p=e=>null==e,v=(e,t,s)=>p(e)?s?.():t(e),S=e=>e==n||e==l,w=e=>t(e)==r,I=(e,t)=>e?.has(t)??!1,R=e=>p(e)||0==(e=>e.size)(e),m=e=>e.clear(),C=(e,t)=>e?.forEach(t),J=(e,t)=>e?.delete(t),L=e=>new Map(e),E=e=>[...e?.keys()??[]],F=(e,t)=>e?.get(t),x=(e,t)=>C(e,((e,s)=>t(s,e))),z=(e,t,s)=>p(s)?(J(e,t),e):e?.set(t,s),O=(e,t,s)=>(I(e,t)||z(e,t,s()),F(e,t)),j=(e,t,s)=>{const n={},l=t??(e=>e);return C(e,((e,t)=>v(l(e),(e=>s?.(e)?0:n[t]=e)))),n},k=(e,t)=>{const s=L(),n=t??(e=>e);return C(e,((e,t)=>s.set(t,n(e)))),s},A=e=>k(e,k),M=(e,t,s,n,l=0)=>v((s?O:F)(e,t[l],l>f(t)-2?s:L),(a=>{if(l>f(t)-2)return n?.(a)&&z(e,t[l]),a;const r=M(a,t,s,n,l+1);return R(a)&&z(e,t[l]),r})),N=e=>new Set(Array.isArray(e)||p(e)?e:[e]),P=(e,t)=>e?.add(t),B=/^\d+$/,D=()=>{const e=[];let t=0;return[()=>e.shift()??s+t++,t=>{B.test(t)&&f(e)<1e3&&T(e,t)}]},W=Object,$=W.keys,q=W.isFrozen,G=W.freeze,H=e=>y(e,W)&&e.constructor==W,K=(e,t)=>!p(((e,t)=>v(e,(e=>e[t])))(e,t)),Q=(e,t)=>delete e[t],U=(e,t)=>d(W.entries(e),(([e,s])=>t(s,e))),X=e=>{return H(e)&&(t=$(e),0==f(t));var t},Y=e=>[e,e],Z=()=>[L(),L()],_=e=>{const s=t(e);return S(s)||s==a&&V(e)?s:void 0},ee=(e,t,s,n=z)=>{const l=(a=e=>!K(t,e),E(e).filter(a));var a;return u($(t),(n=>s(e,n,t[n]))),u(l,(t=>n(e,t))),e},te=(e,t,s)=>p(e)||!H(e)||X(e)||q(e)?(s?.(),!1):(U(e,((s,n)=>{t(s,n)||Q(e,n)})),!X(e)),se=(e,t,s)=>z(e,t,F(e,t)==-s?void 0:s),ne=()=>{let e,t,n,l,r=0;const V=L(),y=L(),B=L(),W=L(),$=L(),q=L(),H=L(),le=L(),ae=L(),re=L(),oe=L(),ce=L(),ie=N(),ue=L(),de=L(),fe=L(),he=Z(),Te=Z(),ge=Z(),be=Z(),Ve=Z(),ye=Z(),pe=Z(),ve=Z(),Se=Z(),we=Z(),Ie=Z(),Re=Z(),me=Z(),Ce=Z(),[Je,Le,Ee,Fe]=(e=>{let t;const[n,l]=D(),a=L();return[(e,l,r,o=[],c=(()=>[]))=>{t??=Nt;const i=n();return z(a,i,[e,l,r,o,c]),P(M(l,r??[s],N),i),i},(e,n,...l)=>u(((e,t=[s])=>{const n=[],l=(e,s)=>s==f(t)?T(n,e):null===t[s]?C(e,(e=>l(e,s+1))):u([t[s],null],(t=>l(F(e,t),s+1)));return l(e,0),n})(e,n),(e=>C(e,(e=>F(a,e)[0](t,...n??[],...l))))),e=>v(F(a,e),(([,t,n])=>(M(t,n??[s],void 0,(t=>(J(t,e),R(t)?1:0))),z(a,e),l(e),n))),e=>v(F(a,e),(([e,,s=[],n,l])=>{const a=(...r)=>{const o=f(r);o==f(s)?e(t,...r,...l(r)):p(s[o])?u(n[o]?.(...r)??[],(e=>a(...r,e))):a(...r,s[o])};a()}))]})(),xe=e=>{if(!te(e,((e,t)=>[o,c].includes(t))))return!1;const t=e.type;return!(!S(t)&&t!=a||(_(e.default)!=t&&Q(e,c),0))},ze=(t,s)=>(!e||I(ae,s)||ct(s))&&te(t,((e,t)=>Oe(s,t,e)),(()=>ct(s))),Oe=(e,t,s,n)=>te(n?s:Me(s,e,t),((n,l)=>v(je(e,t,l,n),(e=>(s[l]=e,!0)),(()=>!1))),(()=>ct(e,t))),je=(t,s,n,l)=>e?v(F(F(ae,t),n),(e=>_(l)!=e.type?ct(t,s,n,l,e.default):l),(()=>ct(t,s,n,l))):p(_(l))?ct(t,s,n,l):l,ke=(e,t)=>te(t?e:Ne(e),((t,s)=>v(Ae(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>it())),Ae=(e,s)=>t?v(F(oe,e),(t=>_(s)!=t.type?it(e,s,t.default):s),(()=>it(e,s))):p(_(s))?it(e,s):s,Me=(e,t,s)=>(v(F(re,t),(([n,l])=>{C(n,((t,s)=>{K(e,s)||(e[s]=t)})),C(l,(n=>{K(e,n)||ct(t,s,n)}))})),e),Ne=e=>(t&&(C(ce,((t,s)=>{K(e,s)||(e[s]=t)})),C(ie,(t=>{K(e,t)||it(t)}))),e),Pe=e=>ee(ae,e,((e,t,s)=>{const n=L(),l=N();ee(O(ae,t,L),s,((e,t,s)=>{z(e,t,s),v(s.default,(e=>z(n,t,e)),(()=>P(l,t)))})),z(re,t,[n,l])}),((e,t)=>{z(ae,t),z(re,t)})),Be=e=>ee(oe,e,((e,t,s)=>{z(oe,t,s),v(s.default,(e=>z(ce,t,e)),(()=>P(ie,t)))}),((e,t)=>{z(oe,t),z(ce,t),J(ie,t)})),De=e=>X(e)?zt():Jt(e),We=e=>ee(de,e,((e,t,s)=>$e(t,s)),((e,t)=>Ze(t))),$e=(e,t)=>ee(O(de,e,(()=>(st(e,1),L()))),t,((t,s,n)=>qe(e,t,s,n)),((t,s)=>_e(e,t,s))),qe=(e,t,s,n,l)=>ee(O(t,s,(()=>(nt(e,s,1),L()))),n,((t,n,l)=>Ge(e,s,t,n,l)),((n,a)=>et(e,t,s,n,a,l))),Ge=(e,t,s,n,l)=>{I(s,n)||lt(e,t,n,1);const a=F(s,n);l!==a&&(at(e,t,n,a,l),z(s,n,l))},He=(e,t,s,n,l)=>v(F(t,s),(t=>Ge(e,s,t,n,l)),(()=>qe(e,t,s,Me({[n]:l},e,s)))),Ke=e=>X(e)?Ot():Lt(e),Qe=e=>ee(fe,e,((e,t,s)=>Ue(t,s)),((e,t)=>tt(t))),Ue=(e,t)=>{I(fe,e)||rt(e,1);const s=F(fe,e);t!==s&&(ot(e,s,t),z(fe,e,t))},Xe=e=>{const[t]=O(ue,e,D),s=t();return I(F(de,e),s)?Xe(e):s},Ye=e=>F(de,e)??$e(e,{}),Ze=e=>$e(e,{}),_e=(e,t,s)=>{const[,n]=O(ue,e,D);n(s),qe(e,t,s,{},!0)},et=(e,t,s,n,l,a)=>{const r=F(F(re,e)?.[0],l);if(!p(r)&&!a)return Ge(e,s,n,l,r);const o=t=>{at(e,s,t,F(n,t)),lt(e,s,t,-1),z(n,t)};p(r)?o(l):x(n,o),R(n)&&(nt(e,s,-1),R(z(t,s))&&(st(e,-1),z(de,e),z(ue,e)))},tt=e=>{const t=F(ce,e);if(!p(t))return Ue(e,t);ot(e,F(fe,e)),rt(e,-1),z(fe,e)},st=(e,t)=>se(V,e,t),nt=(e,t,s)=>se(O(y,e,L),t,s),lt=(e,t,s,n)=>se(O(O(B,e,L),t,L),s,n),at=(e,t,s,n,l)=>O(O(O(W,e,L),t,L),s,(()=>[n,0]))[1]=l,rt=(e,t)=>se($,e,t),ot=(e,t,s)=>O(q,e,(()=>[t,0]))[1]=s,ct=(e,t,s,n,l)=>(T(O(O(O(H,e,L),t,L),s,(()=>[])),n),l),it=(e,t,s)=>(T(O(le,e,(()=>[])),t),s),ut=(e,t,s)=>v(F(F(F(W,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Y(It(e,t,s))])),dt=e=>v(F(q,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Y(Ct(e))])),ft=e=>R(H)||R(Se[e])?0:C(e?k(H,A):H,((t,s)=>C(t,((t,n)=>C(t,((t,l)=>Le(Se[e],[s,n,l],t))))))),ht=e=>R(le)||R(we[e])?0:C(e?k(le):le,((t,s)=>Le(we[e],[s],t))),Tt=(e,t,s)=>{if(!R(t))return Le(e,s),1},gt=e=>{const t=R(Ve[e]),s=R(pe[e])&&R(be[e])&&t&&R(Te[e]),n=R(ve[e])&&R(ye[e])&&R(ge[e])&&R(he[e]);if(!s||!n){const l=e?[k(V),A(y),k(B,A),k(W,A)]:[V,y,B,W];if(!s){C(l[2],((t,s)=>C(t,((t,n)=>Tt(pe[e],t,[s,n])))));const s=N();C(l[1],((n,l)=>{Tt(be[e],n,[l])&&!t&&(Le(Ve[e],[l,null]),P(s,l))})),t||C(l[3],((t,n)=>{if(!I(s,n)){const s=N();C(t,(e=>C(e,(([t,n],l)=>n!==t?P(s,l):J(e,l))))),C(s,(t=>Le(Ve[e],[n,t])))}})),Tt(Te[e],l[0])}if(!n){let t;C(l[3],((s,n)=>{let l;C(s,((s,a)=>{let r;C(s,(([s,o],c)=>{o!==s&&(Le(ve[e],[n,a,c],o,s,ut),t=l=r=1)})),r&&Le(ye[e],[n,a],ut)})),l&&Le(ge[e],[n],ut)})),t&&Le(he[e],void 0,ut)}}},bt=e=>{const t=R(Re[e]),s=R(me[e])&&R(Ie[e]);if(!t||!s){const n=e?[k($),k(q)]:[$,q];if(t||Tt(Re[e],n[0]),!s){let t;C(n[1],(([s,n],l)=>{n!==s&&(Le(me[e],[l],n,s,dt),t=1)})),t&&Le(Ie[e],void 0,dt)}}},Vt=(e,...t)=>(kt((()=>e(...d(t,i)))),Nt),yt=()=>j(de,(e=>j(e,j))),pt=()=>E(de),vt=e=>E(F(de,i(e))),St=(e,t,s,n=0,l)=>{return d(h((r=F(de,i(e)),o=(e,s)=>[p(t)?s:F(e,i(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),d([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),n,p(l)?l:n+l),(([,e])=>e));var a,r,o},wt=(e,t)=>E(F(F(de,i(e)),i(t))),It=(e,t,s)=>F(F(F(de,i(e)),i(t)),i(s)),Rt=()=>j(fe),mt=()=>E(fe),Ct=e=>F(fe,i(e)),Jt=e=>Vt((()=>(e=>te(e,ze,ct))(e)?We(e):0)),Lt=e=>Vt((()=>ke(e)?Qe(e):0)),Et=e=>{try{De(b(e))}catch{}return Nt},Ft=t=>Vt((()=>{if((e=te(t,(e=>te(e,xe))))&&(Pe(t),!R(de))){const e=yt();zt(),Jt(e)}})),xt=e=>Vt((()=>{if(t=(e=>te(e,xe))(e)){const s=Rt();jt(),Ot(),t=!0,Be(e),Lt(s)}})),zt=()=>Vt((()=>We({}))),Ot=()=>Vt((()=>Qe({}))),jt=()=>Vt((()=>{Be({}),t=!1})),kt=(e,t)=>{if(-1==r)return;At();const s=e();return Mt(t),s},At=()=>(r++,Nt),Mt=e=>(r>0&&(r--,0==r&&(n=!R(W),l=!R(q),r=1,ft(1),n&&gt(1),ht(1),l&&bt(1),r=-1,e?.(j(W,(e=>j(e,(e=>j(e,(e=>[...e]),(([e,t])=>e===t))),X)),X),j(H,(e=>j(e,j))),j(q,(e=>[...e]),(([e,t])=>e===t)),j(le))&&(r=1,C(W,((e,t)=>C(e,((e,s)=>C(e,(([e],n)=>((e,t,s,n,l)=>p(l)?e.delCell(t,s,n,!0):e.setCell(t,s,n,l))(Nt,t,s,n,e))))))),C(q,(([e],t)=>((e,t,s)=>p(s)?e.delValue(t):e.setValue(t,s))(Nt,t,e))),r=-1,n=l=!1),Le(Ce[0],void 0,n,l),ft(0),n&&gt(0),ht(0),l&&bt(0),Le(Ce[1],void 0,n,l),r=0,u([V,y,B,W,H,$,q,le],m))),Nt),Nt={getTables:yt,getTableIds:pt,getTable:e=>j(F(de,i(e)),j),getRowIds:vt,getSortedRowIds:St,getRow:(e,t)=>j(F(F(de,i(e)),i(t))),getCellIds:wt,getCell:It,getValues:Rt,getValueIds:mt,getValue:Ct,hasTables:()=>!R(de),hasTable:e=>I(de,i(e)),hasRow:(e,t)=>I(F(de,i(e)),i(t)),hasCell:(e,t,s)=>I(F(F(de,i(e)),i(t)),i(s)),hasValues:()=>!R(fe),hasValue:e=>I(fe,i(e)),getTablesJson:()=>g(de),getValuesJson:()=>g(fe),getJson:()=>g([de,fe]),getTablesSchemaJson:()=>g(ae),getValuesSchemaJson:()=>g(oe),getSchemaJson:()=>g([ae,oe]),setTables:Jt,setTable:(e,t)=>Vt((e=>ze(t,e)?$e(e,t):0),e),setRow:(e,t,s)=>Vt(((e,t)=>Oe(e,t,s)?qe(e,Ye(e),t,s):0),e,t),addRow:(e,t)=>kt((()=>{let s;return Oe(e,s,t)&&(e=i(e),qe(e,Ye(e),s=Xe(e),t)),s})),setPartialRow:(e,t,s)=>Vt(((e,t)=>{if(Oe(e,t,s,1)){const n=Ye(e);U(s,((s,l)=>He(e,n,t,l,s)))}}),e,t),setCell:(e,t,s,n)=>Vt(((e,t,s)=>v(je(e,t,s,w(n)?n(It(e,t,s)):n),(n=>He(e,Ye(e),t,s,n)))),e,t,s),setValues:Lt,setPartialValues:e=>Vt((()=>ke(e,1)?U(e,((e,t)=>Ue(t,e))):0)),setValue:(e,t)=>Vt((e=>v(Ae(e,w(t)?t(Ct(e)):t),(t=>Ue(e,t)))),e),setTablesJson:Et,setValuesJson:e=>{try{Ke(b(e))}catch{}return Nt},setJson:e=>{try{const[t,s]=b(e);De(t),Ke(s)}catch{Et(e)}return Nt},setTablesSchema:Ft,setValuesSchema:xt,setSchema:(e,t)=>Vt((()=>{Ft(e),xt(t)})),delTables:zt,delTable:e=>Vt((e=>I(de,e)?Ze(e):0),e),delRow:(e,t)=>Vt(((e,t)=>v(F(de,e),(s=>I(s,t)?_e(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Vt(((e,t,s)=>v(F(de,e),(l=>v(F(l,t),(a=>I(a,s)?et(e,l,t,a,s,n):0))))),e,t,s),delValues:Ot,delValue:e=>Vt((e=>I(fe,e)?tt(e):0),e),delTablesSchema:()=>Vt((()=>{Pe({}),e=!1})),delValuesSchema:jt,transaction:kt,startTransaction:At,finishTransaction:Mt,forEachTable:e=>C(de,((t,s)=>e(s,(e=>C(t,((t,s)=>e(s,(e=>x(t,e))))))))),forEachRow:(e,t)=>C(F(de,i(e)),((e,s)=>t(s,(t=>x(e,t))))),forEachCell:(e,t,s)=>x(F(F(de,i(e)),i(t)),s),forEachValue:e=>x(fe,e),addSortedRowIdsListener:(e,t,s,n,l,a,r)=>{let o=St(e,t,s,n,l);return Je((()=>{const r=St(e,t,s,n,l);var c,i,u;i=o,f(c=r)===f(i)&&(u=(e,t)=>i[t]===e,c.every(u))||(o=r,a(Nt,e,t,s,n,l,o))}),Ve[r?1:0],[e,t],[pt])},addWillFinishTransactionListener:e=>Je(e,Ce[0]),addDidFinishTransactionListener:e=>Je(e,Ce[1]),callListener:e=>(Fe(e),Nt),delListener:e=>(Ee(e),Nt),getListenerStats:()=>({}),createStore:ne};return U({Tables:[0,he],TableIds:[0,Te],Table:[1,ge,[pt]],RowIds:[1,be,[pt]],Row:[2,ye,[pt,vt]],CellIds:[2,pe,[pt,vt]],Cell:[3,ve,[pt,vt,wt],e=>Y(It(...e))],InvalidCell:[3,Se],Values:[0,Ie],ValueIds:[0,Re],Value:[1,me,[mt],e=>Y(Ct(e[0]))],InvalidValue:[1,we]},(([e,t,s,n],l)=>{Nt["add"+l+"Listener"]=(...l)=>Je(l[e],t[l[e+1]?1:0],e>0?h(l,0,e):void 0,s,n)})),G(Nt)};e.createStore=ne},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
1
+ var e,t;e=this,t=function(e){"use strict";const t=e=>typeof e,s="",n=t(s),l=t(!0),a=t(0),r=t(t),o="type",c="default",i=e=>s+e,u=(e,t)=>e.forEach(t),d=(e,t)=>e.map(t),f=e=>e.length,h=(e,t,s)=>e.slice(t,s),T=(e,...t)=>e.push(...t),g=e=>JSON.stringify(e,((e,t)=>{return y(t,Map)?(s=(e,[t,s])=>(e[t]=s,e),n={},[...t].reduce(s,n)):t;var s,n})),b=JSON.parse,V=isFinite,y=(e,t)=>e instanceof t,S=e=>null==e,p=(e,t,s)=>S(e)?s?.():t(e),v=e=>e==n||e==l,w=e=>t(e)==r,m=(e,t)=>e?.has(t)??!1,I=e=>S(e)||0==(e=>e.size)(e),R=e=>e.clear(),C=(e,t)=>e?.forEach(t),J=(e,t)=>e?.delete(t),L=e=>new Map(e),E=e=>[...e?.keys()??[]],F=(e,t)=>e?.get(t),x=(e,t)=>C(e,((e,s)=>t(s,e))),z=(e,t,s)=>S(s)?(J(e,t),e):e?.set(t,s),O=(e,t,s)=>(m(e,t)||z(e,t,s()),F(e,t)),j=(e,t,s)=>{const n={},l=t??(e=>e);return C(e,((e,t)=>p(l(e),(e=>s?.(e)?0:n[t]=e)))),n},k=(e,t)=>{const s=L(),n=t??(e=>e);return C(e,((e,t)=>s.set(t,n(e)))),s},A=e=>k(e,k),M=(e,t,s,n,l=0)=>p((s?O:F)(e,t[l],l>f(t)-2?s:L),(a=>{if(l>f(t)-2)return n?.(a)&&z(e,t[l]),a;const r=M(a,t,s,n,l+1);return I(a)&&z(e,t[l]),r})),N=e=>new Set(Array.isArray(e)||S(e)?e:[e]),P=(e,t)=>e?.add(t),B=/^\d+$/,D=()=>{const e=[];let t=0;return[()=>e.shift()??s+t++,t=>{B.test(t)&&f(e)<1e3&&T(e,t)}]},W=Object,$=W.keys,q=W.isFrozen,G=W.freeze,H=e=>y(e,W)&&e.constructor==W,K=(e,t)=>!S(((e,t)=>p(e,(e=>e[t])))(e,t)),Q=(e,t)=>delete e[t],U=(e,t)=>d(W.entries(e),(([e,s])=>t(s,e))),X=e=>{return H(e)&&(t=$(e),0==f(t));var t},Y=e=>[e,e],Z=()=>[L(),L()],_=e=>{const s=t(e);return v(s)||s==a&&V(e)?s:void 0},ee=(e,t,s,n=z)=>{const l=(a=e=>!K(t,e),E(e).filter(a));var a;return u($(t),(n=>s(e,n,t[n]))),u(l,(t=>n(e,t))),e},te=(e,t,s)=>S(e)||!H(e)||X(e)||q(e)?(s?.(),!1):(U(e,((s,n)=>{t(s,n)||Q(e,n)})),!X(e)),se=(e,t,s)=>z(e,t,F(e,t)==-s?void 0:s),ne=()=>{let e,t,n,l,r=0;const V=L(),y=L(),B=L(),W=L(),$=L(),q=L(),H=L(),le=L(),ae=L(),re=L(),oe=L(),ce=L(),ie=N(),ue=L(),de=L(),fe=L(),he=Z(),Te=Z(),ge=Z(),be=Z(),Ve=Z(),ye=Z(),Se=Z(),pe=Z(),ve=Z(),we=Z(),me=Z(),Ie=Z(),Re=Z(),Ce=Z(),[Je,Le,Ee,Fe]=(e=>{let t;const[n,l]=D(),a=L();return[(e,l,r,o=[],c=(()=>[]))=>{t??=Pt;const i=n();return z(a,i,[e,l,r,o,c]),P(M(l,r??[s],N),i),i},(e,n,...l)=>u(((e,t=[s])=>{const n=[],l=(e,s)=>s==f(t)?T(n,e):null===t[s]?C(e,(e=>l(e,s+1))):u([t[s],null],(t=>l(F(e,t),s+1)));return l(e,0),n})(e,n),(e=>C(e,(e=>F(a,e)[0](t,...n??[],...l))))),e=>p(F(a,e),(([,t,n])=>(M(t,n??[s],void 0,(t=>(J(t,e),I(t)?1:0))),z(a,e),l(e),n))),e=>p(F(a,e),(([e,,s=[],n,l])=>{const a=(...r)=>{const o=f(r);o==f(s)?e(t,...r,...l(r)):S(s[o])?u(n[o]?.(...r)??[],(e=>a(...r,e))):a(...r,s[o])};a()}))]})(),xe=e=>{if(!te(e,((e,t)=>[o,c].includes(t))))return!1;const t=e.type;return!(!v(t)&&t!=a||(_(e.default)!=t&&Q(e,c),0))},ze=(t,s)=>(!e||m(ae,s)||ct(s))&&te(t,((e,t)=>Oe(s,t,e)),(()=>ct(s))),Oe=(e,t,s,n)=>te(n?s:Me(s,e,t),((n,l)=>p(je(e,t,l,n),(e=>(s[l]=e,!0)),(()=>!1))),(()=>ct(e,t))),je=(t,s,n,l)=>e?p(F(F(ae,t),n),(e=>_(l)!=e.type?ct(t,s,n,l,e.default):l),(()=>ct(t,s,n,l))):S(_(l))?ct(t,s,n,l):l,ke=(e,t)=>te(t?e:Ne(e),((t,s)=>p(Ae(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>it())),Ae=(e,s)=>t?p(F(oe,e),(t=>_(s)!=t.type?it(e,s,t.default):s),(()=>it(e,s))):S(_(s))?it(e,s):s,Me=(e,t,s)=>(p(F(re,t),(([n,l])=>{C(n,((t,s)=>{K(e,s)||(e[s]=t)})),C(l,(n=>{K(e,n)||ct(t,s,n)}))})),e),Ne=e=>(t&&(C(ce,((t,s)=>{K(e,s)||(e[s]=t)})),C(ie,(t=>{K(e,t)||it(t)}))),e),Pe=e=>ee(ae,e,((e,t,s)=>{const n=L(),l=N();ee(O(ae,t,L),s,((e,t,s)=>{z(e,t,s),p(s.default,(e=>z(n,t,e)),(()=>P(l,t)))})),z(re,t,[n,l])}),((e,t)=>{z(ae,t),z(re,t)})),Be=e=>ee(oe,e,((e,t,s)=>{z(oe,t,s),p(s.default,(e=>z(ce,t,e)),(()=>P(ie,t)))}),((e,t)=>{z(oe,t),z(ce,t),J(ie,t)})),De=e=>X(e)?zt():Jt(e),We=e=>ee(de,e,((e,t,s)=>$e(t,s)),((e,t)=>Ze(t))),$e=(e,t)=>ee(O(de,e,(()=>(st(e,1),L()))),t,((t,s,n)=>qe(e,t,s,n)),((t,s)=>_e(e,t,s))),qe=(e,t,s,n,l)=>ee(O(t,s,(()=>(nt(e,s,1),L()))),n,((t,n,l)=>Ge(e,s,t,n,l)),((n,a)=>et(e,t,s,n,a,l))),Ge=(e,t,s,n,l)=>{m(s,n)||lt(e,t,n,1);const a=F(s,n);l!==a&&(at(e,t,n,a,l),z(s,n,l))},He=(e,t,s,n,l)=>p(F(t,s),(t=>Ge(e,s,t,n,l)),(()=>qe(e,t,s,Me({[n]:l},e,s)))),Ke=e=>X(e)?Ot():Lt(e),Qe=e=>ee(fe,e,((e,t,s)=>Ue(t,s)),((e,t)=>tt(t))),Ue=(e,t)=>{m(fe,e)||rt(e,1);const s=F(fe,e);t!==s&&(ot(e,s,t),z(fe,e,t))},Xe=e=>{const[t]=O(ue,e,D),s=t();return m(F(de,e),s)?Xe(e):s},Ye=e=>F(de,e)??$e(e,{}),Ze=e=>$e(e,{}),_e=(e,t,s)=>{const[,n]=O(ue,e,D);n(s),qe(e,t,s,{},!0)},et=(e,t,s,n,l,a)=>{const r=F(F(re,e)?.[0],l);if(!S(r)&&!a)return Ge(e,s,n,l,r);const o=t=>{at(e,s,t,F(n,t)),lt(e,s,t,-1),z(n,t)};S(r)?o(l):x(n,o),I(n)&&(nt(e,s,-1),I(z(t,s))&&(st(e,-1),z(de,e),z(ue,e)))},tt=e=>{const t=F(ce,e);if(!S(t))return Ue(e,t);ot(e,F(fe,e)),rt(e,-1),z(fe,e)},st=(e,t)=>se(V,e,t),nt=(e,t,s)=>se(O(y,e,L),t,s),lt=(e,t,s,n)=>se(O(O(B,e,L),t,L),s,n),at=(e,t,s,n,l)=>O(O(O(W,e,L),t,L),s,(()=>[n,0]))[1]=l,rt=(e,t)=>se($,e,t),ot=(e,t,s)=>O(q,e,(()=>[t,0]))[1]=s,ct=(e,t,s,n,l)=>(T(O(O(O(H,e,L),t,L),s,(()=>[])),n),l),it=(e,t,s)=>(T(O(le,e,(()=>[])),t),s),ut=(e,t,s)=>p(F(F(F(W,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...Y(mt(e,t,s))])),dt=e=>p(F(q,e),(([e,t])=>[!0,e,t]),(()=>[!1,...Y(Ct(e))])),ft=e=>I(H)||I(ve[e])?0:C(e?k(H,A):H,((t,s)=>C(t,((t,n)=>C(t,((t,l)=>Le(ve[e],[s,n,l],t))))))),ht=e=>I(le)||I(we[e])?0:C(e?k(le):le,((t,s)=>Le(we[e],[s],t))),Tt=(e,t,s)=>{if(!I(t))return Le(e,s),1},gt=e=>{const t=I(Ve[e]),s=I(Se[e])&&I(be[e])&&t&&I(Te[e]),n=I(pe[e])&&I(ye[e])&&I(ge[e])&&I(he[e]);if(!s||!n){const l=e?[k(V),A(y),k(B,A),k(W,A)]:[V,y,B,W];if(!s){C(l[2],((t,s)=>C(t,((t,n)=>Tt(Se[e],t,[s,n])))));const s=N();C(l[1],((n,l)=>{Tt(be[e],n,[l])&&!t&&(Le(Ve[e],[l,null]),P(s,l))})),t||C(l[3],((t,n)=>{if(!m(s,n)){const s=N();C(t,(e=>C(e,(([t,n],l)=>n!==t?P(s,l):J(e,l))))),C(s,(t=>Le(Ve[e],[n,t])))}})),Tt(Te[e],l[0])}if(!n){let t;C(l[3],((s,n)=>{let l;C(s,((s,a)=>{let r;C(s,(([s,o],c)=>{o!==s&&(Le(pe[e],[n,a,c],o,s,ut),t=l=r=1)})),r&&Le(ye[e],[n,a],ut)})),l&&Le(ge[e],[n],ut)})),t&&Le(he[e],void 0,ut)}}},bt=e=>{const t=I(Ie[e]),s=I(Re[e])&&I(me[e]);if(!t||!s){const n=e?[k($),k(q)]:[$,q];if(t||Tt(Ie[e],n[0]),!s){let t;C(n[1],(([s,n],l)=>{n!==s&&(Le(Re[e],[l],n,s,dt),t=1)})),t&&Le(me[e],void 0,dt)}}},Vt=(e,...t)=>(At((()=>e(...d(t,i)))),Pt),yt=()=>j(de,(e=>j(e,j))),St=()=>E(de),pt=e=>E(F(de,i(e))),vt=(e,t,s,n=0,l)=>{return d(h((r=F(de,i(e)),o=(e,s)=>[S(t)?s:F(e,i(t)),s],a=([e],[t])=>(e<t?-1:1)*(s?-1:1),d([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(a)),n,S(l)?l:n+l),(([,e])=>e));var a,r,o},wt=(e,t)=>E(F(F(de,i(e)),i(t))),mt=(e,t,s)=>F(F(F(de,i(e)),i(t)),i(s)),It=()=>j(fe),Rt=()=>E(fe),Ct=e=>F(fe,i(e)),Jt=e=>Vt((()=>(e=>te(e,ze,ct))(e)?We(e):0)),Lt=e=>Vt((()=>ke(e)?Qe(e):0)),Et=e=>{try{De(b(e))}catch{}return Pt},Ft=t=>Vt((()=>{if((e=te(t,(e=>te(e,xe))))&&(Pe(t),!I(de))){const e=yt();zt(),Jt(e)}})),xt=e=>Vt((()=>{if(t=(e=>te(e,xe))(e)){const s=It();kt(),Ot(),t=!0,Be(e),Lt(s)}})),zt=()=>Vt((()=>We({}))),Ot=()=>Vt((()=>Qe({}))),jt=()=>Vt((()=>{Pe({}),e=!1})),kt=()=>Vt((()=>{Be({}),t=!1})),At=(e,t)=>{if(-1==r)return;Mt();const s=e();return Nt(t),s},Mt=()=>(r++,Pt),Nt=e=>(r>0&&(r--,0==r&&(n=!I(W),l=!I(q),r=1,ft(1),n&&gt(1),ht(1),l&&bt(1),r=-1,e?.(j(W,(e=>j(e,(e=>j(e,(e=>[...e]),(([e,t])=>e===t))),X)),X),j(H,(e=>j(e,j))),j(q,(e=>[...e]),(([e,t])=>e===t)),j(le))&&(r=1,C(W,((e,t)=>C(e,((e,s)=>C(e,(([e],n)=>((e,t,s,n,l)=>S(l)?e.delCell(t,s,n,!0):e.setCell(t,s,n,l))(Pt,t,s,n,e))))))),C(q,(([e],t)=>((e,t,s)=>S(s)?e.delValue(t):e.setValue(t,s))(Pt,t,e))),r=-1,n=l=!1),Le(Ce[0],void 0,n,l),ft(0),n&&gt(0),ht(0),l&&bt(0),Le(Ce[1],void 0,n,l),r=0,u([V,y,B,W,H,$,q,le],R))),Pt),Pt={getTables:yt,getTableIds:St,getTable:e=>j(F(de,i(e)),j),getRowIds:pt,getSortedRowIds:vt,getRow:(e,t)=>j(F(F(de,i(e)),i(t))),getCellIds:wt,getCell:mt,getValues:It,getValueIds:Rt,getValue:Ct,hasTables:()=>!I(de),hasTable:e=>m(de,i(e)),hasRow:(e,t)=>m(F(de,i(e)),i(t)),hasCell:(e,t,s)=>m(F(F(de,i(e)),i(t)),i(s)),hasValues:()=>!I(fe),hasValue:e=>m(fe,i(e)),getTablesJson:()=>g(de),getValuesJson:()=>g(fe),getJson:()=>g([de,fe]),getTablesSchemaJson:()=>g(ae),getValuesSchemaJson:()=>g(oe),getSchemaJson:()=>g([ae,oe]),setTables:Jt,setTable:(e,t)=>Vt((e=>ze(t,e)?$e(e,t):0),e),setRow:(e,t,s)=>Vt(((e,t)=>Oe(e,t,s)?qe(e,Ye(e),t,s):0),e,t),addRow:(e,t)=>At((()=>{let s;return Oe(e,s,t)&&(e=i(e),qe(e,Ye(e),s=Xe(e),t)),s})),setPartialRow:(e,t,s)=>Vt(((e,t)=>{if(Oe(e,t,s,1)){const n=Ye(e);U(s,((s,l)=>He(e,n,t,l,s)))}}),e,t),setCell:(e,t,s,n)=>Vt(((e,t,s)=>p(je(e,t,s,w(n)?n(mt(e,t,s)):n),(n=>He(e,Ye(e),t,s,n)))),e,t,s),setValues:Lt,setPartialValues:e=>Vt((()=>ke(e,1)?U(e,((e,t)=>Ue(t,e))):0)),setValue:(e,t)=>Vt((e=>p(Ae(e,w(t)?t(Ct(e)):t),(t=>Ue(e,t)))),e),setTablesJson:Et,setValuesJson:e=>{try{Ke(b(e))}catch{}return Pt},setJson:e=>{try{const[t,s]=b(e);De(t),Ke(s)}catch{Et(e)}return Pt},setTablesSchema:Ft,setValuesSchema:xt,setSchema:(e,t)=>Vt((()=>{Ft(e),xt(t)})),delTables:zt,delTable:e=>Vt((e=>m(de,e)?Ze(e):0),e),delRow:(e,t)=>Vt(((e,t)=>p(F(de,e),(s=>m(s,t)?_e(e,s,t):0))),e,t),delCell:(e,t,s,n)=>Vt(((e,t,s)=>p(F(de,e),(l=>p(F(l,t),(a=>m(a,s)?et(e,l,t,a,s,n):0))))),e,t,s),delValues:Ot,delValue:e=>Vt((e=>m(fe,e)?tt(e):0),e),delTablesSchema:jt,delValuesSchema:kt,delSchema:()=>Vt((()=>{jt(),kt()})),transaction:At,startTransaction:Mt,finishTransaction:Nt,forEachTable:e=>C(de,((t,s)=>e(s,(e=>C(t,((t,s)=>e(s,(e=>x(t,e))))))))),forEachRow:(e,t)=>C(F(de,i(e)),((e,s)=>t(s,(t=>x(e,t))))),forEachCell:(e,t,s)=>x(F(F(de,i(e)),i(t)),s),forEachValue:e=>x(fe,e),addSortedRowIdsListener:(e,t,s,n,l,a,r)=>{let o=vt(e,t,s,n,l);return Je((()=>{const r=vt(e,t,s,n,l);var c,i,u;i=o,f(c=r)===f(i)&&(u=(e,t)=>i[t]===e,c.every(u))||(o=r,a(Pt,e,t,s,n,l,o))}),Ve[r?1:0],[e,t],[St])},addWillFinishTransactionListener:e=>Je(e,Ce[0]),addDidFinishTransactionListener:e=>Je(e,Ce[1]),callListener:e=>(Fe(e),Pt),delListener:e=>(Ee(e),Pt),getListenerStats:()=>({}),createStore:ne};return U({Tables:[0,he],TableIds:[0,Te],Table:[1,ge,[St]],RowIds:[1,be,[St]],Row:[2,ye,[St,pt]],CellIds:[2,Se,[St,pt]],Cell:[3,pe,[St,pt,wt],e=>Y(mt(...e))],InvalidCell:[3,ve],Values:[0,me],ValueIds:[0,Ie],Value:[1,Re,[Rt],e=>Y(Ct(e[0]))],InvalidValue:[1,we]},(([e,t,s,n],l)=>{Pt["add"+l+"Listener"]=(...l)=>Je(l[e],t[l[e+1]?1:0],e>0?h(l,0,e):void 0,s,n)})),G(Pt)};e.createStore=ne},"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).TinyBaseStore={});
Binary file