tinybase 6.1.0-beta.2 → 6.1.0-beta.4

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.
@@ -0,0 +1,178 @@
1
+ /**
2
+ * The persister-sqlite-bun module of the TinyBase project lets you save and
3
+ * load Store data to and from a local Bun SQLite database (in an appropriate
4
+ * environment).
5
+ * @see Database Persistence guide
6
+ * @packageDocumentation
7
+ * @module persister-sqlite-bun
8
+ * @since v6.1.0
9
+ */
10
+ import type {Database} from 'bun:sqlite';
11
+ import type {MergeableStore} from '../../../mergeable-store/with-schemas/index.d.ts';
12
+ import type {
13
+ OptionalSchemas,
14
+ Store,
15
+ } from '../../../store/with-schemas/index.d.ts';
16
+ import type {
17
+ DatabasePersisterConfig,
18
+ Persister,
19
+ Persists,
20
+ } from '../../with-schemas/index.d.ts';
21
+
22
+ /**
23
+ * The SqliteBunPersister interface represents a Persister that lets you save
24
+ * and load Store data to and from a local Bun SQLite database.
25
+ *
26
+ * You should use the createSqliteBunPersister function to create a
27
+ * SqliteBunPersister object.
28
+ *
29
+ * It is a minor extension to the Persister interface and simply provides an
30
+ * extra getDb method for accessing a reference to the database instance the
31
+ * Store is being persisted to.
32
+ * @category Persister
33
+ * @since v6.1.0
34
+ */
35
+ export interface SqliteBunPersister<Schemas extends OptionalSchemas>
36
+ extends Persister<Schemas, Persists.StoreOrMergeableStore> {
37
+ /**
38
+ * The getDb method returns a reference to the database instance the Store is
39
+ * being persisted to.
40
+ * @returns A reference to the database instance.
41
+ * @example
42
+ * This example creates a Persister object against a newly-created Store and
43
+ * then gets the database instance back out again.
44
+ *
45
+ * ```js bun
46
+ * import {Database} from 'bun:sqlite';
47
+ * import {createStore} from 'tinybase';
48
+ * import {createSqliteBunPersister} from 'tinybase/persisters/persister-sqlite-bun';
49
+ *
50
+ * const db = new Database(':memory:');
51
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
52
+ * const persister = createSqliteBunPersister(store, db, 'my_tinybase');
53
+ *
54
+ * console.log(persister.getDb() == db);
55
+ * // -> true
56
+ *
57
+ * persister.destroy();
58
+ * ```
59
+ * @category Getter
60
+ * @since v6.1.0
61
+ */
62
+ getDb(): Database;
63
+ }
64
+
65
+ /**
66
+ * The createSqliteBunPersister function creates a SqliteBunPersister object
67
+ * that can persist the Store to a local Bun SQLite database.
68
+ *
69
+ * This has schema-based typing. The following is a simplified representation:
70
+ *
71
+ * ```ts override
72
+ * createSqliteBunPersister(
73
+ * store: Store | MergeableStore,
74
+ * db: Database,
75
+ * configOrStoreTableName?: DatabasePersisterConfig | string,
76
+ * onSqlCommand?: (sql: string, params?: any[]) => void,
77
+ * onIgnoredError?: (error: any) => void,
78
+ * ): SqliteBunPersister;
79
+ * ```
80
+ *
81
+ * A SqliteBunPersister supports regular Store objects, and can also be used to
82
+ * persist the metadata of a MergeableStore when using the JSON serialization
83
+ * mode, as described below.
84
+ *
85
+ * As well as providing a reference to the Store to persist, you must provide a
86
+ * `db` parameter which identifies the database instance.
87
+ *
88
+ * A database Persister uses one of two modes: either a JSON serialization of
89
+ * the whole Store stored in a single row of a table (the default), or a tabular
90
+ * mapping of Table Ids to database table names and vice-versa).
91
+ *
92
+ * The third argument is a DatabasePersisterConfig object that configures which
93
+ * of those modes to use, and settings for each. If the third argument is simply
94
+ * a string, it is used as the `storeTableName` property of the JSON
95
+ * serialization.
96
+ *
97
+ * See the documentation for the DpcJson and DpcTabular types for more
98
+ * information on how both of those modes can be configured.
99
+ * @param store The Store or MergeableStore to persist.
100
+ * @param db The database instance that was returned from `new Database(...)`.
101
+ * @param configOrStoreTableName A DatabasePersisterConfig to configure the
102
+ * persistence mode (or a string to set the `storeTableName` property of the
103
+ * JSON serialization).
104
+ * @param onSqlCommand An optional handler called every time the Persister
105
+ * executes a SQL command or query. This is suitable for logging persistence
106
+ * behavior in a development environment.
107
+ * @param onIgnoredError An optional handler for the errors that the Persister
108
+ * would otherwise ignore when trying to save or load data. This is suitable for
109
+ * debugging persistence issues in a development environment.
110
+ * @returns A reference to the new SqliteBunPersister object.
111
+ * @example
112
+ * This example creates a SqliteBunPersister object and persists the Store to a
113
+ * local SQLite database as a JSON serialization into the `my_tinybase` table.
114
+ * It makes a change to the database directly and then reloads it back into the
115
+ * Store.
116
+ *
117
+ * ```js bun
118
+ * import {Database} from 'bun:sqlite';
119
+ * import {createStore} from 'tinybase';
120
+ * import {createSqliteBunPersister} from 'tinybase/persisters/persister-sqlite-bun';
121
+ *
122
+ * const db = new Database(':memory:');
123
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
124
+ * const persister = createSqliteBunPersister(store, db, 'my_tinybase');
125
+ *
126
+ * await persister.save();
127
+ * // Store will be saved to the database.
128
+ *
129
+ * console.log(db.query('SELECT * FROM my_tinybase;').all());
130
+ * // -> [{_id: '_', store: '[{"pets":{"fido":{"species":"dog"}}},{}]'}]
131
+ *
132
+ * db.query(
133
+ * 'UPDATE my_tinybase SET store = ' +
134
+ * `'[{"pets":{"felix":{"species":"cat"}}},{}]' WHERE _id = '_';`,
135
+ * ).run();
136
+ * await persister.load();
137
+ * console.log(store.getTables());
138
+ * // -> {pets: {felix: {species: 'cat'}}}
139
+ *
140
+ * persister.destroy();
141
+ * ```
142
+ * @example
143
+ * This example creates a SqliteBunPersister object and persists the Store to a
144
+ * local SQLite database with tabular mapping.
145
+ *
146
+ * ```js bun
147
+ * import {Database} from 'bun:sqlite';
148
+ * import {createStore} from 'tinybase';
149
+ * import {createSqliteBunPersister} from 'tinybase/persisters/persister-sqlite-bun';
150
+ *
151
+ * const db = new Database(':memory:');
152
+ * const store = createStore().setTables({pets: {fido: {species: 'dog'}}});
153
+ * const persister = createSqliteBunPersister(store, db, {
154
+ * mode: 'tabular',
155
+ * tables: {load: {pets: 'pets'}, save: {pets: 'pets'}},
156
+ * });
157
+ *
158
+ * await persister.save();
159
+ * console.log(db.query('SELECT * FROM pets;').all());
160
+ * // -> [{_id: 'fido', species: 'dog'}]
161
+ *
162
+ * db.query(`INSERT INTO pets (_id, species) VALUES ('felix', 'cat')`).run();
163
+ * await persister.load();
164
+ * console.log(store.getTables());
165
+ * // -> {pets: {fido: {species: 'dog'}, felix: {species: 'cat'}}}
166
+ *
167
+ * persister.destroy();
168
+ * ```
169
+ * @category Creation
170
+ * @since v6.1.0
171
+ */
172
+ export function createSqliteBunPersister<Schemas extends OptionalSchemas>(
173
+ store: Store<Schemas> | MergeableStore<Schemas>,
174
+ db: Database,
175
+ configOrStoreTableName?: DatabasePersisterConfig<Schemas> | string,
176
+ onSqlCommand?: (sql: string, params?: any[]) => void,
177
+ onIgnoredError?: (error: any) => void,
178
+ ): SqliteBunPersister<Schemas>;
@@ -17,6 +17,7 @@
17
17
  * |IndexedDbPersister|Browser IndexedDB|Yes|No
18
18
  * |RemotePersister|Remote server|Yes|No
