declastruct 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (253) 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 +48 -28
  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/index.d.ts +0 -1
  135. package/dist/index.js +0 -18
  136. package/dist/index.js.map +0 -1
  137. package/dist/logic/actions/execute/canUpdateResource.d.ts +0 -5
  138. package/dist/logic/actions/execute/canUpdateResource.js +0 -12
  139. package/dist/logic/actions/execute/canUpdateResource.js.map +0 -1
  140. package/dist/logic/actions/execute/executeProposal.d.ts +0 -5
  141. package/dist/logic/actions/execute/executeProposal.js +0 -52
  142. package/dist/logic/actions/execute/executeProposal.js.map +0 -1
  143. package/dist/logic/actions/propose/getColoredActionToken.d.ts +0 -4
  144. package/dist/logic/actions/propose/getColoredActionToken.js +0 -22
  145. package/dist/logic/actions/propose/getColoredActionToken.js.map +0 -1
  146. package/dist/logic/actions/propose/getColoredProposalTitle.d.ts +0 -4
  147. package/dist/logic/actions/propose/getColoredProposalTitle.js +0 -34
  148. package/dist/logic/actions/propose/getColoredProposalTitle.js.map +0 -1
  149. package/dist/logic/actions/propose/proposeChangeForResource.d.ts +0 -7
  150. package/dist/logic/actions/propose/proposeChangeForResource.js +0 -65
  151. package/dist/logic/actions/propose/proposeChangeForResource.js.map +0 -1
  152. package/dist/logic/actions/propose/proposeChangeForResource.test.js +0 -48
  153. package/dist/logic/actions/propose/proposeChangeForResource.test.js.map +0 -1
  154. package/dist/logic/commands/command.apply.d.ts +0 -8
  155. package/dist/logic/commands/command.apply.js +0 -77
  156. package/dist/logic/commands/command.apply.js.map +0 -1
  157. package/dist/logic/commands/command.plan.d.ts +0 -13
  158. package/dist/logic/commands/command.plan.js +0 -155
  159. package/dist/logic/commands/command.plan.js.map +0 -1
  160. package/dist/logic/commands/execute.d.ts +0 -15
  161. package/dist/logic/commands/execute.js +0 -63
  162. package/dist/logic/commands/execute.js.map +0 -1
  163. package/dist/logic/tools/compare/castReferenceToGrokableString.d.ts +0 -16
  164. package/dist/logic/tools/compare/castReferenceToGrokableString.js +0 -66
  165. package/dist/logic/tools/compare/castReferenceToGrokableString.js.map +0 -1
  166. package/dist/logic/tools/compare/castReferenceToGrokableString.test.js +0 -111
  167. package/dist/logic/tools/compare/castReferenceToGrokableString.test.js.map +0 -1
  168. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.d.ts +0 -11
  169. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.js +0 -61
  170. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.js.map +0 -1
  171. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.test.js +0 -31
  172. package/dist/logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.test.js.map +0 -1
  173. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.d.ts +0 -21
  174. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.js +0 -53
  175. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.js.map +0 -1
  176. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.test.js +0 -31
  177. package/dist/logic/tools/compare/resolveReferenceToCommonComparableForm.test.js.map +0 -1
  178. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.d.ts +0 -10
  179. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.js +0 -41
  180. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.js.map +0 -1
  181. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.test.js +0 -174
  182. package/dist/logic/tools/compare/resolveReferencesToCommonComparableForm.test.js.map +0 -1
  183. package/dist/logic/tools/context/createDeclastructContext.d.ts +0 -10
  184. package/dist/logic/tools/context/createDeclastructContext.js +0 -12
  185. package/dist/logic/tools/context/createDeclastructContext.js.map +0 -1
  186. package/dist/logic/tools/context/destroyDeclastructContext.d.ts +0 -4
  187. package/dist/logic/tools/context/destroyDeclastructContext.js +0 -10
  188. package/dist/logic/tools/context/destroyDeclastructContext.js.map +0 -1
  189. package/dist/logic/tools/provider/castProviderContextToGlobalContext.d.ts +0 -4
  190. package/dist/logic/tools/provider/castProviderContextToGlobalContext.js +0 -10
  191. package/dist/logic/tools/provider/castProviderContextToGlobalContext.js.map +0 -1
  192. package/dist/logic/tools/provider/getProviderContextFromGlobalContextForResourceClass.d.ts +0 -13
  193. package/dist/logic/tools/provider/getProviderContextFromGlobalContextForResourceClass.js +0 -29
  194. package/dist/logic/tools/provider/getProviderContextFromGlobalContextForResourceClass.js.map +0 -1
  195. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceExecutionDependenciesForResource.d.ts +0 -13
  196. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceExecutionDependenciesForResource.js +0 -24
  197. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceExecutionDependenciesForResource.js.map +0 -1
  198. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceFromContextForResourceClass.d.ts +0 -10
  199. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceFromContextForResourceClass.js +0 -21
  200. package/dist/logic/tools/provider/getProviderResourceRemoteStateInterfaceFromContextForResourceClass.js.map +0 -1
  201. package/dist/logic/tools/reference/buildPrimaryKeyTo.d.ts +0 -5
  202. package/dist/logic/tools/reference/buildPrimaryKeyTo.js +0 -40
  203. package/dist/logic/tools/reference/buildPrimaryKeyTo.js.map +0 -1
  204. package/dist/logic/tools/reference/buildReferenceTo.d.ts +0 -28
  205. package/dist/logic/tools/reference/buildReferenceTo.js +0 -92
  206. package/dist/logic/tools/reference/buildReferenceTo.js.map +0 -1
  207. package/dist/logic/tools/reference/buildReferenceTo.test.js +0 -119
  208. package/dist/logic/tools/reference/buildReferenceTo.test.js.map +0 -1
  209. package/dist/logic/tools/reference/buildUniqueKeyTo.d.ts +0 -5
  210. package/dist/logic/tools/reference/buildUniqueKeyTo.js +0 -40
  211. package/dist/logic/tools/reference/buildUniqueKeyTo.js.map +0 -1
  212. package/dist/logic/tools/reference/defineReferenceClassOf.d.ts +0 -5
  213. package/dist/logic/tools/reference/defineReferenceClassOf.js +0 -25
  214. package/dist/logic/tools/reference/defineReferenceClassOf.js.map +0 -1
  215. package/dist/logic/tools/reference/defineReferenceKeyConstituentsOf.d.ts +0 -13
  216. package/dist/logic/tools/reference/defineReferenceKeyConstituentsOf.js +0 -36
  217. package/dist/logic/tools/reference/defineReferenceKeyConstituentsOf.js.map +0 -1
  218. package/dist/logic/tools/reference/getByReference.d.ts +0 -15
  219. package/dist/logic/tools/reference/getByReference.js +0 -55
  220. package/dist/logic/tools/reference/getByReference.js.map +0 -1
  221. package/dist/logic/tools/reference/getByReference.test.js +0 -92
  222. package/dist/logic/tools/reference/getByReference.test.js.map +0 -1
  223. package/dist/logic/tools/reference/getByReferencedPrimaryKey.d.ts +0 -6
  224. package/dist/logic/tools/reference/getByReferencedPrimaryKey.js +0 -17
  225. package/dist/logic/tools/reference/getByReferencedPrimaryKey.js.map +0 -1
  226. package/dist/logic/tools/reference/getByReferencedUniqueKey.d.ts +0 -7
  227. package/dist/logic/tools/reference/getByReferencedUniqueKey.js +0 -42
  228. package/dist/logic/tools/reference/getByReferencedUniqueKey.js.map +0 -1
  229. package/dist/logic/tools/reference/getPrimaryKeyByReference.d.ts +0 -15
  230. package/dist/logic/tools/reference/getPrimaryKeyByReference.js +0 -36
  231. package/dist/logic/tools/reference/getPrimaryKeyByReference.js.map +0 -1
  232. package/dist/logic/tools/reference/getReferenceTo.d.ts +0 -18
  233. package/dist/logic/tools/reference/getReferenceTo.js +0 -55
  234. package/dist/logic/tools/reference/getReferenceTo.js.map +0 -1
  235. package/dist/logic/tools/reference/getReferenceTo.test.js +0 -95
  236. package/dist/logic/tools/reference/getReferenceTo.test.js.map +0 -1
  237. package/dist/logic/tools/reference/getUniqueKeyByReference.d.ts +0 -15
  238. package/dist/logic/tools/reference/getUniqueKeyByReference.js +0 -36
  239. package/dist/logic/tools/reference/getUniqueKeyByReference.js.map +0 -1
  240. package/dist/logic/tools/reference/isPrimaryKeyReference.d.ts +0 -6
  241. package/dist/logic/tools/reference/isPrimaryKeyReference.js +0 -7
  242. package/dist/logic/tools/reference/isPrimaryKeyReference.js.map +0 -1
  243. package/dist/logic/tools/reference/isUniqueKeyReference.d.ts +0 -6
  244. package/dist/logic/tools/reference/isUniqueKeyReference.js +0 -7
  245. package/dist/logic/tools/reference/isUniqueKeyReference.js.map +0 -1
  246. /package/dist/{logic/actions/propose/proposeChangeForResource.test.d.ts → contract/cli/apply.integration.test.d.ts} +0 -0
  247. /package/dist/{logic/tools/compare/castReferenceToGrokableString.test.d.ts → contract/cli/plan.integration.test.d.ts} +0 -0
  248. /package/dist/{logic/tools/compare/detectDifferenceBetweenDesiredAndRemoteStateOfResource.test.d.ts → domain.objects/ContextDeclastruct.test.d.ts} +0 -0
  249. /package/dist/{logic/tools/compare/resolveReferenceToCommonComparableForm.test.d.ts → domain.objects/DeclastructChange.test.d.ts} +0 -0
  250. /package/dist/{logic/tools/compare/resolveReferencesToCommonComparableForm.test.d.ts → domain.objects/DeclastructDao.test.d.ts} +0 -0
  251. /package/dist/{logic/tools/reference/buildReferenceTo.test.d.ts → domain.objects/DeclastructPlan.test.d.ts} +0 -0
  252. /package/dist/{logic/tools/reference/getByReference.test.d.ts → domain.objects/DeclastructProvider.test.d.ts} +0 -0
  253. /package/dist/{logic/tools/reference/getReferenceTo.test.d.ts → domain.objects/IsoTimestamp.test.d.ts} +0 -0
