velocious 1.0.495 → 1.0.497

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 (91) hide show
  1. package/build/configuration-types.js +21 -0
  2. package/build/configuration.js +48 -0
  3. package/build/database/column-types.js +19 -0
  4. package/build/database/record/index.js +11 -0
  5. package/build/database/record/validation-messages.js +50 -0
  6. package/build/database/record/validators/length.js +52 -0
  7. package/build/database/record/validators/presence.js +4 -1
  8. package/build/database/record/validators/uniqueness.js +4 -1
  9. package/build/frontend-model-resource/base-resource.js +175 -5
  10. package/build/frontend-models/resource-definition.js +46 -0
  11. package/build/src/configuration-types.d.ts +68 -0
  12. package/build/src/configuration-types.d.ts.map +1 -1
  13. package/build/src/configuration-types.js +20 -1
  14. package/build/src/configuration.d.ts +6 -0
  15. package/build/src/configuration.d.ts.map +1 -1
  16. package/build/src/configuration.js +45 -1
  17. package/build/src/database/column-types.d.ts +8 -0
  18. package/build/src/database/column-types.d.ts.map +1 -0
  19. package/build/src/database/column-types.js +18 -0
  20. package/build/src/database/record/index.d.ts +8 -0
  21. package/build/src/database/record/index.d.ts.map +1 -1
  22. package/build/src/database/record/index.js +11 -1
  23. package/build/src/database/record/validation-messages.d.ts +38 -0
  24. package/build/src/database/record/validation-messages.d.ts.map +1 -0
  25. package/build/src/database/record/validation-messages.js +45 -0
  26. package/build/src/database/record/validators/length.d.ts +12 -0
  27. package/build/src/database/record/validators/length.d.ts.map +1 -0
  28. package/build/src/database/record/validators/length.js +45 -0
  29. package/build/src/database/record/validators/presence.d.ts.map +1 -1
  30. package/build/src/database/record/validators/presence.js +4 -2
  31. package/build/src/database/record/validators/uniqueness.d.ts.map +1 -1
  32. package/build/src/database/record/validators/uniqueness.js +4 -2
  33. package/build/src/frontend-model-resource/base-resource.d.ts +184 -5
  34. package/build/src/frontend-model-resource/base-resource.d.ts.map +1 -1
  35. package/build/src/frontend-model-resource/base-resource.js +155 -6
  36. package/build/src/frontend-models/resource-definition.d.ts +41 -0
  37. package/build/src/frontend-models/resource-definition.d.ts.map +1 -1
  38. package/build/src/frontend-models/resource-definition.js +42 -1
  39. package/build/src/sync/sync-api-client.d.ts +4 -1
  40. package/build/src/sync/sync-api-client.d.ts.map +1 -1
  41. package/build/src/sync/sync-api-client.js +9 -2
  42. package/build/src/sync/sync-client-types.d.ts +88 -10
  43. package/build/src/sync/sync-client-types.d.ts.map +1 -1
  44. package/build/src/sync/sync-client-types.js +1 -1
  45. package/build/src/sync/sync-client.d.ts +38 -11
  46. package/build/src/sync/sync-client.d.ts.map +1 -1
  47. package/build/src/sync/sync-client.js +193 -29
  48. package/build/src/sync/sync-envelope-replay-service.d.ts +166 -3
  49. package/build/src/sync/sync-envelope-replay-service.d.ts.map +1 -1
  50. package/build/src/sync/sync-envelope-replay-service.js +304 -12
  51. package/build/src/sync/sync-replay-upsert-applier.d.ts +1 -0
  52. package/build/src/sync/sync-replay-upsert-applier.d.ts.map +1 -1
  53. package/build/src/sync/sync-replay-upsert-applier.js +2 -1
  54. package/build/src/sync/sync-resource-base.d.ts +16 -32
  55. package/build/src/sync/sync-resource-base.d.ts.map +1 -1
  56. package/build/src/sync/sync-resource-base.js +31 -43
  57. package/build/src/testing/test-runner.d.ts +12 -9
  58. package/build/src/testing/test-runner.d.ts.map +1 -1
  59. package/build/src/testing/test-runner.js +30 -9
  60. package/build/sync/sync-api-client.js +7 -1
  61. package/build/sync/sync-client-types.js +34 -5
  62. package/build/sync/sync-client.js +223 -27
  63. package/build/sync/sync-envelope-replay-service.js +350 -10
  64. package/build/sync/sync-replay-upsert-applier.js +1 -0
  65. package/build/sync/sync-resource-base.js +32 -45
  66. package/build/testing/test-runner.js +30 -8
  67. package/build/tsconfig.tsbuildinfo +1 -1
  68. package/package.json +1 -1
  69. package/scripts/run-tests.js +6 -0
  70. package/src/configuration-types.js +21 -0
  71. package/src/configuration.js +48 -0
  72. package/src/database/column-types.js +19 -0
  73. package/src/database/record/index.js +11 -0
  74. package/src/database/record/validation-messages.js +50 -0
  75. package/src/database/record/validators/length.js +52 -0
  76. package/src/database/record/validators/presence.js +4 -1
  77. package/src/database/record/validators/uniqueness.js +4 -1
  78. package/src/frontend-model-resource/base-resource.js +175 -5
  79. package/src/frontend-models/resource-definition.js +46 -0
  80. package/src/sync/sync-api-client.js +7 -1
  81. package/src/sync/sync-client-types.js +34 -5
  82. package/src/sync/sync-client.js +223 -27
  83. package/src/sync/sync-envelope-replay-service.js +350 -10
  84. package/src/sync/sync-replay-upsert-applier.js +1 -0
  85. package/src/sync/sync-resource-base.js +32 -45
  86. package/src/testing/test-runner.js +30 -8
  87. package/build/src/sync/sync-attribute-normalizer.d.ts +0 -105
  88. package/build/src/sync/sync-attribute-normalizer.d.ts.map +0 -1
  89. package/build/src/sync/sync-attribute-normalizer.js +0 -172
  90. package/build/sync/sync-attribute-normalizer.js +0 -186
  91. package/src/sync/sync-attribute-normalizer.js +0 -186
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Builds a validation message predicate through the framework's translation
3
+ * layer. The message is looked up under `velocious.errors.messages.<type>`
4
+ * with the English default as fallback; `%{variable}` placeholders are
5
+ * interpolated from the given variables. Without a translator the English
6
+ * default is interpolated directly.
7
+ * @param {object} args - Options.
8
+ * @param {ValidationMessageTranslator | null} [args.translator] - Translator resolving message IDs (usually `configuration.getTranslator()`).
9
+ * @param {string} args.type - Message type key in {@link VALIDATION_MESSAGE_DEFAULTS}.
10
+ * @param {Record<string, string | number>} [args.variables] - Interpolation variables.
11
+ * @returns {string} Localized message predicate.
12
+ */
13
+ export default function validationMessage({ translator, type, variables }: {
14
+ translator?: ValidationMessageTranslator | null | undefined;
15
+ type: string;
16
+ variables?: Record<string, string | number> | undefined;
17
+ }): string;
18
+ /**
19
+ * Translates a validation message ID into a localized message.
20
+ * @callback ValidationMessageTranslator
21
+ * @param {string} msgID - Stable message ID (e.g. "velocious.errors.messages.blank").
22
+ * @param {Record<string, string | number> & {defaultValue?: string}} [args] - Interpolation variables plus the English default message.
23
+ * @returns {string} Localized message.
24
+ */
25
+ /**
26
+ * English default validation message predicates keyed by message type,
27
+ * matching Rails' `errors.messages.*` where an equivalent exists. Values may
28
+ * contain `%{variable}` placeholders.
29
+ * @type {Record<string, string>}
30
+ */
31
+ export const VALIDATION_MESSAGE_DEFAULTS: Record<string, string>;
32
+ /**
33
+ * Translates a validation message ID into a localized message.
34
+ */
35
+ export type ValidationMessageTranslator = (msgID: string, args?: (Record<string, string | number> & {
36
+ defaultValue?: string;
37
+ }) | undefined) => string;
38
+ //# sourceMappingURL=validation-messages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation-messages.d.ts","sourceRoot":"","sources":["../../../../src/database/record/validation-messages.js"],"names":[],"mappings":"AAuBA;;;;;;;;;;;GAWG;AACH,2EALG;IAAkD,UAAU;IACvC,IAAI,EAAjB,MAAM;IACiC,SAAS;CACxD,GAAU,MAAM,CAgBlB;AA/CD;;;;;;GAMG;AAEH;;;;;GAKG;AACH,0CAFU,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAO/B;;;;kDAhBU,MAAM;mBAC4C,MAAM;mBACtD,MAAM"}
@@ -0,0 +1,45 @@
1
+ // @ts-check
2
+ /**
3
+ * Translates a validation message ID into a localized message.
4
+ * @callback ValidationMessageTranslator
5
+ * @param {string} msgID - Stable message ID (e.g. "velocious.errors.messages.blank").
6
+ * @param {Record<string, string | number> & {defaultValue?: string}} [args] - Interpolation variables plus the English default message.
7
+ * @returns {string} Localized message.
8
+ */
9
+ /**
10
+ * English default validation message predicates keyed by message type,
11
+ * matching Rails' `errors.messages.*` where an equivalent exists. Values may
12
+ * contain `%{variable}` placeholders.
13
+ * @type {Record<string, string>}
14
+ */
15
+ export const VALIDATION_MESSAGE_DEFAULTS = {
16
+ blank: "can't be blank",
17
+ taken: "has already been taken",
18
+ too_long: "is too long (maximum is %{count} characters)",
19
+ too_short: "is too short (minimum is %{count} characters)"
20
+ };
21
+ /**
22
+ * Builds a validation message predicate through the framework's translation
23
+ * layer. The message is looked up under `velocious.errors.messages.<type>`
24
+ * with the English default as fallback; `%{variable}` placeholders are
25
+ * interpolated from the given variables. Without a translator the English
26
+ * default is interpolated directly.
27
+ * @param {object} args - Options.
28
+ * @param {ValidationMessageTranslator | null} [args.translator] - Translator resolving message IDs (usually `configuration.getTranslator()`).
29
+ * @param {string} args.type - Message type key in {@link VALIDATION_MESSAGE_DEFAULTS}.
30
+ * @param {Record<string, string | number>} [args.variables] - Interpolation variables.
31
+ * @returns {string} Localized message predicate.
32
+ */
33
+ export default function validationMessage({ translator, type, variables }) {
34
+ const defaultMessage = VALIDATION_MESSAGE_DEFAULTS[type];
35
+ if (!defaultMessage)
36
+ throw new Error(`Unknown validation message type: ${String(type)}`);
37
+ if (translator)
38
+ return translator(`velocious.errors.messages.${type}`, { ...variables, defaultValue: defaultMessage });
39
+ let message = defaultMessage;
40
+ for (const [variableName, variableValue] of Object.entries(variables ?? {})) {
41
+ message = message.replaceAll(`%{${variableName}}`, String(variableValue));
42
+ }
43
+ return message;
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1tZXNzYWdlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvdmFsaWRhdGlvbi1tZXNzYWdlcy5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7Ozs7OztHQU1HO0FBRUg7Ozs7O0dBS0c7QUFDSCxNQUFNLENBQUMsTUFBTSwyQkFBMkIsR0FBRztJQUN6QyxLQUFLLEVBQUUsZ0JBQWdCO0lBQ3ZCLEtBQUssRUFBRSx3QkFBd0I7SUFDL0IsUUFBUSxFQUFFLDhDQUE4QztJQUN4RCxTQUFTLEVBQUUsK0NBQStDO0NBQzNELENBQUE7QUFFRDs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sQ0FBQyxPQUFPLFVBQVUsaUJBQWlCLENBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQztJQUNyRSxNQUFNLGNBQWMsR0FBRywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQTtJQUV4RCxJQUFJLENBQUMsY0FBYztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsb0NBQW9DLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7SUFFeEYsSUFBSSxVQUFVO1FBQUUsT0FBTyxVQUFVLENBQUMsNkJBQTZCLElBQUksRUFBRSxFQUFFLEVBQUMsR0FBRyxTQUFTLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBQyxDQUFDLENBQUE7SUFFcEgsSUFBSSxPQUFPLEdBQUcsY0FBYyxDQUFBO0lBRTVCLEtBQUssTUFBTSxDQUFDLFlBQVksRUFBRSxhQUFhLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQzVFLE9BQU8sR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssWUFBWSxHQUFHLEVBQUUsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUE7SUFDM0UsQ0FBQztJQUVELE9BQU8sT0FBTyxDQUFBO0FBQ2hCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKiBUcmFuc2xhdGVzIGEgdmFsaWRhdGlvbiBtZXNzYWdlIElEIGludG8gYSBsb2NhbGl6ZWQgbWVzc2FnZS5cbiAqIEBjYWxsYmFjayBWYWxpZGF0aW9uTWVzc2FnZVRyYW5zbGF0b3JcbiAqIEBwYXJhbSB7c3RyaW5nfSBtc2dJRCAtIFN0YWJsZSBtZXNzYWdlIElEIChlLmcuIFwidmVsb2Npb3VzLmVycm9ycy5tZXNzYWdlcy5ibGFua1wiKS5cbiAqIEBwYXJhbSB7UmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyPiAmIHtkZWZhdWx0VmFsdWU/OiBzdHJpbmd9fSBbYXJnc10gLSBJbnRlcnBvbGF0aW9uIHZhcmlhYmxlcyBwbHVzIHRoZSBFbmdsaXNoIGRlZmF1bHQgbWVzc2FnZS5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IExvY2FsaXplZCBtZXNzYWdlLlxuICovXG5cbi8qKlxuICogRW5nbGlzaCBkZWZhdWx0IHZhbGlkYXRpb24gbWVzc2FnZSBwcmVkaWNhdGVzIGtleWVkIGJ5IG1lc3NhZ2UgdHlwZSxcbiAqIG1hdGNoaW5nIFJhaWxzJyBgZXJyb3JzLm1lc3NhZ2VzLipgIHdoZXJlIGFuIGVxdWl2YWxlbnQgZXhpc3RzLiBWYWx1ZXMgbWF5XG4gKiBjb250YWluIGAle3ZhcmlhYmxlfWAgcGxhY2Vob2xkZXJzLlxuICogQHR5cGUge1JlY29yZDxzdHJpbmcsIHN0cmluZz59XG4gKi9cbmV4cG9ydCBjb25zdCBWQUxJREFUSU9OX01FU1NBR0VfREVGQVVMVFMgPSB7XG4gIGJsYW5rOiBcImNhbid0IGJlIGJsYW5rXCIsXG4gIHRha2VuOiBcImhhcyBhbHJlYWR5IGJlZW4gdGFrZW5cIixcbiAgdG9vX2xvbmc6IFwiaXMgdG9vIGxvbmcgKG1heGltdW0gaXMgJXtjb3VudH0gY2hhcmFjdGVycylcIixcbiAgdG9vX3Nob3J0OiBcImlzIHRvbyBzaG9ydCAobWluaW11bSBpcyAle2NvdW50fSBjaGFyYWN0ZXJzKVwiXG59XG5cbi8qKlxuICogQnVpbGRzIGEgdmFsaWRhdGlvbiBtZXNzYWdlIHByZWRpY2F0ZSB0aHJvdWdoIHRoZSBmcmFtZXdvcmsncyB0cmFuc2xhdGlvblxuICogbGF5ZXIuIFRoZSBtZXNzYWdlIGlzIGxvb2tlZCB1cCB1bmRlciBgdmVsb2Npb3VzLmVycm9ycy5tZXNzYWdlcy48dHlwZT5gXG4gKiB3aXRoIHRoZSBFbmdsaXNoIGRlZmF1bHQgYXMgZmFsbGJhY2s7IGAle3ZhcmlhYmxlfWAgcGxhY2Vob2xkZXJzIGFyZVxuICogaW50ZXJwb2xhdGVkIGZyb20gdGhlIGdpdmVuIHZhcmlhYmxlcy4gV2l0aG91dCBhIHRyYW5zbGF0b3IgdGhlIEVuZ2xpc2hcbiAqIGRlZmF1bHQgaXMgaW50ZXJwb2xhdGVkIGRpcmVjdGx5LlxuICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICogQHBhcmFtIHtWYWxpZGF0aW9uTWVzc2FnZVRyYW5zbGF0b3IgfCBudWxsfSBbYXJncy50cmFuc2xhdG9yXSAtIFRyYW5zbGF0b3IgcmVzb2x2aW5nIG1lc3NhZ2UgSURzICh1c3VhbGx5IGBjb25maWd1cmF0aW9uLmdldFRyYW5zbGF0b3IoKWApLlxuICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MudHlwZSAtIE1lc3NhZ2UgdHlwZSBrZXkgaW4ge0BsaW5rIFZBTElEQVRJT05fTUVTU0FHRV9ERUZBVUxUU30uXG4gKiBAcGFyYW0ge1JlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlcj59IFthcmdzLnZhcmlhYmxlc10gLSBJbnRlcnBvbGF0aW9uIHZhcmlhYmxlcy5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IExvY2FsaXplZCBtZXNzYWdlIHByZWRpY2F0ZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gdmFsaWRhdGlvbk1lc3NhZ2Uoe3RyYW5zbGF0b3IsIHR5cGUsIHZhcmlhYmxlc30pIHtcbiAgY29uc3QgZGVmYXVsdE1lc3NhZ2UgPSBWQUxJREFUSU9OX01FU1NBR0VfREVGQVVMVFNbdHlwZV1cblxuICBpZiAoIWRlZmF1bHRNZXNzYWdlKSB0aHJvdyBuZXcgRXJyb3IoYFVua25vd24gdmFsaWRhdGlvbiBtZXNzYWdlIHR5cGU6ICR7U3RyaW5nKHR5cGUpfWApXG5cbiAgaWYgKHRyYW5zbGF0b3IpIHJldHVybiB0cmFuc2xhdG9yKGB2ZWxvY2lvdXMuZXJyb3JzLm1lc3NhZ2VzLiR7dHlwZX1gLCB7Li4udmFyaWFibGVzLCBkZWZhdWx0VmFsdWU6IGRlZmF1bHRNZXNzYWdlfSlcblxuICBsZXQgbWVzc2FnZSA9IGRlZmF1bHRNZXNzYWdlXG5cbiAgZm9yIChjb25zdCBbdmFyaWFibGVOYW1lLCB2YXJpYWJsZVZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh2YXJpYWJsZXMgPz8ge30pKSB7XG4gICAgbWVzc2FnZSA9IG1lc3NhZ2UucmVwbGFjZUFsbChgJXske3ZhcmlhYmxlTmFtZX19YCwgU3RyaW5nKHZhcmlhYmxlVmFsdWUpKVxuICB9XG5cbiAgcmV0dXJuIG1lc3NhZ2Vcbn1cbiJdfQ==
@@ -0,0 +1,12 @@
1
+ export default class VelociousDatabaseRecordValidatorsLength extends Base {
2
+ /**
3
+ * Adds a length validation error to the model.
4
+ * @param {import("../index.js").default} model - Model instance.
5
+ * @param {string} attributeName - Attribute name.
6
+ * @param {string} message - Translated message predicate.
7
+ * @returns {void}
8
+ */
9
+ _addError(model: import("../index.js").default, attributeName: string, message: string): void;
10
+ }
11
+ import Base from "./base.js";
12
+ //# sourceMappingURL=length.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"length.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/validators/length.js"],"names":[],"mappings":"AAKA;IAkCE;;;;;;OAMG;IACH,iBALW,OAAO,aAAa,EAAE,OAAO,iBAC7B,MAAM,WACN,MAAM,GACJ,IAAI,CAMhB;CACF;iBAjDgB,WAAW"}
@@ -0,0 +1,45 @@
1
+ // @ts-check
2
+ import Base from "./base.js";
3
+ import validationMessage from "../validation-messages.js";
4
+ export default class VelociousDatabaseRecordValidatorsLength extends Base {
5
+ /**
6
+ * Runs validate: bounds the value's string length by the `maximum` and/or
7
+ * `minimum` options. Absent values (null/undefined/"") are skipped — they
8
+ * are the presence validator's concern.
9
+ * @param {object} args - Options object.
10
+ * @param {import("../index.js").default} args.model - Model instance.
11
+ * @param {string} args.attributeName - Attribute name.
12
+ * @returns {Promise<void>} - Resolves when complete.
13
+ */
14
+ async validate({ model, attributeName }) {
15
+ const maximum = this.args?.maximum;
16
+ const minimum = this.args?.minimum;
17
+ if (typeof maximum != "number" && typeof minimum != "number") {
18
+ throw new Error("length validator requires a maximum and/or minimum option");
19
+ }
20
+ const rawValue = model.readAttribute(attributeName);
21
+ if (rawValue === null || rawValue === undefined || rawValue === "")
22
+ return;
23
+ const valueLength = String(rawValue).length;
24
+ const translator = model.getModelClass()._getConfiguration().getTranslator();
25
+ if (typeof maximum == "number" && valueLength > maximum) {
26
+ this._addError(model, attributeName, validationMessage({ translator, type: "too_long", variables: { count: maximum } }));
27
+ }
28
+ if (typeof minimum == "number" && valueLength < minimum) {
29
+ this._addError(model, attributeName, validationMessage({ translator, type: "too_short", variables: { count: minimum } }));
30
+ }
31
+ }
32
+ /**
33
+ * Adds a length validation error to the model.
34
+ * @param {import("../index.js").default} model - Model instance.
35
+ * @param {string} attributeName - Attribute name.
36
+ * @param {string} message - Translated message predicate.
37
+ * @returns {void}
38
+ */
39
+ _addError(model, attributeName, message) {
40
+ if (!(attributeName in model._validationErrors))
41
+ model._validationErrors[attributeName] = [];
42
+ model._validationErrors[attributeName].push({ type: "length", message });
43
+ }
44
+ }
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVuZ3RoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2RhdGFiYXNlL3JlY29yZC92YWxpZGF0b3JzL2xlbmd0aC5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFBO0FBQzVCLE9BQU8saUJBQWlCLE1BQU0sMkJBQTJCLENBQUE7QUFFekQsTUFBTSxDQUFDLE9BQU8sT0FBTyx1Q0FBd0MsU0FBUSxJQUFJO0lBQ3ZFOzs7Ozs7OztPQVFHO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFDLEtBQUssRUFBRSxhQUFhLEVBQUM7UUFDbkMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUE7UUFDbEMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUE7UUFFbEMsSUFBSSxPQUFPLE9BQU8sSUFBSSxRQUFRLElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxFQUFFLENBQUM7WUFDN0QsTUFBTSxJQUFJLEtBQUssQ0FBQywyREFBMkQsQ0FBQyxDQUFBO1FBQzlFLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBRW5ELElBQUksUUFBUSxLQUFLLElBQUksSUFBSSxRQUFRLEtBQUssU0FBUyxJQUFJLFFBQVEsS0FBSyxFQUFFO1lBQUUsT0FBTTtRQUUxRSxNQUFNLFdBQVcsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFBO1FBQzNDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO1FBRTVFLElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxJQUFJLFdBQVcsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsaUJBQWlCLENBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdEgsQ0FBQztRQUVELElBQUksT0FBTyxPQUFPLElBQUksUUFBUSxJQUFJLFdBQVcsR0FBRyxPQUFPLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsaUJBQWlCLENBQUMsRUFBQyxVQUFVLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsRUFBQyxLQUFLLEVBQUUsT0FBTyxFQUFDLEVBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkgsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxTQUFTLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxPQUFPO1FBQ3JDLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUM7WUFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFBO1FBRTVGLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUE7SUFDeEUsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlIGZyb20gXCIuL2Jhc2UuanNcIlxuaW1wb3J0IHZhbGlkYXRpb25NZXNzYWdlIGZyb20gXCIuLi92YWxpZGF0aW9uLW1lc3NhZ2VzLmpzXCJcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgVmVsb2Npb3VzRGF0YWJhc2VSZWNvcmRWYWxpZGF0b3JzTGVuZ3RoIGV4dGVuZHMgQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIHZhbGlkYXRlOiBib3VuZHMgdGhlIHZhbHVlJ3Mgc3RyaW5nIGxlbmd0aCBieSB0aGUgYG1heGltdW1gIGFuZC9vclxuICAgKiBgbWluaW11bWAgb3B0aW9ucy4gQWJzZW50IHZhbHVlcyAobnVsbC91bmRlZmluZWQvXCJcIikgYXJlIHNraXBwZWQg4oCUIHRoZXlcbiAgICogYXJlIHRoZSBwcmVzZW5jZSB2YWxpZGF0b3IncyBjb25jZXJuLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IGFyZ3MubW9kZWwgLSBNb2RlbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuYXR0cmlidXRlTmFtZSAtIEF0dHJpYnV0ZSBuYW1lLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgdmFsaWRhdGUoe21vZGVsLCBhdHRyaWJ1dGVOYW1lfSkge1xuICAgIGNvbnN0IG1heGltdW0gPSB0aGlzLmFyZ3M/Lm1heGltdW1cbiAgICBjb25zdCBtaW5pbXVtID0gdGhpcy5hcmdzPy5taW5pbXVtXG5cbiAgICBpZiAodHlwZW9mIG1heGltdW0gIT0gXCJudW1iZXJcIiAmJiB0eXBlb2YgbWluaW11bSAhPSBcIm51bWJlclwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJsZW5ndGggdmFsaWRhdG9yIHJlcXVpcmVzIGEgbWF4aW11bSBhbmQvb3IgbWluaW11bSBvcHRpb25cIilcbiAgICB9XG5cbiAgICBjb25zdCByYXdWYWx1ZSA9IG1vZGVsLnJlYWRBdHRyaWJ1dGUoYXR0cmlidXRlTmFtZSlcblxuICAgIGlmIChyYXdWYWx1ZSA9PT0gbnVsbCB8fCByYXdWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHJhd1ZhbHVlID09PSBcIlwiKSByZXR1cm5cblxuICAgIGNvbnN0IHZhbHVlTGVuZ3RoID0gU3RyaW5nKHJhd1ZhbHVlKS5sZW5ndGhcbiAgICBjb25zdCB0cmFuc2xhdG9yID0gbW9kZWwuZ2V0TW9kZWxDbGFzcygpLl9nZXRDb25maWd1cmF0aW9uKCkuZ2V0VHJhbnNsYXRvcigpXG5cbiAgICBpZiAodHlwZW9mIG1heGltdW0gPT0gXCJudW1iZXJcIiAmJiB2YWx1ZUxlbmd0aCA+IG1heGltdW0pIHtcbiAgICAgIHRoaXMuX2FkZEVycm9yKG1vZGVsLCBhdHRyaWJ1dGVOYW1lLCB2YWxpZGF0aW9uTWVzc2FnZSh7dHJhbnNsYXRvciwgdHlwZTogXCJ0b29fbG9uZ1wiLCB2YXJpYWJsZXM6IHtjb3VudDogbWF4aW11bX19KSlcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG1pbmltdW0gPT0gXCJudW1iZXJcIiAmJiB2YWx1ZUxlbmd0aCA8IG1pbmltdW0pIHtcbiAgICAgIHRoaXMuX2FkZEVycm9yKG1vZGVsLCBhdHRyaWJ1dGVOYW1lLCB2YWxpZGF0aW9uTWVzc2FnZSh7dHJhbnNsYXRvciwgdHlwZTogXCJ0b29fc2hvcnRcIiwgdmFyaWFibGVzOiB7Y291bnQ6IG1pbmltdW19fSkpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBsZW5ndGggdmFsaWRhdGlvbiBlcnJvciB0byB0aGUgbW9kZWwuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vaW5kZXguanNcIikuZGVmYXVsdH0gbW9kZWwgLSBNb2RlbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGF0dHJpYnV0ZU5hbWUgLSBBdHRyaWJ1dGUgbmFtZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IG1lc3NhZ2UgLSBUcmFuc2xhdGVkIG1lc3NhZ2UgcHJlZGljYXRlLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIF9hZGRFcnJvcihtb2RlbCwgYXR0cmlidXRlTmFtZSwgbWVzc2FnZSkge1xuICAgIGlmICghKGF0dHJpYnV0ZU5hbWUgaW4gbW9kZWwuX3ZhbGlkYXRpb25FcnJvcnMpKSBtb2RlbC5fdmFsaWRhdGlvbkVycm9yc1thdHRyaWJ1dGVOYW1lXSA9IFtdXG5cbiAgICBtb2RlbC5fdmFsaWRhdGlvbkVycm9yc1thdHRyaWJ1dGVOYW1lXS5wdXNoKHt0eXBlOiBcImxlbmd0aFwiLCBtZXNzYWdlfSlcbiAgfVxufVxuIl19
@@ -1 +1 @@
1
- {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/validators/presence.js"],"names":[],"mappings":"AAIA;CAiBC;iBAnBgB,WAAW"}
1
+ {"version":3,"file":"presence.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/validators/presence.js"],"names":[],"mappings":"AAKA;CAmBC;iBAtBgB,WAAW"}
@@ -1,5 +1,6 @@
1
1
  // @ts-check
2
2
  import Base from "./base.js";
3
+ import validationMessage from "../validation-messages.js";
3
4
  export default class VelociousDatabaseRecordValidatorsPresence extends Base {
4
5
  /**
5
6
  * Runs validate.
@@ -13,8 +14,9 @@ export default class VelociousDatabaseRecordValidatorsPresence extends Base {
13
14
  if (!attributeValue) {
14
15
  if (!(attributeName in model._validationErrors))
15
16
  model._validationErrors[attributeName] = [];
16
- model._validationErrors[attributeName].push({ type: "presence", message: "can't be blank" });
17
+ const translator = model.getModelClass()._getConfiguration().getTranslator();
18
+ model._validationErrors[attributeName].push({ type: "presence", message: validationMessage({ translator, type: "blank" }) });
17
19
  }
18
20
  }
19
21
  }
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvcmVjb3JkL3ZhbGlkYXRvcnMvcHJlc2VuY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUU1QixNQUFNLENBQUMsT0FBTyxPQUFPLHlDQUEwQyxTQUFRLElBQUk7SUFDekU7Ozs7O09BS0c7SUFDSCxLQUFLLENBQUMsUUFBUSxDQUFDLEVBQUMsS0FBSyxFQUFFLGFBQWEsRUFBQztRQUNuQyxNQUFNLFFBQVEsR0FBRyxpQ0FBaUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtRQUN2RixNQUFNLGNBQWMsR0FBRyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUE7UUFFdkMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsaUJBQWlCLENBQUM7Z0JBQUUsS0FBSyxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQTtZQUU1RixLQUFLLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUMsQ0FBQyxDQUFBO1FBQzVGLENBQUM7SUFDSCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IEJhc2UgZnJvbSBcIi4vYmFzZS5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlUmVjb3JkVmFsaWRhdG9yc1ByZXNlbmNlIGV4dGVuZHMgQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIHZhbGlkYXRlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IGFyZ3MubW9kZWwgLSBNb2RlbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuYXR0cmlidXRlTmFtZSAtIEF0dHJpYnV0ZSBuYW1lLlxuICAgKi9cbiAgYXN5bmMgdmFsaWRhdGUoe21vZGVsLCBhdHRyaWJ1dGVOYW1lfSkge1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovIChtb2RlbC5yZWFkQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpKVxuICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gcmF3VmFsdWU/LnRyaW0oKVxuXG4gICAgaWYgKCFhdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgaWYgKCEoYXR0cmlidXRlTmFtZSBpbiBtb2RlbC5fdmFsaWRhdGlvbkVycm9ycykpIG1vZGVsLl92YWxpZGF0aW9uRXJyb3JzW2F0dHJpYnV0ZU5hbWVdID0gW11cblxuICAgICAgbW9kZWwuX3ZhbGlkYXRpb25FcnJvcnNbYXR0cmlidXRlTmFtZV0ucHVzaCh7dHlwZTogXCJwcmVzZW5jZVwiLCBtZXNzYWdlOiBcImNhbid0IGJlIGJsYW5rXCJ9KVxuICAgIH1cbiAgfVxufVxuIl19
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlc2VuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvZGF0YWJhc2UvcmVjb3JkL3ZhbGlkYXRvcnMvcHJlc2VuY2UuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sSUFBSSxNQUFNLFdBQVcsQ0FBQTtBQUM1QixPQUFPLGlCQUFpQixNQUFNLDJCQUEyQixDQUFBO0FBRXpELE1BQU0sQ0FBQyxPQUFPLE9BQU8seUNBQTBDLFNBQVEsSUFBSTtJQUN6RTs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFDO1FBQ25DLE1BQU0sUUFBUSxHQUFHLGlDQUFpQyxDQUFDLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFBO1FBQ3ZGLE1BQU0sY0FBYyxHQUFHLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQTtRQUV2QyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLENBQUMsYUFBYSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztnQkFBRSxLQUFLLENBQUMsaUJBQWlCLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFBO1lBRTVGLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO1lBRTVFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBQyxJQUFJLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxpQkFBaUIsQ0FBQyxFQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFDLENBQUMsRUFBQyxDQUFDLENBQUE7UUFDMUgsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZSBmcm9tIFwiLi9iYXNlLmpzXCJcbmltcG9ydCB2YWxpZGF0aW9uTWVzc2FnZSBmcm9tIFwiLi4vdmFsaWRhdGlvbi1tZXNzYWdlcy5qc1wiXG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFZlbG9jaW91c0RhdGFiYXNlUmVjb3JkVmFsaWRhdG9yc1ByZXNlbmNlIGV4dGVuZHMgQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIHZhbGlkYXRlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IGFyZ3MubW9kZWwgLSBNb2RlbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuYXR0cmlidXRlTmFtZSAtIEF0dHJpYnV0ZSBuYW1lLlxuICAgKi9cbiAgYXN5bmMgdmFsaWRhdGUoe21vZGVsLCBhdHRyaWJ1dGVOYW1lfSkge1xuICAgIGNvbnN0IHJhd1ZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmcgfCB1bmRlZmluZWR9ICovIChtb2RlbC5yZWFkQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpKVxuICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gcmF3VmFsdWU/LnRyaW0oKVxuXG4gICAgaWYgKCFhdHRyaWJ1dGVWYWx1ZSkge1xuICAgICAgaWYgKCEoYXR0cmlidXRlTmFtZSBpbiBtb2RlbC5fdmFsaWRhdGlvbkVycm9ycykpIG1vZGVsLl92YWxpZGF0aW9uRXJyb3JzW2F0dHJpYnV0ZU5hbWVdID0gW11cblxuICAgICAgY29uc3QgdHJhbnNsYXRvciA9IG1vZGVsLmdldE1vZGVsQ2xhc3MoKS5fZ2V0Q29uZmlndXJhdGlvbigpLmdldFRyYW5zbGF0b3IoKVxuXG4gICAgICBtb2RlbC5fdmFsaWRhdGlvbkVycm9yc1thdHRyaWJ1dGVOYW1lXS5wdXNoKHt0eXBlOiBcInByZXNlbmNlXCIsIG1lc3NhZ2U6IHZhbGlkYXRpb25NZXNzYWdlKHt0cmFuc2xhdG9yLCB0eXBlOiBcImJsYW5rXCJ9KX0pXG4gICAgfVxuICB9XG59XG4iXX0=
@@ -1 +1 @@
1
- {"version":3,"file":"uniqueness.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/validators/uniqueness.js"],"names":[],"mappings":"AAKA;IA8DE;;;;;;;;;OASG;IACH,0CAJW,OAAO,aAAa,EAAE,OAAO,eAC7B,MAAM,GACJ,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBlC;IAED;;;;;OAKG;IACH,0BAFa,MAAM,EAAE,CASpB;CACF;iBAjHgB,WAAW"}
1
+ {"version":3,"file":"uniqueness.d.ts","sourceRoot":"","sources":["../../../../../src/database/record/validators/uniqueness.js"],"names":[],"mappings":"AAMA;IAgEE;;;;;;;;;OASG;IACH,0CAJW,OAAO,aAAa,EAAE,OAAO,eAC7B,MAAM,GACJ,MAAM,GAAG,MAAM,GAAG,IAAI,CAwBlC;IAED;;;;;OAKG;IACH,0BAFa,MAAM,EAAE,CASpB;CACF;iBApHgB,WAAW"}
@@ -1,6 +1,7 @@
1
1
  // @ts-check
2
2
  import Base from "./base.js";
3
3
  import * as inflection from "inflection";
4
+ import validationMessage from "../validation-messages.js";
4
5
  export default class VelociousDatabaseRecordValidatorsUniqueness extends Base {
5
6
  /**
6
7
  * Runs validate.
@@ -48,7 +49,8 @@ export default class VelociousDatabaseRecordValidatorsUniqueness extends Base {
48
49
  if (existingRecord) {
49
50
  if (!(attributeName in model._validationErrors))
50
51
  model._validationErrors[attributeName] = [];
51
- model._validationErrors[attributeName].push({ type: "uniqueness", message: "has already been taken" });
52
+ const translator = modelClass._getConfiguration().getTranslator();
53
+ model._validationErrors[attributeName].push({ type: "uniqueness", message: validationMessage({ translator, type: "taken" }) });
52
54
  }
53
55
  }
54
56
  /**
@@ -94,4 +96,4 @@ export default class VelociousDatabaseRecordValidatorsUniqueness extends Base {
94
96
  return [String(scope)];
95
97
  }
96
98
  }
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlbmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvdmFsaWRhdG9ycy91bmlxdWVuZXNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFDNUIsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFFeEMsTUFBTSxDQUFDLE9BQU8sT0FBTywyQ0FBNEMsU0FBUSxJQUFJO0lBQzNFOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBQyxLQUFLLEVBQUUsYUFBYSxFQUFDO1FBQ25DLE1BQU0sVUFBVSxHQUFHLG1EQUFtRCxDQUFDLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBRTFGLE1BQU0sVUFBVSxHQUFHLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQTtRQUMxQyxNQUFNLFNBQVMsR0FBRyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUE7UUFDbEQsTUFBTSxjQUFjLEdBQUcsOEJBQThCLENBQUMsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUE7UUFDMUYsTUFBTSx1QkFBdUIsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBRXBFOztxREFFNkM7UUFDN0MsTUFBTSxTQUFTLEdBQUcsRUFBRSxDQUFBO1FBRXBCLFNBQVMsQ0FBQyx1QkFBdUIsQ0FBQyxHQUFHLGNBQWMsQ0FBQTtRQUVuRCxvRUFBb0U7UUFDcEUsb0VBQW9FO1FBQ3BFLDREQUE0RDtRQUM1RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQTtRQUVsRCxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3ZDLE1BQU0sZUFBZSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FB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QUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQTtRQUNyQixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUE7UUFFdEMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3hCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgQmFzZSBmcm9tIFwiLi9iYXNlLmpzXCJcbmltcG9ydCAqIGFzIGluZmxlY3Rpb24gZnJvbSBcImluZmxlY3Rpb25cIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZVJlY29yZFZhbGlkYXRvcnNVbmlxdWVuZXNzIGV4dGVuZHMgQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIHZhbGlkYXRlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IGFyZ3MubW9kZWwgLSBNb2RlbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuYXR0cmlidXRlTmFtZSAtIEF0dHJpYnV0ZSBuYW1lLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgdmFsaWRhdGUoe21vZGVsLCBhdHRyaWJ1dGVOYW1lfSkge1xuICAgIGNvbnN0IG1vZGVsQ2xhc3MgPSAvKiogQHR5cGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSAqLyAobW9kZWwuY29uc3RydWN0b3IpXG5cbiAgICBjb25zdCBjb25uZWN0aW9uID0gbW9kZWxDbGFzcy5jb25uZWN0aW9uKClcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBtb2RlbENsYXNzLl9nZXRUYWJsZSgpLmdldE5hbWUoKVxuICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmcgfCBudW1iZXJ9ICovIChtb2RlbC5yZWFkQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpKVxuICAgIGNvbnN0IGF0dHJpYnV0ZU5hbWVVbmRlcnNjb3JlID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZU5hbWUpXG5cbiAgICAvKipcbiAgICAgKiBXaGVyZSBhcmdzLlxuICAgICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+fSAqL1xuICAgIGNvbnN0IHdoZXJlQXJncyA9IHt9XG5cbiAgICB3aGVyZUFyZ3NbYXR0cmlidXRlTmFtZVVuZGVyc2NvcmVdID0gYXR0cmlidXRlVmFsdWVcblxuICAgIC8vIFJhaWxzIHBhcml0eTogYHZhbGlkYXRlcyA6YXR0ciwgdW5pcXVlbmVzczoge3Njb3BlOiA6b3RoZXJ9YCBhZGRzXG4gICAgLy8gdGhlIHNjb3BlZCBjb2x1bW4ocykgdG8gdGhlIFdIRVJFIGNsYXVzZSBzbyB1bmlxdWVuZXNzIGlzIGNoZWNrZWRcbiAgICAvLyB3aXRoaW4gdGhlIGdpdmVuIHNjb3BlIChlLmcuIGByb2xlYCB1bmlxdWUgcGVyIGB1c2VySWRgKS5cbiAgICBjb25zdCBzY29wZUNvbHVtbnMgPSB0aGlzLl9ub3JtYWxpemVTY29wZUNvbHVtbnMoKVxuXG4gICAgZm9yIChjb25zdCBzY29wZUNvbHVtbiBvZiBzY29wZUNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IHNjb3BlVW5kZXJzY29yZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShzY29wZUNvbHVtbilcbiAgICAgIGxldCBzY29wZVZhbHVlID0gbW9kZWwucmVhZEF0dHJpYnV0ZShzY29wZUNvbHVtbilcblxuICAgICAgLy8gV2hlbiB0aGUgRksgaGFzbid0IGJlZW4gZmx1c2hlZCBmcm9tIHRoZSByZWxhdGlvbnNoaXAgb2JqZWN0XG4gICAgICAvLyBvbnRvIHRoZSBhdHRyaWJ1dGUgc3RvcmUgeWV0IChlLmcuIGBuZXcgVGFzayh7cHJvamVjdH0pYCB3aGVyZVxuICAgICAgLy8gYHByb2plY3RJZGAgaXMgc3RpbGwgdW5kZWZpbmVkKSwgdHJ5IHJlc29sdmluZyBpdCBmcm9tIHRoZVxuICAgICAgLy8gbG9hZGVkIGJlbG9uZ3NUbyByZWxhdGlvbnNoaXAgaW5zdGVhZC5cbiAgICAgIGlmIChzY29wZVZhbHVlID09IG51bGwpIHtcbiAgICAgICAgc2NvcGVWYWx1ZSA9IHRoaXMuX3Jlc29sdmVTY29wZVZhbHVlRnJvbVJlbGF0aW9uc2hpcChtb2RlbCwgc2NvcGVDb2x1bW4pXG4gICAgICB9XG5cbiAgICAgIGlmIChzY29wZVZhbHVlID09IG51bGwpIHJldHVyblxuXG4gICAgICB3aGVyZUFyZ3Nbc2NvcGVVbmRlcnNjb3JlXSA9IC8qKiBAdHlwZSB7c3RyaW5nIHwgbnVtYmVyfSAqLyAoc2NvcGVWYWx1ZSlcbiAgICB9XG5cbiAgICBsZXQgZXhpc3RpbmdSZWNvcmRRdWVyeSA9IG1vZGVsQ2xhc3NcbiAgICAgIC5zZWxlY3QobW9kZWxDbGFzcy5wcmltYXJ5S2V5KCkpXG4gICAgICAud2hlcmUod2hlcmVBcmdzKVxuXG4gICAgaWYgKG1vZGVsLmlzUGVyc2lzdGVkKCkpIHtcbiAgICAgIGV4aXN0aW5nUmVjb3JkUXVlcnkud2hlcmUoYCR7Y29ubmVjdGlvbi5xdW90ZVRhYmxlKHRhYmxlTmFtZSl9LiR7Y29ubmVjdGlvbi5xdW90ZUNvbHVtbihtb2RlbENsYXNzLnByaW1hcnlLZXkoKSl9ICE9ICR7Y29ubmVjdGlvbi5xdW90ZShtb2RlbC5pZCgpKX1gKVxuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nUmVjb3JkID0gYXdhaXQgZXhpc3RpbmdSZWNvcmRRdWVyeS5maXJzdCgpXG5cbiAgICBpZiAoZXhpc3RpbmdSZWNvcmQpIHtcbiAgICAgIGlmICghKGF0dHJpYnV0ZU5hbWUgaW4gbW9kZWwuX3ZhbGlkYXRpb25FcnJvcnMpKSBtb2RlbC5fdmFsaWRhdGlvbkVycm9yc1thdHRyaWJ1dGVOYW1lXSA9IFtdXG5cbiAgICAgIG1vZGVsLl92YWxpZGF0aW9uRXJyb3JzW2F0dHJpYnV0ZU5hbWVdLnB1c2goe3R5cGU6IFwidW5pcXVlbmVzc1wiLCBtZXNzYWdlOiBcImhhcyBhbHJlYWR5IGJlZW4gdGFrZW5cIn0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRyeSB0byByZXNvbHZlIGEgc2NvcGUgY29sdW1uIHZhbHVlIGZyb20gYSBsb2FkZWQgYmVsb25nc1RvXG4gICAqIHJlbGF0aW9uc2hpcCBvbiB0aGUgbW9kZWwuIFdoZW4gYSBUYXNrIGlzIGNyZWF0ZWQgdmlhXG4gICAqIGBuZXcgVGFzayh7cHJvamVjdH0pYCwgdGhlIEZLIChgcHJvamVjdElkYCkgaXMgb25seSBmbHVzaGVkIG9udG9cbiAgICogdGhlIGF0dHJpYnV0ZSBzdG9yZSBkdXJpbmcgc2F2ZSDigJQgYnV0IHRoZSByZWxhdGlvbnNoaXAgb2JqZWN0IGlzXG4gICAqIGFscmVhZHkgbG9hZGVkIGFuZCBjYXJyaWVzIHRoZSBpZCB3ZSBuZWVkIGZvciB0aGUgV0hFUkUgY2xhdXNlLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IG1vZGVsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzY29wZUNvbHVtbiAtIGNhbWVsQ2FzZSBhdHRyaWJ1dGUgbmFtZSAoZS5nLiBgXCJwcm9qZWN0SWRcImApLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nIHwgbnVtYmVyIHwgbnVsbH1cbiAgICovXG4gIF9yZXNvbHZlU2NvcGVWYWx1ZUZyb21SZWxhdGlvbnNoaXAobW9kZWwsIHNjb3BlQ29sdW1uKSB7XG4gICAgY29uc3QgbW9kZWxDbGFzcyA9IC8qKiBAdHlwZSB7dHlwZW9mIGltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9ICovIChtb2RlbC5jb25zdHJ1Y3RvcilcbiAgICBjb25zdCByZWxhdGlvbnNoaXBzID0gbW9kZWxDbGFzcy5nZXRSZWxhdGlvbnNoaXBzTWFwKClcblxuICAgIGZvciAoY29uc3QgcmVsYXRpb25zaGlwTmFtZSBpbiByZWxhdGlvbnNoaXBzKSB7XG4gICAgICBjb25zdCByZWxhdGlvbnNoaXAgPSByZWxhdGlvbnNoaXBzW3JlbGF0aW9uc2hpcE5hbWVdXG5cbiAgICAgIGlmIChyZWxhdGlvbnNoaXAuZ2V0VHlwZT8uKCkgIT09IFwiYmVsb25nc1RvXCIpIGNvbnRpbnVlXG5cbiAgICAgIGNvbnN0IGZvcmVpZ25LZXkgPSBpbmZsZWN0aW9uLmNhbWVsaXplKHJlbGF0aW9uc2hpcC5nZXRGb3JlaWduS2V5KCksIHRydWUpXG5cbiAgICAgIGlmIChmb3JlaWduS2V5ICE9PSBzY29wZUNvbHVtbikgY29udGludWVcblxuICAgICAgY29uc3QgaW5zdGFuY2VSZWxhdGlvbnNoaXAgPSBtb2RlbC5nZXRSZWxhdGlvbnNoaXBCeU5hbWUocmVsYXRpb25zaGlwTmFtZSlcbiAgICAgIGNvbnN0IGxvYWRlZCA9IGluc3RhbmNlUmVsYXRpb25zaGlwLmxvYWRlZCgpXG5cbiAgICAgIGlmIChsb2FkZWQgJiYgIUFycmF5LmlzQXJyYXkobG9hZGVkKSAmJiB0eXBlb2YgbG9hZGVkLmlkID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgICAgcmV0dXJuIGxvYWRlZC5pZCgpXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIC8qKlxuICAgKiBOb3JtYWxpemUgdGhlIGBzY29wZWAgb3B0aW9uIGludG8gYW4gYXJyYXkgb2YgYXR0cmlidXRlIG5hbWVzLlxuICAgKiBTdXBwb3J0cyBzdHJpbmcgKGBcInVzZXJJZFwiYCksIGFycmF5IG9mIHN0cmluZ3MgKGBbXCJ1c2VySWRcIiwgXCJwcm9qZWN0SWRcIl1gKSxcbiAgICogb3IgYWJzZW50IChlbXB0eSBhcnJheSDigJQgbm8gc2NvcGUsIG9yaWdpbmFsIHNpbmdsZS1jb2x1bW4gYmVoYXZpb3IpLlxuICAgKiBAcmV0dXJucyB7c3RyaW5nW119XG4gICAqL1xuICBfbm9ybWFsaXplU2NvcGVDb2x1bW5zKCkge1xuICAgIGNvbnN0IHNjb3BlID0gdGhpcy5hcmdzPy5zY29wZVxuXG4gICAgaWYgKCFzY29wZSkgcmV0dXJuIFtdXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2NvcGUpKSByZXR1cm4gc2NvcGVcblxuICAgIHJldHVybiBbU3RyaW5nKHNjb3BlKV1cbiAgfVxufVxuIl19
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5pcXVlbmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9kYXRhYmFzZS9yZWNvcmQvdmFsaWRhdG9ycy91bmlxdWVuZXNzLmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLFlBQVk7QUFFWixPQUFPLElBQUksTUFBTSxXQUFXLENBQUE7QUFDNUIsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxpQkFBaUIsTUFBTSwyQkFBMkIsQ0FBQTtBQUV6RCxNQUFNLENBQUMsT0FBTyxPQUFPLDJDQUE0QyxTQUFRLElBQUk7SUFDM0U7Ozs7OztPQU1HO0lBQ0gsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFDLEtBQUssRUFBRSxhQUFhLEVBQUM7UUFDbkMsTUFBTSxVQUFVLEdBQUcsbURBQW1ELENBQUMsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUE7UUFFMUYsTUFBTSxVQUFVLEdBQUcsVUFBVSxDQUFDLFVBQVUsRUFBRSxDQUFBO1FBQzFDLE1BQU0sU0FBUyxHQUFHLFVBQVUsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQTtRQUNsRCxNQUFNLGNBQWMsR0FBRyw4QkFBOEIsQ0FBQyxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQTtRQUMxRixNQUFNLHVCQUF1QixHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQUE7UUFFcEU7O3FEQUU2QztRQUM3QyxNQUFNLFNBQVMsR0FBRyxFQUFFLENBQUE7UUFFcEIsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsY0FBYyxDQUFBO1FBRW5ELG9FQUFvRTtRQUNwRSxvRUFBb0U7UUFDcEUsNERBQTREO1FBQzVELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFBO1FBRWxELEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7WUFDdkMsTUFB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QUE7WUFDcEIsQ0FBQztRQUNILENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILHNCQUFzQjtRQUNwQixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQTtRQUU5QixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFBO1FBQ3JCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7WUFBRSxPQUFPLEtBQUssQ0FBQTtRQUV0QyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDeEIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCBCYXNlIGZyb20gXCIuL2Jhc2UuanNcIlxuaW1wb3J0ICogYXMgaW5mbGVjdGlvbiBmcm9tIFwiaW5mbGVjdGlvblwiXG5pbXBvcnQgdmFsaWRhdGlvbk1lc3NhZ2UgZnJvbSBcIi4uL3ZhbGlkYXRpb24tbWVzc2FnZXMuanNcIlxuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBWZWxvY2lvdXNEYXRhYmFzZVJlY29yZFZhbGlkYXRvcnNVbmlxdWVuZXNzIGV4dGVuZHMgQmFzZSB7XG4gIC8qKlxuICAgKiBSdW5zIHZhbGlkYXRlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMgb2JqZWN0LlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2luZGV4LmpzXCIpLmRlZmF1bHR9IGFyZ3MubW9kZWwgLSBNb2RlbCBpbnN0YW5jZS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3MuYXR0cmlidXRlTmFtZSAtIEF0dHJpYnV0ZSBuYW1lLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgdmFsaWRhdGUoe21vZGVsLCBhdHRyaWJ1dGVOYW1lfSkge1xuICAgIGNvbnN0IG1vZGVsQ2xhc3MgPSAvKiogQHR5cGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSAqLyAobW9kZWwuY29uc3RydWN0b3IpXG5cbiAgICBjb25zdCBjb25uZWN0aW9uID0gbW9kZWxDbGFzcy5jb25uZWN0aW9uKClcbiAgICBjb25zdCB0YWJsZU5hbWUgPSBtb2RlbENsYXNzLl9nZXRUYWJsZSgpLmdldE5hbWUoKVxuICAgIGNvbnN0IGF0dHJpYnV0ZVZhbHVlID0gLyoqIEB0eXBlIHtzdHJpbmcgfCBudW1iZXJ9ICovIChtb2RlbC5yZWFkQXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUpKVxuICAgIGNvbnN0IGF0dHJpYnV0ZU5hbWVVbmRlcnNjb3JlID0gaW5mbGVjdGlvbi51bmRlcnNjb3JlKGF0dHJpYnV0ZU5hbWUpXG5cbiAgICAvKipcbiAgICAgKiBXaGVyZSBhcmdzLlxuICAgICAqIEB0eXBlIHtSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXI+fSAqL1xuICAgIGNvbnN0IHdoZXJlQXJncyA9IHt9XG5cbiAgICB3aGVyZUFyZ3NbYXR0cmlidXRlTmFtZVVuZGVyc2NvcmVdID0gYXR0cmlidXRlVmFsdWVcblxuICAgIC8vIFJhaWxzIHBhcml0eTogYHZhbGlkYXRlcyA6YXR0ciwgdW5pcXVlbmVzczoge3Njb3BlOiA6b3RoZXJ9YCBhZGRzXG4gICAgLy8gdGhlIHNjb3BlZCBjb2x1bW4ocykgdG8gdGhlIFdIRVJFIGNsYXVzZSBzbyB1bmlxdWVuZXNzIGlzIGNoZWNrZWRcbiAgICAvLyB3aXRoaW4gdGhlIGdpdmVuIHNjb3BlIChlLmcuIGByb2xlYCB1bmlxdWUgcGVyIGB1c2VySWRgKS5cbiAgICBjb25zdCBzY29wZUNvbHVtbnMgPSB0aGlzLl9ub3JtYWxpemVTY29wZUNvbHVtbnMoKVxuXG4gICAgZm9yIChjb25zdCBzY29wZUNvbHVtbiBvZiBzY29wZUNvbHVtbnMpIHtcbiAgICAgIGNvbnN0IHNjb3BlVW5kZXJzY29yZSA9IGluZmxlY3Rpb24udW5kZXJzY29yZShzY29wZUNvbHVtbilcbiAgICAgIGxldCBzY29wZVZhbHVlID0gbW9kZWwucmVhZEF0dHJpYnV0ZShzY29wZUNvbHVtbilcblxuICAgICAgLy8gV2hlbiB0aGUgRksgaGFzbid0IGJlZW4gZmx1c2hlZCBmcm9tIHRoZSByZWxhdGlvbnNoaXAgb2JqZWN0XG4gICAgICAvLyBvbnRvIHRoZSBhdHRyaWJ1dGUgc3RvcmUgeWV0IChlLmcuIGBuZXcgVGFzayh7cHJvamVjdH0pYCB3aGVyZVxuICAgICAgLy8gYHByb2plY3RJZGAgaXMgc3RpbGwgdW5kZWZpbmVkKSwgdHJ5IHJlc29sdmluZyBpdCBmcm9tIHRoZVxuICAgICAgLy8gbG9hZGVkIGJlbG9uZ3NUbyByZWxhdGlvbnNoaXAgaW5zdGVhZC5cbiAgICAgIGlmIChzY29wZVZhbHVlID09IG51bGwpIHtcbiAgICAgICAgc2NvcGVWYWx1ZSA9IHRoaXMuX3Jlc29sdmVTY29wZVZhbHVlRnJvbVJlbGF0aW9uc2hpcChtb2RlbCwgc2NvcGVDb2x1bW4pXG4gICAgICB9XG5cbiAgICAgIGlmIChzY29wZVZhbHVlID09IG51bGwpIHJldHVyblxuXG4gICAgICB3aGVyZUFyZ3Nbc2NvcGVVbmRlcnNjb3JlXSA9IC8qKiBAdHlwZSB7c3RyaW5nIHwgbnVtYmVyfSAqLyAoc2NvcGVWYWx1ZSlcbiAgICB9XG5cbiAgICBsZXQgZXhpc3RpbmdSZWNvcmRRdWVyeSA9IG1vZGVsQ2xhc3NcbiAgICAgIC5zZWxlY3QobW9kZWxDbGFzcy5wcmltYXJ5S2V5KCkpXG4gICAgICAud2hlcmUod2hlcmVBcmdzKVxuXG4gICAgaWYgKG1vZGVsLmlzUGVyc2lzdGVkKCkpIHtcbiAgICAgIGV4aXN0aW5nUmVjb3JkUXVlcnkud2hlcmUoYCR7Y29ubmVjdGlvbi5xdW90ZVRhYmxlKHRhYmxlTmFtZSl9LiR7Y29ubmVjdGlvbi5xdW90ZUNvbHVtbihtb2RlbENsYXNzLnByaW1hcnlLZXkoKSl9ICE9ICR7Y29ubmVjdGlvbi5xdW90ZShtb2RlbC5pZCgpKX1gKVxuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nUmVjb3JkID0gYXdhaXQgZXhpc3RpbmdSZWNvcmRRdWVyeS5maXJzdCgpXG5cbiAgICBpZiAoZXhpc3RpbmdSZWNvcmQpIHtcbiAgICAgIGlmICghKGF0dHJpYnV0ZU5hbWUgaW4gbW9kZWwuX3ZhbGlkYXRpb25FcnJvcnMpKSBtb2RlbC5fdmFsaWRhdGlvbkVycm9yc1thdHRyaWJ1dGVOYW1lXSA9IFtdXG5cbiAgICAgIGNvbnN0IHRyYW5zbGF0b3IgPSBtb2RlbENsYXNzLl9nZXRDb25maWd1cmF0aW9uKCkuZ2V0VHJhbnNsYXRvcigpXG5cbiAgICAgIG1vZGVsLl92YWxpZGF0aW9uRXJyb3JzW2F0dHJpYnV0ZU5hbWVdLnB1c2goe3R5cGU6IFwidW5pcXVlbmVzc1wiLCBtZXNzYWdlOiB2YWxpZGF0aW9uTWVzc2FnZSh7dHJhbnNsYXRvciwgdHlwZTogXCJ0YWtlblwifSl9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUcnkgdG8gcmVzb2x2ZSBhIHNjb3BlIGNvbHVtbiB2YWx1ZSBmcm9tIGEgbG9hZGVkIGJlbG9uZ3NUb1xuICAgKiByZWxhdGlvbnNoaXAgb24gdGhlIG1vZGVsLiBXaGVuIGEgVGFzayBpcyBjcmVhdGVkIHZpYVxuICAgKiBgbmV3IFRhc2soe3Byb2plY3R9KWAsIHRoZSBGSyAoYHByb2plY3RJZGApIGlzIG9ubHkgZmx1c2hlZCBvbnRvXG4gICAqIHRoZSBhdHRyaWJ1dGUgc3RvcmUgZHVyaW5nIHNhdmUg4oCUIGJ1dCB0aGUgcmVsYXRpb25zaGlwIG9iamVjdCBpc1xuICAgKiBhbHJlYWR5IGxvYWRlZCBhbmQgY2FycmllcyB0aGUgaWQgd2UgbmVlZCBmb3IgdGhlIFdIRVJFIGNsYXVzZS5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSBtb2RlbFxuICAgKiBAcGFyYW0ge3N0cmluZ30gc2NvcGVDb2x1bW4gLSBjYW1lbENhc2UgYXR0cmlidXRlIG5hbWUgKGUuZy4gYFwicHJvamVjdElkXCJgKS5cbiAgICogQHJldHVybnMge3N0cmluZyB8IG51bWJlciB8IG51bGx9XG4gICAqL1xuICBfcmVzb2x2ZVNjb3BlVmFsdWVGcm9tUmVsYXRpb25zaGlwKG1vZGVsLCBzY29wZUNvbHVtbikge1xuICAgIGNvbnN0IG1vZGVsQ2xhc3MgPSAvKiogQHR5cGUge3R5cGVvZiBpbXBvcnQoXCIuLi9pbmRleC5qc1wiKS5kZWZhdWx0fSAqLyAobW9kZWwuY29uc3RydWN0b3IpXG4gICAgY29uc3QgcmVsYXRpb25zaGlwcyA9IG1vZGVsQ2xhc3MuZ2V0UmVsYXRpb25zaGlwc01hcCgpXG5cbiAgICBmb3IgKGNvbnN0IHJlbGF0aW9uc2hpcE5hbWUgaW4gcmVsYXRpb25zaGlwcykge1xuICAgICAgY29uc3QgcmVsYXRpb25zaGlwID0gcmVsYXRpb25zaGlwc1tyZWxhdGlvbnNoaXBOYW1lXVxuXG4gICAgICBpZiAocmVsYXRpb25zaGlwLmdldFR5cGU/LigpICE9PSBcImJlbG9uZ3NUb1wiKSBjb250aW51ZVxuXG4gICAgICBjb25zdCBmb3JlaWduS2V5ID0gaW5mbGVjdGlvbi5jYW1lbGl6ZShyZWxhdGlvbnNoaXAuZ2V0Rm9yZWlnbktleSgpLCB0cnVlKVxuXG4gICAgICBpZiAoZm9yZWlnbktleSAhPT0gc2NvcGVDb2x1bW4pIGNvbnRpbnVlXG5cbiAgICAgIGNvbnN0IGluc3RhbmNlUmVsYXRpb25zaGlwID0gbW9kZWwuZ2V0UmVsYXRpb25zaGlwQnlOYW1lKHJlbGF0aW9uc2hpcE5hbWUpXG4gICAgICBjb25zdCBsb2FkZWQgPSBpbnN0YW5jZVJlbGF0aW9uc2hpcC5sb2FkZWQoKVxuXG4gICAgICBpZiAobG9hZGVkICYmICFBcnJheS5pc0FycmF5KGxvYWRlZCkgJiYgdHlwZW9mIGxvYWRlZC5pZCA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIHJldHVybiBsb2FkZWQuaWQoKVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICAvKipcbiAgICogTm9ybWFsaXplIHRoZSBgc2NvcGVgIG9wdGlvbiBpbnRvIGFuIGFycmF5IG9mIGF0dHJpYnV0ZSBuYW1lcy5cbiAgICogU3VwcG9ydHMgc3RyaW5nIChgXCJ1c2VySWRcImApLCBhcnJheSBvZiBzdHJpbmdzIChgW1widXNlcklkXCIsIFwicHJvamVjdElkXCJdYCksXG4gICAqIG9yIGFic2VudCAoZW1wdHkgYXJyYXkg4oCUIG5vIHNjb3BlLCBvcmlnaW5hbCBzaW5nbGUtY29sdW1uIGJlaGF2aW9yKS5cbiAgICogQHJldHVybnMge3N0cmluZ1tdfVxuICAgKi9cbiAgX25vcm1hbGl6ZVNjb3BlQ29sdW1ucygpIHtcbiAgICBjb25zdCBzY29wZSA9IHRoaXMuYXJncz8uc2NvcGVcblxuICAgIGlmICghc2NvcGUpIHJldHVybiBbXVxuICAgIGlmIChBcnJheS5pc0FycmF5KHNjb3BlKSkgcmV0dXJuIHNjb3BlXG5cbiAgICByZXR1cm4gW1N0cmluZyhzY29wZSldXG4gIH1cbn1cbiJdfQ==
@@ -72,6 +72,30 @@
72
72
  * @property {import("../configuration-types.js").VelociousParams} [params] - Optional params override.
73
73
  * @property {import("../configuration-types.js").NormalizedFrontendModelResourceConfiguration | import("../configuration-types.js").FrontendModelResourceConfiguration} [resourceConfiguration] - Optional normalized resource configuration.
74
74
  */
75
+ /**
76
+ * Normalized sync replay mutation passed to the resource sync hooks.
77
+ * @typedef {import("../sync/sync-envelope-replay-service.js").SyncReplayMutation} FrontendModelSyncMutation
78
+ */
79
+ /**
80
+ * Sync mutation authorization result.
81
+ * @typedef {object} FrontendModelSyncAuthorization
82
+ * @property {boolean} allowed - Whether the mutation may be applied.
83
+ * @property {string} [reason] - Stable failure reason code when denied.
84
+ */
85
+ /**
86
+ * Arguments for the applySync full-escape-hatch hook.
87
+ * @typedef {object} FrontendModelApplySyncArgs
88
+ * @property {Record<string, ?>} context - Replay context.
89
+ * @property {import("../database/record/index.js").default | null} existingSync - Existing sync row or null.
90
+ * @property {FrontendModelSyncMutation} mutation - Normalized replay mutation.
91
+ */
92
+ /**
93
+ * Apply result produced by routed sync mutation application.
94
+ * @typedef {object} FrontendModelSyncApplyResult
95
+ * @property {boolean} created - Whether a record was created.
96
+ * @property {boolean} [deleted] - Whether a record was deleted.
97
+ * @property {import("../database/record/index.js").default | null} record - Applied record or null.
98
+ */
75
99
  /**
76
100
  * Resolved frontend-model resource registration.
77
101
  * @typedef {object} FrontendModelResolvedResourceConfiguration
@@ -146,6 +170,15 @@ export default class FrontendModelBaseResource<TModelClass extends typeof import
146
170
  static translatedAttributes: string[] | undefined;
147
171
  /** @type {?} */
148
172
  static SharedResource: unknown;
173
+ /**
174
+ * Declarative writable-attribute permit list (camelCase attribute names)
175
+ * used as the default {@link FrontendModelBaseResource#permittedParams} and
176
+ * as the routed sync replay permit. Resolved through the shared resource
177
+ * like the other static resource config: an undeclared environment list
178
+ * falls back to the shared resource's list, while an explicit declaration
179
+ * (including `null`) wins.
180
+ * @type {string[] | null | undefined} */
181
+ static writableAttributes: string[] | null | undefined;
149
182
  /**
150
183
  * Returns the configured shared resource class.
151
184
  * @returns {?} - Shared resource class.
@@ -154,10 +187,10 @@ export default class FrontendModelBaseResource<TModelClass extends typeof import
154
187
  /**
155
188
  * Reads a static resource config value from the environment resource first,
156
189
  * then from the shared resource.
157
- * @param {"abilities" | "attachments" | "attributes" | "builtInCollectionCommands" | "builtInMemberCommands" | "collectionCommands" | "commands" | "memberCommands" | "modelName" | "primaryKey" | "relationships" | "server" | "sync" | "translatedAttributes"} name - Static config property name.
190
+ * @param {"abilities" | "attachments" | "attributes" | "builtInCollectionCommands" | "builtInMemberCommands" | "collectionCommands" | "commands" | "memberCommands" | "modelName" | "primaryKey" | "relationships" | "server" | "sync" | "translatedAttributes" | "writableAttributes"} name - Static config property name.
158
191
  * @returns {?} - Resolved config value.
159
192
  */
160
- static sharedResourceStaticValue(name: "abilities" | "attachments" | "attributes" | "builtInCollectionCommands" | "builtInMemberCommands" | "collectionCommands" | "commands" | "memberCommands" | "modelName" | "primaryKey" | "relationships" | "server" | "sync" | "translatedAttributes"): unknown;
193
+ static sharedResourceStaticValue(name: "abilities" | "attachments" | "attributes" | "builtInCollectionCommands" | "builtInMemberCommands" | "collectionCommands" | "commands" | "memberCommands" | "modelName" | "primaryKey" | "relationships" | "server" | "sync" | "translatedAttributes" | "writableAttributes"): unknown;
161
194
  /**
162
195
  * Resolves translated attributes from environment and shared resources.
163
196
  * @returns {string[] | undefined} - Translated attribute names.
@@ -280,9 +313,10 @@ export default class FrontendModelBaseResource<TModelClass extends typeof import
280
313
  * }
281
314
  * }
282
315
  *
283
- * Default implementation returns `[]` — nothing permitted. Subclasses
284
- * must override to enable writes. A resource that does not declare
285
- * `permittedParams` cannot accept any write.
316
+ * Default implementation returns the declared
317
+ * {@link FrontendModelBaseResource.writableAttributes} permit list, or `[]`
318
+ * nothing permitted without a declared list. Subclasses override to
319
+ * customize; an explicit override always wins.
286
320
  * @param {{action?: "create" | "update", params?: Record<string, ?>, ability?: import("../authorization/ability.js").default, locals?: Record<string, ?>}} [arg] - Request context.
287
321
  * @returns {Array<string | Record<string, ?>>} - Permit spec.
288
322
  */
@@ -292,6 +326,100 @@ export default class FrontendModelBaseResource<TModelClass extends typeof import
292
326
  ability?: import("../authorization/ability.js").default;
293
327
  locals?: Record<string, unknown>;
294
328
  }): Array<string | Record<string, unknown>>;
