@quadnix/octo 0.0.23 → 0.0.24

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 (292) hide show
  1. package/dist/app.type.d.ts +115 -1
  2. package/dist/app.type.js +21 -0
  3. package/dist/app.type.js.map +1 -1
  4. package/dist/decorators/enable-hook.decorator.d.ts +5 -0
  5. package/dist/decorators/enable-hook.decorator.js +5 -0
  6. package/dist/decorators/enable-hook.decorator.js.map +1 -1
  7. package/dist/decorators/event-source.decorator.d.ts +4 -0
  8. package/dist/decorators/event-source.decorator.js +5 -6
  9. package/dist/decorators/event-source.decorator.js.map +1 -1
  10. package/dist/decorators/model.decorator.d.ts +17 -4
  11. package/dist/decorators/model.decorator.js +17 -4
  12. package/dist/decorators/model.decorator.js.map +1 -1
  13. package/dist/decorators/on-event.decorator.js +1 -6
  14. package/dist/decorators/on-event.decorator.js.map +1 -1
  15. package/dist/decorators/overlay.decorator.d.ts +14 -5
  16. package/dist/decorators/overlay.decorator.js +14 -5
  17. package/dist/decorators/overlay.decorator.js.map +1 -1
  18. package/dist/decorators/resource.decorator.d.ts +15 -5
  19. package/dist/decorators/resource.decorator.js +15 -5
  20. package/dist/decorators/resource.decorator.js.map +1 -1
  21. package/dist/decorators/validate.decorator.d.ts +8 -0
  22. package/dist/decorators/validate.decorator.js +8 -0
  23. package/dist/decorators/validate.decorator.js.map +1 -1
  24. package/dist/errors/container.error.d.ts +9 -0
  25. package/dist/errors/container.error.js +9 -0
  26. package/dist/errors/container.error.js.map +1 -1
  27. package/dist/errors/input.error.d.ts +38 -0
  28. package/dist/errors/input.error.js +38 -0
  29. package/dist/errors/input.error.js.map +1 -1
  30. package/dist/errors/module.error.d.ts +3 -0
  31. package/dist/errors/module.error.js +3 -0
  32. package/dist/errors/module.error.js.map +1 -1
  33. package/dist/errors/node.error.d.ts +27 -0
  34. package/dist/errors/node.error.js +27 -0
  35. package/dist/errors/node.error.js.map +1 -1
  36. package/dist/errors/schema.error.d.ts +3 -0
  37. package/dist/errors/schema.error.js +3 -0
  38. package/dist/errors/schema.error.js.map +1 -1
  39. package/dist/errors/transaction.error.d.ts +21 -0
  40. package/dist/errors/transaction.error.js +21 -0
  41. package/dist/errors/transaction.error.js.map +1 -1
  42. package/dist/events/action.event.d.ts +2 -1
  43. package/dist/events/action.event.js +2 -1
  44. package/dist/events/action.event.js.map +1 -1
  45. package/dist/events/event.model.d.ts +5 -3
  46. package/dist/events/event.model.js +3 -1
  47. package/dist/events/event.model.js.map +1 -1
  48. package/dist/events/hook/commit.hook.event.d.ts +6 -3
  49. package/dist/events/hook/commit.hook.event.js +6 -3
  50. package/dist/events/hook/commit.hook.event.js.map +1 -1
  51. package/dist/events/hook/hook.event.d.ts +2 -1
  52. package/dist/events/hook/hook.event.js +2 -1
  53. package/dist/events/hook/hook.event.js.map +1 -1
  54. package/dist/events/hook/model.hook.event.d.ts +6 -3
  55. package/dist/events/hook/model.hook.event.js +6 -3
  56. package/dist/events/hook/model.hook.event.js.map +1 -1
  57. package/dist/events/hook/resource.hook.event.d.ts +6 -3
  58. package/dist/events/hook/resource.hook.event.js +6 -3
  59. package/dist/events/hook/resource.hook.event.js.map +1 -1
  60. package/dist/events/module.event.d.ts +2 -1
  61. package/dist/events/module.event.js +2 -1
  62. package/dist/events/module.event.js.map +1 -1
  63. package/dist/events/registration.event.d.ts +14 -7
  64. package/dist/events/registration.event.js +14 -7
  65. package/dist/events/registration.event.js.map +1 -1
  66. package/dist/events/serialization.event.d.ts +12 -6
  67. package/dist/events/serialization.event.js +12 -6
  68. package/dist/events/serialization.event.js.map +1 -1
  69. package/dist/events/transaction.event.d.ts +34 -10
  70. package/dist/events/transaction.event.js +26 -8
  71. package/dist/events/transaction.event.js.map +1 -1
  72. package/dist/functions/container/container.d.ts +2 -0
  73. package/dist/functions/container/container.js +2 -0
  74. package/dist/functions/container/container.js.map +1 -1
  75. package/dist/functions/container/test-container.d.ts +2 -0
  76. package/dist/functions/container/test-container.js +2 -0
  77. package/dist/functions/container/test-container.js.map +1 -1
  78. package/dist/functions/dependency/dependency.d.ts +9 -0
  79. package/dist/functions/dependency/dependency.js +6 -0
  80. package/dist/functions/dependency/dependency.js.map +1 -1
  81. package/dist/functions/diff/diff-metadata.d.ts +3 -0
  82. package/dist/functions/diff/diff-metadata.js +3 -0
  83. package/dist/functions/diff/diff-metadata.js.map +1 -1
  84. package/dist/functions/diff/diff.d.ts +6 -0
  85. package/dist/functions/diff/diff.js +6 -0
  86. package/dist/functions/diff/diff.js.map +1 -1
  87. package/dist/functions/diff/diff.utility.d.ts +3 -0
  88. package/dist/functions/diff/diff.utility.js +5 -2
  89. package/dist/functions/diff/diff.utility.js.map +1 -1
  90. package/dist/functions/hook/commit.hook.d.ts +3 -0
  91. package/dist/functions/hook/commit.hook.js +3 -0
  92. package/dist/functions/hook/commit.hook.js.map +1 -1
  93. package/dist/functions/hook/hook.interface.d.ts +3 -0
  94. package/dist/functions/hook/model-action.hook.d.ts +3 -0
  95. package/dist/functions/hook/model-action.hook.js +3 -0
  96. package/dist/functions/hook/model-action.hook.js.map +1 -1
  97. package/dist/functions/hook/resource-action.hook.d.ts +3 -0
  98. package/dist/functions/hook/resource-action.hook.js +3 -0
  99. package/dist/functions/hook/resource-action.hook.js.map +1 -1
  100. package/dist/functions/node/node-action.abstract.d.ts +3 -0
  101. package/dist/functions/node/node-action.abstract.js +3 -0
  102. package/dist/functions/node/node-action.abstract.js.map +1 -1
  103. package/dist/functions/node/node.abstract.d.ts +2 -0
  104. package/dist/functions/node/node.abstract.js +2 -0
  105. package/dist/functions/node/node.abstract.js.map +1 -1
  106. package/dist/functions/node/node.interface.d.ts +4 -0
  107. package/dist/functions/schema/schema.d.ts +17 -0
  108. package/dist/functions/schema/schema.js +18 -1
  109. package/dist/functions/schema/schema.js.map +1 -1
  110. package/dist/index.d.ts +1 -1
  111. package/dist/index.js +1 -1
  112. package/dist/index.js.map +1 -1
  113. package/dist/main.d.ts +3 -0
  114. package/dist/main.js +3 -0
  115. package/dist/main.js.map +1 -1
  116. package/dist/models/account/account.model.d.ts +3 -0
  117. package/dist/models/account/account.model.js +5 -1
  118. package/dist/models/account/account.model.js.map +1 -1
  119. package/dist/models/account/account.schema.d.ts +6 -0
  120. package/dist/models/account/account.schema.js +6 -0
  121. package/dist/models/account/account.schema.js.map +1 -1
  122. package/dist/models/app/app.model.d.ts +3 -1
  123. package/dist/models/app/app.model.js +3 -1
  124. package/dist/models/app/app.model.js.map +1 -1
  125. package/dist/models/app/app.schema.d.ts +3 -0
  126. package/dist/models/app/app.schema.js +3 -0
  127. package/dist/models/app/app.schema.js.map +1 -1
  128. package/dist/models/deployment/deployment.model.d.ts +3 -1
  129. package/dist/models/deployment/deployment.model.js +3 -1
  130. package/dist/models/deployment/deployment.model.js.map +1 -1
  131. package/dist/models/deployment/deployment.schema.d.ts +3 -0
  132. package/dist/models/deployment/deployment.schema.js +3 -0
  133. package/dist/models/deployment/deployment.schema.js.map +1 -1
  134. package/dist/models/environment/environment.model.d.ts +3 -1
  135. package/dist/models/environment/environment.model.js +3 -1
  136. package/dist/models/environment/environment.model.js.map +1 -1
  137. package/dist/models/environment/environment.schema.d.ts +3 -0
  138. package/dist/models/environment/environment.schema.js +3 -0
  139. package/dist/models/environment/environment.schema.js.map +1 -1
  140. package/dist/models/execution/execution.model.d.ts +3 -1
  141. package/dist/models/execution/execution.model.js +3 -1
  142. package/dist/models/execution/execution.model.js.map +1 -1
  143. package/dist/models/execution/execution.schema.d.ts +3 -0
  144. package/dist/models/execution/execution.schema.js +3 -0
  145. package/dist/models/execution/execution.schema.js.map +1 -1
  146. package/dist/models/filesystem/filesystem.model.d.ts +3 -0
  147. package/dist/models/filesystem/filesystem.model.js +3 -0
  148. package/dist/models/filesystem/filesystem.model.js.map +1 -1
  149. package/dist/models/filesystem/filesystem.schema.d.ts +3 -0
  150. package/dist/models/filesystem/filesystem.schema.js +3 -0
  151. package/dist/models/filesystem/filesystem.schema.js.map +1 -1
  152. package/dist/models/image/image.model.d.ts +3 -1
  153. package/dist/models/image/image.model.js +3 -1
  154. package/dist/models/image/image.model.js.map +1 -1
  155. package/dist/models/image/image.schema.d.ts +3 -0
  156. package/dist/models/image/image.schema.js +4 -1
  157. package/dist/models/image/image.schema.js.map +1 -1
  158. package/dist/models/model-action.interface.d.ts +2 -0
  159. package/dist/models/model.abstract.d.ts +3 -0
  160. package/dist/models/model.abstract.js +3 -0
  161. package/dist/models/model.abstract.js.map +1 -1
  162. package/dist/models/model.interface.d.ts +5 -0
  163. package/dist/models/pipeline/pipeline.model.d.ts +3 -1
  164. package/dist/models/pipeline/pipeline.model.js +3 -1
  165. package/dist/models/pipeline/pipeline.model.js.map +1 -1
  166. package/dist/models/pipeline/pipeline.schema.d.ts +3 -0
  167. package/dist/models/pipeline/pipeline.schema.js +3 -0
  168. package/dist/models/pipeline/pipeline.schema.js.map +1 -1
  169. package/dist/models/region/region.model.d.ts +3 -1
  170. package/dist/models/region/region.model.js +3 -1
  171. package/dist/models/region/region.model.js.map +1 -1
  172. package/dist/models/region/region.schema.d.ts +3 -0
  173. package/dist/models/region/region.schema.js +3 -0
  174. package/dist/models/region/region.schema.js.map +1 -1
  175. package/dist/models/server/server.model.d.ts +3 -1
  176. package/dist/models/server/server.model.js +3 -1
  177. package/dist/models/server/server.model.js.map +1 -1
  178. package/dist/models/server/server.schema.d.ts +3 -0
  179. package/dist/models/server/server.schema.js +3 -0
  180. package/dist/models/server/server.schema.js.map +1 -1
  181. package/dist/models/service/service.model.d.ts +3 -1
  182. package/dist/models/service/service.model.js +3 -1
  183. package/dist/models/service/service.model.js.map +1 -1
  184. package/dist/models/service/service.schema.d.ts +3 -0
  185. package/dist/models/service/service.schema.js +3 -0
  186. package/dist/models/service/service.schema.js.map +1 -1
  187. package/dist/models/subnet/subnet.model.d.ts +3 -1
  188. package/dist/models/subnet/subnet.model.js +3 -1
  189. package/dist/models/subnet/subnet.model.js.map +1 -1
  190. package/dist/models/subnet/subnet.schema.d.ts +5 -0
  191. package/dist/models/subnet/subnet.schema.js +5 -0
  192. package/dist/models/subnet/subnet.schema.js.map +1 -1
  193. package/dist/modules/module.abstract.d.ts +3 -0
  194. package/dist/modules/module.abstract.js +3 -0
  195. package/dist/modules/module.abstract.js.map +1 -1
  196. package/dist/modules/module.container.d.ts +6 -0
  197. package/dist/modules/module.container.js +6 -0
  198. package/dist/modules/module.container.js.map +1 -1
  199. package/dist/modules/module.interface.d.ts +3 -0
  200. package/dist/modules/test-module.container.d.ts +6 -0
  201. package/dist/modules/test-module.container.js +6 -1
  202. package/dist/modules/test-module.container.js.map +1 -1
  203. package/dist/overlays/anchor.abstract.d.ts +3 -0
  204. package/dist/overlays/anchor.abstract.js +4 -1
  205. package/dist/overlays/anchor.abstract.js.map +1 -1
  206. package/dist/overlays/anchor.interface.d.ts +3 -0
  207. package/dist/overlays/anchor.schema.d.ts +7 -1
  208. package/dist/overlays/anchor.schema.js +3 -0
  209. package/dist/overlays/anchor.schema.js.map +1 -1
  210. package/dist/overlays/overlay-data.repository.d.ts +6 -0
  211. package/dist/overlays/overlay-data.repository.js +6 -0
  212. package/dist/overlays/overlay-data.repository.js.map +1 -1
  213. package/dist/overlays/overlay.abstract.d.ts +3 -0
  214. package/dist/overlays/overlay.abstract.js +6 -0
  215. package/dist/overlays/overlay.abstract.js.map +1 -1
  216. package/dist/overlays/overlay.interface.d.ts +3 -0
  217. package/dist/overlays/overlay.schema.d.ts +3 -0
  218. package/dist/overlays/overlay.schema.js +3 -0
  219. package/dist/overlays/overlay.schema.js.map +1 -1
  220. package/dist/resources/resource-action.interface.d.ts +3 -0
  221. package/dist/resources/resource-data.repository.d.ts +6 -0
  222. package/dist/resources/resource-data.repository.js +6 -0
  223. package/dist/resources/resource-data.repository.js.map +1 -1
  224. package/dist/resources/resource.abstract.d.ts +3 -0
  225. package/dist/resources/resource.abstract.js +5 -2
  226. package/dist/resources/resource.abstract.js.map +1 -1
  227. package/dist/resources/resource.interface.d.ts +6 -0
  228. package/dist/resources/resource.schema.d.ts +3 -0
  229. package/dist/resources/resource.schema.js +3 -0
  230. package/dist/resources/resource.schema.js.map +1 -1
  231. package/dist/services/capture/capture.service.d.ts +6 -0
  232. package/dist/services/capture/capture.service.js +6 -0
  233. package/dist/services/capture/capture.service.js.map +1 -1
  234. package/dist/services/event/event.service.d.ts +8 -1
  235. package/dist/services/event/event.service.js +13 -4
  236. package/dist/services/event/event.service.js.map +1 -1
  237. package/dist/services/input/input.service.d.ts +6 -0
  238. package/dist/services/input/input.service.js +17 -11
  239. package/dist/services/input/input.service.js.map +1 -1
  240. package/dist/services/schema-translation/schema-translation.service.d.ts +6 -0
  241. package/dist/services/schema-translation/schema-translation.service.js +6 -0
  242. package/dist/services/schema-translation/schema-translation.service.js.map +1 -1
  243. package/dist/services/serialization/model/model-serialization.service.d.ts +6 -0
  244. package/dist/services/serialization/model/model-serialization.service.js +29 -8
  245. package/dist/services/serialization/model/model-serialization.service.js.map +1 -1
  246. package/dist/services/serialization/resource/resource-serialization.service.d.ts +6 -0
  247. package/dist/services/serialization/resource/resource-serialization.service.js +6 -0
  248. package/dist/services/serialization/resource/resource-serialization.service.js.map +1 -1
  249. package/dist/services/state-management/local.state-provider.d.ts +3 -0
  250. package/dist/services/state-management/local.state-provider.js +3 -0
  251. package/dist/services/state-management/local.state-provider.js.map +1 -1
  252. package/dist/services/state-management/state-management.service.d.ts +6 -0
  253. package/dist/services/state-management/state-management.service.js +6 -0
  254. package/dist/services/state-management/state-management.service.js.map +1 -1
  255. package/dist/services/state-management/state-provider.interface.d.ts +3 -0
  256. package/dist/services/state-management/test.state-provider.d.ts +3 -0
  257. package/dist/services/state-management/test.state-provider.js +3 -0
  258. package/dist/services/state-management/test.state-provider.js.map +1 -1
  259. package/dist/services/transaction/transaction.service.d.ts +6 -0
  260. package/dist/services/transaction/transaction.service.js +21 -3
  261. package/dist/services/transaction/transaction.service.js.map +1 -1
  262. package/dist/services/validation/validation.service.d.ts +6 -0
  263. package/dist/services/validation/validation.service.js +6 -0
  264. package/dist/services/validation/validation.service.js.map +1 -1
  265. package/dist/utilities/array/array.utility.d.ts +3 -0
  266. package/dist/utilities/array/array.utility.js +3 -0
  267. package/dist/utilities/array/array.utility.js.map +1 -1
  268. package/dist/utilities/cidr/cidr.utility.d.ts +3 -0
  269. package/dist/utilities/cidr/cidr.utility.js +3 -0
  270. package/dist/utilities/cidr/cidr.utility.js.map +1 -1
  271. package/dist/utilities/node/node.utility.d.ts +3 -0
  272. package/dist/utilities/node/node.utility.js +3 -0
  273. package/dist/utilities/node/node.utility.js.map +1 -1
  274. package/dist/utilities/object/object.utility.d.ts +3 -0
  275. package/dist/utilities/object/object.utility.js +4 -1
  276. package/dist/utilities/object/object.utility.js.map +1 -1
  277. package/dist/utilities/test-helpers/test-classes.d.ts +27 -0
  278. package/dist/utilities/test-helpers/test-classes.js +27 -0
  279. package/dist/utilities/test-helpers/test-classes.js.map +1 -1
  280. package/dist/utilities/test-helpers/test-models.d.ts +6 -0
  281. package/dist/utilities/test-helpers/test-models.js +6 -0
  282. package/dist/utilities/test-helpers/test-models.js.map +1 -1
  283. package/dist/utilities/test-helpers/test-overlays.d.ts +3 -0
  284. package/dist/utilities/test-helpers/test-overlays.js +3 -0
  285. package/dist/utilities/test-helpers/test-overlays.js.map +1 -1
  286. package/dist/utilities/test-helpers/test-resources.d.ts +9 -0
  287. package/dist/utilities/test-helpers/test-resources.js +10 -1
  288. package/dist/utilities/test-helpers/test-resources.js.map +1 -1
  289. package/dist/utilities/validation/validation.utility.d.ts +3 -0
  290. package/dist/utilities/validation/validation.utility.js +3 -0
  291. package/dist/utilities/validation/validation.utility.js.map +1 -1
  292. package/package.json +2 -2
