@aenode/prop 0.0.21 → 0.0.37

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 (193) hide show
  1. package/README.md +12 -16
  2. package/assets/favicon.svg +1 -1
  3. package/bin/prop.mjs +3 -0
  4. package/dist/index.d.ts +2 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +2 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/lib/common/base-dto-class.d.ts +4 -0
  9. package/dist/lib/common/base-dto-class.d.ts.map +1 -0
  10. package/dist/lib/common/base-dto-class.js +7 -0
  11. package/dist/lib/common/base-dto-class.js.map +1 -0
  12. package/dist/lib/common/global-validation-pipe.d.ts +3 -0
  13. package/dist/lib/common/global-validation-pipe.d.ts.map +1 -0
  14. package/dist/lib/common/global-validation-pipe.js +34 -0
  15. package/dist/lib/common/global-validation-pipe.js.map +1 -0
  16. package/dist/lib/common/message.dto.d.ts +4 -0
  17. package/dist/lib/common/message.dto.d.ts.map +1 -0
  18. package/dist/lib/common/message.dto.js +11 -0
  19. package/dist/lib/common/message.dto.js.map +1 -0
  20. package/dist/lib/common/validation-error-response.dto.d.ts +10 -0
  21. package/dist/lib/common/validation-error-response.dto.d.ts.map +1 -0
  22. package/dist/lib/common/validation-error-response.dto.js +44 -0
  23. package/dist/lib/common/validation-error-response.dto.js.map +1 -0
  24. package/dist/lib/default-value-transformer.d.ts +9 -0
  25. package/dist/lib/default-value-transformer.d.ts.map +1 -0
  26. package/dist/lib/default-value-transformer.js +22 -0
  27. package/dist/lib/default-value-transformer.js.map +1 -0
  28. package/dist/lib/index.d.ts +27 -0
  29. package/dist/lib/index.d.ts.map +1 -0
  30. package/dist/lib/index.js +29 -0
  31. package/dist/lib/index.js.map +1 -0
  32. package/dist/lib/json-transformer.d.ts +2 -0
  33. package/dist/lib/json-transformer.d.ts.map +1 -0
  34. package/dist/lib/json-transformer.js +14 -0
  35. package/dist/lib/json-transformer.js.map +1 -0
  36. package/dist/lib/prop-boolean.d.ts +17 -0
  37. package/dist/lib/prop-boolean.d.ts.map +1 -0
  38. package/dist/lib/prop-boolean.js +39 -0
  39. package/dist/lib/prop-boolean.js.map +1 -0
  40. package/dist/lib/prop-common.d.ts +15 -0
  41. package/dist/lib/prop-common.d.ts.map +1 -0
  42. package/dist/lib/prop-common.js +43 -0
  43. package/dist/lib/prop-common.js.map +1 -0
  44. package/dist/lib/prop-date.d.ts +17 -0
  45. package/dist/lib/prop-date.d.ts.map +1 -0
  46. package/dist/lib/prop-date.js +41 -0
  47. package/dist/lib/prop-date.js.map +1 -0
  48. package/dist/lib/prop-enum.d.ts +17 -0
  49. package/dist/lib/prop-enum.d.ts.map +1 -0
  50. package/dist/lib/prop-enum.js +36 -0
  51. package/dist/lib/prop-enum.js.map +1 -0
  52. package/dist/lib/prop-number.d.ts +19 -0
  53. package/dist/lib/prop-number.d.ts.map +1 -0
  54. package/dist/lib/prop-number.js +62 -0
  55. package/dist/lib/prop-number.js.map +1 -0
  56. package/dist/lib/prop-object-validation.d.ts +9 -0
  57. package/dist/lib/prop-object-validation.d.ts.map +1 -0
  58. package/dist/lib/prop-object-validation.js +24 -0
  59. package/dist/lib/prop-object-validation.js.map +1 -0
  60. package/dist/lib/prop-object.d.ts +18 -0
  61. package/dist/lib/prop-object.d.ts.map +1 -0
  62. package/dist/lib/prop-object.js +53 -0
  63. package/dist/lib/prop-object.js.map +1 -0
  64. package/dist/lib/prop-options.d.ts +67 -0
  65. package/dist/lib/prop-options.d.ts.map +1 -0
  66. package/dist/lib/prop-options.js +3 -0
  67. package/dist/lib/prop-options.js.map +1 -0
  68. package/dist/lib/prop-string.d.ts +19 -0
  69. package/dist/lib/prop-string.d.ts.map +1 -0
  70. package/dist/lib/prop-string.js +112 -0
  71. package/dist/lib/prop-string.js.map +1 -0
  72. package/dist/lib/prop-validation.d.ts +10 -0
  73. package/dist/lib/prop-validation.d.ts.map +1 -0
  74. package/dist/lib/prop-validation.js +75 -0
  75. package/dist/lib/prop-validation.js.map +1 -0
  76. package/dist/lib/prop.d.ts +3 -0
  77. package/dist/lib/prop.d.ts.map +1 -0
  78. package/dist/lib/prop.js +13 -0
  79. package/dist/lib/prop.js.map +1 -0
  80. package/dist/lib/test-helpers.d.ts +3 -0
  81. package/dist/lib/test-helpers.d.ts.map +1 -0
  82. package/dist/lib/test-helpers.js +19 -0
  83. package/dist/lib/test-helpers.js.map +1 -0
  84. package/dist/lib/to-api-property-optionts.d.ts +4 -0
  85. package/dist/lib/to-api-property-optionts.d.ts.map +1 -0
  86. package/dist/lib/to-api-property-optionts.js +29 -0
  87. package/dist/lib/to-api-property-optionts.js.map +1 -0
  88. package/dist/lib/validators/index.d.ts +8 -0
  89. package/dist/lib/validators/index.d.ts.map +1 -0
  90. package/dist/lib/validators/index.js +10 -0
  91. package/dist/lib/validators/index.js.map +1 -0
  92. package/dist/lib/validators/is-relative-path.d.ts +3 -0
  93. package/dist/lib/validators/is-relative-path.d.ts.map +1 -0
  94. package/dist/lib/validators/is-relative-path.js +26 -0
  95. package/dist/lib/validators/is-relative-path.js.map +1 -0
  96. package/dist/lib/validators/less-than.d.ts +3 -0
  97. package/dist/lib/validators/less-than.d.ts.map +1 -0
  98. package/dist/lib/validators/less-than.js +26 -0
  99. package/dist/lib/validators/less-than.js.map +1 -0
  100. package/dist/lib/validators/max-properties.d.ts +3 -0
  101. package/dist/lib/validators/max-properties.d.ts.map +1 -0
  102. package/dist/lib/validators/max-properties.js +29 -0
  103. package/dist/lib/validators/max-properties.js.map +1 -0
  104. package/dist/lib/validators/min-properties.d.ts +3 -0
  105. package/dist/lib/validators/min-properties.d.ts.map +1 -0
  106. package/dist/lib/validators/min-properties.js +29 -0
  107. package/dist/lib/validators/min-properties.js.map +1 -0
  108. package/dist/lib/validators/more-than.d.ts +3 -0
  109. package/dist/lib/validators/more-than.d.ts.map +1 -0
  110. package/dist/lib/validators/more-than.js +26 -0
  111. package/dist/lib/validators/more-than.js.map +1 -0
  112. package/dist/lib/validators/not-with.d.ts +2 -0
  113. package/dist/lib/validators/not-with.d.ts.map +1 -0
  114. package/dist/lib/validators/not-with.js +25 -0
  115. package/dist/lib/validators/not-with.js.map +1 -0
  116. package/dist/lib/validators/not-without.d.ts +2 -0
  117. package/dist/lib/validators/not-without.d.ts.map +1 -0
  118. package/dist/lib/validators/not-without.js +25 -0
  119. package/dist/lib/validators/not-without.js.map +1 -0
  120. package/dist/main.d.ts +3 -0
  121. package/dist/main.d.ts.map +1 -0
  122. package/dist/main.js +4 -0
  123. package/dist/main.js.map +1 -0
  124. package/package.json +24 -41
  125. package/dist/graphql/filter-dtos.d.ts +0 -69
  126. package/dist/graphql/filter-dtos.d.ts.map +0 -1
  127. package/dist/graphql/filter-dtos.js +0 -370
  128. package/dist/graphql/filter-dtos.js.map +0 -1
  129. package/dist/graphql/index.d.ts +0 -10
  130. package/dist/graphql/index.d.ts.map +0 -1
  131. package/dist/graphql/index.js +0 -12
  132. package/dist/graphql/index.js.map +0 -1
  133. package/dist/graphql/input-type.d.ts +0 -2
  134. package/dist/graphql/input-type.d.ts.map +0 -1
  135. package/dist/graphql/input-type.js +0 -8
  136. package/dist/graphql/input-type.js.map +0 -1
  137. package/dist/graphql/object-type.d.ts +0 -2
  138. package/dist/graphql/object-type.d.ts.map +0 -1
  139. package/dist/graphql/object-type.js +0 -8
  140. package/dist/graphql/object-type.js.map +0 -1
  141. package/dist/graphql/prop-order-count.d.ts +0 -2
  142. package/dist/graphql/prop-order-count.d.ts.map +0 -1
  143. package/dist/graphql/prop-order-count.js +0 -11
  144. package/dist/graphql/prop-order-count.js.map +0 -1
  145. package/dist/graphql/prop-order.d.ts +0 -2
  146. package/dist/graphql/prop-order.d.ts.map +0 -1
  147. package/dist/graphql/prop-order.js +0 -11
  148. package/dist/graphql/prop-order.js.map +0 -1
  149. package/dist/graphql/prop.d.ts +0 -9
  150. package/dist/graphql/prop.d.ts.map +0 -1
  151. package/dist/graphql/prop.js +0 -29
  152. package/dist/graphql/prop.js.map +0 -1
  153. package/dist/graphql/register-enums.d.ts +0 -2
  154. package/dist/graphql/register-enums.d.ts.map +0 -1
  155. package/dist/graphql/register-enums.js +0 -11
  156. package/dist/graphql/register-enums.js.map +0 -1
  157. package/dist/graphql/sort-count.dto.d.ts +0 -5
  158. package/dist/graphql/sort-count.dto.d.ts.map +0 -1
  159. package/dist/graphql/sort-count.dto.js +0 -22
  160. package/dist/graphql/sort-count.dto.js.map +0 -1
  161. package/dist/peers.d.ts +0 -2
  162. package/dist/peers.d.ts.map +0 -1
  163. package/dist/peers.js +0 -3
  164. package/dist/peers.js.map +0 -1
  165. package/dist/restapi/filter-dtos.d.ts +0 -44
  166. package/dist/restapi/filter-dtos.d.ts.map +0 -1
  167. package/dist/restapi/filter-dtos.js +0 -202
  168. package/dist/restapi/filter-dtos.js.map +0 -1
  169. package/dist/restapi/index.d.ts +0 -7
  170. package/dist/restapi/index.d.ts.map +0 -1
  171. package/dist/restapi/index.js +0 -9
  172. package/dist/restapi/index.js.map +0 -1
  173. package/dist/restapi/prop-order-count.d.ts +0 -2
  174. package/dist/restapi/prop-order-count.d.ts.map +0 -1
  175. package/dist/restapi/prop-order-count.js +0 -11
  176. package/dist/restapi/prop-order-count.js.map +0 -1
  177. package/dist/restapi/prop-order.d.ts +0 -2
  178. package/dist/restapi/prop-order.d.ts.map +0 -1
  179. package/dist/restapi/prop-order.js +0 -11
  180. package/dist/restapi/prop-order.js.map +0 -1
  181. package/dist/restapi/prop.d.ts +0 -3
  182. package/dist/restapi/prop.d.ts.map +0 -1
  183. package/dist/restapi/prop.js +0 -11
  184. package/dist/restapi/prop.js.map +0 -1
  185. package/dist/restapi/sort-count.dto.d.ts +0 -5
  186. package/dist/restapi/sort-count.dto.d.ts.map +0 -1
  187. package/dist/restapi/sort-count.dto.js +0 -18
  188. package/dist/restapi/sort-count.dto.js.map +0 -1
  189. package/dist/restapi/to-api-property-options.d.ts +0 -4
  190. package/dist/restapi/to-api-property-options.d.ts.map +0 -1
  191. package/dist/restapi/to-api-property-options.js +0 -37
  192. package/dist/restapi/to-api-property-options.js.map +0 -1
  193. package/license +0 -70
