node_modules ignore

This commit is contained in:
oier committed 2025-05-08 23:43:47 +02:00
1 parent e19d52f172
commit 4574544c9f
65041 files changed
+10593536

No files matched your search

+2
View File
@@ -0,0 +1,2 @@
import{optimizedCompoundCondition as e,FieldCondition as t,CompoundCondition as r,ITSELF as o,NULL_CONDITION as a,ObjectQueryParser as n,buildAnd as i}from"@ucast/core";export{defaultInstructionParsers as defaultParsers}from"@ucast/core";function s(e,t){if(!Array.isArray(t))throw new Error(`"${e.name}" expects value to be an array`)}function p(e,t){if(s(e,t),!t.length)throw new Error(`"${e.name}" expects to have at least one element in array`)}const l=e=>(t,r)=>{if(typeof r!==e)throw new Error(`"${t.name}" expects value to be a "${e}"`)},c={type:"compound",validate:p,parse(t,r,{parse:o}){const a=r.map(e=>o(e));return e(t.name,a)}},f=c,d={type:"compound",validate:p},u={type:"field",validate(e,t){if(!(t&&(t instanceof RegExp||t.constructor===Object)))throw new Error(`"${e.name}" expects to receive either regular expression or object of field operators`)},parse(e,o,a){const n=o instanceof RegExp?new t("regex",a.field,o):a.parse(o,a);return new r(e.name,[n])}},$={type:"field",validate(e,t){if(!t||t.constructor!==Object)throw new Error(`"${e.name}" expects to receive an object with nested query or field level operators`)},parse(e,r,{parse:a,field:n,hasOperators:i}){const s=i(r)?a(r,{field:o}):a(r);return new t(e.name,n,s)}},w={type:"field",validate:l("number")},y={type:"field",validate:s},x=y,v=y,h={type:"field",validate(e,t){if(!Array.isArray(t)||2!==t.length)throw new Error(`"${e.name}" expects an array with 2 numeric elements`)}},m={type:"field",validate:l("boolean")},g={type:"field",validate:function(e,t){if(!("string"==typeof t||"number"==typeof t||t instanceof Date))throw new Error(`"${e.name}" expects value to be comparable (i.e., string, number or date)`)}},b=g,E=b,j=b,O={type:"field"},R=O,_={type:"field",validate(e,t){if(!(t instanceof RegExp)&&"string"!=typeof t)throw new Error(`"${e.name}" expects value to be a regular expression or a string that represents regular expression`)},parse(e,r,o){const a="string"==typeof r?new RegExp(r,o.query.$options||""):r;return new t(e.name,o.field,a)}},q={type:"field",parse:()=>a},A={type:"document",validate:l("function")};var N=Object.freeze({__proto__:null,$and:c,$or:f,$nor:d,$not:u,$elemMatch:$,$size:w,$in:y,$nin:x,$all:v,$mod:h,$exists:m,$gte:g,$gt:b,$lt:E,$lte:j,$eq:O,$ne:R,$regex:_,$options:q,$where:A});class P extends n{constructor(e){super(e,{defaultOperatorName:"$eq",operatorToConditionName:e=>e.slice(1)})}parse(e,t){return t&&t.field?i(this.parseFieldOperators(t.field,e)):super.parse(e)}}const z=N;export{v as $all,c as $and,$ as $elemMatch,O as $eq,m as $exists,b as $gt,g as $gte,y as $in,E as $lt,j as $lte,h as $mod,R as $ne,x as $nin,d as $nor,u as $not,q as $options,f as $or,_ as $regex,w as $size,A as $where,P as MongoQueryParser,z as allParsingInstructions};
//# sourceMappingURL=index.mjs.map
+1
View File
@@ -0,0 +1 @@
{"version":3,"file":"index.mjs","sources":["../../src/instructions.ts","../../src/MongoQueryParser.ts","../../src/index.ts"],"sourcesContent":["import {\n CompoundCondition,\n FieldCondition,\n NamedInstruction,\n CompoundInstruction,\n FieldInstruction,\n DocumentInstruction,\n Comparable,\n ITSELF,\n NULL_CONDITION,\n FieldParsingContext,\n optimizedCompoundCondition,\n ObjectQueryFieldParsingContext,\n} from '@ucast/core';\nimport { MongoQuery } from './types';\n\nfunction ensureIsArray(instruction: NamedInstruction, value: unknown) {\n if (!Array.isArray(value)) {\n throw new Error(`\"${instruction.name}\" expects value to be an array`);\n }\n}\n\nfunction ensureIsNonEmptyArray(instruction: NamedInstruction, value: unknown[]) {\n ensureIsArray(instruction, value);\n\n if (!value.length) {\n throw new Error(`\"${instruction.name}\" expects to have at least one element in array`);\n }\n}\n\nfunction ensureIsComparable(instruction: NamedInstruction, value: string | number | Date) {\n const isComparable = typeof value === 'string' || typeof value === 'number' || value instanceof Date;\n\n if (!isComparable) {\n throw new Error(`\"${instruction.name}\" expects value to be comparable (i.e., string, number or date)`);\n }\n}\n\nconst ensureIs = (type: string) => (instruction: NamedInstruction, value: unknown) => {\n if (typeof value !== type) { // eslint-disable-line valid-typeof\n throw new Error(`\"${instruction.name}\" expects value to be a \"${type}\"`);\n }\n};\n\nexport const $and: CompoundInstruction<MongoQuery<any>[]> = {\n type: 'compound',\n validate: ensureIsNonEmptyArray,\n parse(instruction, queries, { parse }) {\n const conditions = queries.map(query => parse(query));\n return optimizedCompoundCondition(instruction.name, conditions);\n }\n};\nexport const $or = $and;\nexport const $nor: CompoundInstruction<MongoQuery<any>[]> = {\n type: 'compound',\n validate: ensureIsNonEmptyArray,\n};\n\nexport const $not: FieldInstruction<MongoQuery<any> | RegExp> = {\n type: 'field',\n validate(instruction, value) {\n const isValid = value && (value instanceof RegExp || value.constructor === Object);\n\n if (!isValid) {\n throw new Error(`\"${instruction.name}\" expects to receive either regular expression or object of field operators`);\n }\n },\n parse(instruction, value, context) {\n const condition = value instanceof RegExp\n ? new FieldCondition('regex' as typeof instruction.name, context.field, value)\n : context.parse(value, context);\n\n return new CompoundCondition(instruction.name, [condition]);\n },\n};\nexport const $elemMatch: FieldInstruction<MongoQuery<any>, ObjectQueryFieldParsingContext> = {\n type: 'field',\n validate(instruction, value) {\n if (!value || value.constructor !== Object) {\n throw new Error(`\"${instruction.name}\" expects to receive an object with nested query or field level operators`);\n }\n },\n parse(instruction, value, { parse, field, hasOperators }) {\n const condition = hasOperators(value) ? parse(value, { field: ITSELF }) : parse(value);\n return new FieldCondition(instruction.name, field, condition);\n }\n};\n\nexport const $size: FieldInstruction<number> = {\n type: 'field',\n validate: ensureIs('number')\n};\nexport const $in: FieldInstruction<unknown[]> = {\n type: 'field',\n validate: ensureIsArray,\n};\nexport const $nin = $in;\nexport const $all = $in;\nexport const $mod: FieldInstruction<[number, number]> = {\n type: 'field',\n validate(instruction, value) {\n if (!Array.isArray(value) || value.length !== 2) {\n throw new Error(`\"${instruction.name}\" expects an array with 2 numeric elements`);\n }\n }\n};\n\nexport const $exists: FieldInstruction<boolean> = {\n type: 'field',\n validate: ensureIs('boolean'),\n};\n\nexport const $gte: FieldInstruction<Comparable> = {\n type: 'field',\n validate: ensureIsComparable\n};\nexport const $gt = $gte;\nexport const $lt = $gt;\nexport const $lte = $gt;\n\nexport const $eq: FieldInstruction = {\n type: 'field',\n};\nexport const $ne = $eq;\n\nexport interface RegExpFieldContext extends FieldParsingContext {\n query: {\n $options?: string\n }\n}\n\nexport const $regex: FieldInstruction<string | RegExp, RegExpFieldContext> = {\n type: 'field',\n validate(instruction, value) {\n if (!(value instanceof RegExp) && typeof value !== 'string') {\n throw new Error(`\"${instruction.name}\" expects value to be a regular expression or a string that represents regular expression`);\n }\n },\n parse(instruction, rawValue, context) {\n const value = typeof rawValue === 'string'\n ? new RegExp(rawValue, context.query.$options || '')\n : rawValue;\n return new FieldCondition(instruction.name, context.field, value);\n }\n};\nexport const $options: FieldInstruction = {\n type: 'field',\n parse: () => NULL_CONDITION,\n};\n\nexport const $where: DocumentInstruction<() => booleaLine truncated