mongo-query-normalizer 0.1.0 → 0.2.0
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/README.md +369 -39
- package/README.zh-CN.md +363 -44
- package/dist/ast/types.d.ts +4 -0
- package/dist/ast/types.d.ts.map +1 -1
- package/dist/index.d.ts +4 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/normalize-context.d.ts +5 -1
- package/dist/normalize-context.d.ts.map +1 -1
- package/dist/normalize-context.js +3 -0
- package/dist/normalize-context.js.map +1 -1
- package/dist/normalize.d.ts +1 -1
- package/dist/normalize.d.ts.map +1 -1
- package/dist/normalize.js +105 -52
- package/dist/normalize.js.map +1 -1
- package/dist/options/constants.d.ts.map +1 -1
- package/dist/options/constants.js +7 -16
- package/dist/options/constants.js.map +1 -1
- package/dist/options/resolve.d.ts.map +1 -1
- package/dist/options/resolve.js +32 -1
- package/dist/options/resolve.js.map +1 -1
- package/dist/options/types.d.ts +1 -1
- package/dist/options/types.d.ts.map +1 -1
- package/dist/passes/normalize-predicate.d.ts.map +1 -1
- package/dist/passes/normalize-predicate.js +93 -14
- package/dist/passes/normalize-predicate.js.map +1 -1
- package/dist/predicate/analysis/detect-array-sensitive.d.ts +3 -0
- package/dist/predicate/analysis/detect-array-sensitive.d.ts.map +1 -0
- package/dist/predicate/analysis/detect-array-sensitive.js +33 -0
- package/dist/predicate/analysis/detect-array-sensitive.js.map +1 -0
- package/dist/predicate/analysis/detect-null-sensitive.d.ts +3 -0
- package/dist/predicate/analysis/detect-null-sensitive.d.ts.map +1 -0
- package/dist/predicate/analysis/detect-null-sensitive.js +24 -0
- package/dist/predicate/analysis/detect-null-sensitive.js.map +1 -0
- package/dist/predicate/analysis/detect-opaque-mix.d.ts +3 -0
- package/dist/predicate/analysis/detect-opaque-mix.d.ts.map +1 -0
- package/dist/predicate/analysis/detect-opaque-mix.js +9 -0
- package/dist/predicate/analysis/detect-opaque-mix.js.map +1 -0
- package/dist/predicate/analysis/detect-path-conflict-risk.d.ts +3 -0
- package/dist/predicate/analysis/detect-path-conflict-risk.d.ts.map +1 -0
- package/dist/predicate/analysis/detect-path-conflict-risk.js +14 -0
- package/dist/predicate/analysis/detect-path-conflict-risk.js.map +1 -0
- package/dist/predicate/analysis/merge-range-bounds.d.ts +27 -0
- package/dist/predicate/analysis/merge-range-bounds.d.ts.map +1 -0
- package/dist/predicate/analysis/merge-range-bounds.js +150 -0
- package/dist/predicate/analysis/merge-range-bounds.js.map +1 -0
- package/dist/predicate/capabilities/eq/eq-eq.d.ts +3 -0
- package/dist/predicate/capabilities/eq/eq-eq.d.ts.map +1 -0
- package/dist/predicate/capabilities/eq/eq-eq.js +53 -0
- package/dist/predicate/capabilities/eq/eq-eq.js.map +1 -0
- package/dist/predicate/capabilities/eq/eq-in.d.ts +3 -0
- package/dist/predicate/capabilities/eq/eq-in.d.ts.map +1 -0
- package/dist/predicate/capabilities/eq/eq-in.js +117 -0
- package/dist/predicate/capabilities/eq/eq-in.js.map +1 -0
- package/dist/predicate/capabilities/eq/eq-ne.d.ts +3 -0
- package/dist/predicate/capabilities/eq/eq-ne.d.ts.map +1 -0
- package/dist/predicate/capabilities/eq/eq-ne.js +37 -0
- package/dist/predicate/capabilities/eq/eq-ne.js.map +1 -0
- package/dist/predicate/capabilities/eq/eq-range.d.ts +3 -0
- package/dist/predicate/capabilities/eq/eq-range.d.ts.map +1 -0
- package/dist/predicate/capabilities/eq/eq-range.js +138 -0
- package/dist/predicate/capabilities/eq/eq-range.js.map +1 -0
- package/dist/predicate/capabilities/range/range-range.d.ts +3 -0
- package/dist/predicate/capabilities/range/range-range.d.ts.map +1 -0
- package/dist/predicate/capabilities/range/range-range.js +154 -0
- package/dist/predicate/capabilities/range/range-range.js.map +1 -0
- package/dist/predicate/capabilities/shared/capability-types.d.ts +11 -0
- package/dist/predicate/capabilities/shared/capability-types.d.ts.map +1 -0
- package/dist/predicate/capabilities/shared/capability-types.js +3 -0
- package/dist/predicate/capabilities/shared/capability-types.js.map +1 -0
- package/dist/predicate/capabilities/shared/relation-context.d.ts +13 -0
- package/dist/predicate/capabilities/shared/relation-context.d.ts.map +1 -0
- package/dist/predicate/capabilities/shared/relation-context.js +3 -0
- package/dist/predicate/capabilities/shared/relation-context.js.map +1 -0
- package/dist/predicate/capabilities/shared/relation-result.d.ts +12 -0
- package/dist/predicate/capabilities/shared/relation-result.d.ts.map +1 -0
- package/dist/predicate/capabilities/shared/relation-result.js +14 -0
- package/dist/predicate/capabilities/shared/relation-result.js.map +1 -0
- package/dist/predicate/index.d.ts +12 -0
- package/dist/predicate/index.d.ts.map +1 -0
- package/dist/predicate/index.js +22 -0
- package/dist/predicate/index.js.map +1 -0
- package/dist/predicate/ir/build-field-bundle.d.ts +7 -0
- package/dist/predicate/ir/build-field-bundle.d.ts.map +1 -0
- package/dist/predicate/ir/build-field-bundle.js +88 -0
- package/dist/predicate/ir/build-field-bundle.js.map +1 -0
- package/dist/predicate/ir/compile-field-bundle.d.ts +4 -0
- package/dist/predicate/ir/compile-field-bundle.d.ts.map +1 -0
- package/dist/predicate/ir/compile-field-bundle.js +57 -0
- package/dist/predicate/ir/compile-field-bundle.js.map +1 -0
- package/dist/predicate/ir/dedupe-atoms.d.ts +6 -0
- package/dist/predicate/ir/dedupe-atoms.d.ts.map +1 -0
- package/dist/predicate/ir/dedupe-atoms.js +42 -0
- package/dist/predicate/ir/dedupe-atoms.js.map +1 -0
- package/dist/predicate/ir/field-predicate-bundle.d.ts +16 -0
- package/dist/predicate/ir/field-predicate-bundle.d.ts.map +1 -0
- package/dist/predicate/ir/field-predicate-bundle.js +3 -0
- package/dist/predicate/ir/field-predicate-bundle.js.map +1 -0
- package/dist/predicate/ir/predicate-atom.d.ts +33 -0
- package/dist/predicate/ir/predicate-atom.d.ts.map +1 -0
- package/dist/predicate/ir/predicate-atom.js +3 -0
- package/dist/predicate/ir/predicate-atom.js.map +1 -0
- package/dist/predicate/local-normalize-result.d.ts +17 -0
- package/dist/predicate/local-normalize-result.d.ts.map +1 -0
- package/dist/predicate/local-normalize-result.js +3 -0
- package/dist/predicate/local-normalize-result.js.map +1 -0
- package/dist/predicate/meta/collect-predicate-meta.d.ts +16 -0
- package/dist/predicate/meta/collect-predicate-meta.d.ts.map +1 -0
- package/dist/predicate/meta/collect-predicate-meta.js +13 -0
- package/dist/predicate/meta/collect-predicate-meta.js.map +1 -0
- package/dist/predicate/normalize-field-predicate-bundle.d.ts +18 -0
- package/dist/predicate/normalize-field-predicate-bundle.d.ts.map +1 -0
- package/dist/predicate/normalize-field-predicate-bundle.js +126 -0
- package/dist/predicate/normalize-field-predicate-bundle.js.map +1 -0
- package/dist/predicate/normalize-predicate.d.ts +5 -0
- package/dist/predicate/normalize-predicate.d.ts.map +1 -0
- package/dist/predicate/normalize-predicate.js +10 -0
- package/dist/predicate/normalize-predicate.js.map +1 -0
- package/dist/predicate/planner/capability-selector.d.ts +8 -0
- package/dist/predicate/planner/capability-selector.d.ts.map +1 -0
- package/dist/predicate/planner/capability-selector.js +23 -0
- package/dist/predicate/planner/capability-selector.js.map +1 -0
- package/dist/predicate/planner/relation-plan.d.ts +10 -0
- package/dist/predicate/planner/relation-plan.d.ts.map +1 -0
- package/dist/predicate/planner/relation-plan.js +3 -0
- package/dist/predicate/planner/relation-plan.js.map +1 -0
- package/dist/predicate/planner/relation-planner.d.ts +5 -0
- package/dist/predicate/planner/relation-planner.d.ts.map +1 -0
- package/dist/predicate/planner/relation-planner.js +62 -0
- package/dist/predicate/planner/relation-planner.js.map +1 -0
- package/dist/predicate/registry/predicate-capability-registry.d.ts +3 -0
- package/dist/predicate/registry/predicate-capability-registry.d.ts.map +1 -0
- package/dist/predicate/registry/predicate-capability-registry.js +19 -0
- package/dist/predicate/registry/predicate-capability-registry.js.map +1 -0
- package/dist/predicate/safety/predicate-safety-policy.d.ts +9 -0
- package/dist/predicate/safety/predicate-safety-policy.d.ts.map +1 -0
- package/dist/predicate/safety/predicate-safety-policy.js +11 -0
- package/dist/predicate/safety/predicate-safety-policy.js.map +1 -0
- package/dist/predicate/utils/bson-compare.d.ts +2 -0
- package/dist/predicate/utils/bson-compare.d.ts.map +1 -0
- package/dist/predicate/utils/bson-compare.js +7 -0
- package/dist/predicate/utils/bson-compare.js.map +1 -0
- package/dist/predicate/utils/intersect-in-lists.d.ts +5 -0
- package/dist/predicate/utils/intersect-in-lists.d.ts.map +1 -0
- package/dist/predicate/utils/intersect-in-lists.js +15 -0
- package/dist/predicate/utils/intersect-in-lists.js.map +1 -0
- package/dist/predicate/utils/set-ops.d.ts +3 -0
- package/dist/predicate/utils/set-ops.d.ts.map +1 -0
- package/dist/predicate/utils/set-ops.js +18 -0
- package/dist/predicate/utils/set-ops.js.map +1 -0
- package/dist/predicate/utils/value-equality.d.ts +2 -0
- package/dist/predicate/utils/value-equality.d.ts.map +1 -0
- package/dist/predicate/utils/value-equality.js +8 -0
- package/dist/predicate/utils/value-equality.js.map +1 -0
- package/dist/rules/or-common-predicate/detect-common-predicates-in-or.d.ts +6 -0
- package/dist/rules/or-common-predicate/detect-common-predicates-in-or.d.ts.map +1 -0
- package/dist/rules/or-common-predicate/detect-common-predicates-in-or.js +83 -0
- package/dist/rules/or-common-predicate/detect-common-predicates-in-or.js.map +1 -0
- package/dist/rules/shape/collapse-single-child-logical.js +1 -1
- package/dist/rules/shape/collapse-single-child-logical.js.map +1 -1
- package/dist/rules/shape/dedupe-logical-children.js +1 -1
- package/dist/rules/shape/dedupe-logical-children.js.map +1 -1
- package/dist/rules/shape/flatten-logical.js +2 -2
- package/dist/rules/shape/flatten-logical.js.map +1 -1
- package/dist/rules/shape/remove-empty-logical.js +2 -2
- package/dist/rules/shape/remove-empty-logical.js.map +1 -1
- package/dist/scope/analysis/analyze-branch-coverage.d.ts +5 -0
- package/dist/scope/analysis/analyze-branch-coverage.d.ts.map +1 -0
- package/dist/scope/analysis/analyze-branch-coverage.js +8 -0
- package/dist/scope/analysis/analyze-branch-coverage.js.map +1 -0
- package/dist/scope/analysis/analyze-branch-satisfiability.d.ts +9 -0
- package/dist/scope/analysis/analyze-branch-satisfiability.d.ts.map +1 -0
- package/dist/scope/analysis/analyze-branch-satisfiability.js +33 -0
- package/dist/scope/analysis/analyze-branch-satisfiability.js.map +1 -0
- package/dist/scope/context/build-inherited-constraints.d.ts +6 -0
- package/dist/scope/context/build-inherited-constraints.d.ts.map +1 -0
- package/dist/scope/context/build-inherited-constraints.js +119 -0
- package/dist/scope/context/build-inherited-constraints.js.map +1 -0
- package/dist/scope/context/constraint-set.d.ts +19 -0
- package/dist/scope/context/constraint-set.d.ts.map +1 -0
- package/dist/scope/context/constraint-set.js +26 -0
- package/dist/scope/context/constraint-set.js.map +1 -0
- package/dist/scope/context/merge-constraint-sources.d.ts +4 -0
- package/dist/scope/context/merge-constraint-sources.d.ts.map +1 -0
- package/dist/scope/context/merge-constraint-sources.js +28 -0
- package/dist/scope/context/merge-constraint-sources.js.map +1 -0
- package/dist/scope/index.d.ts +8 -0
- package/dist/scope/index.d.ts.map +1 -0
- package/dist/scope/index.js +19 -0
- package/dist/scope/index.js.map +1 -0
- package/dist/scope/meta/collect-scope-meta.d.ts +5 -0
- package/dist/scope/meta/collect-scope-meta.d.ts.map +1 -0
- package/dist/scope/meta/collect-scope-meta.js +7 -0
- package/dist/scope/meta/collect-scope-meta.js.map +1 -0
- package/dist/scope/normalize-scope.d.ts +4 -0
- package/dist/scope/normalize-scope.d.ts.map +1 -0
- package/dist/scope/normalize-scope.js +149 -0
- package/dist/scope/normalize-scope.js.map +1 -0
- package/dist/scope/planner/scope-plan.d.ts +6 -0
- package/dist/scope/planner/scope-plan.d.ts.map +1 -0
- package/dist/scope/planner/scope-plan.js +9 -0
- package/dist/scope/planner/scope-plan.js.map +1 -0
- package/dist/scope/planner/scope-rewrite-planner.d.ts +4 -0
- package/dist/scope/planner/scope-rewrite-planner.d.ts.map +1 -0
- package/dist/scope/planner/scope-rewrite-planner.js +8 -0
- package/dist/scope/planner/scope-rewrite-planner.js.map +1 -0
- package/dist/scope/propagation/create-branch-local-bundle.d.ts +5 -0
- package/dist/scope/propagation/create-branch-local-bundle.d.ts.map +1 -0
- package/dist/scope/propagation/create-branch-local-bundle.js +16 -0
- package/dist/scope/propagation/create-branch-local-bundle.js.map +1 -0
- package/dist/scope/propagation/propagate-constraints-to-children.d.ts +6 -0
- package/dist/scope/propagation/propagate-constraints-to-children.d.ts.map +1 -0
- package/dist/scope/propagation/propagate-constraints-to-children.js +9 -0
- package/dist/scope/propagation/propagate-constraints-to-children.js.map +1 -0
- package/dist/scope/rewrite/collapse-single-branch.d.ts +5 -0
- package/dist/scope/rewrite/collapse-single-branch.d.ts.map +1 -0
- package/dist/scope/rewrite/collapse-single-branch.js +28 -0
- package/dist/scope/rewrite/collapse-single-branch.js.map +1 -0
- package/dist/scope/rewrite/prune-impossible-branches.d.ts +6 -0
- package/dist/scope/rewrite/prune-impossible-branches.d.ts.map +1 -0
- package/dist/scope/rewrite/prune-impossible-branches.js +32 -0
- package/dist/scope/rewrite/prune-impossible-branches.js.map +1 -0
- package/dist/scope/rewrite/remove-covered-local-constraints.d.ts +6 -0
- package/dist/scope/rewrite/remove-covered-local-constraints.d.ts.map +1 -0
- package/dist/scope/rewrite/remove-covered-local-constraints.js +76 -0
- package/dist/scope/rewrite/remove-covered-local-constraints.js.map +1 -0
- package/dist/scope/safety/scope-safety-policy.d.ts +10 -0
- package/dist/scope/safety/scope-safety-policy.d.ts.map +1 -0
- package/dist/scope/safety/scope-safety-policy.js +12 -0
- package/dist/scope/safety/scope-safety-policy.js.map +1 -0
- package/dist/types.d.ts +70 -2
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/package.json +6 -4
package/dist/types.d.ts
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
+
import type { PredicateSafetyPolicy } from "./predicate/safety/predicate-safety-policy";
|
|
2
|
+
import type { ScopeSafetyPolicy } from "./scope/safety/scope-safety-policy";
|
|
3
|
+
import type { ConstraintExtractionRejection } from "./scope/context/constraint-set";
|
|
1
4
|
/**
|
|
2
5
|
* MongoDB 查询对象(规范化入口的输入/输出形状)
|
|
3
6
|
*/
|
|
4
7
|
export type Query = Record<string, unknown>;
|
|
5
|
-
export type NormalizeLevel = "shape" | "predicate" | "
|
|
8
|
+
export type NormalizeLevel = "shape" | "predicate" | "scope";
|
|
6
9
|
export interface NormalizeRules {
|
|
7
10
|
flattenLogical: boolean;
|
|
8
11
|
removeEmptyLogical: boolean;
|
|
@@ -14,7 +17,6 @@ export interface NormalizeRules {
|
|
|
14
17
|
sortLogicalChildren: boolean;
|
|
15
18
|
sortFieldPredicates: boolean;
|
|
16
19
|
detectCommonPredicatesInOr: boolean;
|
|
17
|
-
hoistCommonPredicatesFromOr: boolean;
|
|
18
20
|
}
|
|
19
21
|
export interface NormalizeSafety {
|
|
20
22
|
maxNormalizeDepth: number;
|
|
@@ -23,18 +25,36 @@ export interface NormalizeSafety {
|
|
|
23
25
|
export interface NormalizeObserve {
|
|
24
26
|
collectWarnings: boolean;
|
|
25
27
|
collectMetrics: boolean;
|
|
28
|
+
/** When true, `meta.predicateTraces` lists per-field planner and skip signals. */
|
|
29
|
+
collectPredicateTraces: boolean;
|
|
30
|
+
/** When true, `meta.scopeTrace` records propagation / prune / coverage decisions. */
|
|
31
|
+
collectScopeTraces: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface NormalizePredicateOptions {
|
|
34
|
+
safetyPolicy: PredicateSafetyPolicy;
|
|
35
|
+
}
|
|
36
|
+
export interface NormalizeScopeLayerOptions {
|
|
37
|
+
safetyPolicy: ScopeSafetyPolicy;
|
|
26
38
|
}
|
|
27
39
|
export interface NormalizeOptions {
|
|
28
40
|
level?: NormalizeLevel;
|
|
29
41
|
rules?: Partial<NormalizeRules>;
|
|
30
42
|
safety?: Partial<NormalizeSafety>;
|
|
31
43
|
observe?: Partial<NormalizeObserve>;
|
|
44
|
+
predicate?: {
|
|
45
|
+
safetyPolicy?: Partial<PredicateSafetyPolicy>;
|
|
46
|
+
};
|
|
47
|
+
scope?: {
|
|
48
|
+
safetyPolicy?: Partial<ScopeSafetyPolicy>;
|
|
49
|
+
};
|
|
32
50
|
}
|
|
33
51
|
export interface ResolvedNormalizeOptions {
|
|
34
52
|
level: NormalizeLevel;
|
|
35
53
|
rules: NormalizeRules;
|
|
36
54
|
safety: NormalizeSafety;
|
|
37
55
|
observe: NormalizeObserve;
|
|
56
|
+
predicate: NormalizePredicateOptions;
|
|
57
|
+
scope: NormalizeScopeLayerOptions;
|
|
38
58
|
}
|
|
39
59
|
export interface NodeStats {
|
|
40
60
|
nodeCount: number;
|
|
@@ -44,6 +64,51 @@ export interface NodeStats {
|
|
|
44
64
|
}
|
|
45
65
|
/** 对外名称:`meta.stats` 中 before/after 的树统计。 */
|
|
46
66
|
export type NormalizeStats = NodeStats;
|
|
67
|
+
export type PredicateCapabilitySkipTrace = {
|
|
68
|
+
id: string;
|
|
69
|
+
reason: string;
|
|
70
|
+
};
|
|
71
|
+
export type PredicateFieldTrace = {
|
|
72
|
+
field: string;
|
|
73
|
+
atomKinds: string[];
|
|
74
|
+
appliedCapabilityIds: string[];
|
|
75
|
+
skippedCapabilities: PredicateCapabilitySkipTrace[];
|
|
76
|
+
contradiction: boolean;
|
|
77
|
+
/** When set, identifies the capability that first reported local contradiction. */
|
|
78
|
+
contradictionCapabilityId?: string;
|
|
79
|
+
hadCoverage: boolean;
|
|
80
|
+
/** Number of predicate atoms removed as redundant (same round). */
|
|
81
|
+
coverageAtomCount: number;
|
|
82
|
+
hadTighten: boolean;
|
|
83
|
+
/** True when this field normalized to an unsatisfiable selector (FalseNode → IMPOSSIBLE_SELECTOR). */
|
|
84
|
+
impossibleEmitted: boolean;
|
|
85
|
+
};
|
|
86
|
+
export type ScopeTraceEvent = {
|
|
87
|
+
type: "or-branch-inherited";
|
|
88
|
+
satisfiabilityCheck: "skipped" | "ran";
|
|
89
|
+
satisfiable?: boolean;
|
|
90
|
+
detail: string;
|
|
91
|
+
} | {
|
|
92
|
+
type: "prune-branch";
|
|
93
|
+
outcome: "pruned-to-false" | "skipped-by-policy";
|
|
94
|
+
detail: string;
|
|
95
|
+
} | {
|
|
96
|
+
type: "coverage-removal";
|
|
97
|
+
outcome: "replaced-with-true" | "unchanged";
|
|
98
|
+
detail: string;
|
|
99
|
+
} | {
|
|
100
|
+
type: "collapse-or";
|
|
101
|
+
outcome: "collapsed-single-child" | "unchanged";
|
|
102
|
+
detail: string;
|
|
103
|
+
} | {
|
|
104
|
+
type: "and-propagation";
|
|
105
|
+
outcome: "applied" | "skipped-by-policy";
|
|
106
|
+
detail: string;
|
|
107
|
+
};
|
|
108
|
+
export type ScopeNormalizationTrace = {
|
|
109
|
+
constraintRejections: ConstraintExtractionRejection[];
|
|
110
|
+
events: ScopeTraceEvent[];
|
|
111
|
+
};
|
|
47
112
|
export interface NormalizeMeta {
|
|
48
113
|
changed: boolean;
|
|
49
114
|
level: NormalizeLevel;
|
|
@@ -58,6 +123,8 @@ export interface NormalizeMeta {
|
|
|
58
123
|
before: NodeStats;
|
|
59
124
|
after: NodeStats;
|
|
60
125
|
};
|
|
126
|
+
predicateTraces?: PredicateFieldTrace[];
|
|
127
|
+
scopeTrace?: ScopeNormalizationTrace;
|
|
61
128
|
}
|
|
62
129
|
export interface NormalizeResult<Q = Query> {
|
|
63
130
|
query: Q;
|
|
@@ -66,5 +133,6 @@ export interface NormalizeResult<Q = Query> {
|
|
|
66
133
|
/**
|
|
67
134
|
* FalseNode 编译结果:不可满足选择器(与设计文档一致)
|
|
68
135
|
*/
|
|
136
|
+
/** Canonical unsatisfiable filter: no document has a missing top-level `_id` in normal collections. */
|
|
69
137
|
export declare const IMPOSSIBLE_SELECTOR: Query;
|
|
70
138
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,WAAW,GAAG,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -4,5 +4,6 @@ exports.IMPOSSIBLE_SELECTOR = void 0;
|
|
|
4
4
|
/**
|
|
5
5
|
* FalseNode 编译结果:不可满足选择器(与设计文档一致)
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
/** Canonical unsatisfiable filter: no document has a missing top-level `_id` in normal collections. */
|
|
8
|
+
exports.IMPOSSIBLE_SELECTOR = { _id: { $exists: false } };
|
|
8
9
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":";;;AA2JA;;GAEG;AACH,uGAAuG;AAC1F,QAAA,mBAAmB,GAAU,EAAE,GAAG,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAW,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mongo-query-normalizer",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "Observable, level-based normalizer for MongoDB query objects. Defaults to conservative shape stabilization;
|
|
3
|
+
"version": "0.2.0",
|
|
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",
|
|
7
7
|
"files": [
|
|
@@ -13,11 +13,13 @@
|
|
|
13
13
|
"scripts": {
|
|
14
14
|
"build": "tsc",
|
|
15
15
|
"test": "npm run build && npm run test:unit && npm run test:semantic",
|
|
16
|
+
"test:api": "mocha \"test/api/**/*.test.js\"",
|
|
17
|
+
"test:levels": "mocha \"test/levels/**/*.test.js\" \"test/contracts/*.test.js\"",
|
|
16
18
|
"test:unit": "mocha \"test/**/*.test.js\" --ignore \"test/semantic/**/*.test.js\" --ignore \"test/regression/**/*.test.js\" --ignore \"test/property/**/*.test.js\"",
|
|
17
19
|
"test:semantic": "mocha --require ./test/helpers/mocha-semantic-hooks.js \"test/semantic/**/*.test.js\" \"test/regression/**/*.test.js\" \"test/property/**/*.test.js\"",
|
|
18
20
|
"test:semantic:quick": "FC_SEED=42 FC_RUNS=45 mocha --require ./test/helpers/mocha-semantic-hooks.js \"test/semantic/**/*.test.js\" \"test/regression/**/*.test.js\" \"test/property/**/*.test.js\"",
|
|
19
21
|
"test:semantic:ci": "FC_RUNS=200 FC_SEED=42 mocha --require ./test/helpers/mocha-semantic-hooks.js \"test/semantic/**/*.test.js\" \"test/regression/**/*.test.js\" \"test/property/**/*.test.js\"",
|
|
20
|
-
"prepublishOnly": "npm run build"
|
|
22
|
+
"prepublishOnly": "npm test && npm run build"
|
|
21
23
|
},
|
|
22
24
|
"author": "",
|
|
23
25
|
"license": "ISC",
|
|
@@ -48,4 +50,4 @@
|
|
|
48
50
|
"mongodb-memory-server": "^11.0.1",
|
|
49
51
|
"typescript": "^5.0.0"
|
|
50
52
|
}
|
|
51
|
-
}
|
|
53
|
+
}
|