19
19
  * |Sqlite3Persister|SQLite in Node, via [sqlite3](https://github.com/TryGhost/node-sqlite3)|Yes|Yes*
20
+ * |SqliteBunPersister| SQLite in Bun, via [bun:sqlite](https://bun.sh/docs/api/sqlite)|Yes|Yes*
20
21
  * |SqliteWasmPersister|SQLite in a browser, via [sqlite-wasm](https://github.com/tomayac/sqlite-wasm)|Yes|Yes*
21
22
  * |ExpoSqlitePersister|SQLite in React Native, via [expo-sqlite](https://github.com/expo/expo/tree/main/packages/expo-sqlite)|Yes|Yes*
22
23
  * |PostgresPersister|PostgreSQL, via [postgres](https://github.com/porsager/postgres)|Yes|Yes*
@@ -1839,7 +1840,7 @@ export type DatabaseChangeListener = (tableName: string) => void;
1839
1840
  * // -> '[{"pets":{"fido":{"species":"dog"}}},{}]'
1840
1841
  * storePersister.destroy();
1841
1842
  *
1842
- * const mergeableStore = createMergeableStore('mergeableStore1'); // !resetHlc
1843
+ * const mergeableStore = createMergeableStore('mergeableStore1'); // !reset
1843
1844
  * mergeableStore.setTables({pets: {fido: {species: 'dog'}}});
1844
1845
  * const mergeableStorePersister = createJsonPersister(mergeableStore);
1845
1846
  * await mergeableStorePersister.save();
package/index.js CHANGED
@@ -1031,7 +1031,7 @@ const decodeTimeAndCounter = (hlc16) => [
1031
1031
  decode(hlc16, 9) * SHIFT6 +
1032
1032
  decode(hlc16, 10),
1033
1033
  ];
1034
- const getHlcFunctions = (uniqueId) => {
1034
+ const getHlcFunctions = (uniqueId, getNow = Date.now) => {
1035
1035
  let logicalTime = 0;
1036
1036
  let lastCounter = -1;
1037
1037
  const clientPart = ifNotUndefined(
@@ -1056,11 +1056,7 @@ const getHlcFunctions = (uniqueId) => {
1056
1056
  const previousLogicalTime = logicalTime;
1057
1057
  const [remoteLogicalTime, remoteCounter] =
1058
1058
  isUndefined(hlc) || hlc == '' ? [0, 0] : decodeTimeAndCounter(hlc);
1059
- logicalTime = mathMax(
1060
- previousLogicalTime,
1061
- remoteLogicalTime,
1062
- GLOBAL.HLC_TIME ?? Date.now(),
1063
- );
1059
+ logicalTime = mathMax(previousLogicalTime, remoteLogicalTime, getNow());
1064
1060
  lastCounter =
1065
1061
  logicalTime == previousLogicalTime
1066
1062
  ? logicalTime == remoteLogicalTime
@@ -2513,13 +2509,13 @@ const validateMergeableContent = (mergeableContent) =>
2513
2509
  1,
2514
2510
  ),
2515
2511
  );
2516
- const createMergeableStore = (uniqueId) => {
2512
+ const createMergeableStore = (uniqueId, getNow) => {
2517
2513
  let listeningToRawStoreChanges = 1;
2518
2514
  let contentStampMap = newContentStampMap();
2519
2515
  let defaultingContent = 0;
2520
2516
  const touchedCells = mapNew();
2521
2517
  const touchedValues = setNew();
2522
- const [getHlc, seenHlc] = getHlcFunctions(uniqueId);
2518
+ const [getHlc, seenHlc] = getHlcFunctions(uniqueId, getNow);
2523
2519
  const store = createStore();
2524
2520
  const disableListeningToRawStoreChanges = (actions) => {
2525
2521
  const wasListening = listeningToRawStoreChanges;
@@ -285,7 +285,7 @@ const decodeTimeAndCounter = (hlc16) => [
285
285
  decode(hlc16, 9) * SHIFT6 +
286
286
  decode(hlc16, 10),
287
287
  ];
288
- const getHlcFunctions = (uniqueId) => {
288
+ const getHlcFunctions = (uniqueId, getNow = Date.now) => {
289
289
  let logicalTime = 0;
290
290
  let lastCounter = -1;
291
291
  const clientPart = ifNotUndefined(
@@ -310,11 +310,7 @@ const getHlcFunctions = (uniqueId) => {
310
310
  const previousLogicalTime = logicalTime;
311
311
  const [remoteLogicalTime, remoteCounter] =
312
312
  isUndefined(hlc) || hlc == '' ? [0, 0] : decodeTimeAndCounter(hlc);
313
- logicalTime = mathMax(
314
- previousLogicalTime,
315
- remoteLogicalTime,
316
- GLOBAL.HLC_TIME ?? Date.now(),
317
- );
313
+ logicalTime = mathMax(previousLogicalTime, remoteLogicalTime, getNow());
318
314
  lastCounter =
319
315
  logicalTime == previousLogicalTime
320
316
  ? logicalTime == remoteLogicalTime
@@ -1861,13 +1857,13 @@ const validateMergeableContent = (mergeableContent) =>
1861
1857
  1,
1862
1858
  ),
1863
1859
  );
1864
- const createMergeableStore = (uniqueId) => {
1860
+ const createMergeableStore = (uniqueId, getNow) => {
1865
1861
  let listeningToRawStoreChanges = 1;
1866
1862
  let contentStampMap = newContentStampMap();
1867
1863
  let defaultingContent = 0;
1868
1864
  const touchedCells = mapNew();
1869
1865
  const touchedValues = setNew();
1870
- const [getHlc, seenHlc] = getHlcFunctions(uniqueId);
1866
+ const [getHlc, seenHlc] = getHlcFunctions(uniqueId, getNow);
1871
1867
  const store = createStore();
1872
1868
  const disableListeningToRawStoreChanges = (actions) => {
1873
1869
  const wasListening = listeningToRawStoreChanges;
@@ -285,7 +285,7 @@ const decodeTimeAndCounter = (hlc16) => [
285
285
  decode(hlc16, 9) * SHIFT6 +
286
286
  decode(hlc16, 10),
287
287
  ];
288
- const getHlcFunctions = (uniqueId) => {
288
+ const getHlcFunctions = (uniqueId, getNow = Date.now) => {
289
289
  let logicalTime = 0;
290
290
  let lastCounter = -1;
291
291
  const clientPart = ifNotUndefined(
@@ -310,11 +310,7 @@ const getHlcFunctions = (uniqueId) => {
310
310
  const previousLogicalTime = logicalTime;
311
311
  const [remoteLogicalTime, remoteCounter] =
312
312
  isUndefined(hlc) || hlc == '' ? [0, 0] : decodeTimeAndCounter(hlc);
313
- logicalTime = mathMax(
314
- previousLogicalTime,
315
- remoteLogicalTime,
316
- GLOBAL.HLC_TIME ?? Date.now(),
317
- );
313
+ logicalTime = mathMax(previousLogicalTime, remoteLogicalTime, getNow());
318
314
  lastCounter =
319
315
  logicalTime == previousLogicalTime
320
316
  ? logicalTime == remoteLogicalTime
@@ -1861,13 +1857,13 @@ const validateMergeableContent = (mergeableContent) =>
1861
1857
  1,
1862
1858
  ),
1863
1859
  );
1864
- const createMergeableStore = (uniqueId) => {
1860
+ const createMergeableStore = (uniqueId, getNow) => {
1865
1861
  let listeningToRawStoreChanges = 1;
1866
1862
  let contentStampMap = newContentStampMap();
1867
1863
  let defaultingContent = 0;
1868
1864
  const touchedCells = mapNew();
1869
1865
  const touchedValues = setNew();
1870
- const [getHlc, seenHlc] = getHlcFunctions(uniqueId);
1866
+ const [getHlc, seenHlc] = getHlcFunctions(uniqueId, getNow);
1871
1867
  const store = createStore();
1872
1868
  const disableListeningToRawStoreChanges = (actions) => {
1873
1869
  const wasListening = listeningToRawStoreChanges;
package/min/index.js CHANGED
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),n=e(!0),o=e(0),l=e(e),r="type",a="default",i="Listener",c="Result",d="add",u="Has",g="Ids",h="Table",f=h+"s",I=h+g,b="Row",w=b+"Count",L=b+g,C="Sorted"+b+g,R="Cell",T=R+g,v="Value",p=v+"s",S=v+g,y=e=>t+e,V=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),m=(e,s=t,n)=>e.split(s,n),E=globalThis,k=Math,D=k.max,H=k.min,J=k.floor,x=isFinite,F=e=>null==e,Q=(e,t,s)=>F(e)?s?.():t(e),z=e=>e==s||e==n,N=t=>e(t)==s,O=t=>e(t)==l,W=e=>Array.isArray(e),A=(e,t,s)=>e.slice(t,s),P=e=>e.length,_=()=>{},j=(e,t)=>e.includes(t),B=(e,t)=>e.every(t),U=(e,t)=>P(e)===P(t)&&B(e,((e,s)=>t[s]===e)),q=(e,t)=>B(e,((s,n)=>0==n||t(e[n-1],s)<=0)),G=(e,t)=>e.sort(t),K=(e,t)=>e.forEach(t),X=(e,t)=>e.map(t),Y=e=>$(e,((e,t)=>e+t),0),Z=e=>0==P(e),$=(e,t,s)=>e.reduce(t,s),ee=(e,...t)=>e.push(...t),te=e=>e.pop(),se=e=>e.shift(),ne=t=>{const s=e(t);return z(s)||s==o&&x(t)?s:void 0},oe=e=>F(e)||!F(ne(e)),le=(e,t,s,n,o)=>F(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),re=(e,t,s)=>F(s)?e.delValue(t):e.setValue(t,s),ae=e=>t=>$(fe(t),((t,s)=>t+e(s)),0),ie=e=>e?.size??0,ce=ae(ie),de=ae(ce),ue=ae(de),ge=(e,t)=>e?.has(t)??!1,he=e=>F(e)||0==ie(e),fe=e=>[...e?.values()??[]],Ie=e=>e.clear(),be=(e,t)=>e?.forEach(t),we=(e,t)=>e?.delete(t),Le=Object,Ce=e=>Le.getPrototypeOf(e),Re=Le.entries,Te=Le.isFrozen,ve=e=>!F(e)&&Q(Ce(e),(e=>e==Le.prototype||F(Ce(e))),(()=>!0)),pe=Le.keys,Se=Le.freeze,ye=(e=[])=>Le.fromEntries(e),Ve=(e,t)=>t in e,Me=(e,t)=>(delete e[t],e),me=(e,t)=>K(Re(e),(([e,s])=>t(s,e))),Ee=(e,t)=>ye(((e,t)=>X(Re(e),(([e,s])=>t(s,e))))(e,((e,s)=>[s,t(e,s)]))),ke=e=>ve(e)&&0==(e=>P(pe(e)))(e),De=(e,t,s)=>(Ve(e,t)||(e[t]=s()),e[t]),He=(e,t,s,n=0)=>F(e)||!ve(e)||!n&&ke(e)||Te(e)?(s?.(),!1):(me(e,((s,n)=>{t(s,n)||Me(e,n)})),!!n||!ke(e)),Je=e=>new Map(e),xe=e=>[...e?.keys()??[]],Fe=(e,t)=>e?.get(t),Qe=(e,t)=>be(e,((e,s)=>t(s,e))),ze=(e,t,s)=>F(s)?(we(e,t),e):e?.set(t,s),Ne=(e,t,s,n)=>(ge(e,t)?n?.(Fe(e,t)):ze(e,t,s()),Fe(e,t)),Oe=(e,t,s,n=ze)=>(Ee(t,((t,n)=>s(e,n,t))),Qe(e,(s=>Ve(t,s)?0:n(e,s))),e),We=(e,t,s,n)=>{const o={};return be(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;n?.(s)||(o[l]=s)}})),o},Ae=(e,t,s)=>We(e,(e=>We(e,t,s)),he,ke),Pe=(e,t,s)=>We(e,(e=>Ae(e,t,s)),he,ke),_e=(e,t)=>{const s=Je();return be(e,((e,n)=>s.set(n,t?.(e)??e))),s},je=e=>_e(e,_e),Be=e=>_e(e,je),Ue=(e,t,s,n,o=0)=>Q((s?Ne:Fe)(e,t[o],o>P(t)-2?s:Je),(l=>{if(o>P(t)-2)return n?.(l)&&ze(e,t[o]),l;const r=Ue(l,t,s,n,o+1);return he(l)&&ze(e,t[o]),r})),qe=e=>new Set(W(e)||F(e)?e:[e]),Ge=(e,t)=>e?.add(t),Ke=(e,t,s,n,o)=>{const l=e.hasRow,r=Je(),a=Je(),i=Je(),c=Je(),d=Je(),u=Je(),g=(t,s,...n)=>{const o=Ne(u,t,qe);return K(n,(t=>Ge(o,t)&&s&&e.callListener(t))),n},h=(t,...s)=>Q(Fe(u,t),(n=>{K(Z(s)?fe(n):s,(t=>{e.delListener(t),we(n,t)})),he(n)&&ze(u,t)})),f=(e,s)=>{ze(r,e,s),ge(a,e)||(ze(a,e,t()),ze(c,e,Je()),ze(d,e,Je()),o(i))},I=e=>{ze(r,e),ze(a,e),ze(c,e),ze(d,e),h(e),o(i)};return[()=>e,()=>xe(r),e=>Qe(a,e),e=>ge(a,e),e=>Fe(r,e),e=>Fe(a,e),(e,t)=>ze(a,e,t),f,(t,n,o,r,a)=>{f(t,n);const i=Je(),u=Je(),I=Fe(c,t),b=Fe(d,t),w=t=>{const o=s=>e.getCell(n,t,s),c=Fe(I,t),d=l(n,t)?s(r(o,t)):void 0;if(c===d||W(c)&&W(d)&&U(c,d)||ze(i,t,[c,d]),!F(a)){const e=Fe(b,t),s=l(n,t)?a(o,t):void 0;e!=s&&ze(u,t,s)}},L=e=>{o((()=>{be(i,(([,e],t)=>ze(I,t,e))),be(u,((e,t)=>ze(b,t,e)))}),i,u,I,b,e),Ie(i),Ie(u)};Qe(I,w),e.hasTable(n)&&K(e.getRowIds(n),(e=>{ge(I,e)||w(e)})),L(!0),h(t),g(t,0,e.addRowListener(n,null,((e,t,s)=>w(s))),e.addTableListener(n,(()=>L())))},I,e=>n(e,i),()=>Qe(u,I),g,h]},Xe=(e,s)=>N(e)?t=>t(e):e??(()=>s??t),Ye=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const o=s.get(n);return t?.(o),o}},Ze=/^\d+$/,$e=()=>{const e=[];let s=0;return[n=>(n?se(e):null)??t+s++,t=>{Ze.test(t)&&P(e)<1e3&&ee(e,t)}]},et=e=>{let s;const[n,o]=$e(),l=Je();return[(o,r,a,i=[],c=()=>[])=>{s??=e();const d=n(1);return ze(l,d,[o,r,a,i,c]),Ge(Ue(r,a??[t],qe),d),d},(e,n,...o)=>K(((e,s=[t])=>{const n=[],o=(e,t)=>t==P(s)?ee(n,e):null===s[t]?be(e,(e=>o(e,t+1))):K([s[t],null],(s=>o(Fe(e,s),t+1)));return o(e,0),n})(e,n),(e=>be(e,(e=>Fe(l,e)[0](s,...n??[],...o))))),e=>Q(Fe(l,e),(([,s,n])=>(Ue(s,n??[t],void 0,(t=>(we(t,e),he(t)?1:0))),ze(l,e),o(e),n))),e=>Q(Fe(l,e),(([e,,t=[],n,o])=>{const l=(...r)=>{const a=P(r);a==P(t)?e(s,...r,...o(r)):F(t[a])?K(n[a]?.(...r)??[],(e=>l(...r,e))):l(...r,t[a])};l()}))]},tt=Ye((e=>{let s,n,o,l=100,r=Je(),a=Je(),i=1;const c=Je(),d=Je(),[u,g,h]=et((()=>J)),f=Je(),I=Je(),b=[],w=[],L=(t,s)=>{i=0,e.transaction((()=>{const[n,o]=Fe(f,s);be(n,((s,n)=>be(s,((s,o)=>be(s,((s,l)=>le(e,n,o,l,s[t]))))))),be(o,((s,n)=>re(e,n,s[t])))})),i=1},C=e=>{ze(f,e),ze(I,e),g(d,[e])},R=(e,t)=>K(((e,t)=>e.splice(0,t))(e,t??P(e)),C),T=()=>R(b,P(b)-l),v=()=>Q(s,(()=>{ee(b,s),T(),R(w),s=void 0,o=1})),p=()=>{s=te(b),o=1};let S,y;const V=(e=t)=>(F(s)&&(s=t+n++,ze(f,s,[r,a]),D(s,e),r=Je(),a=Je(),o=1),s),M=()=>{Z(b)||(((e,...t)=>{e.unshift(...t)})(w,V()),L(0,s),s=te(b),o=1)},m=()=>{Z(w)||(ee(b,s),s=se(w),L(1,s),o=1)},E=()=>{o&&(g(c),o=0)},k=e=>{const t=V(e);return E(),t},D=(e,t)=>(H(e)&&Fe(I,e)!==t&&(ze(I,e,t),g(d,[e])),J),H=e=>ge(f,e),J={setSize:e=>(l=e,T(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...b],s,[...w]],forEachCheckpoint:e=>Qe(I,e),hasCheckpoint:H,getCheckpoint:e=>Fe(I,e),goBackward:()=>(M(),E(),J),goForward:()=>(m(),E(),J),goTo:e=>{const t=j(b,e)?M:j(w,e)?m:null;for(;!F(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(h(e),J),clear:()=>(R(b),R(w),F(s)||C(s),s=void 0,n=0,k(),J),clearForward:()=>(Z(w)||(R(w),g(c)),J),destroy:()=>{e.delListener(S),e.delListener(y)},getListenerStats:()=>({checkpointIds:ce(c),checkpoint:ce(d)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,((e,t,s,n,o,l)=>{if(i){v();const e=Ne(r,t,Je),a=Ne(e,s,Je),i=Ne(a,n,(()=>[l,void 0]));i[1]=o,i[0]===o&&he(ze(a,n))&&he(ze(e,s))&&he(ze(r,t))&&p(),E()}})),y=e.addValueListener(null,((e,t,s,n)=>{if(i){v();const e=Ne(a,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&he(ze(a,t))&&p(),E()}}))}};return Se(J.clear())}),(e=>e._registerListeners())),st=m("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),nt=Je(X(st,((e,t)=>[e,t]))),ot=e=>st[63&e],lt=(e,t)=>Fe(nt,e[t])??0,rt=E.crypto?e=>E.crypto.getRandomValues(e):e=>X(e,(()=>J(256*k.random()))),at=(e,t)=>(e??0)<(t??0)?-1:1,it=(e=16)=>$(rt(new Uint8Array(e)),((e,t)=>e+ot(t)),""),ct=Ye((e=>{const s=Je(),n=Je(),[o,l,r]=et((()=>C)),[a,i,c,d,u,g,h,,f,I,b,w]=Ke(e,Je,(e=>F(e)?t:W(e)?X(e,y):y(e)),o,l),L=(t,s,n)=>{const o=u(t);be(n,((t,n)=>s(n,(s=>be(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},C={setIndexDefinition:(e,t,o,r,a,i=at)=>{const c=F(a)?void 0:([e],[t])=>a(e,t);return f(e,t,((t,o,a,d,u,f)=>{let I=0;const b=qe(),w=qe(),L=g(e);if(be(o,(([e,t],s)=>{const n=qe(e),o=qe(t);be(n,(e=>we(o,e)?we(n,e):0)),be(n,(e=>{Ge(b,e),Q(Fe(L,e),(t=>{we(t,s),he(t)&&(ze(L,e),I=1)}))})),be(o,(e=>{Ge(b,e),ge(L,e)||(ze(L,e,qe()),I=1),Ge(Fe(L,e),s),F(r)||Ge(w,e)}))})),t(),he(u)||(f?Qe(L,(e=>Ge(w,e))):Qe(a,(e=>Q(Fe(d,e),(e=>K(W(e)?e:[e],(e=>Ge(w,e))))))),be(w,(e=>{const t=(t,s)=>i(Fe(u,t),Fe(u,s),e),s=[...Fe(L,e)];q(s,t)||(ze(L,e,qe(G(s,t))),Ge(b,e))}))),(I||f)&&!F(c)){const t=[...L];q(t,c)||(h(e,Je(G(t,c))),I=1)}I&&l(s,[e]),be(b,(t=>l(n,[e,t])))}),Xe(o),Q(r,Xe)),C},delIndexDefinition:e=>(I(e),C),getStore:a,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>L(t,e,s))))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:d,hasSlice:(e,t)=>ge(g(e),t),getTableId:u,getSliceIds:e=>xe(g(e)),getSliceRowIds:(e,t)=>fe(Fe(g(e),t)),addIndexIdsListener:b,addSliceIdsListener:(e,t)=>o(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>o(s,n,[e,t]),delListener:e=>(r(e),C),destroy:w,getListenerStats:()=>({sliceIds:ce(s),sliceRowIds:de(n)})};return Se(C)})),dt=new E.TextEncoder,ut=e=>{let t=2166136261;return K(dt.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},gt=2**36,ht=2**30,ft=2**24,It=2**18,bt=4096,wt=JSON.stringify,Lt=JSON.parse,Ct=e=>wt(e,((e,t)=>t instanceof Map?Le.fromEntries([...t]):t)),Rt=([e,t])=>vt(e,t),Tt=([e,t,s])=>[e,t,s],vt=(e,t)=>t?[e,t]:[e],pt=(e,t,s)=>[e,t,s],St=e=>e[2],yt=(e,t)=>ut(e+":"+t),Vt=(e,t)=>t>e?(e?ut(e):0)^ut(t):0,Mt=(e,t)=>((e??"")>(t??"")?e:t)??"",mt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},Et=(e=t)=>vt(ye(),e),kt=(e=t)=>[Je(),e,0],Dt=([e,t,s],n=Tt)=>[We(e,n),t,s],Ht=([e,t],s=Rt)=>vt(We(e,s),t),Jt=(t,s)=>W(t)&&3==P(t)&&N(t[1])&&e(t[2])==o&&x(t[2])&&s(t[0]),xt=e=>[e,e],Ft=(e,t=ce)=>t(e[0])+t(e[1]),Qt=()=>[Je(),Je()],zt=e=>[...e],Nt=([e,t])=>e===t,Ot=(e,t,s)=>ze(e,t,Fe(e,t)==-s?void 0:s),Wt=()=>{let e,t,s=!1,n=!1,l=0,c=[];const g=Je(),C=Je(),V=Je(),M=Je(),m=Je(),E=Je(),k=Je(),D=Je(),H=Je(),J=Je(),x=Je(),N=Je(),P=Je(),_=Je(),B=qe(),q=Je(),Y=Je(),Z=Je(),$=Je(),te=Qt(),se=Qt(),oe=Qt(),ae=Qt(),fe=Qt(),Le=Qt(),Ce=Qt(),Re=Qt(),Te=Qt(),ve=Qt(),pe=Qt(),ye=Qt(),me=Qt(),De=Qt(),Ue=Qt(),Ke=Qt(),Xe=Qt(),Ye=Qt(),Ze=Qt(),tt=Qt(),st=Qt(),nt=Qt(),ot=Je(),lt=Qt(),[rt,it,ct,dt]=et((()=>Os)),ut=e=>{if(!He(e,((e,t)=>j([r,a],t))))return!1;const t=e[r];return!(!z(t)&&t!=o||(ne(e[a])!=t&&Me(e,a),0))},gt=W,ht=(t,s)=>(!e||ge(x,s)||Yt(s))&&He(t,((e,t)=>ft(s,t,e)),(()=>Yt(s))),ft=(e,t,s,n)=>He(n?s:Rt(s,e,t),((n,o)=>Q(It(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Yt(e,t))),It=(t,s,n,o)=>e?Q(Fe(Fe(x,t),n),(e=>ne(o)!=e[r]?Yt(t,s,n,o,e[a]):o),(()=>Yt(t,s,n,o))):F(ne(o))?Yt(t,s,n,o):o,bt=(e,t)=>He(t?e:Tt(e),((t,s)=>Q(wt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Zt())),wt=(e,s)=>t?Q(Fe(P,e),(t=>ne(s)!=t[r]?Zt(e,s,t[a]):s),(()=>Zt(e,s))):F(ne(s))?Zt(e,s):s,Rt=(e,t,s)=>(Q(Fe(N,t),(([n,o])=>{be(n,((t,s)=>{Ve(e,s)||(e[s]=t)})),be(o,(n=>{Ve(e,n)||Yt(t,s,n)}))})),e),Tt=e=>(t&&(be(_,((t,s)=>{Ve(e,s)||(e[s]=t)})),be(B,(t=>{Ve(e,t)||Zt(t)}))),e),vt=e=>Oe(x,e,((e,t,s)=>{const n=Je(),o=qe();Oe(Ne(x,t,Je),s,((e,t,s)=>{ze(e,t,s),Q(s[a],(e=>ze(n,t,e)),(()=>Ge(o,t)))})),ze(N,t,[n,o])}),((e,t)=>{ze(x,t),ze(N,t)})),pt=e=>Oe(P,e,((e,t,s)=>{ze(P,t,s),Q(s[a],(e=>ze(_,t,e)),(()=>Ge(B,t)))}),((e,t)=>{ze(P,t),ze(_,t),we(B,t)})),St=e=>ke(e)?ks():ys(e),yt=e=>Oe(Z,e,((e,t,s)=>Vt(t,s)),((e,t)=>At(t))),Vt=(e,t)=>Oe(Ne(Z,e,(()=>(Bt(e,1),ze(q,e,$e()),ze(Y,e,Je()),Je()))),t,((t,s,n)=>Mt(e,t,s,n)),((t,s)=>Pt(e,t,s))),Mt=(e,t,s,n,o)=>Oe(Ne(t,s,(()=>(Ut(e,s,1),Je()))),n,((t,n,o)=>mt(e,s,t,n,o)),((n,l)=>_t(e,t,s,n,l,o))),mt=(e,t,s,n,o)=>{ge(s,n)||qt(e,t,n,1);const l=Fe(s,n);o!==l&&(Gt(e,t,n,l,o),ze(s,n,o))},Et=(e,t,s,n,o)=>Q(Fe(t,s),(t=>mt(e,s,t,n,o)),(()=>Mt(e,t,s,Rt({[n]:o},e,s)))),kt=e=>ke(e)?Js():Vs(e),Dt=e=>Oe($,e,((e,t,s)=>Ht(t,s)),((e,t)=>jt(t))),Ht=(e,t)=>{ge($,e)||Kt(e,1);const s=Fe($,e);t!==s&&(Xt(e,s,t),ze($,e,t))},Jt=e=>Fe(Z,e)??Vt(e,{}),At=e=>Vt(e,{}),Pt=(e,t,s)=>{const[,n]=Fe(q,e);n(s),Mt(e,t,s,{},!0)},_t=(e,t,s,n,o,l)=>{const r=Fe(Fe(N,e)?.[0],o);if(!F(r)&&!l)return mt(e,s,n,o,r);const a=t=>{Gt(e,s,t,Fe(n,t)),qt(e,s,t,-1),ze(n,t)};F(r)?a(o):Qe(n,a),he(n)&&(Ut(e,s,-1),he(ze(t,s))&&(Bt(e,-1),ze(Z,e),ze(q,e),ze(Y,e)))},jt=e=>{const t=Fe(_,e);if(!F(t))return Ht(e,t);Xt(e,Fe($,e)),Kt(e,-1),ze($,e)},Bt=(e,t)=>Ot(g,e,t),Ut=(e,t,s)=>Ot(Ne(M,e,Je),t,s)&&ze(V,e,Ne(V,e,(()=>0))+s),qt=(e,t,s,n)=>{const o=Fe(Y,e),l=Fe(o,s)??0;(0==l&&1==n||1==l&&-1==n)&&Ot(Ne(C,e,Je),s,n),ze(o,s,l!=-n?l+n:null),Ot(Ne(Ne(m,e,Je),t,Je),s,n)},Gt=(e,t,s,n,o)=>{Ne(Ne(Ne(E,e,Je),t,Je),s,(()=>[n,0]))[1]=o,c[3]?.(e,t,s,o)},Kt=(e,t)=>Ot(k,e,t),Xt=(e,t,s)=>{Ne(D,e,(()=>[t,0]))[1]=s,c[4]?.(e,s)},Yt=(e,t,s,n,o)=>(ee(Ne(Ne(Ne(H,e,Je),t,Je),s,(()=>[])),n),o),Zt=(e,t,s)=>(ee(Ne(J,e,(()=>[])),t),s),$t=(e,t,s)=>Q(Fe(Fe(Fe(E,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(fs(e,t,s))])),es=e=>Q(Fe(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(ws(e))])),ts=e=>he(H)||he(Ke[e])?0:be(e?Be(H):H,((t,s)=>be(t,((t,n)=>be(t,((t,o)=>it(Ke[e],[s,n,o],t))))))),ss=e=>he(J)||he(Xe[e])?0:be(e?_e(J):J,((t,s)=>it(Xe[e],[s],t))),ns=(e,t,s,n)=>{if(!he(e))return it(t,n,(()=>We(e))),Qe(e,((e,t)=>it(s,[...n??[],e],1==t))),1},os=e=>{const t=Ls();t!=s&&it(te[e],void 0,t);const n=he(ve[e]),o=he(me[e])&&he(De[e])&&he(Te[e])&&he(pe[e])&&he(Le[e])&&he(Ce[e])&&he(Re[e])&&n&&he(oe[e])&&he(ae[e]),l=he(Ue[e])&&he(ye[e])&&he(fe[e])&&he(se[e]);if(!o||!l){const t=e?[_e(g),je(C),_e(V),je(M),Be(m),Be(E)]:[g,C,V,M,m,E];if(!o){ns(t[0],oe[e],ae[e]),be(t[1],((t,s)=>ns(t,Le[e],Ce[e],[s]))),be(t[2],((t,s)=>{0!=t&&it(Re[e],[s],ds(s))}));const s=qe();be(t[3],((t,o)=>{ns(t,Te[e],pe[e],[o])&&!n&&(it(ve[e],[o,null]),Ge(s,o))})),n||be(t[5],((t,n)=>{if(!ge(s,n)){const s=qe();be(t,(e=>be(e,(([t,n],o)=>n!==t?Ge(s,o):we(e,o))))),be(s,(t=>it(ve[e],[n,t])))}})),be(t[4],((t,s)=>be(t,((t,n)=>ns(t,me[e],De[e],[s,n])))))}if(!l){let s;be(t[5],((t,n)=>{let o;be(t,((t,l)=>{let r;be(t,(([t,a],i)=>{a!==t&&(it(Ue[e],[n,l,i],a,t,$t),s=o=r=1)})),r&&it(ye[e],[n,l],$t)})),o&&it(fe[e],[n],$t)})),s&&it(se[e],void 0,$t)}}},ls=e=>{const t=ps();t!=n&&it(Ye[e],void 0,t);const s=he(tt[e])&&he(st[e]),o=he(nt[e])&&he(Ze[e]);if(!s||!o){const t=e?[_e(k),_e(D)]:[k,D];if(s||ns(t[0],tt[e],st[e]),!o){let s;be(t[1],(([t,n],o)=>{n!==t&&(it(nt[e],[o],n,t,es),s=1)})),s&&it(Ze[e],void 0,es)}}},rs=(e,...t)=>(Qs((()=>e(...X(t,y)))),Os),as=()=>Pe(Z),is=()=>xe(Z),cs=e=>xe(Fe(Y,y(e))),ds=e=>ie(Fe(Z,y(e))),us=e=>xe(Fe(Z,y(e))),gs=(e,t,s,n=0,o)=>{return X(A(G((l=Fe(Z,y(e)),r=(e,s)=>[F(t)?s:Fe(e,y(t)),s],X([...l?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>at(e,t)*(s?-1:1))),n,F(o)?o:n+o),(([,e])=>e));var l,r},hs=(e,t)=>xe(Fe(Fe(Z,y(e)),y(t))),fs=(e,t,s)=>Fe(Fe(Fe(Z,y(e)),y(t)),y(s)),Is=()=>We($),bs=()=>xe($),ws=e=>Fe($,y(e)),Ls=()=>!he(Z),Cs=e=>ge(Z,y(e)),Rs=(e,t)=>ge(Fe(Y,y(e)),y(t)),Ts=(e,t)=>ge(Fe(Z,y(e)),y(t)),vs=(e,t,s)=>ge(Fe(Fe(Z,y(e)),y(t)),y(s)),ps=()=>!he($),Ss=e=>ge($,y(e)),ys=e=>rs((()=>(e=>He(e,ht,Yt))(e)?yt(e):0)),Vs=e=>rs((()=>bt(e)?Dt(e):0)),Ms=e=>{try{St(Lt(e))}catch{}return Os},ms=t=>rs((()=>{if((e=He(t,(e=>He(e,ut))))&&(vt(t),!he(Z))){const e=as();ks(),ys(e)}})),Es=e=>rs((()=>{if(t=(e=>He(e,ut))(e)){const s=Is();Fs(),Js(),t=!0,pt(e),Vs(s)}})),ks=()=>rs((()=>yt({}))),Ds=e=>rs((e=>ge(Z,e)?At(e):0),e),Hs=(e,t)=>rs(((e,t)=>Q(Fe(Z,e),(s=>ge(s,t)?Pt(e,s,t):0))),e,t),Js=()=>rs((()=>Dt({}))),xs=()=>rs((()=>{vt({}),e=!1})),Fs=()=>rs((()=>{pt({}),t=!1})),Qs=(e,t)=>{if(-1!=l){zs();const s=e();return Ns(t),s}},zs=()=>(-1!=l&&l++,1==l&&(c[0]?.(),it(ot)),Os),Ns=e=>(l>0&&(l--,0==l&&(l=1,ts(1),he(E)||os(1),ss(1),he(D)||ls(1),e?.(Os)&&(be(E,((e,t)=>be(e,((e,s)=>be(e,(([e],n)=>le(Os,t,s,n,e))))))),Ie(E),be(D,(([e],t)=>re(Os,t,e))),Ie(D)),it(lt[0],void 0),l=-1,ts(0),he(E)||os(0),ss(0),he(D)||ls(0),c[1]?.(),it(lt[1],void 0),c[2]?.(),l=0,s=Ls(),n=ps(),K([g,C,V,M,m,E,H,k,D,J],Ie))),Os),Os={getContent:()=>[as(),Is()],getTables:as,getTableIds:is,getTable:e=>Ae(Fe(Z,y(e))),getTableCellIds:cs,getRowCount:ds,getRowIds:us,getSortedRowIds:gs,getRow:(e,t)=>We(Fe(Fe(Z,y(e)),y(t))),getCellIds:hs,getCell:fs,getValues:Is,getValueIds:bs,getValue:ws,hasTables:Ls,hasTable:Cs,hasTableCell:Rs,hasRow:Ts,hasCell:vs,hasValues:ps,hasValue:Ss,getTablesJson:()=>Ct(Z),getValuesJson:()=>Ct($),getJson:()=>Ct([Z,$]),getTablesSchemaJson:()=>Ct(x),getValuesSchemaJson:()=>Ct(P),getSchemaJson:()=>Ct([x,P]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>rs((()=>{const t=O(e)?e():e;gt(t)&&(([e,t])=>{(ke(e)?ks:ys)(e),(ke(t)?Js:Vs)(t)})(t)})),setTables:ys,setTable:(e,t)=>rs((e=>ht(t,e)?Vt(e,t):0),e),setRow:(e,t,s)=>rs(((e,t)=>ft(e,t,s)?Mt(e,Jt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Qs((()=>{let n;return ft(e,n,t)&&(e=y(e),Mt(e,Jt(e),n=((e,t)=>{const[s]=Fe(q,e);let n;do{n=s(t)}while(ge(Fe(Z,e),n));return n})(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>rs(((e,t)=>{if(ft(e,t,s,1)){const n=Jt(e);Ee(s,((s,o)=>Et(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>rs(((e,t,s)=>Q(It(e,t,s,O(n)?n(fs(e,t,s)):n),(n=>Et(e,Jt(e),t,s,n)))),e,t,s),setValues:Vs,setPartialValues:e=>rs((()=>bt(e,1)?Ee(e,((e,t)=>Ht(t,e))):0)),setValue:(e,t)=>rs((e=>Q(wt(e,O(t)?t(ws(e)):t),(t=>Ht(e,t)))),e),applyChanges:e=>rs((()=>{Ee(e[0],((e,t)=>F(e)?Ds(t):Ee(e,((e,s)=>F(e)?Hs(t,s):Ee(e,((e,n)=>le(Os,t,s,n,e))))))),Ee(e[1],((e,t)=>re(Os,t,e)))})),setTablesJson:Ms,setValuesJson:e=>{try{kt(Lt(e))}catch{}return Os},setJson:e=>rs((()=>{try{const[t,s]=Lt(e);St(t),kt(s)}catch{Ms(e)}})),setTablesSchema:ms,setValuesSchema:Es,setSchema:(e,t)=>rs((()=>{ms(e),Es(t)})),delTables:ks,delTable:Ds,delRow:Hs,delCell:(e,t,s,n)=>rs(((e,t,s)=>Q(Fe(Z,e),(o=>Q(Fe(o,t),(l=>ge(l,s)?_t(e,o,t,l,s,n):0))))),e,t,s),delValues:Js,delValue:e=>rs((e=>ge($,e)?jt(e):0),e),delTablesSchema:xs,delValuesSchema:Fs,delSchema:()=>rs((()=>{xs(),Fs()})),transaction:Qs,startTransaction:zs,getTransactionChanges:()=>[We(E,((e,t)=>-1===Fe(g,t)?void 0:We(e,((e,s)=>-1===Fe(Fe(M,t),s)?void 0:We(e,(([,e])=>e),(e=>Nt(e)))),he,ke)),he,ke),We(D,(([,e])=>e),(e=>Nt(e))),1],getTransactionLog:()=>[!he(E),!he(D),Pe(E,zt,Nt),Pe(H),We(D,zt,Nt),We(J),We(g),Ae(M),Pe(m),We(k)],finishTransaction:Ns,forEachTable:e=>be(Z,((t,s)=>e(s,(e=>be(t,((t,s)=>e(s,(e=>Qe(t,e))))))))),forEachTableCell:(e,t)=>Qe(Fe(Y,y(e)),t),forEachRow:(e,t)=>be(Fe(Z,y(e)),((e,s)=>t(s,(t=>Qe(e,t))))),forEachCell:(e,t,s)=>Qe(Fe(Fe(Z,y(e)),y(t)),s),forEachValue:e=>Qe($,e),addSortedRowIdsListener:(e,t,s,n,o,l,r)=>{let a=gs(e,t,s,n,o);return rt((()=>{const r=gs(e,t,s,n,o);U(r,a)||(a=r,l(Os,e,t,s,n,o,a))}),ve[r?1:0],[e,t],[is])},addStartTransactionListener:e=>rt(e,ot),addWillFinishTransactionListener:e=>rt(e,lt[0]),addDidFinishTransactionListener:e=>rt(e,lt[1]),callListener:e=>(dt(e),Os),delListener:e=>(ct(e),Os),getListenerStats:()=>({hasTables:Ft(te),tables:Ft(se),tableIds:Ft(oe),hasTable:Ft(ae),table:Ft(fe),tableCellIds:Ft(Le),hasTableCell:Ft(Ce,de),rowCount:Ft(Re),rowIds:Ft(Te),sortedRowIds:Ft(ve),hasRow:Ft(pe,de),row:Ft(ye,de),cellIds:Ft(me,de),hasCell:Ft(De,ue),cell:Ft(Ue,ue),invalidCell:Ft(Ke,ue),hasValues:Ft(Ye),values:Ft(Ze),valueIds:Ft(tt),hasValue:Ft(st),value:Ft(nt),invalidValue:Ft(Xe),transaction:ce(ot)+Ft(lt)}),isMergeable:()=>!1,createStore:Wt,addListener:rt,callListeners:it,setInternalListeners:(e,t,s,n,o)=>c=[e,t,s,n,o]};return Ee({[u+f]:[0,te,[],()=>[Ls()]],[f]:[0,se],[I]:[0,oe],[u+h]:[1,ae,[is],e=>[Cs(...e)]],[h]:[1,fe,[is]],[h+T]:[1,Le,[is]],[u+h+R]:[2,Ce,[is,cs],e=>[Rs(...e)]],[w]:[1,Re,[is]],[L]:[1,Te,[is]],[u+b]:[2,pe,[is,us],e=>[Ts(...e)]],[b]:[2,ye,[is,us]],[T]:[2,me,[is,us]],[u+R]:[3,De,[is,us,hs],e=>[vs(...e)]],[R]:[3,Ue,[is,us,hs],e=>xt(fs(...e))],InvalidCell:[3,Ke],[u+p]:[0,Ye,[],()=>[ps()]],[p]:[0,Ze],[S]:[0,tt],[u+v]:[1,st,[bs],e=>[Ss(...e)]],[v]:[1,nt,[bs],e=>xt(ws(e[0]))],InvalidValue:[1,Xe]},(([e,t,s,n],o)=>{Os[d+o+i]=(...o)=>rt(o[e],t[o[e+1]?1:0],e>0?A(o,0,e):void 0,s,n)})),Se(Os)},At={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Pt=(e=t)=>[kt(e),kt(e)],_t=e=>{let s=1,n=Pt(),o=0;const l=Je(),r=qe(),[a,c]=(e=>{let t=0,s=-1;const n=Q(e,(e=>{const t=ut(e);return ot(t/ft)+ot(t/It)+ot(t/bt)+ot(t/64)+ot(t)}),(()=>it(5))),o=e=>{const n=t,[o,l]=F(e)||""==e?[0,0]:[lt(r=e,0)*gt+lt(r,1)*ht+lt(r,2)*ft+lt(r,3)*It+lt(r,4)*bt+64*lt(r,5)+lt(r,6),lt(r,7)*It+lt(r,8)*bt+64*lt(r,9)+lt(r,10)];var r;t=D(n,o,E.HLC_TIME??Date.now()),s=t==n?t==o?D(s,l):s:t==o?l:-1};return[()=>{return o(),l=++s,ot((e=t)/gt)+ot(e/ht)+ot(e/ft)+ot(e/It)+ot(e/bt)+ot(e/64)+ot(e)+ot(l/It)+ot(l/bt)+ot(l/64)+ot(l)+n;var e,l},o]})(e),u=Wt(),g=e=>{const t=s;return s=0,e(),s=t,w},h=(e,s=0)=>{const o={},l={},[[r,a=t,i=0],d]=e,[u,g]=n,[h,I,b]=u;let w=s?i:b,L=a;me(r,(([e,n=t,l=0],r)=>{const a=Ne(h,r,kt),[i,c,d]=a;let u=s?l:d,g=n;me(e,((e,t)=>{const[n,l,a]=f(e,Ne(i,t,kt),De(De(o,r,ye),t,ye),s);u^=s?0:(l?yt(t,l):0)^yt(t,a),g=Mt(g,n)})),u^=s?0:Vt(c,n),mt(a,n,u),w^=s?0:(d?yt(r,d):0)^yt(r,a[2]),L=Mt(L,g)})),w^=s?0:Vt(I,a),mt(u,a,w);const[C]=f(d,g,l,s);return c(Mt(L,C)),[o,l,1]},f=(e,s,n,o)=>{const[l,r=t,a=0]=e,[i,c,d]=s;let u=r,g=o?a:d;return me(l,(([e,s=t,l=0],r)=>{const a=Ne(i,r,(()=>[void 0,t,0])),[,c,d]=a;(!c||s>c)&&(mt(a,s,o?l:ut(Ct(e??null)+":"+s)),a[0]=e,n[r]=e,g^=o?0:yt(r,d)^yt(r,a[2]),u=Mt(u,s))})),g^=o?0:Vt(c,r),mt(s,r,g),[u,d,s[2]]},I=()=>[Dt(n[0],(e=>Dt(e,(e=>Dt(e))))),Dt(n[1])],b=e=>g((()=>u.applyChanges(h(e)))),w={getMergeableContent:I,getMergeableContentHashes:()=>[n[0][2],n[1][2]],getMergeableTableHashes:()=>We(n[0][0],St),getMergeableTableDiff:e=>{const t=Et(n[0][1]),s={};return Qe(n[0][0],((n,[o,l,r])=>Ve(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=Ht([o,l],(e=>Ht(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(n[0][0],s),(([n,,o])=>o!=e?Qe(n,((e,[,,n])=>De(t,s,ye)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=Et(n[0][1]),s={};return me(e,((e,o)=>Qe(Fe(n[0][0],o)?.[0],((n,[l,r,a])=>Ve(e,n)?a!==e[n]?De(s,o,ye)[n]=a:0:De(t[0],o,Et)[0][n]=Ht([l,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(n[0][0],s),(([n])=>me(e,((e,o)=>Q(Fe(n,o),(([n,,l])=>l!==e?Qe(n,((e,[,,n])=>De(De(t,s,ye),o,ye)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=n,o={};return me(e,((e,s)=>me(e,((e,n)=>Q(Fe(t,s),(([t,l])=>Q(Fe(t,n),(([t,r])=>Qe(t,((t,[a,i,c])=>c!==e[t]?De(De(o,s,(()=>Et(l)))[0],n,(()=>Et(r)))[0][t]=[a,i]:0)))))))))),vt(o,s)},getMergeableValueHashes:()=>We(n[1][0],St),getMergeableValueDiff:e=>{const[,[t,s]]=n,o=We(t,Rt,(([,,t],s)=>t==e?.[s]));return vt(o,s)},setMergeableContent:e=>g((()=>(e=>W(e)&&2==P(e)&&Jt(e[0],(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,oe)),void 0,1)))),void 0,1)))),void 0,1)))&&Jt(e[1],(e=>He(e,(e=>Jt(e,oe)),void 0,1))))(e)?u.transaction((()=>{u.delTables().delValues(),n=Pt(),u.applyChanges(h(e,1))})):0)),setDefaultContent:e=>(u.transaction((()=>{o=1,u.setContent(e),o=0})),w),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,o],[a,i,c]]=n,d=e?pt:vt,u={};be(l,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const l={};be(e,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const r={};be(e,(e=>{Q(Fe(t,e),(([t,s,n])=>r[e]=d(t,s,n)))})),l[s]=d(r,n,o)})))),u[s]=d(l,n,o)}))));const g={};return be(r,(e=>Q(Fe(a,e),(([t,s,n])=>g[e]=d(t,s,n))))),[d(u,s,o),d(g,i,c),1]},applyMergeableChanges:b,merge:e=>{const t=I(),s=e.getMergeableContent();return e.applyMergeableChanges(t),b(s)}};return u.setInternalListeners((()=>{}),(()=>{}),(()=>{Ie(l),Ie(r)}),((e,n,r,i)=>{Ge(Ne(Ne(l,e,Je),n,qe),r),s&&h([[{[e]:[{[n]:[{[r]:[i,o?t:a()]}]}]}],[{}],1])}),((e,n)=>{Ge(r,e),s&&h([[{}],[{[e]:[n,o?t:a()]}],1])})),Ee(u,((e,t)=>w[t]=V(t,"set")||V(t,"del")||V(t,"apply")||M(t,"Transaction")||t=="call"+i?(...t)=>(e(...t),w):V(t,d)&&M(t,i)?(...s)=>{const n=At[A(t,3,-8)]??0,o=s[n];return s[n]=(e,...t)=>o(w,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),Se(w)},jt=Je([["avg",[(e,t)=>Y(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=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:D(t,e)]],["min",[e=>H(...e),(e,t)=>H(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:H(t,e)]],["sum",[e=>Y(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Bt=(e,t,s,n,o,l=!1)=>{if(he(s))return;const[r,a,i,c]=o;return l||=F(e),be(n,(([s,n])=>{l||(e=F(s)?a?.(e,n,t++):F(n)?i?.(e,s,t--):c?.(e,n,s,t),l||=F(e))})),l?r(fe(s),ie(s)):e},Ut=Ye((e=>{const s=Je(),[n,o,l]=et((()=>w)),[r,a,i,c,d,u,g,,h,f,I,b]=Ke(e,_,(e=>isNaN(e)||F(e)||!0===e||!1===e||e===t?void 0:1*e),n,o),w={setMetricDefinition:(e,t,n,l,r,a,i)=>{const c=O(n)?[n,r,a,i]:Fe(jt,n)??Fe(jt,"sum");return h(e,t,((t,n,l,r,a,i)=>{const d=u(e),h=ie(r);i||=F(d),t();let f=Bt(d,h,r,n,c,i);x(f)||(f=void 0),f!=d&&(g(e,f),o(s,[e],f,d))}),Xe(l,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:a,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:I,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(l(e),w),destroy:b,getListenerStats:()=>({metric:ce(s)})};return Se(w)})),qt=Ye((e=>{const s=e.createStore,n=s(),o=s(),l=Je(),{addListener:r,callListeners:a,delListener:u}=o,[g,f,I,v,p,,,S,,y,V,M,m,E]=Ke(e,(()=>!0),_,r,a),k=(e,t,...s)=>K(s,(s=>Ge(Ne(Ne(l,t,Je),e,qe),s))),D=e=>{Q(Fe(l,e),(e=>{Qe(e,((e,t)=>be(t,(t=>e.delListener(t))))),Ie(e)})),K([o,n],(t=>t.delTable(e)))},H=(e,t,s)=>k(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),J={setQueryDefinition:(s,l,r)=>{S(s,l),D(s);const a=[],i=[[null,[l,null,null,[],Je()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=O(e)?[P(a)+t,e]:[F(s)?e:s,t=>t(e,s)];return ee(a,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=F(s)||O(t)?null:t,o=F(n)?t:s,l=[e,[e,n,O(o)?o:e=>e(o),[],Je()]];return ee(i,l),{as:e=>l[0]=e}},where:(e,t,s)=>ee(c,O(e)?e:F(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const l=[e,[e,O(t)?[t,s,n,o]:Fe(jt,t)??[(e,t)=>t]]];return ee(d,l),{as:e=>l[0]=e}},having:(e,t)=>ee(u,O(e)?e:s=>s(e)===t)});const g=Je(a);if(he(g))return J;const h=Je(i);Qe(h,((e,[,t])=>Q(Fe(h,t),(({3:t})=>F(e)?0:ee(t,e)))));const f=Je(d);let I=n;if(he(f)&&Z(u))I=o;else{H(s,I,o);const e=Je();Qe(f,((t,[s,n])=>Ge(Ne(e,s,qe),[t,n])));const t=qe();Qe(g,(s=>ge(e,s)?0:Ge(t,s)));const n=Je(),l=(t,n,l,r)=>Q(t,(([a,i,c,d])=>{Qe(n,((t,[s])=>{const n=Ne(a,t,Je),o=Fe(n,l),i=r?void 0:s;if(o!==i){const s=qe([[o,i]]),r=ie(n);ze(n,l,i),be(Fe(e,t),(([e,t])=>{const o=Bt(d[e],r,n,s,t);d[e]=F(ne(o))?null:o}))}})),he(i)||!B(u,(e=>e((e=>d[e]))))?o.delRow(s,c):F(c)?t[2]=o.addRow(s,d):o.setRow(s,c,d)}));k(I,s,I.addRowListener(s,null,((o,r,a,i)=>{const c=[],d=[],u=Je(),g=I.hasRow(s,a);let h=!g;be(t,(e=>{const[t,n,o]=i(s,a,e);ee(c,n),ee(d,o),h||=t})),Qe(e,(e=>{const[t,,n]=i(s,a,e);(h||t)&&ze(u,e,[n])})),h&&l(Ue(n,c,void 0,(([,e])=>(we(e,a),he(e)))),u,a,1),g&&l(Ue(n,d,(()=>{const e={};return be(t,(t=>e[t]=I.getCell(s,a,t))),[Je(),qe(),void 0,e]}),(([,e])=>{Ge(e,a)})),u,a)})))}H(s,e,I);const b=(t,n,o,r)=>{const a=t=>e.getCell(n,o,t);K(r,(n=>{const[o,,l,r,i]=Fe(h,n),c=l?.(a,t),[d,u]=Fe(i,t)??[];c!=d&&(F(u)||E(s,u),ze(i,t,F(c)?null:[c,...m(s,1,e.addRowListener(o,c,(()=>b(t,o,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...F(n)?[l,t,s]:s===l?[l,t,n]:[Fe(h,s)?.[0],Fe(Fe(h,s)?.[4],t)?.[0],n]);I.transaction((()=>B(c,(e=>e(n)))?Qe(g,((e,o)=>le(I,s,t,e,o(n,t)))):I.delRow(s,t)))})(t)},{3:w}=Fe(h,null);return I.transaction((()=>m(s,1,e.addRowListener(l,null,((t,n,o)=>{e.hasRow(l,o)?b(o,l,o,w):(I.delRow(s,o),be(h,(({4:e})=>Q(Fe(e,o),(([,t])=>{E(s,t),ze(e,o)})))))}))))),J},delQueryDefinition:e=>(D(e),y(e),J),getStore:g,getQueryIds:f,forEachQuery:I,hasQuery:v,getTableId:p,addQueryIdsListener:e=>V((()=>e(J))),delListener:e=>(u(e),J),destroy:M,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=o.getListenerStats();return n}};return Ee({[h]:[1,1],[h+T]:[0,1],[w]:[0,1],[L]:[0,1],[C]:[0,5],[b]:[1,2],[T]:[0,2],[R]:[1,3]},(([e,t],s)=>{K(e?["get","has","forEach"]:["get"],(e=>J[e+c+s]=(...t)=>o[e+s](...t))),J[d+c+s+i]=(...e)=>o[d+s+i](...A(e,0,t),((s,...n)=>e[t](J,...n)),!0)})),Se(J)})),Gt=Ye((e=>{const s=Je(),n=Je(),o=Je(),l=Je(),[r,a,i]=et((()=>v)),[c,d,u,g,h,f,,,I,b,w,L]=Ke(e,(()=>[Je(),Je(),Je(),Je()]),(e=>F(e)?void 0:e+t),r,a),C=(e,t,s)=>Q(f(e),(([n,,o])=>{if(!ge(o,t)){const l=qe();if(h(e)!=T(e))Ge(l,t);else{let e=t;for(;!F(e)&&!ge(l,e);)Ge(l,e),e=Fe(n,e)}if(s)return l;ze(o,t,l)}return Fe(o,t)})),R=(e,t)=>Q(f(e),(([,,e])=>ze(e,t))),T=e=>Fe(s,e),v={setRelationshipDefinition:(e,t,r,i)=>(ze(s,e,r),I(e,t,((t,s)=>{const r=qe(),i=qe(),c=qe(),[d,u]=f(e);be(s,(([t,s],n)=>{F(t)||(Ge(i,t),Q(Fe(u,t),(e=>{we(e,n),he(e)&&ze(u,t)}))),F(s)||(Ge(i,s),ge(u,s)||ze(u,s,qe()),Ge(Fe(u,s),n)),Ge(r,n),ze(d,n,s),Qe(Fe(l,e),(t=>{ge(C(e,t),n)&&Ge(c,t)}))})),t(),be(r,(t=>a(n,[e,t]))),be(i,(t=>a(o,[e,t]))),be(c,(t=>{R(e,t),a(l,[e,t])}))}),Xe(i)),v),delRelationshipDefinition:e=>(ze(s,e),b(e),v),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>Fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>fe(Fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>F(f(e))?[t]:fe(C(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(C(e,t),r(s,l,[e,t])),delListener:e=>(R(...i(e)??[]),v),destroy:L,getListenerStats:()=>({remoteRowId:de(n),localRowIds:de(o),linkedRowIds:de(l)})};return Se(v)}));export{tt as createCheckpoints,ct as createIndexes,_t as createMergeableStore,Ut as createMetrics,qt as createQueries,Gt as createRelationships,Wt as createStore,at as defaultSorter,it as getUniqueId};
1
+ const e=e=>typeof e,t="",s=e(t),n=e(!0),o=e(0),l=e(e),r="type",a="default",i="Listener",c="Result",d="add",u="Has",g="Ids",h="Table",f=h+"s",b=h+g,I="Row",w=I+"Count",L=I+g,C="Sorted"+I+g,R="Cell",T=R+g,v="Value",p=v+"s",S=v+g,y=e=>t+e,V=(e,t)=>e.startsWith(t),M=(e,t)=>e.endsWith(t),m=(e,s=t,n)=>e.split(s,n),E=globalThis,k=Math,D=k.max,H=k.min,J=k.floor,x=isFinite,F=e=>null==e,Q=(e,t,s)=>F(e)?s?.():t(e),z=e=>e==s||e==n,N=t=>e(t)==s,O=t=>e(t)==l,W=e=>Array.isArray(e),A=(e,t,s)=>e.slice(t,s),P=e=>e.length,j=()=>{},_=(e,t)=>e.includes(t),B=(e,t)=>e.every(t),U=(e,t)=>P(e)===P(t)&&B(e,((e,s)=>t[s]===e)),q=(e,t)=>B(e,((s,n)=>0==n||t(e[n-1],s)<=0)),G=(e,t)=>e.sort(t),K=(e,t)=>e.forEach(t),X=(e,t)=>e.map(t),Y=e=>$(e,((e,t)=>e+t),0),Z=e=>0==P(e),$=(e,t,s)=>e.reduce(t,s),ee=(e,...t)=>e.push(...t),te=e=>e.pop(),se=e=>e.shift(),ne=t=>{const s=e(t);return z(s)||s==o&&x(t)?s:void 0},oe=e=>F(e)||!F(ne(e)),le=(e,t,s,n,o)=>F(o)?e.delCell(t,s,n,!0):e.setCell(t,s,n,o),re=(e,t,s)=>F(s)?e.delValue(t):e.setValue(t,s),ae=e=>t=>$(fe(t),((t,s)=>t+e(s)),0),ie=e=>e?.size??0,ce=ae(ie),de=ae(ce),ue=ae(de),ge=(e,t)=>e?.has(t)??!1,he=e=>F(e)||0==ie(e),fe=e=>[...e?.values()??[]],be=e=>e.clear(),Ie=(e,t)=>e?.forEach(t),we=(e,t)=>e?.delete(t),Le=Object,Ce=e=>Le.getPrototypeOf(e),Re=Le.entries,Te=Le.isFrozen,ve=e=>!F(e)&&Q(Ce(e),(e=>e==Le.prototype||F(Ce(e))),(()=>!0)),pe=Le.keys,Se=Le.freeze,ye=(e=[])=>Le.fromEntries(e),Ve=(e,t)=>t in e,Me=(e,t)=>(delete e[t],e),me=(e,t)=>K(Re(e),(([e,s])=>t(s,e))),Ee=(e,t)=>ye(((e,t)=>X(Re(e),(([e,s])=>t(s,e))))(e,((e,s)=>[s,t(e,s)]))),ke=e=>ve(e)&&0==(e=>P(pe(e)))(e),De=(e,t,s)=>(Ve(e,t)||(e[t]=s()),e[t]),He=(e,t,s,n=0)=>F(e)||!ve(e)||!n&&ke(e)||Te(e)?(s?.(),!1):(me(e,((s,n)=>{t(s,n)||Me(e,n)})),!!n||!ke(e)),Je=e=>new Map(e),xe=e=>[...e?.keys()??[]],Fe=(e,t)=>e?.get(t),Qe=(e,t)=>Ie(e,((e,s)=>t(s,e))),ze=(e,t,s)=>F(s)?(we(e,t),e):e?.set(t,s),Ne=(e,t,s,n)=>(ge(e,t)?n?.(Fe(e,t)):ze(e,t,s()),Fe(e,t)),Oe=(e,t,s,n=ze)=>(Ee(t,((t,n)=>s(e,n,t))),Qe(e,(s=>Ve(t,s)?0:n(e,s))),e),We=(e,t,s,n)=>{const o={};return Ie(e,((e,l)=>{if(!s?.(e,l)){const s=t?t(e,l):e;n?.(s)||(o[l]=s)}})),o},Ae=(e,t,s)=>We(e,(e=>We(e,t,s)),he,ke),Pe=(e,t,s)=>We(e,(e=>Ae(e,t,s)),he,ke),je=(e,t)=>{const s=Je();return Ie(e,((e,n)=>s.set(n,t?.(e)??e))),s},_e=e=>je(e,je),Be=e=>je(e,_e),Ue=(e,t,s,n,o=0)=>Q((s?Ne:Fe)(e,t[o],o>P(t)-2?s:Je),(l=>{if(o>P(t)-2)return n?.(l)&&ze(e,t[o]),l;const r=Ue(l,t,s,n,o+1);return he(l)&&ze(e,t[o]),r})),qe=e=>new Set(W(e)||F(e)?e:[e]),Ge=(e,t)=>e?.add(t),Ke=(e,t,s,n,o)=>{const l=e.hasRow,r=Je(),a=Je(),i=Je(),c=Je(),d=Je(),u=Je(),g=(t,s,...n)=>{const o=Ne(u,t,qe);return K(n,(t=>Ge(o,t)&&s&&e.callListener(t))),n},h=(t,...s)=>Q(Fe(u,t),(n=>{K(Z(s)?fe(n):s,(t=>{e.delListener(t),we(n,t)})),he(n)&&ze(u,t)})),f=(e,s)=>{ze(r,e,s),ge(a,e)||(ze(a,e,t()),ze(c,e,Je()),ze(d,e,Je()),o(i))},b=e=>{ze(r,e),ze(a,e),ze(c,e),ze(d,e),h(e),o(i)};return[()=>e,()=>xe(r),e=>Qe(a,e),e=>ge(a,e),e=>Fe(r,e),e=>Fe(a,e),(e,t)=>ze(a,e,t),f,(t,n,o,r,a)=>{f(t,n);const i=Je(),u=Je(),b=Fe(c,t),I=Fe(d,t),w=t=>{const o=s=>e.getCell(n,t,s),c=Fe(b,t),d=l(n,t)?s(r(o,t)):void 0;if(c===d||W(c)&&W(d)&&U(c,d)||ze(i,t,[c,d]),!F(a)){const e=Fe(I,t),s=l(n,t)?a(o,t):void 0;e!=s&&ze(u,t,s)}},L=e=>{o((()=>{Ie(i,(([,e],t)=>ze(b,t,e))),Ie(u,((e,t)=>ze(I,t,e)))}),i,u,b,I,e),be(i),be(u)};Qe(b,w),e.hasTable(n)&&K(e.getRowIds(n),(e=>{ge(b,e)||w(e)})),L(!0),h(t),g(t,0,e.addRowListener(n,null,((e,t,s)=>w(s))),e.addTableListener(n,(()=>L())))},b,e=>n(e,i),()=>Qe(u,b),g,h]},Xe=(e,s)=>N(e)?t=>t(e):e??(()=>s??t),Ye=(e,t)=>{const s=new WeakMap;return n=>{s.has(n)||s.set(n,e(n));const o=s.get(n);return t?.(o),o}},Ze=/^\d+$/,$e=()=>{const e=[];let s=0;return[n=>(n?se(e):null)??t+s++,t=>{Ze.test(t)&&P(e)<1e3&&ee(e,t)}]},et=e=>{let s;const[n,o]=$e(),l=Je();return[(o,r,a,i=[],c=()=>[])=>{s??=e();const d=n(1);return ze(l,d,[o,r,a,i,c]),Ge(Ue(r,a??[t],qe),d),d},(e,n,...o)=>K(((e,s=[t])=>{const n=[],o=(e,t)=>t==P(s)?ee(n,e):null===s[t]?Ie(e,(e=>o(e,t+1))):K([s[t],null],(s=>o(Fe(e,s),t+1)));return o(e,0),n})(e,n),(e=>Ie(e,(e=>Fe(l,e)[0](s,...n??[],...o))))),e=>Q(Fe(l,e),(([,s,n])=>(Ue(s,n??[t],void 0,(t=>(we(t,e),he(t)?1:0))),ze(l,e),o(e),n))),e=>Q(Fe(l,e),(([e,,t=[],n,o])=>{const l=(...r)=>{const a=P(r);a==P(t)?e(s,...r,...o(r)):F(t[a])?K(n[a]?.(...r)??[],(e=>l(...r,e))):l(...r,t[a])};l()}))]},tt=Ye((e=>{let s,n,o,l=100,r=Je(),a=Je(),i=1;const c=Je(),d=Je(),[u,g,h]=et((()=>J)),f=Je(),b=Je(),I=[],w=[],L=(t,s)=>{i=0,e.transaction((()=>{const[n,o]=Fe(f,s);Ie(n,((s,n)=>Ie(s,((s,o)=>Ie(s,((s,l)=>le(e,n,o,l,s[t]))))))),Ie(o,((s,n)=>re(e,n,s[t])))})),i=1},C=e=>{ze(f,e),ze(b,e),g(d,[e])},R=(e,t)=>K(((e,t)=>e.splice(0,t))(e,t??P(e)),C),T=()=>R(I,P(I)-l),v=()=>Q(s,(()=>{ee(I,s),T(),R(w),s=void 0,o=1})),p=()=>{s=te(I),o=1};let S,y;const V=(e=t)=>(F(s)&&(s=t+n++,ze(f,s,[r,a]),D(s,e),r=Je(),a=Je(),o=1),s),M=()=>{Z(I)||(((e,...t)=>{e.unshift(...t)})(w,V()),L(0,s),s=te(I),o=1)},m=()=>{Z(w)||(ee(I,s),s=se(w),L(1,s),o=1)},E=()=>{o&&(g(c),o=0)},k=e=>{const t=V(e);return E(),t},D=(e,t)=>(H(e)&&Fe(b,e)!==t&&(ze(b,e,t),g(d,[e])),J),H=e=>ge(f,e),J={setSize:e=>(l=e,T(),J),addCheckpoint:k,setCheckpoint:D,getStore:()=>e,getCheckpointIds:()=>[[...I],s,[...w]],forEachCheckpoint:e=>Qe(b,e),hasCheckpoint:H,getCheckpoint:e=>Fe(b,e),goBackward:()=>(M(),E(),J),goForward:()=>(m(),E(),J),goTo:e=>{const t=_(I,e)?M:_(w,e)?m:null;for(;!F(t)&&e!=s;)t();return E(),J},addCheckpointIdsListener:e=>u(e,c),addCheckpointListener:(e,t)=>u(t,d,[e]),delListener:e=>(h(e),J),clear:()=>(R(I),R(w),F(s)||C(s),s=void 0,n=0,k(),J),clearForward:()=>(Z(w)||(R(w),g(c)),J),destroy:()=>{e.delListener(S),e.delListener(y)},getListenerStats:()=>({checkpointIds:ce(c),checkpoint:ce(d)}),_registerListeners:()=>{S=e.addCellListener(null,null,null,((e,t,s,n,o,l)=>{if(i){v();const e=Ne(r,t,Je),a=Ne(e,s,Je),i=Ne(a,n,(()=>[l,void 0]));i[1]=o,i[0]===o&&he(ze(a,n))&&he(ze(e,s))&&he(ze(r,t))&&p(),E()}})),y=e.addValueListener(null,((e,t,s,n)=>{if(i){v();const e=Ne(a,t,(()=>[n,void 0]));e[1]=s,e[0]===s&&he(ze(a,t))&&p(),E()}}))}};return Se(J.clear())}),(e=>e._registerListeners())),st=m("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),nt=Je(X(st,((e,t)=>[e,t]))),ot=e=>st[63&e],lt=(e,t)=>Fe(nt,e[t])??0,rt=E.crypto?e=>E.crypto.getRandomValues(e):e=>X(e,(()=>J(256*k.random()))),at=(e,t)=>(e??0)<(t??0)?-1:1,it=(e=16)=>$(rt(new Uint8Array(e)),((e,t)=>e+ot(t)),""),ct=Ye((e=>{const s=Je(),n=Je(),[o,l,r]=et((()=>C)),[a,i,c,d,u,g,h,,f,b,I,w]=Ke(e,Je,(e=>F(e)?t:W(e)?X(e,y):y(e)),o,l),L=(t,s,n)=>{const o=u(t);Ie(n,((t,n)=>s(n,(s=>Ie(t,(t=>s(t,(s=>e.forEachCell(o,t,s)))))))))},C={setIndexDefinition:(e,t,o,r,a,i=at)=>{const c=F(a)?void 0:([e],[t])=>a(e,t);return f(e,t,((t,o,a,d,u,f)=>{let b=0;const I=qe(),w=qe(),L=g(e);if(Ie(o,(([e,t],s)=>{const n=qe(e),o=qe(t);Ie(n,(e=>we(o,e)?we(n,e):0)),Ie(n,(e=>{Ge(I,e),Q(Fe(L,e),(t=>{we(t,s),he(t)&&(ze(L,e),b=1)}))})),Ie(o,(e=>{Ge(I,e),ge(L,e)||(ze(L,e,qe()),b=1),Ge(Fe(L,e),s),F(r)||Ge(w,e)}))})),t(),he(u)||(f?Qe(L,(e=>Ge(w,e))):Qe(a,(e=>Q(Fe(d,e),(e=>K(W(e)?e:[e],(e=>Ge(w,e))))))),Ie(w,(e=>{const t=(t,s)=>i(Fe(u,t),Fe(u,s),e),s=[...Fe(L,e)];q(s,t)||(ze(L,e,qe(G(s,t))),Ge(I,e))}))),(b||f)&&!F(c)){const t=[...L];q(t,c)||(h(e,Je(G(t,c))),b=1)}b&&l(s,[e]),Ie(I,(t=>l(n,[e,t])))}),Xe(o),Q(r,Xe)),C},delIndexDefinition:e=>(b(e),C),getStore:a,getIndexIds:i,forEachIndex:e=>c(((t,s)=>e(t,(e=>L(t,e,s))))),forEachSlice:(e,t)=>L(e,t,g(e)),hasIndex:d,hasSlice:(e,t)=>ge(g(e),t),getTableId:u,getSliceIds:e=>xe(g(e)),getSliceRowIds:(e,t)=>fe(Fe(g(e),t)),addIndexIdsListener:I,addSliceIdsListener:(e,t)=>o(t,s,[e]),addSliceRowIdsListener:(e,t,s)=>o(s,n,[e,t]),delListener:e=>(r(e),C),destroy:w,getListenerStats:()=>({sliceIds:ce(s),sliceRowIds:de(n)})};return Se(C)})),dt=new E.TextEncoder,ut=e=>{let t=2166136261;return K(dt.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},gt=2**36,ht=2**30,ft=2**24,bt=2**18,It=4096,wt=JSON.stringify,Lt=JSON.parse,Ct=e=>wt(e,((e,t)=>t instanceof Map?Le.fromEntries([...t]):t)),Rt=([e,t])=>vt(e,t),Tt=([e,t,s])=>[e,t,s],vt=(e,t)=>t?[e,t]:[e],pt=(e,t,s)=>[e,t,s],St=e=>e[2],yt=(e,t)=>ut(e+":"+t),Vt=(e,t)=>t>e?(e?ut(e):0)^ut(t):0,Mt=(e,t)=>((e??"")>(t??"")?e:t)??"",mt=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},Et=(e=t)=>vt(ye(),e),kt=(e=t)=>[Je(),e,0],Dt=([e,t,s],n=Tt)=>[We(e,n),t,s],Ht=([e,t],s=Rt)=>vt(We(e,s),t),Jt=(t,s)=>W(t)&&3==P(t)&&N(t[1])&&e(t[2])==o&&x(t[2])&&s(t[0]),xt=e=>[e,e],Ft=(e,t=ce)=>t(e[0])+t(e[1]),Qt=()=>[Je(),Je()],zt=e=>[...e],Nt=([e,t])=>e===t,Ot=(e,t,s)=>ze(e,t,Fe(e,t)==-s?void 0:s),Wt=()=>{let e,t,s=!1,n=!1,l=0,c=[];const g=Je(),C=Je(),V=Je(),M=Je(),m=Je(),E=Je(),k=Je(),D=Je(),H=Je(),J=Je(),x=Je(),N=Je(),P=Je(),j=Je(),B=qe(),q=Je(),Y=Je(),Z=Je(),$=Je(),te=Qt(),se=Qt(),oe=Qt(),ae=Qt(),fe=Qt(),Le=Qt(),Ce=Qt(),Re=Qt(),Te=Qt(),ve=Qt(),pe=Qt(),ye=Qt(),me=Qt(),De=Qt(),Ue=Qt(),Ke=Qt(),Xe=Qt(),Ye=Qt(),Ze=Qt(),tt=Qt(),st=Qt(),nt=Qt(),ot=Je(),lt=Qt(),[rt,it,ct,dt]=et((()=>Os)),ut=e=>{if(!He(e,((e,t)=>_([r,a],t))))return!1;const t=e[r];return!(!z(t)&&t!=o||(ne(e[a])!=t&&Me(e,a),0))},gt=W,ht=(t,s)=>(!e||ge(x,s)||Yt(s))&&He(t,((e,t)=>ft(s,t,e)),(()=>Yt(s))),ft=(e,t,s,n)=>He(n?s:Rt(s,e,t),((n,o)=>Q(bt(e,t,o,n),(e=>(s[o]=e,!0)),(()=>!1))),(()=>Yt(e,t))),bt=(t,s,n,o)=>e?Q(Fe(Fe(x,t),n),(e=>ne(o)!=e[r]?Yt(t,s,n,o,e[a]):o),(()=>Yt(t,s,n,o))):F(ne(o))?Yt(t,s,n,o):o,It=(e,t)=>He(t?e:Tt(e),((t,s)=>Q(wt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Zt())),wt=(e,s)=>t?Q(Fe(P,e),(t=>ne(s)!=t[r]?Zt(e,s,t[a]):s),(()=>Zt(e,s))):F(ne(s))?Zt(e,s):s,Rt=(e,t,s)=>(Q(Fe(N,t),(([n,o])=>{Ie(n,((t,s)=>{Ve(e,s)||(e[s]=t)})),Ie(o,(n=>{Ve(e,n)||Yt(t,s,n)}))})),e),Tt=e=>(t&&(Ie(j,((t,s)=>{Ve(e,s)||(e[s]=t)})),Ie(B,(t=>{Ve(e,t)||Zt(t)}))),e),vt=e=>Oe(x,e,((e,t,s)=>{const n=Je(),o=qe();Oe(Ne(x,t,Je),s,((e,t,s)=>{ze(e,t,s),Q(s[a],(e=>ze(n,t,e)),(()=>Ge(o,t)))})),ze(N,t,[n,o])}),((e,t)=>{ze(x,t),ze(N,t)})),pt=e=>Oe(P,e,((e,t,s)=>{ze(P,t,s),Q(s[a],(e=>ze(j,t,e)),(()=>Ge(B,t)))}),((e,t)=>{ze(P,t),ze(j,t),we(B,t)})),St=e=>ke(e)?ks():ys(e),yt=e=>Oe(Z,e,((e,t,s)=>Vt(t,s)),((e,t)=>At(t))),Vt=(e,t)=>Oe(Ne(Z,e,(()=>(Bt(e,1),ze(q,e,$e()),ze(Y,e,Je()),Je()))),t,((t,s,n)=>Mt(e,t,s,n)),((t,s)=>Pt(e,t,s))),Mt=(e,t,s,n,o)=>Oe(Ne(t,s,(()=>(Ut(e,s,1),Je()))),n,((t,n,o)=>mt(e,s,t,n,o)),((n,l)=>jt(e,t,s,n,l,o))),mt=(e,t,s,n,o)=>{ge(s,n)||qt(e,t,n,1);const l=Fe(s,n);o!==l&&(Gt(e,t,n,l,o),ze(s,n,o))},Et=(e,t,s,n,o)=>Q(Fe(t,s),(t=>mt(e,s,t,n,o)),(()=>Mt(e,t,s,Rt({[n]:o},e,s)))),kt=e=>ke(e)?Js():Vs(e),Dt=e=>Oe($,e,((e,t,s)=>Ht(t,s)),((e,t)=>_t(t))),Ht=(e,t)=>{ge($,e)||Kt(e,1);const s=Fe($,e);t!==s&&(Xt(e,s,t),ze($,e,t))},Jt=e=>Fe(Z,e)??Vt(e,{}),At=e=>Vt(e,{}),Pt=(e,t,s)=>{const[,n]=Fe(q,e);n(s),Mt(e,t,s,{},!0)},jt=(e,t,s,n,o,l)=>{const r=Fe(Fe(N,e)?.[0],o);if(!F(r)&&!l)return mt(e,s,n,o,r);const a=t=>{Gt(e,s,t,Fe(n,t)),qt(e,s,t,-1),ze(n,t)};F(r)?a(o):Qe(n,a),he(n)&&(Ut(e,s,-1),he(ze(t,s))&&(Bt(e,-1),ze(Z,e),ze(q,e),ze(Y,e)))},_t=e=>{const t=Fe(j,e);if(!F(t))return Ht(e,t);Xt(e,Fe($,e)),Kt(e,-1),ze($,e)},Bt=(e,t)=>Ot(g,e,t),Ut=(e,t,s)=>Ot(Ne(M,e,Je),t,s)&&ze(V,e,Ne(V,e,(()=>0))+s),qt=(e,t,s,n)=>{const o=Fe(Y,e),l=Fe(o,s)??0;(0==l&&1==n||1==l&&-1==n)&&Ot(Ne(C,e,Je),s,n),ze(o,s,l!=-n?l+n:null),Ot(Ne(Ne(m,e,Je),t,Je),s,n)},Gt=(e,t,s,n,o)=>{Ne(Ne(Ne(E,e,Je),t,Je),s,(()=>[n,0]))[1]=o,c[3]?.(e,t,s,o)},Kt=(e,t)=>Ot(k,e,t),Xt=(e,t,s)=>{Ne(D,e,(()=>[t,0]))[1]=s,c[4]?.(e,s)},Yt=(e,t,s,n,o)=>(ee(Ne(Ne(Ne(H,e,Je),t,Je),s,(()=>[])),n),o),Zt=(e,t,s)=>(ee(Ne(J,e,(()=>[])),t),s),$t=(e,t,s)=>Q(Fe(Fe(Fe(E,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(fs(e,t,s))])),es=e=>Q(Fe(D,e),(([e,t])=>[!0,e,t]),(()=>[!1,...xt(ws(e))])),ts=e=>he(H)||he(Ke[e])?0:Ie(e?Be(H):H,((t,s)=>Ie(t,((t,n)=>Ie(t,((t,o)=>it(Ke[e],[s,n,o],t))))))),ss=e=>he(J)||he(Xe[e])?0:Ie(e?je(J):J,((t,s)=>it(Xe[e],[s],t))),ns=(e,t,s,n)=>{if(!he(e))return it(t,n,(()=>We(e))),Qe(e,((e,t)=>it(s,[...n??[],e],1==t))),1},os=e=>{const t=Ls();t!=s&&it(te[e],void 0,t);const n=he(ve[e]),o=he(me[e])&&he(De[e])&&he(Te[e])&&he(pe[e])&&he(Le[e])&&he(Ce[e])&&he(Re[e])&&n&&he(oe[e])&&he(ae[e]),l=he(Ue[e])&&he(ye[e])&&he(fe[e])&&he(se[e]);if(!o||!l){const t=e?[je(g),_e(C),je(V),_e(M),Be(m),Be(E)]:[g,C,V,M,m,E];if(!o){ns(t[0],oe[e],ae[e]),Ie(t[1],((t,s)=>ns(t,Le[e],Ce[e],[s]))),Ie(t[2],((t,s)=>{0!=t&&it(Re[e],[s],ds(s))}));const s=qe();Ie(t[3],((t,o)=>{ns(t,Te[e],pe[e],[o])&&!n&&(it(ve[e],[o,null]),Ge(s,o))})),n||Ie(t[5],((t,n)=>{if(!ge(s,n)){const s=qe();Ie(t,(e=>Ie(e,(([t,n],o)=>n!==t?Ge(s,o):we(e,o))))),Ie(s,(t=>it(ve[e],[n,t])))}})),Ie(t[4],((t,s)=>Ie(t,((t,n)=>ns(t,me[e],De[e],[s,n])))))}if(!l){let s;Ie(t[5],((t,n)=>{let o;Ie(t,((t,l)=>{let r;Ie(t,(([t,a],i)=>{a!==t&&(it(Ue[e],[n,l,i],a,t,$t),s=o=r=1)})),r&&it(ye[e],[n,l],$t)})),o&&it(fe[e],[n],$t)})),s&&it(se[e],void 0,$t)}}},ls=e=>{const t=ps();t!=n&&it(Ye[e],void 0,t);const s=he(tt[e])&&he(st[e]),o=he(nt[e])&&he(Ze[e]);if(!s||!o){const t=e?[je(k),je(D)]:[k,D];if(s||ns(t[0],tt[e],st[e]),!o){let s;Ie(t[1],(([t,n],o)=>{n!==t&&(it(nt[e],[o],n,t,es),s=1)})),s&&it(Ze[e],void 0,es)}}},rs=(e,...t)=>(Qs((()=>e(...X(t,y)))),Os),as=()=>Pe(Z),is=()=>xe(Z),cs=e=>xe(Fe(Y,y(e))),ds=e=>ie(Fe(Z,y(e))),us=e=>xe(Fe(Z,y(e))),gs=(e,t,s,n=0,o)=>{return X(A(G((l=Fe(Z,y(e)),r=(e,s)=>[F(t)?s:Fe(e,y(t)),s],X([...l?.entries()??[]],(([e,t])=>r(t,e)))),(([e],[t])=>at(e,t)*(s?-1:1))),n,F(o)?o:n+o),(([,e])=>e));var l,r},hs=(e,t)=>xe(Fe(Fe(Z,y(e)),y(t))),fs=(e,t,s)=>Fe(Fe(Fe(Z,y(e)),y(t)),y(s)),bs=()=>We($),Is=()=>xe($),ws=e=>Fe($,y(e)),Ls=()=>!he(Z),Cs=e=>ge(Z,y(e)),Rs=(e,t)=>ge(Fe(Y,y(e)),y(t)),Ts=(e,t)=>ge(Fe(Z,y(e)),y(t)),vs=(e,t,s)=>ge(Fe(Fe(Z,y(e)),y(t)),y(s)),ps=()=>!he($),Ss=e=>ge($,y(e)),ys=e=>rs((()=>(e=>He(e,ht,Yt))(e)?yt(e):0)),Vs=e=>rs((()=>It(e)?Dt(e):0)),Ms=e=>{try{St(Lt(e))}catch{}return Os},ms=t=>rs((()=>{if((e=He(t,(e=>He(e,ut))))&&(vt(t),!he(Z))){const e=as();ks(),ys(e)}})),Es=e=>rs((()=>{if(t=(e=>He(e,ut))(e)){const s=bs();Fs(),Js(),t=!0,pt(e),Vs(s)}})),ks=()=>rs((()=>yt({}))),Ds=e=>rs((e=>ge(Z,e)?At(e):0),e),Hs=(e,t)=>rs(((e,t)=>Q(Fe(Z,e),(s=>ge(s,t)?Pt(e,s,t):0))),e,t),Js=()=>rs((()=>Dt({}))),xs=()=>rs((()=>{vt({}),e=!1})),Fs=()=>rs((()=>{pt({}),t=!1})),Qs=(e,t)=>{if(-1!=l){zs();const s=e();return Ns(t),s}},zs=()=>(-1!=l&&l++,1==l&&(c[0]?.(),it(ot)),Os),Ns=e=>(l>0&&(l--,0==l&&(l=1,ts(1),he(E)||os(1),ss(1),he(D)||ls(1),e?.(Os)&&(Ie(E,((e,t)=>Ie(e,((e,s)=>Ie(e,(([e],n)=>le(Os,t,s,n,e))))))),be(E),Ie(D,(([e],t)=>re(Os,t,e))),be(D)),it(lt[0],void 0),l=-1,ts(0),he(E)||os(0),ss(0),he(D)||ls(0),c[1]?.(),it(lt[1],void 0),c[2]?.(),l=0,s=Ls(),n=ps(),K([g,C,V,M,m,E,H,k,D,J],be))),Os),Os={getContent:()=>[as(),bs()],getTables:as,getTableIds:is,getTable:e=>Ae(Fe(Z,y(e))),getTableCellIds:cs,getRowCount:ds,getRowIds:us,getSortedRowIds:gs,getRow:(e,t)=>We(Fe(Fe(Z,y(e)),y(t))),getCellIds:hs,getCell:fs,getValues:bs,getValueIds:Is,getValue:ws,hasTables:Ls,hasTable:Cs,hasTableCell:Rs,hasRow:Ts,hasCell:vs,hasValues:ps,hasValue:Ss,getTablesJson:()=>Ct(Z),getValuesJson:()=>Ct($),getJson:()=>Ct([Z,$]),getTablesSchemaJson:()=>Ct(x),getValuesSchemaJson:()=>Ct(P),getSchemaJson:()=>Ct([x,P]),hasTablesSchema:()=>e,hasValuesSchema:()=>t,setContent:e=>rs((()=>{const t=O(e)?e():e;gt(t)&&(([e,t])=>{(ke(e)?ks:ys)(e),(ke(t)?Js:Vs)(t)})(t)})),setTables:ys,setTable:(e,t)=>rs((e=>ht(t,e)?Vt(e,t):0),e),setRow:(e,t,s)=>rs(((e,t)=>ft(e,t,s)?Mt(e,Jt(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Qs((()=>{let n;return ft(e,n,t)&&(e=y(e),Mt(e,Jt(e),n=((e,t)=>{const[s]=Fe(q,e);let n;do{n=s(t)}while(ge(Fe(Z,e),n));return n})(e,s?1:0),t)),n})),setPartialRow:(e,t,s)=>rs(((e,t)=>{if(ft(e,t,s,1)){const n=Jt(e);Ee(s,((s,o)=>Et(e,n,t,o,s)))}}),e,t),setCell:(e,t,s,n)=>rs(((e,t,s)=>Q(bt(e,t,s,O(n)?n(fs(e,t,s)):n),(n=>Et(e,Jt(e),t,s,n)))),e,t,s),setValues:Vs,setPartialValues:e=>rs((()=>It(e,1)?Ee(e,((e,t)=>Ht(t,e))):0)),setValue:(e,t)=>rs((e=>Q(wt(e,O(t)?t(ws(e)):t),(t=>Ht(e,t)))),e),applyChanges:e=>rs((()=>{Ee(e[0],((e,t)=>F(e)?Ds(t):Ee(e,((e,s)=>F(e)?Hs(t,s):Ee(e,((e,n)=>le(Os,t,s,n,e))))))),Ee(e[1],((e,t)=>re(Os,t,e)))})),setTablesJson:Ms,setValuesJson:e=>{try{kt(Lt(e))}catch{}return Os},setJson:e=>rs((()=>{try{const[t,s]=Lt(e);St(t),kt(s)}catch{Ms(e)}})),setTablesSchema:ms,setValuesSchema:Es,setSchema:(e,t)=>rs((()=>{ms(e),Es(t)})),delTables:ks,delTable:Ds,delRow:Hs,delCell:(e,t,s,n)=>rs(((e,t,s)=>Q(Fe(Z,e),(o=>Q(Fe(o,t),(l=>ge(l,s)?jt(e,o,t,l,s,n):0))))),e,t,s),delValues:Js,delValue:e=>rs((e=>ge($,e)?_t(e):0),e),delTablesSchema:xs,delValuesSchema:Fs,delSchema:()=>rs((()=>{xs(),Fs()})),transaction:Qs,startTransaction:zs,getTransactionChanges:()=>[We(E,((e,t)=>-1===Fe(g,t)?void 0:We(e,((e,s)=>-1===Fe(Fe(M,t),s)?void 0:We(e,(([,e])=>e),(e=>Nt(e)))),he,ke)),he,ke),We(D,(([,e])=>e),(e=>Nt(e))),1],getTransactionLog:()=>[!he(E),!he(D),Pe(E,zt,Nt),Pe(H),We(D,zt,Nt),We(J),We(g),Ae(M),Pe(m),We(k)],finishTransaction:Ns,forEachTable:e=>Ie(Z,((t,s)=>e(s,(e=>Ie(t,((t,s)=>e(s,(e=>Qe(t,e))))))))),forEachTableCell:(e,t)=>Qe(Fe(Y,y(e)),t),forEachRow:(e,t)=>Ie(Fe(Z,y(e)),((e,s)=>t(s,(t=>Qe(e,t))))),forEachCell:(e,t,s)=>Qe(Fe(Fe(Z,y(e)),y(t)),s),forEachValue:e=>Qe($,e),addSortedRowIdsListener:(e,t,s,n,o,l,r)=>{let a=gs(e,t,s,n,o);return rt((()=>{const r=gs(e,t,s,n,o);U(r,a)||(a=r,l(Os,e,t,s,n,o,a))}),ve[r?1:0],[e,t],[is])},addStartTransactionListener:e=>rt(e,ot),addWillFinishTransactionListener:e=>rt(e,lt[0]),addDidFinishTransactionListener:e=>rt(e,lt[1]),callListener:e=>(dt(e),Os),delListener:e=>(ct(e),Os),getListenerStats:()=>({hasTables:Ft(te),tables:Ft(se),tableIds:Ft(oe),hasTable:Ft(ae),table:Ft(fe),tableCellIds:Ft(Le),hasTableCell:Ft(Ce,de),rowCount:Ft(Re),rowIds:Ft(Te),sortedRowIds:Ft(ve),hasRow:Ft(pe,de),row:Ft(ye,de),cellIds:Ft(me,de),hasCell:Ft(De,ue),cell:Ft(Ue,ue),invalidCell:Ft(Ke,ue),hasValues:Ft(Ye),values:Ft(Ze),valueIds:Ft(tt),hasValue:Ft(st),value:Ft(nt),invalidValue:Ft(Xe),transaction:ce(ot)+Ft(lt)}),isMergeable:()=>!1,createStore:Wt,addListener:rt,callListeners:it,setInternalListeners:(e,t,s,n,o)=>c=[e,t,s,n,o]};return Ee({[u+f]:[0,te,[],()=>[Ls()]],[f]:[0,se],[b]:[0,oe],[u+h]:[1,ae,[is],e=>[Cs(...e)]],[h]:[1,fe,[is]],[h+T]:[1,Le,[is]],[u+h+R]:[2,Ce,[is,cs],e=>[Rs(...e)]],[w]:[1,Re,[is]],[L]:[1,Te,[is]],[u+I]:[2,pe,[is,us],e=>[Ts(...e)]],[I]:[2,ye,[is,us]],[T]:[2,me,[is,us]],[u+R]:[3,De,[is,us,hs],e=>[vs(...e)]],[R]:[3,Ue,[is,us,hs],e=>xt(fs(...e))],InvalidCell:[3,Ke],[u+p]:[0,Ye,[],()=>[ps()]],[p]:[0,Ze],[S]:[0,tt],[u+v]:[1,st,[Is],e=>[Ss(...e)]],[v]:[1,nt,[Is],e=>xt(ws(e[0]))],InvalidValue:[1,Xe]},(([e,t,s,n],o)=>{Os[d+o+i]=(...o)=>rt(o[e],t[o[e+1]?1:0],e>0?A(o,0,e):void 0,s,n)})),Se(Os)},At={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Pt=(e=t)=>[kt(e),kt(e)],jt=(e,s)=>{let n=1,o=Pt(),l=0;const r=Je(),a=qe(),[c,u]=((e,t=Date.now)=>{let s=0,n=-1;const o=Q(e,(e=>{const t=ut(e);return ot(t/ft)+ot(t/bt)+ot(t/It)+ot(t/64)+ot(t)}),(()=>it(5))),l=e=>{const o=s,[l,r]=F(e)||""==e?[0,0]:[lt(a=e,0)*gt+lt(a,1)*ht+lt(a,2)*ft+lt(a,3)*bt+lt(a,4)*It+64*lt(a,5)+lt(a,6),lt(a,7)*bt+lt(a,8)*It+64*lt(a,9)+lt(a,10)];var a;s=D(o,l,t()),n=s==o?s==l?D(n,r):n:s==l?r:-1};return[()=>{return l(),t=++n,ot((e=s)/gt)+ot(e/ht)+ot(e/ft)+ot(e/bt)+ot(e/It)+ot(e/64)+ot(e)+ot(t/bt)+ot(t/It)+ot(t/64)+ot(t)+o;var e,t},l]})(e,s),g=Wt(),h=e=>{const t=n;return n=0,e(),n=t,L},f=(e,s=0)=>{const n={},l={},[[r,a=t,i=0],c]=e,[d,g]=o,[h,f,I]=d;let w=s?i:I,L=a;me(r,(([e,o=t,l=0],r)=>{const a=Ne(h,r,kt),[i,c,d]=a;let u=s?l:d,g=o;me(e,((e,t)=>{const[o,l,a]=b(e,Ne(i,t,kt),De(De(n,r,ye),t,ye),s);u^=s?0:(l?yt(t,l):0)^yt(t,a),g=Mt(g,o)})),u^=s?0:Vt(c,o),mt(a,o,u),w^=s?0:(d?yt(r,d):0)^yt(r,a[2]),L=Mt(L,g)})),w^=s?0:Vt(f,a),mt(d,a,w);const[C]=b(c,g,l,s);return u(Mt(L,C)),[n,l,1]},b=(e,s,n,o)=>{const[l,r=t,a=0]=e,[i,c,d]=s;let u=r,g=o?a:d;return me(l,(([e,s=t,l=0],r)=>{const a=Ne(i,r,(()=>[void 0,t,0])),[,c,d]=a;(!c||s>c)&&(mt(a,s,o?l:ut(Ct(e??null)+":"+s)),a[0]=e,n[r]=e,g^=o?0:yt(r,d)^yt(r,a[2]),u=Mt(u,s))})),g^=o?0:Vt(c,r),mt(s,r,g),[u,d,s[2]]},I=()=>[Dt(o[0],(e=>Dt(e,(e=>Dt(e))))),Dt(o[1])],w=e=>h((()=>g.applyChanges(f(e)))),L={getMergeableContent:I,getMergeableContentHashes:()=>[o[0][2],o[1][2]],getMergeableTableHashes:()=>We(o[0][0],St),getMergeableTableDiff:e=>{const t=Et(o[0][1]),s={};return Qe(o[0][0],((n,[o,l,r])=>Ve(e,n)?r!=e[n]?s[n]=r:0:t[0][n]=Ht([o,l],(e=>Ht(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(o[0][0],s),(([n,,o])=>o!=e?Qe(n,((e,[,,n])=>De(t,s,ye)[e]=n)):0)))),t},getMergeableRowDiff:e=>{const t=Et(o[0][1]),s={};return me(e,((e,n)=>Qe(Fe(o[0][0],n)?.[0],((o,[l,r,a])=>Ve(e,o)?a!==e[o]?De(s,n,ye)[o]=a:0:De(t[0],n,Et)[0][o]=Ht([l,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return me(e,((e,s)=>Q(Fe(o[0][0],s),(([n])=>me(e,((e,o)=>Q(Fe(n,o),(([n,,l])=>l!==e?Qe(n,((e,[,,n])=>De(De(t,s,ye),o,ye)[e]=n)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=o,n={};return me(e,((e,s)=>me(e,((e,o)=>Q(Fe(t,s),(([t,l])=>Q(Fe(t,o),(([t,r])=>Qe(t,((t,[a,i,c])=>c!==e[t]?De(De(n,s,(()=>Et(l)))[0],o,(()=>Et(r)))[0][t]=[a,i]:0)))))))))),vt(n,s)},getMergeableValueHashes:()=>We(o[1][0],St),getMergeableValueDiff:e=>{const[,[t,s]]=o,n=We(t,Rt,(([,,t],s)=>t==e?.[s]));return vt(n,s)},setMergeableContent:e=>h((()=>(e=>W(e)&&2==P(e)&&Jt(e[0],(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,(e=>He(e,(e=>Jt(e,oe)),void 0,1)))),void 0,1)))),void 0,1)))&&Jt(e[1],(e=>He(e,(e=>Jt(e,oe)),void 0,1))))(e)?g.transaction((()=>{g.delTables().delValues(),o=Pt(),g.applyChanges(f(e,1))})):0)),setDefaultContent:e=>(g.transaction((()=>{l=1,g.setContent(e),l=0})),L),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,n],[l,i,c]]=o,d=e?pt:vt,u={};Ie(r,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const l={};Ie(e,((e,s)=>Q(Fe(t,s),(([t,n,o])=>{const r={};Ie(e,(e=>{Q(Fe(t,e),(([t,s,n])=>r[e]=d(t,s,n)))})),l[s]=d(r,n,o)})))),u[s]=d(l,n,o)}))));const g={};return Ie(a,(e=>Q(Fe(l,e),(([t,s,n])=>g[e]=d(t,s,n))))),[d(u,s,n),d(g,i,c),1]},applyMergeableChanges:w,merge:e=>{const t=I(),s=e.getMergeableContent();return e.applyMergeableChanges(t),w(s)}};return g.setInternalListeners((()=>{}),(()=>{}),(()=>{be(r),be(a)}),((e,s,o,a)=>{Ge(Ne(Ne(r,e,Je),s,qe),o),n&&f([[{[e]:[{[s]:[{[o]:[a,l?t:c()]}]}]}],[{}],1])}),((e,s)=>{Ge(a,e),n&&f([[{}],[{[e]:[s,l?t:c()]}],1])})),Ee(g,((e,t)=>L[t]=V(t,"set")||V(t,"del")||V(t,"apply")||M(t,"Transaction")||t=="call"+i?(...t)=>(e(...t),L):V(t,d)&&M(t,i)?(...s)=>{const n=At[A(t,3,-8)]??0,o=s[n];return s[n]=(e,...t)=>o(L,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),Se(L)},_t=Je([["avg",[(e,t)=>Y(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=>D(...e),(e,t)=>D(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:D(t,e)]],["min",[e=>H(...e),(e,t)=>H(t,e),(e,t)=>t==e?void 0:e,(e,t,s)=>s==e?void 0:H(t,e)]],["sum",[e=>Y(e),(e,t)=>e+t,(e,t)=>e-t,(e,t,s)=>e-s+t]]]),Bt=(e,t,s,n,o,l=!1)=>{if(he(s))return;const[r,a,i,c]=o;return l||=F(e),Ie(n,(([s,n])=>{l||(e=F(s)?a?.(e,n,t++):F(n)?i?.(e,s,t--):c?.(e,n,s,t),l||=F(e))})),l?r(fe(s),ie(s)):e},Ut=Ye((e=>{const s=Je(),[n,o,l]=et((()=>w)),[r,a,i,c,d,u,g,,h,f,b,I]=Ke(e,j,(e=>isNaN(e)||F(e)||!0===e||!1===e||e===t?void 0:1*e),n,o),w={setMetricDefinition:(e,t,n,l,r,a,i)=>{const c=O(n)?[n,r,a,i]:Fe(_t,n)??Fe(_t,"sum");return h(e,t,((t,n,l,r,a,i)=>{const d=u(e),h=ie(r);i||=F(d),t();let f=Bt(d,h,r,n,c,i);x(f)||(f=void 0),f!=d&&(g(e,f),o(s,[e],f,d))}),Xe(l,1)),w},delMetricDefinition:e=>(f(e),w),getStore:r,getMetricIds:a,forEachMetric:i,hasMetric:c,getTableId:d,getMetric:u,addMetricIdsListener:b,addMetricListener:(e,t)=>n(t,s,[e]),delListener:e=>(l(e),w),destroy:I,getListenerStats:()=>({metric:ce(s)})};return Se(w)})),qt=Ye((e=>{const s=e.createStore,n=s(),o=s(),l=Je(),{addListener:r,callListeners:a,delListener:u}=o,[g,f,b,v,p,,,S,,y,V,M,m,E]=Ke(e,(()=>!0),j,r,a),k=(e,t,...s)=>K(s,(s=>Ge(Ne(Ne(l,t,Je),e,qe),s))),D=e=>{Q(Fe(l,e),(e=>{Qe(e,((e,t)=>Ie(t,(t=>e.delListener(t))))),be(e)})),K([o,n],(t=>t.delTable(e)))},H=(e,t,s)=>k(t,e,t.addStartTransactionListener(s.startTransaction),t.addDidFinishTransactionListener((()=>s.finishTransaction()))),J={setQueryDefinition:(s,l,r)=>{S(s,l),D(s);const a=[],i=[[null,[l,null,null,[],Je()]]],c=[],d=[],u=[];r({select:(e,s)=>{const n=O(e)?[P(a)+t,e]:[F(s)?e:s,t=>t(e,s)];return ee(a,n),{as:e=>n[0]=e}},join:(e,t,s)=>{const n=F(s)||O(t)?null:t,o=F(n)?t:s,l=[e,[e,n,O(o)?o:e=>e(o),[],Je()]];return ee(i,l),{as:e=>l[0]=e}},where:(e,t,s)=>ee(c,O(e)?e:F(s)?s=>s(e)===t:n=>n(e,t)===s),group:(e,t,s,n,o)=>{const l=[e,[e,O(t)?[t,s,n,o]:Fe(_t,t)??[(e,t)=>t]]];return ee(d,l),{as:e=>l[0]=e}},having:(e,t)=>ee(u,O(e)?e:s=>s(e)===t)});const g=Je(a);if(he(g))return J;const h=Je(i);Qe(h,((e,[,t])=>Q(Fe(h,t),(({3:t})=>F(e)?0:ee(t,e)))));const f=Je(d);let b=n;if(he(f)&&Z(u))b=o;else{H(s,b,o);const e=Je();Qe(f,((t,[s,n])=>Ge(Ne(e,s,qe),[t,n])));const t=qe();Qe(g,(s=>ge(e,s)?0:Ge(t,s)));const n=Je(),l=(t,n,l,r)=>Q(t,(([a,i,c,d])=>{Qe(n,((t,[s])=>{const n=Ne(a,t,Je),o=Fe(n,l),i=r?void 0:s;if(o!==i){const s=qe([[o,i]]),r=ie(n);ze(n,l,i),Ie(Fe(e,t),(([e,t])=>{const o=Bt(d[e],r,n,s,t);d[e]=F(ne(o))?null:o}))}})),he(i)||!B(u,(e=>e((e=>d[e]))))?o.delRow(s,c):F(c)?t[2]=o.addRow(s,d):o.setRow(s,c,d)}));k(b,s,b.addRowListener(s,null,((o,r,a,i)=>{const c=[],d=[],u=Je(),g=b.hasRow(s,a);let h=!g;Ie(t,(e=>{const[t,n,o]=i(s,a,e);ee(c,n),ee(d,o),h||=t})),Qe(e,(e=>{const[t,,n]=i(s,a,e);(h||t)&&ze(u,e,[n])})),h&&l(Ue(n,c,void 0,(([,e])=>(we(e,a),he(e)))),u,a,1),g&&l(Ue(n,d,(()=>{const e={};return Ie(t,(t=>e[t]=b.getCell(s,a,t))),[Je(),qe(),void 0,e]}),(([,e])=>{Ge(e,a)})),u,a)})))}H(s,e,b);const I=(t,n,o,r)=>{const a=t=>e.getCell(n,o,t);K(r,(n=>{const[o,,l,r,i]=Fe(h,n),c=l?.(a,t),[d,u]=Fe(i,t)??[];c!=d&&(F(u)||E(s,u),ze(i,t,F(c)?null:[c,...m(s,1,e.addRowListener(o,c,(()=>I(t,o,c,r))))]))})),(t=>{const n=(s,n)=>e.getCell(...F(n)?[l,t,s]:s===l?[l,t,n]:[Fe(h,s)?.[0],Fe(Fe(h,s)?.[4],t)?.[0],n]);b.transaction((()=>B(c,(e=>e(n)))?Qe(g,((e,o)=>le(b,s,t,e,o(n,t)))):b.delRow(s,t)))})(t)},{3:w}=Fe(h,null);return b.transaction((()=>m(s,1,e.addRowListener(l,null,((t,n,o)=>{e.hasRow(l,o)?I(o,l,o,w):(b.delRow(s,o),Ie(h,(({4:e})=>Q(Fe(e,o),(([,t])=>{E(s,t),ze(e,o)})))))}))))),J},delQueryDefinition:e=>(D(e),y(e),J),getStore:g,getQueryIds:f,forEachQuery:b,hasQuery:v,getTableId:p,addQueryIdsListener:e=>V((()=>e(J))),delListener:e=>(u(e),J),destroy:M,getListenerStats:()=>{const{tables:e,tableIds:t,transaction:s,...n}=o.getListenerStats();return n}};return Ee({[h]:[1,1],[h+T]:[0,1],[w]:[0,1],[L]:[0,1],[C]:[0,5],[I]:[1,2],[T]:[0,2],[R]:[1,3]},(([e,t],s)=>{K(e?["get","has","forEach"]:["get"],(e=>J[e+c+s]=(...t)=>o[e+s](...t))),J[d+c+s+i]=(...e)=>o[d+s+i](...A(e,0,t),((s,...n)=>e[t](J,...n)),!0)})),Se(J)})),Gt=Ye((e=>{const s=Je(),n=Je(),o=Je(),l=Je(),[r,a,i]=et((()=>v)),[c,d,u,g,h,f,,,b,I,w,L]=Ke(e,(()=>[Je(),Je(),Je(),Je()]),(e=>F(e)?void 0:e+t),r,a),C=(e,t,s)=>Q(f(e),(([n,,o])=>{if(!ge(o,t)){const l=qe();if(h(e)!=T(e))Ge(l,t);else{let e=t;for(;!F(e)&&!ge(l,e);)Ge(l,e),e=Fe(n,e)}if(s)return l;ze(o,t,l)}return Fe(o,t)})),R=(e,t)=>Q(f(e),(([,,e])=>ze(e,t))),T=e=>Fe(s,e),v={setRelationshipDefinition:(e,t,r,i)=>(ze(s,e,r),b(e,t,((t,s)=>{const r=qe(),i=qe(),c=qe(),[d,u]=f(e);Ie(s,(([t,s],n)=>{F(t)||(Ge(i,t),Q(Fe(u,t),(e=>{we(e,n),he(e)&&ze(u,t)}))),F(s)||(Ge(i,s),ge(u,s)||ze(u,s,qe()),Ge(Fe(u,s),n)),Ge(r,n),ze(d,n,s),Qe(Fe(l,e),(t=>{ge(C(e,t),n)&&Ge(c,t)}))})),t(),Ie(r,(t=>a(n,[e,t]))),Ie(i,(t=>a(o,[e,t]))),Ie(c,(t=>{R(e,t),a(l,[e,t])}))}),Xe(i)),v),delRelationshipDefinition:e=>(ze(s,e),I(e),v),getStore:c,getRelationshipIds:d,forEachRelationship:t=>u((s=>t(s,(t=>e.forEachRow(h(s),t))))),hasRelationship:g,getLocalTableId:h,getRemoteTableId:T,getRemoteRowId:(e,t)=>Fe(f(e)?.[0],t),getLocalRowIds:(e,t)=>fe(Fe(f(e)?.[1],t)),getLinkedRowIds:(e,t)=>F(f(e))?[t]:fe(C(e,t,!0)),addRelationshipIdsListener:w,addRemoteRowIdListener:(e,t,s)=>r(s,n,[e,t]),addLocalRowIdsListener:(e,t,s)=>r(s,o,[e,t]),addLinkedRowIdsListener:(e,t,s)=>(C(e,t),r(s,l,[e,t])),delListener:e=>(R(...i(e)??[]),v),destroy:L,getListenerStats:()=>({remoteRowId:de(n),localRowIds:de(o),linkedRowIds:de(l)})};return Se(v)}));export{tt as createCheckpoints,ct as createIndexes,jt as createMergeableStore,Ut as createMetrics,qt as createQueries,Gt as createRelationships,Wt as createStore,at as defaultSorter,it as getUniqueId};
package/min/index.js.gz CHANGED
Binary file
@@ -1 +1 @@
1
- const e=e=>typeof e,t="",s=e(t),a=e(!0),l=e(0),n=e(e),r="type",o="default",c="Listener",i="Has",d="Ids",u="Table",g=u+"s",h=u+d,b="Row",C=b+"Count",f=b+d,T="Cell",v=T+d,V="Value",w=V+"s",p=V+d,I=e=>t+e,y=(e,t)=>e.startsWith(t),R=(e,t)=>e.endsWith(t),M=(e,s=t,a)=>e.split(s,a),S=globalThis,m=Math,L=m.max,H=m.floor,E=isFinite,J=e=>null==e,D=(e,t,s)=>J(e)?s?.():t(e),F=e=>e==s||e==a,O=t=>e(t)==n,x=e=>Array.isArray(e),z=(e,t,s)=>e.slice(t,s),A=e=>e.length,P=t=>{const s=e(t);return F(s)||s==l&&E(t)?s:void 0},W=e=>J(e)||!J(P(e)),k=(e,t,s,a,l)=>J(l)?e.delCell(t,s,a,!0):e.setCell(t,s,a,l),N=(e,t,s)=>J(s)?e.delValue(t):e.setValue(t,s),j=(e,t)=>e.forEach(t),U=(e,t)=>e.map(t),_=(e,t,s)=>e.reduce(t,s),q=(e,...t)=>e.push(...t),B=e=>t=>_($(t),((t,s)=>t+e(s)),0),G=e=>e?.size??0,K=B(G),Q=B(K),X=B(Q),Y=(e,t)=>e?.has(t)??!1,Z=e=>J(e)||0==G(e),$=e=>[...e?.values()??[]],ee=e=>e.clear(),te=(e,t)=>e?.forEach(t),se=(e,t)=>e?.delete(t),ae=new S.TextEncoder,le=e=>{let t=2166136261;return j(ae.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},ne=Object,re=e=>ne.getPrototypeOf(e),oe=ne.entries,ce=ne.isFrozen,ie=e=>!J(e)&&D(re(e),(e=>e==ne.prototype||J(re(e))),(()=>!0)),de=ne.keys,ue=ne.freeze,ge=(e=[])=>ne.fromEntries(e),he=(e,t)=>t in e,be=(e,t)=>(delete e[t],e),Ce=(e,t)=>j(oe(e),(([e,s])=>t(s,e))),fe=(e,t)=>ge(((e,t)=>U(oe(e),(([e,s])=>t(s,e))))(e,((e,s)=>[s,t(e,s)]))),Te=e=>ie(e)&&0==(e=>A(de(e)))(e),ve=(e,t,s)=>(he(e,t)||(e[t]=s()),e[t]),Ve=(e,t,s,a=0)=>J(e)||!ie(e)||!a&&Te(e)||ce(e)?(s?.(),!1):(Ce(e,((s,a)=>{t(s,a)||be(e,a)})),!!a||!Te(e)),we=e=>new Map(e),pe=e=>[...e?.keys()??[]],Ie=(e,t)=>e?.get(t),ye=(e,t)=>te(e,((e,s)=>t(s,e))),Re=(e,t,s)=>J(s)?(se(e,t),e):e?.set(t,s),Me=(e,t,s,a)=>(Y(e,t)?a?.(Ie(e,t)):Re(e,t,s()),Ie(e,t)),Se=(e,t,s,a=Re)=>(fe(t,((t,a)=>s(e,a,t))),ye(e,(s=>he(t,s)?0:a(e,s))),e),me=(e,t,s,a)=>{const l={};return te(e,((e,n)=>{if(!s?.(e,n)){const s=t?t(e,n):e;a?.(s)||(l[n]=s)}})),l},Le=(e,t,s)=>me(e,(e=>me(e,t,s)),Z,Te),He=(e,t,s)=>me(e,(e=>Le(e,t,s)),Z,Te),Ee=(e,t)=>{const s=we();return te(e,((e,a)=>s.set(a,t?.(e)??e))),s},Je=e=>Ee(e,Ee),De=e=>Ee(e,Je),Fe=(e,t,s,a,l=0)=>D((s?Me:Ie)(e,t[l],l>A(t)-2?s:we),(n=>{if(l>A(t)-2)return a?.(n)&&Re(e,t[l]),n;const r=Fe(n,t,s,a,l+1);return Z(n)&&Re(e,t[l]),r})),Oe=M("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),xe=we(U(Oe,((e,t)=>[e,t]))),ze=e=>Oe[63&e],Ae=(e,t)=>Ie(xe,e[t])??0,Pe=S.crypto?e=>S.crypto.getRandomValues(e):e=>U(e,(()=>H(256*m.random()))),We=2**36,ke=2**30,Ne=2**24,je=2**18,Ue=4096,_e=JSON.stringify,qe=JSON.parse,Be=e=>_e(e,((e,t)=>t instanceof Map?ne.fromEntries([...t]):t)),Ge=e=>new Set(x(e)||J(e)?e:[e]),Ke=(e,t)=>e?.add(t),Qe=([e,t])=>Ye(e,t),Xe=([e,t,s])=>[e,t,s],Ye=(e,t)=>t?[e,t]:[e],Ze=(e,t,s)=>[e,t,s],$e=e=>e[2],et=(e,t)=>le(e+":"+t),tt=(e,t)=>t>e?(e?le(e):0)^le(t):0,st=(e,t)=>((e??"")>(t??"")?e:t)??"",at=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},lt=(e=t)=>Ye(ge(),e),nt=(e=t)=>[we(),e,0],rt=([e,t,s],a=Xe)=>[me(e,a),t,s],ot=([e,t],s=Qe)=>Ye(me(e,s),t),ct=(t,a)=>{return x(t)&&3==A(t)&&(n=t[1],e(n)==s)&&e(t[2])==l&&E(t[2])&&a(t[0]);var n},it=/^\d+$/,dt=()=>{const e=[];let s=0;return[a=>(a?e.shift():null)??t+s++,t=>{it.test(t)&&A(e)<1e3&&q(e,t)}]},ut=e=>[e,e],gt=(e,t=K)=>t(e[0])+t(e[1]),ht=()=>[we(),we()],bt=e=>[...e],Ct=([e,t])=>e===t,ft=(e,t,s)=>Re(e,t,Ie(e,t)==-s?void 0:s),Tt=()=>{let e,s,a=!1,n=!1,d=0,y=[];const R=we(),M=we(),S=we(),m=we(),L=we(),H=we(),E=we(),W=we(),_=we(),B=we(),$=we(),ae=we(),le=we(),ne=we(),re=Ge(),oe=we(),ce=we(),ie=we(),de=we(),ge=ht(),Ce=ht(),ve=ht(),Oe=ht(),xe=ht(),ze=ht(),Ae=ht(),Pe=ht(),We=ht(),ke=ht(),Ne=ht(),je=ht(),Ue=ht(),_e=ht(),Qe=ht(),Xe=ht(),Ye=ht(),Ze=ht(),$e=ht(),et=ht(),tt=ht(),st=ht(),at=we(),lt=ht(),[nt,rt,ot,ct]=(()=>{let e;const[s,a]=dt(),l=we();return[(a,n,r,o=[],c=()=>[])=>{e??=zs;const i=s(1);return Re(l,i,[a,n,r,o,c]),Ke(Fe(n,r??[t],Ge),i),i},(s,a,...n)=>j(((e,s=[t])=>{const a=[],l=(e,t)=>t==A(s)?q(a,e):null===s[t]?te(e,(e=>l(e,t+1))):j([s[t],null],(s=>l(Ie(e,s),t+1)));return l(e,0),a})(s,a),(t=>te(t,(t=>Ie(l,t)[0](e,...a??[],...n))))),e=>D(Ie(l,e),(([,s,n])=>(Fe(s,n??[t],void 0,(t=>(se(t,e),Z(t)?1:0))),Re(l,e),a(e),n))),t=>D(Ie(l,t),(([t,,s=[],a,l])=>{const n=(...r)=>{const o=A(r);o==A(s)?t(e,...r,...l(r)):J(s[o])?j(a[o]?.(...r)??[],(e=>n(...r,e))):n(...r,s[o])};n()}))]})(),it=e=>{if(!Ve(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!F(t)&&t!=l||(P(e[o])!=t&&be(e,o),0))},vt=x,Vt=(t,s)=>(!e||Y($,s)||Kt(s))&&Ve(t,((e,t)=>wt(s,t,e)),(()=>Kt(s))),wt=(e,t,s,a)=>Ve(a?s:Rt(s,e,t),((a,l)=>D(pt(e,t,l,a),(e=>(s[l]=e,!0)),(()=>!1))),(()=>Kt(e,t))),pt=(t,s,a,l)=>e?D(Ie(Ie($,t),a),(e=>P(l)!=e[r]?Kt(t,s,a,l,e[o]):l),(()=>Kt(t,s,a,l))):J(P(l))?Kt(t,s,a,l):l,It=(e,t)=>Ve(t?e:Mt(e),((t,s)=>D(yt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Qt())),yt=(e,t)=>s?D(Ie(le,e),(s=>P(t)!=s[r]?Qt(e,t,s[o]):t),(()=>Qt(e,t))):J(P(t))?Qt(e,t):t,Rt=(e,t,s)=>(D(Ie(ae,t),(([a,l])=>{te(a,((t,s)=>{he(e,s)||(e[s]=t)})),te(l,(a=>{he(e,a)||Kt(t,s,a)}))})),e),Mt=e=>(s&&(te(ne,((t,s)=>{he(e,s)||(e[s]=t)})),te(re,(t=>{he(e,t)||Qt(t)}))),e),St=e=>Se($,e,((e,t,s)=>{const a=we(),l=Ge();Se(Me($,t,we),s,((e,t,s)=>{Re(e,t,s),D(s[o],(e=>Re(a,t,e)),(()=>Ke(l,t)))})),Re(ae,t,[a,l])}),((e,t)=>{Re($,t),Re(ae,t)})),mt=e=>Se(le,e,((e,t,s)=>{Re(le,t,s),D(s[o],(e=>Re(ne,t,e)),(()=>Ke(re,t)))}),((e,t)=>{Re(le,t),Re(ne,t),se(re,t)})),Lt=e=>Te(e)?ms():Is(e),Ht=e=>Se(ie,e,((e,t,s)=>Et(t,s)),((e,t)=>Pt(t))),Et=(e,t)=>Se(Me(ie,e,(()=>(jt(e,1),Re(oe,e,dt()),Re(ce,e,we()),we()))),t,((t,s,a)=>Jt(e,t,s,a)),((t,s)=>Wt(e,t,s))),Jt=(e,t,s,a,l)=>Se(Me(t,s,(()=>(Ut(e,s,1),we()))),a,((t,a,l)=>Dt(e,s,t,a,l)),((a,n)=>kt(e,t,s,a,n,l))),Dt=(e,t,s,a,l)=>{Y(s,a)||_t(e,t,a,1);const n=Ie(s,a);l!==n&&(qt(e,t,a,n,l),Re(s,a,l))},Ft=(e,t,s,a,l)=>D(Ie(t,s),(t=>Dt(e,s,t,a,l)),(()=>Jt(e,t,s,Rt({[a]:l},e,s)))),Ot=e=>Te(e)?Es():ys(e),xt=e=>Se(de,e,((e,t,s)=>zt(t,s)),((e,t)=>Nt(t))),zt=(e,t)=>{Y(de,e)||Bt(e,1);const s=Ie(de,e);t!==s&&(Gt(e,s,t),Re(de,e,t))},At=e=>Ie(ie,e)??Et(e,{}),Pt=e=>Et(e,{}),Wt=(e,t,s)=>{const[,a]=Ie(oe,e);a(s),Jt(e,t,s,{},!0)},kt=(e,t,s,a,l,n)=>{const r=Ie(Ie(ae,e)?.[0],l);if(!J(r)&&!n)return Dt(e,s,a,l,r);const o=t=>{qt(e,s,t,Ie(a,t)),_t(e,s,t,-1),Re(a,t)};J(r)?o(l):ye(a,o),Z(a)&&(Ut(e,s,-1),Z(Re(t,s))&&(jt(e,-1),Re(ie,e),Re(oe,e),Re(ce,e)))},Nt=e=>{const t=Ie(ne,e);if(!J(t))return zt(e,t);Gt(e,Ie(de,e)),Bt(e,-1),Re(de,e)},jt=(e,t)=>ft(R,e,t),Ut=(e,t,s)=>ft(Me(m,e,we),t,s)&&Re(S,e,Me(S,e,(()=>0))+s),_t=(e,t,s,a)=>{const l=Ie(ce,e),n=Ie(l,s)??0;(0==n&&1==a||1==n&&-1==a)&&ft(Me(M,e,we),s,a),Re(l,s,n!=-a?n+a:null),ft(Me(Me(L,e,we),t,we),s,a)},qt=(e,t,s,a,l)=>{Me(Me(Me(H,e,we),t,we),s,(()=>[a,0]))[1]=l,y[3]?.(e,t,s,l)},Bt=(e,t)=>ft(E,e,t),Gt=(e,t,s)=>{Me(W,e,(()=>[t,0]))[1]=s,y[4]?.(e,s)},Kt=(e,t,s,a,l)=>(q(Me(Me(Me(_,e,we),t,we),s,(()=>[])),a),l),Qt=(e,t,s)=>(q(Me(B,e,(()=>[])),t),s),Xt=(e,t,s)=>D(Ie(Ie(Ie(H,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ut(us(e,t,s))])),Yt=e=>D(Ie(W,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ut(bs(e))])),Zt=e=>Z(_)||Z(Xe[e])?0:te(e?De(_):_,((t,s)=>te(t,((t,a)=>te(t,((t,l)=>rt(Xe[e],[s,a,l],t))))))),$t=e=>Z(B)||Z(Ye[e])?0:te(e?Ee(B):B,((t,s)=>rt(Ye[e],[s],t))),es=(e,t,s,a)=>{if(!Z(e))return rt(t,a,(()=>me(e))),ye(e,((e,t)=>rt(s,[...a??[],e],1==t))),1},ts=e=>{const t=Cs();t!=a&&rt(ge[e],void 0,t);const s=Z(ke[e]),l=Z(Ue[e])&&Z(_e[e])&&Z(We[e])&&Z(Ne[e])&&Z(ze[e])&&Z(Ae[e])&&Z(Pe[e])&&s&&Z(ve[e])&&Z(Oe[e]),n=Z(Qe[e])&&Z(je[e])&&Z(xe[e])&&Z(Ce[e]);if(!l||!n){const t=e?[Ee(R),Je(M),Ee(S),Je(m),De(L),De(H)]:[R,M,S,m,L,H];if(!l){es(t[0],ve[e],Oe[e]),te(t[1],((t,s)=>es(t,ze[e],Ae[e],[s]))),te(t[2],((t,s)=>{0!=t&&rt(Pe[e],[s],os(s))}));const a=Ge();te(t[3],((t,l)=>{es(t,We[e],Ne[e],[l])&&!s&&(rt(ke[e],[l,null]),Ke(a,l))})),s||te(t[5],((t,s)=>{if(!Y(a,s)){const a=Ge();te(t,(e=>te(e,(([t,s],l)=>s!==t?Ke(a,l):se(e,l))))),te(a,(t=>rt(ke[e],[s,t])))}})),te(t[4],((t,s)=>te(t,((t,a)=>es(t,Ue[e],_e[e],[s,a])))))}if(!n){let s;te(t[5],((t,a)=>{let l;te(t,((t,n)=>{let r;te(t,(([t,o],c)=>{o!==t&&(rt(Qe[e],[a,n,c],o,t,Xt),s=l=r=1)})),r&&rt(je[e],[a,n],Xt)})),l&&rt(xe[e],[a],Xt)})),s&&rt(Ce[e],void 0,Xt)}}},ss=e=>{const t=ws();t!=n&&rt(Ze[e],void 0,t);const s=Z(et[e])&&Z(tt[e]),a=Z(st[e])&&Z($e[e]);if(!s||!a){const t=e?[Ee(E),Ee(W)]:[E,W];if(s||es(t[0],et[e],tt[e]),!a){let s;te(t[1],(([t,a],l)=>{a!==t&&(rt(st[e],[l],a,t,Yt),s=1)})),s&&rt($e[e],void 0,Yt)}}},as=(e,...t)=>(Fs((()=>e(...U(t,I)))),zs),ls=()=>He(ie),ns=()=>pe(ie),rs=e=>pe(Ie(ce,I(e))),os=e=>G(Ie(ie,I(e))),cs=e=>pe(Ie(ie,I(e))),is=(e,t,s,a=0,l)=>{return U(z((r=Ie(ie,I(e)),o=(e,s)=>[J(t)?s:Ie(e,I(t)),s],n=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),U([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(n)),a,J(l)?l:a+l),(([,e])=>e));var n,r,o},ds=(e,t)=>pe(Ie(Ie(ie,I(e)),I(t))),us=(e,t,s)=>Ie(Ie(Ie(ie,I(e)),I(t)),I(s)),gs=()=>me(de),hs=()=>pe(de),bs=e=>Ie(de,I(e)),Cs=()=>!Z(ie),fs=e=>Y(ie,I(e)),Ts=(e,t)=>Y(Ie(ce,I(e)),I(t)),vs=(e,t)=>Y(Ie(ie,I(e)),I(t)),Vs=(e,t,s)=>Y(Ie(Ie(ie,I(e)),I(t)),I(s)),ws=()=>!Z(de),ps=e=>Y(de,I(e)),Is=e=>as((()=>(e=>Ve(e,Vt,Kt))(e)?Ht(e):0)),ys=e=>as((()=>It(e)?xt(e):0)),Rs=e=>{try{Lt(qe(e))}catch{}return zs},Ms=t=>as((()=>{if((e=Ve(t,(e=>Ve(e,it))))&&(St(t),!Z(ie))){const e=ls();ms(),Is(e)}})),Ss=e=>as((()=>{if(s=(e=>Ve(e,it))(e)){const t=gs();Ds(),Es(),s=!0,mt(e),ys(t)}})),ms=()=>as((()=>Ht({}))),Ls=e=>as((e=>Y(ie,e)?Pt(e):0),e),Hs=(e,t)=>as(((e,t)=>D(Ie(ie,e),(s=>Y(s,t)?Wt(e,s,t):0))),e,t),Es=()=>as((()=>xt({}))),Js=()=>as((()=>{St({}),e=!1})),Ds=()=>as((()=>{mt({}),s=!1})),Fs=(e,t)=>{if(-1!=d){Os();const s=e();return xs(t),s}},Os=()=>(-1!=d&&d++,1==d&&(y[0]?.(),rt(at)),zs),xs=e=>(d>0&&(d--,0==d&&(d=1,Zt(1),Z(H)||ts(1),$t(1),Z(W)||ss(1),e?.(zs)&&(te(H,((e,t)=>te(e,((e,s)=>te(e,(([e],a)=>k(zs,t,s,a,e))))))),ee(H),te(W,(([e],t)=>N(zs,t,e))),ee(W)),rt(lt[0],void 0),d=-1,Zt(0),Z(H)||ts(0),$t(0),Z(W)||ss(0),y[1]?.(),rt(lt[1],void 0),y[2]?.(),d=0,a=Cs(),n=ws(),j([R,M,S,m,L,H,_,E,W,B],ee))),zs),zs={getContent:()=>[ls(),gs()],getTables:ls,getTableIds:ns,getTable:e=>Le(Ie(ie,I(e))),getTableCellIds:rs,getRowCount:os,getRowIds:cs,getSortedRowIds:is,getRow:(e,t)=>me(Ie(Ie(ie,I(e)),I(t))),getCellIds:ds,getCell:us,getValues:gs,getValueIds:hs,getValue:bs,hasTables:Cs,hasTable:fs,hasTableCell:Ts,hasRow:vs,hasCell:Vs,hasValues:ws,hasValue:ps,getTablesJson:()=>Be(ie),getValuesJson:()=>Be(de),getJson:()=>Be([ie,de]),getTablesSchemaJson:()=>Be($),getValuesSchemaJson:()=>Be(le),getSchemaJson:()=>Be([$,le]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:e=>as((()=>{const t=O(e)?e():e;vt(t)&&(([e,t])=>{(Te(e)?ms:Is)(e),(Te(t)?Es:ys)(t)})(t)})),setTables:Is,setTable:(e,t)=>as((e=>Vt(t,e)?Et(e,t):0),e),setRow:(e,t,s)=>as(((e,t)=>wt(e,t,s)?Jt(e,At(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Fs((()=>{let a;return wt(e,a,t)&&(e=I(e),Jt(e,At(e),a=((e,t)=>{const[s]=Ie(oe,e);let a;do{a=s(t)}while(Y(Ie(ie,e),a));return a})(e,s?1:0),t)),a})),setPartialRow:(e,t,s)=>as(((e,t)=>{if(wt(e,t,s,1)){const a=At(e);fe(s,((s,l)=>Ft(e,a,t,l,s)))}}),e,t),setCell:(e,t,s,a)=>as(((e,t,s)=>D(pt(e,t,s,O(a)?a(us(e,t,s)):a),(a=>Ft(e,At(e),t,s,a)))),e,t,s),setValues:ys,setPartialValues:e=>as((()=>It(e,1)?fe(e,((e,t)=>zt(t,e))):0)),setValue:(e,t)=>as((e=>D(yt(e,O(t)?t(bs(e)):t),(t=>zt(e,t)))),e),applyChanges:e=>as((()=>{fe(e[0],((e,t)=>J(e)?Ls(t):fe(e,((e,s)=>J(e)?Hs(t,s):fe(e,((e,a)=>k(zs,t,s,a,e))))))),fe(e[1],((e,t)=>N(zs,t,e)))})),setTablesJson:Rs,setValuesJson:e=>{try{Ot(qe(e))}catch{}return zs},setJson:e=>as((()=>{try{const[t,s]=qe(e);Lt(t),Ot(s)}catch{Rs(e)}})),setTablesSchema:Ms,setValuesSchema:Ss,setSchema:(e,t)=>as((()=>{Ms(e),Ss(t)})),delTables:ms,delTable:Ls,delRow:Hs,delCell:(e,t,s,a)=>as(((e,t,s)=>D(Ie(ie,e),(l=>D(Ie(l,t),(n=>Y(n,s)?kt(e,l,t,n,s,a):0))))),e,t,s),delValues:Es,delValue:e=>as((e=>Y(de,e)?Nt(e):0),e),delTablesSchema:Js,delValuesSchema:Ds,delSchema:()=>as((()=>{Js(),Ds()})),transaction:Fs,startTransaction:Os,getTransactionChanges:()=>[me(H,((e,t)=>-1===Ie(R,t)?void 0:me(e,((e,s)=>-1===Ie(Ie(m,t),s)?void 0:me(e,(([,e])=>e),(e=>Ct(e)))),Z,Te)),Z,Te),me(W,(([,e])=>e),(e=>Ct(e))),1],getTransactionLog:()=>[!Z(H),!Z(W),He(H,bt,Ct),He(_),me(W,bt,Ct),me(B),me(R),Le(m),He(L),me(E)],finishTransaction:xs,forEachTable:e=>te(ie,((t,s)=>e(s,(e=>te(t,((t,s)=>e(s,(e=>ye(t,e))))))))),forEachTableCell:(e,t)=>ye(Ie(ce,I(e)),t),forEachRow:(e,t)=>te(Ie(ie,I(e)),((e,s)=>t(s,(t=>ye(e,t))))),forEachCell:(e,t,s)=>ye(Ie(Ie(ie,I(e)),I(t)),s),forEachValue:e=>ye(de,e),addSortedRowIdsListener:(e,t,s,a,l,n,r)=>{let o=is(e,t,s,a,l);return nt((()=>{const r=is(e,t,s,a,l);var c,i,d;i=o,A(c=r)===A(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,n(zs,e,t,s,a,l,o))}),ke[r?1:0],[e,t],[ns])},addStartTransactionListener:e=>nt(e,at),addWillFinishTransactionListener:e=>nt(e,lt[0]),addDidFinishTransactionListener:e=>nt(e,lt[1]),callListener:e=>(ct(e),zs),delListener:e=>(ot(e),zs),getListenerStats:()=>({hasTables:gt(ge),tables:gt(Ce),tableIds:gt(ve),hasTable:gt(Oe),table:gt(xe),tableCellIds:gt(ze),hasTableCell:gt(Ae,Q),rowCount:gt(Pe),rowIds:gt(We),sortedRowIds:gt(ke),hasRow:gt(Ne,Q),row:gt(je,Q),cellIds:gt(Ue,Q),hasCell:gt(_e,X),cell:gt(Qe,X),invalidCell:gt(Xe,X),hasValues:gt(Ze),values:gt($e),valueIds:gt(et),hasValue:gt(tt),value:gt(st),invalidValue:gt(Ye),transaction:K(at)+gt(lt)}),isMergeable:()=>!1,createStore:Tt,addListener:nt,callListeners:rt,setInternalListeners:(e,t,s,a,l)=>y=[e,t,s,a,l]};return fe({[i+g]:[0,ge,[],()=>[Cs()]],[g]:[0,Ce],[h]:[0,ve],[i+u]:[1,Oe,[ns],e=>[fs(...e)]],[u]:[1,xe,[ns]],[u+v]:[1,ze,[ns]],[i+u+T]:[2,Ae,[ns,rs],e=>[Ts(...e)]],[C]:[1,Pe,[ns]],[f]:[1,We,[ns]],[i+b]:[2,Ne,[ns,cs],e=>[vs(...e)]],[b]:[2,je,[ns,cs]],[v]:[2,Ue,[ns,cs]],[i+T]:[3,_e,[ns,cs,ds],e=>[Vs(...e)]],[T]:[3,Qe,[ns,cs,ds],e=>ut(us(...e))],InvalidCell:[3,Xe],[i+w]:[0,Ze,[],()=>[ws()]],[w]:[0,$e],[p]:[0,et],[i+V]:[1,tt,[hs],e=>[ps(...e)]],[V]:[1,st,[hs],e=>ut(bs(e[0]))],InvalidValue:[1,Ye]},(([e,t,s,a],l)=>{zs["add"+l+c]=(...l)=>nt(l[e],t[l[e+1]?1:0],e>0?z(l,0,e):void 0,s,a)})),ue(zs)},vt={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Vt=(e=t)=>[nt(e),nt(e)],wt=e=>{let s=1,a=Vt(),l=0;const n=we(),r=Ge(),[o,i]=(e=>{let t=0,s=-1;const a=D(e,(e=>{const t=le(e);return ze(t/Ne)+ze(t/je)+ze(t/Ue)+ze(t/64)+ze(t)}),(()=>((e=16)=>_(Pe(new Uint8Array(e)),((e,t)=>e+ze(t)),""))(5))),l=e=>{const a=t,[l,n]=J(e)||""==e?[0,0]:[Ae(r=e,0)*We+Ae(r,1)*ke+Ae(r,2)*Ne+Ae(r,3)*je+Ae(r,4)*Ue+64*Ae(r,5)+Ae(r,6),Ae(r,7)*je+Ae(r,8)*Ue+64*Ae(r,9)+Ae(r,10)];var r;t=L(a,l,S.HLC_TIME??Date.now()),s=t==a?t==l?L(s,n):s:t==l?n:-1};return[()=>{return l(),n=++s,ze((e=t)/We)+ze(e/ke)+ze(e/Ne)+ze(e/je)+ze(e/Ue)+ze(e/64)+ze(e)+ze(n/je)+ze(n/Ue)+ze(n/64)+ze(n)+a;var e,n},l]})(e),d=Tt(),u=e=>{const t=s;return s=0,e(),s=t,f},g=(e,s=0)=>{const l={},n={},[[r,o=t,c=0],d]=e,[u,g]=a,[b,C,f]=u;let T=s?c:f,v=o;Ce(r,(([e,a=t,n=0],r)=>{const o=Me(b,r,nt),[c,i,d]=o;let u=s?n:d,g=a;Ce(e,((e,t)=>{const[a,n,o]=h(e,Me(c,t,nt),ve(ve(l,r,ge),t,ge),s);u^=s?0:(n?et(t,n):0)^et(t,o),g=st(g,a)})),u^=s?0:tt(i,a),at(o,a,u),T^=s?0:(d?et(r,d):0)^et(r,o[2]),v=st(v,g)})),T^=s?0:tt(C,o),at(u,o,T);const[V]=h(d,g,n,s);return i(st(v,V)),[l,n,1]},h=(e,s,a,l)=>{const[n,r=t,o=0]=e,[c,i,d]=s;let u=r,g=l?o:d;return Ce(n,(([e,s=t,n=0],r)=>{const o=Me(c,r,(()=>[void 0,t,0])),[,i,d]=o;(!i||s>i)&&(at(o,s,l?n:le(Be(e??null)+":"+s)),o[0]=e,a[r]=e,g^=l?0:et(r,d)^et(r,o[2]),u=st(u,s))})),g^=l?0:tt(i,r),at(s,r,g),[u,d,s[2]]},b=()=>[rt(a[0],(e=>rt(e,(e=>rt(e))))),rt(a[1])],C=e=>u((()=>d.applyChanges(g(e)))),f={getMergeableContent:b,getMergeableContentHashes:()=>[a[0][2],a[1][2]],getMergeableTableHashes:()=>me(a[0][0],$e),getMergeableTableDiff:e=>{const t=lt(a[0][1]),s={};return ye(a[0][0],((a,[l,n,r])=>he(e,a)?r!=e[a]?s[a]=r:0:t[0][a]=ot([l,n],(e=>ot(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return Ce(e,((e,s)=>D(Ie(a[0][0],s),(([a,,l])=>l!=e?ye(a,((e,[,,a])=>ve(t,s,ge)[e]=a)):0)))),t},getMergeableRowDiff:e=>{const t=lt(a[0][1]),s={};return Ce(e,((e,l)=>ye(Ie(a[0][0],l)?.[0],((a,[n,r,o])=>he(e,a)?o!==e[a]?ve(s,l,ge)[a]=o:0:ve(t[0],l,lt)[0][a]=ot([n,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return Ce(e,((e,s)=>D(Ie(a[0][0],s),(([a])=>Ce(e,((e,l)=>D(Ie(a,l),(([a,,n])=>n!==e?ye(a,((e,[,,a])=>ve(ve(t,s,ge),l,ge)[e]=a)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=a,l={};return Ce(e,((e,s)=>Ce(e,((e,a)=>D(Ie(t,s),(([t,n])=>D(Ie(t,a),(([t,r])=>ye(t,((t,[o,c,i])=>i!==e[t]?ve(ve(l,s,(()=>lt(n)))[0],a,(()=>lt(r)))[0][t]=[o,c]:0)))))))))),Ye(l,s)},getMergeableValueHashes:()=>me(a[1][0],$e),getMergeableValueDiff:e=>{const[,[t,s]]=a,l=me(t,Qe,(([,,t],s)=>t==e?.[s]));return Ye(l,s)},setMergeableContent:e=>u((()=>(e=>x(e)&&2==A(e)&&ct(e[0],(e=>Ve(e,(e=>ct(e,(e=>Ve(e,(e=>ct(e,(e=>Ve(e,(e=>ct(e,W)),void 0,1)))),void 0,1)))),void 0,1)))&&ct(e[1],(e=>Ve(e,(e=>ct(e,W)),void 0,1))))(e)?d.transaction((()=>{d.delTables().delValues(),a=Vt(),d.applyChanges(g(e,1))})):0)),setDefaultContent:e=>(d.transaction((()=>{l=1,d.setContent(e),l=0})),f),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,l],[o,c,i]]=a,d=e?Ze:Ye,u={};te(n,((e,s)=>D(Ie(t,s),(([t,a,l])=>{const n={};te(e,((e,s)=>D(Ie(t,s),(([t,a,l])=>{const r={};te(e,(e=>{D(Ie(t,e),(([t,s,a])=>r[e]=d(t,s,a)))})),n[s]=d(r,a,l)})))),u[s]=d(n,a,l)}))));const g={};return te(r,(e=>D(Ie(o,e),(([t,s,a])=>g[e]=d(t,s,a))))),[d(u,s,l),d(g,c,i),1]},applyMergeableChanges:C,merge:e=>{const t=b(),s=e.getMergeableContent();return e.applyMergeableChanges(t),C(s)}};return d.setInternalListeners((()=>{}),(()=>{}),(()=>{ee(n),ee(r)}),((e,a,r,c)=>{Ke(Me(Me(n,e,we),a,Ge),r),s&&g([[{[e]:[{[a]:[{[r]:[c,l?t:o()]}]}]}],[{}],1])}),((e,a)=>{Ke(r,e),s&&g([[{}],[{[e]:[a,l?t:o()]}],1])})),fe(d,((e,t)=>f[t]=y(t,"set")||y(t,"del")||y(t,"apply")||R(t,"Transaction")||t=="call"+c?(...t)=>(e(...t),f):y(t,"add")&&R(t,c)?(...s)=>{const a=vt[z(t,3,-8)]??0,l=s[a];return s[a]=(e,...t)=>l(f,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),ue(f)};export{wt as createMergeableStore};
1
+ const e=e=>typeof e,t="",s=e(t),a=e(!0),l=e(0),n=e(e),r="type",o="default",c="Listener",i="Has",d="Ids",u="Table",g=u+"s",h=u+d,b="Row",C=b+"Count",f=b+d,T="Cell",v=T+d,V="Value",w=V+"s",p=V+d,I=e=>t+e,y=(e,t)=>e.startsWith(t),R=(e,t)=>e.endsWith(t),M=(e,s=t,a)=>e.split(s,a),S=globalThis,m=Math,L=m.max,H=m.floor,J=isFinite,E=e=>null==e,D=(e,t,s)=>E(e)?s?.():t(e),F=e=>e==s||e==a,O=t=>e(t)==n,x=e=>Array.isArray(e),z=(e,t,s)=>e.slice(t,s),A=e=>e.length,P=t=>{const s=e(t);return F(s)||s==l&&J(t)?s:void 0},W=e=>E(e)||!E(P(e)),k=(e,t,s,a,l)=>E(l)?e.delCell(t,s,a,!0):e.setCell(t,s,a,l),N=(e,t,s)=>E(s)?e.delValue(t):e.setValue(t,s),j=(e,t)=>e.forEach(t),U=(e,t)=>e.map(t),q=(e,t,s)=>e.reduce(t,s),B=(e,...t)=>e.push(...t),G=e=>t=>q(_(t),((t,s)=>t+e(s)),0),K=e=>e?.size??0,Q=G(K),X=G(Q),Y=G(X),Z=(e,t)=>e?.has(t)??!1,$=e=>E(e)||0==K(e),_=e=>[...e?.values()??[]],ee=e=>e.clear(),te=(e,t)=>e?.forEach(t),se=(e,t)=>e?.delete(t),ae=new S.TextEncoder,le=e=>{let t=2166136261;return j(ae.encode(e),(e=>{t^=e,t+=(t<<1)+(t<<4)+(t<<7)+(t<<8)+(t<<24)})),t>>>0},ne=Object,re=e=>ne.getPrototypeOf(e),oe=ne.entries,ce=ne.isFrozen,ie=e=>!E(e)&&D(re(e),(e=>e==ne.prototype||E(re(e))),(()=>!0)),de=ne.keys,ue=ne.freeze,ge=(e=[])=>ne.fromEntries(e),he=(e,t)=>t in e,be=(e,t)=>(delete e[t],e),Ce=(e,t)=>j(oe(e),(([e,s])=>t(s,e))),fe=(e,t)=>ge(((e,t)=>U(oe(e),(([e,s])=>t(s,e))))(e,((e,s)=>[s,t(e,s)]))),Te=e=>ie(e)&&0==(e=>A(de(e)))(e),ve=(e,t,s)=>(he(e,t)||(e[t]=s()),e[t]),Ve=(e,t,s,a=0)=>E(e)||!ie(e)||!a&&Te(e)||ce(e)?(s?.(),!1):(Ce(e,((s,a)=>{t(s,a)||be(e,a)})),!!a||!Te(e)),we=e=>new Map(e),pe=e=>[...e?.keys()??[]],Ie=(e,t)=>e?.get(t),ye=(e,t)=>te(e,((e,s)=>t(s,e))),Re=(e,t,s)=>E(s)?(se(e,t),e):e?.set(t,s),Me=(e,t,s,a)=>(Z(e,t)?a?.(Ie(e,t)):Re(e,t,s()),Ie(e,t)),Se=(e,t,s,a=Re)=>(fe(t,((t,a)=>s(e,a,t))),ye(e,(s=>he(t,s)?0:a(e,s))),e),me=(e,t,s,a)=>{const l={};return te(e,((e,n)=>{if(!s?.(e,n)){const s=t?t(e,n):e;a?.(s)||(l[n]=s)}})),l},Le=(e,t,s)=>me(e,(e=>me(e,t,s)),$,Te),He=(e,t,s)=>me(e,(e=>Le(e,t,s)),$,Te),Je=(e,t)=>{const s=we();return te(e,((e,a)=>s.set(a,t?.(e)??e))),s},Ee=e=>Je(e,Je),De=e=>Je(e,Ee),Fe=(e,t,s,a,l=0)=>D((s?Me:Ie)(e,t[l],l>A(t)-2?s:we),(n=>{if(l>A(t)-2)return a?.(n)&&Re(e,t[l]),n;const r=Fe(n,t,s,a,l+1);return $(n)&&Re(e,t[l]),r})),Oe=M("-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz"),xe=we(U(Oe,((e,t)=>[e,t]))),ze=e=>Oe[63&e],Ae=(e,t)=>Ie(xe,e[t])??0,Pe=S.crypto?e=>S.crypto.getRandomValues(e):e=>U(e,(()=>H(256*m.random()))),We=2**36,ke=2**30,Ne=2**24,je=2**18,Ue=4096,qe=JSON.stringify,Be=JSON.parse,Ge=e=>qe(e,((e,t)=>t instanceof Map?ne.fromEntries([...t]):t)),Ke=e=>new Set(x(e)||E(e)?e:[e]),Qe=(e,t)=>e?.add(t),Xe=([e,t])=>Ze(e,t),Ye=([e,t,s])=>[e,t,s],Ze=(e,t)=>t?[e,t]:[e],$e=(e,t,s)=>[e,t,s],_e=e=>e[2],et=(e,t)=>le(e+":"+t),tt=(e,t)=>t>e?(e?le(e):0)^le(t):0,st=(e,t)=>((e??"")>(t??"")?e:t)??"",at=(e,t,s)=>{t>e[1]&&(e[1]=t),e[2]=s>>>0},lt=(e=t)=>Ze(ge(),e),nt=(e=t)=>[we(),e,0],rt=([e,t,s],a=Ye)=>[me(e,a),t,s],ot=([e,t],s=Xe)=>Ze(me(e,s),t),ct=(t,a)=>{return x(t)&&3==A(t)&&(n=t[1],e(n)==s)&&e(t[2])==l&&J(t[2])&&a(t[0]);var n},it=/^\d+$/,dt=()=>{const e=[];let s=0;return[a=>(a?e.shift():null)??t+s++,t=>{it.test(t)&&A(e)<1e3&&B(e,t)}]},ut=e=>[e,e],gt=(e,t=Q)=>t(e[0])+t(e[1]),ht=()=>[we(),we()],bt=e=>[...e],Ct=([e,t])=>e===t,ft=(e,t,s)=>Re(e,t,Ie(e,t)==-s?void 0:s),Tt=()=>{let e,s,a=!1,n=!1,d=0,y=[];const R=we(),M=we(),S=we(),m=we(),L=we(),H=we(),J=we(),W=we(),q=we(),G=we(),_=we(),ae=we(),le=we(),ne=we(),re=Ke(),oe=we(),ce=we(),ie=we(),de=we(),ge=ht(),Ce=ht(),ve=ht(),Oe=ht(),xe=ht(),ze=ht(),Ae=ht(),Pe=ht(),We=ht(),ke=ht(),Ne=ht(),je=ht(),Ue=ht(),qe=ht(),Xe=ht(),Ye=ht(),Ze=ht(),$e=ht(),_e=ht(),et=ht(),tt=ht(),st=ht(),at=we(),lt=ht(),[nt,rt,ot,ct]=(()=>{let e;const[s,a]=dt(),l=we();return[(a,n,r,o=[],c=()=>[])=>{e??=zs;const i=s(1);return Re(l,i,[a,n,r,o,c]),Qe(Fe(n,r??[t],Ke),i),i},(s,a,...n)=>j(((e,s=[t])=>{const a=[],l=(e,t)=>t==A(s)?B(a,e):null===s[t]?te(e,(e=>l(e,t+1))):j([s[t],null],(s=>l(Ie(e,s),t+1)));return l(e,0),a})(s,a),(t=>te(t,(t=>Ie(l,t)[0](e,...a??[],...n))))),e=>D(Ie(l,e),(([,s,n])=>(Fe(s,n??[t],void 0,(t=>(se(t,e),$(t)?1:0))),Re(l,e),a(e),n))),t=>D(Ie(l,t),(([t,,s=[],a,l])=>{const n=(...r)=>{const o=A(r);o==A(s)?t(e,...r,...l(r)):E(s[o])?j(a[o]?.(...r)??[],(e=>n(...r,e))):n(...r,s[o])};n()}))]})(),it=e=>{if(!Ve(e,((e,t)=>[r,o].includes(t))))return!1;const t=e[r];return!(!F(t)&&t!=l||(P(e[o])!=t&&be(e,o),0))},vt=x,Vt=(t,s)=>(!e||Z(_,s)||Qt(s))&&Ve(t,((e,t)=>wt(s,t,e)),(()=>Qt(s))),wt=(e,t,s,a)=>Ve(a?s:Rt(s,e,t),((a,l)=>D(pt(e,t,l,a),(e=>(s[l]=e,!0)),(()=>!1))),(()=>Qt(e,t))),pt=(t,s,a,l)=>e?D(Ie(Ie(_,t),a),(e=>P(l)!=e[r]?Qt(t,s,a,l,e[o]):l),(()=>Qt(t,s,a,l))):E(P(l))?Qt(t,s,a,l):l,It=(e,t)=>Ve(t?e:Mt(e),((t,s)=>D(yt(s,t),(t=>(e[s]=t,!0)),(()=>!1))),(()=>Xt())),yt=(e,t)=>s?D(Ie(le,e),(s=>P(t)!=s[r]?Xt(e,t,s[o]):t),(()=>Xt(e,t))):E(P(t))?Xt(e,t):t,Rt=(e,t,s)=>(D(Ie(ae,t),(([a,l])=>{te(a,((t,s)=>{he(e,s)||(e[s]=t)})),te(l,(a=>{he(e,a)||Qt(t,s,a)}))})),e),Mt=e=>(s&&(te(ne,((t,s)=>{he(e,s)||(e[s]=t)})),te(re,(t=>{he(e,t)||Xt(t)}))),e),St=e=>Se(_,e,((e,t,s)=>{const a=we(),l=Ke();Se(Me(_,t,we),s,((e,t,s)=>{Re(e,t,s),D(s[o],(e=>Re(a,t,e)),(()=>Qe(l,t)))})),Re(ae,t,[a,l])}),((e,t)=>{Re(_,t),Re(ae,t)})),mt=e=>Se(le,e,((e,t,s)=>{Re(le,t,s),D(s[o],(e=>Re(ne,t,e)),(()=>Qe(re,t)))}),((e,t)=>{Re(le,t),Re(ne,t),se(re,t)})),Lt=e=>Te(e)?ms():Is(e),Ht=e=>Se(ie,e,((e,t,s)=>Jt(t,s)),((e,t)=>Pt(t))),Jt=(e,t)=>Se(Me(ie,e,(()=>(jt(e,1),Re(oe,e,dt()),Re(ce,e,we()),we()))),t,((t,s,a)=>Et(e,t,s,a)),((t,s)=>Wt(e,t,s))),Et=(e,t,s,a,l)=>Se(Me(t,s,(()=>(Ut(e,s,1),we()))),a,((t,a,l)=>Dt(e,s,t,a,l)),((a,n)=>kt(e,t,s,a,n,l))),Dt=(e,t,s,a,l)=>{Z(s,a)||qt(e,t,a,1);const n=Ie(s,a);l!==n&&(Bt(e,t,a,n,l),Re(s,a,l))},Ft=(e,t,s,a,l)=>D(Ie(t,s),(t=>Dt(e,s,t,a,l)),(()=>Et(e,t,s,Rt({[a]:l},e,s)))),Ot=e=>Te(e)?Js():ys(e),xt=e=>Se(de,e,((e,t,s)=>zt(t,s)),((e,t)=>Nt(t))),zt=(e,t)=>{Z(de,e)||Gt(e,1);const s=Ie(de,e);t!==s&&(Kt(e,s,t),Re(de,e,t))},At=e=>Ie(ie,e)??Jt(e,{}),Pt=e=>Jt(e,{}),Wt=(e,t,s)=>{const[,a]=Ie(oe,e);a(s),Et(e,t,s,{},!0)},kt=(e,t,s,a,l,n)=>{const r=Ie(Ie(ae,e)?.[0],l);if(!E(r)&&!n)return Dt(e,s,a,l,r);const o=t=>{Bt(e,s,t,Ie(a,t)),qt(e,s,t,-1),Re(a,t)};E(r)?o(l):ye(a,o),$(a)&&(Ut(e,s,-1),$(Re(t,s))&&(jt(e,-1),Re(ie,e),Re(oe,e),Re(ce,e)))},Nt=e=>{const t=Ie(ne,e);if(!E(t))return zt(e,t);Kt(e,Ie(de,e)),Gt(e,-1),Re(de,e)},jt=(e,t)=>ft(R,e,t),Ut=(e,t,s)=>ft(Me(m,e,we),t,s)&&Re(S,e,Me(S,e,(()=>0))+s),qt=(e,t,s,a)=>{const l=Ie(ce,e),n=Ie(l,s)??0;(0==n&&1==a||1==n&&-1==a)&&ft(Me(M,e,we),s,a),Re(l,s,n!=-a?n+a:null),ft(Me(Me(L,e,we),t,we),s,a)},Bt=(e,t,s,a,l)=>{Me(Me(Me(H,e,we),t,we),s,(()=>[a,0]))[1]=l,y[3]?.(e,t,s,l)},Gt=(e,t)=>ft(J,e,t),Kt=(e,t,s)=>{Me(W,e,(()=>[t,0]))[1]=s,y[4]?.(e,s)},Qt=(e,t,s,a,l)=>(B(Me(Me(Me(q,e,we),t,we),s,(()=>[])),a),l),Xt=(e,t,s)=>(B(Me(G,e,(()=>[])),t),s),Yt=(e,t,s)=>D(Ie(Ie(Ie(H,e),t),s),(([e,t])=>[!0,e,t]),(()=>[!1,...ut(us(e,t,s))])),Zt=e=>D(Ie(W,e),(([e,t])=>[!0,e,t]),(()=>[!1,...ut(bs(e))])),$t=e=>$(q)||$(Ye[e])?0:te(e?De(q):q,((t,s)=>te(t,((t,a)=>te(t,((t,l)=>rt(Ye[e],[s,a,l],t))))))),_t=e=>$(G)||$(Ze[e])?0:te(e?Je(G):G,((t,s)=>rt(Ze[e],[s],t))),es=(e,t,s,a)=>{if(!$(e))return rt(t,a,(()=>me(e))),ye(e,((e,t)=>rt(s,[...a??[],e],1==t))),1},ts=e=>{const t=Cs();t!=a&&rt(ge[e],void 0,t);const s=$(ke[e]),l=$(Ue[e])&&$(qe[e])&&$(We[e])&&$(Ne[e])&&$(ze[e])&&$(Ae[e])&&$(Pe[e])&&s&&$(ve[e])&&$(Oe[e]),n=$(Xe[e])&&$(je[e])&&$(xe[e])&&$(Ce[e]);if(!l||!n){const t=e?[Je(R),Ee(M),Je(S),Ee(m),De(L),De(H)]:[R,M,S,m,L,H];if(!l){es(t[0],ve[e],Oe[e]),te(t[1],((t,s)=>es(t,ze[e],Ae[e],[s]))),te(t[2],((t,s)=>{0!=t&&rt(Pe[e],[s],os(s))}));const a=Ke();te(t[3],((t,l)=>{es(t,We[e],Ne[e],[l])&&!s&&(rt(ke[e],[l,null]),Qe(a,l))})),s||te(t[5],((t,s)=>{if(!Z(a,s)){const a=Ke();te(t,(e=>te(e,(([t,s],l)=>s!==t?Qe(a,l):se(e,l))))),te(a,(t=>rt(ke[e],[s,t])))}})),te(t[4],((t,s)=>te(t,((t,a)=>es(t,Ue[e],qe[e],[s,a])))))}if(!n){let s;te(t[5],((t,a)=>{let l;te(t,((t,n)=>{let r;te(t,(([t,o],c)=>{o!==t&&(rt(Xe[e],[a,n,c],o,t,Yt),s=l=r=1)})),r&&rt(je[e],[a,n],Yt)})),l&&rt(xe[e],[a],Yt)})),s&&rt(Ce[e],void 0,Yt)}}},ss=e=>{const t=ws();t!=n&&rt($e[e],void 0,t);const s=$(et[e])&&$(tt[e]),a=$(st[e])&&$(_e[e]);if(!s||!a){const t=e?[Je(J),Je(W)]:[J,W];if(s||es(t[0],et[e],tt[e]),!a){let s;te(t[1],(([t,a],l)=>{a!==t&&(rt(st[e],[l],a,t,Zt),s=1)})),s&&rt(_e[e],void 0,Zt)}}},as=(e,...t)=>(Fs((()=>e(...U(t,I)))),zs),ls=()=>He(ie),ns=()=>pe(ie),rs=e=>pe(Ie(ce,I(e))),os=e=>K(Ie(ie,I(e))),cs=e=>pe(Ie(ie,I(e))),is=(e,t,s,a=0,l)=>{return U(z((r=Ie(ie,I(e)),o=(e,s)=>[E(t)?s:Ie(e,I(t)),s],n=([e],[t])=>((e??0)<(t??0)?-1:1)*(s?-1:1),U([...r?.entries()??[]],(([e,t])=>o(t,e))).sort(n)),a,E(l)?l:a+l),(([,e])=>e));var n,r,o},ds=(e,t)=>pe(Ie(Ie(ie,I(e)),I(t))),us=(e,t,s)=>Ie(Ie(Ie(ie,I(e)),I(t)),I(s)),gs=()=>me(de),hs=()=>pe(de),bs=e=>Ie(de,I(e)),Cs=()=>!$(ie),fs=e=>Z(ie,I(e)),Ts=(e,t)=>Z(Ie(ce,I(e)),I(t)),vs=(e,t)=>Z(Ie(ie,I(e)),I(t)),Vs=(e,t,s)=>Z(Ie(Ie(ie,I(e)),I(t)),I(s)),ws=()=>!$(de),ps=e=>Z(de,I(e)),Is=e=>as((()=>(e=>Ve(e,Vt,Qt))(e)?Ht(e):0)),ys=e=>as((()=>It(e)?xt(e):0)),Rs=e=>{try{Lt(Be(e))}catch{}return zs},Ms=t=>as((()=>{if((e=Ve(t,(e=>Ve(e,it))))&&(St(t),!$(ie))){const e=ls();ms(),Is(e)}})),Ss=e=>as((()=>{if(s=(e=>Ve(e,it))(e)){const t=gs();Ds(),Js(),s=!0,mt(e),ys(t)}})),ms=()=>as((()=>Ht({}))),Ls=e=>as((e=>Z(ie,e)?Pt(e):0),e),Hs=(e,t)=>as(((e,t)=>D(Ie(ie,e),(s=>Z(s,t)?Wt(e,s,t):0))),e,t),Js=()=>as((()=>xt({}))),Es=()=>as((()=>{St({}),e=!1})),Ds=()=>as((()=>{mt({}),s=!1})),Fs=(e,t)=>{if(-1!=d){Os();const s=e();return xs(t),s}},Os=()=>(-1!=d&&d++,1==d&&(y[0]?.(),rt(at)),zs),xs=e=>(d>0&&(d--,0==d&&(d=1,$t(1),$(H)||ts(1),_t(1),$(W)||ss(1),e?.(zs)&&(te(H,((e,t)=>te(e,((e,s)=>te(e,(([e],a)=>k(zs,t,s,a,e))))))),ee(H),te(W,(([e],t)=>N(zs,t,e))),ee(W)),rt(lt[0],void 0),d=-1,$t(0),$(H)||ts(0),_t(0),$(W)||ss(0),y[1]?.(),rt(lt[1],void 0),y[2]?.(),d=0,a=Cs(),n=ws(),j([R,M,S,m,L,H,q,J,W,G],ee))),zs),zs={getContent:()=>[ls(),gs()],getTables:ls,getTableIds:ns,getTable:e=>Le(Ie(ie,I(e))),getTableCellIds:rs,getRowCount:os,getRowIds:cs,getSortedRowIds:is,getRow:(e,t)=>me(Ie(Ie(ie,I(e)),I(t))),getCellIds:ds,getCell:us,getValues:gs,getValueIds:hs,getValue:bs,hasTables:Cs,hasTable:fs,hasTableCell:Ts,hasRow:vs,hasCell:Vs,hasValues:ws,hasValue:ps,getTablesJson:()=>Ge(ie),getValuesJson:()=>Ge(de),getJson:()=>Ge([ie,de]),getTablesSchemaJson:()=>Ge(_),getValuesSchemaJson:()=>Ge(le),getSchemaJson:()=>Ge([_,le]),hasTablesSchema:()=>e,hasValuesSchema:()=>s,setContent:e=>as((()=>{const t=O(e)?e():e;vt(t)&&(([e,t])=>{(Te(e)?ms:Is)(e),(Te(t)?Js:ys)(t)})(t)})),setTables:Is,setTable:(e,t)=>as((e=>Vt(t,e)?Jt(e,t):0),e),setRow:(e,t,s)=>as(((e,t)=>wt(e,t,s)?Et(e,At(e),t,s):0),e,t),addRow:(e,t,s=!0)=>Fs((()=>{let a;return wt(e,a,t)&&(e=I(e),Et(e,At(e),a=((e,t)=>{const[s]=Ie(oe,e);let a;do{a=s(t)}while(Z(Ie(ie,e),a));return a})(e,s?1:0),t)),a})),setPartialRow:(e,t,s)=>as(((e,t)=>{if(wt(e,t,s,1)){const a=At(e);fe(s,((s,l)=>Ft(e,a,t,l,s)))}}),e,t),setCell:(e,t,s,a)=>as(((e,t,s)=>D(pt(e,t,s,O(a)?a(us(e,t,s)):a),(a=>Ft(e,At(e),t,s,a)))),e,t,s),setValues:ys,setPartialValues:e=>as((()=>It(e,1)?fe(e,((e,t)=>zt(t,e))):0)),setValue:(e,t)=>as((e=>D(yt(e,O(t)?t(bs(e)):t),(t=>zt(e,t)))),e),applyChanges:e=>as((()=>{fe(e[0],((e,t)=>E(e)?Ls(t):fe(e,((e,s)=>E(e)?Hs(t,s):fe(e,((e,a)=>k(zs,t,s,a,e))))))),fe(e[1],((e,t)=>N(zs,t,e)))})),setTablesJson:Rs,setValuesJson:e=>{try{Ot(Be(e))}catch{}return zs},setJson:e=>as((()=>{try{const[t,s]=Be(e);Lt(t),Ot(s)}catch{Rs(e)}})),setTablesSchema:Ms,setValuesSchema:Ss,setSchema:(e,t)=>as((()=>{Ms(e),Ss(t)})),delTables:ms,delTable:Ls,delRow:Hs,delCell:(e,t,s,a)=>as(((e,t,s)=>D(Ie(ie,e),(l=>D(Ie(l,t),(n=>Z(n,s)?kt(e,l,t,n,s,a):0))))),e,t,s),delValues:Js,delValue:e=>as((e=>Z(de,e)?Nt(e):0),e),delTablesSchema:Es,delValuesSchema:Ds,delSchema:()=>as((()=>{Es(),Ds()})),transaction:Fs,startTransaction:Os,getTransactionChanges:()=>[me(H,((e,t)=>-1===Ie(R,t)?void 0:me(e,((e,s)=>-1===Ie(Ie(m,t),s)?void 0:me(e,(([,e])=>e),(e=>Ct(e)))),$,Te)),$,Te),me(W,(([,e])=>e),(e=>Ct(e))),1],getTransactionLog:()=>[!$(H),!$(W),He(H,bt,Ct),He(q),me(W,bt,Ct),me(G),me(R),Le(m),He(L),me(J)],finishTransaction:xs,forEachTable:e=>te(ie,((t,s)=>e(s,(e=>te(t,((t,s)=>e(s,(e=>ye(t,e))))))))),forEachTableCell:(e,t)=>ye(Ie(ce,I(e)),t),forEachRow:(e,t)=>te(Ie(ie,I(e)),((e,s)=>t(s,(t=>ye(e,t))))),forEachCell:(e,t,s)=>ye(Ie(Ie(ie,I(e)),I(t)),s),forEachValue:e=>ye(de,e),addSortedRowIdsListener:(e,t,s,a,l,n,r)=>{let o=is(e,t,s,a,l);return nt((()=>{const r=is(e,t,s,a,l);var c,i,d;i=o,A(c=r)===A(i)&&(d=(e,t)=>i[t]===e,c.every(d))||(o=r,n(zs,e,t,s,a,l,o))}),ke[r?1:0],[e,t],[ns])},addStartTransactionListener:e=>nt(e,at),addWillFinishTransactionListener:e=>nt(e,lt[0]),addDidFinishTransactionListener:e=>nt(e,lt[1]),callListener:e=>(ct(e),zs),delListener:e=>(ot(e),zs),getListenerStats:()=>({hasTables:gt(ge),tables:gt(Ce),tableIds:gt(ve),hasTable:gt(Oe),table:gt(xe),tableCellIds:gt(ze),hasTableCell:gt(Ae,X),rowCount:gt(Pe),rowIds:gt(We),sortedRowIds:gt(ke),hasRow:gt(Ne,X),row:gt(je,X),cellIds:gt(Ue,X),hasCell:gt(qe,Y),cell:gt(Xe,Y),invalidCell:gt(Ye,Y),hasValues:gt($e),values:gt(_e),valueIds:gt(et),hasValue:gt(tt),value:gt(st),invalidValue:gt(Ze),transaction:Q(at)+gt(lt)}),isMergeable:()=>!1,createStore:Tt,addListener:nt,callListeners:rt,setInternalListeners:(e,t,s,a,l)=>y=[e,t,s,a,l]};return fe({[i+g]:[0,ge,[],()=>[Cs()]],[g]:[0,Ce],[h]:[0,ve],[i+u]:[1,Oe,[ns],e=>[fs(...e)]],[u]:[1,xe,[ns]],[u+v]:[1,ze,[ns]],[i+u+T]:[2,Ae,[ns,rs],e=>[Ts(...e)]],[C]:[1,Pe,[ns]],[f]:[1,We,[ns]],[i+b]:[2,Ne,[ns,cs],e=>[vs(...e)]],[b]:[2,je,[ns,cs]],[v]:[2,Ue,[ns,cs]],[i+T]:[3,qe,[ns,cs,ds],e=>[Vs(...e)]],[T]:[3,Xe,[ns,cs,ds],e=>ut(us(...e))],InvalidCell:[3,Ye],[i+w]:[0,$e,[],()=>[ws()]],[w]:[0,_e],[p]:[0,et],[i+V]:[1,tt,[hs],e=>[ps(...e)]],[V]:[1,st,[hs],e=>ut(bs(e[0]))],InvalidValue:[1,Ze]},(([e,t,s,a],l)=>{zs["add"+l+c]=(...l)=>nt(l[e],t[l[e+1]?1:0],e>0?z(l,0,e):void 0,s,a)})),ue(zs)},vt={HasTable:1,Table:1,TableCellIds:1,HasTableCell:2,RowCount:1,RowIds:1,SortedRowIds:5,HasRow:2,Row:2,CellIds:2,HasCell:3,Cell:3,HasValue:1,Value:1,InvalidCell:3,InvalidValue:1},Vt=(e=t)=>[nt(e),nt(e)],wt=(e,s)=>{let a=1,l=Vt(),n=0;const r=we(),o=Ke(),[i,d]=((e,t=Date.now)=>{let s=0,a=-1;const l=D(e,(e=>{const t=le(e);return ze(t/Ne)+ze(t/je)+ze(t/Ue)+ze(t/64)+ze(t)}),(()=>((e=16)=>q(Pe(new Uint8Array(e)),((e,t)=>e+ze(t)),""))(5))),n=e=>{const l=s,[n,r]=E(e)||""==e?[0,0]:[Ae(o=e,0)*We+Ae(o,1)*ke+Ae(o,2)*Ne+Ae(o,3)*je+Ae(o,4)*Ue+64*Ae(o,5)+Ae(o,6),Ae(o,7)*je+Ae(o,8)*Ue+64*Ae(o,9)+Ae(o,10)];var o;s=L(l,n,t()),a=s==l?s==n?L(a,r):a:s==n?r:-1};return[()=>{return n(),t=++a,ze((e=s)/We)+ze(e/ke)+ze(e/Ne)+ze(e/je)+ze(e/Ue)+ze(e/64)+ze(e)+ze(t/je)+ze(t/Ue)+ze(t/64)+ze(t)+l;var e,t},n]})(e,s),u=Tt(),g=e=>{const t=a;return a=0,e(),a=t,T},h=(e,s=0)=>{const a={},n={},[[r,o=t,c=0],i]=e,[u,g]=l,[h,C,f]=u;let T=s?c:f,v=o;Ce(r,(([e,l=t,n=0],r)=>{const o=Me(h,r,nt),[c,i,d]=o;let u=s?n:d,g=l;Ce(e,((e,t)=>{const[l,n,o]=b(e,Me(c,t,nt),ve(ve(a,r,ge),t,ge),s);u^=s?0:(n?et(t,n):0)^et(t,o),g=st(g,l)})),u^=s?0:tt(i,l),at(o,l,u),T^=s?0:(d?et(r,d):0)^et(r,o[2]),v=st(v,g)})),T^=s?0:tt(C,o),at(u,o,T);const[V]=b(i,g,n,s);return d(st(v,V)),[a,n,1]},b=(e,s,a,l)=>{const[n,r=t,o=0]=e,[c,i,d]=s;let u=r,g=l?o:d;return Ce(n,(([e,s=t,n=0],r)=>{const o=Me(c,r,(()=>[void 0,t,0])),[,i,d]=o;(!i||s>i)&&(at(o,s,l?n:le(Ge(e??null)+":"+s)),o[0]=e,a[r]=e,g^=l?0:et(r,d)^et(r,o[2]),u=st(u,s))})),g^=l?0:tt(i,r),at(s,r,g),[u,d,s[2]]},C=()=>[rt(l[0],(e=>rt(e,(e=>rt(e))))),rt(l[1])],f=e=>g((()=>u.applyChanges(h(e)))),T={getMergeableContent:C,getMergeableContentHashes:()=>[l[0][2],l[1][2]],getMergeableTableHashes:()=>me(l[0][0],_e),getMergeableTableDiff:e=>{const t=lt(l[0][1]),s={};return ye(l[0][0],((a,[l,n,r])=>he(e,a)?r!=e[a]?s[a]=r:0:t[0][a]=ot([l,n],(e=>ot(e))))),[t,s]},getMergeableRowHashes:e=>{const t={};return Ce(e,((e,s)=>D(Ie(l[0][0],s),(([a,,l])=>l!=e?ye(a,((e,[,,a])=>ve(t,s,ge)[e]=a)):0)))),t},getMergeableRowDiff:e=>{const t=lt(l[0][1]),s={};return Ce(e,((e,a)=>ye(Ie(l[0][0],a)?.[0],((l,[n,r,o])=>he(e,l)?o!==e[l]?ve(s,a,ge)[l]=o:0:ve(t[0],a,lt)[0][l]=ot([n,r]))))),[t,s]},getMergeableCellHashes:e=>{const t={};return Ce(e,((e,s)=>D(Ie(l[0][0],s),(([a])=>Ce(e,((e,l)=>D(Ie(a,l),(([a,,n])=>n!==e?ye(a,((e,[,,a])=>ve(ve(t,s,ge),l,ge)[e]=a)):0)))))))),t},getMergeableCellDiff:e=>{const[[t,s]]=l,a={};return Ce(e,((e,s)=>Ce(e,((e,l)=>D(Ie(t,s),(([t,n])=>D(Ie(t,l),(([t,r])=>ye(t,((t,[o,c,i])=>i!==e[t]?ve(ve(a,s,(()=>lt(n)))[0],l,(()=>lt(r)))[0][t]=[o,c]:0)))))))))),Ze(a,s)},getMergeableValueHashes:()=>me(l[1][0],_e),getMergeableValueDiff:e=>{const[,[t,s]]=l,a=me(t,Xe,(([,,t],s)=>t==e?.[s]));return Ze(a,s)},setMergeableContent:e=>g((()=>(e=>x(e)&&2==A(e)&&ct(e[0],(e=>Ve(e,(e=>ct(e,(e=>Ve(e,(e=>ct(e,(e=>Ve(e,(e=>ct(e,W)),void 0,1)))),void 0,1)))),void 0,1)))&&ct(e[1],(e=>Ve(e,(e=>ct(e,W)),void 0,1))))(e)?u.transaction((()=>{u.delTables().delValues(),l=Vt(),u.applyChanges(h(e,1))})):0)),setDefaultContent:e=>(u.transaction((()=>{n=1,u.setContent(e),n=0})),T),getTransactionMergeableChanges:(e=!1)=>{const[[t,s,a],[n,c,i]]=l,d=e?$e:Ze,u={};te(r,((e,s)=>D(Ie(t,s),(([t,a,l])=>{const n={};te(e,((e,s)=>D(Ie(t,s),(([t,a,l])=>{const r={};te(e,(e=>{D(Ie(t,e),(([t,s,a])=>r[e]=d(t,s,a)))})),n[s]=d(r,a,l)})))),u[s]=d(n,a,l)}))));const g={};return te(o,(e=>D(Ie(n,e),(([t,s,a])=>g[e]=d(t,s,a))))),[d(u,s,a),d(g,c,i),1]},applyMergeableChanges:f,merge:e=>{const t=C(),s=e.getMergeableContent();return e.applyMergeableChanges(t),f(s)}};return u.setInternalListeners((()=>{}),(()=>{}),(()=>{ee(r),ee(o)}),((e,s,l,o)=>{Qe(Me(Me(r,e,we),s,Ke),l),a&&h([[{[e]:[{[s]:[{[l]:[o,n?t:i()]}]}]}],[{}],1])}),((e,s)=>{Qe(o,e),a&&h([[{}],[{[e]:[s,n?t:i()]}],1])})),fe(u,((e,t)=>T[t]=y(t,"set")||y(t,"del")||y(t,"apply")||R(t,"Transaction")||t=="call"+c?(...t)=>(e(...t),T):y(t,"add")&&R(t,c)?(...s)=>{const a=vt[z(t,3,-8)]??0,l=s[a];return s[a]=(e,...t)=>l(T,...t),e(...s)}:"isMergeable"==t?()=>!0:e)),ue(T)};export{wt as createMergeableStore};
Binary file