@futdevpro/nts-dynamo 1.15.285 → 1.15.291
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/build/_collections/operation-rest.util.d.ts +1 -1
- package/build/_collections/operation-rest.util.d.ts.map +1 -1
- package/build/_collections/operation-rest.util.js +6 -3
- package/build/_collections/operation-rest.util.js.map +1 -1
- package/build/_modules/defaults/_collections/default-endpoints.util.d.ts +15 -0
- package/build/_modules/defaults/_collections/default-endpoints.util.d.ts.map +1 -1
- package/build/_modules/defaults/_collections/default-endpoints.util.js +56 -64
- package/build/_modules/defaults/_collections/default-endpoints.util.js.map +1 -1
- package/build/_modules/defaults/_collections/default-operations.util.d.ts +110 -0
- package/build/_modules/defaults/_collections/default-operations.util.d.ts.map +1 -0
- package/build/_modules/defaults/_collections/default-operations.util.js +156 -0
- package/build/_modules/defaults/_collections/default-operations.util.js.map +1 -0
- package/build/_modules/defaults/index.d.ts +1 -0
- package/build/_modules/defaults/index.d.ts.map +1 -1
- package/build/_modules/defaults/index.js +1 -0
- package/build/_modules/defaults/index.js.map +1 -1
- package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts +17 -2
- package/build/_modules/mcp/_services/dynts-mcp.adapter.d.ts.map +1 -1
- package/build/_modules/mcp/_services/dynts-mcp.adapter.js +104 -17
- package/build/_modules/mcp/_services/dynts-mcp.adapter.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,7 +12,7 @@ export declare const DyNTS_operationWarningsHeader: string;
|
|
|
12
12
|
* - `dryRun`: the `dryRun=true` query parameter or the `X-Dry-Run: true` header;
|
|
13
13
|
* - `requestId`: the `X-Request-Id` header, generated when missing;
|
|
14
14
|
* - inputs: in the declaration order of `operation.inputs`, each from the path params first, then the query;
|
|
15
|
-
* the request body is appended as the last input when the operation declares `bodyParams`.
|
|
15
|
+
* the request body is appended as the last input when the operation declares `bodyParams` or `isBodyUntyped`.
|
|
16
16
|
*
|
|
17
17
|
* @example
|
|
18
18
|
* ```ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-rest.util.d.ts","sourceRoot":"","sources":["../../src/_collections/operation-rest.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EACgC,sBAAsB,EAAE,uBAAuB,EAErF,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"operation-rest.util.d.ts","sourceRoot":"","sources":["../../src/_collections/operation-rest.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EACgC,sBAAsB,EAAE,uBAAuB,EAErF,MAAM,uBAAuB,CAAC;AAW/B,kGAAkG;AAClG,eAAO,MAAM,6BAA6B,EAAE,MAA+B,CAAC;AAE5E;;;;;;;;;;;;;;;;GAgBG;AACH,qBAAa,wBAAwB;IACnC;;;;;OAKG;WACU,MAAM,CACjB,SAAS,EAAE,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAC/D,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,QAAQ,GACZ,OAAO,CAAC,IAAI,CAAC;IAYhB;;;OAGG;IACH,MAAM,CAAC,YAAY,CAAC,GAAG,EAAE,OAAO,GAAG,sBAAsB;IAkBzD;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAAC,SAAS,EAAE,uBAAuB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,OAAO,EAAE;IA0B5G,+DAA+D;IAC/D,OAAO,CAAC,MAAM,CAAC,MAAM;IAkDrB,kEAAkE;IAClE,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B,iEAAiE;IACjE,OAAO,CAAC,MAAM,CAAC,UAAU;IAOzB,6CAA6C;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ;IAIvB,sCAAsC;IACtC,OAAO,CAAC,MAAM,CAAC,UAAU;CAU1B"}
|
|
@@ -4,6 +4,8 @@ exports.DyNTS_OperationRest_Util = exports.DyNTS_operationWarningsHeader = void
|
|
|
4
4
|
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
5
|
const global_service_1 = require("../_services/core/global.service");
|
|
6
6
|
const global_settings_const_1 = require("./global-settings.const");
|
|
7
|
+
/** A decimal number as written by a caller (sign, digits, fraction, exponent) — no hex/binary/octal, no `Infinity`. */
|
|
8
|
+
const DyNTS_operationDecimalNumber = /^[-+]?(\d+\.?\d*|\.\d+)([eE][-+]?\d+)?$/;
|
|
7
9
|
/** Response header that carries the non-fatal warnings of an operation call (comma separated). */
|
|
8
10
|
exports.DyNTS_operationWarningsHeader = 'X-Operation-Warnings';
|
|
9
11
|
/**
|
|
@@ -16,7 +18,7 @@ exports.DyNTS_operationWarningsHeader = 'X-Operation-Warnings';
|
|
|
16
18
|
* - `dryRun`: the `dryRun=true` query parameter or the `X-Dry-Run: true` header;
|
|
17
19
|
* - `requestId`: the `X-Request-Id` header, generated when missing;
|
|
18
20
|
* - inputs: in the declaration order of `operation.inputs`, each from the path params first, then the query;
|
|
19
|
-
* the request body is appended as the last input when the operation declares `bodyParams`.
|
|
21
|
+
* the request body is appended as the last input when the operation declares `bodyParams` or `isBodyUntyped`.
|
|
20
22
|
*
|
|
21
23
|
* @example
|
|
22
24
|
* ```ts
|
|
@@ -75,7 +77,7 @@ class DyNTS_OperationRest_Util {
|
|
|
75
77
|
}
|
|
76
78
|
return DyNTS_OperationRest_Util.coerce({ operation: operation, name: name, input: input, raw: raw });
|
|
77
79
|
});
|
|
78
|
-
if (operation?.bodyParams) {
|
|
80
|
+
if (operation?.bodyParams || operation?.isBodyUntyped) {
|
|
79
81
|
inputs.push(req?.body);
|
|
80
82
|
}
|
|
81
83
|
return inputs;
|
|
@@ -90,7 +92,8 @@ class DyNTS_OperationRest_Util {
|
|
|
90
92
|
let value = text;
|
|
91
93
|
if (input.type === fsm_dynamo_1.DyFM_BasicProperty_Type.number) {
|
|
92
94
|
value = Number(text);
|
|
93
|
-
|
|
95
|
+
// decimal notation only and finite: `Infinity`, `0x10` or `0b11` must not reach e.g. a paging limit
|
|
96
|
+
if (!DyNTS_operationDecimalNumber.test(text.trim()) || !Number.isFinite(value)) {
|
|
94
97
|
throw DyNTS_OperationRest_Util.inputError('DyNTS-OPR-INT', `operation "${operation.name}": input "${name}" must be a number`, name);
|
|
95
98
|
}
|
|
96
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-rest.util.js","sourceRoot":"","sources":["../../src/_collections/operation-rest.util.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"operation-rest.util.js","sourceRoot":"","sources":["../../src/_collections/operation-rest.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -245,5 +245,20 @@ export declare class DyNTS_DefaultEndpoints_Util {
|
|
|
245
245
|
};
|
|
246
246
|
idParamName?: string;
|
|
247
247
|
}): DyNTS_Endpoint_Params[];
|
|
248
|
+
/**
|
|
249
|
+
* Resolves the path param that carries the id of a delete endpoint (HP-DOPL MP-2.4).
|
|
250
|
+
*
|
|
251
|
+
* The delete check used to be `includesIgnoreCase(path, idParamName)`, which also matches word suffixes
|
|
252
|
+
* (`taskId` → `id`) and so passed for EVERY path with `:userId` — while the task read `req.params[idParamName]`.
|
|
253
|
+
* Measured consequence: `entityName: 'StockItem'` on `/:userId/item/delete/:itemId` read `stockitemId` (undefined).
|
|
254
|
+
*
|
|
255
|
+
* The lenient matching is kept (existing paths keep booting), but the result is now the real param name:
|
|
256
|
+
* exact match (`:userId` included) → case-insensitive match → the single param whose name ends the id name
|
|
257
|
+
* (`stockitemId` → `itemId`); the last two skip `:userId`, the owner guard param.
|
|
258
|
+
* @param endpointPath - the endpoint path
|
|
259
|
+
* @param idParamName - the configured (or default) id param name
|
|
260
|
+
* @throws 406 `DyNTS-DEU-DE0` when no path param (or more than one) can carry the id
|
|
261
|
+
*/
|
|
262
|
+
private static resolveDeleteIdParam;
|
|
248
263
|
}
|
|
249
264
|
//# sourceMappingURL=default-endpoints.util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-endpoints.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/defaults/_collections/default-endpoints.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAE5C,OAAO,EAAiC,aAAa,
|
|
1
|
+
{"version":3,"file":"default-endpoints.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/defaults/_collections/default-endpoints.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ exports.DyNTS_DefaultEndpoints_Util = void 0;
|
|
|
4
4
|
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
5
|
const endpoint_params_control_model_1 = require("../../../_models/control-models/endpoint-params.control-model");
|
|
6
6
|
const global_settings_const_1 = require("../../../_collections/global-settings.const");
|
|
7
|
+
const default_operations_util_1 = require("./default-operations.util");
|
|
7
8
|
/**
|
|
8
9
|
* Alapértelmezett endpoint-ok létrehozásához használt utility class.
|
|
9
10
|
* Az Organizer Modules mintáját követve generálja a standard CRUD endpoint-okat.
|
|
@@ -56,15 +57,9 @@ class DyNTS_DefaultEndpoints_Util {
|
|
|
56
57
|
type: fsm_dynamo_1.DyFM_HttpCallType.get,
|
|
57
58
|
endpoint: set.endpointPath,
|
|
58
59
|
preProcesses: [set.authService.authenticate_tokenSelf],
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
issuer: issuer,
|
|
63
|
-
});
|
|
64
|
-
const data = await dataService.getDataById(req.params[idParamName]);
|
|
65
|
-
res.send(dataService.getProvidedData(data));
|
|
66
|
-
},
|
|
67
|
-
],
|
|
60
|
+
operation: default_operations_util_1.DyNTS_DefaultOperations_Util.getGetOperation({
|
|
61
|
+
entityName: set.entityName, dataServiceClass: set.dataServiceClass, idParamName: idParamName,
|
|
62
|
+
}),
|
|
68
63
|
});
|
|
69
64
|
}
|
|
70
65
|
static getGetMyEndpoint(set) {
|
|
@@ -81,15 +76,9 @@ class DyNTS_DefaultEndpoints_Util {
|
|
|
81
76
|
type: fsm_dynamo_1.DyFM_HttpCallType.get,
|
|
82
77
|
endpoint: set.endpointPath,
|
|
83
78
|
preProcesses: [set.authService.authenticate_tokenSelf],
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
issuer: issuer,
|
|
88
|
-
});
|
|
89
|
-
const dataList = await dataService.getDataListByDependencyId({ userId: req.params.userId });
|
|
90
|
-
res.send(dataService.getProvidedDataList(dataList));
|
|
91
|
-
},
|
|
92
|
-
],
|
|
79
|
+
operation: default_operations_util_1.DyNTS_DefaultOperations_Util.getGetMyOperation({
|
|
80
|
+
entityName: set.entityName, dataServiceClass: set.dataServiceClass,
|
|
81
|
+
}),
|
|
93
82
|
});
|
|
94
83
|
}
|
|
95
84
|
/**
|
|
@@ -127,16 +116,9 @@ class DyNTS_DefaultEndpoints_Util {
|
|
|
127
116
|
type: fsm_dynamo_1.DyFM_HttpCallType.post,
|
|
128
117
|
endpoint: set.endpointPath,
|
|
129
118
|
preProcesses: [set.authService.authenticate_tokenSelf],
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
issuer: issuer,
|
|
134
|
-
});
|
|
135
|
-
const searchResults = await dataService.searchData(req.body);
|
|
136
|
-
searchResults.results = dataService.getProvidedDataList(searchResults.results);
|
|
137
|
-
res.send(searchResults);
|
|
138
|
-
},
|
|
139
|
-
],
|
|
119
|
+
operation: default_operations_util_1.DyNTS_DefaultOperations_Util.getSearchOperation({
|
|
120
|
+
entityName: set.entityName, dataServiceClass: set.dataServiceClass,
|
|
121
|
+
}),
|
|
140
122
|
});
|
|
141
123
|
}
|
|
142
124
|
/**
|
|
@@ -175,15 +157,9 @@ class DyNTS_DefaultEndpoints_Util {
|
|
|
175
157
|
type: fsm_dynamo_1.DyFM_HttpCallType.post,
|
|
176
158
|
endpoint: set.endpointPath,
|
|
177
159
|
preProcesses: [set.authService.authenticate_tokenSelf],
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
issuer: issuer,
|
|
182
|
-
});
|
|
183
|
-
const data = await dataService.saveData(req.body);
|
|
184
|
-
res.send(dataService.getProvidedData(data));
|
|
185
|
-
},
|
|
186
|
-
],
|
|
160
|
+
operation: default_operations_util_1.DyNTS_DefaultOperations_Util.getModifyOperation({
|
|
161
|
+
entityName: set.entityName, dataServiceClass: set.dataServiceClass,
|
|
162
|
+
}),
|
|
187
163
|
});
|
|
188
164
|
}
|
|
189
165
|
/**
|
|
@@ -210,16 +186,9 @@ class DyNTS_DefaultEndpoints_Util {
|
|
|
210
186
|
* ```
|
|
211
187
|
*/
|
|
212
188
|
static getDeleteEndpoint(set) {
|
|
213
|
-
|
|
189
|
+
// HP-DOPL MP-2.4: the id is resolved to the path param that REALLY carries it (see resolveDeleteIdParam)
|
|
190
|
+
const idParamName = DyNTS_DefaultEndpoints_Util.resolveDeleteIdParam(set.endpointPath, set.idParamName ?? `${set.entityName.toLowerCase()}Id`);
|
|
214
191
|
const endpointName = `delete${set.entityName}`;
|
|
215
|
-
// Ellenőrizzük a casing-ignore módon, hogy az endpoint path tartalmazza-e az ID paramétert
|
|
216
|
-
if (!fsm_dynamo_1.DyFM_StringCase.includesIgnoreCase(set.endpointPath, idParamName)) {
|
|
217
|
-
throw new fsm_dynamo_1.DyFM_Error({
|
|
218
|
-
status: 406,
|
|
219
|
-
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-DEU-DE0`,
|
|
220
|
-
message: `endpoint path does not contain the ID parameter: ${idParamName}`,
|
|
221
|
-
});
|
|
222
|
-
}
|
|
223
192
|
if (!set.endpointPath.includes(`:userId`)) {
|
|
224
193
|
throw new fsm_dynamo_1.DyFM_Error({
|
|
225
194
|
status: 406,
|
|
@@ -232,15 +201,9 @@ class DyNTS_DefaultEndpoints_Util {
|
|
|
232
201
|
type: fsm_dynamo_1.DyFM_HttpCallType.delete,
|
|
233
202
|
endpoint: set.endpointPath,
|
|
234
203
|
preProcesses: [set.authService.authenticate_tokenSelf],
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
issuer: issuer,
|
|
239
|
-
});
|
|
240
|
-
await dataService.deleteData(req.params[idParamName]);
|
|
241
|
-
res.send({ result: 'deleted' });
|
|
242
|
-
},
|
|
243
|
-
],
|
|
204
|
+
operation: default_operations_util_1.DyNTS_DefaultOperations_Util.getDeleteOperation({
|
|
205
|
+
entityName: set.entityName, dataServiceClass: set.dataServiceClass, idParamName: idParamName,
|
|
206
|
+
}),
|
|
244
207
|
});
|
|
245
208
|
}
|
|
246
209
|
/**
|
|
@@ -279,15 +242,9 @@ class DyNTS_DefaultEndpoints_Util {
|
|
|
279
242
|
type: fsm_dynamo_1.DyFM_HttpCallType.patch,
|
|
280
243
|
endpoint: set.endpointPath,
|
|
281
244
|
preProcesses: [set.authService.authenticate_tokenSelf],
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
issuer: issuer,
|
|
286
|
-
});
|
|
287
|
-
const data = await dataService.patchData(req.body);
|
|
288
|
-
res.send(dataService.getProvidedData(data));
|
|
289
|
-
},
|
|
290
|
-
],
|
|
245
|
+
operation: default_operations_util_1.DyNTS_DefaultOperations_Util.getPatchOperation({
|
|
246
|
+
entityName: set.entityName, dataServiceClass: set.dataServiceClass,
|
|
247
|
+
}),
|
|
291
248
|
});
|
|
292
249
|
}
|
|
293
250
|
/**
|
|
@@ -382,6 +339,41 @@ class DyNTS_DefaultEndpoints_Util {
|
|
|
382
339
|
}
|
|
383
340
|
return endpoints;
|
|
384
341
|
}
|
|
342
|
+
/**
|
|
343
|
+
* Resolves the path param that carries the id of a delete endpoint (HP-DOPL MP-2.4).
|
|
344
|
+
*
|
|
345
|
+
* The delete check used to be `includesIgnoreCase(path, idParamName)`, which also matches word suffixes
|
|
346
|
+
* (`taskId` → `id`) and so passed for EVERY path with `:userId` — while the task read `req.params[idParamName]`.
|
|
347
|
+
* Measured consequence: `entityName: 'StockItem'` on `/:userId/item/delete/:itemId` read `stockitemId` (undefined).
|
|
348
|
+
*
|
|
349
|
+
* The lenient matching is kept (existing paths keep booting), but the result is now the real param name:
|
|
350
|
+
* exact match (`:userId` included) → case-insensitive match → the single param whose name ends the id name
|
|
351
|
+
* (`stockitemId` → `itemId`); the last two skip `:userId`, the owner guard param.
|
|
352
|
+
* @param endpointPath - the endpoint path
|
|
353
|
+
* @param idParamName - the configured (or default) id param name
|
|
354
|
+
* @throws 406 `DyNTS-DEU-DE0` when no path param (or more than one) can carry the id
|
|
355
|
+
*/
|
|
356
|
+
static resolveDeleteIdParam(endpointPath, idParamName) {
|
|
357
|
+
const allParams = (endpointPath.match(/:[A-Za-z0-9_]+/g) ?? [])
|
|
358
|
+
.map((param) => param.slice(1));
|
|
359
|
+
// `:userId` is the owner guard param — it only carries the id when it is named explicitly (exact match)
|
|
360
|
+
const params = allParams.filter((param) => param !== 'userId');
|
|
361
|
+
const wanted = idParamName.toLowerCase();
|
|
362
|
+
const suffixMatches = params.filter((param) => wanted.endsWith(param.toLowerCase()));
|
|
363
|
+
const resolved = allParams.find((param) => param === idParamName) ??
|
|
364
|
+
params.find((param) => param.toLowerCase() === wanted) ??
|
|
365
|
+
(suffixMatches.length === 1 ? suffixMatches[0] : undefined);
|
|
366
|
+
if (!resolved) {
|
|
367
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
368
|
+
status: 406,
|
|
369
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|DyNTS-DEU-DE0`,
|
|
370
|
+
message: `endpoint path does not contain the ID parameter: ${idParamName} ` +
|
|
371
|
+
`(path params: ${params.join(', ') || 'none'})`,
|
|
372
|
+
additionalContent: { endpointPath: endpointPath, idParamName: idParamName, params: params },
|
|
373
|
+
});
|
|
374
|
+
}
|
|
375
|
+
return resolved;
|
|
376
|
+
}
|
|
385
377
|
}
|
|
386
378
|
exports.DyNTS_DefaultEndpoints_Util = DyNTS_DefaultEndpoints_Util;
|
|
387
379
|
//# sourceMappingURL=default-endpoints.util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-endpoints.util.js","sourceRoot":"","sources":["../../../../src/_modules/defaults/_collections/default-endpoints.util.ts"],"names":[],"mappings":";;;AAEA,
|
|
1
|
+
{"version":3,"file":"default-endpoints.util.js","sourceRoot":"","sources":["../../../../src/_modules/defaults/_collections/default-endpoints.util.ts"],"names":[],"mappings":";;;AAEA,sDAAqF;AAGrF,iHAAsG;AACtG,uFAAoF;AAEpF,uEAAyE;AAEzE;;;;;GAKG;AACH,MAAa,2BAA2B;IAEtC;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,cAAc,CACnB,GAMC;QAED,MAAM,WAAW,GAAW,GAAG,CAAC,WAAW,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;QACnF,MAAM,YAAY,GAAW,MAAM,GAAG,CAAC,UAAU,EAAE,CAAC;QAEpD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,WAAW,EAAE,CAAC,EAAE,CAAC;YAClD,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,OAAO,EAAE,oDAAoD,WAAW,EAAE;aAC3E,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;gBACxE,OAAO,EAAE,8DAA8D;aACxE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,qDAAqB,CAAC;YAC/B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,8BAAiB,CAAC,GAAG;YAC3B,QAAQ,EAAE,GAAG,CAAC,YAAY;YAC1B,YAAY,EAAE,CAAE,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAE;YACxD,SAAS,EAAE,sDAA4B,CAAC,eAAe,CAAS;gBAC9D,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,WAAW,EAAE,WAAW;aAC7F,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,gBAAgB,CACrB,GAKC;QAED,MAAM,YAAY,GAAW,QAAQ,GAAG,CAAC,UAAU,GAAG,CAAC;QAEvD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,iBAAiB;gBACxE,OAAO,EAAE,8DAA8D;aACxE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,qDAAqB,CAAC;YAC/B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,8BAAiB,CAAC,GAAG;YAC3B,QAAQ,EAAE,GAAG,CAAC,YAAY;YAC1B,YAAY,EAAE,CAAE,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAE;YACxD,SAAS,EAAE,sDAA4B,CAAC,iBAAiB,CAAS;gBAChE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;aACnE,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACH,MAAM,CAAC,iBAAiB,CACtB,GAKC;QAED,MAAM,YAAY,GAAW,SAAS,GAAG,CAAC,UAAU,GAAG,CAAC;QAExD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,OAAO,EAAE,8DAA8D;aACxE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,qDAAqB,CAAC;YAC/B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,8BAAiB,CAAC,IAAI;YAC5B,QAAQ,EAAE,GAAG,CAAC,YAAY;YAC1B,YAAY,EAAE,CAAE,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAE;YACxD,SAAS,EAAE,sDAA4B,CAAC,kBAAkB,CAAS;gBACjE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;aACnE,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,iBAAiB,CACtB,GAKC;QAED,MAAM,YAAY,GAAW,SAAS,GAAG,CAAC,UAAU,EAAE,CAAC;QAEvD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,OAAO,EAAE,8DAA8D;aACxE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,qDAAqB,CAAC;YAC/B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,8BAAiB,CAAC,IAAI;YAC5B,QAAQ,EAAE,GAAG,CAAC,YAAY;YAC1B,YAAY,EAAE,CAAE,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAE;YACxD,SAAS,EAAE,sDAA4B,CAAC,kBAAkB,CAAS;gBACjE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;aACnE,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACH,MAAM,CAAC,iBAAiB,CACtB,GAMC;QAED,yGAAyG;QACzG,MAAM,WAAW,GAAW,2BAA2B,CAAC,oBAAoB,CAC1E,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,WAAW,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CACzE,CAAC;QACF,MAAM,YAAY,GAAW,SAAS,GAAG,CAAC,UAAU,EAAE,CAAC;QAEvD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,OAAO,EAAE,8DAA8D;aACxE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,qDAAqB,CAAC;YAC/B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,8BAAiB,CAAC,MAAM;YAC9B,QAAQ,EAAE,GAAG,CAAC,YAAY;YAC1B,YAAY,EAAE,CAAE,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAE;YACxD,SAAS,EAAE,sDAA4B,CAAC,kBAAkB,CAAS;gBACjE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB,EAAE,WAAW,EAAE,WAAW;aAC7F,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,CAAC,gBAAgB,CACrB,GAKC;QAED,MAAM,YAAY,GAAW,QAAQ,GAAG,CAAC,UAAU,EAAE,CAAC;QAEtD,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1C,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,OAAO,EAAE,8DAA8D;aACxE,CAAC,CAAC;QACL,CAAC;QAED,OAAO,IAAI,qDAAqB,CAAC;YAC/B,IAAI,EAAE,YAAY;YAClB,IAAI,EAAE,8BAAiB,CAAC,KAAK;YAC7B,QAAQ,EAAE,GAAG,CAAC,YAAY;YAC1B,YAAY,EAAE,CAAE,GAAG,CAAC,WAAW,CAAC,sBAAsB,CAAE;YACxD,SAAS,EAAE,sDAA4B,CAAC,iBAAiB,CAAS;gBAChE,UAAU,EAAE,GAAG,CAAC,UAAU,EAAE,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;aACnE,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,MAAM,CAAC,sBAAsB,CAC3B,GAaC;QAED,MAAM,SAAS,GAA4B,EAAE,CAAC;QAE9C,IAAI,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAS;gBACzC,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,GAAG;gBAC/B,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAS;gBAC3C,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK;gBACjC,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAS;gBAC5C,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM;gBAClC,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAS;gBAC5C,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM;gBAClC,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAS;gBAC3C,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,KAAK;gBACjC,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,IAAI,GAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAS;gBAC5C,UAAU,EAAE,GAAG,CAAC,UAAU;gBAC1B,gBAAgB,EAAE,GAAG,CAAC,gBAAgB;gBACtC,YAAY,EAAE,GAAG,CAAC,SAAS,CAAC,MAAM;gBAClC,WAAW,EAAE,GAAG,CAAC,WAAW;gBAC5B,WAAW,EAAE,GAAG,CAAC,WAAW;aAC7B,CAAC,CAAC,CAAC;QACN,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;;;;;;;;;;OAaG;IACK,MAAM,CAAC,oBAAoB,CAAC,YAAoB,EAAE,WAAmB;QAC3E,MAAM,SAAS,GAAa,CAAC,YAAY,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,CAAC;aACtE,GAAG,CAAC,CAAC,KAAa,EAAU,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,wGAAwG;QACxG,MAAM,MAAM,GAAa,SAAS,CAAC,MAAM,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC;QAC1F,MAAM,MAAM,GAAW,WAAW,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,aAAa,GAAa,MAAM,CAAC,MAAM,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;QAChH,MAAM,QAAQ,GACZ,SAAS,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,KAAK,WAAW,CAAC;YACjE,MAAM,CAAC,IAAI,CAAC,CAAC,KAAa,EAAW,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC;YACvE,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAE9D,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,uBAAU,CAAC;gBACnB,MAAM,EAAE,GAAG;gBACX,SAAS,EAAE,GAAG,6CAAqB,CAAC,mBAAmB,gBAAgB;gBACvE,OAAO,EAAE,oDAAoD,WAAW,GAAG;oBACzE,iBAAiB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,MAAM,GAAG;gBACjD,iBAAiB,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE;aAC5F,CAAC,CAAC;QACL,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AAvcD,kEAucC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { DyFM_Metadata, DyFM_Operation_Settings, DyFM_SearchQuery, DyFM_SearchResult } from '@futdevpro/fsm-dynamo';
|
|
2
|
+
import { DyNTS_DataService } from '../../../_services/base/data.service';
|
|
3
|
+
/**
|
|
4
|
+
* The standard CRUD operations of an entity (HP-DOPL MP-2.4) — the transport-independent core of the default
|
|
5
|
+
* endpoints: `DyNTS_DefaultEndpoints_Util` builds its REST endpoints on these, so the data service logic exists once.
|
|
6
|
+
*
|
|
7
|
+
* Conventions:
|
|
8
|
+
* - `domain` is the kebab-case entity name (`StockItem` → `stock-item`), `action` is `get` · `get-my` · `search` ·
|
|
9
|
+
* `modify` · `patch` · `delete`;
|
|
10
|
+
* - the data service is created per call with the caller's `issuer` (the accountId, never the userId);
|
|
11
|
+
* - search/modify/patch take the request body WITHOUT a data model (`isBodyUntyped`), because the model belongs to
|
|
12
|
+
* the data service — so every default operation is `expose: { rest: true, mcp: false, cli: false }`.
|
|
13
|
+
* ⚠️ Exposing them on MCP/CLI is a separate, deliberate step: the REST endpoints rely on the
|
|
14
|
+
* `authenticate_tokenSelf` preProcess (the `:userId` path guard), which an MCP/CLI call would not run.
|
|
15
|
+
*
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* const getTask: DyFM_Operation_Settings<Task, [string]> = DyNTS_DefaultOperations_Util.getGetOperation({
|
|
19
|
+
* entityName: 'Task', dataServiceClass: Task_DataService,
|
|
20
|
+
* });
|
|
21
|
+
* // getTask.name === 'task.get', getTask.inputs === { taskId: { type: 'string', required: true } }
|
|
22
|
+
* ```
|
|
23
|
+
*/
|
|
24
|
+
export declare class DyNTS_DefaultOperations_Util {
|
|
25
|
+
/**
|
|
26
|
+
* Gets one entity by its id (input: `idParamName`).
|
|
27
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
28
|
+
* @param set.dataServiceClass - the data service constructor
|
|
29
|
+
* @param set.idParamName - the id input name (default: `${entityName.toLowerCase()}Id`)
|
|
30
|
+
*/
|
|
31
|
+
static getGetOperation<T_Data extends DyFM_Metadata>(set: {
|
|
32
|
+
entityName: string;
|
|
33
|
+
dataServiceClass: new (set: {
|
|
34
|
+
data?: T_Data;
|
|
35
|
+
issuer: string;
|
|
36
|
+
}) => DyNTS_DataService<T_Data>;
|
|
37
|
+
idParamName?: string;
|
|
38
|
+
}): DyFM_Operation_Settings<T_Data, [string]>;
|
|
39
|
+
/**
|
|
40
|
+
* Lists the entities that depend on a user (input: `userId`).
|
|
41
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
42
|
+
* @param set.dataServiceClass - the data service constructor
|
|
43
|
+
*/
|
|
44
|
+
static getGetMyOperation<T_Data extends DyFM_Metadata>(set: {
|
|
45
|
+
entityName: string;
|
|
46
|
+
dataServiceClass: new (set: {
|
|
47
|
+
data?: T_Data;
|
|
48
|
+
issuer: string;
|
|
49
|
+
}) => DyNTS_DataService<T_Data>;
|
|
50
|
+
}): DyFM_Operation_Settings<T_Data[], [string]>;
|
|
51
|
+
/**
|
|
52
|
+
* Searches the entities (body: the search query).
|
|
53
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
54
|
+
* @param set.dataServiceClass - the data service constructor
|
|
55
|
+
*/
|
|
56
|
+
static getSearchOperation<T_Data extends DyFM_Metadata>(set: {
|
|
57
|
+
entityName: string;
|
|
58
|
+
dataServiceClass: new (set: {
|
|
59
|
+
data?: T_Data;
|
|
60
|
+
issuer: string;
|
|
61
|
+
}) => DyNTS_DataService<T_Data>;
|
|
62
|
+
}): DyFM_Operation_Settings<DyFM_SearchResult<T_Data>, [DyFM_SearchQuery<T_Data>]>;
|
|
63
|
+
/**
|
|
64
|
+
* Creates or replaces an entity (body: the entity) — a modify is always a create as well.
|
|
65
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
66
|
+
* @param set.dataServiceClass - the data service constructor
|
|
67
|
+
*/
|
|
68
|
+
static getModifyOperation<T_Data extends DyFM_Metadata>(set: {
|
|
69
|
+
entityName: string;
|
|
70
|
+
dataServiceClass: new (set: {
|
|
71
|
+
data?: T_Data;
|
|
72
|
+
issuer: string;
|
|
73
|
+
}) => DyNTS_DataService<T_Data>;
|
|
74
|
+
}): DyFM_Operation_Settings<T_Data, [T_Data]>;
|
|
75
|
+
/**
|
|
76
|
+
* Partially modifies an entity (body: the changed fields with `_id`).
|
|
77
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
78
|
+
* @param set.dataServiceClass - the data service constructor
|
|
79
|
+
*/
|
|
80
|
+
static getPatchOperation<T_Data extends DyFM_Metadata>(set: {
|
|
81
|
+
entityName: string;
|
|
82
|
+
dataServiceClass: new (set: {
|
|
83
|
+
data?: T_Data;
|
|
84
|
+
issuer: string;
|
|
85
|
+
}) => DyNTS_DataService<T_Data>;
|
|
86
|
+
}): DyFM_Operation_Settings<T_Data, [Partial<T_Data>]>;
|
|
87
|
+
/**
|
|
88
|
+
* Deletes an entity by its id (input: `idParamName`).
|
|
89
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
90
|
+
* @param set.dataServiceClass - the data service constructor
|
|
91
|
+
* @param set.idParamName - the id input name (default: `${entityName.toLowerCase()}Id`)
|
|
92
|
+
*/
|
|
93
|
+
static getDeleteOperation<T_Data extends DyFM_Metadata>(set: {
|
|
94
|
+
entityName: string;
|
|
95
|
+
dataServiceClass: new (set: {
|
|
96
|
+
data?: T_Data;
|
|
97
|
+
issuer: string;
|
|
98
|
+
}) => DyNTS_DataService<T_Data>;
|
|
99
|
+
idParamName?: string;
|
|
100
|
+
}): DyFM_Operation_Settings<{
|
|
101
|
+
result: string;
|
|
102
|
+
}, [string]>;
|
|
103
|
+
/** The operation domain of an entity: its kebab-case name. */
|
|
104
|
+
private static domainOf;
|
|
105
|
+
/** The id input name: the given one, or `${entityName.toLowerCase()}Id` (the default endpoint convention). */
|
|
106
|
+
private static idParamNameOf;
|
|
107
|
+
/** The exposure of every default operation — REST only (see the class documentation). */
|
|
108
|
+
private static restOnly;
|
|
109
|
+
}
|
|
110
|
+
//# sourceMappingURL=default-operations.util.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-operations.util.d.ts","sourceRoot":"","sources":["../../../../src/_modules/defaults/_collections/default-operations.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DyNTS_DefaultOperations_Util = void 0;
|
|
4
|
+
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
5
|
+
/**
|
|
6
|
+
* The standard CRUD operations of an entity (HP-DOPL MP-2.4) — the transport-independent core of the default
|
|
7
|
+
* endpoints: `DyNTS_DefaultEndpoints_Util` builds its REST endpoints on these, so the data service logic exists once.
|
|
8
|
+
*
|
|
9
|
+
* Conventions:
|
|
10
|
+
* - `domain` is the kebab-case entity name (`StockItem` → `stock-item`), `action` is `get` · `get-my` · `search` ·
|
|
11
|
+
* `modify` · `patch` · `delete`;
|
|
12
|
+
* - the data service is created per call with the caller's `issuer` (the accountId, never the userId);
|
|
13
|
+
* - search/modify/patch take the request body WITHOUT a data model (`isBodyUntyped`), because the model belongs to
|
|
14
|
+
* the data service — so every default operation is `expose: { rest: true, mcp: false, cli: false }`.
|
|
15
|
+
* ⚠️ Exposing them on MCP/CLI is a separate, deliberate step: the REST endpoints rely on the
|
|
16
|
+
* `authenticate_tokenSelf` preProcess (the `:userId` path guard), which an MCP/CLI call would not run.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```ts
|
|
20
|
+
* const getTask: DyFM_Operation_Settings<Task, [string]> = DyNTS_DefaultOperations_Util.getGetOperation({
|
|
21
|
+
* entityName: 'Task', dataServiceClass: Task_DataService,
|
|
22
|
+
* });
|
|
23
|
+
* // getTask.name === 'task.get', getTask.inputs === { taskId: { type: 'string', required: true } }
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
class DyNTS_DefaultOperations_Util {
|
|
27
|
+
/**
|
|
28
|
+
* Gets one entity by its id (input: `idParamName`).
|
|
29
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
30
|
+
* @param set.dataServiceClass - the data service constructor
|
|
31
|
+
* @param set.idParamName - the id input name (default: `${entityName.toLowerCase()}Id`)
|
|
32
|
+
*/
|
|
33
|
+
static getGetOperation(set) {
|
|
34
|
+
const idParamName = DyNTS_DefaultOperations_Util.idParamNameOf(set);
|
|
35
|
+
return new fsm_dynamo_1.DyFM_Operation_Settings({
|
|
36
|
+
domain: DyNTS_DefaultOperations_Util.domainOf(set.entityName),
|
|
37
|
+
action: 'get',
|
|
38
|
+
description: `Gets a ${set.entityName} by its id`,
|
|
39
|
+
inputs: { [idParamName]: { type: fsm_dynamo_1.DyFM_BasicProperty_Type.string, required: true } },
|
|
40
|
+
expose: DyNTS_DefaultOperations_Util.restOnly(),
|
|
41
|
+
run: async (ctx, id) => {
|
|
42
|
+
const dataService = new set.dataServiceClass({ issuer: ctx.issuer });
|
|
43
|
+
return dataService.getProvidedData(await dataService.getDataById(id));
|
|
44
|
+
},
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Lists the entities that depend on a user (input: `userId`).
|
|
49
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
50
|
+
* @param set.dataServiceClass - the data service constructor
|
|
51
|
+
*/
|
|
52
|
+
static getGetMyOperation(set) {
|
|
53
|
+
return new fsm_dynamo_1.DyFM_Operation_Settings({
|
|
54
|
+
domain: DyNTS_DefaultOperations_Util.domainOf(set.entityName),
|
|
55
|
+
action: 'get-my',
|
|
56
|
+
description: `Lists the ${set.entityName} entities of a user`,
|
|
57
|
+
inputs: { userId: { type: fsm_dynamo_1.DyFM_BasicProperty_Type.string, required: true } },
|
|
58
|
+
expose: DyNTS_DefaultOperations_Util.restOnly(),
|
|
59
|
+
run: async (ctx, userId) => {
|
|
60
|
+
const dataService = new set.dataServiceClass({ issuer: ctx.issuer });
|
|
61
|
+
return dataService.getProvidedDataList(await dataService.getDataListByDependencyId({ userId: userId }));
|
|
62
|
+
},
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Searches the entities (body: the search query).
|
|
67
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
68
|
+
* @param set.dataServiceClass - the data service constructor
|
|
69
|
+
*/
|
|
70
|
+
static getSearchOperation(set) {
|
|
71
|
+
return new fsm_dynamo_1.DyFM_Operation_Settings({
|
|
72
|
+
domain: DyNTS_DefaultOperations_Util.domainOf(set.entityName),
|
|
73
|
+
action: 'search',
|
|
74
|
+
description: `Searches the ${set.entityName} entities`,
|
|
75
|
+
isBodyUntyped: true,
|
|
76
|
+
expose: DyNTS_DefaultOperations_Util.restOnly(),
|
|
77
|
+
run: async (ctx, query) => {
|
|
78
|
+
const dataService = new set.dataServiceClass({ issuer: ctx.issuer });
|
|
79
|
+
const searchResults = await dataService.searchData(query);
|
|
80
|
+
searchResults.results = dataService.getProvidedDataList(searchResults.results);
|
|
81
|
+
return searchResults;
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* Creates or replaces an entity (body: the entity) — a modify is always a create as well.
|
|
87
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
88
|
+
* @param set.dataServiceClass - the data service constructor
|
|
89
|
+
*/
|
|
90
|
+
static getModifyOperation(set) {
|
|
91
|
+
return new fsm_dynamo_1.DyFM_Operation_Settings({
|
|
92
|
+
domain: DyNTS_DefaultOperations_Util.domainOf(set.entityName),
|
|
93
|
+
action: 'modify',
|
|
94
|
+
description: `Creates or modifies a ${set.entityName}`,
|
|
95
|
+
isBodyUntyped: true,
|
|
96
|
+
expose: DyNTS_DefaultOperations_Util.restOnly(),
|
|
97
|
+
run: async (ctx, data) => {
|
|
98
|
+
const dataService = new set.dataServiceClass({ issuer: ctx.issuer });
|
|
99
|
+
return dataService.getProvidedData(await dataService.saveData(data));
|
|
100
|
+
},
|
|
101
|
+
});
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Partially modifies an entity (body: the changed fields with `_id`).
|
|
105
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
106
|
+
* @param set.dataServiceClass - the data service constructor
|
|
107
|
+
*/
|
|
108
|
+
static getPatchOperation(set) {
|
|
109
|
+
return new fsm_dynamo_1.DyFM_Operation_Settings({
|
|
110
|
+
domain: DyNTS_DefaultOperations_Util.domainOf(set.entityName),
|
|
111
|
+
action: 'patch',
|
|
112
|
+
description: `Partially modifies a ${set.entityName}`,
|
|
113
|
+
isBodyUntyped: true,
|
|
114
|
+
expose: DyNTS_DefaultOperations_Util.restOnly(),
|
|
115
|
+
run: async (ctx, data) => {
|
|
116
|
+
const dataService = new set.dataServiceClass({ issuer: ctx.issuer });
|
|
117
|
+
return dataService.getProvidedData(await dataService.patchData(data));
|
|
118
|
+
},
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* Deletes an entity by its id (input: `idParamName`).
|
|
123
|
+
* @param set.entityName - the entity name (e.g. `Task`)
|
|
124
|
+
* @param set.dataServiceClass - the data service constructor
|
|
125
|
+
* @param set.idParamName - the id input name (default: `${entityName.toLowerCase()}Id`)
|
|
126
|
+
*/
|
|
127
|
+
static getDeleteOperation(set) {
|
|
128
|
+
const idParamName = DyNTS_DefaultOperations_Util.idParamNameOf(set);
|
|
129
|
+
return new fsm_dynamo_1.DyFM_Operation_Settings({
|
|
130
|
+
domain: DyNTS_DefaultOperations_Util.domainOf(set.entityName),
|
|
131
|
+
action: 'delete',
|
|
132
|
+
description: `Deletes a ${set.entityName} by its id`,
|
|
133
|
+
inputs: { [idParamName]: { type: fsm_dynamo_1.DyFM_BasicProperty_Type.string, required: true } },
|
|
134
|
+
expose: DyNTS_DefaultOperations_Util.restOnly(),
|
|
135
|
+
run: async (ctx, id) => {
|
|
136
|
+
const dataService = new set.dataServiceClass({ issuer: ctx.issuer });
|
|
137
|
+
await dataService.deleteData(id);
|
|
138
|
+
return { result: 'deleted' };
|
|
139
|
+
},
|
|
140
|
+
});
|
|
141
|
+
}
|
|
142
|
+
/** The operation domain of an entity: its kebab-case name. */
|
|
143
|
+
static domainOf(entityName) {
|
|
144
|
+
return fsm_dynamo_1.DyFM_StringCase.toKebabCase(entityName);
|
|
145
|
+
}
|
|
146
|
+
/** The id input name: the given one, or `${entityName.toLowerCase()}Id` (the default endpoint convention). */
|
|
147
|
+
static idParamNameOf(set) {
|
|
148
|
+
return set.idParamName ?? `${set.entityName.toLowerCase()}Id`;
|
|
149
|
+
}
|
|
150
|
+
/** The exposure of every default operation — REST only (see the class documentation). */
|
|
151
|
+
static restOnly() {
|
|
152
|
+
return { rest: true, mcp: false, cli: false };
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
exports.DyNTS_DefaultOperations_Util = DyNTS_DefaultOperations_Util;
|
|
156
|
+
//# sourceMappingURL=default-operations.util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-operations.util.js","sourceRoot":"","sources":["../../../../src/_modules/defaults/_collections/default-operations.util.ts"],"names":[],"mappings":";;;AAAA,sDAG+B;AAK/B;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAa,4BAA4B;IACvC;;;;;OAKG;IACH,MAAM,CAAC,eAAe,CAA+B,GAIpD;QACC,MAAM,WAAW,GAAW,4BAA4B,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAE5E,OAAO,IAAI,oCAAuB,CAAmB;YACnD,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7D,MAAM,EAAE,KAAK;YACb,WAAW,EAAE,UAAU,GAAG,CAAC,UAAU,YAAY;YACjD,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,oCAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YACnF,MAAM,EAAE,4BAA4B,CAAC,QAAQ,EAAE;YAC/C,GAAG,EAAE,KAAK,EAAE,GAA2B,EAAE,EAAU,EAAmB,EAAE;gBACtE,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEhG,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;YACxE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAA+B,GAGtD;QACC,OAAO,IAAI,oCAAuB,CAAqB;YACrD,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7D,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,aAAa,GAAG,CAAC,UAAU,qBAAqB;YAC7D,MAAM,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,oCAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YAC5E,MAAM,EAAE,4BAA4B,CAAC,QAAQ,EAAE;YAC/C,GAAG,EAAE,KAAK,EAAE,GAA2B,EAAE,MAAc,EAAqB,EAAE;gBAC5E,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEhG,OAAO,WAAW,CAAC,mBAAmB,CAAC,MAAM,WAAW,CAAC,yBAAyB,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAC1G,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAA+B,GAGvD;QACC,OAAO,IAAI,oCAAuB,CAAwD;YACxF,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7D,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,gBAAgB,GAAG,CAAC,UAAU,WAAW;YACtD,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,4BAA4B,CAAC,QAAQ,EAAE;YAC/C,GAAG,EAAE,KAAK,EAAE,GAA2B,EAAE,KAA+B,EAAsC,EAAE;gBAC9G,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAChG,MAAM,aAAa,GAA8B,MAAM,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;gBAErF,aAAa,CAAC,OAAO,GAAG,WAAW,CAAC,mBAAmB,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;gBAE/E,OAAO,aAAa,CAAC;YACvB,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAA+B,GAGvD;QACC,OAAO,IAAI,oCAAuB,CAAmB;YACnD,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7D,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,yBAAyB,GAAG,CAAC,UAAU,EAAE;YACtD,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,4BAA4B,CAAC,QAAQ,EAAE;YAC/C,GAAG,EAAE,KAAK,EAAE,GAA2B,EAAE,IAAY,EAAmB,EAAE;gBACxE,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEhG,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,WAAW,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;YACvE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,iBAAiB,CAA+B,GAGtD;QACC,OAAO,IAAI,oCAAuB,CAA4B;YAC5D,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7D,MAAM,EAAE,OAAO;YACf,WAAW,EAAE,wBAAwB,GAAG,CAAC,UAAU,EAAE;YACrD,aAAa,EAAE,IAAI;YACnB,MAAM,EAAE,4BAA4B,CAAC,QAAQ,EAAE;YAC/C,GAAG,EAAE,KAAK,EAAE,GAA2B,EAAE,IAAqB,EAAmB,EAAE;gBACjF,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEhG,OAAO,WAAW,CAAC,eAAe,CAAC,MAAM,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;YACxE,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,kBAAkB,CAA+B,GAIvD;QACC,MAAM,WAAW,GAAW,4BAA4B,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;QAE5E,OAAO,IAAI,oCAAuB,CAA+B;YAC/D,MAAM,EAAE,4BAA4B,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;YAC7D,MAAM,EAAE,QAAQ;YAChB,WAAW,EAAE,aAAa,GAAG,CAAC,UAAU,YAAY;YACpD,MAAM,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,oCAAuB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE;YACnF,MAAM,EAAE,4BAA4B,CAAC,QAAQ,EAAE;YAC/C,GAAG,EAAE,KAAK,EAAE,GAA2B,EAAE,EAAU,EAA+B,EAAE;gBAClF,MAAM,WAAW,GAA8B,IAAI,GAAG,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC;gBAEhG,MAAM,WAAW,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;gBAEjC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;YAC/B,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,8DAA8D;IACtD,MAAM,CAAC,QAAQ,CAAC,UAAkB;QACxC,OAAO,4BAAe,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;IACjD,CAAC;IAED,8GAA8G;IACtG,MAAM,CAAC,aAAa,CAAC,GAAiD;QAC5E,OAAO,GAAG,CAAC,WAAW,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,WAAW,EAAE,IAAI,CAAC;IAChE,CAAC;IAED,yFAAyF;IACjF,MAAM,CAAC,QAAQ;QACrB,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC;IAChD,CAAC;CACF;AAtKD,oEAsKC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export * from './_collections/default-endpoints.util';
|
|
2
|
+
export * from './_collections/default-operations.util';
|
|
2
3
|
export * from './_models/default-user.data-model';
|
|
3
4
|
export * from './_services/default-user.data-service';
|
|
4
5
|
export * from './_services/default-auth.service';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/defaults/index.ts"],"names":[],"mappings":"AAQA,cAAc,uCAAuC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/_modules/defaults/index.ts"],"names":[],"mappings":"AAQA,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,mCAAmC,CAAC;AAGlD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,2CAA2C,CAAC"}
|
|
@@ -9,6 +9,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
9
9
|
const tslib_1 = require("tslib");
|
|
10
10
|
// COLLECTIONS
|
|
11
11
|
tslib_1.__exportStar(require("./_collections/default-endpoints.util"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./_collections/default-operations.util"), exports);
|
|
12
13
|
// MODELS
|
|
13
14
|
tslib_1.__exportStar(require("./_models/default-user.data-model"), exports);
|
|
14
15
|
// SERVICES
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/defaults/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,kBAAkB;AAClB,EAAE;AACF,uDAAuD;AACvD,0DAA0D;AAC1D,EAAE;;;AAEF,cAAc;AACd,gFAAsD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/_modules/defaults/index.ts"],"names":[],"mappings":";AAAA,EAAE;AACF,kBAAkB;AAClB,EAAE;AACF,uDAAuD;AACvD,0DAA0D;AAC1D,EAAE;;;AAEF,cAAc;AACd,gFAAsD;AACtD,iFAAuD;AAEvD,SAAS;AACT,4EAAkD;AAElD,WAAW;AACX,gFAAsD;AACtD,2EAAiD;AACjD,oFAA0D"}
|
|
@@ -11,12 +11,20 @@ import { DyNTS_Mcp_CallResult, DyNTS_Mcp_ServerInfo, DyNTS_Mcp_ToolDefinition }
|
|
|
11
11
|
* 3. egységes hiba-fordítás: a tool-handler dobott hibája (vagy `isError:true` outcome-ja)
|
|
12
12
|
* strukturált `CallToolResult { isError:true }`-tá fordul — SOHA nem néma, SOHA nem crash.
|
|
13
13
|
*
|
|
14
|
+
* **Optional SDK (HP-DOPL MP-3.1):** the SDK is loaded only when a transport starts (`startStdio`). Building the
|
|
15
|
+
* adapter, registering tools and `dispatchToolCall` work WITHOUT the SDK installed; a missing SDK fails the start
|
|
16
|
+
* with a coded `DyNTS-MCP-SDK` error that names the package to install.
|
|
17
|
+
*
|
|
14
18
|
* **stdio-konvenció:** a stdout a JSON-RPC csatorna — az adaptor maga SEMMIT nem ír a stdout-ra a
|
|
15
19
|
* transport-payload-on kívül (minden log/diag a hívó App felelőssége, stderr-re).
|
|
16
20
|
*/
|
|
17
21
|
export declare class DyNTS_Mcp_Adapter {
|
|
18
|
-
/**
|
|
19
|
-
private
|
|
22
|
+
/** Loads the SDK modules - a static seam, so a spec can simulate a missing or a fake SDK. */
|
|
23
|
+
private static importSdk;
|
|
24
|
+
/** A SDK MCP-szerver (a transport-agnosztikus protocol-réteg) - created on the first transport start. */
|
|
25
|
+
private server;
|
|
26
|
+
/** The server info, kept until the SDK server is created. */
|
|
27
|
+
private readonly serverInfo;
|
|
20
28
|
/** A regisztrált tool-definíciók `name` → def map-je (a `tools/call` dispatch-hez). */
|
|
21
29
|
private readonly tools;
|
|
22
30
|
constructor(set: DyNTS_Mcp_ServerInfo);
|
|
@@ -43,6 +51,13 @@ export declare class DyNTS_Mcp_Adapter {
|
|
|
43
51
|
name: string;
|
|
44
52
|
arguments?: unknown;
|
|
45
53
|
}): Promise<DyNTS_Mcp_CallResult>;
|
|
54
|
+
/**
|
|
55
|
+
* Loads the SDK; a missing SDK becomes a coded error that says what to install.
|
|
56
|
+
* @throws 501 `DyNTS-MCP-SDK` (the SDK is not installed) - `DyNTS-MCP-SDL` (installed, but failed to load)
|
|
57
|
+
*/
|
|
58
|
+
private static loadSdk;
|
|
59
|
+
/** The SDK server, created once with the handlers installed. */
|
|
60
|
+
private getServer;
|
|
46
61
|
/** A `tools/list` és a `tools/call` JSON-RPC handler bekötése a SDK-szerverre. */
|
|
47
62
|
private installHandlers;
|
|
48
63
|
/** Egy sikeres (vagy strukturált-hiba) handler-outcome → `CallToolResult` (text-JSON content). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynts-mcp.adapter.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dynts-mcp.adapter.d.ts","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,wBAAwB,EAEzB,MAAM,2CAA2C,CAAC;AAanD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,iBAAiB;IAE5B,6FAA6F;IAC7F,OAAO,CAAC,MAAM,CAAC,SAAS,CAetB;IAEF,yGAAyG;IACzG,OAAO,CAAC,MAAM,CAAuB;IAErC,6DAA6D;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuB;IAElD,uFAAuF;IACvF,OAAO,CAAC,QAAQ,CAAC,KAAK,CACwB;gBAElC,GAAG,EAAE,oBAAoB;IAKrC;;;SAGK;IACE,YAAY,CAAC,UAAU,EAAE,wBAAwB,GAAG,IAAI;IAI/D,8EAA8E;IACvE,sBAAsB,IAAI,MAAM,EAAE;IAIzC;;;SAGK;IACQ,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOxC,qEAAqE;IACxD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOnC;;;;SAIK;IACQ,gBAAgB,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAoBxG;;;OAGG;mBACkB,OAAO;IAqB5B,gEAAgE;IAChE,OAAO,CAAC,SAAS;IAYjB,kFAAkF;IAClF,OAAO,CAAC,eAAe;IAwBvB,kGAAkG;IAClG,OAAO,CAAC,YAAY;IAOpB,iGAAiG;IACjG,OAAO,CAAC,WAAW;IASnB,kGAAkG;IAClG,OAAO,CAAC,aAAa;IAYrB,mGAAmG;IACnG,OAAO,CAAC,SAAS;CAOlB"}
|
|
@@ -1,15 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.DyNTS_Mcp_Adapter = void 0;
|
|
4
|
-
// A `@modelcontextprotocol/sdk` ESM-only csomag; a deep subpath-importjai (server/index, server/stdio,
|
|
5
|
-
// types) KÖTELEZŐEN `.js`-suffixet igényelnek (az SDK `exports`-map így oldja fel) — ezért a `no-js-import`
|
|
6
|
-
// szabály ITT indokoltan kikapcsolva (C2, FAM-REV bedrock-fix). Suffix-strip → resolve-hiba.
|
|
7
|
-
/* eslint-disable @futdevpro/dynamo/no-js-import */
|
|
8
|
-
const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
|
|
9
|
-
const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
|
|
10
|
-
const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
|
|
11
37
|
/* eslint-enable @futdevpro/dynamo/no-js-import */
|
|
12
38
|
const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
39
|
+
const global_settings_const_1 = require("../../../_collections/global-settings.const");
|
|
40
|
+
/** The supported version range of the optional MCP SDK peer (kept in sync with `peerDependencies`). */
|
|
41
|
+
const DyNTS_mcpSdkRange = '~1.29.0';
|
|
13
42
|
/**
|
|
14
43
|
* `DyNTS_Mcp_Adapter` (BFR-AM-003) — a hivatalos `@modelcontextprotocol/sdk` köré épített **vékony
|
|
15
44
|
* adaptor-réteg**. EZ az EGYETLEN hely a `/mcp` submodule-ban, ahol a SDK-típusok megjelennek — a
|
|
@@ -22,17 +51,39 @@ const fsm_dynamo_1 = require("@futdevpro/fsm-dynamo");
|
|
|
22
51
|
* 3. egységes hiba-fordítás: a tool-handler dobott hibája (vagy `isError:true` outcome-ja)
|
|
23
52
|
* strukturált `CallToolResult { isError:true }`-tá fordul — SOHA nem néma, SOHA nem crash.
|
|
24
53
|
*
|
|
54
|
+
* **Optional SDK (HP-DOPL MP-3.1):** the SDK is loaded only when a transport starts (`startStdio`). Building the
|
|
55
|
+
* adapter, registering tools and `dispatchToolCall` work WITHOUT the SDK installed; a missing SDK fails the start
|
|
56
|
+
* with a coded `DyNTS-MCP-SDK` error that names the package to install.
|
|
57
|
+
*
|
|
25
58
|
* **stdio-konvenció:** a stdout a JSON-RPC csatorna — az adaptor maga SEMMIT nem ír a stdout-ra a
|
|
26
59
|
* transport-payload-on kívül (minden log/diag a hívó App felelőssége, stderr-re).
|
|
27
60
|
*/
|
|
28
61
|
class DyNTS_Mcp_Adapter {
|
|
29
|
-
/**
|
|
30
|
-
|
|
62
|
+
/** Loads the SDK modules - a static seam, so a spec can simulate a missing or a fake SDK. */
|
|
63
|
+
static importSdk = async () => {
|
|
64
|
+
/* eslint-disable @futdevpro/dynamo/no-js-import */
|
|
65
|
+
const [serverModule, stdioModule, typesModule] = await Promise.all([
|
|
66
|
+
Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/server/index.js'))),
|
|
67
|
+
Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/server/stdio.js'))),
|
|
68
|
+
Promise.resolve().then(() => __importStar(require('@modelcontextprotocol/sdk/types.js'))),
|
|
69
|
+
]);
|
|
70
|
+
/* eslint-enable @futdevpro/dynamo/no-js-import */
|
|
71
|
+
return {
|
|
72
|
+
Server: serverModule.Server,
|
|
73
|
+
StdioServerTransport: stdioModule.StdioServerTransport,
|
|
74
|
+
CallToolRequestSchema: typesModule.CallToolRequestSchema,
|
|
75
|
+
ListToolsRequestSchema: typesModule.ListToolsRequestSchema,
|
|
76
|
+
};
|
|
77
|
+
};
|
|
78
|
+
/** A SDK MCP-szerver (a transport-agnosztikus protocol-réteg) - created on the first transport start. */
|
|
79
|
+
server = null;
|
|
80
|
+
/** The server info, kept until the SDK server is created. */
|
|
81
|
+
serverInfo;
|
|
31
82
|
/** A regisztrált tool-definíciók `name` → def map-je (a `tools/call` dispatch-hez). */
|
|
32
83
|
tools = new Map();
|
|
33
84
|
constructor(set) {
|
|
34
|
-
|
|
35
|
-
this.
|
|
85
|
+
// no SDK access here: building the registry must work without the optional peer
|
|
86
|
+
this.serverInfo = { name: set.name, version: set.version };
|
|
36
87
|
}
|
|
37
88
|
/**
|
|
38
89
|
* Az EGYETLEN tool-regisztrációs choke-pont. A regisztrált tool-ok hirdetődnek a `tools/list`-ben
|
|
@@ -50,12 +101,16 @@ class DyNTS_Mcp_Adapter {
|
|
|
50
101
|
* regisztrált tool-okat hirdeti. A boot-üzenetek a stderr-en (a hívó App felel).
|
|
51
102
|
*/
|
|
52
103
|
async startStdio() {
|
|
53
|
-
const
|
|
54
|
-
|
|
104
|
+
const sdk = await DyNTS_Mcp_Adapter.loadSdk();
|
|
105
|
+
const transport = new sdk.StdioServerTransport();
|
|
106
|
+
await this.getServer(sdk).connect(transport);
|
|
55
107
|
}
|
|
56
108
|
/** A szerver leállítása (graceful close — teszt-/shutdown-úthoz). */
|
|
57
109
|
async close() {
|
|
58
|
-
|
|
110
|
+
// no-op when no transport was started (the SDK server does not exist yet)
|
|
111
|
+
if (this.server) {
|
|
112
|
+
await this.server.close();
|
|
113
|
+
}
|
|
59
114
|
}
|
|
60
115
|
/**
|
|
61
116
|
* Egy tool-hívás KÖZVETLEN dispatch-elése (a transport-megkerülésével) — a contract/registry-teszt
|
|
@@ -79,10 +134,42 @@ class DyNTS_Mcp_Adapter {
|
|
|
79
134
|
// =========================================================================
|
|
80
135
|
// SDK request-handler bekötés (tools/list + tools/call)
|
|
81
136
|
// =========================================================================
|
|
137
|
+
/**
|
|
138
|
+
* Loads the SDK; a missing SDK becomes a coded error that says what to install.
|
|
139
|
+
* @throws 501 `DyNTS-MCP-SDK` (the SDK is not installed) - `DyNTS-MCP-SDL` (installed, but failed to load)
|
|
140
|
+
*/
|
|
141
|
+
static async loadSdk() {
|
|
142
|
+
try {
|
|
143
|
+
return await DyNTS_Mcp_Adapter.importSdk();
|
|
144
|
+
}
|
|
145
|
+
catch (error) {
|
|
146
|
+
const code = error?.code;
|
|
147
|
+
const isMissing = (code === 'MODULE_NOT_FOUND' || code === 'ERR_MODULE_NOT_FOUND') &&
|
|
148
|
+
String(error?.message).includes('@modelcontextprotocol/sdk');
|
|
149
|
+
throw new fsm_dynamo_1.DyFM_Error({
|
|
150
|
+
status: 501,
|
|
151
|
+
errorCode: `${global_settings_const_1.DyNTS_global_settings.systemShortCodeName}|${isMissing ? 'DyNTS-MCP-SDK' : 'DyNTS-MCP-SDL'}`,
|
|
152
|
+
message: isMissing ?
|
|
153
|
+
`the MCP transport needs the optional peer dependency @modelcontextprotocol/sdk@${DyNTS_mcpSdkRange} ` +
|
|
154
|
+
`- install it: pnpm add @modelcontextprotocol/sdk@${DyNTS_mcpSdkRange}` :
|
|
155
|
+
`the MCP SDK (@modelcontextprotocol/sdk) is installed, but it could not be loaded: ${error?.message}`,
|
|
156
|
+
error: error,
|
|
157
|
+
additionalContent: { package: '@modelcontextprotocol/sdk', range: DyNTS_mcpSdkRange, code: code },
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
/** The SDK server, created once with the handlers installed. */
|
|
162
|
+
getServer(sdk) {
|
|
163
|
+
if (!this.server) {
|
|
164
|
+
this.server = new sdk.Server({ name: this.serverInfo.name, version: this.serverInfo.version }, { capabilities: { tools: {} } });
|
|
165
|
+
this.installHandlers(this.server, sdk);
|
|
166
|
+
}
|
|
167
|
+
return this.server;
|
|
168
|
+
}
|
|
82
169
|
/** A `tools/list` és a `tools/call` JSON-RPC handler bekötése a SDK-szerverre. */
|
|
83
|
-
installHandlers() {
|
|
170
|
+
installHandlers(server, sdk) {
|
|
84
171
|
// tools/list — PONTOSAN a regisztrált (advertised) tool-okat hirdeti.
|
|
85
|
-
|
|
172
|
+
server.setRequestHandler(sdk.ListToolsRequestSchema, async () => ({
|
|
86
173
|
tools: Array.from(this.tools.values()).map((definition) => ({
|
|
87
174
|
name: definition.name,
|
|
88
175
|
description: definition.description,
|
|
@@ -92,7 +179,7 @@ class DyNTS_Mcp_Adapter {
|
|
|
92
179
|
// tools/call — a megfelelő handler futtatása + egységes hiba-fordítás (a közös dispatch-en át).
|
|
93
180
|
// A `DyNTS_Mcp_CallResult` a SDK `CallToolResult` egy al-shape-je (text-content + isError) — a
|
|
94
181
|
// SDK-cast KIZÁRÓLAG itt, az adaptor-boundary-n él (a SDK izolálva marad).
|
|
95
|
-
|
|
182
|
+
server.setRequestHandler(sdk.CallToolRequestSchema, async (request) => (await this.dispatchToolCall({
|
|
96
183
|
name: request.params.name,
|
|
97
184
|
arguments: request.params.arguments,
|
|
98
185
|
})));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynts-mcp.adapter.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dynts-mcp.adapter.js","sourceRoot":"","sources":["../../../../src/_modules/mcp/_services/dynts-mcp.adapter.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/nts-dynamo",
|
|
3
|
-
"version": "01.15.
|
|
3
|
+
"version": "01.15.291",
|
|
4
4
|
"description": "Dynamic NodeTS (NodeJS-Typescript), MongoDB Backend System Framework by Future Development Program Ltd.",
|
|
5
5
|
"DyBu_settings": {
|
|
6
6
|
"packageType": "server-package",
|