grafeo-ogm 2.2.0 → 2.3.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.
Files changed (59) hide show
  1. package/CHANGELOG.md +93 -0
  2. package/README.md +49 -1
  3. package/dist/cjs/compilers/mutation.compiler.d.ts +94 -31
  4. package/dist/cjs/compilers/mutation.compiler.d.ts.map +1 -1
  5. package/dist/cjs/compilers/mutation.compiler.js +381 -343
  6. package/dist/cjs/compilers/mutation.compiler.js.map +1 -1
  7. package/dist/cjs/compilers/selection.compiler.d.ts +1 -1
  8. package/dist/cjs/compilers/selection.compiler.d.ts.map +1 -1
  9. package/dist/cjs/compilers/selection.compiler.js +33 -39
  10. package/dist/cjs/compilers/selection.compiler.js.map +1 -1
  11. package/dist/cjs/compilers/where.compiler.d.ts +124 -1
  12. package/dist/cjs/compilers/where.compiler.d.ts.map +1 -1
  13. package/dist/cjs/compilers/where.compiler.js +371 -102
  14. package/dist/cjs/compilers/where.compiler.js.map +1 -1
  15. package/dist/cjs/interface-model.d.ts +20 -10
  16. package/dist/cjs/interface-model.d.ts.map +1 -1
  17. package/dist/cjs/interface-model.js +47 -104
  18. package/dist/cjs/interface-model.js.map +1 -1
  19. package/dist/cjs/model.d.ts +15 -29
  20. package/dist/cjs/model.d.ts.map +1 -1
  21. package/dist/cjs/model.js +66 -145
  22. package/dist/cjs/model.js.map +1 -1
  23. package/dist/cjs/policy/nested-writes.d.ts +35 -0
  24. package/dist/cjs/policy/nested-writes.d.ts.map +1 -0
  25. package/dist/cjs/policy/nested-writes.js +199 -0
  26. package/dist/cjs/policy/nested-writes.js.map +1 -0
  27. package/dist/cjs/policy/types.d.ts +18 -0
  28. package/dist/cjs/policy/types.d.ts.map +1 -1
  29. package/dist/cjs/policy/types.js +24 -0
  30. package/dist/cjs/policy/types.js.map +1 -1
  31. package/dist/esm/compilers/mutation.compiler.d.ts +94 -31
  32. package/dist/esm/compilers/mutation.compiler.d.ts.map +1 -1
  33. package/dist/esm/compilers/mutation.compiler.js +381 -344
  34. package/dist/esm/compilers/mutation.compiler.js.map +1 -1
  35. package/dist/esm/compilers/selection.compiler.d.ts +1 -1
  36. package/dist/esm/compilers/selection.compiler.d.ts.map +1 -1
  37. package/dist/esm/compilers/selection.compiler.js +33 -39
  38. package/dist/esm/compilers/selection.compiler.js.map +1 -1
  39. package/dist/esm/compilers/where.compiler.d.ts +124 -1
  40. package/dist/esm/compilers/where.compiler.d.ts.map +1 -1
  41. package/dist/esm/compilers/where.compiler.js +371 -104
  42. package/dist/esm/compilers/where.compiler.js.map +1 -1
  43. package/dist/esm/interface-model.d.ts +20 -10
  44. package/dist/esm/interface-model.d.ts.map +1 -1
  45. package/dist/esm/interface-model.js +47 -104
  46. package/dist/esm/interface-model.js.map +1 -1
  47. package/dist/esm/model.d.ts +15 -29
  48. package/dist/esm/model.d.ts.map +1 -1
  49. package/dist/esm/model.js +67 -146
  50. package/dist/esm/model.js.map +1 -1
  51. package/dist/esm/policy/nested-writes.d.ts +35 -0
  52. package/dist/esm/policy/nested-writes.d.ts.map +1 -0
  53. package/dist/esm/policy/nested-writes.js +193 -0
  54. package/dist/esm/policy/nested-writes.js.map +1 -0
  55. package/dist/esm/policy/types.d.ts +18 -0
  56. package/dist/esm/policy/types.d.ts.map +1 -1
  57. package/dist/esm/policy/types.js +23 -0
  58. package/dist/esm/policy/types.js.map +1 -1
  59. package/package.json +1 -1
