@graffy/common 0.15.7 → 0.15.8-alpha.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs +1 -0
- package/index.mjs +1 -0
- package/package.json +12 -8
- package/cjs/coding/alphabet.js +0 -12
- package/cjs/coding/args.js +0 -151
- package/cjs/coding/base64.js +0 -61
- package/cjs/coding/decodeTree.js +0 -253
- package/cjs/coding/decorate.js +0 -279
- package/cjs/coding/encodeTree.js +0 -278
- package/cjs/coding/id.js +0 -16
- package/cjs/coding/index.js +0 -83
- package/cjs/coding/number.js +0 -43
- package/cjs/coding/path.js +0 -76
- package/cjs/coding/serialize.js +0 -17
- package/cjs/coding/string.js +0 -27
- package/cjs/coding/struct.js +0 -209
- package/cjs/coding/url.js +0 -47
- package/cjs/index.js +0 -57
- package/cjs/node/find.js +0 -24
- package/cjs/node/index.js +0 -25
- package/cjs/node/types.js +0 -38
- package/cjs/object.js +0 -128
- package/cjs/ops/add.js +0 -106
- package/cjs/ops/finalize.js +0 -31
- package/cjs/ops/getKnown.js +0 -64
- package/cjs/ops/index.js +0 -67
- package/cjs/ops/merge.js +0 -177
- package/cjs/ops/path.js +0 -140
- package/cjs/ops/setVersion.js +0 -54
- package/cjs/ops/sieve.js +0 -273
- package/cjs/ops/slice.js +0 -228
- package/cjs/ops/step.js +0 -56
- package/cjs/provider/index.js +0 -26
- package/cjs/stream/index.js +0 -14
- package/cjs/stream/makeWatcher.js +0 -64
- package/cjs/stream/mergeStreams.js +0 -148
- package/cjs/util.js +0 -83
package/index.cjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";var e=Object.defineProperty,r=Object.defineProperties,n=Object.getOwnPropertyDescriptors,t=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,s=(r,n,t)=>n in r?e(r,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[n]=t,c=(e,r)=>{for(var n in r||(r={}))o.call(r,n)&&s(e,n,r[n]);if(t)for(var n of t(r))i.call(r,n)&&s(e,n,r[n]);return e},l=(e,t)=>r(e,n(t)),u=(e,r)=>{var n={};for(var s in e)o.call(e,s)&&r.indexOf(s)<0&&(n[s]=e[s]);if(null!=e&&t)for(var s of t(e))r.indexOf(s)<0&&i.call(e,s)&&(n[s]=e[s]);return n};Object.defineProperty(exports,"__esModule",{value:!0}),exports[Symbol.toStringTag]="Module";var f=require("text-encoder-lite"),a=require("global/window.js"),d=require("nanoid/non-secure"),y=require("@graffy/testing"),p=require("merge-async-iterators"),h=require("@graffy/stream"),k=require("lodash/isEqual.js");function $(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var g=$(f),v=$(a),w=$(p),b=$(k);v.default.TextEncoder&&v.default.TextDecoder||(v.default.TextEncoder=g.default.TextEncoderLite,v.default.TextDecoder=g.default.TextDecoderLite);const x=v.default.TextEncoder?new v.default.TextEncoder:new g.default.TextEncoderLite,A=v.default.TextDecoder?new v.default.TextDecoder("utf-8"):new g.default.TextDecoderLite("utf-8");function m(e){return x.encode(e)}function _(e){const r=new ArrayBuffer(8),n=new DataView(r);return n.setFloat64(0,e),e<0?(n.setUint32(0,~n.getUint32(0)>>>0),n.setUint32(4,~n.getUint32(4)>>>0)):n.setUint8(0,128|n.getUint8(0)),new Uint8Array(r)}function j(e){const{buffer:r,byteOffset:n,byteLength:t}=e,o=new DataView(r,n,t),i=o.getUint8(0);return 128&i?o.setUint8(0,127&i):(o.setUint32(0,~o.getUint32(0)>>>0),o.setUint32(4,~o.getUint32(4)>>>0)),o.getFloat64(0)}var O="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";function E(e,r){return r<e.byteLength?e.getUint8(r):0}function S(e,r){return r<e.length?O.indexOf(e[r]):0}function U(e){return null===e?[1]:!1===e?[2]:!0===e?[3]:"number"==typeof e?[4,_(e)]:"string"==typeof e?[5,m(e),0]:Array.isArray(e)?[6,...e.flatMap((e=>U(e))),0]:"object"==typeof e?(r=e,[7,...Object.keys(r).sort().flatMap((e=>[5,m(e),0,...U(r[e])])),0]):[1];var r}function L(e){const r=U(e);for(;0===r[r.length-1];)r.pop();const n=r.reduce(((e,r)=>e+("number"==typeof r?1:r.length)),0),t=new Uint8Array(n);let o=0;for(const i of r)"number"==typeof i?(t[o]=i,o++):(t.set(i,o),o+=i.length);return function(e){const{buffer:r,byteOffset:n,byteLength:t}=e,o=new DataView(r,n,t);let i="";for(let s=0;s<o.byteLength;s+=3){let e=(E(o,s)<<16)+(E(o,s+1)<<8)+E(o,s+2),r="";for(let n=0;n<4;n++)r=O[63&e]+r,e=e>>6|0;i+=r}return i.substr(0,Math.ceil(4*o.byteLength/3))}(t)}const N=new WeakMap;function P(e){let r=0;const n=function(e,r=0){const n=new ArrayBuffer(Math.floor(3*(e.length-r)/4)),t=new DataView(n);for(let o=r;o<e.length;o+=4){let r=(S(e,o)<<18)+(S(e,o+1)<<12)+(S(e,o+2)<<6)+S(e,o+3);for(let e=3*o/4+2;e>=3*o/4;e--)e<t.byteLength&&t.setUint8(e,255&r),r=r>>8|0}return new Uint8Array(n)}(e,0),t=[[]];function o(){let e=r;for(;r<n.length&&0!==n[r];)r++;const t=(o=n.subarray(e,r),A.decode(o));var o;return r++,t}function i(e,r){const n=t[t.length-1];6!==e&&7!==e||t.push(r),n&&(Array.isArray(n)?n.push(r):N.has(n)?(n[N.get(n)]=r,N.delete(n)):N.set(n,r))}for(;r<n.length;){const e=n[r],s=++r;switch(e){case 0:t.pop();break;case 1:i(e,null);break;case 2:i(e,!1);break;case 3:i(e,!0);break;case 4:r+=8,i(e,j(n.subarray(s,r)));break;case 5:i(e,o());break;case 6:i(e,[]);break;case 7:i(e,{});break;default:throw new Error("Invalid byte "+e+" at "+s)}}return t[0][0]}function C(e){if(""===e)return{key:e,step:1};if(""===e)return{key:e,step:-1};const r=e.length-1;switch(e.charCodeAt(r)){case 0:return{key:e.substr(0,r),step:1};case 65535:return{key:e.substr(0,r-1)+String.fromCharCode(e.charCodeAt(r-1)+1),step:-1};default:return{key:e,step:0}}}function D(e){if(""===e||""===e||"\0"===e||"\0"===e)return e;const r=e.length-1;return 0===e.charCodeAt(r)?e.substr(0,r):e.substr(0,r)+String.fromCharCode(e.charCodeAt(r)-1)+""}function T(e){if(""===e||""===e||"\0"===e||"\0"===e)return e;const r=e.length-1;return 65535===e.charCodeAt(r)?e.substr(0,r-1)+String.fromCharCode(e.charCodeAt(r-1)+1):e+"\0"}function B(e,r={}){var n=r,{cause:t}=n,o=u(n,["cause"]);const i=new Error(e+(o?" "+JSON.stringify(o):""));throw i.cause=t,i}function K(e,r,n){r&&B(e,n)}function I(e){for(const r in e)return!1;return!0}function V(e){return void 0!==e}function q(e){return"object"==typeof e&&e&&!Array.isArray(e)}function J(e){return"\0"===e[0]}function G(e,r,n=0,t=e.length){let o=n,i=t;for(;o<i;){const n=(o+i)/2|0,t=r(e[n]);if(t<0)o=n+1;else{if(!(t>0))return n;i=n}}return o}function M(e){return"string"==typeof e?e:"\0"+L(e)}function R(e){if(J(e)){const{key:r,step:n}=C(e.slice(1));return{key:""===r||""===r?r:P(r),step:n}}return C(e)}const z={$all:1,$first:1,$last:1,$after:1,$before:1,$since:1,$until:1,$cursor:1};function F(e){const r={},n={};for(const t in e)(t in z?r:n)[t]=e[t];return[I(r)?void 0:r,I(n)?void 0:n]}function Q(e){if(!q(e))return{key:M(e)};const[r,n]=F(e);if(K("page_and_filter",r&&n),!r)return{key:M(n||{})};const t=r,{$cursor:o}=t,i=u(t,["$cursor"]),{$first:s,$all:c,$last:l,$after:f,$before:a,$since:d,$until:y}=i,p=!I(i);K("first_and_last",V(s)&&V(l)),K("all_and_last",V(c)&&V(l)),K("all_and_first",V(s)&&V(c)),K("after_and_since",V(f)&&V(d)),K("before_and_until",V(a)&&V(y)),K("cursor_and_range_arg",V(o)&&p);let[h,k]=p?["",""]:[];V(o)&&(h=M(o)),V(f)&&(h=T(M(f))),V(a)&&(k=D(M(a))),V(d)&&(h=M(d)),V(y)&&(k=M(y)),V(l)&&([h,k]=[k,h]);const $={key:h};return V(k)&&($.end=k),(s||l)&&($.limit=s||l),$}function W(e){if("string"==typeof e)return e;const{key:r,end:n,limit:t}=e;if(!(J(r)||V(n)&&n!==r))return r;K("no_key",!V(r)),K("limit_without_end",V(t)&&!V(n));const o=R(r);if(!V(n))return o.key;const i=R(n),[s,c]=r<n?[o,i]:[i,o],l={};return t?l[r<n?"$first":"$last"]=t:""===s.key&&""===c.key&&(l.$all=!0),""!==s.key&&(l[1===s.step?"$after":"$since"]=s.key),""!==c.key&&(l[-1===c.step?"$before":"$until"]=c.key),l}function H(e){if("string"==typeof e){if(!e.length||"."===e)return[];e=e.split(".")}if(!Array.isArray(e))throw Error("encodePath.invalid:"+JSON.stringify(e));function r(e){if("string"==typeof e)return e;const{key:r,end:n}=Q(e);if(n)throw"encodePath.unexpected_range_key";return r}if(!q(e[e.length-1]))return e.map(r);const[n,t={}]=F(e[e.length-1]);return n?e.slice(0,-1).concat([t]).map(r):e.map(r)}function X(e){if(!Array.isArray(e))throw Error("decodePath.invalid:"+JSON.stringify(e));return e.map((e=>W({key:e})))}function Y(e){if(!Array.isArray(e))return[];const r=e[e.length-1];return q(r)?F(r):[]}var Z=d.customAlphabet(O,20);function ee(e,r){return G(e,(({key:e,end:n})=>e===r||n&&e<r&&n>=r?0:e<r?-1:1))}function re(e,r,n,t){const o=ee(e,r);return e[o]&&e[o].key<=r?o+1:o}function ne(e){return e&&void 0!==e.end}function te(e){return e&&void 0!==e.children}function oe(e){return e&&e.prefix}function ie(e){return e&&void 0!==e.path}function se(e,r){return void 0!==e.version&&e.version<r}function ce(e,r){let n=!1,t=0;for(const o of r){const r=le(o),i=te(o);t=G(e,r,t);const s=e[t],c=te(s);if(!s||r(s)){e.splice(t,0,fe(o)),n=!0;continue}if(i&&c)n=ce(s.children,o.children)||n;else{if(i||c)throw new Error("add.branch_leaf_mismatch");s.value+=o.value}(c?s.children.length:s.value)||(e.splice(t,1),n=!0)}return n}function le(e){return r=>ue(r.key,e.key)||ue(r.end,e.end)||ue(r.limit,e.limit)}function ue(e,r){return e===r?0:e<r?-1:1}function fe(e){const r=c({},e);return e.children&&(r.children=e.children.map((e=>fe(e)))),r}function ae(e,r){let n=0;for(const t of r)n=ne(t)?de(e,t,n):pe(e,t,n);return e}function de(e,r,n=0){const{key:t,end:o}=r,i=ee(e,t),s=re(e,o),c=[r];for(let l=i;l<s;l++){const r=e[l];ne(r)?c.push(...ye(c.pop(),r)):pe(c,r,c.length-1)}return e.splice(i,s-i,...c),i+c.length}function ye(e,r){return r.version<e.version&&([r,e]=[e,r]),[e.key<r.key&&l(c({},e),{end:D(r.key)}),r,e.end>r.end&&l(c({},e),{key:T(r.end)})].filter(Boolean)}function pe(e,r,n=0){if(!e)throw new Error("merge.insertNode: "+e);const t=r.key,o=ee(e,t),i=e[o];return i&&i.key<=t?ne(i)?function(e,r,n){const t=n.key,o=e[r],i=he(n,o);if(!i)return;const s=[o.key<t&&l(c({},o),{end:D(t)}),i,o.end>t&&l(c({},o),{key:T(t)})].filter(Boolean);return e.splice(r,1,...s),r+s.length}(e,o,r):function(e,r,n){const t=e[r];if(te(n)&&te(t))ae(t.children,n.children);else if(te(t)){const o=he(t,n);e[r]=o||n}else{const o=he(n,t);o&&(e[r]=o)}n.prefix&&(e[r].prefix=!0);return r+1}(e,o,r):(e.splice(o,0,r),o+1)}function he(e,r){const{version:n}=r;if(te(e)){const r=[{key:"",end:"",version:n}];return ae(r,e.children),1===r.length?null:l(c({},e),{children:r})}return e.version>=n?e:null}const ke=Symbol("IS_VAL");function $e(e,r,n=0,t=!1){if(!Array.isArray(r))throw Error("wrap.path_not_array "+r);if(!r.length)return e;let o=r.length-1;if(Array.isArray(e)){if(!e.length)return;e=[l(c({},Q(r[o--])),{version:n,children:e})]}else e=[l(c({},Q(r[o--])),{value:e,version:n})];for(t&&(e[0].prefix=!0);o>=0;)e=[l(c({},Q(r[o--])),{version:n,children:e})];return e}function ge(e,r){if(!Array.isArray(r))throw Error("unwrap.path_not_array "+r);let n={children:e};for(let t=0;t<r.length;t++){const{key:o}=Q(r[t]);if(!(e=n.children))return null;if(n=e[ee(e,o)],!n||n.key>o)return;if(ne(n))return null}return ve(n)}function ve(e){return e.children?e.children:(e.value&&"object"==typeof e.value&&(e.value[ke]=!0),e.value)}class we{constructor(e){this.root=e||this}addKnown(e){this.known=this.known||[],ae(this.known,[e])}addUnknown(e){this.unknown=this.unknown||[],this.unknown.push(e)}addLinked(e){if(this.root!==this)return this.root.addLinked(e);this.linked=this.linked||[],ce(this.linked,e)}}function be(e,r,n){let t=new we(n),o=r;for(;o;){let r=0;for(const n of o)if(ne(n))Ae(e,n,t);else{r=ee(e,n.key),xe(e[r],n,t)}o=n?void 0:t.linked,delete t.linked}return delete t.root,t}function xe(e,r,n){const{key:t,version:o}=r,{root:i}=n;if(!e||e.key>t||se(e,o))n.addUnknown(r);else if(ne(e))if(te(r)){const{known:o}=be([{key:"",end:"",version:e.version}],r.children);n.addKnown({key:t,version:e.version,children:o})}else n.addKnown({key:t,end:t,version:e.version});else if(te(e)&&te(r)){const{known:t,unknown:o}=be(e.children,r.children,i);t&&n.addKnown(l(c({},e),{children:t})),o&&n.addUnknown(l(c({},r),{children:o}))}else if(ie(e))n.addKnown(e),e.prefix&&ne(r)?n.addLinked($e([r],e.path,o,!0)):n.addLinked($e(r.children||r.value,e.path,o,e.prefix||r.prefix));else if(te(e)&&r.options&&r.options.subtree)n.addKnown(e);else{if(te(e)||te(r))throw new Error("slice.leaf_branch_mismatch:"+y.format(e)+"\n"+y.format(r));n.addKnown(e)}}function Ae(e,r,n){let{key:t,end:o,limit:i=1/0,version:s}=r;const u=t<o?1:-1;if(""===e[0].key&&e[0].prefix)xe(e[0],r,n);else{if(t<o)for(let u=ee(e,t);t<=o&&i>0;u++){const f=e[u];if(!f||t<f.key||se(f,s))break;ne(f)?n.addKnown(me(f,t,o)):(xe(f,l(c({},r),{key:t}),n),i--),t=T(f.end||f.key)}else for(let u=re(e,t)-1;t>=o&&i>0;u--){const f=e[u];if(!f||t>(f.end||f.key)||se(f,s))break;ne(f)?n.addKnown(me(f,o,t)):(xe(f,l(c({},r),{key:t}),n),i--),t=D(f.key)}if(i&&(u<0?t>o:t<o)){const e=l(c({},r),{key:t,end:o,limit:i});n.addUnknown(e)}}}function me(e,r,n){return e.key>=r&&e.end<=n?e:l(c({},e),{key:e.key>r?e.key:r,end:e.end<n?e.end:n})}function _e(e,r,n=[]){let t=0;for(const o of r)t=ne(o)?je(e,o,n,t):Ee(e,o,n,t);return n}function je(e,r,n,t=0){const{key:o,end:i}=r,s=ee(e,o),c=re(e,i);if(s===c&&!(e[s]&&e[s].key<=o&&e[s].end>=i))return s;const l=[];let u=r.key;for(let a=s;a<c;a++){const n=e[a];if(ne(n)&&n.version>=0?(n.key>u&&l.push({key:u,end:D(n.key),version:r.version}),u=T(n.end)):Ue(n,r)&&(l.push({key:u,end:D(n.key),version:r.version}),u=T(n.key)),u>=r.end)break}u<=r.end&&l.push({key:u,end:r.end,version:r.version}),l.length&&n.push(...l);const f=[r];for(let a=s;a<c;a++){const r=e[a];ne(r)?f.push(...Oe(f.pop(),r)):Ee(f,r,[],f.length-1)}return e.splice(s,c-s,...f),s+f.length}function Oe(e,r){return r.version<e.version&&([r,e]=[e,r]),[e.key<r.key&&l(c({},e),{end:D(r.key)}),r,e.end>r.end&&l(c({},e),{key:T(r.end)})].filter(Boolean)}function Ee(e,r,n,t=0){const o=r.key,i=ee(e,o),s=e[i];return s&&s.key<=o?ne(s)?function(e,r,n,t){const o=n.key,i=e[r],s=Ue(n,i),u=Se(n,i);if(!s)return;t.push(s);const f=[i.key<o&&l(c({},i),{end:D(o)}),u,i.end>o&&l(c({},i),{key:T(o)})].filter(Boolean);return e.splice(r,1,...f),r+f.length}(e,i,r,n):function(e,r,n,t){const o=e[r];if(te(n)&&te(o)){const e=[];o.version=n.version,_e(o.children,n.children,e),e.length&&t.push(l(c({},n),{children:e}))}else if(te(o)){const i=Se(o,n);e[r]=i||n,i||t.push(n)}else{const i=Ue(n,o),s=Se(n,o);s&&(e[r]=s),!i||n.value===o.value&&function(e,r){if(!e&&!r)return!0;if(!e||!r)return!1;if(e.length!==r.length)return!1;for(let n=0;n<e.length;n++)if(e[n]!==r[n])return!1;return!0}(n.path,o.path)||t.push(i)}return r+1}(e,i,r,n):i}function Se(e,r){if(te(e)){const n={key:"",end:"",version:r.version},t=[n];return _e(t,e.children),1===t.length&&t[0]===n?null:l(c({},e),{children:t})}return e.version>=r.version?e:null}function Ue(e,r){if(te(e)){const n=e.children.filter((e=>Ue(e,r)));return n.length&&l(c({},e),{children:n})}return e.version>=r.version?e:null}function Le(e,r){for(const n of e)n.version=r,n.children&&Le(n.children,r);return e}function Ne(e,r,n=Date.now()){let t=[{key:"",end:"",version:0}];return r&&(t=be(t,r).known||[]),t=Le(ae(t,e),n),t}function Pe(e=[],{isGraph:r}={}){function n(e){let n=[],c=!0,f=!0;function a(...e){for(const r of e)V(r)&&!Number.isInteger(r.$key)&&(f=!1),V(r)&&"string"!=typeof r.$key&&(c=!1);n.push(...e)}const d=[];let y=null;function p({key:e,end:r}){if(y)if(y.end){if(e===T(y.end))return y.end=r||e,r&&r!==e}else e===T(y.key)&&(e=y.key);return r&&e!==r?(y={key:e,end:r},d.push(y),!0):(y={key:e},!1)}for(const u of e)r&&p(u)||(oe(u)?a(...t(u)):r&&ne(u)?a(s(u)):te(u)?a(o(u)):ie(u)?a(l(u)):a(i(u)));return(f||c)&&(n=n.reduce(((e,n)=>{if(Array.isArray(n))return e[n.$key]=n,delete n.$key,e;const t=n,{$key:o,$val:i}=t,s=u(t,["$key","$val"]);return"object"==typeof i&&(i.$val=!0),e[o]=V(i)?i:I(s)?!r||null:s,e}),c?{}:[])),r&&d.length&&(1===d.length&&""===d[0].key&&""===d[0].end?n.$put=!0:n.$put=d.map((e=>W(e)))),n}function t(e){let r=W(e);if(""===r&&(r={}),"string"==typeof r)throw Error("decode.unencoded_prefix: "+r);if(ie(e)){r.$all=!0;const n=X(e.path),t=n[n.length-1];if("string"==typeof t)throw Error("decode.unencoded_prefix_ref: "+e.path);return t.$all=!0,[{$key:r,$ref:n}]}const t=n(e.children);if(!Array.isArray(t))throw Error("decode.prefix_without_encoded_child_keys:"+e.key);for(const n of t){if("string"==typeof n.$key)throw Error("decode.prefix_with_unencoded_child_key:"+n.$key);F(n.$key)[0]||(n.$key={$cursor:n.$key}),n.$key=c(c({},r),n.$key)}return t}function o(e){const r=n(e.children);return r.$key=W(e),r}function i(e){const n=r?{$val:e.value}:{};return n.$key=W(e),n}function s(e){if(e.key===e.end)return{$key:W({key:e.key})}}function l(e){return{$key:W(e),$ref:X(e.path)}}return n(e)}function Ce(e){return Pe(e,{isGraph:!0})}const De=Symbol(),Te=Symbol();const Be=Symbol();function Ke(e,{version:r,isGraph:n}={}){var t;const o=[];const i=n?ae:ce;function s(e,r,t){var f;if(!V(e))return;if("object"==typeof e&&e&&I(e))return;const a=e||{},{$key:d,$ver:y}=a,p=u(a,["$key","$ver"]),h=p,{$ref:k,$val:$,$chi:g,$put:v}=h,w=u(h,["$ref","$val","$chi","$put"]);if(V(y)&&(t=y),q(d)){const[o,i]=F(d);if(n&&o&&!V(o.$cursor)&&!I(p)){const n=s(l(c({},e),{$key:i||""}),r,t);return n.prefix=!0,n}if((!V(r)||Number.isInteger(r))&&o&&i){const n=s({$key:i,$chi:[l(c({},e),{$key:V(o.$cursor)?o.$cursor:o})]},r,t);return n.prefix=!0,n}}!V(d)||!Number.isInteger(r)&&V(r)||(r=d);const b=r!==Be&&V(r)?Q(r):{};if(b.version=t,null===e)b.end=b.key;else if(V(d)&&V(r)&&r!==d)b.children=[s(e,void 0,t)].filter(Boolean);else if(k){if(function(e,r,t,i,l){const[u,f]=Y(e);let a=I(t)?V(l)?s(u?[{$key:u,$chi:l}]:l,void 0,r).children:V(i)?i:n?void 0:1:s(u?[c({$key:u},t)]:t,void 0,r).children;a&&o.push($e(a,H(e),r,!!u)[0])}(k,b.version,w,$,g),!n)return;b.path=H(k)}else if(!0===$)b.value=w;else if(V($))b.value=$;else if("object"!=typeof e)b.value=n||"number"==typeof e?e:1;else if(V(g)){const e=g.map((e=>s(e,void 0,t))).filter(Boolean).sort(((e,r)=>e.key<=r.key?-1:1));e.length&&(b.children=e)}else if(Array.isArray(e)){const r=e.map(((e,r)=>s(e,r,t))).filter(Boolean).reduce(((e,r)=>(i(e,[r]),e)),[]);r.length&&(b.children=r)}else{const r=Object.keys(w).sort().map((r=>s(e[r],r,t))).filter(Boolean);r.length?b.children=r:n?b.key&&!b.end&&(b.end=b.key):b.value=1}let x;return Array.isArray(e)&&!e.some((e=>V(null==e?void 0:e.$key)))&&(x=[Q({$since:0,$until:1/0})]),!0===v?x=null:Array.isArray(v)?x=v.map((e=>Q(e))):V(v)&&(x=[Q(v)]),n&&V(x)&&(b.children=Ne(b.children||[],x,b.version)),(null==(f=b.children)?void 0:f.length)||V(b.end)||V(b.value)||V(b.path)?b:void 0}(null==e?void 0:e.$key)&&(e=[e]);let f=(null==(t=s(e,Be,r))?void 0:t.children)||[];for(;o.length;)i(f,[o.pop()]);return f}exports.IS_VAL=ke,exports.add=ce,exports.cloneObject=function e(r){if("object"!=typeof r||!r)return r;const n={};for(const t in r){const o=e(r[t]);null!==o&&(n[t]=o)}return I(n)?null:n},exports.decodeArgs=W,exports.decodeGraph=Ce,exports.decodePath=X,exports.decodeQuery=function(e){return Pe(e,{isGraph:!1})},exports.decodeUrl=function(e){return JSON.parse(decodeURIComponent(e))},exports.decodeValue=P,exports.decorate=function(e,r){function n(e,r){const{key:n}=Q(r);if(!Array.isArray(e))return null;const o=e[ee(e,n)];if(!o)return;if(ne(o)&&o.end>=n)return null;if(o.key!==n)return;const i=t(o);return o.prefix&&(i[Te]=r),i}function t(r){let n;return r.path?(n=ge(e,r.path),"object"==typeof n&&(n[De]=r.path)):n=ve(r),n}return function r(o,i){if(null===o)return null;let s;if(V(o)||(o=[]),i.$key&&(i=[i]),i.$ref){const n=i,{$ref:t}=n,o=u(n,["$ref"]),[l,f]=Y(t),a=H(t),d=ge(e,a);l&&(d[Te]=f),s=r(d,l?c({$key:l},o):o),s.$ref=t}else if(Array.isArray(i)){let e;s=i.flatMap(((i,s)=>{if(!(null==i?void 0:i.$key))return r(n(o,s),i);const f=i,{$key:a,$chi:d}=f,y=u(f,["$key","$chi"]),p=d||(I(y)?1:y);if(!q(a)||!F(a)[0])return r(n(o,a),p);if(e)throw Error("decorate.multi_range_query:"+JSON.stringify({$key:a,pageKey:e}));e=a;const h=function(e,r){const[t,o]=F(r);V(o)?e=n(e,o):""===e[0].key&&e[0].prefix&&(e=n(e,""));const{key:i,end:s,limit:c=1/0}=Q(t),l=ee(e,i);let u,f=l;if(i<s){for(let r=0;f<e.length&&r<c;f++)ne(e[f])||r++;u=e.slice(l,f)}else{for(let r=0;f>=0&&r<c;f--)ne(e[f])||r++;u=e.slice(f+1,l+1)}e[De]&&(u[De]=e[De]);e[Te]&&(u[Te]=e[Te]);return u}(o,a);return h.filter((e=>!ne(e))).map((e=>{const n=W(e),o=r(t(e),p);return"object"==typeof o&&(o.$key=h[Te]?l(c({},h[Te]),{$cursor:n}):n),o}))})),function(e,r){if(r.$all)return void Object.assign(e,{$page:r,$prev:null,$next:null});const[n,...t]=F(r),o=n,{$first:i,$last:s}=o,f=u(o,["$first","$last"]),[a]=t,d=i||s,y=l(c(c({},a),f),{$all:!0});if(e.length===d)if(i){const r=e[e.length-1].$key;y.$until=V(null==r?void 0:r.$cursor)?r.$cursor:r,delete y.$before}else{const r=e[0].$key;y.$since=V(null==r?void 0:r.$cursor)?r.$cursor:r,delete y.$after}const p=V(y.$after)?l(c({},a),{$last:d,$until:y.$after}):V(y.$since)?l(c({},a),{$last:d,$before:y.$since}):null;let h=V(y.$before)?l(c({},a),{$first:d,$since:y.$before}):V(y.$until)?l(c({},a),{$first:d,$after:y.$until}):null;Object.assign(e,{$page:y,$next:h,$prev:p})}(s,e)}else if("object"==typeof i){s={};for(const e in i)s[e]=r(n(o,e),i[e])}else if(i)if(Array.isArray(o)&&!o.length)s=void 0;else if("object"==typeof o&&o)if(o[ke])s=Array.isArray(o)?o.slice(0):c({},o),s.$val=!0;else{if(!Array.isArray(o))throw Error("decorate.unexpected_graph",o);s=Ce(o)}else s=o;return o[De]&&(s.$ref=o[De]),s}(e,r)},exports.deserialize=function(e){return JSON.parse(e)},exports.encodeArgs=Q,exports.encodeGraph=function(e,r=Date.now()){return Ke(e,{version:r,isGraph:!0})},exports.encodePath=H,exports.encodeQuery=function(e,r=0){return Ke(e,{version:r,isGraph:!1})},exports.encodeUrl=function(e){return encodeURIComponent(JSON.stringify(e))},exports.encodeValue=L,exports.err=B,exports.errIf=K,exports.finalize=Ne,exports.find=G,exports.findFirst=ee,exports.findLast=re,exports.getKnown=function e(r,n=0){const t=[];for(const{key:o,end:i,children:s}of r){const r={key:o,version:n};i&&(i!==o&&(r.end=i),r.options={subtree:!0}),s?r.children=e(s):r.value=1,t.push(r)}return t},exports.getNodeValue=ve,exports.isBranch=te,exports.isDef=V,exports.isEmpty=I,exports.isEncoded=function(e){return e&&"\0"===e.key[0]},exports.isEncodedKey=J,exports.isLink=ie,exports.isNewer=function(e,r){return void 0!==e.version&&e.version>r},exports.isOlder=se,exports.isPlainObject=q,exports.isPrefix=oe,exports.isRange=ne,exports.keyAfter=T,exports.keyBefore=D,exports.keyStep=C,exports.makeId=Z,exports.makeWatcher=function(){const e=new Set;return{write:function(r){for(const n of e)n(r)},watch:function(...r){return h.makeStream(((n,t)=>(e.add(n),r.length&&Promise.resolve(r[0]).then(n),()=>e.delete(n))))}}},exports.merge=ae,exports.mergeObject=function e(r,n){if("object"!=typeof n||"object"!=typeof r||!r||!n)return n;for(const t in n)if(t in r){const o=e(r[t],n[t]);null===o?delete r[t]:r[t]=o}else r[t]=n[t];return I(r)?null:r},exports.mergeStreams=async function*(...e){const r=(await Promise.all(e.map((e=>e.next())))).map((e=>e.value));if(r.some((e=>void 0===e))){yield;for(const e of r)void 0!==e&&(yield e)}else{let e=[];for(const n of r)ae(e,n);yield e}yield*w.default(e)},exports.remove=function e(r,n){if(!Array.isArray(n))throw Error("del.path_not_array "+n);if(!r)return null;if(!n.length)return[];const t=n[0],o=ee(r,t),i=r[o];if(!i||i.key>t||ne(i))return r;if(1===n.length)return r.slice(0,o).concat(r.slice(o+1));if(!te(i))return r;const s=e(i.children,n.slice(1));if(s===n.children)return r;const u=s.length?l(c({},i),{children:s}):[];return r.slice(0,o).concat(u,r.slice(o+1))},exports.serialize=function(e){return JSON.stringify(e).replace(/\uffff/g,"\\uffff")},exports.setVersion=Le,exports.sieve=_e,exports.slice=be,exports.splitArgs=F,exports.splitRef=Y,exports.unwrap=ge,exports.unwrapObject=function(e,r){if(!Array.isArray(r))throw Error("unwrapObject.path_not_array "+r);for(let n=0;n<r.length;n++){if(!e||"object"!=typeof e)return;const t=r[n];if("string"==typeof t){if(Array.isArray(e))throw Error("unwrapObject.string_key_array:"+t);e=e[t]}else{if(!Array.isArray(e))throw Error("unwrapObject.arg_key_object:"+JSON.stringify(t));const[r,n]=F(t);if(r&&!r.$cursor)return e;{const t=(null==r?void 0:r.$cursor)?l(c({},n),{$cursor:r.$cursor}):n;e=e.find((({$key:e})=>b.default(e,t)))}}}return e},exports.wrap=$e,exports.wrapObject=function(e,r){if(!Array.isArray(r))throw Error("wrapObject.path_not_array "+r);for(let n=r.length-1;n>=0;n--){const t=r[n];e="string"==typeof t?{[t]:e}:Array.isArray(e)?[{$key:t,$chi:e}]:[c({$key:t},e)]}return e},exports.wrapValue=function(e,r,n=0){return $e([l(c({},Q(r[r.length-1])),{value:e,version:n})],r.slice(0,-1),n)};
|
package/index.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
var e=Object.defineProperty,n=Object.defineProperties,r=Object.getOwnPropertyDescriptors,t=Object.getOwnPropertySymbols,o=Object.prototype.hasOwnProperty,i=Object.prototype.propertyIsEnumerable,s=(n,r,t)=>r in n?e(n,r,{enumerable:!0,configurable:!0,writable:!0,value:t}):n[r]=t,c=(e,n)=>{for(var r in n||(n={}))o.call(n,r)&&s(e,r,n[r]);if(t)for(var r of t(n))i.call(n,r)&&s(e,r,n[r]);return e},f=(e,t)=>n(e,r(t)),l=(e,n)=>{var r={};for(var s in e)o.call(e,s)&&n.indexOf(s)<0&&(r[s]=e[s]);if(null!=e&&t)for(var s of t(e))n.indexOf(s)<0&&i.call(e,s)&&(r[s]=e[s]);return r};import u from"text-encoder-lite";import a from"global/window.js";import{customAlphabet as d}from"nanoid/non-secure";import{format as y}from"@graffy/testing";import h from"merge-async-iterators";import{makeStream as k}from"@graffy/stream";import p from"lodash/isEqual.js";function $(e){return encodeURIComponent(JSON.stringify(e))}function v(e){return JSON.parse(decodeURIComponent(e))}a.TextEncoder&&a.TextDecoder||(a.TextEncoder=u.TextEncoderLite,a.TextDecoder=u.TextDecoderLite);const g=a.TextEncoder?new a.TextEncoder:new u.TextEncoderLite,w=a.TextDecoder?new a.TextDecoder("utf-8"):new u.TextDecoderLite("utf-8");function b(e){return g.encode(e)}function m(e){const n=new ArrayBuffer(8),r=new DataView(n);return r.setFloat64(0,e),e<0?(r.setUint32(0,~r.getUint32(0)>>>0),r.setUint32(4,~r.getUint32(4)>>>0)):r.setUint8(0,128|r.getUint8(0)),new Uint8Array(n)}function A(e){const{buffer:n,byteOffset:r,byteLength:t}=e,o=new DataView(n,r,t),i=o.getUint8(0);return 128&i?o.setUint8(0,127&i):(o.setUint32(0,~o.getUint32(0)>>>0),o.setUint32(4,~o.getUint32(4)>>>0)),o.getFloat64(0)}var _="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz";function x(e,n){return n<e.byteLength?e.getUint8(n):0}function j(e,n){return n<e.length?_.indexOf(e[n]):0}function O(e){return null===e?[1]:!1===e?[2]:!0===e?[3]:"number"==typeof e?[4,m(e)]:"string"==typeof e?[5,b(e),0]:Array.isArray(e)?[6,...e.flatMap((e=>O(e))),0]:"object"==typeof e?(n=e,[7,...Object.keys(n).sort().flatMap((e=>[5,b(e),0,...O(n[e])])),0]):[1];var n}function E(e){const n=O(e);for(;0===n[n.length-1];)n.pop();const r=n.reduce(((e,n)=>e+("number"==typeof n?1:n.length)),0),t=new Uint8Array(r);let o=0;for(const i of n)"number"==typeof i?(t[o]=i,o++):(t.set(i,o),o+=i.length);return function(e){const{buffer:n,byteOffset:r,byteLength:t}=e,o=new DataView(n,r,t);let i="";for(let s=0;s<o.byteLength;s+=3){let e=(x(o,s)<<16)+(x(o,s+1)<<8)+x(o,s+2),n="";for(let r=0;r<4;r++)n=_[63&e]+n,e=e>>6|0;i+=n}return i.substr(0,Math.ceil(4*o.byteLength/3))}(t)}const U=new WeakMap;function S(e){let n=0;const r=function(e,n=0){const r=new ArrayBuffer(Math.floor(3*(e.length-n)/4)),t=new DataView(r);for(let o=n;o<e.length;o+=4){let n=(j(e,o)<<18)+(j(e,o+1)<<12)+(j(e,o+2)<<6)+j(e,o+3);for(let e=3*o/4+2;e>=3*o/4;e--)e<t.byteLength&&t.setUint8(e,255&n),n=n>>8|0}return new Uint8Array(r)}(e,0),t=[[]];function o(){let e=n;for(;n<r.length&&0!==r[n];)n++;const t=(o=r.subarray(e,n),w.decode(o));var o;return n++,t}function i(e,n){const r=t[t.length-1];6!==e&&7!==e||t.push(n),r&&(Array.isArray(r)?r.push(n):U.has(r)?(r[U.get(r)]=n,U.delete(r)):U.set(r,n))}for(;n<r.length;){const e=r[n],s=++n;switch(e){case 0:t.pop();break;case 1:i(e,null);break;case 2:i(e,!1);break;case 3:i(e,!0);break;case 4:n+=8,i(e,A(r.subarray(s,n)));break;case 5:i(e,o());break;case 6:i(e,[]);break;case 7:i(e,{});break;default:throw new Error("Invalid byte "+e+" at "+s)}}return t[0][0]}function L(e){if(""===e)return{key:e,step:1};if(""===e)return{key:e,step:-1};const n=e.length-1;switch(e.charCodeAt(n)){case 0:return{key:e.substr(0,n),step:1};case 65535:return{key:e.substr(0,n-1)+String.fromCharCode(e.charCodeAt(n-1)+1),step:-1};default:return{key:e,step:0}}}function C(e){if(""===e||""===e||"\0"===e||"\0"===e)return e;const n=e.length-1;return 0===e.charCodeAt(n)?e.substr(0,n):e.substr(0,n)+String.fromCharCode(e.charCodeAt(n)-1)+""}function D(e){if(""===e||""===e||"\0"===e||"\0"===e)return e;const n=e.length-1;return 65535===e.charCodeAt(n)?e.substr(0,n-1)+String.fromCharCode(e.charCodeAt(n-1)+1):e+"\0"}function N(e,n={}){var r=n,{cause:t}=r,o=l(r,["cause"]);const i=new Error(e+(o?" "+JSON.stringify(o):""));throw i.cause=t,i}function P(e,n,r){n&&N(e,r)}function T(e){for(const n in e)return!1;return!0}function B(e){return void 0!==e}function K(e){return"object"==typeof e&&e&&!Array.isArray(e)}function I(e){return"\0"===e[0]}function J(e,n,r=0,t=e.length){let o=r,i=t;for(;o<i;){const r=(o+i)/2|0,t=n(e[r]);if(t<0)o=r+1;else{if(!(t>0))return r;i=r}}return o}function V(e){return"string"==typeof e?e:"\0"+E(e)}function G(e){if(I(e)){const{key:n,step:r}=L(e.slice(1));return{key:""===n||""===n?n:S(n),step:r}}return L(e)}const M={$all:1,$first:1,$last:1,$after:1,$before:1,$since:1,$until:1,$cursor:1};function q(e){const n={},r={};for(const t in e)(t in M?n:r)[t]=e[t];return[T(n)?void 0:n,T(r)?void 0:r]}function F(e){if(!K(e))return{key:V(e)};const[n,r]=q(e);if(P("page_and_filter",n&&r),!n)return{key:V(r||{})};const t=n,{$cursor:o}=t,i=l(t,["$cursor"]),{$first:s,$all:c,$last:f,$after:u,$before:a,$since:d,$until:y}=i,h=!T(i);P("first_and_last",B(s)&&B(f)),P("all_and_last",B(c)&&B(f)),P("all_and_first",B(s)&&B(c)),P("after_and_since",B(u)&&B(d)),P("before_and_until",B(a)&&B(y)),P("cursor_and_range_arg",B(o)&&h);let[k,p]=h?["",""]:[];B(o)&&(k=V(o)),B(u)&&(k=D(V(u))),B(a)&&(p=C(V(a))),B(d)&&(k=V(d)),B(y)&&(p=V(y)),B(f)&&([k,p]=[p,k]);const $={key:k};return B(p)&&($.end=p),(s||f)&&($.limit=s||f),$}function R(e){if("string"==typeof e)return e;const{key:n,end:r,limit:t}=e;if(!(I(n)||B(r)&&r!==n))return n;P("no_key",!B(n)),P("limit_without_end",B(t)&&!B(r));const o=G(n);if(!B(r))return o.key;const i=G(r),[s,c]=n<r?[o,i]:[i,o],f={};return t?f[n<r?"$first":"$last"]=t:""===s.key&&""===c.key&&(f.$all=!0),""!==s.key&&(f[1===s.step?"$after":"$since"]=s.key),""!==c.key&&(f[-1===c.step?"$before":"$until"]=c.key),f}function W(e){if("string"==typeof e){if(!e.length||"."===e)return[];e=e.split(".")}if(!Array.isArray(e))throw Error("encodePath.invalid:"+JSON.stringify(e));function n(e){if("string"==typeof e)return e;const{key:n,end:r}=F(e);if(r)throw"encodePath.unexpected_range_key";return n}if(!K(e[e.length-1]))return e.map(n);const[r,t={}]=q(e[e.length-1]);return r?e.slice(0,-1).concat([t]).map(n):e.map(n)}function z(e){if(!Array.isArray(e))throw Error("decodePath.invalid:"+JSON.stringify(e));return e.map((e=>R({key:e})))}function H(e){if(!Array.isArray(e))return[];const n=e[e.length-1];return K(n)?q(n):[]}var Q=d(_,20);function X(e,n){return J(e,(({key:e,end:r})=>e===n||r&&e<n&&r>=n?0:e<n?-1:1))}function Y(e,n,r,t){const o=X(e,n);return e[o]&&e[o].key<=n?o+1:o}function Z(e){return e&&void 0!==e.end}function ee(e){return e&&void 0!==e.children}function ne(e){return e&&e.prefix}function re(e){return e&&void 0!==e.path}function te(e){return e&&"\0"===e.key[0]}function oe(e,n){return void 0!==e.version&&e.version<n}function ie(e,n){return void 0!==e.version&&e.version>n}function se(e,n){let r=!1,t=0;for(const o of n){const n=ce(o),i=ee(o);t=J(e,n,t);const s=e[t],c=ee(s);if(!s||n(s)){e.splice(t,0,le(o)),r=!0;continue}if(i&&c)r=se(s.children,o.children)||r;else{if(i||c)throw new Error("add.branch_leaf_mismatch");s.value+=o.value}(c?s.children.length:s.value)||(e.splice(t,1),r=!0)}return r}function ce(e){return n=>fe(n.key,e.key)||fe(n.end,e.end)||fe(n.limit,e.limit)}function fe(e,n){return e===n?0:e<n?-1:1}function le(e){const n=c({},e);return e.children&&(n.children=e.children.map((e=>le(e)))),n}function ue(e,n){let r=0;for(const t of n)r=Z(t)?ae(e,t,r):ye(e,t,r);return e}function ae(e,n,r=0){const{key:t,end:o}=n,i=X(e,t),s=Y(e,o),c=[n];for(let f=i;f<s;f++){const n=e[f];Z(n)?c.push(...de(c.pop(),n)):ye(c,n,c.length-1)}return e.splice(i,s-i,...c),i+c.length}function de(e,n){return n.version<e.version&&([n,e]=[e,n]),[e.key<n.key&&f(c({},e),{end:C(n.key)}),n,e.end>n.end&&f(c({},e),{key:D(n.end)})].filter(Boolean)}function ye(e,n,r=0){if(!e)throw new Error("merge.insertNode: "+e);const t=n.key,o=X(e,t),i=e[o];return i&&i.key<=t?Z(i)?function(e,n,r){const t=r.key,o=e[n],i=he(r,o);if(!i)return;const s=[o.key<t&&f(c({},o),{end:C(t)}),i,o.end>t&&f(c({},o),{key:D(t)})].filter(Boolean);return e.splice(n,1,...s),n+s.length}(e,o,n):function(e,n,r){const t=e[n];if(ee(r)&&ee(t))ue(t.children,r.children);else if(ee(t)){const o=he(t,r);e[n]=o||r}else{const o=he(r,t);o&&(e[n]=o)}r.prefix&&(e[n].prefix=!0);return n+1}(e,o,n):(e.splice(o,0,n),o+1)}function he(e,n){const{version:r}=n;if(ee(e)){const n=[{key:"",end:"",version:r}];return ue(n,e.children),1===n.length?null:f(c({},e),{children:n})}return e.version>=r?e:null}const ke=Symbol("IS_VAL");function pe(e,n,r=0){return $e([f(c({},F(n[n.length-1])),{value:e,version:r})],n.slice(0,-1),r)}function $e(e,n,r=0,t=!1){if(!Array.isArray(n))throw Error("wrap.path_not_array "+n);if(!n.length)return e;let o=n.length-1;if(Array.isArray(e)){if(!e.length)return;e=[f(c({},F(n[o--])),{version:r,children:e})]}else e=[f(c({},F(n[o--])),{value:e,version:r})];for(t&&(e[0].prefix=!0);o>=0;)e=[f(c({},F(n[o--])),{version:r,children:e})];return e}function ve(e,n){if(!Array.isArray(n))throw Error("unwrap.path_not_array "+n);let r={children:e};for(let t=0;t<n.length;t++){const{key:o}=F(n[t]);if(!(e=r.children))return null;if(r=e[X(e,o)],!r||r.key>o)return;if(Z(r))return null}return ge(r)}function ge(e){return e.children?e.children:(e.value&&"object"==typeof e.value&&(e.value[ke]=!0),e.value)}function we(e,n){if(!Array.isArray(n))throw Error("del.path_not_array "+n);if(!e)return null;if(!n.length)return[];const r=n[0],t=X(e,r),o=e[t];if(!o||o.key>r||Z(o))return e;if(1===n.length)return e.slice(0,t).concat(e.slice(t+1));if(!ee(o))return e;const i=we(o.children,n.slice(1));if(i===n.children)return e;const s=i.length?f(c({},o),{children:i}):[];return e.slice(0,t).concat(s,e.slice(t+1))}class be{constructor(e){this.root=e||this}addKnown(e){this.known=this.known||[],ue(this.known,[e])}addUnknown(e){this.unknown=this.unknown||[],this.unknown.push(e)}addLinked(e){if(this.root!==this)return this.root.addLinked(e);this.linked=this.linked||[],se(this.linked,e)}}function me(e,n,r){let t=new be(r),o=n;for(;o;){let n=0;for(const r of o)if(Z(r))_e(e,r,t);else{n=X(e,r.key),Ae(e[n],r,t)}o=r?void 0:t.linked,delete t.linked}return delete t.root,t}function Ae(e,n,r){const{key:t,version:o}=n,{root:i}=r;if(!e||e.key>t||oe(e,o))r.addUnknown(n);else if(Z(e))if(ee(n)){const{known:o}=me([{key:"",end:"",version:e.version}],n.children);r.addKnown({key:t,version:e.version,children:o})}else r.addKnown({key:t,end:t,version:e.version});else if(ee(e)&&ee(n)){const{known:t,unknown:o}=me(e.children,n.children,i);t&&r.addKnown(f(c({},e),{children:t})),o&&r.addUnknown(f(c({},n),{children:o}))}else if(re(e))r.addKnown(e),e.prefix&&Z(n)?r.addLinked($e([n],e.path,o,!0)):r.addLinked($e(n.children||n.value,e.path,o,e.prefix||n.prefix));else if(ee(e)&&n.options&&n.options.subtree)r.addKnown(e);else{if(ee(e)||ee(n))throw new Error("slice.leaf_branch_mismatch:"+y(e)+"\n"+y(n));r.addKnown(e)}}function _e(e,n,r){let{key:t,end:o,limit:i=1/0,version:s}=n;const l=t<o?1:-1;if(""===e[0].key&&e[0].prefix)Ae(e[0],n,r);else{if(t<o)for(let l=X(e,t);t<=o&&i>0;l++){const u=e[l];if(!u||t<u.key||oe(u,s))break;Z(u)?r.addKnown(xe(u,t,o)):(Ae(u,f(c({},n),{key:t}),r),i--),t=D(u.end||u.key)}else for(let l=Y(e,t)-1;t>=o&&i>0;l--){const u=e[l];if(!u||t>(u.end||u.key)||oe(u,s))break;Z(u)?r.addKnown(xe(u,o,t)):(Ae(u,f(c({},n),{key:t}),r),i--),t=C(u.key)}if(i&&(l<0?t>o:t<o)){const e=f(c({},n),{key:t,end:o,limit:i});r.addUnknown(e)}}}function xe(e,n,r){return e.key>=n&&e.end<=r?e:f(c({},e),{key:e.key>n?e.key:n,end:e.end<r?e.end:r})}function je(e,n,r=[]){let t=0;for(const o of n)t=Z(o)?Oe(e,o,r,t):Ue(e,o,r,t);return r}function Oe(e,n,r,t=0){const{key:o,end:i}=n,s=X(e,o),c=Y(e,i);if(s===c&&!(e[s]&&e[s].key<=o&&e[s].end>=i))return s;const f=[];let l=n.key;for(let a=s;a<c;a++){const r=e[a];if(Z(r)&&r.version>=0?(r.key>l&&f.push({key:l,end:C(r.key),version:n.version}),l=D(r.end)):Le(r,n)&&(f.push({key:l,end:C(r.key),version:n.version}),l=D(r.key)),l>=n.end)break}l<=n.end&&f.push({key:l,end:n.end,version:n.version}),f.length&&r.push(...f);const u=[n];for(let a=s;a<c;a++){const n=e[a];Z(n)?u.push(...Ee(u.pop(),n)):Ue(u,n,[],u.length-1)}return e.splice(s,c-s,...u),s+u.length}function Ee(e,n){return n.version<e.version&&([n,e]=[e,n]),[e.key<n.key&&f(c({},e),{end:C(n.key)}),n,e.end>n.end&&f(c({},e),{key:D(n.end)})].filter(Boolean)}function Ue(e,n,r,t=0){const o=n.key,i=X(e,o),s=e[i];return s&&s.key<=o?Z(s)?function(e,n,r,t){const o=r.key,i=e[n],s=Le(r,i),l=Se(r,i);if(!s)return;t.push(s);const u=[i.key<o&&f(c({},i),{end:C(o)}),l,i.end>o&&f(c({},i),{key:D(o)})].filter(Boolean);return e.splice(n,1,...u),n+u.length}(e,i,n,r):function(e,n,r,t){const o=e[n];if(ee(r)&&ee(o)){const e=[];o.version=r.version,je(o.children,r.children,e),e.length&&t.push(f(c({},r),{children:e}))}else if(ee(o)){const i=Se(o,r);e[n]=i||r,i||t.push(r)}else{const i=Le(r,o),s=Se(r,o);s&&(e[n]=s),!i||r.value===o.value&&function(e,n){if(!e&&!n)return!0;if(!e||!n)return!1;if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++)if(e[r]!==n[r])return!1;return!0}(r.path,o.path)||t.push(i)}return n+1}(e,i,n,r):i}function Se(e,n){if(ee(e)){const r={key:"",end:"",version:n.version},t=[r];return je(t,e.children),1===t.length&&t[0]===r?null:f(c({},e),{children:t})}return e.version>=n.version?e:null}function Le(e,n){if(ee(e)){const r=e.children.filter((e=>Le(e,n)));return r.length&&f(c({},e),{children:r})}return e.version>=n.version?e:null}function Ce(e,n){for(const r of e)r.version=n,r.children&&Ce(r.children,n);return e}function De(e,n=0){const r=[];for(const{key:t,end:o,children:i}of e){const e={key:t,version:n};o&&(o!==t&&(e.end=o),e.options={subtree:!0}),i?e.children=De(i):e.value=1,r.push(e)}return r}function Ne(e,n,r=Date.now()){let t=[{key:"",end:"",version:0}];return n&&(t=me(t,n).known||[]),t=Ce(ue(t,e),r),t}function Pe(e=[],{isGraph:n}={}){function r(e){let r=[],c=!0,u=!0;function a(...e){for(const n of e)B(n)&&!Number.isInteger(n.$key)&&(u=!1),B(n)&&"string"!=typeof n.$key&&(c=!1);r.push(...e)}const d=[];let y=null;function h({key:e,end:n}){if(y)if(y.end){if(e===D(y.end))return y.end=n||e,n&&n!==e}else e===D(y.key)&&(e=y.key);return n&&e!==n?(y={key:e,end:n},d.push(y),!0):(y={key:e},!1)}for(const l of e)n&&h(l)||(ne(l)?a(...t(l)):n&&Z(l)?a(s(l)):ee(l)?a(o(l)):re(l)?a(f(l)):a(i(l)));return(u||c)&&(r=r.reduce(((e,r)=>{if(Array.isArray(r))return e[r.$key]=r,delete r.$key,e;const t=r,{$key:o,$val:i}=t,s=l(t,["$key","$val"]);return"object"==typeof i&&(i.$val=!0),e[o]=B(i)?i:T(s)?!n||null:s,e}),c?{}:[])),n&&d.length&&(1===d.length&&""===d[0].key&&""===d[0].end?r.$put=!0:r.$put=d.map((e=>R(e)))),r}function t(e){let n=R(e);if(""===n&&(n={}),"string"==typeof n)throw Error("decode.unencoded_prefix: "+n);if(re(e)){n.$all=!0;const r=z(e.path),t=r[r.length-1];if("string"==typeof t)throw Error("decode.unencoded_prefix_ref: "+e.path);return t.$all=!0,[{$key:n,$ref:r}]}const t=r(e.children);if(!Array.isArray(t))throw Error("decode.prefix_without_encoded_child_keys:"+e.key);for(const r of t){if("string"==typeof r.$key)throw Error("decode.prefix_with_unencoded_child_key:"+r.$key);q(r.$key)[0]||(r.$key={$cursor:r.$key}),r.$key=c(c({},n),r.$key)}return t}function o(e){const n=r(e.children);return n.$key=R(e),n}function i(e){const r=n?{$val:e.value}:{};return r.$key=R(e),r}function s(e){if(e.key===e.end)return{$key:R({key:e.key})}}function f(e){return{$key:R(e),$ref:z(e.path)}}return r(e)}function Te(e){return Pe(e,{isGraph:!0})}function Be(e){return Pe(e,{isGraph:!1})}const Ke=Symbol(),Ie=Symbol();function Je(e,n){function r(e,n){const{key:r}=F(n);if(!Array.isArray(e))return null;const o=e[X(e,r)];if(!o)return;if(Z(o)&&o.end>=r)return null;if(o.key!==r)return;const i=t(o);return o.prefix&&(i[Ie]=n),i}function t(n){let r;return n.path?(r=ve(e,n.path),"object"==typeof r&&(r[Ke]=n.path)):r=ge(n),r}return function n(o,i){if(null===o)return null;let s;if(B(o)||(o=[]),i.$key&&(i=[i]),i.$ref){const r=i,{$ref:t}=r,o=l(r,["$ref"]),[f,u]=H(t),a=W(t),d=ve(e,a);f&&(d[Ie]=u),s=n(d,f?c({$key:f},o):o),s.$ref=t}else if(Array.isArray(i)){let e;s=i.flatMap(((i,s)=>{if(!(null==i?void 0:i.$key))return n(r(o,s),i);const u=i,{$key:a,$chi:d}=u,y=l(u,["$key","$chi"]),h=d||(T(y)?1:y);if(!K(a)||!q(a)[0])return n(r(o,a),h);if(e)throw Error("decorate.multi_range_query:"+JSON.stringify({$key:a,pageKey:e}));e=a;const k=function(e,n){const[t,o]=q(n);B(o)?e=r(e,o):""===e[0].key&&e[0].prefix&&(e=r(e,""));const{key:i,end:s,limit:c=1/0}=F(t),f=X(e,i);let l,u=f;if(i<s){for(let n=0;u<e.length&&n<c;u++)Z(e[u])||n++;l=e.slice(f,u)}else{for(let n=0;u>=0&&n<c;u--)Z(e[u])||n++;l=e.slice(u+1,f+1)}e[Ke]&&(l[Ke]=e[Ke]);e[Ie]&&(l[Ie]=e[Ie]);return l}(o,a);return k.filter((e=>!Z(e))).map((e=>{const r=R(e),o=n(t(e),h);return"object"==typeof o&&(o.$key=k[Ie]?f(c({},k[Ie]),{$cursor:r}):r),o}))})),function(e,n){if(n.$all)return void Object.assign(e,{$page:n,$prev:null,$next:null});const[r,...t]=q(n),o=r,{$first:i,$last:s}=o,u=l(o,["$first","$last"]),[a]=t,d=i||s,y=f(c(c({},a),u),{$all:!0});if(e.length===d)if(i){const n=e[e.length-1].$key;y.$until=B(null==n?void 0:n.$cursor)?n.$cursor:n,delete y.$before}else{const n=e[0].$key;y.$since=B(null==n?void 0:n.$cursor)?n.$cursor:n,delete y.$after}const h=B(y.$after)?f(c({},a),{$last:d,$until:y.$after}):B(y.$since)?f(c({},a),{$last:d,$before:y.$since}):null;let k=B(y.$before)?f(c({},a),{$first:d,$since:y.$before}):B(y.$until)?f(c({},a),{$first:d,$after:y.$until}):null;Object.assign(e,{$page:y,$next:k,$prev:h})}(s,e)}else if("object"==typeof i){s={};for(const e in i)s[e]=n(r(o,e),i[e])}else if(i)if(Array.isArray(o)&&!o.length)s=void 0;else if("object"==typeof o&&o)if(o[ke])s=Array.isArray(o)?o.slice(0):c({},o),s.$val=!0;else{if(!Array.isArray(o))throw Error("decorate.unexpected_graph",o);s=Te(o)}else s=o;return o[Ke]&&(s.$ref=o[Ke]),s}(e,n)}function Ve(e){return JSON.stringify(e).replace(/\uffff/g,"\\uffff")}function Ge(e){return JSON.parse(e)}const Me=Symbol();function qe(e,{version:n,isGraph:r}={}){var t;const o=[];const i=r?ue:se;function s(e,n,t){var u;if(!B(e))return;if("object"==typeof e&&e&&T(e))return;const a=e||{},{$key:d,$ver:y}=a,h=l(a,["$key","$ver"]),k=h,{$ref:p,$val:$,$chi:v,$put:g}=k,w=l(k,["$ref","$val","$chi","$put"]);if(B(y)&&(t=y),K(d)){const[o,i]=q(d);if(r&&o&&!B(o.$cursor)&&!T(h)){const r=s(f(c({},e),{$key:i||""}),n,t);return r.prefix=!0,r}if((!B(n)||Number.isInteger(n))&&o&&i){const r=s({$key:i,$chi:[f(c({},e),{$key:B(o.$cursor)?o.$cursor:o})]},n,t);return r.prefix=!0,r}}!B(d)||!Number.isInteger(n)&&B(n)||(n=d);const b=n!==Me&&B(n)?F(n):{};if(b.version=t,null===e)b.end=b.key;else if(B(d)&&B(n)&&n!==d)b.children=[s(e,void 0,t)].filter(Boolean);else if(p){if(function(e,n,t,i,f){const[l,u]=H(e);let a=T(t)?B(f)?s(l?[{$key:l,$chi:f}]:f,void 0,n).children:B(i)?i:r?void 0:1:s(l?[c({$key:l},t)]:t,void 0,n).children;a&&o.push($e(a,W(e),n,!!l)[0])}(p,b.version,w,$,v),!r)return;b.path=W(p)}else if(!0===$)b.value=w;else if(B($))b.value=$;else if("object"!=typeof e)b.value=r||"number"==typeof e?e:1;else if(B(v)){const e=v.map((e=>s(e,void 0,t))).filter(Boolean).sort(((e,n)=>e.key<=n.key?-1:1));e.length&&(b.children=e)}else if(Array.isArray(e)){const n=e.map(((e,n)=>s(e,n,t))).filter(Boolean).reduce(((e,n)=>(i(e,[n]),e)),[]);n.length&&(b.children=n)}else{const n=Object.keys(w).sort().map((n=>s(e[n],n,t))).filter(Boolean);n.length?b.children=n:r?b.key&&!b.end&&(b.end=b.key):b.value=1}let m;return Array.isArray(e)&&!e.some((e=>B(null==e?void 0:e.$key)))&&(m=[F({$since:0,$until:1/0})]),!0===g?m=null:Array.isArray(g)?m=g.map((e=>F(e))):B(g)&&(m=[F(g)]),r&&B(m)&&(b.children=Ne(b.children||[],m,b.version)),(null==(u=b.children)?void 0:u.length)||B(b.end)||B(b.value)||B(b.path)?b:void 0}(null==e?void 0:e.$key)&&(e=[e]);let u=(null==(t=s(e,Me,n))?void 0:t.children)||[];for(;o.length;)i(u,[o.pop()]);return u}function Fe(e,n=Date.now()){return qe(e,{version:n,isGraph:!0})}function Re(e,n=0){return qe(e,{version:n,isGraph:!1})}async function*We(...e){const n=(await Promise.all(e.map((e=>e.next())))).map((e=>e.value));if(n.some((e=>void 0===e))){yield;for(const e of n)void 0!==e&&(yield e)}else{let e=[];for(const r of n)ue(e,r);yield e}yield*h(e)}function ze(){const e=new Set;return{write:function(n){for(const r of e)r(n)},watch:function(...n){return k(((r,t)=>(e.add(r),n.length&&Promise.resolve(n[0]).then(r),()=>e.delete(r))))}}}function He(e,n){if("object"!=typeof n||"object"!=typeof e||!e||!n)return n;for(const r in n)if(r in e){const t=He(e[r],n[r]);null===t?delete e[r]:e[r]=t}else e[r]=n[r];return T(e)?null:e}function Qe(e){if("object"!=typeof e||!e)return e;const n={};for(const r in e){const t=Qe(e[r]);null!==t&&(n[r]=t)}return T(n)?null:n}function Xe(e,n){if(!Array.isArray(n))throw Error("wrapObject.path_not_array "+n);for(let r=n.length-1;r>=0;r--){const t=n[r];e="string"==typeof t?{[t]:e}:Array.isArray(e)?[{$key:t,$chi:e}]:[c({$key:t},e)]}return e}function Ye(e,n){if(!Array.isArray(n))throw Error("unwrapObject.path_not_array "+n);for(let r=0;r<n.length;r++){if(!e||"object"!=typeof e)return;const t=n[r];if("string"==typeof t){if(Array.isArray(e))throw Error("unwrapObject.string_key_array:"+t);e=e[t]}else{if(!Array.isArray(e))throw Error("unwrapObject.arg_key_object:"+JSON.stringify(t));const[n,r]=q(t);if(n&&!n.$cursor)return e;{const t=(null==n?void 0:n.$cursor)?f(c({},r),{$cursor:n.$cursor}):r;e=e.find((({$key:e})=>p(e,t)))}}}return e}export{ke as IS_VAL,se as add,Qe as cloneObject,R as decodeArgs,Te as decodeGraph,z as decodePath,Be as decodeQuery,v as decodeUrl,S as decodeValue,Je as decorate,Ge as deserialize,F as encodeArgs,Fe as encodeGraph,W as encodePath,Re as encodeQuery,$ as encodeUrl,E as encodeValue,N as err,P as errIf,Ne as finalize,J as find,X as findFirst,Y as findLast,De as getKnown,ge as getNodeValue,ee as isBranch,B as isDef,T as isEmpty,te as isEncoded,I as isEncodedKey,re as isLink,ie as isNewer,oe as isOlder,K as isPlainObject,ne as isPrefix,Z as isRange,D as keyAfter,C as keyBefore,L as keyStep,Q as makeId,ze as makeWatcher,ue as merge,He as mergeObject,We as mergeStreams,we as remove,Ve as serialize,Ce as setVersion,je as sieve,me as slice,q as splitArgs,H as splitRef,ve as unwrap,Ye as unwrapObject,$e as wrap,Xe as wrapObject,pe as wrapValue};
|
package/package.json
CHANGED
|
@@ -2,8 +2,13 @@
|
|
|
2
2
|
"name": "@graffy/common",
|
|
3
3
|
"description": "Common libraries that used by various Graffy modules.",
|
|
4
4
|
"author": "aravind (https://github.com/aravindet)",
|
|
5
|
-
"version": "0.15.
|
|
6
|
-
"main": "./
|
|
5
|
+
"version": "0.15.8-alpha.4",
|
|
6
|
+
"main": "./index.cjs",
|
|
7
|
+
"exports": {
|
|
8
|
+
"import": "./index.mjs",
|
|
9
|
+
"require": "./index.cjs"
|
|
10
|
+
},
|
|
11
|
+
"module": "./index.mjs",
|
|
7
12
|
"types": "./types/index.d.ts",
|
|
8
13
|
"repository": {
|
|
9
14
|
"type": "git",
|
|
@@ -11,13 +16,12 @@
|
|
|
11
16
|
},
|
|
12
17
|
"license": "Apache-2.0",
|
|
13
18
|
"dependencies": {
|
|
14
|
-
"@babel/runtime-corejs3": "^7.15.3",
|
|
15
|
-
"lodash": "^4.17.19",
|
|
16
|
-
"nanoid": "^3.1.25",
|
|
17
19
|
"text-encoder-lite": "^2.0.0",
|
|
18
20
|
"global": "^4.4.0",
|
|
19
|
-
"
|
|
20
|
-
"@graffy/
|
|
21
|
-
"merge-async-iterators": "^0.2.1"
|
|
21
|
+
"nanoid": "^3.1.25",
|
|
22
|
+
"@graffy/testing": "0.15.8-alpha.4",
|
|
23
|
+
"merge-async-iterators": "^0.2.1",
|
|
24
|
+
"@graffy/stream": "0.15.8-alpha.4",
|
|
25
|
+
"lodash": "^4.17.19"
|
|
22
26
|
}
|
|
23
27
|
}
|
package/cjs/coding/alphabet.js
DELETED
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
exports.__esModule = true;
|
|
4
|
-
exports.default = void 0;
|
|
5
|
-
|
|
6
|
-
/*
|
|
7
|
-
This is just like standard URL-safe Base64, except for using an alphabet
|
|
8
|
-
re-ordered for sortability.
|
|
9
|
-
*/
|
|
10
|
-
var _default = '-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz';
|
|
11
|
-
exports.default = _default;
|
|
12
|
-
module.exports = exports.default;
|
package/cjs/coding/args.js
DELETED
|
@@ -1,151 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.splitArgs = splitArgs;
|
|
7
|
-
exports.encode = encode;
|
|
8
|
-
exports.decode = decode;
|
|
9
|
-
|
|
10
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutPropertiesLoose"));
|
|
11
|
-
|
|
12
|
-
var _slice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/slice"));
|
|
13
|
-
|
|
14
|
-
var _struct = require("./struct.js");
|
|
15
|
-
|
|
16
|
-
var _step = require("../ops/step.js");
|
|
17
|
-
|
|
18
|
-
var _util = require("../util.js");
|
|
19
|
-
|
|
20
|
-
var _excluded = ["$cursor"];
|
|
21
|
-
|
|
22
|
-
function maybeEncode(value) {
|
|
23
|
-
return typeof value === 'string' ? value : '\0' + (0, _struct.encode)(value);
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
function maybeDecode(string) {
|
|
27
|
-
if ((0, _util.isEncodedKey)(string)) {
|
|
28
|
-
var _keyStep = (0, _step.keyStep)((0, _slice.default)(string).call(string, 1)),
|
|
29
|
-
key = _keyStep.key,
|
|
30
|
-
step = _keyStep.step;
|
|
31
|
-
|
|
32
|
-
var value = key === '' || key === "\uFFFF" ? key : (0, _struct.decode)(key);
|
|
33
|
-
return {
|
|
34
|
-
key: value,
|
|
35
|
-
step: step
|
|
36
|
-
};
|
|
37
|
-
} else {
|
|
38
|
-
return (0, _step.keyStep)(string);
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
var pageProps = {
|
|
43
|
-
$all: 1,
|
|
44
|
-
$first: 1,
|
|
45
|
-
$last: 1,
|
|
46
|
-
$after: 1,
|
|
47
|
-
$before: 1,
|
|
48
|
-
$since: 1,
|
|
49
|
-
$until: 1,
|
|
50
|
-
$cursor: 1
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
function splitArgs(arg) {
|
|
54
|
-
var page = {};
|
|
55
|
-
var filter = {};
|
|
56
|
-
|
|
57
|
-
for (var p in arg) {
|
|
58
|
-
(p in pageProps ? page : filter)[p] = arg[p];
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
return [(0, _util.isEmpty)(page) ? undefined : page, (0, _util.isEmpty)(filter) ? undefined : filter];
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
function encode(arg) {
|
|
65
|
-
if (!(0, _util.isPlainObject)(arg)) return {
|
|
66
|
-
key: maybeEncode(arg)
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
var _splitArgs = splitArgs(arg),
|
|
70
|
-
page = _splitArgs[0],
|
|
71
|
-
filter = _splitArgs[1];
|
|
72
|
-
|
|
73
|
-
(0, _util.errIf)('page_and_filter', page && filter);
|
|
74
|
-
if (!page) return {
|
|
75
|
-
key: maybeEncode(filter || {})
|
|
76
|
-
};
|
|
77
|
-
var $cursor = page.$cursor,
|
|
78
|
-
range = (0, _objectWithoutPropertiesLoose2.default)(page, _excluded);
|
|
79
|
-
var $first = range.$first,
|
|
80
|
-
$all = range.$all,
|
|
81
|
-
$last = range.$last,
|
|
82
|
-
$after = range.$after,
|
|
83
|
-
$before = range.$before,
|
|
84
|
-
$since = range.$since,
|
|
85
|
-
$until = range.$until;
|
|
86
|
-
var hasRange = !(0, _util.isEmpty)(range);
|
|
87
|
-
(0, _util.errIf)('first_and_last', (0, _util.isDef)($first) && (0, _util.isDef)($last));
|
|
88
|
-
(0, _util.errIf)('all_and_last', (0, _util.isDef)($all) && (0, _util.isDef)($last));
|
|
89
|
-
(0, _util.errIf)('all_and_first', (0, _util.isDef)($first) && (0, _util.isDef)($all));
|
|
90
|
-
(0, _util.errIf)('after_and_since', (0, _util.isDef)($after) && (0, _util.isDef)($since));
|
|
91
|
-
(0, _util.errIf)('before_and_until', (0, _util.isDef)($before) && (0, _util.isDef)($until));
|
|
92
|
-
(0, _util.errIf)('cursor_and_range_arg', (0, _util.isDef)($cursor) && hasRange);
|
|
93
|
-
|
|
94
|
-
var _ref = hasRange ? ['', "\uFFFF"] : [],
|
|
95
|
-
key = _ref[0],
|
|
96
|
-
end = _ref[1];
|
|
97
|
-
|
|
98
|
-
if ((0, _util.isDef)($cursor)) key = maybeEncode($cursor);
|
|
99
|
-
if ((0, _util.isDef)($after)) key = (0, _step.keyAfter)(maybeEncode($after));
|
|
100
|
-
if ((0, _util.isDef)($before)) end = (0, _step.keyBefore)(maybeEncode($before));
|
|
101
|
-
if ((0, _util.isDef)($since)) key = maybeEncode($since);
|
|
102
|
-
if ((0, _util.isDef)($until)) end = maybeEncode($until);
|
|
103
|
-
|
|
104
|
-
if ((0, _util.isDef)($last)) {
|
|
105
|
-
var _ref2 = [end, key];
|
|
106
|
-
key = _ref2[0];
|
|
107
|
-
end = _ref2[1];
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
var node = {
|
|
111
|
-
key: key
|
|
112
|
-
};
|
|
113
|
-
if ((0, _util.isDef)(end)) node.end = end;
|
|
114
|
-
if ($first || $last) node.limit = $first || $last;
|
|
115
|
-
return node;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
function decode(node) {
|
|
119
|
-
if (typeof node === 'string') return node;
|
|
120
|
-
var key = node.key,
|
|
121
|
-
end = node.end,
|
|
122
|
-
limit = node.limit;
|
|
123
|
-
if (!(0, _util.isEncodedKey)(key) && (!(0, _util.isDef)(end) || end === key)) return key;
|
|
124
|
-
(0, _util.errIf)('no_key', !(0, _util.isDef)(key));
|
|
125
|
-
(0, _util.errIf)('limit_without_end', (0, _util.isDef)(limit) && !(0, _util.isDef)(end));
|
|
126
|
-
var kParts = maybeDecode(key);
|
|
127
|
-
if (!(0, _util.isDef)(end)) return kParts.key;
|
|
128
|
-
var eParts = maybeDecode(end);
|
|
129
|
-
|
|
130
|
-
var _ref3 = key < end ? [kParts, eParts] : [eParts, kParts],
|
|
131
|
-
lower = _ref3[0],
|
|
132
|
-
upper = _ref3[1];
|
|
133
|
-
|
|
134
|
-
var args = {};
|
|
135
|
-
|
|
136
|
-
if (limit) {
|
|
137
|
-
args[key < end ? '$first' : '$last'] = limit;
|
|
138
|
-
} else if (lower.key === '' && upper.key === "\uFFFF") {
|
|
139
|
-
args.$all = true;
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
if (lower.key !== '') {
|
|
143
|
-
args[lower.step === 1 ? '$after' : '$since'] = lower.key;
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
if (upper.key !== "\uFFFF") {
|
|
147
|
-
args[upper.step === -1 ? '$before' : '$until'] = upper.key;
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return args;
|
|
151
|
-
}
|
package/cjs/coding/base64.js
DELETED
|
@@ -1,61 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
4
|
-
|
|
5
|
-
exports.__esModule = true;
|
|
6
|
-
exports.encode = encode;
|
|
7
|
-
exports.decode = decode;
|
|
8
|
-
|
|
9
|
-
var _indexOf = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/index-of"));
|
|
10
|
-
|
|
11
|
-
var _alphabet = _interopRequireDefault(require("./alphabet.js"));
|
|
12
|
-
|
|
13
|
-
function getByte(view, offset) {
|
|
14
|
-
return offset < view.byteLength ? view.getUint8(offset) : 0;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
function getChar(string, offset) {
|
|
18
|
-
return offset < string.length ? (0, _indexOf.default)(_alphabet.default).call(_alphabet.default, string[offset]) : 0;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
function encode(u8Arr) {
|
|
22
|
-
var buffer = u8Arr.buffer,
|
|
23
|
-
byteOffset = u8Arr.byteOffset,
|
|
24
|
-
byteLength = u8Arr.byteLength;
|
|
25
|
-
var view = new DataView(buffer, byteOffset, byteLength);
|
|
26
|
-
var str = '';
|
|
27
|
-
|
|
28
|
-
for (var i = 0; i < view.byteLength; i += 3) {
|
|
29
|
-
var value = (getByte(view, i) << 16) + (getByte(view, i + 1) << 8) + getByte(view, i + 2);
|
|
30
|
-
var gstr = '';
|
|
31
|
-
|
|
32
|
-
for (var j = 0; j < 4; j++) {
|
|
33
|
-
gstr = _alphabet.default[value & 0x3f] + gstr;
|
|
34
|
-
value = value >> 6 | 0;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
str += gstr;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
return str.substr(0, Math.ceil(view.byteLength * 4 / 3));
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
function decode(string, start) {
|
|
44
|
-
if (start === void 0) {
|
|
45
|
-
start = 0;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
var buffer = new ArrayBuffer(Math.floor((string.length - start) * 3 / 4));
|
|
49
|
-
var view = new DataView(buffer);
|
|
50
|
-
|
|
51
|
-
for (var i = start; i < string.length; i += 4) {
|
|
52
|
-
var value = (getChar(string, i) << 18) + (getChar(string, i + 1) << 12) + (getChar(string, i + 2) << 6) + getChar(string, i + 3);
|
|
53
|
-
|
|
54
|
-
for (var j = i * 3 / 4 + 2; j >= i * 3 / 4; j--) {
|
|
55
|
-
if (j < view.byteLength) view.setUint8(j, value & 0xff);
|
|
56
|
-
value = value >> 8 | 0;
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
return new Uint8Array(buffer);
|
|
61
|
-
}
|
package/cjs/coding/decodeTree.js
DELETED
|
@@ -1,253 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
|
|
3
|
-
var _sliceInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/slice");
|
|
4
|
-
|
|
5
|
-
var _Array$from = require("@babel/runtime-corejs3/core-js-stable/array/from");
|
|
6
|
-
|
|
7
|
-
var _Symbol = require("@babel/runtime-corejs3/core-js-stable/symbol");
|
|
8
|
-
|
|
9
|
-
var _getIteratorMethod = require("@babel/runtime-corejs3/core-js/get-iterator-method");
|
|
10
|
-
|
|
11
|
-
var _bindInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/bind");
|
|
12
|
-
|
|
13
|
-
var _Array$isArray2 = require("@babel/runtime-corejs3/core-js-stable/array/is-array");
|
|
14
|
-
|
|
15
|
-
var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
|
|
16
|
-
|
|
17
|
-
exports.__esModule = true;
|
|
18
|
-
exports.decodeGraph = decodeGraph;
|
|
19
|
-
exports.decodeQuery = decodeQuery;
|
|
20
|
-
|
|
21
|
-
var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
|
|
22
|
-
|
|
23
|
-
var _objectWithoutPropertiesLoose2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/objectWithoutPropertiesLoose"));
|
|
24
|
-
|
|
25
|
-
var _isInteger = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/number/is-integer"));
|
|
26
|
-
|
|
27
|
-
var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
|
|
28
|
-
|
|
29
|
-
var _isArray = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/array/is-array"));
|
|
30
|
-
|
|
31
|
-
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
32
|
-
|
|
33
|
-
var _args = require("./args.js");
|
|
34
|
-
|
|
35
|
-
var _path = require("./path.js");
|
|
36
|
-
|
|
37
|
-
var _util = require("../util.js");
|
|
38
|
-
|
|
39
|
-
var _index = require("../ops/index.js");
|
|
40
|
-
|
|
41
|
-
var _index2 = require("../node/index.js");
|
|
42
|
-
|
|
43
|
-
var _excluded = ["$key", "$val"];
|
|
44
|
-
|
|
45
|
-
function _createForOfIteratorHelperLoose(o, allowArrayLike) { var _context2; var it = typeof _Symbol !== "undefined" && _getIteratorMethod(o) || o["@@iterator"]; if (it) return _bindInstanceProperty(_context2 = (it = it.call(o)).next).call(_context2, it); if (_Array$isArray2(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
46
|
-
|
|
47
|
-
function _unsupportedIterableToArray(o, minLen) { var _context; if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = _sliceInstanceProperty(_context = Object.prototype.toString.call(o)).call(_context, 8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
48
|
-
|
|
49
|
-
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
|
|
50
|
-
|
|
51
|
-
/**
|
|
52
|
-
@param {Tree} node
|
|
53
|
-
@param {boolean} options.isGraph
|
|
54
|
-
*/
|
|
55
|
-
function decode(nodes, _temp) {
|
|
56
|
-
if (nodes === void 0) {
|
|
57
|
-
nodes = [];
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
var _ref = _temp === void 0 ? {} : _temp,
|
|
61
|
-
isGraph = _ref.isGraph;
|
|
62
|
-
|
|
63
|
-
function decodeChildren(nodes) {
|
|
64
|
-
var result = [];
|
|
65
|
-
var allStrs = true;
|
|
66
|
-
var allNums = true; //Pushes objects to the result set and updates allStrs and allNums.
|
|
67
|
-
|
|
68
|
-
function pushResult() {
|
|
69
|
-
var _result;
|
|
70
|
-
|
|
71
|
-
for (var _len = arguments.length, objects = new Array(_len), _key = 0; _key < _len; _key++) {
|
|
72
|
-
objects[_key] = arguments[_key];
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
for (var _i = 0, _objects = objects; _i < _objects.length; _i++) {
|
|
76
|
-
var object = _objects[_i];
|
|
77
|
-
if ((0, _util.isDef)(object) && !(0, _isInteger.default)(object.$key)) allNums = false;
|
|
78
|
-
if ((0, _util.isDef)(object) && typeof object.$key !== 'string') allStrs = false;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
(_result = result).push.apply(_result, objects);
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
var putRanges = [];
|
|
85
|
-
var lastNode = null; // Graphs only: Constructs the $put array. Returns true if this is a range
|
|
86
|
-
// node that does not require to be added to the results.
|
|
87
|
-
|
|
88
|
-
function addPutRange(_ref2) {
|
|
89
|
-
var key = _ref2.key,
|
|
90
|
-
end = _ref2.end;
|
|
91
|
-
|
|
92
|
-
if (lastNode) {
|
|
93
|
-
if (lastNode.end) {
|
|
94
|
-
if (key === (0, _index.keyAfter)(lastNode.end)) {
|
|
95
|
-
lastNode.end = end || key;
|
|
96
|
-
return end && end !== key;
|
|
97
|
-
}
|
|
98
|
-
} else {
|
|
99
|
-
if (key === (0, _index.keyAfter)(lastNode.key)) key = lastNode.key;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
if (end && key !== end) {
|
|
104
|
-
lastNode = {
|
|
105
|
-
key: key,
|
|
106
|
-
end: end
|
|
107
|
-
};
|
|
108
|
-
putRanges.push(lastNode);
|
|
109
|
-
return true;
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
lastNode = {
|
|
113
|
-
key: key
|
|
114
|
-
};
|
|
115
|
-
return false;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
for (var _iterator = _createForOfIteratorHelperLoose(nodes), _step; !(_step = _iterator()).done;) {
|
|
119
|
-
var node = _step.value;
|
|
120
|
-
if (isGraph && addPutRange(node)) continue;
|
|
121
|
-
if ((0, _index2.isPrefix)(node)) pushResult.apply(void 0, decodePrefixNode(node));else if (isGraph && (0, _index2.isRange)(node)) pushResult(decodeRangeNode(node));else if ((0, _index2.isBranch)(node)) pushResult(decodeBranchNode(node));else if ((0, _index2.isLink)(node)) pushResult(decodeLinkNode(node));else pushResult(decodeLeafNode(node));
|
|
122
|
-
} // Use a simplified format if all the keys are numbers or strings.
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
if (allNums || allStrs) {
|
|
126
|
-
result = (0, _reduce.default)(result).call(result, function (collection, item) {
|
|
127
|
-
if ((0, _isArray.default)(item)) {
|
|
128
|
-
collection[item.$key] = item;
|
|
129
|
-
delete item.$key;
|
|
130
|
-
return collection;
|
|
131
|
-
}
|
|
132
|
-
|
|
133
|
-
var $key = item.$key,
|
|
134
|
-
$val = item.$val,
|
|
135
|
-
rest = (0, _objectWithoutPropertiesLoose2.default)(item, _excluded);
|
|
136
|
-
if (typeof $val === 'object') $val.$val = true; // prettier-ignore
|
|
137
|
-
|
|
138
|
-
collection[$key] = (0, _util.isDef)($val) ? $val : !(0, _util.isEmpty)(rest) ? rest : isGraph ? null : true;
|
|
139
|
-
return collection;
|
|
140
|
-
}, allStrs ? {} : []);
|
|
141
|
-
}
|
|
142
|
-
|
|
143
|
-
if (isGraph && putRanges.length) {
|
|
144
|
-
if (putRanges.length === 1 && putRanges[0].key === '' && putRanges[0].end === "\uFFFF") {
|
|
145
|
-
result.$put = true;
|
|
146
|
-
} else {
|
|
147
|
-
result.$put = (0, _map.default)(putRanges).call(putRanges, function (rNode) {
|
|
148
|
-
return (0, _args.decode)(rNode);
|
|
149
|
-
});
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
return result;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
function decodePrefixNode(node) {
|
|
157
|
-
var args = (0, _args.decode)(node);
|
|
158
|
-
if (args === '') args = {};
|
|
159
|
-
|
|
160
|
-
if (typeof args === 'string') {
|
|
161
|
-
throw Error('decode.unencoded_prefix: ' + args);
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
if ((0, _index2.isLink)(node)) {
|
|
165
|
-
args.$all = true;
|
|
166
|
-
var $ref = (0, _path.decode)(node.path);
|
|
167
|
-
var lastKey = $ref[$ref.length - 1];
|
|
168
|
-
|
|
169
|
-
if (typeof lastKey === 'string') {
|
|
170
|
-
throw Error('decode.unencoded_prefix_ref: ' + node.path);
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
lastKey.$all = true;
|
|
174
|
-
return [{
|
|
175
|
-
$key: args,
|
|
176
|
-
$ref: $ref
|
|
177
|
-
}];
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
var children = decodeChildren(node.children);
|
|
181
|
-
|
|
182
|
-
if (!(0, _isArray.default)(children)) {
|
|
183
|
-
throw Error('decode.prefix_without_encoded_child_keys:' + node.key);
|
|
184
|
-
}
|
|
185
|
-
|
|
186
|
-
for (var _iterator2 = _createForOfIteratorHelperLoose(children), _step2; !(_step2 = _iterator2()).done;) {
|
|
187
|
-
var child = _step2.value;
|
|
188
|
-
|
|
189
|
-
if (typeof child.$key === 'string') {
|
|
190
|
-
throw Error('decode.prefix_with_unencoded_child_key:' + child.$key);
|
|
191
|
-
}
|
|
192
|
-
|
|
193
|
-
if (!(0, _args.splitArgs)(child.$key)[0]) {
|
|
194
|
-
// splitArgs returns [page, filter]. If page is blank, it indicates
|
|
195
|
-
// we have a bare cursor.
|
|
196
|
-
child.$key = {
|
|
197
|
-
$cursor: child.$key
|
|
198
|
-
};
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
child.$key = (0, _extends2.default)({}, args, child.$key);
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
return children;
|
|
205
|
-
}
|
|
206
|
-
|
|
207
|
-
function decodeBranchNode(node) {
|
|
208
|
-
var child = decodeChildren(node.children);
|
|
209
|
-
child.$key = (0, _args.decode)(node);
|
|
210
|
-
return child;
|
|
211
|
-
}
|
|
212
|
-
|
|
213
|
-
function decodeLeafNode(node) {
|
|
214
|
-
var child = isGraph ? {
|
|
215
|
-
$val: node.value
|
|
216
|
-
} : {};
|
|
217
|
-
child.$key = (0, _args.decode)(node);
|
|
218
|
-
return child;
|
|
219
|
-
}
|
|
220
|
-
/**
|
|
221
|
-
Only for graphs;
|
|
222
|
-
*/
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
function decodeRangeNode(node) {
|
|
226
|
-
if (node.key === node.end) return {
|
|
227
|
-
$key: (0, _args.decode)({
|
|
228
|
-
key: node.key
|
|
229
|
-
})
|
|
230
|
-
};
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
function decodeLinkNode(node) {
|
|
234
|
-
return {
|
|
235
|
-
$key: (0, _args.decode)(node),
|
|
236
|
-
$ref: (0, _path.decode)(node.path)
|
|
237
|
-
};
|
|
238
|
-
}
|
|
239
|
-
|
|
240
|
-
return decodeChildren(nodes);
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
function decodeGraph(graph) {
|
|
244
|
-
return decode(graph, {
|
|
245
|
-
isGraph: true
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
|
|
249
|
-
function decodeQuery(query) {
|
|
250
|
-
return decode(query, {
|
|
251
|
-
isGraph: false
|
|
252
|
-
});
|
|
253
|
-
}
|