@researchdatabox/sails-ng-common 0.0.1-beta.9604 → 0.0.1-beta.9873

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 (31) hide show
  1. package/dist/src/config/component/publish-data-location-refresh.model.d.ts +1 -0
  2. package/dist/src/config/component/publish-data-location-refresh.model.js +2 -1
  3. package/dist/src/config/component/publish-data-location-refresh.outline.d.ts +5 -0
  4. package/dist/src/config/component/publish-data-location-selector.model.d.ts +6 -2
  5. package/dist/src/config/component/publish-data-location-selector.model.js +7 -3
  6. package/dist/src/config/component/publish-data-location-selector.outline.d.ts +8 -3
  7. package/dist/src/config/component/publish-data-location-selector.outline.js +1 -1
  8. package/dist/src/config/component/question-tree.helper.d.ts +21 -24
  9. package/dist/src/config/component/question-tree.helper.js +125 -132
  10. package/dist/src/config/component/question-tree.outline.d.ts +6 -3
  11. package/dist/src/config/component/question-tree.outline.js +1 -1
  12. package/dist/src/config/component/save-button.model.d.ts +4 -0
  13. package/dist/src/config/component/save-button.model.js +5 -1
  14. package/dist/src/config/component/save-button.outline.d.ts +17 -0
  15. package/dist/src/config/form-component.outline.d.ts +1 -1
  16. package/dist/src/config/form-config.outline.d.ts +2 -4
  17. package/dist/src/config/form-override.model.d.ts +2 -1
  18. package/dist/src/config/form-override.model.js +7 -3
  19. package/dist/src/config/names/naming-helpers.d.ts +34 -0
  20. package/dist/src/config/names/naming-helpers.js +78 -1
  21. package/dist/src/index.d.ts +1 -0
  22. package/dist/src/index.js +2 -1
  23. package/dist/src/report.model.d.ts +43 -0
  24. package/dist/src/validation/form.model.d.ts +41 -4
  25. package/dist/src/validation/form.model.js +1 -1
  26. package/dist/src/validation/helpers.d.ts +3 -1
  27. package/dist/src/validation/helpers.js +38 -2
  28. package/dist/src/validation/validators-support.d.ts +2 -2
  29. package/dist/src/validation/validators-support.js +35 -6
  30. package/dist/src/validation/validators.js +103 -167
  31. package/package.json +9 -9
@@ -2,6 +2,42 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.formValidatorsSharedDefinitions = exports.FORM_VALIDATOR_EMAIL_REGEXP = void 0;
4
4
  const helpers_1 = require("./helpers");