@@ -0,0 +1,35 @@
1
+ import type { NodeDefinition, SchemaMetadata } from '../schema/types';
2
+ import { type Operation, type PolicyContextBundle } from './types';
3
+ /**
4
+ * Evaluate `'create'` policies in JS for `inputs` of `typeName`.
5
+ *
6
+ * - Override → all input is allowed.
7
+ * - Permissive → at least one (whose `appliesWhen` matches) must exist;
8
+ * create cannot fall back to default-deny silent-empty.
9
+ * - Restrictive → `when(ctx, input)` must return exactly `true` for every
10
+ * input (v1.8.7 — explicit positive consent).
11
+ *
12
+ * A permissive's `when(ctx)` where-partial is a SHAPE hint only — it is
13
+ * not compiled against the input. Restrictive `when(ctx, input)` is the
14
+ * canonical "WITH CHECK" hook.
15
+ */
16
+ export declare function evaluateCreatePolicies(bundle: PolicyContextBundle | null, typeName: string, inputs: ReadonlyArray<Record<string, unknown>>): void;
17
+ /**
18
+ * Evaluate WRITE-side restrictives (create/update) at the application
19
+ * layer. Each `WriteRestrictive` is invoked once with `(ctx, input)`;
20
+ * anything but an explicit `true` rejects with `PolicyDeniedError`.
21
+ * ReadRestrictives are not consumed here — they filter rows via the
22
+ * compiled WHERE clause.
23
+ */
24
+ export declare function evaluateWriteRestrictives(bundle: PolicyContextBundle | null, typeName: string, operation: Operation, input: Record<string, unknown> | undefined): void;
25
+ /**
26
+ * Check every nested `create` / `update` inside create inputs of
27
+ * `nodeDef` (the root's own checks are the caller's).
28
+ */
29
+ export declare function assertNestedCreatesAllowed(schema: SchemaMetadata, nodeDef: NodeDefinition, inputs: ReadonlyArray<Record<string, unknown>>, bundle: PolicyContextBundle | null): void;
30
+ /**
31
+ * Check every nested `create` / `update` inside an update input of
32
+ * `nodeDef` (the root's own checks are the caller's).
33
+ */
34
+ export declare function assertNestedUpdatesAllowed(schema: SchemaMetadata, nodeDef: NodeDefinition, update: Record<string, unknown> | undefined, bundle: PolicyContextBundle | null): void;
35
+ //# sourceMappingURL=nested-writes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-writes.d.ts","sourceRoot":"","sources":["../../../src/policy/nested-writes.ts"],"names":[],"mappings":"AA0BA,OAAO,KAAK,EACV,cAAc,EAEd,cAAc,EACf,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EAGL,KAAK,SAAS,EACd,KAAK,mBAAmB,EACzB,MAAM,SAAS,CAAC;AAKjB;;;;;;;;;;;;GAYG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,mBAAmB,GAAG,IAAI,EAClC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAC7C,IAAI,CAkBN;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,mBAAmB,GAAG,IAAI,EAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GACzC,IAAI,CAcN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,EAC9C,MAAM,EAAE,mBAAmB,GAAG,IAAI,GACjC,IAAI,CAIN;AAED;;;GAGG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EAC3C,MAAM,EAAE,mBAAmB,GAAG,IAAI,GACjC,IAAI,CAGN"}
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Application-layer policy checks for create / update input (v2.3.0),
3
+ * shared by the ROOT write and every NESTED write reached through its
4
+ * relationships. A nested write enforces exactly what the equivalent
5
+ * direct write on the target type would:
6
+ *
7
+ * - nested `create` → the target's `create` permissives (default-deny)
8
+ * and write restrictives (WITH CHECK) on the node input, as
9
+ * `Model.create` does;
10
+ * - nested `update` → the target's `update` write restrictives on the
11
+ * node input, as `Model.update` does. Its row filter (and
12
+ * `onDeny: 'throw'`) is enforced in the compiled MATCH by the
13
+ * mutation compiler.
14
+ *
15
+ * Pre-2.3.0 only the root type was checked, so a nested `create` / `update`
16
+ * wrote into protected types with none of their write policies applied.
17
+ *
18
+ * Runs BEFORE compile, so a rejected nested write never reaches the
19
+ * database. The walk mirrors the mutation compiler's input shapes:
20
+ * relationship → `{ create, update, … }` (single item or array), union
21
+ * targets keyed by member name, `create` items as `{ node, edge }` or a
22
+ * bare node, `update` as `{ node, edge }` or a bare node. Interface
23
+ * targets are skipped, as they are by the compiler (it emits no nested
24
+ * create / update for them).
25
+ */
26
+ import { OGMError } from '../errors';
27
+ import { isPlainObject } from '../utils/validation';
28
+ import { PolicyDeniedError } from './errors';
29
+ import { isWriteRestrictive, NO_ROOT_POLICY, } from './types';
30
+ /** Guards against pathological (e.g. cyclic) input objects. */
31
+ const MAX_NESTED_WRITE_DEPTH = 32;
32
+ /**
33
+ * Evaluate `'create'` policies in JS for `inputs` of `typeName`.
34
+ *
35
+ * - Override → all input is allowed.
36
+ * - Permissive → at least one (whose `appliesWhen` matches) must exist;
37
+ * create cannot fall back to default-deny silent-empty.
38
+ * - Restrictive → `when(ctx, input)` must return exactly `true` for every
39
+ * input (v1.8.7 — explicit positive consent).
40
+ *
41
+ * A permissive's `when(ctx)` where-partial is a SHAPE hint only — it is
42
+ * not compiled against the input. Restrictive `when(ctx, input)` is the
43
+ * canonical "WITH CHECK" hook.
44
+ */
45
+ export function evaluateCreatePolicies(bundle, typeName, inputs) {
46
+ if (!bundle || bundle.resolved.overridden)
47
+ return;
48
+ if (bundle.resolved.permissives.length === 0)
49
+ throw new PolicyDeniedError({
50
+ typeName,
51
+ operation: 'create',
52
+ reason: 'no-permissive-matched',
53
+ ...(bundle.defaults.onDeny === 'throw'
54
+ ? {}
55
+ : {
56
+ detail: 'create operations cannot rely on default-deny silent-empty; at least one permissive must apply.',
57
+ }),
58
+ });
59
+ for (const input of inputs)
60
+ evaluateWriteRestrictives(bundle, typeName, 'create', input);
61
+ }
62
+ /**
63
+ * Evaluate WRITE-side restrictives (create/update) at the application
64
+ * layer. Each `WriteRestrictive` is invoked once with `(ctx, input)`;
65
+ * anything but an explicit `true` rejects with `PolicyDeniedError`.
66
+ * ReadRestrictives are not consumed here — they filter rows via the
67
+ * compiled WHERE clause.
68
+ */
69
+ export function evaluateWriteRestrictives(bundle, typeName, operation, input) {
70
+ if (!bundle || bundle.resolved.overridden)
71
+ return;
72
+ for (const r of bundle.resolved.restrictives) {
73
+ if (!isWriteRestrictive(r))
74
+ continue;
75
+ // Compile-time gate: `appliesWhen` returning false drops the policy.
76
+ if (r.appliesWhen && !r.appliesWhen(bundle.ctx))
77
+ continue;
78
+ if (r.when(bundle.ctx, input ?? {}) !== true)
79
+ throw new PolicyDeniedError({
80
+ typeName,
81
+ operation,
82
+ reason: 'restrictive-rejected-input',
83
+ policyName: r.name,
84
+ });
85
+ }
86
+ }
87
+ /**
88
+ * Check every nested `create` / `update` inside create inputs of
89
+ * `nodeDef` (the root's own checks are the caller's).
90
+ */
91
+ export function assertNestedCreatesAllowed(schema, nodeDef, inputs, bundle) {
92
+ if (!bundle)
93
+ return;
94
+ for (const input of inputs)
95
+ if (isPlainObject(input))
96
+ walkCreate(schema, nodeDef, input, bundle, 0);
97
+ }
98
+ /**
99
+ * Check every nested `create` / `update` inside an update input of
100
+ * `nodeDef` (the root's own checks are the caller's).
101
+ */
102
+ export function assertNestedUpdatesAllowed(schema, nodeDef, update, bundle) {
103
+ if (!bundle || !isPlainObject(update))
104
+ return;
105
+ walkUpdate(schema, nodeDef, update, bundle, 0);
106
+ }
107
+ /** A create node spec: its relationship keys may carry nested creates. */
108
+ function walkCreate(schema, nodeDef, nodeSpec, bundle, depth) {
109
+ assertDepth(depth);
110
+ for (const [key, value] of Object.entries(nodeSpec)) {
111
+ const relDef = nodeDef.relationships.get(key);
112
+ if (!relDef || !isPlainObject(value))
113
+ continue;
114
+ for (const [targetDef, relInput] of relationshipTargets(schema, relDef, value))
115
+ if (isPlainObject(relInput))
116
+ checkCreates(schema, targetDef, relInput.create, bundle, depth);
117
+ }
118
+ }
119
+ /** An update spec: its relationship keys carry nested operation items. */
120
+ function walkUpdate(schema, nodeDef, update, bundle, depth) {
121
+ assertDepth(depth);
122
+ for (const [key, value] of Object.entries(update)) {
123
+ const relDef = nodeDef.relationships.get(key);
124
+ if (!relDef || value == null)
125
+ continue;
126
+ for (const [targetDef, items] of relationshipTargets(schema, relDef, value))
127
+ for (const item of asArray(items)) {
128
+ if (!isPlainObject(item))
129
+ continue;
130
+ if (item.create)
131
+ checkCreates(schema, targetDef, item.create, bundle, depth);
132
+ if (isPlainObject(item.update)) {
133
+ // Same node-spec resolution as the compiler's nested update.
134
+ const spec = item.update;
135
+ const nodeUpdate = (spec.node ?? (spec.edge ? {} : spec));
136
+ evaluateWriteRestrictives(targetBundle(bundle, targetDef.typeName, 'update'), targetDef.typeName, 'update', nodeUpdate);
137
+ if (isPlainObject(nodeUpdate))
138
+ walkUpdate(schema, targetDef, nodeUpdate, bundle, depth + 1);
139
+ }
140
+ }
141
+ }
142
+ }
143
+ function checkCreates(schema, targetDef, creates, bundle, depth) {
144
+ for (const item of asArray(creates)) {
145
+ if (!isPlainObject(item))
146
+ continue;
147
+ // Same node-spec resolution as the compiler's nested create.
148
+ const nodeSpec = (item.node ?? item);
149
+ evaluateCreatePolicies(targetBundle(bundle, targetDef.typeName, 'create'), targetDef.typeName, [nodeSpec]);
150
+ if (isPlainObject(nodeSpec))
151
+ walkCreate(schema, targetDef, nodeSpec, bundle, depth + 1);
152
+ }
153
+ }
154
+ /**
155
+ * Concrete targets of a relationship paired with their slice of the
156
+ * input: the whole value for a node target, one entry per member key
157
+ * for a union target, none for an interface target.
158
+ */
159
+ function relationshipTargets(schema, relDef, value) {
160
+ const nodeDef = schema.nodes.get(relDef.target);
161
+ if (nodeDef)
162
+ return [[nodeDef, value]];
163
+ const members = schema.unions?.get(relDef.target);
164
+ if (!members || !isPlainObject(value))
165
+ return [];
166
+ const targets = [];
167
+ for (const [memberKey, memberValue] of Object.entries(value)) {
168
+ const memberDef = members.includes(memberKey)
169
+ ? schema.nodes.get(memberKey)
170
+ : undefined;
171
+ if (memberDef && memberValue != null)
172
+ targets.push([memberDef, memberValue]);
173
+ }
174
+ return targets;
175
+ }
176
+ /** The target type's bundle for `op`; a type without policies is open. */
177
+ function targetBundle(bundle, typeName, op) {
178
+ return {
179
+ ...bundle,
180
+ operation: op,
181
+ resolved: bundle.resolveForType(typeName, op) ?? NO_ROOT_POLICY,
182
+ };
183
+ }
184
+ function asArray(value) {
185
+ if (value == null)
186
+ return [];
187
+ return Array.isArray(value) ? value : [value];
188
+ }
189
+ function assertDepth(depth) {
190
+ if (depth > MAX_NESTED_WRITE_DEPTH)
191
+ throw new OGMError(`Nested write input exceeds the maximum depth of ${MAX_NESTED_WRITE_DEPTH}.`);
192
+ }
193
+ //# sourceMappingURL=nested-writes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nested-writes.js","sourceRoot":"","sources":["../../../src/policy/nested-writes.ts"],"names":[],"mappings":"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"}
@@ -167,6 +167,24 @@ export interface ResolvedPolicies<C extends PolicyContext = PolicyContext> {
167
167
  /** Names of policies that fired (for audit logging). */
168
168
  evaluated: ReadonlyArray<string>;
169
169
  }
