@futdevpro/fsm-dynamo 1.20.69 → 1.20.70

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.
@@ -1,6 +1,7 @@
1
1
  import { DyFM_OperationContext_ControlModel } from '../../_models/control-models/operation-context.control-model';
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
+ import { DyFM_Operation_PatchField } from '../../_models/interfaces/operation-patch-field.interface';
4
5
  /**
5
6
  * Transport-independent write guardrails of an operation (HP-DOPL MP-1.5, DMCP-009).
6
7
  *
@@ -40,6 +41,19 @@ export declare class DyFM_OperationGuardrails_Util {
40
41
  * @throws 400 `DyFM-OPG-PTY` (not an object) · `DyFM-OPG-PFD` (rejected fields) · `DyFM-OPG-PEM` (nothing left)
41
42
  */
42
43
  static filterPatch(operation: DyFM_OperationSettings_ControlModel<unknown, unknown[], unknown>, patch: Record<string, unknown>, ctx?: DyFM_OperationContext_ControlModel): DyFM_OperationPatch_Result;
44
+ /**
45
+ * Normalizes a `patchWhitelist` into typed entries, so the rest of the code has ONE shape to handle.
46
+ * @param whitelist - the declared whitelist (names, typed entries, or a mix of both)
47
+ * @returns the normalized entries, or `undefined` when no whitelist is declared
48
+ */
49
+ static patchFieldsOf(whitelist: (string | DyFM_Operation_PatchField)[] | undefined): DyFM_Operation_PatchField[] | undefined;
50
+ /**
51
+ * Checks a patch value against its declared type.
52
+ * @param value - the value the caller sent
53
+ * @param type - the declared type of the field
54
+ * @returns whether the value is usable for that type
55
+ */
56
+ private static isPatchValueValid;
43
57
  /** Builds a coded guardrail error carrying the operation, the requestId and the details. */
44
58
  private static error;
45
59
  }
@@ -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;AACvE,OAAO,EAAE,0BAA0B,EAAE,MAAM,2DAA2D,CAAC;AAGvG;;;;;;;;;;;;;;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;IA6C7B,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAAC,KAAK;CAerB"}
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;AAGrG;;;;;;;;;;;;;;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;IAqE7B;;;;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"}
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DyFM_OperationGuardrails_Util = void 0;
4
4
  const operation_if_match_type_enum_1 = require("../../_enums/operation-if-match.type-enum");
5
5
  const error_control_model_1 = require("../../_models/control-models/error.control-model");
