proto.io 0.0.174 → 0.0.176

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.
Files changed (46) hide show
  1. package/dist/adapters/file/database.d.ts +2 -2
  2. package/dist/adapters/file/database.js +1 -0
  3. package/dist/adapters/file/database.js.map +1 -1
  4. package/dist/adapters/file/database.mjs +3 -2
  5. package/dist/adapters/file/database.mjs.map +1 -1
  6. package/dist/adapters/file/filesystem.d.ts +2 -2
  7. package/dist/adapters/file/google-cloud-storage.d.ts +2 -2
  8. package/dist/adapters/storage/progres.d.ts +3 -2
  9. package/dist/adapters/storage/progres.js +51 -29
  10. package/dist/adapters/storage/progres.js.map +1 -1
  11. package/dist/adapters/storage/progres.mjs +53 -31
  12. package/dist/adapters/storage/progres.mjs.map +1 -1
  13. package/dist/client.d.ts +3 -3
  14. package/dist/client.js +1 -1
  15. package/dist/client.mjs +3 -3
  16. package/dist/index.d.ts +3 -3
  17. package/dist/index.js +58 -314
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +62 -318
  20. package/dist/index.mjs.map +1 -1
  21. package/dist/internals/{index-CGX3qcjQ.d.ts → index-B0DE6MVr.d.ts} +2 -2
  22. package/dist/internals/index-B0DE6MVr.d.ts.map +1 -0
  23. package/dist/internals/{index-CE5tdYK8.d.ts → index-BZcW5wgM.d.ts} +32 -68
  24. package/dist/internals/index-BZcW5wgM.d.ts.map +1 -0
  25. package/dist/internals/{index-uwXdnxqN.d.ts → index-Bh60s4Tq.d.ts} +32 -2
  26. package/dist/internals/index-Bh60s4Tq.d.ts.map +1 -0
  27. package/dist/internals/{index--ifyu-GL.mjs → index-CTsc042s.mjs} +2 -2
  28. package/dist/internals/{index--ifyu-GL.mjs.map → index-CTsc042s.mjs.map} +1 -1
  29. package/dist/internals/{index-S_gTMQBh.js → index-Cd6nNb--.js} +31 -43
  30. package/dist/internals/index-Cd6nNb--.js.map +1 -0
  31. package/dist/internals/{index-C3fbOqmn.mjs → index-DHQhYGsJ.mjs} +2 -2
  32. package/dist/internals/{index-C3fbOqmn.mjs.map → index-DHQhYGsJ.mjs.map} +1 -1
  33. package/dist/internals/{index-R0gbIGc-.mjs → index-tEsKpX2d.mjs} +32 -44
  34. package/dist/internals/index-tEsKpX2d.mjs.map +1 -0
  35. package/dist/internals/{random-DVOUDDGg.js → random-CvVZek_8.js} +13 -1
  36. package/dist/internals/random-CvVZek_8.js.map +1 -0
  37. package/dist/internals/{random-DPRG8oW6.mjs → random-DGiu1IIq.mjs} +15 -3
  38. package/dist/internals/random-DGiu1IIq.mjs.map +1 -0
  39. package/package.json +1 -1
  40. package/dist/internals/index-CE5tdYK8.d.ts.map +0 -1
  41. package/dist/internals/index-CGX3qcjQ.d.ts.map +0 -1
  42. package/dist/internals/index-R0gbIGc-.mjs.map +0 -1
  43. package/dist/internals/index-S_gTMQBh.js.map +0 -1
  44. package/dist/internals/index-uwXdnxqN.d.ts.map +0 -1
  45. package/dist/internals/random-DPRG8oW6.mjs.map +0 -1
  46. package/dist/internals/random-DVOUDDGg.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import _ from 'lodash';
2
- import { l as isValue } from './index--ifyu-GL.mjs';
2
+ import { l as isValue } from './index-CTsc042s.mjs';
3
3
 
4
4
  //
5
5
  // keys.ts
@@ -487,4 +487,4 @@ class QueryExpressionSelector extends QuerySelector {
487
487
  }
488
488
 
489
489
  export { FieldSelectorExpression as F, QuerySelector as Q, QueryCoditionalSelector as a, QueryFieldSelector as b, QueryExpressionSelector as c, QueryDistanceExpression as d, QueryCoditionalExpression as e, QueryComparisonExpression as f, QueryNotExpression as g, QueryArrayExpression as h, QueryValueExpression as i, QueryKeyExpression as j, QueryExpression as k };