@@ -2,7 +2,7 @@ import type { IDependency } from './functions/dependency/dependency.js';
2
2
  import type { ANode } from './functions/node/node.abstract.js';
3
3
  import type { IModelAction } from './models/model-action.interface.js';
4
4
  import type { AModel } from './models/model.abstract.js';
5
- import type { IModel } from './models/model.interface.js';
5
+ import type { IModel, IModelReference } from './models/model.interface.js';
6
6
  import type { AModule } from './modules/module.abstract.js';
7
7
  import type { AAnchor } from './overlays/anchor.abstract.js';
8
8
  import type { BaseAnchorSchema } from './overlays/anchor.schema.js';
@@ -12,6 +12,9 @@ import type { IResourceAction } from './resources/resource-action.interface.js';
12
12
  import type { AResource } from './resources/resource.abstract.js';
13
13
  import type { BaseResourceSchema } from './resources/resource.schema.js';
14
14
  import type { ValidationUtility } from './utilities/validation/validation.utility.js';
15
+ /**
16
+ * @group Types
17
+ */
15
18
  export declare class MatchingAnchor<S extends BaseAnchorSchema> {
16
19
  private readonly actual;
17
20
  private readonly schemaTranslator?;
@@ -22,6 +25,9 @@ export declare class MatchingAnchor<S extends BaseAnchorSchema> {
22
25
  }, any>;
23
26
  getSchemaInstance(): S;
24
27
  }