@@ -0,0 +1,3 @@
1
+ import type { PropOptions } from './prop-options.js';
2
+ export declare function Prop(options?: PropOptions): PropertyDecorator;
3
+ //# sourceMappingURL=prop.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prop.d.ts","sourceRoot":"","sources":["../../src/lib/prop.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAIrD,wBAAgB,IAAI,CAAC,OAAO,CAAC,EAAE,WAAW,GAAG,iBAAiB,CAQ7D"}
@@ -0,0 +1,13 @@
1
+ import { ApiProperty } from '@aenode/nest/swagger';
2
+ import { PropValidation } from './prop-validation.js';
3
+ import { toApiProeprtyOptions } from './to-api-property-optionts.js';
4
+ export function Prop(options) {
5
+ return (...args)=>{
6
+ options ??= {};
7
+ const apiPropertyOptions = toApiProeprtyOptions(options, ...args);
8
+ PropValidation(options)(...args);
9
+ ApiProperty(apiPropertyOptions)(...args);
10
+ };
11
+ }
12
+
13
+ //# sourceMappingURL=prop.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/prop.ts"],"sourcesContent":["import { ApiProperty } from '@aenode/nest/swagger';\nimport type { PropOptions } from './prop-options.js';\nimport { PropValidation } from './prop-validation.js';\nimport { toApiProeprtyOptions } from './to-api-property-optionts.js';\n\nexport function Prop(options?: PropOptions): PropertyDecorator {\n return (...args) => {\n options ??= {};\n const apiPropertyOptions = toApiProeprtyOptions(options, ...args);\n\n PropValidation(options)(...args);\n ApiProperty(apiPropertyOptions)(...args);\n };\n}\n"],"names":["ApiProperty","PropValidation","toApiProeprtyOptions","Prop","options","args","apiPropertyOptions"],"mappings":"AAAA,SAASA,WAAW,QAAQ,uBAAuB;AAEnD,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,oBAAoB,QAAQ,gCAAgC;AAErE,OAAO,SAASC,KAAKC,OAAqB;IACxC,OAAO,CAAC,GAAGC;QACTD,YAAY,CAAC;QACb,MAAME,qBAAqBJ,qBAAqBE,YAAYC;QAE5DJ,eAAeG,YAAYC;QAC3BL,YAAYM,uBAAuBD;IACrC;AACF"}
@@ -0,0 +1,3 @@
1
+ import { type ClassConstructor } from '@aenode/nest/transformer';
2
+ export declare function transformAndValidate<T extends object>(type: ClassConstructor<T>, value: T): string[];
3
+ //# sourceMappingURL=test-helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-helpers.d.ts","sourceRoot":"","sources":["../../src/lib/test-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,gBAAgB,EAEtB,MAAM,0BAA0B,CAAC;AAGlC,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,MAAM,EACnD,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC,EACzB,KAAK,EAAE,CAAC,GACP,MAAM,EAAE,CAgBV"}
@@ -0,0 +1,19 @@
1
+ import { plainToInstance } from '@aenode/nest/transformer';
2
+ import { validateSync } from '@aenode/nest/validator';
3
+ export function transformAndValidate(type, value) {
4
+ const instance = plainToInstance(type, value, {
5
+ excludeExtraneousValues: true,
6
+ exposeUnsetFields: true,
7
+ exposeDefaultValues: true
8
+ });
9
+ const foundErrors = validateSync(instance, {});
10
+ const foundConstraints = foundErrors.flatMap((e)=>[
11
+ e,
12
+ ...e.children ?? []
13
+ ]).flatMap((e)=>{
14
+ return Object.keys(e.constraints ?? {});
15
+ });
16
+ return foundConstraints;
17
+ }
18
+
19
+ //# sourceMappingURL=test-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/test-helpers.ts"],"sourcesContent":["import {\n type ClassConstructor,\n plainToInstance,\n} from '@aenode/nest/transformer';\nimport { validateSync } from '@aenode/nest/validator';\n\nexport function transformAndValidate<T extends object>(\n type: ClassConstructor<T>,\n value: T,\n): string[] {\n const instance = plainToInstance(type, value, {\n excludeExtraneousValues: true,\n exposeUnsetFields: true,\n exposeDefaultValues: true,\n });\n\n const foundErrors = validateSync(instance, {});\n\n const foundConstraints = foundErrors\n .flatMap((e) => [e, ...(e.children ?? [])])\n .flatMap((e) => {\n return Object.keys(e.constraints ?? {});\n });\n\n return foundConstraints;\n}\n"],"names":["plainToInstance","validateSync","transformAndValidate","type","value","instance","excludeExtraneousValues","exposeUnsetFields","exposeDefaultValues","foundErrors","foundConstraints","flatMap","e","children","Object","keys","constraints"],"mappings":"AAAA,SAEEA,eAAe,QACV,2BAA2B;AAClC,SAASC,YAAY,QAAQ,yBAAyB;AAEtD,OAAO,SAASC,qBACdC,IAAyB,EACzBC,KAAQ;IAER,MAAMC,WAAWL,gBAAgBG,MAAMC,OAAO;QAC5CE,yBAAyB;QACzBC,mBAAmB;QACnBC,qBAAqB;IACvB;IAEA,MAAMC,cAAcR,aAAaI,UAAU,CAAC;IAE5C,MAAMK,mBAAmBD,YACtBE,OAAO,CAAC,CAACC,IAAM;YAACA;eAAOA,EAAEC,QAAQ,IAAI,EAAE;SAAE,EACzCF,OAAO,CAAC,CAACC;QACR,OAAOE,OAAOC,IAAI,CAACH,EAAEI,WAAW,IAAI,CAAC;IACvC;IAEF,OAAON;AACT"}
@@ -0,0 +1,4 @@
1
+ import type { ApiPropertyOptions } from '@aenode/nest/swagger';
2
+ import type { PropOptions } from './prop-options.js';
3
+ export declare function toApiProeprtyOptions(options: PropOptions, ...args: Parameters<PropertyDecorator>): ApiPropertyOptions;
4
+ //# sourceMappingURL=to-api-property-optionts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"to-api-property-optionts.d.ts","sourceRoot":"","sources":["../../src/lib/to-api-property-optionts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAErD,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,WAAW,EACpB,GAAG,IAAI,EAAE,UAAU,CAAC,iBAAiB,CAAC,GACrC,kBAAkB,CAiCpB"}
@@ -0,0 +1,29 @@
1
+ export function toApiProeprtyOptions(options, ...args) {
2
+ const inferedType = Reflect.getMetadata('design:type', ...args);
3
+ const isArrayType = inferedType === Array;
4
+ const apiOptions = {
5
+ required: options.required === true,
6
+ nullable: options.required !== true,
7
+ minimum: options.max,
8
+ maximum: options.max,
9
+ minLength: options.minLength,
10
+ maxLength: options.maxLength,
11
+ isArray: isArrayType,
12
+ enum: options.enum,
13
+ minItems: options.minItems,
14
+ maxItems: options.maxItems,
15
+ example: options.example,
16
+ examples: options.examples,
17
+ description: options.description,
18
+ default: options.default ?? options.defaultValue ?? null
19
+ };
20
+ if (isArrayType === true) {
21
+ if (!options.type && !options.enum) {
22
+ throw new Error('Array property must provide type, enum, or isIn option!');
23
+ }
24
+ apiOptions.type = options.type;
25
+ }
26
+ return apiOptions;
27
+ }
28
+
29
+ //# sourceMappingURL=to-api-property-optionts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/lib/to-api-property-optionts.ts"],"sourcesContent":["import type { ApiPropertyOptions } from '@aenode/nest/swagger';\nimport type { PropOptions } from './prop-options.js';\n\nexport function toApiProeprtyOptions(\n options: PropOptions,\n ...args: Parameters<PropertyDecorator>\n): ApiPropertyOptions {\n const inferedType = Reflect.getMetadata('design:type', ...args);\n\n const isArrayType = inferedType === Array;\n\n const apiOptions: ApiPropertyOptions = {\n required: options.required === true,\n nullable: options.required !== true,\n minimum: options.max,\n maximum: options.max,\n minLength: options.minLength,\n maxLength: options.maxLength,\n isArray: isArrayType,\n enum: options.enum,\n minItems: options.minItems,\n maxItems: options.maxItems,\n example: options.example,\n examples: options.examples,\n description: options.description,\n default: options.default ?? options.defaultValue ?? null,\n };\n\n if (isArrayType === true) {\n if (!options.type && !options.enum) {\n throw new Error(\n 'Array property must provide type, enum, or isIn option!',\n );\n }\n\n apiOptions.type = options.type;\n }\n\n return apiOptions;\n}\n"],"names":["toApiProeprtyOptions","options","args","inferedType","Reflect","getMetadata","isArrayType","Array","apiOptions","required","nullable","minimum","max","maximum","minLength","maxLength","isArray","enum","minItems","maxItems","example","examples","description","default","defaultValue","type","Error"],"mappings":"AAGA,OAAO,SAASA,qBACdC,OAAoB,EACpB,GAAGC,IAAmC;IAEtC,MAAMC,cAAcC,QAAQC,WAAW,CAAC,kBAAkBH;IAE1D,MAAMI,cAAcH,gBAAgBI;IAEpC,MAAMC,aAAiC;QACrCC,UAAUR,QAAQQ,QAAQ,KAAK;QAC/BC,UAAUT,QAAQQ,QAAQ,KAAK;QAC/BE,SAASV,QAAQW,GAAG;QACpBC,SAASZ,QAAQW,GAAG;QACpBE,WAAWb,QAAQa,SAAS;QAC5BC,WAAWd,QAAQc,SAAS;QAC5BC,SAASV;QACTW,MAAMhB,QAAQgB,IAAI;QAClBC,UAAUjB,QAAQiB,QAAQ;QAC1BC,UAAUlB,QAAQkB,QAAQ;QAC1BC,SAASnB,QAAQmB,OAAO;QACxBC,UAAUpB,QAAQoB,QAAQ;QAC1BC,aAAarB,QAAQqB,WAAW;QAChCC,SAAStB,QAAQsB,OAAO,IAAItB,QAAQuB,YAAY,IAAI;IACtD;IAEA,IAAIlB,gBAAgB,MAAM;QACxB,IAAI,CAACL,QAAQwB,IAAI,IAAI,CAACxB,QAAQgB,IAAI,EAAE;YAClC,MAAM,IAAIS,MACR;QAEJ;QAEAlB,WAAWiB,IAAI,GAAGxB,QAAQwB,IAAI;IAChC;IAEA,OAAOjB;AACT"}
@@ -0,0 +1,8 @@
1
+ export * from './is-relative-path.js';
2
+ export * from './less-than.js';
3
+ export * from './max-properties.js';
4
+ export * from './min-properties.js';
5
+ export * from './more-than.js';
6
+ export * from './not-with.js';
7
+ export * from './not-without.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/index.ts"],"names":[],"mappings":"AACA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,10 @@
1
+ // @index(['./**/*.ts', '!./**/*.spec.ts', '!./**/_*.ts', '!./**/generated/**'], f => `export * from '${f.path}.js'`)
2
+ export * from './is-relative-path.js';
3
+ export * from './less-than.js';
4
+ export * from './max-properties.js';
5
+ export * from './min-properties.js';
6
+ export * from './more-than.js';
7
+ export * from './not-with.js';
8
+ export * from './not-without.js';
9
+
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/validators/index.ts"],"sourcesContent":["// @index(['./**/*.ts', '!./**/*.spec.ts', '!./**/_*.ts', '!./**/generated/**'], f => `export * from '${f.path}.js'`)\nexport * from './is-relative-path.js';\nexport * from './less-than.js';\nexport * from './max-properties.js';\nexport * from './min-properties.js';\nexport * from './more-than.js';\nexport * from './not-with.js';\nexport * from './not-without.js';\n"],"names":[],"mappings":"AAAA,qHAAqH;AACrH,cAAc,wBAAwB;AACtC,cAAc,iBAAiB;AAC/B,cAAc,sBAAsB;AACpC,cAAc,sBAAsB;AACpC,cAAc,iBAAiB;AAC/B,cAAc,gBAAgB;AAC9B,cAAc,mBAAmB"}
@@ -0,0 +1,3 @@
1
+ import { type ValidationOptions } from '@aenode/nest/validator';
2
+ export declare function IsRelativePath(validationOptions?: ValidationOptions): PropertyDecorator;
3
+ //# sourceMappingURL=is-relative-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-relative-path.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/is-relative-path.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAGhC,wBAAgB,cAAc,CAC5B,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,iBAAiB,CAqBnB"}
@@ -0,0 +1,26 @@
1
+ // import { registerDecorator, type ValidationOptions } from 'class-validator';
2
+ import { registerDecorator } from '@aenode/nest/validator';
3
+ import path from 'node:path';
4
+ export function IsRelativePath(validationOptions) {
5
+ return (object, propertyName)=>{
6
+ registerDecorator({
7
+ name: 'isRelativePath',
8
+ target: object.constructor,
9
+ propertyName: propertyName,
10
+ options: {
11
+ ...validationOptions,
12
+ message (args) {
13
+ return `${args.property} should be a realative path`;
14
+ }
15
+ },
16
+ validator: {
17
+ validate (value) {
18
+ if (typeof value !== 'string') return false;
19
+ return !path.isAbsolute(value);
20
+ }
21
+ }
22
+ });
23
+ };
24
+ }
25
+
26
+ //# sourceMappingURL=is-relative-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/validators/is-relative-path.ts"],"sourcesContent":["// import { registerDecorator, type ValidationOptions } from 'class-validator';\nimport {\n type ValidationOptions,\n registerDecorator,\n} from '@aenode/nest/validator';\nimport path from 'node:path';\n\nexport function IsRelativePath(\n validationOptions?: ValidationOptions,\n): PropertyDecorator {\n return (object, propertyName) => {\n registerDecorator({\n name: 'isRelativePath',\n target: object.constructor,\n propertyName: propertyName as string,\n options: {\n ...validationOptions,\n message(args) {\n return `${args.property} should be a realative path`;\n },\n },\n validator: {\n validate(value: unknown) {\n if (typeof value !== 'string') return false;\n\n return !path.isAbsolute(value);\n },\n },\n });\n };\n}\n"],"names":["registerDecorator","path","IsRelativePath","validationOptions","object","propertyName","name","target","options","message","args","property","validator","validate","value","isAbsolute"],"mappings":"AAAA,+EAA+E;AAC/E,SAEEA,iBAAiB,QACZ,yBAAyB;AAChC,OAAOC,UAAU,YAAY;AAE7B,OAAO,SAASC,eACdC,iBAAqC;IAErC,OAAO,CAACC,QAAQC;QACdL,kBAAkB;YAChBM,MAAM;YACNC,QAAQH,OAAO,WAAW;YAC1BC,cAAcA;YACdG,SAAS;gBACP,GAAGL,iBAAiB;gBACpBM,SAAQC,IAAI;oBACV,OAAO,GAAGA,KAAKC,QAAQ,CAAC,2BAA2B,CAAC;gBACtD;YACF;YACAC,WAAW;gBACTC,UAASC,KAAc;oBACrB,IAAI,OAAOA,UAAU,UAAU,OAAO;oBAEtC,OAAO,CAACb,KAAKc,UAAU,CAACD;gBAC1B;YACF;QACF;IACF;AACF"}
@@ -0,0 +1,3 @@
1
+ import { type ValidationOptions } from '@aenode/nest/validator';
2
+ export declare function LessThan(properties: string[], validationOptions?: ValidationOptions): PropertyDecorator;
3
+ //# sourceMappingURL=less-than.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"less-than.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/less-than.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAAE,EACpB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,iBAAiB,CAyBnB"}
@@ -0,0 +1,26 @@
1
+ import { registerDecorator } from '@aenode/nest/validator';
2
+ export function LessThan(properties, validationOptions) {
3
+ return (object, propertyName)=>{
4
+ registerDecorator({
5
+ name: 'lessThan',
6
+ target: object.constructor,
7
+ propertyName: propertyName,
8
+ options: {
9
+ ...validationOptions,
10
+ message (args) {
11
+ return `${args.property} should be less than ${properties.join(', ')}`;
12
+ }
13
+ },
14
+ validator: {
15
+ validate (value, args) {
16
+ if (value !== undefined && value !== null) {
17
+ return properties.map((e)=>args?.object?.[e]).filter((e)=>e !== undefined && e !== null).every((e)=>value < e);
18
+ }
19
+ return true;
20
+ }
21
+ }
22
+ });
23
+ };
24
+ }
25
+
26
+ //# sourceMappingURL=less-than.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/validators/less-than.ts"],"sourcesContent":["import {\n type ValidationOptions,\n registerDecorator,\n} from '@aenode/nest/validator';\n\nexport function LessThan(\n properties: string[],\n validationOptions?: ValidationOptions,\n): PropertyDecorator {\n return (object, propertyName) => {\n registerDecorator({\n name: 'lessThan',\n target: object.constructor,\n propertyName: propertyName as string,\n options: {\n ...validationOptions,\n message(args) {\n return `${args.property} should be less than ${properties.join(', ')}`;\n },\n },\n validator: {\n validate(value: unknown, args) {\n if (value !== undefined && value !== null) {\n return properties\n .map((e: string) => (args?.object as { [e]: unknown })?.[e])\n .filter((e) => e !== undefined && e !== null)\n .every((e) => value < e);\n }\n return true;\n },\n },\n });\n };\n}\n"],"names":["registerDecorator","LessThan","properties","validationOptions","object","propertyName","name","target","options","message","args","property","join","validator","validate","value","undefined","map","e","filter","every"],"mappings":"AAAA,SAEEA,iBAAiB,QACZ,yBAAyB;AAEhC,OAAO,SAASC,SACdC,UAAoB,EACpBC,iBAAqC;IAErC,OAAO,CAACC,QAAQC;QACdL,kBAAkB;YAChBM,MAAM;YACNC,QAAQH,OAAO,WAAW;YAC1BC,cAAcA;YACdG,SAAS;gBACP,GAAGL,iBAAiB;gBACpBM,SAAQC,IAAI;oBACV,OAAO,GAAGA,KAAKC,QAAQ,CAAC,qBAAqB,EAAET,WAAWU,IAAI,CAAC,OAAO;gBACxE;YACF;YACAC,WAAW;gBACTC,UAASC,KAAc,EAAEL,IAAI;oBAC3B,IAAIK,UAAUC,aAAaD,UAAU,MAAM;wBACzC,OAAOb,WACJe,GAAG,CAAC,CAACC,IAAeR,MAAMN,QAA6B,CAACc,EAAE,EAC1DC,MAAM,CAAC,CAACD,IAAMA,MAAMF,aAAaE,MAAM,MACvCE,KAAK,CAAC,CAACF,IAAMH,QAAQG;oBAC1B;oBACA,OAAO;gBACT;YACF;QACF;IACF;AACF"}
@@ -0,0 +1,3 @@
1
+ import { type ValidationOptions } from '@aenode/nest/validator';
2
+ export declare function MaxProperties(maxProperties: number, validationOptions?: ValidationOptions): PropertyDecorator;
3
+ //# sourceMappingURL=max-properties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"max-properties.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/max-properties.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,iBAAiB,CA0BnB"}
@@ -0,0 +1,29 @@
1
+ import { registerDecorator } from '@aenode/nest/validator';
2
+ export function MaxProperties(maxProperties, validationOptions) {
3
+ return (object, propertyName)=>{
4
+ registerDecorator({
5
+ name: 'maxProperties',
6
+ target: object.constructor,
7
+ propertyName: propertyName,
8
+ options: {
9
+ ...validationOptions,
10
+ message (args) {
11
+ return `${args.property} should have at most ${maxProperties} properties`;
12
+ }
13
+ },
14
+ validator: {
15
+ validate (value) {
16
+ if (typeof value !== 'object') {
17
+ return true;
18
+ }
19
+ if (value === undefined || value === null) {
20
+ return true;
21
+ }
22
+ return Object.keys(value).length <= maxProperties;
23
+ }
24
+ }
25
+ });
26
+ };
27
+ }
28
+
29
+ //# sourceMappingURL=max-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/validators/max-properties.ts"],"sourcesContent":["import {\n type ValidationOptions,\n registerDecorator,\n} from '@aenode/nest/validator';\n\nexport function MaxProperties(\n maxProperties: number,\n validationOptions?: ValidationOptions,\n): PropertyDecorator {\n return (object, propertyName) => {\n registerDecorator({\n name: 'maxProperties',\n target: object.constructor,\n propertyName: propertyName as string,\n options: {\n ...validationOptions,\n message(args) {\n return `${args.property} should have at most ${maxProperties} properties`;\n },\n },\n validator: {\n validate(value: unknown) {\n if (typeof value !== 'object') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return true;\n }\n return Object.keys(value).length <= maxProperties;\n },\n },\n });\n };\n}\n"],"names":["registerDecorator","MaxProperties","maxProperties","validationOptions","object","propertyName","name","target","options","message","args","property","validator","validate","value","undefined","Object","keys","length"],"mappings":"AAAA,SAEEA,iBAAiB,QACZ,yBAAyB;AAEhC,OAAO,SAASC,cACdC,aAAqB,EACrBC,iBAAqC;IAErC,OAAO,CAACC,QAAQC;QACdL,kBAAkB;YAChBM,MAAM;YACNC,QAAQH,OAAO,WAAW;YAC1BC,cAAcA;YACdG,SAAS;gBACP,GAAGL,iBAAiB;gBACpBM,SAAQC,IAAI;oBACV,OAAO,GAAGA,KAAKC,QAAQ,CAAC,qBAAqB,EAAET,cAAc,WAAW,CAAC;gBAC3E;YACF;YACAU,WAAW;gBACTC,UAASC,KAAc;oBACrB,IAAI,OAAOA,UAAU,UAAU;wBAC7B,OAAO;oBACT;oBAEA,IAAIA,UAAUC,aAAaD,UAAU,MAAM;wBACzC,OAAO;oBACT;oBACA,OAAOE,OAAOC,IAAI,CAACH,OAAOI,MAAM,IAAIhB;gBACtC;YACF;QACF;IACF;AACF"}
@@ -0,0 +1,3 @@
1
+ import { type ValidationOptions } from '@aenode/nest/validator';
2
+ export declare function MinProperties(minProperties: number, validationOptions?: ValidationOptions): PropertyDecorator;
3
+ //# sourceMappingURL=min-properties.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"min-properties.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/min-properties.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,aAAa,CAC3B,aAAa,EAAE,MAAM,EACrB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,iBAAiB,CA0BnB"}
@@ -0,0 +1,29 @@
1
+ import { registerDecorator } from '@aenode/nest/validator';
2
+ export function MinProperties(minProperties, validationOptions) {
3
+ return (object, propertyName)=>{
4
+ registerDecorator({
5
+ name: 'minProperties',
6
+ target: object.constructor,
7
+ propertyName: propertyName,
8
+ options: {
9
+ ...validationOptions,
10
+ message (args) {
11
+ return `${args.property} should have at least ${minProperties} properties`;
12
+ }
13
+ },
14
+ validator: {
15
+ validate (value) {
16
+ if (typeof value !== 'object') {
17
+ return true;
18
+ }
19
+ if (value === undefined || value === null) {
20
+ return true;
21
+ }
22
+ return Object.keys(value).length >= minProperties;
23
+ }
24
+ }
25
+ });
26
+ };
27
+ }
28
+
29
+ //# sourceMappingURL=min-properties.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/validators/min-properties.ts"],"sourcesContent":["import {\n type ValidationOptions,\n registerDecorator,\n} from '@aenode/nest/validator';\n\nexport function MinProperties(\n minProperties: number,\n validationOptions?: ValidationOptions,\n): PropertyDecorator {\n return (object, propertyName) => {\n registerDecorator({\n name: 'minProperties',\n target: object.constructor,\n propertyName: propertyName as string,\n options: {\n ...validationOptions,\n message(args) {\n return `${args.property} should have at least ${minProperties} properties`;\n },\n },\n validator: {\n validate(value: unknown) {\n if (typeof value !== 'object') {\n return true;\n }\n\n if (value === undefined || value === null) {\n return true;\n }\n return Object.keys(value).length >= minProperties;\n },\n },\n });\n };\n}\n"],"names":["registerDecorator","MinProperties","minProperties","validationOptions","object","propertyName","name","target","options","message","args","property","validator","validate","value","undefined","Object","keys","length"],"mappings":"AAAA,SAEEA,iBAAiB,QACZ,yBAAyB;AAEhC,OAAO,SAASC,cACdC,aAAqB,EACrBC,iBAAqC;IAErC,OAAO,CAACC,QAAQC;QACdL,kBAAkB;YAChBM,MAAM;YACNC,QAAQH,OAAO,WAAW;YAC1BC,cAAcA;YACdG,SAAS;gBACP,GAAGL,iBAAiB;gBACpBM,SAAQC,IAAI;oBACV,OAAO,GAAGA,KAAKC,QAAQ,CAAC,sBAAsB,EAAET,cAAc,WAAW,CAAC;gBAC5E;YACF;YACAU,WAAW;gBACTC,UAASC,KAAc;oBACrB,IAAI,OAAOA,UAAU,UAAU;wBAC7B,OAAO;oBACT;oBAEA,IAAIA,UAAUC,aAAaD,UAAU,MAAM;wBACzC,OAAO;oBACT;oBACA,OAAOE,OAAOC,IAAI,CAACH,OAAOI,MAAM,IAAIhB;gBACtC;YACF;QACF;IACF;AACF"}
@@ -0,0 +1,3 @@
1
+ import { type ValidationOptions } from '@aenode/nest/validator';
2
+ export declare function MoreThan(properties: string[], validationOptions?: ValidationOptions): PropertyDecorator;
3
+ //# sourceMappingURL=more-than.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"more-than.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/more-than.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,iBAAiB,EAEvB,MAAM,wBAAwB,CAAC;AAEhC,wBAAgB,QAAQ,CACtB,UAAU,EAAE,MAAM,EAAE,EACpB,iBAAiB,CAAC,EAAE,iBAAiB,GACpC,iBAAiB,CAyBnB"}
@@ -0,0 +1,26 @@
1
+ import { registerDecorator } from '@aenode/nest/validator';
2
+ export function MoreThan(properties, validationOptions) {
3
+ return (object, propertyName)=>{
4
+ registerDecorator({
5
+ name: 'moreThan',
6
+ target: object.constructor,
7
+ propertyName: propertyName,
8
+ options: {
9
+ ...validationOptions,
10
+ message (args) {
11
+ return `${args.property} should be more than ${properties.join(', ')}`;
12
+ }
13
+ },
14
+ validator: {
15
+ validate (value, args) {
16
+ if (value !== undefined && value !== null) {
17
+ return properties.map((e)=>args?.object?.[e]).filter((e)=>e !== undefined && e !== null).every((e)=>value > e);
18
+ }
19
+ return true;
20
+ }
21
+ }
22
+ });
23
+ };
24
+ }
25
+
26
+ //# sourceMappingURL=more-than.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/validators/more-than.ts"],"sourcesContent":["import {\n type ValidationOptions,\n registerDecorator,\n} from '@aenode/nest/validator';\n\nexport function MoreThan(\n properties: string[],\n validationOptions?: ValidationOptions,\n): PropertyDecorator {\n return (object, propertyName) => {\n registerDecorator({\n name: 'moreThan',\n target: object.constructor,\n propertyName: propertyName as string,\n options: {\n ...validationOptions,\n message(args) {\n return `${args.property} should be more than ${properties.join(', ')}`;\n },\n },\n validator: {\n validate(value: unknown, args) {\n if (value !== undefined && value !== null) {\n return properties\n .map((e: string) => (args?.object as { [e]: unknown })?.[e])\n .filter((e) => e !== undefined && e !== null)\n .every((e) => value > e);\n }\n return true;\n },\n },\n });\n };\n}\n"],"names":["registerDecorator","MoreThan","properties","validationOptions","object","propertyName","name","target","options","message","args","property","join","validator","validate","value","undefined","map","e","filter","every"],"mappings":"AAAA,SAEEA,iBAAiB,QACZ,yBAAyB;AAEhC,OAAO,SAASC,SACdC,UAAoB,EACpBC,iBAAqC;IAErC,OAAO,CAACC,QAAQC;QACdL,kBAAkB;YAChBM,MAAM;YACNC,QAAQH,OAAO,WAAW;YAC1BC,cAAcA;YACdG,SAAS;gBACP,GAAGL,iBAAiB;gBACpBM,SAAQC,IAAI;oBACV,OAAO,GAAGA,KAAKC,QAAQ,CAAC,qBAAqB,EAAET,WAAWU,IAAI,CAAC,OAAO;gBACxE;YACF;YACAC,WAAW;gBACTC,UAASC,KAAc,EAAEL,IAAI;oBAC3B,IAAIK,UAAUC,aAAaD,UAAU,MAAM;wBACzC,OAAOb,WACJe,GAAG,CAAC,CAACC,IAAeR,MAAMN,QAA6B,CAACc,EAAE,EAC1DC,MAAM,CAAC,CAACD,IAAMA,MAAMF,aAAaE,MAAM,MACvCE,KAAK,CAAC,CAACF,IAAMH,QAAQG;oBAC1B;oBACA,OAAO;gBACT;YACF;QACF;IACF;AACF"}
@@ -0,0 +1,2 @@
1
+ export declare function NotWith(properties: string[]): PropertyDecorator;
2
+ //# sourceMappingURL=not-with.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-with.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/not-with.ts"],"names":[],"mappings":"AAEA,wBAAgB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAuB/D"}
@@ -0,0 +1,25 @@
1
+ import { registerDecorator } from '@aenode/nest/validator';
2
+ export function NotWith(properties) {
3
+ return (object, propertyName)=>{
4
+ registerDecorator({
5
+ name: 'notWith',
6
+ target: object.constructor,
7
+ propertyName: propertyName,
8
+ options: {
9
+ message (args) {
10
+ return `${args.property} cannot be used together with ${properties.join(', ')}`;
11
+ }
12
+ },
13
+ validator: {
14
+ validate (value, args) {
15
+ if (value !== undefined && value !== null) {
16
+ return !properties.map((e)=>args?.object?.[e]).some((e)=>e !== undefined && e !== null);
17
+ }
18
+ return true;
19
+ }
20
+ }
21
+ });
22
+ };
23
+ }
24
+
25
+ //# sourceMappingURL=not-with.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/validators/not-with.ts"],"sourcesContent":["import { registerDecorator } from '@aenode/nest/validator';\n\nexport function NotWith(properties: string[]): PropertyDecorator {\n return (object, propertyName) => {\n registerDecorator({\n name: 'notWith',\n target: object.constructor,\n propertyName: propertyName as string,\n options: {\n message(args) {\n return `${args.property} cannot be used together with ${properties.join(', ')}`;\n },\n },\n validator: {\n validate(value: unknown, args) {\n if (value !== undefined && value !== null) {\n return !properties\n .map((e: string) => (args?.object as { [e]: unknown })?.[e])\n .some((e) => e !== undefined && e !== null);\n }\n return true;\n },\n },\n });\n };\n}\n"],"names":["registerDecorator","NotWith","properties","object","propertyName","name","target","options","message","args","property","join","validator","validate","value","undefined","map","e","some"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,yBAAyB;AAE3D,OAAO,SAASC,QAAQC,UAAoB;IAC1C,OAAO,CAACC,QAAQC;QACdJ,kBAAkB;YAChBK,MAAM;YACNC,QAAQH,OAAO,WAAW;YAC1BC,cAAcA;YACdG,SAAS;gBACPC,SAAQC,IAAI;oBACV,OAAO,GAAGA,KAAKC,QAAQ,CAAC,8BAA8B,EAAER,WAAWS,IAAI,CAAC,OAAO;gBACjF;YACF;YACAC,WAAW;gBACTC,UAASC,KAAc,EAAEL,IAAI;oBAC3B,IAAIK,UAAUC,aAAaD,UAAU,MAAM;wBACzC,OAAO,CAACZ,WACLc,GAAG,CAAC,CAACC,IAAeR,MAAMN,QAA6B,CAACc,EAAE,EAC1DC,IAAI,CAAC,CAACD,IAAMA,MAAMF,aAAaE,MAAM;oBAC1C;oBACA,OAAO;gBACT;YACF;QACF;IACF;AACF"}
@@ -0,0 +1,2 @@
1
+ export declare function NotWithout(properties: string[]): PropertyDecorator;
2
+ //# sourceMappingURL=not-without.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"not-without.d.ts","sourceRoot":"","sources":["../../../src/lib/validators/not-without.ts"],"names":[],"mappings":"AAEA,wBAAgB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,iBAAiB,CA+BlE"}
@@ -0,0 +1,25 @@
1
+ import { registerDecorator } from '@aenode/nest/validator';
2
+ export function NotWithout(properties) {
3
+ return (object, propertyName)=>{
4
+ registerDecorator({
5
+ name: 'notWithout',
6
+ target: object.constructor,
7
+ propertyName: propertyName,
8
+ options: {
9
+ message (args) {
10
+ return `${args.property} cannot be used without ${properties.join(', ')}`;
11
+ }
12
+ },
13
+ validator: {
14
+ validate (value, args) {
15
+ if (value !== undefined && value !== null) {
16
+ return properties.map((targetProperty)=>args?.object?.[targetProperty]).every((targetValue)=>targetValue !== undefined && targetValue !== null);
17
+ }
18
+ return true;
19
+ }
20
+ }
21
+ });
22
+ };
23
+ }
24
+
25
+ //# sourceMappingURL=not-without.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/lib/validators/not-without.ts"],"sourcesContent":["import { registerDecorator } from '@aenode/nest/validator';\n\nexport function NotWithout(properties: string[]): PropertyDecorator {\n return (object, propertyName) => {\n registerDecorator({\n name: 'notWithout',\n target: object.constructor,\n propertyName: propertyName as string,\n options: {\n message(args) {\n return `${args.property} cannot be used without ${properties.join(', ')}`;\n },\n },\n validator: {\n validate(value: unknown, args) {\n if (value !== undefined && value !== null) {\n return properties\n .map(\n (targetProperty: string) =>\n (args?.object as { [targetProperty]: unknown })?.[\n targetProperty\n ],\n )\n .every(\n (targetValue) =>\n targetValue !== undefined && targetValue !== null,\n );\n }\n return true;\n },\n },\n });\n };\n}\n"],"names":["registerDecorator","NotWithout","properties","object","propertyName","name","target","options","message","args","property","join","validator","validate","value","undefined","map","targetProperty","every","targetValue"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,yBAAyB;AAE3D,OAAO,SAASC,WAAWC,UAAoB;IAC7C,OAAO,CAACC,QAAQC;QACdJ,kBAAkB;YAChBK,MAAM;YACNC,QAAQH,OAAO,WAAW;YAC1BC,cAAcA;YACdG,SAAS;gBACPC,SAAQC,IAAI;oBACV,OAAO,GAAGA,KAAKC,QAAQ,CAAC,wBAAwB,EAAER,WAAWS,IAAI,CAAC,OAAO;gBAC3E;YACF;YACAC,WAAW;gBACTC,UAASC,KAAc,EAAEL,IAAI;oBAC3B,IAAIK,UAAUC,aAAaD,UAAU,MAAM;wBACzC,OAAOZ,WACJc,GAAG,CACF,CAACC,iBACER,MAAMN,QAA0C,CAC/Cc,eACD,EAEJC,KAAK,CACJ,CAACC,cACCA,gBAAgBJ,aAAaI,gBAAgB;oBAErD;oBACA,OAAO;gBACT;YACF;QACF;IACF;AACF"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
package/dist/main.js ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env node
2
+ console.log(`Hello from @aenode/prop`);
3
+
4
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/main.ts"],"sourcesContent":["#!/usr/bin/env node\n\nconsole.log(`Hello from @aenode/prop`);\n"],"names":["console","log"],"mappings":";AAEAA,QAAQC,GAAG,CAAC,CAAC,uBAAuB,CAAC"}
package/package.json CHANGED
@@ -1,24 +1,30 @@
1
1
  {
2
2
  "name": "@aenode/prop",
3
- "version": "0.0.21",
4
- "description": "Nestjs/Graphql data transfer object property decorators",
5
- "keywords": [
6
- "types"
7
- ],
8
- "license": "BSL-1.0",
3
+ "version": "0.0.37",
4
+ "description": "Nestjs input validation and swagger property decorator",
9
5
  "author": {
10
- "email": "aenode+aenode+prop@proton.me",
11
6
  "name": "Ahmet Emrebas",
12
- "url": "https://aenode.github.io"
7
+ "email": "aenode+aenode+aenode-prop@proton.me",
8
+ "url": "https://aenode.github.io/#profile"
9
+ },
10
+ "funding": "https://cash.app/$puqlib",
11
+ "homepage": "https://aenode.github.io/aenode/libs/prop",
12
+ "repository": {
13
+ "directory": "libs/prop",
14
+ "type": "github",
15
+ "url": "https://github.com/aenode/aenode/tree/main/libs/prop"
13
16
  },
14
- "homepage": "https://aenode.github.io/aenode/modules/prop",
15
- "funding": [
16
- "https://cash.app/$puqlib"
17
+ "icon": "https://aenode.github.io/aenode/libs/prop/assets/favicon.svg",
18
+ "keywords": [
19
+ "lib"
17
20
  ],
18
21
  "publishConfig": {
19
22
  "access": "public",
20
23
  "tag": "latest"
21
24
  },
25
+ "bin": {
26
+ "aenode-prop": "./bin/prop.mjs"
27
+ },
22
28
  "type": "module",
23
29
  "main": "./dist/index.js",
24
30
  "module": "./dist/index.js",
@@ -26,55 +32,32 @@
26
32
  "exports": {
27
33
  "./package.json": "./package.json",
28
34
  ".": {
29
- "@aenode/source": "./src/index.ts",
35
+ "bun": "./src/index.ts",
30
36
  "types": "./dist/index.d.ts",
31
37
  "import": "./dist/index.js",
32
38
  "default": "./dist/index.js"
33
- },
34
- "./restapi": {
35
- "types": "./dist/restapi/index.d.ts",
36
- "import": "./dist/restapi/index.js",
37
- "default": "./dist/restapi/index.js"
38
- },
39
- "./graphql": {
40
- "types": "./dist/graphql/index.d.ts",
41
- "import": "./dist/graphql/index.js",
42
- "default": "./dist/graphql/index.js"
43
39
  }
44
40
  },
45
41
  "files": [
46
- "dist",
47
42
  "assets",
48
43
  "bin",
44
+ "dist",
45
+ "generators.json",
49
46
  "!**/*.tsbuildinfo"
50
47
  ],
51
48
  "nx": {
52
- "sourceRoot": "modules/prop/src",
49
+ "sourceRoot": "libs/prop/src",
50
+ "projectType": "library",
53
51
  "tags": [
54
52
  "lib:module"
55
53
  ],
56
54
  "targets": {
57
55
  "build": {},
58
- "lint": {},
59
56
  "doc": {}
60
57
  }
61
58
  },
62
59
  "dependencies": {
60
+ "@aenode/nest": "workspace:*",
63
61
  "@swc/helpers": "~0.5.18"
64
- },
65
- "devDependencies": {
66
- "@nestjs/common": "^11.2.1",
67
- "@nestjs/graphql": "^13.4.5",
68
- "@nestjs/swagger": "^11.4.7",
69
- "@aenode/prop-validation": "0.0.21",
70
- "@aenode/reflect": "0.0.21",
71
- "@aenode/types": "0.0.21"
72
- },
73
- "peerDependencies": {
74
- "@nestjs/graphql": "^13.4.5",
75
- "@nestjs/swagger": "^11.4.7",
76
- "@aenode/types": "0.0.21",
77
- "@aenode/prop-validation": "0.0.21",
78
- "@aenode/reflect": "0.0.21"
79
62
  }
80
- }
63
+ }