Comparing version 0.4.0-beta.0 to 0.4.0-beta.1
@@ -1,5 +0,5 @@ | ||
var kt=Object.defineProperty;var Ve=Object.getOwnPropertySymbols;var gt=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var Me=(E,A,C)=>A in E?kt(E,A,{enumerable:!0,configurable:!0,writable:!0,value:C}):E[A]=C,ie=(E,A)=>{for(var C in A||(A={}))gt.call(A,C)&&Me(E,C,A[C]);if(Ve)for(var C of Ve(A))_t.call(A,C)&&Me(E,C,A[C]);return E};(function(E,A){typeof exports=="object"&&typeof module!="undefined"?A(exports):typeof define=="function"&&define.amd?define(["exports"],A):(E=typeof globalThis!="undefined"?globalThis:E||self,A(E.groqJS={}))})(this,function(E){"use strict";class A{constructor(e,n,r){this.allowBoost=!1,this.string=e,this.marks=n,this.index=0,this.parseOptions=r}hasMark(e=0){return this.index+e<this.marks.length}getMark(e=0){return this.marks[this.index+e]}shift(){this.index+=1}process(e){const n=this.marks[this.index];this.shift();const r=e[n.name];if(!r)throw new Error(`Unknown handler: ${n.name}`);return r.call(e,this,n)}processString(){return this.shift(),this.processStringEnd()}processStringEnd(){const e=this.marks[this.index-1],n=this.marks[this.index];return this.shift(),this.string.slice(e.position,n.position)}slice(e){const n=this.marks[this.index].position;return this.string.slice(n,n+e)}}const C=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|([-+]\d{2}:\d{2}))$/;function $e(t){return C.test(t)?new Date(t):null}function Ue(t){const e=V(t.getUTCFullYear(),4),n=V(t.getUTCMonth()+1,2),r=V(t.getUTCDate(),2),i=V(t.getUTCHours(),2),a=V(t.getUTCMinutes(),2),o=V(t.getUTCSeconds(),2);let c="";const d=t.getMilliseconds();return d!=0&&(c=`.${V(d,3)}`),`${e}-${n}-${r}T${i}:${a}:${o}${c}Z`}function V(t,e){let n=t.toString();for(;n.length<e;)n=`0${n}`;return n}function De(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ne(t){const e=[];for(const n of t.split("."))n==="*"?e.push("[^.]+"):n==="**"?e.push(".*"):e.push(De(n));return new RegExp(`^${e.join(".")}$`)}class he{constructor(e){this.pattern=e,this.patternRe=Ne(e)}matches(e){return this.patternRe.test(e)}toJSON(){return this.pattern}}class N{constructor(e){this.type="stream",this.generator=e,this.ticker=null,this.isDone=!1,this.data=[]}isArray(){return!0}async get(){const e=[];for await(const n of this)e.push(await n.get());return e}async*[Symbol.asyncIterator](){let e=0;for(;;){for(;e<this.data.length;e++)yield this.data[e];if(this.isDone)return;await this._nextTick()}}_nextTick(){if(this.ticker)return this.ticker;let e;const n=()=>{this.ticker=new Promise(a=>{e=a})},r=()=>{e(),n()},i=async()=>{for await(const a of this.generator())this.data.push(a),r();this.isDone=!0,r()};return n(),i(),this.ticker}}class j{constructor(e,n){this.data=e,this.type=n}isArray(){return this.type==="array"}async get(){return this.data}[Symbol.asyncIterator](){if(Array.isArray(this.data))return function*(e){for(const n of e)yield S(n)}(this.data);throw new Error(`Cannot iterate over: ${this.type}`)}}const f=new j(null,"null"),g=new j(!0,"boolean"),w=new j(!1,"boolean");class q{constructor(e){this.date=e}static parseToValue(e){const n=$e(e);return n?new j(new q(n),"datetime"):f}equals(e){return this.date.getTime()==e.date.getTime()}add(e){const n=new Date(this.date.getTime());return n.setTime(n.getTime()+e*1e3),new q(n)}difference(e){return(this.date.getTime()-e.date.getTime())/1e3}compareTo(e){return this.date.getTime()-e.date.getTime()}toString(){return Ue(this.date)}toJSON(){return this.toString()}}function x(t){return Number.isFinite(t)?new j(t,"number"):f}function T(t){return new j(t,"string")}function be(t){return new j(t,"datetime")}function Ie(t){return new j(t,"path")}function Le(t){return t&&typeof t.next=="function"}function S(t){return Le(t)?new N(async function*(){for await(const e of t)yield S(e)}):t==null?f:new j(t,I(t))}function I(t){return t===null||typeof t=="undefined"?"null":Array.isArray(t)?"array":t instanceof he?"path":t instanceof q?"datetime":typeof t}const we={datetime:1,number:2,string:3,boolean:4};function M(t,e){const n=I(t),r=I(e);if(n!==r)return null;switch(n){case"number":case"boolean":return t-e;case"string":return t<e?-1:t>e?1:0;case"datetime":return t.compareTo(e);default:return null}}function Fe(t,e){const n=I(t),r=I(e),i=we[n]||100,a=we[r]||100;if(i!==a)return i-a;let o=M(t,e);return o===null&&(o=0),o}const qe=/([^!@#$%^&*(),\\/?";:{}|[\]+<>\s-])+/g,Be=/([^!@#$%^&(),\\/?";:{}|[\]+<>\s-])+/g,ke=/(\b\.+|\.+\b)/g,Ge=1024;function He(t,e){return t.length===0||e.length===0?!1:e.every(n=>n(t))}function ge(t){return t.replace(ke,"").match(qe)||[]}function ze(t){return _e(t).map(n=>r=>r.some(i=>n.test(i)))}function _e(t){return(t.replace(ke,"").match(Be)||[]).map(n=>new RegExp(`^${n.slice(0,Ge).replace(/\*/g,".*")}$`,"i"))}async function z(t,e){if(t.type==="string")return e(t.data),!0;if(t.isArray()){let n=!0;for await(const r of t)r.type==="string"?e(r.data):n=!1;return n}return!1}const Ee=1.2;async function L(t,e,n){if(t.type==="OpCall"&&t.op==="match")return Je(t.left,t.right,e,n);if(t.type==="FuncCall"&&t.name==="boost"){const r=await L(t.args[0],e,n),i=await n(t.args[1],e);return i.type==="number"&&r>0?r+i.data:0}switch(t.type){case"Or":{const r=await L(t.left,e,n),i=await L(t.right,e,n);return r+i}case"And":{const r=await L(t.left,e,n),i=await L(t.right,e,n);return r===0||i===0?0:r+i}default:{const r=await n(t,e);return r.type==="boolean"&&r.data===!0?1:0}}}async function Je(t,e,n,r){const i=await r(t,n),a=await r(e,n);let o=[],c=[];if(await z(i,m=>{o=o.concat(ge(m))}),!await z(a,m=>{c=c.concat(_e(m))})||o.length===0||c.length===0)return 0;let s=0;for(const m of c){const u=o.reduce((p,_)=>p+(m.test(_)?1:0),0);s+=u*(Ee+1)/(u+Ee)}return s}async function Qe(t){if(t.type==="object")return Se(t.data);if(t.isArray()){const e=await Ae(t);if(e.length>0)return e.join(` | ||
var gt=Object.defineProperty;var Ve=Object.getOwnPropertySymbols;var kt=Object.prototype.hasOwnProperty,_t=Object.prototype.propertyIsEnumerable;var Me=(E,A,C)=>A in E?gt(E,A,{enumerable:!0,configurable:!0,writable:!0,value:C}):E[A]=C,ie=(E,A)=>{for(var C in A||(A={}))kt.call(A,C)&&Me(E,C,A[C]);if(Ve)for(var C of Ve(A))_t.call(A,C)&&Me(E,C,A[C]);return E};(function(E,A){typeof exports=="object"&&typeof module!="undefined"?A(exports):typeof define=="function"&&define.amd?define(["exports"],A):(E=typeof globalThis!="undefined"?globalThis:E||self,A(E.groqJS={}))})(this,function(E){"use strict";class A{constructor(e,n,r){this.allowBoost=!1,this.string=e,this.marks=n,this.index=0,this.parseOptions=r}hasMark(e=0){return this.index+e<this.marks.length}getMark(e=0){return this.marks[this.index+e]}shift(){this.index+=1}process(e){const n=this.marks[this.index];this.shift();const r=e[n.name];if(!r)throw new Error(`Unknown handler: ${n.name}`);return r.call(e,this,n)}processString(){return this.shift(),this.processStringEnd()}processStringEnd(){const e=this.marks[this.index-1],n=this.marks[this.index];return this.shift(),this.string.slice(e.position,n.position)}slice(e){const n=this.marks[this.index].position;return this.string.slice(n,n+e)}}const C=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(Z|([-+]\d{2}:\d{2}))$/;function $e(t){return C.test(t)?new Date(t):null}function Ue(t){const e=V(t.getUTCFullYear(),4),n=V(t.getUTCMonth()+1,2),r=V(t.getUTCDate(),2),i=V(t.getUTCHours(),2),a=V(t.getUTCMinutes(),2),o=V(t.getUTCSeconds(),2);let c="";const d=t.getMilliseconds();return d!=0&&(c=`.${V(d,3)}`),`${e}-${n}-${r}T${i}:${a}:${o}${c}Z`}function V(t,e){let n=t.toString();for(;n.length<e;)n=`0${n}`;return n}function De(t){return t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function Ne(t){const e=[];for(const n of t.split("."))n==="*"?e.push("[^.]+"):n==="**"?e.push(".*"):e.push(De(n));return new RegExp(`^${e.join(".")}$`)}class he{constructor(e){this.pattern=e,this.patternRe=Ne(e)}matches(e){return this.patternRe.test(e)}toJSON(){return this.pattern}}class N{constructor(e){this.type="stream",this.generator=e,this.ticker=null,this.isDone=!1,this.data=[]}isArray(){return!0}async get(){const e=[];for await(const n of this)e.push(await n.get());return e}async*[Symbol.asyncIterator](){let e=0;for(;;){for(;e<this.data.length;e++)yield this.data[e];if(this.isDone)return;await this._nextTick()}}_nextTick(){if(this.ticker)return this.ticker;let e;const n=()=>{this.ticker=new Promise(a=>{e=a})},r=()=>{e(),n()},i=async()=>{for await(const a of this.generator())this.data.push(a),r();this.isDone=!0,r()};return n(),i(),this.ticker}}class j{constructor(e,n){this.data=e,this.type=n}isArray(){return this.type==="array"}async get(){return this.data}[Symbol.asyncIterator](){if(Array.isArray(this.data))return function*(e){for(const n of e)yield S(n)}(this.data);throw new Error(`Cannot iterate over: ${this.type}`)}}const f=new j(null,"null"),k=new j(!0,"boolean"),w=new j(!1,"boolean");class q{constructor(e){this.date=e}static parseToValue(e){const n=$e(e);return n?new j(new q(n),"datetime"):f}equals(e){return this.date.getTime()==e.date.getTime()}add(e){const n=new Date(this.date.getTime());return n.setTime(n.getTime()+e*1e3),new q(n)}difference(e){return(this.date.getTime()-e.date.getTime())/1e3}compareTo(e){return this.date.getTime()-e.date.getTime()}toString(){return Ue(this.date)}toJSON(){return this.toString()}}function x(t){return Number.isFinite(t)?new j(t,"number"):f}function T(t){return new j(t,"string")}function be(t){return new j(t,"datetime")}function Ie(t){return new j(t,"path")}function Le(t){return t&&typeof t.next=="function"}function S(t){return Le(t)?new N(async function*(){for await(const e of t)yield S(e)}):t==null?f:new j(t,I(t))}function I(t){return t===null||typeof t=="undefined"?"null":Array.isArray(t)?"array":t instanceof he?"path":t instanceof q?"datetime":typeof t}const we={datetime:1,number:2,string:3,boolean:4};function M(t,e){const n=I(t),r=I(e);if(n!==r)return null;switch(n){case"number":case"boolean":return t-e;case"string":return t<e?-1:t>e?1:0;case"datetime":return t.compareTo(e);default:return null}}function Fe(t,e){const n=I(t),r=I(e),i=we[n]||100,a=we[r]||100;if(i!==a)return i-a;let o=M(t,e);return o===null&&(o=0),o}const qe=/([^!@#$%^&*(),\\/?";:{}|[\]+<>\s-])+/g,Be=/([^!@#$%^&(),\\/?";:{}|[\]+<>\s-])+/g,ge=/(\b\.+|\.+\b)/g,Ge=1024;function He(t,e){return t.length===0||e.length===0?!1:e.every(n=>n(t))}function ke(t){return t.replace(ge,"").match(qe)||[]}function ze(t){return _e(t).map(n=>r=>r.some(i=>n.test(i)))}function _e(t){return(t.replace(ge,"").match(Be)||[]).map(n=>new RegExp(`^${n.slice(0,Ge).replace(/\*/g,".*")}$`,"i"))}async function z(t,e){if(t.type==="string")return e(t.data),!0;if(t.isArray()){let n=!0;for await(const r of t)r.type==="string"?e(r.data):n=!1;return n}return!1}const Ee=1.2;async function L(t,e,n){if(t.type==="OpCall"&&t.op==="match")return Je(t.left,t.right,e,n);if(t.type==="FuncCall"&&t.name==="boost"){const r=await L(t.args[0],e,n),i=await n(t.args[1],e);return i.type==="number"&&r>0?r+i.data:0}switch(t.type){case"Or":{const r=await L(t.left,e,n),i=await L(t.right,e,n);return r+i}case"And":{const r=await L(t.left,e,n),i=await L(t.right,e,n);return r===0||i===0?0:r+i}default:{const r=await n(t,e);return r.type==="boolean"&&r.data===!0?1:0}}}async function Je(t,e,n,r){const i=await r(t,n),a=await r(e,n);let o=[],c=[];if(await z(i,m=>{o=o.concat(ke(m))}),!await z(a,m=>{c=c.concat(_e(m))})||o.length===0||c.length===0)return 0;let s=0;for(const m of c){const u=o.reduce((p,_)=>p+(m.test(_)?1:0),0);s+=u*(Ee+1)/(u+Ee)}return s}async function Qe(t){if(t.type==="object")return Se(t.data);if(t.isArray()){const e=await Ae(t);if(e.length>0)return e.join(` | ||
`)}return null}async function Ae(t,e=[]){for await(const n of t)if(n.type==="object"){const r=Se(n.data);r!==null&&e.push(r)}else n.isArray()&&await Ae(n,e);return e}function Se(t){if(typeof t._type!="string")return null;const e=t.children;if(!Array.isArray(e))return null;let n="";for(const r of e)r&&typeof r=="object"&&typeof r._type=="string"&&r._type==="span"&&typeof r.text=="string"&&(n+=r.text);return n}function oe(t,e){switch(I(t)){case"array":for(const n of t)if(oe(n,e))return!0;break;case"object":if(t._ref)return e.has(t._ref);for(const n of Object.values(t))if(oe(n,e))return!0;break}return!1}function We(t){let e=0;for(let n=0;n<t.length;n++){const r=t.charCodeAt(n);r>=55296&&r<=56319||e++}return e}const b={};b.coalesce=async function(e,n,r){for(const i of e){const a=await r(i,n);if(a.type!=="null")return a}return f},b.count=async function(e,n,r){const i=await r(e[0],n);if(!i.isArray())return f;let a=0;for await(const o of i)a++;return x(a)},b.count.arity=1,b.dateTime=async function(e,n,r){const i=await r(e[0],n);return i.type==="datetime"?i:i.type!=="string"?f:q.parseToValue(i.data)},b.dateTime.arity=1,b.defined=async function(e,n,r){return(await r(e[0],n)).type==="null"?w:g},b.defined.arity=1,b.identity=async function(e,n){return T(n.context.identity)},b.identity.arity=0,b.length=async function(e,n,r){const i=await r(e[0],n);if(i.type==="string")return x(We(i.data));if(i.isArray()){let a=0;for await(const o of i)a++;return x(a)}return f},b.length.arity=1,b.path=async function(e,n,r){const i=await r(e[0],n);return i.type!=="string"?f:Ie(new he(i.data))},b.path.arity=1,b.string=async function(e,n,r){const i=await r(e[0],n);switch(i.type){case"number":case"string":case"boolean":case"datetime":return T(`${i.data}`);default:return f}},b.string.arity=1,b.references=async function(e,n,r){const i=new Set;for(const o of e){const c=await r(o,n);if(c.type==="string")i.add(c.data);else if(c.isArray())for await(const d of c)d.type==="string"&&i.add(d.data)}if(i.size===0)return w;const a=await n.value.get();return oe(a,i)?g:w},b.references.arity=t=>t>=1,b.round=async function(e,n,r){const i=await r(e[0],n);if(i.type!=="number")return f;const a=i.data;let o=0;if(e.length===2){const c=await r(e[1],n);if(c.type!=="number"||c.data<0||!Number.isInteger(c.data))return f;o=c.data}return o===0?a<0?x(-Math.round(-a)):x(Math.round(a)):x(Number(a.toFixed(o)))},b.round.arity=t=>t>=1&&t<=2,b.now=async function(e,n){return T(n.context.timestamp.toISOString())},b.now.arity=0,b.boost=async function(){throw new Error("unexpected boost call")},b.boost.arity=2;const $={};$.lower=async function(t,e,n){const r=await n(t[0],e);return r.type!=="string"?f:T(r.data.toLowerCase())},$.lower.arity=1,$.upper=async function(t,e,n){const r=await n(t[0],e);return r.type!=="string"?f:T(r.data.toUpperCase())},$.upper.arity=1,b.lower=$.lower,b.upper=$.upper;const se={};se.text=async function(t,e,n){const r=await n(t[0],e),i=await Qe(r);return i===null?f:T(i)},se.text.arity=1;const ce={};ce.projectId=async function(t,e){return e.context.sanity?T(e.context.sanity.projectId):f},ce.dataset=async function(t,e){return e.context.sanity?T(e.context.sanity.dataset):f};const B={};B.order=async function(e,n,r,i){if(await!0,!e.isArray())return f;const a=[],o=[];let c=0;for(let m of n){let u="asc";m.type==="Desc"?(u="desc",m=m.base):m.type==="Asc"&&(m=m.base),a.push(m),o.push(u),c++}const d=[];let s=0;for await(const m of e){const u=r.createNested(m),p=[await m.get(),s];for(let _=0;_<c;_++){const D=await i(a[_],u);p.push(await D.get())}d.push(p),s++}return d.sort((m,u)=>{for(let p=0;p<c;p++){let _=Fe(m[p+2],u[p+2]);if(o[p]==="desc"&&(_=-_),_!==0)return _}return m[1]-u[1]}),S(d.map(m=>m[0]))},B.order.arity=t=>t>=1,B.score=async function(e,n,r,i){if(!e.isArray())return f;const a=[],o=[];for await(const c of e){if(c.type!=="object"){a.push(await c.get());continue}const d=r.createNested(c);let s=typeof c.data._score=="number"?c.data._score:0;for(const u of n)s+=await L(u,d,i);const m=Object.assign({},c.data,{_score:s});o.push(m)}return o.sort((c,d)=>d._score-c._score),S(o)},B.score.arity=t=>t>=1;const R={};R.operation=async function(t,e){const n=e.context.before!==null,r=e.context.after!==null;return n&&r?T("update"):r?T("create"):n?T("delete"):f},R.changedAny=()=>{throw new Error("not implemented")},R.changedAny.arity=1,R.changedAny.mode="delta",R.changedOnly=()=>{throw new Error("not implemented")},R.changedOnly.arity=1,R.changedOnly.mode="delta";const G={};G.changedAny=()=>{throw new Error("not implemented")},G.changedAny.arity=3,G.changedOnly=()=>{throw new Error("not implemented")},G.changedOnly.arity=3;const Ze={global:b,string:$,pt:se,delta:R,diff:G,sanity:ce},Xe=/^([\t\n\v\f\r \u0085\u00A0]|(\/\/[^\n]+\n))+/,ue=/^\d+/,U=/^[a-zA-Z_][a-zA-Z_0-9]*/,J=1,Q=2,W=3,k=4,F=4,Z=6,X=6,Y=7,K=7,ee=7,te=8,Ye=10,Ke=10,et=8;function tt(t){let e=0;e=l(t,e);let n=h(t,e,0);return n.type==="error"?n:(e=l(t,n.position),e!==t.length?(n.failPosition&&(e=n.failPosition-1),{type:"error",position:e}):(delete n.position,delete n.failPosition,n))}function h(t,e,n){let r=e,i=t[e],a;switch(i){case"+":{let s=h(t,l(t,e+1),Ye);if(s.type==="error")return s;a=[{name:"pos",position:r}].concat(s.marks),e=s.position;break}case"-":{let s=h(t,l(t,e+1),et);if(s.type==="error")return s;a=[{name:"neg",position:r}].concat(s.marks),e=s.position;break}case"(":{let s=h(t,l(t,e+1),0);if(s.type==="error")return s;switch(e=l(t,s.position),t[e]){case",":{for(a=[{name:"tuple",position:r}].concat(s.marks),e=l(t,e+1);;){if(s=h(t,e,0),s.type==="error")return s;if(e=l(t,s.position),t[e]!==",")break;e=l(t,e+1)}if(t[e]!==")")return{type:"error",position:e};e++,a.push({name:"tuple_end",position:e});break}case")":{e++,a=[{name:"group",position:r}].concat(s.marks);break}default:return{type:"error",position:e}}break}case"!":{let s=h(t,l(t,e+1),Ke);if(s.type==="error")return s;a=[{name:"not",position:r}].concat(s.marks),e=s.position;break}case"{":{let s=fe(t,e);if(s.type==="error")return s;a=s.marks,e=s.position;break}case"[":if(a=[{name:"array",position:e}],e=l(t,e+1),t[e]!=="]")for(;;){t.slice(e,e+3)==="..."&&(a.push({name:"array_splat",position:e}),e=l(t,e+3));let s=h(t,e,0);if(s.type==="error")return s;if(a=a.concat(s.marks),e=s.position,e=l(t,e),t[e]!==","||(e=l(t,e+1),t[e]==="]"))break}if(t[e]==="]")e++,a.push({name:"array_end",position:e});else return{type:"error",position:e};break;case"'":case'"':{let s=xe(t,e);if(s.type==="error")return s;a=s.marks,e=s.position;break}case"^":{for(e++,a=[];t[e]==="."&&t[e+1]==="^";)a.push({name:"dblparent",position:r}),e+=2;a.push({name:"parent",position:r});break}case"@":a=[{name:"this",position:r}],e++;break;case"*":a=[{name:"everything",position:r}],e++;break;case"$":{let s=P(t,e+1,U);s&&(e+=1+s,a=[{name:"param",position:r},{name:"ident",position:r+1},{name:"ident_end",position:e}]);break}default:{let s=P(t,e,ue);if(s){e+=s;let u="integer";if(t[e]==="."){let p=P(t,e+1,ue);p&&(u="float",e+=1+p)}if(t[e]==="e"||t[e]==="E"){u="sci",e++,(t[e]==="+"||t[e]==="-")&&e++;let p=P(t,e,ue);if(!p)return{type:"error",position:e};e+=p}a=[{name:u,position:r},{name:u+"_end",position:e}];break}let m=P(t,e,U);if(m){switch(e+=m,t[e]){case":":case"(":{let u=Ce(t,r,e);if(u.type==="error")return u;a=u.marks,e=u.position;break}default:a=[{name:"this_attr",position:r},{name:"ident",position:r},{name:"ident_end",position:e}]}break}}}if(!a)return{type:"error",position:e};let o=12,c;e:for(;;){let s=l(t,e);if(s===t.length){e=s;break}if(c=ve(t,s),c.type==="success"){for(a.unshift({name:"traverse",position:r});c.type==="success";)a=a.concat(c.marks),e=c.position,c=ve(t,l(t,e));a.push({name:"traversal_end",position:e});continue}switch(t[s]){case"=":{switch(t[s+1]){case">":{if(n>J||o<=J)break e;let p=h(t,l(t,s+2),J);if(p.type==="error")return p;a=a.concat(p.marks),a.unshift({name:"pair",position:r}),e=p.position,o=J;break}case"=":{if(n>k||o<=k)break e;let p=h(t,l(t,s+2),5);if(p.type==="error")return p;a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:s+2}),a=a.concat(p.marks),e=p.position,o=k;break}default:break e}break}case"+":{if(n>Z||o<Z)break e;let u=h(t,l(t,s+1),Z+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"add",position:r}),e=u.position,o=Z;break}case"-":{if(n>X||o<X)break e;let u=h(t,l(t,s+1),X+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"sub",position:r}),e=u.position,o=X;break}case"*":{if(t[s+1]==="*"){if(n>te||o<=te)break e;let p=h(t,l(t,s+2),te);if(p.type==="error")return p;a=a.concat(p.marks),a.unshift({name:"pow",position:r}),e=p.position,o=te;break}if(n>Y||o<Y)break e;let u=h(t,l(t,s+1),Y+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"mul",position:r}),e=u.position,o=Y;break}case"/":{if(n>K||o<K)break e;let u=h(t,l(t,s+1),K+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"div",position:r}),e=u.position,o=K;break}case"%":{if(n>ee||o<ee)break e;let u=h(t,l(t,s+1),ee+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"mod",position:r}),e=u.position,o=ee;break}case"<":case">":{if(n>k||o<=k)break e;let u=s+1;t[u]==="="&&u++;let p=h(t,l(t,u),k+1);if(p.type==="error")return p;a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:u}),a=a.concat(p.marks),e=p.position,o=k;break}case"|":{if(t[s+1]==="|"){if(n>Q||o<Q)break e;let u=h(t,l(t,s+2),Q+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"or",position:r}),e=u.position,o=Q}else{if(n>11||o<11)break e;let u=l(t,s+1),p=P(t,u,U);if(!p)return{type:"error",position:u};if(e=u+p,t[e]==="("||t[e]===":"){let _=Ce(t,u,e);if(_.type==="error")return _;a=a.concat(_.marks),a.unshift({name:"pipecall",position:r}),e=_.position,o=11}}break}case"&":{if(t[s+1]!="&"||n>W||o<W)break e;let u=h(t,l(t,s+2),W+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"and",position:r}),e=u.position,o=W;break}case"!":{if(t[s+1]!=="="||n>k||o<k)break e;let u=h(t,l(t,s+2),k+1);if(u.type==="error")return u;a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:s+2}),a=a.concat(u.marks),e=u.position,o=k;break}case"d":{if(t.slice(s,s+4)!=="desc"||n>F||o<F)break e;a.unshift({name:"desc",position:r}),e=s+4,o=F;break}case"a":{if(t.slice(s,s+3)!=="asc"||n>F||o<F)break e;a.unshift({name:"asc",position:r}),e=s+3,o=F;break}default:switch(nt(t,s,U)){case"in":{if(n>k||o<=k)break e;e=l(t,s+2);let p=!1;t[e]==="("&&(p=!0,e=l(t,e+1));let _=e,D=h(t,e,k+1);if(D.type==="error")return D;if(e=l(t,D.position),t[e]==="."&&t[e+1]==="."){let Re="inc_range";t[e+2]==="."?(Re="exc_range",e=l(t,e+3)):e=l(t,e+2);let ae=h(t,e,k+1);if(ae.type==="error")return ae;a.unshift({name:"in_range",position:r}),a=a.concat({name:Re,position:_},D.marks,ae.marks),e=ae.position}else a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:s+2}),a=a.concat(D.marks);if(p){if(e=l(t,e),t[e]!==")")return{type:"error",position:e};e++}o=k;break}case"match":{if(n>k||o<=k)break e;let p=h(t,l(t,s+5),k+1);if(p.type==="error")return p;a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:s+5}),a=a.concat(p.marks),e=p.position,o=4;break}default:break e}}}let d=(c==null?void 0:c.type)==="error"&&c.position;return{type:"success",marks:a,position:e,failPosition:d}}function ve(t,e){let n=e;switch(t[e]){case".":{e=l(t,e+1);let o=e,c=P(t,e,U);return c?(e+=c,{type:"success",marks:[{name:"attr_access",position:n},{name:"ident",position:o},{name:"ident_end",position:e}],position:e}):{type:"error",position:e}}case"-":if(t[e+1]!==">")return{type:"error",position:e};let r=[{name:"deref",position:n}];e+=2;let i=l(t,e),a=P(t,i,U);return a&&(e=i+a,r.push({name:"deref_attr",position:i},{name:"ident",position:i},{name:"ident_end",position:e})),{type:"success",marks:r,position:e};case"[":{if(e=l(t,e+1),t[e]==="]")return{type:"success",marks:[{name:"array_postfix",position:n}],position:e+1};let o=e,c=h(t,e,0);if(c.type==="error")return c;if(e=l(t,c.position),t[e]==="."&&t[e+1]==="."){let d="inc_range";t[e+2]==="."?(d="exc_range",e+=3):e+=2,e=l(t,e);let s=h(t,e,0);return s.type==="error"?s:(e=l(t,s.position),t[e]!=="]"?{type:"error",position:e}:{type:"success",marks:[{name:"slice",position:n},{name:d,position:o}].concat(c.marks,s.marks),position:e+1})}return t[e]!=="]"?{type:"error",position:e}:{type:"success",marks:[{name:"square_bracket",position:n}].concat(c.marks),position:e+1}}case"|":{if(e=l(t,e+1),t[e]==="{"){let o=fe(t,e);return o.type==="error"||o.marks.unshift({name:"projection",position:n}),o}break}case"{":{let o=fe(t,e);return o.type==="error"||o.marks.unshift({name:"projection",position:n}),o}}return{type:"error",position:e}}function Ce(t,e,n){let r=[];if(r.push({name:"func_call",position:e}),t[n]===":"&&t[n+1]===":"){r.push({name:"namespace",position:e}),r.push({name:"ident",position:e},{name:"ident_end",position:n}),n=l(t,n+2);let a=P(t,n,U);if(!a)return{type:"error",position:n};if(r.push({name:"ident",position:n},{name:"ident_end",position:n+a}),n=l(t,n+a),t[n]!=="(")return{type:"error",position:n};n++}else r.push({name:"ident",position:e},{name:"ident_end",position:n}),n=l(t,n+1);let i=n;if(t[n]!==")")for(;;){let a=h(t,n,0);if(a.type==="error")return a;if(r=r.concat(a.marks),i=a.position,n=l(t,a.position),t[n]!==",")break;n=l(t,n+1)}return t[n]!==")"?{type:"error",position:n}:(r.push({name:"func_args_end",position:i}),{type:"success",marks:r,position:n+1})}function fe(t,e){let n=[{name:"object",position:e}];e=l(t,e+1);e:for(;t[e]!=="}";){let r=e;switch(t[e]){case'"':case"'":{let i=xe(t,e);if(i.type==="error")return i;if(e=l(t,i.position),t[e]!==":")return{type:"error",position:e};let a=h(t,l(t,e+1),0);if(a.type==="error")return a;n.push({name:"object_pair",position:r}),n=n.concat(i.marks,a.marks),e=a.position;break}case".":{if(t.slice(e,e+3)==="...")if(e=l(t,e+3),t[e]!=="}"&&t[e]!==","){let i=h(t,e,0);if(i.type==="error")return i;n.push({name:"object_splat",position:r}),n=n.concat(i.marks),e=i.position;break}else{n.push({name:"object_splat_this",position:r});break}break e}default:{let i=h(t,e,0);if(i.type==="error")return i;n=n.concat({name:"object_expr",position:e},i.marks),e=i.position}}if(e=l(t,e),t[e]!==",")break;e=l(t,e+1)}return t[e]!=="}"?{type:"error",position:e}:(e++,n.push({name:"object_end",position:e}),{type:"success",marks:n,position:e})}function xe(t,e){let n=t[e];e=e+1,marks=[{name:"str",position:e}];e:for(;;e++){if(e>t.length)return{type:"error",position:e};switch(t[e]){case n:{marks.push({name:"str_end",position:e}),e++;break e}case"\\":marks.push({name:"str_pause",position:e}),t[e+1]==="u"?t[e+2]==="{"?(marks.push({name:"unicode_hex",position:e+3}),e=t.indexOf("}",e+3),marks.push({name:"unicode_hex_end",position:e}),e++):(marks.push({name:"unicode_hex",position:e+2}),marks.push({name:"unicode_hex_end",position:e+6}),e+=5):(marks.push({name:"single_escape",position:e+1}),e+=1),marks.push({name:"str_start",position:e+1})}}return{type:"success",marks,position:e}}function l(t,e){return e+P(t,e,Xe)}function P(t,e,n){let r=n.exec(t.slice(e));return r?r[0].length:0}function nt(t,e,n){let r=n.exec(t.slice(e));return r?r[0]:null}function O(t,e){return n=>e(t(n))}function le(t){return e=>({type:"Map",base:e,expr:t({type:"This"})})}function rt(t){return e=>({type:"FlatMap",base:e,expr:t({type:"This"})})}function ne(t,e){if(!e)return{type:"a-a",build:t};switch(e.type){case"a-a":return{type:"a-a",build:O(t,e.build)};case"a-b":return{type:"a-b",build:O(t,e.build)};case"b-b":return{type:"a-a",build:O(t,le(e.build))};case"b-a":return{type:"a-a",build:O(t,rt(e.build))};default:throw new Error(`unknown type: ${e.type}`)}}function ye(t,e){if(!e)return{type:"b-b",build:t};switch(e.type){case"a-a":case"b-a":return{type:"b-a",build:O(t,e.build)};case"a-b":case"b-b":return{type:"b-b",build:O(t,e.build)};default:throw new Error(`unknown type: ${e.type}`)}}function at(t,e){if(!e)return{type:"a-b",build:t};switch(e.type){case"a-a":case"b-a":return{type:"a-a",build:O(t,e.build)};case"a-b":case"b-b":return{type:"a-b",build:O(t,e.build)};default:throw new Error(`unknown type: ${e.type}`)}}function it(t,e){if(!e)return{type:"b-b",build:t};switch(e.type){case"a-a":return{type:"a-a",build:O(le(t),e.build)};case"a-b":return{type:"a-b",build:O(le(t),e.build)};case"b-a":return{type:"b-a",build:O(t,e.build)};case"b-b":return{type:"b-b",build:O(t,e.build)};default:throw new Error(`unknown type: ${e.type}`)}}const pe=ot;function ot(t,e){return t.type==="string"&&e.type==="string"||t.type==="boolean"&&e.type==="boolean"||t.type==="null"&&e.type==="null"||t.type==="number"&&e.type==="number"?t.data===e.data:t.type==="datetime"&&e.type==="datetime"?t.data.equals(e.data):!1}const st={"==":function(e,n){return pe(e,n)?g:w},"!=":function(e,n){return pe(e,n)?w:g},">":function(e,n){if(e.type==="stream"||n.type==="stream")return f;const r=M(e.data,n.data);return r===null?f:r>0?g:w},">=":function(e,n){if(e.type==="stream"||n.type==="stream")return f;const r=M(e.data,n.data);return r===null?f:r>=0?g:w},"<":function(e,n){if(e.type==="stream"||n.type==="stream")return f;const r=M(e.data,n.data);return r===null?f:r<0?g:w},"<=":function(e,n){if(e.type==="stream"||n.type==="stream")return f;const r=M(e.data,n.data);return r===null?f:r<=0?g:w},in:async function(e,n){if(n.type==="path")return e.type!=="string"?f:n.data.matches(e.data)?g:w;if(n.isArray()){for await(const r of n)if(pe(e,r))return g;return w}return f},match:async function(e,n){let r=[],i=[];return await z(e,c=>{r=r.concat(ge(c))}),await z(n,c=>{i=i.concat(ze(c))})&&He(r,i)?g:w},"+":function(e,n){return e.type==="datetime"&&n.type==="number"?be(e.data.add(n.data)):e.type==="number"&&n.type==="number"?x(e.data+n.data):e.type==="string"&&n.type==="string"?T(e.data+n.data):e.type==="object"&&n.type==="object"?S(ie(ie({},e.data),n.data)):e.type==="array"&&n.type==="array"?S(e.data.concat(n.data)):e.isArray()&&n.isArray()?new N(async function*(){for await(const r of e)yield r;for await(const r of n)yield r}):f},"-":function(e,n){return e.type==="datetime"&&n.type==="number"?be(e.data.add(-n.data)):e.type==="datetime"&&n.type==="datetime"?x(e.data.difference(n.data)):e.type==="number"&&n.type==="number"?x(e.data-n.data):f},"*":re((t,e)=>t*e),"/":re((t,e)=>t/e),"%":re((t,e)=>t%e),"**":re((t,e)=>Math.pow(t,e))};function re(t){return function(e,n){if(e.type==="number"&&n.type==="number"){const r=t(e.data,n.data);return x(r)}return f}}class H{constructor(e,n,r,i,a){this.isHidden=!1,this.params=e,this.source=n,this.value=r,this.context=i,this.parent=a}createNested(e){return this.isHidden?new H(this.params,this.source,e,this.context,this.parent):new H(this.params,this.source,e,this.context,this)}createHidden(e){const n=this.createNested(e);return n.isHidden=!0,n}}function de(t,e,n=de){return ct[t.type](t,e,n)}function Te(t,e){return"then"in t?t.then(e):e(t)}const ct={This(t,e){return e.value},Everything(t,e){return e.source},Parameter({name:t},e){return S(e.params[t])},Context({key:t},e){if(t==="before"||t==="after")return e.context[t]||f;throw new Error(`unknown context key: ${t}`)},Parent({n:t},e){let n=e;for(let r=0;r<t;r++){if(!n.parent)return f;n=n.parent}return n.value},OpCall({op:t,left:e,right:n},r,i){const a=st[t];if(!a)throw new Error(`Unknown operator: ${t}`);const o=i(e,r),c=i(n,r);return"then"in o||"then"in c?(async()=>a(await o,await c))():a(o,c)},async Select({alternatives:t,fallback:e},n,r){for(const i of t){const a=await r(i.condition,n);if(a.type==="boolean"&&a.data===!0)return r(i.value,n)}return e?r(e,n):f},async InRange({base:t,left:e,right:n,isInclusive:r},i,a){const o=await a(t,i),c=await a(e,i),d=await a(n,i),s=M(await o.get(),await c.get());if(s===null)return f;const m=M(await o.get(),await d.get());return m===null?f:r?s>=0&&m<=0?g:w:s>=0&&m<0?g:w},async Filter({base:t,expr:e},n,r){const i=await r(t,n);return i.isArray()?new N(async function*(){for await(const a of i){const o=n.createNested(a),c=await r(e,o);c.type==="boolean"&&c.data===!0&&(yield a)}}):f},async Projection({base:t,expr:e},n,r){const i=await r(t,n);if(i.type!=="object")return f;const a=n.createNested(i);return r(e,a)},FuncCall({func:t,args:e},n,r){return t(e,n,r)},async PipeFuncCall({func:t,base:e,args:n},r,i){const a=await i(e,r);return t(a,n,r,i)},async AccessAttribute({base:t,name:e},n,r){let i=n.value;return t&&(i=await r(t,n)),i.type==="object"&&i.data.hasOwnProperty(e)?S(i.data[e]):f},async AccessElement({base:t,index:e},n,r){const i=await r(t,n);if(!i.isArray())return f;const a=await i.get(),o=e<0?e+a.length:e;return S(a[o])},async Slice({base:t,left:e,right:n,isInclusive:r},i,a){const o=await a(t,i);if(!o.isArray())return f;const c=await o.get();let d=e,s=n;return d<0&&(d=c.length+d),s<0&&(s=c.length+s),r&&s++,d<0&&(d=0),s<0&&(s=0),S(c.slice(d,s))},async Deref({base:t},e,n){const r=await n(t,e);if(!e.source.isArray()||r.type!=="object")return f;const i=r.data._ref;if(typeof i!="string")return f;for await(const a of e.source)if(a.type==="object"&&i===a.data._id)return a;return f},Value({value:t}){return S(t)},Group({base:t},e,n){return n(t,e)},async Object({attributes:t},e,n){const r={};for(const i of t){const a=i.type;switch(i.type){case"ObjectAttributeValue":{const o=await n(i.value,e);r[i.name]=await o.get();break}case"ObjectConditionalSplat":{const o=await n(i.condition,e);if(o.type!=="boolean"||o.data===!1)continue;const c=await n(i.value,e);c.type==="object"&&Object.assign(r,c.data);break}case"ObjectSplat":{const o=await n(i.value,e);o.type==="object"&&Object.assign(r,o.data);break}default:throw new Error(`Unknown node type: ${a}`)}}return S(r)},Array({elements:t},e,n){return new N(async function*(){for(const r of t){const i=await n(r.value,e);if(r.isSplat){if(i.isArray())for await(const a of i)yield a}else yield i}})},Tuple(){throw new Error("tuples can not be evaluated")},async Or({left:t,right:e},n,r){const i=await r(t,n),a=await r(e,n);return i.type==="boolean"&&i.data===!0||a.type==="boolean"&&a.data===!0?g:i.type!=="boolean"||a.type!=="boolean"?f:w},async And({left:t,right:e},n,r){const i=await r(t,n),a=await r(e,n);return i.type==="boolean"&&i.data===!1||a.type==="boolean"&&a.data===!1?w:i.type!=="boolean"||a.type!=="boolean"?f:g},async Not({base:t},e,n){const r=await n(t,e);return r.type!=="boolean"?f:r.data?w:g},Neg({base:t},e,n){return Te(n(t,e),r=>r.type!=="number"?f:x(-r.data))},Pos({base:t},e,n){return Te(n(t,e),r=>r.type!=="number"?f:x(r.data))},Asc(){return f},Desc(){return f},async ArrayCoerce({base:t},e,n){const r=await n(t,e);return r.isArray()?r:f},async Map({base:t,expr:e},n,r){const i=await r(t,n);return i.isArray()?new N(async function*(){for await(const a of i){const o=n.createHidden(a);yield await r(e,o)}}):f},async FlatMap({base:t,expr:e},n,r){const i=await r(t,n);return i.isArray()?new N(async function*(){for await(const a of i){const o=n.createHidden(a),c=await r(e,o);if(c.isArray())for await(const d of c)yield d;else yield c}}):f}};function ut(t,e={}){const n=S(e.root),r=S(e.dataset),i=ie({},e.params),a=new H(i,r,n,{timestamp:e.timestamp||new Date,identity:e.identity===void 0?"me":e.identity,sanity:e.sanity,after:e.after?S(e.after):null,before:e.before?S(e.before):null},null);return de(t,a)}function ft(t){switch(t.type){case"Group":case"Value":case"Parameter":case"Pos":case"Neg":return!0;case"OpCall":switch(t.op){case"+":case"-":case"*":case"/":case"%":case"**":return!0;default:return!1}default:return!1}}const lt=new H({},f,f,{timestamp:new Date(0),identity:"me",before:null,after:null},null);class yt extends Error{constructor(){super(...arguments);this.name="ConstantEvaluateError"}}function me(t){try{return Oe(t)}catch(e){if(e.name==="ConstantEvaluateError")return null;throw e}}function Oe(t){if(!ft(t))throw new yt("cannot constant evaluate");const e=de(t,lt,Oe);if("then"in e)throw new Error("BUG: constant evaluate should never return a promise");return e}const pt={"'":"'",'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` | ||
`)}return null}async function Ae(t,e=[]){for await(const n of t)if(n.type==="object"){const r=Se(n.data);r!==null&&e.push(r)}else n.isArray()&&await Ae(n,e);return e}function Se(t){if(typeof t._type!="string")return null;const e=t.children;if(!Array.isArray(e))return null;let n="";for(const r of e)r&&typeof r=="object"&&typeof r._type=="string"&&r._type==="span"&&typeof r.text=="string"&&(n+=r.text);return n}function oe(t,e){switch(I(t)){case"array":for(const n of t)if(oe(n,e))return!0;break;case"object":if(t._ref)return e.has(t._ref);for(const n of Object.values(t))if(oe(n,e))return!0;break}return!1}function We(t){let e=0;for(let n=0;n<t.length;n++){const r=t.charCodeAt(n);r>=55296&&r<=56319||e++}return e}const b={};b.coalesce=async function(e,n,r){for(const i of e){const a=await r(i,n);if(a.type!=="null")return a}return f},b.count=async function(e,n,r){const i=await r(e[0],n);if(!i.isArray())return f;let a=0;for await(const o of i)a++;return x(a)},b.count.arity=1,b.dateTime=async function(e,n,r){const i=await r(e[0],n);return i.type==="datetime"?i:i.type!=="string"?f:q.parseToValue(i.data)},b.dateTime.arity=1,b.defined=async function(e,n,r){return(await r(e[0],n)).type==="null"?w:k},b.defined.arity=1,b.identity=async function(e,n){return T(n.context.identity)},b.identity.arity=0,b.length=async function(e,n,r){const i=await r(e[0],n);if(i.type==="string")return x(We(i.data));if(i.isArray()){let a=0;for await(const o of i)a++;return x(a)}return f},b.length.arity=1,b.path=async function(e,n,r){const i=await r(e[0],n);return i.type!=="string"?f:Ie(new he(i.data))},b.path.arity=1,b.string=async function(e,n,r){const i=await r(e[0],n);switch(i.type){case"number":case"string":case"boolean":case"datetime":return T(`${i.data}`);default:return f}},b.string.arity=1,b.references=async function(e,n,r){const i=new Set;for(const o of e){const c=await r(o,n);if(c.type==="string")i.add(c.data);else if(c.isArray())for await(const d of c)d.type==="string"&&i.add(d.data)}if(i.size===0)return w;const a=await n.value.get();return oe(a,i)?k:w},b.references.arity=t=>t>=1,b.round=async function(e,n,r){const i=await r(e[0],n);if(i.type!=="number")return f;const a=i.data;let o=0;if(e.length===2){const c=await r(e[1],n);if(c.type!=="number"||c.data<0||!Number.isInteger(c.data))return f;o=c.data}return o===0?a<0?x(-Math.round(-a)):x(Math.round(a)):x(Number(a.toFixed(o)))},b.round.arity=t=>t>=1&&t<=2,b.now=async function(e,n){return T(n.context.timestamp.toISOString())},b.now.arity=0,b.boost=async function(){throw new Error("unexpected boost call")},b.boost.arity=2;const $={};$.lower=async function(t,e,n){const r=await n(t[0],e);return r.type!=="string"?f:T(r.data.toLowerCase())},$.lower.arity=1,$.upper=async function(t,e,n){const r=await n(t[0],e);return r.type!=="string"?f:T(r.data.toUpperCase())},$.upper.arity=1,b.lower=$.lower,b.upper=$.upper;const se={};se.text=async function(t,e,n){const r=await n(t[0],e),i=await Qe(r);return i===null?f:T(i)},se.text.arity=1;const ce={};ce.projectId=async function(t,e){return e.context.sanity?T(e.context.sanity.projectId):f},ce.dataset=async function(t,e){return e.context.sanity?T(e.context.sanity.dataset):f};const B={};B.order=async function(e,n,r,i){if(await!0,!e.isArray())return f;const a=[],o=[];let c=0;for(let m of n){let u="asc";m.type==="Desc"?(u="desc",m=m.base):m.type==="Asc"&&(m=m.base),a.push(m),o.push(u),c++}const d=[];let s=0;for await(const m of e){const u=r.createNested(m),p=[await m.get(),s];for(let _=0;_<c;_++){const D=await i(a[_],u);p.push(await D.get())}d.push(p),s++}return d.sort((m,u)=>{for(let p=0;p<c;p++){let _=Fe(m[p+2],u[p+2]);if(o[p]==="desc"&&(_=-_),_!==0)return _}return m[1]-u[1]}),S(d.map(m=>m[0]))},B.order.arity=t=>t>=1,B.score=async function(e,n,r,i){if(!e.isArray())return f;const a=[],o=[];for await(const c of e){if(c.type!=="object"){a.push(await c.get());continue}const d=r.createNested(c);let s=typeof c.data._score=="number"?c.data._score:0;for(const u of n)s+=await L(u,d,i);const m=Object.assign({},c.data,{_score:s});o.push(m)}return o.sort((c,d)=>d._score-c._score),S(o)},B.score.arity=t=>t>=1;const R={};R.operation=async function(t,e){const n=e.context.before!==null,r=e.context.after!==null;return n&&r?T("update"):r?T("create"):n?T("delete"):f},R.changedAny=()=>{throw new Error("not implemented")},R.changedAny.arity=1,R.changedAny.mode="delta",R.changedOnly=()=>{throw new Error("not implemented")},R.changedOnly.arity=1,R.changedOnly.mode="delta";const G={};G.changedAny=()=>{throw new Error("not implemented")},G.changedAny.arity=3,G.changedOnly=()=>{throw new Error("not implemented")},G.changedOnly.arity=3;const Ze={global:b,string:$,pt:se,delta:R,diff:G,sanity:ce},Xe=/^([\t\n\v\f\r \u0085\u00A0]|(\/\/[^\n]+\n))+/,ue=/^\d+/,U=/^[a-zA-Z_][a-zA-Z_0-9]*/,J=1,Q=2,W=3,g=4,F=4,Z=6,X=6,Y=7,K=7,ee=7,te=8,Ye=10,Ke=10,et=8;function tt(t){let e=0;e=l(t,e);let n=h(t,e,0);return n.type==="error"?n:(e=l(t,n.position),e!==t.length?(n.failPosition&&(e=n.failPosition-1),{type:"error",position:e}):(delete n.position,delete n.failPosition,n))}function h(t,e,n){let r=e,i=t[e],a;switch(i){case"+":{let s=h(t,l(t,e+1),Ye);if(s.type==="error")return s;a=[{name:"pos",position:r}].concat(s.marks),e=s.position;break}case"-":{let s=h(t,l(t,e+1),et);if(s.type==="error")return s;a=[{name:"neg",position:r}].concat(s.marks),e=s.position;break}case"(":{let s=h(t,l(t,e+1),0);if(s.type==="error")return s;switch(e=l(t,s.position),t[e]){case",":{for(a=[{name:"tuple",position:r}].concat(s.marks),e=l(t,e+1);;){if(s=h(t,e,0),s.type==="error")return s;if(e=l(t,s.position),t[e]!==",")break;e=l(t,e+1)}if(t[e]!==")")return{type:"error",position:e};e++,a.push({name:"tuple_end",position:e});break}case")":{e++,a=[{name:"group",position:r}].concat(s.marks);break}default:return{type:"error",position:e}}break}case"!":{let s=h(t,l(t,e+1),Ke);if(s.type==="error")return s;a=[{name:"not",position:r}].concat(s.marks),e=s.position;break}case"{":{let s=fe(t,e);if(s.type==="error")return s;a=s.marks,e=s.position;break}case"[":if(a=[{name:"array",position:e}],e=l(t,e+1),t[e]!=="]")for(;;){t.slice(e,e+3)==="..."&&(a.push({name:"array_splat",position:e}),e=l(t,e+3));let s=h(t,e,0);if(s.type==="error")return s;if(a=a.concat(s.marks),e=s.position,e=l(t,e),t[e]!==","||(e=l(t,e+1),t[e]==="]"))break}if(t[e]==="]")e++,a.push({name:"array_end",position:e});else return{type:"error",position:e};break;case"'":case'"':{let s=xe(t,e);if(s.type==="error")return s;a=s.marks,e=s.position;break}case"^":{for(e++,a=[];t[e]==="."&&t[e+1]==="^";)a.push({name:"dblparent",position:r}),e+=2;a.push({name:"parent",position:r});break}case"@":a=[{name:"this",position:r}],e++;break;case"*":a=[{name:"everything",position:r}],e++;break;case"$":{let s=P(t,e+1,U);s&&(e+=1+s,a=[{name:"param",position:r},{name:"ident",position:r+1},{name:"ident_end",position:e}]);break}default:{let s=P(t,e,ue);if(s){e+=s;let u="integer";if(t[e]==="."){let p=P(t,e+1,ue);p&&(u="float",e+=1+p)}if(t[e]==="e"||t[e]==="E"){u="sci",e++,(t[e]==="+"||t[e]==="-")&&e++;let p=P(t,e,ue);if(!p)return{type:"error",position:e};e+=p}a=[{name:u,position:r},{name:u+"_end",position:e}];break}let m=P(t,e,U);if(m){switch(e+=m,t[e]){case":":case"(":{let u=Ce(t,r,e);if(u.type==="error")return u;a=u.marks,e=u.position;break}default:a=[{name:"this_attr",position:r},{name:"ident",position:r},{name:"ident_end",position:e}]}break}}}if(!a)return{type:"error",position:e};let o=12,c;e:for(;;){let s=l(t,e);if(s===t.length){e=s;break}if(c=ve(t,s),c.type==="success"){for(a.unshift({name:"traverse",position:r});c.type==="success";)a=a.concat(c.marks),e=c.position,c=ve(t,l(t,e));a.push({name:"traversal_end",position:e});continue}switch(t[s]){case"=":{switch(t[s+1]){case">":{if(n>J||o<=J)break e;let p=h(t,l(t,s+2),J);if(p.type==="error")return p;a=a.concat(p.marks),a.unshift({name:"pair",position:r}),e=p.position,o=J;break}case"=":{if(n>g||o<=g)break e;let p=h(t,l(t,s+2),5);if(p.type==="error")return p;a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:s+2}),a=a.concat(p.marks),e=p.position,o=g;break}default:break e}break}case"+":{if(n>Z||o<Z)break e;let u=h(t,l(t,s+1),Z+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"add",position:r}),e=u.position,o=Z;break}case"-":{if(n>X||o<X)break e;let u=h(t,l(t,s+1),X+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"sub",position:r}),e=u.position,o=X;break}case"*":{if(t[s+1]==="*"){if(n>te||o<=te)break e;let p=h(t,l(t,s+2),te);if(p.type==="error")return p;a=a.concat(p.marks),a.unshift({name:"pow",position:r}),e=p.position,o=te;break}if(n>Y||o<Y)break e;let u=h(t,l(t,s+1),Y+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"mul",position:r}),e=u.position,o=Y;break}case"/":{if(n>K||o<K)break e;let u=h(t,l(t,s+1),K+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"div",position:r}),e=u.position,o=K;break}case"%":{if(n>ee||o<ee)break e;let u=h(t,l(t,s+1),ee+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"mod",position:r}),e=u.position,o=ee;break}case"<":case">":{if(n>g||o<=g)break e;let u=s+1;t[u]==="="&&u++;let p=h(t,l(t,u),g+1);if(p.type==="error")return p;a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:u}),a=a.concat(p.marks),e=p.position,o=g;break}case"|":{if(t[s+1]==="|"){if(n>Q||o<Q)break e;let u=h(t,l(t,s+2),Q+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"or",position:r}),e=u.position,o=Q}else{if(n>11||o<11)break e;let u=l(t,s+1),p=P(t,u,U);if(!p)return{type:"error",position:u};if(e=u+p,t[e]==="("||t[e]===":"){let _=Ce(t,u,e);if(_.type==="error")return _;a=a.concat(_.marks),a.unshift({name:"pipecall",position:r}),e=_.position,o=11}}break}case"&":{if(t[s+1]!="&"||n>W||o<W)break e;let u=h(t,l(t,s+2),W+1);if(u.type==="error")return u;a=a.concat(u.marks),a.unshift({name:"and",position:r}),e=u.position,o=W;break}case"!":{if(t[s+1]!=="="||n>g||o<g)break e;let u=h(t,l(t,s+2),g+1);if(u.type==="error")return u;a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:s+2}),a=a.concat(u.marks),e=u.position,o=g;break}case"d":{if(t.slice(s,s+4)!=="desc"||n>F||o<F)break e;a.unshift({name:"desc",position:r}),e=s+4,o=F;break}case"a":{if(t.slice(s,s+3)!=="asc"||n>F||o<F)break e;a.unshift({name:"asc",position:r}),e=s+3,o=F;break}default:switch(nt(t,s,U)){case"in":{if(n>g||o<=g)break e;e=l(t,s+2);let p=!1;t[e]==="("&&(p=!0,e=l(t,e+1));let _=e,D=h(t,e,g+1);if(D.type==="error")return D;if(e=l(t,D.position),t[e]==="."&&t[e+1]==="."){let Re="inc_range";t[e+2]==="."?(Re="exc_range",e=l(t,e+3)):e=l(t,e+2);let ae=h(t,e,g+1);if(ae.type==="error")return ae;a.unshift({name:"in_range",position:r}),a=a.concat({name:Re,position:_},D.marks,ae.marks),e=ae.position}else a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:s+2}),a=a.concat(D.marks);if(p){if(e=l(t,e),t[e]!==")")return{type:"error",position:e};e++}o=g;break}case"match":{if(n>g||o<=g)break e;let p=h(t,l(t,s+5),g+1);if(p.type==="error")return p;a.unshift({name:"comp",position:r}),a.push({name:"op",position:s},{name:"op_end",position:s+5}),a=a.concat(p.marks),e=p.position,o=4;break}default:break e}}}let d=(c==null?void 0:c.type)==="error"&&c.position;return{type:"success",marks:a,position:e,failPosition:d}}function ve(t,e){let n=e;switch(t[e]){case".":{e=l(t,e+1);let o=e,c=P(t,e,U);return c?(e+=c,{type:"success",marks:[{name:"attr_access",position:n},{name:"ident",position:o},{name:"ident_end",position:e}],position:e}):{type:"error",position:e}}case"-":if(t[e+1]!==">")return{type:"error",position:e};let r=[{name:"deref",position:n}];e+=2;let i=l(t,e),a=P(t,i,U);return a&&(e=i+a,r.push({name:"deref_attr",position:i},{name:"ident",position:i},{name:"ident_end",position:e})),{type:"success",marks:r,position:e};case"[":{if(e=l(t,e+1),t[e]==="]")return{type:"success",marks:[{name:"array_postfix",position:n}],position:e+1};let o=e,c=h(t,e,0);if(c.type==="error")return c;if(e=l(t,c.position),t[e]==="."&&t[e+1]==="."){let d="inc_range";t[e+2]==="."?(d="exc_range",e+=3):e+=2,e=l(t,e);let s=h(t,e,0);return s.type==="error"?s:(e=l(t,s.position),t[e]!=="]"?{type:"error",position:e}:{type:"success",marks:[{name:"slice",position:n},{name:d,position:o}].concat(c.marks,s.marks),position:e+1})}return t[e]!=="]"?{type:"error",position:e}:{type:"success",marks:[{name:"square_bracket",position:n}].concat(c.marks),position:e+1}}case"|":{if(e=l(t,e+1),t[e]==="{"){let o=fe(t,e);return o.type==="error"||o.marks.unshift({name:"projection",position:n}),o}break}case"{":{let o=fe(t,e);return o.type==="error"||o.marks.unshift({name:"projection",position:n}),o}}return{type:"error",position:e}}function Ce(t,e,n){let r=[];if(r.push({name:"func_call",position:e}),t[n]===":"&&t[n+1]===":"){r.push({name:"namespace",position:e}),r.push({name:"ident",position:e},{name:"ident_end",position:n}),n=l(t,n+2);let a=P(t,n,U);if(!a)return{type:"error",position:n};if(r.push({name:"ident",position:n},{name:"ident_end",position:n+a}),n=l(t,n+a),t[n]!=="(")return{type:"error",position:n};n++}else r.push({name:"ident",position:e},{name:"ident_end",position:n}),n=l(t,n+1);let i=n;if(t[n]!==")")for(;;){let a=h(t,n,0);if(a.type==="error")return a;if(r=r.concat(a.marks),i=a.position,n=l(t,a.position),t[n]!==",")break;n=l(t,n+1)}return t[n]!==")"?{type:"error",position:n}:(r.push({name:"func_args_end",position:i}),{type:"success",marks:r,position:n+1})}function fe(t,e){let n=[{name:"object",position:e}];e=l(t,e+1);e:for(;t[e]!=="}";){let r=e;switch(t[e]){case'"':case"'":{let i=xe(t,e);if(i.type==="error")return i;if(e=l(t,i.position),t[e]!==":")return{type:"error",position:e};let a=h(t,l(t,e+1),0);if(a.type==="error")return a;n.push({name:"object_pair",position:r}),n=n.concat(i.marks,a.marks),e=a.position;break}case".":{if(t.slice(e,e+3)==="...")if(e=l(t,e+3),t[e]!=="}"&&t[e]!==","){let i=h(t,e,0);if(i.type==="error")return i;n.push({name:"object_splat",position:r}),n=n.concat(i.marks),e=i.position;break}else{n.push({name:"object_splat_this",position:r});break}break e}default:{let i=h(t,e,0);if(i.type==="error")return i;n=n.concat({name:"object_expr",position:e},i.marks),e=i.position}}if(e=l(t,e),t[e]!==",")break;e=l(t,e+1)}return t[e]!=="}"?{type:"error",position:e}:(e++,n.push({name:"object_end",position:e}),{type:"success",marks:n,position:e})}function xe(t,e){let n=t[e];e=e+1;const r=[{name:"str",position:e}];e:for(;;e++){if(e>t.length)return{type:"error",position:e};switch(t[e]){case n:{r.push({name:"str_end",position:e}),e++;break e}case"\\":r.push({name:"str_pause",position:e}),t[e+1]==="u"?t[e+2]==="{"?(r.push({name:"unicode_hex",position:e+3}),e=t.indexOf("}",e+3),r.push({name:"unicode_hex_end",position:e}),e++):(r.push({name:"unicode_hex",position:e+2}),r.push({name:"unicode_hex_end",position:e+6}),e+=5):(r.push({name:"single_escape",position:e+1}),e+=1),r.push({name:"str_start",position:e+1})}}return{type:"success",marks:r,position:e}}function l(t,e){return e+P(t,e,Xe)}function P(t,e,n){let r=n.exec(t.slice(e));return r?r[0].length:0}function nt(t,e,n){let r=n.exec(t.slice(e));return r?r[0]:null}function O(t,e){return n=>e(t(n))}function le(t){return e=>({type:"Map",base:e,expr:t({type:"This"})})}function rt(t){return e=>({type:"FlatMap",base:e,expr:t({type:"This"})})}function ne(t,e){if(!e)return{type:"a-a",build:t};switch(e.type){case"a-a":return{type:"a-a",build:O(t,e.build)};case"a-b":return{type:"a-b",build:O(t,e.build)};case"b-b":return{type:"a-a",build:O(t,le(e.build))};case"b-a":return{type:"a-a",build:O(t,rt(e.build))};default:throw new Error(`unknown type: ${e.type}`)}}function ye(t,e){if(!e)return{type:"b-b",build:t};switch(e.type){case"a-a":case"b-a":return{type:"b-a",build:O(t,e.build)};case"a-b":case"b-b":return{type:"b-b",build:O(t,e.build)};default:throw new Error(`unknown type: ${e.type}`)}}function at(t,e){if(!e)return{type:"a-b",build:t};switch(e.type){case"a-a":case"b-a":return{type:"a-a",build:O(t,e.build)};case"a-b":case"b-b":return{type:"a-b",build:O(t,e.build)};default:throw new Error(`unknown type: ${e.type}`)}}function it(t,e){if(!e)return{type:"b-b",build:t};switch(e.type){case"a-a":return{type:"a-a",build:O(le(t),e.build)};case"a-b":return{type:"a-b",build:O(le(t),e.build)};case"b-a":return{type:"b-a",build:O(t,e.build)};case"b-b":return{type:"b-b",build:O(t,e.build)};default:throw new Error(`unknown type: ${e.type}`)}}const pe=ot;function ot(t,e){return t.type==="string"&&e.type==="string"||t.type==="boolean"&&e.type==="boolean"||t.type==="null"&&e.type==="null"||t.type==="number"&&e.type==="number"?t.data===e.data:t.type==="datetime"&&e.type==="datetime"?t.data.equals(e.data):!1}const st={"==":function(e,n){return pe(e,n)?k:w},"!=":function(e,n){return pe(e,n)?w:k},">":function(e,n){if(e.type==="stream"||n.type==="stream")return f;const r=M(e.data,n.data);return r===null?f:r>0?k:w},">=":function(e,n){if(e.type==="stream"||n.type==="stream")return f;const r=M(e.data,n.data);return r===null?f:r>=0?k:w},"<":function(e,n){if(e.type==="stream"||n.type==="stream")return f;const r=M(e.data,n.data);return r===null?f:r<0?k:w},"<=":function(e,n){if(e.type==="stream"||n.type==="stream")return f;const r=M(e.data,n.data);return r===null?f:r<=0?k:w},in:async function(e,n){if(n.type==="path")return e.type!=="string"?f:n.data.matches(e.data)?k:w;if(n.isArray()){for await(const r of n)if(pe(e,r))return k;return w}return f},match:async function(e,n){let r=[],i=[];return await z(e,c=>{r=r.concat(ke(c))}),await z(n,c=>{i=i.concat(ze(c))})&&He(r,i)?k:w},"+":function(e,n){return e.type==="datetime"&&n.type==="number"?be(e.data.add(n.data)):e.type==="number"&&n.type==="number"?x(e.data+n.data):e.type==="string"&&n.type==="string"?T(e.data+n.data):e.type==="object"&&n.type==="object"?S(ie(ie({},e.data),n.data)):e.type==="array"&&n.type==="array"?S(e.data.concat(n.data)):e.isArray()&&n.isArray()?new N(async function*(){for await(const r of e)yield r;for await(const r of n)yield r}):f},"-":function(e,n){return e.type==="datetime"&&n.type==="number"?be(e.data.add(-n.data)):e.type==="datetime"&&n.type==="datetime"?x(e.data.difference(n.data)):e.type==="number"&&n.type==="number"?x(e.data-n.data):f},"*":re((t,e)=>t*e),"/":re((t,e)=>t/e),"%":re((t,e)=>t%e),"**":re((t,e)=>Math.pow(t,e))};function re(t){return function(e,n){if(e.type==="number"&&n.type==="number"){const r=t(e.data,n.data);return x(r)}return f}}class H{constructor(e,n,r,i,a){this.isHidden=!1,this.params=e,this.source=n,this.value=r,this.context=i,this.parent=a}createNested(e){return this.isHidden?new H(this.params,this.source,e,this.context,this.parent):new H(this.params,this.source,e,this.context,this)}createHidden(e){const n=this.createNested(e);return n.isHidden=!0,n}}function de(t,e,n=de){return ct[t.type](t,e,n)}function Te(t,e){return"then"in t?t.then(e):e(t)}const ct={This(t,e){return e.value},Everything(t,e){return e.source},Parameter({name:t},e){return S(e.params[t])},Context({key:t},e){if(t==="before"||t==="after")return e.context[t]||f;throw new Error(`unknown context key: ${t}`)},Parent({n:t},e){let n=e;for(let r=0;r<t;r++){if(!n.parent)return f;n=n.parent}return n.value},OpCall({op:t,left:e,right:n},r,i){const a=st[t];if(!a)throw new Error(`Unknown operator: ${t}`);const o=i(e,r),c=i(n,r);return"then"in o||"then"in c?(async()=>a(await o,await c))():a(o,c)},async Select({alternatives:t,fallback:e},n,r){for(const i of t){const a=await r(i.condition,n);if(a.type==="boolean"&&a.data===!0)return r(i.value,n)}return e?r(e,n):f},async InRange({base:t,left:e,right:n,isInclusive:r},i,a){const o=await a(t,i),c=await a(e,i),d=await a(n,i),s=M(await o.get(),await c.get());if(s===null)return f;const m=M(await o.get(),await d.get());return m===null?f:r?s>=0&&m<=0?k:w:s>=0&&m<0?k:w},async Filter({base:t,expr:e},n,r){const i=await r(t,n);return i.isArray()?new N(async function*(){for await(const a of i){const o=n.createNested(a),c=await r(e,o);c.type==="boolean"&&c.data===!0&&(yield a)}}):f},async Projection({base:t,expr:e},n,r){const i=await r(t,n);if(i.type!=="object")return f;const a=n.createNested(i);return r(e,a)},FuncCall({func:t,args:e},n,r){return t(e,n,r)},async PipeFuncCall({func:t,base:e,args:n},r,i){const a=await i(e,r);return t(a,n,r,i)},async AccessAttribute({base:t,name:e},n,r){let i=n.value;return t&&(i=await r(t,n)),i.type==="object"&&i.data.hasOwnProperty(e)?S(i.data[e]):f},async AccessElement({base:t,index:e},n,r){const i=await r(t,n);if(!i.isArray())return f;const a=await i.get(),o=e<0?e+a.length:e;return S(a[o])},async Slice({base:t,left:e,right:n,isInclusive:r},i,a){const o=await a(t,i);if(!o.isArray())return f;const c=await o.get();let d=e,s=n;return d<0&&(d=c.length+d),s<0&&(s=c.length+s),r&&s++,d<0&&(d=0),s<0&&(s=0),S(c.slice(d,s))},async Deref({base:t},e,n){const r=await n(t,e);if(!e.source.isArray()||r.type!=="object")return f;const i=r.data._ref;if(typeof i!="string")return f;for await(const a of e.source)if(a.type==="object"&&i===a.data._id)return a;return f},Value({value:t}){return S(t)},Group({base:t},e,n){return n(t,e)},async Object({attributes:t},e,n){const r={};for(const i of t){const a=i.type;switch(i.type){case"ObjectAttributeValue":{const o=await n(i.value,e);r[i.name]=await o.get();break}case"ObjectConditionalSplat":{const o=await n(i.condition,e);if(o.type!=="boolean"||o.data===!1)continue;const c=await n(i.value,e);c.type==="object"&&Object.assign(r,c.data);break}case"ObjectSplat":{const o=await n(i.value,e);o.type==="object"&&Object.assign(r,o.data);break}default:throw new Error(`Unknown node type: ${a}`)}}return S(r)},Array({elements:t},e,n){return new N(async function*(){for(const r of t){const i=await n(r.value,e);if(r.isSplat){if(i.isArray())for await(const a of i)yield a}else yield i}})},Tuple(){throw new Error("tuples can not be evaluated")},async Or({left:t,right:e},n,r){const i=await r(t,n),a=await r(e,n);return i.type==="boolean"&&i.data===!0||a.type==="boolean"&&a.data===!0?k:i.type!=="boolean"||a.type!=="boolean"?f:w},async And({left:t,right:e},n,r){const i=await r(t,n),a=await r(e,n);return i.type==="boolean"&&i.data===!1||a.type==="boolean"&&a.data===!1?w:i.type!=="boolean"||a.type!=="boolean"?f:k},async Not({base:t},e,n){const r=await n(t,e);return r.type!=="boolean"?f:r.data?w:k},Neg({base:t},e,n){return Te(n(t,e),r=>r.type!=="number"?f:x(-r.data))},Pos({base:t},e,n){return Te(n(t,e),r=>r.type!=="number"?f:x(r.data))},Asc(){return f},Desc(){return f},async ArrayCoerce({base:t},e,n){const r=await n(t,e);return r.isArray()?r:f},async Map({base:t,expr:e},n,r){const i=await r(t,n);return i.isArray()?new N(async function*(){for await(const a of i){const o=n.createHidden(a);yield await r(e,o)}}):f},async FlatMap({base:t,expr:e},n,r){const i=await r(t,n);return i.isArray()?new N(async function*(){for await(const a of i){const o=n.createHidden(a),c=await r(e,o);if(c.isArray())for await(const d of c)yield d;else yield c}}):f}};function ut(t,e={}){const n=S(e.root),r=S(e.dataset),i=ie({},e.params),a=new H(i,r,n,{timestamp:e.timestamp||new Date,identity:e.identity===void 0?"me":e.identity,sanity:e.sanity,after:e.after?S(e.after):null,before:e.before?S(e.before):null},null);return de(t,a)}function ft(t){switch(t.type){case"Group":case"Value":case"Parameter":case"Pos":case"Neg":return!0;case"OpCall":switch(t.op){case"+":case"-":case"*":case"/":case"%":case"**":return!0;default:return!1}default:return!1}}const lt=new H({},f,f,{timestamp:new Date(0),identity:"me",before:null,after:null},null);class yt extends Error{constructor(){super(...arguments);this.name="ConstantEvaluateError"}}function me(t){try{return Oe(t)}catch(e){if(e.name==="ConstantEvaluateError")return null;throw e}}function Oe(t){if(!ft(t))throw new yt("cannot constant evaluate");const e=de(t,lt,Oe);if("then"in e)throw new Error("BUG: constant evaluate should never return a promise");return e}const pt={"'":"'",'"':'"',"\\":"\\","/":"/",b:"\b",f:"\f",n:` | ||
`,r:"\r",t:" "};function dt(t){const e=parseInt(t,16);return String.fromCharCode(e)}class v extends Error{constructor(){super(...arguments);this.name="GroqQueryError"}}const y={group(t){const e=t.process(y);return{type:"Group",base:e}},everything(){return{type:"Everything"}},this(){return{type:"This"}},parent(){return{type:"Parent",n:1}},dblparent(t){const e=t.process(y);return{type:"Parent",n:e.n+1}},traverse(t){const e=t.process(y),n=[];for(;t.getMark().name!=="traversal_end";)n.push(t.process(ht));t.shift();let r=null;for(let i=n.length-1;i>=0;i--)r=n[i](r);if((e.type==="Everything"||e.type==="Array"||e.type==="PipeFuncCall")&&(r=ne(i=>i,r)),r===null)throw new Error("BUG: unexpected empty traversal");return r.build(e)},this_attr(t){const e=t.processString();return e==="null"?{type:"Value",value:null}:e==="true"?{type:"Value",value:!0}:e==="false"?{type:"Value",value:!1}:{type:"AccessAttribute",name:e}},neg(t){const e=t.process(y);return{type:"Neg",base:e}},pos(t){const e=t.process(y);return{type:"Pos",base:e}},add(t){const e=t.process(y),n=t.process(y);return{type:"OpCall",op:"+",left:e,right:n}},sub(t){const e=t.process(y),n=t.process(y);return{type:"OpCall",op:"-",left:e,right:n}},mul(t){const e=t.process(y),n=t.process(y);return{type:"OpCall",op:"*",left:e,right:n}},div(t){const e=t.process(y),n=t.process(y);return{type:"OpCall",op:"/",left:e,right:n}},mod(t){const e=t.process(y),n=t.process(y);return{type:"OpCall",op:"%",left:e,right:n}},pow(t){const e=t.process(y),n=t.process(y);return{type:"OpCall",op:"**",left:e,right:n}},comp(t){const e=t.process(y),n=t.processString(),r=t.process(y);return{type:"OpCall",op:n,left:e,right:r}},in_range(t){const e=t.process(y),n=t.getMark().name==="inc_range";t.shift();const r=t.process(y),i=t.process(y);return{type:"InRange",base:e,left:r,right:i,isInclusive:n}},str(t){let e="";e:for(;t.hasMark();){const n=t.getMark();switch(n.name){case"str_end":e+=t.processStringEnd();break e;case"str_pause":e+=t.processStringEnd();break;case"str_start":t.shift();break;case"single_escape":{const r=t.slice(1);t.shift(),e+=pt[r];break}case"unicode_hex":t.shift(),e+=dt(t.processStringEnd());break;default:throw new Error(`unexpected mark: ${n.name}`)}}return{type:"Value",value:e}},integer(t){const e=t.processStringEnd();return{type:"Value",value:Number(e)}},float(t){const e=t.processStringEnd();return{type:"Value",value:Number(e)}},sci(t){const e=t.processStringEnd();return{type:"Value",value:Number(e)}},object(t){const e=[];for(;t.getMark().name!=="object_end";)e.push(t.process(mt));return t.shift(),{type:"Object",attributes:e}},array(t){const e=[];for(;t.getMark().name!=="array_end";){let n=!1;t.getMark().name==="array_splat"&&(n=!0,t.shift());const r=t.process(y);e.push({type:"ArrayElement",value:r,isSplat:n})}return t.shift(),{type:"Array",elements:e}},tuple(t){const e=[];for(;t.getMark().name!=="tuple_end";)e.push(t.process(y));return t.shift(),{type:"Tuple",members:e}},func_call(t){let e="global";t.getMark().name==="namespace"&&(t.shift(),e=t.processString());const n=t.processString();if(e==="global"&&n==="select"){const o={type:"Select",alternatives:[]};for(;t.getMark().name!=="func_args_end";)if(t.getMark().name==="pair"){if(o.fallback)throw new v("unexpected argument to select()");t.shift();const c=t.process(y),d=t.process(y);o.alternatives.push({type:"SelectAlternative",condition:c,value:d})}else{if(o.fallback)throw new v("unexpected argument to select()");const c=t.process(y);o.fallback=c}return t.shift(),o}const r=[];for(;t.getMark().name!=="func_args_end";)r.push(t.process(y));if(t.shift(),e==="global"&&(n==="before"||n==="after")&&t.parseOptions.mode==="delta")return{type:"Context",key:n};if(e==="global"&&n==="boost"&&!t.allowBoost)throw new v("unexpected boost");const i=Ze[e];if(!i)throw new v(`Undefined namespace: ${e}`);const a=i[n];if(!a)throw new v(`Undefined function: ${n}`);if(a.arity!==void 0&&je(n,a.arity,r.length),a.mode!==void 0&&a.mode!==t.parseOptions.mode)throw new v(`Undefined function: ${n}`);return{type:"FuncCall",func:a,name:n,args:r}},pipecall(t){const e=t.process(y);t.shift();let n="global";if(t.getMark().name==="namespace"&&(t.shift(),n=t.processString()),n!=="global")throw new v(`Undefined namespace: ${n}`);const r=t.processString(),i=[],a=t.allowBoost;for(r==="score"&&(t.allowBoost=!0);;){const c=t.getMark().name;if(c==="func_args_end")break;if(r==="order"){if(c==="asc"){t.shift(),i.push({type:"Asc",base:t.process(y)});continue}else if(c==="desc"){t.shift(),i.push({type:"Desc",base:t.process(y)});continue}}i.push(t.process(y))}t.shift(),t.allowBoost=a;const o=B[r];if(!o)throw new v(`Undefined pipe function: ${r}`);return o.arity&&je(r,o.arity,i.length),{type:"PipeFuncCall",func:o,base:e,name:r,args:i}},pair(t){throw new v("unexpected =>")},and(t){const e=t.process(y),n=t.process(y);return{type:"And",left:e,right:n}},or(t){const e=t.process(y),n=t.process(y);return{type:"Or",left:e,right:n}},not(t){const e=t.process(y);return{type:"Not",base:e}},asc(t){throw new v("unexpected asc")},desc(t){throw new v("unexpected desc")},param(t){const e=t.processString();return t.parseOptions.params&&t.parseOptions.params.hasOwnProperty(e)?{type:"Value",value:t.parseOptions.params[e]}:{type:"Parameter",name:e}}},mt={object_expr(t){if(t.getMark().name==="pair"){t.shift();const n=t.process(y),r=t.process(y);return{type:"ObjectConditionalSplat",condition:n,value:r}}const e=t.process(y);return{type:"ObjectAttributeValue",name:Pe(e),value:e}},object_pair(t){const e=t.process(y);if(e.type!=="Value")throw new Error("name must be string");const n=t.process(y);return{type:"ObjectAttributeValue",name:e.value,value:n}},object_splat(t){const e=t.process(y);return{type:"ObjectSplat",value:e}},object_splat_this(){return{type:"ObjectSplat",value:{type:"This"}}}},ht={square_bracket(t){const e=t.process(y),n=me(e);return n&&n.type==="number"?r=>at(i=>({type:"AccessElement",base:i,index:n.data}),r):n&&n.type==="string"?r=>ye(i=>({type:"AccessAttribute",base:i,name:n.data}),r):r=>ne(i=>({type:"Filter",base:i,expr:e}),r)},slice(t){const e=t.getMark().name==="inc_range";t.shift();const n=t.process(y),r=t.process(y),i=me(n),a=me(r);if(!i||!a||i.type!=="number"||a.type!=="number")throw new v("slicing must use constant numbers");return o=>ne(c=>({type:"Slice",base:c,left:i.data,right:a.data,isInclusive:e}),o)},projection(t){const e=t.process(y);return n=>it(r=>({type:"Projection",base:r,expr:e}),n)},attr_access(t){const e=t.processString();return n=>ye(r=>({type:"AccessAttribute",base:r,name:e}),n)},deref(t){let e=null;t.getMark().name==="deref_attr"&&(t.shift(),e=t.processString());const n=r=>e?{type:"AccessAttribute",base:r,name:e}:r;return r=>ye(i=>n({type:"Deref",base:i}),r)},array_postfix(t){return e=>ne(n=>({type:"ArrayCoerce",base:n}),e)}};function Pe(t){if(t.type==="AccessAttribute"&&!t.base)return t.name;if(t.type==="Deref"||t.type==="Map"||t.type==="Projection"||t.type==="Slice"||t.type==="Filter"||t.type==="AccessElement"||t.type==="ArrayCoerce")return Pe(t.base);throw new v(`Cannot determine property key for type: ${t.type}`)}function je(t,e,n){if(typeof e=="number"){if(n!==e)throw new v(`Incorrect number of arguments to function ${t}(). Expected ${e}, got ${n}.`)}else if(e&&!e(n))throw new v(`Incorrect number of arguments to function ${t}().`)}class bt extends Error{constructor(e){super(`Syntax error in GROQ query at position ${e}`);this.name="GroqSyntaxError",this.position=e}}function wt(t,e={}){const n=tt(t);if(n.type==="error")throw new bt(n.position);return new A(t,n.marks,e).process(y)}E.evaluate=ut,E.parse=wt,Object.defineProperty(E,"__esModule",{value:!0}),E[Symbol.toStringTag]="Module"}); | ||
//# sourceMappingURL=groq-js.umd.js.map |
{ | ||
"name": "groq-js", | ||
"version": "0.4.0-beta.0", | ||
"version": "0.4.0-beta.1", | ||
"license": "MIT", | ||
@@ -5,0 +5,0 @@ "author": "Sanity.io <hello@sanity.io>", |
@@ -0,1 +1,3 @@ | ||
'use strict' | ||
const WS = /^([\t\n\v\f\r \u0085\u00A0]|(\/\/[^\n]+\n))+/ | ||
@@ -760,3 +762,3 @@ const NUM = /^\d+/ | ||
pos = pos + 1 | ||
marks = [{name: 'str', position: pos}] | ||
const marks = [{name: 'str', position: pos}] | ||
str: for (; ; pos++) { | ||
@@ -763,0 +765,0 @@ if (pos > str.length) return {type: 'error', position: pos} |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
6341
1
298069