490
- //# sourceMappingURL=index-C3fbOqmn.mjs.map
490
+ //# sourceMappingURL=index-DHQhYGsJ.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-C3fbOqmn.mjs","sources":["../../../src/internals/query/types/keys.ts","../../../src/server/query/dispatcher/parser/expressions.ts","../../../src/internals/query/types/selectors.ts","../../../src/server/query/dispatcher/parser/index.ts"],"sourcesContent":["//\n// keys.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nexport const TComparisonKeys = [\n '$eq',\n '$gt',\n '$gte',\n '$lt',\n '$lte',\n '$ne',\n] as const;\n\nexport const TValueListKeys = [\n '$in',\n '$nin',\n] as const;\n\nexport const TValueSetKeys = [\n '$subset',\n '$superset',\n '$intersect',\n] as const;\n\nexport const TConditionalKeys = [\n '$and',\n '$nor',\n '$or',\n] as const;\n\nexport const TDistanceKeys = [\n '$distance',\n '$innerProduct',\n '$negInnerProduct',\n '$cosineDistance',\n '$rectilinearDistance',\n] as const;\n","//\n// expressions.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { TExpression } from '../../../../internals/query/types/expressions';\nimport { TComparisonKeys, TConditionalKeys, TDistanceKeys } from '../../../../internals/query/types/keys';\nimport { isValue } from '../../../../internals/object';\nimport { TValue } from '../../../../internals/types';\n\nexport class QueryExpression {\n\n static decode(expr: _.Many<TExpression>, dollerSign: boolean): QueryExpression {\n const exprs: QueryExpression[] = [];\n for (const selector of _.castArray(expr)) {\n for (const [key, query] of _.toPairs(selector)) {\n if (_.includes(TConditionalKeys, key) && _.isArray(query)) {\n exprs.push(new QueryCoditionalExpression(key as any, _.map(query, x => QueryExpression.decode(x as any, dollerSign))));\n } else if (_.includes(TComparisonKeys, key) && _.isArray(query) && query.length === 2) {\n const [left, right] = query;\n exprs.push(new QueryComparisonExpression(key as any, QueryExpression.decode(left as any, dollerSign), QueryExpression.decode(right as any, dollerSign)));\n } else if (_.includes(TDistanceKeys, key) && _.isArray(query) && query.length === 2) {\n const [left, right] = query;\n const _left = _.isArray(left) ? _.map(left, x => QueryExpression.decode(x as any, dollerSign)) : QueryExpression.decode(left as any, dollerSign);\n const _right = _.isArray(right) ? _.map(right, x => QueryExpression.decode(x as any, dollerSign)) : QueryExpression.decode(right as any, dollerSign);\n exprs.push(new QueryDistanceExpression(key as any, _.castArray(_left), _.castArray(_right)));\n } else if (key === '$not') {\n exprs.push(new QueryNotExpression(QueryExpression.decode(query as any, dollerSign)));\n } else if (key === '$array' && _.isArray(query)) {\n exprs.push(new QueryArrayExpression(_.map(query, x => QueryExpression.decode(x as any, dollerSign))));\n } else if (key === '$key' && _.isString(query)) {\n if (dollerSign && query === '$') {\n exprs.push(new QueryKeyExpression(query));\n } else if (!query.startsWith('$')) {\n exprs.push(new QueryKeyExpression(query));\n } else {\n throw Error('Invalid expression');\n }\n } else if (key === '$value' && isValue(query)) {\n exprs.push(new QueryValueExpression(query));\n } else {\n throw Error('Invalid expression');\n }\n }\n }\n if (_.isEmpty(exprs)) return new QueryExpression;\n return (exprs.length === 1 ? exprs[0] : new QueryCoditionalExpression('$and', exprs)).simplify();\n }\n\n simplify(): QueryExpression {\n return this;\n }\n\n keyPaths(): string[] {\n return [];\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return this;\n }\n}\n\nexport class QueryCoditionalExpression extends QueryExpression {\n\n type: typeof TConditionalKeys[number];\n exprs: QueryExpression[];\n\n constructor(type: typeof TConditionalKeys[number], exprs: QueryExpression[]) {\n super();\n this.type = type;\n this.exprs = exprs;\n }\n\n simplify() {\n if (_.isEmpty(this.exprs)) return new QueryExpression;\n if (this.exprs.length === 1 && this.type !== '$nor') return this.exprs[0];\n switch (this.type) {\n case '$and':\n return new QueryCoditionalExpression(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalExpression && x.type === '$and' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QueryExpression;\n case '$nor':\n case '$or':\n return new QueryCoditionalExpression(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalExpression && x.type === '$or' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QueryExpression;\n }\n }\n\n keyPaths(): string[] {\n return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryCoditionalExpression(this.type, _.map(this.exprs, x => x.mapKey(callback)));\n }\n}\n\nexport class QueryComparisonExpression extends QueryExpression {\n\n type: typeof TComparisonKeys[number];\n left: QueryExpression;\n right: QueryExpression;\n\n constructor(type: typeof TComparisonKeys[number], left: QueryExpression, right: QueryExpression) {\n super();\n this.type = type;\n this.left = left;\n this.right = right;\n }\n\n simplify() {\n return new QueryComparisonExpression(this.type, this.left.simplify(), this.right.simplify());\n }\n\n keyPaths(): string[] {\n return _.uniq([\n ...this.left.keyPaths(),\n ...this.right.keyPaths(),\n ]);\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryComparisonExpression(this.type, this.left.mapKey(callback), this.right.mapKey(callback));\n }\n}\n\nexport class QueryNotExpression extends QueryExpression {\n\n expr: QueryExpression;\n\n constructor(expr: QueryExpression) {\n super();\n this.expr = expr;\n }\n\n simplify() {\n return new QueryNotExpression(this.expr.simplify());\n }\n\n keyPaths(): string[] {\n return this.expr.keyPaths();\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryNotExpression(this.expr.mapKey(callback));\n }\n}\n\nexport class QueryArrayExpression extends QueryExpression {\n\n exprs: QueryExpression[];\n\n constructor(exprs: QueryExpression[]) {\n super();\n this.exprs = exprs;\n }\n\n simplify() {\n return new QueryArrayExpression(_.map(this.exprs, x => x.simplify())) as QueryExpression;\n }\n\n keyPaths(): string[] {\n return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryArrayExpression(_.map(this.exprs, x => x.mapKey(callback)));\n }\n}\n\nexport class QueryDistanceExpression extends QueryExpression {\n\n type: typeof TDistanceKeys[number];\n left: QueryExpression[];\n right: QueryExpression[];\n\n constructor(type: typeof TDistanceKeys[number], left: QueryExpression[], right: QueryExpression[]) {\n super();\n this.type = type;\n this.left = left;\n this.right = right;\n }\n\n simplify() {\n return new QueryDistanceExpression(this.type, _.map(this.left, x => x.simplify()), _.map(this.right, x => x.simplify()));\n }\n\n keyPaths(): string[] {\n return _.uniq([\n ..._.flatMap(this.left, x => x.keyPaths()),\n ..._.flatMap(this.right, x => x.keyPaths()),\n ]);\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryDistanceExpression(this.type, _.map(this.left, x => x.mapKey(callback)), _.map(this.right, x => x.mapKey(callback)));\n }\n}\n\nexport class QueryKeyExpression extends QueryExpression {\n\n key: string;\n\n constructor(key: string) {\n super();\n this.key = key;\n }\n\n keyPaths(): string[] {\n return this.key === '$' ? [] : [this.key];\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryKeyExpression(callback(this.key));\n }\n}\n\nexport class QueryValueExpression extends QueryExpression {\n\n value: TValue;\n\n constructor(value: TValue) {\n super();\n this.value = value;\n }\n}\n","//\n// selectors.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport { TValue } from '../../types';\nimport { TBooleanExpression } from './expressions';\nimport { TConditionalKeys, TValueListKeys, TValueSetKeys, TComparisonKeys } from './keys';\n\nexport const allFieldQueryKeys = [\n '$not', '$pattern', '$starts', '$ends', '$size', '$empty', '$every', '$some',\n ...TConditionalKeys,\n ...TValueListKeys,\n ...TValueSetKeys\n];\n\ntype TThisQuerySelector = { $?: TFieldQuerySelector; };\n\nexport type TFieldQuerySelector = {\n $not?: TFieldQuerySelector;\n $starts?: string;\n $ends?: string;\n $pattern?: RegExp | string;\n $size?: number;\n $empty?: boolean;\n $every?: TQuerySelector | TThisQuerySelector;\n $some?: TQuerySelector | TThisQuerySelector;\n} & {\n [x in (typeof TComparisonKeys)[number]]?: TValue;\n } & {\n [x in (typeof TValueListKeys)[number]]?: TValue[];\n } & {\n [x in (typeof TValueSetKeys)[number]]?: TValue[];\n };\n\nexport type TCoditionalQuerySelector = {\n [x in (typeof TConditionalKeys)[number]]?: TQuerySelector[];\n};\n\nexport type TQuerySelector = TCoditionalQuerySelector & {\n $expr?: TBooleanExpression\n} | {\n [x: string]: TFieldQuerySelector;\n};\n","//\n// index.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { QueryExpression } from './expressions';\nimport { TFieldQuerySelector, TQuerySelector, allFieldQueryKeys } from '../../../../internals/query/types/selectors';\nimport { TComparisonKeys, TConditionalKeys, TValueListKeys, TValueSetKeys } from '../../../../internals/query/types/keys';\nimport { isValue } from '../../../../internals/object';\nimport { TValue } from '../../../../internals/types';\n\nexport class QuerySelector {\n\n static decode(selectors: _.Many<TQuerySelector>, dollerSign: boolean = false): QuerySelector {\n const exprs: QuerySelector[] = [];\n for (const selector of _.castArray(selectors)) {\n for (const [key, query] of _.toPairs(selector)) {\n if (_.includes(TConditionalKeys, key) && _.isArray(query)) {\n exprs.push(new QueryCoditionalSelector(key as any, _.map(query, x => QuerySelector.decode(x, dollerSign))));\n } else if (key === '$expr') {\n exprs.push(new QueryExpressionSelector(QueryExpression.decode(query as any, dollerSign)));\n } else if (dollerSign && key === '$' && !_.isArray(query)) {\n exprs.push(new QueryFieldSelector(key, FieldSelectorExpression.decode(query)));\n } else if (!key.startsWith('$') && !_.isArray(query)) {\n exprs.push(new QueryFieldSelector(key, FieldSelectorExpression.decode(query)));\n } else {\n throw Error('Invalid expression');\n }\n }\n }\n if (_.isEmpty(exprs)) return new QuerySelector;\n return (exprs.length === 1 ? exprs[0] : new QueryCoditionalSelector('$and', exprs)).simplify();\n }\n\n simplify(): QuerySelector {\n return this;\n }\n\n keyPaths(): string[] {\n return [];\n }\n}\n\nexport class QueryCoditionalSelector extends QuerySelector {\n\n type: typeof TConditionalKeys[number];\n exprs: QuerySelector[];\n\n constructor(type: typeof TConditionalKeys[number], exprs: QuerySelector[]) {\n super();\n this.type = type;\n this.exprs = exprs;\n }\n\n simplify() {\n if (_.isEmpty(this.exprs)) return new QuerySelector;\n if (this.exprs.length === 1 && this.type !== '$nor') return this.exprs[0];\n switch (this.type) {\n case '$and':\n return new QueryCoditionalSelector(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalSelector && x.type === '$and' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QuerySelector;\n case '$nor':\n case '$or':\n return new QueryCoditionalSelector(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalSelector && x.type === '$or' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QuerySelector;\n }\n }\n\n keyPaths(): string[] {\n return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));\n }\n}\n\nexport class FieldSelectorExpression {\n\n type: keyof TFieldQuerySelector;\n value: QuerySelector | FieldSelectorExpression | RegExp | TValue;\n\n constructor(type: keyof TFieldQuerySelector, value: QuerySelector | FieldSelectorExpression | RegExp | TValue) {\n this.type = type;\n this.value = value;\n }\n\n static decode(selector: TFieldQuerySelector): FieldSelectorExpression {\n for (const [type, expr] of _.toPairs(selector)) {\n if (_.includes(TComparisonKeys, type)) {\n if (!isValue(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type as any, expr);\n } else if (_.includes(TValueListKeys, type) || _.includes(TValueSetKeys, type)) {\n if (!isValue(expr) || !_.isArray(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type as any, expr);\n } else {\n switch (type) {\n case '$not':\n {\n const _expr = expr ? { ...expr as any } : {};\n const keys = _.keys(_expr);\n if (keys.length !== 1 && !allFieldQueryKeys.includes(keys[0])) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, FieldSelectorExpression.decode(_expr));\n }\n case '$pattern':\n if (!_.isString(expr) && !_.isRegExp(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$starts':\n case '$ends':\n if (!_.isString(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$size':\n if (!_.isNumber(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$empty':\n if (!_.isBoolean(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$every':\n case '$some':\n return new FieldSelectorExpression(type, QuerySelector.decode(expr ? { ...expr as any } : {}, true));\n default: throw Error('Invalid expression');\n }\n }\n }\n throw Error('Invalid expression');\n }\n\n simplify(): FieldSelectorExpression {\n if (this.value instanceof QuerySelector) {\n return new FieldSelectorExpression(this.type, this.value.simplify());\n }\n if (this.value instanceof FieldSelectorExpression) {\n return new FieldSelectorExpression(this.type, this.value.simplify());\n }\n return this;\n }\n\n keyPaths(field?: string): string[] {\n let result: string[] = [];\n if (this.value instanceof QuerySelector) {\n result = this.value.keyPaths();\n } else if (this.value instanceof FieldSelectorExpression) {\n switch (this.type) {\n case '$every':\n case '$some':\n result = this.value.keyPaths();\n default:\n result = this.value.keyPaths();\n }\n }\n return field ? result.map(x => `${field}.${x}`) : result;\n }\n}\n\nexport class QueryFieldSelector extends QuerySelector {\n\n field: string;\n expr: FieldSelectorExpression;\n\n constructor(field: string, expr: FieldSelectorExpression) {\n super();\n this.field = field;\n this.expr = expr;\n }\n\n simplify() {\n return new QueryFieldSelector(this.field, this.expr.simplify());\n }\n\n keyPaths(): string[] {\n return this.field === '$' ? this.expr.keyPaths() : [this.field, ...this.expr.keyPaths(this.field)];\n }\n}\n\nexport class QueryExpressionSelector extends QuerySelector {\n\n expr: QueryExpression;\n\n constructor(expr: QueryExpression) {\n super();\n this.expr = expr;\n }\n\n simplify() {\n return new QueryExpressionSelector(this.expr.simplify());\n }\n\n keyPaths(): string[] {\n return this.expr.keyPaths();\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-DHQhYGsJ.mjs","sources":["../../../src/internals/query/types/keys.ts","../../../src/server/query/dispatcher/parser/expressions.ts","../../../src/internals/query/types/selectors.ts","../../../src/server/query/dispatcher/parser/index.ts"],"sourcesContent":["//\n// keys.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nexport const TComparisonKeys = [\n '$eq',\n '$gt',\n '$gte',\n '$lt',\n '$lte',\n '$ne',\n] as const;\n\nexport const TValueListKeys = [\n '$in',\n '$nin',\n] as const;\n\nexport const TValueSetKeys = [\n '$subset',\n '$superset',\n '$intersect',\n] as const;\n\nexport const TConditionalKeys = [\n '$and',\n '$nor',\n '$or',\n] as const;\n\nexport const TDistanceKeys = [\n '$distance',\n '$innerProduct',\n '$negInnerProduct',\n '$cosineDistance',\n '$rectilinearDistance',\n] as const;\n","//\n// expressions.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { TExpression } from '../../../../internals/query/types/expressions';\nimport { TComparisonKeys, TConditionalKeys, TDistanceKeys } from '../../../../internals/query/types/keys';\nimport { isValue } from '../../../../internals/object';\nimport { TValue } from '../../../../internals/types';\n\nexport class QueryExpression {\n\n static decode(expr: _.Many<TExpression>, dollerSign: boolean): QueryExpression {\n const exprs: QueryExpression[] = [];\n for (const selector of _.castArray(expr)) {\n for (const [key, query] of _.toPairs(selector)) {\n if (_.includes(TConditionalKeys, key) && _.isArray(query)) {\n exprs.push(new QueryCoditionalExpression(key as any, _.map(query, x => QueryExpression.decode(x as any, dollerSign))));\n } else if (_.includes(TComparisonKeys, key) && _.isArray(query) && query.length === 2) {\n const [left, right] = query;\n exprs.push(new QueryComparisonExpression(key as any, QueryExpression.decode(left as any, dollerSign), QueryExpression.decode(right as any, dollerSign)));\n } else if (_.includes(TDistanceKeys, key) && _.isArray(query) && query.length === 2) {\n const [left, right] = query;\n const _left = _.isArray(left) ? _.map(left, x => QueryExpression.decode(x as any, dollerSign)) : QueryExpression.decode(left as any, dollerSign);\n const _right = _.isArray(right) ? _.map(right, x => QueryExpression.decode(x as any, dollerSign)) : QueryExpression.decode(right as any, dollerSign);\n exprs.push(new QueryDistanceExpression(key as any, _.castArray(_left), _.castArray(_right)));\n } else if (key === '$not') {\n exprs.push(new QueryNotExpression(QueryExpression.decode(query as any, dollerSign)));\n } else if (key === '$array' && _.isArray(query)) {\n exprs.push(new QueryArrayExpression(_.map(query, x => QueryExpression.decode(x as any, dollerSign))));\n } else if (key === '$key' && _.isString(query)) {\n if (dollerSign && query === '$') {\n exprs.push(new QueryKeyExpression(query));\n } else if (!query.startsWith('$')) {\n exprs.push(new QueryKeyExpression(query));\n } else {\n throw Error('Invalid expression');\n }\n } else if (key === '$value' && isValue(query)) {\n exprs.push(new QueryValueExpression(query));\n } else {\n throw Error('Invalid expression');\n }\n }\n }\n if (_.isEmpty(exprs)) return new QueryExpression;\n return (exprs.length === 1 ? exprs[0] : new QueryCoditionalExpression('$and', exprs)).simplify();\n }\n\n simplify(): QueryExpression {\n return this;\n }\n\n keyPaths(): string[] {\n return [];\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return this;\n }\n}\n\nexport class QueryCoditionalExpression extends QueryExpression {\n\n type: typeof TConditionalKeys[number];\n exprs: QueryExpression[];\n\n constructor(type: typeof TConditionalKeys[number], exprs: QueryExpression[]) {\n super();\n this.type = type;\n this.exprs = exprs;\n }\n\n simplify() {\n if (_.isEmpty(this.exprs)) return new QueryExpression;\n if (this.exprs.length === 1 && this.type !== '$nor') return this.exprs[0];\n switch (this.type) {\n case '$and':\n return new QueryCoditionalExpression(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalExpression && x.type === '$and' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QueryExpression;\n case '$nor':\n case '$or':\n return new QueryCoditionalExpression(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalExpression && x.type === '$or' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QueryExpression;\n }\n }\n\n keyPaths(): string[] {\n return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryCoditionalExpression(this.type, _.map(this.exprs, x => x.mapKey(callback)));\n }\n}\n\nexport class QueryComparisonExpression extends QueryExpression {\n\n type: typeof TComparisonKeys[number];\n left: QueryExpression;\n right: QueryExpression;\n\n constructor(type: typeof TComparisonKeys[number], left: QueryExpression, right: QueryExpression) {\n super();\n this.type = type;\n this.left = left;\n this.right = right;\n }\n\n simplify() {\n return new QueryComparisonExpression(this.type, this.left.simplify(), this.right.simplify());\n }\n\n keyPaths(): string[] {\n return _.uniq([\n ...this.left.keyPaths(),\n ...this.right.keyPaths(),\n ]);\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryComparisonExpression(this.type, this.left.mapKey(callback), this.right.mapKey(callback));\n }\n}\n\nexport class QueryNotExpression extends QueryExpression {\n\n expr: QueryExpression;\n\n constructor(expr: QueryExpression) {\n super();\n this.expr = expr;\n }\n\n simplify() {\n return new QueryNotExpression(this.expr.simplify());\n }\n\n keyPaths(): string[] {\n return this.expr.keyPaths();\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryNotExpression(this.expr.mapKey(callback));\n }\n}\n\nexport class QueryArrayExpression extends QueryExpression {\n\n exprs: QueryExpression[];\n\n constructor(exprs: QueryExpression[]) {\n super();\n this.exprs = exprs;\n }\n\n simplify() {\n return new QueryArrayExpression(_.map(this.exprs, x => x.simplify())) as QueryExpression;\n }\n\n keyPaths(): string[] {\n return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryArrayExpression(_.map(this.exprs, x => x.mapKey(callback)));\n }\n}\n\nexport class QueryDistanceExpression extends QueryExpression {\n\n type: typeof TDistanceKeys[number];\n left: QueryExpression[];\n right: QueryExpression[];\n\n constructor(type: typeof TDistanceKeys[number], left: QueryExpression[], right: QueryExpression[]) {\n super();\n this.type = type;\n this.left = left;\n this.right = right;\n }\n\n simplify() {\n return new QueryDistanceExpression(this.type, _.map(this.left, x => x.simplify()), _.map(this.right, x => x.simplify()));\n }\n\n keyPaths(): string[] {\n return _.uniq([\n ..._.flatMap(this.left, x => x.keyPaths()),\n ..._.flatMap(this.right, x => x.keyPaths()),\n ]);\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryDistanceExpression(this.type, _.map(this.left, x => x.mapKey(callback)), _.map(this.right, x => x.mapKey(callback)));\n }\n}\n\nexport class QueryKeyExpression extends QueryExpression {\n\n key: string;\n\n constructor(key: string) {\n super();\n this.key = key;\n }\n\n keyPaths(): string[] {\n return this.key === '$' ? [] : [this.key];\n }\n\n mapKey(callback: (key: string) => string): QueryExpression {\n return new QueryKeyExpression(callback(this.key));\n }\n}\n\nexport class QueryValueExpression extends QueryExpression {\n\n value: TValue;\n\n constructor(value: TValue) {\n super();\n this.value = value;\n }\n}\n","//\n// selectors.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport { TValue } from '../../types';\nimport { TBooleanExpression } from './expressions';\nimport { TConditionalKeys, TValueListKeys, TValueSetKeys, TComparisonKeys } from './keys';\n\nexport const allFieldQueryKeys = [\n '$not', '$pattern', '$starts', '$ends', '$size', '$empty', '$every', '$some',\n ...TConditionalKeys,\n ...TValueListKeys,\n ...TValueSetKeys\n];\n\ntype TThisQuerySelector = { $?: TFieldQuerySelector; };\n\nexport type TFieldQuerySelector = {\n $not?: TFieldQuerySelector;\n $starts?: string;\n $ends?: string;\n $pattern?: RegExp | string;\n $size?: number;\n $empty?: boolean;\n $every?: TQuerySelector | TThisQuerySelector;\n $some?: TQuerySelector | TThisQuerySelector;\n} & {\n [x in (typeof TComparisonKeys)[number]]?: TValue;\n } & {\n [x in (typeof TValueListKeys)[number]]?: TValue[];\n } & {\n [x in (typeof TValueSetKeys)[number]]?: TValue[];\n };\n\nexport type TCoditionalQuerySelector = {\n [x in (typeof TConditionalKeys)[number]]?: TQuerySelector[];\n};\n\nexport type TQuerySelector = TCoditionalQuerySelector & {\n $expr?: TBooleanExpression\n} | {\n [x: string]: TFieldQuerySelector;\n};\n","//\n// index.ts\n//\n// The MIT License\n// Copyright (c) 2021 - 2024 O2ter Limited. All rights reserved.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n//\n\nimport _ from 'lodash';\nimport { QueryExpression } from './expressions';\nimport { TFieldQuerySelector, TQuerySelector, allFieldQueryKeys } from '../../../../internals/query/types/selectors';\nimport { TComparisonKeys, TConditionalKeys, TValueListKeys, TValueSetKeys } from '../../../../internals/query/types/keys';\nimport { isValue } from '../../../../internals/object';\nimport { TValue } from '../../../../internals/types';\n\nexport class QuerySelector {\n\n static decode(selectors: _.Many<TQuerySelector>, dollerSign: boolean = false): QuerySelector {\n const exprs: QuerySelector[] = [];\n for (const selector of _.castArray(selectors)) {\n for (const [key, query] of _.toPairs(selector)) {\n if (_.includes(TConditionalKeys, key) && _.isArray(query)) {\n exprs.push(new QueryCoditionalSelector(key as any, _.map(query, x => QuerySelector.decode(x, dollerSign))));\n } else if (key === '$expr') {\n exprs.push(new QueryExpressionSelector(QueryExpression.decode(query as any, dollerSign)));\n } else if (dollerSign && key === '$' && !_.isArray(query)) {\n exprs.push(new QueryFieldSelector(key, FieldSelectorExpression.decode(query)));\n } else if (!key.startsWith('$') && !_.isArray(query)) {\n exprs.push(new QueryFieldSelector(key, FieldSelectorExpression.decode(query)));\n } else {\n throw Error('Invalid expression');\n }\n }\n }\n if (_.isEmpty(exprs)) return new QuerySelector;\n return (exprs.length === 1 ? exprs[0] : new QueryCoditionalSelector('$and', exprs)).simplify();\n }\n\n simplify(): QuerySelector {\n return this;\n }\n\n keyPaths(): string[] {\n return [];\n }\n}\n\nexport class QueryCoditionalSelector extends QuerySelector {\n\n type: typeof TConditionalKeys[number];\n exprs: QuerySelector[];\n\n constructor(type: typeof TConditionalKeys[number], exprs: QuerySelector[]) {\n super();\n this.type = type;\n this.exprs = exprs;\n }\n\n simplify() {\n if (_.isEmpty(this.exprs)) return new QuerySelector;\n if (this.exprs.length === 1 && this.type !== '$nor') return this.exprs[0];\n switch (this.type) {\n case '$and':\n return new QueryCoditionalSelector(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalSelector && x.type === '$and' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QuerySelector;\n case '$nor':\n case '$or':\n return new QueryCoditionalSelector(this.type, _.flatMap(\n this.exprs, x => x instanceof QueryCoditionalSelector && x.type === '$or' ? _.map(x.exprs, y => y.simplify()) : [x.simplify()]\n )) as QuerySelector;\n }\n }\n\n keyPaths(): string[] {\n return _.uniq(_.flatMap(this.exprs, x => x.keyPaths()));\n }\n}\n\nexport class FieldSelectorExpression {\n\n type: keyof TFieldQuerySelector;\n value: QuerySelector | FieldSelectorExpression | RegExp | TValue;\n\n constructor(type: keyof TFieldQuerySelector, value: QuerySelector | FieldSelectorExpression | RegExp | TValue) {\n this.type = type;\n this.value = value;\n }\n\n static decode(selector: TFieldQuerySelector): FieldSelectorExpression {\n for (const [type, expr] of _.toPairs(selector)) {\n if (_.includes(TComparisonKeys, type)) {\n if (!isValue(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type as any, expr);\n } else if (_.includes(TValueListKeys, type) || _.includes(TValueSetKeys, type)) {\n if (!isValue(expr) || !_.isArray(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type as any, expr);\n } else {\n switch (type) {\n case '$not':\n {\n const _expr = expr ? { ...expr as any } : {};\n const keys = _.keys(_expr);\n if (keys.length !== 1 && !allFieldQueryKeys.includes(keys[0])) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, FieldSelectorExpression.decode(_expr));\n }\n case '$pattern':\n if (!_.isString(expr) && !_.isRegExp(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$starts':\n case '$ends':\n if (!_.isString(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$size':\n if (!_.isNumber(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$empty':\n if (!_.isBoolean(expr)) throw Error('Invalid expression');\n return new FieldSelectorExpression(type, expr);\n case '$every':\n case '$some':\n return new FieldSelectorExpression(type, QuerySelector.decode(expr ? { ...expr as any } : {}, true));\n default: throw Error('Invalid expression');\n }\n }\n }\n throw Error('Invalid expression');\n }\n\n simplify(): FieldSelectorExpression {\n if (this.value instanceof QuerySelector) {\n return new FieldSelectorExpression(this.type, this.value.simplify());\n }\n if (this.value instanceof FieldSelectorExpression) {\n return new FieldSelectorExpression(this.type, this.value.simplify());\n }\n return this;\n }\n\n keyPaths(field?: string): string[] {\n let result: string[] = [];\n if (this.value instanceof QuerySelector) {\n result = this.value.keyPaths();\n } else if (this.value instanceof FieldSelectorExpression) {\n switch (this.type) {\n case '$every':\n case '$some':\n result = this.value.keyPaths();\n default:\n result = this.value.keyPaths();\n }\n }\n return field ? result.map(x => `${field}.${x}`) : result;\n }\n}\n\nexport class QueryFieldSelector extends QuerySelector {\n\n field: string;\n expr: FieldSelectorExpression;\n\n constructor(field: string, expr: FieldSelectorExpression) {\n super();\n this.field = field;\n this.expr = expr;\n }\n\n simplify() {\n return new QueryFieldSelector(this.field, this.expr.simplify());\n }\n\n keyPaths(): string[] {\n return this.field === '$' ? this.expr.keyPaths() : [this.field, ...this.expr.keyPaths(this.field)];\n }\n}\n\nexport class QueryExpressionSelector extends QuerySelector {\n\n expr: QueryExpression;\n\n constructor(expr: QueryExpression) {\n super();\n this.expr = expr;\n }\n\n simplify() {\n return new QueryExpressionSelector(this.expr.simplify());\n }\n\n keyPaths(): string[] {\n return this.expr.keyPaths();\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { T as TObject, d as decodeUpdateOp } from './index--ifyu-GL.mjs';
1
+ import { T as TObject, e as decodeUpdateOp } from './index-CTsc042s.mjs';
2
2
  import _ from 'lodash';