6
+ const operation_patch_field_type_enum_1 = require("../../_enums/operation-patch-field.type-enum");
6
7
  /**
7
8
  * Transport-independent write guardrails of an operation (HP-DOPL MP-1.5, DMCP-009).
8
9
  *
@@ -93,15 +94,16 @@ class DyFM_OperationGuardrails_Util {
93
94
  message: `operation "${operation?.name}": patch must be an object`,
94
95
  });
95
96
  }
96
- const whitelist = operation?.guardrails?.patchWhitelist;
97
+ const declared = DyFM_OperationGuardrails_Util.patchFieldsOf(operation?.guardrails?.patchWhitelist);
97
98
  // no whitelist declared: the guardrail is not active for this operation
98
- if (!whitelist) {
99
+ if (!declared) {
99
100
  return { patch: { ...patch }, droppedFields: [] };
100
101
  }
102
+ const allowedFields = declared.map((one) => one.field);
101
103
  const filtered = {};
102
104
  const droppedFields = [];
103
105
  Object.keys(patch).forEach((field) => {
104
- if (whitelist.includes(field)) {
106
+ if (allowedFields.includes(field)) {
105
107
  filtered[field] = patch[field];
106
108
  }
107
109
  else {
@@ -112,18 +114,75 @@ class DyFM_OperationGuardrails_Util {
112
114
  throw DyFM_OperationGuardrails_Util.error({
113
115
  errorCode: 'DyFM-OPG-PFD', status: 400, operation: operation, ctx: ctx,
114
116
  message: `operation "${operation?.name}": patch fields not allowed: ${droppedFields.join(', ')}`,
115
- details: { droppedFields: droppedFields, allowedFields: whitelist },
117
+ details: { droppedFields: droppedFields, allowedFields: allowedFields },
116
118
  });
117
119
  }
118
120
  if (!Object.keys(filtered).length) {
119
121
  throw DyFM_OperationGuardrails_Util.error({
120
122
  errorCode: 'DyFM-OPG-PEM', status: 400, operation: operation, ctx: ctx,
121
123
  message: `operation "${operation?.name}": the patch has no allowed field`,
122
- details: { droppedFields: droppedFields, allowedFields: whitelist },
124
+ details: { droppedFields: droppedFields, allowedFields: allowedFields },
123
125
  });
124
126
  }
127
+ // value check AFTER filtering: a dropped field is not the caller's problem to fix, a wrong value is
128
+ declared.forEach((one) => {
129
+ if (!one.type || !(one.field in filtered))
130
+ return;
131
+ const value = filtered[one.field];
132
+ if (value === null && one.nullable)
133
+ return;
134
+ if (!DyFM_OperationGuardrails_Util.isPatchValueValid(value, one.type)) {
135
+ throw DyFM_OperationGuardrails_Util.error({
136
+ errorCode: 'DyFM-OPG-PVL', status: 400, operation: operation, ctx: ctx,
137
+ message: `operation "${operation?.name}": patch field "${one.field}" expects a ${one.type} value`,
138
+ details: {
139
+ field: one.field,
140
+ expectedType: one.type,
141
+ nullable: Boolean(one.nullable),
142
+ receivedType: value === null ? 'null' : typeof value,
143
+ },
144
+ });
145
+ }
146
+ });
125
147
  return { patch: filtered, droppedFields: droppedFields };
126
148
  }
149
+ /**
150
+ * Normalizes a `patchWhitelist` into typed entries, so the rest of the code has ONE shape to handle.
151
+ * @param whitelist - the declared whitelist (names, typed entries, or a mix of both)
152
+ * @returns the normalized entries, or `undefined` when no whitelist is declared
153
+ */
154
+ static patchFieldsOf(whitelist) {
155
+ if (!whitelist)
156
+ return undefined;
157
+ return whitelist.map((one) => typeof one === 'string' ? { field: one } : one);
158
+ }
159
+ /**
160
+ * Checks a patch value against its declared type.
161
+ * @param value - the value the caller sent
162
+ * @param type - the declared type of the field
163
+ * @returns whether the value is usable for that type
164
+ */
165
+ static isPatchValueValid(value, type) {
166
+ switch (type) {
167
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.string:
168
+ return typeof value === 'string';
169
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.number:
170
+ return typeof value === 'number' && Number.isFinite(value);
171
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.boolean:
172
+ return typeof value === 'boolean';
173
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.date:
174
+ // deliberately the SAME check a create path performs: the value must yield a valid date
175
+ return ((typeof value === 'string' && Boolean(value.trim())) ||
176
+ (typeof value === 'number' && Number.isFinite(value)) ||
177
+ value instanceof Date) && !isNaN(new Date(value).getTime());
178
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.object:
179
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
180
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.array:
181
+ return Array.isArray(value);
182
+ default:
183
+ return true;
184
+ }
185
+ }
127
186
  /** Builds a coded guardrail error carrying the operation, the requestId and the details. */
