@nest-yalc-2/omnikernel-module 2.2.0 → 2.2.2

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 (315) hide show
  1. package/LICENSE +661 -0
  2. package/package.json +30 -17
  3. package/src/base/omni-base.entity.js +42 -0
  4. package/src/base/omni-base.entity.js.map +1 -0
  5. package/src/base/omni-external-ref.entity.js +61 -0
  6. package/src/base/omni-external-ref.entity.js.map +1 -0
  7. package/src/base/omni-named.entity.js +24 -0
  8. package/src/base/omni-named.entity.js.map +1 -0
  9. package/src/base/omni-record.entity.js +60 -0
  10. package/src/base/omni-record.entity.js.map +1 -0
  11. package/src/base/omni-relation.entity.js +80 -0
  12. package/src/base/omni-relation.entity.js.map +1 -0
  13. package/src/index.js +50 -0
  14. package/src/index.js.map +1 -0
  15. package/src/omni-collection-kind.enum.js +10 -0
  16. package/src/omni-collection-kind.enum.js.map +1 -0
  17. package/src/omni-collection.backend.js +11 -0
  18. package/src/omni-collection.backend.js.map +1 -0
  19. package/{dist/src → src}/omni-collection.dto.d.ts +1 -1
  20. package/src/omni-collection.dto.js +170 -0
  21. package/src/omni-collection.dto.js.map +1 -0
  22. package/{dist/src → src}/omni-collection.dto.ts +1 -1
  23. package/src/omni-collection.entity.js +30 -0
  24. package/src/omni-collection.entity.js.map +1 -0
  25. package/{dist/src → src}/omni-collection.service.js +4 -8
  26. package/src/omni-collection.service.js.map +1 -0
  27. package/src/omni-document-kind.enum.js +12 -0
  28. package/src/omni-document-kind.enum.js.map +1 -0
  29. package/src/omni-document.backend.js +11 -0
  30. package/src/omni-document.backend.js.map +1 -0
  31. package/{dist/src → src}/omni-document.dto.d.ts +1 -1
  32. package/src/omni-document.dto.js +199 -0
  33. package/src/omni-document.dto.js.map +1 -0
  34. package/{dist/src → src}/omni-document.dto.ts +1 -1
  35. package/src/omni-document.entity.js +42 -0
  36. package/src/omni-document.entity.js.map +1 -0
  37. package/{dist/src → src}/omni-document.service.js +4 -8
  38. package/src/omni-document.service.js.map +1 -0
  39. package/src/omni-dto.helpers.js +7 -0
  40. package/src/omni-dto.helpers.js.map +1 -0
  41. package/{dist/src → src}/omni-extension-projection.definition.js +24 -29
  42. package/src/omni-extension-projection.definition.js.map +1 -0
  43. package/{dist/src → src}/omni-extension-projection.resource.d.ts +1 -1
  44. package/src/omni-extension-projection.resource.js +124 -0
  45. package/src/omni-extension-projection.resource.js.map +1 -0
  46. package/{dist/src → src}/omni-extension-projection.resource.ts +1 -1
  47. package/{dist/src → src}/omni-extension-projection.service.js +15 -19
  48. package/src/omni-extension-projection.service.js.map +1 -0
  49. package/src/omni-external-ref-binding.validator.js +30 -0
  50. package/src/omni-external-ref-binding.validator.js.map +1 -0
  51. package/src/omni-external-ref-internal-type.enum.js +11 -0
  52. package/src/omni-external-ref-internal-type.enum.js.map +1 -0
  53. package/src/omni-external-ref.backend.js +15 -0
  54. package/src/omni-external-ref.backend.js.map +1 -0
  55. package/{dist/src → src}/omni-external-ref.dto.d.ts +1 -1
  56. package/src/omni-external-ref.dto.js +126 -0
  57. package/src/omni-external-ref.dto.js.map +1 -0
  58. package/{dist/src → src}/omni-external-ref.dto.ts +1 -1
  59. package/{dist/src → src}/omni-external-ref.service.js +11 -15
  60. package/src/omni-external-ref.service.js.map +1 -0
  61. package/{dist/src → src}/omni-migration.js +22 -27
  62. package/src/omni-migration.js.map +1 -0
  63. package/src/omni-named.backend.js +9 -0
  64. package/src/omni-named.backend.js.map +1 -0
  65. package/{dist/src → src}/omni-named.dto.d.ts +1 -1
  66. package/src/omni-named.dto.js +80 -0
  67. package/src/omni-named.dto.js.map +1 -0
  68. package/{dist/src → src}/omni-named.dto.ts +1 -1
  69. package/{dist/src → src}/omni-projection.catalog.js +18 -23
  70. package/src/omni-projection.catalog.js.map +1 -0
  71. package/src/omni-projection.lifecycle.js +2 -0
  72. package/src/omni-record-status.enum.js +11 -0
  73. package/src/omni-record-status.enum.js.map +1 -0
  74. package/src/omni-record.backend.js +9 -0
  75. package/src/omni-record.backend.js.map +1 -0
  76. package/{dist/src → src}/omni-record.dto.d.ts +1 -1
  77. package/src/omni-record.dto.js +155 -0
  78. package/src/omni-record.dto.js.map +1 -0
  79. package/{dist/src → src}/omni-record.dto.ts +1 -1
  80. package/{dist/src → src}/omni-record.service.js +6 -10
  81. package/src/omni-record.service.js.map +1 -0
  82. package/src/omni-relation-kind.contract.js +29 -0
  83. package/src/omni-relation-kind.contract.js.map +1 -0
  84. package/src/omni-relation-kind.enum.js +12 -0
  85. package/src/omni-relation-kind.enum.js.map +1 -0
  86. package/{dist/src → src}/omni-relation-projection.definition.js +7 -12
  87. package/src/omni-relation-projection.definition.js.map +1 -0
  88. package/{dist/src → src}/omni-relation-projection.resource.d.ts +1 -1
  89. package/src/omni-relation-projection.resource.js +196 -0
  90. package/src/omni-relation-projection.resource.js.map +1 -0
  91. package/{dist/src → src}/omni-relation-projection.resource.ts +2 -2
  92. package/{dist/src → src}/omni-relation-projection.service.js +44 -48
  93. package/src/omni-relation-projection.service.js.map +1 -0
  94. package/src/omni-relation-semantics.js +27 -0
  95. package/src/omni-relation-semantics.js.map +1 -0
  96. package/src/omni-relation-status.enum.js +11 -0
  97. package/src/omni-relation-status.enum.js.map +1 -0
  98. package/src/omni-relation.backend.js +13 -0
  99. package/src/omni-relation.backend.js.map +1 -0
  100. package/{dist/src → src}/omni-relation.dto.d.ts +1 -1
  101. package/src/omni-relation.dto.js +139 -0
  102. package/src/omni-relation.dto.js.map +1 -0
  103. package/{dist/src → src}/omni-relation.dto.ts +1 -1
  104. package/{dist/src → src}/omni-relation.service.js +14 -18
  105. package/src/omni-relation.service.js.map +1 -0
  106. package/{dist/src → src}/omni-scope.js +14 -18
  107. package/src/omni-scope.js.map +1 -0
  108. package/{dist/src → src}/omni-scoped.backend.d.ts +1 -1
  109. package/src/omni-scoped.backend.js +43 -0
  110. package/src/omni-scoped.backend.js.map +1 -0
  111. package/{dist/src → src}/omni-scoped.backend.ts +1 -1
  112. package/{dist/src → src}/omni-scoped.repository.js +1 -5
  113. package/src/omni-scoped.repository.js.map +1 -0
  114. package/{dist/src → src}/omni-scoped.service.js +17 -21
  115. package/src/omni-scoped.service.js.map +1 -0
  116. package/{dist/src → src}/omnikernel.diagnostics.js +1 -4
  117. package/src/omnikernel.diagnostics.js.map +1 -0
  118. package/src/omnikernel.module.js +79 -0
  119. package/src/omnikernel.module.js.map +1 -0
  120. package/src/omnikernel.query.service.js +80 -0
  121. package/src/omnikernel.query.service.js.map +1 -0
  122. package/dist/src/base/omni-base.entity.js +0 -45
  123. package/dist/src/base/omni-base.entity.js.map +0 -1
  124. package/dist/src/base/omni-external-ref.entity.js +0 -64
  125. package/dist/src/base/omni-external-ref.entity.js.map +0 -1
  126. package/dist/src/base/omni-named.entity.js +0 -27
  127. package/dist/src/base/omni-named.entity.js.map +0 -1
  128. package/dist/src/base/omni-record.entity.js +0 -63
  129. package/dist/src/base/omni-record.entity.js.map +0 -1
  130. package/dist/src/base/omni-relation.entity.js +0 -83
  131. package/dist/src/base/omni-relation.entity.js.map +0 -1
  132. package/dist/src/index.js +0 -53
  133. package/dist/src/index.js.map +0 -1
  134. package/dist/src/omni-collection-kind.enum.js +0 -13
  135. package/dist/src/omni-collection-kind.enum.js.map +0 -1
  136. package/dist/src/omni-collection.backend.js +0 -15
  137. package/dist/src/omni-collection.backend.js.map +0 -1
  138. package/dist/src/omni-collection.dto.js +0 -173
  139. package/dist/src/omni-collection.dto.js.map +0 -1
  140. package/dist/src/omni-collection.entity.js +0 -33
  141. package/dist/src/omni-collection.entity.js.map +0 -1
  142. package/dist/src/omni-collection.service.js.map +0 -1
  143. package/dist/src/omni-document-kind.enum.js +0 -15
  144. package/dist/src/omni-document-kind.enum.js.map +0 -1
  145. package/dist/src/omni-document.backend.js +0 -15
  146. package/dist/src/omni-document.backend.js.map +0 -1
  147. package/dist/src/omni-document.dto.js +0 -202
  148. package/dist/src/omni-document.dto.js.map +0 -1
  149. package/dist/src/omni-document.entity.js +0 -45
  150. package/dist/src/omni-document.entity.js.map +0 -1
  151. package/dist/src/omni-document.service.js.map +0 -1
  152. package/dist/src/omni-dto.helpers.js +0 -10
  153. package/dist/src/omni-dto.helpers.js.map +0 -1
  154. package/dist/src/omni-extension-projection.definition.js.map +0 -1
  155. package/dist/src/omni-extension-projection.resource.js +0 -127
  156. package/dist/src/omni-extension-projection.resource.js.map +0 -1
  157. package/dist/src/omni-extension-projection.service.js.map +0 -1
  158. package/dist/src/omni-external-ref-binding.validator.js +0 -34
  159. package/dist/src/omni-external-ref-binding.validator.js.map +0 -1
  160. package/dist/src/omni-external-ref-internal-type.enum.js +0 -14
  161. package/dist/src/omni-external-ref-internal-type.enum.js.map +0 -1
  162. package/dist/src/omni-external-ref.backend.js +0 -19
  163. package/dist/src/omni-external-ref.backend.js.map +0 -1
  164. package/dist/src/omni-external-ref.dto.js +0 -129
  165. package/dist/src/omni-external-ref.dto.js.map +0 -1
  166. package/dist/src/omni-external-ref.service.js.map +0 -1
  167. package/dist/src/omni-migration.js.map +0 -1
  168. package/dist/src/omni-named.backend.js +0 -13
  169. package/dist/src/omni-named.backend.js.map +0 -1
  170. package/dist/src/omni-named.dto.js +0 -83
  171. package/dist/src/omni-named.dto.js.map +0 -1
  172. package/dist/src/omni-projection.catalog.js.map +0 -1
  173. package/dist/src/omni-projection.lifecycle.js +0 -3
  174. package/dist/src/omni-record-status.enum.js +0 -14
  175. package/dist/src/omni-record-status.enum.js.map +0 -1
  176. package/dist/src/omni-record.backend.js +0 -13
  177. package/dist/src/omni-record.backend.js.map +0 -1
  178. package/dist/src/omni-record.dto.js +0 -158
  179. package/dist/src/omni-record.dto.js.map +0 -1
  180. package/dist/src/omni-record.service.js.map +0 -1
  181. package/dist/src/omni-relation-kind.contract.js +0 -33
  182. package/dist/src/omni-relation-kind.contract.js.map +0 -1
  183. package/dist/src/omni-relation-kind.enum.js +0 -15
  184. package/dist/src/omni-relation-kind.enum.js.map +0 -1
  185. package/dist/src/omni-relation-projection.definition.js.map +0 -1
  186. package/dist/src/omni-relation-projection.resource.js +0 -201
  187. package/dist/src/omni-relation-projection.resource.js.map +0 -1
  188. package/dist/src/omni-relation-projection.service.js.map +0 -1
  189. package/dist/src/omni-relation-semantics.js +0 -34
  190. package/dist/src/omni-relation-semantics.js.map +0 -1
  191. package/dist/src/omni-relation-status.enum.js +0 -14
  192. package/dist/src/omni-relation-status.enum.js.map +0 -1
  193. package/dist/src/omni-relation.backend.js +0 -17
  194. package/dist/src/omni-relation.backend.js.map +0 -1
  195. package/dist/src/omni-relation.dto.js +0 -142
  196. package/dist/src/omni-relation.dto.js.map +0 -1
  197. package/dist/src/omni-relation.service.js.map +0 -1
  198. package/dist/src/omni-scope.js.map +0 -1
  199. package/dist/src/omni-scoped.backend.js +0 -47
  200. package/dist/src/omni-scoped.backend.js.map +0 -1
  201. package/dist/src/omni-scoped.repository.js.map +0 -1
  202. package/dist/src/omni-scoped.service.js.map +0 -1
  203. package/dist/src/omnikernel.diagnostics.js.map +0 -1
  204. package/dist/src/omnikernel.module.js +0 -82
  205. package/dist/src/omnikernel.module.js.map +0 -1
  206. package/dist/src/omnikernel.query.service.js +0 -85
  207. package/dist/src/omnikernel.query.service.js.map +0 -1
  208. /package/{dist/src → src}/__tests__/omni-collection.entity.spec.ts +0 -0
  209. /package/{dist/src → src}/__tests__/omni-collection.service.spec.ts +0 -0
  210. /package/{dist/src → src}/__tests__/omni-document.entity.spec.ts +0 -0
  211. /package/{dist/src → src}/__tests__/omni-document.service.spec.ts +0 -0
  212. /package/{dist/src → src}/__tests__/omni-extension-projection-constraints.spec.ts +0 -0
  213. /package/{dist/src → src}/__tests__/omni-extension-projection.registration.spec.ts +0 -0
  214. /package/{dist/src → src}/__tests__/omni-extension-projection.service.spec.ts +0 -0
  215. /package/{dist/src → src}/__tests__/omni-external-ref.entity.spec.ts +0 -0
  216. /package/{dist/src → src}/__tests__/omni-external-ref.service.spec.ts +0 -0
  217. /package/{dist/src → src}/__tests__/omni-named.entity.spec.ts +0 -0
  218. /package/{dist/src → src}/__tests__/omni-record.entity.spec.ts +0 -0
  219. /package/{dist/src → src}/__tests__/omni-record.service.spec.ts +0 -0
  220. /package/{dist/src → src}/__tests__/omni-relation-semantics.spec.ts +0 -0
  221. /package/{dist/src → src}/__tests__/omni-relation.entity.spec.ts +0 -0
  222. /package/{dist/src → src}/__tests__/omni-scope-substrate.spec.ts +0 -0
  223. /package/{dist/src → src}/__tests__/omni-scoped.backend.spec.ts +0 -0
  224. /package/{dist/src → src}/__tests__/omni-scoped.service.spec.ts +0 -0
  225. /package/{dist/src → src}/__tests__/omnikernel.diagnostics.spec.ts +0 -0
  226. /package/{dist/src → src}/__tests__/omnikernel.module.spec.ts +0 -0
  227. /package/{dist/src → src}/__tests__/omnikernel.persistence.spec.ts +0 -0
  228. /package/{dist/src → src}/__tests__/omnikernel.public-api.spec.ts +0 -0
  229. /package/{dist/src → src}/__tests__/omnikernel.query.service.spec.ts +0 -0
  230. /package/{dist/src → src}/__tests__/tsconfig.json +0 -0
  231. /package/{dist/src → src}/base/omni-base.entity.d.ts +0 -0
  232. /package/{dist/src → src}/base/omni-base.entity.ts +0 -0
  233. /package/{dist/src → src}/base/omni-external-ref.entity.d.ts +0 -0
  234. /package/{dist/src → src}/base/omni-external-ref.entity.ts +0 -0
  235. /package/{dist/src → src}/base/omni-named.entity.d.ts +0 -0
  236. /package/{dist/src → src}/base/omni-named.entity.ts +0 -0
  237. /package/{dist/src → src}/base/omni-record.entity.d.ts +0 -0
  238. /package/{dist/src → src}/base/omni-record.entity.ts +0 -0
  239. /package/{dist/src → src}/base/omni-relation.entity.d.ts +0 -0
  240. /package/{dist/src → src}/base/omni-relation.entity.ts +0 -0
  241. /package/{dist/src → src}/index.d.ts +0 -0
  242. /package/{dist/src → src}/index.ts +0 -0
  243. /package/{dist/src → src}/omni-collection-kind.enum.d.ts +0 -0
  244. /package/{dist/src → src}/omni-collection-kind.enum.ts +0 -0
  245. /package/{dist/src → src}/omni-collection.backend.d.ts +0 -0
  246. /package/{dist/src → src}/omni-collection.backend.ts +0 -0
  247. /package/{dist/src → src}/omni-collection.entity.d.ts +0 -0
  248. /package/{dist/src → src}/omni-collection.entity.ts +0 -0
  249. /package/{dist/src → src}/omni-collection.service.d.ts +0 -0
  250. /package/{dist/src → src}/omni-collection.service.ts +0 -0
  251. /package/{dist/src → src}/omni-document-kind.enum.d.ts +0 -0
  252. /package/{dist/src → src}/omni-document-kind.enum.ts +0 -0
  253. /package/{dist/src → src}/omni-document.backend.d.ts +0 -0
  254. /package/{dist/src → src}/omni-document.backend.ts +0 -0
  255. /package/{dist/src → src}/omni-document.entity.d.ts +0 -0
  256. /package/{dist/src → src}/omni-document.entity.ts +0 -0
  257. /package/{dist/src → src}/omni-document.service.d.ts +0 -0
  258. /package/{dist/src → src}/omni-document.service.ts +0 -0
  259. /package/{dist/src → src}/omni-dto.helpers.d.ts +0 -0
  260. /package/{dist/src → src}/omni-dto.helpers.ts +0 -0
  261. /package/{dist/src → src}/omni-extension-projection.definition.d.ts +0 -0
  262. /package/{dist/src → src}/omni-extension-projection.definition.ts +0 -0
  263. /package/{dist/src → src}/omni-extension-projection.service.d.ts +0 -0
  264. /package/{dist/src → src}/omni-extension-projection.service.ts +0 -0
  265. /package/{dist/src → src}/omni-external-ref-binding.validator.d.ts +0 -0
  266. /package/{dist/src → src}/omni-external-ref-binding.validator.ts +0 -0
  267. /package/{dist/src → src}/omni-external-ref-internal-type.enum.d.ts +0 -0
  268. /package/{dist/src → src}/omni-external-ref-internal-type.enum.ts +0 -0
  269. /package/{dist/src → src}/omni-external-ref.backend.d.ts +0 -0
  270. /package/{dist/src → src}/omni-external-ref.backend.ts +0 -0
  271. /package/{dist/src → src}/omni-external-ref.service.d.ts +0 -0
  272. /package/{dist/src → src}/omni-external-ref.service.ts +0 -0
  273. /package/{dist/src → src}/omni-migration.d.ts +0 -0
  274. /package/{dist/src → src}/omni-migration.ts +0 -0
  275. /package/{dist/src → src}/omni-named.backend.d.ts +0 -0
  276. /package/{dist/src → src}/omni-named.backend.ts +0 -0
  277. /package/{dist/src → src}/omni-projection.catalog.d.ts +0 -0
  278. /package/{dist/src → src}/omni-projection.catalog.ts +0 -0
  279. /package/{dist/src → src}/omni-projection.lifecycle.d.ts +0 -0
  280. /package/{dist/src → src}/omni-projection.lifecycle.js.map +0 -0
  281. /package/{dist/src → src}/omni-projection.lifecycle.ts +0 -0
  282. /package/{dist/src → src}/omni-record-status.enum.d.ts +0 -0
  283. /package/{dist/src → src}/omni-record-status.enum.ts +0 -0
  284. /package/{dist/src → src}/omni-record.backend.d.ts +0 -0
  285. /package/{dist/src → src}/omni-record.backend.ts +0 -0
  286. /package/{dist/src → src}/omni-record.service.d.ts +0 -0
  287. /package/{dist/src → src}/omni-record.service.ts +0 -0
  288. /package/{dist/src → src}/omni-relation-kind.contract.d.ts +0 -0
  289. /package/{dist/src → src}/omni-relation-kind.contract.ts +0 -0
  290. /package/{dist/src → src}/omni-relation-kind.enum.d.ts +0 -0
  291. /package/{dist/src → src}/omni-relation-kind.enum.ts +0 -0
  292. /package/{dist/src → src}/omni-relation-projection.definition.d.ts +0 -0
  293. /package/{dist/src → src}/omni-relation-projection.definition.ts +0 -0
  294. /package/{dist/src → src}/omni-relation-projection.service.d.ts +0 -0
  295. /package/{dist/src → src}/omni-relation-projection.service.ts +0 -0
  296. /package/{dist/src → src}/omni-relation-semantics.d.ts +0 -0
  297. /package/{dist/src → src}/omni-relation-semantics.ts +0 -0
  298. /package/{dist/src → src}/omni-relation-status.enum.d.ts +0 -0
  299. /package/{dist/src → src}/omni-relation-status.enum.ts +0 -0
  300. /package/{dist/src → src}/omni-relation.backend.d.ts +0 -0
  301. /package/{dist/src → src}/omni-relation.backend.ts +0 -0
  302. /package/{dist/src → src}/omni-relation.service.d.ts +0 -0
  303. /package/{dist/src → src}/omni-relation.service.ts +0 -0
  304. /package/{dist/src → src}/omni-scope.d.ts +0 -0
  305. /package/{dist/src → src}/omni-scope.ts +0 -0
  306. /package/{dist/src → src}/omni-scoped.repository.d.ts +0 -0
  307. /package/{dist/src → src}/omni-scoped.repository.ts +0 -0
  308. /package/{dist/src → src}/omni-scoped.service.d.ts +0 -0
  309. /package/{dist/src → src}/omni-scoped.service.ts +0 -0
  310. /package/{dist/src → src}/omnikernel.diagnostics.d.ts +0 -0
  311. /package/{dist/src → src}/omnikernel.diagnostics.ts +0 -0
  312. /package/{dist/src → src}/omnikernel.module.d.ts +0 -0
  313. /package/{dist/src → src}/omnikernel.module.ts +0 -0
  314. /package/{dist/src → src}/omnikernel.query.service.d.ts +0 -0
  315. /package/{dist/src → src}/omnikernel.query.service.ts +0 -0
