mongo-query-normalizer 0.2.0 → 0.2.1

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.
@@ -0,0 +1,3 @@
1
+ import type { PredicateCapability } from "../shared/capability-types";
2
+ export declare const neNeCapability: PredicateCapability;
3
+ //# sourceMappingURL=ne-ne.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ne-ne.d.ts","sourceRoot":"","sources":["../../../../src/predicate/capabilities/ne/ne-ne.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAStE,eAAO,MAAM,cAAc,EAAE,mBAqC5B,CAAC"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.neNeCapability = void 0;
4
+ const build_field_bundle_1 = require("../../ir/build-field-bundle");
5
+ const relation_result_1 = require("../shared/relation-result");
6
+ const set_ops_1 = require("../../utils/set-ops");
7
+ function collectNeAtoms(predicates) {
8
+ return predicates.filter((a) => a.kind === "ne");
9
+ }
10
+ exports.neNeCapability = {
11
+ id: "ne.ne",
12
+ description: "Merge multiple $ne on the same field into a single $nin",
13
+ riskLevel: "guarded",
14
+ supportedAtomKinds: ["ne"],
15
+ isApplicable(ctx) {
16
+ if (!ctx.engine.mergeComparable) {
17
+ return false;
18
+ }
19
+ return collectNeAtoms(ctx.bundle.predicates).length >= 2;
20
+ },
21
+ apply(ctx) {
22
+ const base = (0, relation_result_1.emptyRelationResult)(ctx.bundle);
23
+ const neAtoms = collectNeAtoms(ctx.bundle.predicates);
24
+ if (neAtoms.length < 2) {
25
+ return base;
26
+ }
27
+ const uniqNeValues = (0, set_ops_1.uniqueUnknownArray)(neAtoms.map((a) => a.value));
28
+ if (uniqNeValues.length < 2) {
29
+ // Should normally be handled by upstream dedupe, but keep it robust.
30
+ return base;
31
+ }
32
+ const others = ctx.bundle.predicates.filter((a) => a.kind !== "ne");
33
+ const nextPredicates = [...others, { kind: "nin", values: uniqNeValues }];
34
+ return {
35
+ bundle: (0, build_field_bundle_1.refreshBundleMetadata)({ ...ctx.bundle, predicates: nextPredicates }),
36
+ changed: true,
37
+ contradiction: false,
38
+ coveredAtoms: neAtoms,
39
+ skippedAtoms: [],
40
+ warnings: [],
41
+ };
42
+ },
43
+ };
44
+ //# sourceMappingURL=ne-ne.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ne-ne.js","sourceRoot":"","sources":["../../../../src/predicate/capabilities/ne/ne-ne.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AAIpE,+DAAqF;AACrF,iDAAyD;AAEzD,SAAS,cAAc,CAAC,UAA2B;IAC/C,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAA+C,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAClG,CAAC;AAEY,QAAA,cAAc,GAAwB;IAC/C,EAAE,EAAE,OAAO;IACX,WAAW,EAAE,yDAAyD;IACtE,SAAS,EAAE,SAAS;IACpB,kBAAkB,EAAE,CAAC,IAAI,CAAC;IAC1B,YAAY,CAAC,GAAoB;QAC7B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,OAAO,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAC7D,CAAC;IACD,KAAK,CAAC,GAAoB;QACtB,MAAM,IAAI,GAAG,IAAA,qCAAmB,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,OAAO,GAAG,cAAc,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACtD,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,YAAY,GAAG,IAAA,4BAAkB,EAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;QACrE,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1B,qEAAqE;YACrE,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QACpE,MAAM,cAAc,GAAoB,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,CAAC;QAE3F,OAAO;YACH,MAAM,EAAE,IAAA,0CAAqB,EAAC,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;YAC5E,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,OAAO;YACrB,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,EAAE;SACf,CAAC;IACN,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { PredicateCapability } from "../shared/capability-types";
2
+ export declare const ninNinCapability: PredicateCapability;
3
+ //# sourceMappingURL=nin-nin.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nin-nin.d.ts","sourceRoot":"","sources":["../../../../src/predicate/capabilities/nin/nin-nin.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAStE,eAAO,MAAM,gBAAgB,EAAE,mBAqC9B,CAAC"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ninNinCapability = void 0;
4
+ const build_field_bundle_1 = require("../../ir/build-field-bundle");
5
+ const relation_result_1 = require("../shared/relation-result");
6
+ const set_ops_1 = require("../../utils/set-ops");
7
+ function collectNinAtoms(predicates) {
8
+ return predicates.filter((a) => a.kind === "nin");
9
+ }
10
+ exports.ninNinCapability = {
11
+ id: "nin.nin",
12
+ description: "Merge multiple $nin on the same field into a single $nin (union of value lists)",
13
+ riskLevel: "guarded",
14
+ supportedAtomKinds: ["nin"],
15
+ isApplicable(ctx) {
16
+ if (!ctx.engine.mergeComparable) {
17
+ return false;
18
+ }
19
+ return collectNinAtoms(ctx.bundle.predicates).length >= 2;
20
+ },
21
+ apply(ctx) {
22
+ const base = (0, relation_result_1.emptyRelationResult)(ctx.bundle);
23
+ const ninAtoms = collectNinAtoms(ctx.bundle.predicates);
24
+ if (ninAtoms.length < 2) {
25
+ return base;
26
+ }
27
+ const unionValues = (0, set_ops_1.uniqueUnknownArray)(ninAtoms.flatMap((a) => a.values));
28
+ if (unionValues.length === 0) {
29
+ // $nin: [] is a tautology (x not in []), but keep behavior conservative:
30
+ // if input contains multiple $nin, replacing them with $nin: [] preserves conjunction semantics.
31
+ // (Mongo treats $nin: [] as no restriction)
32
+ }
33
+ const others = ctx.bundle.predicates.filter((a) => a.kind !== "nin");
34
+ const nextPredicates = [...others, { kind: "nin", values: unionValues }];
35
+ return {
36
+ bundle: (0, build_field_bundle_1.refreshBundleMetadata)({ ...ctx.bundle, predicates: nextPredicates }),
37
+ changed: true,
38
+ contradiction: false,
39
+ coveredAtoms: ninAtoms,
40
+ skippedAtoms: [],
41
+ warnings: [],
42
+ };
43
+ },
44
+ };
45
+ //# sourceMappingURL=nin-nin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nin-nin.js","sourceRoot":"","sources":["../../../../src/predicate/capabilities/nin/nin-nin.ts"],"names":[],"mappings":";;;AAAA,oEAAoE;AAIpE,+DAAqF;AACrF,iDAAyD;AAEzD,SAAS,eAAe,CAAC,UAA2B;IAChD,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAgD,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;AACpG,CAAC;AAEY,QAAA,gBAAgB,GAAwB;IACjD,EAAE,EAAE,SAAS;IACb,WAAW,EAAE,iFAAiF;IAC9F,SAAS,EAAE,SAAS;IACpB,kBAAkB,EAAE,CAAC,KAAK,CAAC;IAC3B,YAAY,CAAC,GAAoB;QAC7B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAC;QACjB,CAAC;QACD,OAAO,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;IAC9D,CAAC;IACD,KAAK,CAAC,GAAoB;QACtB,MAAM,IAAI,GAAG,IAAA,qCAAmB,EAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,OAAO,IAAI,CAAC;QAChB,CAAC;QAED,MAAM,WAAW,GAAG,IAAA,4BAAkB,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC1E,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3B,yEAAyE;YACzE,iGAAiG;YACjG,4CAA4C;QAChD,CAAC;QAED,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;QACrE,MAAM,cAAc,GAAoB,CAAC,GAAG,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC,CAAC;QAE1F,OAAO;YACH,MAAM,EAAE,IAAA,0CAAqB,EAAC,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,cAAc,EAAE,CAAC;YAC5E,OAAO,EAAE,IAAI;YACb,aAAa,EAAE,KAAK;YACpB,YAAY,EAAE,QAAQ;YACtB,YAAY,EAAE,EAAE;YAChB,QAAQ,EAAE,EAAE;SACf,CAAC;IACN,CAAC;CACJ,CAAC"}
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.planRelations = planRelations;
4
4
  const build_field_bundle_1 = require("../ir/build-field-bundle");