128
187
  static error(set) {
129
188
  return new error_control_model_1.DyFM_Error({
@@ -1 +1 @@
1
- {"version":3,"file":"operation-guardrails.util.js","sourceRoot":"","sources":["../../../src/_collections/utils/operation-guardrails.util.ts"],"names":[],"mappings":"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"}
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,40 @@
1
+ /**
2
+ * Declared value type of a patch field (`guardrails.patchWhitelist`).
3
+ *
4
+ * # Why a patch field may carry a type at all
5
+ *
6
+ * A whitelist made of plain names answers only ONE question: *may this field be changed?* It can not
7
+ * answer the second one: *is this value usable?* That gap is not theoretical — it was measured on a live
8
+ * system (HP-DOPL, 2026-09-18): the `create` path of a task rejected an invalid due date with a coded
9
+ * error, while the `update` path accepted the very same value, because its patch guard only compared
10
+ * field NAMES. A typo therefore became stored data through the modify route.
11
+ *
12
+ * Declaring the type closes that gap at the same place where the field is already declared, so the two
13
+ * routes can not drift apart again.
14
+ *
15
+ * @example
16
+ * ```ts
17
+ * const guardrails: DyFM_Operation_Guardrails = {
18
+ * patchWhitelist: [ 'title', { field: 'dueDate', type: DyFM_OperationPatchField_Type.date } ],
19
+ * };
20
+ * ```
21
+ */
22
+ export declare enum DyFM_OperationPatchField_Type {
23
+ /** Any string value. */
24
+ string = "string",
25
+ /** A finite number (`NaN` and `Infinity` are rejected). */
26
+ number = "number",
27
+ /** A boolean value. */
28
+ boolean = "boolean",
29
+ /**
30
+ * A value that yields a valid date. Accepted inputs: an ISO-like string, a millisecond number, or a
31
+ * `Date` instance — the check is deliberately the SAME as the one a create path performs, so the two
32
+ * routes stay interchangeable.
33
+ */
34
+ date = "date",
35
+ /** A plain object (an array is rejected). */
36
+ object = "object",
37
+ /** An array of any element type. */
38
+ array = "array"
39
+ }
40
+ //# sourceMappingURL=operation-patch-field.type-enum.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-patch-field.type-enum.d.ts","sourceRoot":"","sources":["../../src/_enums/operation-patch-field.type-enum.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,oBAAY,6BAA6B;IACvC,wBAAwB;IACxB,MAAM,WAAW;IACjB,2DAA2D;IAC3D,MAAM,WAAW;IACjB,uBAAuB;IACvB,OAAO,YAAY;IACnB;;;;OAIG;IACH,IAAI,SAAS;IACb,6CAA6C;IAC7C,MAAM,WAAW;IACjB,oCAAoC;IACpC,KAAK,UAAU;CAChB"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DyFM_OperationPatchField_Type = void 0;
4
+ /**
5
+ * Declared value type of a patch field (`guardrails.patchWhitelist`).
6
+ *
7
+ * # Why a patch field may carry a type at all
8
+ *
9
+ * A whitelist made of plain names answers only ONE question: *may this field be changed?* It can not
10
+ * answer the second one: *is this value usable?* That gap is not theoretical — it was measured on a live
11
+ * system (HP-DOPL, 2026-09-18): the `create` path of a task rejected an invalid due date with a coded
12
+ * error, while the `update` path accepted the very same value, because its patch guard only compared
13
+ * field NAMES. A typo therefore became stored data through the modify route.
14
+ *
15
+ * Declaring the type closes that gap at the same place where the field is already declared, so the two
16
+ * routes can not drift apart again.
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * const guardrails: DyFM_Operation_Guardrails = {
21
+ * patchWhitelist: [ 'title', { field: 'dueDate', type: DyFM_OperationPatchField_Type.date } ],
22
+ * };
23
+ * ```
24
+ */
25
+ var DyFM_OperationPatchField_Type;
26
+ (function (DyFM_OperationPatchField_Type) {
27
+ /** Any string value. */
28
+ DyFM_OperationPatchField_Type["string"] = "string";
29
+ /** A finite number (`NaN` and `Infinity` are rejected). */
30
+ DyFM_OperationPatchField_Type["number"] = "number";
31
+ /** A boolean value. */
32
+ DyFM_OperationPatchField_Type["boolean"] = "boolean";
33
+ /**
34
+ * A value that yields a valid date. Accepted inputs: an ISO-like string, a millisecond number, or a
35
+ * `Date` instance — the check is deliberately the SAME as the one a create path performs, so the two
36
+ * routes stay interchangeable.
37
+ */
38
+ DyFM_OperationPatchField_Type["date"] = "date";
39
+ /** A plain object (an array is rejected). */
40
+ DyFM_OperationPatchField_Type["object"] = "object";
41
+ /** An array of any element type. */
42
+ DyFM_OperationPatchField_Type["array"] = "array";
43
+ })(DyFM_OperationPatchField_Type || (exports.DyFM_OperationPatchField_Type = DyFM_OperationPatchField_Type = {}));
44
+ //# sourceMappingURL=operation-patch-field.type-enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-patch-field.type-enum.js","sourceRoot":"","sources":["../../src/_enums/operation-patch-field.type-enum.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,IAAY,6BAiBX;AAjBD,WAAY,6BAA6B;IACvC,wBAAwB;IACxB,kDAAiB,CAAA;IACjB,2DAA2D;IAC3D,kDAAiB,CAAA;IACjB,uBAAuB;IACvB,oDAAmB,CAAA;IACnB;;;;OAIG;IACH,8CAAa,CAAA;IACb,6CAA6C;IAC7C,kDAAiB,CAAA;IACjB,oCAAoC;IACpC,gDAAe,CAAA;AACjB,CAAC,EAjBW,6BAA6B,6CAA7B,6BAA6B,QAiBxC"}
@@ -1 +1 @@
1
- {"version":3,"file":"operation-settings.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/operation-settings.control-model.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAC/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,kDAAkD,CAAC;AAEhG,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;AASvF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,mCAAmC,CAC9C,QAAQ,GAAG,OAAO,EAClB,QAAQ,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EACtC,MAAM,GAAG,SAAS;IAMlB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAM;IAC3D,oEAAoE;IACpE,UAAU,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACxC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,sEAAsE;IACtE,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,uGAAuG;IACvG,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC;;;;OAIG;IACH,GAAG,CAAC,CAAC,GAAG,EAAE,kCAAkC,EAAE,GAAG,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrF,iGAAiG;IACjG,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;gBAED,GAAG,EAAE,mCAAmC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;IA4JtE,mEAAmE;IACnE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKzC,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAAC,OAAO;CAOvB;AAED,OAAO,EACL,mCAAmC,IAAI,uBAAuB,EAC/D,CAAC"}
1
+ {"version":3,"file":"operation-settings.control-model.d.ts","sourceRoot":"","sources":["../../../src/_models/control-models/operation-settings.control-model.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AAE/E,OAAO,EAAE,uBAAuB,EAAE,MAAM,4CAA4C,CAAC;AACrF,OAAO,EAAE,yBAAyB,EAAE,MAAM,8CAA8C,CAAC;AACzF,OAAO,EAAE,4BAA4B,EAAE,MAAM,kDAAkD,CAAC;AAEhG,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAE1E,OAAO,EAAE,kCAAkC,EAAE,MAAM,mCAAmC,CAAC;AA+BvF;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,mCAAmC,CAC9C,QAAQ,GAAG,OAAO,EAClB,QAAQ,SAAS,OAAO,EAAE,GAAG,OAAO,EAAE,EACtC,MAAM,GAAG,SAAS;IAMlB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;IACf,wFAAwF;IACxF,WAAW,EAAE,MAAM,CAAC;IACpB,qDAAqD;IACrD,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,4BAA4B,CAAC,CAAM;IAC3D,oEAAoE;IACpE,UAAU,CAAC,EAAE,qBAAqB,CAAC,GAAG,CAAC,CAAC;IACxC;;;;;OAKG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,sEAAsE;IACtE,KAAK,CAAC,EAAE,oBAAoB,CAAC;IAC7B,uGAAuG;IACvG,UAAU,CAAC,EAAE,yBAAyB,CAAC;IACvC;;;;OAIG;IACH,GAAG,CAAC,CAAC,GAAG,EAAE,kCAAkC,EAAE,GAAG,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IACrF,iGAAiG;IACjG,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;OAGG;gBAED,GAAG,EAAE,mCAAmC,CAAC,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC;IA8JtE,mEAAmE;IACnE,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAKzC,4FAA4F;IAC5F,OAAO,CAAC,MAAM,CAAC,OAAO;CAOvB;AAED,OAAO,EACL,mCAAmC,IAAI,uBAAuB,EAC/D,CAAC"}
@@ -4,11 +4,31 @@ exports.DyFM_Operation_Settings = exports.DyFM_OperationSettings_ControlModel =
4
4
  const stack_util_1 = require("../../_collections/utils/stack.util");
5
5
  const basic_property_type_enum_1 = require("../../_enums/basic-property-type.enum");
6
6
  const operation_if_match_type_enum_1 = require("../../_enums/operation-if-match.type-enum");
7
+ const operation_patch_field_type_enum_1 = require("../../_enums/operation-patch-field.type-enum");
7
8
  const error_control_model_1 = require("./error.control-model");
8
9
  /** Kebab-case segment: lowercase letters/digits, separated by single dashes. */
9
10
  const DyFM_operationKebabSegment = /^[a-z][a-z0-9]*(-[a-z0-9]+)*$/;
10
11
  /** Input names must be usable as a route param, a JSON-schema key and a CLI option alike. */
11
12
  const DyFM_operationInputName = /^[a-zA-Z][a-zA-Z0-9]*$/;
13
+ /**
14
+ * Validates ONE `guardrails.patchWhitelist` entry, in either accepted form.
15
+ *
16
+ * A plain string is the original form (changeable field, value not checked). A typed entry must carry a
17
+ * usable field name, a KNOWN type when it declares one, and a boolean `nullable` when it declares one —
18
+ * a misspelled type would otherwise silently disable the very check it was added for.
19
+ * @param entry - the whitelist entry as declared by the operation author
20
+ * @returns whether the entry is usable
21
+ */
22
+ function DyFM_isValidPatchWhitelistEntry(entry) {
23
+ if (typeof entry === 'string')
24
+ return DyFM_operationInputName.test(entry);
25
+ if (!entry || typeof entry !== 'object' || Array.isArray(entry))
26
+ return false;
27
+ return (typeof entry.field === 'string' &&
28
+ DyFM_operationInputName.test(entry.field) &&
29
+ (entry.type === undefined || Object.values(operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type).includes(entry.type)) &&
30
+ (entry.nullable === undefined || typeof entry.nullable === 'boolean'));
31
+ }
12
32
  /**
13
33
  * Transport-independent description of ONE operation — the single source from which the REST
14
34
  * endpoint, the MCP tool and the CLI command are derived (HP-DOPL, decision B+C).
@@ -121,7 +141,7 @@ class DyFM_OperationSettings_ControlModel {
121
141
  typeof guardrails.dryRun !== 'boolean' ||
122
142
  (guardrails.patchWhitelist !== undefined && (!Array.isArray(guardrails.patchWhitelist) ||
123
143
  !guardrails.patchWhitelist.length ||
124
- !guardrails.patchWhitelist.every((field) => DyFM_operationInputName.test(field))))) {
144
+ !guardrails.patchWhitelist.every((entry) => DyFM_isValidPatchWhitelistEntry(entry))))) {
125
145
  throw DyFM_OperationSettings_ControlModel.invalid('DyFM-OPS-GRD', `guardrails has an unknown mode or an invalid patchWhitelist (${label})`, stackLocation);
126
146
  }
127
147
  // isBodyUntyped: an alternative to bodyParams, and without a schema it can not be an MCP tool or CLI command
@@ -1 +1 @@
1
- {"version":3,"file":"operation-settings.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/operation-settings.control-model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"operation-settings.control-model.js","sourceRoot":"","sources":["../../../src/_models/control-models/operation-settings.control-model.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { DyFM_OperationIfMatch_Type } from '../../_enums/operation-if-match.type-enum';
2
+ import { DyFM_Operation_PatchField } from './operation-patch-field.interface';
2
3
  /**
3
4
  * Write-safety guardrails of an operation (HP-DOPL MP-1.5, DMCP-009), lifted from the organizer MCP
4
5
  * "safe write" pattern: optimistic concurrency, dry run, patch whitelist.
@@ -20,8 +21,14 @@ export interface DyFM_Operation_Guardrails {
20
21
  * support it is rejected, so a caller asking for a dry run can never cause a real write.
21
22
  */
22
23
  dryRun?: boolean;
23
- /** Fields a patch may change; when set, `DyFM_OperationGuardrails_Util.filterPatch` enforces it. */
24
- patchWhitelist?: string[];
24
+ /**
25
+ * Fields a patch may change; when set, `DyFM_OperationGuardrails_Util.filterPatch` enforces it.
26
+ *
27
+ * An entry is either a plain field NAME (changeable, value not checked — the original behaviour) or a
28
+ * typed entry that also declares what a usable value looks like. Mixing the two forms in one list is
29
+ * allowed and expected: only the fields that need a value guarantee have to carry a type.
30
+ */
31
+ patchWhitelist?: (string | DyFM_Operation_PatchField)[];
25
32
  /** What happens with non-whitelisted patch fields (default: `drop`, reported back as dropped). */
26
33
  unknownPatchFields?: 'drop' | 'reject';
27
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"operation-guardrails.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/operation-guardrails.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AAGvF;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,oGAAoG;IACpG,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACxC"}
1
+ {"version":3,"file":"operation-guardrails.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/operation-guardrails.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,0BAA0B,EAAE,MAAM,2CAA2C,CAAC;AACvF,OAAO,EAAE,yBAAyB,EAAE,MAAM,mCAAmC,CAAC;AAG9E;;;;;;;;;;;;GAYG;AACH,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC;;;OAGG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,cAAc,CAAC,EAAE,CAAC,MAAM,GAAG,yBAAyB,CAAC,EAAE,CAAC;IACxD,kGAAkG;IAClG,kBAAkB,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;CACxC"}
@@ -0,0 +1,37 @@
1
+ import { DyFM_OperationPatchField_Type } from '../../_enums/operation-patch-field.type-enum';
2
+ /**
3
+ * A typed entry of `guardrails.patchWhitelist` (HP-DOPL owner decision D-13, 2026-09-19).
4
+ *
5
+ * # The shape is a UNION on purpose
6
+ *
7
+ * `patchWhitelist` accepts `string | DyFM_Operation_PatchField`. A plain string keeps the original
8
+ * meaning — *this field may be changed, its value is not checked* — so every existing declaration stays
9
+ * valid and behaves exactly as before. A typed entry ADDS the value check; it never removes one.
10
+ *
11
+ * ⚠️ This is a deliberate non-breaking widening: the alternative (making the type mandatory) would have
12
+ * been a breaking change for every consumer, for a guarantee they can opt into field by field.
13
+ *
14
+ * @example
15
+ * ```ts
16
+ * const guardrails: DyFM_Operation_Guardrails = {
17
+ * patchWhitelist: [
18
+ * 'title', // changeable, value unchecked
19
+ * { field: 'dueDate', type: DyFM_OperationPatchField_Type.date, nullable: true },
20
+ * ],
21
+ * };
22
+ * ```
23
+ */
24
+ export interface DyFM_Operation_PatchField {
25
+ /** The patch field name (same naming rule as an operation input: letters and digits, letter first). */
26
+ field: string;
27
+ /** The declared value type; when omitted the value is not checked (same as a plain string entry). */
28
+ type?: DyFM_OperationPatchField_Type;
29
+ /**
30
+ * Whether an explicit `null` is allowed for this field (default: `false`).
31
+ *
32
+ * ⚠️ This is NOT cosmetic: clearing a value is a legitimate patch operation (`dueDate: null` = "remove
33
+ * the deadline"), and without this flag a typed field would reject exactly that legitimate intent.
34
+ */
35
+ nullable?: boolean;
36
+ }
37
+ //# sourceMappingURL=operation-patch-field.interface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-patch-field.interface.d.ts","sourceRoot":"","sources":["../../../src/_models/interfaces/operation-patch-field.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,8CAA8C,CAAC;AAG7F;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,WAAW,yBAAyB;IACxC,uGAAuG;IACvG,KAAK,EAAE,MAAM,CAAC;IACd,qGAAqG;IACrG,IAAI,CAAC,EAAE,6BAA6B,CAAC;IACrC;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=operation-patch-field.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operation-patch-field.interface.js","sourceRoot":"","sources":["../../../src/_models/interfaces/operation-patch-field.interface.ts"],"names":[],"mappings":""}
package/build/index.d.ts CHANGED
@@ -40,6 +40,7 @@ export * from './_enums/error-status.enum';
40
40
  export * from './_enums/log-style.enum';
41
41
  export * from './_enums/operation-auth.type-enum';
42
42
  export * from './_enums/operation-if-match.type-enum';
43
+ export * from './_enums/operation-patch-field.type-enum';
43
44
  export * from './_enums/server-connection-status.enum';
44
45
  export * from './_enums/http/http-call-type.enum';
45
46
  export * from './_enums/http/http-event-type.enum';
@@ -68,6 +69,7 @@ export * from './_models/interfaces/operation-authz.interface';
68
69
  export * from './_models/interfaces/operation-run-result.interface';
69
70
  export * from './_models/interfaces/operation-exposure.interface';
70
71
  export * from './_models/interfaces/operation-guardrails.interface';
72
+ export * from './_models/interfaces/operation-patch-field.interface';
71
73
  export * from './_models/interfaces/operation-input-settings.interface';
72
74
  export * from './_models/interfaces/operation-json-schema.interface';
73
75
  export * from './_models/interfaces/operation-patch-result.interface';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,wCAAwC,CAAC;AACvD,cAAc,sCAAsC,CAAC;AAGrD,cAAc,iCAAiC,CAAC;AAChD,cAAc,iCAAiC,CAAC;AAChD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iDAAiD,CAAC;AAChE,cAAc,6CAA6C,CAAC;AAC5D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sCAAsC,CAAC;AACrD,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iDAAiD,CAAC;AAChE,cAAc,qCAAqC,CAAC;AACpD,cAAc,2CAA2C,CAAC;AAC1D,cAAc,gDAAgD,CAAC;AAC/D,cAAc,yCAAyC,CAAC;AACxD,cAAc,4CAA4C,CAAC;AAC3D,cAAc,gCAAgC,CAAC;AAG/C,cAAc,2CAA2C,CAAC;AAC1D,cAAc,qCAAqC,CAAC;AACpD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6CAA6C,CAAC;AAC5D,cAAc,wCAAwC,CAAC;AAGvD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,uCAAuC,CAAC;AACtD,cAAc,gDAAgD,CAAC;AAI/D,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,mCAAmC,CAAC;AAClD,cAAc,uCAAuC,CAAC;AACtD,cAAc,wCAAwC,CAAC;AAGvD,cAAc,mCAAmC,CAAC;AAClD,cAAc,oCAAoC,CAAC;AACnD,cAAc,uCAAuC,CAAC;AAGtD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,0BAA0B,CAAC;AACzC,cAAc,kCAAkC,CAAC;AAKjD,cAAc,0DAA0D,CAAC;AACzE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,8CAA8C,CAAC;AAC7D,cAAc,0DAA0D,CAAC;AACzE,cAAc,2DAA2D,CAAC;AAC1E,cAAc,6CAA6C,CAAC;AAC5D,cAAc,oDAAoD,CAAC;AACnE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uEAAuE,CAAC;AAGtF,cAAc,iEAAiE,CAAC;AAChF,cAAc,0DAA0D,CAAC;AACzE,cAAc,wDAAwD,CAAC;AAGvE,cAAc,yCAAyC,CAAC;AACxD,cAAc,2CAA2C,CAAC;AAG1D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,uDAAuD,CAAC;AACtE,cAAc,gDAAgD,CAAC;AAC/D,cAAc,qDAAqD,CAAC;AACpE,cAAc,mDAAmD,CAAC;AAClE,cAAc,qDAAqD,CAAC;AACpE,cAAc,yDAAyD,CAAC;AACxE,cAAc,sDAAsD,CAAC;AACrE,cAAc,uDAAuD,CAAC;AACtE,cAAc,sCAAsC,CAAC;AACrD,cAAc,8CAA8C,CAAC;AAC7D,cAAc,+CAA+C,CAAC;AAC9D,cAAc,6CAA6C,CAAC;AAC5D,cAAc,8CAA8C,CAAC;AAC7D,cAAc,wDAAwD,CAAC;AACvE,cAAc,wCAAwC,CAAC;AAGvD,cAAc,gEAAgE,CAAC;AAC/E,cAAc,4DAA4D,CAAC;AAG3E,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/build/index.js CHANGED
@@ -49,6 +49,7 @@ tslib_1.__exportStar(require("./_enums/error-status.enum"), exports);
49
49
  tslib_1.__exportStar(require("./_enums/log-style.enum"), exports);
50
50
  tslib_1.__exportStar(require("./_enums/operation-auth.type-enum"), exports);
51
51
  tslib_1.__exportStar(require("./_enums/operation-if-match.type-enum"), exports);
52
+ tslib_1.__exportStar(require("./_enums/operation-patch-field.type-enum"), exports);
52
53
  tslib_1.__exportStar(require("./_enums/server-connection-status.enum"), exports);
53
54
  // enums/HTTP
54
55
  tslib_1.__exportStar(require("./_enums/http/http-call-type.enum"), exports);
@@ -84,6 +85,7 @@ tslib_1.__exportStar(require("./_models/interfaces/operation-authz.interface"),
84
85
  tslib_1.__exportStar(require("./_models/interfaces/operation-run-result.interface"), exports);
85
86
  tslib_1.__exportStar(require("./_models/interfaces/operation-exposure.interface"), exports);
86
87
  tslib_1.__exportStar(require("./_models/interfaces/operation-guardrails.interface"), exports);
88
+ tslib_1.__exportStar(require("./_models/interfaces/operation-patch-field.interface"), exports);
87
89
  tslib_1.__exportStar(require("./_models/interfaces/operation-input-settings.interface"), exports);
88
90
  tslib_1.__exportStar(require("./_models/interfaces/operation-json-schema.interface"), exports);
89
91
  tslib_1.__exportStar(require("./_models/interfaces/operation-patch-result.interface"), exports);
@@ -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,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,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,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.69",
3
+ "version": "1.20.70",
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",