5
+ function hasMeaningfulValue(value) {
6
+ if (value == null) {
7
+ return false;
8
+ }
9
+ if (typeof value === "string") {
10
+ return value.trim().length > 0;
11
+ }
12
+ const lengthOrSize = (0, helpers_1.formValidatorLengthOrSize)(value);
13
+ if (lengthOrSize !== null) {
14
+ return lengthOrSize > 0;
15
+ }
16
+ return true;
17
+ }
18
+ function hasLegacyRequiredValue(value) {
19
+ if (value == null) {
20
+ return false;
21
+ }
22
+ const lengthOrSize = (0, helpers_1.formValidatorLengthOrSize)(value);
23
+ if (lengthOrSize !== null) {
24
+ return lengthOrSize > 0;
25
+ }
26
+ return true;
27
+ }
28
+ function hasRequiredFieldValue(value, fieldNames) {
29
+ if (fieldNames.length === 0) {
30
+ return hasLegacyRequiredValue(value);
31
+ }
32
+ if (Array.isArray(value)) {
33
+ return value.some(item => hasRequiredFieldValue(item, fieldNames));
34
+ }
35
+ if (value == null || typeof value !== "object") {
36
+ return false;
37
+ }
38
+ const candidate = value;
39
+ return fieldNames.some(fieldName => hasMeaningfulValue(candidate[fieldName]));
40
+ }
5
41
  /**
6
42
  * A regular expression for validating an email address.
7
43
  *
@@ -26,10 +62,6 @@ exports.formValidatorsSharedDefinitions = [
26
62
  class: "min",
27
63
  message: "@validator-error-min",
28
64
  create: (config) => {
29
- const optionNameKey = "class";
30
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "min");
31
- const optionMessageKey = "message";
32
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-min");
33
65
  const optionMinKey = "min";
34
66
  const optionMinValue = (0, helpers_1.formValidatorGetDefinitionNumber)(config, optionMinKey);
35
67
  return (control) => {
@@ -46,15 +78,10 @@ exports.formValidatorsSharedDefinitions = [
46
78
  // Controls with NaN values after parsing should be treated as not having a
47
79
  // minimum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-min
48
80
  if (value === undefined || (!isNaN(value) && value < optionMinValue)) {
49
- return {
50
- [optionNameValue]: {
51
- [optionMessageKey]: optionMessageValue,
52
- params: {
53
- requiredThreshold: optionMinValue,
54
- actual: control.value,
55
- },
56
- },
57
- };
81
+ return (0, helpers_1.formValidatorBuildError)(config, {
82
+ requiredThreshold: optionMinValue,
83
+ actual: control.value,
84
+ });
58
85
  }
59
86
  return null;
60
87
  };
@@ -64,10 +91,6 @@ exports.formValidatorsSharedDefinitions = [
64
91
  class: "max",
65
92
  message: "@validator-error-max",
66
93
  create: (config) => {
67
- const optionNameKey = "class";
68
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "max");
69
- const optionMessageKey = "message";
70
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-max");
71
94
  const optionMaxKey = "max";
72
95
  const optionMaxValue = (0, helpers_1.formValidatorGetDefinitionNumber)(config, optionMaxKey);
73
96
  return (control) => {
@@ -84,15 +107,10 @@ exports.formValidatorsSharedDefinitions = [
84
107
  // Controls with NaN values after parsing should be treated as not having a
85
108
  // maximum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-max
86
109
  if (value === undefined || (!isNaN(value) && value > optionMaxValue)) {
87
- return {
88
- [optionNameValue]: {
89
- [optionMessageKey]: optionMessageValue,
90
- params: {
91
- requiredThreshold: optionMaxValue,
92
- actual: control.value,
93
- },
94
- },
95
- };
110
+ return (0, helpers_1.formValidatorBuildError)(config, {
111
+ requiredThreshold: optionMaxValue,
112
+ actual: control.value,
113
+ });
96
114
  }
97
115
  return null;
98
116
  };
@@ -102,10 +120,6 @@ exports.formValidatorsSharedDefinitions = [
102
120
  class: "minLength",
103
121
  message: "@validator-error-min-length",
104
122
  create: (config) => {
105
- const optionNameKey = "class";
106
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "minLength");
107
- const optionMessageKey = "message";
108
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-min-length");
109
123
  const optionMinLengthKey = "minLength";
110
124
  const optionMinLengthValue = (0, helpers_1.formValidatorGetDefinitionNumber)(config, optionMinLengthKey);
111
125
  return (control) => {
@@ -116,15 +130,10 @@ exports.formValidatorsSharedDefinitions = [
116
130
  return null;
117
131
  }
118
132
  return length < optionMinLengthValue
119
- ? {
120
- [optionNameValue]: {
121
- [optionMessageKey]: optionMessageValue,
122
- params: {
123
- requiredLength: optionMinLengthValue,
124
- actualLength: length,
125
- },
126
- },
127
- }
133
+ ? (0, helpers_1.formValidatorBuildError)(config, {
134
+ requiredLength: optionMinLengthValue,
135
+ actualLength: length,
136
+ })
128
137
  : null;
129
138
  };
130
139
  },
@@ -133,24 +142,15 @@ exports.formValidatorsSharedDefinitions = [
133
142
  class: "maxLength",
134
143
  message: "@validator-error-max-length",
135
144
  create: (config) => {
136
- const optionNameKey = "class";
137
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "maxLength");
138
- const optionMessageKey = "message";
139
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-max-length");
140
145
  const optionMaxLengthKey = "maxLength";
141
146
  const optionMaxLengthValue = (0, helpers_1.formValidatorGetDefinitionNumber)(config, optionMaxLengthKey);
142
147
  return (control) => {
143
148
  const length = (0, helpers_1.formValidatorLengthOrSize)(control.value);
144
149
  if (length !== null && length > optionMaxLengthValue) {
145
- return {
146
- [optionNameValue]: {
147
- [optionMessageKey]: optionMessageValue,
148
- params: {
149
- requiredLength: optionMaxLengthValue,
150
- actualLength: length,
151
- },
152
- },
153
- };
150
+ return (0, helpers_1.formValidatorBuildError)(config, {
151
+ requiredLength: optionMaxLengthValue,
152
+ actualLength: length,
153
+ });
154
154
  }
155
155
  return null;
156
156
  };
@@ -160,23 +160,23 @@ exports.formValidatorsSharedDefinitions = [
160
160
  class: "required",
161
161
  message: "@validator-error-required",
162
162
  create: (config) => {
163
- const optionNameKey = "class";
164
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "required");
165
- const optionMessageKey = "message";
166
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-required");
167
163
  const optionRequiredKey = "required";
168
164
  const optionRequiredValue = (0, helpers_1.formValidatorGetDefinitionBoolean)(config, optionRequiredKey, true);
165
+ const optionAnyOfFields = Array.isArray(config?.['anyOfFields'])
166
+ ? config['anyOfFields'].map(item => item?.toString() ?? "").filter(item => item.length > 0)
167
+ : [];
169
168
  return (control) => {
170
- if (optionRequiredValue && (control.value == null || (0, helpers_1.formValidatorLengthOrSize)(control.value) === 0)) {
171
- return {
172
- [optionNameValue]: {
173
- [optionMessageKey]: optionMessageValue,
174
- params: {
175
- required: optionRequiredValue,
176
- actual: control.value,
177
- },
178
- },
179
- };
169
+ if (!optionRequiredValue) {
170
+ return null;
171
+ }
172
+ const isValid = optionAnyOfFields.length > 0
173
+ ? hasRequiredFieldValue(control.value, optionAnyOfFields)
174
+ : control.value != null && (0, helpers_1.formValidatorLengthOrSize)(control.value) !== 0;
175
+ if (!isValid) {
176
+ return (0, helpers_1.formValidatorBuildError)(config, {
177
+ required: optionRequiredValue,
178
+ actual: control.value,
179
+ });
180
180
  }
181
181
  return null;
182
182
  };
@@ -186,23 +186,14 @@ exports.formValidatorsSharedDefinitions = [
186
186
  class: "requiredTrue",
187
187
  message: "@validator-error-required-true",
188
188
  create: (config) => {
189
- const optionNameKey = "class";
190
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "requiredTrue")?.toString() ?? "";
191
- const optionMessageKey = "message";
192
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-required-true");
193
189
  const optionRequiredKey = "requiredTrue";
194
190
  const optionRequiredValue = (0, helpers_1.formValidatorGetDefinitionBoolean)(config, optionRequiredKey, true);
195
191
  return (control) => {
196
192
  if (optionRequiredValue && control.value !== true) {
197
- return {
198
- [optionNameValue]: {
199
- [optionMessageKey]: optionMessageValue,
200
- params: {
201
- required: optionRequiredValue,
202
- actual: control.value,
203
- },
204
- },
205
- };
193
+ return (0, helpers_1.formValidatorBuildError)(config, {
194
+ required: optionRequiredValue,
195
+ actual: control.value,
196
+ });
206
197
  }
207
198
  return null;
208
199
  };
@@ -212,10 +203,6 @@ exports.formValidatorsSharedDefinitions = [
212
203
  class: "email",
213
204
  message: "@validator-error-email",
214
205
  create: (config) => {
215
- const optionNameKey = "class";
216
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "email");
217
- const optionMessageKey = "message";
218
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-email");
219
206
  const optionDescriptionKey = "description";
220
207
  const optionDescriptionValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionDescriptionKey, "email must be in format (name)@(domain.tld)");
221
208
  const optionPatternKey = "pattern";
@@ -228,15 +215,10 @@ exports.formValidatorsSharedDefinitions = [
228
215
  const value = control.value?.toString() ?? "";
229
216
  const testOutcome = optionPatternValue.test(value);
230
217
  if (!testOutcome) {
231
- return {
232
- [optionNameValue]: {
233
- [optionMessageKey]: optionMessageValue,
234
- params: {
235
- requiredPattern: optionPatternValue,
236
- description: optionDescriptionValue, actual: control.value,
237
- },
238
- },
239
- };
218
+ return (0, helpers_1.formValidatorBuildError)(config, {
219
+ requiredPattern: optionPatternValue,
220
+ description: optionDescriptionValue, actual: control.value,
221
+ });
240
222
  }
241
223
  return null;
242
224
  };
@@ -246,10 +228,6 @@ exports.formValidatorsSharedDefinitions = [
246
228
  class: "pattern",
247
229
  message: "@validator-error-pattern",
248
230
  create: (config) => {
249
- const optionNameKey = "class";
250
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "pattern");
251
- const optionMessageKey = "message";
252
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-pattern");
253
231
  const optionDescriptionKey = "description";
254
232
  const optionDescriptionValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionDescriptionKey);
255
233
  const optionPatternKey = "pattern";
@@ -272,16 +250,11 @@ exports.formValidatorsSharedDefinitions = [
272
250
  const value = control.value?.toString();
273
251
  return regex.test(value)
274
252
  ? null
275
- : {
276
- [optionNameValue]: {
277
- [optionMessageKey]: optionMessageValue,
278
- params: {
279
- requiredPattern: regexStr,
280
- description: optionDescriptionValue,
281
- actual: value,
282
- },
283
- },
284
- };
253
+ : (0, helpers_1.formValidatorBuildError)(config, {
254
+ requiredPattern: regexStr,
255
+ description: optionDescriptionValue,
256
+ actual: value,
257
+ });
285
258
  };
286
259
  },
287
260
  },
@@ -289,10 +262,6 @@ exports.formValidatorsSharedDefinitions = [
289
262
  class: "different-values",
290
263
  message: "@validator-error-different-values",
291
264
  create: (config) => {
292
- const optionNameKey = "class";
293
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "different-values");
294
- const optionMessageKey = "message";
295
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-different-values");
296
265
  const optionControlNamesKey = "controlNames";
297
266
  const optionControlNamesValue = (0, helpers_1.formValidatorGetDefinitionArray)(config, optionControlNamesKey);
298
267
  return (control) => {
@@ -301,20 +270,15 @@ exports.formValidatorsSharedDefinitions = [
301
270
  ?.filter(i => i !== null && i !== undefined)
302
271
  ?.map(n => control?.get(n?.toString())) ?? [];
303
272
  const values = new Set(controls?.map(c => c?.value) ?? []);
304
- if (values.size !== controls.length) {
305
- return {
306
- [optionNameValue]: {
307
- [optionMessageKey]: optionMessageValue,
308
- params: {
309
- controlNames: optionControlNamesValue,
310
- controlCount: optionControlNamesValue?.length,
311
- valueCount: values.size,
312
- values: Array.from(values),
313
- },
314
- },
315
- };
316
- }
317
- return null;
273
+ const compare = values.size === controls.length;
274
+ return compare
275
+ ? null
276
+ : (0, helpers_1.formValidatorBuildError)(config, {
277
+ controlNames: optionControlNamesValue,
278
+ controlCount: optionControlNamesValue?.length,
279
+ valueCount: values.size,
280
+ values: Array.from(values),
281
+ });
318
282
  };
319
283
  },
320
284
  },
@@ -322,10 +286,6 @@ exports.formValidatorsSharedDefinitions = [
322
286
  class: "jsonata-expression",
323
287
  message: "@validator-error-jsonata-expression",
324
288
  createAsync: (config) => {
325
- const optionNameKey = "class";
326
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "jsonata-expression");
327
- const optionMessageKey = "message";
328
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-jsonata-expression");
329
289
  const optionDescriptionKey = "description";
330
290
  const optionDescriptionValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionDescriptionKey, "");
331
291
  const optionExpressionKey = "expression";
@@ -364,16 +324,11 @@ exports.formValidatorsSharedDefinitions = [
364
324
  }
365
325
  return success
366
326
  ? null
367
- : {
368
- [optionNameValue]: {
369
- [optionMessageKey]: optionMessageValue,
370
- params: {
371
- expression: expression,
372
- description: optionDescriptionValue,
373
- actual: value,
374
- },
375
- },
376
- };
327
+ : (0, helpers_1.formValidatorBuildError)(config, {
328
+ expression: expression,
329
+ description: optionDescriptionValue,
330
+ actual: control.value,
331
+ });
377
332
  };
378
333
  },
379
334
  },
@@ -382,10 +337,6 @@ exports.formValidatorsSharedDefinitions = [
382
337
  class: "orcid",
383
338
  message: "@validator-error-orcid",
384
339
  create: (config) => {
385
- const optionNameKey = "class";
386
- const optionNameValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionNameKey, "orcid");
387
- const optionMessageKey = "message";
388
- const optionMessageValue = (0, helpers_1.formValidatorGetDefinitionString)(config, optionMessageKey, "@validator-error-orcid");
389
340
  return (control) => {
390
341
  if (control.value == null || control.value === "") {
391
342
  return null; // don't validate empty values
@@ -393,25 +344,15 @@ exports.formValidatorsSharedDefinitions = [
393
344
  let value = control.value.toString();
394
345
  // Validate format: either xxxx-xxxx-xxxx-xxxx or xxxxxxxxxxxxxxxx, last digit can be X or x
395
346
  if (!/^(\d{4}-\d{4}-\d{4}-\d{3}[\dXx]|\d{15}[\dXx])$/.test(value)) {
396
- return {
397
- [optionNameValue]: {
398
- [optionMessageKey]: optionMessageValue,
399
- params: {
400
- actual: control.value,
401
- },
402
- },
403
- };
347
+ return (0, helpers_1.formValidatorBuildError)(config, {
348
+ actual: control.value,
349
+ });
404
350
  }
405
351
  value = value.replace(/-/g, '');
406
352
  if (value.length !== 16) {
407
- return {
408
- [optionNameValue]: {
409
- [optionMessageKey]: optionMessageValue,
410
- params: {
411
- actual: control.value,
412
- },
413
- },
414
- };
353
+ return (0, helpers_1.formValidatorBuildError)(config, {
354
+ actual: control.value,
355
+ });
415
356
  }
416
357
  const baseDigits = value.substring(0, 15);
417
358
  const checkDigit = value.substring(15);
@@ -424,18 +365,13 @@ exports.formValidatorsSharedDefinitions = [
424
365
  const result = (12 - remainder) % 11;
425
366
  const calculatedCheckDigit = result === 10 ? "X" : result.toString();
426
367
  if (checkDigit.toUpperCase() !== calculatedCheckDigit) {
427
- return {
428
- [optionNameValue]: {
429
- [optionMessageKey]: optionMessageValue,
430
- params: {
431
- actual: control.value,
432
- },
433
- },
434
- };
368
+ return (0, helpers_1.formValidatorBuildError)(config, {
369
+ actual: control.value,
370
+ });
435
371
  }
436
372
  return null;
437
373
  };
438
374
  },
439
375
  },
440
376
  ];
441
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUNBUW1CO0FBSW5COzs7O0dBSUc7QUFDVSxRQUFBLDJCQUEyQixHQUFHLG9NQUFvTSxDQUFDO0FBRWhQOzs7Ozs7Ozs7Ozs7R0FZRztBQUNVLFFBQUEsK0JBQStCLEdBQThCO0lBQ3hFO1FBQ0UsS0FBSyxFQUFFLEtBQUs7UUFDWixPQUFPLEVBQUUsc0JBQXNCO1FBQy9CLE1BQU0sRUFBRSxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ2pCLE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQztZQUM5QixNQUFNLGVBQWUsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDdkYsTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7WUFDbkMsTUFBTSxrQkFBa0IsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO1lBQzlHLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQztZQUMzQixNQUFNLGNBQWMsR0FBRyxJQUFBLDBDQUFnQyxFQUFDLE1BQU0sRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM5RSxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2pCLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksY0FBYyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNwRCxPQUFPLElBQUksQ0FBQyxDQUFDLHlEQUF5RDtnQkFDeEUsQ0FBQztnQkFFRCxJQUFJLEtBQUssQ0FBQztnQkFDVixJQUFJLENBQUM7b0JBQ0gsS0FBSyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxDQUFDO2dCQUN4RCxDQUFDO2dC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
377
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy92YWxpZGF0aW9uL3ZhbGlkYXRvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsdUNBU21CO0FBR25CLFNBQVMsa0JBQWtCLENBQUMsS0FBYztJQUN4QyxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUNsQixPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE9BQU8sS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUNELE1BQU0sWUFBWSxHQUFHLElBQUEsbUNBQXlCLEVBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEQsSUFBSSxZQUFZLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDMUIsT0FBTyxZQUFZLEdBQUcsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUM7QUFFRCxTQUFTLHNCQUFzQixDQUFDLEtBQWM7SUFDNUMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBQ0QsTUFBTSxZQUFZLEdBQUcsSUFBQSxtQ0FBeUIsRUFBQyxLQUFLLENBQUMsQ0FBQztJQUN0RCxJQUFJLFlBQVksS0FBSyxJQUFJLEVBQUUsQ0FBQztRQUMxQixPQUFPLFlBQVksR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQztBQUVELFNBQVMscUJBQXFCLENBQUMsS0FBYyxFQUFFLFVBQW9CO0lBQ2pFLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztRQUM1QixPQUFPLHNCQUFzQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFDRCxJQUFJ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
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@researchdatabox/sails-ng-common",
3
- "version": "0.0.1-beta.9604",
3
+ "version": "0.0.1-beta.9873",
4
4
  "description": "Common models shared between Sails API endpoints and client-side Angular code",
5
5
  "main": "dist/src/index.js",
6
6
  "types": "dist/src/index.d.ts",
@@ -44,14 +44,14 @@
44
44
  "@types/lodash-es": "4.17.12",
45
45
  "@types/luxon": "3.7.1",
46
46
  "@types/mocha": "10.0.10",
47
- "@types/node": "24.12.0",
47
+ "@types/node": "24.12.4",
48
48
  "chai": "6.2.2",
49
- "jsonata": "2.1.0",
50
- "mocha": "11.7.5",
49
+ "jsonata": "2.2.1",
50
+ "mocha": "11.7.6",
51
51
  "mocha-junit-reporter": "2.2.1",
52
52
  "nyc": "18.0.0",
53
53
  "serialize-javascript": "7.0.5",
54
- "typescript": "6.0.3"
54
+ "typescript": "5.9.3"
55
55
  },
56
56
  "nyc": {
57
57
  "check-coverage": true,
@@ -72,22 +72,22 @@
72
72
  ]
73
73
  },
74
74
  "dependencies": {
75
- "@jsonjoy.com/json-pointer": "18.21.0",
75
+ "@jsonjoy.com/json-pointer": "18.24.0",
76
76
  "lodash": "4.18.1",
77
77
  "lodash-es": "4.18.1",
78
78
  "luxon": "3.7.2",
79
- "marked": "18.0.3",
79
+ "marked": "18.0.4",
80
80
  "ts-json-schema-generator": "2.9.0"
81
81
  },
82
82
  "overrides": {
83
83
  "uuid": "14.0.0",
84
84
  "mocha": {
85
- "minimatch": "9.0.7",
85
+ "minimatch": "10.2.5",
86
86
  "serialize-javascript": "7.0.5"
87
87
  }
88
88
  },
89
89
  "peerDependencies": {
90
- "jsonata": "2.1.0"
90
+ "jsonata": "2.2.1"
91
91
  },
92
92
  "publishConfig": {
93
93
  "access": "public",