@@ -0,0 +1,124 @@
1
+ import { Scope } from '@nestjs/common';
2
+ import { getDataSourceToken } from '@nestjs/typeorm';
3
+ import { createProjectionDialect, createProjectionGraphqlTypes, CrudGenResourceFactory, getServiceToken, } from '@nest-yalc-2/crud-gen';
4
+ import { GQLDataLoader, getDataloaderToken, getFn, } from '@nest-yalc-2/data-loader';
5
+ import { YalcEventService } from '@nest-yalc-2/event-manager';
6
+ import { OmniRecordEntity } from './base/omni-record.entity.js';
7
+ import { OmniExtensionProjectionService } from './omni-extension-projection.service.js';
8
+ import { OmniScopeContext } from './omni-scope.js';
9
+ function dialectFor(dataSource) {
10
+ if (dataSource.options.type !== 'sqlite' &&
11
+ dataSource.options.type !== 'postgres') {
12
+ throw new TypeError('Omni extension projections require a SQLite or PostgreSQL data source.');
13
+ }
14
+ return createProjectionDialect(dataSource.options.type);
15
+ }
16
+ function defaultGraphqlNames(apiModel) {
17
+ return {
18
+ object: apiModel.name,
19
+ create: `${apiModel.name}CreateInput`,
20
+ patch: `${apiModel.name}UpdateInput`,
21
+ conditions: `${apiModel.name}Condition`,
22
+ };
23
+ }
24
+ export function createOmniExtensionProjectionRegistration(options) {
25
+ const graphqlTypes = createProjectionGraphqlTypes(options.definition, options.graphql?.names ?? defaultGraphqlNames(options.apiModel));
26
+ const serviceToken = getServiceToken(options.apiModel);
27
+ const dataLoaderToken = getDataloaderToken(options.apiModel);
28
+ const resource = CrudGenResourceFactory({
29
+ entityModel: options.apiModel,
30
+ backend: false,
31
+ graphql: {
32
+ resolver: {
33
+ dto: graphqlTypes.object,
34
+ input: {
35
+ create: graphqlTypes.create,
36
+ update: graphqlTypes.patch,
37
+ conditions: graphqlTypes.conditions,
38
+ },
39
+ ...(options.graphql?.prefix ? { prefix: options.graphql.prefix } : {}),
40
+ ...(options.moduleRefToken !== undefined
41
+ ? { moduleRefToken: options.moduleRefToken }
42
+ : {}),
43
+ queries: {
44
+ getResource: { idName: options.definition.identity.column },
45
+ },
46
+ },
47
+ serviceToken,
48
+ dataLoaderToken,
49
+ },
50
+ rest: {
51
+ dto: graphqlTypes.object,
52
+ serialize: true,
53
+ ...(options.rest?.path ? { path: options.rest.path } : {}),
54
+ idField: options.definition.identity.column,
55
+ serviceToken,
56
+ },
57
+ });
58
+ const reader = Object.freeze({
59
+ type: 'extension',
60
+ id: options.definition.id,
61
+ entity: options.entity,
62
+ definition: options.definition,
63
+ });
64
+ const serviceProvider = options.lifecycle && options.catalog
65
+ ? {
66
+ provide: serviceToken,
67
+ scope: Scope.REQUEST,
68
+ useFactory: (dataSource, scope, events, lifecycle, catalog) => new OmniExtensionProjectionService(dataSource.getRepository(options.entity), dataSource.getRepository(OmniRecordEntity), dataSource, scope, dialectFor(dataSource), events, options.definition, lifecycle, catalog),
69
+ inject: [
70
+ getDataSourceToken(options.dbConnection),
71
+ OmniScopeContext,
72
+ YalcEventService,
73
+ options.lifecycle.token,
74
+ options.catalog.token,
75
+ ],
76
+ }
77
+ : options.lifecycle
78
+ ? {
79
+ provide: serviceToken,
80
+ scope: Scope.REQUEST,
81
+ useFactory: (dataSource, scope, events, lifecycle) => new OmniExtensionProjectionService(dataSource.getRepository(options.entity), dataSource.getRepository(OmniRecordEntity), dataSource, scope, dialectFor(dataSource), events, options.definition, lifecycle),
82
+ inject: [
83
+ getDataSourceToken(options.dbConnection),
84
+ OmniScopeContext,
85
+ YalcEventService,
86
+ options.lifecycle.token,
87
+ ],
88
+ }
89
+ : {
90
+ provide: serviceToken,
91
+ scope: Scope.REQUEST,
92
+ useFactory: (dataSource, scope, events) => new OmniExtensionProjectionService(dataSource.getRepository(options.entity), dataSource.getRepository(OmniRecordEntity), dataSource, scope, dialectFor(dataSource), events, options.definition, undefined),
93
+ inject: [
94
+ getDataSourceToken(options.dbConnection),
95
+ OmniScopeContext,
96
+ YalcEventService,
97
+ ],
98
+ };
99
+ const providers = [
100
+ serviceProvider,
101
+ {
102
+ provide: dataLoaderToken,
103
+ scope: Scope.REQUEST,
104
+ useFactory: (service, scope) => new GQLDataLoader(getFn(service), 'guid', undefined, {
105
+ cacheKeyFn: (key) => scope.cacheKey(key),
106
+ }),
107
+ inject: [serviceToken, OmniScopeContext],
108
+ },
109
+ ...resource.providers,
110
+ ];
111
+ return Object.freeze({
112
+ definition: options.definition,
113
+ entities: Object.freeze([options.entity]),
114
+ reservedRecordKinds: Object.freeze([options.definition.owner.kind]),
115
+ reader,
116
+ graphqlTypes: Object.freeze(graphqlTypes),
117
+ resource,
118
+ controllers: Object.freeze([...resource.controllers]),
119
+ providers: Object.freeze(providers),
120
+ serviceToken,
121
+ dataLoaderToken,
122
+ });
123
+ }
124
+ //# sourceMappingURL=omni-extension-projection.resource.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omni-extension-projection.resource.js","sourceRoot":"","sources":["omni-extension-projection.resource.ts"],"names":[],"mappings":"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"}
@@ -14,7 +14,7 @@ import {
14
14
  getFn,
15
15
  } from '@nest-yalc-2/data-loader';
