@declaro/core 2.0.0-y.0 → 2.1.0

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 (266) hide show
  1. package/{LICENSE → LICENSE.md} +1 -1
  2. package/README.md +203 -0
  3. package/dist/browser/index.js +28 -0
  4. package/dist/browser/index.js.map +133 -0
  5. package/dist/browser/scope/index.js +3 -0
  6. package/dist/browser/scope/index.js.map +9 -0
  7. package/dist/bun/index.js +19011 -0
  8. package/dist/bun/index.js.map +132 -0
  9. package/dist/bun/scope/index.js +4 -0
  10. package/dist/bun/scope/index.js.map +9 -0
  11. package/dist/node/index.cjs +19039 -0
  12. package/dist/node/index.cjs.map +132 -0
  13. package/dist/node/index.js +19010 -0
  14. package/dist/node/index.js.map +132 -0
  15. package/dist/node/scope/index.cjs +69 -0
  16. package/dist/node/scope/index.cjs.map +9 -0
  17. package/dist/node/scope/index.js +3 -0
  18. package/dist/node/scope/index.js.map +9 -0
  19. package/dist/ts/app/app-context.d.ts +9 -0
  20. package/dist/ts/app/app-context.d.ts.map +1 -0
  21. package/dist/ts/app/app-lifecycle.d.ts +6 -0
  22. package/dist/ts/app/app-lifecycle.d.ts.map +1 -0
  23. package/dist/ts/app/app.d.ts +24 -0
  24. package/dist/ts/app/app.d.ts.map +1 -0
  25. package/dist/{app → ts/app}/index.d.ts +1 -0
  26. package/dist/ts/app/index.d.ts.map +1 -0
  27. package/dist/ts/application/create-request-context.d.ts +4 -0
  28. package/dist/ts/application/create-request-context.d.ts.map +1 -0
  29. package/dist/ts/application/create-request-context.test.d.ts +2 -0
  30. package/dist/ts/application/create-request-context.test.d.ts.map +1 -0
  31. package/dist/ts/application/use-declaro.d.ts +3 -0
  32. package/dist/ts/application/use-declaro.d.ts.map +1 -0
  33. package/dist/{auth → ts/auth}/permission-validator.d.ts +1 -0
  34. package/dist/ts/auth/permission-validator.d.ts.map +1 -0
  35. package/dist/ts/auth/permission-validator.test.d.ts +2 -0
  36. package/dist/ts/auth/permission-validator.test.d.ts.map +1 -0
  37. package/dist/ts/context/async-context.d.ts +54 -0
  38. package/dist/ts/context/async-context.d.ts.map +1 -0
  39. package/dist/ts/context/async-context.test.d.ts +2 -0
  40. package/dist/ts/context/async-context.test.d.ts.map +1 -0
  41. package/dist/{context → ts/context}/context-consumer.d.ts +4 -0
  42. package/dist/ts/context/context-consumer.d.ts.map +1 -0
  43. package/dist/ts/context/context.circular-deps.test.d.ts +2 -0
  44. package/dist/ts/context/context.circular-deps.test.d.ts.map +1 -0
  45. package/dist/ts/context/context.d.ts +452 -0
  46. package/dist/ts/context/context.d.ts.map +1 -0
  47. package/dist/ts/context/context.test.d.ts +2 -0
  48. package/dist/ts/context/context.test.d.ts.map +1 -0
  49. package/dist/ts/context/legacy-context.test.d.ts +2 -0
  50. package/dist/ts/context/legacy-context.test.d.ts.map +1 -0
  51. package/dist/{context → ts/context}/validators.d.ts +2 -1
  52. package/dist/ts/context/validators.d.ts.map +1 -0
  53. package/dist/ts/dataflow/index.d.ts +2 -0
  54. package/dist/ts/dataflow/index.d.ts.map +1 -0
  55. package/dist/ts/dataflow/objects.d.ts +7 -0
  56. package/dist/ts/dataflow/objects.d.ts.map +1 -0
  57. package/dist/ts/dataflow/objects.test.d.ts +2 -0
  58. package/dist/ts/dataflow/objects.test.d.ts.map +1 -0
  59. package/dist/{errors → ts/errors}/errors.d.ts +16 -3
  60. package/dist/ts/errors/errors.d.ts.map +1 -0
  61. package/dist/ts/events/event-manager.d.ts +19 -0
  62. package/dist/ts/events/event-manager.d.ts.map +1 -0
  63. package/dist/ts/events/event-manager.spec.d.ts +2 -0
  64. package/dist/ts/events/event-manager.spec.d.ts.map +1 -0
  65. package/dist/ts/events/index.d.ts +2 -0
  66. package/dist/ts/events/index.d.ts.map +1 -0
  67. package/dist/ts/http/headers.d.ts +21 -0
  68. package/dist/ts/http/headers.d.ts.map +1 -0
  69. package/dist/ts/http/headers.spec.d.ts +2 -0
  70. package/dist/ts/http/headers.spec.d.ts.map +1 -0
  71. package/dist/ts/http/request-context.d.ts +17 -0
  72. package/dist/ts/http/request-context.d.ts.map +1 -0
  73. package/dist/ts/http/request-context.spec.d.ts +2 -0
  74. package/dist/ts/http/request-context.spec.d.ts.map +1 -0
  75. package/dist/ts/http/request.d.ts +31 -0
  76. package/dist/ts/http/request.d.ts.map +1 -0
  77. package/dist/ts/http/request.spec.d.ts +2 -0
  78. package/dist/ts/http/request.spec.d.ts.map +1 -0
  79. package/dist/{http → ts/http}/url.d.ts +5 -4
  80. package/dist/ts/http/url.d.ts.map +1 -0
  81. package/dist/ts/http/url.spec.d.ts +2 -0
  82. package/dist/ts/http/url.spec.d.ts.map +1 -0
  83. package/dist/ts/index.d.ts +47 -0
  84. package/dist/ts/index.d.ts.map +1 -0
  85. package/dist/{pipelines → ts/pipelines}/index.d.ts +1 -0
  86. package/dist/ts/pipelines/index.d.ts.map +1 -0
  87. package/dist/{pipelines → ts/pipelines}/pipeline-action.d.ts +1 -0
  88. package/dist/ts/pipelines/pipeline-action.d.ts.map +1 -0
  89. package/dist/ts/pipelines/pipeline-action.test.d.ts +2 -0
  90. package/dist/ts/pipelines/pipeline-action.test.d.ts.map +1 -0
  91. package/dist/{pipelines → ts/pipelines}/pipeline.d.ts +3 -2
  92. package/dist/ts/pipelines/pipeline.d.ts.map +1 -0
  93. package/dist/ts/pipelines/pipeline.test.d.ts +2 -0
  94. package/dist/ts/pipelines/pipeline.test.d.ts.map +1 -0
  95. package/dist/ts/schema/json-schema.d.ts +12 -0
  96. package/dist/ts/schema/json-schema.d.ts.map +1 -0
  97. package/dist/ts/schema/labels.d.ts +14 -0
  98. package/dist/ts/schema/labels.d.ts.map +1 -0
  99. package/dist/ts/schema/model-schema.d.ts +75 -0
  100. package/dist/ts/schema/model-schema.d.ts.map +1 -0
  101. package/dist/ts/schema/model-schema.test.d.ts +2 -0
  102. package/dist/ts/schema/model-schema.test.d.ts.map +1 -0
  103. package/dist/ts/schema/model.d.ts +35 -0
  104. package/dist/ts/schema/model.d.ts.map +1 -0
  105. package/dist/ts/schema/schema-mixin.d.ts +24 -0
  106. package/dist/ts/schema/schema-mixin.d.ts.map +1 -0
  107. package/dist/ts/schema/test/mock-model.d.ts +8 -0
  108. package/dist/ts/schema/test/mock-model.d.ts.map +1 -0
  109. package/dist/ts/scope/index.d.ts +34 -0
  110. package/dist/ts/scope/index.d.ts.map +1 -0
  111. package/dist/ts/shared/utils/action-descriptor.d.ts +28 -0
  112. package/dist/ts/shared/utils/action-descriptor.d.ts.map +1 -0
  113. package/dist/ts/shared/utils/action-descriptor.test.d.ts +2 -0
  114. package/dist/ts/shared/utils/action-descriptor.test.d.ts.map +1 -0
  115. package/dist/ts/shared/utils/schema-utils.d.ts +3 -0
  116. package/dist/ts/shared/utils/schema-utils.d.ts.map +1 -0
  117. package/dist/ts/shared/utils/schema-utils.test.d.ts +2 -0
  118. package/dist/ts/shared/utils/schema-utils.test.d.ts.map +1 -0
  119. package/dist/ts/shims/async-local-storage.d.ts +36 -0
  120. package/dist/ts/shims/async-local-storage.d.ts.map +1 -0
  121. package/dist/ts/shims/async-local-storage.test.d.ts +2 -0
  122. package/dist/ts/shims/async-local-storage.test.d.ts.map +1 -0
  123. package/dist/{timing.d.ts → ts/timing.d.ts} +1 -0
  124. package/dist/ts/timing.d.ts.map +1 -0
  125. package/dist/{typescript → ts/typescript}/arrays.d.ts +1 -0
  126. package/dist/ts/typescript/arrays.d.ts.map +1 -0
  127. package/dist/{typescript → ts/typescript}/baseModel.d.ts +1 -0
  128. package/dist/ts/typescript/baseModel.d.ts.map +1 -0
  129. package/dist/{typescript → ts/typescript}/classes.d.ts +1 -0
  130. package/dist/ts/typescript/classes.d.ts.map +1 -0
  131. package/dist/{typescript → ts/typescript}/constant-manipulation/snake-case.d.ts +1 -0
  132. package/dist/ts/typescript/constant-manipulation/snake-case.d.ts.map +1 -0
  133. package/dist/{typescript → ts/typescript}/errors.d.ts +1 -0
  134. package/dist/ts/typescript/errors.d.ts.map +1 -0
  135. package/dist/ts/typescript/fetch.d.ts +3 -0
  136. package/dist/ts/typescript/fetch.d.ts.map +1 -0
  137. package/dist/{typescript → ts/typescript}/generics.d.ts +1 -0
  138. package/dist/ts/typescript/generics.d.ts.map +1 -0
  139. package/dist/{typescript → ts/typescript}/index.d.ts +1 -0
  140. package/dist/ts/typescript/index.d.ts.map +1 -0
  141. package/dist/ts/typescript/objects.d.ts +26 -0
  142. package/dist/ts/typescript/objects.d.ts.map +1 -0
  143. package/dist/{typescript → ts/typescript}/promises.d.ts +1 -0
  144. package/dist/ts/typescript/promises.d.ts.map +1 -0
  145. package/dist/{validation → ts/validation}/index.d.ts +1 -0
  146. package/dist/ts/validation/index.d.ts.map +1 -0
  147. package/dist/{validation → ts/validation}/validation.d.ts +1 -0
  148. package/dist/ts/validation/validation.d.ts.map +1 -0
  149. package/dist/{validation → ts/validation}/validator.d.ts +1 -0
  150. package/dist/ts/validation/validator.d.ts.map +1 -0
  151. package/dist/ts/validation/validator.test.d.ts +2 -0
  152. package/dist/ts/validation/validator.test.d.ts.map +1 -0
  153. package/package.json +46 -13
  154. package/src/app/app-context.ts +4 -5
  155. package/src/app/app-lifecycle.ts +4 -3
  156. package/src/app/app.ts +7 -5
  157. package/src/application/create-request-context.test.ts +345 -0
  158. package/src/application/create-request-context.ts +19 -0
  159. package/src/application/use-declaro.ts +27 -0
  160. package/src/auth/permission-validator.test.ts +238 -2
  161. package/src/auth/permission-validator.ts +3 -3
  162. package/src/context/async-context.test.ts +348 -0
  163. package/src/context/async-context.ts +129 -0
  164. package/src/context/context-consumer.ts +4 -4
  165. package/src/context/context.circular-deps.test.ts +1047 -0
  166. package/src/context/context.test.ts +420 -3
  167. package/src/context/context.ts +590 -87
  168. package/src/context/legacy-context.test.ts +9 -9
  169. package/src/dataflow/objects.test.ts +7 -7
  170. package/src/dataflow/objects.ts +10 -9
  171. package/src/errors/errors.ts +19 -3
  172. package/src/events/event-manager.spec.ts +129 -0
  173. package/src/events/event-manager.ts +25 -14
  174. package/src/http/headers.ts +17 -2
  175. package/src/http/request-context.ts +24 -15
  176. package/src/http/request.ts +27 -6
  177. package/src/http/url.ts +3 -3
  178. package/src/index.ts +34 -3
  179. package/src/pipelines/pipeline.test.ts +11 -9
  180. package/src/schema/json-schema.ts +16 -0
  181. package/src/schema/labels.ts +23 -23
  182. package/src/schema/model-schema.test.ts +282 -0
  183. package/src/schema/model-schema.ts +197 -0
  184. package/src/schema/model.ts +143 -0
  185. package/src/schema/schema-mixin.ts +51 -0
  186. package/src/schema/test/mock-model.ts +19 -0
  187. package/src/scope/index.ts +33 -0
  188. package/src/shared/utils/action-descriptor.test.ts +182 -0
  189. package/src/shared/utils/action-descriptor.ts +102 -0
  190. package/src/shared/utils/schema-utils.test.ts +33 -0
  191. package/src/shared/utils/schema-utils.ts +17 -0
  192. package/src/shims/async-local-storage.test.ts +258 -0
  193. package/src/shims/async-local-storage.ts +82 -0
  194. package/src/typescript/objects.ts +32 -1
  195. package/src/validation/validator.test.ts +12 -20
  196. package/dist/app/app-context.d.ts +0 -8
  197. package/dist/app/app-lifecycle.d.ts +0 -4
  198. package/dist/app/app.d.ts +0 -22
  199. package/dist/auth/permission-validator.test.d.ts +0 -1
  200. package/dist/context/context.d.ts +0 -161
  201. package/dist/context/context.test.d.ts +0 -1
  202. package/dist/context/legacy-context.test.d.ts +0 -1
  203. package/dist/dataflow/index.d.ts +0 -1
  204. package/dist/dataflow/objects.d.ts +0 -5
  205. package/dist/dataflow/objects.test.d.ts +0 -1
  206. package/dist/events/event-manager.d.ts +0 -16
  207. package/dist/events/event-manager.spec.d.ts +0 -1
  208. package/dist/events/index.d.ts +0 -1
  209. package/dist/helpers/index.d.ts +0 -1
  210. package/dist/helpers/ucfirst.d.ts +0 -1
  211. package/dist/http/headers.d.ts +0 -4
  212. package/dist/http/headers.spec.d.ts +0 -1
  213. package/dist/http/request-context.d.ts +0 -12
  214. package/dist/http/request-context.spec.d.ts +0 -1
  215. package/dist/http/request.d.ts +0 -8
  216. package/dist/http/request.spec.d.ts +0 -1
  217. package/dist/http/url.spec.d.ts +0 -1
  218. package/dist/index.d.ts +0 -19
  219. package/dist/pipelines/pipeline-action.test.d.ts +0 -1
  220. package/dist/pipelines/pipeline.test.d.ts +0 -1
  221. package/dist/pkg.cjs +0 -30
  222. package/dist/pkg.mjs +0 -56612
  223. package/dist/schema/application.d.ts +0 -83
  224. package/dist/schema/application.test.d.ts +0 -1
  225. package/dist/schema/define-model.d.ts +0 -10
  226. package/dist/schema/define-model.test.d.ts +0 -1
  227. package/dist/schema/formats.d.ts +0 -10
  228. package/dist/schema/index.d.ts +0 -10
  229. package/dist/schema/labels.d.ts +0 -13
  230. package/dist/schema/labels.test.d.ts +0 -1
  231. package/dist/schema/module.d.ts +0 -7
  232. package/dist/schema/module.test.d.ts +0 -1
  233. package/dist/schema/properties.d.ts +0 -19
  234. package/dist/schema/response.d.ts +0 -31
  235. package/dist/schema/response.test.d.ts +0 -1
  236. package/dist/schema/supported-types.d.ts +0 -12
  237. package/dist/schema/supported-types.test.d.ts +0 -1
  238. package/dist/schema/transform-model.d.ts +0 -4
  239. package/dist/schema/transform-model.test.d.ts +0 -1
  240. package/dist/schema/types.d.ts +0 -95
  241. package/dist/schema/types.test.d.ts +0 -1
  242. package/dist/typescript/fetch.d.ts +0 -2
  243. package/dist/typescript/objects.d.ts +0 -12
  244. package/dist/validation/validator.test.d.ts +0 -1
  245. package/src/helpers/index.ts +0 -1
  246. package/src/helpers/ucfirst.ts +0 -3
  247. package/src/schema/application.test.ts +0 -286
  248. package/src/schema/application.ts +0 -150
  249. package/src/schema/define-model.test.ts +0 -81
  250. package/src/schema/define-model.ts +0 -50
  251. package/src/schema/formats.ts +0 -23
  252. package/src/schema/index.ts +0 -10
  253. package/src/schema/labels.test.ts +0 -60
  254. package/src/schema/module.test.ts +0 -39
  255. package/src/schema/module.ts +0 -6
  256. package/src/schema/properties.ts +0 -40
  257. package/src/schema/response.test.ts +0 -101
  258. package/src/schema/response.ts +0 -93
  259. package/src/schema/supported-types.test.ts +0 -20
  260. package/src/schema/supported-types.ts +0 -15
  261. package/src/schema/transform-model.test.ts +0 -31
  262. package/src/schema/transform-model.ts +0 -24
  263. package/src/schema/types.test.ts +0 -28
  264. package/src/schema/types.ts +0 -163
  265. package/tsconfig.json +0 -11
  266. package/vite.config.ts +0 -24
