json-fs-query 3.4.0 → 3.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +97 -1
- package/browser/jsonFsQuery.js +47 -5
- package/browser/jsonFsQuery.min.js +1 -1
- package/dist/cli/chooseDatabase.d.ts +13 -0
- package/dist/cli/chooseDatabase.js +37 -0
- package/dist/cli/chooseDatabase.min.js +1 -0
- package/dist/cli/formatCsv.d.ts +9 -0
- package/dist/cli/formatCsv.js +53 -0
- package/dist/cli/formatCsv.min.js +1 -0
- package/dist/cli/formatResult.d.ts +30 -0
- package/dist/cli/formatResult.js +139 -0
- package/dist/cli/formatResult.min.js +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.js +52 -0
- package/dist/cli/index.min.js +2 -0
- package/dist/cli/interactive.d.ts +15 -0
- package/dist/cli/interactive.js +257 -0
- package/dist/cli/interactive.min.js +1 -0
- package/dist/cli/output.d.ts +31 -0
- package/dist/cli/output.js +64 -0
- package/dist/cli/output.min.js +1 -0
- package/dist/cli/runDirect.d.ts +11 -0
- package/dist/cli/runDirect.js +28 -0
- package/dist/cli/runDirect.min.js +1 -0
- package/dist/data/introspect/alter.js +2 -5
- package/dist/data/introspect/alter.min.js +1 -1
- package/dist/data/introspect/create.js +15 -0
- package/dist/data/introspect/create.min.js +1 -1
- package/dist/data/introspect/describe.js +2 -0
- package/dist/data/introspect/describe.min.js +1 -1
- package/dist/data/introspect/drop.js +3 -0
- package/dist/data/introspect/drop.min.js +1 -1
- package/dist/data/utilities/assertValidName.d.ts +14 -0
- package/dist/data/utilities/assertValidName.js +34 -0
- package/dist/data/utilities/assertValidName.min.js +1 -0
- package/package.json +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var jsonFsQuery=(()=>{var e,t,r,n,o=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,l=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,d=(e,t)=>function(){try{return t||(0,e[s(e)[0]])((t={exports:{}}).exports,t),t.exports}catch(e){throw t=0,e}},u=(e,t,r)=>(r=null!=e?o(l(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of s(t))c.call(e,o)||o===r||i(e,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:i(r,"default",{value:e,enumerable:!0}),e)),f=d({"node_modules/process/browser.js"(e,t){p();var r,n,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!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:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(e){n=a}}();var l,c=[],d=!1,u=-1;function f(){d&&l&&(d=!1,l.length?c=l.concat(c):u=-1,c.length&&y())}function y(){if(!d){var e=s(f);d=!0;for(var t=c.length;t;){for(l=c,c=[];++u<t;)l&&l[u].run();u=-1,t=c.length}l=null,d=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===a||!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 w(){}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];c.push(new h(e,t)),1!==c.length||d||s(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=w,o.addListener=w,o.once=w,o.off=w,o.removeListener=w,o.removeAllListeners=w,o.emit=w,o.prependListener=w,o.prependOnceListener=w,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[s(t)[0]])(t=0)),r}catch(e){throw n=[e],e}}),y=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=[],i=[],a=[];let s,l,c=!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?a.push(p):r[p]?a[a.length-1]===r[p]?a.pop():s||(s={char:p,index:f}):";"===p&&0===a.length&&i.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){c=!0,f++;break}o+=t[e[f+1]]??e[f+1],f+=2}f<e.length?f++:l=p,n.push({start:r,end:f,quote:p,value:o}),u=r}}const p={quote:l,escape:c,blockComment:d,brackets:a,strayCloser:s},y=!p.quote&&!p.blockComment&&0===a.length;return{strings:n,comments:o,semicolons:i,end:p,closed:y,terminated:y&&i.length>0&&i[i.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}}}),h=d({"dist/data/utilities/parsers/splitQueries.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.splitQueries=void 0;var t=y();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))}}}),w=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}}}),m=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")()}}),v=d({"node_modules/core-js/internals/fails.js"(e,t){p(),t.exports=function(e){try{return!!e()}catch(e){return!0}}}}),g=d({"node_modules/core-js/internals/descriptors.js"(e,t){p();var r=v();t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))}}),b=d({"node_modules/core-js/internals/function-bind-native.js"(e,t){p();var r=v();t.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))}}),j=d({"node_modules/core-js/internals/function-call.js"(e,t){p();var r=b(),n=Function.prototype.call;t.exports=r?n.bind(n):function(){return n.apply(n,arguments)}}}),_=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}}),$=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}}}}),O=d({"node_modules/core-js/internals/function-uncurry-this.js"(e,t){p();var r=b(),n=Function.prototype,o=n.call,i=r&&n.bind.bind(o,o);t.exports=r?i:function(e){return function(){return o.apply(e,arguments)}}}}),k=d({"node_modules/core-js/internals/classof-raw.js"(e,t){p();var r=O(),n=r({}.toString),o=r("".slice);t.exports=function(e){return o(n(e),8,-1)}}}),E=d({"node_modules/core-js/internals/indexed-object.js"(e,t){p();var r=O(),n=v(),o=k(),i=Object,a=r("".split);t.exports=n((function(){return!i("z").propertyIsEnumerable(0)}))?function(e){return"String"===o(e)?a(e,""):i(e)}:i}}),x=d({"node_modules/core-js/internals/is-null-or-undefined.js"(e,t){p(),t.exports=function(e){return null==e}}}),P=d({"node_modules/core-js/internals/require-object-coercible.js"(e,t){p();var r=x(),n=TypeError;t.exports=function(e){if(r(e))throw new n("Can't call method on "+e);return e}}}),S=d({"node_modules/core-js/internals/to-indexed-object.js"(e,t){p();var r=E(),n=P();t.exports=function(e){return r(n(e))}}}),M=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}}}),D=d({"node_modules/core-js/internals/is-object.js"(e,t){p();var r=M();t.exports=function(e){return"object"==typeof e?null!==e:r(e)}}}),R=d({"node_modules/core-js/internals/get-built-in.js"(e,t){p();var r=m(),n=M();t.exports=function(e,t){return arguments.length<2?(o=r[e],n(o)?o:void 0):r[e]&&r[e][t];var o}}}),C=d({"node_modules/core-js/internals/object-is-prototype-of.js"(e,t){p();var r=O();t.exports=r({}.isPrototypeOf)}}),F=d({"node_modules/core-js/internals/environment-user-agent.js"(e,t){p();var r=m().navigator,n=r&&r.userAgent;t.exports=n?String(n):""}}),A=d({"node_modules/core-js/internals/environment-v8-version.js"(e,t){p();var r,n,o=m(),i=F(),a=o.process,s=o.Deno,l=a&&a.versions||s&&s.version,c=l&&l.v8;c&&(n=(r=c.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&i&&(!(r=i.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=i.match(/Chrome\/(\d+)/))&&(n=+r[1]),t.exports=n}}),N=d({"node_modules/core-js/internals/symbol-constructor-detection.js"(e,t){p();var r=A(),n=v(),o=m().String;t.exports=!!Object.getOwnPropertySymbols&&!n((function(){var e=Symbol("symbol detection");return!o(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))}}),J=d({"node_modules/core-js/internals/use-symbol-as-uid.js"(e,t){p();var r=N();t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}}),T=d({"node_modules/core-js/internals/is-symbol.js"(e,t){p();var r=R(),n=M(),o=C(),i=J(),a=Object;t.exports=i?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return n(t)&&o(t.prototype,a(e))}}}),q=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"}}}}),L=d({"node_modules/core-js/internals/a-callable.js"(e,t){p();var r=M(),n=q(),o=TypeError;t.exports=function(e){if(r(e))return e;throw new o(n(e)+" is not a function")}}}),B=d({"node_modules/core-js/internals/get-method.js"(e,t){p();var r=L(),n=x();t.exports=function(e,t){var o=e[t];return n(o)?void 0:r(o)}}}),z=d({"node_modules/core-js/internals/ordinary-to-primitive.js"(e,t){p();var r=j(),n=M(),o=D(),i=TypeError;t.exports=function(e,t){var a,s;if("string"===t&&n(a=e.toString)&&!o(s=r(a,e)))return s;if(n(a=e.valueOf)&&!o(s=r(a,e)))return s;if("string"!==t&&n(a=e.toString)&&!o(s=r(a,e)))return s;throw new i("Can't convert object to primitive value")}}}),V=d({"node_modules/core-js/internals/is-pure.js"(e,t){p(),t.exports=!1}}),I=d({"node_modules/core-js/internals/define-global-property.js"(e,t){p();var r=m(),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}}}),W=d({"node_modules/core-js/internals/shared-store.js"(e,t){p();var r=V(),n=m(),o=I(),i="__core-js_shared__",a=t.exports=n[i]||o(i,{});(a.versions||(a.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"})}}),K=d({"node_modules/core-js/internals/shared.js"(e,t){p();var r=W(),n=Object.create||Object;t.exports=function(e,t){return r[e]||(r[e]=t||n(null))}}}),U=d({"node_modules/core-js/internals/to-object.js"(e,t){p();var r=P(),n=Object;t.exports=function(e){return n(r(e))}}}),Q=d({"node_modules/core-js/internals/has-own-property.js"(e,t){p();var r=O(),n=U(),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(e,t){return o(n(e),t)}}}),G=d({"node_modules/core-js/internals/uid.js"(e,t){p();var r=O(),n=0,o=Math.random(),i=r(1.1.toString);t.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+i(++n+o,36)}}}),H=d({"node_modules/core-js/internals/well-known-symbol.js"(e,t){p();var r=m(),n=K(),o=Q(),i=G(),a=N(),s=J(),l=r.Symbol,c=n("wks"),d=s?l.for||l:l&&l.withoutSetter||i;t.exports=function(e){return o(c,e)||(c[e]=a&&o(l,e)?l[e]:d("Symbol."+e)),c[e]}}}),X=d({"node_modules/core-js/internals/to-primitive.js"(e,t){p();var r=j(),n=D(),o=T(),i=B(),a=z(),s=H(),l=TypeError,c=s("toPrimitive");t.exports=function(e,t){if(!n(e)||o(e))return e;var s,d=i(e,c);if(d){if(void 0===t&&(t="default"),s=r(d,e,t),!n(s)||o(s))return s;throw new l("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}}}),Y=d({"node_modules/core-js/internals/to-property-key.js"(e,t){p();var r=X(),n=T();t.exports=function(e){var t=r(e,"string");return n(t)?t:t+""}}}),Z=d({"node_modules/core-js/internals/document-create-element.js"(e,t){p();var r=m(),n=D(),o=r.document,i=n(o)&&n(o.createElement);t.exports=function(e){return i?o.createElement(e):{}}}}),ee=d({"node_modules/core-js/internals/ie8-dom-define.js"(e,t){p();var r=g(),n=v(),o=Z();t.exports=!r&&!n((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))}}),te=d({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(e){p();var t=g(),r=j(),n=_(),o=$(),i=S(),a=Y(),s=Q(),l=ee(),c=Object.getOwnPropertyDescriptor;e.f=t?c:function(e,t){if(e=i(e),t=a(t),l)try{return c(e,t)}catch(e){}if(s(e,t))return o(!r(n.f,e,t),e[t])}}}),re=d({"node_modules/core-js/internals/v8-prototype-define-bug.js"(e,t){p();var r=g(),n=v();t.exports=r&&n((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))}}),ne=d({"node_modules/core-js/internals/an-object.js"(e,t){p();var r=D(),n=String,o=TypeError;t.exports=function(e){if(r(e))return e;throw new o(n(e)+" is not an object")}}}),oe=d({"node_modules/core-js/internals/object-define-property.js"(e){p();var t=g(),r=ee(),n=re(),o=ne(),i=Y(),a=TypeError,s=Object.defineProperty,l=Object.getOwnPropertyDescriptor,c="enumerable",d="configurable",u="writable";e.f=t?n?function(e,t,r){if(o(e),t=i(t),o(r),"function"==typeof e&&"prototype"===t&&"value"in r&&u in r&&!r[u]){var n=l(e,t);n&&n[u]&&(e[t]=r.value,r={configurable:d in r?r[d]:n[d],enumerable:c in r?r[c]:n[c],writable:!1})}return s(e,t,r)}:s:function(e,t,n){if(o(e),t=i(t),o(n),r)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw new a("Accessors not supported");return"value"in n&&(e[t]=n.value),e}}}),ie=d({"node_modules/core-js/internals/create-non-enumerable-property.js"(e,t){p();var r=g(),n=oe(),o=$();t.exports=r?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}}}),ae=d({"node_modules/core-js/internals/function-name.js"(e,t){p();var r=g(),n=Q(),o=Function.prototype,i=r&&Object.getOwnPropertyDescriptor,a=n(o,"name"),s=a&&"something"===function(){}.name,l=a&&(!r||r&&i(o,"name").configurable);t.exports={EXISTS:a,PROPER:s,CONFIGURABLE:l}}}),se=d({"node_modules/core-js/internals/inspect-source.js"(e,t){p();var r=O(),n=M(),o=W(),i=r(Function.toString);n(o.inspectSource)||(o.inspectSource=function(e){return i(e)}),t.exports=o.inspectSource}}),le=d({"node_modules/core-js/internals/weak-map-basic-detection.js"(e,t){p();var r=m(),n=M(),o=r.WeakMap;t.exports=n(o)&&/native code/.test(String(o))}}),ce=d({"node_modules/core-js/internals/shared-key.js"(e,t){p();var r=K(),n=G(),o=r("keys");t.exports=function(e){return o[e]||(o[e]=n(e))}}}),de=d({"node_modules/core-js/internals/hidden-keys.js"(e,t){p(),t.exports={}}}),ue=d({"node_modules/core-js/internals/internal-state.js"(e,t){p();var r,n,o,i,a,s=le(),l=m(),c=D(),d=ie(),u=Q(),f=W(),y=ce(),h=de(),w="Object already initialized",v=l.TypeError,g=l.WeakMap;s||f.state?((i=f.state||(f.state=new g)).get=i.get,i.has=i.has,i.set=i.set,r=function(e,t){if(i.has(e))throw new v(w);return t.facade=e,i.set(e,t),t},n=function(e){return i.get(e)||{}},o=function(e){return i.has(e)}):(h[a=y("state")]=!0,r=function(e,t){if(u(e,a))throw new v(w);return t.facade=e,d(e,a,t),t},n=function(e){return u(e,a)?e[a]:{}},o=function(e){return u(e,a)}),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(!c(t)||(r=n(t)).type!==e)throw new v("Incompatible receiver, "+e+" required");return r}}}}}),fe=d({"node_modules/core-js/internals/make-built-in.js"(e,t){p();var r=O(),n=v(),o=M(),i=Q(),a=g(),s=ae().CONFIGURABLE,l=se(),c=ue(),d=c.enforce,u=c.get,f=String,y=Object.defineProperty,h=r("".slice),w=r("".replace),m=r([].join),b=a&&!n((function(){return 8!==y((function(){}),"length",{value:8}).length})),j=String(String).split("String"),_=t.exports=function(e,t,r){"Symbol("===h(f(t),0,7)&&(t="["+w(f(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!i(e,"name")||s&&e.name!==t)&&(a?y(e,"name",{value:t,configurable:!0}):e.name=t),b&&r&&i(r,"arity")&&e.length!==r.arity&&y(e,"length",{value:r.arity});try{r&&i(r,"constructor")&&r.constructor?a&&y(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=d(e);return i(n,"source")||(n.source=m(j,"string"==typeof t?t:"")),e};Function.prototype.toString=_((function(){return o(this)&&u(this).source||l(this)}),"toString")}}),pe=d({"node_modules/core-js/internals/define-built-in.js"(e,t){p();var r=M(),n=oe(),o=fe(),i=I();t.exports=function(e,t,a,s){s||(s={});var l=s.enumerable,c=void 0!==s.name?s.name:t;if(r(a)&&o(a,c,s),s.global)l?e[t]=a:i(t,a);else{try{s.unsafe?e[t]&&(l=!0):delete e[t]}catch(e){}l?e[t]=a:n.f(e,t,{value:a,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return e}}}),ye=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)}}}),he=d({"node_modules/core-js/internals/to-integer-or-infinity.js"(e,t){p();var r=ye();t.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}}}),we=d({"node_modules/core-js/internals/to-absolute-index.js"(e,t){p();var r=he(),n=Math.max,o=Math.min;t.exports=function(e,t){var i=r(e);return i<0?n(i+t,0):o(i,t)}}}),me=d({"node_modules/core-js/internals/to-length.js"(e,t){p();var r=he(),n=Math.min;t.exports=function(e){var t=r(e);return t>0?n(t,9007199254740991):0}}}),ve=d({"node_modules/core-js/internals/length-of-array-like.js"(e,t){p();var r=me();t.exports=function(e){return r(e.length)}}}),ge=d({"node_modules/core-js/internals/array-includes.js"(e,t){p();var r=S(),n=we(),o=ve(),i=function(e){return function(t,i,a){var s=r(t),l=o(s);if(0===l)return!e&&-1;var c,d=n(a,l);if(e&&i!=i){for(;l>d;)if((c=s[d++])!=c)return!0}else for(;l>d;d++)if((e||d in s)&&s[d]===i)return e||d||0;return!e&&-1}};t.exports={includes:i(!0),indexOf:i(!1)}}}),be=d({"node_modules/core-js/internals/object-keys-internal.js"(e,t){p();var r=O(),n=Q(),o=S(),i=ge().indexOf,a=de(),s=r([].push);t.exports=function(e,t){var r,l=o(e),c=0,d=[];for(r in l)!n(a,r)&&n(l,r)&&s(d,r);for(;t.length>c;)n(l,r=t[c++])&&(~i(d,r)||s(d,r));return d}}}),je=d({"node_modules/core-js/internals/enum-bug-keys.js"(e,t){p(),t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}}),_e=d({"node_modules/core-js/internals/object-get-own-property-names.js"(e){p();var t=be(),r=je().concat("length","prototype");e.f=Object.getOwnPropertyNames||function(e){return t(e,r)}}}),$e=d({"node_modules/core-js/internals/object-get-own-property-symbols.js"(e){p(),e.f=Object.getOwnPropertySymbols}}),Oe=d({"node_modules/core-js/internals/own-keys.js"(e,t){p();var r=R(),n=O(),o=_e(),i=$e(),a=ne(),s=n([].concat);t.exports=r("Reflect","ownKeys")||function(e){var t=o.f(a(e)),r=i.f;return r?s(t,r(e)):t}}}),ke=d({"node_modules/core-js/internals/copy-constructor-properties.js"(e,t){p();var r=Q(),n=Oe(),o=te(),i=oe();t.exports=function(e,t,a){for(var s=n(t),l=i.f,c=o.f,d=0;d<s.length;d++){var u=s[d];r(e,u)||a&&r(a,u)||l(e,u,c(t,u))}}}}),Ee=d({"node_modules/core-js/internals/is-forced.js"(e,t){p();var r=v(),n=M(),o=/#|\.prototype\./,i=function(e,t){var o=s[a(e)];return o===c||o!==l&&(n(t)?r(t):!!t)},a=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},s=i.data={},l=i.NATIVE="N",c=i.POLYFILL="P";t.exports=i}}),xe=d({"node_modules/core-js/internals/export.js"(e,t){p();var r=m(),n=te().f,o=ie(),i=pe(),a=I(),s=ke(),l=Ee();t.exports=function(e,t){var c,d,u,f,p,y=e.target,h=e.global,w=e.stat;if(c=h?r:w?r[y]||a(y,{}):r[y]&&r[y].prototype)for(d in t){if(f=t[d],u=e.dontCallGetSet?(p=n(c,d))&&p.value:c[d],!l(h?d:y+(w?".":"#")+d,e.forced)&&void 0!==u){if(typeof f==typeof u)continue;s(f,u)}(e.sham||u&&u.sham)&&o(f,"sham",!0),i(c,d,f,e)}}}}),Pe=d({"node_modules/core-js/internals/is-array.js"(e,t){p();var r=k();t.exports=Array.isArray||function(e){return"Array"===r(e)}}}),Se=d({"node_modules/core-js/internals/object-keys.js"(e,t){p();var r=be(),n=je();t.exports=Object.keys||function(e){return r(e,n)}}}),Me=d({"node_modules/core-js/internals/object-define-properties.js"(e){p();var t=g(),r=re(),n=oe(),o=ne(),i=S(),a=Se();e.f=t&&!r?Object.defineProperties:function(e,t){o(e);for(var r,s=i(t),l=a(t),c=l.length,d=0;c>d;)n.f(e,r=l[d++],s[r]);return e}}}),De=d({"node_modules/core-js/internals/html.js"(e,t){p();var r=R();t.exports=r("document","documentElement")}}),Re=d({"node_modules/core-js/internals/object-create.js"(e,t){p();var r,n=ne(),o=Me(),i=je(),a=de(),s=De(),l=Z(),c=ce(),d="prototype",u="script",f=c("IE_PROTO"),y=function(){},h=function(e){return"<"+u+">"+e+"</"+u+">"},w=function(e){e.write(h("")),e.close();var t=e.parentWindow.Object;return e=null,t},m=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}var e,t,n;m="undefined"!=typeof document?document.domain&&r?w(r):(t=l("iframe"),n="java"+u+":",t.style.display="none",s.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(h("document.F=Object")),e.close(),e.F):w(r);for(var o=i.length;o--;)delete m[d][i[o]];return m()};a[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=m(),void 0===t?r:o.f(r,t)}}}),Ce=d({"node_modules/core-js/internals/is-raw-json.js"(e,t){p();var r=D(),n=ue().get;t.exports=function(e){if(!r(e))return!1;var t=n(e);return!!t&&"RawJSON"===t.type}}}),Fe=d({"node_modules/core-js/internals/this-number-value.js"(e,t){p();var r=O();t.exports=r(1.1.valueOf)}}),Ae=d({"node_modules/core-js/internals/to-string-tag-support.js"(e,t){p();var r={};r[H()("toStringTag")]="z",t.exports="[object z]"===String(r)}}),Ne=d({"node_modules/core-js/internals/classof.js"(e,t){p();var r=Ae(),n=M(),o=k(),i=H()("toStringTag"),a=Object,s="Arguments"===o(function(){return arguments}());t.exports=r?o:function(e){var t,r,l;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=a(e),i))?r:s?o(t):"Object"===(l=o(t))&&n(t.callee)?"Arguments":l}}}),Je=d({"node_modules/core-js/internals/to-string.js"(e,t){p();var r=Ne(),n=String;t.exports=function(e){if("Symbol"===r(e))throw new TypeError("Cannot convert a Symbol value to a string");return n(e)}}}),Te=d({"node_modules/core-js/internals/parse-json-string.js"(e,t){p();var r=O(),n=Q(),o=SyntaxError,i=parseInt,a=String.fromCharCode,s=r("".charAt),l=r("".slice),c=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=s(e,t);if("\\"===y){var h=l(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 w=l(e,t+=2,t+4);if(!c(u,w))throw new o("Bad Unicode escape at: "+t);p+=a(i(w,16)),t+=4}}else{if('"'===y){r=!1,t++;break}if(c(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}}}}),qe=d({"node_modules/core-js/internals/native-raw-json.js"(e,t){p();var r=v();t.exports=!r((function(){var e="9007199254740993",t=JSON.rawJSON(e);return!JSON.isRawJSON(t)||JSON.stringify(t)!==e}))}}),Le=d({"node_modules/core-js/modules/es.json.stringify.js"(){p();var e=xe(),t=R(),r=j(),n=O(),o=v(),i=Pe(),a=M(),s=D(),l=Re(),c=Ce(),d=T(),u=k(),f=Fe(),y=ge().includes,h=Q(),w=Je(),m=Te(),g=G(),b=N(),_=qe(),$=String,E=TypeError,x=t("JSON","stringify"),P=t("BigInt"),S=n("".valueOf),C=n((!0).valueOf),F=P&&n(P.prototype.valueOf),A=n(/./.exec),J=n("".charAt),q=n("".charCodeAt),L=n("".replace),B=n("".slice),z=n([].push),V=n([].pop),I=n(1.1.toString),W=/[\uD800-\uDFFF]/g,K=/^[\uD800-\uDBFF]$/,U=/^[\uDC00-\uDFFF]$/,H=/^\d+$/,X=g(),Y=g(),Z=g(),ee=X.length,te=Y.length,re=!b||o((function(){var e=t("Symbol")("stringify detection");return"[null]"!==x([e])||"{}"!==x({a:e})||"{}"!==x(Object(e))})),ne=o((function(){return'"\\udf06\\ud834"'!==x("\udf06\ud834")||'"\\udead"'!==x("\udead")})),oe=_?t("JSON","isRawJSON"):c,ie=re?function(e,t,n){return x(e,(function(e,n){var o=r(t,this,e,n);if(!d(o))return o}),n)}:x,ae=function(e,t,r){var n=J(r,t-1),o=J(r,t+1);return A(K,e)&&!A(U,o)||A(U,e)&&!A(K,n)?"\\u"+I(q(e,0),16):e},se=function(e,t){try{return e(t),!0}catch(e){return!1}},le=function(e){if(!s(e)||a(e)||i(e))return!1;try{return!function(e){var t=u(e);return"Number"===t&&se(f,e)||"String"===t&&se(S,e)||"Boolean"===t&&se(C,e)||!!F&&"BigInt"===t&&se(F,e)}(e)}catch(e){return!0}},ce=function(e,t){return{toJSON:function(){var n=e[t];if(s(n)||"bigint"==typeof n){var o=n.toJSON;a(o)&&(n=r(o,n,t))}return n}}};x&&e({target:"JSON",stat:!0,arity:3,forced:re||ne||!_},{stringify:function(e,t,n){var o,s=a(t)?t:void 0,c=s?void 0:function(e){if(i(e)){for(var t=e.length,r=[],n=l(null),o=0;o<t;o++){var a,s=e[o];if("string"==typeof s)a=s;else{if("number"!=typeof s&&"Number"!==u(s)&&"String"!==u(s))continue;a=w(s)}h(n,a)||(n[a]=!0,z(r,a))}return r}}(t),d=c&&function(e){for(var t=0,r=e.length;t<r;t++)if(A(H,e[t]))return Y;return""}(c),f=[],p=[],v=[],g=!1,b=!0,j=ie(e,(function(e,t){if(e=$(e),c){if(e===Z)return V(p),void(o=V(v));if(b)b=!1;else if(this!==o&&!i(this)&&!y(c,e))return}else s&&(t=r(s,this,e,t));if(oe(t))return _?t:(g=!0,X+(z(f,t.rawJSON)-1));if(c&&le(t)){if(y(p,t))throw new E("Converting circular structure to JSON");var n=function(e,t,r){for(var n=l(null),o=0,i=t.length;o<i;o++){var a=t[o];n[r+a]=ce(e,a)}return n[Z]=null,n}(t,c,d);return z(p,t),z(v,o),o=n,d&&(g=!0),n}return t}),n);if("string"!=typeof j)return j;if(ne&&(j=L(j,W,ae)),!g)return j;for(var O="",k=j.length,x=0;x<k;x++){var P=J(j,x);if('"'===P){var S=m(j,++x).end-1,M=B(j,x,S);B(M,0,ee)===X?O+=f[B(M,ee)]:B(M,0,te)===Y?O+='"'+B(M,te)+'"':O+='"'+M+'"',x=S}else O+=P}return O}})}}),Be=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,Le();var t=y(),r=e.placeholderSource="\\u0000([0-9a-f]*)\\u0000",n=new RegExp(r,"g"),o=e.arraySource="\\u0001([0-9a-f]*)\\u0001",i=new RegExp(o,"g"),a=e=>e.split("").map((e=>e.charCodeAt(0).toString(16).padStart(4,"0"))).join(""),s=e=>(e.match(/.{4}/g)||[]).map((e=>String.fromCharCode(parseInt(e,16)))).join("");e.fromPlaceholder=s;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:i,value:s}of r)n.push(e.slice(o,t),`\0${a(s)}\0`),o=i;return n.push(e.slice(o)),n.join("")};var l=(e,t="json")=>e.replace(n,((e,r)=>{const n=s(r);return"json"===t?JSON.stringify(n):`'${n.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`})).replace(i,((e,t)=>s(t)));e.unmaskStrings=l;var c=e=>{try{return JSON.stringify(JSON.parse(l(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 ${l(e,"'")}: ${t.message}`)}};e.maskArrays=e=>{let t="",r=0,n=0;for(let o=0;o<e.length;o++){const i=e[o];if("["===i)0===r&&(n=o),r++;else if("]"===i&&r>0&&(r--,0===r)){t+=`${a(c(e.slice(n,o+1)))}`;continue}0===r&&(t+=i)}return r>0?t+e.slice(n):t}}}),ze=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=Be(),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]}}),Ve=d({"dist/data/utilities/parsers/findInsertValues.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findInsertValues=void 0;var t=ze(),r=Be(),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})*`,i=new RegExp(`^(${o})`,"i"),a=`\\(\\s*(${o})\\s*\\)`,s=new RegExp(`^${a}(?:\\s*,\\s*${a.replace("("+o,"(?:"+o)})*`,"i"),l=new RegExp(a,"ig"),c=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(c))r[n[1]]=(0,t.parseLiteralValue)(n,3);return r};e.findInsertValues=(e,t)=>{e.insertValues=[];const r=t.match(s);if(r)return e.insertValues=[...r[0].matchAll(l)].map((e=>d(e[1]))),t.slice(r[0].length).trim();const n=t.match(i);return n?(e.insertValues=[d(n[1])],t.slice(n[0].length).trim()):t}}}),Ie=d({"dist/data/utilities/parsers/findUpdateValues.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findUpdateValues=void 0;var t=ze(),r=Be(),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"),i=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 a=n[1].matchAll(i);for(const r of a)e.updateValues[r[1]]=(0,t.parseLiteralValue)(r,3);return r.slice(n[0].length).trim()}}}),We=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}}}),Ke=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}}}),Ue=d({"node_modules/core-js/internals/add-to-unscopables.js"(e,t){p();var r=H(),n=Re(),o=oe().f,i=r("unscopables"),a=Array.prototype;void 0===a[i]&&o(a,i,{configurable:!0,value:n(null)}),t.exports=function(e){a[i][e]=!0}}}),Qe=d({"node_modules/core-js/modules/es.array.includes.js"(){p();var e=xe(),t=ge().includes,r=v(),n=Ue(),o=r((function(){return!Array(1).includes()})),i=r((function(){return[,1].includes(void 0,1)}));e({target:"Array",proto:!0,forced:o||i},{includes:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("includes")}}),Ge=d({"dist/data/utilities/conditionTree.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.requiredConditions=e.isCondition=e.conditionsOf=e.allOf=void 0;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):[]}}),He=d({"dist/data/utilities/parsers/splitClauses.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.whereHint=e.splitClauses=e.clauseOrder=void 0,Qe();var t=Be(),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,i=new RegExp(`${t.placeholderSource}|${t.arraySource}|[a-z0-9_.-]+|<>|!=|>=|<=|\\S`,"gi"),a=["=","!=","<>",">","<",">=","<=","in","between","like","is","exists","does"],s={on:e=>"and"===e,merge:()=>!0},l=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 c=t[1].toLowerCase(),d=r[c],u=/^[aeiou]/.test(c)?"an":"a";if(t[3]&&"read"!==c)throw new Error(`A joined record (${t[2]}) isn't allowed in ${u} ${c} query`);const f=[...e.slice(t[0].length).matchAll(i)].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,i=f[e+1]?.lower;"("!==t&&")"!==t||(y+="("===t?1:-1);const w="group"===t&&"by"===i?"group by":t,m=h||","===o||"as"===o||a.includes(i);if(h=!1,y>0||"by"===w||!n.includes(w)||m)continue;const v=p[p.length-1]?.keyword;if(v===w&&s[w]?.(o))continue;const g=p.some((e=>"where"===e.keyword));if("where"===w&&g&&("and"===o||"or"===o))throw new Error(`"${o} where" is no longer supported: ${l}`);if(!d.includes(w))throw new Error(`"${w}" isn't allowed in ${u} ${c} query (allowed: ${d.join(", ")})`);if(v&&d.indexOf(w)<d.indexOf(v))throw new Error(`"${w}" can't come after "${v}" (order: ${d.join(", ")})`);if(p.some((e=>e.keyword===w)))throw new Error(`Only one "${w}" clause is allowed${"where"===w?`: ${l}`:""}`);"group by"===w&&e++,p.push({keyword:w,start:r,end:f[e].start+f[e].text.length}),h=!0}return{command:c,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()})))}}}}),Xe=d({"dist/data/utilities/parsers/findConditions.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findConditions=void 0,Qe();var t=ze(),r=Ge(),n=Be(),o=He(),i="(?![a-z0-9_.-])",a=e=>new RegExp(`^(?:${e})${i}`,"i"),s=new RegExp(`^([a-z0-9_-]+\\.?[a-z0-9_-]*)\\s+(?:(is\\s+not\\s+null|is\\s+null|exists|does\\s+not\\s+exist)${i}|(<>|!=|>=|<=|=|>|<|in|between|like)\\s+(${n.placeholderSource}|(${t.numberSource})|${n.arraySource}|(null)|(true)|(false)))`,"i"),l=(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}},c=e=>{let r=0;const i=()=>e.slice(r),c=()=>{r+=i().length-i().trimStart().length},d=e=>{c();const t=i().match(e);if(t)return r+=t[0].length,t[0]},u=()=>(0,n.unmaskStrings)(i().trim(),"'"),f=e=>{c();const n=i().match(s);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)&&a("where").test(i()))throw new Error(`"${e} where" is no longer supported: ${o.whereHint}`);if(d(a("not")))return{not:f("not")};if(d(/^\(/)){if(c(),i().startsWith(")"))throw new Error("Empty brackets in a where clause");const e=y("(");if(!d(/^\)/))throw new Error("Missing ) "+(i().trim()?`before: ${u()}`:"at the end of the where clause"));return e}throw new Error(`Missing a condition after ${e}${i().trim()?`: ${u()}`:""}`)},p=e=>{const t=[f(e)];for(;;){const e=d(a("and"));if(!e)break;t.push(f(e.toLowerCase().replace(/\s+/g," ")))}return l("and",t)},y=e=>{const t=[p(e)];for(;;){const e=d(a("or"));if(!e)break;t.push(p(e.toLowerCase().replace(/\s+/g," ")))}return l("or",t)},h=y("where");if(c(),i().startsWith(")"))throw new Error(`Unexpected ) in a where clause: ${u()}`);if(s.test(i()))throw new Error(`Missing and/or before: ${u()}`);return{node:h,end:r}};e.findConditions=(e,t)=>{const{node:r,end:n}=c(t);return e.where=r,t.slice(n).trim()}}}),Ye=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 i=o.match(r);if(!i||!t.test(o.slice(i[0].length)))break;o=o.slice(i[0].length)}return o}}}),Ze=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 i=o.match(r);if(!i||!t.test(o.slice(i[0].length)))break;o=o.slice(i[0].length)}return o}}}),et=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}}}),tt=d({"dist/data/utilities/parsers/findGroupBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findGroupBy=void 0;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}}}),rt=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}}}),nt=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}}}),ot=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}}}}),it=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}}),at=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,Qe();var t=ot(),r=Be(),n=ze(),o=it(),i=(e.createMatch=/^\s*create(?![a-z0-9_-])/i,/^\s*create\s+(if\s+not\s+exists\s+)?([a-z0-9_-]+)\s*\(/i),a=e.nameSource="[a-z0-9_-]+",s=e.nameMatch=new RegExp(`^${a}$`,"i"),l=new RegExp(`^${n.numberSource}$`,"i"),c=e.fieldMatch=new RegExp(`^(${a})\\s+(${a})((?:\\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+(${a})\\s*\\(([^()]*)\\)$`,"i"),h=new RegExp(`^${r.placeholderSource}$`),w=new RegExp(`^${r.arraySource}$`),m={primary:"pk",unique:"unique",index:"index",foreign:"fk"},v=(e,t)=>`${m[e]}_${t.join("_")}.json`;e.keyLookup=v;var g=e=>(0,r.unmaskStrings)(e.trim(),"'"),b=(e,t)=>{const r=e.split(",").map((e=>e.trim()));if(r.some((e=>!s.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},j=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(w);if(o)return JSON.parse((0,r.fromPlaceholder)(o[1]));if(l.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,i]=e,a=o.toLowerCase();if(!t.fieldTypes.includes(a))throw new Error(`Unknown type "${o}" for field "${n}" (expected ${t.fieldTypes.join(", ")})`);const s={name:n,type:a,optional:!1,autoGenerate:!1},l=new Set,c=e=>{if(l.has(e))throw new Error(`"${e}" is given twice for field "${n}"`);l.add(e)},d=""===i.trim()?[]:i.trim().split(/\s+/);for(let e=0;e<d.length;e++){const t=d[e].toLowerCase();if("optional"===t)c("optional"),s.optional=!0;else if("auto"===t)c("auto"),s.autoGenerate=!0;else if("null"===t)c("null"),s.nullable=!0;else if("not"===t&&"null"===(d[e+1]||"").toLowerCase())c("null"),s.nullable=!1,e++;else{if("default"!==t)throw new Error(`Unrecognized "${g(d[e])}" for field "${n}" in: ${g(r)}`);c("default"),s.useDefault=!0,s.defaultValue=j(d[++e])}}if(s.autoGenerate&&s.useDefault)throw new Error(`Field "${n}" can't be both auto and have a default`);if(s.autoGenerate&&"string"!==a)throw new Error(`Field "${n}" is auto, which generates a UUID, so its type must be string`);return s};e.parseField=_;var $=e=>{let t=e.match(d);if(t)return{type:"primary",fields:b(t[1],e)};if(t=e.match(u),t)return{type:"unique",fields:b(t[1],e)};if(t=e.match(f),t)return{type:"index",fields:b(t[1],e)};if(t=e.match(y),t){const r=b(t[1],e),n=b(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=v(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(i);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,a=((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===a)throw new Error("Missing ) at the end of the field list");const s=e.slice(a+1).trim();if(s){if(o.startsQueryMatch.test(s))throw new Error(`Missing ; before: ${g(s)}`);throw new Error(`Unrecognized query value: ${g(s)}`)}const l=e.slice(n+1,a),d=[],u=[];if(l.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()))})(l)){if(!e)throw new Error("Empty item in the field list (an extra comma?)");const t=$(e);if(t){u.push(t);continue}const r=e.match(c);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)}}}}}),st=d({"dist/data/utilities/parsers/parseSchemaStatement.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.schemaStatementMatch=e.parseSchemaStatement=void 0;var t=Be(),r=it(),n=e.schemaStatementMatch=/^\s*(drop|describe|show)(?![a-z0-9_-])/i,o=/^\s*drop\s+(if\s+exists\s+)?([a-z0-9_-]+)/i,i=/^\s*describe\s+([a-z0-9_-]+)/i,a=/^\s*show\s+records(?![a-z0-9_-])/i,s=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}`)},l=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 l(t[2]),s(e.slice(t[0].length)),{command:"drop",entity:t[2],ifExists:Boolean(t[1])}}if("describe"===t){const t=e.match(i);if(!t)throw new Error("Expected: describe <name>");return l(t[1]),s(e.slice(t[0].length)),{command:"describe",entity:t[1],ifExists:!1}}const r=e.match(a);if(!r)throw new Error("Expected: show records (the only thing that can be shown so far)");return s(e.slice(r[0].length)),{command:"show",entity:"__RECORDS",ifExists:!1}}}}),lt=d({"dist/data/utilities/parsers/parseAlter.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseAlter=e.alterMatch=void 0;var t=at(),r=Be(),n=it(),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")),i=new RegExp(`^\\s*(${t.nameSource})\\s+to\\s+(${t.nameSource})\\s*$`,"i"),a=e=>(0,r.unmaskStrings)(e.trim(),"'"),s=e=>{const r=e.trim().match(t.fieldMatch);if(!r)throw new Error(`Expected a field (<name> <type> ...) in: ${a(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[,l,c,d]=r;if("__RECORDS"===l)throw new Error("__RECORDS is reserved for the list of records");const u=c.toLowerCase();if(n.startsQueryMatch.test(d.trim())&&!/^\s*(add|drop|rename|modify)\b/i.test(d))throw new Error(`Missing ; before: ${a(d)}`);switch(u){case"add":case"modify":return{entity:l,alter:{action:u,field:s(d)}};case"drop":{const e=d.trim();if(!t.nameMatch.test(e))throw new Error(`Expected: alter ${l} drop <field>${e?` (got: ${a(e)})`:""}`);return{entity:l,alter:{action:u,name:e}}}default:{const e=d.match(i);if(!e)throw new Error(`Expected: alter ${l} rename <field> to <name>${d.trim()?` (got: ${a(d)})`:""}`);return{entity:l,alter:{action:"rename",name:e[1],to:e[2]}}}}}}}),ct=d({"dist/data/utilities/parsers/parseDatabaseStatement.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseDatabaseStatement=e.databaseStatementMatch=void 0;var t=Be(),r=it(),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,i=/^\s*use\s+([a-z0-9_-]+)/i,a=/^\s*show\s+databases/i,s=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 s(e.slice(r[0].length)),{...t,command:"create database",entity:r[2],ifNotExists:Boolean(r[1])};if(r=e.match(o),r)return s(e.slice(r[0].length)),{...t,command:"drop database",entity:r[2],ifExists:Boolean(r[1])};if(r=e.match(a),r)return s(e.slice(r[0].length)),{...t,command:"show databases",entity:"__DATABASES"};if(r=e.match(i),!r)throw new Error("Expected: use <database>");return s(e.slice(r[0].length)),{...t,command:"use",entity:r[1]}}}}),dt=d({"dist/data/utilities/parsers/parseQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseQuery=void 0;var t=w(),r=Ve(),n=Ie(),o=We(),i=Ke(),a=Xe(),s=Ge(),l=Ye(),c=Ze(),d=et(),u=tt(),f=rt(),y=nt(),h=Be(),m=at(),v=st(),g=lt(),b=ct(),j=He(),_=it(),$={values:{step:r.findInsertValues,expected:"an assignment (field = value)"},set:{step:n.findUpdateValues,expected:"an assignment (field = value)"},select:{step:i.findSelects,expected:"a field"},on:{step:l.findJoinClauses,expected:"a join condition (a.x = b.y)"},merge:{step:c.findMergeJoins,expected:"a merge (a.x with b.y)"},where:{step:a.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"}},O=(e,t)=>{const r=e=>(0,h.unmaskStrings)(e,"'");return _.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)),b.databaseStatementMatch.test(e))return Object.assign(r,(0,b.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(g.alterMatch.test(e)){const{entity:t,alter:n}=(0,g.parseAlter)(e);return Object.assign(r,{command:"alter",entity:t,alter:n})}const n=(0,j.splitClauses)(e);if(!n){if(e=e.trim(),_.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,s.allOf)([]),n.leading)throw O(n.leading,n.head);for(const{keyword:e,body:t}of n.clauses){const{step:n,expected:o}=$[e],i=n(r,t);if(i===t)throw new Error(`Missing ${o} after ${e}${t?`: ${(0,h.unmaskStrings)(t,"'")}`:""}`);if(i)throw O(i,`${e} ${t.slice(0,t.length-i.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}}}),ut=d({"dist/data/queries/parser.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parser=void 0;var t=h(),r=dt();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})`)}}))}}}),ft=d({"node_modules/browser-or-node/dist/index.js"(t,r){p();var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,l={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(l,{isBrowser:()=>c,isBun:()=>h,isDeno:()=>y,isJsDom:()=>f,isNode:()=>d,isWebWorker:()=>u}),r.exports=(n=l,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let l of a(t))s.call(e,l)||l===r||o(e,l,{get:()=>t[l],enumerable:!(n=i(t,l))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var c="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}}),pt=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,i=-1,a=0,s=0;s<=e.length;++s){if(s<e.length)r=e.charCodeAt(s);else{if(47===r)break;r=47}if(47===r){if(i===s-1||1===a);else if(i!==s-1&&2===a){if(n.length<2||2!==o||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var l=n.lastIndexOf("/");if(l!==n.length-1){-1===l?(n="",o=0):o=(n=n.slice(0,l)).length-1-n.lastIndexOf("/"),i=s,a=0;continue}}else if(2===n.length||1===n.length){n="",o=0,i=s,a=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(i+1,s):n=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===r&&-1!==a?++a:a=-1}return n}p();var i={resolve:function(){for(var t,r="",i=!1,a=arguments.length-1;a>=-1&&!i;a--){var s;a>=0?s=arguments[a]:(void 0===t&&(t=e.default.cwd()),s=t),n(s),0!==s.length&&(r=s+"/"+r,i=47===s.charCodeAt(0))}return r=o(r,!i),i?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?".":i.normalize(e)},relative:function(e,t){if(n(e),n(t),e===t)return"";if((e=i.resolve(e))===(t=i.resolve(t)))return"";for(var r=1;r<e.length&&47===e.charCodeAt(r);++r);for(var o=e.length,a=o-r,s=1;s<t.length&&47===t.charCodeAt(s);++s);for(var l=t.length-s,c=a<l?a:l,d=-1,u=0;u<=c;++u){if(u===c){if(l>c){if(47===t.charCodeAt(s+u))return t.slice(s+u+1);if(0===u)return t.slice(s+u)}else a>c&&(47===e.charCodeAt(r+u)?d=u:0===u&&(d=0));break}var f=e.charCodeAt(r+u);if(f!==t.charCodeAt(s+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(s+d):(s+=d,47===t.charCodeAt(s)&&++s,t.slice(s))},_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,i=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!i){o=a;break}}else i=!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,i=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var s=t.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){o=r+1;break}}else-1===l&&(a=!1,l=r+1),s>=0&&(c===t.charCodeAt(s)?-1==--s&&(i=r):(s=-1,i=l))}return o===i?i=l:-1===i&&(i=e.length),e.slice(o,i)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){o=r+1;break}}else-1===i&&(a=!1,i=r+1);return-1===i?"":e.slice(o,i)},extname:function(e){n(e);for(var t=-1,r=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47!==l)-1===o&&(i=!1,o=s+1),46===l?-1===t?t=s:1!==a&&(a=1):-1!==t&&(a=-1);else if(!i){r=s+1;break}}return-1===t||-1===o||0===a||1===a&&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),i=47===o;i?(t.root="/",r=1):r=0;for(var a=-1,s=0,l=-1,c=!0,d=e.length-1,u=0;d>=r;--d)if(47!==(o=e.charCodeAt(d)))-1===l&&(c=!1,l=d+1),46===o?-1===a?a=d:1!==u&&(u=1):-1!==a&&(u=-1);else if(!c){s=d+1;break}return-1===a||-1===l||0===u||1===u&&a===l-1&&a===s+1?-1!==l&&(t.base=t.name=0===s&&i?e.slice(1,l):e.slice(s,l)):(0===s&&i?(t.name=e.slice(1,a),t.base=e.slice(1,l)):(t.name=e.slice(s,a),t.base=e.slice(s,l)),t.ext=e.slice(a,l)),s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,r.exports=i}}),yt=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.configuredFetch=e.configure=e.activeDatabasePath=void 0,Le();var t={databasePath:"database/",relativePath:"",enforceForeignKeys:!0,readConcurrency:16,format:"compact"},r=0,n=/^[a-z0-9_-]+$/i,o=e=>e.endsWith("/")?e:`${e}/`,i=()=>t.databasesPath&&t.database?`${o(t.databasesPath)}${t.database}/`:l("databasePath","database/");e.activeDatabasePath=i;var a=()=>t.databasesPath?o(t.databasesPath):i();e.lockPath=a;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 s=e=>pt().resolve(e);e.resolveDatabasePath=s;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:s(i()),lock:s(a())},l=t;t=o;const c=s(i())!==n.active||s(a())!==n.lock;if(t=l,c){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};e.configuredFetch=e=>{const t=l("fetchOptions",void 0);return t?fetch(e,t):fetch(e)};var l=(e,r)=>void 0!==t[e]?t[e]:r;e.getSetting=l}}),ht=d({"dist/data/storage/storagePath.js"(e){p(),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,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=yt();e.storagePath=(e="")=>`${r.isBrowser?(0,n.getSetting)("relativePath",""):""}${(0,n.activeDatabasePath)()}${e}`}}),wt=d({"js-build-tools-empty:fs/promises"(e,t){p(),t.exports={}}}),mt=d({"dist/data/storage/nodeFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.nodeFiles=void 0;e.nodeFiles=()=>wt()}}),vt=d({"dist/data/storage/readCache.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.withReadCache=e.cachedRead=e.cacheWrite=e.cacheRemove=void 0;var t=ht(),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 i=t();return r.files.set(e,i),i.catch((()=>{r.files.get(e)===i&&r.files.delete(e)})),i};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)}}}}),gt=d({"dist/data/storage/writeSet.js"(e){p(),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;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=ht(),o=mt(),i=vt();var a=new Map,s=()=>a.get((0,n.storagePath)()),l=e=>e.endsWith("/")?e:`${e}/`,c=(e,t)=>{for(const r of t)if(e===r||e.startsWith(l(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,i.cacheRemove)(e,!0),await(0,o.nodeFiles)().rm(e,{recursive:!0,force:!0}),(0,i.cacheRemove)(e,!0)};e.withWriteSet=async e=>{const t=(0,n.storagePath)();if(!r.isNode||a.has(t))return e();const s={files:new Map,madeFolders:new Set,removedFolders:new Set};let c;a.set(t,s);try{c=await e()}finally{a.delete(t)}return await(async e=>{const t=(0,o.nodeFiles)(),r=t=>{const r=l(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,i.cacheWrite)(t,r));for(const[r,n]of e.files)null===n&&((0,i.cacheRemove)(r),await t.rm(r,{force:!0}),(0,i.cacheRemove)(r));for(const e of n.filter((e=>!r(e))))await u(e)})(s),c};e.pendingFile=e=>{const t=s();if(t)return t.files.has(e)?t.files.get(e):c(e,t.removedFolders)?null:void 0};e.pendingExists=e=>{const t=s();if(!t)return;if(t.files.has(e))return null!==t.files.get(e);const r=l(e);return!(![...t.madeFolders].some((t=>t===e||t.startsWith(r)))&&![...t.files].some((([e,t])=>null!==t&&e.startsWith(r))))||!c(e,t.removedFolders)&&void 0};e.pendingListing=(e,t)=>{const r=s();if(!r)return t;const n=l(e),o=new Set(t.filter((e=>!c(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=s();return!!r&&(r.files.delete(e),r.files.set(e,t),!0)};e.stageRemove=e=>{const t=s();return!!t&&(t.files.delete(e),t.files.set(e,null),!0)};e.stageMakeDirectory=e=>{const t=s();return!!t&&(t.madeFolders.add(e),!0)};e.stageRemoveDirectory=e=>{const t=s();if(!t)return!1;for(const r of[...t.files.keys()])c(r,new Set([e]))&&t.files.delete(r);for(const r of[...t.madeFolders])c(r,new Set([e]))&&t.madeFolders.delete(r);return t.removedFolders.add(e),!0}}}),bt=d({"dist/data/storage/readJson.js"(e){p(),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,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=ht(),o=mt(),i=vt(),a=gt(),s=yt();var l=async e=>{const t=(0,n.storagePath)(e),l=(0,a.pendingFile)(t);if(null===l)throw new Error(`ENOENT: no such file or directory, open '${t}' (deleted by this statement)`);return"string"==typeof l?l:(0,i.cachedRead)(t,(()=>r.isNode?(0,o.nodeFiles)().readFile(t,"utf8"):(0,s.configuredFetch)(t).then((e=>e.text()))))};e.readText=l;e.readJson=async e=>JSON.parse(await l(e))}}),jt=d({"dist/data/storage/writeJson.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeJson=e.jsonText=void 0,Le();var t=ht(),r=vt(),n=gt(),o=yt(),i=(e,t=(0,o.getSetting)("format","compact"))=>"pretty"===t?JSON.stringify(e,null,2):JSON.stringify(e);e.jsonText=i;e.writeJson=async(e,o,a)=>{const s=(0,t.storagePath)(e),l=i(o,a);(0,n.stageWrite)(s,l)||(await(0,n.writeAtomically)(s,l),(0,r.cacheWrite)(s,l))}}}),_t=d({"dist/data/storage/makeDirectory.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.makeDirectory=void 0;var t=ht(),r=mt(),n=gt();e.makeDirectory=async(e="")=>{const o=(0,t.storagePath)(e);(0,n.stageMakeDirectory)(o)||await(0,r.nodeFiles)().mkdir(o,{recursive:!0})}}}),$t=d({"js-build-tools-empty:fs"(e,t){p(),t.exports={}}}),Ot=d({"dist/data/storage/removeFile.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeFile=void 0;var t=ht(),r=mt(),n=vt(),o=gt();e.removeFile=async e=>{const i=(0,t.storagePath)(e),a=(0,o.pendingFile)(i);if(null===a||void 0===a&&!$t().existsSync(i))throw new Error(`ENOENT: no such file or directory, rm '${i}'`);(0,o.stageRemove)(i)||((0,n.cacheRemove)(i),await(0,r.nodeFiles)().rm(i),(0,n.cacheRemove)(i))}}}),kt=d({"dist/data/storage/removeDirectory.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeDirectory=void 0;var t=ht(),r=mt(),n=vt(),o=gt();e.removeDirectory=async e=>{const i=(0,t.storagePath)(e);(0,o.stageRemoveDirectory)(i)||((0,n.cacheRemove)(i,!0),await(0,r.nodeFiles)().rm(i,{recursive:!0,force:!0}),(0,n.cacheRemove)(i,!0))}}}),Et=d({"dist/data/storage/fileExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.fileExists=void 0;var t=ht(),r=gt();e.fileExists=e=>{const n=(0,t.storagePath)(e),o=(0,r.pendingExists)(n);if(void 0!==o)return o;const{existsSync:i}=$t();return i(n)}}}),xt=d({"dist/data/storage/listFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.listFiles=void 0;var t=ht(),r=mt(),n=gt(),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 i=[];for(const t of n)t.isDirectory()?i.push(...await o(`${e}${t.name}/`)):t.isFile()&&i.push(`${e}${t.name}`);return i};e.listFiles=async(e="")=>{const r=e?`${e.replace(/\/+$/,"")}/`:"",i=(await o(r)).map((e=>(0,t.storagePath)(e))),a=(0,t.storagePath)();return(0,n.pendingListing)((0,t.storagePath)(e),i).map((e=>e.slice(a.length))).sort()}}}),Pt=d({"dist/data/storage/databases.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeDatabaseList=e.removeDatabaseFolder=e.readDatabaseList=e.makeDatabaseFolder=e.databasesLocation=e.databaseFolderExists=void 0,Le();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=yt(),o=mt(),i=vt(),a=gt();var s=(e="")=>`${r.isBrowser?(0,n.getSetting)("relativePath",""):""}${(0,n.databasesFolder)()}${e}`;e.databasesLocation=s;var l=()=>s("__DATABASES.json");e.readDatabaseList=async()=>{let e;try{e=r.isNode?await(0,o.nodeFiles)().readFile(l(),"utf8"):await(0,n.configuredFetch)(l()).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 ${l()}: ${e.message}`)}};e.writeDatabaseList=async e=>{await(0,o.nodeFiles)().mkdir(s(),{recursive:!0}),await(0,a.writeAtomically)(l(),JSON.stringify(e))};e.databaseFolderExists=e=>$t().existsSync(s(e));e.makeDatabaseFolder=async e=>{await(0,o.nodeFiles)().mkdir(s(e),{recursive:!0})};e.removeDatabaseFolder=async e=>{const t=s(e);(0,i.cacheRemove)(t,!0),await(0,o.nodeFiles)().rm(t,{recursive:!0,force:!0}),(0,i.cacheRemove)(t,!0)}}}),St=d({"dist/data/storage/index.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"databaseFolderExists",{enumerable:!0,get:function(){return c.databaseFolderExists}}),Object.defineProperty(e,"databasesLocation",{enumerable:!0,get:function(){return c.databasesLocation}}),Object.defineProperty(e,"fileExists",{enumerable:!0,get:function(){return s.fileExists}}),Object.defineProperty(e,"jsonText",{enumerable:!0,get:function(){return n.jsonText}}),Object.defineProperty(e,"listFiles",{enumerable:!0,get:function(){return l.listFiles}}),Object.defineProperty(e,"makeDatabaseFolder",{enumerable:!0,get:function(){return c.makeDatabaseFolder}}),Object.defineProperty(e,"makeDirectory",{enumerable:!0,get:function(){return o.makeDirectory}}),Object.defineProperty(e,"readDatabaseList",{enumerable:!0,get:function(){return c.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 c.removeDatabaseFolder}}),Object.defineProperty(e,"removeDirectory",{enumerable:!0,get:function(){return a.removeDirectory}}),Object.defineProperty(e,"removeFile",{enumerable:!0,get:function(){return i.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 c.writeDatabaseList}}),Object.defineProperty(e,"writeJson",{enumerable:!0,get:function(){return n.writeJson}});var t=ht(),r=bt(),n=jt(),o=_t(),i=Ot(),a=kt(),s=Et(),l=xt(),c=Pt(),d=vt(),u=gt()}}),Mt=d({"dist/data/utilities/retrieveFile.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveFile=void 0;var t=St();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}}}),Dt=d({"dist/data/utilities/recordExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.recordExists=void 0;var t=St();e.recordExists=e=>(0,t.fileExists)(`${e}.json`)}}),Rt=d({"dist/data/utilities/retrieveRecord.js"(e){p(),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,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=Mt(),o=Dt();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}}}}),Ct=d({"dist/data/utilities/compareAs.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.sameValue=e.compareAs=e.comparableTypes=void 0,Qe();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}}),Ft=d({"dist/data/utilities/removeFromIndex.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeFromIndex=void 0;var t=Ct(),r=St();e.removeFromIndex=async(e="",n=null,o=void 0,i="",a=void 0)=>{if(!n||!n.lookup)return null;const s=`__indexes/${e}/${n.lookup}`;let l=[];try{l=await(0,r.readJson)(s)}catch(e){return null}return l=l.map((e=>(0,t.sameValue)(a,e.value,o)?{value:e.value,record:e.record.filter((e=>e!==i))}:e)).filter((e=>e.record.length)),await(0,r.writeJson)(s,l),l}}}),At=d({"dist/data/utilities/computeKeyValue.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.computeKeyValue=void 0,Le();e.computeKeyValue=(e,t)=>1===e.length?t[e[0]]:JSON.stringify(e.map((e=>t[e])))}}),Nt=d({"dist/data/utilities/fieldType.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyValueType=e.fieldType=void 0;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}}),Jt=d({"dist/data/introspect/describe.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.describe=void 0;var t=Mt();e.describe=async(e="__RECORDS")=>{const r=await(0,t.retrieveFile)(`${e}.json`);return"__RECORDS"===e?r.entries:r.definition}}}),Tt=d({"dist/data/utilities/retrieveFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveFiles=void 0;var t=Mt(),r=yt();e.retrieveFiles=async(e,n=t.retrieveFile)=>{const o=Math.max(1,Math.floor((0,r.getSetting)("readConcurrency",16))||1),i=new Array(e.length),a=[];let s=0;if(await Promise.all(Array.from({length:Math.min(o,e.length)},(async()=>{for(;s<e.length&&!a.length;){const t=s++;try{i[t]=await n(e[t])}catch(e){a.push({position:t,error:e})}}}))),a.length)throw a.reduce(((e,t)=>t.position<e.position?t:e)).error;return i}}}),qt=d({"dist/data/utilities/packedTable.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.usesPackedReads=e.retrievePacked=e.packedPath=e.discardPacked=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=St(),o=yt();var i=e=>`__packed/${e}.json`;e.packedPath=i;var a=()=>(0,o.getSetting)("packedReads",!r.isNode);e.usesPackedReads=a;e.retrievePacked=async e=>{if(!a())return;let t;try{t=await(0,n.readJson)(i(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)(i(e))&&await(0,n.removeFile)(i(e))}}}),Lt=d({"dist/data/utilities/retrieveRecords.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveRecords=e.retrieveEntryRows=e.retrieveEntry=void 0;var t=Mt(),r=Rt(),n=Tt(),o=qt(),i=yt(),a=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=a;var s=async(e,t,r=a)=>{const s=t.length>(0,i.getSetting)("readConcurrency",16)?await(0,o.retrievePacked)(e):void 0;if(!s)return(0,n.retrieveFiles)(t.map((t=>`${e.path}/${t}`)),r);const l=new Map(s.entries.map(((e,t)=>[e,t]))),c=t.filter((e=>!l.has(e))),d=c.length?await(0,n.retrieveFiles)(c.map((t=>`${e.path}/${t}`)),r):[],u=new Map(c.map(((e,t)=>[e,d[t]])));return t.map((e=>l.has(e)?s.rows[l.get(e)]:u.get(e)))};e.retrieveEntryRows=s;e.retrieveRecords=async(e="")=>{const t=await(0,r.retrieveRecord)(e);return s(t,t.entries)}}}),Bt=d({"dist/data/queries/where.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.whereTree=e.where=e.treeTruth=void 0,Qe();var t=Ct(),r=Ge(),n=(e,r,n,o,i=void 0)=>{const a=Object.prototype.hasOwnProperty.call(e,r);switch(n){case"exists":return a;case"does not exist":return!a;case"is null":return a&&null===e[r];case"is not null":return a&&null!==e[r]}if(!a||null===e[r]||null===o)return null;const s=e[r],l=(0,t.compareAs)(i,s);switch(n){case"=":return(0,t.sameValue)(i,s,o);case"!=":case"<>":return!(0,t.sameValue)(i,s,o);case">":return l>(0,t.compareAs)(i,o);case">=":return l>=(0,t.compareAs)(i,o);case"<":return l<(0,t.compareAs)(i,o);case"<=":return l<=(0,t.compareAs)(i,o);case"in":return!!Array.isArray(o)&&(!!(i?o.some((e=>null!==e&&(0,t.sameValue)(i,s,e))):o.includes(s))||!!o.includes(null)&&null);case"between":return!(!Array.isArray(o)||2!==o.length)&&(o.includes(null)?null:l>=(0,t.compareAs)(i,o[0])&&l<=(0,t.compareAs)(i,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)})(s,o)}return!1},o=(e,{property:t="",joinEntity:r,comparator:o="=",value:i=null,type:a}={})=>n(e,r?`${r}.${t}`:t,o,i,a);e.where=(e=[],t={})=>e.filter((e=>!0===o(e,t)));var i=(e,t)=>{if((0,r.isCondition)(t))return o(e,t);if("not"in t){const r=i(e,t.not);return null===r?null:!r}const n=!("and"in t);let a=!n;for(const r of"and"in t?t.and:t.or){const t=i(e,r);if(t===n)return n;null===t&&(a=null)}return a};e.treeTruth=i;e.whereTree=(e=[],t=void 0,r=void 0)=>void 0===t?e:void 0===r?e.filter((e=>!0===i(e,t))):e.flatMap((e=>{const n=(Array.isArray(e[r])?e[r]:[]).filter((n=>!0===i(((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})]:[]}))}}),zt=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]}}}}),Vt=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}}),It=d({"dist/data/utilities/indexHas.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.indexHas=void 0;var t=St(),r=Bt(),n=Rt(),o=Vt(),i=Nt();e.indexHas=async(e,a,s)=>{const l=await(0,n.retrieveRecord)(e),c=l.keys.find((e=>(0,o.isSingleFieldKey)(e,a)&&e.lookup));if(!c)return;if(!(l.entries||[]).length)return!1;let d;try{d=await(0,t.readJson)(`__indexes/${l.path}/${c.lookup}`)}catch(e){return}return(0,r.where)(d,{property:"value",comparator:"=",value:s,type:(0,i.fieldType)(l,a)}).some((e=>Array.isArray(e.record)&&e.record.length>0))}}}),Wt=d({"dist/data/introspect/policies/hasDependents.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.hasDependents=void 0;var t=Jt(),r=Rt(),n=Lt(),o=Bt(),i=Nt(),a=zt(),s=It();e.hasDependents=async(e,l,c)=>{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,a.splitEntityProperty)(t.references[0].fields[0]);if(r!==e||f!==l)continue;const p=await(0,s.indexHas)(d,t.fields[0],c);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:c,type:(0,i.fieldType)(u,t.fields[0])}).length)return!0}}return!1}}}),Kt=d({"dist/data/utilities/keyIndexFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyIndexFiles=void 0;var t=St();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 i=new Set;for(const e of Array.isArray(o)?o:[])Array.isArray(e.record)&&n(e.value)&&e.record.forEach((e=>i.add(e)));return e.entries.filter((e=>i.has(e)))}}}),Ut=d({"dist/data/queries/deleteEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.deleteEntity=void 0;var t=Rt(),r=Mt(),n=Ft(),o=At(),i=Nt(),a=Wt(),s=yt(),l=Kt(),c=St(),d=qt();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,s.getSetting)("enforceForeignKeys",!0)||1!==t.fields.length)return;const n=t.fields[0];for(const t of r)if(await(0,a.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)))),w=await(async(e,t,a,s)=>{const d=new Set,u=new Set,f=async e=>{const l=await(0,r.retrieveFile)(`${t.path}/${e}`),f=(0,o.computeKeyValue)(a.fields,l);if(s.has(f)){await(0,c.removeFile)(`${t.path}/${e}`);for(const r of t.keys)await(0,n.removeFromIndex)(t.path,r,(0,o.computeKeyValue)(r.fields,l),e,(0,i.keyValueType)(t,r));d.add(e),u.add(f)}};for(const e of await(0,l.keyIndexFiles)(t,a,(e=>s.has(e)))??[])await f(e);if(u.size<s.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 w.length!==f.entries.length&&await(0,d.discardPacked)(f.path),f.entries=w,await(0,c.writeJson)(`${f.path}.json`,f),u}}}),Qt=d({"dist/data/introspect/policies/keyUnique.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyUnique=void 0;var t=Lt(),r=Bt(),n=Rt(),o=Nt(),i=It();e.keyUnique=async(e,a=[],s=[])=>{if(!a.length||a.length!==s.length)return!1;if(1===a.length){const t=await(0,i.indexHas)(e,a[0],s[0]);if(void 0!==t)return!t}let l=await(0,t.retrieveRecords)(e);const c=await(0,n.retrieveRecord)(e);for(let e=0;e<a.length;e++)l=(0,r.where)(l,{property:a[e],comparator:"=",value:s[e],type:(0,o.fieldType)(c,a[e])});return!l.length}}}),Gt=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}}),Ht=d({"dist/data/introspect/policies/foreignKeyExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.foreignKeyExists=void 0;var t=Lt(),r=Bt(),n=Rt(),o=Nt(),i=It();e.foreignKeyExists=async(e,a,s)=>{const l=await(0,i.indexHas)(e,a,s);if(void 0!==l)return l;const c=await(0,t.retrieveRecords)(e),d=(0,o.fieldType)(await(0,n.retrieveRecord)(e),a);return(0,r.where)(c,{property:a,comparator:"=",value:s,type:d}).length>0}}}),Xt=d({"dist/data/utilities/indexBuffer.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.IndexBuffer=void 0,Qe();var t=Ct(),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 i={value:e,record:[t]};this.entries.push(i),this.listed.set(i,new Set(i.record));const a=n(this.type,e);a!==r&&this.byKey.set(a,i)}}}}),Yt=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)}}),Zt=d({"dist/data/utilities/knownFields.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.assertKnownFields=e.assertFieldsDefined=void 0;var t=Rt(),r=Yt(),n=zt(),o=Ge(),i=(e,t,r,n)=>{const o=new Set(t.definition.map((e=>e.name))),i=r.find((e=>!o.has(e)));if(void 0!==i)throw new Error(`Unknown field "${i}" in ${n}: ${e} has ${(e=>e.definition.map((e=>e.name)).join(", "))(t)}`)};e.assertFieldsDefined=i;e.assertKnownFields=async(e,a)=>{const s=new Set((e.mergeJoins||[]).map((e=>(0,n.splitEntityProperty)(e.propertyB).entity))),l=[...(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:c,own:d}of l){if("string"!=typeof o)continue;let l=e.entity,u=o;if(!d&&(0,r.isEntityProperty)(o)&&({entity:l,property:u}=(0,n.splitEntityProperty)(o)),"select"===c&&l!==e.entity&&!s.has(l))throw new Error(`Can't select "${o}": a joined record's rows are a list under its name (select ${l}), and its fields are on each row only when merged (merge ... with ${l}.<field>)`);Object.prototype.hasOwnProperty.call(a,l)||(a[l]=await(0,t.retrieveRecord)(l)),i(l,a[l],[u],c)}}}}),er=d({"dist/data/queries/insertEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.insertEntity=void 0,Qe(),Le();var t=Rt(),r=Qt(),n=Gt(),o=ot(),i=Ht(),a=zt(),s=At(),l=Nt(),c=Ct(),d=Lt(),u=Vt(),f=Xt(),y=St(),h=qt(),w=Zt(),m=class{constructor(e,t){this.seen=new Set,this.fields=t,this.types=t.map((t=>(0,l.fieldType)(e,t)))}static usable(e,t){return t.every((t=>c.comparableTypes.includes((0,l.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,c.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)}},v=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,l.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 i;try{i=await(0,y.readJson)(`__indexes/${n.path}/${o.lookup}`)}catch(e){return()=>{}}const a=new f.IndexBuffer(Array.isArray(i)?i:[],(0,l.fieldType)(n,r));return e=>a.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(!m.usable(n,r))return;const o=new m(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,c.sameValue)((0,l.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 a=await this.scan(e,[t]);return a?a.has({[t]:r}):await(0,i.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,s.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},b=async(e,t={})=>{const r={};for(const i of e.record.definition){let a=t[i.name];if(null===a&&i.optional&&!i.nullable&&(a=void 0),i.autoGenerate?null==a&&(a=await g(e,i.name)):Object.prototype.hasOwnProperty.call(i,"default")&&(a=(0,n.useDefault)(i.default,a)),void 0!==a)r[i.name]=(0,o.typeCheck)(i.type,a,i.nullable);else if(!i.optional)throw new Error(`Missing required field "${i.name}" for ${e.entity}`)}return r},j=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:i}=(0,a.splitEntityProperty)(r.references[0].fields[0]);if(!await e.exists(o,i,t[n]))throw new Error(`Foreign key "${n}" on ${e.entity} references a nonexistent ${o}.${i} = ${t[n]}`)}};e.insertEntity=async(e="",r=[],n={})=>{const o=await(0,t.retrieveRecord)(e),i=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,w.assertFieldsDefined)(e,o,Object.keys(t||{}),"insert");await(0,h.discardPacked)(o.path);const a=new v(e,o);await a.load();for(const t of r){const r=await b(a,t);await j(a,r),await _(a,r);const s=`${i?r[i.fields[0]]:crypto.randomUUID()}.json`;await(0,y.writeJson)(`${o.path}/${s}`,r),await a.add(r,s),n[e].push(r)}return await a.write(),n}}}),tr=d({"dist/data/queries/readEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.readEntity=void 0;var t=Lt();e.readEntity=async(e="",r={})=>(Object.prototype.hasOwnProperty.call(r,e)&&r[e].length||(r[e]=await(0,t.retrieveRecords)(e)),r)}}),rr=d({"dist/data/utilities/updateIndex.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.updateIndex=void 0,Qe();var t=Ct(),r=St();e.updateIndex=async(e="",n=null,o=void 0,i="",a=void 0)=>{if(!n||!n.lookup)return null;const s=`__indexes/${e}`,l=`${s}/${n.lookup}`;let c=[];try{c=await(0,r.readJson)(l)}catch(e){c=[]}const d=c.find((e=>(0,t.sameValue)(a,e.value,o)));return d?d.record.includes(i)||d.record.push(i):c.push({value:o,record:[i]}),await(0,r.makeDirectory)(s),await(0,r.writeJson)(l,c),c}}}),nr=d({"dist/data/queries/updateEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.updateEntity=void 0;var t=Rt(),r=Mt(),n=rr(),o=Ft(),i=At(),a=Nt(),s=Ct(),l=Qt(),c=ot(),d=Ht(),u=Wt(),f=zt(),y=yt(),h=Kt(),w=St(),m=qt(),v=Zt(),g=async(e,t,n)=>{const o=(0,a.keyValueType)(e,t),l=async a=>(0,s.sameValue)(o,(0,i.computeKeyValue)(t.fields,await(0,r.retrieveFile)(`${e.path}/${a}`)),n);for(const r of await(0,h.keyIndexFiles)(e,t,(e=>(0,s.sameValue)(o,e,n)))??[])if(await l(r))return r;for(const t of e.entries)if(await l(t))return t;return null},b=(e,t,r,n)=>t.fields.some((t=>Object.prototype.hasOwnProperty.call(n,t)&&!(0,s.sameValue)((0,a.fieldType)(e,t),n[t],r[t]))),j=async(e,t,r,n,o)=>{for(const i of t.keys){if("primary"!==i.type&&"unique"!==i.type||!b(t,i,r,o))continue;const a=i.fields.map((e=>n[e]));if(a.some((e=>null==e)))continue;if(!await(0,l.keyUnique)(e,i.fields,a))throw new Error(`Duplicate value for ${i.type} key "${i.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 i=o.fields[0];if(!Object.prototype.hasOwnProperty.call(n,i)||null===n[i]||void 0===n[i]||(0,s.sameValue)((0,a.fieldType)(t,i),n[i],r[i]))continue;const{entity:l,property:c}=(0,f.splitEntityProperty)(o.references[0].fields[0]);if(!await(0,d.foreignKeyExists)(l,c,n[i]))throw new Error(`Foreign key "${i}" on ${e} references a nonexistent ${l}.${c} = ${n[i]}`)}},$=async(e,t,r,n,o)=>{if(!(0,y.getSetting)("enforceForeignKeys",!0)||1!==r.fields.length||!b(t,r,n,o))return;const i=r.fields[0];if(await(0,u.hasDependents)(e,i,n[i]))throw new Error(`Cannot update "${e}" where "${i}" = ${n[i]} - other records still reference it`)},O=async(e,t,r,s,l)=>{for(const c of e.keys)b(e,c,t,s)&&(await(0,o.removeFromIndex)(e.path,c,(0,i.computeKeyValue)(c.fields,t),l,(0,a.keyValueType)(e,c)),await(0,n.updateIndex)(e.path,c,(0,i.computeKeyValue)(c.fields,r),l,(0,a.keyValueType)(e,c)))},k=(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 l=await(0,t.retrieveRecord)(e),d=l.keys.find((e=>"primary"===e.type));if(!d)throw new Error(`Cannot update "${e}" without a primary key`);(0,v.assertFieldsDefined)(e,l,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,c.typeCheck)(t.type,r[t.name],t.nullable));return r})(l,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(l,d,(0,i.computeKeyValue)(d.fields,t));if(!n)throw new Error(`Could not find entry for ${e} where "${d.fields.join(", ")}" = ${(0,i.computeKeyValue)(d.fields,t)}`);if(f.some((e=>e.fileName===n)))continue;const o=await(0,r.retrieveFile)(`${l.path}/${n}`),a=E(Object.assign({},o,u),u);await j(e,l,o,a,u),await _(e,l,o,u),await $(e,l,d,o,u),k(e,l,a),f.push({fileName:n,oldData:o,newData:a})}((e,t,r,n)=>{for(const o of t.keys){if("primary"!==o.type&&"unique"!==o.type)continue;const l=[];for(const{oldData:c,newData:d}of r){if(!b(t,o,c,n)||o.fields.some((e=>null===d[e]||void 0===d[e])))continue;const r=(0,i.computeKeyValue)(o.fields,d);if(l.some((e=>(0,s.sameValue)((0,a.keyValueType)(t,o),e,r))))throw new Error(`Duplicate value for ${o.type} key "${o.fields.join(", ")}" on ${e}`);l.push(r)}}})(e,l,f,u),f.length&&await(0,m.discardPacked)(l.path);for(const{fileName:e,oldData:t,newData:r}of f)await O(l,t,r,u,e),await(0,w.writeJson)(`${l.path}/${e}`,r);return o[e]=f.map((({newData:e})=>e)),o}}}),or=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:i="",autoGenerate:a=!1}={})=>{const s={name:e,type:t,optional:r,autoGenerate:a};return n&&(s.nullable=!0),o&&(s.default=i),s}}}),ir=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})}}),ar=d({"dist/data/introspect/definitions/key.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.key=void 0;var t=ir();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 i={type:e,fields:r,lookup:n};return void 0!==o&&o.length>0&&(i.references=o.map(t.keyReference)),i}}}),sr=d({"dist/data/introspect/definitions/record.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.record=void 0;var t=or(),r=ar();e.record=({path:e="",definition:n=[],keys:o=[],entries:i=[]}={})=>({path:e,definition:n.map(t.field),keys:o.map(r.key),entries:i})}}),lr=d({"dist/data/utilities/registerRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.registerRecord=void 0,Qe();var t=St();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}}}),cr=d({"dist/data/utilities/requireNode.js"(e){p(),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,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft());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())`)}}}),dr=d({"dist/data/introspect/create.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.create=e.assertValidDefinition=void 0,Qe();var t=sr(),r=lr(),n=St(),o=cr(),i=ot(),a=["type","fields","lookup","references"],s=(e,t)=>{for(const r of t.definition)if(Object.prototype.hasOwnProperty.call(r,"default"))try{(0,i.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=s;e.create=async(e,i=[],l=[])=>{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(!a.includes(t))throw new Error(`Unknown property "${t}" on ${r.type??"index"} key of ${e}; must be ${a.join(", ")}`)})(e,l);const c=(0,t.record)({path:e,definition:i,keys:l});s(e,c),await(0,n.makeDirectory)(),await(0,n.writeJson)(`${e}.json`,c),await(0,n.makeDirectory)(e);const d=c.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),c}}}),ur=d({"dist/data/queries/createRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.createRecord=void 0,Qe();var t=dr(),r=Rt(),n=zt(),o=Dt();e.createRecord=async(e,i)=>{if((0,o.recordExists)(e)){if(i.ifNotExists)return null;throw new Error(`Record "${e}" already exists`)}return await(async(e,t)=>{for(const i of t.keys){if("foreign"!==i.type)continue;const{entity:a,property:s}=(0,n.splitEntityProperty)(i.references[0].fields[0]);let l=t.definition.map((e=>e.name));if(a!==e){if(!(0,o.recordExists)(a))throw new Error(`Foreign key "${i.fields[0]}" references "${a}", which doesn't exist`);l=(await(0,r.retrieveRecord)(a)).definition.map((e=>e.name))}if(!l.includes(s))throw new Error(`Foreign key "${i.fields[0]}" references "${a}.${s}", which is not a field`)}})(e,i),(0,t.create)(e,i.definition,i.keys)}}}),fr=d({"dist/data/utilities/deregisterRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.deregisterRecord=void 0;var t=St();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}}}),pr=d({"dist/data/introspect/drop.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.drop=void 0;var t=Mt(),r=fr(),n=cr(),o=St(),i=qt();e.drop=async e=>{if((0,n.requireNode)("drop()"),"__RECORDS"===e)return null;const a=await(0,t.retrieveFile)(`${e}.json`);for(const e of a.entries)await(0,o.removeFile)(`${a.path}/${e}`);await(0,o.removeDirectory)(a.path),await(0,o.removeDirectory)(`__indexes/${a.path}`),await(0,i.discardPacked)(a.path),await(0,o.removeFile)(`${e}.json`),await(0,r.deregisterRecord)(e)}}}),yr=d({"dist/data/queries/dropRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.dropRecord=void 0;var t=pr(),r=Rt(),n=Dt(),o=zt(),i=yt();e.dropRecord=async(e,a)=>{if(!(0,n.recordExists)(e)){if(a)return null;throw new Error(`Record "${e}" doesn't exist`)}await(async e=>{if(!(0,i.getSetting)("enforceForeignKeys",!0)||!(0,n.recordExists)("__RECORDS"))return;const t=await(0,r.retrieveRecord)("__RECORDS");for(const i of t.entries){const t=i.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 s=await(0,r.retrieveRecord)(e);return await(0,t.drop)(e),s}}}),hr=d({"dist/data/queries/describeRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.describeRecord=void 0;var t=Rt(),r=Dt();e.describeRecord=async e=>{if(!(0,r.recordExists)(e))throw new Error(`Record "${e}" doesn't exist`);const{path:n,definition:o,keys:i}=await(0,t.retrieveRecord)(e);return{path:n,definition:o,keys:i}}}}),wr=d({"dist/data/queries/showRecords.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.showRecords=void 0;var t=Rt(),r=Dt();e.showRecords=async()=>(0,r.recordExists)("__RECORDS")?(await(0,t.retrieveRecord)("__RECORDS")).entries.map((e=>e.replace(/\.json$/,""))):[]}}),mr=d({"dist/data/introspect/alter.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.alter=void 0,Qe(),Le();var t=or(),r=dr(),n=at(),o=Rt(),i=Tt(),a=Lt(),s=Zt(),l=qt(),c=cr(),d=wr(),u=nr(),f=ot(),y=St(),h=async e=>(await(0,i.retrieveFiles)(e.entries.map((t=>`${e.path}/${t}`)),a.retrieveEntry)).map(((t,r)=>({fileName:e.entries[r],data:t}))),w=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),m=(e,t)=>e.keys.filter((e=>e.fields.includes(t))),v=async(e,t)=>{const r=[];for(const n of await(0,d.showRecords)()){const i=await(0,o.retrieveRecord)(n);for(const o of i.keys)"foreign"===o.type&&(o.references||[]).some((r=>r.fields.includes(`${e}.${t}`)))&&r.push({entity:n,record:i,key:o})}return r},g=async(e,t)=>{(0,r.assertValidDefinition)(e,t),await(0,y.writeJson)(`${e}.json`,t)},b=async(e,t,r,n,o)=>{if(r.length)if(await(0,l.discardPacked)(t.path),m(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),i="function"==typeof o?o(e):o;void 0===i?delete r[n]:r[n]=i,await(0,y.writeJson)(`${t.path}/${e.fileName}`,r)}};e.alter=async(e,r)=>{if((0,c.requireNode)("alter"),"__RECORDS"===e)throw new Error("__RECORDS is reserved for the list of records");const i=[e,..."field"in r?[r.field?.name]:[],..."name"in r?[r.name]:[],..."to"in r?[r.to]:[]],a=i.findIndex((e=>"string"!=typeof e||!n.nameMatch.test(e)));if(-1!==a)throw new Error(`Invalid name ${JSON.stringify(i[a])??"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=>w(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 i=o.filter((e=>!w(e.data,r.name))),a=w(r,"default");if(i.length&&!r.optional&&!a&&!r.autoGenerate)throw new Error(`Can't add required field "${r.name}" to ${e}: its ${i.length} row(s) have no value for it (give it a default, or make it optional)`);return await g(e,n),r.autoGenerate?await b(e,n,i,r.name,(()=>crypto.randomUUID())):a&&await b(e,n,i,r.name,r.default),n})(e,d,(0,t.field)(r.field))).definition;case"drop":return(await(async(e,t,r)=>{(0,s.assertFieldsDefined)(e,t,[r],"alter");const n=m(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 v(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 i={...t,definition:t.definition.filter((e=>e.name!==r))};return await g(e,i),await b(e,i,(await h(t)).filter((e=>w(e.data,r))),r,void 0),i})(e,d,r.name)).definition;case"rename":return(await(async(e,t,r,o)=>{if((0,s.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 i=await v(e,r),a=t.keys.map((e=>{if(!e.fields.includes(r))return e;const t=e.fields.map((e=>e===r?o:e)),i=e.lookup&&e.lookup===(0,n.keyLookup)(e.type,e.fields)?(0,n.keyLookup)(e.type,t):e.lookup;return{...e,fields:t,lookup:i}})),c=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:a.map(c)};for(const[e,r]of t.keys.entries()){const n=a[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 i.filter((t=>t.entity!==e)))await(0,y.writeJson)(`${t.entity}.json`,{...t.record,keys:t.record.keys.map(c)});const u=(await h(t)).filter((e=>w(e.data,r)));u.length&&await(0,l.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,s.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))},i=await h(t),a=w(r,"default"),l=r.nullable?[]:i.filter((e=>null===e.data[r.name])),c=r.optional?[]:i.filter((e=>!w(e.data,r.name))),d=r.optional?[]:l;if((c.length||d.length)&&!a)throw c.length?new Error(`Can't make "${r.name}" required on ${e}: ${c.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),a&&await b(e,o,[...c,...d],r.name,r.default),r.optional&&l.length&&await b(e,o,l,r.name,void 0),o})(e,d,(0,t.field)(r.field))).definition;default:throw new Error(`Unknown alter action: ${r.action}`)}}}}),vr=d({"dist/data/utilities/databaseLock.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.withDatabaseLock=e.browserCallsRunning=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=yt(),o=St();var i=new Map,a=0;e.browserCallsRunning=()=>a;e.withDatabaseLock=async e=>{if(!r.isNode){a++;try{return await(0,o.withReadCache)(e)}finally{a--}}const t=(0,n.resolveDatabasePath)((0,n.lockPath)()),s=(0,n.trackDatabaseCall)(),l=i.get(t)||Promise.resolve();let c;const d=new Promise((e=>{c=e})),u=l.then((()=>d));i.set(t,u),await l;try{return await(0,o.withReadCache)(e)}finally{s(),c(),i.get(t)===u&&i.delete(t)}}}}),gr=d({"dist/data/queries/databaseStatements.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.useDatabase=e.showDatabases=e.dropDatabase=e.createDatabase=void 0,Qe();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=yt(),o=cr(),i=vr(),a=St();var s=async e=>(await(0,a.readDatabaseList)()).includes(e)||r.isNode&&(0,a.databaseFolderExists)(e);e.createDatabase=async(e,t=!1)=>{(0,o.requireNode)('"create database"');const r=await(0,a.readDatabaseList)();if(r.includes(e)||(0,a.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,a.writeDatabaseList)([...r,e]),null}return await(0,a.writeDatabaseList)([...r,e]),await(0,a.makeDatabaseFolder)(e),e};e.dropDatabase=async(e,t=!1)=>{if((0,o.requireNode)('"drop database"'),!await s(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,a.writeDatabaseList)((await(0,a.readDatabaseList)()).filter((t=>t!==e))),await(0,a.removeDatabaseFolder)(e),e};e.useDatabase=async e=>{if(!r.isNode&&(0,i.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 s(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,a.readDatabaseList)()}}),br=d({"dist/data/utilities/joinKey.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinKey=e.isKeyedType=void 0,Qe();var t=Ct();e.joinKey=(e,r)=>{if(null!=r)return(0,t.compareAs)(e,r)};e.isKeyedType=e=>t.comparableTypes.includes(e)}}),jr=d({"dist/data/utilities/rowLookup.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.groupRows=e.firstPositions=e.RowLookups=void 0;var t=br(),r=(e,r,n)=>{const o=new Map;for(const i of e){const e=(0,t.joinKey)(n,i[r]);if(void 0===e)continue;const a=o.get(e);a?a.push(i):o.set(e,[i])}return o};e.groupRows=r;var n=(e,r,n)=>{const o=new Map;return e.forEach(((e,i)=>{const a=(0,t.joinKey)(n,e[r]);void 0===a||o.has(a)||o.set(a,i)})),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)}}}}),_r=d({"dist/data/utilities/semiJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.semiJoin=void 0;var t=Bt(),r=br(),n=jr();e.semiJoin=(e,o,i,a,s,l)=>{if("="===s&&(0,r.isKeyedType)(l)){if(o.lookups&&e.rows.length<o.rows.length){const t=o.lookups.positionsBy(a,l),n=[];return e.rows.forEach(((e,o)=>{const a=t.get((0,r.joinKey)(l,e[i]));void 0!==a&&n.push({row:e,position:a,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(i,l):(0,n.groupRows)(e.rows,i,l),s=[],c=new Set;for(const e of o.rows){const n=(0,r.joinKey)(l,e[a]);if(void 0===n||c.has(n))continue;c.add(n);const o=t.get(n);o&&s.push(...o)}return s}const c=[],d=new Set;for(const r of o.rows)for(const n of(0,t.where)(e.rows,{property:i,comparator:s,value:r[a],type:l}))d.has(n)||(d.add(n),c.push(n));return c}}}),$r=d({"dist/data/utilities/retrieveIndexes.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveIndexes=void 0;var t=Mt(),r=Rt(),n=Vt();e.retrieveIndexes=async(e="",o=[],i={})=>{Object.prototype.hasOwnProperty.call(i,e)||(i[e]=await(0,r.retrieveRecord)(e));const a={};for(const r of o)for(const o of i[e].keys)(0,n.isSingleFieldKey)(o,r)&&(a[r]=(i[e].entries||[]).length?await(0,t.retrieveFile)(`__indexes/${e}/${o.lookup}`):[]);return a}}}),Or=d({"dist/data/utilities/joinBases.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinBases=void 0;var t=tr(),r=Rt(),n=Lt(),o=$r(),i=br(),a=jr(),s=async(e,t,a,s,l)=>{const c=(await(0,o.retrieveIndexes)(e,[t],{}))[t];if(!c)return;const d=new Set(s.map((e=>(0,i.joinKey)(a,e[l]))).filter((e=>void 0!==e))),u=new Set;for(const e of c)d.has((0,i.joinKey)(a,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,l)=>{const c=new Map,d=(e,t)=>c.set(e,{rows:t,lookups:new a.RowLookups(t)});d(e,n[e]),l&&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:a}of t){if(c.has(r))continue;d(r,("="===e.comparator&&e.typeA===e.typeB&&(0,i.isKeyedType)(e.typeA)&&c.has(o)?await s(r,n,e.typeA,c.get(o).rows,a):void 0)??await u(r))}}return c.has(r)||d(r,await u(r)),c}}}),kr=d({"dist/data/queries/joinEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinEntity=void 0;var t=tr(),r=Rt(),n=zt(),o=Nt(),i=_r(),a=Or();e.joinEntity=async(e,s,l={},c=[],d=!1,u=!1)=>{if(d||(l=await(0,t.readEntity)(e,l)),!c.length)return l;const f=await(async e=>{const t=[];for(const{propertyA:i,comparator:a,propertyB:s}of e){const{entity:e,property:l}=(0,n.splitEntityProperty)(i),{entity:c,property:d}=(0,n.splitEntityProperty)(s);t.push({entityA:e,propertyA:l,typeA:(0,o.fieldType)(await(0,r.retrieveRecord)(e),l),comparator:a,entityB:c,propertyB:d,typeB:(0,o.fieldType)(await(0,r.retrieveRecord)(c),d)})}return t})(c);if(!l[e].length)return l;const p=await(0,a.joinBases)(e,s,l,f,u);for(const t of l[e]){const r=new Map(p);r.set(e,{rows:[t]});for(const e of f)r.set(e.entityA,{rows:(0,i.semiJoin)(r.get(e.entityA),r.get(e.entityB),e.propertyA,e.propertyB,e.comparator,e.typeA)}),r.set(e.entityB,{rows:(0,i.semiJoin)(r.get(e.entityB),r.get(e.entityA),e.propertyB,e.propertyA,e.comparator,e.typeB)});t[s]=r.get(s).rows.map((e=>structuredClone(e)))}return l}}}),Er=d({"dist/data/utilities/mergeJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.mergeJoin=void 0;var t=tr(),r=zt(),n=Bt(),o=Rt(),i=Nt();e.mergeJoin=async(e="",a="",s={})=>{const{entity:l,property:c}=(0,r.splitEntityProperty)(e),{entity:d,property:u}=(0,r.splitEntityProperty)(a);s=await(0,t.readEntity)(l,s),s=await(0,t.readEntity)(d,s);const f=(0,i.fieldType)(await(0,o.retrieveRecord)(d),u);return s[l]=s[l].map((e=>{const t=(0,n.where)(s[d],{property:u,comparator:"=",value:e[c],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})),s}}}),xr=d({"dist/data/utilities/reconcileJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.reconcileJoin=void 0,Le();e.reconcileJoin=(e,t,r,n,o)=>{const i=e[t][r];return Object.prototype.hasOwnProperty.call(i,n)&&Array.isArray(i[n])&&Array.isArray(e[n])&&i[n].forEach(((i,a)=>{if(!i||!Object.prototype.hasOwnProperty.call(i,o))return;const s=Object.keys(i),l=e[n].find((e=>s.every((t=>{return r=e[t],n=i[t],r===n||JSON.stringify(r)===JSON.stringify(n);var r,n}))));l&&(e[t][r][n][a]=l)})),e}}}),Pr=d({"dist/data/utilities/reconcileJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.reconcileJoins=void 0;var t=zt(),r=xr();e.reconcileJoins=(e,n,o)=>{const{entity:i,property:a}=(0,t.splitEntityProperty)(e),{entity:s,property:l}=(0,t.splitEntityProperty)(n);for(const e in o)for(const t in o[e])o=(0,r.reconcileJoin)(o,e,t,i,a),o=(0,r.reconcileJoin)(o,e,t,s,l);return o}}}),Sr=d({"dist/data/queries/mergeJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.mergeJoins=void 0;var t=Er(),r=Pr();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}}}),Mr=d({"dist/data/queries/sortBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.sortBy=void 0;var t=Ct(),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 i of n){const n=i.property,a=i.direction,s=r(e,n),l=r(o,n);if(s!==l)return"asc"===a?s-l:l-s;const c=(0,t.compareAs)(i.type,e[n]),d=(0,t.compareAs)(i.type,o[n]);if(c==d)continue;const u=c<d?-1:1;return"asc"===a?u:-1*u}return 0})),e):e}}),Dr=d({"dist/data/queries/groupBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.groupBy=void 0,Le();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,...i]=t,a=new Map;for(const t of e){const e=r(t,o);a.has(e)||a.set(e,"missing"===e?{field:o,missing:!0,rows:[]}:{field:o,value:t[o],rows:[]}),a.get(e).rows.push(t)}return[...a.values()].map((({rows:e,...t})=>i.length?{...t,groups:n(e,i)}:{...t,rows:e}))};e.groupBy=n}}),Rr=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)}}}),Cr=d({"dist/data/queries/selectFields.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.selectFields=void 0;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,i)=>n.length?o?e.map((e=>r(e,n,i))):e.map((e=>t(e,n,i))):e}}),Fr=d({"dist/data/utilities/getConditionIndexedList.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.getConditionIndexedList=void 0;var t=Yt(),r=zt(),n=Rt(),o=Bt(),i=Lt(),a=Mt(),s=$r(),l=Vt(),c=Ge(),d=(e,n)=>(0,t.isEntityProperty)(e.property)?(0,r.splitEntityProperty)(e.property):{entity:n,property:e.property},u=async(e,t,r,i,a)=>{if(Object.prototype.hasOwnProperty.call(i,e)||(i[e]=await(0,n.retrieveRecord)(e)),i[e].keys.some((e=>(0,l.isSingleFieldKey)(e,t))))return a[e]=a[e]||{},Object.prototype.hasOwnProperty.call(a[e],t)||(a[e][t]=(await(0,s.retrieveIndexes)(e,[t],i))[t]),new Set((0,o.where)(a[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,c.isCondition)(e)){const{entity:o,property:i}=d(e,t);return o===t?await u(o,i,e,r,n):void 0}if("not"in e)return;if("or"in e){const o=new Set;for(const i of e.or){const e=await f(i,t,r,n);if(void 0===e)return;e.forEach((e=>o.add(e)))}return o}let o;for(const i of e.and){const e=await f(i,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 s={},l={};if(void 0!==e.where){const r=await f(e.where,e.entity,t,l);void 0!==r&&(s[e.entity]=r)}for(const r of(0,c.requiredConditions)(e.where)){const{entity:n,property:o}=d(r,e.entity);if(n===e.entity)continue;const i=await u(n,o,r,t,l);void 0!==i&&(s[n]=Object.prototype.hasOwnProperty.call(s,n)?new Set([...s[n]].filter((e=>i.has(e)))):i)}for(const e of Object.keys(s)){o.add(e);const l=t[e]||await(0,n.retrieveRecord)(e);r[e]=await(0,i.retrieveEntryRows)(l,[...s[e]],a.retrieveFile)}return e}}}),Ar=d({"dist/data/utilities/conditionEntities.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.conditionEntities=void 0;var t=Yt(),r=zt(),n=Ge();e.conditionEntities=e=>{const o=e.entity,i=e.joinClauses.length?e.joinEntity:void 0,a=new Set([o,i]),s=new Set(e.mergeJoins.filter((e=>a.has((0,r.splitEntityProperty)(e.propertyA).entity))).map((e=>(0,r.splitEntityProperty)(e.propertyB).entity))),l=new Set(e.joinClauses.flatMap((e=>[e.propertyA,e.propertyB].map((e=>(0,r.splitEntityProperty)(e).entity)))).filter((e=>!a.has(e)&&!s.has(e)))),c="update"===e.command||"delete"===e.command;let d=!1;for(const a of(0,n.conditionsOf)(e.where)){if(!(0,t.isEntityProperty)(a.property))continue;const{entity:n,property:u}=(0,r.splitEntityProperty)(a.property);if(n===o){a.property=u;continue}if(c)throw new Error(`${e.command} can only use conditions on ${o}'s own fields, not ${a.property}`);if(n===i){d=!0;continue}if(s.has(n))continue;if(l.has(n))throw new Error(`${n} only links ${o} to ${i}: a condition can't use its fields (${a.property})`);const f=[o,i,...s].filter((e=>void 0!==e)).join(", ");throw new Error(`${n} is not part of this query (${a.property}): conditions can use the fields of ${f}`)}return d}}}),Nr=d({"dist/data/utilities/runQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.runQuery=void 0,Qe();var t=Ut(),r=er(),n=tr(),o=nr(),i=ur(),a=yr(),s=hr(),l=mr(),c=gr(),d=wr(),u=kr(),f=Sr(),y=Bt(),h=Mr(),w=Dr(),m=Rr(),v=Cr(),g=Rt(),b=Fr(),j=Yt(),_=zt(),$=Nt(),O=Ge(),k=Ar(),E=cr(),x=Zt();e.runQuery=async e=>{const p=void 0!==e.where&&(0,k.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,i.createRecord)(e.entity,e.create)};case"drop":return{[e.entity]:await(0,a.dropRecord)(e.entity,e.ifExists)};case"describe":return{[e.entity]:await(0,s.describeRecord)(e.entity)};case"alter":return{[e.entity]:await(0,l.alter)(e.entity,e.alter)};case"create database":return{[e.entity]:await(0,c.createDatabase)(e.entity,e.ifNotExists)};case"drop database":return{[e.entity]:await(0,c.dropDatabase)(e.entity,e.ifExists)};case"use":return{[e.entity]:await(0,c.useDatabase)(e.entity)};case"show databases":return{[e.entity]:await(0,c.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,x.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,j.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,$.fieldType)(t[n],o)}})(e,P);let S={[e.entity]:[]};const M=new Set;e=await(0,b.getConditionIndexedList)(e,P,S,M);const D=M.has(e.entity);switch("delete"!==e.command&&"update"!==e.command||(D||(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":D||(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,D,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,w.groupBy)(S[e.entity],e.groupBy),S[e.entity]=(0,m.limitOffset)(S[e.entity],e.offset,e.limit),S[e.entity]=(0,v.selectFields)(S[e.entity],e.selectClauses,Boolean(e.groupBy?.length),e.entity),S}}}),Jr=d({"dist/data/queries/query.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.query=void 0;var t=ut(),r=Nr(),n=vr(),o=St();e.query=async(e="")=>{const i=(0,t.parser)(e);return(0,n.withDatabaseLock)((async()=>{const e=[];for(const t of i){const n=await(0,o.withWriteSet)((()=>(0,r.runQuery)(t)));e.push(n[t.entity])}return e}))}}}),Tr=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}`}}),qr=d({"dist/data/queries/queryStatus.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.queryStatus=void 0;var t=y();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]}}}}),Lr=d({"dist/data/introspect/formatDatabase.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.formatDatabase=void 0;var t=St(),r=yt(),n=cr();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"))),i=[];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&&i.push({path:r,content:o})}for(const{path:r,content:n}of i)await(0,t.writeJson)(r,n,e);return{files:o.length,rewritten:i.length}}}}),Br=d({"dist/data/introspect/packDatabase.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.packDatabase=e.checkPacked=void 0,Le();var t=St(),r=Rt(),n=Tt(),o=Lt(),i=qt(),a=wr(),s=cr(),l=async e=>{const a=await(0,r.retrieveRecord)(e),s=a.entries||[],l=await(0,n.retrieveFiles)(s.map((e=>`${a.path}/${e}`)),o.retrieveEntry),c={entries:s,rows:l};return{path:(0,i.packedPath)(a.path),text:(0,t.jsonText)(c,"compact"),rows:s.length}},c=async e=>{const r=new Set(e.map((e=>(0,i.packedPath)(e))));return(await(0,t.listFiles)("__packed")).filter((e=>!r.has(e)))};e.packDatabase=async()=>{(0,s.requireNode)("packDatabase");const e=await(0,a.showRecords)();let r=0;for(const n of e){const e=await l(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 c(e))await(0,t.removeFile)(r);return{records:e.length,rows:r}};e.checkPacked=async()=>{(0,s.requireNode)("checkPacked");const e=await(0,a.showRecords)(),r=[];for(const n of e){const e=await l(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 c(e)}}}}),zr=d({"dist/data/introspect/index.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.packDatabase=e.formatDatabase=e.drop=e.describe=e.create=e.checkPacked=e.alter=void 0;var t=dr(),r=pr(),n=Jt(),o=Lr(),i=mr(),a=Br(),s=vr(),l=St();e.create=(...e)=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,t.create)(...e)))));e.drop=(...e)=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,r.drop)(...e)))));e.alter=(...e)=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,i.alter)(...e)))));e.describe=(...e)=>(0,s.withDatabaseLock)((()=>(0,n.describe)(...e)));e.formatDatabase=(...e)=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,o.formatDatabase)(...e)))));e.packDatabase=()=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,a.packDatabase)()))));e.checkPacked=()=>(0,s.withDatabaseLock)((()=>(0,a.checkPacked)()))}});return d({"dist/index.js"(e){p(),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 i.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=Jr(),r=Tr(),n=qr(),o=zr(),i=yt()}})()})();"object"==typeof module&&module&&module.exports&&(module.exports=jsonFsQuery);
|
|
1
|
+
"use strict";var jsonFsQuery=(()=>{var e,t,r,n,o=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,s=Object.getOwnPropertyNames,l=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,d=(e,t)=>function(){try{return t||(0,e[s(e)[0]])((t={exports:{}}).exports,t),t.exports}catch(e){throw t=0,e}},u=(e,t,r)=>(r=null!=e?o(l(e)):{},((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let o of s(t))c.call(e,o)||o===r||i(e,o,{get:()=>t[o],enumerable:!(n=a(t,o))||n.enumerable});return e})(!t&&e&&e.__esModule?r:i(r,"default",{value:e,enumerable:!0}),e)),f=d({"node_modules/process/browser.js"(e,t){p();var r,n,o=t.exports={};function i(){throw new Error("setTimeout has not been defined")}function a(){throw new Error("clearTimeout has not been defined")}function s(e){if(r===setTimeout)return setTimeout(e,0);if((r===i||!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:i}catch(e){r=i}try{n="function"==typeof clearTimeout?clearTimeout:a}catch(e){n=a}}();var l,c=[],d=!1,u=-1;function f(){d&&l&&(d=!1,l.length?c=l.concat(c):u=-1,c.length&&y())}function y(){if(!d){var e=s(f);d=!0;for(var t=c.length;t;){for(l=c,c=[];++u<t;)l&&l[u].run();u=-1,t=c.length}l=null,d=!1,function(e){if(n===clearTimeout)return clearTimeout(e);if((n===a||!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 w(){}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];c.push(new h(e,t)),1!==c.length||d||s(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=w,o.addListener=w,o.once=w,o.off=w,o.removeListener=w,o.removeAllListeners=w,o.emit=w,o.prependListener=w,o.prependOnceListener=w,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[s(t)[0]])(t=0)),r}catch(e){throw n=[e],e}}),y=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=[],i=[],a=[];let s,l,c=!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?a.push(p):r[p]?a[a.length-1]===r[p]?a.pop():s||(s={char:p,index:f}):";"===p&&0===a.length&&i.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){c=!0,f++;break}o+=t[e[f+1]]??e[f+1],f+=2}f<e.length?f++:l=p,n.push({start:r,end:f,quote:p,value:o}),u=r}}const p={quote:l,escape:c,blockComment:d,brackets:a,strayCloser:s},y=!p.quote&&!p.blockComment&&0===a.length;return{strings:n,comments:o,semicolons:i,end:p,closed:y,terminated:y&&i.length>0&&i[i.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}}}),h=d({"dist/data/utilities/parsers/splitQueries.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.splitQueries=void 0;var t=y();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))}}}),w=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}}}),m=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")()}}),v=d({"node_modules/core-js/internals/fails.js"(e,t){p(),t.exports=function(e){try{return!!e()}catch(e){return!0}}}}),g=d({"node_modules/core-js/internals/descriptors.js"(e,t){p();var r=v();t.exports=!r((function(){return 7!==Object.defineProperty({},1,{get:function(){return 7}})[1]}))}}),b=d({"node_modules/core-js/internals/function-bind-native.js"(e,t){p();var r=v();t.exports=!r((function(){var e=function(){}.bind();return"function"!=typeof e||e.hasOwnProperty("prototype")}))}}),j=d({"node_modules/core-js/internals/function-call.js"(e,t){p();var r=b(),n=Function.prototype.call;t.exports=r?n.bind(n):function(){return n.apply(n,arguments)}}}),_=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}}),$=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}}}}),O=d({"node_modules/core-js/internals/function-uncurry-this.js"(e,t){p();var r=b(),n=Function.prototype,o=n.call,i=r&&n.bind.bind(o,o);t.exports=r?i:function(e){return function(){return o.apply(e,arguments)}}}}),k=d({"node_modules/core-js/internals/classof-raw.js"(e,t){p();var r=O(),n=r({}.toString),o=r("".slice);t.exports=function(e){return o(n(e),8,-1)}}}),E=d({"node_modules/core-js/internals/indexed-object.js"(e,t){p();var r=O(),n=v(),o=k(),i=Object,a=r("".split);t.exports=n((function(){return!i("z").propertyIsEnumerable(0)}))?function(e){return"String"===o(e)?a(e,""):i(e)}:i}}),P=d({"node_modules/core-js/internals/is-null-or-undefined.js"(e,t){p(),t.exports=function(e){return null==e}}}),x=d({"node_modules/core-js/internals/require-object-coercible.js"(e,t){p();var r=P(),n=TypeError;t.exports=function(e){if(r(e))throw new n("Can't call method on "+e);return e}}}),S=d({"node_modules/core-js/internals/to-indexed-object.js"(e,t){p();var r=E(),n=x();t.exports=function(e){return r(n(e))}}}),M=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}}}),D=d({"node_modules/core-js/internals/is-object.js"(e,t){p();var r=M();t.exports=function(e){return"object"==typeof e?null!==e:r(e)}}}),R=d({"node_modules/core-js/internals/get-built-in.js"(e,t){p();var r=m(),n=M();t.exports=function(e,t){return arguments.length<2?(o=r[e],n(o)?o:void 0):r[e]&&r[e][t];var o}}}),C=d({"node_modules/core-js/internals/object-is-prototype-of.js"(e,t){p();var r=O();t.exports=r({}.isPrototypeOf)}}),F=d({"node_modules/core-js/internals/environment-user-agent.js"(e,t){p();var r=m().navigator,n=r&&r.userAgent;t.exports=n?String(n):""}}),A=d({"node_modules/core-js/internals/environment-v8-version.js"(e,t){p();var r,n,o=m(),i=F(),a=o.process,s=o.Deno,l=a&&a.versions||s&&s.version,c=l&&l.v8;c&&(n=(r=c.split("."))[0]>0&&r[0]<4?1:+(r[0]+r[1])),!n&&i&&(!(r=i.match(/Edge\/(\d+)/))||r[1]>=74)&&(r=i.match(/Chrome\/(\d+)/))&&(n=+r[1]),t.exports=n}}),N=d({"node_modules/core-js/internals/symbol-constructor-detection.js"(e,t){p();var r=A(),n=v(),o=m().String;t.exports=!!Object.getOwnPropertySymbols&&!n((function(){var e=Symbol("symbol detection");return!o(e)||!(Object(e)instanceof Symbol)||!Symbol.sham&&r&&r<41}))}}),J=d({"node_modules/core-js/internals/use-symbol-as-uid.js"(e,t){p();var r=N();t.exports=r&&!Symbol.sham&&"symbol"==typeof Symbol.iterator}}),T=d({"node_modules/core-js/internals/is-symbol.js"(e,t){p();var r=R(),n=M(),o=C(),i=J(),a=Object;t.exports=i?function(e){return"symbol"==typeof e}:function(e){var t=r("Symbol");return n(t)&&o(t.prototype,a(e))}}}),L=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"}}}}),q=d({"node_modules/core-js/internals/a-callable.js"(e,t){p();var r=M(),n=L(),o=TypeError;t.exports=function(e){if(r(e))return e;throw new o(n(e)+" is not a function")}}}),V=d({"node_modules/core-js/internals/get-method.js"(e,t){p();var r=q(),n=P();t.exports=function(e,t){var o=e[t];return n(o)?void 0:r(o)}}}),z=d({"node_modules/core-js/internals/ordinary-to-primitive.js"(e,t){p();var r=j(),n=M(),o=D(),i=TypeError;t.exports=function(e,t){var a,s;if("string"===t&&n(a=e.toString)&&!o(s=r(a,e)))return s;if(n(a=e.valueOf)&&!o(s=r(a,e)))return s;if("string"!==t&&n(a=e.toString)&&!o(s=r(a,e)))return s;throw new i("Can't convert object to primitive value")}}}),B=d({"node_modules/core-js/internals/is-pure.js"(e,t){p(),t.exports=!1}}),I=d({"node_modules/core-js/internals/define-global-property.js"(e,t){p();var r=m(),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}}}),W=d({"node_modules/core-js/internals/shared-store.js"(e,t){p();var r=B(),n=m(),o=I(),i="__core-js_shared__",a=t.exports=n[i]||o(i,{});(a.versions||(a.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"})}}),K=d({"node_modules/core-js/internals/shared.js"(e,t){p();var r=W(),n=Object.create||Object;t.exports=function(e,t){return r[e]||(r[e]=t||n(null))}}}),U=d({"node_modules/core-js/internals/to-object.js"(e,t){p();var r=x(),n=Object;t.exports=function(e){return n(r(e))}}}),Q=d({"node_modules/core-js/internals/has-own-property.js"(e,t){p();var r=O(),n=U(),o=r({}.hasOwnProperty);t.exports=Object.hasOwn||function(e,t){return o(n(e),t)}}}),G=d({"node_modules/core-js/internals/uid.js"(e,t){p();var r=O(),n=0,o=Math.random(),i=r(1.1.toString);t.exports=function(e){return"Symbol("+(void 0===e?"":e)+")_"+i(++n+o,36)}}}),H=d({"node_modules/core-js/internals/well-known-symbol.js"(e,t){p();var r=m(),n=K(),o=Q(),i=G(),a=N(),s=J(),l=r.Symbol,c=n("wks"),d=s?l.for||l:l&&l.withoutSetter||i;t.exports=function(e){return o(c,e)||(c[e]=a&&o(l,e)?l[e]:d("Symbol."+e)),c[e]}}}),X=d({"node_modules/core-js/internals/to-primitive.js"(e,t){p();var r=j(),n=D(),o=T(),i=V(),a=z(),s=H(),l=TypeError,c=s("toPrimitive");t.exports=function(e,t){if(!n(e)||o(e))return e;var s,d=i(e,c);if(d){if(void 0===t&&(t="default"),s=r(d,e,t),!n(s)||o(s))return s;throw new l("Can't convert object to primitive value")}return void 0===t&&(t="number"),a(e,t)}}}),Y=d({"node_modules/core-js/internals/to-property-key.js"(e,t){p();var r=X(),n=T();t.exports=function(e){var t=r(e,"string");return n(t)?t:t+""}}}),Z=d({"node_modules/core-js/internals/document-create-element.js"(e,t){p();var r=m(),n=D(),o=r.document,i=n(o)&&n(o.createElement);t.exports=function(e){return i?o.createElement(e):{}}}}),ee=d({"node_modules/core-js/internals/ie8-dom-define.js"(e,t){p();var r=g(),n=v(),o=Z();t.exports=!r&&!n((function(){return 7!==Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))}}),te=d({"node_modules/core-js/internals/object-get-own-property-descriptor.js"(e){p();var t=g(),r=j(),n=_(),o=$(),i=S(),a=Y(),s=Q(),l=ee(),c=Object.getOwnPropertyDescriptor;e.f=t?c:function(e,t){if(e=i(e),t=a(t),l)try{return c(e,t)}catch(e){}if(s(e,t))return o(!r(n.f,e,t),e[t])}}}),re=d({"node_modules/core-js/internals/v8-prototype-define-bug.js"(e,t){p();var r=g(),n=v();t.exports=r&&n((function(){return 42!==Object.defineProperty((function(){}),"prototype",{value:42,writable:!1}).prototype}))}}),ne=d({"node_modules/core-js/internals/an-object.js"(e,t){p();var r=D(),n=String,o=TypeError;t.exports=function(e){if(r(e))return e;throw new o(n(e)+" is not an object")}}}),oe=d({"node_modules/core-js/internals/object-define-property.js"(e){p();var t=g(),r=ee(),n=re(),o=ne(),i=Y(),a=TypeError,s=Object.defineProperty,l=Object.getOwnPropertyDescriptor,c="enumerable",d="configurable",u="writable";e.f=t?n?function(e,t,r){if(o(e),t=i(t),o(r),"function"==typeof e&&"prototype"===t&&"value"in r&&u in r&&!r[u]){var n=l(e,t);n&&n[u]&&(e[t]=r.value,r={configurable:d in r?r[d]:n[d],enumerable:c in r?r[c]:n[c],writable:!1})}return s(e,t,r)}:s:function(e,t,n){if(o(e),t=i(t),o(n),r)try{return s(e,t,n)}catch(e){}if("get"in n||"set"in n)throw new a("Accessors not supported");return"value"in n&&(e[t]=n.value),e}}}),ie=d({"node_modules/core-js/internals/create-non-enumerable-property.js"(e,t){p();var r=g(),n=oe(),o=$();t.exports=r?function(e,t,r){return n.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}}}),ae=d({"node_modules/core-js/internals/function-name.js"(e,t){p();var r=g(),n=Q(),o=Function.prototype,i=r&&Object.getOwnPropertyDescriptor,a=n(o,"name"),s=a&&"something"===function(){}.name,l=a&&(!r||r&&i(o,"name").configurable);t.exports={EXISTS:a,PROPER:s,CONFIGURABLE:l}}}),se=d({"node_modules/core-js/internals/inspect-source.js"(e,t){p();var r=O(),n=M(),o=W(),i=r(Function.toString);n(o.inspectSource)||(o.inspectSource=function(e){return i(e)}),t.exports=o.inspectSource}}),le=d({"node_modules/core-js/internals/weak-map-basic-detection.js"(e,t){p();var r=m(),n=M(),o=r.WeakMap;t.exports=n(o)&&/native code/.test(String(o))}}),ce=d({"node_modules/core-js/internals/shared-key.js"(e,t){p();var r=K(),n=G(),o=r("keys");t.exports=function(e){return o[e]||(o[e]=n(e))}}}),de=d({"node_modules/core-js/internals/hidden-keys.js"(e,t){p(),t.exports={}}}),ue=d({"node_modules/core-js/internals/internal-state.js"(e,t){p();var r,n,o,i,a,s=le(),l=m(),c=D(),d=ie(),u=Q(),f=W(),y=ce(),h=de(),w="Object already initialized",v=l.TypeError,g=l.WeakMap;s||f.state?((i=f.state||(f.state=new g)).get=i.get,i.has=i.has,i.set=i.set,r=function(e,t){if(i.has(e))throw new v(w);return t.facade=e,i.set(e,t),t},n=function(e){return i.get(e)||{}},o=function(e){return i.has(e)}):(h[a=y("state")]=!0,r=function(e,t){if(u(e,a))throw new v(w);return t.facade=e,d(e,a,t),t},n=function(e){return u(e,a)?e[a]:{}},o=function(e){return u(e,a)}),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(!c(t)||(r=n(t)).type!==e)throw new v("Incompatible receiver, "+e+" required");return r}}}}}),fe=d({"node_modules/core-js/internals/make-built-in.js"(e,t){p();var r=O(),n=v(),o=M(),i=Q(),a=g(),s=ae().CONFIGURABLE,l=se(),c=ue(),d=c.enforce,u=c.get,f=String,y=Object.defineProperty,h=r("".slice),w=r("".replace),m=r([].join),b=a&&!n((function(){return 8!==y((function(){}),"length",{value:8}).length})),j=String(String).split("String"),_=t.exports=function(e,t,r){"Symbol("===h(f(t),0,7)&&(t="["+w(f(t),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),r&&r.getter&&(t="get "+t),r&&r.setter&&(t="set "+t),(!i(e,"name")||s&&e.name!==t)&&(a?y(e,"name",{value:t,configurable:!0}):e.name=t),b&&r&&i(r,"arity")&&e.length!==r.arity&&y(e,"length",{value:r.arity});try{r&&i(r,"constructor")&&r.constructor?a&&y(e,"prototype",{writable:!1}):e.prototype&&(e.prototype=void 0)}catch(e){}var n=d(e);return i(n,"source")||(n.source=m(j,"string"==typeof t?t:"")),e};Function.prototype.toString=_((function(){return o(this)&&u(this).source||l(this)}),"toString")}}),pe=d({"node_modules/core-js/internals/define-built-in.js"(e,t){p();var r=M(),n=oe(),o=fe(),i=I();t.exports=function(e,t,a,s){s||(s={});var l=s.enumerable,c=void 0!==s.name?s.name:t;if(r(a)&&o(a,c,s),s.global)l?e[t]=a:i(t,a);else{try{s.unsafe?e[t]&&(l=!0):delete e[t]}catch(e){}l?e[t]=a:n.f(e,t,{value:a,enumerable:!1,configurable:!s.nonConfigurable,writable:!s.nonWritable})}return e}}}),ye=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)}}}),he=d({"node_modules/core-js/internals/to-integer-or-infinity.js"(e,t){p();var r=ye();t.exports=function(e){var t=+e;return t!=t||0===t?0:r(t)}}}),we=d({"node_modules/core-js/internals/to-absolute-index.js"(e,t){p();var r=he(),n=Math.max,o=Math.min;t.exports=function(e,t){var i=r(e);return i<0?n(i+t,0):o(i,t)}}}),me=d({"node_modules/core-js/internals/to-length.js"(e,t){p();var r=he(),n=Math.min;t.exports=function(e){var t=r(e);return t>0?n(t,9007199254740991):0}}}),ve=d({"node_modules/core-js/internals/length-of-array-like.js"(e,t){p();var r=me();t.exports=function(e){return r(e.length)}}}),ge=d({"node_modules/core-js/internals/array-includes.js"(e,t){p();var r=S(),n=we(),o=ve(),i=function(e){return function(t,i,a){var s=r(t),l=o(s);if(0===l)return!e&&-1;var c,d=n(a,l);if(e&&i!=i){for(;l>d;)if((c=s[d++])!=c)return!0}else for(;l>d;d++)if((e||d in s)&&s[d]===i)return e||d||0;return!e&&-1}};t.exports={includes:i(!0),indexOf:i(!1)}}}),be=d({"node_modules/core-js/internals/object-keys-internal.js"(e,t){p();var r=O(),n=Q(),o=S(),i=ge().indexOf,a=de(),s=r([].push);t.exports=function(e,t){var r,l=o(e),c=0,d=[];for(r in l)!n(a,r)&&n(l,r)&&s(d,r);for(;t.length>c;)n(l,r=t[c++])&&(~i(d,r)||s(d,r));return d}}}),je=d({"node_modules/core-js/internals/enum-bug-keys.js"(e,t){p(),t.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]}}),_e=d({"node_modules/core-js/internals/object-get-own-property-names.js"(e){p();var t=be(),r=je().concat("length","prototype");e.f=Object.getOwnPropertyNames||function(e){return t(e,r)}}}),$e=d({"node_modules/core-js/internals/object-get-own-property-symbols.js"(e){p(),e.f=Object.getOwnPropertySymbols}}),Oe=d({"node_modules/core-js/internals/own-keys.js"(e,t){p();var r=R(),n=O(),o=_e(),i=$e(),a=ne(),s=n([].concat);t.exports=r("Reflect","ownKeys")||function(e){var t=o.f(a(e)),r=i.f;return r?s(t,r(e)):t}}}),ke=d({"node_modules/core-js/internals/copy-constructor-properties.js"(e,t){p();var r=Q(),n=Oe(),o=te(),i=oe();t.exports=function(e,t,a){for(var s=n(t),l=i.f,c=o.f,d=0;d<s.length;d++){var u=s[d];r(e,u)||a&&r(a,u)||l(e,u,c(t,u))}}}}),Ee=d({"node_modules/core-js/internals/is-forced.js"(e,t){p();var r=v(),n=M(),o=/#|\.prototype\./,i=function(e,t){var o=s[a(e)];return o===c||o!==l&&(n(t)?r(t):!!t)},a=i.normalize=function(e){return String(e).replace(o,".").toLowerCase()},s=i.data={},l=i.NATIVE="N",c=i.POLYFILL="P";t.exports=i}}),Pe=d({"node_modules/core-js/internals/export.js"(e,t){p();var r=m(),n=te().f,o=ie(),i=pe(),a=I(),s=ke(),l=Ee();t.exports=function(e,t){var c,d,u,f,p,y=e.target,h=e.global,w=e.stat;if(c=h?r:w?r[y]||a(y,{}):r[y]&&r[y].prototype)for(d in t){if(f=t[d],u=e.dontCallGetSet?(p=n(c,d))&&p.value:c[d],!l(h?d:y+(w?".":"#")+d,e.forced)&&void 0!==u){if(typeof f==typeof u)continue;s(f,u)}(e.sham||u&&u.sham)&&o(f,"sham",!0),i(c,d,f,e)}}}}),xe=d({"node_modules/core-js/internals/is-array.js"(e,t){p();var r=k();t.exports=Array.isArray||function(e){return"Array"===r(e)}}}),Se=d({"node_modules/core-js/internals/object-keys.js"(e,t){p();var r=be(),n=je();t.exports=Object.keys||function(e){return r(e,n)}}}),Me=d({"node_modules/core-js/internals/object-define-properties.js"(e){p();var t=g(),r=re(),n=oe(),o=ne(),i=S(),a=Se();e.f=t&&!r?Object.defineProperties:function(e,t){o(e);for(var r,s=i(t),l=a(t),c=l.length,d=0;c>d;)n.f(e,r=l[d++],s[r]);return e}}}),De=d({"node_modules/core-js/internals/html.js"(e,t){p();var r=R();t.exports=r("document","documentElement")}}),Re=d({"node_modules/core-js/internals/object-create.js"(e,t){p();var r,n=ne(),o=Me(),i=je(),a=de(),s=De(),l=Z(),c=ce(),d="prototype",u="script",f=c("IE_PROTO"),y=function(){},h=function(e){return"<"+u+">"+e+"</"+u+">"},w=function(e){e.write(h("")),e.close();var t=e.parentWindow.Object;return e=null,t},m=function(){try{r=new ActiveXObject("htmlfile")}catch(e){}var e,t,n;m="undefined"!=typeof document?document.domain&&r?w(r):(t=l("iframe"),n="java"+u+":",t.style.display="none",s.appendChild(t),t.src=String(n),(e=t.contentWindow.document).open(),e.write(h("document.F=Object")),e.close(),e.F):w(r);for(var o=i.length;o--;)delete m[d][i[o]];return m()};a[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=m(),void 0===t?r:o.f(r,t)}}}),Ce=d({"node_modules/core-js/internals/is-raw-json.js"(e,t){p();var r=D(),n=ue().get;t.exports=function(e){if(!r(e))return!1;var t=n(e);return!!t&&"RawJSON"===t.type}}}),Fe=d({"node_modules/core-js/internals/this-number-value.js"(e,t){p();var r=O();t.exports=r(1.1.valueOf)}}),Ae=d({"node_modules/core-js/internals/to-string-tag-support.js"(e,t){p();var r={};r[H()("toStringTag")]="z",t.exports="[object z]"===String(r)}}),Ne=d({"node_modules/core-js/internals/classof.js"(e,t){p();var r=Ae(),n=M(),o=k(),i=H()("toStringTag"),a=Object,s="Arguments"===o(function(){return arguments}());t.exports=r?o:function(e){var t,r,l;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=a(e),i))?r:s?o(t):"Object"===(l=o(t))&&n(t.callee)?"Arguments":l}}}),Je=d({"node_modules/core-js/internals/to-string.js"(e,t){p();var r=Ne(),n=String;t.exports=function(e){if("Symbol"===r(e))throw new TypeError("Cannot convert a Symbol value to a string");return n(e)}}}),Te=d({"node_modules/core-js/internals/parse-json-string.js"(e,t){p();var r=O(),n=Q(),o=SyntaxError,i=parseInt,a=String.fromCharCode,s=r("".charAt),l=r("".slice),c=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=s(e,t);if("\\"===y){var h=l(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 w=l(e,t+=2,t+4);if(!c(u,w))throw new o("Bad Unicode escape at: "+t);p+=a(i(w,16)),t+=4}}else{if('"'===y){r=!1,t++;break}if(c(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}}}}),Le=d({"node_modules/core-js/internals/native-raw-json.js"(e,t){p();var r=v();t.exports=!r((function(){var e="9007199254740993",t=JSON.rawJSON(e);return!JSON.isRawJSON(t)||JSON.stringify(t)!==e}))}}),qe=d({"node_modules/core-js/modules/es.json.stringify.js"(){p();var e=Pe(),t=R(),r=j(),n=O(),o=v(),i=xe(),a=M(),s=D(),l=Re(),c=Ce(),d=T(),u=k(),f=Fe(),y=ge().includes,h=Q(),w=Je(),m=Te(),g=G(),b=N(),_=Le(),$=String,E=TypeError,P=t("JSON","stringify"),x=t("BigInt"),S=n("".valueOf),C=n((!0).valueOf),F=x&&n(x.prototype.valueOf),A=n(/./.exec),J=n("".charAt),L=n("".charCodeAt),q=n("".replace),V=n("".slice),z=n([].push),B=n([].pop),I=n(1.1.toString),W=/[\uD800-\uDFFF]/g,K=/^[\uD800-\uDBFF]$/,U=/^[\uDC00-\uDFFF]$/,H=/^\d+$/,X=g(),Y=g(),Z=g(),ee=X.length,te=Y.length,re=!b||o((function(){var e=t("Symbol")("stringify detection");return"[null]"!==P([e])||"{}"!==P({a:e})||"{}"!==P(Object(e))})),ne=o((function(){return'"\\udf06\\ud834"'!==P("\udf06\ud834")||'"\\udead"'!==P("\udead")})),oe=_?t("JSON","isRawJSON"):c,ie=re?function(e,t,n){return P(e,(function(e,n){var o=r(t,this,e,n);if(!d(o))return o}),n)}:P,ae=function(e,t,r){var n=J(r,t-1),o=J(r,t+1);return A(K,e)&&!A(U,o)||A(U,e)&&!A(K,n)?"\\u"+I(L(e,0),16):e},se=function(e,t){try{return e(t),!0}catch(e){return!1}},le=function(e){if(!s(e)||a(e)||i(e))return!1;try{return!function(e){var t=u(e);return"Number"===t&&se(f,e)||"String"===t&&se(S,e)||"Boolean"===t&&se(C,e)||!!F&&"BigInt"===t&&se(F,e)}(e)}catch(e){return!0}},ce=function(e,t){return{toJSON:function(){var n=e[t];if(s(n)||"bigint"==typeof n){var o=n.toJSON;a(o)&&(n=r(o,n,t))}return n}}};P&&e({target:"JSON",stat:!0,arity:3,forced:re||ne||!_},{stringify:function(e,t,n){var o,s=a(t)?t:void 0,c=s?void 0:function(e){if(i(e)){for(var t=e.length,r=[],n=l(null),o=0;o<t;o++){var a,s=e[o];if("string"==typeof s)a=s;else{if("number"!=typeof s&&"Number"!==u(s)&&"String"!==u(s))continue;a=w(s)}h(n,a)||(n[a]=!0,z(r,a))}return r}}(t),d=c&&function(e){for(var t=0,r=e.length;t<r;t++)if(A(H,e[t]))return Y;return""}(c),f=[],p=[],v=[],g=!1,b=!0,j=ie(e,(function(e,t){if(e=$(e),c){if(e===Z)return B(p),void(o=B(v));if(b)b=!1;else if(this!==o&&!i(this)&&!y(c,e))return}else s&&(t=r(s,this,e,t));if(oe(t))return _?t:(g=!0,X+(z(f,t.rawJSON)-1));if(c&&le(t)){if(y(p,t))throw new E("Converting circular structure to JSON");var n=function(e,t,r){for(var n=l(null),o=0,i=t.length;o<i;o++){var a=t[o];n[r+a]=ce(e,a)}return n[Z]=null,n}(t,c,d);return z(p,t),z(v,o),o=n,d&&(g=!0),n}return t}),n);if("string"!=typeof j)return j;if(ne&&(j=q(j,W,ae)),!g)return j;for(var O="",k=j.length,P=0;P<k;P++){var x=J(j,P);if('"'===x){var S=m(j,++P).end-1,M=V(j,P,S);V(M,0,ee)===X?O+=f[V(M,ee)]:V(M,0,te)===Y?O+='"'+V(M,te)+'"':O+='"'+M+'"',P=S}else O+=x}return O}})}}),Ve=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,qe();var t=y(),r=e.placeholderSource="\\u0000([0-9a-f]*)\\u0000",n=new RegExp(r,"g"),o=e.arraySource="\\u0001([0-9a-f]*)\\u0001",i=new RegExp(o,"g"),a=e=>e.split("").map((e=>e.charCodeAt(0).toString(16).padStart(4,"0"))).join(""),s=e=>(e.match(/.{4}/g)||[]).map((e=>String.fromCharCode(parseInt(e,16)))).join("");e.fromPlaceholder=s;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:i,value:s}of r)n.push(e.slice(o,t),`\0${a(s)}\0`),o=i;return n.push(e.slice(o)),n.join("")};var l=(e,t="json")=>e.replace(n,((e,r)=>{const n=s(r);return"json"===t?JSON.stringify(n):`'${n.replace(/\\/g,"\\\\").replace(/'/g,"\\'")}'`})).replace(i,((e,t)=>s(t)));e.unmaskStrings=l;var c=e=>{try{return JSON.stringify(JSON.parse(l(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 ${l(e,"'")}: ${t.message}`)}};e.maskArrays=e=>{let t="",r=0,n=0;for(let o=0;o<e.length;o++){const i=e[o];if("["===i)0===r&&(n=o),r++;else if("]"===i&&r>0&&(r--,0===r)){t+=`${a(c(e.slice(n,o+1)))}`;continue}0===r&&(t+=i)}return r>0?t+e.slice(n):t}}}),ze=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=Ve(),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]}}),Be=d({"dist/data/utilities/parsers/findInsertValues.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findInsertValues=void 0;var t=ze(),r=Ve(),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})*`,i=new RegExp(`^(${o})`,"i"),a=`\\(\\s*(${o})\\s*\\)`,s=new RegExp(`^${a}(?:\\s*,\\s*${a.replace("("+o,"(?:"+o)})*`,"i"),l=new RegExp(a,"ig"),c=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(c))r[n[1]]=(0,t.parseLiteralValue)(n,3);return r};e.findInsertValues=(e,t)=>{e.insertValues=[];const r=t.match(s);if(r)return e.insertValues=[...r[0].matchAll(l)].map((e=>d(e[1]))),t.slice(r[0].length).trim();const n=t.match(i);return n?(e.insertValues=[d(n[1])],t.slice(n[0].length).trim()):t}}}),Ie=d({"dist/data/utilities/parsers/findUpdateValues.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findUpdateValues=void 0;var t=ze(),r=Ve(),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"),i=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 a=n[1].matchAll(i);for(const r of a)e.updateValues[r[1]]=(0,t.parseLiteralValue)(r,3);return r.slice(n[0].length).trim()}}}),We=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}}}),Ke=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}}}),Ue=d({"node_modules/core-js/internals/add-to-unscopables.js"(e,t){p();var r=H(),n=Re(),o=oe().f,i=r("unscopables"),a=Array.prototype;void 0===a[i]&&o(a,i,{configurable:!0,value:n(null)}),t.exports=function(e){a[i][e]=!0}}}),Qe=d({"node_modules/core-js/modules/es.array.includes.js"(){p();var e=Pe(),t=ge().includes,r=v(),n=Ue(),o=r((function(){return!Array(1).includes()})),i=r((function(){return[,1].includes(void 0,1)}));e({target:"Array",proto:!0,forced:o||i},{includes:function(e){return t(this,e,arguments.length>1?arguments[1]:void 0)}}),n("includes")}}),Ge=d({"dist/data/utilities/conditionTree.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.requiredConditions=e.isCondition=e.conditionsOf=e.allOf=void 0;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):[]}}),He=d({"dist/data/utilities/parsers/splitClauses.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.whereHint=e.splitClauses=e.clauseOrder=void 0,Qe();var t=Ve(),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,i=new RegExp(`${t.placeholderSource}|${t.arraySource}|[a-z0-9_.-]+|<>|!=|>=|<=|\\S`,"gi"),a=["=","!=","<>",">","<",">=","<=","in","between","like","is","exists","does"],s={on:e=>"and"===e,merge:()=>!0},l=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 c=t[1].toLowerCase(),d=r[c],u=/^[aeiou]/.test(c)?"an":"a";if(t[3]&&"read"!==c)throw new Error(`A joined record (${t[2]}) isn't allowed in ${u} ${c} query`);const f=[...e.slice(t[0].length).matchAll(i)].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,i=f[e+1]?.lower;"("!==t&&")"!==t||(y+="("===t?1:-1);const w="group"===t&&"by"===i?"group by":t,m=h||","===o||"as"===o||a.includes(i);if(h=!1,y>0||"by"===w||!n.includes(w)||m)continue;const v=p[p.length-1]?.keyword;if(v===w&&s[w]?.(o))continue;const g=p.some((e=>"where"===e.keyword));if("where"===w&&g&&("and"===o||"or"===o))throw new Error(`"${o} where" is no longer supported: ${l}`);if(!d.includes(w))throw new Error(`"${w}" isn't allowed in ${u} ${c} query (allowed: ${d.join(", ")})`);if(v&&d.indexOf(w)<d.indexOf(v))throw new Error(`"${w}" can't come after "${v}" (order: ${d.join(", ")})`);if(p.some((e=>e.keyword===w)))throw new Error(`Only one "${w}" clause is allowed${"where"===w?`: ${l}`:""}`);"group by"===w&&e++,p.push({keyword:w,start:r,end:f[e].start+f[e].text.length}),h=!0}return{command:c,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()})))}}}}),Xe=d({"dist/data/utilities/parsers/findConditions.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findConditions=void 0,Qe();var t=ze(),r=Ge(),n=Ve(),o=He(),i="(?![a-z0-9_.-])",a=e=>new RegExp(`^(?:${e})${i}`,"i"),s=new RegExp(`^([a-z0-9_-]+\\.?[a-z0-9_-]*)\\s+(?:(is\\s+not\\s+null|is\\s+null|exists|does\\s+not\\s+exist)${i}|(<>|!=|>=|<=|=|>|<|in|between|like)\\s+(${n.placeholderSource}|(${t.numberSource})|${n.arraySource}|(null)|(true)|(false)))`,"i"),l=(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}},c=e=>{let r=0;const i=()=>e.slice(r),c=()=>{r+=i().length-i().trimStart().length},d=e=>{c();const t=i().match(e);if(t)return r+=t[0].length,t[0]},u=()=>(0,n.unmaskStrings)(i().trim(),"'"),f=e=>{c();const n=i().match(s);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)&&a("where").test(i()))throw new Error(`"${e} where" is no longer supported: ${o.whereHint}`);if(d(a("not")))return{not:f("not")};if(d(/^\(/)){if(c(),i().startsWith(")"))throw new Error("Empty brackets in a where clause");const e=y("(");if(!d(/^\)/))throw new Error("Missing ) "+(i().trim()?`before: ${u()}`:"at the end of the where clause"));return e}throw new Error(`Missing a condition after ${e}${i().trim()?`: ${u()}`:""}`)},p=e=>{const t=[f(e)];for(;;){const e=d(a("and"));if(!e)break;t.push(f(e.toLowerCase().replace(/\s+/g," ")))}return l("and",t)},y=e=>{const t=[p(e)];for(;;){const e=d(a("or"));if(!e)break;t.push(p(e.toLowerCase().replace(/\s+/g," ")))}return l("or",t)},h=y("where");if(c(),i().startsWith(")"))throw new Error(`Unexpected ) in a where clause: ${u()}`);if(s.test(i()))throw new Error(`Missing and/or before: ${u()}`);return{node:h,end:r}};e.findConditions=(e,t)=>{const{node:r,end:n}=c(t);return e.where=r,t.slice(n).trim()}}}),Ye=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 i=o.match(r);if(!i||!t.test(o.slice(i[0].length)))break;o=o.slice(i[0].length)}return o}}}),Ze=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 i=o.match(r);if(!i||!t.test(o.slice(i[0].length)))break;o=o.slice(i[0].length)}return o}}}),et=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}}}),tt=d({"dist/data/utilities/parsers/findGroupBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.findGroupBy=void 0;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}}}),rt=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}}}),nt=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}}}),ot=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}}}}),it=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}}),at=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,Qe();var t=ot(),r=Ve(),n=ze(),o=it(),i=(e.createMatch=/^\s*create(?![a-z0-9_-])/i,/^\s*create\s+(if\s+not\s+exists\s+)?([a-z0-9_-]+)\s*\(/i),a=e.nameSource="[a-z0-9_-]+",s=e.nameMatch=new RegExp(`^${a}$`,"i"),l=new RegExp(`^${n.numberSource}$`,"i"),c=e.fieldMatch=new RegExp(`^(${a})\\s+(${a})((?:\\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+(${a})\\s*\\(([^()]*)\\)$`,"i"),h=new RegExp(`^${r.placeholderSource}$`),w=new RegExp(`^${r.arraySource}$`),m={primary:"pk",unique:"unique",index:"index",foreign:"fk"},v=(e,t)=>`${m[e]}_${t.join("_")}.json`;e.keyLookup=v;var g=e=>(0,r.unmaskStrings)(e.trim(),"'"),b=(e,t)=>{const r=e.split(",").map((e=>e.trim()));if(r.some((e=>!s.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},j=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(w);if(o)return JSON.parse((0,r.fromPlaceholder)(o[1]));if(l.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,i]=e,a=o.toLowerCase();if(!t.fieldTypes.includes(a))throw new Error(`Unknown type "${o}" for field "${n}" (expected ${t.fieldTypes.join(", ")})`);const s={name:n,type:a,optional:!1,autoGenerate:!1},l=new Set,c=e=>{if(l.has(e))throw new Error(`"${e}" is given twice for field "${n}"`);l.add(e)},d=""===i.trim()?[]:i.trim().split(/\s+/);for(let e=0;e<d.length;e++){const t=d[e].toLowerCase();if("optional"===t)c("optional"),s.optional=!0;else if("auto"===t)c("auto"),s.autoGenerate=!0;else if("null"===t)c("null"),s.nullable=!0;else if("not"===t&&"null"===(d[e+1]||"").toLowerCase())c("null"),s.nullable=!1,e++;else{if("default"!==t)throw new Error(`Unrecognized "${g(d[e])}" for field "${n}" in: ${g(r)}`);c("default"),s.useDefault=!0,s.defaultValue=j(d[++e])}}if(s.autoGenerate&&s.useDefault)throw new Error(`Field "${n}" can't be both auto and have a default`);if(s.autoGenerate&&"string"!==a)throw new Error(`Field "${n}" is auto, which generates a UUID, so its type must be string`);return s};e.parseField=_;var $=e=>{let t=e.match(d);if(t)return{type:"primary",fields:b(t[1],e)};if(t=e.match(u),t)return{type:"unique",fields:b(t[1],e)};if(t=e.match(f),t)return{type:"index",fields:b(t[1],e)};if(t=e.match(y),t){const r=b(t[1],e),n=b(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=v(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(i);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,a=((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===a)throw new Error("Missing ) at the end of the field list");const s=e.slice(a+1).trim();if(s){if(o.startsQueryMatch.test(s))throw new Error(`Missing ; before: ${g(s)}`);throw new Error(`Unrecognized query value: ${g(s)}`)}const l=e.slice(n+1,a),d=[],u=[];if(l.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()))})(l)){if(!e)throw new Error("Empty item in the field list (an extra comma?)");const t=$(e);if(t){u.push(t);continue}const r=e.match(c);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)}}}}}),st=d({"dist/data/utilities/parsers/parseSchemaStatement.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.schemaStatementMatch=e.parseSchemaStatement=void 0;var t=Ve(),r=it(),n=e.schemaStatementMatch=/^\s*(drop|describe|show)(?![a-z0-9_-])/i,o=/^\s*drop\s+(if\s+exists\s+)?([a-z0-9_-]+)/i,i=/^\s*describe\s+([a-z0-9_-]+)/i,a=/^\s*show\s+records(?![a-z0-9_-])/i,s=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}`)},l=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 l(t[2]),s(e.slice(t[0].length)),{command:"drop",entity:t[2],ifExists:Boolean(t[1])}}if("describe"===t){const t=e.match(i);if(!t)throw new Error("Expected: describe <name>");return l(t[1]),s(e.slice(t[0].length)),{command:"describe",entity:t[1],ifExists:!1}}const r=e.match(a);if(!r)throw new Error("Expected: show records (the only thing that can be shown so far)");return s(e.slice(r[0].length)),{command:"show",entity:"__RECORDS",ifExists:!1}}}}),lt=d({"dist/data/utilities/parsers/parseAlter.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseAlter=e.alterMatch=void 0;var t=at(),r=Ve(),n=it(),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")),i=new RegExp(`^\\s*(${t.nameSource})\\s+to\\s+(${t.nameSource})\\s*$`,"i"),a=e=>(0,r.unmaskStrings)(e.trim(),"'"),s=e=>{const r=e.trim().match(t.fieldMatch);if(!r)throw new Error(`Expected a field (<name> <type> ...) in: ${a(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[,l,c,d]=r;if("__RECORDS"===l)throw new Error("__RECORDS is reserved for the list of records");const u=c.toLowerCase();if(n.startsQueryMatch.test(d.trim())&&!/^\s*(add|drop|rename|modify)\b/i.test(d))throw new Error(`Missing ; before: ${a(d)}`);switch(u){case"add":case"modify":return{entity:l,alter:{action:u,field:s(d)}};case"drop":{const e=d.trim();if(!t.nameMatch.test(e))throw new Error(`Expected: alter ${l} drop <field>${e?` (got: ${a(e)})`:""}`);return{entity:l,alter:{action:u,name:e}}}default:{const e=d.match(i);if(!e)throw new Error(`Expected: alter ${l} rename <field> to <name>${d.trim()?` (got: ${a(d)})`:""}`);return{entity:l,alter:{action:"rename",name:e[1],to:e[2]}}}}}}}),ct=d({"dist/data/utilities/parsers/parseDatabaseStatement.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseDatabaseStatement=e.databaseStatementMatch=void 0;var t=Ve(),r=it(),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,i=/^\s*use\s+([a-z0-9_-]+)/i,a=/^\s*show\s+databases/i,s=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 s(e.slice(r[0].length)),{...t,command:"create database",entity:r[2],ifNotExists:Boolean(r[1])};if(r=e.match(o),r)return s(e.slice(r[0].length)),{...t,command:"drop database",entity:r[2],ifExists:Boolean(r[1])};if(r=e.match(a),r)return s(e.slice(r[0].length)),{...t,command:"show databases",entity:"__DATABASES"};if(r=e.match(i),!r)throw new Error("Expected: use <database>");return s(e.slice(r[0].length)),{...t,command:"use",entity:r[1]}}}}),dt=d({"dist/data/utilities/parsers/parseQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parseQuery=void 0;var t=w(),r=Be(),n=Ie(),o=We(),i=Ke(),a=Xe(),s=Ge(),l=Ye(),c=Ze(),d=et(),u=tt(),f=rt(),y=nt(),h=Ve(),m=at(),v=st(),g=lt(),b=ct(),j=He(),_=it(),$={values:{step:r.findInsertValues,expected:"an assignment (field = value)"},set:{step:n.findUpdateValues,expected:"an assignment (field = value)"},select:{step:i.findSelects,expected:"a field"},on:{step:l.findJoinClauses,expected:"a join condition (a.x = b.y)"},merge:{step:c.findMergeJoins,expected:"a merge (a.x with b.y)"},where:{step:a.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"}},O=(e,t)=>{const r=e=>(0,h.unmaskStrings)(e,"'");return _.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)),b.databaseStatementMatch.test(e))return Object.assign(r,(0,b.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(g.alterMatch.test(e)){const{entity:t,alter:n}=(0,g.parseAlter)(e);return Object.assign(r,{command:"alter",entity:t,alter:n})}const n=(0,j.splitClauses)(e);if(!n){if(e=e.trim(),_.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,s.allOf)([]),n.leading)throw O(n.leading,n.head);for(const{keyword:e,body:t}of n.clauses){const{step:n,expected:o}=$[e],i=n(r,t);if(i===t)throw new Error(`Missing ${o} after ${e}${t?`: ${(0,h.unmaskStrings)(t,"'")}`:""}`);if(i)throw O(i,`${e} ${t.slice(0,t.length-i.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}}}),ut=d({"dist/data/queries/parser.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.parser=void 0;var t=h(),r=dt();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})`)}}))}}}),ft=d({"node_modules/browser-or-node/dist/index.js"(t,r){p();var n,o=Object.defineProperty,i=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,s=Object.prototype.hasOwnProperty,l={};((e,t)=>{for(var r in t)o(e,r,{get:t[r],enumerable:!0})})(l,{isBrowser:()=>c,isBun:()=>h,isDeno:()=>y,isJsDom:()=>f,isNode:()=>d,isWebWorker:()=>u}),r.exports=(n=l,((e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(let l of a(t))s.call(e,l)||l===r||o(e,l,{get:()=>t[l],enumerable:!(n=i(t,l))||n.enumerable});return e})(o({},"__esModule",{value:!0}),n));var c="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}}),pt=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,i=-1,a=0,s=0;s<=e.length;++s){if(s<e.length)r=e.charCodeAt(s);else{if(47===r)break;r=47}if(47===r){if(i===s-1||1===a);else if(i!==s-1&&2===a){if(n.length<2||2!==o||46!==n.charCodeAt(n.length-1)||46!==n.charCodeAt(n.length-2))if(n.length>2){var l=n.lastIndexOf("/");if(l!==n.length-1){-1===l?(n="",o=0):o=(n=n.slice(0,l)).length-1-n.lastIndexOf("/"),i=s,a=0;continue}}else if(2===n.length||1===n.length){n="",o=0,i=s,a=0;continue}t&&(n.length>0?n+="/..":n="..",o=2)}else n.length>0?n+="/"+e.slice(i+1,s):n=e.slice(i+1,s),o=s-i-1;i=s,a=0}else 46===r&&-1!==a?++a:a=-1}return n}p();var i={resolve:function(){for(var t,r="",i=!1,a=arguments.length-1;a>=-1&&!i;a--){var s;a>=0?s=arguments[a]:(void 0===t&&(t=e.default.cwd()),s=t),n(s),0!==s.length&&(r=s+"/"+r,i=47===s.charCodeAt(0))}return r=o(r,!i),i?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?".":i.normalize(e)},relative:function(e,t){if(n(e),n(t),e===t)return"";if((e=i.resolve(e))===(t=i.resolve(t)))return"";for(var r=1;r<e.length&&47===e.charCodeAt(r);++r);for(var o=e.length,a=o-r,s=1;s<t.length&&47===t.charCodeAt(s);++s);for(var l=t.length-s,c=a<l?a:l,d=-1,u=0;u<=c;++u){if(u===c){if(l>c){if(47===t.charCodeAt(s+u))return t.slice(s+u+1);if(0===u)return t.slice(s+u)}else a>c&&(47===e.charCodeAt(r+u)?d=u:0===u&&(d=0));break}var f=e.charCodeAt(r+u);if(f!==t.charCodeAt(s+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(s+d):(s+=d,47===t.charCodeAt(s)&&++s,t.slice(s))},_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,i=!0,a=e.length-1;a>=1;--a)if(47===(t=e.charCodeAt(a))){if(!i){o=a;break}}else i=!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,i=-1,a=!0;if(void 0!==t&&t.length>0&&t.length<=e.length){if(t.length===e.length&&t===e)return"";var s=t.length-1,l=-1;for(r=e.length-1;r>=0;--r){var c=e.charCodeAt(r);if(47===c){if(!a){o=r+1;break}}else-1===l&&(a=!1,l=r+1),s>=0&&(c===t.charCodeAt(s)?-1==--s&&(i=r):(s=-1,i=l))}return o===i?i=l:-1===i&&(i=e.length),e.slice(o,i)}for(r=e.length-1;r>=0;--r)if(47===e.charCodeAt(r)){if(!a){o=r+1;break}}else-1===i&&(a=!1,i=r+1);return-1===i?"":e.slice(o,i)},extname:function(e){n(e);for(var t=-1,r=0,o=-1,i=!0,a=0,s=e.length-1;s>=0;--s){var l=e.charCodeAt(s);if(47!==l)-1===o&&(i=!1,o=s+1),46===l?-1===t?t=s:1!==a&&(a=1):-1!==t&&(a=-1);else if(!i){r=s+1;break}}return-1===t||-1===o||0===a||1===a&&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),i=47===o;i?(t.root="/",r=1):r=0;for(var a=-1,s=0,l=-1,c=!0,d=e.length-1,u=0;d>=r;--d)if(47!==(o=e.charCodeAt(d)))-1===l&&(c=!1,l=d+1),46===o?-1===a?a=d:1!==u&&(u=1):-1!==a&&(u=-1);else if(!c){s=d+1;break}return-1===a||-1===l||0===u||1===u&&a===l-1&&a===s+1?-1!==l&&(t.base=t.name=0===s&&i?e.slice(1,l):e.slice(s,l)):(0===s&&i?(t.name=e.slice(1,a),t.base=e.slice(1,l)):(t.name=e.slice(s,a),t.base=e.slice(s,l)),t.ext=e.slice(a,l)),s>0?t.dir=e.slice(0,s-1):i&&(t.dir="/"),t},sep:"/",delimiter:":",win32:null,posix:null};i.posix=i,r.exports=i}}),yt=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.configuredFetch=e.configure=e.activeDatabasePath=void 0,qe();var t={databasePath:"database/",relativePath:"",enforceForeignKeys:!0,readConcurrency:16,format:"compact"},r=0,n=/^[a-z0-9_-]+$/i,o=e=>e.endsWith("/")?e:`${e}/`,i=()=>t.databasesPath&&t.database?`${o(t.databasesPath)}${t.database}/`:l("databasePath","database/");e.activeDatabasePath=i;var a=()=>t.databasesPath?o(t.databasesPath):i();e.lockPath=a;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 s=e=>pt().resolve(e);e.resolveDatabasePath=s;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:s(i()),lock:s(a())},l=t;t=o;const c=s(i())!==n.active||s(a())!==n.lock;if(t=l,c){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};e.configuredFetch=e=>{const t=l("fetchOptions",void 0);return t?fetch(e,t):fetch(e)};var l=(e,r)=>void 0!==t[e]?t[e]:r;e.getSetting=l}}),ht=d({"dist/data/storage/storagePath.js"(e){p(),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,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=yt();e.storagePath=(e="")=>`${r.isBrowser?(0,n.getSetting)("relativePath",""):""}${(0,n.activeDatabasePath)()}${e}`}}),wt=d({"js-build-tools-empty:fs/promises"(e,t){p(),t.exports={}}}),mt=d({"dist/data/storage/nodeFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.nodeFiles=void 0;e.nodeFiles=()=>wt()}}),vt=d({"dist/data/storage/readCache.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.withReadCache=e.cachedRead=e.cacheWrite=e.cacheRemove=void 0;var t=ht(),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 i=t();return r.files.set(e,i),i.catch((()=>{r.files.get(e)===i&&r.files.delete(e)})),i};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)}}}}),gt=d({"dist/data/storage/writeSet.js"(e){p(),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;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=ht(),o=mt(),i=vt();var a=new Map,s=()=>a.get((0,n.storagePath)()),l=e=>e.endsWith("/")?e:`${e}/`,c=(e,t)=>{for(const r of t)if(e===r||e.startsWith(l(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,i.cacheRemove)(e,!0),await(0,o.nodeFiles)().rm(e,{recursive:!0,force:!0}),(0,i.cacheRemove)(e,!0)};e.withWriteSet=async e=>{const t=(0,n.storagePath)();if(!r.isNode||a.has(t))return e();const s={files:new Map,madeFolders:new Set,removedFolders:new Set};let c;a.set(t,s);try{c=await e()}finally{a.delete(t)}return await(async e=>{const t=(0,o.nodeFiles)(),r=t=>{const r=l(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,i.cacheWrite)(t,r));for(const[r,n]of e.files)null===n&&((0,i.cacheRemove)(r),await t.rm(r,{force:!0}),(0,i.cacheRemove)(r));for(const e of n.filter((e=>!r(e))))await u(e)})(s),c};e.pendingFile=e=>{const t=s();if(t)return t.files.has(e)?t.files.get(e):c(e,t.removedFolders)?null:void 0};e.pendingExists=e=>{const t=s();if(!t)return;if(t.files.has(e))return null!==t.files.get(e);const r=l(e);return!(![...t.madeFolders].some((t=>t===e||t.startsWith(r)))&&![...t.files].some((([e,t])=>null!==t&&e.startsWith(r))))||!c(e,t.removedFolders)&&void 0};e.pendingListing=(e,t)=>{const r=s();if(!r)return t;const n=l(e),o=new Set(t.filter((e=>!c(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=s();return!!r&&(r.files.delete(e),r.files.set(e,t),!0)};e.stageRemove=e=>{const t=s();return!!t&&(t.files.delete(e),t.files.set(e,null),!0)};e.stageMakeDirectory=e=>{const t=s();return!!t&&(t.madeFolders.add(e),!0)};e.stageRemoveDirectory=e=>{const t=s();if(!t)return!1;for(const r of[...t.files.keys()])c(r,new Set([e]))&&t.files.delete(r);for(const r of[...t.madeFolders])c(r,new Set([e]))&&t.madeFolders.delete(r);return t.removedFolders.add(e),!0}}}),bt=d({"dist/data/storage/readJson.js"(e){p(),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,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=ht(),o=mt(),i=vt(),a=gt(),s=yt();var l=async e=>{const t=(0,n.storagePath)(e),l=(0,a.pendingFile)(t);if(null===l)throw new Error(`ENOENT: no such file or directory, open '${t}' (deleted by this statement)`);return"string"==typeof l?l:(0,i.cachedRead)(t,(()=>r.isNode?(0,o.nodeFiles)().readFile(t,"utf8"):(0,s.configuredFetch)(t).then((e=>e.text()))))};e.readText=l;e.readJson=async e=>JSON.parse(await l(e))}}),jt=d({"dist/data/storage/writeJson.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeJson=e.jsonText=void 0,qe();var t=ht(),r=vt(),n=gt(),o=yt(),i=(e,t=(0,o.getSetting)("format","compact"))=>"pretty"===t?JSON.stringify(e,null,2):JSON.stringify(e);e.jsonText=i;e.writeJson=async(e,o,a)=>{const s=(0,t.storagePath)(e),l=i(o,a);(0,n.stageWrite)(s,l)||(await(0,n.writeAtomically)(s,l),(0,r.cacheWrite)(s,l))}}}),_t=d({"dist/data/storage/makeDirectory.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.makeDirectory=void 0;var t=ht(),r=mt(),n=gt();e.makeDirectory=async(e="")=>{const o=(0,t.storagePath)(e);(0,n.stageMakeDirectory)(o)||await(0,r.nodeFiles)().mkdir(o,{recursive:!0})}}}),$t=d({"js-build-tools-empty:fs"(e,t){p(),t.exports={}}}),Ot=d({"dist/data/storage/removeFile.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeFile=void 0;var t=ht(),r=mt(),n=vt(),o=gt();e.removeFile=async e=>{const i=(0,t.storagePath)(e),a=(0,o.pendingFile)(i);if(null===a||void 0===a&&!$t().existsSync(i))throw new Error(`ENOENT: no such file or directory, rm '${i}'`);(0,o.stageRemove)(i)||((0,n.cacheRemove)(i),await(0,r.nodeFiles)().rm(i),(0,n.cacheRemove)(i))}}}),kt=d({"dist/data/storage/removeDirectory.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeDirectory=void 0;var t=ht(),r=mt(),n=vt(),o=gt();e.removeDirectory=async e=>{const i=(0,t.storagePath)(e);(0,o.stageRemoveDirectory)(i)||((0,n.cacheRemove)(i,!0),await(0,r.nodeFiles)().rm(i,{recursive:!0,force:!0}),(0,n.cacheRemove)(i,!0))}}}),Et=d({"dist/data/storage/fileExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.fileExists=void 0;var t=ht(),r=gt();e.fileExists=e=>{const n=(0,t.storagePath)(e),o=(0,r.pendingExists)(n);if(void 0!==o)return o;const{existsSync:i}=$t();return i(n)}}}),Pt=d({"dist/data/storage/listFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.listFiles=void 0;var t=ht(),r=mt(),n=gt(),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 i=[];for(const t of n)t.isDirectory()?i.push(...await o(`${e}${t.name}/`)):t.isFile()&&i.push(`${e}${t.name}`);return i};e.listFiles=async(e="")=>{const r=e?`${e.replace(/\/+$/,"")}/`:"",i=(await o(r)).map((e=>(0,t.storagePath)(e))),a=(0,t.storagePath)();return(0,n.pendingListing)((0,t.storagePath)(e),i).map((e=>e.slice(a.length))).sort()}}}),xt=d({"dist/data/storage/databases.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.writeDatabaseList=e.removeDatabaseFolder=e.readDatabaseList=e.makeDatabaseFolder=e.databasesLocation=e.databaseFolderExists=void 0,qe();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=yt(),o=mt(),i=vt(),a=gt();var s=(e="")=>`${r.isBrowser?(0,n.getSetting)("relativePath",""):""}${(0,n.databasesFolder)()}${e}`;e.databasesLocation=s;var l=()=>s("__DATABASES.json");e.readDatabaseList=async()=>{let e;try{e=r.isNode?await(0,o.nodeFiles)().readFile(l(),"utf8"):await(0,n.configuredFetch)(l()).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 ${l()}: ${e.message}`)}};e.writeDatabaseList=async e=>{await(0,o.nodeFiles)().mkdir(s(),{recursive:!0}),await(0,a.writeAtomically)(l(),JSON.stringify(e))};e.databaseFolderExists=e=>$t().existsSync(s(e));e.makeDatabaseFolder=async e=>{await(0,o.nodeFiles)().mkdir(s(e),{recursive:!0})};e.removeDatabaseFolder=async e=>{const t=s(e);(0,i.cacheRemove)(t,!0),await(0,o.nodeFiles)().rm(t,{recursive:!0,force:!0}),(0,i.cacheRemove)(t,!0)}}}),St=d({"dist/data/storage/index.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),Object.defineProperty(e,"databaseFolderExists",{enumerable:!0,get:function(){return c.databaseFolderExists}}),Object.defineProperty(e,"databasesLocation",{enumerable:!0,get:function(){return c.databasesLocation}}),Object.defineProperty(e,"fileExists",{enumerable:!0,get:function(){return s.fileExists}}),Object.defineProperty(e,"jsonText",{enumerable:!0,get:function(){return n.jsonText}}),Object.defineProperty(e,"listFiles",{enumerable:!0,get:function(){return l.listFiles}}),Object.defineProperty(e,"makeDatabaseFolder",{enumerable:!0,get:function(){return c.makeDatabaseFolder}}),Object.defineProperty(e,"makeDirectory",{enumerable:!0,get:function(){return o.makeDirectory}}),Object.defineProperty(e,"readDatabaseList",{enumerable:!0,get:function(){return c.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 c.removeDatabaseFolder}}),Object.defineProperty(e,"removeDirectory",{enumerable:!0,get:function(){return a.removeDirectory}}),Object.defineProperty(e,"removeFile",{enumerable:!0,get:function(){return i.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 c.writeDatabaseList}}),Object.defineProperty(e,"writeJson",{enumerable:!0,get:function(){return n.writeJson}});var t=ht(),r=bt(),n=jt(),o=_t(),i=Ot(),a=kt(),s=Et(),l=Pt(),c=xt(),d=vt(),u=gt()}}),Mt=d({"dist/data/utilities/retrieveFile.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveFile=void 0;var t=St();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}}}),Dt=d({"dist/data/utilities/recordExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.recordExists=void 0;var t=St();e.recordExists=e=>(0,t.fileExists)(`${e}.json`)}}),Rt=d({"dist/data/utilities/retrieveRecord.js"(e){p(),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,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=Mt(),o=Dt();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}}}}),Ct=d({"dist/data/utilities/compareAs.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.sameValue=e.compareAs=e.comparableTypes=void 0,Qe();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}}),Ft=d({"dist/data/utilities/removeFromIndex.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.removeFromIndex=void 0;var t=Ct(),r=St();e.removeFromIndex=async(e="",n=null,o=void 0,i="",a=void 0)=>{if(!n||!n.lookup)return null;const s=`__indexes/${e}/${n.lookup}`;let l=[];try{l=await(0,r.readJson)(s)}catch(e){return null}return l=l.map((e=>(0,t.sameValue)(a,e.value,o)?{value:e.value,record:e.record.filter((e=>e!==i))}:e)).filter((e=>e.record.length)),await(0,r.writeJson)(s,l),l}}}),At=d({"dist/data/utilities/computeKeyValue.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.computeKeyValue=void 0,qe();e.computeKeyValue=(e,t)=>1===e.length?t[e[0]]:JSON.stringify(e.map((e=>t[e])))}}),Nt=d({"dist/data/utilities/fieldType.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyValueType=e.fieldType=void 0;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}}),Jt=d({"dist/data/utilities/assertValidName.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.assertValidName=e.assertValidLookup=void 0,qe();var t=at(),r=/^[a-z0-9_-]+\.json$/i;e.assertValidName=(e,r)=>{if("string"!=typeof e||!t.nameMatch.test(e))throw new Error(`Invalid name ${JSON.stringify(e)??"undefined"} in ${r}: names use letters, digits, _ and - only`)};e.assertValidLookup=(e,t)=>{if(""!==e&&void 0!==e&&("string"!=typeof e||!r.test(e)))throw new Error(`Invalid index file ${JSON.stringify(e)??"undefined"} in ${t}: use a name plus .json`)}}}),Tt=d({"dist/data/introspect/describe.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.describe=void 0;var t=Mt(),r=Jt();e.describe=async(e="__RECORDS")=>{(0,r.assertValidName)(e,"describe()");const n=await(0,t.retrieveFile)(`${e}.json`);return"__RECORDS"===e?n.entries:n.definition}}}),Lt=d({"dist/data/utilities/retrieveFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveFiles=void 0;var t=Mt(),r=yt();e.retrieveFiles=async(e,n=t.retrieveFile)=>{const o=Math.max(1,Math.floor((0,r.getSetting)("readConcurrency",16))||1),i=new Array(e.length),a=[];let s=0;if(await Promise.all(Array.from({length:Math.min(o,e.length)},(async()=>{for(;s<e.length&&!a.length;){const t=s++;try{i[t]=await n(e[t])}catch(e){a.push({position:t,error:e})}}}))),a.length)throw a.reduce(((e,t)=>t.position<e.position?t:e)).error;return i}}}),qt=d({"dist/data/utilities/packedTable.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.usesPackedReads=e.retrievePacked=e.packedPath=e.discardPacked=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=St(),o=yt();var i=e=>`__packed/${e}.json`;e.packedPath=i;var a=()=>(0,o.getSetting)("packedReads",!r.isNode);e.usesPackedReads=a;e.retrievePacked=async e=>{if(!a())return;let t;try{t=await(0,n.readJson)(i(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)(i(e))&&await(0,n.removeFile)(i(e))}}}),Vt=d({"dist/data/utilities/retrieveRecords.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveRecords=e.retrieveEntryRows=e.retrieveEntry=void 0;var t=Mt(),r=Rt(),n=Lt(),o=qt(),i=yt(),a=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=a;var s=async(e,t,r=a)=>{const s=t.length>(0,i.getSetting)("readConcurrency",16)?await(0,o.retrievePacked)(e):void 0;if(!s)return(0,n.retrieveFiles)(t.map((t=>`${e.path}/${t}`)),r);const l=new Map(s.entries.map(((e,t)=>[e,t]))),c=t.filter((e=>!l.has(e))),d=c.length?await(0,n.retrieveFiles)(c.map((t=>`${e.path}/${t}`)),r):[],u=new Map(c.map(((e,t)=>[e,d[t]])));return t.map((e=>l.has(e)?s.rows[l.get(e)]:u.get(e)))};e.retrieveEntryRows=s;e.retrieveRecords=async(e="")=>{const t=await(0,r.retrieveRecord)(e);return s(t,t.entries)}}}),zt=d({"dist/data/queries/where.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.whereTree=e.where=e.treeTruth=void 0,Qe();var t=Ct(),r=Ge(),n=(e,r,n,o,i=void 0)=>{const a=Object.prototype.hasOwnProperty.call(e,r);switch(n){case"exists":return a;case"does not exist":return!a;case"is null":return a&&null===e[r];case"is not null":return a&&null!==e[r]}if(!a||null===e[r]||null===o)return null;const s=e[r],l=(0,t.compareAs)(i,s);switch(n){case"=":return(0,t.sameValue)(i,s,o);case"!=":case"<>":return!(0,t.sameValue)(i,s,o);case">":return l>(0,t.compareAs)(i,o);case">=":return l>=(0,t.compareAs)(i,o);case"<":return l<(0,t.compareAs)(i,o);case"<=":return l<=(0,t.compareAs)(i,o);case"in":return!!Array.isArray(o)&&(!!(i?o.some((e=>null!==e&&(0,t.sameValue)(i,s,e))):o.includes(s))||!!o.includes(null)&&null);case"between":return!(!Array.isArray(o)||2!==o.length)&&(o.includes(null)?null:l>=(0,t.compareAs)(i,o[0])&&l<=(0,t.compareAs)(i,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)})(s,o)}return!1},o=(e,{property:t="",joinEntity:r,comparator:o="=",value:i=null,type:a}={})=>n(e,r?`${r}.${t}`:t,o,i,a);e.where=(e=[],t={})=>e.filter((e=>!0===o(e,t)));var i=(e,t)=>{if((0,r.isCondition)(t))return o(e,t);if("not"in t){const r=i(e,t.not);return null===r?null:!r}const n=!("and"in t);let a=!n;for(const r of"and"in t?t.and:t.or){const t=i(e,r);if(t===n)return n;null===t&&(a=null)}return a};e.treeTruth=i;e.whereTree=(e=[],t=void 0,r=void 0)=>void 0===t?e:void 0===r?e.filter((e=>!0===i(e,t))):e.flatMap((e=>{const n=(Array.isArray(e[r])?e[r]:[]).filter((n=>!0===i(((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})]:[]}))}}),Bt=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]}}}}),It=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}}),Wt=d({"dist/data/utilities/indexHas.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.indexHas=void 0;var t=St(),r=zt(),n=Rt(),o=It(),i=Nt();e.indexHas=async(e,a,s)=>{const l=await(0,n.retrieveRecord)(e),c=l.keys.find((e=>(0,o.isSingleFieldKey)(e,a)&&e.lookup));if(!c)return;if(!(l.entries||[]).length)return!1;let d;try{d=await(0,t.readJson)(`__indexes/${l.path}/${c.lookup}`)}catch(e){return}return(0,r.where)(d,{property:"value",comparator:"=",value:s,type:(0,i.fieldType)(l,a)}).some((e=>Array.isArray(e.record)&&e.record.length>0))}}}),Kt=d({"dist/data/introspect/policies/hasDependents.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.hasDependents=void 0;var t=Tt(),r=Rt(),n=Vt(),o=zt(),i=Nt(),a=Bt(),s=Wt();e.hasDependents=async(e,l,c)=>{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,a.splitEntityProperty)(t.references[0].fields[0]);if(r!==e||f!==l)continue;const p=await(0,s.indexHas)(d,t.fields[0],c);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:c,type:(0,i.fieldType)(u,t.fields[0])}).length)return!0}}return!1}}}),Ut=d({"dist/data/utilities/keyIndexFiles.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyIndexFiles=void 0;var t=St();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 i=new Set;for(const e of Array.isArray(o)?o:[])Array.isArray(e.record)&&n(e.value)&&e.record.forEach((e=>i.add(e)));return e.entries.filter((e=>i.has(e)))}}}),Qt=d({"dist/data/queries/deleteEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.deleteEntity=void 0;var t=Rt(),r=Mt(),n=Ft(),o=At(),i=Nt(),a=Kt(),s=yt(),l=Ut(),c=St(),d=qt();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,s.getSetting)("enforceForeignKeys",!0)||1!==t.fields.length)return;const n=t.fields[0];for(const t of r)if(await(0,a.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)))),w=await(async(e,t,a,s)=>{const d=new Set,u=new Set,f=async e=>{const l=await(0,r.retrieveFile)(`${t.path}/${e}`),f=(0,o.computeKeyValue)(a.fields,l);if(s.has(f)){await(0,c.removeFile)(`${t.path}/${e}`);for(const r of t.keys)await(0,n.removeFromIndex)(t.path,r,(0,o.computeKeyValue)(r.fields,l),e,(0,i.keyValueType)(t,r));d.add(e),u.add(f)}};for(const e of await(0,l.keyIndexFiles)(t,a,(e=>s.has(e)))??[])await f(e);if(u.size<s.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 w.length!==f.entries.length&&await(0,d.discardPacked)(f.path),f.entries=w,await(0,c.writeJson)(`${f.path}.json`,f),u}}}),Gt=d({"dist/data/introspect/policies/keyUnique.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.keyUnique=void 0;var t=Vt(),r=zt(),n=Rt(),o=Nt(),i=Wt();e.keyUnique=async(e,a=[],s=[])=>{if(!a.length||a.length!==s.length)return!1;if(1===a.length){const t=await(0,i.indexHas)(e,a[0],s[0]);if(void 0!==t)return!t}let l=await(0,t.retrieveRecords)(e);const c=await(0,n.retrieveRecord)(e);for(let e=0;e<a.length;e++)l=(0,r.where)(l,{property:a[e],comparator:"=",value:s[e],type:(0,o.fieldType)(c,a[e])});return!l.length}}}),Ht=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}}),Xt=d({"dist/data/introspect/policies/foreignKeyExists.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.foreignKeyExists=void 0;var t=Vt(),r=zt(),n=Rt(),o=Nt(),i=Wt();e.foreignKeyExists=async(e,a,s)=>{const l=await(0,i.indexHas)(e,a,s);if(void 0!==l)return l;const c=await(0,t.retrieveRecords)(e),d=(0,o.fieldType)(await(0,n.retrieveRecord)(e),a);return(0,r.where)(c,{property:a,comparator:"=",value:s,type:d}).length>0}}}),Yt=d({"dist/data/utilities/indexBuffer.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.IndexBuffer=void 0,Qe();var t=Ct(),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 i={value:e,record:[t]};this.entries.push(i),this.listed.set(i,new Set(i.record));const a=n(this.type,e);a!==r&&this.byKey.set(a,i)}}}}),Zt=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)}}),er=d({"dist/data/utilities/knownFields.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.assertKnownFields=e.assertFieldsDefined=void 0;var t=Rt(),r=Zt(),n=Bt(),o=Ge(),i=(e,t,r,n)=>{const o=new Set(t.definition.map((e=>e.name))),i=r.find((e=>!o.has(e)));if(void 0!==i)throw new Error(`Unknown field "${i}" in ${n}: ${e} has ${(e=>e.definition.map((e=>e.name)).join(", "))(t)}`)};e.assertFieldsDefined=i;e.assertKnownFields=async(e,a)=>{const s=new Set((e.mergeJoins||[]).map((e=>(0,n.splitEntityProperty)(e.propertyB).entity))),l=[...(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:c,own:d}of l){if("string"!=typeof o)continue;let l=e.entity,u=o;if(!d&&(0,r.isEntityProperty)(o)&&({entity:l,property:u}=(0,n.splitEntityProperty)(o)),"select"===c&&l!==e.entity&&!s.has(l))throw new Error(`Can't select "${o}": a joined record's rows are a list under its name (select ${l}), and its fields are on each row only when merged (merge ... with ${l}.<field>)`);Object.prototype.hasOwnProperty.call(a,l)||(a[l]=await(0,t.retrieveRecord)(l)),i(l,a[l],[u],c)}}}}),tr=d({"dist/data/queries/insertEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.insertEntity=void 0,Qe(),qe();var t=Rt(),r=Gt(),n=Ht(),o=ot(),i=Xt(),a=Bt(),s=At(),l=Nt(),c=Ct(),d=Vt(),u=It(),f=Yt(),y=St(),h=qt(),w=er(),m=class{constructor(e,t){this.seen=new Set,this.fields=t,this.types=t.map((t=>(0,l.fieldType)(e,t)))}static usable(e,t){return t.every((t=>c.comparableTypes.includes((0,l.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,c.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)}},v=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,l.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 i;try{i=await(0,y.readJson)(`__indexes/${n.path}/${o.lookup}`)}catch(e){return()=>{}}const a=new f.IndexBuffer(Array.isArray(i)?i:[],(0,l.fieldType)(n,r));return e=>a.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(!m.usable(n,r))return;const o=new m(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,c.sameValue)((0,l.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 a=await this.scan(e,[t]);return a?a.has({[t]:r}):await(0,i.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,s.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},b=async(e,t={})=>{const r={};for(const i of e.record.definition){let a=t[i.name];if(null===a&&i.optional&&!i.nullable&&(a=void 0),i.autoGenerate?null==a&&(a=await g(e,i.name)):Object.prototype.hasOwnProperty.call(i,"default")&&(a=(0,n.useDefault)(i.default,a)),void 0!==a)r[i.name]=(0,o.typeCheck)(i.type,a,i.nullable);else if(!i.optional)throw new Error(`Missing required field "${i.name}" for ${e.entity}`)}return r},j=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:i}=(0,a.splitEntityProperty)(r.references[0].fields[0]);if(!await e.exists(o,i,t[n]))throw new Error(`Foreign key "${n}" on ${e.entity} references a nonexistent ${o}.${i} = ${t[n]}`)}};e.insertEntity=async(e="",r=[],n={})=>{const o=await(0,t.retrieveRecord)(e),i=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,w.assertFieldsDefined)(e,o,Object.keys(t||{}),"insert");await(0,h.discardPacked)(o.path);const a=new v(e,o);await a.load();for(const t of r){const r=await b(a,t);await j(a,r),await _(a,r);const s=`${i?r[i.fields[0]]:crypto.randomUUID()}.json`;await(0,y.writeJson)(`${o.path}/${s}`,r),await a.add(r,s),n[e].push(r)}return await a.write(),n}}}),rr=d({"dist/data/queries/readEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.readEntity=void 0;var t=Vt();e.readEntity=async(e="",r={})=>(Object.prototype.hasOwnProperty.call(r,e)&&r[e].length||(r[e]=await(0,t.retrieveRecords)(e)),r)}}),nr=d({"dist/data/utilities/updateIndex.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.updateIndex=void 0,Qe();var t=Ct(),r=St();e.updateIndex=async(e="",n=null,o=void 0,i="",a=void 0)=>{if(!n||!n.lookup)return null;const s=`__indexes/${e}`,l=`${s}/${n.lookup}`;let c=[];try{c=await(0,r.readJson)(l)}catch(e){c=[]}const d=c.find((e=>(0,t.sameValue)(a,e.value,o)));return d?d.record.includes(i)||d.record.push(i):c.push({value:o,record:[i]}),await(0,r.makeDirectory)(s),await(0,r.writeJson)(l,c),c}}}),or=d({"dist/data/queries/updateEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.updateEntity=void 0;var t=Rt(),r=Mt(),n=nr(),o=Ft(),i=At(),a=Nt(),s=Ct(),l=Gt(),c=ot(),d=Xt(),u=Kt(),f=Bt(),y=yt(),h=Ut(),w=St(),m=qt(),v=er(),g=async(e,t,n)=>{const o=(0,a.keyValueType)(e,t),l=async a=>(0,s.sameValue)(o,(0,i.computeKeyValue)(t.fields,await(0,r.retrieveFile)(`${e.path}/${a}`)),n);for(const r of await(0,h.keyIndexFiles)(e,t,(e=>(0,s.sameValue)(o,e,n)))??[])if(await l(r))return r;for(const t of e.entries)if(await l(t))return t;return null},b=(e,t,r,n)=>t.fields.some((t=>Object.prototype.hasOwnProperty.call(n,t)&&!(0,s.sameValue)((0,a.fieldType)(e,t),n[t],r[t]))),j=async(e,t,r,n,o)=>{for(const i of t.keys){if("primary"!==i.type&&"unique"!==i.type||!b(t,i,r,o))continue;const a=i.fields.map((e=>n[e]));if(a.some((e=>null==e)))continue;if(!await(0,l.keyUnique)(e,i.fields,a))throw new Error(`Duplicate value for ${i.type} key "${i.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 i=o.fields[0];if(!Object.prototype.hasOwnProperty.call(n,i)||null===n[i]||void 0===n[i]||(0,s.sameValue)((0,a.fieldType)(t,i),n[i],r[i]))continue;const{entity:l,property:c}=(0,f.splitEntityProperty)(o.references[0].fields[0]);if(!await(0,d.foreignKeyExists)(l,c,n[i]))throw new Error(`Foreign key "${i}" on ${e} references a nonexistent ${l}.${c} = ${n[i]}`)}},$=async(e,t,r,n,o)=>{if(!(0,y.getSetting)("enforceForeignKeys",!0)||1!==r.fields.length||!b(t,r,n,o))return;const i=r.fields[0];if(await(0,u.hasDependents)(e,i,n[i]))throw new Error(`Cannot update "${e}" where "${i}" = ${n[i]} - other records still reference it`)},O=async(e,t,r,s,l)=>{for(const c of e.keys)b(e,c,t,s)&&(await(0,o.removeFromIndex)(e.path,c,(0,i.computeKeyValue)(c.fields,t),l,(0,a.keyValueType)(e,c)),await(0,n.updateIndex)(e.path,c,(0,i.computeKeyValue)(c.fields,r),l,(0,a.keyValueType)(e,c)))},k=(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 l=await(0,t.retrieveRecord)(e),d=l.keys.find((e=>"primary"===e.type));if(!d)throw new Error(`Cannot update "${e}" without a primary key`);(0,v.assertFieldsDefined)(e,l,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,c.typeCheck)(t.type,r[t.name],t.nullable));return r})(l,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(l,d,(0,i.computeKeyValue)(d.fields,t));if(!n)throw new Error(`Could not find entry for ${e} where "${d.fields.join(", ")}" = ${(0,i.computeKeyValue)(d.fields,t)}`);if(f.some((e=>e.fileName===n)))continue;const o=await(0,r.retrieveFile)(`${l.path}/${n}`),a=E(Object.assign({},o,u),u);await j(e,l,o,a,u),await _(e,l,o,u),await $(e,l,d,o,u),k(e,l,a),f.push({fileName:n,oldData:o,newData:a})}((e,t,r,n)=>{for(const o of t.keys){if("primary"!==o.type&&"unique"!==o.type)continue;const l=[];for(const{oldData:c,newData:d}of r){if(!b(t,o,c,n)||o.fields.some((e=>null===d[e]||void 0===d[e])))continue;const r=(0,i.computeKeyValue)(o.fields,d);if(l.some((e=>(0,s.sameValue)((0,a.keyValueType)(t,o),e,r))))throw new Error(`Duplicate value for ${o.type} key "${o.fields.join(", ")}" on ${e}`);l.push(r)}}})(e,l,f,u),f.length&&await(0,m.discardPacked)(l.path);for(const{fileName:e,oldData:t,newData:r}of f)await O(l,t,r,u,e),await(0,w.writeJson)(`${l.path}/${e}`,r);return o[e]=f.map((({newData:e})=>e)),o}}}),ir=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:i="",autoGenerate:a=!1}={})=>{const s={name:e,type:t,optional:r,autoGenerate:a};return n&&(s.nullable=!0),o&&(s.default=i),s}}}),ar=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})}}),sr=d({"dist/data/introspect/definitions/key.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.key=void 0;var t=ar();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 i={type:e,fields:r,lookup:n};return void 0!==o&&o.length>0&&(i.references=o.map(t.keyReference)),i}}}),lr=d({"dist/data/introspect/definitions/record.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.record=void 0;var t=ir(),r=sr();e.record=({path:e="",definition:n=[],keys:o=[],entries:i=[]}={})=>({path:e,definition:n.map(t.field),keys:o.map(r.key),entries:i})}}),cr=d({"dist/data/utilities/registerRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.registerRecord=void 0,Qe();var t=St();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}}}),dr=d({"dist/data/utilities/requireNode.js"(e){p(),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,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft());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())`)}}}),ur=d({"dist/data/introspect/create.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.create=e.assertValidDefinition=void 0,Qe();var t=Jt(),r=lr(),n=cr(),o=St(),i=dr(),a=ot(),s=["type","fields","lookup","references"],l=(e,t)=>{for(const r of t.definition)if(Object.prototype.hasOwnProperty.call(r,"default"))try{(0,a.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=l;e.create=async(e,a=[],c=[])=>{if((0,i.requireNode)("create()"),"__RECORDS"===e)return null;(0,t.assertValidName)(e,"create()");for(const r of a)(0,t.assertValidName)(r?.name,`create() of ${e}`);for(const r of c){(r?.fields??[]).forEach((r=>(0,t.assertValidName)(r,`create() of ${e}`))),(0,t.assertValidLookup)(r?.lookup,`create() of ${e}`);for(const n of r?.references??[])(0,t.assertValidLookup)(n?.lookup??null,`create() of ${e}`),(n?.fields??[]).forEach((r=>String(r).split(".").forEach((r=>(0,t.assertValidName)(r,`create() of ${e}`)))))}if((0,o.fileExists)(`${e}.json`))return null;((e,t)=>{for(const r of t)for(const t of Object.keys(r))if(!s.includes(t))throw new Error(`Unknown property "${t}" on ${r.type??"index"} key of ${e}; must be ${s.join(", ")}`)})(e,c);const d=(0,r.record)({path:e,definition:a,keys:c});l(e,d),await(0,o.makeDirectory)(),await(0,o.writeJson)(`${e}.json`,d),await(0,o.makeDirectory)(e);const u=d.keys.filter((e=>e.lookup));if(u.length){await(0,o.makeDirectory)(`__indexes/${e}`);for(const t of u)await(0,o.writeJson)(`__indexes/${e}/${t.lookup}`,[])}return await(0,n.registerRecord)(e),d}}}),fr=d({"dist/data/queries/createRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.createRecord=void 0,Qe();var t=ur(),r=Rt(),n=Bt(),o=Dt();e.createRecord=async(e,i)=>{if((0,o.recordExists)(e)){if(i.ifNotExists)return null;throw new Error(`Record "${e}" already exists`)}return await(async(e,t)=>{for(const i of t.keys){if("foreign"!==i.type)continue;const{entity:a,property:s}=(0,n.splitEntityProperty)(i.references[0].fields[0]);let l=t.definition.map((e=>e.name));if(a!==e){if(!(0,o.recordExists)(a))throw new Error(`Foreign key "${i.fields[0]}" references "${a}", which doesn't exist`);l=(await(0,r.retrieveRecord)(a)).definition.map((e=>e.name))}if(!l.includes(s))throw new Error(`Foreign key "${i.fields[0]}" references "${a}.${s}", which is not a field`)}})(e,i),(0,t.create)(e,i.definition,i.keys)}}}),pr=d({"dist/data/utilities/deregisterRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.deregisterRecord=void 0;var t=St();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}}}),yr=d({"dist/data/introspect/drop.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.drop=void 0;var t=Mt(),r=pr(),n=dr(),o=St(),i=qt(),a=Jt();e.drop=async e=>{if((0,n.requireNode)("drop()"),"__RECORDS"===e)return null;(0,a.assertValidName)(e,"drop()");const s=await(0,t.retrieveFile)(`${e}.json`);for(const e of s.entries)await(0,o.removeFile)(`${s.path}/${e}`);await(0,o.removeDirectory)(s.path),await(0,o.removeDirectory)(`__indexes/${s.path}`),await(0,i.discardPacked)(s.path),await(0,o.removeFile)(`${e}.json`),await(0,r.deregisterRecord)(e)}}}),hr=d({"dist/data/queries/dropRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.dropRecord=void 0;var t=yr(),r=Rt(),n=Dt(),o=Bt(),i=yt();e.dropRecord=async(e,a)=>{if(!(0,n.recordExists)(e)){if(a)return null;throw new Error(`Record "${e}" doesn't exist`)}await(async e=>{if(!(0,i.getSetting)("enforceForeignKeys",!0)||!(0,n.recordExists)("__RECORDS"))return;const t=await(0,r.retrieveRecord)("__RECORDS");for(const i of t.entries){const t=i.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 s=await(0,r.retrieveRecord)(e);return await(0,t.drop)(e),s}}}),wr=d({"dist/data/queries/describeRecord.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.describeRecord=void 0;var t=Rt(),r=Dt();e.describeRecord=async e=>{if(!(0,r.recordExists)(e))throw new Error(`Record "${e}" doesn't exist`);const{path:n,definition:o,keys:i}=await(0,t.retrieveRecord)(e);return{path:n,definition:o,keys:i}}}}),mr=d({"dist/data/queries/showRecords.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.showRecords=void 0;var t=Rt(),r=Dt();e.showRecords=async()=>(0,r.recordExists)("__RECORDS")?(await(0,t.retrieveRecord)("__RECORDS")).entries.map((e=>e.replace(/\.json$/,""))):[]}}),vr=d({"dist/data/introspect/alter.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.alter=void 0,Qe();var t=ir(),r=ur(),n=at(),o=Jt(),i=Rt(),a=Lt(),s=Vt(),l=er(),c=qt(),d=dr(),u=mr(),f=or(),y=ot(),h=St(),w=async e=>(await(0,a.retrieveFiles)(e.entries.map((t=>`${e.path}/${t}`)),s.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))),g=async(e,t)=>{const r=[];for(const n of await(0,u.showRecords)()){const o=await(0,i.retrieveRecord)(n);for(const i of o.keys)"foreign"===i.type&&(i.references||[]).some((r=>r.fields.includes(`${e}.${t}`)))&&r.push({entity:n,record:o,key:i})}return r},b=async(e,t)=>{(0,r.assertValidDefinition)(e,t),await(0,h.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,f.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),i="function"==typeof o?o(e):o;void 0===i?delete r[n]:r[n]=i,await(0,h.writeJson)(`${t.path}/${e.fileName}`,r)}};e.alter=async(e,r)=>{if((0,d.requireNode)("alter"),"__RECORDS"===e)throw new Error("__RECORDS is reserved for the list of records");[e,..."field"in r?[r.field?.name]:[],..."name"in r?[r.name]:[],..."to"in r?[r.to]:[]].forEach((e=>(0,o.assertValidName)(e,"alter")));const a=await(0,i.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 w(t);for(const t of o.filter((e=>m(e.data,r.name))))try{(0,y.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 i=o.filter((e=>!m(e.data,r.name))),a=m(r,"default");if(i.length&&!r.optional&&!a&&!r.autoGenerate)throw new Error(`Can't add required field "${r.name}" to ${e}: its ${i.length} row(s) have no value for it (give it a default, or make it optional)`);return await b(e,n),r.autoGenerate?await j(e,n,i,r.name,(()=>crypto.randomUUID())):a&&await j(e,n,i,r.name,r.default),n})(e,a,(0,t.field)(r.field))).definition;case"drop":return(await(async(e,t,r)=>{(0,l.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 g(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 i={...t,definition:t.definition.filter((e=>e.name!==r))};return await b(e,i),await j(e,i,(await w(t)).filter((e=>m(e.data,r))),r,void 0),i})(e,a,r.name)).definition;case"rename":return(await(async(e,t,r,o)=>{if((0,l.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 i=await g(e,r),a=t.keys.map((e=>{if(!e.fields.includes(r))return e;const t=e.fields.map((e=>e===r?o:e)),i=e.lookup&&e.lookup===(0,n.keyLookup)(e.type,e.fields)?(0,n.keyLookup)(e.type,t):e.lookup;return{...e,fields:t,lookup:i}})),s=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:a.map(s)};for(const[e,r]of t.keys.entries()){const n=a[e].lookup;r.lookup&&n!==r.lookup&&(0,h.fileExists)(`__indexes/${t.path}/${r.lookup}`)&&(await(0,h.writeJson)(`__indexes/${t.path}/${n}`,await(0,h.readJson)(`__indexes/${t.path}/${r.lookup}`)),await(0,h.removeFile)(`__indexes/${t.path}/${r.lookup}`))}await b(e,d);for(const t of i.filter((t=>t.entity!==e)))await(0,h.writeJson)(`${t.entity}.json`,{...t.record,keys:t.record.keys.map(s)});const u=(await w(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,h.writeJson)(`${t.path}/${e.fileName}`,n)}return d})(e,a,r.name,r.to)).definition;case"modify":return(await(async(e,t,r)=>{(0,l.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))},i=await w(t),a=m(r,"default"),s=r.nullable?[]:i.filter((e=>null===e.data[r.name])),c=r.optional?[]:i.filter((e=>!m(e.data,r.name))),d=r.optional?[]:s;if((c.length||d.length)&&!a)throw c.length?new Error(`Can't make "${r.name}" required on ${e}: ${c.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 b(e,o),a&&await j(e,o,[...c,...d],r.name,r.default),r.optional&&s.length&&await j(e,o,s,r.name,void 0),o})(e,a,(0,t.field)(r.field))).definition;default:throw new Error(`Unknown alter action: ${r.action}`)}}}}),gr=d({"dist/data/utilities/databaseLock.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.withDatabaseLock=e.browserCallsRunning=void 0;var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=yt(),o=St();var i=new Map,a=0;e.browserCallsRunning=()=>a;e.withDatabaseLock=async e=>{if(!r.isNode){a++;try{return await(0,o.withReadCache)(e)}finally{a--}}const t=(0,n.resolveDatabasePath)((0,n.lockPath)()),s=(0,n.trackDatabaseCall)(),l=i.get(t)||Promise.resolve();let c;const d=new Promise((e=>{c=e})),u=l.then((()=>d));i.set(t,u),await l;try{return await(0,o.withReadCache)(e)}finally{s(),c(),i.get(t)===u&&i.delete(t)}}}}),br=d({"dist/data/queries/databaseStatements.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.useDatabase=e.showDatabases=e.dropDatabase=e.createDatabase=void 0,Qe();var t,r=function(e,r){if(!r&&e&&e.__esModule)return e;var n,o,i=Object.defineProperty,a={__proto__:null,default:e};if(Object(e)!==e)return a;if(t||"function"!=typeof WeakMap||(t=new WeakMap),t){if(t.has(e))return t.get(e);t.set(e,a)}for(o in e)"default"!==o&&{}.hasOwnProperty.call(e,o)&&((n=i&&Object.getOwnPropertyDescriptor(e,o))&&(n.get||n.set)?i(a,o,n):a[o]=e[o]);return a}(ft()),n=yt(),o=dr(),i=gr(),a=St();var s=async e=>(await(0,a.readDatabaseList)()).includes(e)||r.isNode&&(0,a.databaseFolderExists)(e);e.createDatabase=async(e,t=!1)=>{(0,o.requireNode)('"create database"');const r=await(0,a.readDatabaseList)();if(r.includes(e)||(0,a.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,a.writeDatabaseList)([...r,e]),null}return await(0,a.writeDatabaseList)([...r,e]),await(0,a.makeDatabaseFolder)(e),e};e.dropDatabase=async(e,t=!1)=>{if((0,o.requireNode)('"drop database"'),!await s(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,a.writeDatabaseList)((await(0,a.readDatabaseList)()).filter((t=>t!==e))),await(0,a.removeDatabaseFolder)(e),e};e.useDatabase=async e=>{if(!r.isNode&&(0,i.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 s(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,a.readDatabaseList)()}}),jr=d({"dist/data/utilities/joinKey.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinKey=e.isKeyedType=void 0,Qe();var t=Ct();e.joinKey=(e,r)=>{if(null!=r)return(0,t.compareAs)(e,r)};e.isKeyedType=e=>t.comparableTypes.includes(e)}}),_r=d({"dist/data/utilities/rowLookup.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.groupRows=e.firstPositions=e.RowLookups=void 0;var t=jr(),r=(e,r,n)=>{const o=new Map;for(const i of e){const e=(0,t.joinKey)(n,i[r]);if(void 0===e)continue;const a=o.get(e);a?a.push(i):o.set(e,[i])}return o};e.groupRows=r;var n=(e,r,n)=>{const o=new Map;return e.forEach(((e,i)=>{const a=(0,t.joinKey)(n,e[r]);void 0===a||o.has(a)||o.set(a,i)})),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)}}}}),$r=d({"dist/data/utilities/semiJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.semiJoin=void 0;var t=zt(),r=jr(),n=_r();e.semiJoin=(e,o,i,a,s,l)=>{if("="===s&&(0,r.isKeyedType)(l)){if(o.lookups&&e.rows.length<o.rows.length){const t=o.lookups.positionsBy(a,l),n=[];return e.rows.forEach(((e,o)=>{const a=t.get((0,r.joinKey)(l,e[i]));void 0!==a&&n.push({row:e,position:a,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(i,l):(0,n.groupRows)(e.rows,i,l),s=[],c=new Set;for(const e of o.rows){const n=(0,r.joinKey)(l,e[a]);if(void 0===n||c.has(n))continue;c.add(n);const o=t.get(n);o&&s.push(...o)}return s}const c=[],d=new Set;for(const r of o.rows)for(const n of(0,t.where)(e.rows,{property:i,comparator:s,value:r[a],type:l}))d.has(n)||(d.add(n),c.push(n));return c}}}),Or=d({"dist/data/utilities/retrieveIndexes.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.retrieveIndexes=void 0;var t=Mt(),r=Rt(),n=It();e.retrieveIndexes=async(e="",o=[],i={})=>{Object.prototype.hasOwnProperty.call(i,e)||(i[e]=await(0,r.retrieveRecord)(e));const a={};for(const r of o)for(const o of i[e].keys)(0,n.isSingleFieldKey)(o,r)&&(a[r]=(i[e].entries||[]).length?await(0,t.retrieveFile)(`__indexes/${e}/${o.lookup}`):[]);return a}}}),kr=d({"dist/data/utilities/joinBases.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinBases=void 0;var t=rr(),r=Rt(),n=Vt(),o=Or(),i=jr(),a=_r(),s=async(e,t,a,s,l)=>{const c=(await(0,o.retrieveIndexes)(e,[t],{}))[t];if(!c)return;const d=new Set(s.map((e=>(0,i.joinKey)(a,e[l]))).filter((e=>void 0!==e))),u=new Set;for(const e of c)d.has((0,i.joinKey)(a,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,l)=>{const c=new Map,d=(e,t)=>c.set(e,{rows:t,lookups:new a.RowLookups(t)});d(e,n[e]),l&&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:a}of t){if(c.has(r))continue;d(r,("="===e.comparator&&e.typeA===e.typeB&&(0,i.isKeyedType)(e.typeA)&&c.has(o)?await s(r,n,e.typeA,c.get(o).rows,a):void 0)??await u(r))}}return c.has(r)||d(r,await u(r)),c}}}),Er=d({"dist/data/queries/joinEntity.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.joinEntity=void 0;var t=rr(),r=Rt(),n=Bt(),o=Nt(),i=$r(),a=kr();e.joinEntity=async(e,s,l={},c=[],d=!1,u=!1)=>{if(d||(l=await(0,t.readEntity)(e,l)),!c.length)return l;const f=await(async e=>{const t=[];for(const{propertyA:i,comparator:a,propertyB:s}of e){const{entity:e,property:l}=(0,n.splitEntityProperty)(i),{entity:c,property:d}=(0,n.splitEntityProperty)(s);t.push({entityA:e,propertyA:l,typeA:(0,o.fieldType)(await(0,r.retrieveRecord)(e),l),comparator:a,entityB:c,propertyB:d,typeB:(0,o.fieldType)(await(0,r.retrieveRecord)(c),d)})}return t})(c);if(!l[e].length)return l;const p=await(0,a.joinBases)(e,s,l,f,u);for(const t of l[e]){const r=new Map(p);r.set(e,{rows:[t]});for(const e of f)r.set(e.entityA,{rows:(0,i.semiJoin)(r.get(e.entityA),r.get(e.entityB),e.propertyA,e.propertyB,e.comparator,e.typeA)}),r.set(e.entityB,{rows:(0,i.semiJoin)(r.get(e.entityB),r.get(e.entityA),e.propertyB,e.propertyA,e.comparator,e.typeB)});t[s]=r.get(s).rows.map((e=>structuredClone(e)))}return l}}}),Pr=d({"dist/data/utilities/mergeJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.mergeJoin=void 0;var t=rr(),r=Bt(),n=zt(),o=Rt(),i=Nt();e.mergeJoin=async(e="",a="",s={})=>{const{entity:l,property:c}=(0,r.splitEntityProperty)(e),{entity:d,property:u}=(0,r.splitEntityProperty)(a);s=await(0,t.readEntity)(l,s),s=await(0,t.readEntity)(d,s);const f=(0,i.fieldType)(await(0,o.retrieveRecord)(d),u);return s[l]=s[l].map((e=>{const t=(0,n.where)(s[d],{property:u,comparator:"=",value:e[c],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})),s}}}),xr=d({"dist/data/utilities/reconcileJoin.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.reconcileJoin=void 0,qe();e.reconcileJoin=(e,t,r,n,o)=>{const i=e[t][r];return Object.prototype.hasOwnProperty.call(i,n)&&Array.isArray(i[n])&&Array.isArray(e[n])&&i[n].forEach(((i,a)=>{if(!i||!Object.prototype.hasOwnProperty.call(i,o))return;const s=Object.keys(i),l=e[n].find((e=>s.every((t=>{return r=e[t],n=i[t],r===n||JSON.stringify(r)===JSON.stringify(n);var r,n}))));l&&(e[t][r][n][a]=l)})),e}}}),Sr=d({"dist/data/utilities/reconcileJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.reconcileJoins=void 0;var t=Bt(),r=xr();e.reconcileJoins=(e,n,o)=>{const{entity:i,property:a}=(0,t.splitEntityProperty)(e),{entity:s,property:l}=(0,t.splitEntityProperty)(n);for(const e in o)for(const t in o[e])o=(0,r.reconcileJoin)(o,e,t,i,a),o=(0,r.reconcileJoin)(o,e,t,s,l);return o}}}),Mr=d({"dist/data/queries/mergeJoins.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.mergeJoins=void 0;var t=Pr(),r=Sr();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}}}),Dr=d({"dist/data/queries/sortBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.sortBy=void 0;var t=Ct(),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 i of n){const n=i.property,a=i.direction,s=r(e,n),l=r(o,n);if(s!==l)return"asc"===a?s-l:l-s;const c=(0,t.compareAs)(i.type,e[n]),d=(0,t.compareAs)(i.type,o[n]);if(c==d)continue;const u=c<d?-1:1;return"asc"===a?u:-1*u}return 0})),e):e}}),Rr=d({"dist/data/queries/groupBy.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.groupBy=void 0,qe();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,...i]=t,a=new Map;for(const t of e){const e=r(t,o);a.has(e)||a.set(e,"missing"===e?{field:o,missing:!0,rows:[]}:{field:o,value:t[o],rows:[]}),a.get(e).rows.push(t)}return[...a.values()].map((({rows:e,...t})=>i.length?{...t,groups:n(e,i)}:{...t,rows:e}))};e.groupBy=n}}),Cr=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)}}}),Fr=d({"dist/data/queries/selectFields.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.selectFields=void 0;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,i)=>n.length?o?e.map((e=>r(e,n,i))):e.map((e=>t(e,n,i))):e}}),Ar=d({"dist/data/utilities/getConditionIndexedList.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.getConditionIndexedList=void 0;var t=Zt(),r=Bt(),n=Rt(),o=zt(),i=Vt(),a=Mt(),s=Or(),l=It(),c=Ge(),d=(e,n)=>(0,t.isEntityProperty)(e.property)?(0,r.splitEntityProperty)(e.property):{entity:n,property:e.property},u=async(e,t,r,i,a)=>{if(Object.prototype.hasOwnProperty.call(i,e)||(i[e]=await(0,n.retrieveRecord)(e)),i[e].keys.some((e=>(0,l.isSingleFieldKey)(e,t))))return a[e]=a[e]||{},Object.prototype.hasOwnProperty.call(a[e],t)||(a[e][t]=(await(0,s.retrieveIndexes)(e,[t],i))[t]),new Set((0,o.where)(a[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,c.isCondition)(e)){const{entity:o,property:i}=d(e,t);return o===t?await u(o,i,e,r,n):void 0}if("not"in e)return;if("or"in e){const o=new Set;for(const i of e.or){const e=await f(i,t,r,n);if(void 0===e)return;e.forEach((e=>o.add(e)))}return o}let o;for(const i of e.and){const e=await f(i,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 s={},l={};if(void 0!==e.where){const r=await f(e.where,e.entity,t,l);void 0!==r&&(s[e.entity]=r)}for(const r of(0,c.requiredConditions)(e.where)){const{entity:n,property:o}=d(r,e.entity);if(n===e.entity)continue;const i=await u(n,o,r,t,l);void 0!==i&&(s[n]=Object.prototype.hasOwnProperty.call(s,n)?new Set([...s[n]].filter((e=>i.has(e)))):i)}for(const e of Object.keys(s)){o.add(e);const l=t[e]||await(0,n.retrieveRecord)(e);r[e]=await(0,i.retrieveEntryRows)(l,[...s[e]],a.retrieveFile)}return e}}}),Nr=d({"dist/data/utilities/conditionEntities.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.conditionEntities=void 0;var t=Zt(),r=Bt(),n=Ge();e.conditionEntities=e=>{const o=e.entity,i=e.joinClauses.length?e.joinEntity:void 0,a=new Set([o,i]),s=new Set(e.mergeJoins.filter((e=>a.has((0,r.splitEntityProperty)(e.propertyA).entity))).map((e=>(0,r.splitEntityProperty)(e.propertyB).entity))),l=new Set(e.joinClauses.flatMap((e=>[e.propertyA,e.propertyB].map((e=>(0,r.splitEntityProperty)(e).entity)))).filter((e=>!a.has(e)&&!s.has(e)))),c="update"===e.command||"delete"===e.command;let d=!1;for(const a of(0,n.conditionsOf)(e.where)){if(!(0,t.isEntityProperty)(a.property))continue;const{entity:n,property:u}=(0,r.splitEntityProperty)(a.property);if(n===o){a.property=u;continue}if(c)throw new Error(`${e.command} can only use conditions on ${o}'s own fields, not ${a.property}`);if(n===i){d=!0;continue}if(s.has(n))continue;if(l.has(n))throw new Error(`${n} only links ${o} to ${i}: a condition can't use its fields (${a.property})`);const f=[o,i,...s].filter((e=>void 0!==e)).join(", ");throw new Error(`${n} is not part of this query (${a.property}): conditions can use the fields of ${f}`)}return d}}}),Jr=d({"dist/data/utilities/runQuery.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.runQuery=void 0,Qe();var t=Qt(),r=tr(),n=rr(),o=or(),i=fr(),a=hr(),s=wr(),l=vr(),c=br(),d=mr(),u=Er(),f=Mr(),y=zt(),h=Dr(),w=Rr(),m=Cr(),v=Fr(),g=Rt(),b=Ar(),j=Zt(),_=Bt(),$=Nt(),O=Ge(),k=Nr(),E=dr(),P=er();e.runQuery=async e=>{const p=void 0!==e.where&&(0,k.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,i.createRecord)(e.entity,e.create)};case"drop":return{[e.entity]:await(0,a.dropRecord)(e.entity,e.ifExists)};case"describe":return{[e.entity]:await(0,s.describeRecord)(e.entity)};case"alter":return{[e.entity]:await(0,l.alter)(e.entity,e.alter)};case"create database":return{[e.entity]:await(0,c.createDatabase)(e.entity,e.ifNotExists)};case"drop database":return{[e.entity]:await(0,c.dropDatabase)(e.entity,e.ifExists)};case"use":return{[e.entity]:await(0,c.useDatabase)(e.entity)};case"show databases":return{[e.entity]:await(0,c.showDatabases)()};case"show":return{[e.entity]:await(0,d.showRecords)()}}const x={[e.entity]:await(0,g.retrieveRecord)(e.entity)};void 0!==e.joinEntity&&(x[e.joinEntity]=await(0,g.retrieveRecord)(e.joinEntity)),await(0,P.assertKnownFields)(e,x),await(async(e,t)=>{for(const r of[...(0,O.conditionsOf)(e.where),...e.sortClauses]){let n=e.entity,o=r.property;(0,j.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,$.fieldType)(t[n],o)}})(e,x);let S={[e.entity]:[]};const M=new Set;e=await(0,b.getConditionIndexedList)(e,x,S,M);const D=M.has(e.entity);switch("delete"!==e.command&&"update"!==e.command||(D||(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":D||(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,D,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,w.groupBy)(S[e.entity],e.groupBy),S[e.entity]=(0,m.limitOffset)(S[e.entity],e.offset,e.limit),S[e.entity]=(0,v.selectFields)(S[e.entity],e.selectClauses,Boolean(e.groupBy?.length),e.entity),S}}}),Tr=d({"dist/data/queries/query.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.query=void 0;var t=ut(),r=Jr(),n=gr(),o=St();e.query=async(e="")=>{const i=(0,t.parser)(e);return(0,n.withDatabaseLock)((async()=>{const e=[];for(const t of i){const n=await(0,o.withWriteSet)((()=>(0,r.runQuery)(t)));e.push(n[t.entity])}return e}))}}}),Lr=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}`}}),qr=d({"dist/data/queries/queryStatus.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.queryStatus=void 0;var t=y();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]}}}}),Vr=d({"dist/data/introspect/formatDatabase.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.formatDatabase=void 0;var t=St(),r=yt(),n=dr();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"))),i=[];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&&i.push({path:r,content:o})}for(const{path:r,content:n}of i)await(0,t.writeJson)(r,n,e);return{files:o.length,rewritten:i.length}}}}),zr=d({"dist/data/introspect/packDatabase.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.packDatabase=e.checkPacked=void 0,qe();var t=St(),r=Rt(),n=Lt(),o=Vt(),i=qt(),a=mr(),s=dr(),l=async e=>{const a=await(0,r.retrieveRecord)(e),s=a.entries||[],l=await(0,n.retrieveFiles)(s.map((e=>`${a.path}/${e}`)),o.retrieveEntry),c={entries:s,rows:l};return{path:(0,i.packedPath)(a.path),text:(0,t.jsonText)(c,"compact"),rows:s.length}},c=async e=>{const r=new Set(e.map((e=>(0,i.packedPath)(e))));return(await(0,t.listFiles)("__packed")).filter((e=>!r.has(e)))};e.packDatabase=async()=>{(0,s.requireNode)("packDatabase");const e=await(0,a.showRecords)();let r=0;for(const n of e){const e=await l(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 c(e))await(0,t.removeFile)(r);return{records:e.length,rows:r}};e.checkPacked=async()=>{(0,s.requireNode)("checkPacked");const e=await(0,a.showRecords)(),r=[];for(const n of e){const e=await l(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 c(e)}}}}),Br=d({"dist/data/introspect/index.js"(e){p(),Object.defineProperty(e,"__esModule",{value:!0}),e.packDatabase=e.formatDatabase=e.drop=e.describe=e.create=e.checkPacked=e.alter=void 0;var t=ur(),r=yr(),n=Tt(),o=Vr(),i=vr(),a=zr(),s=gr(),l=St();e.create=(...e)=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,t.create)(...e)))));e.drop=(...e)=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,r.drop)(...e)))));e.alter=(...e)=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,i.alter)(...e)))));e.describe=(...e)=>(0,s.withDatabaseLock)((()=>(0,n.describe)(...e)));e.formatDatabase=(...e)=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,o.formatDatabase)(...e)))));e.packDatabase=()=>(0,s.withDatabaseLock)((()=>(0,l.withWriteSet)((()=>(0,a.packDatabase)()))));e.checkPacked=()=>(0,s.withDatabaseLock)((()=>(0,a.checkPacked)()))}});return d({"dist/index.js"(e){p(),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 i.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=Tr(),r=Lr(),n=qr(),o=Br(),i=yt()}})()})();"object"==typeof module&&module&&module.exports&&(module.exports=jsonFsQuery);
|