@futdevpro/fsm-dynamo 1.20.66 → 1.20.67
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.
|
@@ -5,6 +5,9 @@ import { DyFM_Operation_JsonSchema } from '../../_models/interfaces/operation-js
|
|
|
5
5
|
* Generates the input JSON-schema of an operation (HP-DOPL MP-1.6, DMCP-005) from the runtime data model
|
|
6
6
|
* description (`bodyParams.properties`) — TypeScript generics do not exist at runtime, the properties do.
|
|
7
7
|
* Explicit `inputs` are added on top and override a body property of the same name.
|
|
8
|
+
* The guardrail arguments the operation honours are advertised too (`ifMatch` unless `guardrails.ifMatch` is `none`,
|
|
9
|
+
* required when it is `required`; `dryRun` when `guardrails.dryRun`), so a client that validates against the closed
|
|
10
|
+
* schema can still send them — a declared input of the same name is never overridden.
|
|
8
11
|
*
|
|
9
12
|
* Left out on purpose:
|
|
10
13
|
* - server-managed metadata (every key starting with `_`, e.g. `_id`, `__v`, `__created`);
|
|
@@ -23,6 +26,13 @@ export declare class DyFM_OperationSchema_Util {
|
|
|
23
26
|
* @param operation - the operation description
|
|
24
27
|
*/
|
|
25
28
|
static inputSchema(operation: DyFM_OperationSettings_ControlModel<unknown, unknown[], unknown>): DyFM_Operation_JsonSchema;
|
|
29
|
+
/**
|
|
30
|
+
* Adds the guardrail arguments the operation honours (never over a declared input of the same name).
|
|
31
|
+
* @param operation - the operation description
|
|
32
|
+
* @param properties - the schema properties to extend
|
|
33
|
+
* @param required - the required names to extend
|
|
34
|
+
*/
|
|
35
|
+
private static addGuardrailArgs;
|
|
26
36
|
/**
|
|
27
37
|
* Maps one data property (recursively for objects) to a schema.
|
|
28
38
|
* @param property - the data property params
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-schema.util.d.ts","sourceRoot":"","sources":["../../../src/_collections/utils/operation-schema.util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"operation-schema.util.d.ts","sourceRoot":"","sources":["../../../src/_collections/utils/operation-schema.util.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,EACzB,MAAM,iEAAiE,CAAC;AACzE,OAAO,EACL,mCAAmC,EACpC,MAAM,+DAA+D,CAAC;AAEvE,OAAO,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AAKrG;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBAAa,yBAAyB;IACpC;;;OAGG;IACH,MAAM,CAAC,WAAW,CAChB,SAAS,EAAE,mCAAmC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,GAC1E,yBAAyB;IAoC5B;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAuB/B;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,wBAAwB,CAAC,OAAO,EAAE,OAAO,CAAC,GAAG,yBAAyB;IAiCtG;;;;OAIG;IACH,OAAO,CAAC,MAAM,CAAC,YAAY;IA+B3B,oDAAoD;IACpD,OAAO,CAAC,MAAM,CAAC,mBAAmB;IAkBlC,gEAAgE;IAChE,OAAO,CAAC,MAAM,CAAC,UAAU;IAQzB,8FAA8F;IAC9F,OAAO,CAAC,MAAM,CAAC,gBAAgB;IAO/B,0FAA0F;IAC1F,OAAO,CAAC,MAAM,CAAC,WAAW;CAG3B"}
|
|
@@ -2,11 +2,15 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.DyFM_OperationSchema_Util = void 0;
|
|
4
4
|
const basic_property_type_enum_1 = require("../../_enums/basic-property-type.enum");
|
|
5
|
+
const operation_if_match_type_enum_1 = require("../../_enums/operation-if-match.type-enum");
|
|
5
6
|
const utilities_util_1 = require("./utilities.util");
|
|
6
7
|
/**
|
|
7
8
|
* Generates the input JSON-schema of an operation (HP-DOPL MP-1.6, DMCP-005) from the runtime data model
|
|
8
9
|
* description (`bodyParams.properties`) — TypeScript generics do not exist at runtime, the properties do.
|
|
9
10
|
* Explicit `inputs` are added on top and override a body property of the same name.
|
|
11
|
+
* The guardrail arguments the operation honours are advertised too (`ifMatch` unless `guardrails.ifMatch` is `none`,
|
|
12
|
+
* required when it is `required`; `dryRun` when `guardrails.dryRun`), so a client that validates against the closed
|
|
13
|
+
* schema can still send them — a declared input of the same name is never overridden.
|
|
10
14
|
*
|
|
11
15
|
* Left out on purpose:
|
|
12
16
|
* - server-managed metadata (every key starting with `_`, e.g. `_id`, `__v`, `__created`);
|
|
@@ -39,6 +43,7 @@ class DyFM_OperationSchema_Util {
|
|
|
39
43
|
required.delete(key);
|
|
40
44
|
}
|
|
41
45
|
});
|
|
46
|
+
DyFM_OperationSchema_Util.addGuardrailArgs(operation, properties, required);
|
|
42
47
|
const schema = {
|
|
43
48
|
type: 'object',
|
|
44
49
|
properties: properties,
|
|
@@ -49,6 +54,27 @@ class DyFM_OperationSchema_Util {
|
|
|
49
54
|
}
|
|
50
55
|
return schema;
|
|
51
56
|
}
|
|
57
|
+
/**
|
|
58
|
+
* Adds the guardrail arguments the operation honours (never over a declared input of the same name).
|
|
59
|
+
* @param operation - the operation description
|
|
60
|
+
* @param properties - the schema properties to extend
|
|
61
|
+
* @param required - the required names to extend
|
|
62
|
+
*/
|
|
63
|
+
static addGuardrailArgs(operation, properties, required) {
|
|
64
|
+
const ifMatch = operation?.guardrails?.ifMatch ?? operation_if_match_type_enum_1.DyFM_OperationIfMatch_Type.none;
|
|
65
|
+
if (ifMatch !== operation_if_match_type_enum_1.DyFM_OperationIfMatch_Type.none && !properties.ifMatch) {
|
|
66
|
+
properties.ifMatch = {
|
|
67
|
+
type: 'string',
|
|
68
|
+
description: 'The current etag of the entity; the write is refused when the entity changed since.',
|
|
69
|
+
};
|
|
70
|
+
if (ifMatch === operation_if_match_type_enum_1.DyFM_OperationIfMatch_Type.required) {
|
|
71
|
+
required.add('ifMatch');
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
if (operation?.guardrails?.dryRun === true && !properties.dryRun) {
|
|
75
|
+
properties.dryRun = { type: 'boolean', description: 'Validate and preview the change without saving it.' };
|
|
76
|
+
}
|
|
77
|
+
}
|
|
52
78
|
/**
|
|
53
79
|
* Maps one data property (recursively for objects) to a schema.
|
|
54
80
|
* @param property - the data property params
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-schema.util.js","sourceRoot":"","sources":["../../../src/_collections/utils/operation-schema.util.ts"],"names":[],"mappings":";;;AAAA,oFAAgF;
|
|
1
|
+
{"version":3,"file":"operation-schema.util.js","sourceRoot":"","sources":["../../../src/_collections/utils/operation-schema.util.ts"],"names":[],"mappings":";;;AAAA,oFAAgF;AAChF,4FAAuF;AAUvF,qDAA6D;AAG7D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAa,yBAAyB;IACpC;;;OAGG;IACH,MAAM,CAAC,WAAW,CAChB,SAA2E;QAE3E,8DAA8D;QAC9D,MAAM,IAAI,GAA8B,yBAAyB,CAAC,YAAY,CAC5E,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAC/D,CAAC;QACF,MAAM,UAAU,GAAiD,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QACvF,MAAM,QAAQ,GAAgB,IAAI,GAAG,CAAS,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC;QAEnE,MAAM,CAAC,OAAO,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAC7C,CAAC,CAAE,GAAG,EAAE,KAAK,CAA0C,EAAQ,EAAE;YAC/D,UAAU,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;YAEvE,gEAAgE;YAChE,IAAI,KAAK,CAAC,QAAQ,KAAK,IAAI,EAAE,CAAC;gBAC5B,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACpB,CAAC;iBAAM,CAAC;gBACN,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CACF,CAAC;QAEF,yBAAyB,CAAC,gBAAgB,CAAC,SAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;QAE5E,MAAM,MAAM,GAA8B;YACxC,IAAI,EAAE,QAAQ;YACd,UAAU,EAAE,UAAU;YACtB,oBAAoB,EAAE,KAAK;SAC5B,CAAC;QAEF,IAAI,QAAQ,CAAC,IAAI,EAAE,CAAC;YAClB,MAAM,CAAC,QAAQ,GAAG,CAAE,GAAG,QAAQ,CAAE,CAAC;QACpC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACK,MAAM,CAAC,gBAAgB,CAC7B,SAA2E,EAC3E,UAAwD,EACxD,QAAqB;QAErB,MAAM,OAAO,GAA+B,SAAS,EAAE,UAAU,EAAE,OAAO,IAAI,yDAA0B,CAAC,IAAI,CAAC;QAE9G,IAAI,OAAO,KAAK,yDAA0B,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YACvE,UAAU,CAAC,OAAO,GAAG;gBACnB,IAAI,EAAE,QAAQ;gBACd,WAAW,EAAE,qFAAqF;aACnG,CAAC;YAEF,IAAI,OAAO,KAAK,yDAA0B,CAAC,QAAQ,EAAE,CAAC;gBACpD,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,IAAI,SAAS,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;YACjE,UAAU,CAAC,MAAM,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oDAAoD,EAAE,CAAC;QAC7G,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,cAAc,CAAC,QAAoD;QACxE,MAAM,SAAS,GAA4B,yBAAyB,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;QACjG,MAAM,MAAM,GAA8B,yBAAyB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;QAC1F,mGAAmG;QACnG,MAAM,YAAY,GAAW,MAAM,CAAC,QAAQ,EAAE,YAAY,IAAI,QAAQ,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;QAEpF,qBAAqB;QACrB,IAAI,SAAS,KAAK,kDAAuB,CAAC,KAAK,IAAI,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAC/E,MAAM,CAAC,KAAK,GAAG,yBAAyB,CAAC,UAAU,CACjD,yBAAyB,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CACjE,CAAC;QACJ,CAAC;QAED,2BAA2B;QAC3B,IAAI,SAAS,KAAK,kDAAuB,CAAC,MAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;YAC7E,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,yBAAyB,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,CAAC;QAC1F,CAAC;QAED,IAAI,QAAQ,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC;QACpC,CAAC;QAED,IAAI,OAAO,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACxC,CAAC;QAED,IAAI,OAAO,QAAQ,EAAE,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC5C,MAAM,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACxC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;OAIG;IACK,MAAM,CAAC,YAAY,CACzB,cAAsF,EACtF,WAAoB;QAEpB,MAAM,UAAU,GAAiD,EAAE,CAAC;QACpE,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,MAAM,CAAC,OAAO,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC,OAAO,CAC1C,CAAC,CAAE,GAAG,EAAE,QAAQ,CAAwD,EAAQ,EAAE;YAChF,IAAI,GAAG,KAAK,WAAW,IAAI,CAAC,yBAAyB,CAAC,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,CAAC;gBACtF,OAAO;YACT,CAAC;YAED,UAAU,CAAC,GAAG,CAAC,GAAG,yBAAyB,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAErE,oDAAoD;YACpD,IAAI,QAAQ,CAAC,QAAQ,KAAK,IAAI,IAAI,QAAQ,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACjE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACrB,CAAC;QACH,CAAC,CACF,CAAC;QAEF,MAAM,MAAM,GAA8B,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,oBAAoB,EAAE,KAAK,EAAE,CAAC;QAElH,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAC;QAC7B,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,oDAAoD;IAC5C,MAAM,CAAC,mBAAmB,CAAC,KAAmC;QACpE,MAAM,MAAM,GAA8B,yBAAyB,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE3F,IAAI,KAAK,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;QACzC,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,MAAM,CAAC,IAAI,GAAG,CAAE,GAAG,KAAK,CAAC,IAAI,CAAE,CAAC;QAClC,CAAC;QAED,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,MAAM,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QACjC,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,gEAAgE;IACxD,MAAM,CAAC,UAAU,CAAC,IAA6B;QACrD,IAAI,IAAI,KAAK,kDAAuB,CAAC,IAAI,EAAE,CAAC;YAC1C,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;QACjD,CAAC;QAED,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,8FAA8F;IACtF,MAAM,CAAC,gBAAgB,CAAC,GAAW,EAAE,QAAoD;QAC/F,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC;YACzB,QAAQ,EAAE,SAAS,KAAK,IAAI;YAC5B,QAAQ,EAAE,QAAQ,KAAK,IAAI;YAC3B,yBAAyB,CAAC,WAAW,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,kDAAuB,CAAC,QAAQ,CAAC;IAC/F,CAAC;IAED,0FAA0F;IAClF,MAAM,CAAC,WAAW,CAAC,IAAwB;QACjD,OAAO,IAAI,CAAC,CAAC,CAAC,IAAA,0CAAyB,EAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kDAAuB,CAAC,MAAM,CAAC;IACjF,CAAC;CACF;AAzLD,8DAyLC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/fsm-dynamo",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.67",
|
|
4
4
|
"description": "Full Stack Model Collection for Dynamic (NodeJS-Typescript) Framework called Dynamo, by Future Development Ltd.",
|
|
5
5
|
"DyBu_settings": {
|
|
6
6
|
"packageType": "full-stack-package",
|