329
+ /**
330
+ * Resolves the declared writable-attribute permit list from the environment
331
+ * resource first, then the shared resource — mirroring how the other
332
+ * static resource config resolves. An explicit environment declaration
333
+ * (including `null`) wins over the shared resource's list.
334
+ * @returns {string[] | null} Declared permit list or null when undeclared.
335
+ */
336
+ declaredWritableAttributes(): string[] | null;
337
+ /**
338
+ * Builds the client-safe error thrown for a failed writable-attribute validation.
339
+ * @param {string} message - Human-readable validation message.
340
+ * @param {{cause?: Error, code: string}} details - Stable machine-readable code and optional cause.
341
+ * @returns {Error} Client-safe error.
342
+ */
343
+ writableAttributeError(message: string, { cause, code }: {
344
+ cause?: Error;
345
+ code: string;
346
+ }): Error;
347
+ /**
348
+ * Authorizes one routed sync replay mutation before it is applied.
349
+ * Defaults to allowing every mutation; record-level authorization still
350
+ * applies through {@link FrontendModelBaseResource#findSyncRecord} scoping
351
+ * and the create membership check.
352
+ * @param {object} args - Options.
353
+ * @param {Record<string, ?>} args.context - Replay context.
354
+ * @param {FrontendModelSyncMutation} args.mutation - Normalized replay mutation.
355
+ * @returns {FrontendModelSyncAuthorization | Promise<FrontendModelSyncAuthorization>} Authorization result.
356
+ */
357
+ authorizeSyncMutation({ context, mutation }: {
358
+ context: Record<string, unknown>;
359
+ mutation: FrontendModelSyncMutation;
360
+ }): FrontendModelSyncAuthorization | Promise<FrontendModelSyncAuthorization>;
361
+ /**
362
+ * Returns the per-sync failure reason reported when a routed sync mutation
363
+ * fails record-level authorization. Defaults to null, which reports the
364
+ * generic "access-denied" reason.
365
+ * @param {object} args - Options.
366
+ * @param {"create" | "destroy" | "update"} args.action - Denied action.
367
+ * @param {FrontendModelSyncMutation} args.mutation - Normalized replay mutation.
368
+ * @returns {string | null} Stable failure reason code or null for the generic default.
369
+ */
370
+ syncAuthorizationFailureReason({ action, mutation }: {
371
+ action: "create" | "destroy" | "update";
372
+ mutation: FrontendModelSyncMutation;
373
+ }): string | null;
374
+ /**
375
+ * Finds the existing record targeted by a routed sync replay mutation.
376
+ * Defaults to an `accessibleFor` lookup by primary key through the
377
+ * resource's normalized ability action for update (or destroy for delete
378
+ * mutations), falling back to an unscoped lookup without an ability.
379
+ * @param {object} args - Options.
380
+ * @param {import("../authorization/ability.js").default} [args.ability] - Ability override. Defaults to the resource ability.
381
+ * @param {boolean} [args.forDelete] - Whether the lookup is for a delete mutation.
382
+ * @param {FrontendModelSyncMutation} args.mutation - Normalized replay mutation.
383
+ * @returns {Promise<import("../database/record/index.js").default | null>} Existing record or null.
384
+ */
385
+ findSyncRecord({ ability, forDelete, mutation }: {
386
+ ability?: import("../authorization/ability.js").default | undefined;
387
+ forDelete?: boolean | undefined;
388
+ mutation: FrontendModelSyncMutation;
389
+ }): Promise<import("../database/record/index.js").default | null>;
390
+ /**
391
+ * Maps a raw sync action to the resource's normalized ability action when
392
+ * the resource configuration declares an abilities mapping, otherwise the
393
+ * raw action name is used directly.
394
+ * @param {"create" | "destroy" | "update"} action - Raw sync action.
395
+ * @returns {string} Ability action.
396
+ */
397
+ syncAbilityAction(action: "create" | "destroy" | "update"): string;
398
+ /**
399
+ * Full escape hatch for routed sync mutation application. Returning a
400
+ * non-null result replaces the whole default apply flow (authorization,
401
+ * record lookup, normalization and save) with the returned apply result.
402
+ * @param {FrontendModelApplySyncArgs} args - Apply args.
403
+ * @returns {FrontendModelSyncApplyResult | null | Promise<FrontendModelSyncApplyResult | null>} Apply result or null for the default flow.
404
+ */
405
+ applySync(args: FrontendModelApplySyncArgs): FrontendModelSyncApplyResult | null | Promise<FrontendModelSyncApplyResult | null>;
406
+ /**
407
+ * Runs after a routed sync mutation was applied. Returned entries are
408
+ * merged into the apply result, reaching persistExtraAttributes and
409
+ * broadcasts.
410
+ * @param {object} args - Options.
411
+ * @param {Record<string, ?>} args.context - Replay context.
412
+ * @param {boolean} args.created - Whether the record was created.
413
+ * @param {FrontendModelSyncMutation} args.mutation - Normalized replay mutation.
414
+ * @param {import("../database/record/index.js").default | null} args.record - Applied record or null.
415
+ * @returns {Record<string, ?> | Promise<Record<string, ?>>} Extra apply-result entries.
416
+ */
417
+ afterSyncApply({ context, created, mutation, record }: {
418
+ context: Record<string, unknown>;
419
+ created: boolean;
420
+ mutation: FrontendModelSyncMutation;
421
+ record: import("../database/record/index.js").default | null;
422
+ }): Record<string, unknown> | Promise<Record<string, unknown>>;
295
423
  /**
296
424
  * Normalizes create attributes before permission filtering and saving.
297
425
  * @param {FrontendModelResourceAttributePayload} attributes - Incoming create attributes.
@@ -933,6 +1061,57 @@ export type FrontendModelResourceAbilityArgs = {
933
1061
  */