@@ -0,0 +1 @@
1
+ {"version":3,"file":"classes.d.ts","sourceRoot":"","sources":["../../../src/typescript/classes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,KAAK,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC,SAAS,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI;IAC5D,KAAK,GAAG,IAAI,EAAE,CAAC,GAAG,CAAC,CAAA;CACtB,CAAA"}
@@ -20,3 +20,4 @@ type CamelToSnakeCase<S extends string, Acc extends string = ''> = S extends `${
20
20
  type Normalize<S extends string> = Lowercase<Trim<Replace<Replace<Replace<S, ' ', '_'>, '-', '_'>, '__', '_'>>>;
21
21
  export type SnakeCase<S extends string> = Normalize<CamelToSnakeCase<S>>;
22
22
  export {};
23
+ //# sourceMappingURL=snake-case.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snake-case.d.ts","sourceRoot":"","sources":["../../../../src/typescript/constant-manipulation/snake-case.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
1
  export interface IError {
2
2
  message: string;
3
3
  }
4
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../../src/typescript/errors.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,MAAM;IACnB,OAAO,EAAE,MAAM,CAAA;CAClB"}
@@ -0,0 +1,3 @@
1
+ import type fetch from 'node-fetch';
2
+ export type FetchFunc = typeof fetch;
3
+ //# sourceMappingURL=fetch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetch.d.ts","sourceRoot":"","sources":["../../../src/typescript/fetch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAC;AAEpC,MAAM,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC"}
@@ -1,3 +1,4 @@
1
1
  export type PromiseType<T> = T extends Promise<infer U> ? U : T;
2
2
  declare const _default: {};
3
3
  export default _default;
4
+ //# sourceMappingURL=generics.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generics.d.ts","sourceRoot":"","sources":["../../../src/typescript/generics.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;;AAC/D,wBAAiB"}
@@ -6,3 +6,4 @@ export * from './fetch';
6
6
  export * from './promises';
7
7
  export * from './baseModel';
8
8
  export * from './constant-manipulation/snake-case';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/typescript/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,YAAY,CAAA;AAC1B,cAAc,WAAW,CAAA;AACzB,cAAc,WAAW,CAAA;AACzB,cAAc,SAAS,CAAA;AACvB,cAAc,YAAY,CAAA;AAC1B,cAAc,aAAa,CAAA;AAC3B,cAAc,oCAAoC,CAAA"}
@@ -0,0 +1,26 @@
1
+ export type UnionToIntersection<T> = (T extends any ? (x: T) => any : never) extends (x: infer R) => any ? R : never;
2
+ declare const _default: {};
3
+ export default _default;
4
+ export type DeepPartial<T> = T extends object ? {
5
+ [P in keyof T]?: DeepPartial<T[P]>;
6
+ } : T;
7
+ /**
8
+ * Merge two object types without using an intersection type. Intersection types preserve the original types of the objects causing confusion, while this type will merge the types of the objects.
9
+ */
10
+ export type Merge<A, B> = {
11
+ [K in keyof A | keyof B]: K extends keyof B ? B[K] extends object[] ? K extends keyof A ? A[K] extends object[] ? Merge<A[K], B[K]> : B[K] : B[K] : B[K] extends object ? K extends keyof A ? A[K] extends object ? Merge<A[K], B[K]> : B[K] : B[K] : B[K] : K extends keyof A ? A[K] : never;
12
+ };
13
+ /**
14
+ * Shallow merge two object types, replacing types of properties instead of merging them.
15
+ * Properties in B will completely replace properties in A.
16
+ */
17
+ export type ShallowMerge<A extends object, B extends object> = {
18
+ [K in UniqueKeys<keyof A, keyof B>]: A[K];
19
+ } & {
20
+ [K in keyof B]: B[K];
21
+ };
22
+ /**
23
+ * Extract keys from A that are not present in B
24
+ */
25
+ export type UniqueKeys<A, B> = A extends B ? never : A;
26
+ //# sourceMappingURL=objects.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"objects.d.ts","sourceRoot":"","sources":["../../../src/typescript/objects.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,GAAG,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAA;;AACpH,wBAAiB;AAEjB,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,MAAM,GACvC;KACK,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CACrC,GACD,CAAC,CAAA;AAEP;;GAEG;AACH,MAAM,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI;KACrB,CAAC,IAAI,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,MAAM,CAAC,GACrC,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GACjB,CAAC,SAAS,MAAM,CAAC,GACb,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,EAAE,GACjB,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GACR,CAAC,CAAC,CAAC,CAAC,GACR,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACnB,CAAC,SAAS,MAAM,CAAC,GACb,CAAC,CAAC,CAAC,CAAC,SAAS,MAAM,GACf,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GACR,CAAC,CAAC,CAAC,CAAC,GACR,CAAC,CAAC,CAAC,CAAC,GACR,CAAC,SAAS,MAAM,CAAC,GACjB,CAAC,CAAC,CAAC,CAAC,GACJ,KAAK;CACd,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,IAAI;KAC1D,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAC5C,GAAG;KACC,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CACvB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,GAAG,CAAC,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export type PromiseOrValue<T> = Promise<T> | T;
2
2
  export type UnwrapPromise<T> = T extends Promise<infer U> ? U : T;
3
+ //# sourceMappingURL=promises.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promises.d.ts","sourceRoot":"","sources":["../../../src/typescript/promises.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;AAE9C,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA"}
@@ -1,2 +1,3 @@
1
1
  export * from './validation';
2
2
  export * from './validator';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/validation/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,aAAa,CAAA"}
@@ -6,3 +6,4 @@ export declare class Validation<T> {
6
6
  onValid(callback: (value: T) => any): Promise<boolean>;
7
7
  onInvalid(callback: (value: T) => any): Promise<boolean>;
8
8
  }
9
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../src/validation/validation.ts"],"names":[],"mappings":"AAAA,qBAAa,UAAU,CAAC,CAAC;IACrB,SAAgB,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;IACvC,SAAgB,KAAK,EAAE,CAAC,CAAA;IAExB,IAAW,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAKrC;gBAEW,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC;IAKvD,OAAO,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;IAWtD,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC;CAU3D"}
@@ -4,3 +4,4 @@ export declare function validate<T>(subject: T, ...validators: Validator<T>[]):
4
4
  export declare function validateAny(subject: any, ...validators: any[]): Validation<any>;
5
5
  export declare function allValid<T>(subject: T, ...validators: Validator<T>[]): Promise<boolean>;
6
6
  export declare function anyValid<T>(subject: T, ...validators: Validator<T>[]): Promise<boolean>;
7
+ //# sourceMappingURL=validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../../../src/validation/validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;AAEnE,wBAAgB,QAAQ,CAAC,CAAC,EACtB,OAAO,EAAE,CAAC,EACV,GAAG,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAC9B,UAAU,CAAC,CAAC,CAAC,CAKf;AAED,wBAAgB,WAAW,CAAC,OAAO,KAAA,EAAE,GAAG,UAAU,OAAA,mBAKjD;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC5B,OAAO,EAAE,CAAC,EACV,GAAG,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAC9B,OAAO,CAAC,OAAO,CAAC,CASlB;AAED,wBAAsB,QAAQ,CAAC,CAAC,EAC5B,OAAO,EAAE,CAAC,EACV,GAAG,UAAU,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,GAC9B,OAAO,CAAC,OAAO,CAAC,CASlB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=validator.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validator.test.d.ts","sourceRoot":"","sources":["../../../src/validation/validator.test.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,40 +1,46 @@
1
1
  {
2
2
  "name": "@declaro/core",
3
- "version": "2.0.0-y.0",
3
+ "version": "2.1.0",
4
4
  "description": "Declarative Business Module Definition",
5
- "main": "dist/pkg.cjs",
6
- "module": "dist/pkg.mjs",
7
- "types": "dist/index.d.ts",
5
+ "main": "dist/node/index.js",
6
+ "module": "dist/node/index.js",
8
7
  "author": "Emmert Technology LLC",
8
+ "types": "dist/ts/index.d.ts",
9
9
  "type": "module",
10
10
  "license": "MIT",
11
11
  "publishConfig": {
12
12
  "access": "public"
13
13
  },
14
14
  "scripts": {
15
- "dev": "vite build --watch",
16
- "build": "vite build",
17
- "preview": "vite preview",
18
- "test": "vitest"
15
+ "dev": "bun run scripts/build.ts --watch",
16
+ "clean": "bun rimraf dist",
17
+ "build:typedefs": "bun tsc --emitDeclarationOnly --outDir dist/ts -p tsconfig.json",
18
+ "build:js": "bun run scripts/build.ts",
19
+ "build": "bun run clean && bun run build:js && bun run build:typedefs",
20
+ "test": "bun test",
21
+ "test:watch": "bun test --watch",
22
+ "typecheck": "bun tsc --noEmit"
19
23
  },
20
24
  "devDependencies": {
25
+ "@standard-schema/spec": "^1.0.0",
26
+ "@types/bun": "^1.2.12",
27
+ "@types/json-schema": "^7.0.15",
21
28
  "@types/whatwg-url": "^13.0.0",
22
29
  "@vitest/coverage-v8": "^2.0.5",
30
+ "change-case": "^5.4.4",
23
31
  "json-schema-library": "^7.4.8",
24
32
  "lodash": "^4.17.21",
25
33
  "minimatch": "^10.0.1",
26
34
  "node-mocks-http": "^1.16.2",
27
35
  "openapi-types": "^12.1.3",
36
+ "pluralize": "^8.0.0",
28
37
  "typescript": "^5.5.4",
38
+ "uuid": "^11.1.0",
29
39
  "vite": "^5.4.1",
30
40
  "vite-plugin-dts": "^4.0.3",
31
41
  "vitest": "^2.0.5",
32
42
  "whatwg-url": "^14.1.1"
33
43
  },
34
- "dependencies": {
35
- "change-case": "^4.1.2",
36
- "pluralize": "^8.0.0"
37
- },
38
44
  "repository": {
39
45
  "type": "git",
40
46
  "url": "git+https://github.com/emmertio/declaro.git#main"
@@ -43,5 +49,32 @@
43
49
  "url": "https://github.com/emmertio/declaro/issues"
44
50
  },
45
51
  "homepage": "https://github.com/emmertio/declaro/tree/main#readme",
46
- "gitHead": "639b567b4f8adfb9da9c3005c3b0ac0aca10c0e6"
52
+ "gitHead": "d474a72810905706fdf1011441af4deb6c6f2620",
53
+ "files": [
54
+ "dist/**/*",
55
+ "src/**/*"
56
+ ],
57
+ "exports": {
58
+ "import": {
59
+ "bun": "./dist/bun/index.js",
60
+ "browser": "./dist/browser/index.js",
61
+ "types": "./dist/ts/index.d.ts",
62
+ "default": "./dist/node/index.js"
63
+ },
64
+ "require": "./dist/node/index.cjs",
65
+ "types": "./dist/ts/index.d.ts",
66
+ "default": "./dist/node/index.js"
67
+ },
68
+ "imports": {
69
+ "#scope": {
70
+ "import": {
71
+ "bun": "./dist/bun/scope/index.js",
72
+ "browser": "./dist/browser/scope/index.js",
73
+ "types": "./dist/ts/scope/index.d.ts",
74
+ "default": "./dist/node/scope/index.js"
75
+ },
76
+ "require": "./dist/node/scope/index.cjs",
77
+ "types": "./dist/ts/scope/index.d.ts"
78
+ }
79
+ }
47
80
  }
@@ -1,14 +1,13 @@
1
- import { useHeader } from '../http/headers'
2
- import { Context } from '../context/context'
1
+ import { Context, type DeclaroRequestScope } from '../context/context'
3
2
 
4
3
  /**
5
4
  * Get the name of the app making the current request via header x-app. (returns "default" when no app was provided).
6
5
  *
7
- * @param context
6
+ * @param context A context that includes DeclaroRequestScope properties
8
7
  * @returns the name of the app in a string.
9
8
  */
10
- export function useApp(context: Context) {
11
- const appHeader = useHeader(context, 'x-app') as string
9
+ export function useApp<S extends DeclaroRequestScope>(context: Context<S>) {
10
+ const appHeader = context.scope.header('x-app')
12
11
 
13
12
  return appHeader ?? 'default'
14
13
  }
@@ -1,14 +1,15 @@
1
1
  import { Context, type ContextListener } from '../context/context'
2
+ import type { IEvent } from '../events'
2
3
  import { App } from './app'
3
4
 
4
- export function onInit(context: Context, listener: ContextListener) {
5
+ export function onInit<C extends Context>(context: C, listener: ContextListener<C, IEvent>) {
5
6
  context.on(App.Events.Init, listener)
6
7
  }
7
8
 
8
- export function onStart(context: Context, listener: ContextListener) {
9
+ export function onStart<C extends Context>(context: C, listener: ContextListener<C, IEvent>) {
9
10
  context.on(App.Events.Start, listener)
10
11
  }
11
12
 
12
- export function onDestroy(context: Context, listener: ContextListener) {
13
+ export function onDestroy<C extends Context>(context: C, listener: ContextListener<C, IEvent>) {
13
14
  context.on(App.Events.Destroy, listener)
14
15
  }
package/src/app/app.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Context, type ContextMiddleware, type ContextListener } from '../context/context'
2
+ import type { IEvent } from '../events'
2
3
  import { onDestroy, onInit, onStart } from './app-lifecycle'
3
4
 
4
5
  export type AppConfig = {
@@ -8,8 +9,8 @@ export type AppConfig = {
8
9
  destroy?: ContextMiddleware
9
10
  }
10
11
 
11
- export class App {
12
- constructor(public readonly context: Context) {}
12
+ export class App<C extends Context = Context> {
13
+ constructor(public readonly context: C) {}
13
14
 
14
15
  static Events = {
15
16
  Init: 'declaro:init',
@@ -18,10 +19,11 @@ export class App {
18
19
  }
19
20
 
20
21
  async init() {
22
+ await this.context.initializeEagerDependencies()
21
23
  await this.context.emit(App.Events.Init)
22
24
  }
23
25
 
24
- onInit(listener: ContextListener) {
26
+ onInit(listener: ContextListener<C, IEvent>) {
25
27
  onInit(this.context, listener)
26
28
  return this
27
29
  }
@@ -30,7 +32,7 @@ export class App {
30
32
  await this.context.emit(App.Events.Start)
31
33
  }
32
34
 
33
- onStart(listener: ContextListener) {
35
+ onStart(listener: ContextListener<C, IEvent>) {
34
36
  onStart(this.context, listener)
35
37
  return
36
38
  }
@@ -39,7 +41,7 @@ export class App {
39
41
  await this.context.emit(App.Events.Start)
40
42
  }
41
43
 
42
- onDestroy(listener: ContextListener) {
44
+ onDestroy(listener: ContextListener<C, IEvent>) {
43
45
  onDestroy(this.context, listener)
44
46
  }
45
47
  }