16
16
  import { YalcEventService } from '@nest-yalc-2/event-manager';
17
- import type { ClassType } from '@node-yalc/types/globals';
17
+ import type { ClassType } from '@node-yalc/types/globals.js';
18
18
  import type { DataSource, EntityTarget, ObjectLiteral } from 'typeorm';
19
19
  import { OmniRecordEntity } from './base/omni-record.entity.js';
20
20
  import type { OmniExtensionProjectionDefinition } from './omni-extension-projection.definition.js';
@@ -1,10 +1,7 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OmniExtensionProjectionService = void 0;
4
- const crud_gen_1 = require("@nest-yalc-2/crud-gen");
5
- const typeorm_1 = require("typeorm");
6
- const omni_record_entity_js_1 = require("./base/omni-record.entity.js");
7
- const omni_projection_catalog_js_1 = require("./omni-projection.catalog.js");
1
+ import { PROJECTION_INTEGER_MAX, ProjectionResourceService, } from '@nest-yalc-2/crud-gen';
2
+ import { In, IsNull, } from 'typeorm';
3
+ import { OmniRecordEntity } from './base/omni-record.entity.js';
4
+ import { createOmniProjectionReaderCatalog, } from './omni-projection.catalog.js';
8
5
  function hasOwn(input, field) {
9
6
  return Object.prototype.hasOwnProperty.call(input, field);
10
7
  }