934
1062
  resourceConfiguration?: import("../configuration-types.js").FrontendModelResourceConfiguration | import("../configuration-types.js").NormalizedFrontendModelResourceConfiguration | undefined;
935
1063
  };
1064
+ /**
1065
+ * Normalized sync replay mutation passed to the resource sync hooks.
1066
+ */
1067
+ export type FrontendModelSyncMutation = import("../sync/sync-envelope-replay-service.js").SyncReplayMutation;
1068
+ /**
1069
+ * Sync mutation authorization result.
1070
+ */
1071
+ export type FrontendModelSyncAuthorization = {
1072
+ /**
1073
+ * - Whether the mutation may be applied.
1074
+ */
1075
+ allowed: boolean;
1076
+ /**
1077
+ * - Stable failure reason code when denied.
1078
+ */
1079
+ reason?: string | undefined;
1080
+ };
1081
+ /**
1082
+ * Arguments for the applySync full-escape-hatch hook.
1083
+ */
1084
+ export type FrontendModelApplySyncArgs = {
1085
+ /**
1086
+ * - Replay context.
1087
+ */
1088
+ context: Record<string, unknown>;
1089
+ /**
1090
+ * - Existing sync row or null.
1091
+ */
1092
+ existingSync: import("../database/record/index.js").default | null;
1093
+ /**
1094
+ * - Normalized replay mutation.
1095
+ */
1096
+ mutation: FrontendModelSyncMutation;
1097
+ };
1098
+ /**
1099
+ * Apply result produced by routed sync mutation application.
1100
+ */
1101
+ export type FrontendModelSyncApplyResult = {
1102
+ /**
1103
+ * - Whether a record was created.
1104
+ */
1105
+ created: boolean;
1106
+ /**
1107
+ * - Whether a record was deleted.
1108
+ */
1109
+ deleted?: boolean | undefined;
1110
+ /**
1111
+ * - Applied record or null.
1112
+ */
1113
+ record: import("../database/record/index.js").default | null;
1114
+ };
936
1115
  /**
937
1116
  * Resolved frontend-model resource registration.
938
1117
  */
@@ -1 +1 @@
1
- {"version":3,"file":"base-resource.d.ts","sourceRoot":"","sources":["../../../src/frontend-model-resource/base-resource.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base-resource.d.ts","sourceRoot":"","sources":["../../../src/frontend-model-resource/base-resource.js"],"names":[],"mappings":"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"}