@futdevpro/fsm-dynamo 1.20.70 → 1.20.73
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/utils/operation-guardrails.util.d.ts +21 -0
- package/build/_collections/utils/operation-guardrails.util.d.ts.map +1 -1
- package/build/_collections/utils/operation-guardrails.util.js +41 -13
- package/build/_collections/utils/operation-guardrails.util.js.map +1 -1
- package/build/_models/interfaces/operation-patch-violation.interface.d.ts +25 -0
- package/build/_models/interfaces/operation-patch-violation.interface.d.ts.map +1 -0
- package/build/_models/interfaces/operation-patch-violation.interface.js +3 -0
- package/build/_models/interfaces/operation-patch-violation.interface.js.map +1 -0
- package/build/index.d.ts +1 -0
- package/build/index.d.ts.map +1 -1
- package/build/index.js +1 -0
- package/build/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ import { DyFM_OperationContext_ControlModel } from '../../_models/control-models
|
|
|
2
2
|
import { DyFM_OperationSettings_ControlModel } from '../../_models/control-models/operation-settings.control-model';
|
|
3
3
|
import { DyFM_OperationPatch_Result } from '../../_models/interfaces/operation-patch-result.interface';
|
|
4
4
|
import { DyFM_Operation_PatchField } from '../../_models/interfaces/operation-patch-field.interface';
|
|
5
|
+
import { DyFM_Operation_PatchViolation } from '../../_models/interfaces/operation-patch-violation.interface';
|
|
5
6
|
/**
|
|
6
7
|
* Transport-independent write guardrails of an operation (HP-DOPL MP-1.5, DMCP-009).
|
|
7
8
|
*
|
|
@@ -41,6 +42,26 @@ export declare class DyFM_OperationGuardrails_Util {
|
|
|
41
42
|
* @throws 400 `DyFM-OPG-PTY` (not an object) · `DyFM-OPG-PFD` (rejected fields) · `DyFM-OPG-PEM` (nothing left)
|
|
42
43
|
*/
|
|
43
44
|
static filterPatch(operation: DyFM_OperationSettings_ControlModel<unknown, unknown[], unknown>, patch: Record<string, unknown>, ctx?: DyFM_OperationContext_ControlModel): DyFM_OperationPatch_Result;
|
|
45
|
+
/**
|
|
46
|
+
* Checks the values of an ALREADY FILTERED patch against the declared field types — and only reports;
|
|
47
|
+
* it never throws.
|
|
48
|
+
*
|
|
49
|
+
* # Why this is public and error-free
|
|
50
|
+
*
|
|
51
|
+
* The RULE (what a usable value is) belongs to the bedrock, but the ERROR SHAPE belongs to the transport:
|
|
52
|
+
* an operation raises a coded `DyFM_Error`, while a hand-written MCP or REST handler has its own error
|
|
53
|
+
* contract that its callers already depend on. A shared throwing helper would force one of them to adopt
|
|
54
|
+
* the other's error — a consumer-visible change for no benefit.
|
|
55
|
+
*
|
|
56
|
+
* ⚠️ MEASURED NEED (HP-DOPL 8.2, 2026-09-19): the organizer's LIVE MCP route has its own patch validator
|
|
57
|
+
* and its own error type; it needs exactly this rule and none of this package's error handling. Without
|
|
58
|
+
* this method it would have to copy the type checks — a second owner of the same logic.
|
|
59
|
+
*
|
|
60
|
+
* @param fields - the declared patch fields (use `patchFieldsOf` to normalize a raw whitelist)
|
|
61
|
+
* @param patch - the patch to check; fields not present in it are skipped
|
|
62
|
+
* @returns one entry per violating field (empty when every value is usable)
|
|
63
|
+
*/
|
|
64
|
+
static checkPatchValues(fields: DyFM_Operation_PatchField[], patch: Record<string, unknown>): DyFM_Operation_PatchViolation[];
|
|
44
65
|
/**
|
|
45
66
|
* Normalizes a `patchWhitelist` into typed entries, so the rest of the code has ONE shape to handle.
|
|
46
67
|
* @param whitelist - the declared whitelist (names, typed entries, or a mix of both)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-guardrails.util.d.ts","sourceRoot":"","sources":["../../../src/_collections/utils/operation-guardrails.util.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kCAAkC,EACnC,MAAM,8DAA8D,CAAC;AACtE,OAAO,EACL,mCAAmC,EACpC,MAAM,+DAA+D,CAAC;AAEvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AACvG,OAAO,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;
|
|
1
|
+
{"version":3,"file":"operation-guardrails.util.d.ts","sourceRoot":"","sources":["../../../src/_collections/utils/operation-guardrails.util.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,kCAAkC,EACnC,MAAM,8DAA8D,CAAC;AACtE,OAAO,EACL,mCAAmC,EACpC,MAAM,+DAA+D,CAAC;AAEvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AACvG,OAAO,EAAE,yBAAyB,EAAE,MAAM,0DAA0D,CAAC;AACrG,OAAO,EACL,6BAA6B,EAC9B,MAAM,8DAA8D,CAAC;AAGtE;;;;;;;;;;;;;;GAcG;AACH,qBAAa,6BAA6B;IACxC;;;OAGG;IACH,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM;IAIrD;;;OAGG;IACH,MAAM,CAAC,mBAAmB,CACxB,SAAS,EAAE,mCAAmC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAC3E,GAAG,EAAE,kCAAkC,GACtC,IAAI;IAmBP;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAClB,SAAS,EAAE,mCAAmC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAC3E,GAAG,EAAE,kCAAkC,EACvC,WAAW,EAAE,MAAM,GAClB,IAAI;IAiCP;;;;;OAKG;IACH,MAAM,CAAC,WAAW,CAChB,SAAS,EAAE,mCAAmC,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAC3E,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,GAAG,CAAC,EAAE,kCAAkC,GACvC,0BAA0B;IA6D7B;;;;;;;;;;;;;;;;;;OAkBG;IACH,MAAM,CAAC,gBAAgB,CACrB,MAAM,EAAE,yBAAyB,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClE,6BAA6B,EAAE;IAuBlC;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAClB,SAAS,EAAE,CAAC,MAAM,GAAG,yBAAyB,CAAC,EAAE,GAAG,SAAS,GAC5D,yBAAyB,EAAE,GAAG,SAAS;IAQ1C;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAwBhC,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAAC,KAAK;CAerB"}
|
|
@@ -125,26 +125,54 @@ class DyFM_OperationGuardrails_Util {
|
|
|
125
125
|
});
|
|
126
126
|
}
|
|
127
127
|
// value check AFTER filtering: a dropped field is not the caller's problem to fix, a wrong value is
|
|
128
|
-
|
|
129
|
-
|
|
128
|
+
const violations = DyFM_OperationGuardrails_Util.checkPatchValues(declared, filtered);
|
|
129
|
+
if (violations.length) {
|
|
130
|
+
const first = violations[0];
|
|
131
|
+
throw DyFM_OperationGuardrails_Util.error({
|
|
132
|
+
errorCode: 'DyFM-OPG-PVL', status: 400, operation: operation, ctx: ctx,
|
|
133
|
+
message: `operation "${operation?.name}": patch field "${first.field}" expects a ${first.expectedType} value`,
|
|
134
|
+
details: { ...first, violations: violations },
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
return { patch: filtered, droppedFields: droppedFields };
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Checks the values of an ALREADY FILTERED patch against the declared field types — and only reports;
|
|
141
|
+
* it never throws.
|
|
142
|
+
*
|
|
143
|
+
* # Why this is public and error-free
|
|
144
|
+
*
|
|
145
|
+
* The RULE (what a usable value is) belongs to the bedrock, but the ERROR SHAPE belongs to the transport:
|
|
146
|
+
* an operation raises a coded `DyFM_Error`, while a hand-written MCP or REST handler has its own error
|
|
147
|
+
* contract that its callers already depend on. A shared throwing helper would force one of them to adopt
|
|
148
|
+
* the other's error — a consumer-visible change for no benefit.
|
|
149
|
+
*
|
|
150
|
+
* ⚠️ MEASURED NEED (HP-DOPL 8.2, 2026-09-19): the organizer's LIVE MCP route has its own patch validator
|
|
151
|
+
* and its own error type; it needs exactly this rule and none of this package's error handling. Without
|
|
152
|
+
* this method it would have to copy the type checks — a second owner of the same logic.
|
|
153
|
+
*
|
|
154
|
+
* @param fields - the declared patch fields (use `patchFieldsOf` to normalize a raw whitelist)
|
|
155
|
+
* @param patch - the patch to check; fields not present in it are skipped
|
|
156
|
+
* @returns one entry per violating field (empty when every value is usable)
|
|
157
|
+
*/
|
|
158
|
+
static checkPatchValues(fields, patch) {
|
|
159
|
+
const violations = [];
|
|
160
|
+
fields.forEach((one) => {
|
|
161
|
+
if (!one.type || !(one.field in patch))
|
|
130
162
|
return;
|
|
131
|
-
const value =
|
|
163
|
+
const value = patch[one.field];
|
|
132
164
|
if (value === null && one.nullable)
|
|
133
165
|
return;
|
|
134
166
|
if (!DyFM_OperationGuardrails_Util.isPatchValueValid(value, one.type)) {
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
expectedType: one.type,
|
|
141
|
-
nullable: Boolean(one.nullable),
|
|
142
|
-
receivedType: value === null ? 'null' : typeof value,
|
|
143
|
-
},
|
|
167
|
+
violations.push({
|
|
168
|
+
field: one.field,
|
|
169
|
+
expectedType: one.type,
|
|
170
|
+
nullable: Boolean(one.nullable),
|
|
171
|
+
receivedType: value === null ? 'null' : typeof value,
|
|
144
172
|
});
|
|
145
173
|
}
|
|
146
174
|
});
|
|
147
|
-
return
|
|
175
|
+
return violations;
|
|
148
176
|
}
|
|
149
177
|
/**
|
|
150
178
|
* Normalizes a `patchWhitelist` into typed entries, so the rest of the code has ONE shape to handle.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operation-guardrails.util.js","sourceRoot":"","sources":["../../../src/_collections/utils/operation-guardrails.util.ts"],"names":[],"mappings":";;;AAAA,4FAAuF;AACvF,0FAA8E;AAO9E,kGAA6F;
|
|
1
|
+
{"version":3,"file":"operation-guardrails.util.js","sourceRoot":"","sources":["../../../src/_collections/utils/operation-guardrails.util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DyFM_OperationPatchField_Type } from '../../_enums/operation-patch-field.type-enum';
|
|
2
|
+
/**
|
|
3
|
+
* ONE unusable patch value, as reported by `DyFM_OperationGuardrails_Util.checkPatchValues`.
|
|
4
|
+
*
|
|
5
|
+
* The shape is deliberately plain data, not an error: the caller decides what to raise from it. An
|
|
6
|
+
* operation turns it into a coded `DyFM_Error` (400 `DyFM-OPG-PVL`); a hand-written transport turns it
|
|
7
|
+
* into whatever its own callers already expect.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* const violations = DyFM_OperationGuardrails_Util.checkPatchValues(fields, patch);
|
|
12
|
+
* if (violations.length) throw new MyOwnInvalidParamsError(violations[0].field, violations[0].expectedType);
|
|
13
|
+
* ```
|
|
14
|
+
*/
|
|
15
|
+
export interface DyFM_Operation_PatchViolation {
|
|
16
|
+
/** The patch field whose value is unusable. */
|
|
17
|
+
field: string;
|
|
18
|
+
/** The type the field declared. */
|
|
19
|
+
expectedType: DyFM_OperationPatchField_Type;
|
|
20
|
+
/** Whether an explicit `null` would have been accepted for this field. */
|
|
21
|
+
nullable: boolean;
|
|
22
|
+
/** What arrived instead — `typeof` of the value, or `'null'` for an explicit null. */
|
|
23
|
+
receivedType: string;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=operation-patch-violation.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-patch-violation.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/operation-patch-violation.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAG7F;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,6BAA6B;IAC5C,+CAA+C;IAC/C,KAAK,EAAE,MAAM,CAAC;IACd,mCAAmC;IACnC,YAAY,EAAE,6BAA6B,CAAC;IAC5C,0EAA0E;IAC1E,QAAQ,EAAE,OAAO,CAAC;IAClB,sFAAsF;IACtF,YAAY,EAAE,MAAM,CAAC;CACtB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"operation-patch-violation.interface.js","sourceRoot":"","sources":["../../../src/_models/interfaces/operation-patch-violation.interface.ts"],"names":[],"mappings":""}
|
package/build/index.d.ts
CHANGED
|
@@ -70,6 +70,7 @@ export * from './_models/interfaces/operation-run-result.interface';
|
|
|
70
70
|
export * from './_models/interfaces/operation-exposure.interface';
|
|
71
71
|
export * from './_models/interfaces/operation-guardrails.interface';
|
|
72
72
|
export * from './_models/interfaces/operation-patch-field.interface';
|
|
73
|
+
export * from './_models/interfaces/operation-patch-violation.interface';
|
|
73
74
|
export * from './_models/interfaces/operation-input-settings.interface';
|
|
74
75
|
export * from './_models/interfaces/operation-json-schema.interface';
|
|
75
76
|
export * from './_models/interfaces/operation-patch-result.interface';
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/build/index.js
CHANGED
|
@@ -86,6 +86,7 @@ tslib_1.__exportStar(require("./_models/interfaces/operation-run-result.interfac
|
|
|
86
86
|
tslib_1.__exportStar(require("./_models/interfaces/operation-exposure.interface"), exports);
|
|
87
87
|
tslib_1.__exportStar(require("./_models/interfaces/operation-guardrails.interface"), exports);
|
|
88
88
|
tslib_1.__exportStar(require("./_models/interfaces/operation-patch-field.interface"), exports);
|
|
89
|
+
tslib_1.__exportStar(require("./_models/interfaces/operation-patch-violation.interface"), exports);
|
|
89
90
|
tslib_1.__exportStar(require("./_models/interfaces/operation-input-settings.interface"), exports);
|
|
90
91
|
tslib_1.__exportStar(require("./_models/interfaces/operation-json-schema.interface"), exports);
|
|
91
92
|
tslib_1.__exportStar(require("./_models/interfaces/operation-patch-result.interface"), exports);
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,wBAAwB;AACxB,oFAA0D;AAC1D,wFAA8D;AAC9D,yFAA+D;AAC/D,iFAAuD;AACvD,+EAAqD;AAErD,oBAAoB;AACpB,0EAAgD;AAChD,0EAAgD;AAChD,yEAA+C;AAC/C,0FAAgE;AAChE,sFAA4D;AAC5D,wEAA8C;AAC9C,+EAAqD;AACrD,gFAAsD;AACtD,2EAAiD;AACjD,gFAAsD;AACtD,0EAAgD;AAChD,2EAAiD;AACjD,gFAAsD;AACtD,yEAA+C;AAC/C,0FAAgE;AAChE,8EAAoD;AACpD,oFAA0D;AAC1D,yFAA+D;AAC/D,kFAAwD;AACxD,qFAA2D;AAC3D,yEAA+C;AAE/C,yBAAyB;AACzB,oFAA0D;AAC1D,8EAAoD;AACpD,gFAAsD;AACtD,sFAA4D;AAC5D,iFAAuD;AAEvD,2BAA2B;AAC3B,yFAA+D;AAC/D,gFAAsD;AACtD,yFAA+D;AAG/D,QAAQ;AACR,4EAAkD;AAClD,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,qEAA2C;AAC3C,kEAAwC;AACxC,4EAAkD;AAClD,gFAAsD;AACtD,mFAAyD;AACzD,iFAAuD;AAEvD,aAAa;AACb,4EAAkD;AAClD,6EAAmD;AACnD,gFAAsD;AAEtD,aAAa;AACb,yEAA+C;AAC/C,mEAAyC;AACzC,2EAAiD;AAGjD,SAAS;AACT,wBAAwB;AACxB,mGAAyE;AACzE,sGAA4E;AAC5E,uFAA6D;AAC7D,mGAAyE;AACzE,oGAA0E;AAC1E,sFAA4D;AAC5D,6FAAmE;AACnE,+FAAqE;AACrE,gHAAsF;AAEtF,6BAA6B;AAC7B,0GAAgF;AAChF,mGAAyE;AACzE,iGAAuE;AAEvE,qBAAqB;AACrB,kFAAwD;AACxD,oFAA0D;AAE1D,oBAAoB;AACpB,oFAA0D;AAC1D,wFAA8D;AAC9D,gGAAsE;AACtE,yFAA+D;AAC/D,8FAAoE;AACpE,4FAAkE;AAClE,8FAAoE;AACpE,+FAAqE;AACrE,kGAAwE;AACxE,+FAAqE;AACrE,gGAAsE;AACtE,+EAAqD;AACrD,uFAA6D;AAC7D,wFAA8D;AAC9D,sFAA4D;AAC5D,uFAA6D;AAC7D,iGAAuE;AACvE,iFAAuD;AAEvD,gCAAgC;AAChC,yGAA+E;AAC/E,qGAA2E;AAE3E,eAAe;AACf,yEAA+C;AAC/C,uEAA6C;AAC7C,yEAA+C;AAC/C,uEAA6C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AACA,cAAc;AACd,wBAAwB;AACxB,oFAA0D;AAC1D,wFAA8D;AAC9D,yFAA+D;AAC/D,iFAAuD;AACvD,+EAAqD;AAErD,oBAAoB;AACpB,0EAAgD;AAChD,0EAAgD;AAChD,yEAA+C;AAC/C,0FAAgE;AAChE,sFAA4D;AAC5D,wEAA8C;AAC9C,+EAAqD;AACrD,gFAAsD;AACtD,2EAAiD;AACjD,gFAAsD;AACtD,0EAAgD;AAChD,2EAAiD;AACjD,gFAAsD;AACtD,yEAA+C;AAC/C,0FAAgE;AAChE,8EAAoD;AACpD,oFAA0D;AAC1D,yFAA+D;AAC/D,kFAAwD;AACxD,qFAA2D;AAC3D,yEAA+C;AAE/C,yBAAyB;AACzB,oFAA0D;AAC1D,8EAAoD;AACpD,gFAAsD;AACtD,sFAA4D;AAC5D,iFAAuD;AAEvD,2BAA2B;AAC3B,yFAA+D;AAC/D,gFAAsD;AACtD,yFAA+D;AAG/D,QAAQ;AACR,4EAAkD;AAClD,wEAA8C;AAC9C,yEAA+C;AAC/C,oEAA0C;AAC1C,qEAA2C;AAC3C,kEAAwC;AACxC,4EAAkD;AAClD,gFAAsD;AACtD,mFAAyD;AACzD,iFAAuD;AAEvD,aAAa;AACb,4EAAkD;AAClD,6EAAmD;AACnD,gFAAsD;AAEtD,aAAa;AACb,yEAA+C;AAC/C,mEAAyC;AACzC,2EAAiD;AAGjD,SAAS;AACT,wBAAwB;AACxB,mGAAyE;AACzE,sGAA4E;AAC5E,uFAA6D;AAC7D,mGAAyE;AACzE,oGAA0E;AAC1E,sFAA4D;AAC5D,6FAAmE;AACnE,+FAAqE;AACrE,gHAAsF;AAEtF,6BAA6B;AAC7B,0GAAgF;AAChF,mGAAyE;AACzE,iGAAuE;AAEvE,qBAAqB;AACrB,kFAAwD;AACxD,oFAA0D;AAE1D,oBAAoB;AACpB,oFAA0D;AAC1D,wFAA8D;AAC9D,gGAAsE;AACtE,yFAA+D;AAC/D,8FAAoE;AACpE,4FAAkE;AAClE,8FAAoE;AACpE,+FAAqE;AACrE,mGAAyE;AACzE,kGAAwE;AACxE,+FAAqE;AACrE,gGAAsE;AACtE,+EAAqD;AACrD,uFAA6D;AAC7D,wFAA8D;AAC9D,sFAA4D;AAC5D,uFAA6D;AAC7D,iGAAuE;AACvE,iFAAuD;AAEvD,gCAAgC;AAChC,yGAA+E;AAC/E,qGAA2E;AAE3E,eAAe;AACf,yEAA+C;AAC/C,uEAA6C;AAC7C,yEAA+C;AAC/C,uEAA6C"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@futdevpro/fsm-dynamo",
|
|
3
|
-
"version": "1.20.
|
|
3
|
+
"version": "1.20.73",
|
|
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",
|