json-fs-query 3.3.0 → 3.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -137,7 +137,7 @@ that aren't nullable reject it.
137
137
 
138
138
  `useDefault: true, defaultValue: …` fills in a field that is left out. `create()` checks the default against the
139
139
  field's type (a `null` default needs `nullable: true`) and throws if it doesn't fit. Primary key fields can't be
140
- nullable. Each key needs a non-empty `fields` list naming defined fields, and unknown key properties are rejected.
140
+ nullable, or optional unless they're `auto` (a row has to have its key: its file is named by it). Each key needs a non-empty `fields` list naming defined fields, and unknown key properties are rejected.
141
141
  As in SQL, a `null` is never a duplicate in a unique key (any number of rows can hold it), and
142
142
  a `null` foreign key isn't checked against the record it references.
143
143
 
@@ -457,7 +457,7 @@ A field is `<name> <type>`, then any of these, in any order:
457
457
  |---|---|
458
458
  | `optional` | may be left out (see "Fields" above) |
459
459
  | `null` / `not null` | may hold `null` / may not (the default) |
460
- | `auto` | a UUID is generated on insert; the type must be `string` |
460
+ | `auto` | a UUID is generated on insert for a row that leaves the field out (or gives `null`); a value given for it is kept, as MySQL keeps an explicit `AUTO_INCREMENT` value, and still has to be unique when the field is a key. The type must be `string` |
461
461
  | `default <value>` | used when the field is left out: a string, a number, an array, `null`, `true` or `false` (so an `object` field can only default to `null` here; `create()` takes any default) |
462
462
 
463
463
  The types are `string`, `int`, `boolean`, `object` and `array`; any other is an error.
@@ -591,6 +591,12 @@ Queries that worked in 2.x can be errors now (each error names the problem), and
591
591
  can't be read`), as `drop` and `describe` already said, instead of `Could not read <name>.json`. A join written
592
592
  without the record to join (`read workouts on ...`) says so, instead of `Could not read .json`.
593
593
 
594
+ ### Upgrading from 3.3
595
+
596
+ - An `auto` field keeps a value given for it on insert. Before 3.3.1, `insert foo values _id = 'mine', ...` stored the row
597
+ under a new UUID without a word, so copying rows with their ids (or migrating data whose other records point at those
598
+ ids) lost them. A row that leaves the field out, or gives `null`, still gets a new UUID.
599
+
594
600
  ## Configuration
595
601
 
596
602
  `configure()` sets where this package's data lives and how strictly it enforces foreign keys - call it once,
@@ -9105,7 +9105,9 @@ var jsonFsQuery = (() => {
9105
9105
  value = void 0;
9106
9106
  }
9107
9107
  if (field.autoGenerate) {
9108
- value = await generateKey(statement, field.name);
9108
+ if (value === void 0 || value === null) {
9109
+ value = await generateKey(statement, field.name);
9110
+ }
9109
9111
  } else if (Object.prototype.hasOwnProperty.call(field, "default")) {
9110
9112
  value = (0, _useDefault.useDefault)(field["default"], value);
9111
9113
  }
@@ -9723,9 +9725,13 @@ var jsonFsQuery = (() => {
9723
9725
  }
9724
9726
  const primaryKey = recordContent.keys.find((key) => key.type === "primary");
9725
9727
  for (const fieldName of primaryKey ? primaryKey.fields : []) {
9726
- if (recordContent.definition.some((field) => field.name === fieldName && field.nullable)) {
9728
+ const field = recordContent.definition.find((defined) => defined.name === fieldName);
9729
+ if (field && field.nullable) {
9727
9730
  throw new Error(`Primary key field "${fieldName}" of ${recordName} can't be nullable`);
9728
9731
  }
9732
+ if (field && field.optional && !field.autoGenerate) {
9733
+ throw new Error(`Primary key field "${fieldName}" of ${recordName} can't be optional`);
9734
+ }
9729
9735
  }
9730
9736
  };
9731
9737
  exports.assertValidDefinition = assertValidDefinition;
@@ -10881,20 +10887,23 @@ var jsonFsQuery = (() => {
10881
10887
  value: true
10882
10888
  });
10883
10889
  exports.reconcileJoin = void 0;
10890
+ require_es_json_stringify();
10884
10891
  require_esnext_iterator_constructor();
10892
+ require_esnext_iterator_every();
10893
+ require_esnext_iterator_find();
10885
10894
  require_esnext_iterator_for_each();
10886
- var _where = require_where();
10895
+ var sameValue = (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b);
10887
10896
  var reconcileJoin = (dataSet, entityName, entityKey, joinEntity, joinProp) => {
10888
10897
  const entity = dataSet[entityName][entityKey];
10889
- if (Object.prototype.hasOwnProperty.call(entity, joinEntity) && Array.isArray(entity[joinEntity])) {
10890
- entity[joinEntity].forEach((mergedEntity, k) => {
10891
- const matchedEntity = (0, _where.where)(dataSet[joinEntity], {
10892
- property: joinProp,
10893
- comparator: "=",
10894
- value: mergedEntity[joinProp]
10895
- });
10896
- if (matchedEntity.length) {
10897
- dataSet[entityName][entityKey][joinEntity][k] = matchedEntity[0];
10898
+ if (Object.prototype.hasOwnProperty.call(entity, joinEntity) && Array.isArray(entity[joinEntity]) && Array.isArray(dataSet[joinEntity])) {
10899
+ entity[joinEntity].forEach((joinedRow, k) => {
10900
+ if (!joinedRow || !Object.prototype.hasOwnProperty.call(joinedRow, joinProp)) {
10901
+ return;
10902
+ }
10903
+ const fields = Object.keys(joinedRow);
10904
+ const mergedRow = dataSet[joinEntity].find((row) => fields.every((field) => sameValue(row[field], joinedRow[field])));
10905
+ if (mergedRow) {
10906
+ dataSet[entityName][entityKey][joinEntity][k] = mergedRow;
10898
10907
  }
10899
10908
  });
10900
10909
  }
@@ -1 +1 @@
1
- "use strict";var jsonFsQuery=(()=>{var e,t,r,n,o=Object.create,s=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,d=(e,t)=>function(){try{return t||(0,e[a(e)[0]])((t={exports:{}}).exports,t),t.exports}catch(e){throw t=0,e}},u=(e,t,r)=>(r=null!=e?o(c(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of a(t))l.call(e,o)||o===r||s(e,o,{get:()=>t[o],enumerable:!(n=i(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:s(r,"default",{value:e,enumerable:!0}),e)),f=d({"node_modules/process/browser.js"(e,t){p();var r,n,o=t.exports={};function s(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(r===setTimeout)return setTimeout(e,0);if((r===s||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:s}catch(e){r=s}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var c,l=[],d=!1,u=-1;function f(){d&&c&&(d=!1,c.length?l=c.concat(l):u=-1,l.length&&y())}function y(){if(!d){var e=a(f);d=!0;for(var t=l.length;t;){for(c=l,l=[];++u<t;)c&&c[u].run();u=-1,t=l.length}c=null,d=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===i||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];l.push(new h(e,t)),1!==l.length||d||a(y)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}}}),p=(t={"js-build-tools-inject:process"(){e=u(f())}},function(){if(n)throw n[0];try{return t&&(r=(0,t[a(t)[0]])(t=0)),r}catch(e){throw n=[e],e}}),y=d({"node_modules/core-js/internals/global-this.js"(e,t){p();var r=function(e){return e&&e.Math===Math&&e};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof globalThis&&globalThis)||r("object"==typeof e&&e)||function(){return this}()||Function("return this")()}}),h=d({"node_modules/core-js/internals/fails.js"(e,t){p(),t.exports=function(e){try{return!!e()}catch(e){return!0}}}}),m=d({"node_modules/core-js/internals/descriptors.js"(e,t){p();var r=h();t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))}}),v=d({"node_modules/core-js/internals/function-bind-native.js"(e,t){p();var r=h();t.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))}}),w=d({"node_modules/core-js/internals/function-call.js"(e,t){p();var r=v(),n=Function.prototype.call;t.exports=r?n.bind(n):function(){return n.apply(n,arguments)}}}),g=d({"node_modules/core-js/internals/object-property-is-enumerable.js"(e){p();var t={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!t.call({1:2},1);e.f=n?function(e){var t=r(this,e);return!!t&&t.enumerable}:t}}),j=d({"node_modules/core-js/internals/create-property-descriptor.js"(e,t){p(),t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}}}),b=d({"node_modules/core-js/internals/function-uncurry-this.js"(e,t){p();var r=v(),n=Function.prototype,o=n.call,s=r&&n.bind.bind(o,o);t.exports=r?s:function(e){return function(){return o.apply(e,arguments)}}}}),_=d({"node_modules/core-js/internals/classof-raw.js"(e,t){p();var r=b(),n=r({}.toString),o=r("".slice);t.exports=function(e){return o(n(e),8,-1)}}}),x=d({"node_modules/core-js/internals/indexed-object.js"(e,t){p();var r=b(),n=h(),o=_(),s=Object,i=r("".split);t.exports=n((function(){return!s("z").propertyIsEnumerable(0)}))?function(e){return"String"===o(e)?i(e,""):s(e)}:s}}),$=d({"node_modules/core-js/internals/is-null-or-undefined.js"(e,t){p(),t.exports=function(e){return null==e}}}),O=d({"node_modules/core-js/internals/require-object-coercible.js"(e,t){p();var r=$(),n=TypeError;t.exports=function(e){if(r(e))throw new n("Can't call method on "+e);return e}}}),E=d({"node_modules/core-js/internals/to-indexed-object.js"(e,t){p();var r=x(),n=O();t.exports=function(e){return r(n(e))}}}),k=d({"node_modules/core-js/internals/is-callable.js"(e,t){p();var r="object"==typeof document&&document.all;t.exports=void 0===r&&void 0!==r?function(e){return"function"==typeof e||e===r}:function(e){return"function"==typeof e}}}),P=d({"node_modules/core-js/internals/is-object.js"(e,t){p();var r=k();t.exports=function(e){return"object"==typeof e?null!==e:r(e)}}}),S=d({"node_modules/core-js/internals/get-built-in.js"(e,t){p();var r=y(),n=k();t.exports=function(e,t){return arguments.length<2?(o=r[e],n(o)?o:void 0):r[e]&&r[e][t];var o}}}),M=d({"node_modules/core-js/internals/object-is-prototype-of.js"(e,t){p();var r=b();t.exports=r({}.isPrototypeOf)}}),R=d({"node_modules/core-js/internals/environment-user-agent.js"(e,t){p();var r=y().navigator,n=r&&r.userAgent;t.exports=n?String(n):""}}),D=d({"node_modules/core-js/internals/environment-v8-version.js"(e,t){p();var r,n,o=y(),s=R(),i=o.process,a=o.Deno,c=i&&i.versions||a&&a.version,l=c&&c.v8;l&&(n=(r=l.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(n=+r[1]),t.exports=n}}),C=d({"node_modules/core-js/internals/symbol-constructor-detection.js"(e,t){p();var r=D(),n=h(),o=y().String;t.exports=!!Object.getOwnPropertySymbols&&!n((function(){var e=Symbol("symbol detection");return!o(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))}}),F=d({"node_modules/core-js/internals/use-symbol-as-uid.js"(e,t){p();var r=C();t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}}),A=d({"node_modules/core-js/internals/is-symbol.js"(e,t){p();var r=S(),n=k(),o=M(),s=F(),i=Object;t.exports=s?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return n(t)&&o(t.prototype,i(e))}}}),T=d({"node_modules/core-js/internals/try-to-string.js"(e,t){p();var r=String;t.exports=function(e){try{return r(e)}catch(e){return"Object"}}}}),I=d({"node_modules/core-js/internals/a-callable.js"(e,t){p();var r=k(),n=T(),o=TypeError;t.exports=function(e){if(r(e))return e;throw new o(n(e)+" is not a function")}}}),N=d({"node_modules/core-js/internals/get-method.js"(e,t){p();var r=I(),n=$();t.exports=function(e,t){var o=e[t];return n(o)?void 0:r(o)}}}),J=d({"node_modules/core-js/internals/ordinary-to-primitive.js"(e,t){p();var r=w(),n=k(),o=P(),s=TypeError;t.exports=function(e,t){var i,a;if("string"===t&&n(i=e.toString)&&!o(a=r(i,e)))return a;if(n(i=e.valueOf)&&!o(a=r(i,e)))return a;if("string"!==t&&n(i=e.toString)&&!o(a=r(i,e)))return a;throw new s("Can't convert object to primitive value")}}}),q=d({"node_modules/core-js/internals/is-pure.js"(e,t){p(),t.exports=!1}}),L=d({"node_modules/core-js/internals/define-global-property.js"(e,t){p();var r=y(),n=Object.defineProperty;t.exports=function(e,t){try{n(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}}}),z=d({"node_modules/core-js/internals/shared-store.js"(e,t){p();var r=q(),n=y(),o=L(),s="__core-js_shared__",i=t.exports=n[s]||o(s,{});(i.versions||(i.versions=[])).push({version:"3.51.0",mode:r?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.51.0/LICENSE",source:"https://github.com/zloirock/core-js"})}}),B=d({"node_modules/core-js/internals/shared.js"(e,t){p();var r=z(),n=Object.create||Object;t.exports=function(e,t){return r[e]||(r[e]=t||n(null))}}}),V=d({"node_modules/core-js/internals/to-object.js"(e,t){p();var r=O(),n=Object;t.exports=function(e){return n(r(e))}}}),W=d({"node_modules/core-js/internals/has-own-property.js"(e,t){p();var r=b(),n=V(),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(e,t){return o(n(e),t)}}}),U=d({"node_modules/core-js/internals/uid.js"(e,t){p();var r=b(),n=0,o=Math.random(),s=r(1.1.toString);t.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+s(++n+o,36)}}}),K=d({"node_modules/core-js/internals/well-known-symbol.js"(e,t){p();var r=y(),n=B(),o=W(),s=U(),i=C(),a=F(),c=r.Symbol,l=n("wks"),d=a?c.for||c:c&&c.withoutSetter||s;t.exports=function(e){return o(l,e)||(l[e]=i&&o(c,e)?c[e]:d("Symbol."+e)),l[e]}}}),Q=d({"node_modules/core-js/internals/to-primitive.js"(e,t){p();var r=w(),n=P(),o=A(),s=N(),i=J(),a=K(),c=TypeError,l=a("toPrimitive");t.exports=function(e,t){if(!n(e)||o(e))return e;var a,d=s(e,l);if(d){if(void 0===t&&(t="default"),a=r(d,e,t),!n(a)||o(a))return a;throw new c("Can't convert object to primitive value")}return void 0===t&&(t="number"),i(e,t)}}}),G=d({"node_modules/core-js/internals/to-property-key.js"(e,t){p();var r=Q(),n=A();t.exports=function(e){var t=r(e,"string");return n(t)?t:t+""}}}),H=d({"node_modules/core-js/internals/document-create-element.js"(e,t){p();var r=y(),n=P(),o=r.document,s=n(o)&&n(o.createElement);t.exports=function(e){return s?o.createElement(e):{}}}}),X=d({"node_modules/core-js/internals/ie8-dom-define.js"(e,t){p();var r=m(),n=h(),o=H();t.exports=!r&&!n((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))}}),Y=d({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(e){p();var t=m(),r=w(),n=g(),o=j(),s=E(),i=G(),a=W(),c=X(),l=Object.getOwnPropertyDescriptor;e.f=t?l:function(e,t){if(e=s(e),t=i(t),c)try{return l(e,t)}catch(e){}if(a(e,t))return o(!r(n.f,e,t),e[t])}}}),Z=d({"node_modules/core-js/internals/v8-prototype-define-bug.js"(e,t){p();var r=m(),n=h();t.exports=r&&n((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))}}),ee=d({"node_modules/core-js/internals/an-object.js"(e,t){p();var r=P(),n=String,o=TypeError;t.exports=function(e){if(r(e))return e;throw new o(n(e)+" is not an object")}}}),te=d({"node_modules/core-js/internals/object-define-property.js"(e){p();var t=m(),r=X(),n=Z(),o=ee(),s=G(),i=TypeError,a=Object.defineProperty,c=Object.getOwnPropertyDescriptor,l="enumerable",d="configurable",u="writable";e.f=t?n?function(e,t,r){if(o(e),t=s(t),o(r),"function"==typeof e&&"prototype"===t&&"value"in r&&u in r&&!r[u]){var n=c(e,t);n&&n[u]&&(e[t]=r.value,r={configurable:d in r?r[d]:n[d],enumerable:l in r?r[l]:n[l],writable:!1})}return a(e,t,r)}:a:function(e,t,n){if(o(e),t=s(t),o(n),r)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw new i("Accessors not supported");return"value"in n&&(e[t]=n.value),e}}}),re=d({"node_modules/core-js/internals/create-non-enumerable-property.js"(e,t){p();var r=m(),n=te(),o=j();t.exports=r?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}}}),ne=d({"node_modules/core-js/internals/function-name.js"(e,t){p();var r=m(),n=W(),o=Function.prototype,s=r&&Object.getOwnPropertyDescriptor,i=n(o,"name"),a=i&&"something"===function(){}.name,c=i&&(!r||r&&s(o,"name").configurable);t.exports={EXISTS:i,PROPER:a,CONFIGURABLE:c}}}),oe=d({"node_modules/core-js/internals/inspect-source.js"(e,t){p();var r=b(),n=k(),o=z(),s=r(Function.toString);n(o.inspectSource)||(o.inspectSource=function(e){return s(e)}),t.exports=o.inspectSource}}),se=d({"node_modules/core-js/internals/weak-map-basic-detection.js"(e,t){p();var r=y(),n=k(),o=r.WeakMap;t.exports=n(o)&&/native code/.test(String(o))}}),ie=d({"node_modules/core-js/internals/shared-key.js"(e,t){p();var r=B(),n=U(),o=r("keys");t.exports=function(e){return o[e]||(o[e]=n(e))}}}),ae=d({"node_modules/core-js/internals/hidden-keys.js"(e,t){p(),t.exports={}}}),ce=d({"node_modules/core-js/internals/internal-state.js"(e,t){p();var r,n,o,s,i,a=se(),c=y(),l=P(),d=re(),u=W(),f=z(),h=ie(),m=ae(),v="Object already initialized",w=c.TypeError,g=c.WeakMap;a||f.state?((s=f.state||(f.state=new g)).get=s.get,s.has=s.has,s.set=s.set,r=function(e,t){if(s.has(e))throw new w(v);return t.facade=e,s.set(e,t),t},n=function(e){return s.get(e)||{}},o=function(e){return s.has(e)}):(m[i=h("state")]=!0,r=function(e,t){if(u(e,i))throw new w(v);return t.facade=e,d(e,i,t),t},n=function(e){return u(e,i)?e[i]:{}},o=function(e){return u(e,i)}),t.exports={set:r,get:n,has:o,enforce:function(e){return o(e)?n(e):r(e,{})},getterFor:function(e){return function(t){var r;if(!l(t)||(r=n(t)).type!==e)throw new w("Incompatible receiver, "+e+" required");return r}}}}}),le=d({"node_modules/core-js/internals/make-built-in.js"(e,t){p();var r=b(),n=h(),o=k(),s=W(),i=m(),a=ne().CONFIGURABLE,c=oe(),l=ce(),d=l.enforce,u=l.get,f=String,y=Object.defineProperty,v=r("".slice),w=r("".replace),g=r([].join),j=i&&!n((function(){return 8!==y((function(){}),"length",{value:8}).length})),_=String(String).split("String"),x=t.exports=function(e,t,r){"Symbol("===v(f(t),0,7)&&(t="["+w(f(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!s(e,"name")||a&&e.name!==t)&&(i?y(e,"name",{value:t,configurable:!0}):e.name=t),j&&r&&s(r,"arity")&&e.length!==r.arity&&y(e,"length",{value:r.arity});try{r&&s(r,"constructor")&&r.constructor?i&&y(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=d(e);return s(n,"source")||(n.source=g(_,"string"==typeof t?t:"")),e};Function.prototype.toString=x((function(){return o(this)&&u(this).source||c(this)}),"toString")}}),de=d({"node_modules/core-js/internals/define-built-in.js"(e,t){p();var r=k(),n=te(),o=le(),s=L();t.exports=function(e,t,i,a){a||(a={});var c=a.enumerable,l=void 0!==a.name?a.name:t;if(r(i)&&o(i,l,a),a.global)c?e[t]=i:s(t,i);else{try{a.unsafe?e[t]&&(c=!0):delete e[t]}catch(e){}c?e[t]=i:n.f(e,t,{value:i,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return e}}}),ue=d({"node_modules/core-js/internals/math-trunc.js"(e,t){p();var r=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(e){var t=+e;return(t>0?n:r)(t)}}}),fe=d({"node_modules/core-js/internals/to-integer-or-infinity.js"(e,t){p();var r=ue();t.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}}}),pe=d({"node_modules/core-js/internals/to-absolute-index.js"(e,t){p();var r=fe(),n=Math.max,o=Math.min;t.exports=function(e,t){var s=r(e);return s<0?n(s+t,0):o(s,t)}}}),ye=d({"node_modules/core-js/internals/to-length.js"(e,t){p();var r=fe(),n=Math.min;t.exports=function(e){var t=r(e);return t>0?n(t,9007199254740991):0}}}),he=d({"node_modules/core-js/internals/length-of-array-like.js"(e,t){p();var r=ye();t.exports=function(e){return r(e.length)}}}),me=d({"node_modules/core-js/internals/array-includes.js"(e,t){p();var r=E(),n=pe(),o=he(),s=function(e){return function(t,s,i){var a=r(t),c=o(a);if(0===c)return!e&&-1;var l,d=n(i,c);if(e&&s!=s){for(;c>d;)if((l=a[d++])!=l)return!0}else for(;c>d;d++)if((e||d in a)&&a[d]===s)return e||d||0;return!e&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}}}),ve=d({"node_modules/core-js/internals/object-keys-internal.js"(e,t){p();var r=b(),n=W(),o=E(),s=me().indexOf,i=ae(),a=r([].push);t.exports=function(e,t){var r,c=o(e),l=0,d=[];for(r in c)!n(i,r)&&n(c,r)&&a(d,r);for(;t.length>l;)n(c,r=t[l++])&&(~s(d,r)||a(d,r));return d}}}),we=d({"node_modules/core-js/internals/enum-bug-keys.js"(e,t){p(),t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}}),ge=d({"node_modules/core-js/internals/object-get-own-property-names.js"(e){p();var t=ve(),r=we().concat("length","prototype");e.f=Object.getOwnPropertyNames||function(e){return t(e,r)}}}),je=d({"node_modules/core-js/internals/object-get-own-property-symbols.js"(e){p(),e.f=Object.getOwnPropertySymbols}}),be=d({"node_modules/core-js/internals/own-keys.js"(e,t){p();var r=S(),n=b(),o=ge(),s=je(),i=ee(),a=n([].concat);t.exports=r("Reflect","ownKeys")||function(e){var t=o.f(i(e)),r=s.f;return r?a(t,r(e)):t}}}),_e=d({"node_modules/core-js/internals/copy-constructor-properties.js"(e,t){p();var r=W(),n=be(),o=Y(),s=te();t.exports=function(e,t,i){for(var a=n(t),c=s.f,l=o.f,d=0;d<a.length;d++){var u=a[d];r(e,u)||i&&r(i,u)||c(e,u,l(t,u))}}}}),xe=d({"node_modules/core-js/internals/is-forced.js"(e,t){p();var r=h(),n=k(),o=/#|\.prototype\./,s=function(e,t){var o=a[i(e)];return o===l||o!==c&&(n(t)?r(t):!!t)},i=s.normalize=function(e){return String(e).replace(o,".").toLowerCase()},a=s.data={},c=s.NATIVE="N",l=s.POLYFILL="P";t.exports=s}}),$e=d({"node_modules/core-js/internals/export.js"(e,t){p();var r=y(),n=Y().f,o=re(),s=de(),i=L(),a=_e(),c=xe();t.exports=function(e,t){var l,d,u,f,p,y=e.target,h=e.global,m=e.stat;if(l=h?r:m?r[y]||i(y,{}):r[y]&&r[y].prototype)for(d in t){if(f=t[d],u=e.dontCallGetSet?(p=n(l,d))&&p.value:l[d],!c(h?d:y+(m?".":"#")+d,e.forced)&&void 0!==u){if(typeof f==typeof u)continue;a(f,u)}(e.sham||u&&u.sham)&&o(f,"sham",!0),s(l,d,f,e)}}}}),Oe=d({"node_modules/core-js/internals/an-instance.js"(e,t){p();var r=M(),n=TypeError;t.exports=function(e,t){if(r(t,e))return e;throw new n("Incorrect invocation")}}}),Ee=d({"node_modules/core-js/internals/correct-prototype-getter.js"(e,t){p();var r=h();t.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))}}),ke=d({"node_modules/core-js/internals/object-get-prototype-of.js"(e,t){p();var r=W(),n=k(),o=V(),s=ie(),i=Ee(),a=s("IE_PROTO"),c=Object,l=c.prototype;t.exports=i?c.getPrototypeOf:function(e){var t=o(e);if(r(t,a))return t[a];var s=t.constructor;return n(s)&&t instanceof s?s.prototype:t instanceof c?l:null}}}),Pe=d({"node_modules/core-js/internals/object-keys.js"(e,t){p();var r=ve(),n=we();t.exports=Object.keys||function(e){return r(e,n)}}}),Se=d({"node_modules/core-js/internals/object-define-properties.js"(e){p();var t=m(),r=Z(),n=te(),o=ee(),s=E(),i=Pe();e.f=t&&!r?Object.defineProperties:function(e,t){o(e);for(var r,a=s(t),c=i(t),l=c.length,d=0;l>d;)n.f(e,r=c[d++],a[r]);return e}}}),Me=d({"node_modules/core-js/internals/html.js"(e,t){p();var r=S();t.exports=r("document","documentElement")}}),Re=d({"node_modules/core-js/internals/object-create.js"(e,t){p();var r,n=ee(),o=Se(),s=we(),i=ae(),a=Me(),c=H(),l=ie(),d="prototype",u="script",f=l("IE_PROTO"),y=function(){},h=function(e){return"<"+u+">"+e+"</"+u+">"},m=function(e){e.write(h("")),e.close();var t=e.parentWindow.Object;return e=null,t},v=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}var e,t,n;v="undefined"!=typeof document?document.domain&&r?m(r):(t=c("iframe"),n="java"+u+":",t.style.display="none",a.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(h("document.F=Object")),e.close(),e.F):m(r);for(var o=s.length;o--;)delete v[d][s[o]];return v()};i[f]=!0,t.exports=Object.create||function(e,t){var r;return null!==e?(y[d]=n(e),r=new y,y[d]=null,r[f]=e):r=v(),void 0===t?r:o.f(r,t)}}}),De=d({"node_modules/core-js/internals/async-iterator-prototype.js"(e,t){p();var r,n,o=y(),s=z(),i=k(),a=Re(),c=ke(),l=de(),d=K(),u=q(),f="USE_FUNCTION_CONSTRUCTOR",h=d("asyncIterator"),m=o.AsyncIterator,v=s.AsyncIteratorPrototype;if(v)r=v;else if(i(m))r=m.prototype;else if(s[f]||o[f])try{n=c(c(c(Function("return async function*(){}()")()))),c(n)===Object.prototype&&(r=n)}catch(e){}r?u&&(r=a(r)):r={},i(r[h])||l(r,h,(function(){return this})),t.exports=r}}),Ce=d({"node_modules/core-js/modules/esnext.async-iterator.constructor.js"(){p();var e=$e(),t=Oe(),r=ke(),n=re(),o=W(),s=K(),i=De(),a=q(),c=s("toStringTag"),l=TypeError,d=function(){if(t(this,i),r(this)===i)throw new l("Abstract class AsyncIterator not directly constructable")};d.prototype=i,o(i,c)||n(i,c,"AsyncIterator"),!a&&o(i,"constructor")&&i.constructor!==Object||n(i,"constructor",d),e({global:!0,constructor:!0,forced:a},{AsyncIterator:d})}}),Fe=d({"node_modules/core-js/internals/get-iterator-direct.js"(e,t){p(),t.exports=function(e){return{iterator:e,next:e.next,done:!1}}}}),Ae=d({"node_modules/core-js/internals/not-a-nan.js"(e,t){p();var r=RangeError;t.exports=function(e){if(e==e)return e;throw new r("NaN is not allowed")}}}),Te=d({"node_modules/core-js/internals/to-positive-integer.js"(e,t){p();var r=fe(),n=RangeError;t.exports=function(e){var t=r(e);if(t<0)throw new n("The argument can't be less than 0");return t}}}),Ie=d({"node_modules/core-js/internals/perform.js"(e,t){p(),t.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}}}),Ne=d({"node_modules/core-js/internals/define-built-ins.js"(e,t){p();var r=de();t.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}}}),Je=d({"node_modules/core-js/internals/create-iter-result-object.js"(e,t){p(),t.exports=function(e,t){return{value:e,done:t}}}}),qe=d({"node_modules/core-js/internals/iterator-cleanup-state.js"(e,t){p(),t.exports=function(e){e.iterator=e.next=e.nextHandler=e.mapper=e.predicate=e.inner=e.iterables=e.iters=e.openIters=e.padding=e.finishResults=e.buffer=null}}}),Le=d({"node_modules/core-js/internals/async-iterator-create-proxy.js"(e,t){p();var r=w(),n=Ie(),o=ee(),s=Re(),i=re(),a=Ne(),c=K(),l=ce(),d=S(),u=N(),f=De(),y=Je(),h=qe(),m=d("Promise"),v=c("toStringTag"),g="AsyncIteratorHelper",j="WrapForValidAsyncIterator",b=l.set,_=function(e){var t=!e,i=l.getterFor(e?j:g),c=function(e){var r=n((function(){return i(e)})),o=r.error,s=r.value;return o||t&&s.done?{exit:!0,value:o?m.reject(s):m.resolve(y(void 0,!0))}:{exit:!1,value:s}};return a(s(f),{next:function(){var e=c(this),r=e.value;if(e.exit)return r;var s=n((function(){return o(r.nextHandler(m))})),i=s.error,a=s.value;return i?(r.done=!0,t&&h(r),m.reject(a)):t?m.resolve(a).then((function(e){return r.done&&h(r),e}),(function(e){throw h(r),e})):m.resolve(a)},return:function(){var s=c(this),i=s.value;if(s.exit)return i;i.done=!0;var a,l,d=i.iterator,f=i.inner;t&&h(i);var p=function(){var t=n((function(){return u(d,"return")}));return a=l=t.value,t.error?m.reject(l):void 0===a?m.resolve(y(void 0,!0)):(t=n((function(){return r(a,d)})),l=t.value,t.error?m.reject(l):e?m.resolve(l):m.resolve(l).then((function(e){return o(e),y(void 0,!0)})))},v=function(e){return p().then((function(){throw e}),(function(){throw e}))};if(f){var w,g=f.iterator,j=n((function(){if(w=u(g,"return"))return r(w,g)}));if(j.error)return v(j.value);if(w)return m.resolve(j.value).then((function(e){try{o(e)}catch(e){return v(e)}return p()}),v)}return p()}})},x=_(!0),$=_(!1);i($,v,"Async Iterator Helper"),t.exports=function(e,t){var r=function(r,n){n?(n.iterator=r.iterator,n.next=r.next):n=r,n.type=t?j:g,n.nextHandler=e,n.counter=0,n.done=!1,b(this,n)};return r.prototype=t?x:$,r}}}),ze=d({"node_modules/core-js/modules/esnext.async-iterator.drop.js"(){p();var e=$e(),t=w(),r=ee(),n=Fe(),o=Ae(),s=Te(),i=Le(),a=Je(),c=i((function(e){var n=this;return new e((function(o,s){var i=function(e){n.done=!0,s(e)},c=function(){try{e.resolve(r(t(n.next,n.iterator))).then((function(e){try{r(e).done?(n.done=!0,o(a(void 0,!0))):n.remaining?(n.remaining--,c()):o(a(e.value,!1))}catch(e){i(e)}}),i)}catch(e){i(e)}};c()}))}));e({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{drop:function(e){r(this);var t=s(o(+e));return new c(n(this),{remaining:t})}})}}),Be=d({"node_modules/core-js/internals/define-built-in-accessor.js"(e,t){p();var r=le(),n=te();t.exports=function(e,t,o){return o.get&&r(o.get,t,{getter:!0}),o.set&&r(o.set,t,{setter:!0}),n.f(e,t,o)}}}),Ve=d({"node_modules/core-js/internals/create-property.js"(e,t){p();var r=m(),n=te(),o=j();t.exports=function(e,t,s){r?n.f(e,t,o(0,s)):e[t]=s}}}),We=d({"node_modules/core-js/internals/iterators-core.js"(e,t){p();var r,n,o,s=h(),i=k(),a=P(),c=Re(),l=ke(),d=de(),u=K(),f=q(),y=u("iterator"),m=!1;[].keys&&("next"in(o=[].keys())?(n=l(l(o)))!==Object.prototype&&(r=n):m=!0),!a(r)||s((function(){var e={};return r[y].call(e)!==e}))?r={}:f&&(r=c(r)),i(r[y])||d(r,y,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:m}}}),Ue=d({"node_modules/core-js/modules/es.iterator.constructor.js"(){p();var e=$e(),t=y(),r=Oe(),n=ee(),o=k(),s=ke(),i=Be(),a=Ve(),c=h(),l=W(),d=K(),u=We().IteratorPrototype,f=m(),v=q(),w="constructor",g="Iterator",j=d("toStringTag"),b=TypeError,_=t[g],x=v||!o(_)||_.prototype!==u||!c((function(){_({})})),$=function(){if(r(this,u),s(this)===u)throw new b("Abstract class Iterator not directly constructable")},O=function(e,t){f?i(u,e,{configurable:!0,get:function(){return t},set:function(t){if(n(this),this===u)throw new b("You can't redefine this property");l(this,e)?this[e]=t:a(this,e,t)}}):u[e]=t};l(u,j)||O(j,g),!x&&l(u,w)&&u[w]!==Object||O(w,$),$.prototype=u,e({global:!0,constructor:!0,forced:x},{Iterator:$})}}),Ke=d({"node_modules/core-js/modules/esnext.iterator.constructor.js"(){p(),Ue()}}),Qe=d({"node_modules/core-js/internals/iterator-close.js"(e,t){p();var r=w(),n=ee(),o=N();t.exports=function(e,t,s){var i,a;n(e);try{if(!(i=o(e,"return"))){if("throw"===t)throw s;return s}i=r(i,e)}catch(e){a=!0,i=e}if("throw"===t)throw s;if(a)throw i;return n(i),s}}}),Ge=d({"node_modules/core-js/internals/iterator-close-all.js"(e,t){p();var r=Qe();t.exports=function(e,t,n){for(var o=e.length-1;o>=0;o--)if(void 0!==e[o])try{n=r(e[o].iterator,t,n)}catch(e){t="throw",n=e}if("throw"===t)throw n;return n}}}),He=d({"node_modules/core-js/internals/iterator-create-proxy.js"(e,t){p();var r=w(),n=Re(),o=re(),s=Ne(),i=K(),a=ce(),c=N(),l=We().IteratorPrototype,d=Je(),u=Qe(),f=Ge(),y=qe(),h=i("toStringTag"),m="IteratorHelper",v="WrapForValidIterator",g="normal",j="throw",b=a.set,_=function(e){var t=a.getterFor(e?v:m);return s(n(l),{next:function(){var r=t(this);if(e)return r.nextHandler();if(r.done)return d(void 0,!0);try{var n=r.nextHandler();return r.done&&y(r),r.returnHandlerResult?n:d(n,r.done)}catch(e){throw r.done=!0,y(r),e}},return:function(){var n=t(this),o=n.iterator,s=n.inner,i=n.openIters,a=n.done;if(n.done=!0,e){var l=c(o,"return");return l?r(l,o):d(void 0,!0)}if(y(n),a)return d(void 0,!0);if(s)try{u(s.iterator,g)}catch(e){return u(o,j,e)}if(i)try{f(i,g)}catch(e){if(o)return u(o,j,e);throw e}return o&&u(o,g),d(void 0,!0)}})},x=_(!0),$=_(!1);o($,h,"Iterator Helper"),t.exports=function(e,t,r){var n=function(n,o){o?(o.iterator=n.iterator,o.next=n.next):o=n,o.type=t?v:m,o.returnHandlerResult=!!r,o.nextHandler=e,o.counter=0,o.done=!1,b(this,o)};return n.prototype=t?x:$,n}}}),Xe=d({"node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js"(e,t){p(),t.exports=function(e,t){var r="function"==typeof Iterator&&Iterator.prototype[e];if(r)try{r.call({next:null},t).next()}catch(e){return!0}}}}),Ye=d({"node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js"(e,t){p();var r=y();t.exports=function(e,t){var n=r.Iterator,o=n&&n.prototype,s=o&&o[e],i=!1;if(s)try{s.call({next:function(){return{done:!0}},return:function(){i=!0}},-1)}catch(e){e instanceof t||(i=!1)}if(!i)return s}}}),Ze=d({"node_modules/core-js/modules/es.iterator.drop.js"(){p();var e=$e(),t=w(),r=ee(),n=Fe(),o=Ae(),s=Te(),i=Qe(),a=He(),c=Xe(),l=Ye(),d=q(),u=RangeError,f=1/0,y=!d&&!c("drop",0),h=!d&&!y&&l("drop",RangeError),m=d||y||h||!function(){try{Iterator.prototype.drop.call({next:function(){return{done:!0}}},9007199254740992)}catch(e){return e instanceof u}}(),v=a((function(){for(var e,n=this.iterator,o=this.next;this.remaining;)if(this.remaining--,e=r(t(o,n)),this.done=!!e.done)return;if(e=r(t(o,n)),!(this.done=!!e.done))return e.value}));e({target:"Iterator",proto:!0,real:!0,forced:m},{drop:function(e){var a;r(this);try{if((a=s(o(+e)))>9007199254740991&&a!==f)throw new u("The argument should be a safe integer")}catch(e){i(this,"throw",e)}return h?t(h,this,a):new v(n(this),{remaining:a})}})}}),et=d({"node_modules/core-js/modules/esnext.iterator.drop.js"(){p(),Ze()}}),tt=d({"node_modules/core-js/internals/call-with-safe-iteration-closing.js"(e,t){p();var r=ee(),n=Qe();t.exports=function(e,t,o,s){try{return s?t(r(o)[0],o[1]):t(o)}catch(t){n(e,"throw",t)}}}}),rt=d({"node_modules/core-js/modules/es.iterator.map.js"(){p();var e=$e(),t=w(),r=I(),n=ee(),o=Fe(),s=He(),i=tt(),a=Qe(),c=Xe(),l=Ye(),d=q(),u=!d&&!c("map",(function(){})),f=!d&&!u&&l("map",TypeError),y=d||u||f,h=s((function(){var e=this.iterator,r=n(t(this.next,e));if(!(this.done=!!r.done))return i(e,this.mapper,[r.value,this.counter++],!0)}));e({target:"Iterator",proto:!0,real:!0,forced:y},{map:function(e){n(this);try{r(e)}catch(e){a(this,"throw",e)}return f?t(f,this,e):new h(o(this),{mapper:e})}})}}),nt=d({"node_modules/core-js/modules/esnext.iterator.map.js"(){p(),rt()}}),ot=d({"node_modules/core-js/modules/es.iterator.filter.js"(){p();var e=$e(),t=w(),r=I(),n=ee(),o=Fe(),s=He(),i=tt(),a=q(),c=Qe(),l=Xe(),d=Ye(),u=!a&&!l("filter",(function(){})),f=!a&&!u&&d("filter",TypeError),y=a||u||f,h=s((function(){for(var e,r,o=this.iterator,s=this.predicate,a=this.next;;){if(e=n(t(a,o)),this.done=!!e.done)return;if(r=e.value,i(o,s,[r,this.counter++],!0))return r}}));e({target:"Iterator",proto:!0,real:!0,forced:y},{filter:function(e){n(this);try{r(e)}catch(e){c(this,"throw",e)}return f?t(f,this,e):new h(o(this),{predicate:e})}})}}),st=d({"node_modules/core-js/modules/esnext.iterator.filter.js"(){p(),ot()}}),it=d({"node_modules/core-js/internals/function-uncurry-this-clause.js"(e,t){p();var r=_(),n=b();t.exports=function(e){if("Function"===r(e))return n(e)}}}),at=d({"node_modules/core-js/internals/function-bind-context.js"(e,t){p();var r=it(),n=I(),o=v(),s=r(r.bind);t.exports=function(e,t){return n(e),void 0===t?e:o?s(e,t):function(){return e.apply(t,arguments)}}}}),ct=d({"node_modules/core-js/internals/iterators.js"(e,t){p(),t.exports=Object.create?Object.create(null):{}}}),lt=d({"node_modules/core-js/internals/is-array-iterator-method.js"(e,t){p();var r=K(),n=ct(),o=r("iterator"),s=Array.prototype;t.exports=function(e){return void 0!==e&&(n.Array===e||s[o]===e)}}}),dt=d({"node_modules/core-js/internals/get-iterator-method-internal.js"(e,t){p();var r=_(),n=$(),o=N(),s=K()("iterator"),i=Array.prototype;t.exports=function(e){if(!n(e))return o(e,s)||o(e,"@@iterator")||("Arguments"===r(e)?i[s]:void 0)}}}),ut=d({"node_modules/core-js/internals/get-iterator-internal.js"(e,t){p();var r=w(),n=k(),o=ee(),s=T(),i=dt(),a=TypeError;t.exports=function(e,t){var c=arguments.length<2?i(e):t;if(n(c))return o(r(c,e));throw new a(s(e)+" is not iterable")}}}),ft=d({"node_modules/core-js/internals/iterate.js"(e,t){p();var r=at(),n=w(),o=ee(),s=T(),i=lt(),a=he(),c=M(),l=ut(),d=dt(),u=Qe(),f=TypeError,y=function(e,t){this.stopped=e,this.result=t},h=y.prototype;t.exports=function(e,t,p){var m,v,w,g,j,b,_,x=p&&p.that,$=!(!p||!p.AS_ENTRIES),O=!(!p||!p.IS_RECORD),E=!(!p||!p.IS_ITERATOR),k=!(!p||!p.INTERRUPTED),P=r(t,x),S=function(e){var t=m;return m=void 0,t&&u(t,"normal"),new y(!0,e)},M=function(e){return $?(o(e),k?P(e[0],e[1],S):P(e[0],e[1])):k?P(e,S):P(e)};if(O)m=e.iterator;else if(E)m=e;else{if(!(v=d(e)))throw new f(s(e)+" is not iterable");if(i(v)){for(w=0,g=a(e);g>w;w++)if((j=M(e[w]))&&c(h,j))return j;return new y(!1)}m=l(e,v)}for(b=O?e.next:m.next;!(_=n(b,m)).done;){var R=_.value;try{j=M(R)}catch(e){if(!m)throw e;u(m,"throw",e)}if("object"==typeof j&&j&&c(h,j))return j}return new y(!1)}}}),pt=d({"node_modules/core-js/internals/function-apply.js"(e,t){p();var r=v(),n=Function.prototype,o=n.apply,s=n.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(o):function(){return s.apply(o,arguments)})}}),yt=d({"node_modules/core-js/modules/es.iterator.reduce.js"(){p();var e=$e(),t=ft(),r=I(),n=ee(),o=Fe(),s=Qe(),i=Ye(),a=pt(),c=h(),l=TypeError,d=c((function(){[].keys().reduce((function(){}),void 0)})),u=!d&&i("reduce",l);e({target:"Iterator",proto:!0,real:!0,forced:d||u},{reduce:function(e){n(this);try{r(e)}catch(e){s(this,"throw",e)}var i=arguments.length<2,c=i?void 0:arguments[1];if(u)return a(u,this,i?[e]:[e,c]);var d=o(this),f=0;if(t(d,(function(t){i?(i=!1,c=t):c=e(c,t,f),f++}),{IS_RECORD:!0}),i)throw new l("Reduce of empty iterator with no initial value");return c}})}}),ht=d({"node_modules/core-js/modules/esnext.iterator.reduce.js"(){p(),yt()}}),mt=d({"dist/data/utilities/parsers/scanQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.scanQuery=e.assertClosed=void 0;var t={n:"\n",t:"\t"},r={"]":"[",")":"("};e.scanQuery=(e="")=>{const n=[],o=[],s=[],i=[];let a,c,l=!1,d=!1,u=-1,f=0;for(;f<e.length;){const p=e[f],y=e[f+1];if("'"!==p&&'"'!==p)if("-"!==p||"-"!==y||0!==f&&!/[\s;]/.test(e[f-1]))if("/"!==p||"*"!==y)"["===p||"("===p?i.push(p):r[p]?i[i.length-1]===r[p]?i.pop():a||(a={char:p,index:f}):";"===p&&0===i.length&&s.push(f),/\s/.test(p)||(u=f),f++;else{const t=e.indexOf("*/",f+2),r=-1===t?e.length:t+2;d=-1===t,o.push({start:f,end:r,kind:"block"}),f=r}else{const t=e.indexOf("\n",f+2),r=-1===t?e.length:t+1;o.push({start:f,end:r,kind:"line"}),f=r}else{const r=f;let o="";for(f++;f<e.length&&e[f]!==p;)if("\\"!==e[f])o+=e[f],f++;else{if(f+1===e.length){l=!0,f++;break}o+=t[e[f+1]]??e[f+1],f+=2}f<e.length?f++:c=p,n.push({start:r,end:f,quote:p,value:o}),u=r}}const p={quote:c,escape:l,blockComment:d,brackets:i,strayCloser:a},y=!p.quote&&!p.blockComment&&0===i.length;return{strings:n,comments:o,semicolons:s,end:p,closed:y,terminated:y&&s.length>0&&s[s.length-1]===u}};e.assertClosed=e=>{const{end:t}=e;if(t.quote){const r=e.strings[e.strings.length-1];throw new Error(`Unclosed string: the ${t.quote} at position ${r.start} is never closed`)}if(t.blockComment)throw new Error(`Unclosed comment: the /* at position ${e.comments[e.comments.length-1].start} is never closed`);if(t.strayCloser)throw new Error(`Unexpected ${t.strayCloser.char} at position ${t.strayCloser.index}: there is nothing to close`);if(t.brackets.length>0)throw new Error(`Unclosed bracket: ${t.brackets.join(" ")} never closed`);return e}}}),vt=d({"dist/data/utilities/parsers/splitQueries.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.splitQueries=void 0,Ke(),st(),ht();var t=mt();e.splitQueries=(e="")=>{const{comments:r,semicolons:n}=(0,t.assertClosed)((0,t.scanQuery)(e)),o=r.reduce(((e,{start:t,end:r})=>`${e.slice(0,t)}${" ".repeat(r-t)}${e.slice(r)}`),e);return[...n,o.length].map(((e,t)=>o.slice(0===t?0:n[t-1]+1,e).trim())).filter((e=>e.length>0))}}}),wt=d({"dist/data/utilities/parsers/findCommand.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findCommand=void 0;var t=/^(delete|insert|read|update)\s+([a-z0-9_-]+)/i;e.findCommand=(e,r)=>{const n=r.match(t);return e.command=void 0,e.entity=void 0,n?(e.command=n[1].toLowerCase(),e.entity=n[2],r.slice(n[0].length).trim()):r}}}),gt=d({"node_modules/core-js/internals/is-array.js"(e,t){p();var r=_();t.exports=Array.isArray||function(e){return"Array"===r(e)}}}),jt=d({"node_modules/core-js/internals/is-raw-json.js"(e,t){p();var r=P(),n=ce().get;t.exports=function(e){if(!r(e))return!1;var t=n(e);return!!t&&"RawJSON"===t.type}}}),bt=d({"node_modules/core-js/internals/this-number-value.js"(e,t){p();var r=b();t.exports=r(1.1.valueOf)}}),_t=d({"node_modules/core-js/internals/to-string-tag-support.js"(e,t){p();var r={};r[K()("toStringTag")]="z",t.exports="[object z]"===String(r)}}),xt=d({"node_modules/core-js/internals/classof.js"(e,t){p();var r=_t(),n=k(),o=_(),s=K()("toStringTag"),i=Object,a="Arguments"===o(function(){return arguments}());t.exports=r?o:function(e){var t,r,c;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=i(e),s))?r:a?o(t):"Object"===(c=o(t))&&n(t.callee)?"Arguments":c}}}),$t=d({"node_modules/core-js/internals/to-string.js"(e,t){p();var r=xt(),n=String;t.exports=function(e){if("Symbol"===r(e))throw new TypeError("Cannot convert a Symbol value to a string");return n(e)}}}),Ot=d({"node_modules/core-js/internals/parse-json-string.js"(e,t){p();var r=b(),n=W(),o=SyntaxError,s=parseInt,i=String.fromCharCode,a=r("".charAt),c=r("".slice),l=r(/./.exec),d={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":"\n","\\r":"\r","\\t":"\t"},u=/^[\da-f]{4}$/i,f=/^[\u0000-\u001F]$/;t.exports=function(e,t){for(var r=!0,p="";t<e.length;){var y=a(e,t);if("\\"===y){var h=c(e,t,t+2);if(n(d,h))p+=d[h],t+=2;else{if("\\u"!==h)throw new o('Unknown escape sequence: "'+h+'"');var m=c(e,t+=2,t+4);if(!l(u,m))throw new o("Bad Unicode escape at: "+t);p+=i(s(m,16)),t+=4}}else{if('"'===y){r=!1,t++;break}if(l(f,y))throw new o("Bad control character in string literal at: "+t);p+=y,t++}}if(r)throw new o("Unterminated string at: "+t);return{value:p,end:t}}}}),Et=d({"node_modules/core-js/internals/native-raw-json.js"(e,t){p();var r=h();t.exports=!r((function(){var e="9007199254740993",t=JSON.rawJSON(e);return!JSON.isRawJSON(t)||JSON.stringify(t)!==e}))}}),kt=d({"node_modules/core-js/modules/es.json.stringify.js"(){p();var e=$e(),t=S(),r=w(),n=b(),o=h(),s=gt(),i=k(),a=P(),c=Re(),l=jt(),d=A(),u=_(),f=bt(),y=me().includes,m=W(),v=$t(),g=Ot(),j=U(),x=C(),$=Et(),O=String,E=TypeError,M=t("JSON","stringify"),R=t("BigInt"),D=n("".valueOf),F=n((!0).valueOf),T=R&&n(R.prototype.valueOf),I=n(/./.exec),N=n("".charAt),J=n("".charCodeAt),q=n("".replace),L=n("".slice),z=n([].push),B=n([].pop),V=n(1.1.toString),K=/[\uD800-\uDFFF]/g,Q=/^[\uD800-\uDBFF]$/,G=/^[\uDC00-\uDFFF]$/,H=/^\d+$/,X=j(),Y=j(),Z=j(),ee=X.length,te=Y.length,re=!x||o((function(){var e=t("Symbol")("stringify detection");return"[null]"!==M([e])||"{}"!==M({a:e})||"{}"!==M(Object(e))})),ne=o((function(){return'"\\udf06\\ud834"'!==M("\udf06\ud834")||'"\\udead"'!==M("\udead")})),oe=$?t("JSON","isRawJSON"):l,se=re?function(e,t,n){return M(e,(function(e,n){var o=r(t,this,e,n);if(!d(o))return o}),n)}:M,ie=function(e,t,r){var n=N(r,t-1),o=N(r,t+1);return I(Q,e)&&!I(G,o)||I(G,e)&&!I(Q,n)?"\\u"+V(J(e,0),16):e},ae=function(e,t){try{return e(t),!0}catch(e){return!1}},ce=function(e){if(!a(e)||i(e)||s(e))return!1;try{return!function(e){var t=u(e);return"Number"===t&&ae(f,e)||"String"===t&&ae(D,e)||"Boolean"===t&&ae(F,e)||!!T&&"BigInt"===t&&ae(T,e)}(e)}catch(e){return!0}},le=function(e,t){return{toJSON:function(){var n=e[t];if(a(n)||"bigint"==typeof n){var o=n.toJSON;i(o)&&(n=r(o,n,t))}return n}}};M&&e({target:"JSON",stat:!0,arity:3,forced:re||ne||!$},{stringify:function(e,t,n){var o,a=i(t)?t:void 0,l=a?void 0:function(e){if(s(e)){for(var t=e.length,r=[],n=c(null),o=0;o<t;o++){var i,a=e[o];if("string"==typeof a)i=a;else{if("number"!=typeof a&&"Number"!==u(a)&&"String"!==u(a))continue;i=v(a)}m(n,i)||(n[i]=!0,z(r,i))}return r}}(t),d=l&&function(e){for(var t=0,r=e.length;t<r;t++)if(I(H,e[t]))return Y;return""}(l),f=[],p=[],h=[],w=!1,j=!0,b=se(e,(function(e,t){if(e=O(e),l){if(e===Z)return B(p),void(o=B(h));if(j)j=!1;else if(this!==o&&!s(this)&&!y(l,e))return}else a&&(t=r(a,this,e,t));if(oe(t))return $?t:(w=!0,X+(z(f,t.rawJSON)-1));if(l&&ce(t)){if(y(p,t))throw new E("Converting circular structure to JSON");var n=function(e,t,r){for(var n=c(null),o=0,s=t.length;o<s;o++){var i=t[o];n[r+i]=le(e,i)}return n[Z]=null,n}(t,l,d);return z(p,t),z(h,o),o=n,d&&(w=!0),n}return t}),n);if("string"!=typeof b)return b;if(ne&&(b=q(b,K,ie)),!w)return b;for(var _="",x=b.length,k=0;k<x;k++){var P=N(b,k);if('"'===P){var S=g(b,++k).end-1,M=L(b,k,S);L(M,0,ee)===X?_+=f[L(M,ee)]:L(M,0,te)===Y?_+='"'+L(M,te)+'"':_+='"'+M+'"',k=S}else _+=P}return _}})}}),Pt=d({"node_modules/core-js/modules/es.iterator.some.js"(){p();var e=$e(),t=w(),r=ft(),n=I(),o=ee(),s=Fe(),i=Qe(),a=Ye()("some",TypeError);e({target:"Iterator",proto:!0,real:!0,forced:a},{some:function(e){o(this);try{n(e)}catch(e){i(this,"throw",e)}if(a)return t(a,this,e);var c=s(this),l=0;return r(c,(function(t,r){if(e(t,l++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})}}),St=d({"node_modules/core-js/modules/esnext.iterator.some.js"(){p(),Pt()}}),Mt=d({"dist/data/utilities/parsers/maskStrings.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.unmaskStrings=e.placeholderSource=e.maskStrings=e.maskArrays=e.fromPlaceholder=e.arraySource=void 0,kt(),Ke(),nt(),St();var t=mt(),r=e.placeholderSource="\\u0000([0-9a-f]*)\\u0000",n=new RegExp(r,"g"),o=e.arraySource="\\u0001([0-9a-f]*)\\u0001",s=new RegExp(o,"g"),i=e=>e.split("").map((e=>e.charCodeAt(0).toString(16).padStart(4,"0"))).join(""),a=e=>(e.match(/.{4}/g)||[]).map((e=>String.fromCharCode(parseInt(e,16)))).join("");e.fromPlaceholder=a;e.maskStrings=e=>{const{strings:r}=(0,t.assertClosed)((0,t.scanQuery)(e));for(const[t,n]of[["\0","NUL"],["","SOH"]])for(let o=e.indexOf(t);-1!==o;o=e.indexOf(t,o+1))if(!r.some((({start:e,end:t})=>e<o&&o<t)))throw new Error(`Unexpected ${n} character at position ${o}`);const n=[];let o=0;for(const{start:t,end:s,value:a}of r)n.push(e.slice(o,t),`\0${i(a)}\0`),o=s;return n.push(e.slice(o)),n.join("")};var c=(e,t="json")=>e.replace(n,((e,r)=>{const n=a(r);return"json"===t?JSON.stringify(n):`'${n.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`})).replace(s,((e,t)=>a(t)));e.unmaskStrings=c;var l=e=>{try{return JSON.stringify(JSON.parse(c(e),((e,t)=>{if("number"==typeof t&&!Number.isFinite(t))throw new Error(`${t} is too large`);if(Number.isInteger(t)&&!Number.isSafeInteger(t))throw new Error(`${t} is too large to store exactly (the largest whole number is ${Number.MAX_SAFE_INTEGER}): quote it to keep it as text`);return t})))}catch(t){throw new Error(`Invalid array ${c(e,"'")}: ${t.message}`)}};e.maskArrays=e=>{let t="",r=0,n=0;for(let o=0;o<e.length;o++){const s=e[o];if("["===s)0===r&&(n=o),r++;else if("]"===s&&r>0&&(r--,0===r)){t+=`${i(l(e.slice(n,o+1)))}`;continue}0===r&&(t+=s)}return r>0?t+e.slice(n):t}}}),Rt=d({"dist/data/utilities/parsers/parseLiteralValue.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseNumber=e.parseLiteralValue=e.numberSource=void 0;var t=Mt(),r=(e.numberSource="-?[0-9]+(?:\\.[0-9]+)?(?:e[+-]?[0-9]+)?",e=>{const t=Number(e);if(!Number.isFinite(t))throw new Error(`${e} is too large`);if(Number.isInteger(t)&&!Number.isSafeInteger(t))throw new Error(`${e} is too large to store exactly (the largest whole number is ${Number.MAX_SAFE_INTEGER}): quote it to keep it as text`);return t});e.parseNumber=r;e.parseLiteralValue=(e,n)=>void 0!==e[n]?(0,t.fromPlaceholder)(e[n]):void 0!==e[n+1]?r(e[n+1]):void 0!==e[n+2]?JSON.parse((0,t.fromPlaceholder)(e[n+2])):void 0!==e[n+3]?null:void 0!==e[n+4]}}),Dt=d({"dist/data/utilities/parsers/findInsertValues.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findInsertValues=void 0;var t=Rt(),r=Mt(),n=`(?:${r.placeholderSource.replace("(","(?:")}|${t.numberSource}|${r.arraySource.replace("(","(?:")}|null|true|false)`,o=`[a-z0-9_-]+\\s*=\\s*${n}(?:\\s*,\\s*[a-z0-9_-]+\\s*=\\s*${n})*`,s=new RegExp(`^(${o})`,"i"),i=`\\(\\s*(${o})\\s*\\)`,a=new RegExp(`^${i}(?:\\s*,\\s*${i.replace("("+o,"(?:"+o)})*`,"i"),c=new RegExp(i,"ig"),l=new RegExp(`([a-z0-9_-]+)\\s*=\\s*(${r.placeholderSource}|(${t.numberSource})|${r.arraySource}|(null)|(true)|(false))`,"ig"),d=e=>{const r={};for(const n of e.matchAll(l))r[n[1]]=(0,t.parseLiteralValue)(n,3);return r};e.findInsertValues=(e,t)=>{e.insertValues=[];const r=t.match(a);if(r)return e.insertValues=[...r[0].matchAll(c)].map((e=>d(e[1]))),t.slice(r[0].length).trim();const n=t.match(s);return n?(e.insertValues=[d(n[1])],t.slice(n[0].length).trim()):t}}}),Ct=d({"dist/data/utilities/parsers/findUpdateValues.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findUpdateValues=void 0;var t=Rt(),r=Mt(),n=`(?:${r.placeholderSource.replace("(","(?:")}|${t.numberSource}|${r.arraySource.replace("(","(?:")}|null|true|false)`,o=new RegExp(`^([a-z0-9_-]+\\s*=\\s*${n}(?:\\s*,\\s*[a-z0-9_-]+\\s*=\\s*${n})*)`,"i"),s=new RegExp(`([a-z0-9_-]+)\\s*=\\s*(${r.placeholderSource}|(${t.numberSource})|${r.arraySource}|(null)|(true)|(false))`,"ig");e.findUpdateValues=(e,r)=>{const n=r.match(o);if(e.updateValues={},!n)return r;const i=n[1].matchAll(s);for(const r of i)e.updateValues[r[1]]=(0,t.parseLiteralValue)(r,3);return r.slice(n[0].length).trim()}}}),Ft=d({"dist/data/utilities/parsers/findJoinEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findJoinEntity=void 0;var t=/^\.([a-z0-9_-]+)/i;e.findJoinEntity=(e,r)=>{const n=r.match(t);return n?(e.joinEntity=n?n[1]:void 0,r.slice(n[0].length).trim()):r}}}),At=d({"dist/data/utilities/parsers/findSelects.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findSelects=void 0;var t="[a-z0-9=._-]+(?:\\s+as\\s+[a-z0-9_-]+)?",r=new RegExp(`^${t}(?:\\s*,\\s*${t})*`,"i"),n=/,?\s*([a-z0-9=._-]+)(?:\s+as\s+([a-z0-9_-]+))?/gi;e.findSelects=(e,t)=>{const o=t.match(r);if(o){const r=o[0].matchAll(n);for(const t of r)e.selectClauses.push({property:t[1],alias:t[2]});return t.slice(o[0].length).trim()}return t}}}),Tt=d({"node_modules/core-js/internals/add-to-unscopables.js"(e,t){p();var r=K(),n=Re(),o=te().f,s=r("unscopables"),i=Array.prototype;void 0===i[s]&&o(i,s,{configurable:!0,value:n(null)}),t.exports=function(e){i[s][e]=!0}}}),It=d({"node_modules/core-js/modules/es.array.includes.js"(){p();var e=$e(),t=me().includes,r=h(),n=Tt(),o=r((function(){return!Array(1).includes()})),s=r((function(){return[,1].includes(void 0,1)}));e({target:"Array",proto:!0,forced:o||s},{includes:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("includes")}}),Nt=d({"node_modules/core-js/internals/get-iterator-flattenable.js"(e,t){p();var r=w(),n=ee(),o=Fe(),s=dt();t.exports=function(e,t){t&&"string"==typeof e||n(e);var i=s(e);return o(n(void 0!==i?r(i,e):e))}}}),Jt=d({"node_modules/core-js/modules/es.iterator.flat-map.js"(){p();var e=$e(),t=w(),r=I(),n=ee(),o=Fe(),s=Nt(),i=He(),a=Qe(),c=h(),l=q(),d=Xe(),u=Ye(),f=!l&&c((function(){return 1!==[1].values().flatMap((function(){return[1]})).find((function(){return!0}))})),y=!l&&!f&&!d("flatMap",(function(){})),m=!l&&!f&&!y&&u("flatMap",TypeError),v=l||f||y||m,g=i((function(){for(var e,r,o=this.iterator,i=this.mapper;;){if(r=this.inner)try{if(!(e=n(t(r.next,r.iterator))).done)return e.value;this.inner=null}catch(e){a(o,"throw",e)}if(e=n(t(this.next,o)),this.done=!!e.done)return;try{this.inner=s(i(e.value,this.counter++),!1)}catch(e){a(o,"throw",e)}}}));e({target:"Iterator",proto:!0,real:!0,forced:v},{flatMap:function(e){n(this);try{r(e)}catch(e){a(this,"throw",e)}return m?t(m,this,e):new g(o(this),{mapper:e,inner:null})}})}}),qt=d({"node_modules/core-js/modules/esnext.iterator.flat-map.js"(){p(),Jt()}}),Lt=d({"dist/data/utilities/conditionTree.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.requiredConditions=e.isCondition=e.conditionsOf=e.allOf=void 0,Ke(),st(),qt();var t=e=>!("and"in e)&&!("or"in e)&&!("not"in e);e.isCondition=t;e.allOf=e=>{if(e.length)return 1===e.length?e[0]:{and:e}};var r=e=>void 0===e?[]:t(e)?[e]:"not"in e?r(e.not):("and"in e?e.and:e.or).flatMap(r);e.conditionsOf=r;e.requiredConditions=e=>void 0===e?[]:t(e)?[e]:"and"in e?e.and.filter(t):[]}}),zt=d({"node_modules/core-js/internals/set-helpers.js"(e,t){p();var r=b(),n=Set.prototype;t.exports={Set:Set,add:r(n.add),has:r(n.has),remove:r(n.delete),proto:n}}}),Bt=d({"node_modules/core-js/internals/a-set.js"(e,t){p();var r=zt().has;t.exports=function(e){return r(e),e}}}),Vt=d({"node_modules/core-js/modules/esnext.set.add-all.js"(){p();var e=$e(),t=Bt(),r=zt().add;e({target:"Set",proto:!0,real:!0,forced:!0},{addAll:function(){for(var e=t(this),n=0,o=arguments.length;n<o;n++)r(e,arguments[n]);return e}})}}),Wt=d({"node_modules/core-js/modules/esnext.set.delete-all.js"(){p();var e=$e(),t=Bt(),r=zt().remove;e({target:"Set",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,n=t(this),o=!0,s=0,i=arguments.length;s<i;s++)e=r(n,arguments[s]),o=o&&e;return!!o}})}}),Ut=d({"node_modules/core-js/internals/is-iterable.js"(e,t){p();var r=_(),n=K()("iterator");t.exports=function(e){return void 0!==e[n]||void 0!==e["@@iterator"]||"Arguments"===r(e)}}}),Kt=d({"node_modules/core-js/internals/to-set-like.js"(e,t){p();var r=S(),n=k(),o=Ut(),s=P(),i=r("Set");t.exports=function(e){return function(e){return s(e)&&"number"==typeof e.size&&n(e.has)&&n(e.keys)}(e)?e:o(e)?new i(e):e}}}),Qt=d({"node_modules/core-js/internals/iterate-simple.js"(e,t){p();var r=w();t.exports=function(e,t,n){for(var o,s,i=n?e:e.iterator,a=e.next;!(o=r(a,i)).done;)if(void 0!==(s=t(o.value)))return s}}}),Gt=d({"node_modules/core-js/internals/set-iterate.js"(e,t){p();var r=b(),n=Qt(),o=zt(),s=o.Set,i=o.proto,a=r(i.forEach),c=r(i.keys),l=c(new s).next;t.exports=function(e,t,r){return r?n({iterator:c(e),next:l},t):a(e,t)}}}),Ht=d({"node_modules/core-js/internals/set-clone.js"(e,t){p();var r=zt(),n=Gt(),o=r.Set,s=r.add;t.exports=function(e){var t=new o;return n(e,(function(e){s(t,e)})),t}}}),Xt=d({"node_modules/core-js/internals/function-uncurry-this-accessor.js"(e,t){p();var r=b(),n=I();t.exports=function(e,t,o){try{return r(n(Object.getOwnPropertyDescriptor(e,t)[o]))}catch(e){}}}}),Yt=d({"node_modules/core-js/internals/set-size.js"(e,t){p();var r=Xt(),n=zt();t.exports=r(n.proto,"size","get")||function(e){return e.size}}}),Zt=d({"node_modules/core-js/internals/get-set-record.js"(e,t){p();var r=I(),n=ee(),o=w(),s=fe(),i=Fe(),a="Invalid size",c=RangeError,l=TypeError,d=Math.max,u=function(e,t){this.set=e,this.size=d(t,0),this.has=r(e.has),this.keys=r(e.keys)};u.prototype={getIterator:function(){return i(n(o(this.keys,this.set)))},includes:function(e){return o(this.has,this.set,e)}},t.exports=function(e){n(e);var t=+e.size;if(t!=t)throw new l(a);var r=s(t);if(r<0)throw new c(a);return new u(e,r)}}}),er=d({"node_modules/core-js/internals/set-difference.js"(e,t){p();var r=Bt(),n=zt(),o=Ht(),s=Yt(),i=Zt(),a=Gt(),c=Qt(),l=n.has,d=n.remove;t.exports=function(e){var t=r(this),n=i(e),u=o(t);return s(u)<=n.size?a(u,(function(e){n.includes(e)&&d(u,e)})):c(n.getIterator(),(function(e){l(u,e)&&d(u,e)})),u}}}),tr=d({"node_modules/core-js/modules/esnext.set.difference.js"(){p();var e=$e(),t=w(),r=Kt(),n=er();e({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(e){return t(n,this,r(e))}})}}),rr=d({"node_modules/core-js/modules/esnext.set.every.js"(){p();var e=$e(),t=at(),r=Bt(),n=Gt();e({target:"Set",proto:!0,real:!0,forced:!0},{every:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0);return!1!==n(o,(function(e){if(!s(e,e,o))return!1}),!0)}})}}),nr=d({"node_modules/core-js/modules/esnext.set.filter.js"(){p();var e=$e(),t=at(),r=Bt(),n=zt(),o=Gt(),s=n.Set,i=n.add;e({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e){a(e,e,n)&&i(c,e)})),c}})}}),or=d({"node_modules/core-js/modules/esnext.set.find.js"(){p();var e=$e(),t=at(),r=Bt(),n=Gt();e({target:"Set",proto:!0,real:!0,forced:!0},{find:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0),i=n(o,(function(e){if(s(e,e,o))return{value:e}}),!0);return i&&i.value}})}}),sr=d({"node_modules/core-js/internals/set-intersection.js"(e,t){p();var r=Bt(),n=zt(),o=Yt(),s=Zt(),i=Gt(),a=Qt(),c=n.Set,l=n.add,d=n.has;t.exports=function(e){var t=r(this),n=s(e),u=new c;return o(t)>n.size?a(n.getIterator(),(function(e){d(t,e)&&l(u,e)})):i(t,(function(e){n.includes(e)&&l(u,e)})),u}}}),ir=d({"node_modules/core-js/modules/esnext.set.intersection.js"(){p();var e=$e(),t=w(),r=Kt(),n=sr();e({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(e){return t(n,this,r(e))}})}}),ar=d({"node_modules/core-js/internals/set-is-disjoint-from.js"(e,t){p();var r=Bt(),n=zt().has,o=Yt(),s=Zt(),i=Gt(),a=Qt(),c=Qe();t.exports=function(e){var t=r(this),l=s(e);if(o(t)<=l.size)return!1!==i(t,(function(e){if(l.includes(e))return!1}),!0);var d=l.getIterator();return!1!==a(d,(function(e){if(n(t,e))return c(d.iterator,"normal",!1)}))}}}),cr=d({"node_modules/core-js/modules/esnext.set.is-disjoint-from.js"(){p();var e=$e(),t=w(),r=Kt(),n=ar();e({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(e){return t(n,this,r(e))}})}}),lr=d({"node_modules/core-js/internals/set-is-subset-of.js"(e,t){p();var r=Bt(),n=Yt(),o=Gt(),s=Zt();t.exports=function(e){var t=r(this),i=s(e);return!(n(t)>i.size)&&!1!==o(t,(function(e){if(!i.includes(e))return!1}),!0)}}}),dr=d({"node_modules/core-js/modules/esnext.set.is-subset-of.js"(){p();var e=$e(),t=w(),r=Kt(),n=lr();e({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(e){return t(n,this,r(e))}})}}),ur=d({"node_modules/core-js/internals/set-is-superset-of.js"(e,t){p();var r=Bt(),n=zt().has,o=Yt(),s=Zt(),i=Qt(),a=Qe();t.exports=function(e){var t=r(this),c=s(e);if(o(t)<c.size)return!1;var l=c.getIterator();return!1!==i(l,(function(e){if(!n(t,e))return a(l.iterator,"normal",!1)}))}}}),fr=d({"node_modules/core-js/modules/esnext.set.is-superset-of.js"(){p();var e=$e(),t=w(),r=Kt(),n=ur();e({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(e){return t(n,this,r(e))}})}}),pr=d({"node_modules/core-js/modules/esnext.set.join.js"(){p();var e=$e(),t=b(),r=Bt(),n=Gt(),o=$t(),s=t([].join),i=t([].push);e({target:"Set",proto:!0,real:!0,forced:!0},{join:function(e){var t=r(this),a=void 0===e?",":o(e),c=[];return n(t,(function(e){i(c,e)})),s(c,a)}})}}),yr=d({"node_modules/core-js/modules/esnext.set.map.js"(){p();var e=$e(),t=at(),r=Bt(),n=zt(),o=Gt(),s=n.Set,i=n.add;e({target:"Set",proto:!0,real:!0,forced:!0},{map:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e){i(c,a(e,e,n))})),c}})}}),hr=d({"node_modules/core-js/modules/esnext.set.reduce.js"(){p();var e=$e(),t=I(),r=Bt(),n=Gt(),o=TypeError;e({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(e){var s=r(this),i=arguments.length<2,a=i?void 0:arguments[1];if(t(e),n(s,(function(t){i?(i=!1,a=t):a=e(a,t,t,s)})),i)throw new o("Reduce of empty set with no initial value");return a}})}}),mr=d({"node_modules/core-js/modules/esnext.set.some.js"(){p();var e=$e(),t=at(),r=Bt(),n=Gt();e({target:"Set",proto:!0,real:!0,forced:!0},{some:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0);return!0===n(o,(function(e){if(s(e,e,o))return!0}),!0)}})}}),vr=d({"node_modules/core-js/internals/set-symmetric-difference.js"(e,t){p();var r=Bt(),n=zt(),o=Ht(),s=Zt(),i=Qt(),a=n.add,c=n.has,l=n.remove;t.exports=function(e){var t=r(this),n=s(e).getIterator(),d=o(t);return i(n,(function(e){c(t,e)?l(d,e):a(d,e)})),d}}}),wr=d({"node_modules/core-js/modules/esnext.set.symmetric-difference.js"(){p();var e=$e(),t=w(),r=Kt(),n=vr();e({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(e){return t(n,this,r(e))}})}}),gr=d({"node_modules/core-js/internals/set-union.js"(e,t){p();var r=Bt(),n=zt().add,o=Ht(),s=Zt(),i=Qt();t.exports=function(e){var t=r(this),a=s(e).getIterator(),c=o(t);return i(a,(function(e){n(c,e)})),c}}}),jr=d({"node_modules/core-js/modules/esnext.set.union.js"(){p();var e=$e(),t=w(),r=Kt(),n=gr();e({target:"Set",proto:!0,real:!0,forced:!0},{union:function(e){return t(n,this,r(e))}})}}),br=d({"dist/data/utilities/parsers/splitClauses.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.whereHint=e.splitClauses=e.clauseOrder=void 0,It(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Mt(),r=e.clauseOrder={read:["select","on","merge","where","group by","sort","limit","offset"],insert:["values"],update:["set","where"],delete:["where"]},n=[...new Set(Object.values(r).flat())],o=/^\s*(delete|insert|read|update)\s+([a-z0-9_-]+(\s*\.[a-z0-9_-]+)?)/i,s=new RegExp(`${t.placeholderSource}|${t.arraySource}|[a-z0-9_.-]+|<>|!=|>=|<=|\\S`,"gi"),i=["=","!=","<>",">","<",">=","<=","in","between","like","is","exists","does"],a={on:e=>"and"===e,merge:()=>!0},c=e.whereHint="use and / or inside one where clause (where a = 1 and b = 2)";e.splitClauses=e=>{const t=e.match(o);if(!t)return;const l=t[1].toLowerCase(),d=r[l],u=/^[aeiou]/.test(l)?"an":"a";if(t[3]&&"read"!==l)throw new Error(`A joined record (${t[2]}) isn't allowed in ${u} ${l} query`);const f=[...e.slice(t[0].length).matchAll(s)].map((({0:e,index:r})=>({text:e,lower:e.toLowerCase(),start:t[0].length+r}))),p=[];let y=0,h=!1;for(let e=0;e<f.length;e++){const{lower:t,start:r}=f[e],o=f[e-1]?.lower,s=f[e+1]?.lower;"("!==t&&")"!==t||(y+="("===t?1:-1);const m="group"===t&&"by"===s?"group by":t,v=h||","===o||"as"===o||i.includes(s);if(h=!1,y>0||"by"===m||!n.includes(m)||v)continue;const w=p[p.length-1]?.keyword;if(w===m&&a[m]?.(o))continue;const g=p.some((e=>"where"===e.keyword));if("where"===m&&g&&("and"===o||"or"===o))throw new Error(`"${o} where" is no longer supported: ${c}`);if(!d.includes(m))throw new Error(`"${m}" isn't allowed in ${u} ${l} query (allowed: ${d.join(", ")})`);if(w&&d.indexOf(m)<d.indexOf(w))throw new Error(`"${m}" can't come after "${w}" (order: ${d.join(", ")})`);if(p.some((e=>e.keyword===m)))throw new Error(`Only one "${m}" clause is allowed${"where"===m?`: ${c}`:""}`);"group by"===m&&e++,p.push({keyword:m,start:r,end:f[e].start+f[e].text.length}),h=!0}return{command:l,head:t[0].trim(),leading:e.slice(t[0].length,p[0]?.start??e.length).trim(),clauses:p.map((({keyword:t,end:r},n)=>({keyword:t,body:e.slice(r,p[n+1]?.start??e.length).trim()})))}}}}),_r=d({"dist/data/utilities/parsers/findConditions.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findConditions=void 0,It(),Ke(),qt();var t=Rt(),r=Lt(),n=Mt(),o=br(),s="(?![a-z0-9_.-])",i=e=>new RegExp(`^(?:${e})${s}`,"i"),a=new RegExp(`^([a-z0-9_-]+\\.?[a-z0-9_-]*)\\s+(?:(is\\s+not\\s+null|is\\s+null|exists|does\\s+not\\s+exist)${s}|(<>|!=|>=|<=|=|>|<|in|between|like)\\s+(${n.placeholderSource}|(${t.numberSource})|${n.arraySource}|(null)|(true)|(false)))`,"i"),c=(e,t)=>{const n=t.flatMap((t=>!(0,r.isCondition)(t)&&e in t?t[e]:[t]));return 1===n.length?n[0]:"and"===e?{and:n}:{or:n}},l=e=>{let r=0;const s=()=>e.slice(r),l=()=>{r+=s().length-s().trimStart().length},d=e=>{l();const t=s().match(e);if(t)return r+=t[0].length,t[0]},u=()=>(0,n.unmaskStrings)(s().trim(),"'"),f=e=>{l();const n=s().match(a);if(n)return r+=n[0].length,(e=>{const r=e[1];if(void 0!==e[2])return{property:r,comparator:e[2].toLowerCase().replace(/\s+/g," "),value:null};const n=e[3].toLowerCase(),o=(0,t.parseLiteralValue)(e,5);if(null===o)throw new Error(`\`${r} ${n} null\` never matches (null equals nothing, as in SQL): use \`${r} is null\` or \`${r} is not null\``);if("between"===n&&Array.isArray(o)&&o.includes(null))throw new Error(`\`${r} between\` can't have a null bound: it would never match`);return{property:r,comparator:n,value:o}})(n);if(("and"===e||"or"===e)&&i("where").test(s()))throw new Error(`"${e} where" is no longer supported: ${o.whereHint}`);if(d(i("not")))return{not:f("not")};if(d(/^\(/)){if(l(),s().startsWith(")"))throw new Error("Empty brackets in a where clause");const e=y("(");if(!d(/^\)/))throw new Error("Missing ) "+(s().trim()?`before: ${u()}`:"at the end of the where clause"));return e}throw new Error(`Missing a condition after ${e}${s().trim()?`: ${u()}`:""}`)},p=e=>{const t=[f(e)];for(;;){const e=d(i("and"));if(!e)break;t.push(f(e.toLowerCase().replace(/\s+/g," ")))}return c("and",t)},y=e=>{const t=[p(e)];for(;;){const e=d(i("or"));if(!e)break;t.push(p(e.toLowerCase().replace(/\s+/g," ")))}return c("or",t)},h=y("where");if(l(),s().startsWith(")"))throw new Error(`Unexpected ) in a where clause: ${u()}`);if(a.test(s()))throw new Error(`Missing and/or before: ${u()}`);return{node:h,end:r}};e.findConditions=(e,t)=>{const{node:r,end:n}=l(t);return e.where=r,t.slice(n).trim()}}}),xr=d({"dist/data/utilities/parsers/findJoinClauses.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findJoinClauses=void 0;var t=/^([a-z0-9_-]+\.[a-z0-9_-]+)\s+(=|!=|>|<|>=|<=|in|between|like)\s+([a-z0-9_-]+\.[a-z0-9_-]+)(?![a-z0-9._-])/i,r=/^and\s+on\s+/i;e.findJoinClauses=(e,n)=>{let o=n;for(let n=o.match(t);n;n=o.match(t)){e.joinClauses.push({propertyA:n[1],comparator:n[2],propertyB:n[3]}),o=o.slice(n[0].length).trim();const s=o.match(r);if(!s||!t.test(o.slice(s[0].length)))break;o=o.slice(s[0].length)}return o}}}),$r=d({"dist/data/utilities/parsers/findMergeJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findMergeJoins=void 0;var t=/^([a-z0-9_-]+\.[a-z0-9_-]+)\s+with\s+([a-z0-9_-]+\.[a-z0-9_-]+)(?![a-z0-9._-])/i,r=/^(?:and\s+)?merge\s+/i;e.findMergeJoins=(e,n)=>{let o=n;for(let n=o.match(t);n;n=o.match(t)){e.mergeJoins.push({propertyA:n[1],propertyB:n[2]}),o=o.slice(n[0].length).trim();const s=o.match(r);if(!s||!t.test(o.slice(s[0].length)))break;o=o.slice(s[0].length)}return o}}}),Or=d({"dist/data/utilities/parsers/findSortClauses.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findSortClauses=void 0;var t="[a-z0-9._-]+(?:\\s+(?:asc|desc)(?![a-z0-9._-]))?",r=new RegExp(`^${t}(?:\\s*,\\s*${t})*`,"i"),n=/,?\s*([a-z0-9._-]+)(?:\s+(asc|desc)(?![a-z0-9._-]))?/gi;e.findSortClauses=(e,t)=>{const o=t.match(r);if(o){const r=o[0].matchAll(n);for(const t of r)e.sortClauses.push({property:t[1],direction:(t[2]||"asc").toLowerCase()});return t.slice(o[0].length).trim()}return t}}}),Er=d({"node_modules/core-js/modules/es.iterator.find.js"(){p();var e=$e(),t=w(),r=ft(),n=I(),o=ee(),s=Fe(),i=Qe(),a=Ye()("find",TypeError);e({target:"Iterator",proto:!0,real:!0,forced:a},{find:function(e){o(this);try{n(e)}catch(e){i(this,"throw",e)}if(a)return t(a,this,e);var c=s(this),l=0;return r(c,(function(t,r){if(e(t,l++))return r(t)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})}}),kr=d({"node_modules/core-js/modules/esnext.iterator.find.js"(){p(),Er()}}),Pr=d({"dist/data/utilities/parsers/findGroupBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findGroupBy=void 0,Ke(),kr();var t=/^[a-z0-9._-]+(?:\s*,\s*[a-z0-9._-]+)*/i;e.findGroupBy=(e,r)=>{const n=r.match(t);if(n){const t=n[0].split(/\s*,\s*/),o=t.find(((e,r)=>t.indexOf(e)!==r));if(o)throw new Error(`"${o}" is in group by twice`);return e.groupBy=t,r.slice(n[0].length).trim()}return r}}}),Sr=d({"dist/data/utilities/parsers/findLimit.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findLimit=void 0;var t=/^(\d+)/;e.findLimit=(e,r)=>{const n=r.match(t);return n?(e.limit=n?parseInt(n[1]):void 0,r.slice(n[0].length).trim()):r}}}),Mr=d({"dist/data/utilities/parsers/findOffset.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findOffset=void 0;var t=/^(\d+)/;e.findOffset=(e,r)=>{const n=r.match(t);return n?(e.offset=n?parseInt(n[1]):void 0,r.slice(n[0].length).trim()):r}}}),Rr=d({"dist/data/introspect/policies/typeCheck.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.typeCheck=e.fieldTypes=void 0;e.fieldTypes=["string","int","boolean","object","array"];e.typeCheck=(e="string",t=void 0,r=!1)=>{if(void 0===t)return t;if(null===t){if(r)return t;throw new Error('Value "null" is not allowed: the field is not nullable')}switch(e){case"string":return"string"==typeof t?t:String(t);case"int":{const e=Number(t);if(Number.isNaN(e)||!Number.isInteger(e))throw new Error(`Value "${t}" is not a valid int`);if(!Number.isSafeInteger(e))throw new Error(`Value "${t}" is too large for an int (the largest is ${Number.MAX_SAFE_INTEGER})`);return e}case"boolean":if("boolean"==typeof t)return t;if("true"===t)return!0;if("false"===t)return!1;throw new Error(`Value "${t}" is not a valid boolean`);case"object":if("object"!=typeof t||null===t||Array.isArray(t))throw new Error(`Value "${t}" is not a valid object`);return t;case"array":if(!Array.isArray(t))throw new Error(`Value "${t}" is not a valid array`);return t;default:return t}}}}),Dr=d({"dist/data/utilities/parsers/startsQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.startsQueryMatch=void 0;e.startsQueryMatch=/^\s*(alter|create|delete|describe|drop|insert|read|show|update|use)(?![a-z0-9_-])/i}}),Cr=d({"dist/data/utilities/parsers/parseCreate.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseField=e.parseCreate=e.nameSource=e.nameMatch=e.keyLookup=e.fieldMatch=e.createMatch=void 0,It(),Ke(),st(),kr(),nt(),St(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Rr(),r=Mt(),n=Rt(),o=Dr(),s=(e.createMatch=/^\s*create(?![a-z0-9_-])/i,/^\s*create\s+(if\s+not\s+exists\s+)?([a-z0-9_-]+)\s*\(/i),i=e.nameSource="[a-z0-9_-]+",a=e.nameMatch=new RegExp(`^${i}$`,"i"),c=new RegExp(`^${n.numberSource}$`,"i"),l=e.fieldMatch=new RegExp(`^(${i})\\s+(${i})((?:\\s[\\s\\S]*)?)$`,"i"),d=/^primary\s+key\s*\(([^()]*)\)$/i,u=/^unique\s*\(([^()]*)\)$/i,f=/^index\s*\(([^()]*)\)$/i,y=new RegExp(`^foreign\\s+key\\s*\\(([^()]*)\\)\\s*references\\s+(${i})\\s*\\(([^()]*)\\)$`,"i"),h=new RegExp(`^${r.placeholderSource}$`),m=new RegExp(`^${r.arraySource}$`),v={primary:"pk",unique:"unique",index:"index",foreign:"fk"},w=(e,t)=>`${v[e]}_${t.join("_")}.json`;e.keyLookup=w;var g=e=>(0,r.unmaskStrings)(e.trim(),"'"),j=(e,t)=>{const r=e.split(",").map((e=>e.trim()));if(r.some((e=>!a.test(e))))throw new Error(`Expected field names separated by commas in: ${g(t)}`);if(new Set(r).size!==r.length)throw new Error(`The same field is named twice in: ${g(t)}`);return r},b=e=>{if(void 0===e)throw new Error("Missing a value after default");const t=e.match(h);if(t)return(0,r.fromPlaceholder)(t[1]);const o=e.match(m);if(o)return JSON.parse((0,r.fromPlaceholder)(o[1]));if(c.test(e))return(0,n.parseNumber)(e);switch(e.toLowerCase()){case"null":return null;case"true":return!0;case"false":return!1}throw new Error(`Unrecognized default value: ${g(e)}`)},_=e=>{const[r,n,o,s]=e,i=o.toLowerCase();if(!t.fieldTypes.includes(i))throw new Error(`Unknown type "${o}" for field "${n}" (expected ${t.fieldTypes.join(", ")})`);const a={name:n,type:i,optional:!1,autoGenerate:!1},c=new Set,l=e=>{if(c.has(e))throw new Error(`"${e}" is given twice for field "${n}"`);c.add(e)},d=""===s.trim()?[]:s.trim().split(/\s+/);for(let e=0;e<d.length;e++){const t=d[e].toLowerCase();if("optional"===t)l("optional"),a.optional=!0;else if("auto"===t)l("auto"),a.autoGenerate=!0;else if("null"===t)l("null"),a.nullable=!0;else if("not"===t&&"null"===(d[e+1]||"").toLowerCase())l("null"),a.nullable=!1,e++;else{if("default"!==t)throw new Error(`Unrecognized "${g(d[e])}" for field "${n}" in: ${g(r)}`);l("default"),a.useDefault=!0,a.defaultValue=b(d[++e])}}if(a.autoGenerate&&a.useDefault)throw new Error(`Field "${n}" can't be both auto and have a default`);if(a.autoGenerate&&"string"!==i)throw new Error(`Field "${n}" is auto, which generates a UUID, so its type must be string`);return a};e.parseField=_;var x=e=>{let t=e.match(d);if(t)return{type:"primary",fields:j(t[1],e)};if(t=e.match(u),t)return{type:"unique",fields:j(t[1],e)};if(t=e.match(f),t)return{type:"index",fields:j(t[1],e)};if(t=e.match(y),t){const r=j(t[1],e),n=j(t[3],e);if(1!==r.length||1!==n.length)throw new Error(`Only single-field foreign keys are supported so far: ${g(e)}`);return{type:"foreign",fields:r,references:[{fields:[`${t[2]}.${n[0]}`],lookup:`${t[2]}.json`}]}}return null},$=(e,t)=>{const r=e.map((e=>e.name));if(t.filter((e=>"primary"===e.type)).length>1)throw new Error("Only one primary key is allowed");const n=new Set;return t.map((e=>{const t=e.fields.find((e=>!r.includes(e)));if(t)throw new Error(`The ${e.type} key (${e.fields.join(", ")}) names "${t}", which is not a field`);const o=w(e.type,e.fields);if(n.has(o))throw new Error(`The same ${e.type} key on "${e.fields.join(", ")}" is given twice`);return n.add(o),Object.assign({type:e.type,fields:e.fields,lookup:o},e.references?{references:e.references}:{})}))};e.parseCreate=e=>{const t=e.match(s);if(!t)throw new Error("Expected: create [if not exists] <name> (<fields and keys>)");const r=t[2];if("__RECORDS"===r)throw new Error("__RECORDS is reserved for the list of records");const n=t[0].length-1,i=((e,t)=>{let r=0;for(let n=t;n<e.length;n++)if("("===e[n])r++;else if(")"===e[n]&&(r--,0===r))return n;return-1})(e,n);if(-1===i)throw new Error("Missing ) at the end of the field list");const a=e.slice(i+1).trim();if(a){if(o.startsQueryMatch.test(a))throw new Error(`Missing ; before: ${g(a)}`);throw new Error(`Unrecognized query value: ${g(a)}`)}const c=e.slice(n+1,i),d=[],u=[];if(c.trim())for(const e of(e=>{const t=[];let r=0,n=0;for(let o=0;o<e.length;o++)"("===e[o]?r++:")"===e[o]?r--:","===e[o]&&0===r&&(t.push(e.slice(n,o)),n=o+1);return t.push(e.slice(n)),t.map((e=>e.trim()))})(c)){if(!e)throw new Error("Empty item in the field list (an extra comma?)");const t=x(e);if(t){u.push(t);continue}const r=e.match(l);if(!r)throw new Error(`Expected a field (<name> <type> ...) or a key in: ${g(e)}`);const n=_(r);if(d.some((e=>e.name===n.name)))throw new Error(`Field "${n.name}" is given twice`);d.push(n)}return{entity:r,create:{ifNotExists:Boolean(t[1]),definition:d,keys:$(d,u)}}}}}),Fr=d({"dist/data/utilities/parsers/parseSchemaStatement.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.schemaStatementMatch=e.parseSchemaStatement=void 0;var t=Mt(),r=Dr(),n=e.schemaStatementMatch=/^\s*(drop|describe|show)(?![a-z0-9_-])/i,o=/^\s*drop\s+(if\s+exists\s+)?([a-z0-9_-]+)/i,s=/^\s*describe\s+([a-z0-9_-]+)/i,i=/^\s*show\s+records(?![a-z0-9_-])/i,a=e=>{const n=e.trim();if(!n)return;const o=(0,t.unmaskStrings)(n,"'");if(r.startsQueryMatch.test(n))throw new Error(`Missing ; before: ${o}`);throw new Error(`Unrecognized query value: ${o}`)},c=e=>{if("__RECORDS"===e)throw new Error("__RECORDS is reserved for the list of records (use: show records)")};e.parseSchemaStatement=e=>{const t=e.match(n)[1].toLowerCase();if("drop"===t){const t=e.match(o);if(!t||/^\s*drop\s+if\s+exists\s*$/i.test(e))throw new Error("Expected: drop [if exists] <name>");return c(t[2]),a(e.slice(t[0].length)),{command:"drop",entity:t[2],ifExists:Boolean(t[1])}}if("describe"===t){const t=e.match(s);if(!t)throw new Error("Expected: describe <name>");return c(t[1]),a(e.slice(t[0].length)),{command:"describe",entity:t[1],ifExists:!1}}const r=e.match(i);if(!r)throw new Error("Expected: show records (the only thing that can be shown so far)");return a(e.slice(r[0].length)),{command:"show",entity:"__RECORDS",ifExists:!1}}}}),Ar=d({"dist/data/utilities/parsers/parseAlter.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseAlter=e.alterMatch=void 0;var t=Cr(),r=Mt(),n=Dr(),o=(e.alterMatch=/^\s*alter(?![a-z0-9_-])/i,new RegExp(`^\\s*alter\\s+(${t.nameSource})\\s+(add|drop|rename|modify)(?![a-z0-9_-])([\\s\\S]*)$`,"i")),s=new RegExp(`^\\s*(${t.nameSource})\\s+to\\s+(${t.nameSource})\\s*$`,"i"),i=e=>(0,r.unmaskStrings)(e.trim(),"'"),a=e=>{const r=e.trim().match(t.fieldMatch);if(!r)throw new Error(`Expected a field (<name> <type> ...) in: ${i(e)}`);return(0,t.parseField)(r)};e.parseAlter=e=>{const r=e.match(o);if(!r)throw new Error("Expected: alter <record> add <field> <type> ..., drop <field>, rename <field> to <name>, or modify <field> <type> ...");const[,c,l,d]=r;if("__RECORDS"===c)throw new Error("__RECORDS is reserved for the list of records");const u=l.toLowerCase();if(n.startsQueryMatch.test(d.trim())&&!/^\s*(add|drop|rename|modify)\b/i.test(d))throw new Error(`Missing ; before: ${i(d)}`);switch(u){case"add":case"modify":return{entity:c,alter:{action:u,field:a(d)}};case"drop":{const e=d.trim();if(!t.nameMatch.test(e))throw new Error(`Expected: alter ${c} drop <field>${e?` (got: ${i(e)})`:""}`);return{entity:c,alter:{action:u,name:e}}}default:{const e=d.match(s);if(!e)throw new Error(`Expected: alter ${c} rename <field> to <name>${d.trim()?` (got: ${i(d)})`:""}`);return{entity:c,alter:{action:"rename",name:e[1],to:e[2]}}}}}}}),Tr=d({"dist/data/utilities/parsers/parseDatabaseStatement.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseDatabaseStatement=e.databaseStatementMatch=void 0;var t=Mt(),r=Dr(),n=(e.databaseStatementMatch=/^\s*(?:(?:create|drop)\s+database\s+(?!\()[a-z0-9_-]|show\s+databases(?![a-z0-9_-])|use(?![a-z0-9_.-]))/i,/^\s*create\s+database\s+(if\s+not\s+exists\s+)?([a-z0-9_-]+)/i),o=/^\s*drop\s+database\s+(if\s+exists\s+)?([a-z0-9_-]+)/i,s=/^\s*use\s+([a-z0-9_-]+)/i,i=/^\s*show\s+databases/i,a=e=>{const n=e.trim();if(!n)return;const o=(0,t.unmaskStrings)(n,"'");if(r.startsQueryMatch.test(n))throw new Error(`Missing ; before: ${o}`);throw new Error(`Unrecognized query value: ${o}`)};e.parseDatabaseStatement=e=>{const t={ifExists:!1,ifNotExists:!1};let r=e.match(n);if(r)return a(e.slice(r[0].length)),{...t,command:"create database",entity:r[2],ifNotExists:Boolean(r[1])};if(r=e.match(o),r)return a(e.slice(r[0].length)),{...t,command:"drop database",entity:r[2],ifExists:Boolean(r[1])};if(r=e.match(i),r)return a(e.slice(r[0].length)),{...t,command:"show databases",entity:"__DATABASES"};if(r=e.match(s),!r)throw new Error("Expected: use <database>");return a(e.slice(r[0].length)),{...t,command:"use",entity:r[1]}}}}),Ir=d({"dist/data/utilities/parsers/parseQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseQuery=void 0;var t=wt(),r=Dt(),n=Ct(),o=Ft(),s=At(),i=_r(),a=Lt(),c=xr(),l=$r(),d=Or(),u=Pr(),f=Sr(),y=Mr(),h=Mt(),m=Cr(),v=Fr(),w=Ar(),g=Tr(),j=br(),b=Dr(),_={values:{step:r.findInsertValues,expected:"an assignment (field = value)"},set:{step:n.findUpdateValues,expected:"an assignment (field = value)"},select:{step:s.findSelects,expected:"a field"},on:{step:c.findJoinClauses,expected:"a join condition (a.x = b.y)"},merge:{step:l.findMergeJoins,expected:"a merge (a.x with b.y)"},where:{step:i.findConditions,expected:"a condition"},"group by":{step:u.findGroupBy,expected:"a field"},sort:{step:d.findSortClauses,expected:"a field"},limit:{step:f.findLimit,expected:"a whole number"},offset:{step:y.findOffset,expected:"a whole number"}},x=(e,t)=>{const r=e=>(0,h.unmaskStrings)(e,"'");return b.startsQueryMatch.test(e)?new Error(`Missing ; before: ${r(e)}`):new Error(`Unexpected "${r(e)}" after "${r(t)}"`)};e.parseQuery=e=>{const r={command:void 0,entity:void 0,joinEntity:void 0,selectClauses:[],insertValues:[],updateValues:{},where:void 0,joinClauses:[],mergeJoins:[],sortClauses:[],groupBy:void 0,limit:void 0,offset:void 0,create:void 0,ifExists:void 0};if(e=(0,h.maskArrays)((0,h.maskStrings)(e)),g.databaseStatementMatch.test(e))return Object.assign(r,(0,g.parseDatabaseStatement)(e));if(m.createMatch.test(e)){const{entity:t,create:n}=(0,m.parseCreate)(e);return Object.assign(r,{command:"create",entity:t,create:n})}if(v.schemaStatementMatch.test(e))return Object.assign(r,(0,v.parseSchemaStatement)(e));if(w.alterMatch.test(e)){const{entity:t,alter:n}=(0,w.parseAlter)(e);return Object.assign(r,{command:"alter",entity:t,alter:n})}const n=(0,j.splitClauses)(e);if(!n){if(e=e.trim(),b.startsQueryMatch.test(e))throw new Error(`Missing ; before: ${(0,h.unmaskStrings)(e,"'")}`);throw new Error(`Unrecognized query value: ${(0,h.unmaskStrings)(e,"'")}`)}if((0,o.findJoinEntity)(r,(0,t.findCommand)(r,n.head)),r.where=(0,a.allOf)([]),n.leading)throw x(n.leading,n.head);for(const{keyword:e,body:t}of n.clauses){const{step:n,expected:o}=_[e],s=n(r,t);if(s===t)throw new Error(`Missing ${o} after ${e}${t?`: ${(0,h.unmaskStrings)(t,"'")}`:""}`);if(s)throw x(s,`${e} ${t.slice(0,t.length-s.length).trim()}`)}if((r.joinClauses||[]).length&&!r.joinEntity)throw new Error(`"on" needs the record to join, after the one read: ${r.command} ${r.entity}.<record> on ...`);return r}}}),Nr=d({"dist/data/queries/parser.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parser=void 0,Ke(),nt();var t=vt(),r=Ir();e.parser=(e="")=>{const n=(0,t.splitQueries)(e);return n.map(((e,t)=>{try{return(0,r.parseQuery)(e)}catch(r){const o=n.length>1?` query ${t+1} of ${n.length}`:"";throw new Error(`Failed to interpret${o}: ${e} (${r.message})`)}}))}}}),Jr=d({"node_modules/core-js/internals/weak-map-helpers.js"(e,t){p();var r=b(),n=WeakMap.prototype;t.exports={WeakMap:WeakMap,set:r(n.set),get:r(n.get),has:r(n.has),remove:r(n.delete)}}}),qr=d({"node_modules/core-js/internals/a-weak-map.js"(e,t){p();var r=Jr().has;t.exports=function(e){return r(e),e}}}),Lr=d({"node_modules/core-js/modules/esnext.weak-map.delete-all.js"(){p();var e=$e(),t=qr(),r=Jr().remove;e({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,n=t(this),o=!0,s=0,i=arguments.length;s<i;s++)e=r(n,arguments[s]),o=o&&e;return!!o}})}}),zr=d({"node_modules/browser-or-node/dist/index.js"(t,r){p();var n,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{isBrowser:()=>l,isBun:()=>h,isDeno:()=>y,isJsDom:()=>f,isNode:()=>d,isWebWorker:()=>u}),r.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of i(t))a.call(e,c)||c===r||o(e,c,{get:()=>t[c],enumerable:!(n=s(t,c))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var l="undefined"!=typeof window&&void 0!==window.document,d=void 0!==e.default&&null!=e.default.versions&&null!=e.default.versions.node,u="object"==typeof self&&self.constructor&&"DedicatedWorkerGlobalScope"===self.constructor.name,f="undefined"!=typeof window&&"nodejs"===window.name||"undefined"!=typeof navigator&&"userAgent"in navigator&&"string"==typeof navigator.userAgent&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),y="undefined"!=typeof Deno&&void 0!==Deno.version&&void 0!==Deno.version.deno,h=void 0!==e.default&&null!=e.default.versions&&null!=e.default.versions.bun}}),Br=d({"node_modules/path-browserify/index.js"(t,r){function n(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function o(e,t){for(var r,n="",o=0,s=-1,i=0,a=0;a<=e.length;++a){if(a<e.length)r=e.charCodeAt(a);else{if(47===r)break;r=47}if(47===r){if(s===a-1||1===i);else if(s!==a-1&&2===i){if(n.length<2||2!==o||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var c=n.lastIndexOf("/");if(c!==n.length-1){-1===c?(n="",o=0):o=(n=n.slice(0,c)).length-1-n.lastIndexOf("/"),s=a,i=0;continue}}else if(2===n.length||1===n.length){n="",o=0,s=a,i=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),o=a-s-1;s=a,i=0}else 46===r&&-1!==i?++i:i=-1}return n}p();var s={resolve:function(){for(var t,r="",s=!1,i=arguments.length-1;i>=-1&&!s;i--){var a;i>=0?a=arguments[i]:(void 0===t&&(t=e.default.cwd()),a=t),n(a),0!==a.length&&(r=a+"/"+r,s=47===a.charCodeAt(0))}return r=o(r,!s),s?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(n(e),0===e.length)return".";var t=47===e.charCodeAt(0),r=47===e.charCodeAt(e.length-1);return 0!==(e=o(e,!t)).length||t||(e="."),e.length>0&&r&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return n(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var r=arguments[t];n(r),r.length>0&&(void 0===e?e=r:e+="/"+r)}return void 0===e?".":s.normalize(e)},relative:function(e,t){if(n(e),n(t),e===t)return"";if((e=s.resolve(e))===(t=s.resolve(t)))return"";for(var r=1;r<e.length&&47===e.charCodeAt(r);++r);for(var o=e.length,i=o-r,a=1;a<t.length&&47===t.charCodeAt(a);++a);for(var c=t.length-a,l=i<c?i:c,d=-1,u=0;u<=l;++u){if(u===l){if(c>l){if(47===t.charCodeAt(a+u))return t.slice(a+u+1);if(0===u)return t.slice(a+u)}else i>l&&(47===e.charCodeAt(r+u)?d=u:0===u&&(d=0));break}var f=e.charCodeAt(r+u);if(f!==t.charCodeAt(a+u))break;47===f&&(d=u)}var p="";for(u=r+d+1;u<=o;++u)u!==o&&47!==e.charCodeAt(u)||(0===p.length?p+="..":p+="/..");return p.length>0?p+t.slice(a+d):(a+=d,47===t.charCodeAt(a)&&++a,t.slice(a))},_makeLong:function(e){return e},dirname:function(e){if(n(e),0===e.length)return".";for(var t=e.charCodeAt(0),r=47===t,o=-1,s=!0,i=e.length-1;i>=1;--i)if(47===(t=e.charCodeAt(i))){if(!s){o=i;break}}else s=!1;return-1===o?r?"/":".":r&&1===o?"//":e.slice(0,o)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');n(e);var r,o=0,s=-1,i=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var a=t.length-1,c=-1;for(r=e.length-1;r>=0;--r){var l=e.charCodeAt(r);if(47===l){if(!i){o=r+1;break}}else-1===c&&(i=!1,c=r+1),a>=0&&(l===t.charCodeAt(a)?-1==--a&&(s=r):(a=-1,s=c))}return o===s?s=c:-1===s&&(s=e.length),e.slice(o,s)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!i){o=r+1;break}}else-1===s&&(i=!1,s=r+1);return-1===s?"":e.slice(o,s)},extname:function(e){n(e);for(var t=-1,r=0,o=-1,s=!0,i=0,a=e.length-1;a>=0;--a){var c=e.charCodeAt(a);if(47!==c)-1===o&&(s=!1,o=a+1),46===c?-1===t?t=a:1!==i&&(i=1):-1!==t&&(i=-1);else if(!s){r=a+1;break}}return-1===t||-1===o||0===i||1===i&&t===o-1&&t===r+1?"":e.slice(t,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var r=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return r?r===t.root?r+n:r+e+n:n}("/",e)},parse:function(e){n(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var r,o=e.charCodeAt(0),s=47===o;s?(t.root="/",r=1):r=0;for(var i=-1,a=0,c=-1,l=!0,d=e.length-1,u=0;d>=r;--d)if(47!==(o=e.charCodeAt(d)))-1===c&&(l=!1,c=d+1),46===o?-1===i?i=d:1!==u&&(u=1):-1!==i&&(u=-1);else if(!l){a=d+1;break}return-1===i||-1===c||0===u||1===u&&i===c-1&&i===a+1?-1!==c&&(t.base=t.name=0===a&&s?e.slice(1,c):e.slice(a,c)):(0===a&&s?(t.name=e.slice(1,i),t.base=e.slice(1,c)):(t.name=e.slice(a,i),t.base=e.slice(a,c)),t.ext=e.slice(i,c)),a>0?t.dir=e.slice(0,a-1):s&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};s.posix=s,r.exports=s}}),Vr=d({"dist/data/utilities/config.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.trackDatabaseCall=e.switchDatabase=e.resolveDatabasePath=e.lockPath=e.getSetting=e.databasesFolder=e.configure=e.activeDatabasePath=void 0,kt();var t={databasePath:"database/",relativePath:"",enforceForeignKeys:!0,readConcurrency:16,format:"compact"},r=0,n=/^[a-z0-9_-]+$/i,o=e=>e.endsWith("/")?e:`${e}/`,s=()=>t.databasesPath&&t.database?`${o(t.databasesPath)}${t.database}/`:c("databasePath","database/");e.activeDatabasePath=s;var i=()=>t.databasesPath?o(t.databasesPath):s();e.lockPath=i;e.databasesFolder=()=>{if(!t.databasesPath)throw new Error("Several databases need a folder to hold them: configure({ databasesPath: 'databases/' }) first");return o(t.databasesPath)};e.switchDatabase=e=>{t={...t,database:e}};var a=e=>Br().resolve(e);e.resolveDatabasePath=a;e.trackDatabaseCall=()=>{r++;let e=!1;return()=>{e||(e=!0,r--)}};e.configure=e=>{if(void 0!==e.format&&"compact"!==e.format&&"pretty"!==e.format)throw new Error(`Unknown format "${e.format}": use 'compact' or 'pretty'`);if(void 0!==e.database&&null!==e.database&&!n.test(e.database))throw new Error(`Invalid database name ${JSON.stringify(e.database)}: names use letters, digits, _ and - only`);const o={...t,...e};if(o.database&&!o.databasesPath)throw new Error("A database name needs the folder that holds the databases: configure({ databasesPath: 'databases/', database: '...' })");if(r>0){const n={active:a(s()),lock:a(i())},c=t;t=o;const l=a(s())!==n.active||a(i())!==n.lock;if(t=c,l){const t=["databasePath","databasesPath","database"].filter((t=>void 0!==e[t])).join(" / ");throw new Error(`Can't change ${t} while ${r} database call(s) are still running or queued: await them first`)}}t=o};var c=(e,r)=>void 0!==t[e]?t[e]:r;e.getSetting=c}}),Wr=d({"dist/data/storage/storagePath.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.storagePath=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Vr();e.storagePath=(e="")=>`${r.isBrowser?(0,n.getSetting)("relativePath",""):""}${(0,n.activeDatabasePath)()}${e}`}}),Ur=d({"js-build-tools-empty:fs/promises"(e,t){p(),t.exports={}}}),Kr=d({"dist/data/storage/nodeFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.nodeFiles=void 0;e.nodeFiles=()=>Ur()}}),Qr=d({"node_modules/core-js/internals/map-helpers.js"(e,t){p();var r=b(),n=Map.prototype;t.exports={Map:Map,set:r(n.set),get:r(n.get),has:r(n.has),remove:r(n.delete),proto:n}}}),Gr=d({"node_modules/core-js/internals/a-map.js"(e,t){p();var r=Qr().has;t.exports=function(e){return r(e),e}}}),Hr=d({"node_modules/core-js/modules/esnext.map.delete-all.js"(){p();var e=$e(),t=Gr(),r=Qr().remove;e({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,n=t(this),o=!0,s=0,i=arguments.length;s<i;s++)e=r(n,arguments[s]),o=o&&e;return!!o}})}}),Xr=d({"node_modules/core-js/internals/map-iterate.js"(e,t){p();var r=b(),n=Qt(),o=Qr(),s=o.Map,i=o.proto,a=r(i.forEach),c=r(i.entries),l=c(new s).next;t.exports=function(e,t,r){return r?n({iterator:c(e),next:l},(function(e){return t(e[1],e[0])})):a(e,t)}}}),Yr=d({"node_modules/core-js/modules/esnext.map.every.js"(){p();var e=$e(),t=at(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{every:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0);return!1!==n(o,(function(e,t){if(!s(e,t,o))return!1}),!0)}})}}),Zr=d({"node_modules/core-js/modules/esnext.map.filter.js"(){p();var e=$e(),t=at(),r=Gr(),n=Qr(),o=Xr(),s=n.Map,i=n.set;e({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e,t){a(e,t,n)&&i(c,t,e)})),c}})}}),en=d({"node_modules/core-js/modules/esnext.map.find.js"(){p();var e=$e(),t=at(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0),i=n(o,(function(e,t){if(s(e,t,o))return{value:e}}),!0);return i&&i.value}})}}),tn=d({"node_modules/core-js/modules/esnext.map.find-key.js"(){p();var e=$e(),t=at(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0),i=n(o,(function(e,t){if(s(e,t,o))return{key:t}}),!0);return i&&i.key}})}}),rn=d({"node_modules/core-js/internals/same-value-zero.js"(e,t){p(),t.exports=function(e,t){return e===t||e!=e&&t!=t}}}),nn=d({"node_modules/core-js/modules/esnext.map.includes.js"(){p();var e=$e(),t=rn(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return!0===n(r(this),(function(r){if(t(r,e))return!0}),!0)}})}}),on=d({"node_modules/core-js/modules/esnext.map.key-of.js"(){p();var e=$e(),t=Gr(),r=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){var n=r(t(this),(function(t,r){if(t===e)return{key:r}}),!0);return n&&n.key}})}}),sn=d({"node_modules/core-js/modules/esnext.map.map-keys.js"(){p();var e=$e(),t=at(),r=Gr(),n=Qr(),o=Xr(),s=n.Map,i=n.set;e({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e,t){i(c,a(e,t,n),e)})),c}})}}),an=d({"node_modules/core-js/modules/esnext.map.map-values.js"(){p();var e=$e(),t=at(),r=Gr(),n=Qr(),o=Xr(),s=n.Map,i=n.set;e({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e,t){i(c,t,a(e,t,n))})),c}})}}),cn=d({"node_modules/core-js/modules/esnext.map.merge.js"(){p();var e=$e(),t=Gr(),r=ft(),n=Qr().set;e({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var o=t(this),s=arguments.length,i=0;i<s;)r(arguments[i++],(function(e,t){n(o,e,t)}),{AS_ENTRIES:!0});return o}})}}),ln=d({"node_modules/core-js/modules/esnext.map.reduce.js"(){p();var e=$e(),t=I(),r=Gr(),n=Xr(),o=TypeError;e({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(e){var s=r(this),i=arguments.length<2,a=i?void 0:arguments[1];if(t(e),n(s,(function(t,r){i?(i=!1,a=t):a=e(a,t,r,s)})),i)throw new o("Reduce of empty map with no initial value");return a}})}}),dn=d({"node_modules/core-js/modules/esnext.map.some.js"(){p();var e=$e(),t=at(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{some:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0);return!0===n(o,(function(e,t){if(s(e,t,o))return!0}),!0)}})}}),un=d({"node_modules/core-js/modules/esnext.map.update.js"(){p();var e=$e(),t=I(),r=Gr(),n=Qr(),o=TypeError,s=n.get,i=n.has,a=n.set;e({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,n){var c=r(this),l=arguments.length;t(n);var d=i(c,e);if(!d&&l<3)throw new o("Updating absent value");var u=d?s(c,e):t(l>2?arguments[2]:void 0)(e,c);return a(c,e,n(u,e,c)),c}})}}),fn=d({"dist/data/storage/readCache.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.withReadCache=e.cachedRead=e.cacheWrite=e.cacheRemove=void 0,Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=Wr(),r=new Map,n=()=>r.get((0,t.storagePath)());e.withReadCache=async e=>{const n=(0,t.storagePath)(),o=r.get(n)||{calls:0,files:new Map};r.set(n,o),o.calls++,o.calls>1&&(o.files=new Map);try{return await e()}finally{o.calls--,o.calls||r.get(n)!==o||r.delete(n)}};e.cachedRead=(e,t)=>{const r=n();if(!r)return t();const o=r.files.get(e);if(o)return o;const s=t();return r.files.set(e,s),s.catch((()=>{r.files.get(e)===s&&r.files.delete(e)})),s};e.cacheWrite=(e,t)=>{n()?.files.set(e,Promise.resolve(t))};e.cacheRemove=(e,t=!1)=>{const r=n();if(r&&(r.files.delete(e),t)){const t=e.endsWith("/")?e:`${e}/`;for(const e of[...r.files.keys()])e.startsWith(t)&&r.files.delete(e)}}}}),pn=d({"dist/data/storage/writeSet.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeAtomically=e.withWriteSet=e.stageWrite=e.stageRemoveDirectory=e.stageRemove=e.stageMakeDirectory=e.pendingListing=e.pendingFile=e.pendingExists=void 0,Ke(),st(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Wr(),o=Kr(),s=fn();var i=new Map,a=()=>i.get((0,n.storagePath)()),c=e=>e.endsWith("/")?e:`${e}/`,l=(e,t)=>{for(const r of t)if(e===r||e.startsWith(c(r)))return!0;return!1},d=async(e,t)=>{const r=`${e}.${crypto.randomUUID()}.tmp`,n=(0,o.nodeFiles)();try{await n.writeFile(r,t),await n.rename(r,e)}catch(e){throw await n.rm(r,{force:!0}).catch((()=>{})),e}};e.writeAtomically=d;var u=async e=>{(0,s.cacheRemove)(e,!0),await(0,o.nodeFiles)().rm(e,{recursive:!0,force:!0}),(0,s.cacheRemove)(e,!0)};e.withWriteSet=async e=>{const t=(0,n.storagePath)();if(!r.isNode||i.has(t))return e();const a={files:new Map,madeFolders:new Set,removedFolders:new Set};let l;i.set(t,a);try{l=await e()}finally{i.delete(t)}return await(async e=>{const t=(0,o.nodeFiles)(),r=t=>{const r=c(t);return[...e.madeFolders].some((e=>e===t||e.startsWith(r)))||[...e.files].some((([e,t])=>null!==t&&e.startsWith(r)))},n=[...e.removedFolders];for(const e of n.filter(r))await u(e);for(const r of e.madeFolders)await t.mkdir(r,{recursive:!0});for(const[t,r]of e.files)null!==r&&(await d(t,r),(0,s.cacheWrite)(t,r));for(const[r,n]of e.files)null===n&&((0,s.cacheRemove)(r),await t.rm(r,{force:!0}),(0,s.cacheRemove)(r));for(const e of n.filter((e=>!r(e))))await u(e)})(a),l};e.pendingFile=e=>{const t=a();if(t)return t.files.has(e)?t.files.get(e):l(e,t.removedFolders)?null:void 0};e.pendingExists=e=>{const t=a();if(!t)return;if(t.files.has(e))return null!==t.files.get(e);const r=c(e);return!(![...t.madeFolders].some((t=>t===e||t.startsWith(r)))&&![...t.files].some((([e,t])=>null!==t&&e.startsWith(r))))||!l(e,t.removedFolders)&&void 0};e.pendingListing=(e,t)=>{const r=a();if(!r)return t;const n=c(e),o=new Set(t.filter((e=>!l(e,r.removedFolders))));for(const[e,t]of r.files)e.startsWith(n)&&(null===t?o.delete(e):o.add(e));return[...o]};e.stageWrite=(e,t)=>{const r=a();return!!r&&(r.files.delete(e),r.files.set(e,t),!0)};e.stageRemove=e=>{const t=a();return!!t&&(t.files.delete(e),t.files.set(e,null),!0)};e.stageMakeDirectory=e=>{const t=a();return!!t&&(t.madeFolders.add(e),!0)};e.stageRemoveDirectory=e=>{const t=a();if(!t)return!1;for(const r of[...t.files.keys()])l(r,new Set([e]))&&t.files.delete(r);for(const r of[...t.madeFolders])l(r,new Set([e]))&&t.madeFolders.delete(r);return t.removedFolders.add(e),!0}}}),yn=d({"dist/data/storage/readJson.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.readText=e.readJson=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Wr(),o=Kr(),s=fn(),i=pn();var a=async e=>{const t=(0,n.storagePath)(e),a=(0,i.pendingFile)(t);if(null===a)throw new Error(`ENOENT: no such file or directory, open '${t}' (deleted by this statement)`);return"string"==typeof a?a:(0,s.cachedRead)(t,(()=>r.isNode?(0,o.nodeFiles)().readFile(t,"utf8"):fetch(t).then((e=>e.text()))))};e.readText=a;e.readJson=async e=>JSON.parse(await a(e))}}),hn=d({"dist/data/storage/writeJson.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeJson=e.jsonText=void 0,kt();var t=Wr(),r=fn(),n=pn(),o=Vr(),s=(e,t=(0,o.getSetting)("format","compact"))=>"pretty"===t?JSON.stringify(e,null,2):JSON.stringify(e);e.jsonText=s;e.writeJson=async(e,o,i)=>{const a=(0,t.storagePath)(e),c=s(o,i);(0,n.stageWrite)(a,c)||(await(0,n.writeAtomically)(a,c),(0,r.cacheWrite)(a,c))}}}),mn=d({"dist/data/storage/makeDirectory.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.makeDirectory=void 0;var t=Wr(),r=Kr(),n=pn();e.makeDirectory=async(e="")=>{const o=(0,t.storagePath)(e);(0,n.stageMakeDirectory)(o)||await(0,r.nodeFiles)().mkdir(o,{recursive:!0})}}}),vn=d({"js-build-tools-empty:fs"(e,t){p(),t.exports={}}}),wn=d({"dist/data/storage/removeFile.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeFile=void 0;var t=Wr(),r=Kr(),n=fn(),o=pn();e.removeFile=async e=>{const s=(0,t.storagePath)(e),i=(0,o.pendingFile)(s);if(null===i||void 0===i&&!vn().existsSync(s))throw new Error(`ENOENT: no such file or directory, rm '${s}'`);(0,o.stageRemove)(s)||((0,n.cacheRemove)(s),await(0,r.nodeFiles)().rm(s),(0,n.cacheRemove)(s))}}}),gn=d({"dist/data/storage/removeDirectory.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeDirectory=void 0;var t=Wr(),r=Kr(),n=fn(),o=pn();e.removeDirectory=async e=>{const s=(0,t.storagePath)(e);(0,o.stageRemoveDirectory)(s)||((0,n.cacheRemove)(s,!0),await(0,r.nodeFiles)().rm(s,{recursive:!0,force:!0}),(0,n.cacheRemove)(s,!0))}}}),jn=d({"dist/data/storage/fileExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.fileExists=void 0;var t=Wr(),r=pn();e.fileExists=e=>{const n=(0,t.storagePath)(e),o=(0,r.pendingExists)(n);if(void 0!==o)return o;const{existsSync:s}=vn();return s(n)}}}),bn=d({"dist/data/storage/listFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.listFiles=void 0,Ke(),nt();var t=Wr(),r=Kr(),n=pn(),o=async e=>{let n;try{n=await(0,r.nodeFiles)().readdir((0,t.storagePath)(e),{withFileTypes:!0})}catch(e){if("ENOENT"===e?.code)return[];throw e}const s=[];for(const t of n)t.isDirectory()?s.push(...await o(`${e}${t.name}/`)):t.isFile()&&s.push(`${e}${t.name}`);return s};e.listFiles=async(e="")=>{const r=e?`${e.replace(/\/+$/,"")}/`:"",s=(await o(r)).map((e=>(0,t.storagePath)(e))),i=(0,t.storagePath)();return(0,n.pendingListing)((0,t.storagePath)(e),s).map((e=>e.slice(i.length))).sort()}}}),_n=d({"dist/data/storage/databases.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeDatabaseList=e.removeDatabaseFolder=e.readDatabaseList=e.makeDatabaseFolder=e.databasesLocation=e.databaseFolderExists=void 0,kt();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Vr(),o=Kr(),s=fn(),i=pn();var a=(e="")=>`${r.isBrowser?(0,n.getSetting)("relativePath",""):""}${(0,n.databasesFolder)()}${e}`;e.databasesLocation=a;var c=()=>a("__DATABASES.json");e.readDatabaseList=async()=>{let e;try{e=r.isNode?await(0,o.nodeFiles)().readFile(c(),"utf8"):await fetch(c()).then((e=>!1===e.ok?"[]":e.text()))}catch(e){if(r.isNode&&"ENOENT"!==e?.code)throw e;return[]}try{const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){if(!r.isNode)return[];throw new Error(`Could not read ${c()}: ${e.message}`)}};e.writeDatabaseList=async e=>{await(0,o.nodeFiles)().mkdir(a(),{recursive:!0}),await(0,i.writeAtomically)(c(),JSON.stringify(e))};e.databaseFolderExists=e=>vn().existsSync(a(e));e.makeDatabaseFolder=async e=>{await(0,o.nodeFiles)().mkdir(a(e),{recursive:!0})};e.removeDatabaseFolder=async e=>{const t=a(e);(0,s.cacheRemove)(t,!0),await(0,o.nodeFiles)().rm(t,{recursive:!0,force:!0}),(0,s.cacheRemove)(t,!0)}}}),xn=d({"dist/data/storage/index.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"databaseFolderExists",{enumerable:!0,get:function(){return l.databaseFolderExists}}),Object.defineProperty(e,"databasesLocation",{enumerable:!0,get:function(){return l.databasesLocation}}),Object.defineProperty(e,"fileExists",{enumerable:!0,get:function(){return a.fileExists}}),Object.defineProperty(e,"jsonText",{enumerable:!0,get:function(){return n.jsonText}}),Object.defineProperty(e,"listFiles",{enumerable:!0,get:function(){return c.listFiles}}),Object.defineProperty(e,"makeDatabaseFolder",{enumerable:!0,get:function(){return l.makeDatabaseFolder}}),Object.defineProperty(e,"makeDirectory",{enumerable:!0,get:function(){return o.makeDirectory}}),Object.defineProperty(e,"readDatabaseList",{enumerable:!0,get:function(){return l.readDatabaseList}}),Object.defineProperty(e,"readJson",{enumerable:!0,get:function(){return r.readJson}}),Object.defineProperty(e,"readText",{enumerable:!0,get:function(){return r.readText}}),Object.defineProperty(e,"removeDatabaseFolder",{enumerable:!0,get:function(){return l.removeDatabaseFolder}}),Object.defineProperty(e,"removeDirectory",{enumerable:!0,get:function(){return i.removeDirectory}}),Object.defineProperty(e,"removeFile",{enumerable:!0,get:function(){return s.removeFile}}),Object.defineProperty(e,"storagePath",{enumerable:!0,get:function(){return t.storagePath}}),Object.defineProperty(e,"withReadCache",{enumerable:!0,get:function(){return d.withReadCache}}),Object.defineProperty(e,"withWriteSet",{enumerable:!0,get:function(){return u.withWriteSet}}),Object.defineProperty(e,"writeDatabaseList",{enumerable:!0,get:function(){return l.writeDatabaseList}}),Object.defineProperty(e,"writeJson",{enumerable:!0,get:function(){return n.writeJson}});var t=Wr(),r=yn(),n=hn(),o=mn(),s=wn(),i=gn(),a=jn(),c=bn(),l=_n(),d=fn(),u=pn()}}),$n=d({"dist/data/utilities/retrieveFile.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveFile=void 0;var t=xn();e.retrieveFile=async e=>{const r=await(0,t.readJson)(e).catch((e=>console.error(e)));if(!r)throw new Error(`Could not read ${e}`);return r}}}),On=d({"dist/data/utilities/recordExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.recordExists=void 0;var t=xn();e.recordExists=e=>(0,t.fileExists)(`${e}.json`)}}),En=d({"dist/data/utilities/retrieveRecord.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveRecord=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=$n(),o=On();e.retrieveRecord=async(e="")=>{if(r.isNode&&!(0,o.recordExists)(e))throw new Error(`Record "${e}" doesn't exist`);try{return await(0,n.retrieveFile)(`${e}.json`)}catch(t){if(!r.isNode)throw new Error(`Record "${e}" doesn't exist, or ${e}.json can't be read`);throw t}}}}),kn=d({"dist/data/utilities/compareAs.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.sameValue=e.compareAs=e.comparableTypes=void 0,It();var t=(e,t)=>{if(null==t)return t;switch(e){case"string":return"object"==typeof t?t:String(t);case"int":{const e=Number(t);return Number.isNaN(e)?t:e}case"boolean":return"true"===t||"false"!==t&&t;default:return t}};e.compareAs=t;var r=e.comparableTypes=["string","int","boolean"];e.sameValue=(e,n,o)=>r.includes(e)?t(e,n)===t(e,o):n==o}}),Pn=d({"dist/data/utilities/removeFromIndex.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeFromIndex=void 0,Ke(),st(),nt();var t=kn(),r=xn();e.removeFromIndex=async(e="",n=null,o=void 0,s="",i=void 0)=>{if(!n||!n.lookup)return null;const a=`__indexes/${e}/${n.lookup}`;let c=[];try{c=await(0,r.readJson)(a)}catch(e){return null}return c=c.map((e=>(0,t.sameValue)(i,e.value,o)?{value:e.value,record:e.record.filter((e=>e!==s))}:e)).filter((e=>e.record.length)),await(0,r.writeJson)(a,c),c}}}),Sn=d({"dist/data/utilities/computeKeyValue.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.computeKeyValue=void 0,kt(),Ke(),nt();e.computeKeyValue=(e,t)=>1===e.length?t[e[0]]:JSON.stringify(e.map((e=>t[e])))}}),Mn=d({"dist/data/utilities/fieldType.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyValueType=e.fieldType=void 0,Ke(),kr();var t=(e,t)=>e?.definition?.find((e=>e.name===t))?.type;e.fieldType=t;e.keyValueType=(e,r)=>1===r.fields.length?t(e,r.fields[0]):void 0}}),Rn=d({"dist/data/introspect/describe.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.describe=void 0;var t=$n();e.describe=async(e="__RECORDS")=>{const r=await(0,t.retrieveFile)(`${e}.json`);return"__RECORDS"===e?r.entries:r.definition}}}),Dn=d({"dist/data/utilities/retrieveFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveFiles=void 0;var t=$n(),r=Vr();e.retrieveFiles=async(e,n=t.retrieveFile)=>{const o=Math.max(1,Math.floor((0,r.getSetting)("readConcurrency",16))||1),s=new Array(e.length),i=[];let a=0;if(await Promise.all(Array.from({length:Math.min(o,e.length)},(async()=>{for(;a<e.length&&!i.length;){const t=a++;try{s[t]=await n(e[t])}catch(e){i.push({position:t,error:e})}}}))),i.length)throw i.reduce(((e,t)=>t.position<e.position?t:e)).error;return s}}}),Cn=d({"dist/data/utilities/packedTable.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.usesPackedReads=e.retrievePacked=e.packedPath=e.discardPacked=void 0,Ke(),St();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=xn(),o=Vr();var s=e=>`__packed/${e}.json`;e.packedPath=s;var i=()=>(0,o.getSetting)("packedReads",!r.isNode);e.usesPackedReads=i;e.retrievePacked=async e=>{if(!i())return;let t;try{t=await(0,n.readJson)(s(e.path))}catch(e){return}const r=e.entries||[];return t&&Array.isArray(t.entries)&&Array.isArray(t.rows)&&t.entries.length===r.length&&t.rows.length===r.length&&!t.entries.some(((e,t)=>e!==r[t]))?t:void 0};e.discardPacked=async e=>{(0,n.fileExists)(s(e))&&await(0,n.removeFile)(s(e))}}}),Fn=d({"dist/data/utilities/retrieveRecords.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveRecords=e.retrieveEntryRows=e.retrieveEntry=void 0,Ke(),st(),nt(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=$n(),r=En(),n=Dn(),o=Cn(),s=Vr(),i=async e=>{const r=await(0,t.retrieveFile)(e).catch((e=>console.error(e)));if(!r)throw new Error(`Could not read entity ${e.slice(e.lastIndexOf("/")+1)}`);return r};e.retrieveEntry=i;var a=async(e,t,r=i)=>{const a=t.length>(0,s.getSetting)("readConcurrency",16)?await(0,o.retrievePacked)(e):void 0;if(!a)return(0,n.retrieveFiles)(t.map((t=>`${e.path}/${t}`)),r);const c=new Map(a.entries.map(((e,t)=>[e,t]))),l=t.filter((e=>!c.has(e))),d=l.length?await(0,n.retrieveFiles)(l.map((t=>`${e.path}/${t}`)),r):[],u=new Map(l.map(((e,t)=>[e,d[t]])));return t.map((e=>c.has(e)?a.rows[c.get(e)]:u.get(e)))};e.retrieveEntryRows=a;e.retrieveRecords=async(e="")=>{const t=await(0,r.retrieveRecord)(e);return a(t,t.entries)}}}),An=d({"dist/data/queries/where.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.whereTree=e.where=e.treeTruth=void 0,It(),Ke(),st(),qt(),St();var t=kn(),r=Lt(),n=(e,r,n,o,s=void 0)=>{const i=Object.prototype.hasOwnProperty.call(e,r);switch(n){case"exists":return i;case"does not exist":return!i;case"is null":return i&&null===e[r];case"is not null":return i&&null!==e[r]}if(!i||null===e[r]||null===o)return null;const a=e[r],c=(0,t.compareAs)(s,a);switch(n){case"=":return(0,t.sameValue)(s,a,o);case"!=":case"<>":return!(0,t.sameValue)(s,a,o);case">":return c>(0,t.compareAs)(s,o);case">=":return c>=(0,t.compareAs)(s,o);case"<":return c<(0,t.compareAs)(s,o);case"<=":return c<=(0,t.compareAs)(s,o);case"in":return!!Array.isArray(o)&&(!!(s?o.some((e=>null!==e&&(0,t.sameValue)(s,a,e))):o.includes(a))||!!o.includes(null)&&null);case"between":return!(!Array.isArray(o)||2!==o.length)&&(o.includes(null)?null:c>=(0,t.compareAs)(s,o[0])&&c<=(0,t.compareAs)(s,o[1]));case"like":return((e,t)=>{if("string"!=typeof e||"string"!=typeof t)return!1;const r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${r}$`,"i").test(e)})(a,o)}return!1},o=(e,{property:t="",joinEntity:r,comparator:o="=",value:s=null,type:i}={})=>n(e,r?`${r}.${t}`:t,o,s,i);e.where=(e=[],t={})=>e.filter((e=>!0===o(e,t)));var s=(e,t)=>{if((0,r.isCondition)(t))return o(e,t);if("not"in t){const r=s(e,t.not);return null===r?null:!r}const n=!("and"in t);let i=!n;for(const r of"and"in t?t.and:t.or){const t=s(e,r);if(t===n)return n;null===t&&(i=null)}return i};e.treeTruth=s;e.whereTree=(e=[],t=void 0,r=void 0)=>void 0===t?e:void 0===r?e.filter((e=>!0===s(e,t))):e.flatMap((e=>{const n=(Array.isArray(e[r])?e[r]:[]).filter((n=>!0===s(((e,t,r)=>{const n=Object.assign({},e);for(const e of Object.keys(r)){const o=e.includes(".")?e:`${t}.${e}`;Object.prototype.hasOwnProperty.call(n,o)||(n[o]=r[e])}return n})(e,r,n),t)));return n.length?[Object.assign({},e,{[r]:n})]:[]}))}}),Tn=d({"dist/data/utilities/parsers/splitEntityProperty.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.splitEntityProperty=void 0;var t=/^[a-z0-9_-]+/i,r=/\.([a-z0-9_-]+)$/i;e.splitEntityProperty=e=>{const n=e.match(t);if(!n)throw new Error(`Unable to use property: ${e}`);const o=e.match(r);if(!o)throw new Error(`Unable to use property: ${e}`);return{entity:n[0],property:o[1]}}}}),In=d({"dist/data/utilities/isSingleFieldKey.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.isSingleFieldKey=void 0;e.isSingleFieldKey=(e,t)=>1===e.fields.length&&e.fields[0]===t}}),Nn=d({"dist/data/utilities/indexHas.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.indexHas=void 0,Ke(),kr(),St();var t=xn(),r=An(),n=En(),o=In(),s=Mn();e.indexHas=async(e,i,a)=>{const c=await(0,n.retrieveRecord)(e),l=c.keys.find((e=>(0,o.isSingleFieldKey)(e,i)&&e.lookup));if(!l)return;if(!(c.entries||[]).length)return!1;let d;try{d=await(0,t.readJson)(`__indexes/${c.path}/${l.lookup}`)}catch(e){return}return(0,r.where)(d,{property:"value",comparator:"=",value:a,type:(0,s.fieldType)(c,i)}).some((e=>Array.isArray(e.record)&&e.record.length>0))}}}),Jn=d({"dist/data/introspect/policies/hasDependents.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.hasDependents=void 0;var t=Rn(),r=En(),n=Fn(),o=An(),s=Mn(),i=Tn(),a=Nn();e.hasDependents=async(e,c,l)=>{const d=await(0,t.describe)();for(const t of d){const d=t.replace(/\.json$/,""),u=await(0,r.retrieveRecord)(d);for(const t of u.keys){if("foreign"!==t.type||1!==t.fields.length||!t.references||1!==t.references.length)continue;const{entity:r,property:f}=(0,i.splitEntityProperty)(t.references[0].fields[0]);if(r!==e||f!==c)continue;const p=await(0,a.indexHas)(d,t.fields[0],l);if(void 0!==p){if(p)return!0;continue}const y=await(0,n.retrieveRecords)(d);if((0,o.where)(y,{property:t.fields[0],comparator:"=",value:l,type:(0,s.fieldType)(u,t.fields[0])}).length)return!0}}return!1}}}),qn=d({"node_modules/core-js/modules/es.iterator.for-each.js"(){p();var e=$e(),t=w(),r=ft(),n=I(),o=ee(),s=Fe(),i=Qe(),a=Ye()("forEach",TypeError);e({target:"Iterator",proto:!0,real:!0,forced:a},{forEach:function(e){o(this);try{n(e)}catch(e){i(this,"throw",e)}if(a)return t(a,this,e);var c=s(this),l=0;r(c,(function(t){e(t,l++)}),{IS_RECORD:!0})}})}}),Ln=d({"node_modules/core-js/modules/esnext.iterator.for-each.js"(){p(),qn()}}),zn=d({"dist/data/utilities/keyIndexFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyIndexFiles=void 0,Ke(),st(),Ln(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=xn();e.keyIndexFiles=async(e,r,n)=>{if(!r.lookup)return;if(!(e.entries||[]).length)return[];let o;try{o=await(0,t.readJson)(`__indexes/${e.path}/${r.lookup}`)}catch(e){return}const s=new Set;for(const e of Array.isArray(o)?o:[])Array.isArray(e.record)&&n(e.value)&&e.record.forEach((e=>s.add(e)));return e.entries.filter((e=>s.has(e)))}}}),Bn=d({"dist/data/queries/deleteEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.deleteEntity=void 0,Ke(),st(),kr(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=En(),r=$n(),n=Pn(),o=Sn(),s=Mn(),i=Jn(),a=Vr(),c=zn(),l=xn(),d=Cn();e.deleteEntity=async(e="",u={})=>{const f=await(0,t.retrieveRecord)(e),p=f.keys.find((e=>"primary"===e.type));if(!p)throw new Error(`Cannot delete from "${e}" without a primary key`);const y=u[e]||[];if(!y.length)return u;await(async(e,t,r)=>{if(!(0,a.getSetting)("enforceForeignKeys",!0)||1!==t.fields.length)return;const n=t.fields[0];for(const t of r)if(await(0,i.hasDependents)(e,n,t[n]))throw new Error(`Cannot delete from "${e}" where "${n}" = ${t[n]} - other records still reference it`)})(e,p,y);const h=new Set(y.map((e=>(0,o.computeKeyValue)(p.fields,e)))),m=await(async(e,t,i,a)=>{const d=new Set,u=new Set,f=async e=>{const c=await(0,r.retrieveFile)(`${t.path}/${e}`),f=(0,o.computeKeyValue)(i.fields,c);if(a.has(f)){await(0,l.removeFile)(`${t.path}/${e}`);for(const r of t.keys)await(0,n.removeFromIndex)(t.path,r,(0,o.computeKeyValue)(r.fields,c),e,(0,s.keyValueType)(t,r));d.add(e),u.add(f)}};for(const e of await(0,c.keyIndexFiles)(t,i,(e=>a.has(e)))??[])await f(e);if(u.size<a.size)for(const e of t.entries.filter((e=>!d.has(e))))await f(e);return t.entries.filter((e=>!d.has(e)))})(0,f,p,h);return m.length!==f.entries.length&&await(0,d.discardPacked)(f.path),f.entries=m,await(0,l.writeJson)(`${f.path}.json`,f),u}}}),Vn=d({"node_modules/core-js/modules/es.iterator.every.js"(){p();var e=$e(),t=w(),r=ft(),n=I(),o=ee(),s=Fe(),i=Qe(),a=Ye()("every",TypeError);e({target:"Iterator",proto:!0,real:!0,forced:a},{every:function(e){o(this);try{n(e)}catch(e){i(this,"throw",e)}if(a)return t(a,this,e);var c=s(this),l=0;return!r(c,(function(t,r){if(!e(t,l++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})}}),Wn=d({"node_modules/core-js/modules/esnext.iterator.every.js"(){p(),Vn()}}),Un=d({"dist/data/introspect/policies/keyUnique.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyUnique=void 0;var t=Fn(),r=An(),n=En(),o=Mn(),s=Nn();e.keyUnique=async(e,i=[],a=[])=>{if(!i.length||i.length!==a.length)return!1;if(1===i.length){const t=await(0,s.indexHas)(e,i[0],a[0]);if(void 0!==t)return!t}let c=await(0,t.retrieveRecords)(e);const l=await(0,n.retrieveRecord)(e);for(let e=0;e<i.length;e++)c=(0,r.where)(c,{property:i[e],comparator:"=",value:a[e],type:(0,o.fieldType)(l,i[e])});return!c.length}}}),Kn=d({"dist/data/introspect/policies/useDefault.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.useDefault=void 0;e.useDefault=(e="",t=void 0)=>void 0===t?e:t}}),Qn=d({"dist/data/introspect/policies/foreignKeyExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.foreignKeyExists=void 0;var t=Fn(),r=An(),n=En(),o=Mn(),s=Nn();e.foreignKeyExists=async(e,i,a)=>{const c=await(0,s.indexHas)(e,i,a);if(void 0!==c)return c;const l=await(0,t.retrieveRecords)(e),d=(0,o.fieldType)(await(0,n.retrieveRecord)(e),i);return(0,r.where)(l,{property:i,comparator:"=",value:a,type:d}).length>0}}}),Gn=d({"dist/data/utilities/indexBuffer.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.IndexBuffer=void 0,It(),Ke(),kr(),St(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr(),Lr();var t=kn(),r=Symbol("unkeyed"),n=(e,n)=>{if(!t.comparableTypes.includes(e))return r;const o=(0,t.compareAs)(e,n);return"object"==typeof o&&null!==o?r:o};e.IndexBuffer=class{constructor(e,t){this.byKey=new Map,this.listed=new WeakMap,this.entries=e,this.type=t;for(const o of e){const e=n(t,o.value);e===r||this.byKey.has(e)||this.byKey.set(e,o)}}find(e){const o=n(this.type,e);return o===r?this.entries.find((r=>(0,t.sameValue)(this.type,r.value,e))):this.byKey.get(o)}has(e){if(null==e)return!1;const r=e=>Boolean(e&&Array.isArray(e.record)&&e.record.length),n=this.find(e);return!n||r(n)?r(n):this.entries.some((n=>(0,t.sameValue)(this.type,n.value,e)&&r(n)))}add(e,t){const o=this.find(e);if(o){this.listed.has(o)||this.listed.set(o,new Set(o.record));const e=this.listed.get(o);return void(e.has(t)||(e.add(t),o.record.push(t)))}const s={value:e,record:[t]};this.entries.push(s),this.listed.set(s,new Set(s.record));const i=n(this.type,e);i!==r&&this.byKey.set(i,s)}}}}),Hn=d({"dist/data/utilities/parsers/isEntityProperty.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.isEntityProperty=void 0;e.isEntityProperty=e=>/^[a-z0-9_-]+\.([a-z0-9_-]+)$/i.test(e)}}),Xn=d({"dist/data/utilities/knownFields.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.assertKnownFields=e.assertFieldsDefined=void 0,Ke(),st(),kr(),qt(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=En(),r=Hn(),n=Tn(),o=Lt(),s=(e,t,r,n)=>{const o=new Set(t.definition.map((e=>e.name))),s=r.find((e=>!o.has(e)));if(void 0!==s)throw new Error(`Unknown field "${s}" in ${n}: ${e} has ${(e=>e.definition.map((e=>e.name)).join(", "))(t)}`)};e.assertFieldsDefined=s;e.assertKnownFields=async(e,i)=>{const a=new Set((e.mergeJoins||[]).map((e=>(0,n.splitEntityProperty)(e.propertyB).entity))),c=[...(0,o.conditionsOf)(e.where).map((e=>({property:e.property,clause:"where"}))),...(e.sortClauses||[]).map((e=>({property:e.property,clause:"sort"}))),...(e.groupBy||[]).map((e=>({property:e,clause:"group by"}))),...(e.selectClauses||[]).filter((t=>t.property!==e.joinEntity)).map((e=>({property:e.property,clause:"select"}))),...(e.insertValues||[]).flatMap((e=>Object.keys(e||{}).map((e=>({property:e,clause:"insert",own:!0}))))),...Object.keys(e.updateValues||{}).map((e=>({property:e,clause:"set",own:!0}))),...(e.joinClauses||[]).flatMap((e=>[{property:e.propertyA,clause:"on"},{property:e.propertyB,clause:"on"}])),...(e.mergeJoins||[]).flatMap((e=>[{property:e.propertyA,clause:"merge"},{property:e.propertyB,clause:"merge"}]))];for(const{property:o,clause:l,own:d}of c){if("string"!=typeof o)continue;let c=e.entity,u=o;if(!d&&(0,r.isEntityProperty)(o)&&({entity:c,property:u}=(0,n.splitEntityProperty)(o)),"select"===l&&c!==e.entity&&!a.has(c))throw new Error(`Can't select "${o}": a joined record's rows are a list under its name (select ${c}), and its fields are on each row only when merged (merge ... with ${c}.<field>)`);Object.prototype.hasOwnProperty.call(i,c)||(i[c]=await(0,t.retrieveRecord)(c)),s(c,i[c],[u],l)}}}}),Yn=d({"dist/data/queries/insertEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.insertEntity=void 0,It(),kt(),Ke(),Wn(),kr(),Ln(),nt(),St(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=En(),r=Un(),n=Kn(),o=Rr(),s=Qn(),i=Tn(),a=Sn(),c=Mn(),l=kn(),d=Fn(),u=In(),f=Gn(),y=xn(),h=Cn(),m=Xn(),v=class{constructor(e,t){this.seen=new Set,this.fields=t,this.types=t.map((t=>(0,c.fieldType)(e,t)))}static usable(e,t){return t.every((t=>l.comparableTypes.includes((0,c.fieldType)(e,t))))}keyOf(e){const t=[];for(let r=0;r<this.fields.length;r++){const n=e[this.fields[r]];if(null==n)return;const o=(0,l.compareAs)(this.types[r],n);if("object"==typeof o)return;t.push([typeof o,o])}return JSON.stringify(t)}add(e){const t=this.keyOf(e);void 0!==t&&this.seen.add(t)}has(e){const t=this.keyOf(e);return void 0!==t&&this.seen.has(t)}},w=class{constructor(e,t){this.rows=[],this.buffers=new Map,this.unreadable=new Set,this.otherLookups=new Map,this.scans=new Map,this.entity=e,this.record=t,this.hadEntries=(t.entries||[]).length>0}async load(){for(const e of this.record.keys){if(!e.lookup)continue;let t=[];try{t=await(0,y.readJson)(`__indexes/${this.record.path}/${e.lookup}`)}catch(t){this.unreadable.add(e)}this.buffers.set(e,new f.IndexBuffer(Array.isArray(t)?t:[],(0,c.keyValueType)(this.record,e)))}}ownLookup(e){const t=this.record.keys.find((t=>(0,u.isSingleFieldKey)(t,e)&&t.lookup));if(!t||this.unreadable.has(t))return()=>{};const r=this.buffers.get(t);return e=>(this.hadEntries||this.rows.length>0)&&r.has(e)}otherLookup(e,r){const n=`${e}\0${r}`;return this.otherLookups.has(n)||this.otherLookups.set(n,(async()=>{const n=await(0,t.retrieveRecord)(e),o=n.keys.find((e=>(0,u.isSingleFieldKey)(e,r)&&e.lookup));if(!o)return()=>{};if(!(n.entries||[]).length)return()=>!1;let s;try{s=await(0,y.readJson)(`__indexes/${n.path}/${o.lookup}`)}catch(e){return()=>{}}const i=new f.IndexBuffer(Array.isArray(s)?s:[],(0,c.fieldType)(n,r));return e=>i.has(e)})()),this.otherLookups.get(n)}scan(e,r){const n=`${e}\0${r.join("\0")}`;return this.scans.has(n)||this.scans.set(n,(async()=>{const n=e===this.entity?this.record:await(0,t.retrieveRecord)(e);if(!v.usable(n,r))return;const o=new v(n,r);for(const t of await(0,d.retrieveRecords)(e))o.add(t);return e===this.entity&&this.rows.forEach((e=>o.add(e))),o})()),this.scans.get(n)}claimed(e,t){return this.rows.some((r=>e.every((e=>null!==r[e]&&void 0!==r[e]&&(0,l.sameValue)((0,c.fieldType)(this.record,e),r[e],t[e])))))}async isUnique(e,t){if(1===e.length){const r=this.ownLookup(e[0])(t[e[0]]);if(void 0!==r)return!r}const n=await this.scan(this.entity,e);return n?!n.has(t):await(0,r.keyUnique)(this.entity,e,e.map((e=>t[e])))&&!this.claimed(e,t)}async exists(e,t,r){const n=e===this.entity,o=n?this.ownLookup(t)(r):(await this.otherLookup(e,t))(r);if(void 0!==o)return o;const i=await this.scan(e,[t]);return i?i.has({[t]:r}):await(0,s.foreignKeyExists)(e,t,r)||n&&this.claimed([t],{[t]:r})}async add(e,t){this.rows.push(e);for(const[t,r]of this.scans)t.startsWith(`${this.entity}\0`)&&(await r)?.add(e);this.record.entries.push(t);for(const[r,n]of this.buffers)n.add((0,a.computeKeyValue)(r.fields,e),t)}async write(){await(0,y.writeJson)(`${this.record.path}.json`,this.record),this.buffers.size&&await(0,y.makeDirectory)(`__indexes/${this.record.path}`);for(const[e,t]of this.buffers)await(0,y.writeJson)(`__indexes/${this.record.path}/${e.lookup}`,t.entries)}},g=async(e,t)=>{let r;do{r=crypto.randomUUID()}while(!await e.isUnique([t],{[t]:r}));return r},j=async(e,t={})=>{const r={};for(const s of e.record.definition){let i=t[s.name];if(null===i&&s.optional&&!s.nullable&&(i=void 0),s.autoGenerate?i=await g(e,s.name):Object.prototype.hasOwnProperty.call(s,"default")&&(i=(0,n.useDefault)(s.default,i)),void 0!==i)r[s.name]=(0,o.typeCheck)(s.type,i,s.nullable);else if(!s.optional)throw new Error(`Missing required field "${s.name}" for ${e.entity}`)}return r},b=async(e,t)=>{for(const r of e.record.keys)if(!("primary"!==r.type&&"unique"!==r.type||r.fields.some((e=>null===t[e]))||await e.isUnique(r.fields,t)))throw new Error(`Duplicate value for ${r.type} key "${r.fields.join(", ")}" on ${e.entity}`)},_=async(e,t)=>{for(const r of e.record.keys){if("foreign"!==r.type||1!==r.fields.length||!r.references||1!==r.references.length)continue;const n=r.fields[0];if(!Object.prototype.hasOwnProperty.call(t,n)||null===t[n])continue;const{entity:o,property:s}=(0,i.splitEntityProperty)(r.references[0].fields[0]);if(!await e.exists(o,s,t[n]))throw new Error(`Foreign key "${n}" on ${e.entity} references a nonexistent ${o}.${s} = ${t[n]}`)}};e.insertEntity=async(e="",r=[],n={})=>{const o=await(0,t.retrieveRecord)(e),s=o.keys.find((e=>"primary"===e.type&&1===e.fields.length));if(Object.prototype.hasOwnProperty.call(n,e)||(n[e]=[]),await(0,y.makeDirectory)(o.path),!r.length)return n;for(const t of r)(0,m.assertFieldsDefined)(e,o,Object.keys(t||{}),"insert");await(0,h.discardPacked)(o.path);const i=new w(e,o);await i.load();for(const t of r){const r=await j(i,t);await b(i,r),await _(i,r);const a=`${s?r[s.fields[0]]:crypto.randomUUID()}.json`;await(0,y.writeJson)(`${o.path}/${a}`,r),await i.add(r,a),n[e].push(r)}return await i.write(),n}}}),Zn=d({"dist/data/queries/readEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.readEntity=void 0;var t=Fn();e.readEntity=async(e="",r={})=>(Object.prototype.hasOwnProperty.call(r,e)&&r[e].length||(r[e]=await(0,t.retrieveRecords)(e)),r)}}),eo=d({"dist/data/utilities/updateIndex.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.updateIndex=void 0,It(),Ke(),kr();var t=kn(),r=xn();e.updateIndex=async(e="",n=null,o=void 0,s="",i=void 0)=>{if(!n||!n.lookup)return null;const a=`__indexes/${e}`,c=`${a}/${n.lookup}`;let l=[];try{l=await(0,r.readJson)(c)}catch(e){l=[]}const d=l.find((e=>(0,t.sameValue)(i,e.value,o)));return d?d.record.includes(s)||d.record.push(s):l.push({value:o,record:[s]}),await(0,r.makeDirectory)(a),await(0,r.writeJson)(c,l),l}}}),to=d({"dist/data/queries/updateEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.updateEntity=void 0,Ke(),kr(),nt(),St();var t=En(),r=$n(),n=eo(),o=Pn(),s=Sn(),i=Mn(),a=kn(),c=Un(),l=Rr(),d=Qn(),u=Jn(),f=Tn(),y=Vr(),h=zn(),m=xn(),v=Cn(),w=Xn(),g=async(e,t,n)=>{const o=(0,i.keyValueType)(e,t),c=async i=>(0,a.sameValue)(o,(0,s.computeKeyValue)(t.fields,await(0,r.retrieveFile)(`${e.path}/${i}`)),n);for(const r of await(0,h.keyIndexFiles)(e,t,(e=>(0,a.sameValue)(o,e,n)))??[])if(await c(r))return r;for(const t of e.entries)if(await c(t))return t;return null},j=(e,t,r,n)=>t.fields.some((t=>Object.prototype.hasOwnProperty.call(n,t)&&!(0,a.sameValue)((0,i.fieldType)(e,t),n[t],r[t]))),b=async(e,t,r,n,o)=>{for(const s of t.keys){if("primary"!==s.type&&"unique"!==s.type||!j(t,s,r,o))continue;const i=s.fields.map((e=>n[e]));if(i.some((e=>null==e)))continue;if(!await(0,c.keyUnique)(e,s.fields,i))throw new Error(`Duplicate value for ${s.type} key "${s.fields.join(", ")}" on ${e}`)}},_=async(e,t,r,n)=>{for(const o of t.keys){if("foreign"!==o.type||1!==o.fields.length||!o.references||1!==o.references.length)continue;const s=o.fields[0];if(!Object.prototype.hasOwnProperty.call(n,s)||null===n[s]||void 0===n[s]||(0,a.sameValue)((0,i.fieldType)(t,s),n[s],r[s]))continue;const{entity:c,property:l}=(0,f.splitEntityProperty)(o.references[0].fields[0]);if(!await(0,d.foreignKeyExists)(c,l,n[s]))throw new Error(`Foreign key "${s}" on ${e} references a nonexistent ${c}.${l} = ${n[s]}`)}},x=async(e,t,r,n,o)=>{if(!(0,y.getSetting)("enforceForeignKeys",!0)||1!==r.fields.length||!j(t,r,n,o))return;const s=r.fields[0];if(await(0,u.hasDependents)(e,s,n[s]))throw new Error(`Cannot update "${e}" where "${s}" = ${n[s]} - other records still reference it`)},$=async(e,t,r,a,c)=>{for(const l of e.keys)j(e,l,t,a)&&(await(0,o.removeFromIndex)(e.path,l,(0,s.computeKeyValue)(l.fields,t),c,(0,i.keyValueType)(e,l)),await(0,n.updateIndex)(e.path,l,(0,s.computeKeyValue)(l.fields,r),c,(0,i.keyValueType)(e,l)))},O=(e,t,r)=>{for(const n of t.definition)if(!n.optional&&void 0===r[n.name])throw new Error(`Missing required field "${n.name}" for ${e}`)},E=(e,t)=>{const r=Object.assign({},e);for(const e of Object.keys(t))void 0===t[e]&&delete r[e];return r};e.updateEntity=async(e="",n={},o={})=>{const c=await(0,t.retrieveRecord)(e),d=c.keys.find((e=>"primary"===e.type));if(!d)throw new Error(`Cannot update "${e}" without a primary key`);(0,w.assertFieldsDefined)(e,c,Object.keys(n||{}),"set");const u=((e,t)=>{const r=Object.assign({},t);for(const t of e.definition)Object.prototype.hasOwnProperty.call(r,t.name)&&(r[t.name]=null===r[t.name]&&t.optional&&!t.nullable?void 0:(0,l.typeCheck)(t.type,r[t.name],t.nullable));return r})(c,n);for(const t of d.fields)if(Object.prototype.hasOwnProperty.call(u,t)&&void 0===u[t])throw new Error(`Cannot clear "${t}" on ${e}: it's part of the primary key`);const f=[];for(const t of o[e]||[]){const n=await g(c,d,(0,s.computeKeyValue)(d.fields,t));if(!n)throw new Error(`Could not find entry for ${e} where "${d.fields.join(", ")}" = ${(0,s.computeKeyValue)(d.fields,t)}`);if(f.some((e=>e.fileName===n)))continue;const o=await(0,r.retrieveFile)(`${c.path}/${n}`),i=E(Object.assign({},o,u),u);await b(e,c,o,i,u),await _(e,c,o,u),await x(e,c,d,o,u),O(e,c,i),f.push({fileName:n,oldData:o,newData:i})}((e,t,r,n)=>{for(const o of t.keys){if("primary"!==o.type&&"unique"!==o.type)continue;const c=[];for(const{oldData:l,newData:d}of r){if(!j(t,o,l,n)||o.fields.some((e=>null===d[e]||void 0===d[e])))continue;const r=(0,s.computeKeyValue)(o.fields,d);if(c.some((e=>(0,a.sameValue)((0,i.keyValueType)(t,o),e,r))))throw new Error(`Duplicate value for ${o.type} key "${o.fields.join(", ")}" on ${e}`);c.push(r)}}})(e,c,f,u),f.length&&await(0,v.discardPacked)(c.path);for(const{fileName:e,oldData:t,newData:r}of f)await $(c,t,r,u,e),await(0,m.writeJson)(`${c.path}/${e}`,r);return o[e]=f.map((({newData:e})=>e)),o}}}),ro=d({"dist/data/introspect/definitions/field.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.field=void 0;e.field=({name:e="",type:t="string",optional:r=!1,nullable:n=!1,useDefault:o=!1,defaultValue:s="",autoGenerate:i=!1}={})=>{const a={name:e,type:t,optional:r,autoGenerate:i};return n&&(a.nullable=!0),o&&(a.default=s),a}}}),no=d({"dist/data/introspect/definitions/keyReference.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyReference=void 0;e.keyReference=({fields:e=[],lookup:t=""}={})=>({fields:e,lookup:t})}}),oo=d({"dist/data/introspect/definitions/key.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.key=void 0,Ke(),nt();var t=no();e.key=({type:e="index",fields:r=[],lookup:n="",references:o=[]}={})=>{switch(e){case"primary":case"index":case"unique":o=[];break;case"multi":if(r.length<2)throw new Error("Multi key indicated with less than two fields");break;case"foreign":if(o.length<1)throw new Error("Foreign key must have one reference to an external record");break;default:throw new Error("Unrecognized key type; must be index, primary, unique, multi, or foreign")}const s={type:e,fields:r,lookup:n};return void 0!==o&&o.length>0&&(s.references=o.map(t.keyReference)),s}}}),so=d({"dist/data/introspect/definitions/record.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.record=void 0,Ke(),nt();var t=ro(),r=oo();e.record=({path:e="",definition:n=[],keys:o=[],entries:s=[]}={})=>({path:e,definition:n.map(t.field),keys:o.map(r.key),entries:s})}}),io=d({"dist/data/utilities/registerRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.registerRecord=void 0,It();var t=xn();e.registerRecord=async e=>{const r="__RECORDS.json";let n;try{n=await(0,t.readJson)(r)}catch(e){n={path:"",definition:[{name:"path",type:"string",optional:!1,autoGenerate:!1},{name:"definition",type:"object",optional:!1,autoGenerate:!1},{name:"keys",type:"array",optional:!1,autoGenerate:!1},{name:"entries",type:"array",optional:!1,autoGenerate:!1}],keys:[],entries:[]}}const o=`${e}.json`;return n.entries.includes(o)||n.entries.push(o),await(0,t.writeJson)(r,n),n}}}),ao=d({"dist/data/utilities/requireNode.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.requireNode=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr());e.requireNode=e=>{if(!r.isNode)throw new Error(`${e} only works in Node: in a browser, json-fs-query can only read the database (over fetch())`)}}}),co=d({"dist/data/introspect/create.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.create=e.assertValidDefinition=void 0,It(),Ke(),st(),kr(),St();var t=so(),r=io(),n=xn(),o=ao(),s=Rr(),i=["type","fields","lookup","references"],a=(e,t)=>{for(const r of t.definition)if(Object.prototype.hasOwnProperty.call(r,"default"))try{(0,s.typeCheck)(r.type,r.default,r.nullable)}catch(t){throw new Error(`Invalid default for field "${r.name}" of ${e}: ${t.message}`)}for(const r of t.keys){if(r.fields.length<1)throw new Error(`The ${r.type} key of ${e} must have at least one field`);for(const n of r.fields)if(!t.definition.some((e=>e.name===n)))throw new Error(`The ${r.type} key of ${e} names field "${n}", which isn't in the definition`)}const r=t.keys.find((e=>"primary"===e.type));for(const n of r?r.fields:[])if(t.definition.some((e=>e.name===n&&e.nullable)))throw new Error(`Primary key field "${n}" of ${e} can't be nullable`)};e.assertValidDefinition=a;e.create=async(e,s=[],c=[])=>{if((0,o.requireNode)("create()"),"__RECORDS"===e)return null;if((0,n.fileExists)(`${e}.json`))return null;((e,t)=>{for(const r of t)for(const t of Object.keys(r))if(!i.includes(t))throw new Error(`Unknown property "${t}" on ${r.type??"index"} key of ${e}; must be ${i.join(", ")}`)})(e,c);const l=(0,t.record)({path:e,definition:s,keys:c});a(e,l),await(0,n.makeDirectory)(),await(0,n.writeJson)(`${e}.json`,l),await(0,n.makeDirectory)(e);const d=l.keys.filter((e=>e.lookup));if(d.length){await(0,n.makeDirectory)(`__indexes/${e}`);for(const t of d)await(0,n.writeJson)(`__indexes/${e}/${t.lookup}`,[])}return await(0,r.registerRecord)(e),l}}}),lo=d({"dist/data/queries/createRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.createRecord=void 0,It(),Ke(),nt();var t=co(),r=En(),n=Tn(),o=On();e.createRecord=async(e,s)=>{if((0,o.recordExists)(e)){if(s.ifNotExists)return null;throw new Error(`Record "${e}" already exists`)}return await(async(e,t)=>{for(const s of t.keys){if("foreign"!==s.type)continue;const{entity:i,property:a}=(0,n.splitEntityProperty)(s.references[0].fields[0]);let c=t.definition.map((e=>e.name));if(i!==e){if(!(0,o.recordExists)(i))throw new Error(`Foreign key "${s.fields[0]}" references "${i}", which doesn't exist`);c=(await(0,r.retrieveRecord)(i)).definition.map((e=>e.name))}if(!c.includes(a))throw new Error(`Foreign key "${s.fields[0]}" references "${i}.${a}", which is not a field`)}})(e,s),(0,t.create)(e,s.definition,s.keys)}}}),uo=d({"dist/data/utilities/deregisterRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.deregisterRecord=void 0,Ke(),st();var t=xn();e.deregisterRecord=async e=>{const r="__RECORDS.json";let n;try{n=await(0,t.readJson)(r)}catch(e){return null}const o=`${e}.json`;return n.entries=n.entries.filter((e=>e!==o)),await(0,t.writeJson)(r,n),n}}}),fo=d({"dist/data/introspect/drop.js"(e){p(),Ce(),ze(),Ke(),et(),Object.defineProperty(e,"__esModule",{value:!0}),e.drop=void 0;var t=$n(),r=uo(),n=ao(),o=xn(),s=Cn();e.drop=async e=>{if((0,n.requireNode)("drop()"),"__RECORDS"===e)return null;const i=await(0,t.retrieveFile)(`${e}.json`);for(const e of i.entries)await(0,o.removeFile)(`${i.path}/${e}`);await(0,o.removeDirectory)(i.path),await(0,o.removeDirectory)(`__indexes/${i.path}`),await(0,s.discardPacked)(i.path),await(0,o.removeFile)(`${e}.json`),await(0,r.deregisterRecord)(e)}}}),po=d({"dist/data/queries/dropRecord.js"(e){p(),Ce(),ze(),et(),Object.defineProperty(e,"__esModule",{value:!0}),e.dropRecord=void 0,Ke(),St();var t=fo(),r=En(),n=On(),o=Tn(),s=Vr();e.dropRecord=async(e,i)=>{if(!(0,n.recordExists)(e)){if(i)return null;throw new Error(`Record "${e}" doesn't exist`)}await(async e=>{if(!(0,s.getSetting)("enforceForeignKeys",!0)||!(0,n.recordExists)("__RECORDS"))return;const t=await(0,r.retrieveRecord)("__RECORDS");for(const s of t.entries){const t=s.replace(/\.json$/,"");if(t!==e&&(0,n.recordExists)(t))for(const n of(await(0,r.retrieveRecord)(t)).keys)if("foreign"===n.type&&n.references&&n.references.some((t=>(0,o.splitEntityProperty)(t.fields[0]).entity===e)))throw new Error(`Cannot drop "${e}": ${t}.${n.fields.join(", ")} references it`)}})(e);const a=await(0,r.retrieveRecord)(e);return await(0,t.drop)(e),a}}}),yo=d({"dist/data/queries/describeRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.describeRecord=void 0;var t=En(),r=On();e.describeRecord=async e=>{if(!(0,r.recordExists)(e))throw new Error(`Record "${e}" doesn't exist`);const{path:n,definition:o,keys:s}=await(0,t.retrieveRecord)(e);return{path:n,definition:o,keys:s}}}}),ho=d({"dist/data/queries/showRecords.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.showRecords=void 0,Ke(),nt();var t=En(),r=On();e.showRecords=async()=>(0,r.recordExists)("__RECORDS")?(await(0,t.retrieveRecord)("__RECORDS")).entries.map((e=>e.replace(/\.json$/,""))):[]}}),mo=d({"dist/data/introspect/alter.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.alter=void 0,It(),kt(),Ke(),st(),kr(),nt(),St();var t=ro(),r=co(),n=Cr(),o=En(),s=Dn(),i=Fn(),a=Xn(),c=Cn(),l=ao(),d=ho(),u=to(),f=Rr(),y=xn(),h=async e=>(await(0,s.retrieveFiles)(e.entries.map((t=>`${e.path}/${t}`)),i.retrieveEntry)).map(((t,r)=>({fileName:e.entries[r],data:t}))),m=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),v=(e,t)=>e.keys.filter((e=>e.fields.includes(t))),w=async(e,t)=>{const r=[];for(const n of await(0,d.showRecords)()){const s=await(0,o.retrieveRecord)(n);for(const o of s.keys)"foreign"===o.type&&(o.references||[]).some((r=>r.fields.includes(`${e}.${t}`)))&&r.push({entity:n,record:s,key:o})}return r},g=async(e,t)=>{(0,r.assertValidDefinition)(e,t),await(0,y.writeJson)(`${e}.json`,t)},j=async(e,t,r,n,o)=>{if(r.length)if(await(0,c.discardPacked)(t.path),v(t,n).length&&"function"!=typeof o){if(!t.keys.some((e=>"primary"===e.type)))throw new Error(`Can't change "${n}" on ${e}'s rows: a key uses it, and rows are found by the primary key, which ${e} doesn't have`);await(0,u.updateEntity)(e,{[n]:void 0===o?null:o},{[e]:r.map((e=>e.data))})}else for(const e of r){const r=Object.assign({},e.data),s="function"==typeof o?o(e):o;void 0===s?delete r[n]:r[n]=s,await(0,y.writeJson)(`${t.path}/${e.fileName}`,r)}};e.alter=async(e,r)=>{if((0,l.requireNode)("alter"),"__RECORDS"===e)throw new Error("__RECORDS is reserved for the list of records");const s=[e,..."field"in r?[r.field?.name]:[],..."name"in r?[r.name]:[],..."to"in r?[r.to]:[]],i=s.findIndex((e=>"string"!=typeof e||!n.nameMatch.test(e)));if(-1!==i)throw new Error(`Invalid name ${JSON.stringify(s[i])??"undefined"} in alter: names use letters, digits, _ and - only`);const d=await(0,o.retrieveRecord)(e);switch(r.action){case"add":return(await(async(e,t,r)=>{if(t.definition.some((e=>e.name===r.name)))throw new Error(`Field "${r.name}" already exists on ${e}`);const n={...t,definition:[...t.definition,r]},o=await h(t);for(const t of o.filter((e=>m(e.data,r.name))))try{(0,f.typeCheck)(r.type,t.data[r.name],r.nullable)}catch(n){throw new Error(`Can't add "${r.name}" to ${e}: row ${t.fileName} already holds a value for it that doesn't fit (${n.message})`)}const s=o.filter((e=>!m(e.data,r.name))),i=m(r,"default");if(s.length&&!r.optional&&!i&&!r.autoGenerate)throw new Error(`Can't add required field "${r.name}" to ${e}: its ${s.length} row(s) have no value for it (give it a default, or make it optional)`);return await g(e,n),r.autoGenerate?await j(e,n,s,r.name,(()=>crypto.randomUUID())):i&&await j(e,n,s,r.name,r.default),n})(e,d,(0,t.field)(r.field))).definition;case"drop":return(await(async(e,t,r)=>{(0,a.assertFieldsDefined)(e,t,[r],"alter");const n=v(t,r)[0];if(n)throw new Error(`Can't drop "${r}" from ${e}: its ${(e=>`${e.type} key (${e.fields.join(", ")})`)(n)} uses it`);const o=(await w(e,r))[0];if(o)throw new Error(`Can't drop "${r}" from ${e}: ${o.entity}'s foreign key "${o.key.fields[0]}" references it`);const s={...t,definition:t.definition.filter((e=>e.name!==r))};return await g(e,s),await j(e,s,(await h(t)).filter((e=>m(e.data,r))),r,void 0),s})(e,d,r.name)).definition;case"rename":return(await(async(e,t,r,o)=>{if((0,a.assertFieldsDefined)(e,t,[r],"alter"),t.definition.some((e=>e.name===o)))throw new Error(`Can't rename "${r}" on ${e} to "${o}": a field of that name already exists`);const s=await w(e,r),i=t.keys.map((e=>{if(!e.fields.includes(r))return e;const t=e.fields.map((e=>e===r?o:e)),s=e.lookup&&e.lookup===(0,n.keyLookup)(e.type,e.fields)?(0,n.keyLookup)(e.type,t):e.lookup;return{...e,fields:t,lookup:s}})),l=t=>"foreign"!==t.type?t:{...t,references:(t.references||[]).map((t=>({...t,fields:t.fields.map((t=>t===`${e}.${r}`?`${e}.${o}`:t))})))},d={...t,definition:t.definition.map((e=>e.name===r?{...e,name:o}:e)),keys:i.map(l)};for(const[e,r]of t.keys.entries()){const n=i[e].lookup;r.lookup&&n!==r.lookup&&(0,y.fileExists)(`__indexes/${t.path}/${r.lookup}`)&&(await(0,y.writeJson)(`__indexes/${t.path}/${n}`,await(0,y.readJson)(`__indexes/${t.path}/${r.lookup}`)),await(0,y.removeFile)(`__indexes/${t.path}/${r.lookup}`))}await g(e,d);for(const t of s.filter((t=>t.entity!==e)))await(0,y.writeJson)(`${t.entity}.json`,{...t.record,keys:t.record.keys.map(l)});const u=(await h(t)).filter((e=>m(e.data,r)));u.length&&await(0,c.discardPacked)(t.path);for(const e of u){const n=Object.assign({},e.data);n[o]=n[r],delete n[r],await(0,y.writeJson)(`${t.path}/${e.fileName}`,n)}return d})(e,d,r.name,r.to)).definition;case"modify":return(await(async(e,t,r)=>{(0,a.assertFieldsDefined)(e,t,[r.name],"alter");const n=t.definition.find((e=>e.name===r.name));if(n.type!==r.type)throw new Error(`Can't change the type of "${r.name}" on ${e} (${n.type} to ${r.type}): only optional, null and default can change`);if(Boolean(n.autoGenerate)!==Boolean(r.autoGenerate))throw new Error(`Can't change whether "${r.name}" on ${e} is auto: only optional, null and default can change`);const o={...t,definition:t.definition.map((e=>e.name===r.name?r:e))},s=await h(t),i=m(r,"default"),c=r.nullable?[]:s.filter((e=>null===e.data[r.name])),l=r.optional?[]:s.filter((e=>!m(e.data,r.name))),d=r.optional?[]:c;if((l.length||d.length)&&!i)throw l.length?new Error(`Can't make "${r.name}" required on ${e}: ${l.length} row(s) have no value for it (give it a default to fill them in)`):new Error(`Can't make "${r.name}" not null on ${e}: ${d.length} row(s) hold null (give it a default to fill them in, or make it optional)`);return await g(e,o),i&&await j(e,o,[...l,...d],r.name,r.default),r.optional&&c.length&&await j(e,o,c,r.name,void 0),o})(e,d,(0,t.field)(r.field))).definition;default:throw new Error(`Unknown alter action: ${r.action}`)}}}}),vo=d({"dist/data/utilities/databaseLock.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.withDatabaseLock=e.browserCallsRunning=void 0,Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Vr(),o=xn();var s=new Map,i=0;e.browserCallsRunning=()=>i;e.withDatabaseLock=async e=>{if(!r.isNode){i++;try{return await(0,o.withReadCache)(e)}finally{i--}}const t=(0,n.resolveDatabasePath)((0,n.lockPath)()),a=(0,n.trackDatabaseCall)(),c=s.get(t)||Promise.resolve();let l;const d=new Promise((e=>{l=e})),u=c.then((()=>d));s.set(t,u),await c;try{return await(0,o.withReadCache)(e)}finally{a(),l(),s.get(t)===u&&s.delete(t)}}}}),wo=d({"dist/data/queries/databaseStatements.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.useDatabase=e.showDatabases=e.dropDatabase=e.createDatabase=void 0,It(),Ke(),st();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Vr(),o=ao(),s=vo(),i=xn();var a=async e=>(await(0,i.readDatabaseList)()).includes(e)||r.isNode&&(0,i.databaseFolderExists)(e);e.createDatabase=async(e,t=!1)=>{(0,o.requireNode)('"create database"');const r=await(0,i.readDatabaseList)();if(r.includes(e)||(0,i.databaseFolderExists)(e)){if(!t)throw new Error(r.includes(e)?`Database "${e}" already exists`:`Database "${e}" already exists as a folder that isn't listed: create database if not exists ${e} lists it`);return r.includes(e)||await(0,i.writeDatabaseList)([...r,e]),null}return await(0,i.writeDatabaseList)([...r,e]),await(0,i.makeDatabaseFolder)(e),e};e.dropDatabase=async(e,t=!1)=>{if((0,o.requireNode)('"drop database"'),!await a(e)){if(t)return null;throw new Error(`Database "${e}" doesn't exist`)}if((0,n.getSetting)("database",void 0)===e)throw new Error(`Can't drop the database in use ("${e}"): use another one first`);return await(0,i.writeDatabaseList)((await(0,i.readDatabaseList)()).filter((t=>t!==e))),await(0,i.removeDatabaseFolder)(e),e};e.useDatabase=async e=>{if(!r.isNode&&(0,s.browserCallsRunning)()>1)throw new Error(`Can't use "${e}" while other calls are running in this page: await them first, or pick the database with configure({ database }) between calls`);if(!await a(e))throw new Error(`Database "${e}" doesn't exist${r.isNode?"":" (or isn't listed in __DATABASES.json)"}`);return(0,n.switchDatabase)(e),e};e.showDatabases=async()=>(0,i.readDatabaseList)()}}),go=d({"dist/data/utilities/joinKey.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinKey=e.isKeyedType=void 0,It();var t=kn();e.joinKey=(e,r)=>{if(null!=r)return(0,t.compareAs)(e,r)};e.isKeyedType=e=>t.comparableTypes.includes(e)}}),jo=d({"dist/data/utilities/rowLookup.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.groupRows=e.firstPositions=e.RowLookups=void 0,Ke(),Ln(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=go(),r=(e,r,n)=>{const o=new Map;for(const s of e){const e=(0,t.joinKey)(n,s[r]);if(void 0===e)continue;const i=o.get(e);i?i.push(s):o.set(e,[s])}return o};e.groupRows=r;var n=(e,r,n)=>{const o=new Map;return e.forEach(((e,s)=>{const i=(0,t.joinKey)(n,e[r]);void 0===i||o.has(i)||o.set(i,s)})),o};e.firstPositions=n;e.RowLookups=class{constructor(e){this.rows=e,this.groups=new Map,this.positions=new Map}groupsBy(e,t){const n=`${e}\0${t}`;return this.groups.has(n)||this.groups.set(n,r(this.rows,e,t)),this.groups.get(n)}positionsBy(e,t){const r=`${e}\0${t}`;return this.positions.has(r)||this.positions.set(r,n(this.rows,e,t)),this.positions.get(r)}}}}),bo=d({"dist/data/utilities/semiJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.semiJoin=void 0,Ke(),Ln(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=An(),r=go(),n=jo();e.semiJoin=(e,o,s,i,a,c)=>{if("="===a&&(0,r.isKeyedType)(c)){if(o.lookups&&e.rows.length<o.rows.length){const t=o.lookups.positionsBy(i,c),n=[];return e.rows.forEach(((e,o)=>{const i=t.get((0,r.joinKey)(c,e[s]));void 0!==i&&n.push({row:e,position:i,index:o})})),n.sort(((e,t)=>e.position-t.position||e.index-t.index)).map((({row:e})=>e))}const t=e.lookups?e.lookups.groupsBy(s,c):(0,n.groupRows)(e.rows,s,c),a=[],l=new Set;for(const e of o.rows){const n=(0,r.joinKey)(c,e[i]);if(void 0===n||l.has(n))continue;l.add(n);const o=t.get(n);o&&a.push(...o)}return a}const l=[],d=new Set;for(const r of o.rows)for(const n of(0,t.where)(e.rows,{property:s,comparator:a,value:r[i],type:c}))d.has(n)||(d.add(n),l.push(n));return l}}}),_o=d({"dist/data/utilities/retrieveIndexes.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveIndexes=void 0;var t=$n(),r=En(),n=In();e.retrieveIndexes=async(e="",o=[],s={})=>{Object.prototype.hasOwnProperty.call(s,e)||(s[e]=await(0,r.retrieveRecord)(e));const i={};for(const r of o)for(const o of s[e].keys)(0,n.isSingleFieldKey)(o,r)&&(i[r]=(s[e].entries||[]).length?await(0,t.retrieveFile)(`__indexes/${e}/${o.lookup}`):[]);return i}}}),xo=d({"dist/data/utilities/joinBases.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinBases=void 0,Ke(),st(),Ln(),nt(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Zn(),r=En(),n=Fn(),o=_o(),s=go(),i=jo(),a=async(e,t,i,a,c)=>{const l=(await(0,o.retrieveIndexes)(e,[t],{}))[t];if(!l)return;const d=new Set(a.map((e=>(0,s.joinKey)(i,e[c]))).filter((e=>void 0!==e))),u=new Set;for(const e of l)d.has((0,s.joinKey)(i,e.value))&&e.record.forEach((e=>u.add(e)));const f=await(0,r.retrieveRecord)(e);return(0,n.retrieveEntryRows)(f,f.entries.filter((e=>u.has(e))))};e.joinBases=async(e,r,n,o,c)=>{const l=new Map,d=(e,t)=>l.set(e,{rows:t,lookups:new i.RowLookups(t)});d(e,n[e]),c&&d(r,n[r]);const u=async e=>(await(0,t.readEntity)(e,n))[e];for(const e of o){const t=[{name:e.entityA,property:e.propertyA,other:e.entityB,otherProperty:e.propertyB},{name:e.entityB,property:e.propertyB,other:e.entityA,otherProperty:e.propertyA}];for(const{name:r,property:n,other:o,otherProperty:i}of t){if(l.has(r))continue;d(r,("="===e.comparator&&e.typeA===e.typeB&&(0,s.isKeyedType)(e.typeA)&&l.has(o)?await a(r,n,e.typeA,l.get(o).rows,i):void 0)??await u(r))}}return l.has(r)||d(r,await u(r)),l}}}),$o=d({"dist/data/queries/joinEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinEntity=void 0,Ke(),nt(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=Zn(),r=En(),n=Tn(),o=Mn(),s=bo(),i=xo();e.joinEntity=async(e,a,c={},l=[],d=!1,u=!1)=>{if(d||(c=await(0,t.readEntity)(e,c)),!l.length)return c;const f=await(async e=>{const t=[];for(const{propertyA:s,comparator:i,propertyB:a}of e){const{entity:e,property:c}=(0,n.splitEntityProperty)(s),{entity:l,property:d}=(0,n.splitEntityProperty)(a);t.push({entityA:e,propertyA:c,typeA:(0,o.fieldType)(await(0,r.retrieveRecord)(e),c),comparator:i,entityB:l,propertyB:d,typeB:(0,o.fieldType)(await(0,r.retrieveRecord)(l),d)})}return t})(l);if(!c[e].length)return c;const p=await(0,i.joinBases)(e,a,c,f,u);for(const t of c[e]){const r=new Map(p);r.set(e,{rows:[t]});for(const e of f)r.set(e.entityA,{rows:(0,s.semiJoin)(r.get(e.entityA),r.get(e.entityB),e.propertyA,e.propertyB,e.comparator,e.typeA)}),r.set(e.entityB,{rows:(0,s.semiJoin)(r.get(e.entityB),r.get(e.entityA),e.propertyB,e.propertyA,e.comparator,e.typeB)});t[a]=r.get(a).rows.map((e=>structuredClone(e)))}return c}}}),Oo=d({"dist/data/utilities/mergeJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.mergeJoin=void 0,Ke(),nt();var t=Zn(),r=Tn(),n=An(),o=En(),s=Mn();e.mergeJoin=async(e="",i="",a={})=>{const{entity:c,property:l}=(0,r.splitEntityProperty)(e),{entity:d,property:u}=(0,r.splitEntityProperty)(i);a=await(0,t.readEntity)(c,a),a=await(0,t.readEntity)(d,a);const f=(0,s.fieldType)(await(0,o.retrieveRecord)(d),u);return a[c]=a[c].map((e=>{const t=(0,n.where)(a[d],{property:u,comparator:"=",value:e[l],type:f});if(!t.length)return e;const r=t[0];for(const t in r)t!==u&&(e[`${d}.${t}`]=r[t]);return e})),a}}}),Eo=d({"dist/data/utilities/reconcileJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.reconcileJoin=void 0,Ke(),Ln();var t=An();e.reconcileJoin=(e,r,n,o,s)=>{const i=e[r][n];return Object.prototype.hasOwnProperty.call(i,o)&&Array.isArray(i[o])&&i[o].forEach(((i,a)=>{const c=(0,t.where)(e[o],{property:s,comparator:"=",value:i[s]});c.length&&(e[r][n][o][a]=c[0])})),e}}}),ko=d({"dist/data/utilities/reconcileJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.reconcileJoins=void 0;var t=Tn(),r=Eo();e.reconcileJoins=(e,n,o)=>{const{entity:s,property:i}=(0,t.splitEntityProperty)(e),{entity:a,property:c}=(0,t.splitEntityProperty)(n);for(const e in o)for(const t in o[e])o=(0,r.reconcileJoin)(o,e,t,s,i),o=(0,r.reconcileJoin)(o,e,t,a,c);return o}}}),Po=d({"dist/data/queries/mergeJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.mergeJoins=void 0;var t=Oo(),r=ko();e.mergeJoins=async(e={},n=[])=>{if(!n.length)return e;for(const o of n)e=await(0,t.mergeJoin)(o.propertyA,o.propertyB,e),e=(0,r.reconcileJoins)(o.propertyA,o.propertyB,e);return e}}}),So=d({"dist/data/queries/sortBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.sortBy=void 0;var t=kn(),r=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)?null===e[t]?1:2:0;e.sortBy=(e=[],n=[])=>n.length?(e.sort(((e,o)=>{for(const s of n){const n=s.property,i=s.direction,a=r(e,n),c=r(o,n);if(a!==c)return"asc"===i?a-c:c-a;const l=(0,t.compareAs)(s.type,e[n]),d=(0,t.compareAs)(s.type,o[n]);if(l==d)continue;const u=l<d?-1:1;return"asc"===i?u:-1*u}return 0})),e):e}}),Mo=d({"dist/data/queries/groupBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.groupBy=void 0,kt(),Ke(),nt(),ht(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=e=>Array.isArray(e)?e.map(t):null!==e&&"object"==typeof e?Object.keys(e).sort().reduce(((r,n)=>(r[n]=t(e[n]),r)),{}):e,r=(e,r)=>{if(!Object.prototype.hasOwnProperty.call(e,r))return"missing";const n=e[r];return null!==n&&"object"==typeof n?`json:${JSON.stringify(t(n))}`:`${typeof n}:${String(n)}`},n=(e=[],t=[])=>{if(!t.length)return e;const[o,...s]=t,i=new Map;for(const t of e){const e=r(t,o);i.has(e)||i.set(e,"missing"===e?{field:o,missing:!0,rows:[]}:{field:o,value:t[o],rows:[]}),i.get(e).rows.push(t)}return[...i.values()].map((({rows:e,...t})=>s.length?{...t,groups:n(e,s)}:{...t,rows:e}))};e.groupBy=n}}),Ro=d({"dist/data/queries/limitOffset.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.limitOffset=void 0;e.limitOffset=(e=[],t,r)=>{if(void 0===t&&void 0===r)return e;const n=t??0,o="number"==typeof r?n+r:void 0;return e.slice(n,o)}}}),Do=d({"dist/data/queries/selectFields.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.selectFields=void 0,Ke(),nt(),ht();var t=(e,t,r)=>t.reduce(((t,{property:n,alias:o})=>(t[o||n]=((e,t,r)=>Object.prototype.hasOwnProperty.call(e,t)||void 0===r||!t.startsWith(`${r}.`)?e[t]:e[t.slice(r.length+1)])(e,n,r),t)),{}),r=(e,n,o)=>e.groups?{...e,groups:e.groups.map((e=>r(e,n,o)))}:{...e,rows:e.rows.map((e=>t(e,n,o)))};e.selectFields=(e=[],n=[],o=!1,s)=>n.length?o?e.map((e=>r(e,n,s))):e.map((e=>t(e,n,s))):e}}),Co=d({"dist/data/utilities/getConditionIndexedList.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.getConditionIndexedList=void 0,Ke(),qt(),Ln(),St(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Hn(),r=Tn(),n=En(),o=An(),s=Fn(),i=$n(),a=_o(),c=In(),l=Lt(),d=(e,n)=>(0,t.isEntityProperty)(e.property)?(0,r.splitEntityProperty)(e.property):{entity:n,property:e.property},u=async(e,t,r,s,i)=>{if(Object.prototype.hasOwnProperty.call(s,e)||(s[e]=await(0,n.retrieveRecord)(e)),s[e].keys.some((e=>(0,c.isSingleFieldKey)(e,t))))return i[e]=i[e]||{},Object.prototype.hasOwnProperty.call(i[e],t)||(i[e][t]=(await(0,a.retrieveIndexes)(e,[t],s))[t]),new Set((0,o.where)(i[e][t],{property:"value",comparator:r.comparator,value:r.value,type:r.type}).flatMap((e=>e.record)))},f=async(e,t,r,n)=>{if((0,l.isCondition)(e)){const{entity:o,property:s}=d(e,t);return o===t?await u(o,s,e,r,n):void 0}if("not"in e)return;if("or"in e){const o=new Set;for(const s of e.or){const e=await f(s,t,r,n);if(void 0===e)return;e.forEach((e=>o.add(e)))}return o}let o;for(const s of e.and){const e=await f(s,t,r,n);void 0!==e&&(o=void 0===o?e:new Set([...o].filter((t=>e.has(t)))))}return o};e.getConditionIndexedList=async(e,t,r,o=new Set)=>{const a={},c={};if(void 0!==e.where){const r=await f(e.where,e.entity,t,c);void 0!==r&&(a[e.entity]=r)}for(const r of(0,l.requiredConditions)(e.where)){const{entity:n,property:o}=d(r,e.entity);if(n===e.entity)continue;const s=await u(n,o,r,t,c);void 0!==s&&(a[n]=Object.prototype.hasOwnProperty.call(a,n)?new Set([...a[n]].filter((e=>s.has(e)))):s)}for(const e of Object.keys(a)){o.add(e);const c=t[e]||await(0,n.retrieveRecord)(e);r[e]=await(0,s.retrieveEntryRows)(c,[...a[e]],i.retrieveFile)}return e}}}),Fo=d({"dist/data/utilities/conditionEntities.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.conditionEntities=void 0,Ke(),st(),qt(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Hn(),r=Tn(),n=Lt();e.conditionEntities=e=>{const o=e.entity,s=e.joinClauses.length?e.joinEntity:void 0,i=new Set([o,s]),a=new Set(e.mergeJoins.filter((e=>i.has((0,r.splitEntityProperty)(e.propertyA).entity))).map((e=>(0,r.splitEntityProperty)(e.propertyB).entity))),c=new Set(e.joinClauses.flatMap((e=>[e.propertyA,e.propertyB].map((e=>(0,r.splitEntityProperty)(e).entity)))).filter((e=>!i.has(e)&&!a.has(e)))),l="update"===e.command||"delete"===e.command;let d=!1;for(const i of(0,n.conditionsOf)(e.where)){if(!(0,t.isEntityProperty)(i.property))continue;const{entity:n,property:u}=(0,r.splitEntityProperty)(i.property);if(n===o){i.property=u;continue}if(l)throw new Error(`${e.command} can only use conditions on ${o}'s own fields, not ${i.property}`);if(n===s){d=!0;continue}if(a.has(n))continue;if(c.has(n))throw new Error(`${n} only links ${o} to ${s}: a condition can't use its fields (${i.property})`);const f=[o,s,...a].filter((e=>void 0!==e)).join(", ");throw new Error(`${n} is not part of this query (${i.property}): conditions can use the fields of ${f}`)}return d}}}),Ao=d({"dist/data/utilities/runQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.runQuery=void 0,It(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Bn(),r=Yn(),n=Zn(),o=to(),s=lo(),i=po(),a=yo(),c=mo(),l=wo(),d=ho(),u=$o(),f=Po(),y=An(),h=So(),m=Mo(),v=Ro(),w=Do(),g=En(),j=Co(),b=Hn(),_=Tn(),x=Mn(),$=Lt(),O=Fo(),E=ao(),k=Xn();e.runQuery=async e=>{const p=void 0!==e.where&&(0,O.conditionEntities)(e);switch(["insert","update","delete","create","drop","alter"].includes(e.command)&&(0,E.requireNode)(`"${e.command}"`),e.command){case"create":return{[e.entity]:await(0,s.createRecord)(e.entity,e.create)};case"drop":return{[e.entity]:await(0,i.dropRecord)(e.entity,e.ifExists)};case"describe":return{[e.entity]:await(0,a.describeRecord)(e.entity)};case"alter":return{[e.entity]:await(0,c.alter)(e.entity,e.alter)};case"create database":return{[e.entity]:await(0,l.createDatabase)(e.entity,e.ifNotExists)};case"drop database":return{[e.entity]:await(0,l.dropDatabase)(e.entity,e.ifExists)};case"use":return{[e.entity]:await(0,l.useDatabase)(e.entity)};case"show databases":return{[e.entity]:await(0,l.showDatabases)()};case"show":return{[e.entity]:await(0,d.showRecords)()}}const P={[e.entity]:await(0,g.retrieveRecord)(e.entity)};void 0!==e.joinEntity&&(P[e.joinEntity]=await(0,g.retrieveRecord)(e.joinEntity)),await(0,k.assertKnownFields)(e,P),await(async(e,t)=>{for(const r of[...(0,$.conditionsOf)(e.where),...e.sortClauses]){let n=e.entity,o=r.property;(0,b.isEntityProperty)(o)&&({entity:n,property:o}=(0,_.splitEntityProperty)(o)),Object.prototype.hasOwnProperty.call(t,n)||(t[n]=await(0,g.retrieveRecord)(n)),r.type=(0,x.fieldType)(t[n],o)}})(e,P);let S={[e.entity]:[]};const M=new Set;e=await(0,j.getConditionIndexedList)(e,P,S,M);const R=M.has(e.entity);switch("delete"!==e.command&&"update"!==e.command||(R||(S=await(0,n.readEntity)(e.entity,S)),S[e.entity]=(0,y.whereTree)(S[e.entity],e.where)),e.command){case"delete":S=await(0,t.deleteEntity)(e.entity,S);break;case"insert":S=await(0,r.insertEntity)(e.entity,e.insertValues,S);break;case"read":R||(S=await(0,n.readEntity)(e.entity,S));break;case"update":S=await(0,o.updateEntity)(e.entity,e.updateValues,S);break;default:throw new Error(`Unknown command: ${e.command}`)}return S=await(0,u.joinEntity)(e.entity,e.joinEntity,S,e.joinClauses,R,M.has(e.joinEntity)),S=await(0,f.mergeJoins)(S,e.mergeJoins),"delete"!==e.command&&"update"!==e.command&&(S[e.entity]=(0,y.whereTree)(S[e.entity],e.where,p?e.joinEntity:void 0)),S[e.entity]=(0,h.sortBy)(S[e.entity],e.sortClauses),S[e.entity]=(0,m.groupBy)(S[e.entity],e.groupBy),S[e.entity]=(0,v.limitOffset)(S[e.entity],e.offset,e.limit),S[e.entity]=(0,w.selectFields)(S[e.entity],e.selectClauses,Boolean(e.groupBy?.length),e.entity),S}}}),To=d({"dist/data/queries/query.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.query=void 0;var t=Nr(),r=Ao(),n=vo(),o=xn();e.query=async(e="")=>{const s=(0,t.parser)(e);return(0,n.withDatabaseLock)((async()=>{const e=[];for(const t of s){const n=await(0,o.withWriteSet)((()=>(0,r.runQuery)(t)));e.push(n[t.entity])}return e}))}}}),Io=d({"dist/data/queries/quote.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.quote=void 0;e.quote=(e,t="'")=>`${t}${String(e).replace(/\\/g,"\\\\").split(t).join(`\\${t}`)}${t}`}}),No=d({"dist/data/queries/queryStatus.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.queryStatus=void 0;var t=mt();e.queryStatus=(e="")=>{const{end:r,closed:n,terminated:o}=(0,t.scanQuery)(e);return o?{complete:!0,waitingFor:""}:r.quote?{complete:!1,waitingFor:r.quote}:r.blockComment?{complete:!1,waitingFor:"/*"}:n?{complete:!1,waitingFor:";"}:{complete:!1,waitingFor:r.brackets[r.brackets.length-1]}}}}),Jo=d({"dist/data/introspect/formatDatabase.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.formatDatabase=void 0,Ke(),st();var t=xn(),r=Vr(),n=ao();e.formatDatabase=async(e=(0,r.getSetting)("format","compact"))=>{if((0,n.requireNode)("formatDatabase"),"compact"!==e&&"pretty"!==e)throw new Error(`Unknown format "${e}": use 'compact' or 'pretty'`);const o=(await(0,t.listFiles)()).filter((e=>e.endsWith(".json"))),s=[];for(const r of o){const n=await(0,t.readText)(r);let o;try{o=JSON.parse(n)}catch(e){throw new Error(`Could not format ${r}: ${e.message}`)}(0,t.jsonText)(o,e)!==n&&s.push({path:r,content:o})}for(const{path:r,content:n}of s)await(0,t.writeJson)(r,n,e);return{files:o.length,rewritten:s.length}}}}),qo=d({"dist/data/introspect/packDatabase.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.packDatabase=e.checkPacked=void 0,kt(),Ke(),st(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=xn(),r=En(),n=Dn(),o=Fn(),s=Cn(),i=ho(),a=ao(),c=async e=>{const i=await(0,r.retrieveRecord)(e),a=i.entries||[],c=await(0,n.retrieveFiles)(a.map((e=>`${i.path}/${e}`)),o.retrieveEntry),l={entries:a,rows:c};return{path:(0,s.packedPath)(i.path),text:(0,t.jsonText)(l,"compact"),rows:a.length}},l=async e=>{const r=new Set(e.map((e=>(0,s.packedPath)(e))));return(await(0,t.listFiles)("__packed")).filter((e=>!r.has(e)))};e.packDatabase=async()=>{(0,a.requireNode)("packDatabase");const e=await(0,i.showRecords)();let r=0;for(const n of e){const e=await c(n);await(0,t.makeDirectory)(e.path.slice(0,e.path.lastIndexOf("/"))),await(0,t.writeJson)(e.path,JSON.parse(e.text),"compact"),r+=e.rows}for(const r of await l(e))await(0,t.removeFile)(r);return{records:e.length,rows:r}};e.checkPacked=async()=>{(0,a.requireNode)("checkPacked");const e=await(0,i.showRecords)(),r=[];for(const n of e){const e=await c(n),o=(0,t.fileExists)(e.path)?await(0,t.readText)(e.path).catch((()=>{})):void 0;void 0!==o&&JSON.stringify(JSON.parse(o))===e.text||r.push(n)}return{stale:r,orphaned:await l(e)}}}}),Lo=d({"dist/data/introspect/index.js"(e){p(),Ce(),ze(),Ke(),et(),Object.defineProperty(e,"__esModule",{value:!0}),e.packDatabase=e.formatDatabase=e.drop=e.describe=e.create=e.checkPacked=e.alter=void 0;var t=co(),r=fo(),n=Rn(),o=Jo(),s=mo(),i=qo(),a=vo(),c=xn();e.create=(...e)=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,t.create)(...e)))));e.drop=(...e)=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,r.drop)(...e)))));e.alter=(...e)=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,s.alter)(...e)))));e.describe=(...e)=>(0,a.withDatabaseLock)((()=>(0,n.describe)(...e)));e.formatDatabase=(...e)=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,o.formatDatabase)(...e)))));e.packDatabase=()=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,i.packDatabase)()))));e.checkPacked=()=>(0,a.withDatabaseLock)((()=>(0,i.checkPacked)()))}});return d({"dist/index.js"(e){p(),Ce(),ze(),Ke(),et(),Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"alter",{enumerable:!0,get:function(){return o.alter}}),Object.defineProperty(e,"checkPacked",{enumerable:!0,get:function(){return o.checkPacked}}),Object.defineProperty(e,"configure",{enumerable:!0,get:function(){return s.configure}}),Object.defineProperty(e,"create",{enumerable:!0,get:function(){return o.create}}),Object.defineProperty(e,"describe",{enumerable:!0,get:function(){return o.describe}}),Object.defineProperty(e,"drop",{enumerable:!0,get:function(){return o.drop}}),Object.defineProperty(e,"formatDatabase",{enumerable:!0,get:function(){return o.formatDatabase}}),Object.defineProperty(e,"packDatabase",{enumerable:!0,get:function(){return o.packDatabase}}),Object.defineProperty(e,"query",{enumerable:!0,get:function(){return t.query}}),Object.defineProperty(e,"queryStatus",{enumerable:!0,get:function(){return n.queryStatus}}),Object.defineProperty(e,"quote",{enumerable:!0,get:function(){return r.quote}});var t=To(),r=Io(),n=No(),o=Lo(),s=Vr()}})()})();"object"==typeof module&&module&&module.exports&&(module.exports=jsonFsQuery);
1
+ "use strict";var jsonFsQuery=(()=>{var e,t,r,n,o=Object.create,s=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,c=Object.getPrototypeOf,l=Object.prototype.hasOwnProperty,d=(e,t)=>function(){try{return t||(0,e[a(e)[0]])((t={exports:{}}).exports,t),t.exports}catch(e){throw t=0,e}},u=(e,t,r)=>(r=null!=e?o(c(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of a(t))l.call(e,o)||o===r||s(e,o,{get:()=>t[o],enumerable:!(n=i(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:s(r,"default",{value:e,enumerable:!0}),e)),f=d({"node_modules/process/browser.js"(e,t){p();var r,n,o=t.exports={};function s(){throw new Error("setTimeout has not been defined")}function i(){throw new Error("clearTimeout has not been defined")}function a(e){if(r===setTimeout)return setTimeout(e,0);if((r===s||!r)&&setTimeout)return r=setTimeout,setTimeout(e,0);try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}!function(){try{r="function"==typeof setTimeout?setTimeout:s}catch(e){r=s}try{n="function"==typeof clearTimeout?clearTimeout:i}catch(e){n=i}}();var c,l=[],d=!1,u=-1;function f(){d&&c&&(d=!1,c.length?l=c.concat(l):u=-1,l.length&&y())}function y(){if(!d){var e=a(f);d=!0;for(var t=l.length;t;){for(c=l,l=[];++u<t;)c&&c[u].run();u=-1,t=l.length}c=null,d=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===i||!n)&&clearTimeout)return n=clearTimeout,clearTimeout(e);try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}(e)}}function h(e,t){this.fun=e,this.array=t}function m(){}o.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];l.push(new h(e,t)),1!==l.length||d||a(y)},h.prototype.run=function(){this.fun.apply(null,this.array)},o.title="browser",o.browser=!0,o.env={},o.argv=[],o.version="",o.versions={},o.on=m,o.addListener=m,o.once=m,o.off=m,o.removeListener=m,o.removeAllListeners=m,o.emit=m,o.prependListener=m,o.prependOnceListener=m,o.listeners=function(e){return[]},o.binding=function(e){throw new Error("process.binding is not supported")},o.cwd=function(){return"/"},o.chdir=function(e){throw new Error("process.chdir is not supported")},o.umask=function(){return 0}}}),p=(t={"js-build-tools-inject:process"(){e=u(f())}},function(){if(n)throw n[0];try{return t&&(r=(0,t[a(t)[0]])(t=0)),r}catch(e){throw n=[e],e}}),y=d({"node_modules/core-js/internals/global-this.js"(e,t){p();var r=function(e){return e&&e.Math===Math&&e};t.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof globalThis&&globalThis)||r("object"==typeof e&&e)||function(){return this}()||Function("return this")()}}),h=d({"node_modules/core-js/internals/fails.js"(e,t){p(),t.exports=function(e){try{return!!e()}catch(e){return!0}}}}),m=d({"node_modules/core-js/internals/descriptors.js"(e,t){p();var r=h();t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))}}),v=d({"node_modules/core-js/internals/function-bind-native.js"(e,t){p();var r=h();t.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))}}),w=d({"node_modules/core-js/internals/function-call.js"(e,t){p();var r=v(),n=Function.prototype.call;t.exports=r?n.bind(n):function(){return n.apply(n,arguments)}}}),g=d({"node_modules/core-js/internals/object-property-is-enumerable.js"(e){p();var t={}.propertyIsEnumerable,r=Object.getOwnPropertyDescriptor,n=r&&!t.call({1:2},1);e.f=n?function(e){var t=r(this,e);return!!t&&t.enumerable}:t}}),j=d({"node_modules/core-js/internals/create-property-descriptor.js"(e,t){p(),t.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}}}),b=d({"node_modules/core-js/internals/function-uncurry-this.js"(e,t){p();var r=v(),n=Function.prototype,o=n.call,s=r&&n.bind.bind(o,o);t.exports=r?s:function(e){return function(){return o.apply(e,arguments)}}}}),_=d({"node_modules/core-js/internals/classof-raw.js"(e,t){p();var r=b(),n=r({}.toString),o=r("".slice);t.exports=function(e){return o(n(e),8,-1)}}}),x=d({"node_modules/core-js/internals/indexed-object.js"(e,t){p();var r=b(),n=h(),o=_(),s=Object,i=r("".split);t.exports=n((function(){return!s("z").propertyIsEnumerable(0)}))?function(e){return"String"===o(e)?i(e,""):s(e)}:s}}),O=d({"node_modules/core-js/internals/is-null-or-undefined.js"(e,t){p(),t.exports=function(e){return null==e}}}),$=d({"node_modules/core-js/internals/require-object-coercible.js"(e,t){p();var r=O(),n=TypeError;t.exports=function(e){if(r(e))throw new n("Can't call method on "+e);return e}}}),E=d({"node_modules/core-js/internals/to-indexed-object.js"(e,t){p();var r=x(),n=$();t.exports=function(e){return r(n(e))}}}),k=d({"node_modules/core-js/internals/is-callable.js"(e,t){p();var r="object"==typeof document&&document.all;t.exports=void 0===r&&void 0!==r?function(e){return"function"==typeof e||e===r}:function(e){return"function"==typeof e}}}),P=d({"node_modules/core-js/internals/is-object.js"(e,t){p();var r=k();t.exports=function(e){return"object"==typeof e?null!==e:r(e)}}}),S=d({"node_modules/core-js/internals/get-built-in.js"(e,t){p();var r=y(),n=k();t.exports=function(e,t){return arguments.length<2?(o=r[e],n(o)?o:void 0):r[e]&&r[e][t];var o}}}),M=d({"node_modules/core-js/internals/object-is-prototype-of.js"(e,t){p();var r=b();t.exports=r({}.isPrototypeOf)}}),R=d({"node_modules/core-js/internals/environment-user-agent.js"(e,t){p();var r=y().navigator,n=r&&r.userAgent;t.exports=n?String(n):""}}),D=d({"node_modules/core-js/internals/environment-v8-version.js"(e,t){p();var r,n,o=y(),s=R(),i=o.process,a=o.Deno,c=i&&i.versions||a&&a.version,l=c&&c.v8;l&&(n=(r=l.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&s&&(!(r=s.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=s.match(/Chrome\/(\d+)/))&&(n=+r[1]),t.exports=n}}),C=d({"node_modules/core-js/internals/symbol-constructor-detection.js"(e,t){p();var r=D(),n=h(),o=y().String;t.exports=!!Object.getOwnPropertySymbols&&!n((function(){var e=Symbol("symbol detection");return!o(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))}}),A=d({"node_modules/core-js/internals/use-symbol-as-uid.js"(e,t){p();var r=C();t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}}),F=d({"node_modules/core-js/internals/is-symbol.js"(e,t){p();var r=S(),n=k(),o=M(),s=A(),i=Object;t.exports=s?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return n(t)&&o(t.prototype,i(e))}}}),T=d({"node_modules/core-js/internals/try-to-string.js"(e,t){p();var r=String;t.exports=function(e){try{return r(e)}catch(e){return"Object"}}}}),N=d({"node_modules/core-js/internals/a-callable.js"(e,t){p();var r=k(),n=T(),o=TypeError;t.exports=function(e){if(r(e))return e;throw new o(n(e)+" is not a function")}}}),I=d({"node_modules/core-js/internals/get-method.js"(e,t){p();var r=N(),n=O();t.exports=function(e,t){var o=e[t];return n(o)?void 0:r(o)}}}),J=d({"node_modules/core-js/internals/ordinary-to-primitive.js"(e,t){p();var r=w(),n=k(),o=P(),s=TypeError;t.exports=function(e,t){var i,a;if("string"===t&&n(i=e.toString)&&!o(a=r(i,e)))return a;if(n(i=e.valueOf)&&!o(a=r(i,e)))return a;if("string"!==t&&n(i=e.toString)&&!o(a=r(i,e)))return a;throw new s("Can't convert object to primitive value")}}}),q=d({"node_modules/core-js/internals/is-pure.js"(e,t){p(),t.exports=!1}}),L=d({"node_modules/core-js/internals/define-global-property.js"(e,t){p();var r=y(),n=Object.defineProperty;t.exports=function(e,t){try{n(r,e,{value:t,configurable:!0,writable:!0})}catch(n){r[e]=t}return t}}}),z=d({"node_modules/core-js/internals/shared-store.js"(e,t){p();var r=q(),n=y(),o=L(),s="__core-js_shared__",i=t.exports=n[s]||o(s,{});(i.versions||(i.versions=[])).push({version:"3.51.0",mode:r?"pure":"global",copyright:"© 2013–2025 Denis Pushkarev (zloirock.ru), 2025–2026 CoreJS Company (core-js.io). All rights reserved.",license:"https://github.com/zloirock/core-js/blob/v3.51.0/LICENSE",source:"https://github.com/zloirock/core-js"})}}),B=d({"node_modules/core-js/internals/shared.js"(e,t){p();var r=z(),n=Object.create||Object;t.exports=function(e,t){return r[e]||(r[e]=t||n(null))}}}),V=d({"node_modules/core-js/internals/to-object.js"(e,t){p();var r=$(),n=Object;t.exports=function(e){return n(r(e))}}}),W=d({"node_modules/core-js/internals/has-own-property.js"(e,t){p();var r=b(),n=V(),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(e,t){return o(n(e),t)}}}),U=d({"node_modules/core-js/internals/uid.js"(e,t){p();var r=b(),n=0,o=Math.random(),s=r(1.1.toString);t.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+s(++n+o,36)}}}),K=d({"node_modules/core-js/internals/well-known-symbol.js"(e,t){p();var r=y(),n=B(),o=W(),s=U(),i=C(),a=A(),c=r.Symbol,l=n("wks"),d=a?c.for||c:c&&c.withoutSetter||s;t.exports=function(e){return o(l,e)||(l[e]=i&&o(c,e)?c[e]:d("Symbol."+e)),l[e]}}}),Q=d({"node_modules/core-js/internals/to-primitive.js"(e,t){p();var r=w(),n=P(),o=F(),s=I(),i=J(),a=K(),c=TypeError,l=a("toPrimitive");t.exports=function(e,t){if(!n(e)||o(e))return e;var a,d=s(e,l);if(d){if(void 0===t&&(t="default"),a=r(d,e,t),!n(a)||o(a))return a;throw new c("Can't convert object to primitive value")}return void 0===t&&(t="number"),i(e,t)}}}),G=d({"node_modules/core-js/internals/to-property-key.js"(e,t){p();var r=Q(),n=F();t.exports=function(e){var t=r(e,"string");return n(t)?t:t+""}}}),H=d({"node_modules/core-js/internals/document-create-element.js"(e,t){p();var r=y(),n=P(),o=r.document,s=n(o)&&n(o.createElement);t.exports=function(e){return s?o.createElement(e):{}}}}),X=d({"node_modules/core-js/internals/ie8-dom-define.js"(e,t){p();var r=m(),n=h(),o=H();t.exports=!r&&!n((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))}}),Y=d({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(e){p();var t=m(),r=w(),n=g(),o=j(),s=E(),i=G(),a=W(),c=X(),l=Object.getOwnPropertyDescriptor;e.f=t?l:function(e,t){if(e=s(e),t=i(t),c)try{return l(e,t)}catch(e){}if(a(e,t))return o(!r(n.f,e,t),e[t])}}}),Z=d({"node_modules/core-js/internals/v8-prototype-define-bug.js"(e,t){p();var r=m(),n=h();t.exports=r&&n((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))}}),ee=d({"node_modules/core-js/internals/an-object.js"(e,t){p();var r=P(),n=String,o=TypeError;t.exports=function(e){if(r(e))return e;throw new o(n(e)+" is not an object")}}}),te=d({"node_modules/core-js/internals/object-define-property.js"(e){p();var t=m(),r=X(),n=Z(),o=ee(),s=G(),i=TypeError,a=Object.defineProperty,c=Object.getOwnPropertyDescriptor,l="enumerable",d="configurable",u="writable";e.f=t?n?function(e,t,r){if(o(e),t=s(t),o(r),"function"==typeof e&&"prototype"===t&&"value"in r&&u in r&&!r[u]){var n=c(e,t);n&&n[u]&&(e[t]=r.value,r={configurable:d in r?r[d]:n[d],enumerable:l in r?r[l]:n[l],writable:!1})}return a(e,t,r)}:a:function(e,t,n){if(o(e),t=s(t),o(n),r)try{return a(e,t,n)}catch(e){}if("get"in n||"set"in n)throw new i("Accessors not supported");return"value"in n&&(e[t]=n.value),e}}}),re=d({"node_modules/core-js/internals/create-non-enumerable-property.js"(e,t){p();var r=m(),n=te(),o=j();t.exports=r?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}}}),ne=d({"node_modules/core-js/internals/function-name.js"(e,t){p();var r=m(),n=W(),o=Function.prototype,s=r&&Object.getOwnPropertyDescriptor,i=n(o,"name"),a=i&&"something"===function(){}.name,c=i&&(!r||r&&s(o,"name").configurable);t.exports={EXISTS:i,PROPER:a,CONFIGURABLE:c}}}),oe=d({"node_modules/core-js/internals/inspect-source.js"(e,t){p();var r=b(),n=k(),o=z(),s=r(Function.toString);n(o.inspectSource)||(o.inspectSource=function(e){return s(e)}),t.exports=o.inspectSource}}),se=d({"node_modules/core-js/internals/weak-map-basic-detection.js"(e,t){p();var r=y(),n=k(),o=r.WeakMap;t.exports=n(o)&&/native code/.test(String(o))}}),ie=d({"node_modules/core-js/internals/shared-key.js"(e,t){p();var r=B(),n=U(),o=r("keys");t.exports=function(e){return o[e]||(o[e]=n(e))}}}),ae=d({"node_modules/core-js/internals/hidden-keys.js"(e,t){p(),t.exports={}}}),ce=d({"node_modules/core-js/internals/internal-state.js"(e,t){p();var r,n,o,s,i,a=se(),c=y(),l=P(),d=re(),u=W(),f=z(),h=ie(),m=ae(),v="Object already initialized",w=c.TypeError,g=c.WeakMap;a||f.state?((s=f.state||(f.state=new g)).get=s.get,s.has=s.has,s.set=s.set,r=function(e,t){if(s.has(e))throw new w(v);return t.facade=e,s.set(e,t),t},n=function(e){return s.get(e)||{}},o=function(e){return s.has(e)}):(m[i=h("state")]=!0,r=function(e,t){if(u(e,i))throw new w(v);return t.facade=e,d(e,i,t),t},n=function(e){return u(e,i)?e[i]:{}},o=function(e){return u(e,i)}),t.exports={set:r,get:n,has:o,enforce:function(e){return o(e)?n(e):r(e,{})},getterFor:function(e){return function(t){var r;if(!l(t)||(r=n(t)).type!==e)throw new w("Incompatible receiver, "+e+" required");return r}}}}}),le=d({"node_modules/core-js/internals/make-built-in.js"(e,t){p();var r=b(),n=h(),o=k(),s=W(),i=m(),a=ne().CONFIGURABLE,c=oe(),l=ce(),d=l.enforce,u=l.get,f=String,y=Object.defineProperty,v=r("".slice),w=r("".replace),g=r([].join),j=i&&!n((function(){return 8!==y((function(){}),"length",{value:8}).length})),_=String(String).split("String"),x=t.exports=function(e,t,r){"Symbol("===v(f(t),0,7)&&(t="["+w(f(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!s(e,"name")||a&&e.name!==t)&&(i?y(e,"name",{value:t,configurable:!0}):e.name=t),j&&r&&s(r,"arity")&&e.length!==r.arity&&y(e,"length",{value:r.arity});try{r&&s(r,"constructor")&&r.constructor?i&&y(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=d(e);return s(n,"source")||(n.source=g(_,"string"==typeof t?t:"")),e};Function.prototype.toString=x((function(){return o(this)&&u(this).source||c(this)}),"toString")}}),de=d({"node_modules/core-js/internals/define-built-in.js"(e,t){p();var r=k(),n=te(),o=le(),s=L();t.exports=function(e,t,i,a){a||(a={});var c=a.enumerable,l=void 0!==a.name?a.name:t;if(r(i)&&o(i,l,a),a.global)c?e[t]=i:s(t,i);else{try{a.unsafe?e[t]&&(c=!0):delete e[t]}catch(e){}c?e[t]=i:n.f(e,t,{value:i,enumerable:!1,configurable:!a.nonConfigurable,writable:!a.nonWritable})}return e}}}),ue=d({"node_modules/core-js/internals/math-trunc.js"(e,t){p();var r=Math.ceil,n=Math.floor;t.exports=Math.trunc||function(e){var t=+e;return(t>0?n:r)(t)}}}),fe=d({"node_modules/core-js/internals/to-integer-or-infinity.js"(e,t){p();var r=ue();t.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}}}),pe=d({"node_modules/core-js/internals/to-absolute-index.js"(e,t){p();var r=fe(),n=Math.max,o=Math.min;t.exports=function(e,t){var s=r(e);return s<0?n(s+t,0):o(s,t)}}}),ye=d({"node_modules/core-js/internals/to-length.js"(e,t){p();var r=fe(),n=Math.min;t.exports=function(e){var t=r(e);return t>0?n(t,9007199254740991):0}}}),he=d({"node_modules/core-js/internals/length-of-array-like.js"(e,t){p();var r=ye();t.exports=function(e){return r(e.length)}}}),me=d({"node_modules/core-js/internals/array-includes.js"(e,t){p();var r=E(),n=pe(),o=he(),s=function(e){return function(t,s,i){var a=r(t),c=o(a);if(0===c)return!e&&-1;var l,d=n(i,c);if(e&&s!=s){for(;c>d;)if((l=a[d++])!=l)return!0}else for(;c>d;d++)if((e||d in a)&&a[d]===s)return e||d||0;return!e&&-1}};t.exports={includes:s(!0),indexOf:s(!1)}}}),ve=d({"node_modules/core-js/internals/object-keys-internal.js"(e,t){p();var r=b(),n=W(),o=E(),s=me().indexOf,i=ae(),a=r([].push);t.exports=function(e,t){var r,c=o(e),l=0,d=[];for(r in c)!n(i,r)&&n(c,r)&&a(d,r);for(;t.length>l;)n(c,r=t[l++])&&(~s(d,r)||a(d,r));return d}}}),we=d({"node_modules/core-js/internals/enum-bug-keys.js"(e,t){p(),t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}}),ge=d({"node_modules/core-js/internals/object-get-own-property-names.js"(e){p();var t=ve(),r=we().concat("length","prototype");e.f=Object.getOwnPropertyNames||function(e){return t(e,r)}}}),je=d({"node_modules/core-js/internals/object-get-own-property-symbols.js"(e){p(),e.f=Object.getOwnPropertySymbols}}),be=d({"node_modules/core-js/internals/own-keys.js"(e,t){p();var r=S(),n=b(),o=ge(),s=je(),i=ee(),a=n([].concat);t.exports=r("Reflect","ownKeys")||function(e){var t=o.f(i(e)),r=s.f;return r?a(t,r(e)):t}}}),_e=d({"node_modules/core-js/internals/copy-constructor-properties.js"(e,t){p();var r=W(),n=be(),o=Y(),s=te();t.exports=function(e,t,i){for(var a=n(t),c=s.f,l=o.f,d=0;d<a.length;d++){var u=a[d];r(e,u)||i&&r(i,u)||c(e,u,l(t,u))}}}}),xe=d({"node_modules/core-js/internals/is-forced.js"(e,t){p();var r=h(),n=k(),o=/#|\.prototype\./,s=function(e,t){var o=a[i(e)];return o===l||o!==c&&(n(t)?r(t):!!t)},i=s.normalize=function(e){return String(e).replace(o,".").toLowerCase()},a=s.data={},c=s.NATIVE="N",l=s.POLYFILL="P";t.exports=s}}),Oe=d({"node_modules/core-js/internals/export.js"(e,t){p();var r=y(),n=Y().f,o=re(),s=de(),i=L(),a=_e(),c=xe();t.exports=function(e,t){var l,d,u,f,p,y=e.target,h=e.global,m=e.stat;if(l=h?r:m?r[y]||i(y,{}):r[y]&&r[y].prototype)for(d in t){if(f=t[d],u=e.dontCallGetSet?(p=n(l,d))&&p.value:l[d],!c(h?d:y+(m?".":"#")+d,e.forced)&&void 0!==u){if(typeof f==typeof u)continue;a(f,u)}(e.sham||u&&u.sham)&&o(f,"sham",!0),s(l,d,f,e)}}}}),$e=d({"node_modules/core-js/internals/an-instance.js"(e,t){p();var r=M(),n=TypeError;t.exports=function(e,t){if(r(t,e))return e;throw new n("Incorrect invocation")}}}),Ee=d({"node_modules/core-js/internals/correct-prototype-getter.js"(e,t){p();var r=h();t.exports=!r((function(){function e(){}return e.prototype.constructor=null,Object.getPrototypeOf(new e)!==e.prototype}))}}),ke=d({"node_modules/core-js/internals/object-get-prototype-of.js"(e,t){p();var r=W(),n=k(),o=V(),s=ie(),i=Ee(),a=s("IE_PROTO"),c=Object,l=c.prototype;t.exports=i?c.getPrototypeOf:function(e){var t=o(e);if(r(t,a))return t[a];var s=t.constructor;return n(s)&&t instanceof s?s.prototype:t instanceof c?l:null}}}),Pe=d({"node_modules/core-js/internals/object-keys.js"(e,t){p();var r=ve(),n=we();t.exports=Object.keys||function(e){return r(e,n)}}}),Se=d({"node_modules/core-js/internals/object-define-properties.js"(e){p();var t=m(),r=Z(),n=te(),o=ee(),s=E(),i=Pe();e.f=t&&!r?Object.defineProperties:function(e,t){o(e);for(var r,a=s(t),c=i(t),l=c.length,d=0;l>d;)n.f(e,r=c[d++],a[r]);return e}}}),Me=d({"node_modules/core-js/internals/html.js"(e,t){p();var r=S();t.exports=r("document","documentElement")}}),Re=d({"node_modules/core-js/internals/object-create.js"(e,t){p();var r,n=ee(),o=Se(),s=we(),i=ae(),a=Me(),c=H(),l=ie(),d="prototype",u="script",f=l("IE_PROTO"),y=function(){},h=function(e){return"<"+u+">"+e+"</"+u+">"},m=function(e){e.write(h("")),e.close();var t=e.parentWindow.Object;return e=null,t},v=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}var e,t,n;v="undefined"!=typeof document?document.domain&&r?m(r):(t=c("iframe"),n="java"+u+":",t.style.display="none",a.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(h("document.F=Object")),e.close(),e.F):m(r);for(var o=s.length;o--;)delete v[d][s[o]];return v()};i[f]=!0,t.exports=Object.create||function(e,t){var r;return null!==e?(y[d]=n(e),r=new y,y[d]=null,r[f]=e):r=v(),void 0===t?r:o.f(r,t)}}}),De=d({"node_modules/core-js/internals/async-iterator-prototype.js"(e,t){p();var r,n,o=y(),s=z(),i=k(),a=Re(),c=ke(),l=de(),d=K(),u=q(),f="USE_FUNCTION_CONSTRUCTOR",h=d("asyncIterator"),m=o.AsyncIterator,v=s.AsyncIteratorPrototype;if(v)r=v;else if(i(m))r=m.prototype;else if(s[f]||o[f])try{n=c(c(c(Function("return async function*(){}()")()))),c(n)===Object.prototype&&(r=n)}catch(e){}r?u&&(r=a(r)):r={},i(r[h])||l(r,h,(function(){return this})),t.exports=r}}),Ce=d({"node_modules/core-js/modules/esnext.async-iterator.constructor.js"(){p();var e=Oe(),t=$e(),r=ke(),n=re(),o=W(),s=K(),i=De(),a=q(),c=s("toStringTag"),l=TypeError,d=function(){if(t(this,i),r(this)===i)throw new l("Abstract class AsyncIterator not directly constructable")};d.prototype=i,o(i,c)||n(i,c,"AsyncIterator"),!a&&o(i,"constructor")&&i.constructor!==Object||n(i,"constructor",d),e({global:!0,constructor:!0,forced:a},{AsyncIterator:d})}}),Ae=d({"node_modules/core-js/internals/get-iterator-direct.js"(e,t){p(),t.exports=function(e){return{iterator:e,next:e.next,done:!1}}}}),Fe=d({"node_modules/core-js/internals/not-a-nan.js"(e,t){p();var r=RangeError;t.exports=function(e){if(e==e)return e;throw new r("NaN is not allowed")}}}),Te=d({"node_modules/core-js/internals/to-positive-integer.js"(e,t){p();var r=fe(),n=RangeError;t.exports=function(e){var t=r(e);if(t<0)throw new n("The argument can't be less than 0");return t}}}),Ne=d({"node_modules/core-js/internals/perform.js"(e,t){p(),t.exports=function(e){try{return{error:!1,value:e()}}catch(e){return{error:!0,value:e}}}}}),Ie=d({"node_modules/core-js/internals/define-built-ins.js"(e,t){p();var r=de();t.exports=function(e,t,n){for(var o in t)r(e,o,t[o],n);return e}}}),Je=d({"node_modules/core-js/internals/create-iter-result-object.js"(e,t){p(),t.exports=function(e,t){return{value:e,done:t}}}}),qe=d({"node_modules/core-js/internals/iterator-cleanup-state.js"(e,t){p(),t.exports=function(e){e.iterator=e.next=e.nextHandler=e.mapper=e.predicate=e.inner=e.iterables=e.iters=e.openIters=e.padding=e.finishResults=e.buffer=null}}}),Le=d({"node_modules/core-js/internals/async-iterator-create-proxy.js"(e,t){p();var r=w(),n=Ne(),o=ee(),s=Re(),i=re(),a=Ie(),c=K(),l=ce(),d=S(),u=I(),f=De(),y=Je(),h=qe(),m=d("Promise"),v=c("toStringTag"),g="AsyncIteratorHelper",j="WrapForValidAsyncIterator",b=l.set,_=function(e){var t=!e,i=l.getterFor(e?j:g),c=function(e){var r=n((function(){return i(e)})),o=r.error,s=r.value;return o||t&&s.done?{exit:!0,value:o?m.reject(s):m.resolve(y(void 0,!0))}:{exit:!1,value:s}};return a(s(f),{next:function(){var e=c(this),r=e.value;if(e.exit)return r;var s=n((function(){return o(r.nextHandler(m))})),i=s.error,a=s.value;return i?(r.done=!0,t&&h(r),m.reject(a)):t?m.resolve(a).then((function(e){return r.done&&h(r),e}),(function(e){throw h(r),e})):m.resolve(a)},return:function(){var s=c(this),i=s.value;if(s.exit)return i;i.done=!0;var a,l,d=i.iterator,f=i.inner;t&&h(i);var p=function(){var t=n((function(){return u(d,"return")}));return a=l=t.value,t.error?m.reject(l):void 0===a?m.resolve(y(void 0,!0)):(t=n((function(){return r(a,d)})),l=t.value,t.error?m.reject(l):e?m.resolve(l):m.resolve(l).then((function(e){return o(e),y(void 0,!0)})))},v=function(e){return p().then((function(){throw e}),(function(){throw e}))};if(f){var w,g=f.iterator,j=n((function(){if(w=u(g,"return"))return r(w,g)}));if(j.error)return v(j.value);if(w)return m.resolve(j.value).then((function(e){try{o(e)}catch(e){return v(e)}return p()}),v)}return p()}})},x=_(!0),O=_(!1);i(O,v,"Async Iterator Helper"),t.exports=function(e,t){var r=function(r,n){n?(n.iterator=r.iterator,n.next=r.next):n=r,n.type=t?j:g,n.nextHandler=e,n.counter=0,n.done=!1,b(this,n)};return r.prototype=t?x:O,r}}}),ze=d({"node_modules/core-js/modules/esnext.async-iterator.drop.js"(){p();var e=Oe(),t=w(),r=ee(),n=Ae(),o=Fe(),s=Te(),i=Le(),a=Je(),c=i((function(e){var n=this;return new e((function(o,s){var i=function(e){n.done=!0,s(e)},c=function(){try{e.resolve(r(t(n.next,n.iterator))).then((function(e){try{r(e).done?(n.done=!0,o(a(void 0,!0))):n.remaining?(n.remaining--,c()):o(a(e.value,!1))}catch(e){i(e)}}),i)}catch(e){i(e)}};c()}))}));e({target:"AsyncIterator",proto:!0,real:!0,forced:!0},{drop:function(e){r(this);var t=s(o(+e));return new c(n(this),{remaining:t})}})}}),Be=d({"node_modules/core-js/internals/define-built-in-accessor.js"(e,t){p();var r=le(),n=te();t.exports=function(e,t,o){return o.get&&r(o.get,t,{getter:!0}),o.set&&r(o.set,t,{setter:!0}),n.f(e,t,o)}}}),Ve=d({"node_modules/core-js/internals/create-property.js"(e,t){p();var r=m(),n=te(),o=j();t.exports=function(e,t,s){r?n.f(e,t,o(0,s)):e[t]=s}}}),We=d({"node_modules/core-js/internals/iterators-core.js"(e,t){p();var r,n,o,s=h(),i=k(),a=P(),c=Re(),l=ke(),d=de(),u=K(),f=q(),y=u("iterator"),m=!1;[].keys&&("next"in(o=[].keys())?(n=l(l(o)))!==Object.prototype&&(r=n):m=!0),!a(r)||s((function(){var e={};return r[y].call(e)!==e}))?r={}:f&&(r=c(r)),i(r[y])||d(r,y,(function(){return this})),t.exports={IteratorPrototype:r,BUGGY_SAFARI_ITERATORS:m}}}),Ue=d({"node_modules/core-js/modules/es.iterator.constructor.js"(){p();var e=Oe(),t=y(),r=$e(),n=ee(),o=k(),s=ke(),i=Be(),a=Ve(),c=h(),l=W(),d=K(),u=We().IteratorPrototype,f=m(),v=q(),w="constructor",g="Iterator",j=d("toStringTag"),b=TypeError,_=t[g],x=v||!o(_)||_.prototype!==u||!c((function(){_({})})),O=function(){if(r(this,u),s(this)===u)throw new b("Abstract class Iterator not directly constructable")},$=function(e,t){f?i(u,e,{configurable:!0,get:function(){return t},set:function(t){if(n(this),this===u)throw new b("You can't redefine this property");l(this,e)?this[e]=t:a(this,e,t)}}):u[e]=t};l(u,j)||$(j,g),!x&&l(u,w)&&u[w]!==Object||$(w,O),O.prototype=u,e({global:!0,constructor:!0,forced:x},{Iterator:O})}}),Ke=d({"node_modules/core-js/modules/esnext.iterator.constructor.js"(){p(),Ue()}}),Qe=d({"node_modules/core-js/internals/iterator-close.js"(e,t){p();var r=w(),n=ee(),o=I();t.exports=function(e,t,s){var i,a;n(e);try{if(!(i=o(e,"return"))){if("throw"===t)throw s;return s}i=r(i,e)}catch(e){a=!0,i=e}if("throw"===t)throw s;if(a)throw i;return n(i),s}}}),Ge=d({"node_modules/core-js/internals/iterator-close-all.js"(e,t){p();var r=Qe();t.exports=function(e,t,n){for(var o=e.length-1;o>=0;o--)if(void 0!==e[o])try{n=r(e[o].iterator,t,n)}catch(e){t="throw",n=e}if("throw"===t)throw n;return n}}}),He=d({"node_modules/core-js/internals/iterator-create-proxy.js"(e,t){p();var r=w(),n=Re(),o=re(),s=Ie(),i=K(),a=ce(),c=I(),l=We().IteratorPrototype,d=Je(),u=Qe(),f=Ge(),y=qe(),h=i("toStringTag"),m="IteratorHelper",v="WrapForValidIterator",g="normal",j="throw",b=a.set,_=function(e){var t=a.getterFor(e?v:m);return s(n(l),{next:function(){var r=t(this);if(e)return r.nextHandler();if(r.done)return d(void 0,!0);try{var n=r.nextHandler();return r.done&&y(r),r.returnHandlerResult?n:d(n,r.done)}catch(e){throw r.done=!0,y(r),e}},return:function(){var n=t(this),o=n.iterator,s=n.inner,i=n.openIters,a=n.done;if(n.done=!0,e){var l=c(o,"return");return l?r(l,o):d(void 0,!0)}if(y(n),a)return d(void 0,!0);if(s)try{u(s.iterator,g)}catch(e){return u(o,j,e)}if(i)try{f(i,g)}catch(e){if(o)return u(o,j,e);throw e}return o&&u(o,g),d(void 0,!0)}})},x=_(!0),O=_(!1);o(O,h,"Iterator Helper"),t.exports=function(e,t,r){var n=function(n,o){o?(o.iterator=n.iterator,o.next=n.next):o=n,o.type=t?v:m,o.returnHandlerResult=!!r,o.nextHandler=e,o.counter=0,o.done=!1,b(this,o)};return n.prototype=t?x:O,n}}}),Xe=d({"node_modules/core-js/internals/iterator-helper-throws-on-invalid-iterator.js"(e,t){p(),t.exports=function(e,t){var r="function"==typeof Iterator&&Iterator.prototype[e];if(r)try{r.call({next:null},t).next()}catch(e){return!0}}}}),Ye=d({"node_modules/core-js/internals/iterator-helper-without-closing-on-early-error.js"(e,t){p();var r=y();t.exports=function(e,t){var n=r.Iterator,o=n&&n.prototype,s=o&&o[e],i=!1;if(s)try{s.call({next:function(){return{done:!0}},return:function(){i=!0}},-1)}catch(e){e instanceof t||(i=!1)}if(!i)return s}}}),Ze=d({"node_modules/core-js/modules/es.iterator.drop.js"(){p();var e=Oe(),t=w(),r=ee(),n=Ae(),o=Fe(),s=Te(),i=Qe(),a=He(),c=Xe(),l=Ye(),d=q(),u=RangeError,f=1/0,y=!d&&!c("drop",0),h=!d&&!y&&l("drop",RangeError),m=d||y||h||!function(){try{Iterator.prototype.drop.call({next:function(){return{done:!0}}},9007199254740992)}catch(e){return e instanceof u}}(),v=a((function(){for(var e,n=this.iterator,o=this.next;this.remaining;)if(this.remaining--,e=r(t(o,n)),this.done=!!e.done)return;if(e=r(t(o,n)),!(this.done=!!e.done))return e.value}));e({target:"Iterator",proto:!0,real:!0,forced:m},{drop:function(e){var a;r(this);try{if((a=s(o(+e)))>9007199254740991&&a!==f)throw new u("The argument should be a safe integer")}catch(e){i(this,"throw",e)}return h?t(h,this,a):new v(n(this),{remaining:a})}})}}),et=d({"node_modules/core-js/modules/esnext.iterator.drop.js"(){p(),Ze()}}),tt=d({"node_modules/core-js/internals/call-with-safe-iteration-closing.js"(e,t){p();var r=ee(),n=Qe();t.exports=function(e,t,o,s){try{return s?t(r(o)[0],o[1]):t(o)}catch(t){n(e,"throw",t)}}}}),rt=d({"node_modules/core-js/modules/es.iterator.map.js"(){p();var e=Oe(),t=w(),r=N(),n=ee(),o=Ae(),s=He(),i=tt(),a=Qe(),c=Xe(),l=Ye(),d=q(),u=!d&&!c("map",(function(){})),f=!d&&!u&&l("map",TypeError),y=d||u||f,h=s((function(){var e=this.iterator,r=n(t(this.next,e));if(!(this.done=!!r.done))return i(e,this.mapper,[r.value,this.counter++],!0)}));e({target:"Iterator",proto:!0,real:!0,forced:y},{map:function(e){n(this);try{r(e)}catch(e){a(this,"throw",e)}return f?t(f,this,e):new h(o(this),{mapper:e})}})}}),nt=d({"node_modules/core-js/modules/esnext.iterator.map.js"(){p(),rt()}}),ot=d({"node_modules/core-js/modules/es.iterator.filter.js"(){p();var e=Oe(),t=w(),r=N(),n=ee(),o=Ae(),s=He(),i=tt(),a=q(),c=Qe(),l=Xe(),d=Ye(),u=!a&&!l("filter",(function(){})),f=!a&&!u&&d("filter",TypeError),y=a||u||f,h=s((function(){for(var e,r,o=this.iterator,s=this.predicate,a=this.next;;){if(e=n(t(a,o)),this.done=!!e.done)return;if(r=e.value,i(o,s,[r,this.counter++],!0))return r}}));e({target:"Iterator",proto:!0,real:!0,forced:y},{filter:function(e){n(this);try{r(e)}catch(e){c(this,"throw",e)}return f?t(f,this,e):new h(o(this),{predicate:e})}})}}),st=d({"node_modules/core-js/modules/esnext.iterator.filter.js"(){p(),ot()}}),it=d({"node_modules/core-js/internals/function-uncurry-this-clause.js"(e,t){p();var r=_(),n=b();t.exports=function(e){if("Function"===r(e))return n(e)}}}),at=d({"node_modules/core-js/internals/function-bind-context.js"(e,t){p();var r=it(),n=N(),o=v(),s=r(r.bind);t.exports=function(e,t){return n(e),void 0===t?e:o?s(e,t):function(){return e.apply(t,arguments)}}}}),ct=d({"node_modules/core-js/internals/iterators.js"(e,t){p(),t.exports=Object.create?Object.create(null):{}}}),lt=d({"node_modules/core-js/internals/is-array-iterator-method.js"(e,t){p();var r=K(),n=ct(),o=r("iterator"),s=Array.prototype;t.exports=function(e){return void 0!==e&&(n.Array===e||s[o]===e)}}}),dt=d({"node_modules/core-js/internals/get-iterator-method-internal.js"(e,t){p();var r=_(),n=O(),o=I(),s=K()("iterator"),i=Array.prototype;t.exports=function(e){if(!n(e))return o(e,s)||o(e,"@@iterator")||("Arguments"===r(e)?i[s]:void 0)}}}),ut=d({"node_modules/core-js/internals/get-iterator-internal.js"(e,t){p();var r=w(),n=k(),o=ee(),s=T(),i=dt(),a=TypeError;t.exports=function(e,t){var c=arguments.length<2?i(e):t;if(n(c))return o(r(c,e));throw new a(s(e)+" is not iterable")}}}),ft=d({"node_modules/core-js/internals/iterate.js"(e,t){p();var r=at(),n=w(),o=ee(),s=T(),i=lt(),a=he(),c=M(),l=ut(),d=dt(),u=Qe(),f=TypeError,y=function(e,t){this.stopped=e,this.result=t},h=y.prototype;t.exports=function(e,t,p){var m,v,w,g,j,b,_,x=p&&p.that,O=!(!p||!p.AS_ENTRIES),$=!(!p||!p.IS_RECORD),E=!(!p||!p.IS_ITERATOR),k=!(!p||!p.INTERRUPTED),P=r(t,x),S=function(e){var t=m;return m=void 0,t&&u(t,"normal"),new y(!0,e)},M=function(e){return O?(o(e),k?P(e[0],e[1],S):P(e[0],e[1])):k?P(e,S):P(e)};if($)m=e.iterator;else if(E)m=e;else{if(!(v=d(e)))throw new f(s(e)+" is not iterable");if(i(v)){for(w=0,g=a(e);g>w;w++)if((j=M(e[w]))&&c(h,j))return j;return new y(!1)}m=l(e,v)}for(b=$?e.next:m.next;!(_=n(b,m)).done;){var R=_.value;try{j=M(R)}catch(e){if(!m)throw e;u(m,"throw",e)}if("object"==typeof j&&j&&c(h,j))return j}return new y(!1)}}}),pt=d({"node_modules/core-js/internals/function-apply.js"(e,t){p();var r=v(),n=Function.prototype,o=n.apply,s=n.call;t.exports="object"==typeof Reflect&&Reflect.apply||(r?s.bind(o):function(){return s.apply(o,arguments)})}}),yt=d({"node_modules/core-js/modules/es.iterator.reduce.js"(){p();var e=Oe(),t=ft(),r=N(),n=ee(),o=Ae(),s=Qe(),i=Ye(),a=pt(),c=h(),l=TypeError,d=c((function(){[].keys().reduce((function(){}),void 0)})),u=!d&&i("reduce",l);e({target:"Iterator",proto:!0,real:!0,forced:d||u},{reduce:function(e){n(this);try{r(e)}catch(e){s(this,"throw",e)}var i=arguments.length<2,c=i?void 0:arguments[1];if(u)return a(u,this,i?[e]:[e,c]);var d=o(this),f=0;if(t(d,(function(t){i?(i=!1,c=t):c=e(c,t,f),f++}),{IS_RECORD:!0}),i)throw new l("Reduce of empty iterator with no initial value");return c}})}}),ht=d({"node_modules/core-js/modules/esnext.iterator.reduce.js"(){p(),yt()}}),mt=d({"dist/data/utilities/parsers/scanQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.scanQuery=e.assertClosed=void 0;var t={n:"\n",t:"\t"},r={"]":"[",")":"("};e.scanQuery=(e="")=>{const n=[],o=[],s=[],i=[];let a,c,l=!1,d=!1,u=-1,f=0;for(;f<e.length;){const p=e[f],y=e[f+1];if("'"!==p&&'"'!==p)if("-"!==p||"-"!==y||0!==f&&!/[\s;]/.test(e[f-1]))if("/"!==p||"*"!==y)"["===p||"("===p?i.push(p):r[p]?i[i.length-1]===r[p]?i.pop():a||(a={char:p,index:f}):";"===p&&0===i.length&&s.push(f),/\s/.test(p)||(u=f),f++;else{const t=e.indexOf("*/",f+2),r=-1===t?e.length:t+2;d=-1===t,o.push({start:f,end:r,kind:"block"}),f=r}else{const t=e.indexOf("\n",f+2),r=-1===t?e.length:t+1;o.push({start:f,end:r,kind:"line"}),f=r}else{const r=f;let o="";for(f++;f<e.length&&e[f]!==p;)if("\\"!==e[f])o+=e[f],f++;else{if(f+1===e.length){l=!0,f++;break}o+=t[e[f+1]]??e[f+1],f+=2}f<e.length?f++:c=p,n.push({start:r,end:f,quote:p,value:o}),u=r}}const p={quote:c,escape:l,blockComment:d,brackets:i,strayCloser:a},y=!p.quote&&!p.blockComment&&0===i.length;return{strings:n,comments:o,semicolons:s,end:p,closed:y,terminated:y&&s.length>0&&s[s.length-1]===u}};e.assertClosed=e=>{const{end:t}=e;if(t.quote){const r=e.strings[e.strings.length-1];throw new Error(`Unclosed string: the ${t.quote} at position ${r.start} is never closed`)}if(t.blockComment)throw new Error(`Unclosed comment: the /* at position ${e.comments[e.comments.length-1].start} is never closed`);if(t.strayCloser)throw new Error(`Unexpected ${t.strayCloser.char} at position ${t.strayCloser.index}: there is nothing to close`);if(t.brackets.length>0)throw new Error(`Unclosed bracket: ${t.brackets.join(" ")} never closed`);return e}}}),vt=d({"dist/data/utilities/parsers/splitQueries.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.splitQueries=void 0,Ke(),st(),ht();var t=mt();e.splitQueries=(e="")=>{const{comments:r,semicolons:n}=(0,t.assertClosed)((0,t.scanQuery)(e)),o=r.reduce(((e,{start:t,end:r})=>`${e.slice(0,t)}${" ".repeat(r-t)}${e.slice(r)}`),e);return[...n,o.length].map(((e,t)=>o.slice(0===t?0:n[t-1]+1,e).trim())).filter((e=>e.length>0))}}}),wt=d({"dist/data/utilities/parsers/findCommand.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findCommand=void 0;var t=/^(delete|insert|read|update)\s+([a-z0-9_-]+)/i;e.findCommand=(e,r)=>{const n=r.match(t);return e.command=void 0,e.entity=void 0,n?(e.command=n[1].toLowerCase(),e.entity=n[2],r.slice(n[0].length).trim()):r}}}),gt=d({"node_modules/core-js/internals/is-array.js"(e,t){p();var r=_();t.exports=Array.isArray||function(e){return"Array"===r(e)}}}),jt=d({"node_modules/core-js/internals/is-raw-json.js"(e,t){p();var r=P(),n=ce().get;t.exports=function(e){if(!r(e))return!1;var t=n(e);return!!t&&"RawJSON"===t.type}}}),bt=d({"node_modules/core-js/internals/this-number-value.js"(e,t){p();var r=b();t.exports=r(1.1.valueOf)}}),_t=d({"node_modules/core-js/internals/to-string-tag-support.js"(e,t){p();var r={};r[K()("toStringTag")]="z",t.exports="[object z]"===String(r)}}),xt=d({"node_modules/core-js/internals/classof.js"(e,t){p();var r=_t(),n=k(),o=_(),s=K()("toStringTag"),i=Object,a="Arguments"===o(function(){return arguments}());t.exports=r?o:function(e){var t,r,c;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=i(e),s))?r:a?o(t):"Object"===(c=o(t))&&n(t.callee)?"Arguments":c}}}),Ot=d({"node_modules/core-js/internals/to-string.js"(e,t){p();var r=xt(),n=String;t.exports=function(e){if("Symbol"===r(e))throw new TypeError("Cannot convert a Symbol value to a string");return n(e)}}}),$t=d({"node_modules/core-js/internals/parse-json-string.js"(e,t){p();var r=b(),n=W(),o=SyntaxError,s=parseInt,i=String.fromCharCode,a=r("".charAt),c=r("".slice),l=r(/./.exec),d={'\\"':'"',"\\\\":"\\","\\/":"/","\\b":"\b","\\f":"\f","\\n":"\n","\\r":"\r","\\t":"\t"},u=/^[\da-f]{4}$/i,f=/^[\u0000-\u001F]$/;t.exports=function(e,t){for(var r=!0,p="";t<e.length;){var y=a(e,t);if("\\"===y){var h=c(e,t,t+2);if(n(d,h))p+=d[h],t+=2;else{if("\\u"!==h)throw new o('Unknown escape sequence: "'+h+'"');var m=c(e,t+=2,t+4);if(!l(u,m))throw new o("Bad Unicode escape at: "+t);p+=i(s(m,16)),t+=4}}else{if('"'===y){r=!1,t++;break}if(l(f,y))throw new o("Bad control character in string literal at: "+t);p+=y,t++}}if(r)throw new o("Unterminated string at: "+t);return{value:p,end:t}}}}),Et=d({"node_modules/core-js/internals/native-raw-json.js"(e,t){p();var r=h();t.exports=!r((function(){var e="9007199254740993",t=JSON.rawJSON(e);return!JSON.isRawJSON(t)||JSON.stringify(t)!==e}))}}),kt=d({"node_modules/core-js/modules/es.json.stringify.js"(){p();var e=Oe(),t=S(),r=w(),n=b(),o=h(),s=gt(),i=k(),a=P(),c=Re(),l=jt(),d=F(),u=_(),f=bt(),y=me().includes,m=W(),v=Ot(),g=$t(),j=U(),x=C(),O=Et(),$=String,E=TypeError,M=t("JSON","stringify"),R=t("BigInt"),D=n("".valueOf),A=n((!0).valueOf),T=R&&n(R.prototype.valueOf),N=n(/./.exec),I=n("".charAt),J=n("".charCodeAt),q=n("".replace),L=n("".slice),z=n([].push),B=n([].pop),V=n(1.1.toString),K=/[\uD800-\uDFFF]/g,Q=/^[\uD800-\uDBFF]$/,G=/^[\uDC00-\uDFFF]$/,H=/^\d+$/,X=j(),Y=j(),Z=j(),ee=X.length,te=Y.length,re=!x||o((function(){var e=t("Symbol")("stringify detection");return"[null]"!==M([e])||"{}"!==M({a:e})||"{}"!==M(Object(e))})),ne=o((function(){return'"\\udf06\\ud834"'!==M("\udf06\ud834")||'"\\udead"'!==M("\udead")})),oe=O?t("JSON","isRawJSON"):l,se=re?function(e,t,n){return M(e,(function(e,n){var o=r(t,this,e,n);if(!d(o))return o}),n)}:M,ie=function(e,t,r){var n=I(r,t-1),o=I(r,t+1);return N(Q,e)&&!N(G,o)||N(G,e)&&!N(Q,n)?"\\u"+V(J(e,0),16):e},ae=function(e,t){try{return e(t),!0}catch(e){return!1}},ce=function(e){if(!a(e)||i(e)||s(e))return!1;try{return!function(e){var t=u(e);return"Number"===t&&ae(f,e)||"String"===t&&ae(D,e)||"Boolean"===t&&ae(A,e)||!!T&&"BigInt"===t&&ae(T,e)}(e)}catch(e){return!0}},le=function(e,t){return{toJSON:function(){var n=e[t];if(a(n)||"bigint"==typeof n){var o=n.toJSON;i(o)&&(n=r(o,n,t))}return n}}};M&&e({target:"JSON",stat:!0,arity:3,forced:re||ne||!O},{stringify:function(e,t,n){var o,a=i(t)?t:void 0,l=a?void 0:function(e){if(s(e)){for(var t=e.length,r=[],n=c(null),o=0;o<t;o++){var i,a=e[o];if("string"==typeof a)i=a;else{if("number"!=typeof a&&"Number"!==u(a)&&"String"!==u(a))continue;i=v(a)}m(n,i)||(n[i]=!0,z(r,i))}return r}}(t),d=l&&function(e){for(var t=0,r=e.length;t<r;t++)if(N(H,e[t]))return Y;return""}(l),f=[],p=[],h=[],w=!1,j=!0,b=se(e,(function(e,t){if(e=$(e),l){if(e===Z)return B(p),void(o=B(h));if(j)j=!1;else if(this!==o&&!s(this)&&!y(l,e))return}else a&&(t=r(a,this,e,t));if(oe(t))return O?t:(w=!0,X+(z(f,t.rawJSON)-1));if(l&&ce(t)){if(y(p,t))throw new E("Converting circular structure to JSON");var n=function(e,t,r){for(var n=c(null),o=0,s=t.length;o<s;o++){var i=t[o];n[r+i]=le(e,i)}return n[Z]=null,n}(t,l,d);return z(p,t),z(h,o),o=n,d&&(w=!0),n}return t}),n);if("string"!=typeof b)return b;if(ne&&(b=q(b,K,ie)),!w)return b;for(var _="",x=b.length,k=0;k<x;k++){var P=I(b,k);if('"'===P){var S=g(b,++k).end-1,M=L(b,k,S);L(M,0,ee)===X?_+=f[L(M,ee)]:L(M,0,te)===Y?_+='"'+L(M,te)+'"':_+='"'+M+'"',k=S}else _+=P}return _}})}}),Pt=d({"node_modules/core-js/modules/es.iterator.some.js"(){p();var e=Oe(),t=w(),r=ft(),n=N(),o=ee(),s=Ae(),i=Qe(),a=Ye()("some",TypeError);e({target:"Iterator",proto:!0,real:!0,forced:a},{some:function(e){o(this);try{n(e)}catch(e){i(this,"throw",e)}if(a)return t(a,this,e);var c=s(this),l=0;return r(c,(function(t,r){if(e(t,l++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})}}),St=d({"node_modules/core-js/modules/esnext.iterator.some.js"(){p(),Pt()}}),Mt=d({"dist/data/utilities/parsers/maskStrings.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.unmaskStrings=e.placeholderSource=e.maskStrings=e.maskArrays=e.fromPlaceholder=e.arraySource=void 0,kt(),Ke(),nt(),St();var t=mt(),r=e.placeholderSource="\\u0000([0-9a-f]*)\\u0000",n=new RegExp(r,"g"),o=e.arraySource="\\u0001([0-9a-f]*)\\u0001",s=new RegExp(o,"g"),i=e=>e.split("").map((e=>e.charCodeAt(0).toString(16).padStart(4,"0"))).join(""),a=e=>(e.match(/.{4}/g)||[]).map((e=>String.fromCharCode(parseInt(e,16)))).join("");e.fromPlaceholder=a;e.maskStrings=e=>{const{strings:r}=(0,t.assertClosed)((0,t.scanQuery)(e));for(const[t,n]of[["\0","NUL"],["","SOH"]])for(let o=e.indexOf(t);-1!==o;o=e.indexOf(t,o+1))if(!r.some((({start:e,end:t})=>e<o&&o<t)))throw new Error(`Unexpected ${n} character at position ${o}`);const n=[];let o=0;for(const{start:t,end:s,value:a}of r)n.push(e.slice(o,t),`\0${i(a)}\0`),o=s;return n.push(e.slice(o)),n.join("")};var c=(e,t="json")=>e.replace(n,((e,r)=>{const n=a(r);return"json"===t?JSON.stringify(n):`'${n.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`})).replace(s,((e,t)=>a(t)));e.unmaskStrings=c;var l=e=>{try{return JSON.stringify(JSON.parse(c(e),((e,t)=>{if("number"==typeof t&&!Number.isFinite(t))throw new Error(`${t} is too large`);if(Number.isInteger(t)&&!Number.isSafeInteger(t))throw new Error(`${t} is too large to store exactly (the largest whole number is ${Number.MAX_SAFE_INTEGER}): quote it to keep it as text`);return t})))}catch(t){throw new Error(`Invalid array ${c(e,"'")}: ${t.message}`)}};e.maskArrays=e=>{let t="",r=0,n=0;for(let o=0;o<e.length;o++){const s=e[o];if("["===s)0===r&&(n=o),r++;else if("]"===s&&r>0&&(r--,0===r)){t+=`${i(l(e.slice(n,o+1)))}`;continue}0===r&&(t+=s)}return r>0?t+e.slice(n):t}}}),Rt=d({"dist/data/utilities/parsers/parseLiteralValue.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseNumber=e.parseLiteralValue=e.numberSource=void 0;var t=Mt(),r=(e.numberSource="-?[0-9]+(?:\\.[0-9]+)?(?:e[+-]?[0-9]+)?",e=>{const t=Number(e);if(!Number.isFinite(t))throw new Error(`${e} is too large`);if(Number.isInteger(t)&&!Number.isSafeInteger(t))throw new Error(`${e} is too large to store exactly (the largest whole number is ${Number.MAX_SAFE_INTEGER}): quote it to keep it as text`);return t});e.parseNumber=r;e.parseLiteralValue=(e,n)=>void 0!==e[n]?(0,t.fromPlaceholder)(e[n]):void 0!==e[n+1]?r(e[n+1]):void 0!==e[n+2]?JSON.parse((0,t.fromPlaceholder)(e[n+2])):void 0!==e[n+3]?null:void 0!==e[n+4]}}),Dt=d({"dist/data/utilities/parsers/findInsertValues.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findInsertValues=void 0;var t=Rt(),r=Mt(),n=`(?:${r.placeholderSource.replace("(","(?:")}|${t.numberSource}|${r.arraySource.replace("(","(?:")}|null|true|false)`,o=`[a-z0-9_-]+\\s*=\\s*${n}(?:\\s*,\\s*[a-z0-9_-]+\\s*=\\s*${n})*`,s=new RegExp(`^(${o})`,"i"),i=`\\(\\s*(${o})\\s*\\)`,a=new RegExp(`^${i}(?:\\s*,\\s*${i.replace("("+o,"(?:"+o)})*`,"i"),c=new RegExp(i,"ig"),l=new RegExp(`([a-z0-9_-]+)\\s*=\\s*(${r.placeholderSource}|(${t.numberSource})|${r.arraySource}|(null)|(true)|(false))`,"ig"),d=e=>{const r={};for(const n of e.matchAll(l))r[n[1]]=(0,t.parseLiteralValue)(n,3);return r};e.findInsertValues=(e,t)=>{e.insertValues=[];const r=t.match(a);if(r)return e.insertValues=[...r[0].matchAll(c)].map((e=>d(e[1]))),t.slice(r[0].length).trim();const n=t.match(s);return n?(e.insertValues=[d(n[1])],t.slice(n[0].length).trim()):t}}}),Ct=d({"dist/data/utilities/parsers/findUpdateValues.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findUpdateValues=void 0;var t=Rt(),r=Mt(),n=`(?:${r.placeholderSource.replace("(","(?:")}|${t.numberSource}|${r.arraySource.replace("(","(?:")}|null|true|false)`,o=new RegExp(`^([a-z0-9_-]+\\s*=\\s*${n}(?:\\s*,\\s*[a-z0-9_-]+\\s*=\\s*${n})*)`,"i"),s=new RegExp(`([a-z0-9_-]+)\\s*=\\s*(${r.placeholderSource}|(${t.numberSource})|${r.arraySource}|(null)|(true)|(false))`,"ig");e.findUpdateValues=(e,r)=>{const n=r.match(o);if(e.updateValues={},!n)return r;const i=n[1].matchAll(s);for(const r of i)e.updateValues[r[1]]=(0,t.parseLiteralValue)(r,3);return r.slice(n[0].length).trim()}}}),At=d({"dist/data/utilities/parsers/findJoinEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findJoinEntity=void 0;var t=/^\.([a-z0-9_-]+)/i;e.findJoinEntity=(e,r)=>{const n=r.match(t);return n?(e.joinEntity=n?n[1]:void 0,r.slice(n[0].length).trim()):r}}}),Ft=d({"dist/data/utilities/parsers/findSelects.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findSelects=void 0;var t="[a-z0-9=._-]+(?:\\s+as\\s+[a-z0-9_-]+)?",r=new RegExp(`^${t}(?:\\s*,\\s*${t})*`,"i"),n=/,?\s*([a-z0-9=._-]+)(?:\s+as\s+([a-z0-9_-]+))?/gi;e.findSelects=(e,t)=>{const o=t.match(r);if(o){const r=o[0].matchAll(n);for(const t of r)e.selectClauses.push({property:t[1],alias:t[2]});return t.slice(o[0].length).trim()}return t}}}),Tt=d({"node_modules/core-js/internals/add-to-unscopables.js"(e,t){p();var r=K(),n=Re(),o=te().f,s=r("unscopables"),i=Array.prototype;void 0===i[s]&&o(i,s,{configurable:!0,value:n(null)}),t.exports=function(e){i[s][e]=!0}}}),Nt=d({"node_modules/core-js/modules/es.array.includes.js"(){p();var e=Oe(),t=me().includes,r=h(),n=Tt(),o=r((function(){return!Array(1).includes()})),s=r((function(){return[,1].includes(void 0,1)}));e({target:"Array",proto:!0,forced:o||s},{includes:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("includes")}}),It=d({"node_modules/core-js/internals/get-iterator-flattenable.js"(e,t){p();var r=w(),n=ee(),o=Ae(),s=dt();t.exports=function(e,t){t&&"string"==typeof e||n(e);var i=s(e);return o(n(void 0!==i?r(i,e):e))}}}),Jt=d({"node_modules/core-js/modules/es.iterator.flat-map.js"(){p();var e=Oe(),t=w(),r=N(),n=ee(),o=Ae(),s=It(),i=He(),a=Qe(),c=h(),l=q(),d=Xe(),u=Ye(),f=!l&&c((function(){return 1!==[1].values().flatMap((function(){return[1]})).find((function(){return!0}))})),y=!l&&!f&&!d("flatMap",(function(){})),m=!l&&!f&&!y&&u("flatMap",TypeError),v=l||f||y||m,g=i((function(){for(var e,r,o=this.iterator,i=this.mapper;;){if(r=this.inner)try{if(!(e=n(t(r.next,r.iterator))).done)return e.value;this.inner=null}catch(e){a(o,"throw",e)}if(e=n(t(this.next,o)),this.done=!!e.done)return;try{this.inner=s(i(e.value,this.counter++),!1)}catch(e){a(o,"throw",e)}}}));e({target:"Iterator",proto:!0,real:!0,forced:v},{flatMap:function(e){n(this);try{r(e)}catch(e){a(this,"throw",e)}return m?t(m,this,e):new g(o(this),{mapper:e,inner:null})}})}}),qt=d({"node_modules/core-js/modules/esnext.iterator.flat-map.js"(){p(),Jt()}}),Lt=d({"dist/data/utilities/conditionTree.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.requiredConditions=e.isCondition=e.conditionsOf=e.allOf=void 0,Ke(),st(),qt();var t=e=>!("and"in e)&&!("or"in e)&&!("not"in e);e.isCondition=t;e.allOf=e=>{if(e.length)return 1===e.length?e[0]:{and:e}};var r=e=>void 0===e?[]:t(e)?[e]:"not"in e?r(e.not):("and"in e?e.and:e.or).flatMap(r);e.conditionsOf=r;e.requiredConditions=e=>void 0===e?[]:t(e)?[e]:"and"in e?e.and.filter(t):[]}}),zt=d({"node_modules/core-js/internals/set-helpers.js"(e,t){p();var r=b(),n=Set.prototype;t.exports={Set:Set,add:r(n.add),has:r(n.has),remove:r(n.delete),proto:n}}}),Bt=d({"node_modules/core-js/internals/a-set.js"(e,t){p();var r=zt().has;t.exports=function(e){return r(e),e}}}),Vt=d({"node_modules/core-js/modules/esnext.set.add-all.js"(){p();var e=Oe(),t=Bt(),r=zt().add;e({target:"Set",proto:!0,real:!0,forced:!0},{addAll:function(){for(var e=t(this),n=0,o=arguments.length;n<o;n++)r(e,arguments[n]);return e}})}}),Wt=d({"node_modules/core-js/modules/esnext.set.delete-all.js"(){p();var e=Oe(),t=Bt(),r=zt().remove;e({target:"Set",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,n=t(this),o=!0,s=0,i=arguments.length;s<i;s++)e=r(n,arguments[s]),o=o&&e;return!!o}})}}),Ut=d({"node_modules/core-js/internals/is-iterable.js"(e,t){p();var r=_(),n=K()("iterator");t.exports=function(e){return void 0!==e[n]||void 0!==e["@@iterator"]||"Arguments"===r(e)}}}),Kt=d({"node_modules/core-js/internals/to-set-like.js"(e,t){p();var r=S(),n=k(),o=Ut(),s=P(),i=r("Set");t.exports=function(e){return function(e){return s(e)&&"number"==typeof e.size&&n(e.has)&&n(e.keys)}(e)?e:o(e)?new i(e):e}}}),Qt=d({"node_modules/core-js/internals/iterate-simple.js"(e,t){p();var r=w();t.exports=function(e,t,n){for(var o,s,i=n?e:e.iterator,a=e.next;!(o=r(a,i)).done;)if(void 0!==(s=t(o.value)))return s}}}),Gt=d({"node_modules/core-js/internals/set-iterate.js"(e,t){p();var r=b(),n=Qt(),o=zt(),s=o.Set,i=o.proto,a=r(i.forEach),c=r(i.keys),l=c(new s).next;t.exports=function(e,t,r){return r?n({iterator:c(e),next:l},t):a(e,t)}}}),Ht=d({"node_modules/core-js/internals/set-clone.js"(e,t){p();var r=zt(),n=Gt(),o=r.Set,s=r.add;t.exports=function(e){var t=new o;return n(e,(function(e){s(t,e)})),t}}}),Xt=d({"node_modules/core-js/internals/function-uncurry-this-accessor.js"(e,t){p();var r=b(),n=N();t.exports=function(e,t,o){try{return r(n(Object.getOwnPropertyDescriptor(e,t)[o]))}catch(e){}}}}),Yt=d({"node_modules/core-js/internals/set-size.js"(e,t){p();var r=Xt(),n=zt();t.exports=r(n.proto,"size","get")||function(e){return e.size}}}),Zt=d({"node_modules/core-js/internals/get-set-record.js"(e,t){p();var r=N(),n=ee(),o=w(),s=fe(),i=Ae(),a="Invalid size",c=RangeError,l=TypeError,d=Math.max,u=function(e,t){this.set=e,this.size=d(t,0),this.has=r(e.has),this.keys=r(e.keys)};u.prototype={getIterator:function(){return i(n(o(this.keys,this.set)))},includes:function(e){return o(this.has,this.set,e)}},t.exports=function(e){n(e);var t=+e.size;if(t!=t)throw new l(a);var r=s(t);if(r<0)throw new c(a);return new u(e,r)}}}),er=d({"node_modules/core-js/internals/set-difference.js"(e,t){p();var r=Bt(),n=zt(),o=Ht(),s=Yt(),i=Zt(),a=Gt(),c=Qt(),l=n.has,d=n.remove;t.exports=function(e){var t=r(this),n=i(e),u=o(t);return s(u)<=n.size?a(u,(function(e){n.includes(e)&&d(u,e)})):c(n.getIterator(),(function(e){l(u,e)&&d(u,e)})),u}}}),tr=d({"node_modules/core-js/modules/esnext.set.difference.js"(){p();var e=Oe(),t=w(),r=Kt(),n=er();e({target:"Set",proto:!0,real:!0,forced:!0},{difference:function(e){return t(n,this,r(e))}})}}),rr=d({"node_modules/core-js/modules/esnext.set.every.js"(){p();var e=Oe(),t=at(),r=Bt(),n=Gt();e({target:"Set",proto:!0,real:!0,forced:!0},{every:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0);return!1!==n(o,(function(e){if(!s(e,e,o))return!1}),!0)}})}}),nr=d({"node_modules/core-js/modules/esnext.set.filter.js"(){p();var e=Oe(),t=at(),r=Bt(),n=zt(),o=Gt(),s=n.Set,i=n.add;e({target:"Set",proto:!0,real:!0,forced:!0},{filter:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e){a(e,e,n)&&i(c,e)})),c}})}}),or=d({"node_modules/core-js/modules/esnext.set.find.js"(){p();var e=Oe(),t=at(),r=Bt(),n=Gt();e({target:"Set",proto:!0,real:!0,forced:!0},{find:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0),i=n(o,(function(e){if(s(e,e,o))return{value:e}}),!0);return i&&i.value}})}}),sr=d({"node_modules/core-js/internals/set-intersection.js"(e,t){p();var r=Bt(),n=zt(),o=Yt(),s=Zt(),i=Gt(),a=Qt(),c=n.Set,l=n.add,d=n.has;t.exports=function(e){var t=r(this),n=s(e),u=new c;return o(t)>n.size?a(n.getIterator(),(function(e){d(t,e)&&l(u,e)})):i(t,(function(e){n.includes(e)&&l(u,e)})),u}}}),ir=d({"node_modules/core-js/modules/esnext.set.intersection.js"(){p();var e=Oe(),t=w(),r=Kt(),n=sr();e({target:"Set",proto:!0,real:!0,forced:!0},{intersection:function(e){return t(n,this,r(e))}})}}),ar=d({"node_modules/core-js/internals/set-is-disjoint-from.js"(e,t){p();var r=Bt(),n=zt().has,o=Yt(),s=Zt(),i=Gt(),a=Qt(),c=Qe();t.exports=function(e){var t=r(this),l=s(e);if(o(t)<=l.size)return!1!==i(t,(function(e){if(l.includes(e))return!1}),!0);var d=l.getIterator();return!1!==a(d,(function(e){if(n(t,e))return c(d.iterator,"normal",!1)}))}}}),cr=d({"node_modules/core-js/modules/esnext.set.is-disjoint-from.js"(){p();var e=Oe(),t=w(),r=Kt(),n=ar();e({target:"Set",proto:!0,real:!0,forced:!0},{isDisjointFrom:function(e){return t(n,this,r(e))}})}}),lr=d({"node_modules/core-js/internals/set-is-subset-of.js"(e,t){p();var r=Bt(),n=Yt(),o=Gt(),s=Zt();t.exports=function(e){var t=r(this),i=s(e);return!(n(t)>i.size)&&!1!==o(t,(function(e){if(!i.includes(e))return!1}),!0)}}}),dr=d({"node_modules/core-js/modules/esnext.set.is-subset-of.js"(){p();var e=Oe(),t=w(),r=Kt(),n=lr();e({target:"Set",proto:!0,real:!0,forced:!0},{isSubsetOf:function(e){return t(n,this,r(e))}})}}),ur=d({"node_modules/core-js/internals/set-is-superset-of.js"(e,t){p();var r=Bt(),n=zt().has,o=Yt(),s=Zt(),i=Qt(),a=Qe();t.exports=function(e){var t=r(this),c=s(e);if(o(t)<c.size)return!1;var l=c.getIterator();return!1!==i(l,(function(e){if(!n(t,e))return a(l.iterator,"normal",!1)}))}}}),fr=d({"node_modules/core-js/modules/esnext.set.is-superset-of.js"(){p();var e=Oe(),t=w(),r=Kt(),n=ur();e({target:"Set",proto:!0,real:!0,forced:!0},{isSupersetOf:function(e){return t(n,this,r(e))}})}}),pr=d({"node_modules/core-js/modules/esnext.set.join.js"(){p();var e=Oe(),t=b(),r=Bt(),n=Gt(),o=Ot(),s=t([].join),i=t([].push);e({target:"Set",proto:!0,real:!0,forced:!0},{join:function(e){var t=r(this),a=void 0===e?",":o(e),c=[];return n(t,(function(e){i(c,e)})),s(c,a)}})}}),yr=d({"node_modules/core-js/modules/esnext.set.map.js"(){p();var e=Oe(),t=at(),r=Bt(),n=zt(),o=Gt(),s=n.Set,i=n.add;e({target:"Set",proto:!0,real:!0,forced:!0},{map:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e){i(c,a(e,e,n))})),c}})}}),hr=d({"node_modules/core-js/modules/esnext.set.reduce.js"(){p();var e=Oe(),t=N(),r=Bt(),n=Gt(),o=TypeError;e({target:"Set",proto:!0,real:!0,forced:!0},{reduce:function(e){var s=r(this),i=arguments.length<2,a=i?void 0:arguments[1];if(t(e),n(s,(function(t){i?(i=!1,a=t):a=e(a,t,t,s)})),i)throw new o("Reduce of empty set with no initial value");return a}})}}),mr=d({"node_modules/core-js/modules/esnext.set.some.js"(){p();var e=Oe(),t=at(),r=Bt(),n=Gt();e({target:"Set",proto:!0,real:!0,forced:!0},{some:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0);return!0===n(o,(function(e){if(s(e,e,o))return!0}),!0)}})}}),vr=d({"node_modules/core-js/internals/set-symmetric-difference.js"(e,t){p();var r=Bt(),n=zt(),o=Ht(),s=Zt(),i=Qt(),a=n.add,c=n.has,l=n.remove;t.exports=function(e){var t=r(this),n=s(e).getIterator(),d=o(t);return i(n,(function(e){c(t,e)?l(d,e):a(d,e)})),d}}}),wr=d({"node_modules/core-js/modules/esnext.set.symmetric-difference.js"(){p();var e=Oe(),t=w(),r=Kt(),n=vr();e({target:"Set",proto:!0,real:!0,forced:!0},{symmetricDifference:function(e){return t(n,this,r(e))}})}}),gr=d({"node_modules/core-js/internals/set-union.js"(e,t){p();var r=Bt(),n=zt().add,o=Ht(),s=Zt(),i=Qt();t.exports=function(e){var t=r(this),a=s(e).getIterator(),c=o(t);return i(a,(function(e){n(c,e)})),c}}}),jr=d({"node_modules/core-js/modules/esnext.set.union.js"(){p();var e=Oe(),t=w(),r=Kt(),n=gr();e({target:"Set",proto:!0,real:!0,forced:!0},{union:function(e){return t(n,this,r(e))}})}}),br=d({"dist/data/utilities/parsers/splitClauses.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.whereHint=e.splitClauses=e.clauseOrder=void 0,Nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Mt(),r=e.clauseOrder={read:["select","on","merge","where","group by","sort","limit","offset"],insert:["values"],update:["set","where"],delete:["where"]},n=[...new Set(Object.values(r).flat())],o=/^\s*(delete|insert|read|update)\s+([a-z0-9_-]+(\s*\.[a-z0-9_-]+)?)/i,s=new RegExp(`${t.placeholderSource}|${t.arraySource}|[a-z0-9_.-]+|<>|!=|>=|<=|\\S`,"gi"),i=["=","!=","<>",">","<",">=","<=","in","between","like","is","exists","does"],a={on:e=>"and"===e,merge:()=>!0},c=e.whereHint="use and / or inside one where clause (where a = 1 and b = 2)";e.splitClauses=e=>{const t=e.match(o);if(!t)return;const l=t[1].toLowerCase(),d=r[l],u=/^[aeiou]/.test(l)?"an":"a";if(t[3]&&"read"!==l)throw new Error(`A joined record (${t[2]}) isn't allowed in ${u} ${l} query`);const f=[...e.slice(t[0].length).matchAll(s)].map((({0:e,index:r})=>({text:e,lower:e.toLowerCase(),start:t[0].length+r}))),p=[];let y=0,h=!1;for(let e=0;e<f.length;e++){const{lower:t,start:r}=f[e],o=f[e-1]?.lower,s=f[e+1]?.lower;"("!==t&&")"!==t||(y+="("===t?1:-1);const m="group"===t&&"by"===s?"group by":t,v=h||","===o||"as"===o||i.includes(s);if(h=!1,y>0||"by"===m||!n.includes(m)||v)continue;const w=p[p.length-1]?.keyword;if(w===m&&a[m]?.(o))continue;const g=p.some((e=>"where"===e.keyword));if("where"===m&&g&&("and"===o||"or"===o))throw new Error(`"${o} where" is no longer supported: ${c}`);if(!d.includes(m))throw new Error(`"${m}" isn't allowed in ${u} ${l} query (allowed: ${d.join(", ")})`);if(w&&d.indexOf(m)<d.indexOf(w))throw new Error(`"${m}" can't come after "${w}" (order: ${d.join(", ")})`);if(p.some((e=>e.keyword===m)))throw new Error(`Only one "${m}" clause is allowed${"where"===m?`: ${c}`:""}`);"group by"===m&&e++,p.push({keyword:m,start:r,end:f[e].start+f[e].text.length}),h=!0}return{command:l,head:t[0].trim(),leading:e.slice(t[0].length,p[0]?.start??e.length).trim(),clauses:p.map((({keyword:t,end:r},n)=>({keyword:t,body:e.slice(r,p[n+1]?.start??e.length).trim()})))}}}}),_r=d({"dist/data/utilities/parsers/findConditions.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findConditions=void 0,Nt(),Ke(),qt();var t=Rt(),r=Lt(),n=Mt(),o=br(),s="(?![a-z0-9_.-])",i=e=>new RegExp(`^(?:${e})${s}`,"i"),a=new RegExp(`^([a-z0-9_-]+\\.?[a-z0-9_-]*)\\s+(?:(is\\s+not\\s+null|is\\s+null|exists|does\\s+not\\s+exist)${s}|(<>|!=|>=|<=|=|>|<|in|between|like)\\s+(${n.placeholderSource}|(${t.numberSource})|${n.arraySource}|(null)|(true)|(false)))`,"i"),c=(e,t)=>{const n=t.flatMap((t=>!(0,r.isCondition)(t)&&e in t?t[e]:[t]));return 1===n.length?n[0]:"and"===e?{and:n}:{or:n}},l=e=>{let r=0;const s=()=>e.slice(r),l=()=>{r+=s().length-s().trimStart().length},d=e=>{l();const t=s().match(e);if(t)return r+=t[0].length,t[0]},u=()=>(0,n.unmaskStrings)(s().trim(),"'"),f=e=>{l();const n=s().match(a);if(n)return r+=n[0].length,(e=>{const r=e[1];if(void 0!==e[2])return{property:r,comparator:e[2].toLowerCase().replace(/\s+/g," "),value:null};const n=e[3].toLowerCase(),o=(0,t.parseLiteralValue)(e,5);if(null===o)throw new Error(`\`${r} ${n} null\` never matches (null equals nothing, as in SQL): use \`${r} is null\` or \`${r} is not null\``);if("between"===n&&Array.isArray(o)&&o.includes(null))throw new Error(`\`${r} between\` can't have a null bound: it would never match`);return{property:r,comparator:n,value:o}})(n);if(("and"===e||"or"===e)&&i("where").test(s()))throw new Error(`"${e} where" is no longer supported: ${o.whereHint}`);if(d(i("not")))return{not:f("not")};if(d(/^\(/)){if(l(),s().startsWith(")"))throw new Error("Empty brackets in a where clause");const e=y("(");if(!d(/^\)/))throw new Error("Missing ) "+(s().trim()?`before: ${u()}`:"at the end of the where clause"));return e}throw new Error(`Missing a condition after ${e}${s().trim()?`: ${u()}`:""}`)},p=e=>{const t=[f(e)];for(;;){const e=d(i("and"));if(!e)break;t.push(f(e.toLowerCase().replace(/\s+/g," ")))}return c("and",t)},y=e=>{const t=[p(e)];for(;;){const e=d(i("or"));if(!e)break;t.push(p(e.toLowerCase().replace(/\s+/g," ")))}return c("or",t)},h=y("where");if(l(),s().startsWith(")"))throw new Error(`Unexpected ) in a where clause: ${u()}`);if(a.test(s()))throw new Error(`Missing and/or before: ${u()}`);return{node:h,end:r}};e.findConditions=(e,t)=>{const{node:r,end:n}=l(t);return e.where=r,t.slice(n).trim()}}}),xr=d({"dist/data/utilities/parsers/findJoinClauses.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findJoinClauses=void 0;var t=/^([a-z0-9_-]+\.[a-z0-9_-]+)\s+(=|!=|>|<|>=|<=|in|between|like)\s+([a-z0-9_-]+\.[a-z0-9_-]+)(?![a-z0-9._-])/i,r=/^and\s+on\s+/i;e.findJoinClauses=(e,n)=>{let o=n;for(let n=o.match(t);n;n=o.match(t)){e.joinClauses.push({propertyA:n[1],comparator:n[2],propertyB:n[3]}),o=o.slice(n[0].length).trim();const s=o.match(r);if(!s||!t.test(o.slice(s[0].length)))break;o=o.slice(s[0].length)}return o}}}),Or=d({"dist/data/utilities/parsers/findMergeJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findMergeJoins=void 0;var t=/^([a-z0-9_-]+\.[a-z0-9_-]+)\s+with\s+([a-z0-9_-]+\.[a-z0-9_-]+)(?![a-z0-9._-])/i,r=/^(?:and\s+)?merge\s+/i;e.findMergeJoins=(e,n)=>{let o=n;for(let n=o.match(t);n;n=o.match(t)){e.mergeJoins.push({propertyA:n[1],propertyB:n[2]}),o=o.slice(n[0].length).trim();const s=o.match(r);if(!s||!t.test(o.slice(s[0].length)))break;o=o.slice(s[0].length)}return o}}}),$r=d({"dist/data/utilities/parsers/findSortClauses.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findSortClauses=void 0;var t="[a-z0-9._-]+(?:\\s+(?:asc|desc)(?![a-z0-9._-]))?",r=new RegExp(`^${t}(?:\\s*,\\s*${t})*`,"i"),n=/,?\s*([a-z0-9._-]+)(?:\s+(asc|desc)(?![a-z0-9._-]))?/gi;e.findSortClauses=(e,t)=>{const o=t.match(r);if(o){const r=o[0].matchAll(n);for(const t of r)e.sortClauses.push({property:t[1],direction:(t[2]||"asc").toLowerCase()});return t.slice(o[0].length).trim()}return t}}}),Er=d({"node_modules/core-js/modules/es.iterator.find.js"(){p();var e=Oe(),t=w(),r=ft(),n=N(),o=ee(),s=Ae(),i=Qe(),a=Ye()("find",TypeError);e({target:"Iterator",proto:!0,real:!0,forced:a},{find:function(e){o(this);try{n(e)}catch(e){i(this,"throw",e)}if(a)return t(a,this,e);var c=s(this),l=0;return r(c,(function(t,r){if(e(t,l++))return r(t)}),{IS_RECORD:!0,INTERRUPTED:!0}).result}})}}),kr=d({"node_modules/core-js/modules/esnext.iterator.find.js"(){p(),Er()}}),Pr=d({"dist/data/utilities/parsers/findGroupBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findGroupBy=void 0,Ke(),kr();var t=/^[a-z0-9._-]+(?:\s*,\s*[a-z0-9._-]+)*/i;e.findGroupBy=(e,r)=>{const n=r.match(t);if(n){const t=n[0].split(/\s*,\s*/),o=t.find(((e,r)=>t.indexOf(e)!==r));if(o)throw new Error(`"${o}" is in group by twice`);return e.groupBy=t,r.slice(n[0].length).trim()}return r}}}),Sr=d({"dist/data/utilities/parsers/findLimit.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findLimit=void 0;var t=/^(\d+)/;e.findLimit=(e,r)=>{const n=r.match(t);return n?(e.limit=n?parseInt(n[1]):void 0,r.slice(n[0].length).trim()):r}}}),Mr=d({"dist/data/utilities/parsers/findOffset.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findOffset=void 0;var t=/^(\d+)/;e.findOffset=(e,r)=>{const n=r.match(t);return n?(e.offset=n?parseInt(n[1]):void 0,r.slice(n[0].length).trim()):r}}}),Rr=d({"dist/data/introspect/policies/typeCheck.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.typeCheck=e.fieldTypes=void 0;e.fieldTypes=["string","int","boolean","object","array"];e.typeCheck=(e="string",t=void 0,r=!1)=>{if(void 0===t)return t;if(null===t){if(r)return t;throw new Error('Value "null" is not allowed: the field is not nullable')}switch(e){case"string":return"string"==typeof t?t:String(t);case"int":{const e=Number(t);if(Number.isNaN(e)||!Number.isInteger(e))throw new Error(`Value "${t}" is not a valid int`);if(!Number.isSafeInteger(e))throw new Error(`Value "${t}" is too large for an int (the largest is ${Number.MAX_SAFE_INTEGER})`);return e}case"boolean":if("boolean"==typeof t)return t;if("true"===t)return!0;if("false"===t)return!1;throw new Error(`Value "${t}" is not a valid boolean`);case"object":if("object"!=typeof t||null===t||Array.isArray(t))throw new Error(`Value "${t}" is not a valid object`);return t;case"array":if(!Array.isArray(t))throw new Error(`Value "${t}" is not a valid array`);return t;default:return t}}}}),Dr=d({"dist/data/utilities/parsers/startsQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.startsQueryMatch=void 0;e.startsQueryMatch=/^\s*(alter|create|delete|describe|drop|insert|read|show|update|use)(?![a-z0-9_-])/i}}),Cr=d({"dist/data/utilities/parsers/parseCreate.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseField=e.parseCreate=e.nameSource=e.nameMatch=e.keyLookup=e.fieldMatch=e.createMatch=void 0,Nt(),Ke(),st(),kr(),nt(),St(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Rr(),r=Mt(),n=Rt(),o=Dr(),s=(e.createMatch=/^\s*create(?![a-z0-9_-])/i,/^\s*create\s+(if\s+not\s+exists\s+)?([a-z0-9_-]+)\s*\(/i),i=e.nameSource="[a-z0-9_-]+",a=e.nameMatch=new RegExp(`^${i}$`,"i"),c=new RegExp(`^${n.numberSource}$`,"i"),l=e.fieldMatch=new RegExp(`^(${i})\\s+(${i})((?:\\s[\\s\\S]*)?)$`,"i"),d=/^primary\s+key\s*\(([^()]*)\)$/i,u=/^unique\s*\(([^()]*)\)$/i,f=/^index\s*\(([^()]*)\)$/i,y=new RegExp(`^foreign\\s+key\\s*\\(([^()]*)\\)\\s*references\\s+(${i})\\s*\\(([^()]*)\\)$`,"i"),h=new RegExp(`^${r.placeholderSource}$`),m=new RegExp(`^${r.arraySource}$`),v={primary:"pk",unique:"unique",index:"index",foreign:"fk"},w=(e,t)=>`${v[e]}_${t.join("_")}.json`;e.keyLookup=w;var g=e=>(0,r.unmaskStrings)(e.trim(),"'"),j=(e,t)=>{const r=e.split(",").map((e=>e.trim()));if(r.some((e=>!a.test(e))))throw new Error(`Expected field names separated by commas in: ${g(t)}`);if(new Set(r).size!==r.length)throw new Error(`The same field is named twice in: ${g(t)}`);return r},b=e=>{if(void 0===e)throw new Error("Missing a value after default");const t=e.match(h);if(t)return(0,r.fromPlaceholder)(t[1]);const o=e.match(m);if(o)return JSON.parse((0,r.fromPlaceholder)(o[1]));if(c.test(e))return(0,n.parseNumber)(e);switch(e.toLowerCase()){case"null":return null;case"true":return!0;case"false":return!1}throw new Error(`Unrecognized default value: ${g(e)}`)},_=e=>{const[r,n,o,s]=e,i=o.toLowerCase();if(!t.fieldTypes.includes(i))throw new Error(`Unknown type "${o}" for field "${n}" (expected ${t.fieldTypes.join(", ")})`);const a={name:n,type:i,optional:!1,autoGenerate:!1},c=new Set,l=e=>{if(c.has(e))throw new Error(`"${e}" is given twice for field "${n}"`);c.add(e)},d=""===s.trim()?[]:s.trim().split(/\s+/);for(let e=0;e<d.length;e++){const t=d[e].toLowerCase();if("optional"===t)l("optional"),a.optional=!0;else if("auto"===t)l("auto"),a.autoGenerate=!0;else if("null"===t)l("null"),a.nullable=!0;else if("not"===t&&"null"===(d[e+1]||"").toLowerCase())l("null"),a.nullable=!1,e++;else{if("default"!==t)throw new Error(`Unrecognized "${g(d[e])}" for field "${n}" in: ${g(r)}`);l("default"),a.useDefault=!0,a.defaultValue=b(d[++e])}}if(a.autoGenerate&&a.useDefault)throw new Error(`Field "${n}" can't be both auto and have a default`);if(a.autoGenerate&&"string"!==i)throw new Error(`Field "${n}" is auto, which generates a UUID, so its type must be string`);return a};e.parseField=_;var x=e=>{let t=e.match(d);if(t)return{type:"primary",fields:j(t[1],e)};if(t=e.match(u),t)return{type:"unique",fields:j(t[1],e)};if(t=e.match(f),t)return{type:"index",fields:j(t[1],e)};if(t=e.match(y),t){const r=j(t[1],e),n=j(t[3],e);if(1!==r.length||1!==n.length)throw new Error(`Only single-field foreign keys are supported so far: ${g(e)}`);return{type:"foreign",fields:r,references:[{fields:[`${t[2]}.${n[0]}`],lookup:`${t[2]}.json`}]}}return null},O=(e,t)=>{const r=e.map((e=>e.name));if(t.filter((e=>"primary"===e.type)).length>1)throw new Error("Only one primary key is allowed");const n=new Set;return t.map((e=>{const t=e.fields.find((e=>!r.includes(e)));if(t)throw new Error(`The ${e.type} key (${e.fields.join(", ")}) names "${t}", which is not a field`);const o=w(e.type,e.fields);if(n.has(o))throw new Error(`The same ${e.type} key on "${e.fields.join(", ")}" is given twice`);return n.add(o),Object.assign({type:e.type,fields:e.fields,lookup:o},e.references?{references:e.references}:{})}))};e.parseCreate=e=>{const t=e.match(s);if(!t)throw new Error("Expected: create [if not exists] <name> (<fields and keys>)");const r=t[2];if("__RECORDS"===r)throw new Error("__RECORDS is reserved for the list of records");const n=t[0].length-1,i=((e,t)=>{let r=0;for(let n=t;n<e.length;n++)if("("===e[n])r++;else if(")"===e[n]&&(r--,0===r))return n;return-1})(e,n);if(-1===i)throw new Error("Missing ) at the end of the field list");const a=e.slice(i+1).trim();if(a){if(o.startsQueryMatch.test(a))throw new Error(`Missing ; before: ${g(a)}`);throw new Error(`Unrecognized query value: ${g(a)}`)}const c=e.slice(n+1,i),d=[],u=[];if(c.trim())for(const e of(e=>{const t=[];let r=0,n=0;for(let o=0;o<e.length;o++)"("===e[o]?r++:")"===e[o]?r--:","===e[o]&&0===r&&(t.push(e.slice(n,o)),n=o+1);return t.push(e.slice(n)),t.map((e=>e.trim()))})(c)){if(!e)throw new Error("Empty item in the field list (an extra comma?)");const t=x(e);if(t){u.push(t);continue}const r=e.match(l);if(!r)throw new Error(`Expected a field (<name> <type> ...) or a key in: ${g(e)}`);const n=_(r);if(d.some((e=>e.name===n.name)))throw new Error(`Field "${n.name}" is given twice`);d.push(n)}return{entity:r,create:{ifNotExists:Boolean(t[1]),definition:d,keys:O(d,u)}}}}}),Ar=d({"dist/data/utilities/parsers/parseSchemaStatement.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.schemaStatementMatch=e.parseSchemaStatement=void 0;var t=Mt(),r=Dr(),n=e.schemaStatementMatch=/^\s*(drop|describe|show)(?![a-z0-9_-])/i,o=/^\s*drop\s+(if\s+exists\s+)?([a-z0-9_-]+)/i,s=/^\s*describe\s+([a-z0-9_-]+)/i,i=/^\s*show\s+records(?![a-z0-9_-])/i,a=e=>{const n=e.trim();if(!n)return;const o=(0,t.unmaskStrings)(n,"'");if(r.startsQueryMatch.test(n))throw new Error(`Missing ; before: ${o}`);throw new Error(`Unrecognized query value: ${o}`)},c=e=>{if("__RECORDS"===e)throw new Error("__RECORDS is reserved for the list of records (use: show records)")};e.parseSchemaStatement=e=>{const t=e.match(n)[1].toLowerCase();if("drop"===t){const t=e.match(o);if(!t||/^\s*drop\s+if\s+exists\s*$/i.test(e))throw new Error("Expected: drop [if exists] <name>");return c(t[2]),a(e.slice(t[0].length)),{command:"drop",entity:t[2],ifExists:Boolean(t[1])}}if("describe"===t){const t=e.match(s);if(!t)throw new Error("Expected: describe <name>");return c(t[1]),a(e.slice(t[0].length)),{command:"describe",entity:t[1],ifExists:!1}}const r=e.match(i);if(!r)throw new Error("Expected: show records (the only thing that can be shown so far)");return a(e.slice(r[0].length)),{command:"show",entity:"__RECORDS",ifExists:!1}}}}),Fr=d({"dist/data/utilities/parsers/parseAlter.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseAlter=e.alterMatch=void 0;var t=Cr(),r=Mt(),n=Dr(),o=(e.alterMatch=/^\s*alter(?![a-z0-9_-])/i,new RegExp(`^\\s*alter\\s+(${t.nameSource})\\s+(add|drop|rename|modify)(?![a-z0-9_-])([\\s\\S]*)$`,"i")),s=new RegExp(`^\\s*(${t.nameSource})\\s+to\\s+(${t.nameSource})\\s*$`,"i"),i=e=>(0,r.unmaskStrings)(e.trim(),"'"),a=e=>{const r=e.trim().match(t.fieldMatch);if(!r)throw new Error(`Expected a field (<name> <type> ...) in: ${i(e)}`);return(0,t.parseField)(r)};e.parseAlter=e=>{const r=e.match(o);if(!r)throw new Error("Expected: alter <record> add <field> <type> ..., drop <field>, rename <field> to <name>, or modify <field> <type> ...");const[,c,l,d]=r;if("__RECORDS"===c)throw new Error("__RECORDS is reserved for the list of records");const u=l.toLowerCase();if(n.startsQueryMatch.test(d.trim())&&!/^\s*(add|drop|rename|modify)\b/i.test(d))throw new Error(`Missing ; before: ${i(d)}`);switch(u){case"add":case"modify":return{entity:c,alter:{action:u,field:a(d)}};case"drop":{const e=d.trim();if(!t.nameMatch.test(e))throw new Error(`Expected: alter ${c} drop <field>${e?` (got: ${i(e)})`:""}`);return{entity:c,alter:{action:u,name:e}}}default:{const e=d.match(s);if(!e)throw new Error(`Expected: alter ${c} rename <field> to <name>${d.trim()?` (got: ${i(d)})`:""}`);return{entity:c,alter:{action:"rename",name:e[1],to:e[2]}}}}}}}),Tr=d({"dist/data/utilities/parsers/parseDatabaseStatement.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseDatabaseStatement=e.databaseStatementMatch=void 0;var t=Mt(),r=Dr(),n=(e.databaseStatementMatch=/^\s*(?:(?:create|drop)\s+database\s+(?!\()[a-z0-9_-]|show\s+databases(?![a-z0-9_-])|use(?![a-z0-9_.-]))/i,/^\s*create\s+database\s+(if\s+not\s+exists\s+)?([a-z0-9_-]+)/i),o=/^\s*drop\s+database\s+(if\s+exists\s+)?([a-z0-9_-]+)/i,s=/^\s*use\s+([a-z0-9_-]+)/i,i=/^\s*show\s+databases/i,a=e=>{const n=e.trim();if(!n)return;const o=(0,t.unmaskStrings)(n,"'");if(r.startsQueryMatch.test(n))throw new Error(`Missing ; before: ${o}`);throw new Error(`Unrecognized query value: ${o}`)};e.parseDatabaseStatement=e=>{const t={ifExists:!1,ifNotExists:!1};let r=e.match(n);if(r)return a(e.slice(r[0].length)),{...t,command:"create database",entity:r[2],ifNotExists:Boolean(r[1])};if(r=e.match(o),r)return a(e.slice(r[0].length)),{...t,command:"drop database",entity:r[2],ifExists:Boolean(r[1])};if(r=e.match(i),r)return a(e.slice(r[0].length)),{...t,command:"show databases",entity:"__DATABASES"};if(r=e.match(s),!r)throw new Error("Expected: use <database>");return a(e.slice(r[0].length)),{...t,command:"use",entity:r[1]}}}}),Nr=d({"dist/data/utilities/parsers/parseQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseQuery=void 0;var t=wt(),r=Dt(),n=Ct(),o=At(),s=Ft(),i=_r(),a=Lt(),c=xr(),l=Or(),d=$r(),u=Pr(),f=Sr(),y=Mr(),h=Mt(),m=Cr(),v=Ar(),w=Fr(),g=Tr(),j=br(),b=Dr(),_={values:{step:r.findInsertValues,expected:"an assignment (field = value)"},set:{step:n.findUpdateValues,expected:"an assignment (field = value)"},select:{step:s.findSelects,expected:"a field"},on:{step:c.findJoinClauses,expected:"a join condition (a.x = b.y)"},merge:{step:l.findMergeJoins,expected:"a merge (a.x with b.y)"},where:{step:i.findConditions,expected:"a condition"},"group by":{step:u.findGroupBy,expected:"a field"},sort:{step:d.findSortClauses,expected:"a field"},limit:{step:f.findLimit,expected:"a whole number"},offset:{step:y.findOffset,expected:"a whole number"}},x=(e,t)=>{const r=e=>(0,h.unmaskStrings)(e,"'");return b.startsQueryMatch.test(e)?new Error(`Missing ; before: ${r(e)}`):new Error(`Unexpected "${r(e)}" after "${r(t)}"`)};e.parseQuery=e=>{const r={command:void 0,entity:void 0,joinEntity:void 0,selectClauses:[],insertValues:[],updateValues:{},where:void 0,joinClauses:[],mergeJoins:[],sortClauses:[],groupBy:void 0,limit:void 0,offset:void 0,create:void 0,ifExists:void 0};if(e=(0,h.maskArrays)((0,h.maskStrings)(e)),g.databaseStatementMatch.test(e))return Object.assign(r,(0,g.parseDatabaseStatement)(e));if(m.createMatch.test(e)){const{entity:t,create:n}=(0,m.parseCreate)(e);return Object.assign(r,{command:"create",entity:t,create:n})}if(v.schemaStatementMatch.test(e))return Object.assign(r,(0,v.parseSchemaStatement)(e));if(w.alterMatch.test(e)){const{entity:t,alter:n}=(0,w.parseAlter)(e);return Object.assign(r,{command:"alter",entity:t,alter:n})}const n=(0,j.splitClauses)(e);if(!n){if(e=e.trim(),b.startsQueryMatch.test(e))throw new Error(`Missing ; before: ${(0,h.unmaskStrings)(e,"'")}`);throw new Error(`Unrecognized query value: ${(0,h.unmaskStrings)(e,"'")}`)}if((0,o.findJoinEntity)(r,(0,t.findCommand)(r,n.head)),r.where=(0,a.allOf)([]),n.leading)throw x(n.leading,n.head);for(const{keyword:e,body:t}of n.clauses){const{step:n,expected:o}=_[e],s=n(r,t);if(s===t)throw new Error(`Missing ${o} after ${e}${t?`: ${(0,h.unmaskStrings)(t,"'")}`:""}`);if(s)throw x(s,`${e} ${t.slice(0,t.length-s.length).trim()}`)}if((r.joinClauses||[]).length&&!r.joinEntity)throw new Error(`"on" needs the record to join, after the one read: ${r.command} ${r.entity}.<record> on ...`);return r}}}),Ir=d({"dist/data/queries/parser.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parser=void 0,Ke(),nt();var t=vt(),r=Nr();e.parser=(e="")=>{const n=(0,t.splitQueries)(e);return n.map(((e,t)=>{try{return(0,r.parseQuery)(e)}catch(r){const o=n.length>1?` query ${t+1} of ${n.length}`:"";throw new Error(`Failed to interpret${o}: ${e} (${r.message})`)}}))}}}),Jr=d({"node_modules/core-js/internals/weak-map-helpers.js"(e,t){p();var r=b(),n=WeakMap.prototype;t.exports={WeakMap:WeakMap,set:r(n.set),get:r(n.get),has:r(n.has),remove:r(n.delete)}}}),qr=d({"node_modules/core-js/internals/a-weak-map.js"(e,t){p();var r=Jr().has;t.exports=function(e){return r(e),e}}}),Lr=d({"node_modules/core-js/modules/esnext.weak-map.delete-all.js"(){p();var e=Oe(),t=qr(),r=Jr().remove;e({target:"WeakMap",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,n=t(this),o=!0,s=0,i=arguments.length;s<i;s++)e=r(n,arguments[s]),o=o&&e;return!!o}})}}),zr=d({"node_modules/browser-or-node/dist/index.js"(t,r){p();var n,o=Object.defineProperty,s=Object.getOwnPropertyDescriptor,i=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,c={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(c,{isBrowser:()=>l,isBun:()=>h,isDeno:()=>y,isJsDom:()=>f,isNode:()=>d,isWebWorker:()=>u}),r.exports=(n=c,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let c of i(t))a.call(e,c)||c===r||o(e,c,{get:()=>t[c],enumerable:!(n=s(t,c))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var l="undefined"!=typeof window&&void 0!==window.document,d=void 0!==e.default&&null!=e.default.versions&&null!=e.default.versions.node,u="object"==typeof self&&self.constructor&&"DedicatedWorkerGlobalScope"===self.constructor.name,f="undefined"!=typeof window&&"nodejs"===window.name||"undefined"!=typeof navigator&&"userAgent"in navigator&&"string"==typeof navigator.userAgent&&(navigator.userAgent.includes("Node.js")||navigator.userAgent.includes("jsdom")),y="undefined"!=typeof Deno&&void 0!==Deno.version&&void 0!==Deno.version.deno,h=void 0!==e.default&&null!=e.default.versions&&null!=e.default.versions.bun}}),Br=d({"node_modules/path-browserify/index.js"(t,r){function n(e){if("string"!=typeof e)throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}function o(e,t){for(var r,n="",o=0,s=-1,i=0,a=0;a<=e.length;++a){if(a<e.length)r=e.charCodeAt(a);else{if(47===r)break;r=47}if(47===r){if(s===a-1||1===i);else if(s!==a-1&&2===i){if(n.length<2||2!==o||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var c=n.lastIndexOf("/");if(c!==n.length-1){-1===c?(n="",o=0):o=(n=n.slice(0,c)).length-1-n.lastIndexOf("/"),s=a,i=0;continue}}else if(2===n.length||1===n.length){n="",o=0,s=a,i=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(s+1,a):n=e.slice(s+1,a),o=a-s-1;s=a,i=0}else 46===r&&-1!==i?++i:i=-1}return n}p();var s={resolve:function(){for(var t,r="",s=!1,i=arguments.length-1;i>=-1&&!s;i--){var a;i>=0?a=arguments[i]:(void 0===t&&(t=e.default.cwd()),a=t),n(a),0!==a.length&&(r=a+"/"+r,s=47===a.charCodeAt(0))}return r=o(r,!s),s?r.length>0?"/"+r:"/":r.length>0?r:"."},normalize:function(e){if(n(e),0===e.length)return".";var t=47===e.charCodeAt(0),r=47===e.charCodeAt(e.length-1);return 0!==(e=o(e,!t)).length||t||(e="."),e.length>0&&r&&(e+="/"),t?"/"+e:e},isAbsolute:function(e){return n(e),e.length>0&&47===e.charCodeAt(0)},join:function(){if(0===arguments.length)return".";for(var e,t=0;t<arguments.length;++t){var r=arguments[t];n(r),r.length>0&&(void 0===e?e=r:e+="/"+r)}return void 0===e?".":s.normalize(e)},relative:function(e,t){if(n(e),n(t),e===t)return"";if((e=s.resolve(e))===(t=s.resolve(t)))return"";for(var r=1;r<e.length&&47===e.charCodeAt(r);++r);for(var o=e.length,i=o-r,a=1;a<t.length&&47===t.charCodeAt(a);++a);for(var c=t.length-a,l=i<c?i:c,d=-1,u=0;u<=l;++u){if(u===l){if(c>l){if(47===t.charCodeAt(a+u))return t.slice(a+u+1);if(0===u)return t.slice(a+u)}else i>l&&(47===e.charCodeAt(r+u)?d=u:0===u&&(d=0));break}var f=e.charCodeAt(r+u);if(f!==t.charCodeAt(a+u))break;47===f&&(d=u)}var p="";for(u=r+d+1;u<=o;++u)u!==o&&47!==e.charCodeAt(u)||(0===p.length?p+="..":p+="/..");return p.length>0?p+t.slice(a+d):(a+=d,47===t.charCodeAt(a)&&++a,t.slice(a))},_makeLong:function(e){return e},dirname:function(e){if(n(e),0===e.length)return".";for(var t=e.charCodeAt(0),r=47===t,o=-1,s=!0,i=e.length-1;i>=1;--i)if(47===(t=e.charCodeAt(i))){if(!s){o=i;break}}else s=!1;return-1===o?r?"/":".":r&&1===o?"//":e.slice(0,o)},basename:function(e,t){if(void 0!==t&&"string"!=typeof t)throw new TypeError('"ext" argument must be a string');n(e);var r,o=0,s=-1,i=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var a=t.length-1,c=-1;for(r=e.length-1;r>=0;--r){var l=e.charCodeAt(r);if(47===l){if(!i){o=r+1;break}}else-1===c&&(i=!1,c=r+1),a>=0&&(l===t.charCodeAt(a)?-1==--a&&(s=r):(a=-1,s=c))}return o===s?s=c:-1===s&&(s=e.length),e.slice(o,s)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!i){o=r+1;break}}else-1===s&&(i=!1,s=r+1);return-1===s?"":e.slice(o,s)},extname:function(e){n(e);for(var t=-1,r=0,o=-1,s=!0,i=0,a=e.length-1;a>=0;--a){var c=e.charCodeAt(a);if(47!==c)-1===o&&(s=!1,o=a+1),46===c?-1===t?t=a:1!==i&&(i=1):-1!==t&&(i=-1);else if(!s){r=a+1;break}}return-1===t||-1===o||0===i||1===i&&t===o-1&&t===r+1?"":e.slice(t,o)},format:function(e){if(null===e||"object"!=typeof e)throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e);return function(e,t){var r=t.dir||t.root,n=t.base||(t.name||"")+(t.ext||"");return r?r===t.root?r+n:r+e+n:n}("/",e)},parse:function(e){n(e);var t={root:"",dir:"",base:"",ext:"",name:""};if(0===e.length)return t;var r,o=e.charCodeAt(0),s=47===o;s?(t.root="/",r=1):r=0;for(var i=-1,a=0,c=-1,l=!0,d=e.length-1,u=0;d>=r;--d)if(47!==(o=e.charCodeAt(d)))-1===c&&(l=!1,c=d+1),46===o?-1===i?i=d:1!==u&&(u=1):-1!==i&&(u=-1);else if(!l){a=d+1;break}return-1===i||-1===c||0===u||1===u&&i===c-1&&i===a+1?-1!==c&&(t.base=t.name=0===a&&s?e.slice(1,c):e.slice(a,c)):(0===a&&s?(t.name=e.slice(1,i),t.base=e.slice(1,c)):(t.name=e.slice(a,i),t.base=e.slice(a,c)),t.ext=e.slice(i,c)),a>0?t.dir=e.slice(0,a-1):s&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};s.posix=s,r.exports=s}}),Vr=d({"dist/data/utilities/config.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.trackDatabaseCall=e.switchDatabase=e.resolveDatabasePath=e.lockPath=e.getSetting=e.databasesFolder=e.configure=e.activeDatabasePath=void 0,kt();var t={databasePath:"database/",relativePath:"",enforceForeignKeys:!0,readConcurrency:16,format:"compact"},r=0,n=/^[a-z0-9_-]+$/i,o=e=>e.endsWith("/")?e:`${e}/`,s=()=>t.databasesPath&&t.database?`${o(t.databasesPath)}${t.database}/`:c("databasePath","database/");e.activeDatabasePath=s;var i=()=>t.databasesPath?o(t.databasesPath):s();e.lockPath=i;e.databasesFolder=()=>{if(!t.databasesPath)throw new Error("Several databases need a folder to hold them: configure({ databasesPath: 'databases/' }) first");return o(t.databasesPath)};e.switchDatabase=e=>{t={...t,database:e}};var a=e=>Br().resolve(e);e.resolveDatabasePath=a;e.trackDatabaseCall=()=>{r++;let e=!1;return()=>{e||(e=!0,r--)}};e.configure=e=>{if(void 0!==e.format&&"compact"!==e.format&&"pretty"!==e.format)throw new Error(`Unknown format "${e.format}": use 'compact' or 'pretty'`);if(void 0!==e.database&&null!==e.database&&!n.test(e.database))throw new Error(`Invalid database name ${JSON.stringify(e.database)}: names use letters, digits, _ and - only`);const o={...t,...e};if(o.database&&!o.databasesPath)throw new Error("A database name needs the folder that holds the databases: configure({ databasesPath: 'databases/', database: '...' })");if(r>0){const n={active:a(s()),lock:a(i())},c=t;t=o;const l=a(s())!==n.active||a(i())!==n.lock;if(t=c,l){const t=["databasePath","databasesPath","database"].filter((t=>void 0!==e[t])).join(" / ");throw new Error(`Can't change ${t} while ${r} database call(s) are still running or queued: await them first`)}}t=o};var c=(e,r)=>void 0!==t[e]?t[e]:r;e.getSetting=c}}),Wr=d({"dist/data/storage/storagePath.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.storagePath=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Vr();e.storagePath=(e="")=>`${r.isBrowser?(0,n.getSetting)("relativePath",""):""}${(0,n.activeDatabasePath)()}${e}`}}),Ur=d({"js-build-tools-empty:fs/promises"(e,t){p(),t.exports={}}}),Kr=d({"dist/data/storage/nodeFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.nodeFiles=void 0;e.nodeFiles=()=>Ur()}}),Qr=d({"node_modules/core-js/internals/map-helpers.js"(e,t){p();var r=b(),n=Map.prototype;t.exports={Map:Map,set:r(n.set),get:r(n.get),has:r(n.has),remove:r(n.delete),proto:n}}}),Gr=d({"node_modules/core-js/internals/a-map.js"(e,t){p();var r=Qr().has;t.exports=function(e){return r(e),e}}}),Hr=d({"node_modules/core-js/modules/esnext.map.delete-all.js"(){p();var e=Oe(),t=Gr(),r=Qr().remove;e({target:"Map",proto:!0,real:!0,forced:!0},{deleteAll:function(){for(var e,n=t(this),o=!0,s=0,i=arguments.length;s<i;s++)e=r(n,arguments[s]),o=o&&e;return!!o}})}}),Xr=d({"node_modules/core-js/internals/map-iterate.js"(e,t){p();var r=b(),n=Qt(),o=Qr(),s=o.Map,i=o.proto,a=r(i.forEach),c=r(i.entries),l=c(new s).next;t.exports=function(e,t,r){return r?n({iterator:c(e),next:l},(function(e){return t(e[1],e[0])})):a(e,t)}}}),Yr=d({"node_modules/core-js/modules/esnext.map.every.js"(){p();var e=Oe(),t=at(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{every:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0);return!1!==n(o,(function(e,t){if(!s(e,t,o))return!1}),!0)}})}}),Zr=d({"node_modules/core-js/modules/esnext.map.filter.js"(){p();var e=Oe(),t=at(),r=Gr(),n=Qr(),o=Xr(),s=n.Map,i=n.set;e({target:"Map",proto:!0,real:!0,forced:!0},{filter:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e,t){a(e,t,n)&&i(c,t,e)})),c}})}}),en=d({"node_modules/core-js/modules/esnext.map.find.js"(){p();var e=Oe(),t=at(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{find:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0),i=n(o,(function(e,t){if(s(e,t,o))return{value:e}}),!0);return i&&i.value}})}}),tn=d({"node_modules/core-js/modules/esnext.map.find-key.js"(){p();var e=Oe(),t=at(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{findKey:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0),i=n(o,(function(e,t){if(s(e,t,o))return{key:t}}),!0);return i&&i.key}})}}),rn=d({"node_modules/core-js/internals/same-value-zero.js"(e,t){p(),t.exports=function(e,t){return e===t||e!=e&&t!=t}}}),nn=d({"node_modules/core-js/modules/esnext.map.includes.js"(){p();var e=Oe(),t=rn(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{includes:function(e){return!0===n(r(this),(function(r){if(t(r,e))return!0}),!0)}})}}),on=d({"node_modules/core-js/modules/esnext.map.key-of.js"(){p();var e=Oe(),t=Gr(),r=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{keyOf:function(e){var n=r(t(this),(function(t,r){if(t===e)return{key:r}}),!0);return n&&n.key}})}}),sn=d({"node_modules/core-js/modules/esnext.map.map-keys.js"(){p();var e=Oe(),t=at(),r=Gr(),n=Qr(),o=Xr(),s=n.Map,i=n.set;e({target:"Map",proto:!0,real:!0,forced:!0},{mapKeys:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e,t){i(c,a(e,t,n),e)})),c}})}}),an=d({"node_modules/core-js/modules/esnext.map.map-values.js"(){p();var e=Oe(),t=at(),r=Gr(),n=Qr(),o=Xr(),s=n.Map,i=n.set;e({target:"Map",proto:!0,real:!0,forced:!0},{mapValues:function(e){var n=r(this),a=t(e,arguments.length>1?arguments[1]:void 0),c=new s;return o(n,(function(e,t){i(c,t,a(e,t,n))})),c}})}}),cn=d({"node_modules/core-js/modules/esnext.map.merge.js"(){p();var e=Oe(),t=Gr(),r=ft(),n=Qr().set;e({target:"Map",proto:!0,real:!0,arity:1,forced:!0},{merge:function(e){for(var o=t(this),s=arguments.length,i=0;i<s;)r(arguments[i++],(function(e,t){n(o,e,t)}),{AS_ENTRIES:!0});return o}})}}),ln=d({"node_modules/core-js/modules/esnext.map.reduce.js"(){p();var e=Oe(),t=N(),r=Gr(),n=Xr(),o=TypeError;e({target:"Map",proto:!0,real:!0,forced:!0},{reduce:function(e){var s=r(this),i=arguments.length<2,a=i?void 0:arguments[1];if(t(e),n(s,(function(t,r){i?(i=!1,a=t):a=e(a,t,r,s)})),i)throw new o("Reduce of empty map with no initial value");return a}})}}),dn=d({"node_modules/core-js/modules/esnext.map.some.js"(){p();var e=Oe(),t=at(),r=Gr(),n=Xr();e({target:"Map",proto:!0,real:!0,forced:!0},{some:function(e){var o=r(this),s=t(e,arguments.length>1?arguments[1]:void 0);return!0===n(o,(function(e,t){if(s(e,t,o))return!0}),!0)}})}}),un=d({"node_modules/core-js/modules/esnext.map.update.js"(){p();var e=Oe(),t=N(),r=Gr(),n=Qr(),o=TypeError,s=n.get,i=n.has,a=n.set;e({target:"Map",proto:!0,real:!0,forced:!0},{update:function(e,n){var c=r(this),l=arguments.length;t(n);var d=i(c,e);if(!d&&l<3)throw new o("Updating absent value");var u=d?s(c,e):t(l>2?arguments[2]:void 0)(e,c);return a(c,e,n(u,e,c)),c}})}}),fn=d({"dist/data/storage/readCache.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.withReadCache=e.cachedRead=e.cacheWrite=e.cacheRemove=void 0,Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=Wr(),r=new Map,n=()=>r.get((0,t.storagePath)());e.withReadCache=async e=>{const n=(0,t.storagePath)(),o=r.get(n)||{calls:0,files:new Map};r.set(n,o),o.calls++,o.calls>1&&(o.files=new Map);try{return await e()}finally{o.calls--,o.calls||r.get(n)!==o||r.delete(n)}};e.cachedRead=(e,t)=>{const r=n();if(!r)return t();const o=r.files.get(e);if(o)return o;const s=t();return r.files.set(e,s),s.catch((()=>{r.files.get(e)===s&&r.files.delete(e)})),s};e.cacheWrite=(e,t)=>{n()?.files.set(e,Promise.resolve(t))};e.cacheRemove=(e,t=!1)=>{const r=n();if(r&&(r.files.delete(e),t)){const t=e.endsWith("/")?e:`${e}/`;for(const e of[...r.files.keys()])e.startsWith(t)&&r.files.delete(e)}}}}),pn=d({"dist/data/storage/writeSet.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeAtomically=e.withWriteSet=e.stageWrite=e.stageRemoveDirectory=e.stageRemove=e.stageMakeDirectory=e.pendingListing=e.pendingFile=e.pendingExists=void 0,Ke(),st(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Wr(),o=Kr(),s=fn();var i=new Map,a=()=>i.get((0,n.storagePath)()),c=e=>e.endsWith("/")?e:`${e}/`,l=(e,t)=>{for(const r of t)if(e===r||e.startsWith(c(r)))return!0;return!1},d=async(e,t)=>{const r=`${e}.${crypto.randomUUID()}.tmp`,n=(0,o.nodeFiles)();try{await n.writeFile(r,t),await n.rename(r,e)}catch(e){throw await n.rm(r,{force:!0}).catch((()=>{})),e}};e.writeAtomically=d;var u=async e=>{(0,s.cacheRemove)(e,!0),await(0,o.nodeFiles)().rm(e,{recursive:!0,force:!0}),(0,s.cacheRemove)(e,!0)};e.withWriteSet=async e=>{const t=(0,n.storagePath)();if(!r.isNode||i.has(t))return e();const a={files:new Map,madeFolders:new Set,removedFolders:new Set};let l;i.set(t,a);try{l=await e()}finally{i.delete(t)}return await(async e=>{const t=(0,o.nodeFiles)(),r=t=>{const r=c(t);return[...e.madeFolders].some((e=>e===t||e.startsWith(r)))||[...e.files].some((([e,t])=>null!==t&&e.startsWith(r)))},n=[...e.removedFolders];for(const e of n.filter(r))await u(e);for(const r of e.madeFolders)await t.mkdir(r,{recursive:!0});for(const[t,r]of e.files)null!==r&&(await d(t,r),(0,s.cacheWrite)(t,r));for(const[r,n]of e.files)null===n&&((0,s.cacheRemove)(r),await t.rm(r,{force:!0}),(0,s.cacheRemove)(r));for(const e of n.filter((e=>!r(e))))await u(e)})(a),l};e.pendingFile=e=>{const t=a();if(t)return t.files.has(e)?t.files.get(e):l(e,t.removedFolders)?null:void 0};e.pendingExists=e=>{const t=a();if(!t)return;if(t.files.has(e))return null!==t.files.get(e);const r=c(e);return!(![...t.madeFolders].some((t=>t===e||t.startsWith(r)))&&![...t.files].some((([e,t])=>null!==t&&e.startsWith(r))))||!l(e,t.removedFolders)&&void 0};e.pendingListing=(e,t)=>{const r=a();if(!r)return t;const n=c(e),o=new Set(t.filter((e=>!l(e,r.removedFolders))));for(const[e,t]of r.files)e.startsWith(n)&&(null===t?o.delete(e):o.add(e));return[...o]};e.stageWrite=(e,t)=>{const r=a();return!!r&&(r.files.delete(e),r.files.set(e,t),!0)};e.stageRemove=e=>{const t=a();return!!t&&(t.files.delete(e),t.files.set(e,null),!0)};e.stageMakeDirectory=e=>{const t=a();return!!t&&(t.madeFolders.add(e),!0)};e.stageRemoveDirectory=e=>{const t=a();if(!t)return!1;for(const r of[...t.files.keys()])l(r,new Set([e]))&&t.files.delete(r);for(const r of[...t.madeFolders])l(r,new Set([e]))&&t.madeFolders.delete(r);return t.removedFolders.add(e),!0}}}),yn=d({"dist/data/storage/readJson.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.readText=e.readJson=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Wr(),o=Kr(),s=fn(),i=pn();var a=async e=>{const t=(0,n.storagePath)(e),a=(0,i.pendingFile)(t);if(null===a)throw new Error(`ENOENT: no such file or directory, open '${t}' (deleted by this statement)`);return"string"==typeof a?a:(0,s.cachedRead)(t,(()=>r.isNode?(0,o.nodeFiles)().readFile(t,"utf8"):fetch(t).then((e=>e.text()))))};e.readText=a;e.readJson=async e=>JSON.parse(await a(e))}}),hn=d({"dist/data/storage/writeJson.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeJson=e.jsonText=void 0,kt();var t=Wr(),r=fn(),n=pn(),o=Vr(),s=(e,t=(0,o.getSetting)("format","compact"))=>"pretty"===t?JSON.stringify(e,null,2):JSON.stringify(e);e.jsonText=s;e.writeJson=async(e,o,i)=>{const a=(0,t.storagePath)(e),c=s(o,i);(0,n.stageWrite)(a,c)||(await(0,n.writeAtomically)(a,c),(0,r.cacheWrite)(a,c))}}}),mn=d({"dist/data/storage/makeDirectory.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.makeDirectory=void 0;var t=Wr(),r=Kr(),n=pn();e.makeDirectory=async(e="")=>{const o=(0,t.storagePath)(e);(0,n.stageMakeDirectory)(o)||await(0,r.nodeFiles)().mkdir(o,{recursive:!0})}}}),vn=d({"js-build-tools-empty:fs"(e,t){p(),t.exports={}}}),wn=d({"dist/data/storage/removeFile.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeFile=void 0;var t=Wr(),r=Kr(),n=fn(),o=pn();e.removeFile=async e=>{const s=(0,t.storagePath)(e),i=(0,o.pendingFile)(s);if(null===i||void 0===i&&!vn().existsSync(s))throw new Error(`ENOENT: no such file or directory, rm '${s}'`);(0,o.stageRemove)(s)||((0,n.cacheRemove)(s),await(0,r.nodeFiles)().rm(s),(0,n.cacheRemove)(s))}}}),gn=d({"dist/data/storage/removeDirectory.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeDirectory=void 0;var t=Wr(),r=Kr(),n=fn(),o=pn();e.removeDirectory=async e=>{const s=(0,t.storagePath)(e);(0,o.stageRemoveDirectory)(s)||((0,n.cacheRemove)(s,!0),await(0,r.nodeFiles)().rm(s,{recursive:!0,force:!0}),(0,n.cacheRemove)(s,!0))}}}),jn=d({"dist/data/storage/fileExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.fileExists=void 0;var t=Wr(),r=pn();e.fileExists=e=>{const n=(0,t.storagePath)(e),o=(0,r.pendingExists)(n);if(void 0!==o)return o;const{existsSync:s}=vn();return s(n)}}}),bn=d({"dist/data/storage/listFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.listFiles=void 0,Ke(),nt();var t=Wr(),r=Kr(),n=pn(),o=async e=>{let n;try{n=await(0,r.nodeFiles)().readdir((0,t.storagePath)(e),{withFileTypes:!0})}catch(e){if("ENOENT"===e?.code)return[];throw e}const s=[];for(const t of n)t.isDirectory()?s.push(...await o(`${e}${t.name}/`)):t.isFile()&&s.push(`${e}${t.name}`);return s};e.listFiles=async(e="")=>{const r=e?`${e.replace(/\/+$/,"")}/`:"",s=(await o(r)).map((e=>(0,t.storagePath)(e))),i=(0,t.storagePath)();return(0,n.pendingListing)((0,t.storagePath)(e),s).map((e=>e.slice(i.length))).sort()}}}),_n=d({"dist/data/storage/databases.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeDatabaseList=e.removeDatabaseFolder=e.readDatabaseList=e.makeDatabaseFolder=e.databasesLocation=e.databaseFolderExists=void 0,kt();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Vr(),o=Kr(),s=fn(),i=pn();var a=(e="")=>`${r.isBrowser?(0,n.getSetting)("relativePath",""):""}${(0,n.databasesFolder)()}${e}`;e.databasesLocation=a;var c=()=>a("__DATABASES.json");e.readDatabaseList=async()=>{let e;try{e=r.isNode?await(0,o.nodeFiles)().readFile(c(),"utf8"):await fetch(c()).then((e=>!1===e.ok?"[]":e.text()))}catch(e){if(r.isNode&&"ENOENT"!==e?.code)throw e;return[]}try{const t=JSON.parse(e);return Array.isArray(t)?t:[]}catch(e){if(!r.isNode)return[];throw new Error(`Could not read ${c()}: ${e.message}`)}};e.writeDatabaseList=async e=>{await(0,o.nodeFiles)().mkdir(a(),{recursive:!0}),await(0,i.writeAtomically)(c(),JSON.stringify(e))};e.databaseFolderExists=e=>vn().existsSync(a(e));e.makeDatabaseFolder=async e=>{await(0,o.nodeFiles)().mkdir(a(e),{recursive:!0})};e.removeDatabaseFolder=async e=>{const t=a(e);(0,s.cacheRemove)(t,!0),await(0,o.nodeFiles)().rm(t,{recursive:!0,force:!0}),(0,s.cacheRemove)(t,!0)}}}),xn=d({"dist/data/storage/index.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"databaseFolderExists",{enumerable:!0,get:function(){return l.databaseFolderExists}}),Object.defineProperty(e,"databasesLocation",{enumerable:!0,get:function(){return l.databasesLocation}}),Object.defineProperty(e,"fileExists",{enumerable:!0,get:function(){return a.fileExists}}),Object.defineProperty(e,"jsonText",{enumerable:!0,get:function(){return n.jsonText}}),Object.defineProperty(e,"listFiles",{enumerable:!0,get:function(){return c.listFiles}}),Object.defineProperty(e,"makeDatabaseFolder",{enumerable:!0,get:function(){return l.makeDatabaseFolder}}),Object.defineProperty(e,"makeDirectory",{enumerable:!0,get:function(){return o.makeDirectory}}),Object.defineProperty(e,"readDatabaseList",{enumerable:!0,get:function(){return l.readDatabaseList}}),Object.defineProperty(e,"readJson",{enumerable:!0,get:function(){return r.readJson}}),Object.defineProperty(e,"readText",{enumerable:!0,get:function(){return r.readText}}),Object.defineProperty(e,"removeDatabaseFolder",{enumerable:!0,get:function(){return l.removeDatabaseFolder}}),Object.defineProperty(e,"removeDirectory",{enumerable:!0,get:function(){return i.removeDirectory}}),Object.defineProperty(e,"removeFile",{enumerable:!0,get:function(){return s.removeFile}}),Object.defineProperty(e,"storagePath",{enumerable:!0,get:function(){return t.storagePath}}),Object.defineProperty(e,"withReadCache",{enumerable:!0,get:function(){return d.withReadCache}}),Object.defineProperty(e,"withWriteSet",{enumerable:!0,get:function(){return u.withWriteSet}}),Object.defineProperty(e,"writeDatabaseList",{enumerable:!0,get:function(){return l.writeDatabaseList}}),Object.defineProperty(e,"writeJson",{enumerable:!0,get:function(){return n.writeJson}});var t=Wr(),r=yn(),n=hn(),o=mn(),s=wn(),i=gn(),a=jn(),c=bn(),l=_n(),d=fn(),u=pn()}}),On=d({"dist/data/utilities/retrieveFile.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveFile=void 0;var t=xn();e.retrieveFile=async e=>{const r=await(0,t.readJson)(e).catch((e=>console.error(e)));if(!r)throw new Error(`Could not read ${e}`);return r}}}),$n=d({"dist/data/utilities/recordExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.recordExists=void 0;var t=xn();e.recordExists=e=>(0,t.fileExists)(`${e}.json`)}}),En=d({"dist/data/utilities/retrieveRecord.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveRecord=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=On(),o=$n();e.retrieveRecord=async(e="")=>{if(r.isNode&&!(0,o.recordExists)(e))throw new Error(`Record "${e}" doesn't exist`);try{return await(0,n.retrieveFile)(`${e}.json`)}catch(t){if(!r.isNode)throw new Error(`Record "${e}" doesn't exist, or ${e}.json can't be read`);throw t}}}}),kn=d({"dist/data/utilities/compareAs.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.sameValue=e.compareAs=e.comparableTypes=void 0,Nt();var t=(e,t)=>{if(null==t)return t;switch(e){case"string":return"object"==typeof t?t:String(t);case"int":{const e=Number(t);return Number.isNaN(e)?t:e}case"boolean":return"true"===t||"false"!==t&&t;default:return t}};e.compareAs=t;var r=e.comparableTypes=["string","int","boolean"];e.sameValue=(e,n,o)=>r.includes(e)?t(e,n)===t(e,o):n==o}}),Pn=d({"dist/data/utilities/removeFromIndex.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeFromIndex=void 0,Ke(),st(),nt();var t=kn(),r=xn();e.removeFromIndex=async(e="",n=null,o=void 0,s="",i=void 0)=>{if(!n||!n.lookup)return null;const a=`__indexes/${e}/${n.lookup}`;let c=[];try{c=await(0,r.readJson)(a)}catch(e){return null}return c=c.map((e=>(0,t.sameValue)(i,e.value,o)?{value:e.value,record:e.record.filter((e=>e!==s))}:e)).filter((e=>e.record.length)),await(0,r.writeJson)(a,c),c}}}),Sn=d({"dist/data/utilities/computeKeyValue.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.computeKeyValue=void 0,kt(),Ke(),nt();e.computeKeyValue=(e,t)=>1===e.length?t[e[0]]:JSON.stringify(e.map((e=>t[e])))}}),Mn=d({"dist/data/utilities/fieldType.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyValueType=e.fieldType=void 0,Ke(),kr();var t=(e,t)=>e?.definition?.find((e=>e.name===t))?.type;e.fieldType=t;e.keyValueType=(e,r)=>1===r.fields.length?t(e,r.fields[0]):void 0}}),Rn=d({"dist/data/introspect/describe.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.describe=void 0;var t=On();e.describe=async(e="__RECORDS")=>{const r=await(0,t.retrieveFile)(`${e}.json`);return"__RECORDS"===e?r.entries:r.definition}}}),Dn=d({"dist/data/utilities/retrieveFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveFiles=void 0;var t=On(),r=Vr();e.retrieveFiles=async(e,n=t.retrieveFile)=>{const o=Math.max(1,Math.floor((0,r.getSetting)("readConcurrency",16))||1),s=new Array(e.length),i=[];let a=0;if(await Promise.all(Array.from({length:Math.min(o,e.length)},(async()=>{for(;a<e.length&&!i.length;){const t=a++;try{s[t]=await n(e[t])}catch(e){i.push({position:t,error:e})}}}))),i.length)throw i.reduce(((e,t)=>t.position<e.position?t:e)).error;return s}}}),Cn=d({"dist/data/utilities/packedTable.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.usesPackedReads=e.retrievePacked=e.packedPath=e.discardPacked=void 0,Ke(),St();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=xn(),o=Vr();var s=e=>`__packed/${e}.json`;e.packedPath=s;var i=()=>(0,o.getSetting)("packedReads",!r.isNode);e.usesPackedReads=i;e.retrievePacked=async e=>{if(!i())return;let t;try{t=await(0,n.readJson)(s(e.path))}catch(e){return}const r=e.entries||[];return t&&Array.isArray(t.entries)&&Array.isArray(t.rows)&&t.entries.length===r.length&&t.rows.length===r.length&&!t.entries.some(((e,t)=>e!==r[t]))?t:void 0};e.discardPacked=async e=>{(0,n.fileExists)(s(e))&&await(0,n.removeFile)(s(e))}}}),An=d({"dist/data/utilities/retrieveRecords.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveRecords=e.retrieveEntryRows=e.retrieveEntry=void 0,Ke(),st(),nt(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=On(),r=En(),n=Dn(),o=Cn(),s=Vr(),i=async e=>{const r=await(0,t.retrieveFile)(e).catch((e=>console.error(e)));if(!r)throw new Error(`Could not read entity ${e.slice(e.lastIndexOf("/")+1)}`);return r};e.retrieveEntry=i;var a=async(e,t,r=i)=>{const a=t.length>(0,s.getSetting)("readConcurrency",16)?await(0,o.retrievePacked)(e):void 0;if(!a)return(0,n.retrieveFiles)(t.map((t=>`${e.path}/${t}`)),r);const c=new Map(a.entries.map(((e,t)=>[e,t]))),l=t.filter((e=>!c.has(e))),d=l.length?await(0,n.retrieveFiles)(l.map((t=>`${e.path}/${t}`)),r):[],u=new Map(l.map(((e,t)=>[e,d[t]])));return t.map((e=>c.has(e)?a.rows[c.get(e)]:u.get(e)))};e.retrieveEntryRows=a;e.retrieveRecords=async(e="")=>{const t=await(0,r.retrieveRecord)(e);return a(t,t.entries)}}}),Fn=d({"dist/data/queries/where.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.whereTree=e.where=e.treeTruth=void 0,Nt(),Ke(),st(),qt(),St();var t=kn(),r=Lt(),n=(e,r,n,o,s=void 0)=>{const i=Object.prototype.hasOwnProperty.call(e,r);switch(n){case"exists":return i;case"does not exist":return!i;case"is null":return i&&null===e[r];case"is not null":return i&&null!==e[r]}if(!i||null===e[r]||null===o)return null;const a=e[r],c=(0,t.compareAs)(s,a);switch(n){case"=":return(0,t.sameValue)(s,a,o);case"!=":case"<>":return!(0,t.sameValue)(s,a,o);case">":return c>(0,t.compareAs)(s,o);case">=":return c>=(0,t.compareAs)(s,o);case"<":return c<(0,t.compareAs)(s,o);case"<=":return c<=(0,t.compareAs)(s,o);case"in":return!!Array.isArray(o)&&(!!(s?o.some((e=>null!==e&&(0,t.sameValue)(s,a,e))):o.includes(a))||!!o.includes(null)&&null);case"between":return!(!Array.isArray(o)||2!==o.length)&&(o.includes(null)?null:c>=(0,t.compareAs)(s,o[0])&&c<=(0,t.compareAs)(s,o[1]));case"like":return((e,t)=>{if("string"!=typeof e||"string"!=typeof t)return!1;const r=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/%/g,".*").replace(/_/g,".");return new RegExp(`^${r}$`,"i").test(e)})(a,o)}return!1},o=(e,{property:t="",joinEntity:r,comparator:o="=",value:s=null,type:i}={})=>n(e,r?`${r}.${t}`:t,o,s,i);e.where=(e=[],t={})=>e.filter((e=>!0===o(e,t)));var s=(e,t)=>{if((0,r.isCondition)(t))return o(e,t);if("not"in t){const r=s(e,t.not);return null===r?null:!r}const n=!("and"in t);let i=!n;for(const r of"and"in t?t.and:t.or){const t=s(e,r);if(t===n)return n;null===t&&(i=null)}return i};e.treeTruth=s;e.whereTree=(e=[],t=void 0,r=void 0)=>void 0===t?e:void 0===r?e.filter((e=>!0===s(e,t))):e.flatMap((e=>{const n=(Array.isArray(e[r])?e[r]:[]).filter((n=>!0===s(((e,t,r)=>{const n=Object.assign({},e);for(const e of Object.keys(r)){const o=e.includes(".")?e:`${t}.${e}`;Object.prototype.hasOwnProperty.call(n,o)||(n[o]=r[e])}return n})(e,r,n),t)));return n.length?[Object.assign({},e,{[r]:n})]:[]}))}}),Tn=d({"dist/data/utilities/parsers/splitEntityProperty.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.splitEntityProperty=void 0;var t=/^[a-z0-9_-]+/i,r=/\.([a-z0-9_-]+)$/i;e.splitEntityProperty=e=>{const n=e.match(t);if(!n)throw new Error(`Unable to use property: ${e}`);const o=e.match(r);if(!o)throw new Error(`Unable to use property: ${e}`);return{entity:n[0],property:o[1]}}}}),Nn=d({"dist/data/utilities/isSingleFieldKey.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.isSingleFieldKey=void 0;e.isSingleFieldKey=(e,t)=>1===e.fields.length&&e.fields[0]===t}}),In=d({"dist/data/utilities/indexHas.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.indexHas=void 0,Ke(),kr(),St();var t=xn(),r=Fn(),n=En(),o=Nn(),s=Mn();e.indexHas=async(e,i,a)=>{const c=await(0,n.retrieveRecord)(e),l=c.keys.find((e=>(0,o.isSingleFieldKey)(e,i)&&e.lookup));if(!l)return;if(!(c.entries||[]).length)return!1;let d;try{d=await(0,t.readJson)(`__indexes/${c.path}/${l.lookup}`)}catch(e){return}return(0,r.where)(d,{property:"value",comparator:"=",value:a,type:(0,s.fieldType)(c,i)}).some((e=>Array.isArray(e.record)&&e.record.length>0))}}}),Jn=d({"dist/data/introspect/policies/hasDependents.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.hasDependents=void 0;var t=Rn(),r=En(),n=An(),o=Fn(),s=Mn(),i=Tn(),a=In();e.hasDependents=async(e,c,l)=>{const d=await(0,t.describe)();for(const t of d){const d=t.replace(/\.json$/,""),u=await(0,r.retrieveRecord)(d);for(const t of u.keys){if("foreign"!==t.type||1!==t.fields.length||!t.references||1!==t.references.length)continue;const{entity:r,property:f}=(0,i.splitEntityProperty)(t.references[0].fields[0]);if(r!==e||f!==c)continue;const p=await(0,a.indexHas)(d,t.fields[0],l);if(void 0!==p){if(p)return!0;continue}const y=await(0,n.retrieveRecords)(d);if((0,o.where)(y,{property:t.fields[0],comparator:"=",value:l,type:(0,s.fieldType)(u,t.fields[0])}).length)return!0}}return!1}}}),qn=d({"node_modules/core-js/modules/es.iterator.for-each.js"(){p();var e=Oe(),t=w(),r=ft(),n=N(),o=ee(),s=Ae(),i=Qe(),a=Ye()("forEach",TypeError);e({target:"Iterator",proto:!0,real:!0,forced:a},{forEach:function(e){o(this);try{n(e)}catch(e){i(this,"throw",e)}if(a)return t(a,this,e);var c=s(this),l=0;r(c,(function(t){e(t,l++)}),{IS_RECORD:!0})}})}}),Ln=d({"node_modules/core-js/modules/esnext.iterator.for-each.js"(){p(),qn()}}),zn=d({"dist/data/utilities/keyIndexFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyIndexFiles=void 0,Ke(),st(),Ln(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=xn();e.keyIndexFiles=async(e,r,n)=>{if(!r.lookup)return;if(!(e.entries||[]).length)return[];let o;try{o=await(0,t.readJson)(`__indexes/${e.path}/${r.lookup}`)}catch(e){return}const s=new Set;for(const e of Array.isArray(o)?o:[])Array.isArray(e.record)&&n(e.value)&&e.record.forEach((e=>s.add(e)));return e.entries.filter((e=>s.has(e)))}}}),Bn=d({"dist/data/queries/deleteEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.deleteEntity=void 0,Ke(),st(),kr(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=En(),r=On(),n=Pn(),o=Sn(),s=Mn(),i=Jn(),a=Vr(),c=zn(),l=xn(),d=Cn();e.deleteEntity=async(e="",u={})=>{const f=await(0,t.retrieveRecord)(e),p=f.keys.find((e=>"primary"===e.type));if(!p)throw new Error(`Cannot delete from "${e}" without a primary key`);const y=u[e]||[];if(!y.length)return u;await(async(e,t,r)=>{if(!(0,a.getSetting)("enforceForeignKeys",!0)||1!==t.fields.length)return;const n=t.fields[0];for(const t of r)if(await(0,i.hasDependents)(e,n,t[n]))throw new Error(`Cannot delete from "${e}" where "${n}" = ${t[n]} - other records still reference it`)})(e,p,y);const h=new Set(y.map((e=>(0,o.computeKeyValue)(p.fields,e)))),m=await(async(e,t,i,a)=>{const d=new Set,u=new Set,f=async e=>{const c=await(0,r.retrieveFile)(`${t.path}/${e}`),f=(0,o.computeKeyValue)(i.fields,c);if(a.has(f)){await(0,l.removeFile)(`${t.path}/${e}`);for(const r of t.keys)await(0,n.removeFromIndex)(t.path,r,(0,o.computeKeyValue)(r.fields,c),e,(0,s.keyValueType)(t,r));d.add(e),u.add(f)}};for(const e of await(0,c.keyIndexFiles)(t,i,(e=>a.has(e)))??[])await f(e);if(u.size<a.size)for(const e of t.entries.filter((e=>!d.has(e))))await f(e);return t.entries.filter((e=>!d.has(e)))})(0,f,p,h);return m.length!==f.entries.length&&await(0,d.discardPacked)(f.path),f.entries=m,await(0,l.writeJson)(`${f.path}.json`,f),u}}}),Vn=d({"node_modules/core-js/modules/es.iterator.every.js"(){p();var e=Oe(),t=w(),r=ft(),n=N(),o=ee(),s=Ae(),i=Qe(),a=Ye()("every",TypeError);e({target:"Iterator",proto:!0,real:!0,forced:a},{every:function(e){o(this);try{n(e)}catch(e){i(this,"throw",e)}if(a)return t(a,this,e);var c=s(this),l=0;return!r(c,(function(t,r){if(!e(t,l++))return r()}),{IS_RECORD:!0,INTERRUPTED:!0}).stopped}})}}),Wn=d({"node_modules/core-js/modules/esnext.iterator.every.js"(){p(),Vn()}}),Un=d({"dist/data/introspect/policies/keyUnique.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyUnique=void 0;var t=An(),r=Fn(),n=En(),o=Mn(),s=In();e.keyUnique=async(e,i=[],a=[])=>{if(!i.length||i.length!==a.length)return!1;if(1===i.length){const t=await(0,s.indexHas)(e,i[0],a[0]);if(void 0!==t)return!t}let c=await(0,t.retrieveRecords)(e);const l=await(0,n.retrieveRecord)(e);for(let e=0;e<i.length;e++)c=(0,r.where)(c,{property:i[e],comparator:"=",value:a[e],type:(0,o.fieldType)(l,i[e])});return!c.length}}}),Kn=d({"dist/data/introspect/policies/useDefault.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.useDefault=void 0;e.useDefault=(e="",t=void 0)=>void 0===t?e:t}}),Qn=d({"dist/data/introspect/policies/foreignKeyExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.foreignKeyExists=void 0;var t=An(),r=Fn(),n=En(),o=Mn(),s=In();e.foreignKeyExists=async(e,i,a)=>{const c=await(0,s.indexHas)(e,i,a);if(void 0!==c)return c;const l=await(0,t.retrieveRecords)(e),d=(0,o.fieldType)(await(0,n.retrieveRecord)(e),i);return(0,r.where)(l,{property:i,comparator:"=",value:a,type:d}).length>0}}}),Gn=d({"dist/data/utilities/indexBuffer.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.IndexBuffer=void 0,Nt(),Ke(),kr(),St(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr(),Lr();var t=kn(),r=Symbol("unkeyed"),n=(e,n)=>{if(!t.comparableTypes.includes(e))return r;const o=(0,t.compareAs)(e,n);return"object"==typeof o&&null!==o?r:o};e.IndexBuffer=class{constructor(e,t){this.byKey=new Map,this.listed=new WeakMap,this.entries=e,this.type=t;for(const o of e){const e=n(t,o.value);e===r||this.byKey.has(e)||this.byKey.set(e,o)}}find(e){const o=n(this.type,e);return o===r?this.entries.find((r=>(0,t.sameValue)(this.type,r.value,e))):this.byKey.get(o)}has(e){if(null==e)return!1;const r=e=>Boolean(e&&Array.isArray(e.record)&&e.record.length),n=this.find(e);return!n||r(n)?r(n):this.entries.some((n=>(0,t.sameValue)(this.type,n.value,e)&&r(n)))}add(e,t){const o=this.find(e);if(o){this.listed.has(o)||this.listed.set(o,new Set(o.record));const e=this.listed.get(o);return void(e.has(t)||(e.add(t),o.record.push(t)))}const s={value:e,record:[t]};this.entries.push(s),this.listed.set(s,new Set(s.record));const i=n(this.type,e);i!==r&&this.byKey.set(i,s)}}}}),Hn=d({"dist/data/utilities/parsers/isEntityProperty.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.isEntityProperty=void 0;e.isEntityProperty=e=>/^[a-z0-9_-]+\.([a-z0-9_-]+)$/i.test(e)}}),Xn=d({"dist/data/utilities/knownFields.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.assertKnownFields=e.assertFieldsDefined=void 0,Ke(),st(),kr(),qt(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=En(),r=Hn(),n=Tn(),o=Lt(),s=(e,t,r,n)=>{const o=new Set(t.definition.map((e=>e.name))),s=r.find((e=>!o.has(e)));if(void 0!==s)throw new Error(`Unknown field "${s}" in ${n}: ${e} has ${(e=>e.definition.map((e=>e.name)).join(", "))(t)}`)};e.assertFieldsDefined=s;e.assertKnownFields=async(e,i)=>{const a=new Set((e.mergeJoins||[]).map((e=>(0,n.splitEntityProperty)(e.propertyB).entity))),c=[...(0,o.conditionsOf)(e.where).map((e=>({property:e.property,clause:"where"}))),...(e.sortClauses||[]).map((e=>({property:e.property,clause:"sort"}))),...(e.groupBy||[]).map((e=>({property:e,clause:"group by"}))),...(e.selectClauses||[]).filter((t=>t.property!==e.joinEntity)).map((e=>({property:e.property,clause:"select"}))),...(e.insertValues||[]).flatMap((e=>Object.keys(e||{}).map((e=>({property:e,clause:"insert",own:!0}))))),...Object.keys(e.updateValues||{}).map((e=>({property:e,clause:"set",own:!0}))),...(e.joinClauses||[]).flatMap((e=>[{property:e.propertyA,clause:"on"},{property:e.propertyB,clause:"on"}])),...(e.mergeJoins||[]).flatMap((e=>[{property:e.propertyA,clause:"merge"},{property:e.propertyB,clause:"merge"}]))];for(const{property:o,clause:l,own:d}of c){if("string"!=typeof o)continue;let c=e.entity,u=o;if(!d&&(0,r.isEntityProperty)(o)&&({entity:c,property:u}=(0,n.splitEntityProperty)(o)),"select"===l&&c!==e.entity&&!a.has(c))throw new Error(`Can't select "${o}": a joined record's rows are a list under its name (select ${c}), and its fields are on each row only when merged (merge ... with ${c}.<field>)`);Object.prototype.hasOwnProperty.call(i,c)||(i[c]=await(0,t.retrieveRecord)(c)),s(c,i[c],[u],l)}}}}),Yn=d({"dist/data/queries/insertEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.insertEntity=void 0,Nt(),kt(),Ke(),Wn(),kr(),Ln(),nt(),St(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=En(),r=Un(),n=Kn(),o=Rr(),s=Qn(),i=Tn(),a=Sn(),c=Mn(),l=kn(),d=An(),u=Nn(),f=Gn(),y=xn(),h=Cn(),m=Xn(),v=class{constructor(e,t){this.seen=new Set,this.fields=t,this.types=t.map((t=>(0,c.fieldType)(e,t)))}static usable(e,t){return t.every((t=>l.comparableTypes.includes((0,c.fieldType)(e,t))))}keyOf(e){const t=[];for(let r=0;r<this.fields.length;r++){const n=e[this.fields[r]];if(null==n)return;const o=(0,l.compareAs)(this.types[r],n);if("object"==typeof o)return;t.push([typeof o,o])}return JSON.stringify(t)}add(e){const t=this.keyOf(e);void 0!==t&&this.seen.add(t)}has(e){const t=this.keyOf(e);return void 0!==t&&this.seen.has(t)}},w=class{constructor(e,t){this.rows=[],this.buffers=new Map,this.unreadable=new Set,this.otherLookups=new Map,this.scans=new Map,this.entity=e,this.record=t,this.hadEntries=(t.entries||[]).length>0}async load(){for(const e of this.record.keys){if(!e.lookup)continue;let t=[];try{t=await(0,y.readJson)(`__indexes/${this.record.path}/${e.lookup}`)}catch(t){this.unreadable.add(e)}this.buffers.set(e,new f.IndexBuffer(Array.isArray(t)?t:[],(0,c.keyValueType)(this.record,e)))}}ownLookup(e){const t=this.record.keys.find((t=>(0,u.isSingleFieldKey)(t,e)&&t.lookup));if(!t||this.unreadable.has(t))return()=>{};const r=this.buffers.get(t);return e=>(this.hadEntries||this.rows.length>0)&&r.has(e)}otherLookup(e,r){const n=`${e}\0${r}`;return this.otherLookups.has(n)||this.otherLookups.set(n,(async()=>{const n=await(0,t.retrieveRecord)(e),o=n.keys.find((e=>(0,u.isSingleFieldKey)(e,r)&&e.lookup));if(!o)return()=>{};if(!(n.entries||[]).length)return()=>!1;let s;try{s=await(0,y.readJson)(`__indexes/${n.path}/${o.lookup}`)}catch(e){return()=>{}}const i=new f.IndexBuffer(Array.isArray(s)?s:[],(0,c.fieldType)(n,r));return e=>i.has(e)})()),this.otherLookups.get(n)}scan(e,r){const n=`${e}\0${r.join("\0")}`;return this.scans.has(n)||this.scans.set(n,(async()=>{const n=e===this.entity?this.record:await(0,t.retrieveRecord)(e);if(!v.usable(n,r))return;const o=new v(n,r);for(const t of await(0,d.retrieveRecords)(e))o.add(t);return e===this.entity&&this.rows.forEach((e=>o.add(e))),o})()),this.scans.get(n)}claimed(e,t){return this.rows.some((r=>e.every((e=>null!==r[e]&&void 0!==r[e]&&(0,l.sameValue)((0,c.fieldType)(this.record,e),r[e],t[e])))))}async isUnique(e,t){if(1===e.length){const r=this.ownLookup(e[0])(t[e[0]]);if(void 0!==r)return!r}const n=await this.scan(this.entity,e);return n?!n.has(t):await(0,r.keyUnique)(this.entity,e,e.map((e=>t[e])))&&!this.claimed(e,t)}async exists(e,t,r){const n=e===this.entity,o=n?this.ownLookup(t)(r):(await this.otherLookup(e,t))(r);if(void 0!==o)return o;const i=await this.scan(e,[t]);return i?i.has({[t]:r}):await(0,s.foreignKeyExists)(e,t,r)||n&&this.claimed([t],{[t]:r})}async add(e,t){this.rows.push(e);for(const[t,r]of this.scans)t.startsWith(`${this.entity}\0`)&&(await r)?.add(e);this.record.entries.push(t);for(const[r,n]of this.buffers)n.add((0,a.computeKeyValue)(r.fields,e),t)}async write(){await(0,y.writeJson)(`${this.record.path}.json`,this.record),this.buffers.size&&await(0,y.makeDirectory)(`__indexes/${this.record.path}`);for(const[e,t]of this.buffers)await(0,y.writeJson)(`__indexes/${this.record.path}/${e.lookup}`,t.entries)}},g=async(e,t)=>{let r;do{r=crypto.randomUUID()}while(!await e.isUnique([t],{[t]:r}));return r},j=async(e,t={})=>{const r={};for(const s of e.record.definition){let i=t[s.name];if(null===i&&s.optional&&!s.nullable&&(i=void 0),s.autoGenerate?null==i&&(i=await g(e,s.name)):Object.prototype.hasOwnProperty.call(s,"default")&&(i=(0,n.useDefault)(s.default,i)),void 0!==i)r[s.name]=(0,o.typeCheck)(s.type,i,s.nullable);else if(!s.optional)throw new Error(`Missing required field "${s.name}" for ${e.entity}`)}return r},b=async(e,t)=>{for(const r of e.record.keys)if(!("primary"!==r.type&&"unique"!==r.type||r.fields.some((e=>null===t[e]))||await e.isUnique(r.fields,t)))throw new Error(`Duplicate value for ${r.type} key "${r.fields.join(", ")}" on ${e.entity}`)},_=async(e,t)=>{for(const r of e.record.keys){if("foreign"!==r.type||1!==r.fields.length||!r.references||1!==r.references.length)continue;const n=r.fields[0];if(!Object.prototype.hasOwnProperty.call(t,n)||null===t[n])continue;const{entity:o,property:s}=(0,i.splitEntityProperty)(r.references[0].fields[0]);if(!await e.exists(o,s,t[n]))throw new Error(`Foreign key "${n}" on ${e.entity} references a nonexistent ${o}.${s} = ${t[n]}`)}};e.insertEntity=async(e="",r=[],n={})=>{const o=await(0,t.retrieveRecord)(e),s=o.keys.find((e=>"primary"===e.type&&1===e.fields.length));if(Object.prototype.hasOwnProperty.call(n,e)||(n[e]=[]),await(0,y.makeDirectory)(o.path),!r.length)return n;for(const t of r)(0,m.assertFieldsDefined)(e,o,Object.keys(t||{}),"insert");await(0,h.discardPacked)(o.path);const i=new w(e,o);await i.load();for(const t of r){const r=await j(i,t);await b(i,r),await _(i,r);const a=`${s?r[s.fields[0]]:crypto.randomUUID()}.json`;await(0,y.writeJson)(`${o.path}/${a}`,r),await i.add(r,a),n[e].push(r)}return await i.write(),n}}}),Zn=d({"dist/data/queries/readEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.readEntity=void 0;var t=An();e.readEntity=async(e="",r={})=>(Object.prototype.hasOwnProperty.call(r,e)&&r[e].length||(r[e]=await(0,t.retrieveRecords)(e)),r)}}),eo=d({"dist/data/utilities/updateIndex.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.updateIndex=void 0,Nt(),Ke(),kr();var t=kn(),r=xn();e.updateIndex=async(e="",n=null,o=void 0,s="",i=void 0)=>{if(!n||!n.lookup)return null;const a=`__indexes/${e}`,c=`${a}/${n.lookup}`;let l=[];try{l=await(0,r.readJson)(c)}catch(e){l=[]}const d=l.find((e=>(0,t.sameValue)(i,e.value,o)));return d?d.record.includes(s)||d.record.push(s):l.push({value:o,record:[s]}),await(0,r.makeDirectory)(a),await(0,r.writeJson)(c,l),l}}}),to=d({"dist/data/queries/updateEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.updateEntity=void 0,Ke(),kr(),nt(),St();var t=En(),r=On(),n=eo(),o=Pn(),s=Sn(),i=Mn(),a=kn(),c=Un(),l=Rr(),d=Qn(),u=Jn(),f=Tn(),y=Vr(),h=zn(),m=xn(),v=Cn(),w=Xn(),g=async(e,t,n)=>{const o=(0,i.keyValueType)(e,t),c=async i=>(0,a.sameValue)(o,(0,s.computeKeyValue)(t.fields,await(0,r.retrieveFile)(`${e.path}/${i}`)),n);for(const r of await(0,h.keyIndexFiles)(e,t,(e=>(0,a.sameValue)(o,e,n)))??[])if(await c(r))return r;for(const t of e.entries)if(await c(t))return t;return null},j=(e,t,r,n)=>t.fields.some((t=>Object.prototype.hasOwnProperty.call(n,t)&&!(0,a.sameValue)((0,i.fieldType)(e,t),n[t],r[t]))),b=async(e,t,r,n,o)=>{for(const s of t.keys){if("primary"!==s.type&&"unique"!==s.type||!j(t,s,r,o))continue;const i=s.fields.map((e=>n[e]));if(i.some((e=>null==e)))continue;if(!await(0,c.keyUnique)(e,s.fields,i))throw new Error(`Duplicate value for ${s.type} key "${s.fields.join(", ")}" on ${e}`)}},_=async(e,t,r,n)=>{for(const o of t.keys){if("foreign"!==o.type||1!==o.fields.length||!o.references||1!==o.references.length)continue;const s=o.fields[0];if(!Object.prototype.hasOwnProperty.call(n,s)||null===n[s]||void 0===n[s]||(0,a.sameValue)((0,i.fieldType)(t,s),n[s],r[s]))continue;const{entity:c,property:l}=(0,f.splitEntityProperty)(o.references[0].fields[0]);if(!await(0,d.foreignKeyExists)(c,l,n[s]))throw new Error(`Foreign key "${s}" on ${e} references a nonexistent ${c}.${l} = ${n[s]}`)}},x=async(e,t,r,n,o)=>{if(!(0,y.getSetting)("enforceForeignKeys",!0)||1!==r.fields.length||!j(t,r,n,o))return;const s=r.fields[0];if(await(0,u.hasDependents)(e,s,n[s]))throw new Error(`Cannot update "${e}" where "${s}" = ${n[s]} - other records still reference it`)},O=async(e,t,r,a,c)=>{for(const l of e.keys)j(e,l,t,a)&&(await(0,o.removeFromIndex)(e.path,l,(0,s.computeKeyValue)(l.fields,t),c,(0,i.keyValueType)(e,l)),await(0,n.updateIndex)(e.path,l,(0,s.computeKeyValue)(l.fields,r),c,(0,i.keyValueType)(e,l)))},$=(e,t,r)=>{for(const n of t.definition)if(!n.optional&&void 0===r[n.name])throw new Error(`Missing required field "${n.name}" for ${e}`)},E=(e,t)=>{const r=Object.assign({},e);for(const e of Object.keys(t))void 0===t[e]&&delete r[e];return r};e.updateEntity=async(e="",n={},o={})=>{const c=await(0,t.retrieveRecord)(e),d=c.keys.find((e=>"primary"===e.type));if(!d)throw new Error(`Cannot update "${e}" without a primary key`);(0,w.assertFieldsDefined)(e,c,Object.keys(n||{}),"set");const u=((e,t)=>{const r=Object.assign({},t);for(const t of e.definition)Object.prototype.hasOwnProperty.call(r,t.name)&&(r[t.name]=null===r[t.name]&&t.optional&&!t.nullable?void 0:(0,l.typeCheck)(t.type,r[t.name],t.nullable));return r})(c,n);for(const t of d.fields)if(Object.prototype.hasOwnProperty.call(u,t)&&void 0===u[t])throw new Error(`Cannot clear "${t}" on ${e}: it's part of the primary key`);const f=[];for(const t of o[e]||[]){const n=await g(c,d,(0,s.computeKeyValue)(d.fields,t));if(!n)throw new Error(`Could not find entry for ${e} where "${d.fields.join(", ")}" = ${(0,s.computeKeyValue)(d.fields,t)}`);if(f.some((e=>e.fileName===n)))continue;const o=await(0,r.retrieveFile)(`${c.path}/${n}`),i=E(Object.assign({},o,u),u);await b(e,c,o,i,u),await _(e,c,o,u),await x(e,c,d,o,u),$(e,c,i),f.push({fileName:n,oldData:o,newData:i})}((e,t,r,n)=>{for(const o of t.keys){if("primary"!==o.type&&"unique"!==o.type)continue;const c=[];for(const{oldData:l,newData:d}of r){if(!j(t,o,l,n)||o.fields.some((e=>null===d[e]||void 0===d[e])))continue;const r=(0,s.computeKeyValue)(o.fields,d);if(c.some((e=>(0,a.sameValue)((0,i.keyValueType)(t,o),e,r))))throw new Error(`Duplicate value for ${o.type} key "${o.fields.join(", ")}" on ${e}`);c.push(r)}}})(e,c,f,u),f.length&&await(0,v.discardPacked)(c.path);for(const{fileName:e,oldData:t,newData:r}of f)await O(c,t,r,u,e),await(0,m.writeJson)(`${c.path}/${e}`,r);return o[e]=f.map((({newData:e})=>e)),o}}}),ro=d({"dist/data/introspect/definitions/field.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.field=void 0;e.field=({name:e="",type:t="string",optional:r=!1,nullable:n=!1,useDefault:o=!1,defaultValue:s="",autoGenerate:i=!1}={})=>{const a={name:e,type:t,optional:r,autoGenerate:i};return n&&(a.nullable=!0),o&&(a.default=s),a}}}),no=d({"dist/data/introspect/definitions/keyReference.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyReference=void 0;e.keyReference=({fields:e=[],lookup:t=""}={})=>({fields:e,lookup:t})}}),oo=d({"dist/data/introspect/definitions/key.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.key=void 0,Ke(),nt();var t=no();e.key=({type:e="index",fields:r=[],lookup:n="",references:o=[]}={})=>{switch(e){case"primary":case"index":case"unique":o=[];break;case"multi":if(r.length<2)throw new Error("Multi key indicated with less than two fields");break;case"foreign":if(o.length<1)throw new Error("Foreign key must have one reference to an external record");break;default:throw new Error("Unrecognized key type; must be index, primary, unique, multi, or foreign")}const s={type:e,fields:r,lookup:n};return void 0!==o&&o.length>0&&(s.references=o.map(t.keyReference)),s}}}),so=d({"dist/data/introspect/definitions/record.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.record=void 0,Ke(),nt();var t=ro(),r=oo();e.record=({path:e="",definition:n=[],keys:o=[],entries:s=[]}={})=>({path:e,definition:n.map(t.field),keys:o.map(r.key),entries:s})}}),io=d({"dist/data/utilities/registerRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.registerRecord=void 0,Nt();var t=xn();e.registerRecord=async e=>{const r="__RECORDS.json";let n;try{n=await(0,t.readJson)(r)}catch(e){n={path:"",definition:[{name:"path",type:"string",optional:!1,autoGenerate:!1},{name:"definition",type:"object",optional:!1,autoGenerate:!1},{name:"keys",type:"array",optional:!1,autoGenerate:!1},{name:"entries",type:"array",optional:!1,autoGenerate:!1}],keys:[],entries:[]}}const o=`${e}.json`;return n.entries.includes(o)||n.entries.push(o),await(0,t.writeJson)(r,n),n}}}),ao=d({"dist/data/utilities/requireNode.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.requireNode=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr());e.requireNode=e=>{if(!r.isNode)throw new Error(`${e} only works in Node: in a browser, json-fs-query can only read the database (over fetch())`)}}}),co=d({"dist/data/introspect/create.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.create=e.assertValidDefinition=void 0,Nt(),Ke(),st(),kr(),St();var t=so(),r=io(),n=xn(),o=ao(),s=Rr(),i=["type","fields","lookup","references"],a=(e,t)=>{for(const r of t.definition)if(Object.prototype.hasOwnProperty.call(r,"default"))try{(0,s.typeCheck)(r.type,r.default,r.nullable)}catch(t){throw new Error(`Invalid default for field "${r.name}" of ${e}: ${t.message}`)}for(const r of t.keys){if(r.fields.length<1)throw new Error(`The ${r.type} key of ${e} must have at least one field`);for(const n of r.fields)if(!t.definition.some((e=>e.name===n)))throw new Error(`The ${r.type} key of ${e} names field "${n}", which isn't in the definition`)}const r=t.keys.find((e=>"primary"===e.type));for(const n of r?r.fields:[]){const r=t.definition.find((e=>e.name===n));if(r&&r.nullable)throw new Error(`Primary key field "${n}" of ${e} can't be nullable`);if(r&&r.optional&&!r.autoGenerate)throw new Error(`Primary key field "${n}" of ${e} can't be optional`)}};e.assertValidDefinition=a;e.create=async(e,s=[],c=[])=>{if((0,o.requireNode)("create()"),"__RECORDS"===e)return null;if((0,n.fileExists)(`${e}.json`))return null;((e,t)=>{for(const r of t)for(const t of Object.keys(r))if(!i.includes(t))throw new Error(`Unknown property "${t}" on ${r.type??"index"} key of ${e}; must be ${i.join(", ")}`)})(e,c);const l=(0,t.record)({path:e,definition:s,keys:c});a(e,l),await(0,n.makeDirectory)(),await(0,n.writeJson)(`${e}.json`,l),await(0,n.makeDirectory)(e);const d=l.keys.filter((e=>e.lookup));if(d.length){await(0,n.makeDirectory)(`__indexes/${e}`);for(const t of d)await(0,n.writeJson)(`__indexes/${e}/${t.lookup}`,[])}return await(0,r.registerRecord)(e),l}}}),lo=d({"dist/data/queries/createRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.createRecord=void 0,Nt(),Ke(),nt();var t=co(),r=En(),n=Tn(),o=$n();e.createRecord=async(e,s)=>{if((0,o.recordExists)(e)){if(s.ifNotExists)return null;throw new Error(`Record "${e}" already exists`)}return await(async(e,t)=>{for(const s of t.keys){if("foreign"!==s.type)continue;const{entity:i,property:a}=(0,n.splitEntityProperty)(s.references[0].fields[0]);let c=t.definition.map((e=>e.name));if(i!==e){if(!(0,o.recordExists)(i))throw new Error(`Foreign key "${s.fields[0]}" references "${i}", which doesn't exist`);c=(await(0,r.retrieveRecord)(i)).definition.map((e=>e.name))}if(!c.includes(a))throw new Error(`Foreign key "${s.fields[0]}" references "${i}.${a}", which is not a field`)}})(e,s),(0,t.create)(e,s.definition,s.keys)}}}),uo=d({"dist/data/utilities/deregisterRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.deregisterRecord=void 0,Ke(),st();var t=xn();e.deregisterRecord=async e=>{const r="__RECORDS.json";let n;try{n=await(0,t.readJson)(r)}catch(e){return null}const o=`${e}.json`;return n.entries=n.entries.filter((e=>e!==o)),await(0,t.writeJson)(r,n),n}}}),fo=d({"dist/data/introspect/drop.js"(e){p(),Ce(),ze(),Ke(),et(),Object.defineProperty(e,"__esModule",{value:!0}),e.drop=void 0;var t=On(),r=uo(),n=ao(),o=xn(),s=Cn();e.drop=async e=>{if((0,n.requireNode)("drop()"),"__RECORDS"===e)return null;const i=await(0,t.retrieveFile)(`${e}.json`);for(const e of i.entries)await(0,o.removeFile)(`${i.path}/${e}`);await(0,o.removeDirectory)(i.path),await(0,o.removeDirectory)(`__indexes/${i.path}`),await(0,s.discardPacked)(i.path),await(0,o.removeFile)(`${e}.json`),await(0,r.deregisterRecord)(e)}}}),po=d({"dist/data/queries/dropRecord.js"(e){p(),Ce(),ze(),et(),Object.defineProperty(e,"__esModule",{value:!0}),e.dropRecord=void 0,Ke(),St();var t=fo(),r=En(),n=$n(),o=Tn(),s=Vr();e.dropRecord=async(e,i)=>{if(!(0,n.recordExists)(e)){if(i)return null;throw new Error(`Record "${e}" doesn't exist`)}await(async e=>{if(!(0,s.getSetting)("enforceForeignKeys",!0)||!(0,n.recordExists)("__RECORDS"))return;const t=await(0,r.retrieveRecord)("__RECORDS");for(const s of t.entries){const t=s.replace(/\.json$/,"");if(t!==e&&(0,n.recordExists)(t))for(const n of(await(0,r.retrieveRecord)(t)).keys)if("foreign"===n.type&&n.references&&n.references.some((t=>(0,o.splitEntityProperty)(t.fields[0]).entity===e)))throw new Error(`Cannot drop "${e}": ${t}.${n.fields.join(", ")} references it`)}})(e);const a=await(0,r.retrieveRecord)(e);return await(0,t.drop)(e),a}}}),yo=d({"dist/data/queries/describeRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.describeRecord=void 0;var t=En(),r=$n();e.describeRecord=async e=>{if(!(0,r.recordExists)(e))throw new Error(`Record "${e}" doesn't exist`);const{path:n,definition:o,keys:s}=await(0,t.retrieveRecord)(e);return{path:n,definition:o,keys:s}}}}),ho=d({"dist/data/queries/showRecords.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.showRecords=void 0,Ke(),nt();var t=En(),r=$n();e.showRecords=async()=>(0,r.recordExists)("__RECORDS")?(await(0,t.retrieveRecord)("__RECORDS")).entries.map((e=>e.replace(/\.json$/,""))):[]}}),mo=d({"dist/data/introspect/alter.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.alter=void 0,Nt(),kt(),Ke(),st(),kr(),nt(),St();var t=ro(),r=co(),n=Cr(),o=En(),s=Dn(),i=An(),a=Xn(),c=Cn(),l=ao(),d=ho(),u=to(),f=Rr(),y=xn(),h=async e=>(await(0,s.retrieveFiles)(e.entries.map((t=>`${e.path}/${t}`)),i.retrieveEntry)).map(((t,r)=>({fileName:e.entries[r],data:t}))),m=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),v=(e,t)=>e.keys.filter((e=>e.fields.includes(t))),w=async(e,t)=>{const r=[];for(const n of await(0,d.showRecords)()){const s=await(0,o.retrieveRecord)(n);for(const o of s.keys)"foreign"===o.type&&(o.references||[]).some((r=>r.fields.includes(`${e}.${t}`)))&&r.push({entity:n,record:s,key:o})}return r},g=async(e,t)=>{(0,r.assertValidDefinition)(e,t),await(0,y.writeJson)(`${e}.json`,t)},j=async(e,t,r,n,o)=>{if(r.length)if(await(0,c.discardPacked)(t.path),v(t,n).length&&"function"!=typeof o){if(!t.keys.some((e=>"primary"===e.type)))throw new Error(`Can't change "${n}" on ${e}'s rows: a key uses it, and rows are found by the primary key, which ${e} doesn't have`);await(0,u.updateEntity)(e,{[n]:void 0===o?null:o},{[e]:r.map((e=>e.data))})}else for(const e of r){const r=Object.assign({},e.data),s="function"==typeof o?o(e):o;void 0===s?delete r[n]:r[n]=s,await(0,y.writeJson)(`${t.path}/${e.fileName}`,r)}};e.alter=async(e,r)=>{if((0,l.requireNode)("alter"),"__RECORDS"===e)throw new Error("__RECORDS is reserved for the list of records");const s=[e,..."field"in r?[r.field?.name]:[],..."name"in r?[r.name]:[],..."to"in r?[r.to]:[]],i=s.findIndex((e=>"string"!=typeof e||!n.nameMatch.test(e)));if(-1!==i)throw new Error(`Invalid name ${JSON.stringify(s[i])??"undefined"} in alter: names use letters, digits, _ and - only`);const d=await(0,o.retrieveRecord)(e);switch(r.action){case"add":return(await(async(e,t,r)=>{if(t.definition.some((e=>e.name===r.name)))throw new Error(`Field "${r.name}" already exists on ${e}`);const n={...t,definition:[...t.definition,r]},o=await h(t);for(const t of o.filter((e=>m(e.data,r.name))))try{(0,f.typeCheck)(r.type,t.data[r.name],r.nullable)}catch(n){throw new Error(`Can't add "${r.name}" to ${e}: row ${t.fileName} already holds a value for it that doesn't fit (${n.message})`)}const s=o.filter((e=>!m(e.data,r.name))),i=m(r,"default");if(s.length&&!r.optional&&!i&&!r.autoGenerate)throw new Error(`Can't add required field "${r.name}" to ${e}: its ${s.length} row(s) have no value for it (give it a default, or make it optional)`);return await g(e,n),r.autoGenerate?await j(e,n,s,r.name,(()=>crypto.randomUUID())):i&&await j(e,n,s,r.name,r.default),n})(e,d,(0,t.field)(r.field))).definition;case"drop":return(await(async(e,t,r)=>{(0,a.assertFieldsDefined)(e,t,[r],"alter");const n=v(t,r)[0];if(n)throw new Error(`Can't drop "${r}" from ${e}: its ${(e=>`${e.type} key (${e.fields.join(", ")})`)(n)} uses it`);const o=(await w(e,r))[0];if(o)throw new Error(`Can't drop "${r}" from ${e}: ${o.entity}'s foreign key "${o.key.fields[0]}" references it`);const s={...t,definition:t.definition.filter((e=>e.name!==r))};return await g(e,s),await j(e,s,(await h(t)).filter((e=>m(e.data,r))),r,void 0),s})(e,d,r.name)).definition;case"rename":return(await(async(e,t,r,o)=>{if((0,a.assertFieldsDefined)(e,t,[r],"alter"),t.definition.some((e=>e.name===o)))throw new Error(`Can't rename "${r}" on ${e} to "${o}": a field of that name already exists`);const s=await w(e,r),i=t.keys.map((e=>{if(!e.fields.includes(r))return e;const t=e.fields.map((e=>e===r?o:e)),s=e.lookup&&e.lookup===(0,n.keyLookup)(e.type,e.fields)?(0,n.keyLookup)(e.type,t):e.lookup;return{...e,fields:t,lookup:s}})),l=t=>"foreign"!==t.type?t:{...t,references:(t.references||[]).map((t=>({...t,fields:t.fields.map((t=>t===`${e}.${r}`?`${e}.${o}`:t))})))},d={...t,definition:t.definition.map((e=>e.name===r?{...e,name:o}:e)),keys:i.map(l)};for(const[e,r]of t.keys.entries()){const n=i[e].lookup;r.lookup&&n!==r.lookup&&(0,y.fileExists)(`__indexes/${t.path}/${r.lookup}`)&&(await(0,y.writeJson)(`__indexes/${t.path}/${n}`,await(0,y.readJson)(`__indexes/${t.path}/${r.lookup}`)),await(0,y.removeFile)(`__indexes/${t.path}/${r.lookup}`))}await g(e,d);for(const t of s.filter((t=>t.entity!==e)))await(0,y.writeJson)(`${t.entity}.json`,{...t.record,keys:t.record.keys.map(l)});const u=(await h(t)).filter((e=>m(e.data,r)));u.length&&await(0,c.discardPacked)(t.path);for(const e of u){const n=Object.assign({},e.data);n[o]=n[r],delete n[r],await(0,y.writeJson)(`${t.path}/${e.fileName}`,n)}return d})(e,d,r.name,r.to)).definition;case"modify":return(await(async(e,t,r)=>{(0,a.assertFieldsDefined)(e,t,[r.name],"alter");const n=t.definition.find((e=>e.name===r.name));if(n.type!==r.type)throw new Error(`Can't change the type of "${r.name}" on ${e} (${n.type} to ${r.type}): only optional, null and default can change`);if(Boolean(n.autoGenerate)!==Boolean(r.autoGenerate))throw new Error(`Can't change whether "${r.name}" on ${e} is auto: only optional, null and default can change`);const o={...t,definition:t.definition.map((e=>e.name===r.name?r:e))},s=await h(t),i=m(r,"default"),c=r.nullable?[]:s.filter((e=>null===e.data[r.name])),l=r.optional?[]:s.filter((e=>!m(e.data,r.name))),d=r.optional?[]:c;if((l.length||d.length)&&!i)throw l.length?new Error(`Can't make "${r.name}" required on ${e}: ${l.length} row(s) have no value for it (give it a default to fill them in)`):new Error(`Can't make "${r.name}" not null on ${e}: ${d.length} row(s) hold null (give it a default to fill them in, or make it optional)`);return await g(e,o),i&&await j(e,o,[...l,...d],r.name,r.default),r.optional&&c.length&&await j(e,o,c,r.name,void 0),o})(e,d,(0,t.field)(r.field))).definition;default:throw new Error(`Unknown alter action: ${r.action}`)}}}}),vo=d({"dist/data/utilities/databaseLock.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.withDatabaseLock=e.browserCallsRunning=void 0,Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Vr(),o=xn();var s=new Map,i=0;e.browserCallsRunning=()=>i;e.withDatabaseLock=async e=>{if(!r.isNode){i++;try{return await(0,o.withReadCache)(e)}finally{i--}}const t=(0,n.resolveDatabasePath)((0,n.lockPath)()),a=(0,n.trackDatabaseCall)(),c=s.get(t)||Promise.resolve();let l;const d=new Promise((e=>{l=e})),u=c.then((()=>d));s.set(t,u),await c;try{return await(0,o.withReadCache)(e)}finally{a(),l(),s.get(t)===u&&s.delete(t)}}}}),wo=d({"dist/data/queries/databaseStatements.js"(e){p(),Lr(),Object.defineProperty(e,"__esModule",{value:!0}),e.useDatabase=e.showDatabases=e.dropDatabase=e.createDatabase=void 0,Nt(),Ke(),st();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,s=Object.defineProperty,i={__proto__:null,default:e};if(Object(e)!==e)return i;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,i)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=s&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?s(i,o,n):i[o]=e[o]);return i}(zr()),n=Vr(),o=ao(),s=vo(),i=xn();var a=async e=>(await(0,i.readDatabaseList)()).includes(e)||r.isNode&&(0,i.databaseFolderExists)(e);e.createDatabase=async(e,t=!1)=>{(0,o.requireNode)('"create database"');const r=await(0,i.readDatabaseList)();if(r.includes(e)||(0,i.databaseFolderExists)(e)){if(!t)throw new Error(r.includes(e)?`Database "${e}" already exists`:`Database "${e}" already exists as a folder that isn't listed: create database if not exists ${e} lists it`);return r.includes(e)||await(0,i.writeDatabaseList)([...r,e]),null}return await(0,i.writeDatabaseList)([...r,e]),await(0,i.makeDatabaseFolder)(e),e};e.dropDatabase=async(e,t=!1)=>{if((0,o.requireNode)('"drop database"'),!await a(e)){if(t)return null;throw new Error(`Database "${e}" doesn't exist`)}if((0,n.getSetting)("database",void 0)===e)throw new Error(`Can't drop the database in use ("${e}"): use another one first`);return await(0,i.writeDatabaseList)((await(0,i.readDatabaseList)()).filter((t=>t!==e))),await(0,i.removeDatabaseFolder)(e),e};e.useDatabase=async e=>{if(!r.isNode&&(0,s.browserCallsRunning)()>1)throw new Error(`Can't use "${e}" while other calls are running in this page: await them first, or pick the database with configure({ database }) between calls`);if(!await a(e))throw new Error(`Database "${e}" doesn't exist${r.isNode?"":" (or isn't listed in __DATABASES.json)"}`);return(0,n.switchDatabase)(e),e};e.showDatabases=async()=>(0,i.readDatabaseList)()}}),go=d({"dist/data/utilities/joinKey.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinKey=e.isKeyedType=void 0,Nt();var t=kn();e.joinKey=(e,r)=>{if(null!=r)return(0,t.compareAs)(e,r)};e.isKeyedType=e=>t.comparableTypes.includes(e)}}),jo=d({"dist/data/utilities/rowLookup.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.groupRows=e.firstPositions=e.RowLookups=void 0,Ke(),Ln(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=go(),r=(e,r,n)=>{const o=new Map;for(const s of e){const e=(0,t.joinKey)(n,s[r]);if(void 0===e)continue;const i=o.get(e);i?i.push(s):o.set(e,[s])}return o};e.groupRows=r;var n=(e,r,n)=>{const o=new Map;return e.forEach(((e,s)=>{const i=(0,t.joinKey)(n,e[r]);void 0===i||o.has(i)||o.set(i,s)})),o};e.firstPositions=n;e.RowLookups=class{constructor(e){this.rows=e,this.groups=new Map,this.positions=new Map}groupsBy(e,t){const n=`${e}\0${t}`;return this.groups.has(n)||this.groups.set(n,r(this.rows,e,t)),this.groups.get(n)}positionsBy(e,t){const r=`${e}\0${t}`;return this.positions.has(r)||this.positions.set(r,n(this.rows,e,t)),this.positions.get(r)}}}}),bo=d({"dist/data/utilities/semiJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.semiJoin=void 0,Ke(),Ln(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Fn(),r=go(),n=jo();e.semiJoin=(e,o,s,i,a,c)=>{if("="===a&&(0,r.isKeyedType)(c)){if(o.lookups&&e.rows.length<o.rows.length){const t=o.lookups.positionsBy(i,c),n=[];return e.rows.forEach(((e,o)=>{const i=t.get((0,r.joinKey)(c,e[s]));void 0!==i&&n.push({row:e,position:i,index:o})})),n.sort(((e,t)=>e.position-t.position||e.index-t.index)).map((({row:e})=>e))}const t=e.lookups?e.lookups.groupsBy(s,c):(0,n.groupRows)(e.rows,s,c),a=[],l=new Set;for(const e of o.rows){const n=(0,r.joinKey)(c,e[i]);if(void 0===n||l.has(n))continue;l.add(n);const o=t.get(n);o&&a.push(...o)}return a}const l=[],d=new Set;for(const r of o.rows)for(const n of(0,t.where)(e.rows,{property:s,comparator:a,value:r[i],type:c}))d.has(n)||(d.add(n),l.push(n));return l}}}),_o=d({"dist/data/utilities/retrieveIndexes.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveIndexes=void 0;var t=On(),r=En(),n=Nn();e.retrieveIndexes=async(e="",o=[],s={})=>{Object.prototype.hasOwnProperty.call(s,e)||(s[e]=await(0,r.retrieveRecord)(e));const i={};for(const r of o)for(const o of s[e].keys)(0,n.isSingleFieldKey)(o,r)&&(i[r]=(s[e].entries||[]).length?await(0,t.retrieveFile)(`__indexes/${e}/${o.lookup}`):[]);return i}}}),xo=d({"dist/data/utilities/joinBases.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinBases=void 0,Ke(),st(),Ln(),nt(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Zn(),r=En(),n=An(),o=_o(),s=go(),i=jo(),a=async(e,t,i,a,c)=>{const l=(await(0,o.retrieveIndexes)(e,[t],{}))[t];if(!l)return;const d=new Set(a.map((e=>(0,s.joinKey)(i,e[c]))).filter((e=>void 0!==e))),u=new Set;for(const e of l)d.has((0,s.joinKey)(i,e.value))&&e.record.forEach((e=>u.add(e)));const f=await(0,r.retrieveRecord)(e);return(0,n.retrieveEntryRows)(f,f.entries.filter((e=>u.has(e))))};e.joinBases=async(e,r,n,o,c)=>{const l=new Map,d=(e,t)=>l.set(e,{rows:t,lookups:new i.RowLookups(t)});d(e,n[e]),c&&d(r,n[r]);const u=async e=>(await(0,t.readEntity)(e,n))[e];for(const e of o){const t=[{name:e.entityA,property:e.propertyA,other:e.entityB,otherProperty:e.propertyB},{name:e.entityB,property:e.propertyB,other:e.entityA,otherProperty:e.propertyA}];for(const{name:r,property:n,other:o,otherProperty:i}of t){if(l.has(r))continue;d(r,("="===e.comparator&&e.typeA===e.typeB&&(0,s.isKeyedType)(e.typeA)&&l.has(o)?await a(r,n,e.typeA,l.get(o).rows,i):void 0)??await u(r))}}return l.has(r)||d(r,await u(r)),l}}}),Oo=d({"dist/data/queries/joinEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinEntity=void 0,Ke(),nt(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=Zn(),r=En(),n=Tn(),o=Mn(),s=bo(),i=xo();e.joinEntity=async(e,a,c={},l=[],d=!1,u=!1)=>{if(d||(c=await(0,t.readEntity)(e,c)),!l.length)return c;const f=await(async e=>{const t=[];for(const{propertyA:s,comparator:i,propertyB:a}of e){const{entity:e,property:c}=(0,n.splitEntityProperty)(s),{entity:l,property:d}=(0,n.splitEntityProperty)(a);t.push({entityA:e,propertyA:c,typeA:(0,o.fieldType)(await(0,r.retrieveRecord)(e),c),comparator:i,entityB:l,propertyB:d,typeB:(0,o.fieldType)(await(0,r.retrieveRecord)(l),d)})}return t})(l);if(!c[e].length)return c;const p=await(0,i.joinBases)(e,a,c,f,u);for(const t of c[e]){const r=new Map(p);r.set(e,{rows:[t]});for(const e of f)r.set(e.entityA,{rows:(0,s.semiJoin)(r.get(e.entityA),r.get(e.entityB),e.propertyA,e.propertyB,e.comparator,e.typeA)}),r.set(e.entityB,{rows:(0,s.semiJoin)(r.get(e.entityB),r.get(e.entityA),e.propertyB,e.propertyA,e.comparator,e.typeB)});t[a]=r.get(a).rows.map((e=>structuredClone(e)))}return c}}}),$o=d({"dist/data/utilities/mergeJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.mergeJoin=void 0,Ke(),nt();var t=Zn(),r=Tn(),n=Fn(),o=En(),s=Mn();e.mergeJoin=async(e="",i="",a={})=>{const{entity:c,property:l}=(0,r.splitEntityProperty)(e),{entity:d,property:u}=(0,r.splitEntityProperty)(i);a=await(0,t.readEntity)(c,a),a=await(0,t.readEntity)(d,a);const f=(0,s.fieldType)(await(0,o.retrieveRecord)(d),u);return a[c]=a[c].map((e=>{const t=(0,n.where)(a[d],{property:u,comparator:"=",value:e[l],type:f});if(!t.length)return e;const r=t[0];for(const t in r)t!==u&&(e[`${d}.${t}`]=r[t]);return e})),a}}}),Eo=d({"dist/data/utilities/reconcileJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.reconcileJoin=void 0,kt(),Ke(),Wn(),kr(),Ln();e.reconcileJoin=(e,t,r,n,o)=>{const s=e[t][r];return Object.prototype.hasOwnProperty.call(s,n)&&Array.isArray(s[n])&&Array.isArray(e[n])&&s[n].forEach(((s,i)=>{if(!s||!Object.prototype.hasOwnProperty.call(s,o))return;const a=Object.keys(s),c=e[n].find((e=>a.every((t=>{return r=e[t],n=s[t],r===n||JSON.stringify(r)===JSON.stringify(n);var r,n}))));c&&(e[t][r][n][i]=c)})),e}}}),ko=d({"dist/data/utilities/reconcileJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.reconcileJoins=void 0;var t=Tn(),r=Eo();e.reconcileJoins=(e,n,o)=>{const{entity:s,property:i}=(0,t.splitEntityProperty)(e),{entity:a,property:c}=(0,t.splitEntityProperty)(n);for(const e in o)for(const t in o[e])o=(0,r.reconcileJoin)(o,e,t,s,i),o=(0,r.reconcileJoin)(o,e,t,a,c);return o}}}),Po=d({"dist/data/queries/mergeJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.mergeJoins=void 0;var t=$o(),r=ko();e.mergeJoins=async(e={},n=[])=>{if(!n.length)return e;for(const o of n)e=await(0,t.mergeJoin)(o.propertyA,o.propertyB,e),e=(0,r.reconcileJoins)(o.propertyA,o.propertyB,e);return e}}}),So=d({"dist/data/queries/sortBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.sortBy=void 0;var t=kn(),r=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)?null===e[t]?1:2:0;e.sortBy=(e=[],n=[])=>n.length?(e.sort(((e,o)=>{for(const s of n){const n=s.property,i=s.direction,a=r(e,n),c=r(o,n);if(a!==c)return"asc"===i?a-c:c-a;const l=(0,t.compareAs)(s.type,e[n]),d=(0,t.compareAs)(s.type,o[n]);if(l==d)continue;const u=l<d?-1:1;return"asc"===i?u:-1*u}return 0})),e):e}}),Mo=d({"dist/data/queries/groupBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.groupBy=void 0,kt(),Ke(),nt(),ht(),Hr(),Yr(),Zr(),en(),tn(),nn(),on(),sn(),an(),cn(),ln(),dn(),un();var t=e=>Array.isArray(e)?e.map(t):null!==e&&"object"==typeof e?Object.keys(e).sort().reduce(((r,n)=>(r[n]=t(e[n]),r)),{}):e,r=(e,r)=>{if(!Object.prototype.hasOwnProperty.call(e,r))return"missing";const n=e[r];return null!==n&&"object"==typeof n?`json:${JSON.stringify(t(n))}`:`${typeof n}:${String(n)}`},n=(e=[],t=[])=>{if(!t.length)return e;const[o,...s]=t,i=new Map;for(const t of e){const e=r(t,o);i.has(e)||i.set(e,"missing"===e?{field:o,missing:!0,rows:[]}:{field:o,value:t[o],rows:[]}),i.get(e).rows.push(t)}return[...i.values()].map((({rows:e,...t})=>s.length?{...t,groups:n(e,s)}:{...t,rows:e}))};e.groupBy=n}}),Ro=d({"dist/data/queries/limitOffset.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.limitOffset=void 0;e.limitOffset=(e=[],t,r)=>{if(void 0===t&&void 0===r)return e;const n=t??0,o="number"==typeof r?n+r:void 0;return e.slice(n,o)}}}),Do=d({"dist/data/queries/selectFields.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.selectFields=void 0,Ke(),nt(),ht();var t=(e,t,r)=>t.reduce(((t,{property:n,alias:o})=>(t[o||n]=((e,t,r)=>Object.prototype.hasOwnProperty.call(e,t)||void 0===r||!t.startsWith(`${r}.`)?e[t]:e[t.slice(r.length+1)])(e,n,r),t)),{}),r=(e,n,o)=>e.groups?{...e,groups:e.groups.map((e=>r(e,n,o)))}:{...e,rows:e.rows.map((e=>t(e,n,o)))};e.selectFields=(e=[],n=[],o=!1,s)=>n.length?o?e.map((e=>r(e,n,s))):e.map((e=>t(e,n,s))):e}}),Co=d({"dist/data/utilities/getConditionIndexedList.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.getConditionIndexedList=void 0,Ke(),qt(),Ln(),St(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Hn(),r=Tn(),n=En(),o=Fn(),s=An(),i=On(),a=_o(),c=Nn(),l=Lt(),d=(e,n)=>(0,t.isEntityProperty)(e.property)?(0,r.splitEntityProperty)(e.property):{entity:n,property:e.property},u=async(e,t,r,s,i)=>{if(Object.prototype.hasOwnProperty.call(s,e)||(s[e]=await(0,n.retrieveRecord)(e)),s[e].keys.some((e=>(0,c.isSingleFieldKey)(e,t))))return i[e]=i[e]||{},Object.prototype.hasOwnProperty.call(i[e],t)||(i[e][t]=(await(0,a.retrieveIndexes)(e,[t],s))[t]),new Set((0,o.where)(i[e][t],{property:"value",comparator:r.comparator,value:r.value,type:r.type}).flatMap((e=>e.record)))},f=async(e,t,r,n)=>{if((0,l.isCondition)(e)){const{entity:o,property:s}=d(e,t);return o===t?await u(o,s,e,r,n):void 0}if("not"in e)return;if("or"in e){const o=new Set;for(const s of e.or){const e=await f(s,t,r,n);if(void 0===e)return;e.forEach((e=>o.add(e)))}return o}let o;for(const s of e.and){const e=await f(s,t,r,n);void 0!==e&&(o=void 0===o?e:new Set([...o].filter((t=>e.has(t)))))}return o};e.getConditionIndexedList=async(e,t,r,o=new Set)=>{const a={},c={};if(void 0!==e.where){const r=await f(e.where,e.entity,t,c);void 0!==r&&(a[e.entity]=r)}for(const r of(0,l.requiredConditions)(e.where)){const{entity:n,property:o}=d(r,e.entity);if(n===e.entity)continue;const s=await u(n,o,r,t,c);void 0!==s&&(a[n]=Object.prototype.hasOwnProperty.call(a,n)?new Set([...a[n]].filter((e=>s.has(e)))):s)}for(const e of Object.keys(a)){o.add(e);const c=t[e]||await(0,n.retrieveRecord)(e);r[e]=await(0,s.retrieveEntryRows)(c,[...a[e]],i.retrieveFile)}return e}}}),Ao=d({"dist/data/utilities/conditionEntities.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.conditionEntities=void 0,Ke(),st(),qt(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Hn(),r=Tn(),n=Lt();e.conditionEntities=e=>{const o=e.entity,s=e.joinClauses.length?e.joinEntity:void 0,i=new Set([o,s]),a=new Set(e.mergeJoins.filter((e=>i.has((0,r.splitEntityProperty)(e.propertyA).entity))).map((e=>(0,r.splitEntityProperty)(e.propertyB).entity))),c=new Set(e.joinClauses.flatMap((e=>[e.propertyA,e.propertyB].map((e=>(0,r.splitEntityProperty)(e).entity)))).filter((e=>!i.has(e)&&!a.has(e)))),l="update"===e.command||"delete"===e.command;let d=!1;for(const i of(0,n.conditionsOf)(e.where)){if(!(0,t.isEntityProperty)(i.property))continue;const{entity:n,property:u}=(0,r.splitEntityProperty)(i.property);if(n===o){i.property=u;continue}if(l)throw new Error(`${e.command} can only use conditions on ${o}'s own fields, not ${i.property}`);if(n===s){d=!0;continue}if(a.has(n))continue;if(c.has(n))throw new Error(`${n} only links ${o} to ${s}: a condition can't use its fields (${i.property})`);const f=[o,s,...a].filter((e=>void 0!==e)).join(", ");throw new Error(`${n} is not part of this query (${i.property}): conditions can use the fields of ${f}`)}return d}}}),Fo=d({"dist/data/utilities/runQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.runQuery=void 0,Nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=Bn(),r=Yn(),n=Zn(),o=to(),s=lo(),i=po(),a=yo(),c=mo(),l=wo(),d=ho(),u=Oo(),f=Po(),y=Fn(),h=So(),m=Mo(),v=Ro(),w=Do(),g=En(),j=Co(),b=Hn(),_=Tn(),x=Mn(),O=Lt(),$=Ao(),E=ao(),k=Xn();e.runQuery=async e=>{const p=void 0!==e.where&&(0,$.conditionEntities)(e);switch(["insert","update","delete","create","drop","alter"].includes(e.command)&&(0,E.requireNode)(`"${e.command}"`),e.command){case"create":return{[e.entity]:await(0,s.createRecord)(e.entity,e.create)};case"drop":return{[e.entity]:await(0,i.dropRecord)(e.entity,e.ifExists)};case"describe":return{[e.entity]:await(0,a.describeRecord)(e.entity)};case"alter":return{[e.entity]:await(0,c.alter)(e.entity,e.alter)};case"create database":return{[e.entity]:await(0,l.createDatabase)(e.entity,e.ifNotExists)};case"drop database":return{[e.entity]:await(0,l.dropDatabase)(e.entity,e.ifExists)};case"use":return{[e.entity]:await(0,l.useDatabase)(e.entity)};case"show databases":return{[e.entity]:await(0,l.showDatabases)()};case"show":return{[e.entity]:await(0,d.showRecords)()}}const P={[e.entity]:await(0,g.retrieveRecord)(e.entity)};void 0!==e.joinEntity&&(P[e.joinEntity]=await(0,g.retrieveRecord)(e.joinEntity)),await(0,k.assertKnownFields)(e,P),await(async(e,t)=>{for(const r of[...(0,O.conditionsOf)(e.where),...e.sortClauses]){let n=e.entity,o=r.property;(0,b.isEntityProperty)(o)&&({entity:n,property:o}=(0,_.splitEntityProperty)(o)),Object.prototype.hasOwnProperty.call(t,n)||(t[n]=await(0,g.retrieveRecord)(n)),r.type=(0,x.fieldType)(t[n],o)}})(e,P);let S={[e.entity]:[]};const M=new Set;e=await(0,j.getConditionIndexedList)(e,P,S,M);const R=M.has(e.entity);switch("delete"!==e.command&&"update"!==e.command||(R||(S=await(0,n.readEntity)(e.entity,S)),S[e.entity]=(0,y.whereTree)(S[e.entity],e.where)),e.command){case"delete":S=await(0,t.deleteEntity)(e.entity,S);break;case"insert":S=await(0,r.insertEntity)(e.entity,e.insertValues,S);break;case"read":R||(S=await(0,n.readEntity)(e.entity,S));break;case"update":S=await(0,o.updateEntity)(e.entity,e.updateValues,S);break;default:throw new Error(`Unknown command: ${e.command}`)}return S=await(0,u.joinEntity)(e.entity,e.joinEntity,S,e.joinClauses,R,M.has(e.joinEntity)),S=await(0,f.mergeJoins)(S,e.mergeJoins),"delete"!==e.command&&"update"!==e.command&&(S[e.entity]=(0,y.whereTree)(S[e.entity],e.where,p?e.joinEntity:void 0)),S[e.entity]=(0,h.sortBy)(S[e.entity],e.sortClauses),S[e.entity]=(0,m.groupBy)(S[e.entity],e.groupBy),S[e.entity]=(0,v.limitOffset)(S[e.entity],e.offset,e.limit),S[e.entity]=(0,w.selectFields)(S[e.entity],e.selectClauses,Boolean(e.groupBy?.length),e.entity),S}}}),To=d({"dist/data/queries/query.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.query=void 0;var t=Ir(),r=Fo(),n=vo(),o=xn();e.query=async(e="")=>{const s=(0,t.parser)(e);return(0,n.withDatabaseLock)((async()=>{const e=[];for(const t of s){const n=await(0,o.withWriteSet)((()=>(0,r.runQuery)(t)));e.push(n[t.entity])}return e}))}}}),No=d({"dist/data/queries/quote.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.quote=void 0;e.quote=(e,t="'")=>`${t}${String(e).replace(/\\/g,"\\\\").split(t).join(`\\${t}`)}${t}`}}),Io=d({"dist/data/queries/queryStatus.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.queryStatus=void 0;var t=mt();e.queryStatus=(e="")=>{const{end:r,closed:n,terminated:o}=(0,t.scanQuery)(e);return o?{complete:!0,waitingFor:""}:r.quote?{complete:!1,waitingFor:r.quote}:r.blockComment?{complete:!1,waitingFor:"/*"}:n?{complete:!1,waitingFor:";"}:{complete:!1,waitingFor:r.brackets[r.brackets.length-1]}}}}),Jo=d({"dist/data/introspect/formatDatabase.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.formatDatabase=void 0,Ke(),st();var t=xn(),r=Vr(),n=ao();e.formatDatabase=async(e=(0,r.getSetting)("format","compact"))=>{if((0,n.requireNode)("formatDatabase"),"compact"!==e&&"pretty"!==e)throw new Error(`Unknown format "${e}": use 'compact' or 'pretty'`);const o=(await(0,t.listFiles)()).filter((e=>e.endsWith(".json"))),s=[];for(const r of o){const n=await(0,t.readText)(r);let o;try{o=JSON.parse(n)}catch(e){throw new Error(`Could not format ${r}: ${e.message}`)}(0,t.jsonText)(o,e)!==n&&s.push({path:r,content:o})}for(const{path:r,content:n}of s)await(0,t.writeJson)(r,n,e);return{files:o.length,rewritten:s.length}}}}),qo=d({"dist/data/introspect/packDatabase.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.packDatabase=e.checkPacked=void 0,kt(),Ke(),st(),nt(),Vt(),Wt(),tr(),rr(),nr(),or(),ir(),cr(),dr(),fr(),pr(),yr(),hr(),mr(),wr(),jr();var t=xn(),r=En(),n=Dn(),o=An(),s=Cn(),i=ho(),a=ao(),c=async e=>{const i=await(0,r.retrieveRecord)(e),a=i.entries||[],c=await(0,n.retrieveFiles)(a.map((e=>`${i.path}/${e}`)),o.retrieveEntry),l={entries:a,rows:c};return{path:(0,s.packedPath)(i.path),text:(0,t.jsonText)(l,"compact"),rows:a.length}},l=async e=>{const r=new Set(e.map((e=>(0,s.packedPath)(e))));return(await(0,t.listFiles)("__packed")).filter((e=>!r.has(e)))};e.packDatabase=async()=>{(0,a.requireNode)("packDatabase");const e=await(0,i.showRecords)();let r=0;for(const n of e){const e=await c(n);await(0,t.makeDirectory)(e.path.slice(0,e.path.lastIndexOf("/"))),await(0,t.writeJson)(e.path,JSON.parse(e.text),"compact"),r+=e.rows}for(const r of await l(e))await(0,t.removeFile)(r);return{records:e.length,rows:r}};e.checkPacked=async()=>{(0,a.requireNode)("checkPacked");const e=await(0,i.showRecords)(),r=[];for(const n of e){const e=await c(n),o=(0,t.fileExists)(e.path)?await(0,t.readText)(e.path).catch((()=>{})):void 0;void 0!==o&&JSON.stringify(JSON.parse(o))===e.text||r.push(n)}return{stale:r,orphaned:await l(e)}}}}),Lo=d({"dist/data/introspect/index.js"(e){p(),Ce(),ze(),Ke(),et(),Object.defineProperty(e,"__esModule",{value:!0}),e.packDatabase=e.formatDatabase=e.drop=e.describe=e.create=e.checkPacked=e.alter=void 0;var t=co(),r=fo(),n=Rn(),o=Jo(),s=mo(),i=qo(),a=vo(),c=xn();e.create=(...e)=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,t.create)(...e)))));e.drop=(...e)=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,r.drop)(...e)))));e.alter=(...e)=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,s.alter)(...e)))));e.describe=(...e)=>(0,a.withDatabaseLock)((()=>(0,n.describe)(...e)));e.formatDatabase=(...e)=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,o.formatDatabase)(...e)))));e.packDatabase=()=>(0,a.withDatabaseLock)((()=>(0,c.withWriteSet)((()=>(0,i.packDatabase)()))));e.checkPacked=()=>(0,a.withDatabaseLock)((()=>(0,i.checkPacked)()))}});return d({"dist/index.js"(e){p(),Ce(),ze(),Ke(),et(),Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"alter",{enumerable:!0,get:function(){return o.alter}}),Object.defineProperty(e,"checkPacked",{enumerable:!0,get:function(){return o.checkPacked}}),Object.defineProperty(e,"configure",{enumerable:!0,get:function(){return s.configure}}),Object.defineProperty(e,"create",{enumerable:!0,get:function(){return o.create}}),Object.defineProperty(e,"describe",{enumerable:!0,get:function(){return o.describe}}),Object.defineProperty(e,"drop",{enumerable:!0,get:function(){return o.drop}}),Object.defineProperty(e,"formatDatabase",{enumerable:!0,get:function(){return o.formatDatabase}}),Object.defineProperty(e,"packDatabase",{enumerable:!0,get:function(){return o.packDatabase}}),Object.defineProperty(e,"query",{enumerable:!0,get:function(){return t.query}}),Object.defineProperty(e,"queryStatus",{enumerable:!0,get:function(){return n.queryStatus}}),Object.defineProperty(e,"quote",{enumerable:!0,get:function(){return r.quote}});var t=To(),r=No(),n=Io(),o=Lo(),s=Vr()}})()})();"object"==typeof module&&module&&module.exports&&(module.exports=jsonFsQuery);
@@ -62,9 +62,14 @@ const assertValidDefinition = (recordName, recordContent) => {
62
62
  }
63
63
  const primaryKey = recordContent.keys.find(key => key.type === 'primary');
64
64
  for (const fieldName of primaryKey ? primaryKey.fields : []) {
65
- if (recordContent.definition.some(field => field.name === fieldName && field.nullable)) {
65
+ const field = recordContent.definition.find(defined => defined.name === fieldName);
66
+ if (field && field.nullable) {
66
67
  throw new Error(`Primary key field "${fieldName}" of ${recordName} can't be nullable`);
67
68
  }
69
+ // A row without its primary key can't be stored (its file is named by it): an auto field always gets a value
70
+ if (field && field.optional && !field.autoGenerate) {
71
+ throw new Error(`Primary key field "${fieldName}" of ${recordName} can't be optional`);
72
+ }
68
73
  }
69
74
  };
70
75
  /**
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=exports.assertValidDefinition=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.some.js");var _record=require("./definitions/record"),_registerRecord=require("../utilities/registerRecord"),_storage=require("../storage"),_requireNode=require("../utilities/requireNode"),_typeCheck=require("./policies/typeCheck");const knownKeyProperties=["type","fields","lookup","references"],assertKnownKeyProperties=(e,r)=>{for(const o of r)for(const r of Object.keys(o))if(!knownKeyProperties.includes(r))throw new Error(`Unknown property "${r}" on ${o.type??"index"} key of ${e}; must be ${knownKeyProperties.join(", ")}`)},assertValidDefinition=(e,r)=>{for(const o of r.definition)if(Object.prototype.hasOwnProperty.call(o,"default"))try{(0,_typeCheck.typeCheck)(o.type,o.default,o.nullable)}catch(r){throw new Error(`Invalid default for field "${o.name}" of ${e}: ${r.message}`)}for(const o of r.keys){if(o.fields.length<1)throw new Error(`The ${o.type} key of ${e} must have at least one field`);for(const t of o.fields)if(!r.definition.some((e=>e.name===t)))throw new Error(`The ${o.type} key of ${e} names field "${t}", which isn't in the definition`)}const o=r.keys.find((e=>"primary"===e.type));for(const t of o?o.fields:[])if(r.definition.some((e=>e.name===t&&e.nullable)))throw new Error(`Primary key field "${t}" of ${e} can't be nullable`)};exports.assertValidDefinition=assertValidDefinition;const create=async(e,r=[],o=[])=>{if((0,_requireNode.requireNode)("create()"),"__RECORDS"===e)return null;if((0,_storage.fileExists)(`${e}.json`))return null;assertKnownKeyProperties(e,o);const t=(0,_record.record)({path:e,definition:r,keys:o});assertValidDefinition(e,t),await(0,_storage.makeDirectory)(),await(0,_storage.writeJson)(`${e}.json`,t),await(0,_storage.makeDirectory)(e);const i=t.keys.filter((e=>e.lookup));if(i.length){await(0,_storage.makeDirectory)(`__indexes/${e}`);for(const r of i)await(0,_storage.writeJson)(`__indexes/${e}/${r.lookup}`,[])}return await(0,_registerRecord.registerRecord)(e),t};exports.create=create;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.create=exports.assertValidDefinition=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.filter.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.some.js");var _record=require("./definitions/record"),_registerRecord=require("../utilities/registerRecord"),_storage=require("../storage"),_requireNode=require("../utilities/requireNode"),_typeCheck=require("./policies/typeCheck");const knownKeyProperties=["type","fields","lookup","references"],assertKnownKeyProperties=(e,r)=>{for(const o of r)for(const r of Object.keys(o))if(!knownKeyProperties.includes(r))throw new Error(`Unknown property "${r}" on ${o.type??"index"} key of ${e}; must be ${knownKeyProperties.join(", ")}`)},assertValidDefinition=(e,r)=>{for(const o of r.definition)if(Object.prototype.hasOwnProperty.call(o,"default"))try{(0,_typeCheck.typeCheck)(o.type,o.default,o.nullable)}catch(r){throw new Error(`Invalid default for field "${o.name}" of ${e}: ${r.message}`)}for(const o of r.keys){if(o.fields.length<1)throw new Error(`The ${o.type} key of ${e} must have at least one field`);for(const t of o.fields)if(!r.definition.some((e=>e.name===t)))throw new Error(`The ${o.type} key of ${e} names field "${t}", which isn't in the definition`)}const o=r.keys.find((e=>"primary"===e.type));for(const t of o?o.fields:[]){const o=r.definition.find((e=>e.name===t));if(o&&o.nullable)throw new Error(`Primary key field "${t}" of ${e} can't be nullable`);if(o&&o.optional&&!o.autoGenerate)throw new Error(`Primary key field "${t}" of ${e} can't be optional`)}};exports.assertValidDefinition=assertValidDefinition;const create=async(e,r=[],o=[])=>{if((0,_requireNode.requireNode)("create()"),"__RECORDS"===e)return null;if((0,_storage.fileExists)(`${e}.json`))return null;assertKnownKeyProperties(e,o);const t=(0,_record.record)({path:e,definition:r,keys:o});assertValidDefinition(e,t),await(0,_storage.makeDirectory)(),await(0,_storage.writeJson)(`${e}.json`,t),await(0,_storage.makeDirectory)(e);const i=t.keys.filter((e=>e.lookup));if(i.length){await(0,_storage.makeDirectory)(`__indexes/${e}`);for(const r of i)await(0,_storage.writeJson)(`__indexes/${e}/${r.lookup}`,[])}return await(0,_registerRecord.registerRecord)(e),t};exports.create=create;
@@ -312,7 +312,7 @@ const generateKey = async (statement, field) => {
312
312
  };
313
313
  /**
314
314
  * Build one entity's stored values from the raw input values, generating any autoGenerate
315
- * fields and applying field defaults, then throw if a required field still has no value. A null
315
+ * field the row leaves out (a value given for one is kept) and applying field defaults, then throw if a required field still has no value. A null
316
316
  * in an optional field that isn't nullable means the same as leaving it out (the field can't
317
317
  * hold null, so nothing is lost): it isn't stored, and a default fills it in as for a field left out.
318
318
  * @param statement
@@ -326,7 +326,11 @@ const buildEntityValues = async (statement, rowValues = {}) => {
326
326
  value = undefined;
327
327
  }
328
328
  if (field.autoGenerate) {
329
- value = await generateKey(statement, field.name);
329
+ // As MySQL does with AUTO_INCREMENT, a value given for the field is kept (the key checks still apply), and only
330
+ // a row that leaves it out, or gives null, gets a new one
331
+ if (value === undefined || value === null) {
332
+ value = await generateKey(statement, field.name);
333
+ }
330
334
  } else if (Object.prototype.hasOwnProperty.call(field, 'default')) {
331
335
  value = (0, _useDefault.useDefault)(field['default'], value);
332
336
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.insertEntity=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.every.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/modules/esnext.iterator.map.js"),require("core-js/modules/esnext.iterator.some.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js"),require("core-js/modules/esnext.set.add-all.js"),require("core-js/modules/esnext.set.delete-all.js"),require("core-js/modules/esnext.set.difference.js"),require("core-js/modules/esnext.set.every.js"),require("core-js/modules/esnext.set.filter.js"),require("core-js/modules/esnext.set.find.js"),require("core-js/modules/esnext.set.intersection.js"),require("core-js/modules/esnext.set.is-disjoint-from.js"),require("core-js/modules/esnext.set.is-subset-of.js"),require("core-js/modules/esnext.set.is-superset-of.js"),require("core-js/modules/esnext.set.join.js"),require("core-js/modules/esnext.set.map.js"),require("core-js/modules/esnext.set.reduce.js"),require("core-js/modules/esnext.set.some.js"),require("core-js/modules/esnext.set.symmetric-difference.js"),require("core-js/modules/esnext.set.union.js");var _retrieveRecord=require("../utilities/retrieveRecord"),_keyUnique=require("../introspect/policies/keyUnique"),_useDefault=require("../introspect/policies/useDefault"),_typeCheck=require("../introspect/policies/typeCheck"),_foreignKeyExists=require("../introspect/policies/foreignKeyExists"),_splitEntityProperty=require("../utilities/parsers/splitEntityProperty"),_computeKeyValue=require("../utilities/computeKeyValue"),_fieldType=require("../utilities/fieldType"),_compareAs=require("../utilities/compareAs"),_retrieveRecords=require("../utilities/retrieveRecords"),_isSingleFieldKey=require("../utilities/isSingleFieldKey"),_indexBuffer=require("../utilities/indexBuffer"),_storage=require("../storage"),_packedTable=require("../utilities/packedTable"),_knownFields=require("../utilities/knownFields");class RowValues{constructor(e,s){this.seen=new Set,this.fields=s,this.types=s.map((s=>(0,_fieldType.fieldType)(e,s)))}static usable(e,s){return s.every((s=>_compareAs.comparableTypes.includes((0,_fieldType.fieldType)(e,s))))}keyOf(e){const s=[];for(let t=0;t<this.fields.length;t++){const r=e[this.fields[t]];if(null==r)return;const i=(0,_compareAs.compareAs)(this.types[t],r);if("object"==typeof i)return;s.push([typeof i,i])}return JSON.stringify(s)}add(e){const s=this.keyOf(e);void 0!==s&&this.seen.add(s)}has(e){const s=this.keyOf(e);return void 0!==s&&this.seen.has(s)}}class InsertStatement{constructor(e,s){this.rows=[],this.buffers=new Map,this.unreadable=new Set,this.otherLookups=new Map,this.scans=new Map,this.entity=e,this.record=s,this.hadEntries=(s.entries||[]).length>0}async load(){for(const e of this.record.keys){if(!e.lookup)continue;let s=[];try{s=await(0,_storage.readJson)(`__indexes/${this.record.path}/${e.lookup}`)}catch(s){this.unreadable.add(e)}this.buffers.set(e,new _indexBuffer.IndexBuffer(Array.isArray(s)?s:[],(0,_fieldType.keyValueType)(this.record,e)))}}ownLookup(e){const s=this.record.keys.find((s=>(0,_isSingleFieldKey.isSingleFieldKey)(s,e)&&s.lookup));if(!s||this.unreadable.has(s))return()=>{};const t=this.buffers.get(s);return e=>(this.hadEntries||this.rows.length>0)&&t.has(e)}otherLookup(e,s){const t=`${e}\0${s}`;return this.otherLookups.has(t)||this.otherLookups.set(t,(async()=>{const t=await(0,_retrieveRecord.retrieveRecord)(e),r=t.keys.find((e=>(0,_isSingleFieldKey.isSingleFieldKey)(e,s)&&e.lookup));if(!r)return()=>{};if(!(t.entries||[]).length)return()=>!1;let i;try{i=await(0,_storage.readJson)(`__indexes/${t.path}/${r.lookup}`)}catch(e){return()=>{}}const o=new _indexBuffer.IndexBuffer(Array.isArray(i)?i:[],(0,_fieldType.fieldType)(t,s));return e=>o.has(e)})()),this.otherLookups.get(t)}scan(e,s){const t=`${e}\0${s.join("\0")}`;return this.scans.has(t)||this.scans.set(t,(async()=>{const t=e===this.entity?this.record:await(0,_retrieveRecord.retrieveRecord)(e);if(!RowValues.usable(t,s))return;const r=new RowValues(t,s);for(const s of await(0,_retrieveRecords.retrieveRecords)(e))r.add(s);return e===this.entity&&this.rows.forEach((e=>r.add(e))),r})()),this.scans.get(t)}claimed(e,s){return this.rows.some((t=>e.every((e=>null!==t[e]&&void 0!==t[e]&&(0,_compareAs.sameValue)((0,_fieldType.fieldType)(this.record,e),t[e],s[e])))))}async isUnique(e,s){if(1===e.length){const t=this.ownLookup(e[0])(s[e[0]]);if(void 0!==t)return!t}const t=await this.scan(this.entity,e);return t?!t.has(s):await(0,_keyUnique.keyUnique)(this.entity,e,e.map((e=>s[e])))&&!this.claimed(e,s)}async exists(e,s,t){const r=e===this.entity,i=r?this.ownLookup(s)(t):(await this.otherLookup(e,s))(t);if(void 0!==i)return i;const o=await this.scan(e,[s]);return o?o.has({[s]:t}):await(0,_foreignKeyExists.foreignKeyExists)(e,s,t)||r&&this.claimed([s],{[s]:t})}async add(e,s){this.rows.push(e);for(const[s,t]of this.scans)s.startsWith(`${this.entity}\0`)&&(await t)?.add(e);this.record.entries.push(s);for(const[t,r]of this.buffers)r.add((0,_computeKeyValue.computeKeyValue)(t.fields,e),s)}async write(){await(0,_storage.writeJson)(`${this.record.path}.json`,this.record),this.buffers.size&&await(0,_storage.makeDirectory)(`__indexes/${this.record.path}`);for(const[e,s]of this.buffers)await(0,_storage.writeJson)(`__indexes/${this.record.path}/${e.lookup}`,s.entries)}}const generateKey=async(e,s)=>{let t;do{t=crypto.randomUUID()}while(!await e.isUnique([s],{[s]:t}));return t},buildEntityValues=async(e,s={})=>{const t={};for(const r of e.record.definition){let i=s[r.name];if(null===i&&r.optional&&!r.nullable&&(i=void 0),r.autoGenerate?i=await generateKey(e,r.name):Object.prototype.hasOwnProperty.call(r,"default")&&(i=(0,_useDefault.useDefault)(r.default,i)),void 0!==i)t[r.name]=(0,_typeCheck.typeCheck)(r.type,i,r.nullable);else if(!r.optional)throw new Error(`Missing required field "${r.name}" for ${e.entity}`)}return t},assertUnique=async(e,s)=>{for(const t of e.record.keys)if(!("primary"!==t.type&&"unique"!==t.type||t.fields.some((e=>null===s[e]))||await e.isUnique(t.fields,s)))throw new Error(`Duplicate value for ${t.type} key "${t.fields.join(", ")}" on ${e.entity}`)},assertForeignKeys=async(e,s)=>{for(const t of e.record.keys){if("foreign"!==t.type||1!==t.fields.length||!t.references||1!==t.references.length)continue;const r=t.fields[0];if(!Object.prototype.hasOwnProperty.call(s,r)||null===s[r])continue;const{entity:i,property:o}=(0,_splitEntityProperty.splitEntityProperty)(t.references[0].fields[0]);if(!await e.exists(i,o,s[r]))throw new Error(`Foreign key "${r}" on ${e.entity} references a nonexistent ${i}.${o} = ${s[r]}`)}},insertEntity=async(e="",s=[],t={})=>{const r=await(0,_retrieveRecord.retrieveRecord)(e),i=r.keys.find((e=>"primary"===e.type&&1===e.fields.length));if(Object.prototype.hasOwnProperty.call(t,e)||(t[e]=[]),await(0,_storage.makeDirectory)(r.path),!s.length)return t;for(const t of s)(0,_knownFields.assertFieldsDefined)(e,r,Object.keys(t||{}),"insert");await(0,_packedTable.discardPacked)(r.path);const o=new InsertStatement(e,r);await o.load();for(const n of s){const s=await buildEntityValues(o,n);await assertUnique(o,s),await assertForeignKeys(o,s);const a=`${i?s[i.fields[0]]:crypto.randomUUID()}.json`;await(0,_storage.writeJson)(`${r.path}/${a}`,s),await o.add(s,a),t[e].push(s)}return await o.write(),t};exports.insertEntity=insertEntity;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.insertEntity=void 0,require("core-js/modules/es.array.includes.js"),require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.every.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.for-each.js"),require("core-js/modules/esnext.iterator.map.js"),require("core-js/modules/esnext.iterator.some.js"),require("core-js/modules/esnext.map.delete-all.js"),require("core-js/modules/esnext.map.every.js"),require("core-js/modules/esnext.map.filter.js"),require("core-js/modules/esnext.map.find.js"),require("core-js/modules/esnext.map.find-key.js"),require("core-js/modules/esnext.map.includes.js"),require("core-js/modules/esnext.map.key-of.js"),require("core-js/modules/esnext.map.map-keys.js"),require("core-js/modules/esnext.map.map-values.js"),require("core-js/modules/esnext.map.merge.js"),require("core-js/modules/esnext.map.reduce.js"),require("core-js/modules/esnext.map.some.js"),require("core-js/modules/esnext.map.update.js"),require("core-js/modules/esnext.set.add-all.js"),require("core-js/modules/esnext.set.delete-all.js"),require("core-js/modules/esnext.set.difference.js"),require("core-js/modules/esnext.set.every.js"),require("core-js/modules/esnext.set.filter.js"),require("core-js/modules/esnext.set.find.js"),require("core-js/modules/esnext.set.intersection.js"),require("core-js/modules/esnext.set.is-disjoint-from.js"),require("core-js/modules/esnext.set.is-subset-of.js"),require("core-js/modules/esnext.set.is-superset-of.js"),require("core-js/modules/esnext.set.join.js"),require("core-js/modules/esnext.set.map.js"),require("core-js/modules/esnext.set.reduce.js"),require("core-js/modules/esnext.set.some.js"),require("core-js/modules/esnext.set.symmetric-difference.js"),require("core-js/modules/esnext.set.union.js");var _retrieveRecord=require("../utilities/retrieveRecord"),_keyUnique=require("../introspect/policies/keyUnique"),_useDefault=require("../introspect/policies/useDefault"),_typeCheck=require("../introspect/policies/typeCheck"),_foreignKeyExists=require("../introspect/policies/foreignKeyExists"),_splitEntityProperty=require("../utilities/parsers/splitEntityProperty"),_computeKeyValue=require("../utilities/computeKeyValue"),_fieldType=require("../utilities/fieldType"),_compareAs=require("../utilities/compareAs"),_retrieveRecords=require("../utilities/retrieveRecords"),_isSingleFieldKey=require("../utilities/isSingleFieldKey"),_indexBuffer=require("../utilities/indexBuffer"),_storage=require("../storage"),_packedTable=require("../utilities/packedTable"),_knownFields=require("../utilities/knownFields");class RowValues{constructor(e,s){this.seen=new Set,this.fields=s,this.types=s.map((s=>(0,_fieldType.fieldType)(e,s)))}static usable(e,s){return s.every((s=>_compareAs.comparableTypes.includes((0,_fieldType.fieldType)(e,s))))}keyOf(e){const s=[];for(let t=0;t<this.fields.length;t++){const r=e[this.fields[t]];if(null==r)return;const i=(0,_compareAs.compareAs)(this.types[t],r);if("object"==typeof i)return;s.push([typeof i,i])}return JSON.stringify(s)}add(e){const s=this.keyOf(e);void 0!==s&&this.seen.add(s)}has(e){const s=this.keyOf(e);return void 0!==s&&this.seen.has(s)}}class InsertStatement{constructor(e,s){this.rows=[],this.buffers=new Map,this.unreadable=new Set,this.otherLookups=new Map,this.scans=new Map,this.entity=e,this.record=s,this.hadEntries=(s.entries||[]).length>0}async load(){for(const e of this.record.keys){if(!e.lookup)continue;let s=[];try{s=await(0,_storage.readJson)(`__indexes/${this.record.path}/${e.lookup}`)}catch(s){this.unreadable.add(e)}this.buffers.set(e,new _indexBuffer.IndexBuffer(Array.isArray(s)?s:[],(0,_fieldType.keyValueType)(this.record,e)))}}ownLookup(e){const s=this.record.keys.find((s=>(0,_isSingleFieldKey.isSingleFieldKey)(s,e)&&s.lookup));if(!s||this.unreadable.has(s))return()=>{};const t=this.buffers.get(s);return e=>(this.hadEntries||this.rows.length>0)&&t.has(e)}otherLookup(e,s){const t=`${e}\0${s}`;return this.otherLookups.has(t)||this.otherLookups.set(t,(async()=>{const t=await(0,_retrieveRecord.retrieveRecord)(e),r=t.keys.find((e=>(0,_isSingleFieldKey.isSingleFieldKey)(e,s)&&e.lookup));if(!r)return()=>{};if(!(t.entries||[]).length)return()=>!1;let i;try{i=await(0,_storage.readJson)(`__indexes/${t.path}/${r.lookup}`)}catch(e){return()=>{}}const o=new _indexBuffer.IndexBuffer(Array.isArray(i)?i:[],(0,_fieldType.fieldType)(t,s));return e=>o.has(e)})()),this.otherLookups.get(t)}scan(e,s){const t=`${e}\0${s.join("\0")}`;return this.scans.has(t)||this.scans.set(t,(async()=>{const t=e===this.entity?this.record:await(0,_retrieveRecord.retrieveRecord)(e);if(!RowValues.usable(t,s))return;const r=new RowValues(t,s);for(const s of await(0,_retrieveRecords.retrieveRecords)(e))r.add(s);return e===this.entity&&this.rows.forEach((e=>r.add(e))),r})()),this.scans.get(t)}claimed(e,s){return this.rows.some((t=>e.every((e=>null!==t[e]&&void 0!==t[e]&&(0,_compareAs.sameValue)((0,_fieldType.fieldType)(this.record,e),t[e],s[e])))))}async isUnique(e,s){if(1===e.length){const t=this.ownLookup(e[0])(s[e[0]]);if(void 0!==t)return!t}const t=await this.scan(this.entity,e);return t?!t.has(s):await(0,_keyUnique.keyUnique)(this.entity,e,e.map((e=>s[e])))&&!this.claimed(e,s)}async exists(e,s,t){const r=e===this.entity,i=r?this.ownLookup(s)(t):(await this.otherLookup(e,s))(t);if(void 0!==i)return i;const o=await this.scan(e,[s]);return o?o.has({[s]:t}):await(0,_foreignKeyExists.foreignKeyExists)(e,s,t)||r&&this.claimed([s],{[s]:t})}async add(e,s){this.rows.push(e);for(const[s,t]of this.scans)s.startsWith(`${this.entity}\0`)&&(await t)?.add(e);this.record.entries.push(s);for(const[t,r]of this.buffers)r.add((0,_computeKeyValue.computeKeyValue)(t.fields,e),s)}async write(){await(0,_storage.writeJson)(`${this.record.path}.json`,this.record),this.buffers.size&&await(0,_storage.makeDirectory)(`__indexes/${this.record.path}`);for(const[e,s]of this.buffers)await(0,_storage.writeJson)(`__indexes/${this.record.path}/${e.lookup}`,s.entries)}}const generateKey=async(e,s)=>{let t;do{t=crypto.randomUUID()}while(!await e.isUnique([s],{[s]:t}));return t},buildEntityValues=async(e,s={})=>{const t={};for(const r of e.record.definition){let i=s[r.name];if(null===i&&r.optional&&!r.nullable&&(i=void 0),r.autoGenerate?null==i&&(i=await generateKey(e,r.name)):Object.prototype.hasOwnProperty.call(r,"default")&&(i=(0,_useDefault.useDefault)(r.default,i)),void 0!==i)t[r.name]=(0,_typeCheck.typeCheck)(r.type,i,r.nullable);else if(!r.optional)throw new Error(`Missing required field "${r.name}" for ${e.entity}`)}return t},assertUnique=async(e,s)=>{for(const t of e.record.keys)if(!("primary"!==t.type&&"unique"!==t.type||t.fields.some((e=>null===s[e]))||await e.isUnique(t.fields,s)))throw new Error(`Duplicate value for ${t.type} key "${t.fields.join(", ")}" on ${e.entity}`)},assertForeignKeys=async(e,s)=>{for(const t of e.record.keys){if("foreign"!==t.type||1!==t.fields.length||!t.references||1!==t.references.length)continue;const r=t.fields[0];if(!Object.prototype.hasOwnProperty.call(s,r)||null===s[r])continue;const{entity:i,property:o}=(0,_splitEntityProperty.splitEntityProperty)(t.references[0].fields[0]);if(!await e.exists(i,o,s[r]))throw new Error(`Foreign key "${r}" on ${e.entity} references a nonexistent ${i}.${o} = ${s[r]}`)}},insertEntity=async(e="",s=[],t={})=>{const r=await(0,_retrieveRecord.retrieveRecord)(e),i=r.keys.find((e=>"primary"===e.type&&1===e.fields.length));if(Object.prototype.hasOwnProperty.call(t,e)||(t[e]=[]),await(0,_storage.makeDirectory)(r.path),!s.length)return t;for(const t of s)(0,_knownFields.assertFieldsDefined)(e,r,Object.keys(t||{}),"insert");await(0,_packedTable.discardPacked)(r.path);const o=new InsertStatement(e,r);await o.load();for(const n of s){const s=await buildEntityValues(o,n);await assertUnique(o,s),await assertForeignKeys(o,s);const a=`${i?s[i.fields[0]]:crypto.randomUUID()}.json`;await(0,_storage.writeJson)(`${r.path}/${a}`,s),await o.add(s,a),t[e].push(s)}return await o.write(),t};exports.insertEntity=insertEntity;
@@ -1,2 +1,14 @@
1
+ /**
2
+ * After a merge, put the merged version of each joined row in place of the row on the entity that joined it. The merged
3
+ * version is found as the same row: the one in dataSet[joinEntity] whose fields include every field of the joined row
4
+ * with the same values (merging only adds fields). Matching by the join field instead (`where joinProp = value`) gave
5
+ * every joined row the first row holding that value: an author's three books came back as the first book three times.
6
+ * Two rows equal in every field have equal merged versions, so either one is right.
7
+ * @param dataSet
8
+ * @param entityName
9
+ * @param entityKey
10
+ * @param joinEntity
11
+ * @param joinProp - The merge's field on joinEntity: a joined row without it isn't part of this merge, and is left as it is.
12
+ */
1
13
  export declare const reconcileJoin: (dataSet: any, entityName: any, entityKey: any, joinEntity: any, joinProp: any) => any;
2
14
  //# sourceMappingURL=reconcileJoin.d.ts.map
@@ -4,20 +4,40 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.reconcileJoin = void 0;
7
+ require("core-js/modules/es.json.stringify.js");
7
8
  require("core-js/modules/esnext.iterator.constructor.js");
9
+ require("core-js/modules/esnext.iterator.every.js");
10
+ require("core-js/modules/esnext.iterator.find.js");
8
11
  require("core-js/modules/esnext.iterator.for-each.js");
9
- var _where = require("../queries/where");
12
+ /**
13
+ * The same row's value of a field, compared as JSON (rows are JSON data, so this is a deep comparison).
14
+ * @param a
15
+ * @param b
16
+ */
17
+ const sameValue = (a, b) => a === b || JSON.stringify(a) === JSON.stringify(b);
18
+ /**
19
+ * After a merge, put the merged version of each joined row in place of the row on the entity that joined it. The merged
20
+ * version is found as the same row: the one in dataSet[joinEntity] whose fields include every field of the joined row
21
+ * with the same values (merging only adds fields). Matching by the join field instead (`where joinProp = value`) gave
22
+ * every joined row the first row holding that value: an author's three books came back as the first book three times.
23
+ * Two rows equal in every field have equal merged versions, so either one is right.
24
+ * @param dataSet
25
+ * @param entityName
26
+ * @param entityKey
27
+ * @param joinEntity
28
+ * @param joinProp - The merge's field on joinEntity: a joined row without it isn't part of this merge, and is left as it is.
29
+ */
10
30
  const reconcileJoin = (dataSet, entityName, entityKey, joinEntity, joinProp) => {
11
31
  const entity = dataSet[entityName][entityKey];
12
- if (Object.prototype.hasOwnProperty.call(entity, joinEntity) && Array.isArray(entity[joinEntity])) {
13
- entity[joinEntity].forEach((mergedEntity, k) => {
14
- const matchedEntity = (0, _where.where)(dataSet[joinEntity], {
15
- property: joinProp,
16
- comparator: '=',
17
- value: mergedEntity[joinProp]
18
- });
19
- if (matchedEntity.length) {
20
- dataSet[entityName][entityKey][joinEntity][k] = matchedEntity[0];
32
+ if (Object.prototype.hasOwnProperty.call(entity, joinEntity) && Array.isArray(entity[joinEntity]) && Array.isArray(dataSet[joinEntity])) {
33
+ entity[joinEntity].forEach((joinedRow, k) => {
34
+ if (!joinedRow || !Object.prototype.hasOwnProperty.call(joinedRow, joinProp)) {
35
+ return;
36
+ }
37
+ const fields = Object.keys(joinedRow);
38
+ const mergedRow = dataSet[joinEntity].find(row => fields.every(field => sameValue(row[field], joinedRow[field])));
39
+ if (mergedRow) {
40
+ dataSet[entityName][entityKey][joinEntity][k] = mergedRow;
21
41
  }
22
42
  });
23
43
  }
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.reconcileJoin=void 0,require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.for-each.js");var _where=require("../queries/where");const reconcileJoin=(e,r,o,t,c)=>{const s=e[r][o];return Object.prototype.hasOwnProperty.call(s,t)&&Array.isArray(s[t])&&s[t].forEach(((s,i)=>{const n=(0,_where.where)(e[t],{property:c,comparator:"=",value:s[c]});n.length&&(e[r][o][t][i]=n[0])})),e};exports.reconcileJoin=reconcileJoin;
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.reconcileJoin=void 0,require("core-js/modules/es.json.stringify.js"),require("core-js/modules/esnext.iterator.constructor.js"),require("core-js/modules/esnext.iterator.every.js"),require("core-js/modules/esnext.iterator.find.js"),require("core-js/modules/esnext.iterator.for-each.js");const sameValue=(e,r)=>e===r||JSON.stringify(e)===JSON.stringify(r),reconcileJoin=(e,r,o,s,t)=>{const i=e[r][o];return Object.prototype.hasOwnProperty.call(i,s)&&Array.isArray(i[s])&&Array.isArray(e[s])&&i[s].forEach(((i,c)=>{if(!i||!Object.prototype.hasOwnProperty.call(i,t))return;const n=Object.keys(i),a=e[s].find((e=>n.every((r=>sameValue(e[r],i[r])))));a&&(e[r][o][s][c]=a)})),e};exports.reconcileJoin=reconcileJoin;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "json-fs-query",
3
- "version": "3.3.0",
3
+ "version": "3.3.1",
4
4
  "description": "A git-native JSON data store for static sites: JSON files with a schema, enforced keys and a SQL-like query language, read straight from static hosting.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -51,7 +51,7 @@
51
51
  "@babel/core": "^8.1.0",
52
52
  "gulp": "^5.0.1",
53
53
  "js-build-tools": "^8.0.0",
54
- "playwright": "~1.64.1",
54
+ "playwright": "^1.65.0",
55
55
  "release-it": "^21.1.1",
56
56
  "test-filesystem": "^2.0.2",
57
57
  "typedoc": "^0.28.20"