@futdevpro/fsm-dynamo 1.20.69 → 1.20.71

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.
Files changed (26) hide show
  1. package/build/_collections/utils/operation-guardrails.util.d.ts +35 -0
  2. package/build/_collections/utils/operation-guardrails.util.d.ts.map +1 -1
  3. package/build/_collections/utils/operation-guardrails.util.js +92 -5
  4. package/build/_collections/utils/operation-guardrails.util.js.map +1 -1
  5. package/build/_enums/operation-patch-field.type-enum.d.ts +40 -0
  6. package/build/_enums/operation-patch-field.type-enum.d.ts.map +1 -0
  7. package/build/_enums/operation-patch-field.type-enum.js +44 -0
  8. package/build/_enums/operation-patch-field.type-enum.js.map +1 -0
  9. package/build/_models/control-models/operation-settings.control-model.d.ts.map +1 -1
  10. package/build/_models/control-models/operation-settings.control-model.js +21 -1
  11. package/build/_models/control-models/operation-settings.control-model.js.map +1 -1
  12. package/build/_models/interfaces/operation-guardrails.interface.d.ts +9 -2
  13. package/build/_models/interfaces/operation-guardrails.interface.d.ts.map +1 -1
  14. package/build/_models/interfaces/operation-patch-field.interface.d.ts +37 -0
  15. package/build/_models/interfaces/operation-patch-field.interface.d.ts.map +1 -0
  16. package/build/_models/interfaces/operation-patch-field.interface.js +3 -0
  17. package/build/_models/interfaces/operation-patch-field.interface.js.map +1 -0
  18. package/build/_models/interfaces/operation-patch-violation.interface.d.ts +25 -0
  19. package/build/_models/interfaces/operation-patch-violation.interface.d.ts.map +1 -0
  20. package/build/_models/interfaces/operation-patch-violation.interface.js +3 -0
  21. package/build/_models/interfaces/operation-patch-violation.interface.js.map +1 -0
  22. package/build/index.d.ts +3 -0
  23. package/build/index.d.ts.map +1 -1
  24. package/build/index.js +3 -0
  25. package/build/index.js.map +1 -1
  26. package/package.json +1 -1
@@ -1,6 +1,8 @@
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';
5
+ import { DyFM_Operation_PatchViolation } from '../../_models/interfaces/operation-patch-violation.interface';
4
6
  /**
5
7
  * Transport-independent write guardrails of an operation (HP-DOPL MP-1.5, DMCP-009).
6
8
  *
@@ -40,6 +42,39 @@ export declare class DyFM_OperationGuardrails_Util {
40
42
  * @throws 400 `DyFM-OPG-PTY` (not an object) · `DyFM-OPG-PFD` (rejected fields) · `DyFM-OPG-PEM` (nothing left)
41
43
  */
42
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[];
65
+ /**
66
+ * Normalizes a `patchWhitelist` into typed entries, so the rest of the code has ONE shape to handle.
67
+ * @param whitelist - the declared whitelist (names, typed entries, or a mix of both)
68
+ * @returns the normalized entries, or `undefined` when no whitelist is declared
69
+ */
70
+ static patchFieldsOf(whitelist: (string | DyFM_Operation_PatchField)[] | undefined): DyFM_Operation_PatchField[] | undefined;
71
+ /**
72
+ * Checks a patch value against its declared type.
73
+ * @param value - the value the caller sent
74
+ * @param type - the declared type of the field
75
+ * @returns whether the value is usable for that type
76
+ */
77
+ private static isPatchValueValid;
43
78
  /** Builds a coded guardrail error carrying the operation, the requestId and the details. */
44
79
  private static error;
45
80
  }
@@ -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;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"}
@@ -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,103 @@ 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 },
125
+ });
126
+ }
127
+ // value check AFTER filtering: a dropped field is not the caller's problem to fix, a wrong value is
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 },
123
135
  });
124
136
  }
125
137
  return { patch: filtered, droppedFields: droppedFields };
126
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))
162
+ return;
163
+ const value = patch[one.field];
164
+ if (value === null && one.nullable)
165
+ return;
166
+ if (!DyFM_OperationGuardrails_Util.isPatchValueValid(value, one.type)) {
167
+ violations.push({
168
+ field: one.field,
169
+ expectedType: one.type,
170
+ nullable: Boolean(one.nullable),
171
+ receivedType: value === null ? 'null' : typeof value,
172
+ });
173
+ }
174
+ });
175
+ return violations;
176
+ }
177
+ /**
178
+ * Normalizes a `patchWhitelist` into typed entries, so the rest of the code has ONE shape to handle.
179
+ * @param whitelist - the declared whitelist (names, typed entries, or a mix of both)
180
+ * @returns the normalized entries, or `undefined` when no whitelist is declared
181
+ */
182
+ static patchFieldsOf(whitelist) {
183
+ if (!whitelist)
184
+ return undefined;
185
+ return whitelist.map((one) => typeof one === 'string' ? { field: one } : one);
186
+ }
187
+ /**
188
+ * Checks a patch value against its declared type.
189
+ * @param value - the value the caller sent
190
+ * @param type - the declared type of the field
191
+ * @returns whether the value is usable for that type
192
+ */
193
+ static isPatchValueValid(value, type) {
194
+ switch (type) {
195
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.string:
196
+ return typeof value === 'string';
197
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.number:
198
+ return typeof value === 'number' && Number.isFinite(value);
199
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.boolean:
200
+ return typeof value === 'boolean';
201
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.date:
202
+ // deliberately the SAME check a create path performs: the value must yield a valid date
203
+ return ((typeof value === 'string' && Boolean(value.trim())) ||
204
+ (typeof value === 'number' && Number.isFinite(value)) ||
205
+ value instanceof Date) && !isNaN(new Date(value).getTime());
206
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.object:
207
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
208
+ case operation_patch_field_type_enum_1.DyFM_OperationPatchField_Type.array:
209
+ return Array.isArray(value);
210
+ default:
211
+ return true;
212
+ }
213
+ }
127
214
  /** Builds a coded guardrail error carrying the operation, the requestId and the details. */
128
215
  static error(set) {
129
216
  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":""}
@@ -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,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=operation-patch-violation.interface.js.map
@@ -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
@@ -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,8 @@ 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';
73
+ export * from './_models/interfaces/operation-patch-violation.interface';
71
74
  export * from './_models/interfaces/operation-input-settings.interface';
72
75
  export * from './_models/interfaces/operation-json-schema.interface';
73
76
  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,8 @@ 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);
89
+ tslib_1.__exportStar(require("./_models/interfaces/operation-patch-violation.interface"), exports);
87
90
  tslib_1.__exportStar(require("./_models/interfaces/operation-input-settings.interface"), exports);
88
91
  tslib_1.__exportStar(require("./_models/interfaces/operation-json-schema.interface"), exports);
89
92
  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,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.69",
3
+ "version": "1.20.71",
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",