@@ -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"}
@@ -1,6 +0,0 @@
1
- import { DeclaredResourceReference, DeclaredResourceReferenceKeyType } from '../../../domain/DeclaredResourceReference';
2
- export declare const isUniqueKeyReference: <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.UNIQUE_KEY;
5
- };
6
- };
@@ -1,7 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isUniqueKeyReference = void 0;
4
- const DeclaredResourceReference_1 = require("../../../domain/DeclaredResourceReference");
5
- const isUniqueKeyReference = (ref) => ref.identifiedBy.key === DeclaredResourceReference_1.DeclaredResourceReferenceKeyType.UNIQUE_KEY;
6
- exports.isUniqueKeyReference = isUniqueKeyReference;
7
- //# sourceMappingURL=isUniqueKeyReference.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"isUniqueKeyReference.js","sourceRoot":"","sources":["../../../../src/logic/tools/reference/isUniqueKeyReference.ts"],"names":[],"mappings":";;;AAAA,yFAGmD;AAE5C,MAAM,oBAAoB,GAAG,CAWlC,GAAuC,EAGvC,EAAE,CAAC,GAAG,CAAC,YAAY,CAAC,GAAG,KAAK,4DAAgC,CAAC,UAAU,CAAC;AAd7D,QAAA,oBAAoB,wBAcyC"}