3
3
  import { Decimal } from 'decimal.js';
4
4
  import { prototypes, asyncStream, isBinaryData, isReadableStream, isBlob, base64ToBuffer, iterableToStream } from '@o2ter/utils-js';
@@ -43,6 +43,10 @@ const mergeOpts = (lhs, rhs) => {
43
43
  ...lhs.matches,
44
44
  ..._.mapValues(rhs.matches, (opts, key) => lhs.matches?.[key] ? mergeOpts(lhs.matches[key], opts) : opts),
45
45
  },
46
+ countMatches: [
47
+ ...lhs.countMatches ?? [],
48
+ ...rhs.countMatches ?? [],
49
+ ],
46
50
  };
47
51
  };
48
52
  /**
@@ -353,6 +357,16 @@ class TQueryBase extends TQueryFilterBase {
353
357
  }
354
358
  return this;
355
359
  }
360
+ /**
361
+ * Adds the specified relations to the count-only options for a nested query.
362
+ * This method is used to specify that only the count of the nested relations should be retrieved.
363
+ * @param relations - The keys of the nested relations to be counted.
364
+ * @returns The current instance for chaining.
365
+ */
366
+ countMatches(...relations) {
367
+ this[PVK].options.countMatches = this[PVK].options.countMatches ? [...this[PVK].options.countMatches, ...relations] : relations;
368
+ return this;
369
+ }
356
370
  }
