@opensaas/stack-core 0.3.0 → 0.5.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 +152 -0
- package/dist/access/engine.d.ts +1 -1
- package/dist/access/engine.d.ts.map +1 -1
- package/dist/access/engine.js +38 -0
- package/dist/access/engine.js.map +1 -1
- package/dist/config/index.d.ts +5 -5
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +0 -1
- package/dist/config/index.js.map +1 -1
- package/dist/config/plugin-engine.d.ts.map +1 -1
- package/dist/config/plugin-engine.js +3 -0
- package/dist/config/plugin-engine.js.map +1 -1
- package/dist/config/types.d.ts +159 -73
- package/dist/config/types.d.ts.map +1 -1
- package/dist/context/index.d.ts.map +1 -1
- package/dist/context/index.js +19 -6
- package/dist/context/index.js.map +1 -1
- package/dist/context/nested-operations.d.ts.map +1 -1
- package/dist/context/nested-operations.js +88 -72
- package/dist/context/nested-operations.js.map +1 -1
- package/dist/fields/index.d.ts +65 -9
- package/dist/fields/index.d.ts.map +1 -1
- package/dist/fields/index.js +89 -8
- package/dist/fields/index.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/mcp/handler.js +1 -0
- package/dist/mcp/handler.js.map +1 -1
- package/dist/validation/schema.d.ts.map +1 -1
- package/dist/validation/schema.js +4 -2
- package/dist/validation/schema.js.map +1 -1
- package/package.json +7 -7
- package/src/access/engine.ts +48 -3
- package/src/config/index.ts +8 -13
- package/src/config/plugin-engine.ts +6 -3
- package/src/config/types.ts +208 -109
- package/src/context/index.ts +14 -7
- package/src/context/nested-operations.ts +83 -71
- package/src/fields/index.ts +124 -20
- package/src/index.ts +9 -0
- package/src/mcp/handler.ts +2 -1
- package/src/validation/schema.ts +4 -2
- package/tests/field-types.test.ts +6 -5
- package/tests/sudo.test.ts +230 -1
- package/tsconfig.tsbuildinfo +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested-operations.d.ts","sourceRoot":"","sources":["../../src/context/nested-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"nested-operations.d.ts","sourceRoot":"","sources":["../../src/context/nested-operations.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAc,WAAW,EAAE,MAAM,oBAAoB,CAAA;AACjF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAA;AA4XvD;;;GAGG;AACH,wBAAsB,uBAAuB,CAC3C,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACzC,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,aAAa,GAAG;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EAC5C,SAAS,EAAE,QAAQ,GAAG,QAAQ,EAC9B,KAAK,GAAE,MAAU,GAChB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAmGlC"}
|
|
@@ -41,17 +41,21 @@ function isRelationshipField(fieldConfig) {
|
|
|
41
41
|
* Process nested create operations
|
|
42
42
|
* Applies hooks and access control to each item being created
|
|
43
43
|
*/
|
|
44
|
-
async function processNestedCreate(items,
|
|
44
|
+
async function processNestedCreate(items,
|
|
45
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- ListConfig must accept any TypeInfo
|
|
46
|
+
relatedListConfig, context, config) {
|
|
45
47
|
const itemsArray = Array.isArray(items) ? items : [items];
|
|
46
48
|
const processedItems = await Promise.all(itemsArray.map(async (item) => {
|
|
47
|
-
// 1. Check create access
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
49
|
+
// 1. Check create access (skip if sudo mode)
|
|
50
|
+
if (!context._isSudo) {
|
|
51
|
+
const createAccess = relatedListConfig.access?.operation?.create;
|
|
52
|
+
const accessResult = await checkAccess(createAccess, {
|
|
53
|
+
session: context.session,
|
|
54
|
+
context,
|
|
55
|
+
});
|
|
56
|
+
if (accessResult === false) {
|
|
57
|
+
throw new Error('Access denied: Cannot create related item');
|
|
58
|
+
}
|
|
55
59
|
}
|
|
56
60
|
// 2. Execute list-level resolveInput hook
|
|
57
61
|
let resolvedData = await executeResolveInput(relatedListConfig.hooks, {
|
|
@@ -95,42 +99,46 @@ async function processNestedCreate(items, relatedListConfig, context, config) {
|
|
|
95
99
|
* Process nested connect operations
|
|
96
100
|
* Verifies update access to the items being connected
|
|
97
101
|
*/
|
|
98
|
-
async function processNestedConnect(connections, relatedListName,
|
|
102
|
+
async function processNestedConnect(connections, relatedListName,
|
|
103
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- ListConfig must accept any TypeInfo
|
|
104
|
+
relatedListConfig, context, prisma) {
|
|
99
105
|
const connectionsArray = Array.isArray(connections) ? connections : [connections];
|
|
100
|
-
// Check update access for each item being connected
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
if (
|
|
106
|
+
// Check update access for each item being connected (skip if sudo mode)
|
|
107
|
+
if (!context._isSudo) {
|
|
108
|
+
for (const connection of connectionsArray) {
|
|
109
|
+
// Access Prisma model dynamically - required because model names are generated at runtime
|
|
110
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
111
|
+
const model = prisma[getDbKey(relatedListName)];
|
|
112
|
+
// Fetch the item to check access
|
|
113
|
+
const item = await model.findUnique({
|
|
114
|
+
where: connection,
|
|
115
|
+
});
|
|
116
|
+
if (!item) {
|
|
117
|
+
throw new Error(`Cannot connect: Item not found`);
|
|
118
|
+
}
|
|
119
|
+
// Check update access (connecting modifies the relationship)
|
|
120
|
+
const updateAccess = relatedListConfig.access?.operation?.update;
|
|
121
|
+
const accessResult = await checkAccess(updateAccess, {
|
|
122
|
+
session: context.session,
|
|
123
|
+
item,
|
|
124
|
+
context,
|
|
125
|
+
});
|
|
126
|
+
if (accessResult === false) {
|
|
127
|
+
throw new Error('Access denied: Cannot connect to this item');
|
|
128
|
+
}
|
|
129
|
+
// If access returns a filter, check if item matches
|
|
130
|
+
if (typeof accessResult === 'object') {
|
|
131
|
+
// Simple field matching
|
|
132
|
+
for (const [key, value] of Object.entries(accessResult)) {
|
|
133
|
+
if (typeof value === 'object' && value !== null && 'equals' in value) {
|
|
134
|
+
if (item[key] !== value.equals) {
|
|
135
|
+
throw new Error('Access denied: Cannot connect to this item');
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
else if (item[key] !== value) {
|
|
128
139
|
throw new Error('Access denied: Cannot connect to this item');
|
|
129
140
|
}
|
|
130
141
|
}
|
|
131
|
-
else if (item[key] !== value) {
|
|
132
|
-
throw new Error('Access denied: Cannot connect to this item');
|
|
133
|
-
}
|
|
134
142
|
}
|
|
135
143
|
}
|
|
136
144
|
}
|
|
@@ -140,7 +148,9 @@ async function processNestedConnect(connections, relatedListName, relatedListCon
|
|
|
140
148
|
* Process nested update operations
|
|
141
149
|
* Applies hooks and access control to updates
|
|
142
150
|
*/
|
|
143
|
-
async function processNestedUpdate(updates, relatedListName,
|
|
151
|
+
async function processNestedUpdate(updates, relatedListName,
|
|
152
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- ListConfig must accept any TypeInfo
|
|
153
|
+
relatedListConfig, context, config, prisma) {
|
|
144
154
|
const updatesArray = Array.isArray(updates) ? updates : [updates];
|
|
145
155
|
const processedUpdates = await Promise.all(updatesArray.map(async (update) => {
|
|
146
156
|
// Access Prisma model dynamically - required because model names are generated at runtime
|
|
@@ -153,15 +163,17 @@ async function processNestedUpdate(updates, relatedListName, relatedListConfig,
|
|
|
153
163
|
if (!item) {
|
|
154
164
|
throw new Error('Cannot update: Item not found');
|
|
155
165
|
}
|
|
156
|
-
// Check update access
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
166
|
+
// Check update access (skip if sudo mode)
|
|
167
|
+
if (!context._isSudo) {
|
|
168
|
+
const updateAccess = relatedListConfig.access?.operation?.update;
|
|
169
|
+
const accessResult = await checkAccess(updateAccess, {
|
|
170
|
+
session: context.session,
|
|
171
|
+
item,
|
|
172
|
+
context,
|
|
173
|
+
});
|
|
174
|
+
if (accessResult === false) {
|
|
175
|
+
throw new Error('Access denied: Cannot update related item');
|
|
176
|
+
}
|
|
165
177
|
}
|
|
166
178
|
// Execute list-level resolveInput hook
|
|
167
179
|
const updateData = update.data;
|
|
@@ -203,35 +215,39 @@ async function processNestedUpdate(updates, relatedListName, relatedListConfig,
|
|
|
203
215
|
/**
|
|
204
216
|
* Process nested connectOrCreate operations
|
|
205
217
|
*/
|
|
206
|
-
async function processNestedConnectOrCreate(operations, relatedListName,
|
|
218
|
+
async function processNestedConnectOrCreate(operations, relatedListName,
|
|
219
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- ListConfig must accept any TypeInfo
|
|
220
|
+
relatedListConfig, context, config, prisma) {
|
|
207
221
|
const operationsArray = Array.isArray(operations) ? operations : [operations];
|
|
208
222
|
const processedOps = await Promise.all(operationsArray.map(async (op) => {
|
|
209
223
|
// Process the create portion through create hooks
|
|
210
224
|
const opRecord = op;
|
|
211
225
|
const processedCreate = await processNestedCreate(opRecord.create, relatedListConfig, context, config);
|
|
212
|
-
// Check access for the connect portion (try to find existing item)
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
if (existingItem) {
|
|
221
|
-
// Check update access for connection
|
|
222
|
-
const updateAccess = relatedListConfig.access?.operation?.update;
|
|
223
|
-
const accessResult = await checkAccess(updateAccess, {
|
|
224
|
-
session: context.session,
|
|
225
|
-
item: existingItem,
|
|
226
|
-
context,
|
|
226
|
+
// Check access for the connect portion (try to find existing item) (skip if sudo mode)
|
|
227
|
+
if (!context._isSudo) {
|
|
228
|
+
try {
|
|
229
|
+
// Access Prisma model dynamically - required because model names are generated at runtime
|
|
230
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
231
|
+
const model = prisma[getDbKey(relatedListName)];
|
|
232
|
+
const existingItem = await model.findUnique({
|
|
233
|
+
where: opRecord.where,
|
|
227
234
|
});
|
|
228
|
-
if (
|
|
229
|
-
|
|
235
|
+
if (existingItem) {
|
|
236
|
+
// Check update access for connection
|
|
237
|
+
const updateAccess = relatedListConfig.access?.operation?.update;
|
|
238
|
+
const accessResult = await checkAccess(updateAccess, {
|
|
239
|
+
session: context.session,
|
|
240
|
+
item: existingItem,
|
|
241
|
+
context,
|
|
242
|
+
});
|
|
243
|
+
if (accessResult === false) {
|
|
244
|
+
throw new Error('Access denied: Cannot connect to existing item');
|
|
245
|
+
}
|
|
230
246
|
}
|
|
231
247
|
}
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
248
|
+
catch {
|
|
249
|
+
// Item doesn't exist, will use create (already processed)
|
|
250
|
+
}
|
|
235
251
|
}
|
|
236
252
|
return {
|
|
237
253
|
where: op.where,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nested-operations.js","sourceRoot":"","sources":["../../src/context/nested-operations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAC5F,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,eAAe,GAChB,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AAE/C;;;GAGG;AACH,KAAK,UAAU,6BAA6B;AAC1C,8DAA8D;AAC9D,IAAyB,EACzB,MAAmC,EACnC,SAA8B,EAC9B,OAAsB,EACtB,OAAe;AACf,8DAA8D;AAC9D,IAAU;IAEV,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAA;IAE1B,KAAK,MAAM,CAAC,SAAS,EAAE,WAAW,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,4BAA4B;QAC5B,IAAI,CAAC,CAAC,SAAS,IAAI,MAAM,CAAC;YAAE,SAAQ;QAEpC,2BAA2B;QAC3B,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY;YAAE,SAAQ;QAE9C,qBAAqB;QACrB,MAAM,gBAAgB,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,YAAY,CAAC;YAC5D,UAAU,EAAE,MAAM,CAAC,SAAS,CAAC;YAC7B,SAAS;YACT,SAAS;YACT,OAAO;YACP,IAAI;YACJ,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAA;IACtC,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAAC,WAAoC;IAC/D,OAAO,WAAW,EAAE,IAAI,KAAK,cAAc,CAAA;AAC7C,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,mBAAmB,CAChC,KAA+D
|
|
1
|
+
{"version":3,"file":"nested-operations.js","sourceRoot":"","sources":["../../src/context/nested-operations.ts"],"names":[],"mappings":"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"}
|
package/dist/fields/index.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import type { TextField, IntegerField, CheckboxField, TimestampField, PasswordField, SelectField, RelationshipField, JsonField } from '../config/types.js';
|
|
1
|
+
import type { TextField, IntegerField, CheckboxField, TimestampField, PasswordField, SelectField, RelationshipField, JsonField, VirtualField } from '../config/types.js';
|
|
2
2
|
/**
|
|
3
3
|
* Text field
|
|
4
4
|
*/
|
|
5
|
-
export declare function text(options?: Omit<TextField
|
|
5
|
+
export declare function text<TTypeInfo extends import('../config/types.js').TypeInfo = import('../config/types.js').TypeInfo>(options?: Omit<TextField<TTypeInfo>, 'type'>): TextField<TTypeInfo>;
|
|
6
6
|
/**
|
|
7
7
|
* Integer field
|
|
8
8
|
*/
|
|
9
|
-
export declare function integer(options?: Omit<IntegerField
|
|
9
|
+
export declare function integer<TTypeInfo extends import('../config/types.js').TypeInfo = import('../config/types.js').TypeInfo>(options?: Omit<IntegerField<TTypeInfo>, 'type'>): IntegerField<TTypeInfo>;
|
|
10
10
|
/**
|
|
11
11
|
* Checkbox (boolean) field
|
|
12
12
|
*/
|
|
13
|
-
export declare function checkbox(options?: Omit<CheckboxField
|
|
13
|
+
export declare function checkbox<TTypeInfo extends import('../config/types.js').TypeInfo = import('../config/types.js').TypeInfo>(options?: Omit<CheckboxField<TTypeInfo>, 'type'>): CheckboxField<TTypeInfo>;
|
|
14
14
|
/**
|
|
15
15
|
* Timestamp (DateTime) field
|
|
16
16
|
*/
|
|
17
|
-
export declare function timestamp(options?: Omit<TimestampField
|
|
17
|
+
export declare function timestamp<TTypeInfo extends import('../config/types.js').TypeInfo = import('../config/types.js').TypeInfo>(options?: Omit<TimestampField<TTypeInfo>, 'type'>): TimestampField<TTypeInfo>;
|
|
18
18
|
/**
|
|
19
19
|
* Password field (automatically hashed using bcrypt)
|
|
20
20
|
*
|
|
@@ -66,15 +66,15 @@ export declare function timestamp(options?: Omit<TimestampField, 'type'>): Times
|
|
|
66
66
|
* @param options - Field configuration options
|
|
67
67
|
* @returns Password field configuration
|
|
68
68
|
*/
|
|
69
|
-
export declare function password(options?: Omit<PasswordField
|
|
69
|
+
export declare function password<TTypeInfo extends import('../config/types.js').TypeInfo>(options?: Omit<PasswordField<TTypeInfo>, 'type'>): PasswordField<TTypeInfo>;
|
|
70
70
|
/**
|
|
71
71
|
* Select field (enum-like)
|
|
72
72
|
*/
|
|
73
|
-
export declare function select(options: Omit<SelectField
|
|
73
|
+
export declare function select<TTypeInfo extends import('../config/types.js').TypeInfo = import('../config/types.js').TypeInfo>(options: Omit<SelectField<TTypeInfo>, 'type'>): SelectField<TTypeInfo>;
|
|
74
74
|
/**
|
|
75
75
|
* Relationship field
|
|
76
76
|
*/
|
|
77
|
-
export declare function relationship(options: Omit<RelationshipField
|
|
77
|
+
export declare function relationship<TTypeInfo extends import('../config/types.js').TypeInfo = import('../config/types.js').TypeInfo>(options: Omit<RelationshipField<TTypeInfo>, 'type'>): RelationshipField<TTypeInfo>;
|
|
78
78
|
/**
|
|
79
79
|
* JSON field for storing arbitrary JSON data
|
|
80
80
|
*
|
|
@@ -118,5 +118,61 @@ export declare function relationship(options: Omit<RelationshipField, 'type'>):
|
|
|
118
118
|
* @param options - Field configuration options
|
|
119
119
|
* @returns JSON field configuration
|
|
120
120
|
*/
|
|
121
|
-
export declare function json(options?: Omit<JsonField
|
|
121
|
+
export declare function json<TTypeInfo extends import('../config/types.js').TypeInfo = import('../config/types.js').TypeInfo>(options?: Omit<JsonField<TTypeInfo>, 'type'>): JsonField<TTypeInfo>;
|
|
122
|
+
/**
|
|
123
|
+
* Virtual field - not stored in database, computed via hooks
|
|
124
|
+
*
|
|
125
|
+
* **Features:**
|
|
126
|
+
* - Does not create a column in the database
|
|
127
|
+
* - Uses resolveOutput hook to compute value from other fields
|
|
128
|
+
* - Optionally uses resolveInput hook for write side effects (e.g., sync to external API)
|
|
129
|
+
* - Only computed when explicitly selected/included in queries
|
|
130
|
+
* - Supports both read and write operations via hooks
|
|
131
|
+
*
|
|
132
|
+
* **Usage Example:**
|
|
133
|
+
* ```typescript
|
|
134
|
+
* // Read-only computed field
|
|
135
|
+
* fields: {
|
|
136
|
+
* firstName: text(),
|
|
137
|
+
* lastName: text(),
|
|
138
|
+
* fullName: virtual({
|
|
139
|
+
* type: 'string',
|
|
140
|
+
* hooks: {
|
|
141
|
+
* resolveOutput: ({ item }) => `${item.firstName} ${item.lastName}`
|
|
142
|
+
* }
|
|
143
|
+
* })
|
|
144
|
+
* }
|
|
145
|
+
*
|
|
146
|
+
* // Write side effects (e.g., sync to external API)
|
|
147
|
+
* fields: {
|
|
148
|
+
* externalSync: virtual({
|
|
149
|
+
* type: 'boolean',
|
|
150
|
+
* hooks: {
|
|
151
|
+
* resolveInput: async ({ item }) => {
|
|
152
|
+
* await syncToExternalAPI(item)
|
|
153
|
+
* return undefined // Don't store anything
|
|
154
|
+
* },
|
|
155
|
+
* resolveOutput: () => true
|
|
156
|
+
* }
|
|
157
|
+
* })
|
|
158
|
+
* }
|
|
159
|
+
*
|
|
160
|
+
* // Query with select
|
|
161
|
+
* const user = await context.db.user.findUnique({
|
|
162
|
+
* where: { id },
|
|
163
|
+
* select: { firstName: true, lastName: true, fullName: true } // fullName computed
|
|
164
|
+
* })
|
|
165
|
+
* ```
|
|
166
|
+
*
|
|
167
|
+
* **Requirements:**
|
|
168
|
+
* - Must provide `type` (TypeScript type string)
|
|
169
|
+
* - Must provide `resolveOutput` hook (for reads)
|
|
170
|
+
* - Optional `resolveInput` hook (for write side effects)
|
|
171
|
+
*
|
|
172
|
+
* @param options - Virtual field configuration
|
|
173
|
+
* @returns Virtual field configuration
|
|
174
|
+
*/
|
|
175
|
+
export declare function virtual<TTypeInfo extends import('../config/types.js').TypeInfo>(options: Omit<VirtualField<TTypeInfo>, 'virtual' | 'outputType' | 'type'> & {
|
|
176
|
+
type: string;
|
|
177
|
+
}): VirtualField<TTypeInfo>;
|
|
122
178
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -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,
|
|
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,EACT,YAAY,EACb,MAAM,oBAAoB,CAAA;AAa3B;;GAEG;AACH,wBAAgB,IAAI,CAClB,SAAS,SAAS,OAAO,oBAAoB,EAAE,QAAQ,GAAG,OAAO,oBAAoB,EAAE,QAAQ,EAC/F,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAqEpE;AAED;;GAEG;AACH,wBAAgB,OAAO,CACrB,SAAS,SAAS,OAAO,oBAAoB,EAAE,QAAQ,GAAG,OAAO,oBAAoB,EAAE,QAAQ,EAC/F,OAAO,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,YAAY,CAAC,SAAS,CAAC,CA4C1E;AAED;;GAEG;AACH,wBAAgB,QAAQ,CACtB,SAAS,SAAS,OAAO,oBAAoB,EAAE,QAAQ,GAAG,OAAO,oBAAoB,EAAE,QAAQ,EAC/F,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,CA2B5E;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,SAAS,SAAS,OAAO,oBAAoB,EAAE,QAAQ,GAAG,OAAO,oBAAoB,EAAE,QAAQ,EAC/F,OAAO,CAAC,EAAE,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,cAAc,CAAC,SAAS,CAAC,CAsC9E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkDG;AACH,wBAAgB,QAAQ,CAAC,SAAS,SAAS,OAAO,oBAAoB,EAAE,QAAQ,EAC9E,OAAO,CAAC,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAC/C,aAAa,CAAC,SAAS,CAAC,CAgG1B;AAED;;GAEG;AACH,wBAAgB,MAAM,CACpB,SAAS,SAAS,OAAO,oBAAoB,EAAE,QAAQ,GAAG,OAAO,oBAAoB,EAAE,QAAQ,EAC/F,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,WAAW,CAAC,SAAS,CAAC,CA2CvE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,SAAS,SAAS,OAAO,oBAAoB,EAAE,QAAQ,GAAG,OAAO,oBAAoB,EAAE,QAAQ,EAC/F,OAAO,EAAE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,iBAAiB,CAAC,SAAS,CAAC,CAiBnF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,IAAI,CAClB,SAAS,SAAS,OAAO,oBAAoB,EAAE,QAAQ,GAAG,OAAO,oBAAoB,EAAE,QAAQ,EAC/F,OAAO,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,CAuCpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,wBAAgB,OAAO,CAAC,SAAS,SAAS,OAAO,oBAAoB,EAAE,QAAQ,EAC7E,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,MAAM,CAAC,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAC3F,YAAY,CAAC,SAAS,CAAC,CA+BzB"}
|
package/dist/fields/index.js
CHANGED
|
@@ -232,27 +232,25 @@ export function password(options) {
|
|
|
232
232
|
return {
|
|
233
233
|
type: 'password',
|
|
234
234
|
...options,
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
235
|
+
resultExtension: {
|
|
236
|
+
outputType: "import('@opensaas/stack-core').HashedPassword",
|
|
237
|
+
// No compute - delegates to resolveOutput hook
|
|
238
238
|
},
|
|
239
239
|
ui: {
|
|
240
240
|
...options?.ui,
|
|
241
241
|
valueForClientSerialization: ({ value }) => ({ isSet: !!value }),
|
|
242
242
|
},
|
|
243
|
+
// Cast hooks to any since field builders are generic and can't know the specific TFieldKey
|
|
243
244
|
hooks: {
|
|
244
245
|
// Hash password before writing to database
|
|
246
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Field builder hooks must be generic
|
|
245
247
|
resolveInput: async ({ inputValue }) => {
|
|
246
248
|
// Skip if undefined or null (allows partial updates)
|
|
247
249
|
if (inputValue === undefined || inputValue === null) {
|
|
248
250
|
return inputValue;
|
|
249
251
|
}
|
|
250
252
|
// Skip if not a string
|
|
251
|
-
if (typeof inputValue !== 'string') {
|
|
252
|
-
return inputValue;
|
|
253
|
-
}
|
|
254
|
-
// Skip empty strings (let validation handle this)
|
|
255
|
-
if (inputValue.length === 0) {
|
|
253
|
+
if (typeof inputValue !== 'string' || inputValue.length === 0) {
|
|
256
254
|
return inputValue;
|
|
257
255
|
}
|
|
258
256
|
// Skip if already hashed (idempotent)
|
|
@@ -263,6 +261,7 @@ export function password(options) {
|
|
|
263
261
|
return await hashPassword(inputValue);
|
|
264
262
|
},
|
|
265
263
|
// Wrap password with HashedPassword class after reading from database
|
|
264
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Field builder hooks must be generic
|
|
266
265
|
resolveOutput: ({ value }) => {
|
|
267
266
|
// Only wrap string values (hashed passwords)
|
|
268
267
|
if (typeof value === 'string' && value.length > 0) {
|
|
@@ -272,6 +271,7 @@ export function password(options) {
|
|
|
272
271
|
},
|
|
273
272
|
// Merge with user-provided hooks if any
|
|
274
273
|
...options?.hooks,
|
|
274
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Hook object needs type assertion for field builder
|
|
275
275
|
},
|
|
276
276
|
getZodSchema: (fieldName, operation) => {
|
|
277
277
|
const validation = options?.validation;
|
|
@@ -460,4 +460,85 @@ export function json(options) {
|
|
|
460
460
|
},
|
|
461
461
|
};
|
|
462
462
|
}
|
|
463
|
+
/**
|
|
464
|
+
* Virtual field - not stored in database, computed via hooks
|
|
465
|
+
*
|
|
466
|
+
* **Features:**
|
|
467
|
+
* - Does not create a column in the database
|
|
468
|
+
* - Uses resolveOutput hook to compute value from other fields
|
|
469
|
+
* - Optionally uses resolveInput hook for write side effects (e.g., sync to external API)
|
|
470
|
+
* - Only computed when explicitly selected/included in queries
|
|
471
|
+
* - Supports both read and write operations via hooks
|
|
472
|
+
*
|
|
473
|
+
* **Usage Example:**
|
|
474
|
+
* ```typescript
|
|
475
|
+
* // Read-only computed field
|
|
476
|
+
* fields: {
|
|
477
|
+
* firstName: text(),
|
|
478
|
+
* lastName: text(),
|
|
479
|
+
* fullName: virtual({
|
|
480
|
+
* type: 'string',
|
|
481
|
+
* hooks: {
|
|
482
|
+
* resolveOutput: ({ item }) => `${item.firstName} ${item.lastName}`
|
|
483
|
+
* }
|
|
484
|
+
* })
|
|
485
|
+
* }
|
|
486
|
+
*
|
|
487
|
+
* // Write side effects (e.g., sync to external API)
|
|
488
|
+
* fields: {
|
|
489
|
+
* externalSync: virtual({
|
|
490
|
+
* type: 'boolean',
|
|
491
|
+
* hooks: {
|
|
492
|
+
* resolveInput: async ({ item }) => {
|
|
493
|
+
* await syncToExternalAPI(item)
|
|
494
|
+
* return undefined // Don't store anything
|
|
495
|
+
* },
|
|
496
|
+
* resolveOutput: () => true
|
|
497
|
+
* }
|
|
498
|
+
* })
|
|
499
|
+
* }
|
|
500
|
+
*
|
|
501
|
+
* // Query with select
|
|
502
|
+
* const user = await context.db.user.findUnique({
|
|
503
|
+
* where: { id },
|
|
504
|
+
* select: { firstName: true, lastName: true, fullName: true } // fullName computed
|
|
505
|
+
* })
|
|
506
|
+
* ```
|
|
507
|
+
*
|
|
508
|
+
* **Requirements:**
|
|
509
|
+
* - Must provide `type` (TypeScript type string)
|
|
510
|
+
* - Must provide `resolveOutput` hook (for reads)
|
|
511
|
+
* - Optional `resolveInput` hook (for write side effects)
|
|
512
|
+
*
|
|
513
|
+
* @param options - Virtual field configuration
|
|
514
|
+
* @returns Virtual field configuration
|
|
515
|
+
*/
|
|
516
|
+
export function virtual(options) {
|
|
517
|
+
// Validate that resolveOutput is provided
|
|
518
|
+
if (!options.hooks?.resolveOutput) {
|
|
519
|
+
throw new Error('Virtual fields must provide a resolveOutput hook to compute their value. ' +
|
|
520
|
+
'Example: hooks: { resolveOutput: ({ item }) => computeValue(item) }');
|
|
521
|
+
}
|
|
522
|
+
const { type: outputType, ...rest } = options;
|
|
523
|
+
return {
|
|
524
|
+
type: 'virtual',
|
|
525
|
+
virtual: true,
|
|
526
|
+
outputType,
|
|
527
|
+
...rest,
|
|
528
|
+
// Virtual fields don't create database columns
|
|
529
|
+
// Return undefined to signal generator to skip this field
|
|
530
|
+
getPrismaType: undefined,
|
|
531
|
+
// Virtual fields appear in output types with their specified type
|
|
532
|
+
getTypeScriptType: () => {
|
|
533
|
+
return {
|
|
534
|
+
type: options.type,
|
|
535
|
+
optional: false, // Virtual fields always compute a value
|
|
536
|
+
};
|
|
537
|
+
},
|
|
538
|
+
// Virtual fields never validate input (they don't accept database input)
|
|
539
|
+
getZodSchema: () => {
|
|
540
|
+
return z.never();
|
|
541
|
+
},
|
|
542
|
+
};
|
|
543
|
+
}
|
|
463
544
|
//# sourceMappingURL=index.js.map
|
package/dist/fields/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/fields/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { config, list } from './config/index.js';
|
|
2
|
-
export type { OpenSaasConfig, ListConfig, FieldConfig, BaseFieldConfig, TextField, IntegerField, CheckboxField, TimestampField, PasswordField, SelectField, RelationshipField, OperationAccess, Hooks, FieldHooks, DatabaseConfig, SessionConfig, UIConfig, ThemeConfig, ThemePreset, ThemeColors, FileMetadata, ImageMetadata, ImageTransformationResult, Plugin, PluginContext, GeneratedFiles, } from './config/index.js';
|
|
2
|
+
export type { OpenSaasConfig, ListConfig, FieldConfig, BaseFieldConfig, TextField, IntegerField, CheckboxField, TimestampField, PasswordField, SelectField, RelationshipField, JsonField, VirtualField, TypeInfo, OperationAccess, Hooks, FieldHooks, FieldsWithTypeInfo, DatabaseConfig, SessionConfig, UIConfig, ThemeConfig, ThemePreset, ThemeColors, McpConfig, McpToolsConfig, McpAuthConfig, ListMcpConfig, McpCustomTool, FileMetadata, ImageMetadata, ImageTransformationResult, Plugin, PluginContext, GeneratedFiles, } from './config/index.js';
|
|
3
3
|
export type { AccessControl, FieldAccess, Session, AccessContext, PrismaFilter, AccessControlledDB, StorageUtils, } from './access/index.js';
|
|
4
4
|
export { getContext } from './context/index.js';
|
|
5
5
|
export type { PrismaClientLike } from './access/types.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,eAAe,EACf,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,eAAe,EACf,KAAK,EACL,UAAU,EACV,cAAc,EACd,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,yBAAyB,EAEzB,MAAM,EACN,aAAa,EACb,cAAc,GACf,MAAM,mBAAmB,CAAA;AAG1B,YAAY,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAG3D,OAAO,EACL,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG3E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAChD,YAAY,EACV,cAAc,EACd,UAAU,EACV,WAAW,EACX,eAAe,EACf,SAAS,EACT,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,WAAW,EACX,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,QAAQ,EACR,eAAe,EACf,KAAK,EACL,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,aAAa,EACb,QAAQ,EACR,WAAW,EACX,WAAW,EACX,WAAW,EACX,SAAS,EACT,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,aAAa,EACb,yBAAyB,EAEzB,MAAM,EACN,aAAa,EACb,cAAc,GACf,MAAM,mBAAmB,CAAA;AAG1B,YAAY,EACV,aAAa,EACb,WAAW,EACX,OAAO,EACP,aAAa,EACb,YAAY,EACZ,kBAAkB,EAClB,YAAY,GACb,MAAM,mBAAmB,CAAA;AAG1B,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAC/C,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACzD,YAAY,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAG3D,OAAO,EACL,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAA;AAG5B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAG3E,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAA"}
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,gBAAgB;AAChB,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAA;AAmDhD,UAAU;AACV,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAI/C,YAAY;AACZ,OAAO,EACL,QAAQ,EACR,SAAS,EACT,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,GACb,MAAM,qBAAqB,CAAA;AAE5B,uBAAuB;AACvB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAE3E,qBAAqB;AACrB,OAAO,EACL,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,qBAAqB,CAAA"}
|
package/dist/mcp/handler.js
CHANGED
|
@@ -184,6 +184,7 @@ function generateFieldSchemas(fields, operation) {
|
|
|
184
184
|
// Add to required array if field is required for this operation
|
|
185
185
|
if (operation === 'create' &&
|
|
186
186
|
'validation' in fieldConfig &&
|
|
187
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Validation property varies by field type
|
|
187
188
|
fieldConfig.validation?.isRequired) {
|
|
188
189
|
required.push(fieldName);
|
|
189
190
|
}
|