@@ -20,7 +17,7 @@ function isRetryableTransactionError(error) {
20
17
  code === 'SQLITE_BUSY' ||
21
18
  code === 'SQLITE_BUSY_SNAPSHOT');
22
19
  }
23
- class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceService {
20
+ export class OmniExtensionProjectionService extends ProjectionResourceService {
24
21
  constructor(extensionRepository, ownerRepository, dataSource, scope, dialect, events, omniDefinition, lifecycle, readerCatalog) {
25
22
  super(extensionRepository, scope, dialect, events, omniDefinition);
26
23
  this.ownerRepository = ownerRepository;
@@ -45,11 +42,11 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
45
42
  const owners = await this.ownerRepository.find({
46
43
  where: {
47
44
  scopeId: this.scope.scopeId,
48
- guid: (0, typeorm_1.In)(guids),
45
+ guid: In(guids),
49
46
  kind: this.omniDefinition.owner.kind,
50
47
  payloadSchemaId: this.omniDefinition.owner.schema.id,
51
48
  payloadSchemaVersion: this.omniDefinition.owner.schema.version,
52
- deletedAt: (0, typeorm_1.IsNull)(),
49
+ deletedAt: IsNull(),
53
50
  },
54
51
  });
55
52
  const ownersByGuid = new Map(owners.map((owner) => [owner.guid, owner]));
@@ -82,7 +79,7 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
82
79
  readers: this.readers(manager),
83
80
  input,
84
81
  });
85
- await manager.getRepository(omni_record_entity_js_1.OmniRecordEntity).save(owner);
82
+ await manager.getRepository(OmniRecordEntity).save(owner);
86
83
  const saved = await manager
87
84
  .getRepository(this.repository.target)
88
85
  .save(extension);
@@ -102,12 +99,12 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
102
99
  if (typeof expectedRevision !== 'number' ||
103
100
  !Number.isInteger(expectedRevision) ||
104
101
  expectedRevision < 1 ||
105
- expectedRevision >= crud_gen_1.PROJECTION_INTEGER_MAX) {
106
- this.invalid(`expectedRevision must be an integer between 1 and ${crud_gen_1.PROJECTION_INTEGER_MAX - 1}.`);
102
+ expectedRevision >= PROJECTION_INTEGER_MAX) {
103
+ this.invalid(`expectedRevision must be an integer between 1 and ${PROJECTION_INTEGER_MAX - 1}.`);
107
104
  }
108
105
  const patch = this.createValuePatch(guid, input);
109
106
  return this.mutate(async (manager) => {
110
- const owners = manager.getRepository(omni_record_entity_js_1.OmniRecordEntity);
107
+ const owners = manager.getRepository(OmniRecordEntity);
111
108
  const extensions = manager.getRepository(this.repository.target);
112
109
  const currentOwner = await this.findOwner(guid, manager);
113
110
  const currentExtension = await extensions.findOne({
@@ -188,7 +185,7 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
188
185
  input: {},
189
186
  current: this.merge(extension, owner),
190
187
  });
191
- const result = await manager.getRepository(omni_record_entity_js_1.OmniRecordEntity).delete({
188
+ const result = await manager.getRepository(OmniRecordEntity).delete({
192
189
  scopeId: this.scope.scopeId,
193
190
  guid,
194
191
  kind: this.omniDefinition.owner.kind,
@@ -221,7 +218,7 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
221
218
  }
222
219
  readers(manager) {
223
220
  return (this.readerCatalog ??
224
- (0, omni_projection_catalog_js_1.createOmniProjectionReaderCatalog)([
221
+ createOmniProjectionReaderCatalog([
225
222
  {
226
223
  type: 'extension',
227
224
  id: this.omniDefinition.id,
@@ -291,14 +288,14 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
291
288
  return owner ? this.merge(extension, owner) : null;
292
289
  }
293
290
  async findOwner(guid, manager) {
294
- return (manager?.getRepository(omni_record_entity_js_1.OmniRecordEntity) ?? this.ownerRepository).findOne({
291
+ return (manager?.getRepository(OmniRecordEntity) ?? this.ownerRepository).findOne({
295
292
  where: {
296
293
  scopeId: this.scope.scopeId,
297
294
  guid,
298
295
  kind: this.omniDefinition.owner.kind,
299
296
  payloadSchemaId: this.omniDefinition.owner.schema.id,
300
297
  payloadSchemaVersion: this.omniDefinition.owner.schema.version,
301
- deletedAt: (0, typeorm_1.IsNull)(),
298
+ deletedAt: IsNull(),
302
299
  },
303
300
  });
304
301
  }
@@ -328,5 +325,4 @@ class OmniExtensionProjectionService extends crud_gen_1.ProjectionResourceServic
328
325
  });
329
326
  }
330
327
  }
331
- exports.OmniExtensionProjectionService = OmniExtensionProjectionService;
332
328
  //# sourceMappingURL=omni-extension-projection.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omni-extension-projection.service.js","sourceRoot":"","sources":["omni-extension-projection.service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import { BadRequestException, NotFoundException } from '@nestjs/common';
2
+ import { IsNull } from 'typeorm';
3
+ import { OmniExternalRefInternalType } from './omni-external-ref-internal-type.enum.js';
4
+ export class OmniExternalRefBindingValidator {
5
+ constructor(recordRepository, scope) {
6
+ this.recordRepository = recordRepository;
7
+ this.scope = scope;
8
+ }
9
+ async assertTarget(binding) {
10
+ if (binding.internalType !== OmniExternalRefInternalType.Record) {
11
+ throw new BadRequestException('Omni external record binding must declare internalType record.');
12
+ }
13
+ if (typeof binding.internalId !== 'string' ||
14
+ binding.internalId.trim().length === 0) {
15
+ throw new BadRequestException('Omni external reference internalId must be a non-empty record identity.');
16
+ }
17
+ const record = await this.recordRepository.findOne({
18
+ where: {
19
+ scopeId: this.scope.scopeId,
20
+ guid: binding.internalId,
21
+ deletedAt: IsNull(),
22
+ },
23
+ });
24
+ if (!record) {
25
+ throw new NotFoundException('Omni external reference target was not found in this scope.');
26
+ }
27
+ return record;
28
+ }
29
+ }
30
+ //# sourceMappingURL=omni-external-ref-binding.validator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omni-external-ref-binding.validator.js","sourceRoot":"","sources":["omni-external-ref-binding.validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,MAAM,EAAmB,MAAM,SAAS,CAAC;AAElD,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAaxF,MAAM,OAAO,+BAA+B;IAC1C,YACmB,gBAA8C,EAC9C,KAAgB;QADhB,qBAAgB,GAAhB,gBAAgB,CAA8B;QAC9C,UAAK,GAAL,KAAK,CAAW;IAChC,CAAC;IAEJ,KAAK,CAAC,YAAY,CAChB,OAA+B;QAE/B,IAAI,OAAO,CAAC,YAAY,KAAK,2BAA2B,CAAC,MAAM,EAAE,CAAC;YAChE,MAAM,IAAI,mBAAmB,CAC3B,gEAAgE,CACjE,CAAC;QACJ,CAAC;QACD,IACE,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;YACtC,OAAO,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC,MAAM,KAAK,CAAC,EACtC,CAAC;YACD,MAAM,IAAI,mBAAmB,CAC3B,yEAAyE,CAC1E,CAAC;QACJ,CAAC;QACD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC;YACjD,KAAK,EAAE;gBACL,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;gBAC3B,IAAI,EAAE,OAAO,CAAC,UAAU;gBACxB,SAAS,EAAE,MAAM,EAAE;aACpB;SACF,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,iBAAiB,CACzB,6DAA6D,CAC9D,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import { registerEnumType } from '@nestjs/graphql';
2
+ export var OmniExternalRefInternalType;
3
+ (function (OmniExternalRefInternalType) {
4
+ OmniExternalRefInternalType["Record"] = "record";
5
+ OmniExternalRefInternalType["Document"] = "document";
6
+ OmniExternalRefInternalType["Collection"] = "collection";
7
+ })(OmniExternalRefInternalType || (OmniExternalRefInternalType = {}));
8
+ registerEnumType(OmniExternalRefInternalType, {
9
+ name: 'OmniExternalRefInternalType',
10
+ });
11
+ //# sourceMappingURL=omni-external-ref-internal-type.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omni-external-ref-internal-type.enum.js","sourceRoot":"","sources":["omni-external-ref-internal-type.enum.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAN,IAAY,2BAIX;AAJD,WAAY,2BAA2B;IACrC,gDAAiB,CAAA;IACjB,oDAAqB,CAAA;IACrB,wDAAyB,CAAA;AAC3B,CAAC,EAJW,2BAA2B,KAA3B,2BAA2B,QAItC;AAED,gBAAgB,CAAC,2BAA2B,EAAE;IAC5C,IAAI,EAAE,6BAA6B;CACpC,CAAC,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { getRepositoryToken } from '@nestjs/typeorm';
2
+ import { OmniRecordEntity } from './base/omni-record.entity.js';
3
+ import { OmniExternalRefEntity } from './base/omni-external-ref.entity.js';
4
+ import { OmniExternalRefBindingValidator } from './omni-external-ref-binding.validator.js';
5
+ import { OmniExternalRefService } from './omni-external-ref.service.js';
6
+ import { omniBackendServiceToken, omniScopedBackendProvidersFactory, } from './omni-scoped.backend.js';
7
+ export const omniExternalRefBackendProvidersFactory = (dbConnection) => omniScopedBackendProvidersFactory({
8
+ entityModel: OmniExternalRefEntity,
9
+ dbConnection,
10
+ serviceToken: omniBackendServiceToken(OmniExternalRefService),
11
+ serviceProvider: OmniExternalRefService,
12
+ additionalInject: [getRepositoryToken(OmniRecordEntity, dbConnection)],
13
+ createService: (repository, scope, options, recordRepository) => new OmniExternalRefService(repository, scope, options.deletion.externalRef, new OmniExternalRefBindingValidator(recordRepository, scope)),
14
+ });
15
+ //# sourceMappingURL=omni-external-ref.backend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omni-external-ref.backend.js","sourceRoot":"","sources":["omni-external-ref.backend.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,+BAA+B,EAAE,MAAM,0CAA0C,CAAC;AAC3F,OAAO,EAAE,sBAAsB,EAAE,MAAM,gCAAgC,CAAC;AACxE,OAAO,EACL,uBAAuB,EACvB,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAElC,MAAM,CAAC,MAAM,sCAAsC,GAAG,CAAC,YAAoB,EAAE,EAAE,CAC7E,iCAAiC,CAAwB;IACvD,WAAW,EAAE,qBAAqB;IAClC,YAAY;IACZ,YAAY,EAAE,uBAAuB,CAAC,sBAAsB,CAAC;IAC7D,eAAe,EAAE,sBAAsB;IACvC,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,gBAAgB,EAAE,YAAY,CAAC,CAAC;IACtE,aAAa,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,CAC9D,IAAI,sBAAsB,CACxB,UAAU,EACV,KAAK,EACL,OAAO,CAAC,QAAQ,CAAC,WAAW,EAC5B,IAAI,+BAA+B,CAAC,gBAAyB,EAAE,KAAK,CAAC,CACtE;CACJ,CAAC,CAAC"}
@@ -14,7 +14,7 @@ export declare class OmniExternalRefType extends OmniExternalRefEntity {
14
14
  payloadSchemaId?: string | null;
15
15
  payloadSchemaVersion?: number | null;
16
16
  }
17
- declare const OmniExternalRefCreateInput_base: import("@nestjs/common").Type<Omit<OmniExternalRefType, "createdAt" | "updatedAt" | "revision">>;
17
+ declare const OmniExternalRefCreateInput_base: import("@nestjs/common").Type<Omit<OmniExternalRefType, "revision" | "createdAt" | "updatedAt">>;
18
18
  export declare class OmniExternalRefCreateInput extends OmniExternalRefCreateInput_base {
19
19
  }
20
20
  declare const OmniExternalRefCondition_base: import("@nestjs/common").Type<Partial<OmniExternalRefCreateInput>>;
@@ -0,0 +1,126 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { InputType, Int, ObjectType, OmitType, PartialType, } from '@nestjs/graphql';
3
+ import { ModelField, ModelObject, } from '@nest-yalc-2/crud-gen/object.decorator.js';
4
+ import { UUIDScalar } from '@nest-yalc-2/graphql/scalars/uuid.scalar.js';
5
+ import returnValue from '@node-yalc/utils/returnValue.js';
6
+ import { IsEnum, IsInt, IsObject, IsOptional, IsString, IsUUID, MaxLength, } from 'class-validator';
7
+ import { GraphQLJSONObject } from 'graphql-type-json';
8
+ import { OmniExternalRefEntity } from './base/omni-external-ref.entity.js';
9
+ import { assignOmniPublicDto } from './omni-dto.helpers.js';
10
+ import { OmniExternalRefInternalType } from './omni-external-ref-internal-type.enum.js';
11
+ let OmniExternalRefType = class OmniExternalRefType extends OmniExternalRefEntity {
12
+ constructor(data) {
13
+ super();
14
+ if (data) {
15
+ assignOmniPublicDto(this, data);
16
+ }
17
+ }
18
+ };
19
+ __decorate([
20
+ ModelField({ gqlType: returnValue(UUIDScalar), isRequired: true }),
21
+ IsUUID(),
22
+ __metadata("design:type", String)
23
+ ], OmniExternalRefType.prototype, "guid", void 0);
24
+ __decorate([
25
+ ModelField({ gqlType: returnValue(Int) }),
26
+ IsInt(),
27
+ __metadata("design:type", Number)
28
+ ], OmniExternalRefType.prototype, "revision", void 0);
29
+ __decorate([
30
+ ModelField({ gqlType: returnValue(OmniExternalRefInternalType) }),
31
+ IsEnum(OmniExternalRefInternalType),
32
+ __metadata("design:type", String)
33
+ ], OmniExternalRefType.prototype, "internalType", void 0);
34
+ __decorate([
35
+ ModelField({ gqlType: returnValue(UUIDScalar), isRequired: true }),
36
+ IsUUID(),
37
+ __metadata("design:type", String)
38
+ ], OmniExternalRefType.prototype, "internalId", void 0);
39
+ __decorate([
40
+ ModelField({ gqlType: returnValue(String) }),
41
+ IsString(),
42
+ MaxLength(128),
43
+ __metadata("design:type", String)
44
+ ], OmniExternalRefType.prototype, "provider", void 0);
45
+ __decorate([
46
+ ModelField({
47
+ gqlType: returnValue(String),
48
+ gqlOptions: { nullable: true },
49
+ }),
50
+ IsOptional(),
51
+ IsString(),
52
+ MaxLength(128),
53
+ __metadata("design:type", Object)
54
+ ], OmniExternalRefType.prototype, "account", void 0);
55
+ __decorate([
56
+ ModelField({
57
+ gqlType: returnValue(String),
58
+ gqlOptions: { nullable: true },
59
+ }),
60
+ IsOptional(),
61
+ IsString(),
62
+ MaxLength(128),
63
+ __metadata("design:type", Object)
64
+ ], OmniExternalRefType.prototype, "container", void 0);
65
+ __decorate([
66
+ ModelField({ gqlType: returnValue(String) }),
67
+ IsString(),
68
+ MaxLength(255),
69
+ __metadata("design:type", String)
70
+ ], OmniExternalRefType.prototype, "externalId", void 0);
71
+ __decorate([
72
+ ModelField({
73
+ gqlType: returnValue(GraphQLJSONObject),
74
+ gqlOptions: { nullable: true },
75
+ }),
76
+ IsOptional(),
77
+ IsObject(),
78
+ __metadata("design:type", Object)
79
+ ], OmniExternalRefType.prototype, "payload", void 0);
80
+ __decorate([
81
+ ModelField({
82
+ gqlType: returnValue(String),
83
+ gqlOptions: { nullable: true },
84
+ }),
85
+ IsOptional(),
86
+ IsString(),
87
+ MaxLength(128),
88
+ __metadata("design:type", Object)
89
+ ], OmniExternalRefType.prototype, "payloadSchemaId", void 0);
90
+ __decorate([
91
+ ModelField({
92
+ gqlType: returnValue(Int),
93
+ gqlOptions: { nullable: true },
94
+ }),
95
+ IsOptional(),
96
+ IsInt(),
97
+ __metadata("design:type", Object)
98
+ ], OmniExternalRefType.prototype, "payloadSchemaVersion", void 0);
99
+ OmniExternalRefType = __decorate([
100
+ ObjectType(),
101
+ ModelObject(),
102
+ __metadata("design:paramtypes", [Object])
103
+ ], OmniExternalRefType);
104
+ export { OmniExternalRefType };
105
+ let OmniExternalRefCreateInput = class OmniExternalRefCreateInput extends OmitType(OmniExternalRefType, ['createdAt', 'updatedAt', 'revision'], InputType) {
106
+ };
107
+ OmniExternalRefCreateInput = __decorate([
108
+ InputType(),
109
+ ModelObject()
110
+ ], OmniExternalRefCreateInput);
111
+ export { OmniExternalRefCreateInput };
112
+ let OmniExternalRefCondition = class OmniExternalRefCondition extends PartialType(OmniExternalRefCreateInput, InputType) {
113
+ };
114
+ OmniExternalRefCondition = __decorate([
115
+ InputType(),
116
+ ModelObject({ copyFrom: OmniExternalRefType })
117
+ ], OmniExternalRefCondition);
118
+ export { OmniExternalRefCondition };
119
+ let OmniExternalRefUpdateInput = class OmniExternalRefUpdateInput extends PartialType(OmniExternalRefCreateInput, InputType) {
120
+ };
121
+ OmniExternalRefUpdateInput = __decorate([
122
+ InputType(),
123
+ ModelObject({ copyFrom: OmniExternalRefType })
124
+ ], OmniExternalRefUpdateInput);
125
+ export { OmniExternalRefUpdateInput };
126
+ //# sourceMappingURL=omni-external-ref.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omni-external-ref.dto.js","sourceRoot":"","sources":["omni-external-ref.dto.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,7 @@ import {
10
10
  ModelObject,
11
11
  } from '@nest-yalc-2/crud-gen/object.decorator.js';
12
12
  import { UUIDScalar } from '@nest-yalc-2/graphql/scalars/uuid.scalar.js';
13
- import returnValue from '@node-yalc/utils/returnValue';
13
+ import returnValue from '@node-yalc/utils/returnValue.js';
14
14
  import {
15
15
  IsEnum,
16
16
  IsInt,
@@ -1,13 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OmniExternalRefService = void 0;
4
- const common_1 = require("@nestjs/common");
5
- const omni_external_ref_internal_type_enum_js_1 = require("./omni-external-ref-internal-type.enum.js");
6
- const omni_scoped_service_js_1 = require("./omni-scoped.service.js");
1
+ import { ConflictException } from '@nestjs/common';
2
+ import { OmniExternalRefInternalType } from './omni-external-ref-internal-type.enum.js';
3
+ import { OmniScopedService } from './omni-scoped.service.js';
7
4
  function hasOwn(input, key) {
8
5
  return Object.prototype.hasOwnProperty.call(input, key);
9
6
  }
10
- class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService {
7
+ export class OmniExternalRefService extends OmniScopedService {
11
8
  constructor(repository, scopeOrRepositoryWrite, deletion, bindingValidator) {
12
9
  if (!bindingValidator) {
13
10
  throw new TypeError('OmniExternalRefService requires an OmniExternalRefBindingValidator.');
@@ -55,7 +52,7 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
55
52
  if (existing) {
56
53
  if (existing.internalType !== input.internalType ||
57
54
  existing.internalId !== input.internalId) {
58
- throw new common_1.ConflictException('External reference binding is immutable after creation.');
55
+ throw new ConflictException('External reference binding is immutable after creation.');
59
56
  }
60
57
  const { internalType: _internalType, internalId: _internalId, ...update } = this.normalizeExternalIdentity(input);
61
58
  return this.updateEntity({ guid: existing.guid }, update);
@@ -65,14 +62,14 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
65
62
  async syncDocumentReference(internalId, input) {
66
63
  return this.upsertExternalRef({
67
64
  ...input,
68
- internalType: omni_external_ref_internal_type_enum_js_1.OmniExternalRefInternalType.Document,
65
+ internalType: OmniExternalRefInternalType.Document,
69
66
  internalId,
70
67
  });
71
68
  }
72
69
  async syncCollectionReference(internalId, input) {
73
70
  return this.upsertExternalRef({
74
71
  ...input,
75
- internalType: omni_external_ref_internal_type_enum_js_1.OmniExternalRefInternalType.Collection,
72
+ internalType: OmniExternalRefInternalType.Collection,
76
73
  internalId,
77
74
  });
78
75
  }
@@ -89,7 +86,7 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
89
86
  container: normalized.container ?? null,
90
87
  });
91
88
  if (existing) {
92
- throw new common_1.ConflictException('External reference identity already exists in this scope.');
89
+ throw new ConflictException('External reference identity already exists in this scope.');
93
90
  }
94
91
  }
95
92
  return super.createEntity(normalized, findOptions, returnEntity);
@@ -102,9 +99,9 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
102
99
  async assertBinding(input) {
103
100
  if (typeof input.internalId !== 'string' ||
104
101
  input.internalType === undefined) {
105
- throw new common_1.ConflictException('External reference binding requires internalType and internalId.');
102
+ throw new ConflictException('External reference binding requires internalType and internalId.');
106
103
  }
107
- if (input.internalType !== omni_external_ref_internal_type_enum_js_1.OmniExternalRefInternalType.Record) {
104
+ if (input.internalType !== OmniExternalRefInternalType.Record) {
108
105
  return;
109
106
  }
110
107
  await this.bindingValidator.assertTarget({
@@ -114,7 +111,7 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
114
111
  }
115
112
  rejectBindingMutation(input) {
116
113
  if (hasOwn(input, 'internalType') || hasOwn(input, 'internalId')) {
117
- throw new common_1.ConflictException('External reference binding is immutable after creation.');
114
+ throw new ConflictException('External reference binding is immutable after creation.');
118
115
  }
119
116
  }
120
117
  normalizeExternalIdentity(input) {
@@ -129,5 +126,4 @@ class OmniExternalRefService extends omni_scoped_service_js_1.OmniScopedService
129
126
  };
130
127
  }
131
128
  }
132
- exports.OmniExternalRefService = OmniExternalRefService;
133
129
  //# sourceMappingURL=omni-external-ref.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"omni-external-ref.service.js","sourceRoot":"","sources":["omni-external-ref.service.ts"],"names":[],"mappings":"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"}