5
5
  const capability_selector_1 = require("./capability-selector");
6
- const DEFAULT_CAPABILITY_ORDER = ["eq.eq", "eq.ne", "eq.in", "range.range", "eq.range"];
6
+ const DEFAULT_CAPABILITY_ORDER = ["eq.eq", "eq.ne", "ne.ne", "nin.nin", "eq.in", "range.range", "eq.range"];
7
7
  function orderCapabilities(caps) {
8
8
  const byId = new Map(caps.map((c) => [c.id, c]));
9
9
  const ordered = [];
@@ -1 +1 @@
1
- {"version":3,"file":"relation-planner.js","sourceRoot":"","sources":["../../../src/predicate/planner/relation-planner.ts"],"names":[],"mappings":";;AAyBA,sCA6CC;AApED,iEAAgE;AAEhE,+DAA8D;AAE9D,MAAM,wBAAwB,GAAa,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC;AAElG,SAAS,iBAAiB,CAAC,IAA2B;IAClD,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAU,CAAC,CAAC,CAAC;IAC1D,MAAM,OAAO,GAA0B,EAAE,CAAC;IAC1C,KAAK,MAAM,EAAE,IAAI,wBAAwB,EAAE,CAAC;QACxC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACzB,IAAI,GAAG,EAAE,CAAC;YACN,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IACD,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;QACrB,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACtB,CAAC;IACL,CAAC;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AAED,SAAgB,aAAa,CAAC,mBAA0C,EAAE,GAAoB;IAC1F,MAAM,mBAAmB,GAAwB,EAAE,CAAC;IAEpD,IAAI,GAAG,CAAC,MAAM,CAAC,uBAAuB,IAAI,IAAA,yCAAoB,EAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC;QACzE,KAAK,MAAM,GAAG,IAAI,mBAAmB,EAAE,CAAC;YACpC,mBAAmB,CAAC,IAAI,CAAC;gBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,kCAAkC;aAC7C,CAAC,CAAC;QACP,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,mBAAmB,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,OAAO,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;IACvD,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,IAAA,2CAAqB,EAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;YACnC,mBAAmB,CAAC,IAAI,CAAC;gBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,oCAAoC;aAC/C,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,IAAI,GAAG,CAAC,EAAE,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,0BAA0B,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,0BAA0B,EAAE,CAAC;YACjH,mBAAmB,CAAC,IAAI,CAAC;gBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,kCAAkC;aAC7C,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,IAAI,GAAG,CAAC,EAAE,KAAK,OAAO,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,wBAAwB,EAAE,CAAC;YACrG,mBAAmB,CAAC,IAAI,CAAC;gBACrB,EAAE,EAAE,GAAG,CAAC,EAAE;gBACV,MAAM,EAAE,gCAAgC;aAC3C,CAAC,CAAC;YACH,SAAS;QACb,CAAC;QAED,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC;IAED,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,mBAAmB,EAAE,CAAC;AAC3D,CAAC"}
1
+ {"version":3,"file":"relation-planner.js","sourceRoot":"","sources":["../../../src/predicate/planner/relation-planner.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"predicate-capability-registry.d.ts","sourceRoot":"","sources":["../../../src/predicate/registry/predicate-capability-registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAUnF,wBAAgB,+BAA+B,IAAI,mBAAmB,EAAE,CAEvE"}
1
+ {"version":3,"file":"predicate-capability-registry.d.ts","sourceRoot":"","sources":["../../../src/predicate/registry/predicate-capability-registry.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yCAAyC,CAAC;AAYnF,wBAAgB,+BAA+B,IAAI,mBAAmB,EAAE,CAEvE"}
@@ -6,9 +6,13 @@ const eq_in_1 = require("../capabilities/eq/eq-in");
6
6
  const eq_ne_1 = require("../capabilities/eq/eq-ne");
7
7
  const eq_range_1 = require("../capabilities/eq/eq-range");
8
8
  const range_range_1 = require("../capabilities/range/range-range");
9
+ const ne_ne_1 = require("../capabilities/ne/ne-ne");
10
+ const nin_nin_1 = require("../capabilities/nin/nin-nin");
9
11
  const DEFAULT_CAPABILITIES = [
10
12
  eq_eq_1.eqEqCapability,
11
13
  eq_ne_1.eqNeCapability,
14
+ ne_ne_1.neNeCapability,
15
+ nin_nin_1.ninNinCapability,
12
16
  eq_in_1.eqInCapability,
13
17
  eq_range_1.eqRangeCapability,
14
18
  range_range_1.rangeRangeCapability,
@@ -1 +1 @@
1
- {"version":3,"file":"predicate-capability-registry.js","sourceRoot":"","sources":["../../../src/predicate/registry/predicate-capability-registry.ts"],"names":[],"mappings":";;AAeA,0EAEC;AAjBD,oDAA0D;AAC1D,oDAA0D;AAC1D,oDAA0D;AAC1D,0DAAgE;AAChE,mEAAyE;AAGzE,MAAM,oBAAoB,GAA0B;IAChD,sBAAc;IACd,sBAAc;IACd,sBAAc;IACd,4BAAiB;IACjB,kCAAoB;CACvB,CAAC;AAEF,SAAgB,+BAA+B;IAC3C,OAAO,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACrC,CAAC"}
1
+ {"version":3,"file":"predicate-capability-registry.js","sourceRoot":"","sources":["../../../src/predicate/registry/predicate-capability-registry.ts"],"names":[],"mappings":";;AAmBA,0EAEC;AArBD,oDAA0D;AAC1D,oDAA0D;AAC1D,oDAA0D;AAC1D,0DAAgE;AAChE,mEAAyE;AACzE,oDAA0D;AAC1D,yDAA+D;AAG/D,MAAM,oBAAoB,GAA0B;IAChD,sBAAc;IACd,sBAAc;IACd,sBAAc;IACd,0BAAgB;IAChB,sBAAc;IACd,4BAAiB;IACjB,kCAAoB;CACvB,CAAC;AAEF,SAAgB,+BAA+B;IAC3C,OAAO,CAAC,GAAG,oBAAoB,CAAC,CAAC;AACrC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mongo-query-normalizer",
3
- "version": "0.2.0",
3
+ "version": "0.2.1",
4
4
  "description": "Observable, level-based normalizer for MongoDB query objects. Defaults to conservative shape stabilization; optional predicate and scope levels with documented contracts. Predictable output and metadata—not planner optimization.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",