357
371
 
358
372
  //
@@ -1115,7 +1129,7 @@ class _ProtoClientQuery extends TQuery {
1115
1129
  };
1116
1130
  }
1117
1131
  _requestOpt(options) {
1118
- const { context, ...opts } = options ?? {};
1132
+ const { ...opts } = options ?? {};
1119
1133
  return {
1120
1134
  method: 'post',
1121
1135
  url: this.url,
@@ -1128,24 +1142,18 @@ class _ProtoClientQuery extends TQuery {
1128
1142
  explain(options) {
1129
1143
  return this._proto[PVK].request(this._proto, {
1130
1144
  operation: 'explain',
1131
- context: options?.context ?? {},
1132
- silent: options?.silent,
1133
1145
  ...this._queryOptions,
1134
1146
  }, this._requestOpt(options));
1135
1147
  }
1136
1148
  count(options) {
1137
1149
  return this._proto[PVK].request(this._proto, {
1138
1150
  operation: 'count',
1139
- context: options?.context ?? {},
1140
- silent: options?.silent,
1141
1151
  ...this._queryOptions,
1142
1152
  }, this._requestOpt(options));
1143
1153
  }
1144
1154
  find(options) {
1145
1155
  const request = () => this._proto[PVK].request(this._proto, {
1146
1156
  operation: 'find',
1147
- context: options?.context ?? {},
1148
- silent: options?.silent,
1149
1157
  ...this._queryOptions,
1150
1158
  }, this._requestOpt(options));
1151
1159
  return asyncStream(request);
@@ -1153,8 +1161,6 @@ class _ProtoClientQuery extends TQuery {
1153
1161
  random(opts, options) {
1154
1162
  const request = () => this._proto[PVK].request(this._proto, {
1155
1163
  operation: 'random',
1156
- context: options?.context ?? {},
1157
- silent: options?.silent,
1158
1164
  random: opts,
1159
1165
  ...this._queryOptions,
1160
1166
  }, this._requestOpt(options));
@@ -1163,8 +1169,6 @@ class _ProtoClientQuery extends TQuery {
1163
1169
  nonrefs(options) {
1164
1170
  const request = () => this._proto[PVK].request(this._proto, {
1165
1171
  operation: 'nonrefs',
1166
- context: options?.context ?? {},
1167
- silent: options?.silent,
1168
1172
  ...this._queryOptions,
1169
1173
  }, this._requestOpt(options));
1170
1174
  return asyncStream(request);
@@ -1172,8 +1176,6 @@ class _ProtoClientQuery extends TQuery {
1172
1176
  insert(attrs, options) {
1173
1177
  return this._proto[PVK].request(this._proto, {
1174
1178
  operation: 'insert',
1175
- context: options?.context ?? {},
1176
- silent: options?.silent,
1177
1179
  attributes: attrs,
1178
1180
  ...this._queryOptions,
1179
1181
  }, this._requestOpt(options));
@@ -1181,8 +1183,6 @@ class _ProtoClientQuery extends TQuery {
1181
1183
  insertMany(values, options) {
1182
1184
  return this._proto[PVK].request(this._proto, {
1183
1185
  operation: 'insertMany',
1184
- context: options?.context ?? {},
1185
- silent: options?.silent,
1186
1186
  attributes: values,
1187
1187
  ...this._queryOptions,
1188
1188
  }, this._requestOpt(options));
@@ -1190,8 +1190,6 @@ class _ProtoClientQuery extends TQuery {
1190
1190
  updateOne(update, options) {
1191
1191
  return this._proto[PVK].request(this._proto, {
1192
1192
  operation: 'updateOne',
1193
- context: options?.context ?? {},
1194
- silent: options?.silent,
1195
1193
  update,
1196
1194
  ...this._queryOptions,
1197
1195
  }, this._requestOpt(options));
@@ -1199,8 +1197,6 @@ class _ProtoClientQuery extends TQuery {
1199
1197
  updateMany(update, options) {
1200
1198
  return this._proto[PVK].request(this._proto, {
1201
1199
  operation: 'updateMany',
1202
- context: options?.context ?? {},
1203
- silent: options?.silent,
1204
1200
  update,
1205
1201
  ...this._queryOptions,
1206
1202
  }, this._requestOpt(options));
@@ -1208,8 +1204,6 @@ class _ProtoClientQuery extends TQuery {
1208
1204
  upsertOne(update, setOnInsert, options) {
1209
1205
  return this._proto[PVK].request(this._proto, {
1210
1206
  operation: 'upsertOne',
1211
- context: options?.context ?? {},
1212
- silent: options?.silent,
1213
1207
  update,
1214
1208
  setOnInsert,
1215
1209
  ...this._queryOptions,
@@ -1218,8 +1212,6 @@ class _ProtoClientQuery extends TQuery {
1218
1212
  upsertMany(update, setOnInsert, options) {
1219
1213
  return this._proto[PVK].request(this._proto, {
1220
1214
  operation: 'upsertMany',
1221
- context: options?.context ?? {},
1222
- silent: options?.silent,
1223
1215
  update,
1224
1216
  setOnInsert,
1225
1217
  ...this._queryOptions,
@@ -1228,16 +1220,12 @@ class _ProtoClientQuery extends TQuery {
1228
1220
  deleteOne(options) {
1229
1221
  return this._proto[PVK].request(this._proto, {
1230
1222
  operation: 'deleteOne',
1231
- context: options?.context ?? {},
1232
- silent: options?.silent,
1233
1223
  ...this._queryOptions,
1234
1224
  }, this._requestOpt(options));
1235
1225
  }
1236
1226
  deleteMany(options) {
1237
1227
  return this._proto[PVK].request(this._proto, {
1238
1228
  operation: 'deleteMany',
1239
- context: options?.context ?? {},
1240
- silent: options?.silent,
1241
1229
  ...this._queryOptions,
1242
1230
  }, this._requestOpt(options));
1243
1231
  }
@@ -1328,7 +1316,7 @@ class Service {
1328
1316
  }
1329
1317
  }
1330
1318
  async _request(config, retry = 0) {
1331
- const { master, abortSignal, serializeOpts, context, headers, ...opts } = config ?? {};
1319
+ const { master, abortSignal, serializeOpts, headers, ...opts } = config ?? {};
1332
1320
  const res = await this.service.request({
1333
1321
  signal: abortSignal,
1334
1322
  headers: {
@@ -1446,7 +1434,7 @@ class ProtoClientInternal {
1446
1434
  this.service = new Service(this, options.axiosOptions);
1447
1435
  }
1448
1436
  async request(proto, data, options) {
1449
- const { serializeOpts, context, ...opts } = options ?? {};
1437
+ const { serializeOpts, ...opts } = options ?? {};
1450
1438
  const res = await this.service.request({
1451
1439
  baseURL: this.options.endpoint,
1452
1440
  data: serialize(data, serializeOpts),
@@ -1459,7 +1447,7 @@ class ProtoClientInternal {
1459
1447
  this.service.setSessionToken(token);
1460
1448
  }
1461
1449
  async sessionInfo(proto, options) {
1462
- const { serializeOpts, context, ...opts } = options ?? {};
1450
+ const { serializeOpts, ...opts } = options ?? {};
1463
1451
  const res = await this.service.request({
1464
1452
  method: 'get',
1465
1453
  baseURL: this.options.endpoint,
@@ -1470,7 +1458,7 @@ class ProtoClientInternal {
1470
1458
  return proto.rebind(deserialize(res.data));
1471
1459
  }
1472
1460
  async currentUser(proto, options) {
1473
- const { serializeOpts, context, ...opts } = options ?? {};
1461
+ const { serializeOpts, ...opts } = options ?? {};
1474
1462
  const res = await this.service.request({
1475
1463
  method: 'get',
1476
1464
  baseURL: this.options.endpoint,
@@ -1484,7 +1472,7 @@ class ProtoClientInternal {
1484
1472
  return user ?? undefined;
1485
1473
  }
1486
1474
  async config(options) {
1487
- const { serializeOpts, context, ...opts } = options ?? {};
1475
+ const { serializeOpts, ...opts } = options ?? {};
1488
1476
  const res = await this.service.request({
1489
1477
  method: 'get',
1490
1478
  baseURL: this.options.endpoint,
@@ -1495,7 +1483,7 @@ class ProtoClientInternal {
1495
1483
  return deserialize(res.data);
1496
1484
  }
1497
1485
  async configAcl(options) {
1498
- const { serializeOpts, context, ...opts } = options ?? {};
1486
+ const { serializeOpts, ...opts } = options ?? {};
1499
1487
  const res = await this.service.request({
1500
1488
  method: 'get',
1501
1489
  baseURL: this.options.endpoint,
@@ -1506,7 +1494,7 @@ class ProtoClientInternal {
1506
1494
  return deserialize(res.data);
1507
1495
  }
1508
1496
  async setConfig(values, options) {
1509
- const { serializeOpts, context, acl, ...opts } = options ?? {};
1497
+ const { serializeOpts, acl, ...opts } = options ?? {};
1510
1498
  await this.service.request({
1511
1499
  method: 'post',
1512
1500
  baseURL: this.options.endpoint,
@@ -1517,7 +1505,7 @@ class ProtoClientInternal {
1517
1505
  });
1518
1506
  }
1519
1507
  async logout(options) {
1520
- const { serializeOpts, context, ...opts } = options ?? {};
1508
+ const { serializeOpts, ...opts } = options ?? {};
1521
1509
  await this.service.request({
1522
1510
  method: 'post',
1523
1511
  baseURL: this.options.endpoint,
@@ -1531,7 +1519,7 @@ class ProtoClientInternal {
1531
1519
  throw Error('Invalid user');
1532
1520
  if (_.isEmpty(password))
1533
1521
  throw Error('Invalid password');
1534
- const { serializeOpts, context, ...opts } = options ?? {};
1522
+ const { serializeOpts, ...opts } = options ?? {};
1535
1523
  await this.service.request({
1536
1524
  method: 'post',
1537
1525
  baseURL: this.options.endpoint,
@@ -1544,7 +1532,7 @@ class ProtoClientInternal {
1544
1532
  async unsetPassword(user, options) {
1545
1533
  if (!user.objectId)
1546
1534
  throw Error('Invalid user');
1547
- const { serializeOpts, context, ...opts } = options ?? {};
1535
+ const { serializeOpts, ...opts } = options ?? {};
1548
1536
  await this.service.request({
1549
1537
  method: 'post',
1550
1538
  baseURL: this.options.endpoint,
@@ -1554,7 +1542,7 @@ class ProtoClientInternal {
1554
1542
  });
1555
1543
  }
1556
1544
  async schema(options) {
1557
- const { serializeOpts, context, ...opts } = options ?? {};
1545
+ const { serializeOpts, ...opts } = options ?? {};
1558
1546
  const res = await this.service.request({
1559
1547
  method: 'get',
1560
1548
  baseURL: this.options.endpoint,
@@ -1577,7 +1565,7 @@ class ProtoClientInternal {
1577
1565
  return object;
1578
1566
  }
1579
1567
  async createFile(proto, object, options) {
1580
- const { serializeOpts, context, uploadToken, ...opts } = options ?? {};
1568
+ const { serializeOpts, uploadToken, ...opts } = options ?? {};
1581
1569
  const { data } = object[PVK].extra;
1582
1570
  if (_.isNil(data))
1583
1571
  throw Error('Invalid file object');
@@ -1631,7 +1619,7 @@ class ProtoClientInternal {
1631
1619
  return object;
1632
1620
  }
1633
1621
  fileData(proto, object, options) {
1634
- const { serializeOpts, context, ...opts } = options ?? {};
1622
+ const { serializeOpts, ...opts } = options ?? {};
1635
1623
  const filename = object.filename;
1636
1624
  if (_.isNil(filename))
1637
1625
  throw Error('Invalid filename');
@@ -1655,7 +1643,7 @@ class ProtoClientInternal {
1655
1643
  });
1656
1644
  }
1657
1645
  async notify(proto, data, options) {
1658
- const { serializeOpts, context, ...opts } = options ?? {};
1646
+ const { serializeOpts, ...opts } = options ?? {};
1659
1647
  await this.service.request({
1660
1648
  method: 'post',
1661
1649
  baseURL: this.options.endpoint,
@@ -1682,7 +1670,7 @@ class ProtoClientInternal {
1682
1670
  if (!object.objectId)
1683
1671
  throw Error('Invalid object');
1684
1672
  const request = async () => {
1685
- const { serializeOpts, context, ...opts } = options ?? {};
1673
+ const { serializeOpts, ...opts } = options ?? {};
1686
1674
  const res = await this.service.request({
1687
1675
  method: 'get',
1688
1676
  baseURL: this.options.endpoint,
@@ -1798,4 +1786,4 @@ class ProtoClient extends ProtoType {
1798
1786
  }
1799
1787
 
1800
1788
  export { AUTH_COOKIE_KEY as A, MASTER_USER_HEADER_NAME as M, ProtoType as P, TQuery as T, UPLOAD_TOKEN_HEADER_NAME as U, MASTER_PASS_HEADER_NAME as a, TUser as b, ProtoClient as c, deserialize as d, classExtends as e, isObject as f, isUser as g, isRole as h, isQuery as i, isFile as j, serialize as s };
1801
- //# sourceMappingURL=index-R0gbIGc-.mjs.map
1789
+ //# sourceMappingURL=index-tEsKpX2d.mjs.map