28
+ /**
29
+ * @group Types
30
+ */
25
31
  export declare class MatchingModel<S extends object> {
26
32
  private readonly actual;
27
33
  private readonly schemaTranslator?;
@@ -30,6 +36,9 @@ export declare class MatchingModel<S extends object> {
30
36
  getActual(): AModel<Record<never, never>, any>;
31
37
  getSchemaInstance(): S;
32
38
  }
39
+ /**
40
+ * @group Types
41
+ */
33
42
  export declare class MatchingResource<S extends BaseResourceSchema> {
34
43
  private readonly actual;
35
44
  readonly schemaTranslator?: ((synth: BaseResourceSchema) => S) | undefined;
@@ -48,11 +57,17 @@ export declare class MatchingResource<S extends BaseResourceSchema> {
48
57
  response: Required<S['response']>;
49
58
  };
50
59
  }
60
+ /**
61
+ * @internal
62
+ */
51
63
  export declare enum NodeType {
52
64
  MODEL = "model",
53
65
  OVERLAY = "overlay",
54
66
  RESOURCE = "resource"
55
67
  }
68
+ /**
69
+ * @internal
70
+ */
56
71
  export declare enum ValidationType {
57
72
  CUSTOM = "custom",
58
73
  IS_MODEL = "isModel",
@@ -63,6 +78,9 @@ export declare enum ValidationType {
63
78
  MIN_LENGTH = "minLength",
64
79
  REGEX = "regex"
65
80
  }
81
+ /**
82
+ * @internal
83
+ */
66
84
  export type ValidationTypeOptions = {
67
85
  [ValidationType.CUSTOM]: Parameters<typeof ValidationUtility.validateCustom>[1];
68
86
  [ValidationType.IS_MODEL]: Parameters<typeof ValidationUtility.validateIsModel>[1];
@@ -73,22 +91,43 @@ export type ValidationTypeOptions = {
73
91
  [ValidationType.MIN_LENGTH]: Parameters<typeof ValidationUtility.validateMinLength>[1];
74
92
  [ValidationType.REGEX]: Parameters<typeof ValidationUtility.validateRegex>[1];
75
93
  };
94
+ /**
95
+ * @group Types
96
+ */
76
97
  export declare function hasNodeName(node: UnknownNode, nodeName: string): boolean;
98
+ /**
99
+ * @group Types
100
+ */
77
101
  export declare function stub<T>(value: string): T;
102
+ /**
103
+ * @internal
104
+ */
78
105
  export type ActionInputs = EnhancedModuleSchema<UnknownModule>;
106
+ /**
107
+ * @group Types
108
+ */
79
109
  export type ActionOutputs = {
80
110
  [key: string]: UnknownResource;
81
111
  };
112
+ /**
113
+ * @internal
114
+ */
82
115
  export type ClassRequiredProperties<T> = {
83
116
  [K in keyof T]: undefined extends T[K] ? never : K;
84
117
  }[keyof T];
85
118
  export type ClassOptionalProperties<T> = {
86
119
  [K in keyof T]: undefined extends T[K] ? K : never;
87
120
  }[keyof T];
121
+ /**
122
+ * @group Types
123
+ */
88
124
  export type DiffValueTypePropertyUpdate = {
89
125
  key: string;
90
126
  value: unknown;
91
127
  };
128
+ /**
129
+ * @group Types
130
+ */
92
131
  export type DiffValueTypeTagUpdate = {
93
132
  add: {
94
133
  [key: string]: string;
@@ -98,16 +137,28 @@ export type DiffValueTypeTagUpdate = {
98
137
  [key: string]: string;
99
138
  };
100
139
  };
140
+ /**
141
+ * @internal
142
+ */
101
143
  export type ObjectKeyValue<T> = {
102
144
  [K in keyof T]: {
103
145
  key: K;
104
146
  value: T[K];
105
147
  };
106
148
  }[keyof T];
149
+ /**
150
+ * @group Types
151
+ */
107
152
  export type Constructable<T> = new (...args: any[]) => T;
153
+ /**
154
+ * @group Types
155
+ */
108
156
  export type ModelSerializedOutput = {
109
157
  anchors: (AnchorSchema<UnknownAnchor> & {
110
158
  className: string;
159
+ location: IModelReference & {
160
+ type: NodeType;
161
+ };
111
162
  })[];
112
163
  dependencies: IDependency[];
113
164
  models: {
@@ -121,6 +172,9 @@ export type ModelSerializedOutput = {
121
172
  overlay: OverlaySchema<UnknownOverlay>;
122
173
  }[];
123
174
  };
175
+ /**
176
+ * @group Types
177
+ */
124
178
  export type ResourceSerializedOutput = {
125
179
  dependencies: IDependency[];
126
180
  resources: {
@@ -130,6 +184,9 @@ export type ResourceSerializedOutput = {
130
184
  };
131
185
  };
132
186
  };
187
+ /**
188
+ * @internal
189
+ */
133
190
  export type TransactionOptions = {
134
191
  enableResourceCapture?: boolean;
135
192
  yieldModelDiffs?: boolean;
@@ -137,8 +194,17 @@ export type TransactionOptions = {
137
194
  yieldResourceDiffs?: boolean;
138
195
  yieldResourceTransaction?: boolean;
139
196
  };
197
+ /**
198
+ * @internal
199
+ */
140
200
  export type ModifyInterface<T, R> = Omit<T, keyof R> & R;
201
+ /**
202
+ * @group Types
203
+ */
141
204
  export type AnchorSchema<T> = T extends AAnchor<infer S, any> ? S : never;
205
+ /**
206
+ * @group Types
207
+ */
142
208
  export type EnhancedModuleSchema<T extends UnknownModule> = {
143
209
  inputs: {
144
210
  [K in keyof ModuleSchemaInputs<T>]: ModuleSchema<T>[K];
@@ -148,23 +214,71 @@ export type EnhancedModuleSchema<T extends UnknownModule> = {
148
214
  overlays: Record<string, UnknownOverlay>;
149
215
  resources: Record<string, UnknownResource>;
150
216
  };
217
+ /**
218
+ * @internal
219
+ */
151
220
  export type ModelSchema<T> = T extends AModel<infer S, any> ? S : never;
221
+ /**
222
+ * @internal
223
+ */
152
224
  export type ModuleOutput<M> = M extends AModule<any, infer T> ? T : never;
225
+ /**
226
+ * @group Types
227
+ */
153
228
  export type ModuleSchema<T> = T extends AModule<infer S, any> ? S : never;
229
+ /**
230
+ * @group Types
231
+ */
154
232
  export type ModuleSchemaInputs<T> = {
155
233
  [K in ClassRequiredProperties<ModuleSchema<T>>]: ModuleSchema<T>[K];
156
234
  } & {
157
235
  [K in ClassOptionalProperties<ModuleSchema<T>>]?: ModuleSchema<T>[K];
158
236
  };
237
+ /**
238
+ * @internal
239
+ */
159
240
  export type NodeSchema<T> = T extends ANode<infer S, any> ? S : never;
241
+ /**
242
+ * @group Types
243
+ */
160
244
  export type OverlaySchema<T> = T extends AOverlay<infer S, any> ? S : never;
245
+ /**
246
+ * @group Types
247
+ */
161
248
  export type ResourceSchema<T> = T extends AResource<infer S, any> ? S : never;
249
+ /**
250
+ * @internal
251
+ */
162
252
  export type IUnknownModel = IModel<unknown, any>;
253
+ /**
254
+ * @internal
255
+ */
163
256
  export type IUnknownModelAction = IModelAction<any>;
257
+ /**
258
+ * @internal
259
+ */
164
260
  export type IUnknownResourceAction = IResourceAction<any>;
261
+ /**
262
+ * @internal
263
+ */
165
264
  export type UnknownAnchor = AAnchor<BaseAnchorSchema, UnknownModel>;
265
+ /**
266
+ * @internal
267
+ */
166
268
  export type UnknownModel = AModel<unknown, any>;
269
+ /**
270
+ * @internal
271
+ */
167
272
  export type UnknownModule = AModule<unknown, any>;
273
+ /**
274
+ * @internal
275
+ */
168
276
  export type UnknownNode = ANode<unknown, unknown>;
277
+ /**
278
+ * @internal
279
+ */
169
280
  export type UnknownOverlay = AOverlay<BaseOverlaySchema, any>;
281
+ /**
282
+ * @internal
283
+ */
170
284
  export type UnknownResource = AResource<any, any>;
package/dist/app.type.js CHANGED
@@ -1,4 +1,7 @@
1
1
  /* Classes */
2
+ /**
3
+ * @group Types
4
+ */
2
5
  export class MatchingAnchor {
3
6
  constructor(actual, schemaTranslator) {
4
7
  this.actual = actual;
@@ -14,6 +17,9 @@ export class MatchingAnchor {
14
17
  return this.hasSchemaTranslator() ? this.schemaTranslator(this.actual.synth()) : this.actual.synth();
15
18
  }
16
19
  }
20
+ /**
21
+ * @group Types
22
+ */
17
23
  export class MatchingModel {
18
24
  constructor(actual, schemaTranslator) {
19
25
  this.actual = actual;
@@ -29,6 +35,9 @@ export class MatchingModel {
29
35
  return this.hasSchemaTranslator() ? this.schemaTranslator(this.actual.synth()) : this.actual.synth();
30
36
  }
31
37
  }
38
+ /**
39
+ * @group Types
40
+ */
32
41
  export class MatchingResource {
33
42
  constructor(actual, schemaTranslator) {
34
43
  this.actual = actual;
@@ -57,12 +66,18 @@ export class MatchingResource {
57
66
  }
58
67
  }
59
68
  /* Enumerations */
69
+ /**
70
+ * @internal
71
+ */
60
72
  export var NodeType;
61
73
  (function (NodeType) {
62
74
  NodeType["MODEL"] = "model";
63
75
  NodeType["OVERLAY"] = "overlay";
64
76
  NodeType["RESOURCE"] = "resource";
65
77
  })(NodeType || (NodeType = {}));
78
+ /**
79
+ * @internal
80
+ */
66
81
  export var ValidationType;
67
82
  (function (ValidationType) {
68
83
  ValidationType["CUSTOM"] = "custom";
@@ -75,9 +90,15 @@ export var ValidationType;
75
90
  ValidationType["REGEX"] = "regex";
76
91
  })(ValidationType || (ValidationType = {}));
77
92
  /* Functions */
93
+ /**
94
+ * @group Types
95
+ */
78
96
  export function hasNodeName(node, nodeName) {
79
97
  return node.constructor.NODE_NAME === nodeName;
80
98
  }
99
+ /**
100
+ * @group Types
101
+ */
81
102
  export function stub(value) {
82
103
  return value;
83
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"app.type.js","sourceRoot":"","sources":["../src/app.type.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.type.js","sourceRoot":"","sources":["../src/app.type.ts"],"names":[],"mappings":"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"}
@@ -7,10 +7,15 @@ type Hook = 'CommitHook';
7
7
  * @EnableHook('CommitHook')
8
8
  * async commitTransaction(): Promise<void> { ... }
9
9
  * ```
10
+ *
10
11
  * @group Decorators
12
+ *
11
13
  * @internal
14
+ *
12
15
  * @param hook The only values supported are `CommitHook`.
16
+ *
13
17
  * @returns The decorated method.
18
+ *
14
19
  * @see Definition of [Hooks](/docs/fundamentals/modules#hooks).
15
20
  */
16
21
  export declare function EnableHook(hook: Hook): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
@@ -7,10 +7,15 @@ import { CommitHook } from '../functions/hook/commit.hook.js';
7
7
  * @EnableHook('CommitHook')
8
8
  * async commitTransaction(): Promise<void> { ... }
9
9
  * ```
10
+ *
10
11
  * @group Decorators
12
+ *
11
13
  * @internal
14
+ *
12
15
  * @param hook The only values supported are `CommitHook`.
16
+ *
13
17
  * @returns The decorated method.
18
+ *
14
19
  * @see Definition of [Hooks](/docs/fundamentals/modules#hooks).
15
20
  */
16
21
  export function EnableHook(hook) {
@@ -1 +1 @@
1
- {"version":3,"file":"enable-hook.decorator.js","sourceRoot":"","sources":["../../src/decorators/enable-hook.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAI9D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,UAAU,OAAY,EAAE,YAAoB,EAAE,UAA8B;QACjF,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,YAAY;gBACf,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC/C,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"enable-hook.decorator.js","sourceRoot":"","sources":["../../src/decorators/enable-hook.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAI9D;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,UAAU,OAAY,EAAE,YAAoB,EAAE,UAA8B;QACjF,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,YAAY;gBACf,UAAU,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;gBAC/C,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,iBAAiB,IAAI,IAAI,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -10,9 +10,13 @@ import type { Event } from '../events/index.js';
10
10
  * @EventSource(MyEvent)
11
11
  * myMethod(): void { ... }
12
12
  * ```
13
+ *
13
14
  * @group Decorators
15
+ *
14
16
  * @internal
17
+ *
15
18
  * @param ofType The type of event being emitted.
19
+ *
16
20
  * @returns The decorated method.
17
21
  */
18
22
  export declare function EventSource(ofType: Constructable<Event<unknown>>): (target: any, propertyKey: string, descriptor: PropertyDescriptor) => void;
@@ -1,4 +1,3 @@
1
- import { Container } from '../functions/container/container.js';
2
1
  import { EventService } from '../services/event/event.service.js';
3
2
  /**
4
3
  * An `@EventSource` is a method decorator to enable automatic event emission.
@@ -10,18 +9,18 @@ import { EventService } from '../services/event/event.service.js';
10
9
  * @EventSource(MyEvent)
11
10
  * myMethod(): void { ... }
12
11
  * ```
12
+ *
13
13
  * @group Decorators
14
+ *
14
15
  * @internal
16
+ *
15
17
  * @param ofType The type of event being emitted.
18
+ *
16
19
  * @returns The decorated method.
17
20
  */
18
21
  export function EventSource(ofType) {
19
- const container = Container.getInstance();
20
22
  return function (_target, _propertyKey, descriptor) {
21
- const promise = container.get(EventService).then((eventService) => {
22
- ofType.registrar(eventService, descriptor);
23
- });
24
- container.registerStartupUnhandledPromise(promise);
23
+ ofType.registrar(EventService.getInstance(), descriptor);
25
24
  };
26
25
  }
27
26
  //# sourceMappingURL=event-source.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"event-source.decorator.js","sourceRoot":"","sources":["../../src/decorators/event-source.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,WAAW,CACzB,MAAqC;IAErC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE1C,OAAO,UAAU,OAAY,EAAE,YAAoB,EAAE,UAA8B;QACjF,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YAC/D,MAAc,CAAC,SAAS,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"event-source.decorator.js","sourceRoot":"","sources":["../../src/decorators/event-source.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,WAAW,CACzB,MAAqC;IAErC,OAAO,UAAU,OAAY,EAAE,YAAoB,EAAE,UAA8B;QAChF,MAAc,CAAC,SAAS,CAAC,YAAY,CAAC,WAAW,EAAE,EAAE,UAAU,CAAC,CAAC;IACpE,CAAC,CAAC;AACJ,CAAC"}
@@ -1,15 +1,28 @@
1
1
  import { type Constructable, type ModelSchema, type UnknownModel } from '../app.type.js';
2
2
  /**
3
- * A `@Model` is a class decorator to be placed on top of a class that represents a model.
4
- * - A model must extend the {@link AModel} class.
3
+ * A `@Model` is a class decorator and must be placed on top of a class representing a model.
4
+ * - A model must also extend a base model class.
5
+ * - For type safety, the type of model being decorated is passed to the decorator.
5
6
  *
6
7
  * @example
7
8
  * ```ts
8
- * @Model('my-package', 'my-name')
9
- * export class MyModel extends AModel<IMyModel, MyModel> { ... }
9
+ * @Model<MyModel>('@example', 'region', MyModelSchema)
10
+ * export class MyModel extends Region { ... }
10
11
  * ```
12
+ *
11
13
  * @group Decorators
14
+ *
15
+ * @param packageName - The name of the package under which the model is registered.
16
+ * Selecting a unique package name helps avoid collisions between same model class names across different libraries.
17
+ * You will reuse the same package name throughout your library for different Octo components you create.
18
+ * @param modelName - a string that uniquely represents the base model you are extending.
19
+ * Octo provides names for each of the base models, and you must use the same name.
20
+ * E.g. for region base model, the model name is `region`.
21
+ * @param schema - The schema of the model.
22
+ *
12
23
  * @returns The decorated class.
24
+ *
13
25
  * @see Definition of [Models](/docs/fundamentals/models).
26
+ * @see {@link App} and {@link Region} are a few base models. More can be found in the same folder.
14
27
  */
15
28
  export declare function Model<T extends UnknownModel>(packageName: string, modelName: string, schema: Constructable<ModelSchema<T>>): (constructor: any) => void;
@@ -5,17 +5,30 @@ import { AOverlay } from '../overlays/overlay.abstract.js';
5
5
  import { ModelSerializationService } from '../services/serialization/model/model-serialization.service.js';
6
6
  import { ValidationUtility } from '../utilities/validation/validation.utility.js';
7
7
  /**
8
- * A `@Model` is a class decorator to be placed on top of a class that represents a model.
9
- * - A model must extend the {@link AModel} class.
8
+ * A `@Model` is a class decorator and must be placed on top of a class representing a model.
9
+ * - A model must also extend a base model class.
10
+ * - For type safety, the type of model being decorated is passed to the decorator.
10
11
  *
11
12
  * @example
12
13
  * ```ts
13
- * @Model('my-package', 'my-name')
14
- * export class MyModel extends AModel<IMyModel, MyModel> { ... }
14
+ * @Model<MyModel>('@example', 'region', MyModelSchema)
15
+ * export class MyModel extends Region { ... }
15
16
  * ```
17
+ *
16
18
  * @group Decorators
19
+ *
20
+ * @param packageName - The name of the package under which the model is registered.
21
+ * Selecting a unique package name helps avoid collisions between same model class names across different libraries.
22
+ * You will reuse the same package name throughout your library for different Octo components you create.
23
+ * @param modelName - a string that uniquely represents the base model you are extending.
24
+ * Octo provides names for each of the base models, and you must use the same name.
25
+ * E.g. for region base model, the model name is `region`.
26
+ * @param schema - The schema of the model.
27
+ *
17
28
  * @returns The decorated class.
29
+ *
18
30
  * @see Definition of [Models](/docs/fundamentals/models).
31
+ * @see {@link App} and {@link Region} are a few base models. More can be found in the same folder.
19
32
  */
20
33
  export function Model(packageName, modelName, schema) {
21
34
  const container = Container.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"model.decorator.js","sourceRoot":"","sources":["../../src/decorators/model.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gEAAgE,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAElF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,KAAK,CACnB,WAAmB,EACnB,SAAiB,EACjB,MAAqC;IAErC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE1C,OAAO,UAAU,WAAgB;QAC/B,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,WAAW,EAAE,2BAA2B,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,EAAE,0BAA0B,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,YAAY,MAAM,CAAC,IAAI,WAAW,CAAC,SAAS,YAAY,QAAQ,EAAE,CAAC;YAC5F,MAAM,IAAI,KAAK,CAAC,UAAU,WAAW,CAAC,IAAI,iCAAiC,CAAC,CAAC;QAC/E,CAAC;QAED,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC;QACvC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;QACjC,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;QAEvC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,EAAE;YAC1F,yBAAyB,CAAC,aAAa,CAAC,GAAG,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"model.decorator.js","sourceRoot":"","sources":["../../src/decorators/model.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwC,QAAQ,EAAqB,MAAM,gBAAgB,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gEAAgE,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,MAAM,UAAU,KAAK,CACnB,WAAmB,EACnB,SAAiB,EACjB,MAAqC;IAErC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE1C,OAAO,UAAU,WAAgB;QAC/B,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,WAAW,EAAE,2BAA2B,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,SAAS,EAAE,0BAA0B,CAAC,EAAE,CAAC;YAC5E,MAAM,IAAI,KAAK,CAAC,uBAAuB,SAAS,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,YAAY,MAAM,CAAC,IAAI,WAAW,CAAC,SAAS,YAAY,QAAQ,EAAE,CAAC;YAC5F,MAAM,IAAI,KAAK,CAAC,UAAU,WAAW,CAAC,IAAI,iCAAiC,CAAC,CAAC;QAC/E,CAAC;QAED,WAAW,CAAC,SAAS,GAAG,SAAS,CAAC;QAClC,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC;QACvC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;QACjC,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;QAEvC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,EAAE;YAC1F,yBAAyB,CAAC,aAAa,CAAC,GAAG,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,4 +1,3 @@
1
- import { Container } from '../functions/container/container.js';
2
1
  import { EventService } from '../services/event/event.service.js';
3
2
  /**
4
3
  * An `@OnEvent` is a method decorator to listen to an event.
@@ -18,12 +17,8 @@ import { EventService } from '../services/event/event.service.js';
18
17
  * @returns The decorated method.
19
18
  */
20
19
  export function OnEvent(ofType) {
21
- const container = Container.getInstance();
22
20
  return function (target, _propertyKey, descriptor) {
23
- const promise = container.get(EventService).then((eventService) => {
24
- eventService.registerListeners(ofType, target, descriptor);
25
- });
26
- container.registerStartupUnhandledPromise(promise);
21
+ EventService.getInstance().registerListeners(ofType, target, descriptor);
27
22
  };
28
23
  }
29
24
  //# sourceMappingURL=on-event.decorator.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"on-event.decorator.js","sourceRoot":"","sources":["../../src/decorators/on-event.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,OAAO,CACrB,MAAqC;IAErC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE1C,OAAO,UAAU,MAAW,EAAE,YAAoB,EAAE,UAA8B;QAChF,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,CAAC,YAAY,EAAE,EAAE;YAChE,YAAY,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"on-event.decorator.js","sourceRoot":"","sources":["../../src/decorators/on-event.decorator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAElE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,OAAO,CACrB,MAAqC;IAErC,OAAO,UAAU,MAAW,EAAE,YAAoB,EAAE,UAA8B;QAChF,YAAY,CAAC,WAAW,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;IAC3E,CAAC,CAAC;AACJ,CAAC"}
@@ -1,15 +1,24 @@
1
1
  import { type Constructable, type OverlaySchema, type UnknownOverlay } from '../app.type.js';
2
2
  /**
3
- * An `@Overlay` is a class decorator to be placed on top of a class that represents an overlay.
4
- * - An overlay must extend the {@link AOverlay} class.
3
+ * An `@Overlay` is a class decorator and must be placed on top of a class representing an overlay.
4
+ * - An overlay must also extend the {@link AOverlay} class.
5
+ * - For type safety, the type of overlay being decorated is passed to the decorator.
5
6
  *
6
7
  * @example
7
8
  * ```ts
8
- * @Overlay('my-package', 'my-name')
9
- * export class MyOverlay extends AOverlay<MyOverlay> { ... }
9
+ * @Overlay<MyOverlay>('@example', 'my-name', MyOverlaySchema)
10
+ * export class MyOverlay extends AOverlay<MyOverlaySchema, MyOverlay> { ... }
10
11
  * ```
11
12
  * @group Decorators
13
+ *
14
+ * @param packageName - The name of the package under which the overlay is registered.
15
+ * Selecting a unique package name helps avoid collisions between same overlay class names across different libraries.
16
+ * You will reuse the same package name throughout your library for different Octo components you create.
17
+ * @param overlayName - a string that uniquely represents the name of the overlay.
18
+ * @param schema - The schema of the overlay.
19
+ *
12
20
  * @returns The decorated class.
13
- * @see Definition of [Overlays](/docs/fundamentals/overlay-and-anchor).
21
+ *
22
+ * @see Definition of [Overlays](/docs/fundamentals/overlays).
14
23
  */
15
24
  export declare function Overlay<T extends UnknownOverlay>(packageName: string, overlayName: string, schema: Constructable<OverlaySchema<T>>): (constructor: any) => void;
@@ -4,17 +4,26 @@ import { AOverlay } from '../overlays/overlay.abstract.js';
4
4
  import { ModelSerializationService } from '../services/serialization/model/model-serialization.service.js';
5
5
  import { ValidationUtility } from '../utilities/validation/validation.utility.js';
6
6
  /**
7
- * An `@Overlay` is a class decorator to be placed on top of a class that represents an overlay.
8
- * - An overlay must extend the {@link AOverlay} class.
7
+ * An `@Overlay` is a class decorator and must be placed on top of a class representing an overlay.
8
+ * - An overlay must also extend the {@link AOverlay} class.
9
+ * - For type safety, the type of overlay being decorated is passed to the decorator.
9
10
  *
10
11
  * @example
11
12
  * ```ts
12
- * @Overlay('my-package', 'my-name')
13
- * export class MyOverlay extends AOverlay<MyOverlay> { ... }
13
+ * @Overlay<MyOverlay>('@example', 'my-name', MyOverlaySchema)
14
+ * export class MyOverlay extends AOverlay<MyOverlaySchema, MyOverlay> { ... }
14
15
  * ```
15
16
  * @group Decorators
17
+ *
18
+ * @param packageName - The name of the package under which the overlay is registered.
19
+ * Selecting a unique package name helps avoid collisions between same overlay class names across different libraries.
20
+ * You will reuse the same package name throughout your library for different Octo components you create.
21
+ * @param overlayName - a string that uniquely represents the name of the overlay.
22
+ * @param schema - The schema of the overlay.
23
+ *
16
24
  * @returns The decorated class.
17
- * @see Definition of [Overlays](/docs/fundamentals/overlay-and-anchor).
25
+ *
26
+ * @see Definition of [Overlays](/docs/fundamentals/overlays).
18
27
  */
19
28
  export function Overlay(packageName, overlayName, schema) {
20
29
  const container = Container.getInstance();
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.decorator.js","sourceRoot":"","sources":["../../src/decorators/overlay.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,QAAQ,EAA2C,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gEAAgE,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAElF;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,OAAO,CACrB,WAAmB,EACnB,WAAmB,EACnB,MAAuC;IAEvC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE1C,OAAO,UAAU,WAAgB;QAC/B,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,WAAW,EAAE,2BAA2B,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,WAAW,EAAE,0BAA0B,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,YAAY,QAAQ,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,UAAU,WAAW,CAAC,IAAI,mCAAmC,CAAC,CAAC;QACjF,CAAC;QAED,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC;QACpC,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC;QACvC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;QACjC,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEzC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,EAAE;YAC1F,yBAAyB,CAAC,aAAa,CAAC,GAAG,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"overlay.decorator.js","sourceRoot":"","sources":["../../src/decorators/overlay.decorator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsB,QAAQ,EAA2C,MAAM,gBAAgB,CAAC;AACvG,OAAO,EAAE,SAAS,EAAE,MAAM,qCAAqC,CAAC;AAChE,OAAO,EAAE,QAAQ,EAAE,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAE,yBAAyB,EAAE,MAAM,gEAAgE,CAAC;AAC3G,OAAO,EAAE,iBAAiB,EAAE,MAAM,+CAA+C,CAAC;AAElF;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,OAAO,CACrB,WAAmB,EACnB,WAAmB,EACnB,MAAuC;IAEvC,MAAM,SAAS,GAAG,SAAS,CAAC,WAAW,EAAE,CAAC;IAE1C,OAAO,UAAU,WAAgB;QAC/B,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,WAAW,EAAE,2BAA2B,CAAC,EAAE,CAAC;YAC/E,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC,WAAW,EAAE,0BAA0B,CAAC,EAAE,CAAC;YAC9E,MAAM,IAAI,KAAK,CAAC,yBAAyB,WAAW,EAAE,CAAC,CAAC;QAC1D,CAAC;QACD,IAAI,CAAC,CAAC,WAAW,CAAC,SAAS,YAAY,QAAQ,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,UAAU,WAAW,CAAC,IAAI,mCAAmC,CAAC,CAAC;QACjF,CAAC;QAED,WAAW,CAAC,SAAS,GAAG,WAAW,CAAC;QACpC,WAAW,CAAC,YAAY,GAAG,WAAW,CAAC;QACvC,WAAW,CAAC,WAAW,GAAG,MAAM,CAAC;QACjC,WAAW,CAAC,SAAS,GAAG,QAAQ,CAAC,OAAO,CAAC;QAEzC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,CAAC,yBAAyB,EAAE,EAAE;YAC1F,yBAAyB,CAAC,aAAa,CAAC,GAAG,WAAW,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;QAC7F,CAAC,CAAC,CAAC;QACH,SAAS,CAAC,+BAA+B,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,15 +1,25 @@
1
1
  import { type Constructable, type ResourceSchema, type UnknownResource } from '../app.type.js';
2
2
  /**
3
- * A `@Resource` is a class decorator to be placed on top of a class that represents a resource.
4
- * - A resource must extend the {@link AResource} class.
3
+ * A `@Resource` is a class decorator and must be placed on top of a class representing a resource.
4
+ * - A resource must also extend the {@link AResource} class.
5
+ * - For type safety, the type of resource being decorated is passed to the decorator.
5
6
  *
6
7
  * @example
7
8
  * ```ts
8
- * @Resource('my-package', 'my-name')
9
- * export class MyResource extends AResource<MyResource> { ... }
9
+ * @Resource<MyResource>('@example', 'my-name', MyResourceSchema)
10
+ * export class MyResource extends AResource<MyResourceSchema, MyResource> { ... }
10
11
  * ```
12
+ *
11
13
  * @group Decorators
14
+ *
15
+ * @param packageName - The name of the package under which the resource is registered.
16
+ * Selecting a unique package name helps avoid collisions between same resource class names across different libraries.
17
+ * You will reuse the same package name throughout your library for different Octo components you create.
18
+ * @param resourceName - a string that uniquely represents the name of the resource.
19
+ * @param schema - The schema of the resource.
20
+ *
12
21
  * @returns The decorated class.
13
- * @see Definition of [Resources](http://localhost:3000/docs/fundamentals/resources).
22
+ *
23
+ * @see Definition of [Resources](/docs/fundamentals/resources).
14
24
  */
15
25
  export declare function Resource<T extends UnknownResource>(packageName: string, resourceName: string, schema: Constructable<ResourceSchema<T>>): (constructor: any) => void;
@@ -4,17 +4,27 @@ import { AResource } from '../resources/resource.abstract.js';
4
4
  import { ResourceSerializationService } from '../services/serialization/resource/resource-serialization.service.js';
5
5
  import { ValidationUtility } from '../utilities/validation/validation.utility.js';
6
6
  /**
7
- * A `@Resource` is a class decorator to be placed on top of a class that represents a resource.
8
- * - A resource must extend the {@link AResource} class.
7
+ * A `@Resource` is a class decorator and must be placed on top of a class representing a resource.
8
+ * - A resource must also extend the {@link AResource} class.
9
+ * - For type safety, the type of resource being decorated is passed to the decorator.
9
10
  *
10
11
  * @example
11
12
  * ```ts
12
- * @Resource('my-package', 'my-name')
13
- * export class MyResource extends AResource<MyResource> { ... }
13
+ * @Resource<MyResource>('@example', 'my-name', MyResourceSchema)
14
+ * export class MyResource extends AResource<MyResourceSchema, MyResource> { ... }
14
15
  * ```
16
+ *
15
17
  * @group Decorators
18
+ *
19
+ * @param packageName - The name of the package under which the resource is registered.
20
+ * Selecting a unique package name helps avoid collisions between same resource class names across different libraries.
21
+ * You will reuse the same package name throughout your library for different Octo components you create.
22
+ * @param resourceName - a string that uniquely represents the name of the resource.
23
+ * @param schema - The schema of the resource.
24
+ *
16
25
  * @returns The decorated class.
17
- * @see Definition of [Resources](http://localhost:3000/docs/fundamentals/resources).
26
+ *
27
+ * @see Definition of [Resources](/docs/fundamentals/resources).
18
28
  */
19
29
  export function Resource(packageName, resourceName, schema) {
20
30
  const container = Container.getInstance();