@opensaas/stack-core 0.20.1 → 0.22.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/.turbo/turbo-build.log +1 -1
- package/CHANGELOG.md +334 -0
- package/CLAUDE.md +29 -11
- package/dist/access/access-filter.d.ts +29 -0
- package/dist/access/access-filter.d.ts.map +1 -0
- package/dist/access/access-filter.js +68 -0
- package/dist/access/access-filter.js.map +1 -0
- package/dist/access/engine.d.ts +15 -48
- package/dist/access/engine.d.ts.map +1 -1
- package/dist/access/engine.js +14 -280
- package/dist/access/engine.js.map +1 -1
- package/dist/access/field-access.d.ts +44 -0
- package/dist/access/field-access.d.ts.map +1 -0
- package/dist/access/field-access.js +123 -0
- package/dist/access/field-access.js.map +1 -0
- package/dist/access/field-access.test.d.ts +2 -0
- package/dist/access/field-access.test.d.ts.map +1 -0
- package/dist/access/{engine.test.js → field-access.test.js} +2 -2
- package/dist/access/field-access.test.js.map +1 -0
- package/dist/access/field-visibility.d.ts +13 -0
- package/dist/access/field-visibility.d.ts.map +1 -0
- package/dist/access/field-visibility.js +178 -0
- package/dist/access/field-visibility.js.map +1 -0
- package/dist/access/index.d.ts +4 -1
- package/dist/access/index.d.ts.map +1 -1
- package/dist/access/index.js +8 -1
- package/dist/access/index.js.map +1 -1
- package/dist/access/multi-column-read-write.test.d.ts +2 -0
- package/dist/access/multi-column-read-write.test.d.ts.map +1 -0
- package/dist/access/multi-column-read-write.test.js +149 -0
- package/dist/access/multi-column-read-write.test.js.map +1 -0
- package/dist/config/index.d.ts +1 -1
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/types.d.ts +334 -5
- package/dist/config/types.d.ts.map +1 -1
- package/dist/context/hook-pipeline.d.ts +49 -0
- package/dist/context/hook-pipeline.d.ts.map +1 -0
- package/dist/context/hook-pipeline.js +75 -0
- package/dist/context/hook-pipeline.js.map +1 -0
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +30 -462
- package/dist/context/index.js.map +1 -1
- package/dist/context/nested-operations.d.ts.map +1 -1
- package/dist/context/nested-operations.js +72 -68
- package/dist/context/nested-operations.js.map +1 -1
- package/dist/context/write-pipeline.d.ts +158 -0
- package/dist/context/write-pipeline.d.ts.map +1 -0
- package/dist/context/write-pipeline.js +306 -0
- package/dist/context/write-pipeline.js.map +1 -0
- package/dist/extend.d.ts +3 -0
- package/dist/extend.d.ts.map +1 -0
- package/dist/extend.js +10 -0
- package/dist/extend.js.map +1 -0
- package/dist/fields/format-prisma-default.d.ts +35 -0
- package/dist/fields/format-prisma-default.d.ts.map +1 -0
- package/dist/fields/format-prisma-default.js +52 -0
- package/dist/fields/format-prisma-default.js.map +1 -0
- package/dist/fields/format-prisma-default.test.d.ts +2 -0
- package/dist/fields/format-prisma-default.test.d.ts.map +1 -0
- package/dist/fields/format-prisma-default.test.js +54 -0
- package/dist/fields/format-prisma-default.test.js.map +1 -0
- package/dist/fields/index.d.ts +1 -0
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +267 -18
- package/dist/fields/index.js.map +1 -1
- package/dist/fields/select.test.js +85 -0
- package/dist/fields/select.test.js.map +1 -1
- package/dist/fields/text-keystone-compat.test.d.ts +2 -0
- package/dist/fields/text-keystone-compat.test.d.ts.map +1 -0
- package/dist/fields/text-keystone-compat.test.js +93 -0
- package/dist/fields/text-keystone-compat.test.js.map +1 -0
- package/dist/hooks/index.d.ts +20 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +246 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/index.d.ts +6 -8
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +25 -9
- package/dist/index.js.map +1 -1
- package/dist/index.test.d.ts +2 -0
- package/dist/index.test.d.ts.map +1 -0
- package/dist/index.test.js +33 -0
- package/dist/index.test.js.map +1 -0
- package/dist/internal.d.ts +8 -0
- package/dist/internal.d.ts.map +1 -0
- package/dist/internal.js +16 -0
- package/dist/internal.js.map +1 -0
- package/dist/mcp/handler.js +0 -1
- package/dist/mcp/handler.js.map +1 -1
- package/dist/validation/field-config.d.ts +55 -0
- package/dist/validation/field-config.d.ts.map +1 -0
- package/dist/validation/field-config.js +100 -0
- package/dist/validation/field-config.js.map +1 -0
- package/dist/validation/field-config.test.d.ts +2 -0
- package/dist/validation/field-config.test.d.ts.map +1 -0
- package/dist/validation/field-config.test.js +159 -0
- package/dist/validation/field-config.test.js.map +1 -0
- package/package.json +11 -3
- package/src/access/access-filter.ts +97 -0
- package/src/access/engine.ts +13 -396
- package/src/access/{engine.test.ts → field-access.test.ts} +1 -1
- package/src/access/field-access.ts +159 -0
- package/src/access/field-visibility.ts +269 -0
- package/src/access/index.ts +7 -4
- package/src/access/multi-column-read-write.test.ts +255 -0
- package/src/config/index.ts +3 -0
- package/src/config/types.ts +342 -4
- package/src/context/hook-pipeline.ts +160 -0
- package/src/context/index.ts +29 -667
- package/src/context/nested-operations.ts +142 -111
- package/src/context/write-pipeline.ts +543 -0
- package/src/extend.ts +19 -0
- package/src/fields/format-prisma-default.test.ts +64 -0
- package/src/fields/format-prisma-default.ts +67 -0
- package/src/fields/index.ts +375 -20
- package/src/fields/select.test.ts +99 -0
- package/src/fields/text-keystone-compat.test.ts +126 -0
- package/src/hooks/index.ts +270 -0
- package/src/index.test.ts +50 -0
- package/src/index.ts +35 -82
- package/src/internal.ts +49 -0
- package/src/mcp/handler.ts +0 -2
- package/src/validation/field-config.test.ts +199 -0
- package/src/validation/field-config.ts +145 -0
- package/tests/access-relationships.test.ts +4 -4
- package/tests/access.test.ts +1 -1
- package/tests/field-hooks.test.ts +410 -0
- package/tests/field-types.test.ts +1 -1
- package/tests/hook-pipeline.test.ts +233 -0
- package/tests/nested-operation-registry.test.ts +206 -0
- package/tests/write-pipeline.test.ts +588 -0
- package/tsconfig.tsbuildinfo +1 -1
- package/vitest.config.ts +43 -1
- package/dist/access/engine.test.d.ts +0 -2
- package/dist/access/engine.test.d.ts.map +0 -1
- package/dist/access/engine.test.js.map +0 -1
|
@@ -1,40 +1,6 @@
|
|
|
1
1
|
import { checkAccess, filterWritableFields, getRelatedListConfig } from '../access/index.js';
|
|
2
|
-
import { executeResolveInput, executeValidate, validateFieldRules, ValidationError, } from '../hooks/index.js';
|
|
2
|
+
import { executeResolveInput, executeValidate, executeFieldResolveInputHooks, validateFieldRules, ValidationError, } from '../hooks/index.js';
|
|
3
3
|
import { getDbKey } from '../lib/case-utils.js';
|
|
4
|
-
/**
|
|
5
|
-
* Execute field-level resolveInput hooks
|
|
6
|
-
* Allows fields to transform their input values before database write
|
|
7
|
-
*/
|
|
8
|
-
async function executeFieldResolveInputHooks(
|
|
9
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10
|
-
inputData,
|
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
|
-
resolvedData, fields, operation, context, listKey,
|
|
13
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
-
item) {
|
|
15
|
-
let result = { ...resolvedData };
|
|
16
|
-
for (const [fieldKey, fieldConfig] of Object.entries(fields)) {
|
|
17
|
-
// Skip if field not in data
|
|
18
|
-
if (!(fieldKey in result))
|
|
19
|
-
continue;
|
|
20
|
-
// Skip if no hooks defined
|
|
21
|
-
if (!fieldConfig.hooks?.resolveInput)
|
|
22
|
-
continue;
|
|
23
|
-
// Execute field hook
|
|
24
|
-
const transformedValue = await fieldConfig.hooks.resolveInput({
|
|
25
|
-
listKey,
|
|
26
|
-
fieldKey,
|
|
27
|
-
operation,
|
|
28
|
-
inputData,
|
|
29
|
-
item,
|
|
30
|
-
resolvedData: { ...result }, // Pass a copy to avoid mutation affecting recorded args
|
|
31
|
-
context,
|
|
32
|
-
});
|
|
33
|
-
// Create new object with updated field to avoid mutating the passed reference
|
|
34
|
-
result = { ...result, [fieldKey]: transformedValue };
|
|
35
|
-
}
|
|
36
|
-
return result;
|
|
37
|
-
}
|
|
38
4
|
/**
|
|
39
5
|
* Check if a field config is a relationship field
|
|
40
6
|
*/
|
|
@@ -271,6 +237,69 @@ relatedListConfig, context, config, prisma) {
|
|
|
271
237
|
}));
|
|
272
238
|
return Array.isArray(operations) ? processedOps : processedOps[0];
|
|
273
239
|
}
|
|
240
|
+
/**
|
|
241
|
+
* Registry of nested-operation handlers keyed by nested-op kind.
|
|
242
|
+
*
|
|
243
|
+
* The dispatch loop in {@link processNestedOperations} looks handlers up here
|
|
244
|
+
* instead of branching on each kind. Kinds that require hooks/access control
|
|
245
|
+
* (`create`, `connect`, `connectOrCreate`, `update`) provide an `execute` that
|
|
246
|
+
* applies them; pass-through kinds (`disconnect`, `delete`, `deleteMany`,
|
|
247
|
+
* `set`, `updateMany`) return their value unchanged so Prisma's own
|
|
248
|
+
* constraints apply.
|
|
249
|
+
*/
|
|
250
|
+
const nestedOpRegistry = {
|
|
251
|
+
create: {
|
|
252
|
+
execute: ({ value, relatedListConfig, context, config }) => processNestedCreate(value, relatedListConfig, context, config),
|
|
253
|
+
},
|
|
254
|
+
connect: {
|
|
255
|
+
execute: ({ value, relatedListName, relatedListConfig, context, prisma }) => processNestedConnect(value, relatedListName, relatedListConfig, context, prisma),
|
|
256
|
+
},
|
|
257
|
+
connectOrCreate: {
|
|
258
|
+
execute: ({ value, relatedListName, relatedListConfig, context, config, prisma }) => processNestedConnectOrCreate(value, relatedListName, relatedListConfig, context, config, prisma),
|
|
259
|
+
},
|
|
260
|
+
update: {
|
|
261
|
+
execute: ({ value, relatedListName, relatedListConfig, context, config, prisma }) => processNestedUpdate(value, relatedListName, relatedListConfig, context, config, prisma),
|
|
262
|
+
},
|
|
263
|
+
// Pass-through kinds: no hooks/access control, left to Prisma's own constraints.
|
|
264
|
+
disconnect: { execute: ({ value }) => Promise.resolve(value) },
|
|
265
|
+
delete: { execute: ({ value }) => Promise.resolve(value) },
|
|
266
|
+
deleteMany: { execute: ({ value }) => Promise.resolve(value) },
|
|
267
|
+
set: { execute: ({ value }) => Promise.resolve(value) },
|
|
268
|
+
updateMany: { execute: ({ value }) => Promise.resolve(value) },
|
|
269
|
+
};
|
|
270
|
+
/**
|
|
271
|
+
* Order in which nested-op kinds are processed for a single relationship field.
|
|
272
|
+
*
|
|
273
|
+
* Mirrors the historical in-place dispatch order so behaviour is preserved.
|
|
274
|
+
*/
|
|
275
|
+
const nestedOpOrder = [
|
|
276
|
+
'create',
|
|
277
|
+
'connect',
|
|
278
|
+
'connectOrCreate',
|
|
279
|
+
'update',
|
|
280
|
+
'disconnect',
|
|
281
|
+
'delete',
|
|
282
|
+
'deleteMany',
|
|
283
|
+
'set',
|
|
284
|
+
'updateMany',
|
|
285
|
+
];
|
|
286
|
+
/**
|
|
287
|
+
* Process the nested relationship operations supplied for a single
|
|
288
|
+
* relationship field's value, dispatching each present nested-op kind through
|
|
289
|
+
* the {@link nestedOpRegistry}.
|
|
290
|
+
*/
|
|
291
|
+
async function processFieldNestedOps(valueRecord, args) {
|
|
292
|
+
const nestedOp = {};
|
|
293
|
+
for (const kind of nestedOpOrder) {
|
|
294
|
+
const value = valueRecord[kind];
|
|
295
|
+
if (value === undefined) {
|
|
296
|
+
continue;
|
|
297
|
+
}
|
|
298
|
+
const handler = nestedOpRegistry[kind];
|
|
299
|
+
nestedOp[kind] = await handler.execute({ ...args, value });
|
|
300
|
+
}
|
|
301
|
+
return nestedOp;
|
|
302
|
+
}
|
|
274
303
|
/**
|
|
275
304
|
* Process all nested operations in a data payload
|
|
276
305
|
* Recursively handles relationship fields with nested writes
|
|
@@ -296,39 +325,14 @@ export async function processNestedOperations(data, fieldConfigs, config, contex
|
|
|
296
325
|
continue;
|
|
297
326
|
}
|
|
298
327
|
const { listName: relatedListName, listConfig: relatedListConfig } = relatedConfig;
|
|
299
|
-
//
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
}
|
|
308
|
-
if (valueRecord.connectOrCreate !== undefined) {
|
|
309
|
-
nestedOp.connectOrCreate = await processNestedConnectOrCreate(valueRecord.connectOrCreate, relatedListName, relatedListConfig, context, config, context.prisma);
|
|
310
|
-
}
|
|
311
|
-
if (valueRecord.update !== undefined) {
|
|
312
|
-
nestedOp.update = await processNestedUpdate(valueRecord.update, relatedListName, relatedListConfig, context, config, context.prisma);
|
|
313
|
-
}
|
|
314
|
-
// For other operations, pass through (disconnect, delete, set, etc.)
|
|
315
|
-
// These will be subject to Prisma's own constraints
|
|
316
|
-
if (valueRecord.disconnect !== undefined) {
|
|
317
|
-
nestedOp.disconnect = valueRecord.disconnect;
|
|
318
|
-
}
|
|
319
|
-
if (valueRecord.delete !== undefined) {
|
|
320
|
-
nestedOp.delete = valueRecord.delete;
|
|
321
|
-
}
|
|
322
|
-
if (valueRecord.deleteMany !== undefined) {
|
|
323
|
-
nestedOp.deleteMany = valueRecord.deleteMany;
|
|
324
|
-
}
|
|
325
|
-
if (valueRecord.set !== undefined) {
|
|
326
|
-
nestedOp.set = valueRecord.set;
|
|
327
|
-
}
|
|
328
|
-
if (valueRecord.updateMany !== undefined) {
|
|
329
|
-
nestedOp.updateMany = valueRecord.updateMany;
|
|
330
|
-
}
|
|
331
|
-
processed[fieldName] = nestedOp;
|
|
328
|
+
// Dispatch each present nested-op kind through the handler registry.
|
|
329
|
+
processed[fieldName] = await processFieldNestedOps(value, {
|
|
330
|
+
relatedListName,
|
|
331
|
+
relatedListConfig,
|
|
332
|
+
context,
|
|
333
|
+
config,
|
|
334
|
+
prisma: context.prisma,
|
|
335
|
+
});
|
|
332
336
|
}
|
|
333
337
|
return processed;
|
|
334
338
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested-operations.js","sourceRoot":"","sources":["../../src/context/nested-operations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nested-operations.js","sourceRoot":"","sources":["../../src/context/nested-operations.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import type { OpenSaasConfig, ListConfig } from '../config/types.js';
|
|
2
|
+
import type { AccessContext, PrismaClientLike } from '../access/types.js';
|
|
3
|
+
/**
|
|
4
|
+
* Write Pipeline — the single module that runs the canonical, secured write
|
|
5
|
+
* sequence for one create/update/delete. It owns the phase order in one place;
|
|
6
|
+
* the per-operation differences (target resolution + access, which input phases
|
|
7
|
+
* run, the DB verb and returned row) are supplied by a {@link WriteStrategy}.
|
|
8
|
+
*
|
|
9
|
+
* The phase order is the framework's single most important invariant. See the
|
|
10
|
+
* "Write Pipeline" glossary term in CONTEXT.md and the hooks ordering in
|
|
11
|
+
* CLAUDE.md. Reads (findUnique/findMany) and the two-phase read model
|
|
12
|
+
* (ADR-0001) are intentionally out of scope here.
|
|
13
|
+
*/
|
|
14
|
+
/**
|
|
15
|
+
* The write operations the pipeline can run.
|
|
16
|
+
*/
|
|
17
|
+
export type WriteOperation = 'create' | 'update' | 'delete';
|
|
18
|
+
/**
|
|
19
|
+
* Result of resolving a write target (axis 1).
|
|
20
|
+
*
|
|
21
|
+
* - `{ status: 'ok', originalItem }` — proceed. `originalItem` is the existing
|
|
22
|
+
* row for update/delete, or `undefined` for create.
|
|
23
|
+
* - `{ status: 'denied' }` — access denied, missing target, or filter
|
|
24
|
+
* non-match. The pipeline short-circuits to `null` (silent failure) BEFORE
|
|
25
|
+
* any input phases, before-hooks, or the DB call.
|
|
26
|
+
*/
|
|
27
|
+
export type TargetResolution = {
|
|
28
|
+
status: 'ok';
|
|
29
|
+
originalItem: Record<string, unknown> | undefined;
|
|
30
|
+
} | {
|
|
31
|
+
status: 'denied';
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Minimal dynamic Prisma model surface used by the write pipeline. Model names
|
|
35
|
+
* are generated at runtime, so the concrete client type is not known here.
|
|
36
|
+
*/
|
|
37
|
+
export interface PrismaModel {
|
|
38
|
+
findUnique: (args: {
|
|
39
|
+
where: Record<string, unknown>;
|
|
40
|
+
}) => Promise<Record<string, unknown> | null>;
|
|
41
|
+
findFirst: (args: {
|
|
42
|
+
where: Record<string, unknown>;
|
|
43
|
+
}) => Promise<Record<string, unknown> | null>;
|
|
44
|
+
count: () => Promise<number>;
|
|
45
|
+
create: (args: {
|
|
46
|
+
data: Record<string, unknown>;
|
|
47
|
+
}) => Promise<Record<string, unknown>>;
|
|
48
|
+
update: (args: {
|
|
49
|
+
where: Record<string, unknown>;
|
|
50
|
+
data: Record<string, unknown>;
|
|
51
|
+
}) => Promise<Record<string, unknown>>;
|
|
52
|
+
delete: (args: {
|
|
53
|
+
where: Record<string, unknown>;
|
|
54
|
+
}) => Promise<Record<string, unknown>>;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* Per-operation strategy. Supplies the three axes on which create/update/delete
|
|
58
|
+
* genuinely differ; the pipeline owns the shared phase order around them.
|
|
59
|
+
*
|
|
60
|
+
* 1. `resolveTarget` — fetch the target row (if any) + operation-level access.
|
|
61
|
+
* 2. `runInputPhases` — whether the resolveInput → validate-hooks → field
|
|
62
|
+
* rules → filter-writable → nested-ops span runs (create & update: yes;
|
|
63
|
+
* delete: no).
|
|
64
|
+
* 3. `persist` — the DB verb; returns the row passed through Field Visibility.
|
|
65
|
+
*/
|
|
66
|
+
export interface WriteStrategy {
|
|
67
|
+
operation: WriteOperation;
|
|
68
|
+
/**
|
|
69
|
+
* Axis 1: resolve the target row and check operation-level access. Receives
|
|
70
|
+
* the dynamically-resolved Prisma model so it can fetch rows and perform
|
|
71
|
+
* filter re-checks. Implementations must honour `context._isSudo`.
|
|
72
|
+
*/
|
|
73
|
+
resolveTarget(model: PrismaModel): Promise<TargetResolution>;
|
|
74
|
+
/**
|
|
75
|
+
* Axis 2: whether to run the input-shaping phases (resolveInput → validate
|
|
76
|
+
* hooks → built-in field rules → filter-writable → nested ops). Delete runs
|
|
77
|
+
* only its `validate`/field-validate hooks and skips the rest.
|
|
78
|
+
*/
|
|
79
|
+
runInputPhases: boolean;
|
|
80
|
+
/**
|
|
81
|
+
* Axis 3: execute the database write and return the persisted/deleted row.
|
|
82
|
+
* `data` is the fully-resolved write payload (empty object for delete).
|
|
83
|
+
*/
|
|
84
|
+
persist(model: PrismaModel, data: Record<string, unknown>): Promise<Record<string, unknown>>;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Arguments shared by every write pipeline run.
|
|
88
|
+
*/
|
|
89
|
+
export interface WritePipelineArgs<TPrisma extends PrismaClientLike> {
|
|
90
|
+
listName: string;
|
|
91
|
+
listConfig: ListConfig<any>;
|
|
92
|
+
prisma: TPrisma;
|
|
93
|
+
context: AccessContext<TPrisma>;
|
|
94
|
+
config: OpenSaasConfig;
|
|
95
|
+
/** The original input data for the write (create/update). `undefined` for delete. */
|
|
96
|
+
inputData: Record<string, unknown> | undefined;
|
|
97
|
+
/** The per-operation strategy supplying the three variation axes. */
|
|
98
|
+
strategy: WriteStrategy;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Run the canonical secured write sequence once.
|
|
102
|
+
*
|
|
103
|
+
* Phase order (owned here, in one place):
|
|
104
|
+
* resolve target + operation-level access
|
|
105
|
+
* → list/field `resolveInput`
|
|
106
|
+
* → list/field `validate`
|
|
107
|
+
* → built-in field rules (`validateFieldRules`)
|
|
108
|
+
* → filter writable fields
|
|
109
|
+
* → nested operations
|
|
110
|
+
* → list/field `beforeOperation`
|
|
111
|
+
* → DB
|
|
112
|
+
* → list/field `afterOperation`
|
|
113
|
+
* → `filterReadableFields` (Field Visibility)
|
|
114
|
+
*
|
|
115
|
+
* Contract preserved exactly:
|
|
116
|
+
* - missing target / access denied / filter non-match → `null` (silent),
|
|
117
|
+
* BEFORE the DB call and BEFORE `beforeOperation`.
|
|
118
|
+
* - validation failure → THROW `ValidationError` (never silent).
|
|
119
|
+
* - sudo mode skips access checks and writable-field filtering (the strategy
|
|
120
|
+
* and `filterWritableFields` both honour `context._isSudo`).
|
|
121
|
+
* - `afterOperation` receives `originalItem` for update/delete (undefined for
|
|
122
|
+
* create).
|
|
123
|
+
* - delete returns the deleted row as-is (no Field Visibility pass), matching
|
|
124
|
+
* current behaviour.
|
|
125
|
+
*/
|
|
126
|
+
export declare function runWritePipeline<TPrisma extends PrismaClientLike>(args: WritePipelineArgs<TPrisma>): Promise<Record<string, unknown> | null>;
|
|
127
|
+
/**
|
|
128
|
+
* Create strategy.
|
|
129
|
+
*
|
|
130
|
+
* Axis 1: checks `create` access with NO existing row. Enforces the
|
|
131
|
+
* singleton-create constraint even under sudo. On create, an access result of
|
|
132
|
+
* `true` OR a filter object both proceed — there is no filter re-check.
|
|
133
|
+
* Axis 2: runs all input phases.
|
|
134
|
+
* Axis 3: `model.create({ data })`, prepending `id: 1` for singleton lists.
|
|
135
|
+
*/
|
|
136
|
+
export declare function createWriteStrategy(listName: string, listConfig: ListConfig<any>, context: AccessContext): WriteStrategy;
|
|
137
|
+
/**
|
|
138
|
+
* Update strategy.
|
|
139
|
+
*
|
|
140
|
+
* Axis 1: fetch row, check `update` access, re-check filter results.
|
|
141
|
+
* Axis 2: runs all input phases.
|
|
142
|
+
* Axis 3: `model.update({ where, data })`; afterOperation gets `originalItem`.
|
|
143
|
+
*/
|
|
144
|
+
export declare function updateWriteStrategy(listConfig: ListConfig<any>, context: AccessContext, where: {
|
|
145
|
+
id: string;
|
|
146
|
+
}): WriteStrategy;
|
|
147
|
+
/**
|
|
148
|
+
* Delete strategy.
|
|
149
|
+
*
|
|
150
|
+
* Axis 1: enforce singleton constraint (even under sudo), fetch row, check
|
|
151
|
+
* `delete` access, re-check filter results.
|
|
152
|
+
* Axis 2: SKIPS input phases (runs only validate/field-validate).
|
|
153
|
+
* Axis 3: `model.delete({ where })`; afterOperation gets `originalItem`.
|
|
154
|
+
*/
|
|
155
|
+
export declare function deleteWriteStrategy(listName: string, listConfig: ListConfig<any>, context: AccessContext, where: {
|
|
156
|
+
id: string;
|
|
157
|
+
}): WriteStrategy;
|
|
158
|
+
//# sourceMappingURL=write-pipeline.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"write-pipeline.d.ts","sourceRoot":"","sources":["../../src/context/write-pipeline.ts"],"names":[],"mappings":"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"}
|