declastruct 1.0.0 → 1.1.1

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 (250) hide show
  1. package/dist/.test/assets/providers/demo.provider.d.ts +32 -0
  2. package/dist/.test/assets/providers/demo.provider.js +101 -0
  3. package/dist/.test/assets/providers/demo.provider.js.map +1 -0
  4. package/dist/contract/cli/apply.d.ts +9 -0
  5. package/dist/contract/cli/apply.integration.test.js +148 -0
  6. package/dist/contract/cli/apply.integration.test.js.map +1 -0
  7. package/dist/contract/cli/apply.js +90 -0
  8. package/dist/contract/cli/apply.js.map +1 -0
  9. package/dist/contract/cli/invoke.d.ts +8 -0
  10. package/dist/contract/cli/invoke.js +58 -0
  11. package/dist/contract/cli/invoke.js.map +1 -0
  12. package/dist/contract/cli/plan.d.ts +10 -0
  13. package/dist/contract/cli/plan.integration.test.js +107 -0
  14. package/dist/contract/cli/plan.integration.test.js.map +1 -0
  15. package/dist/contract/cli/plan.js +94 -0
  16. package/dist/contract/cli/plan.js.map +1 -0
  17. package/dist/contract/sdk/index.d.ts +15 -3
  18. package/dist/contract/sdk/index.js +31 -17
  19. package/dist/contract/sdk/index.js.map +1 -1
  20. package/dist/domain.objects/ContextDeclastruct.d.ts +15 -0
  21. package/dist/{domain/DeclastructContext.js → domain.objects/ContextDeclastruct.js} +1 -1
  22. package/dist/domain.objects/ContextDeclastruct.js.map +1 -0
  23. package/dist/domain.objects/ContextDeclastruct.test.js +41 -0
  24. package/dist/domain.objects/ContextDeclastruct.test.js.map +1 -0
  25. package/dist/domain.objects/DeclastructChange.d.ts +73 -0
  26. package/dist/domain.objects/DeclastructChange.js +35 -0
  27. package/dist/domain.objects/DeclastructChange.js.map +1 -0
  28. package/dist/domain.objects/DeclastructChange.test.js +59 -0
  29. package/dist/domain.objects/DeclastructChange.test.js.map +1 -0
  30. package/dist/domain.objects/DeclastructDao.d.ts +39 -0
  31. package/dist/domain.objects/DeclastructDao.js +8 -0
  32. package/dist/domain.objects/DeclastructDao.js.map +1 -0
  33. package/dist/domain.objects/DeclastructDao.test.js +42 -0
  34. package/dist/domain.objects/DeclastructDao.test.js.map +1 -0
  35. package/dist/domain.objects/DeclastructPlan.d.ts +35 -0
  36. package/dist/domain.objects/DeclastructPlan.js +11 -0
  37. package/dist/domain.objects/DeclastructPlan.js.map +1 -0
  38. package/dist/domain.objects/DeclastructPlan.test.js +31 -0
  39. package/dist/domain.objects/DeclastructPlan.test.js.map +1 -0
  40. package/dist/domain.objects/DeclastructProvider.d.ts +30 -0
  41. package/dist/domain.objects/DeclastructProvider.js +8 -0
  42. package/dist/domain.objects/DeclastructProvider.js.map +1 -0
  43. package/dist/domain.objects/DeclastructProvider.test.js +35 -0
  44. package/dist/domain.objects/DeclastructProvider.test.js.map +1 -0
  45. package/dist/domain.objects/IsoTimestamp.d.ts +6 -0
  46. package/dist/{domain/DeclaredResource.js → domain.objects/IsoTimestamp.js} +1 -1
  47. package/dist/domain.objects/IsoTimestamp.js.map +1 -0
  48. package/dist/domain.objects/IsoTimestamp.test.js +10 -0
  49. package/dist/domain.objects/IsoTimestamp.test.js.map +1 -0
  50. package/dist/domain.operations/apply/applyChange.d.ts +14 -0
  51. package/dist/domain.operations/apply/applyChange.js +64 -0
  52. package/dist/domain.operations/apply/applyChange.js.map +1 -0
  53. package/dist/domain.operations/apply/applyChange.test.d.ts +1 -0
  54. package/dist/domain.operations/apply/applyChange.test.js +247 -0
  55. package/dist/domain.operations/apply/applyChange.test.js.map +1 -0
  56. package/dist/domain.operations/apply/applyChanges.d.ts +18 -0
  57. package/dist/domain.operations/apply/applyChanges.integration.test.d.ts +1 -0
  58. package/dist/domain.operations/apply/applyChanges.integration.test.js +291 -0
  59. package/dist/domain.operations/apply/applyChanges.integration.test.js.map +1 -0
  60. package/dist/domain.operations/apply/applyChanges.js +53 -0
  61. package/dist/domain.operations/apply/applyChanges.js.map +1 -0
  62. package/dist/domain.operations/plan/computeChange.d.ts +11 -0
  63. package/dist/domain.operations/plan/computeChange.js +78 -0
  64. package/dist/domain.operations/plan/computeChange.js.map +1 -0
  65. package/dist/domain.operations/plan/computeChange.test.d.ts +1 -0
  66. package/dist/domain.operations/plan/computeChange.test.js +67 -0
  67. package/dist/domain.operations/plan/computeChange.test.js.map +1 -0
  68. package/dist/domain.operations/plan/extractResourcesFromPlan.d.ts +8 -0
  69. package/dist/domain.operations/plan/extractResourcesFromPlan.js +17 -0
  70. package/dist/domain.operations/plan/extractResourcesFromPlan.js.map +1 -0
  71. package/dist/domain.operations/plan/getDaoByResource.d.ts +12 -0
  72. package/dist/domain.operations/plan/getDaoByResource.js +41 -0
  73. package/dist/domain.operations/plan/getDaoByResource.js.map +1 -0
  74. package/dist/domain.operations/plan/getDaoByResource.test.d.ts +1 -0
  75. package/dist/domain.operations/plan/getDaoByResource.test.js +99 -0
  76. package/dist/domain.operations/plan/getDaoByResource.test.js.map +1 -0
  77. package/dist/domain.operations/plan/hashChanges.d.ts +7 -0
  78. package/dist/domain.operations/plan/hashChanges.js +18 -0
  79. package/dist/domain.operations/plan/hashChanges.js.map +1 -0
  80. package/dist/domain.operations/plan/planChanges.d.ts +15 -0
  81. package/dist/domain.operations/plan/planChanges.integration.test.d.ts +1 -0
  82. package/dist/domain.operations/plan/planChanges.integration.test.js +197 -0
  83. package/dist/domain.operations/plan/planChanges.integration.test.js.map +1 -0
  84. package/dist/domain.operations/plan/planChanges.js +50 -0
  85. package/dist/domain.operations/plan/planChanges.js.map +1 -0
  86. package/dist/domain.operations/plan/validate.d.ts +10 -0
  87. package/dist/domain.operations/plan/validate.js +21 -0
  88. package/dist/domain.operations/plan/validate.js.map +1 -0
  89. package/dist/infra/asIsoTimestamp.d.ts +6 -0
  90. package/dist/infra/asIsoTimestamp.js +12 -0
  91. package/dist/infra/asIsoTimestamp.js.map +1 -0
  92. package/package.json +8 -15
  93. package/readme.md +225 -29
  94. package/dist/__test_assets__/getExampleContext.d.ts +0 -33
  95. package/dist/__test_assets__/getExampleContext.js +0 -87
  96. package/dist/__test_assets__/getExampleContext.js.map +0 -1
  97. package/dist/contract/commands/command.apply.d.ts +0 -6
  98. package/dist/contract/commands/command.apply.js +0 -20
  99. package/dist/contract/commands/command.apply.js.map +0 -1
  100. package/dist/contract/commands/command.plan.d.ts +0 -6
  101. package/dist/contract/commands/command.plan.js +0 -20
  102. package/dist/contract/commands/command.plan.js.map +0 -1
  103. package/dist/contract/commands/utils/resolveCommandInputs.d.ts +0 -17
  104. package/dist/contract/commands/utils/resolveCommandInputs.js +0 -23
  105. package/dist/contract/commands/utils/resolveCommandInputs.js.map +0 -1
  106. package/dist/contract/sdk/refs.d.ts +0 -2
  107. package/dist/contract/sdk/refs.js +0 -19
  108. package/dist/contract/sdk/refs.js.map +0 -1
  109. package/dist/contract/sdk/sync/apply.d.ts +0 -22
  110. package/dist/contract/sdk/sync/apply.js +0 -29
  111. package/dist/contract/sdk/sync/apply.js.map +0 -1
  112. package/dist/contract/sdk/sync/plan.d.ts +0 -22
  113. package/dist/contract/sdk/sync/plan.js +0 -30
  114. package/dist/contract/sdk/sync/plan.js.map +0 -1
  115. package/dist/domain/DeclaredResource.d.ts +0 -2
  116. package/dist/domain/DeclaredResource.js.map +0 -1
  117. package/dist/domain/DeclaredResourceReference.d.ts +0 -66
  118. package/dist/domain/DeclaredResourceReference.js +0 -42
  119. package/dist/domain/DeclaredResourceReference.js.map +0 -1
  120. package/dist/domain/DeclastructChangeProposal.d.ts +0 -61
  121. package/dist/domain/DeclastructChangeProposal.js +0 -37
  122. package/dist/domain/DeclastructChangeProposal.js.map +0 -1
  123. package/dist/domain/DeclastructContext.d.ts +0 -24
  124. package/dist/domain/DeclastructContext.js.map +0 -1
  125. package/dist/domain/DeclastructProvider.d.ts +0 -58
  126. package/dist/domain/DeclastructProvider.js +0 -3
  127. package/dist/domain/DeclastructProvider.js.map +0 -1
  128. package/dist/domain/DeclastructProviderContext.d.ts +0 -30
  129. package/dist/domain/DeclastructProviderContext.js +0 -3
  130. package/dist/domain/DeclastructProviderContext.js.map +0 -1
  131. package/dist/domain/DeclastructProviderResourceRemoteStateInterface.d.ts +0 -156
  132. package/dist/domain/DeclastructProviderResourceRemoteStateInterface.js +0 -3
  133. package/dist/domain/DeclastructProviderResourceRemoteStateInterface.js.map +0 -1
  134. package/dist/logic/actions/execute/canUpdateResource.d.ts +0 -5
  135. package/dist/logic/actions/execute/canUpdateResource.js +0 -12
  136. package/dist/logic/actions/execute/canUpdateResource.js.map +0 -1
  137. package/dist/logic/actions/execute/executeProposal.d.ts +0 -5
  138. package/dist/logic/actions/execute/executeProposal.js +0 -52
  139. package/dist/logic/actions/execute/executeProposal.js.map +0 -1
  140. package/dist/logic/actions/propose/getColoredActionToken.d.ts +0 -4
  141. package/dist/logic/actions/propose/getColoredActionToken.js +0 -22
  142. package/dist/logic/actions/propose/getColoredActionToken.js.map +0 -1
  143. package/dist/logic/actions/propose/getColoredProposalTitle.d.ts +0 -4
  144. package/dist/logic/actions/propose/getColoredProposalTitle.js +0 -34
  145. package/dist/logic/actions/propose/getColoredProposalTitle.js.map +0 -1
  146. package/dist/logic/actions/propose/proposeChangeForResource.d.ts +0 -7
  147. package/dist/logic/actions/propose/proposeChangeForResource.js +0 -65
  148. package/dist/logic/actions/propose/proposeChangeForResource.js.map +0 -1
  149. package/dist/logic/actions/propose/proposeChangeForResource.test.js +0 -48
  150. package/dist/logic/actions/propose/proposeChangeForResource.test.js.map +0 -1
  151. package/dist/logic/commands/command.apply.d.ts +0 -8
  152. package/dist/logic/commands/command.apply.js +0 -77
  153. package/dist/logic/commands/command.apply.js.map +0 -1
  154. package/dist/logic/commands/command.plan.d.ts +0 -13
  155. package/dist/logic/commands/command.plan.js +0 -155
  156. package/dist/logic/commands/command.plan.js.map +0 -1
  157. package/dist/logic/commands/execute.d.ts +0 -15
  158. package/dist/logic/commands/execute.js +0 -63
  159. package/dist/logic/commands/execute.js.map +0 -1
  160. package/dist/logic/tools/compare/castReferenceToGrokableString.d.ts +0 -16
  161. package/dist/logic/tools/compare/castReferenceToGrokableString.js +0 -66
  162. package/dist/logic/tools/compare/castReferenceToGrokableString.js.map +0 -1
  163. package/dist/logic/tools/compare/castReferenceToGrokableString.test.js +0 -111
  164. package/dist/logic/tools/compare/castReferenceToGrokableString.test.js.map +0 -1
  165. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.d.ts +0 -11
  166. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.js +0 -61
  167. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.js.map +0 -1
  168. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.test.js +0 -31
  169. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.test.js.map +0 -1
  170. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.d.ts +0 -21
  171. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.js +0 -53
  172. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.js.map +0 -1
  173. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.test.js +0 -31
  174. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.test.js.map +0 -1
  175. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.d.ts +0 -10
  176. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.js +0 -41
  177. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.js.map +0 -1
  178. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.test.js +0 -174
  179. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.test.js.map +0 -1
  180. package/dist/logic/tools/context/createDeclastructContext.d.ts +0 -10
  181. package/dist/logic/tools/context/createDeclastructContext.js +0 -12
  182. package/dist/logic/tools/context/createDeclastructContext.js.map +0 -1
  183. package/dist/logic/tools/context/destroyDeclastructContext.d.ts +0 -4
  184. package/dist/logic/tools/context/destroyDeclastructContext.js +0 -10
  185. package/dist/logic/tools/context/destroyDeclastructContext.js.map +0 -1
  186. package/dist/logic/tools/provider/castProviderContextToGlobalContext.d.ts +0 -4
  187. package/dist/logic/tools/provider/castProviderContextToGlobalContext.js +0 -10
  188. package/dist/logic/tools/provider/castProviderContextToGlobalContext.js.map +0 -1
  189. package/dist/logic/tools/provider/getProviderContextFromGlobalContextForResourceClass.d.ts +0 -13
  190. package/dist/logic/tools/provider/getProviderContextFromGlobalContextForResourceClass.js +0 -29
  191. package/dist/logic/tools/provider/getProviderContextFromGlobalContextForResourceClass.js.map +0 -1
  192. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceExecutionDependenciesForResource.d.ts +0 -13
  193. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceExecutionDependenciesForResource.js +0 -24
  194. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceExecutionDependenciesForResource.js.map +0 -1
  195. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceFromContextForResourceClass.d.ts +0 -10
  196. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceFromContextForResourceClass.js +0 -21
  197. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceFromContextForResourceClass.js.map +0 -1
  198. package/dist/logic/tools/reference/buildPrimaryKeyTo.d.ts +0 -5
  199. package/dist/logic/tools/reference/buildPrimaryKeyTo.js +0 -40
  200. package/dist/logic/tools/reference/buildPrimaryKeyTo.js.map +0 -1
  201. package/dist/logic/tools/reference/buildReferenceTo.d.ts +0 -28
  202. package/dist/logic/tools/reference/buildReferenceTo.js +0 -92
  203. package/dist/logic/tools/reference/buildReferenceTo.js.map +0 -1
  204. package/dist/logic/tools/reference/buildReferenceTo.test.js +0 -119
  205. package/dist/logic/tools/reference/buildReferenceTo.test.js.map +0 -1
  206. package/dist/logic/tools/reference/buildUniqueKeyTo.d.ts +0 -5
  207. package/dist/logic/tools/reference/buildUniqueKeyTo.js +0 -40
  208. package/dist/logic/tools/reference/buildUniqueKeyTo.js.map +0 -1
  209. package/dist/logic/tools/reference/defineReferenceClassOf.d.ts +0 -5
  210. package/dist/logic/tools/reference/defineReferenceClassOf.js +0 -25
  211. package/dist/logic/tools/reference/defineReferenceClassOf.js.map +0 -1
  212. package/dist/logic/tools/reference/defineReferenceKeyConstituentsOf.d.ts +0 -13
  213. package/dist/logic/tools/reference/defineReferenceKeyConstituentsOf.js +0 -36
  214. package/dist/logic/tools/reference/defineReferenceKeyConstituentsOf.js.map +0 -1
  215. package/dist/logic/tools/reference/getByReference.d.ts +0 -15
  216. package/dist/logic/tools/reference/getByReference.js +0 -55
  217. package/dist/logic/tools/reference/getByReference.js.map +0 -1
  218. package/dist/logic/tools/reference/getByReference.test.js +0 -92
  219. package/dist/logic/tools/reference/getByReference.test.js.map +0 -1
  220. package/dist/logic/tools/reference/getByReferencedPrimaryKey.d.ts +0 -6
  221. package/dist/logic/tools/reference/getByReferencedPrimaryKey.js +0 -17
  222. package/dist/logic/tools/reference/getByReferencedPrimaryKey.js.map +0 -1
  223. package/dist/logic/tools/reference/getByReferencedUniqueKey.d.ts +0 -7
  224. package/dist/logic/tools/reference/getByReferencedUniqueKey.js +0 -42
  225. package/dist/logic/tools/reference/getByReferencedUniqueKey.js.map +0 -1
  226. package/dist/logic/tools/reference/getPrimaryKeyByReference.d.ts +0 -15
  227. package/dist/logic/tools/reference/getPrimaryKeyByReference.js +0 -36
  228. package/dist/logic/tools/reference/getPrimaryKeyByReference.js.map +0 -1
  229. package/dist/logic/tools/reference/getReferenceTo.d.ts +0 -18
  230. package/dist/logic/tools/reference/getReferenceTo.js +0 -55
  231. package/dist/logic/tools/reference/getReferenceTo.js.map +0 -1
  232. package/dist/logic/tools/reference/getReferenceTo.test.js +0 -95
  233. package/dist/logic/tools/reference/getReferenceTo.test.js.map +0 -1
  234. package/dist/logic/tools/reference/getUniqueKeyByReference.d.ts +0 -15
  235. package/dist/logic/tools/reference/getUniqueKeyByReference.js +0 -36
  236. package/dist/logic/tools/reference/getUniqueKeyByReference.js.map +0 -1
  237. package/dist/logic/tools/reference/isPrimaryKeyReference.d.ts +0 -6
  238. package/dist/logic/tools/reference/isPrimaryKeyReference.js +0 -7
  239. package/dist/logic/tools/reference/isPrimaryKeyReference.js.map +0 -1
  240. package/dist/logic/tools/reference/isUniqueKeyReference.d.ts +0 -6
  241. package/dist/logic/tools/reference/isUniqueKeyReference.js +0 -7
  242. package/dist/logic/tools/reference/isUniqueKeyReference.js.map +0 -1
  243. /package/dist/{logic/actions/propose/proposeChangeForResource.test.d.ts → contract/cli/apply.integration.test.d.ts} +0 -0
  244. /package/dist/{logic/tools/compare/castReferenceToGrokableString.test.d.ts → contract/cli/plan.integration.test.d.ts} +0 -0
  245. /package/dist/{logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.test.d.ts → domain.objects/ContextDeclastruct.test.d.ts} +0 -0
  246. /package/dist/{logic/tools/compare/resolveReferenceToCommonComparableForm.test.d.ts → domain.objects/DeclastructChange.test.d.ts} +0 -0
  247. /package/dist/{logic/tools/compare/resolveReferencesToCommonComparableForm.test.d.ts → domain.objects/DeclastructDao.test.d.ts} +0 -0
  248. /package/dist/{logic/tools/reference/buildReferenceTo.test.d.ts → domain.objects/DeclastructPlan.test.d.ts} +0 -0
  249. /package/dist/{logic/tools/reference/getByReference.test.d.ts → domain.objects/DeclastructProvider.test.d.ts} +0 -0
  250. /package/dist/{logic/tools/reference/getReferenceTo.test.d.ts → domain.objects/IsoTimestamp.test.d.ts} +0 -0
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.defineReferenceKeyConstituentsOf = exports.CanNotReferenceDeclaredResourceClassError = void 0;
4
- class CanNotReferenceDeclaredResourceClassError extends Error {
5
- constructor({ class: ofClass, reason, }) {
6
- super(`
7
- Can not reference declared resource of class '${ofClass.name}'. Instances of the class '${ofClass.name}' can not be referenced because ${reason}.
8
- `.trim());
9
- }
10
- }
11
- exports.CanNotReferenceDeclaredResourceClassError = CanNotReferenceDeclaredResourceClassError;
12
- const isArrayOfStrings = (value) => {
13
- if (!value)
14
- return false;
15
- if (!Array.isArray(value))
16
- return false;
17
- return value.every((element) => typeof element === 'string');
18
- };
19
- const defineReferenceKeyConstituentsOf = ({ class: ofClass, }) => {
20
- if (!isArrayOfStrings(ofClass.primary))
21
- throw new CanNotReferenceDeclaredResourceClassError({
22
- class: ofClass,
23
- reason: `the static property 'primary' was not defined as an array of strings`,
24
- });
25
- if (!isArrayOfStrings(ofClass.unique))
26
- throw new CanNotReferenceDeclaredResourceClassError({
27
- class: ofClass,
28
- reason: `the static property 'unique' was not defined as an array of strings`,
29
- });
30
- return {
31
- primary: ofClass.primary,
32
- unique: ofClass.unique,
33
- };
34
- };
35
- exports.defineReferenceKeyConstituentsOf = defineReferenceKeyConstituentsOf;
36
- //# sourceMappingURL=defineReferenceKeyConstituentsOf.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defineReferenceKeyConstituentsOf.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/defineReferenceKeyConstituentsOf.ts"],"names":[],"mappings":";;;AAEA,MAAa,yCAA0C,SAAQ,KAAK;IAClE,YAAY,EACV,KAAK,EAAE,OAAO,EACd,MAAM,GAIP;QACC,KAAK,CACH;gDAC0C,OAAO,CAAC,IAAI,8BAA8B,OAAO,CAAC,IAAI,mCAAmC,MAAM;KAC1I,CAAC,IAAI,EAAE,CACP,CAAC;IACJ,CAAC;CACF;AAdD,8FAcC;AAED,MAAM,gBAAgB,GAAG,CAAC,KAAU,EAAqB,EAAE;IACzD,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAC;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC;AAC/D,CAAC,CAAC;AAEK,MAAM,gCAAgC,GAAG,CAAC,EAC/C,KAAK,EAAE,OAAO,GAGf,EAAE,EAAE;IACH,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,OAAO,CAAC;QACpC,MAAM,IAAI,yCAAyC,CAAC;YAClD,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,sEAAsE;SAC/E,CAAC,CAAC;IACL,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC;QACnC,MAAM,IAAI,yCAAyC,CAAC;YAClD,KAAK,EAAE,OAAO;YACd,MAAM,EAAE,qEAAqE;SAC9E,CAAC,CAAC;IACL,OAAO;QACL,OAAO,EAAE,OAAO,CAAC,OAAmB;QACpC,MAAM,EAAE,OAAO,CAAC,MAAkB;KACnC,CAAC;AACJ,CAAC,CAAC;AAnBW,QAAA,gCAAgC,oCAmB3C"}
@@ -1,15 +0,0 @@
1
- import { VisualogicContext } from 'visualogic';
2
- import { DeclaredResource } from '../../../domain/DeclaredResource';
3
- import { DeclaredResourceReference } from '../../../domain/DeclaredResourceReference';
4
- import { DeclastructContext } from '../../../domain/DeclastructContext';
5
- export declare class InvalidReferenceError extends Error {
6
- constructor({ reference, }: {
7
- reference: DeclaredResourceReference<any, any, any>;
8
- });
9
- }
10
- /**
11
- * resolves references into the referenced resource
12
- */
13
- export declare const getByReference: <T extends DeclaredResource, P extends keyof T, U extends keyof T>({ reference, }: {
14
- reference: DeclaredResourceReference<T, P, U>;
15
- }, context: DeclastructContext & VisualogicContext) => Promise<Required<T> | null>;
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getByReference = exports.InvalidReferenceError = void 0;
4
- const error_fns_1 = require("@ehmpathy/error-fns");
5
- const domain_objects_1 = require("domain-objects");
6
- const simple_in_memory_cache_1 = require("simple-in-memory-cache");
7
- const with_simple_caching_1 = require("with-simple-caching");
8
- const DeclaredResourceReference_1 = require("../../../domain/DeclaredResourceReference");
9
- const getByReferencedPrimaryKey_1 = require("./getByReferencedPrimaryKey");
10
- const getByReferencedUniqueKey_1 = require("./getByReferencedUniqueKey");
11
- class InvalidReferenceError extends Error {
12
- constructor({ reference, }) {
13
- super(`Invalid reference of '${reference.referenceOf}' detected. Could not find an instance identified by ${JSON.stringify(reference.identifiedBy)}`);
14
- }
15
- }
16
- exports.InvalidReferenceError = InvalidReferenceError;
17
- /**
18
- * resolves references into the referenced resource
19
- */
20
- exports.getByReference = (0, with_simple_caching_1.withSimpleCaching)(
21
- // withLogTrail(
22
- async ({ reference, }, context) => {
23
- // if reference is by primary key, lookup the resource by primary key
24
- if (reference.identifiedBy.key ===
25
- DeclaredResourceReference_1.DeclaredResourceReferenceKeyType.PRIMARY_KEY) {
26
- return await (0, getByReferencedPrimaryKey_1.getByReferencedPrimaryKey)({
27
- referenceOf: reference.referenceOf,
28
- primaryKey: reference.identifiedBy.value,
29
- }, context);
30
- }
31
- // if reference is by primary key, lookup the resource by primary key
32
- if (reference.identifiedBy.key === DeclaredResourceReference_1.DeclaredResourceReferenceKeyType.UNIQUE_KEY) {
33
- return await (0, getByReferencedUniqueKey_1.getByReferencedUniqueKey)({
34
- referenceOf: reference.referenceOf,
35
- uniqueKey: reference.identifiedBy.value,
36
- }, context);
37
- }
38
- // otherwise, resource reference was declared incorrectly. this should not happen due to types
39
- throw new error_fns_1.UnexpectedCodePathError('invalid resource reference declaration', {
40
- reference,
41
- });
42
- },
43
- // {
44
- // name: getResourceNameFromFileName(__filename),
45
- // },
46
- // ),
47
- {
48
- cache: (0, simple_in_memory_cache_1.createCache)({
49
- expiration: { seconds: 60 }, // cache up to 60 sec. no operation will both .get, .set, and .get again (read-after-write) within 60 sec
50
- }),
51
- serialize: {
52
- key: ({ forInput }) => (0, domain_objects_1.serialize)(forInput[0]), // omit the context
53
- },
54
- });
55
- //# sourceMappingURL=getByReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getByReference.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/getByReference.ts"],"names":[],"mappings":";;;AAAA,mDAA8D;AAC9D,mDAA2C;AAC3C,mEAAqD;AAErD,6DAAwD;AAGxD,yFAGmD;AAEnD,2EAAwE;AACxE,yEAAsE;AAEtE,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,EACV,SAAS,GAGV;QACC,KAAK,CACH,yBACE,SAAS,CAAC,WACZ,wDAAwD,IAAI,CAAC,SAAS,CACpE,SAAS,CAAC,YAAY,CACvB,EAAE,CACJ,CAAC;IACJ,CAAC;CACF;AAdD,sDAcC;AAED;;GAEG;AACU,QAAA,cAAc,GAAG,IAAA,uCAAiB;AAC7C,gBAAgB;AAChB,KAAK,EACH,EACE,SAAS,GAGV,EACD,OAA+C,EAClB,EAAE;IAC/B,qEAAqE;IACrE,IACE,SAAS,CAAC,YAAY,CAAC,GAAG;QAC1B,4DAAgC,CAAC,WAAW,EAC5C,CAAC;QACD,OAAO,MAAM,IAAA,qDAAyB,EACpC;YACE,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,UAAU,EAAE,SAAS,CAAC,YAAY,CAAC,KAAK;SACzC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,qEAAqE;IACrE,IACE,SAAS,CAAC,YAAY,CAAC,GAAG,KAAK,4DAAgC,CAAC,UAAU,EAC1E,CAAC;QACD,OAAO,MAAM,IAAA,mDAAwB,EACnC;YACE,WAAW,EAAE,SAAS,CAAC,WAAW;YAClC,SAAS,EAAE,SAAS,CAAC,YAAY,CAAC,KAAK;SACxC,EACD,OAAO,CACR,CAAC;IACJ,CAAC;IAED,8FAA8F;IAC9F,MAAM,IAAI,mCAAuB,CAC/B,wCAAwC,EACxC;QACE,SAAS;KACV,CACF,CAAC;AACJ,CAAC;AACD,IAAI;AACJ,mDAAmD;AACnD,KAAK;AACL,KAAK;AACL;IACE,KAAK,EAAE,IAAA,oCAAW,EAAC;QACjB,UAAU,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,yGAAyG;KACvI,CAAC;IACF,SAAS,EAAE;QACT,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,IAAA,0BAAS,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,mBAAmB;KACnE;CACF,CACF,CAAC"}
@@ -1,92 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const domain_objects_1 = require("domain-objects");
4
- const buildReferenceTo_1 = require("./buildReferenceTo");
5
- const getByReference_1 = require("./getByReference");
6
- const getReferenceTo_1 = require("./getReferenceTo");
7
- const log = console;
8
- class CNCMachine extends domain_objects_1.DomainObject {
9
- }
10
- CNCMachine.primary = ['uuid'];
11
- CNCMachine.unique = ['serialNumber'];
12
- const exampleMachine = new CNCMachine({
13
- uuid: 'de0e34ca-ce61-4884-ace5-093a1a32ff92',
14
- serialNumber: '821',
15
- size: 'big',
16
- location: 'basement',
17
- });
18
- const cncMachineRemoteStateInterface = {
19
- for: CNCMachine.name,
20
- findByPrimary: async ({ uuid }) => {
21
- if (uuid === exampleMachine.uuid)
22
- return exampleMachine;
23
- return null;
24
- },
25
- findByUnique: async ({ serialNumber }) => {
26
- if (serialNumber === exampleMachine.serialNumber)
27
- return exampleMachine;
28
- return null;
29
- },
30
- create: () => Promise.reject(new Error('todo')),
31
- destroy: () => Promise.reject(new Error('todo')),
32
- };
33
- const exampleContext = {
34
- log,
35
- providers: [
36
- {
37
- agentOptions: {},
38
- interfaces: {
39
- [cncMachineRemoteStateInterface.for]: cncMachineRemoteStateInterface,
40
- }, // TODO: fix types to make this assertion not needed
41
- hooks: {},
42
- },
43
- ],
44
- resources: [], // no resources needed in context for this test
45
- };
46
- // todo: remove the declastruct references in favor of domain-object references
47
- describe.skip('getByReference', () => {
48
- it('should be able to find by autogenerated reference', async () => {
49
- const autogeneratedReference = (0, getReferenceTo_1.getRef)(exampleMachine);
50
- const resource = await (0, getByReference_1.getByReference)({
51
- reference: autogeneratedReference,
52
- }, exampleContext);
53
- expect(resource).toBeInstanceOf(CNCMachine);
54
- });
55
- it('should be able to find by manually built primary key reference', async () => {
56
- const primaryKeyReference = (0, buildReferenceTo_1.buildRef)(CNCMachine, {
57
- uuid: exampleMachine.uuid,
58
- });
59
- const resource = await (0, getByReference_1.getByReference)({
60
- reference: primaryKeyReference,
61
- }, exampleContext);
62
- expect(resource).toBeInstanceOf(CNCMachine);
63
- });
64
- it('should be able to find by manually built unique key reference', async () => {
65
- const uniqueKeyReference = (0, buildReferenceTo_1.buildRef)(CNCMachine, {
66
- serialNumber: exampleMachine.serialNumber,
67
- });
68
- const resource = await (0, getByReference_1.getByReference)({
69
- reference: uniqueKeyReference,
70
- }, exampleContext);
71
- expect(resource).toBeInstanceOf(CNCMachine);
72
- });
73
- it('should return null if the resource does not exist in remote state by primary key', async () => {
74
- const primaryKeyReference = (0, buildReferenceTo_1.buildRef)(CNCMachine, {
75
- uuid: '__RANDO_UUID__',
76
- });
77
- const resource = await (0, getByReference_1.getByReference)({
78
- reference: primaryKeyReference,
79
- }, exampleContext);
80
- expect(resource).toEqual(null);
81
- });
82
- it('should return null if the resource does not exist in remote state by unique key', async () => {
83
- const uniqueKeyReference = (0, buildReferenceTo_1.buildRef)(CNCMachine, {
84
- serialNumber: '__RANDO_SERIAL_NUMBER__',
85
- });
86
- const resource = await (0, getByReference_1.getByReference)({
87
- reference: uniqueKeyReference,
88
- }, exampleContext);
89
- expect(resource).toEqual(null);
90
- });
91
- });
92
- //# sourceMappingURL=getByReference.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getByReference.test.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/getByReference.test.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { DeclaredResource } from '../../../domain/DeclaredResource';
2
- import { DeclastructContext } from '../../../domain/DeclastructContext';
3
- export declare const getByReferencedPrimaryKey: <R extends DeclaredResource, P extends keyof R>({ referenceOf, primaryKey, }: {
4
- referenceOf: string;
5
- primaryKey: Required<Pick<R, P>>;
6
- }, context: DeclastructContext) => Promise<Required<R> | null>;
@@ -1,17 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getByReferencedPrimaryKey = void 0;
4
- const getProviderContextFromGlobalContextForResourceClass_1 = require("../provider/getProviderContextFromGlobalContextForResourceClass");
5
- const getProviderResourceRemoteStateInterfaceFromContextForResourceClass_1 = require("../provider/getProviderResourceRemoteStateInterfaceFromContextForResourceClass");
6
- const getByReferencedPrimaryKey = ({ referenceOf, primaryKey, }, context) => {
7
- // lookup the interface
8
- const persistanceInterface = (0, getProviderResourceRemoteStateInterfaceFromContextForResourceClass_1.getProviderResourceRemoteStateInterfaceFromContextForResourceClass)({
9
- resourceClassName: referenceOf,
10
- }, context);
11
- // lookup the provider context
12
- const providerContext = (0, getProviderContextFromGlobalContextForResourceClass_1.getProviderContextFromGlobalContextForResourceClass)({ resourceClassName: referenceOf }, context);
13
- // find by primary
14
- return persistanceInterface.findByPrimary(primaryKey, providerContext);
15
- };
16
- exports.getByReferencedPrimaryKey = getByReferencedPrimaryKey;
17
- //# sourceMappingURL=getByReferencedPrimaryKey.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getByReferencedPrimaryKey.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/getByReferencedPrimaryKey.ts"],"names":[],"mappings":";;;AAEA,yIAAsI;AACtI,uKAAoK;AAE7J,MAAM,yBAAyB,GAAG,CAIvC,EACE,WAAW,EACX,UAAU,GAIX,EACD,OAA2B,EAC3B,EAAE;IACF,uBAAuB;IACvB,MAAM,oBAAoB,GACxB,IAAA,uIAAkE,EAMhE;QACE,iBAAiB,EAAE,WAAW;KAC/B,EACD,OAAO,CACR,CAAC;IAEJ,8BAA8B;IAC9B,MAAM,eAAe,GAAG,IAAA,yGAAmD,EACzE,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAClC,OAAO,CACR,CAAC;IAEF,kBAAkB;IAClB,OAAO,oBAAoB,CAAC,aAAa,CAAC,UAAU,EAAE,eAAe,CAAC,CAAC;AACzE,CAAC,CAAC;AAnCW,QAAA,yBAAyB,6BAmCpC"}
@@ -1,7 +0,0 @@
1
- import { VisualogicContext } from 'visualogic';
2
- import { DeclaredResource } from '../../../domain/DeclaredResource';
3
- import { DeclastructContext } from '../../../domain/DeclastructContext';
4
- export declare const getByReferencedUniqueKey: <R extends DeclaredResource, U extends keyof R>({ referenceOf, uniqueKey, }: {
5
- referenceOf: string;
6
- uniqueKey: Required<Pick<R, U>>;
7
- }, context: DeclastructContext & VisualogicContext) => Promise<Required<R> | null>;
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getByReferencedUniqueKey = void 0;
4
- const getProviderContextFromGlobalContextForResourceClass_1 = require("../provider/getProviderContextFromGlobalContextForResourceClass");
5
- const getProviderResourceRemoteStateInterfaceFromContextForResourceClass_1 = require("../provider/getProviderResourceRemoteStateInterfaceFromContextForResourceClass");
6
- const getByReferencedUniqueKey = async ({ referenceOf, uniqueKey, }, context) => {
7
- // lookup the interface
8
- // const stopwatchOne = startDurationStopwatch(
9
- // {
10
- // for: `getByReferencedUniqueKey.ofClass::${referenceOf}.getInterface`,
11
- // log: { level: LogLevel.INFO, threshold: { milliseconds: 1 } },
12
- // },
13
- // context,
14
- // );
15
- const persistanceInterface = (0, getProviderResourceRemoteStateInterfaceFromContextForResourceClass_1.getProviderResourceRemoteStateInterfaceFromContextForResourceClass)({
16
- resourceClassName: referenceOf,
17
- }, context);
18
- // stopwatchOne.stop();
19
- // lookup the provider context
20
- // const stopwatchTwo = startDurationStopwatch(
21
- // {
22
- // for: `getByReferencedUniqueKey.ofClass::${referenceOf}.getContext`,
23
- // log: { level: LogLevel.INFO, threshold: { milliseconds: 1 } },
24
- // },
25
- // context,
26
- // );
27
- const providerContext = (0, getProviderContextFromGlobalContextForResourceClass_1.getProviderContextFromGlobalContextForResourceClass)({ resourceClassName: referenceOf }, context);
28
- // stopwatchTwo.stop();
29
- // find by unique
30
- // const stopwatchThree = startDurationStopwatch(
31
- // {
32
- // for: `getByReferencedUniqueKey.ofClass::${referenceOf}:persistanceInterface.findByUnique`,
33
- // log: { level: LogLevel.INFO, threshold: { milliseconds: 1 } },
34
- // },
35
- // context,
36
- // );
37
- const result = await persistanceInterface.findByUnique(uniqueKey, providerContext);
38
- // stopwatchThree.stop();
39
- return result;
40
- };
41
- exports.getByReferencedUniqueKey = getByReferencedUniqueKey;
42
- //# sourceMappingURL=getByReferencedUniqueKey.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getByReferencedUniqueKey.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/getByReferencedUniqueKey.ts"],"names":[],"mappings":";;;AAIA,yIAAsI;AACtI,uKAAoK;AAE7J,MAAM,wBAAwB,GAAG,KAAK,EAI3C,EACE,WAAW,EACX,SAAS,GAIV,EACD,OAA+C,EAC/C,EAAE;IACF,uBAAuB;IACvB,+CAA+C;IAC/C,MAAM;IACN,4EAA4E;IAC5E,qEAAqE;IACrE,OAAO;IACP,aAAa;IACb,KAAK;IACL,MAAM,oBAAoB,GACxB,IAAA,uIAAkE,EAMhE;QACE,iBAAiB,EAAE,WAAW;KAC/B,EACD,OAAO,CACR,CAAC;IACJ,uBAAuB;IAEvB,8BAA8B;IAC9B,+CAA+C;IAC/C,MAAM;IACN,0EAA0E;IAC1E,qEAAqE;IACrE,OAAO;IACP,aAAa;IACb,KAAK;IACL,MAAM,eAAe,GAAG,IAAA,yGAAmD,EACzE,EAAE,iBAAiB,EAAE,WAAW,EAAE,EAClC,OAAO,CACR,CAAC;IACF,uBAAuB;IAEvB,iBAAiB;IACjB,iDAAiD;IACjD,MAAM;IACN,iGAAiG;IACjG,qEAAqE;IACrE,OAAO;IACP,aAAa;IACb,KAAK;IACL,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,YAAY,CACpD,SAAS,EACT,eAAe,CAChB,CAAC;IACF,yBAAyB;IACzB,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AA/DW,QAAA,wBAAwB,4BA+DnC"}
@@ -1,15 +0,0 @@
1
- import { VisualogicContext } from 'visualogic';
2
- import { DeclaredResource } from '../../../domain/DeclaredResource';
3
- import { DeclaredResourceReference } from '../../../domain/DeclaredResourceReference';
4
- import { DeclastructContext } from '../../../domain/DeclastructContext';
5
- /**
6
- * tactic: gets the primary key of a resource by reference
7
- * strategy
8
- * - if reference is identified by primary key, then return it
9
- * - if reference is identified by unique key, then get the resource by reference, and build the primary key from it
10
- * usecase
11
- * - speed up unique key resolution by returning it from the reference if already present, preventing redundant downstream calls
12
- */
13
- export declare const getPrimaryKeyByReference: <T extends DeclaredResource, P extends keyof T, U extends keyof T>({ reference, }: {
14
- reference: DeclaredResourceReference<T, P, U>;
15
- }, context: DeclastructContext & VisualogicContext) => Promise<Required<Pick<T, P>>>;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getPrimaryKeyByReference = void 0;
4
- const error_fns_1 = require("@ehmpathy/error-fns");
5
- const error_fns_2 = require("@ehmpathy/error-fns");
6
- const DeclaredResourceReference_1 = require("../../../domain/DeclaredResourceReference");
7
- const buildPrimaryKeyTo_1 = require("./buildPrimaryKeyTo");
8
- const getByReference_1 = require("./getByReference");
9
- /**
10
- * tactic: gets the primary key of a resource by reference
11
- * strategy
12
- * - if reference is identified by primary key, then return it
13
- * - if reference is identified by unique key, then get the resource by reference, and build the primary key from it
14
- * usecase
15
- * - speed up unique key resolution by returning it from the reference if already present, preventing redundant downstream calls
16
- */
17
- const getPrimaryKeyByReference = async ({ reference, }, context) => {
18
- // if reference is by primary key, return the value
19
- if (reference.identifiedBy.key === DeclaredResourceReference_1.DeclaredResourceReferenceKeyType.PRIMARY_KEY)
20
- return reference.identifiedBy.value;
21
- // if reference is by unique key, get the resource by reference and build the primary key from it
22
- if (reference.identifiedBy.key === DeclaredResourceReference_1.DeclaredResourceReferenceKeyType.UNIQUE_KEY) {
23
- const resource = await (0, getByReference_1.getByReference)({ reference }, context);
24
- if (!resource)
25
- throw new error_fns_1.BadRequestError(
26
- // todo: make this a typed error
27
- 'could not find resource by unique-key reference to getPrimaryKeyByReference', { reference });
28
- return (0, buildPrimaryKeyTo_1.buildPrimaryKeyTo)(resource.constructor, resource);
29
- }
30
- // otherwise, resource reference was declared incorrectly. this should not happen due to types
31
- throw new error_fns_2.UnexpectedCodePathError('invalid resource reference declaration', {
32
- reference,
33
- });
34
- };
35
- exports.getPrimaryKeyByReference = getPrimaryKeyByReference;
36
- //# sourceMappingURL=getPrimaryKeyByReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getPrimaryKeyByReference.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/getPrimaryKeyByReference.ts"],"names":[],"mappings":";;;AAAA,mDAAsD;AACtD,mDAA8D;AAI9D,yFAGmD;AAEnD,2DAAwD;AACxD,qDAAkD;AAElD;;;;;;;GAOG;AACI,MAAM,wBAAwB,GAAG,KAAK,EAK3C,EACE,SAAS,GAGV,EACD,OAA+C,EAChB,EAAE;IACjC,mDAAmD;IACnD,IACE,SAAS,CAAC,YAAY,CAAC,GAAG,KAAK,4DAAgC,CAAC,WAAW;QAE3E,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC;IAEtC,iGAAiG;IACjG,IACE,SAAS,CAAC,YAAY,CAAC,GAAG,KAAK,4DAAgC,CAAC,UAAU,EAC1E,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,2BAAe;YACvB,gCAAgC;YAChC,6EAA6E,EAC7E,EAAE,SAAS,EAAE,CACd,CAAC;QACJ,OAAO,IAAA,qCAAiB,EAAC,QAAQ,CAAC,WAAkB,EAAE,QAAQ,CAAC,CAAC;IAClE,CAAC;IAED,8FAA8F;IAC9F,MAAM,IAAI,mCAAuB,CAAC,wCAAwC,EAAE;QAC1E,SAAS;KACV,CAAC,CAAC;AACL,CAAC,CAAC;AApCW,QAAA,wBAAwB,4BAoCnC"}
@@ -1,18 +0,0 @@
1
- import { DomainObject } from 'domain-objects';
2
- import { DeclaredResourceReference } from '../../../domain/DeclaredResourceReference';
3
- export declare class CanNotReferenceDeclaredResourceError extends Error {
4
- constructor({ resource, reason, }: {
5
- resource: DomainObject<any>;
6
- reason: string;
7
- });
8
- }
9
- /**
10
- * returns a reference to a resource
11
- * - uses the primary key if possible
12
- * - uses the unique key otherwise
13
- *
14
- * note
15
- * - this is a convinience wrapper for the function `buildReferenceTo`
16
- */
17
- export declare const getReferenceTo: <T extends DomainObject<any>, P extends keyof T, U extends keyof T>(resource: T) => DeclaredResourceReference<T, P, U>;
18
- export { getReferenceTo as getRef };
@@ -1,55 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getRef = exports.getReferenceTo = exports.CanNotReferenceDeclaredResourceError = void 0;
4
- const domain_objects_1 = require("domain-objects");
5
- const buildReferenceTo_1 = require("./buildReferenceTo");
6
- class CanNotReferenceDeclaredResourceError extends Error {
7
- constructor({ resource, reason, }) {
8
- super(`
9
- Can not reference declared resource ${resource.constructor?.name
10
- ? `of class '${resource.constructor.name}'`
11
- : ''} because ${reason}.
12
-
13
- resource
14
- ${JSON.stringify(resource, null, 2)}
15
- `.trim());
16
- }
17
- }
18
- exports.CanNotReferenceDeclaredResourceError = CanNotReferenceDeclaredResourceError;
19
- /**
20
- * returns a reference to a resource
21
- * - uses the primary key if possible
22
- * - uses the unique key otherwise
23
- *
24
- * note
25
- * - this is a convinience wrapper for the function `buildReferenceTo`
26
- */
27
- const getReferenceTo = (resource) => {
28
- // confirm that it is an instance of a domain object
29
- if (!(resource instanceof domain_objects_1.DomainObject))
30
- throw new CanNotReferenceDeclaredResourceError({
31
- resource,
32
- reason: 'the resource is not an instance of a DomainObject class',
33
- });
34
- // confirm that it is an instance of a domain entity
35
- if (!(resource instanceof domain_objects_1.DomainEntity))
36
- throw new CanNotReferenceDeclaredResourceError({
37
- resource,
38
- reason: 'the resource is not an instance of a DomainEntity class. only Entities have distinct state of their own',
39
- });
40
- // try to build the reference
41
- try {
42
- return (0, buildReferenceTo_1.buildReferenceTo)(resource.constructor, resource);
43
- }
44
- catch (error) {
45
- if (error instanceof buildReferenceTo_1.CanNotBuildReferenceError)
46
- throw new CanNotReferenceDeclaredResourceError({
47
- resource,
48
- reason: 'neither the primary key nor unique key is present in the resource',
49
- });
50
- throw error; // otherwise, forward the error
51
- }
52
- };
53
- exports.getReferenceTo = getReferenceTo;
54
- exports.getRef = exports.getReferenceTo;
55
- //# sourceMappingURL=getReferenceTo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getReferenceTo.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/getReferenceTo.ts"],"names":[],"mappings":";;;AAAA,mDAA4D;AAG5D,yDAG4B;AAE5B,MAAa,oCAAqC,SAAQ,KAAK;IAC7D,YAAY,EACV,QAAQ,EACR,MAAM,GAIP;QACC,KAAK,CACH;sCAEE,QAAQ,CAAC,WAAW,EAAE,IAAI;YACxB,CAAC,CAAC,aAAa,QAAQ,CAAC,WAAW,CAAC,IAAI,GAAG;YAC3C,CAAC,CAAC,EACN,YAAY,MAAM;;;EAGtB,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;KAC9B,CAAC,IAAI,EAAE,CACP,CAAC;IACJ,CAAC;CACF;AArBD,oFAqBC;AACD;;;;;;;GAOG;AACI,MAAM,cAAc,GAAG,CAW5B,QAAW,EACyB,EAAE;IACtC,oDAAoD;IACpD,IAAI,CAAC,CAAC,QAAQ,YAAY,6BAAY,CAAC;QACrC,MAAM,IAAI,oCAAoC,CAAC;YAC7C,QAAQ;YACR,MAAM,EAAE,yDAAyD;SAClE,CAAC,CAAC;IAEL,oDAAoD;IACpD,IAAI,CAAC,CAAC,QAAQ,YAAY,6BAAY,CAAC;QACrC,MAAM,IAAI,oCAAoC,CAAC;YAC7C,QAAQ;YACR,MAAM,EACJ,yGAAyG;SAC5G,CAAC,CAAC;IAEL,6BAA6B;IAC7B,IAAI,CAAC;QACH,OAAO,IAAA,mCAAgB,EAAC,QAAQ,CAAC,WAAkB,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,YAAY,4CAAyB;YAC5C,MAAM,IAAI,oCAAoC,CAAC;gBAC7C,QAAQ;gBACR,MAAM,EACJ,mEAAmE;aACtE,CAAC,CAAC;QACL,MAAM,KAAK,CAAC,CAAC,+BAA+B;IAC9C,CAAC;AACH,CAAC,CAAC;AAxCW,QAAA,cAAc,kBAwCzB;AAEyB,iBA1Cd,sBAAc,CA0CM"}
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const domain_objects_1 = require("domain-objects");
4
- const buildReferenceTo_1 = require("./buildReferenceTo");
5
- const getReferenceTo_1 = require("./getReferenceTo");
6
- // todo: remove the declastruct references in favor of domain-object references
7
- describe.skip('getReferenceTo', () => {
8
- it('should throw a helpful error if the resource is not an instance of a domain object', () => {
9
- try {
10
- (0, getReferenceTo_1.getReferenceTo)({ name: 'bob', age: 21 });
11
- throw new Error('should not reach here');
12
- }
13
- catch (error) {
14
- expect(error).toBeInstanceOf(getReferenceTo_1.CanNotReferenceDeclaredResourceError);
15
- expect(error.message).toContain('resource is not an instance of a');
16
- expect(error).toMatchSnapshot();
17
- }
18
- });
19
- it('should throw a helpful error the class does not have unique key defined', () => {
20
- class CNCMachine extends domain_objects_1.DomainObject {
21
- }
22
- CNCMachine.primary = ['uuid'];
23
- try {
24
- (0, getReferenceTo_1.getReferenceTo)(new CNCMachine({
25
- serialNumber: '821',
26
- size: 'big',
27
- location: 'basement',
28
- }));
29
- throw new Error('should not reach here');
30
- }
31
- catch (error) {
32
- expect(error).toBeInstanceOf(buildReferenceTo_1.CanNotReferenceDeclaredResourceClassError);
33
- expect(error.message).toContain(`the static property 'unique' was not defined as an array of strings`);
34
- expect(error).toMatchSnapshot();
35
- }
36
- });
37
- it('should throw a helpful error the class does not have primary key defined correctly', () => {
38
- class CNCMachine extends domain_objects_1.DomainObject {
39
- }
40
- CNCMachine.primary = 'uuid';
41
- try {
42
- (0, getReferenceTo_1.getReferenceTo)(new CNCMachine({
43
- serialNumber: '821',
44
- size: 'big',
45
- location: 'basement',
46
- }));
47
- throw new Error('should not reach here');
48
- }
49
- catch (error) {
50
- expect(error).toBeInstanceOf(getReferenceTo_1.CanNotReferenceDeclaredResourceError);
51
- expect(error.message).toContain(`the static property 'primary' was not defined as an array of strings`);
52
- expect(error).toMatchSnapshot();
53
- }
54
- });
55
- it('should be able to reference by unique key', () => {
56
- class CNCMachine extends domain_objects_1.DomainObject {
57
- }
58
- CNCMachine.primary = ['uuid'];
59
- CNCMachine.unique = ['serialNumber'];
60
- const reference = (0, getReferenceTo_1.getReferenceTo)(new CNCMachine({
61
- serialNumber: '821',
62
- size: 'big',
63
- location: 'basement',
64
- }));
65
- expect(reference).toEqual({
66
- referenceOf: 'CNCMachine',
67
- identifiedBy: {
68
- key: 'UNIQUE_KEY',
69
- value: { serialNumber: '821' },
70
- },
71
- });
72
- expect(reference).toMatchSnapshot(); // log for viewing
73
- });
74
- it('should reference by primary key if posible', () => {
75
- class CNCMachine extends domain_objects_1.DomainObject {
76
- }
77
- CNCMachine.primary = ['uuid'];
78
- CNCMachine.unique = ['serialNumber'];
79
- const reference = (0, getReferenceTo_1.getReferenceTo)(new CNCMachine({
80
- uuid: 'de0e34ca-ce61-4884-ace5-093a1a32ff92',
81
- serialNumber: '821',
82
- size: 'big',
83
- location: 'basement',
84
- }));
85
- expect(reference).toEqual({
86
- referenceOf: 'CNCMachine',
87
- identifiedBy: {
88
- key: 'PRIMARY_KEY',
89
- value: { uuid: 'de0e34ca-ce61-4884-ace5-093a1a32ff92' },
90
- },
91
- });
92
- expect(reference).toMatchSnapshot(); // log for viewing
93
- });
94
- });
95
- //# sourceMappingURL=getReferenceTo.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getReferenceTo.test.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/getReferenceTo.test.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- import { VisualogicContext } from 'visualogic';
2
- import { DeclaredResource } from '../../../domain/DeclaredResource';
3
- import { DeclaredResourceReference } from '../../../domain/DeclaredResourceReference';
4
- import { DeclastructContext } from '../../../domain/DeclastructContext';
5
- /**
6
- * tactic: gets the unique key of a resource by reference
7
- * strategy
8
- * - if reference is identified by unique key, then return it
9
- * - if reference is identified by primary key, then get the resource by reference, and build the unique key from it
10
- * usecase
11
- * - speed up unique key resolution by returning it from the reference if already present, preventing redundant downstream calls
12
- */
13
- export declare const getUniqueKeyByReference: <T extends DeclaredResource, P extends keyof T, U extends keyof T>({ reference, }: {
14
- reference: DeclaredResourceReference<T, P, U>;
15
- }, context: DeclastructContext & VisualogicContext) => Promise<Required<Pick<T, U>>>;
@@ -1,36 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getUniqueKeyByReference = void 0;
4
- const error_fns_1 = require("@ehmpathy/error-fns");
5
- const error_fns_2 = require("@ehmpathy/error-fns");
6
- const DeclaredResourceReference_1 = require("../../../domain/DeclaredResourceReference");
7
- const buildUniqueKeyTo_1 = require("./buildUniqueKeyTo");
8
- const getByReference_1 = require("./getByReference");
9
- /**
10
- * tactic: gets the unique key of a resource by reference
11
- * strategy
12
- * - if reference is identified by unique key, then return it
13
- * - if reference is identified by primary key, then get the resource by reference, and build the unique key from it
14
- * usecase
15
- * - speed up unique key resolution by returning it from the reference if already present, preventing redundant downstream calls
16
- */
17
- const getUniqueKeyByReference = async ({ reference, }, context) => {
18
- // if reference is by unique key, return the value
19
- if (reference.identifiedBy.key === DeclaredResourceReference_1.DeclaredResourceReferenceKeyType.UNIQUE_KEY)
20
- return reference.identifiedBy.value;
21
- // if reference is by primary key, get the resource by reference and build the primary key from it
22
- if (reference.identifiedBy.key === DeclaredResourceReference_1.DeclaredResourceReferenceKeyType.PRIMARY_KEY) {
23
- const resource = await (0, getByReference_1.getByReference)({ reference }, context);
24
- if (!resource)
25
- throw new error_fns_1.BadRequestError(
26
- // todo: make this a typed error
27
- 'could not find resource by primary-key reference to getUniqueKeyByReference', { reference });
28
- return (0, buildUniqueKeyTo_1.buildUniqueKeyTo)(resource.constructor, resource);
29
- }
30
- // otherwise, resource reference was declared incorrectly. this should not happen due to types
31
- throw new error_fns_2.UnexpectedCodePathError('invalid resource reference declaration', {
32
- reference,
33
- });
34
- };
35
- exports.getUniqueKeyByReference = getUniqueKeyByReference;
36
- //# sourceMappingURL=getUniqueKeyByReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"getUniqueKeyByReference.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/getUniqueKeyByReference.ts"],"names":[],"mappings":";;;AAAA,mDAAsD;AACtD,mDAA8D;AAI9D,yFAGmD;AAEnD,yDAAsD;AACtD,qDAAkD;AAElD;;;;;;;GAOG;AACI,MAAM,uBAAuB,GAAG,KAAK,EAK1C,EACE,SAAS,GAGV,EACD,OAA+C,EAChB,EAAE;IACjC,kDAAkD;IAClD,IACE,SAAS,CAAC,YAAY,CAAC,GAAG,KAAK,4DAAgC,CAAC,UAAU;QAE1E,OAAO,SAAS,CAAC,YAAY,CAAC,KAAK,CAAC;IAEtC,kGAAkG;IAClG,IACE,SAAS,CAAC,YAAY,CAAC,GAAG,KAAK,4DAAgC,CAAC,WAAW,EAC3E,CAAC;QACD,MAAM,QAAQ,GAAG,MAAM,IAAA,+BAAc,EAAC,EAAE,SAAS,EAAE,EAAE,OAAO,CAAC,CAAC;QAC9D,IAAI,CAAC,QAAQ;YACX,MAAM,IAAI,2BAAe;YACvB,gCAAgC;YAChC,6EAA6E,EAC7E,EAAE,SAAS,EAAE,CACd,CAAC;QACJ,OAAO,IAAA,mCAAgB,EAAC,QAAQ,CAAC,WAAkB,EAAE,QAAQ,CAAC,CAAC;IACjE,CAAC;IAED,8FAA8F;IAC9F,MAAM,IAAI,mCAAuB,CAAC,wCAAwC,EAAE;QAC1E,SAAS;KACV,CAAC,CAAC;AACL,CAAC,CAAC;AApCW,QAAA,uBAAuB,2BAoClC"}
@@ -1,6 +0,0 @@
1
- import { DeclaredResourceReference, DeclaredResourceReferenceKeyType } from '../../../domain/DeclaredResourceReference';
2
- export declare const isPrimaryKeyReference: <T, P extends keyof T, U extends keyof T>(ref: DeclaredResourceReference<T, P, U>) => ref is DeclaredResourceReference<T, P, U> & {
3
- identifiedBy: {
4
- key: DeclaredResourceReferenceKeyType.PRIMARY_KEY;
5
- };
6
- };
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isPrimaryKeyReference = void 0;
4
- const DeclaredResourceReference_1 = require("../../../domain/DeclaredResourceReference");
5
- const isPrimaryKeyReference = (ref) => ref.identifiedBy.key === DeclaredResourceReference_1.DeclaredResourceReferenceKeyType.PRIMARY_KEY;
6
- exports.isPrimaryKeyReference = isPrimaryKeyReference;
7
- //# sourceMappingURL=isPrimaryKeyReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isPrimaryKeyReference.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/isPrimaryKeyReference.ts"],"names":[],"mappings":";;;AAAA,yFAGmD;AAE5C,MAAM,qBAAqB,GAAG,CAWnC,GAAuC,EAGvC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,KAAK,4DAAgC,CAAC,WAAW,CAAC;AAd9D,QAAA,qBAAqB,yBAcyC"}