170
+ /**
171
+ * Resolution used for a ROOT type that has no policy for the operation,
172
+ * when a policy context is bound anyway (v2.3.0). Binding it — instead of
173
+ * dropping the whole bundle — keeps `resolveForType` reachable, so the
174
+ * policies of every TARGET type reached through relationships (nested
175
+ * selection, traversal filters, nested writes) stay enforced; a type
176
+ * without policies must not be a gateway around its neighbours'.
177
+ *
178
+ * `overridden: true` carries exactly its documented operational meaning
179
+ * here ("emit no root clause"): every root-level consumer treats it like
180
+ * the absence of a bundle, and no target-policy consumer reads it.
181
+ *
182
+ * Compare by identity (`resolved === NO_ROOT_POLICY`) to ask "did the
183
+ * root resolve anything for this operation?" — e.g. `aggregate`'s
184
+ * fallback to `read` policies. A real override resolution is a different
185
+ * object and must NOT be mistaken for it.
186
+ */
187
+ export declare const NO_ROOT_POLICY: ResolvedPolicies;
170
188
  /**
171
189
  * One operation-matching policy as seen by
172
190
  * `PolicyResolver.resolveDetailed()`. Unlike `ResolvedPolicies`, nothing
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/policy/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/policy/types.ts"],"names":[],"mappings":"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"}
@@ -120,4 +120,27 @@ export function isWriteRestrictive(p) {
120
120
  return true;
121
121
  return false;
122
122
  }
123
+ /**
124
+ * Resolution used for a ROOT type that has no policy for the operation,
125
+ * when a policy context is bound anyway (v2.3.0). Binding it — instead of
126
+ * dropping the whole bundle — keeps `resolveForType` reachable, so the
127
+ * policies of every TARGET type reached through relationships (nested
128
+ * selection, traversal filters, nested writes) stay enforced; a type
129
+ * without policies must not be a gateway around its neighbours'.
130
+ *
131
+ * `overridden: true` carries exactly its documented operational meaning
132
+ * here ("emit no root clause"): every root-level consumer treats it like
133
+ * the absence of a bundle, and no target-policy consumer reads it.
134
+ *
135
+ * Compare by identity (`resolved === NO_ROOT_POLICY`) to ask "did the
136
+ * root resolve anything for this operation?" — e.g. `aggregate`'s
137
+ * fallback to `read` policies. A real override resolution is a different
138
+ * object and must NOT be mistaken for it.
139
+ */
140
+ export const NO_ROOT_POLICY = Object.freeze({
141
+ overridden: true,
142
+ permissives: Object.freeze([]),
143
+ restrictives: Object.freeze([]),
144
+ evaluated: Object.freeze([]),
145
+ });
123
146
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/policy/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/policy/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "grafeo-ogm",
3
- "version": "2.2.0",
3
+ "version": "2.3.1",
4
4
  "description": "Type-safe Neo4j ORM / OGM for TypeScript. Define your graph in GraphQL SDL, get fully typed Prisma-like CRUD, optimized Cypher, and zero-config code generation. Community successor to @neo4j/graphql-ogm.",
5
5
  "license": "MIT",
6
6
  "author": "Alejandro Guzman",