@opensaas/stack-core 0.1.6 → 0.3.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 +208 -0
- package/CLAUDE.md +46 -1
- package/dist/access/engine.d.ts +15 -8
- package/dist/access/engine.d.ts.map +1 -1
- package/dist/access/engine.js +23 -2
- package/dist/access/engine.js.map +1 -1
- package/dist/access/engine.test.d.ts +2 -0
- package/dist/access/engine.test.d.ts.map +1 -0
- package/dist/access/engine.test.js +125 -0
- package/dist/access/engine.test.js.map +1 -0
- package/dist/access/types.d.ts +40 -9
- package/dist/access/types.d.ts.map +1 -1
- package/dist/config/index.d.ts +38 -18
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +34 -14
- package/dist/config/index.js.map +1 -1
- package/dist/config/plugin-engine.d.ts.map +1 -1
- package/dist/config/plugin-engine.js +6 -0
- package/dist/config/plugin-engine.js.map +1 -1
- package/dist/config/types.d.ts +128 -21
- package/dist/config/types.d.ts.map +1 -1
- package/dist/context/index.d.ts +14 -2
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +243 -100
- package/dist/context/index.js.map +1 -1
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +9 -8
- package/dist/fields/index.js.map +1 -1
- package/dist/hooks/index.d.ts +28 -12
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +16 -0
- package/dist/hooks/index.js.map +1 -1
- package/package.json +3 -4
- package/src/access/engine.test.ts +145 -0
- package/src/access/engine.ts +35 -11
- package/src/access/types.ts +39 -8
- package/src/config/index.ts +46 -19
- package/src/config/plugin-engine.ts +7 -0
- package/src/config/types.ts +149 -18
- package/src/context/index.ts +298 -110
- package/src/fields/index.ts +8 -7
- package/src/hooks/index.ts +63 -20
- package/tests/context.test.ts +38 -6
- package/tests/field-types.test.ts +728 -0
- package/tests/password-type-distribution.test.ts +0 -1
- package/tests/password-types.test.ts +0 -1
- package/tests/plugin-engine.test.ts +1102 -0
- package/tests/sudo.test.ts +405 -0
- package/tsconfig.tsbuildinfo +1 -1
package/dist/context/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { checkAccess, mergeFilters, filterReadableFields, filterWritableFields, buildIncludeWithAccessControl, } from '../access/index.js';
|
|
2
|
-
import { executeResolveInput, executeValidateInput, executeBeforeOperation, executeAfterOperation, validateFieldRules, ValidationError, } from '../hooks/index.js';
|
|
2
|
+
import { executeResolveInput, executeValidateInput, executeBeforeOperation, executeAfterOperation, validateFieldRules, ValidationError, DatabaseError, } from '../hooks/index.js';
|
|
3
3
|
import { processNestedOperations } from './nested-operations.js';
|
|
4
4
|
import { getDbKey } from '../lib/case-utils.js';
|
|
5
5
|
/**
|
|
@@ -85,6 +85,50 @@ item, data, fields, operation, context, listKey) {
|
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Parse Prisma error and convert to user-friendly DatabaseError
|
|
90
|
+
*/
|
|
91
|
+
function parsePrismaError(error, listConfig) {
|
|
92
|
+
// Check if it's a Prisma error
|
|
93
|
+
if (error &&
|
|
94
|
+
typeof error === 'object' &&
|
|
95
|
+
'code' in error &&
|
|
96
|
+
'meta' in error &&
|
|
97
|
+
typeof error.code === 'string') {
|
|
98
|
+
const prismaError = error;
|
|
99
|
+
// Handle unique constraint violation
|
|
100
|
+
if (prismaError.code === 'P2002') {
|
|
101
|
+
const target = prismaError.meta?.target;
|
|
102
|
+
const fieldErrors = {};
|
|
103
|
+
if (target && Array.isArray(target)) {
|
|
104
|
+
// Get field names from the constraint target
|
|
105
|
+
for (const fieldName of target) {
|
|
106
|
+
// Get the field config to get a better label
|
|
107
|
+
const fieldConfig = listConfig.fields[fieldName];
|
|
108
|
+
const label = fieldName.charAt(0).toUpperCase() + fieldName.slice(1);
|
|
109
|
+
if (fieldConfig) {
|
|
110
|
+
fieldErrors[fieldName] = `This ${label.toLowerCase()} is already in use`;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
fieldErrors[fieldName] = `This value is already in use`;
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
// Create a user-friendly general message
|
|
117
|
+
const fieldLabels = target.map((f) => f.charAt(0).toUpperCase() + f.slice(1)).join(', ');
|
|
118
|
+
return new DatabaseError(`${fieldLabels} must be unique. The value you entered is already in use.`, fieldErrors, prismaError.code);
|
|
119
|
+
}
|
|
120
|
+
return new DatabaseError('A record with this value already exists', {}, prismaError.code);
|
|
121
|
+
}
|
|
122
|
+
// Handle other Prisma errors - return generic message
|
|
123
|
+
return new DatabaseError(prismaError.message || 'A database error occurred', {}, prismaError.code);
|
|
124
|
+
}
|
|
125
|
+
// Not a Prisma error, return as-is if it's already an Error
|
|
126
|
+
if (error instanceof Error) {
|
|
127
|
+
return error;
|
|
128
|
+
}
|
|
129
|
+
// Unknown error type
|
|
130
|
+
return new Error('An unknown error occurred');
|
|
131
|
+
}
|
|
88
132
|
/**
|
|
89
133
|
* Create an access-controlled context
|
|
90
134
|
*
|
|
@@ -93,7 +137,7 @@ item, data, fields, operation, context, listKey) {
|
|
|
93
137
|
* @param session - Current session object (or null if not authenticated)
|
|
94
138
|
* @param storage - Optional storage utilities (uploadFile, uploadImage, deleteFile, deleteImage)
|
|
95
139
|
*/
|
|
96
|
-
export function getContext(config, prisma, session, storage) {
|
|
140
|
+
export function getContext(config, prisma, session, storage, _isSudo = false) {
|
|
97
141
|
// Initialize db object - will be populated with access-controlled operations
|
|
98
142
|
// Type is intentionally broad to allow dynamic model access
|
|
99
143
|
const db = {};
|
|
@@ -117,6 +161,8 @@ export function getContext(config, prisma, session, storage) {
|
|
|
117
161
|
throw new Error('No storage providers configured. Add storage providers to your opensaas.config.ts');
|
|
118
162
|
},
|
|
119
163
|
},
|
|
164
|
+
plugins: {}, // Will be populated with plugin runtime services
|
|
165
|
+
_isSudo,
|
|
120
166
|
};
|
|
121
167
|
// Create access-controlled operations for each list
|
|
122
168
|
for (const [listName, listConfig] of Object.entries(config.lists)) {
|
|
@@ -130,32 +176,107 @@ export function getContext(config, prisma, session, storage) {
|
|
|
130
176
|
count: createCount(listName, listConfig, prisma, context),
|
|
131
177
|
};
|
|
132
178
|
}
|
|
179
|
+
// Execute plugin runtime functions and populate context.plugins
|
|
180
|
+
// Use _plugins (sorted by dependencies) if available, otherwise fall back to plugins array
|
|
181
|
+
const pluginsToExecute = config._plugins || config.plugins || [];
|
|
182
|
+
for (const plugin of pluginsToExecute) {
|
|
183
|
+
if (plugin.runtime) {
|
|
184
|
+
try {
|
|
185
|
+
context.plugins[plugin.name] = plugin.runtime(context);
|
|
186
|
+
}
|
|
187
|
+
catch (error) {
|
|
188
|
+
console.error(`Error executing runtime for plugin "${plugin.name}":`, error);
|
|
189
|
+
// Continue with other plugins even if one fails
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
133
193
|
// Generic server action handler with discriminated union for type safety
|
|
194
|
+
// Returns a result object instead of throwing to work properly in Next.js production
|
|
134
195
|
async function serverAction(props) {
|
|
135
196
|
const dbKey = getDbKey(props.listKey);
|
|
136
|
-
const
|
|
137
|
-
if (
|
|
138
|
-
return
|
|
197
|
+
const listConfig = config.lists[props.listKey];
|
|
198
|
+
if (!listConfig) {
|
|
199
|
+
return {
|
|
200
|
+
success: false,
|
|
201
|
+
error: `List "${props.listKey}" not found in configuration`,
|
|
202
|
+
};
|
|
139
203
|
}
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
204
|
+
const model = db[dbKey];
|
|
205
|
+
try {
|
|
206
|
+
let result = null;
|
|
207
|
+
if (props.action === 'create') {
|
|
208
|
+
result = await model.create({ data: props.data });
|
|
209
|
+
}
|
|
210
|
+
else if (props.action === 'update') {
|
|
211
|
+
result = await model.update({
|
|
212
|
+
where: { id: props.id },
|
|
213
|
+
data: props.data,
|
|
214
|
+
});
|
|
215
|
+
}
|
|
216
|
+
else if (props.action === 'delete') {
|
|
217
|
+
result = await model.delete({
|
|
218
|
+
where: { id: props.id },
|
|
219
|
+
});
|
|
220
|
+
}
|
|
221
|
+
// Check for access denial (null return from access-controlled operations)
|
|
222
|
+
if (result === null) {
|
|
223
|
+
return {
|
|
224
|
+
success: false,
|
|
225
|
+
error: 'Access denied or operation failed',
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
return {
|
|
229
|
+
success: true,
|
|
230
|
+
data: result,
|
|
231
|
+
};
|
|
145
232
|
}
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
233
|
+
catch (error) {
|
|
234
|
+
// Handle ValidationError (has fieldErrors)
|
|
235
|
+
if (error instanceof ValidationError) {
|
|
236
|
+
return {
|
|
237
|
+
success: false,
|
|
238
|
+
error: error.message,
|
|
239
|
+
fieldErrors: error.fieldErrors,
|
|
240
|
+
};
|
|
241
|
+
}
|
|
242
|
+
// Handle DatabaseError (has fieldErrors)
|
|
243
|
+
if (error instanceof DatabaseError) {
|
|
244
|
+
return {
|
|
245
|
+
success: false,
|
|
246
|
+
error: error.message,
|
|
247
|
+
fieldErrors: error.fieldErrors,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
// Parse and convert Prisma errors to user-friendly DatabaseError
|
|
251
|
+
const dbError = parsePrismaError(error, listConfig);
|
|
252
|
+
if (dbError instanceof DatabaseError) {
|
|
253
|
+
return {
|
|
254
|
+
success: false,
|
|
255
|
+
error: dbError.message,
|
|
256
|
+
fieldErrors: dbError.fieldErrors,
|
|
257
|
+
};
|
|
258
|
+
}
|
|
259
|
+
// Generic error fallback
|
|
260
|
+
return {
|
|
261
|
+
success: false,
|
|
262
|
+
error: dbError.message,
|
|
263
|
+
};
|
|
150
264
|
}
|
|
151
|
-
|
|
265
|
+
}
|
|
266
|
+
// Sudo function - creates a new context that bypasses access control
|
|
267
|
+
// but still executes all hooks and validation
|
|
268
|
+
function sudo() {
|
|
269
|
+
return getContext(config, prisma, session, context.storage, true);
|
|
152
270
|
}
|
|
153
271
|
return {
|
|
154
272
|
db: db,
|
|
155
273
|
session,
|
|
156
274
|
prisma,
|
|
157
275
|
storage: context.storage,
|
|
276
|
+
plugins: context.plugins,
|
|
158
277
|
serverAction,
|
|
278
|
+
sudo,
|
|
279
|
+
_isSudo,
|
|
159
280
|
};
|
|
160
281
|
}
|
|
161
282
|
/**
|
|
@@ -163,19 +284,23 @@ export function getContext(config, prisma, session, storage) {
|
|
|
163
284
|
*/
|
|
164
285
|
function createFindUnique(listName, listConfig, prisma, context, config) {
|
|
165
286
|
return async (args) => {
|
|
166
|
-
// Check query access
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
287
|
+
// Check query access (skip if sudo mode)
|
|
288
|
+
let where = args.where;
|
|
289
|
+
if (!context._isSudo) {
|
|
290
|
+
const queryAccess = listConfig.access?.operation?.query;
|
|
291
|
+
const accessResult = await checkAccess(queryAccess, {
|
|
292
|
+
session: context.session,
|
|
293
|
+
context,
|
|
294
|
+
});
|
|
295
|
+
if (accessResult === false) {
|
|
296
|
+
return null;
|
|
297
|
+
}
|
|
298
|
+
// Merge access filter with where clause
|
|
299
|
+
const mergedWhere = mergeFilters(args.where, accessResult);
|
|
300
|
+
if (mergedWhere === null) {
|
|
301
|
+
return null;
|
|
302
|
+
}
|
|
303
|
+
where = mergedWhere;
|
|
179
304
|
}
|
|
180
305
|
// Build include with access control filters
|
|
181
306
|
const accessControlledInclude = await buildIncludeWithAccessControl(listConfig.fields, {
|
|
@@ -196,9 +321,10 @@ function createFindUnique(listName, listConfig, prisma, context, config) {
|
|
|
196
321
|
return null;
|
|
197
322
|
}
|
|
198
323
|
// Filter readable fields and apply resolveOutput hooks (including nested relationships)
|
|
324
|
+
// Pass sudo flag through context to skip field-level access checks
|
|
199
325
|
const filtered = await filterReadableFields(item, listConfig.fields, {
|
|
200
326
|
session: context.session,
|
|
201
|
-
context,
|
|
327
|
+
context: { ...context, _isSudo: context._isSudo },
|
|
202
328
|
}, config, 0, listName);
|
|
203
329
|
// Execute field afterOperation hooks (side effects only)
|
|
204
330
|
await executeFieldAfterOperationHooks(filtered, undefined, listConfig.fields, 'query', context, listName);
|
|
@@ -210,19 +336,23 @@ function createFindUnique(listName, listConfig, prisma, context, config) {
|
|
|
210
336
|
*/
|
|
211
337
|
function createFindMany(listName, listConfig, prisma, context, config) {
|
|
212
338
|
return async (args) => {
|
|
213
|
-
// Check query access
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
339
|
+
// Check query access (skip if sudo mode)
|
|
340
|
+
let where = args?.where;
|
|
341
|
+
if (!context._isSudo) {
|
|
342
|
+
const queryAccess = listConfig.access?.operation?.query;
|
|
343
|
+
const accessResult = await checkAccess(queryAccess, {
|
|
344
|
+
session: context.session,
|
|
345
|
+
context,
|
|
346
|
+
});
|
|
347
|
+
if (accessResult === false) {
|
|
348
|
+
return [];
|
|
349
|
+
}
|
|
350
|
+
// Merge access filter with where clause
|
|
351
|
+
const mergedWhere = mergeFilters(args?.where, accessResult);
|
|
352
|
+
if (mergedWhere === null) {
|
|
353
|
+
return [];
|
|
354
|
+
}
|
|
355
|
+
where = mergedWhere;
|
|
226
356
|
}
|
|
227
357
|
// Build include with access control filters
|
|
228
358
|
const accessControlledInclude = await buildIncludeWithAccessControl(listConfig.fields, {
|
|
@@ -242,9 +372,10 @@ function createFindMany(listName, listConfig, prisma, context, config) {
|
|
|
242
372
|
include,
|
|
243
373
|
});
|
|
244
374
|
// Filter readable fields for each item and apply resolveOutput hooks (including nested relationships)
|
|
375
|
+
// Pass sudo flag through context to skip field-level access checks
|
|
245
376
|
const filtered = await Promise.all(items.map((item) => filterReadableFields(item, listConfig.fields, {
|
|
246
377
|
session: context.session,
|
|
247
|
-
context,
|
|
378
|
+
context: { ...context, _isSudo: context._isSudo },
|
|
248
379
|
}, config, 0, listName)));
|
|
249
380
|
// Execute field afterOperation hooks for each item (side effects only)
|
|
250
381
|
await Promise.all(filtered.map((item) => executeFieldAfterOperationHooks(item, undefined, listConfig.fields, 'query', context, listName)));
|
|
@@ -256,14 +387,16 @@ function createFindMany(listName, listConfig, prisma, context, config) {
|
|
|
256
387
|
*/
|
|
257
388
|
function createCreate(listName, listConfig, prisma, context, config) {
|
|
258
389
|
return async (args) => {
|
|
259
|
-
// 1. Check create access
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
390
|
+
// 1. Check create access (skip if sudo mode)
|
|
391
|
+
if (!context._isSudo) {
|
|
392
|
+
const createAccess = listConfig.access?.operation?.create;
|
|
393
|
+
const accessResult = await checkAccess(createAccess, {
|
|
394
|
+
session: context.session,
|
|
395
|
+
context,
|
|
396
|
+
});
|
|
397
|
+
if (accessResult === false) {
|
|
398
|
+
return null;
|
|
399
|
+
}
|
|
267
400
|
}
|
|
268
401
|
// 2. Execute list-level resolveInput hook
|
|
269
402
|
let resolvedData = await executeResolveInput(listConfig.hooks, {
|
|
@@ -284,10 +417,10 @@ function createCreate(listName, listConfig, prisma, context, config) {
|
|
|
284
417
|
if (validation.errors.length > 0) {
|
|
285
418
|
throw new ValidationError(validation.errors, validation.fieldErrors);
|
|
286
419
|
}
|
|
287
|
-
// 5. Filter writable fields (field-level access control)
|
|
420
|
+
// 5. Filter writable fields (field-level access control, skip if sudo mode)
|
|
288
421
|
const filteredData = await filterWritableFields(resolvedData, listConfig.fields, 'create', {
|
|
289
422
|
session: context.session,
|
|
290
|
-
context,
|
|
423
|
+
context: { ...context, _isSudo: context._isSudo },
|
|
291
424
|
});
|
|
292
425
|
// 5.5. Process nested relationship operations
|
|
293
426
|
const data = await processNestedOperations(filteredData, listConfig.fields, config, { ...context, prisma }, 'create');
|
|
@@ -314,9 +447,10 @@ function createCreate(listName, listConfig, prisma, context, config) {
|
|
|
314
447
|
// 10. Execute field-level afterOperation hooks (side effects only)
|
|
315
448
|
await executeFieldAfterOperationHooks(item, data, listConfig.fields, 'create', context, listName);
|
|
316
449
|
// 11. Filter readable fields and apply resolveOutput hooks (including nested relationships)
|
|
450
|
+
// Pass sudo flag through context to skip field-level access checks
|
|
317
451
|
const filtered = await filterReadableFields(item, listConfig.fields, {
|
|
318
452
|
session: context.session,
|
|
319
|
-
context,
|
|
453
|
+
context: { ...context, _isSudo: context._isSudo },
|
|
320
454
|
}, config, 0, listName);
|
|
321
455
|
return filtered;
|
|
322
456
|
};
|
|
@@ -336,24 +470,26 @@ function createUpdate(listName, listConfig, prisma, context, config) {
|
|
|
336
470
|
if (!item) {
|
|
337
471
|
return null;
|
|
338
472
|
}
|
|
339
|
-
// 2. Check update access
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
if (accessResult === false) {
|
|
347
|
-
return null;
|
|
348
|
-
}
|
|
349
|
-
// If access returns a filter, check if item matches
|
|
350
|
-
if (typeof accessResult === 'object') {
|
|
351
|
-
const matchesFilter = await model.findFirst({
|
|
352
|
-
where: mergeFilters(args.where, accessResult),
|
|
473
|
+
// 2. Check update access (skip if sudo mode)
|
|
474
|
+
if (!context._isSudo) {
|
|
475
|
+
const updateAccess = listConfig.access?.operation?.update;
|
|
476
|
+
const accessResult = await checkAccess(updateAccess, {
|
|
477
|
+
session: context.session,
|
|
478
|
+
item,
|
|
479
|
+
context,
|
|
353
480
|
});
|
|
354
|
-
if (
|
|
481
|
+
if (accessResult === false) {
|
|
355
482
|
return null;
|
|
356
483
|
}
|
|
484
|
+
// If access returns a filter, check if item matches
|
|
485
|
+
if (typeof accessResult === 'object') {
|
|
486
|
+
const matchesFilter = await model.findFirst({
|
|
487
|
+
where: mergeFilters(args.where, accessResult),
|
|
488
|
+
});
|
|
489
|
+
if (!matchesFilter) {
|
|
490
|
+
return null;
|
|
491
|
+
}
|
|
492
|
+
}
|
|
357
493
|
}
|
|
358
494
|
// 3. Execute list-level resolveInput hook
|
|
359
495
|
let resolvedData = await executeResolveInput(listConfig.hooks, {
|
|
@@ -376,11 +512,11 @@ function createUpdate(listName, listConfig, prisma, context, config) {
|
|
|
376
512
|
if (validation.errors.length > 0) {
|
|
377
513
|
throw new ValidationError(validation.errors, validation.fieldErrors);
|
|
378
514
|
}
|
|
379
|
-
// 6. Filter writable fields (field-level access control)
|
|
515
|
+
// 6. Filter writable fields (field-level access control, skip if sudo mode)
|
|
380
516
|
const filteredData = await filterWritableFields(resolvedData, listConfig.fields, 'update', {
|
|
381
517
|
session: context.session,
|
|
382
518
|
item,
|
|
383
|
-
context,
|
|
519
|
+
context: { ...context, _isSudo: context._isSudo },
|
|
384
520
|
});
|
|
385
521
|
// 6.5. Process nested relationship operations
|
|
386
522
|
const data = await processNestedOperations(filteredData, listConfig.fields, config, { ...context, prisma }, 'update');
|
|
@@ -406,9 +542,10 @@ function createUpdate(listName, listConfig, prisma, context, config) {
|
|
|
406
542
|
// 11. Execute field-level afterOperation hooks (side effects only)
|
|
407
543
|
await executeFieldAfterOperationHooks(updated, data, listConfig.fields, 'update', context, listName);
|
|
408
544
|
// 12. Filter readable fields and apply resolveOutput hooks (including nested relationships)
|
|
545
|
+
// Pass sudo flag through context to skip field-level access checks
|
|
409
546
|
const filtered = await filterReadableFields(updated, listConfig.fields, {
|
|
410
547
|
session: context.session,
|
|
411
|
-
context,
|
|
548
|
+
context: { ...context, _isSudo: context._isSudo },
|
|
412
549
|
}, config, 0, listName);
|
|
413
550
|
return filtered;
|
|
414
551
|
};
|
|
@@ -428,24 +565,26 @@ function createDelete(listName, listConfig, prisma, context) {
|
|
|
428
565
|
if (!item) {
|
|
429
566
|
return null;
|
|
430
567
|
}
|
|
431
|
-
// 2. Check delete access
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
if (accessResult === false) {
|
|
439
|
-
return null;
|
|
440
|
-
}
|
|
441
|
-
// If access returns a filter, check if item matches
|
|
442
|
-
if (typeof accessResult === 'object') {
|
|
443
|
-
const matchesFilter = await model.findFirst({
|
|
444
|
-
where: mergeFilters(args.where, accessResult),
|
|
568
|
+
// 2. Check delete access (skip if sudo mode)
|
|
569
|
+
if (!context._isSudo) {
|
|
570
|
+
const deleteAccess = listConfig.access?.operation?.delete;
|
|
571
|
+
const accessResult = await checkAccess(deleteAccess, {
|
|
572
|
+
session: context.session,
|
|
573
|
+
item,
|
|
574
|
+
context,
|
|
445
575
|
});
|
|
446
|
-
if (
|
|
576
|
+
if (accessResult === false) {
|
|
447
577
|
return null;
|
|
448
578
|
}
|
|
579
|
+
// If access returns a filter, check if item matches
|
|
580
|
+
if (typeof accessResult === 'object') {
|
|
581
|
+
const matchesFilter = await model.findFirst({
|
|
582
|
+
where: mergeFilters(args.where, accessResult),
|
|
583
|
+
});
|
|
584
|
+
if (!matchesFilter) {
|
|
585
|
+
return null;
|
|
586
|
+
}
|
|
587
|
+
}
|
|
449
588
|
}
|
|
450
589
|
// 3. Execute field-level beforeOperation hooks (side effects only)
|
|
451
590
|
await executeFieldBeforeOperationHooks({}, listConfig.fields, 'delete', context, listName, item);
|
|
@@ -475,19 +614,23 @@ function createDelete(listName, listConfig, prisma, context) {
|
|
|
475
614
|
*/
|
|
476
615
|
function createCount(listName, listConfig, prisma, context) {
|
|
477
616
|
return async (args) => {
|
|
478
|
-
// Check query access
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
617
|
+
// Check query access (skip if sudo mode)
|
|
618
|
+
let where = args?.where;
|
|
619
|
+
if (!context._isSudo) {
|
|
620
|
+
const queryAccess = listConfig.access?.operation?.query;
|
|
621
|
+
const accessResult = await checkAccess(queryAccess, {
|
|
622
|
+
session: context.session,
|
|
623
|
+
context,
|
|
624
|
+
});
|
|
625
|
+
if (accessResult === false) {
|
|
626
|
+
return 0;
|
|
627
|
+
}
|
|
628
|
+
// Merge access filter with where clause
|
|
629
|
+
const mergedWhere = mergeFilters(args?.where, accessResult);
|
|
630
|
+
if (mergedWhere === null) {
|
|
631
|
+
return 0;
|
|
632
|
+
}
|
|
633
|
+
where = mergedWhere;
|
|
491
634
|
}
|
|
492
635
|
// Execute count
|
|
493
636
|
// Access Prisma model dynamically - required because model names are generated at runtime
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/context/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,SAAS,EACV,MAAM,oBAAoB,CAAA;AAa3B;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,SAAS,CAqEjE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,YAAY,CA4C1E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,aAAa,CA2B7E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,cAAc,CAsChF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,SAAS,EACV,MAAM,oBAAoB,CAAA;AAa3B;;GAEG;AACH,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,SAAS,CAqEjE;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,YAAY,CA4C1E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,aAAa,CA2B7E;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,GAAG,cAAc,CAsChF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,aAAa,CAiG7E;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,WAAW,CA2CtE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAiBxF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,SAAS,CAuCjE"}
|
package/dist/fields/index.js
CHANGED
|
@@ -39,7 +39,7 @@ export function text(options) {
|
|
|
39
39
|
if (isRequired && operation === 'update') {
|
|
40
40
|
return z.union([withMax, z.undefined()]);
|
|
41
41
|
}
|
|
42
|
-
return !isRequired ? withMax.optional() : withMax;
|
|
42
|
+
return !isRequired ? withMax.optional().nullable() : withMax;
|
|
43
43
|
},
|
|
44
44
|
getPrismaType: () => {
|
|
45
45
|
const validation = options?.validation;
|
|
@@ -93,7 +93,7 @@ export function integer(options) {
|
|
|
93
93
|
})
|
|
94
94
|
: withMin;
|
|
95
95
|
return !options?.validation?.isRequired || operation === 'update'
|
|
96
|
-
? withMax.optional()
|
|
96
|
+
? withMax.optional().nullable()
|
|
97
97
|
: withMax;
|
|
98
98
|
},
|
|
99
99
|
getPrismaType: () => {
|
|
@@ -120,7 +120,7 @@ export function checkbox(options) {
|
|
|
120
120
|
type: 'checkbox',
|
|
121
121
|
...options,
|
|
122
122
|
getZodSchema: () => {
|
|
123
|
-
return z.boolean().optional();
|
|
123
|
+
return z.boolean().optional().nullable();
|
|
124
124
|
},
|
|
125
125
|
getPrismaType: () => {
|
|
126
126
|
const hasDefault = options?.defaultValue !== undefined;
|
|
@@ -149,7 +149,7 @@ export function timestamp(options) {
|
|
|
149
149
|
type: 'timestamp',
|
|
150
150
|
...options,
|
|
151
151
|
getZodSchema: () => {
|
|
152
|
-
return z.union([z.date(), z.iso.datetime()]).optional();
|
|
152
|
+
return z.union([z.date(), z.iso.datetime()]).optional().nullable();
|
|
153
153
|
},
|
|
154
154
|
getPrismaType: () => {
|
|
155
155
|
let modifiers = '?';
|
|
@@ -301,7 +301,8 @@ export function password(options) {
|
|
|
301
301
|
.string({
|
|
302
302
|
message: `${formatFieldName(fieldName)} must be text`,
|
|
303
303
|
})
|
|
304
|
-
.optional()
|
|
304
|
+
.optional()
|
|
305
|
+
.nullable();
|
|
305
306
|
}
|
|
306
307
|
},
|
|
307
308
|
getPrismaType: () => {
|
|
@@ -336,7 +337,7 @@ export function select(options) {
|
|
|
336
337
|
message: `${formatFieldName(fieldName)} must be one of: ${values.join(', ')}`,
|
|
337
338
|
});
|
|
338
339
|
if (!options.validation?.isRequired || operation === 'update') {
|
|
339
|
-
schema = schema.optional();
|
|
340
|
+
schema = schema.optional().nullable();
|
|
340
341
|
}
|
|
341
342
|
return schema;
|
|
342
343
|
},
|
|
@@ -439,8 +440,8 @@ export function json(options) {
|
|
|
439
440
|
return z.union([baseSchema, z.undefined()]);
|
|
440
441
|
}
|
|
441
442
|
else {
|
|
442
|
-
// Not required: can be undefined
|
|
443
|
-
return baseSchema.optional();
|
|
443
|
+
// Not required: can be undefined or null
|
|
444
|
+
return baseSchema.optional().nullable();
|
|
444
445
|
}
|
|
445
446
|
},
|
|
446
447
|
getPrismaType: () => {
|