@things-factory/ops-master 10.1.248 → 10.1.249

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 (429) hide show
  1. package/dist-client/bootstrap.d.ts +19 -0
  2. package/dist-client/bootstrap.js +66 -0
  3. package/dist-client/bootstrap.js.map +1 -0
  4. package/dist-client/index.d.ts +17 -0
  5. package/dist-client/index.js +21 -0
  6. package/dist-client/index.js.map +1 -0
  7. package/dist-client/master-change-approval.d.ts +14 -0
  8. package/dist-client/master-change-approval.js +36 -0
  9. package/dist-client/master-change-approval.js.map +1 -0
  10. package/dist-client/master-change-policy-axes.d.ts +37 -0
  11. package/dist-client/master-change-policy-axes.js +29 -0
  12. package/dist-client/master-change-policy-axes.js.map +1 -0
  13. package/dist-client/master-change-policy-panel.d.ts +59 -0
  14. package/dist-client/master-change-policy-panel.js +454 -0
  15. package/dist-client/master-change-policy-panel.js.map +1 -0
  16. package/dist-client/master-change-providers.d.ts +4 -0
  17. package/dist-client/master-change-providers.js +91 -0
  18. package/dist-client/master-change-providers.js.map +1 -0
  19. package/dist-client/pages/master/applied-when-dialog.d.ts +48 -0
  20. package/dist-client/pages/master/applied-when-dialog.js +137 -0
  21. package/dist-client/pages/master/applied-when-dialog.js.map +1 -0
  22. package/dist-client/pages/master/assignment-fields.d.ts +27 -0
  23. package/dist-client/pages/master/assignment-fields.js +62 -0
  24. package/dist-client/pages/master/assignment-fields.js.map +1 -0
  25. package/dist-client/pages/master/equipment-class.d.ts +12 -0
  26. package/dist-client/pages/master/equipment-class.js +42 -0
  27. package/dist-client/pages/master/equipment-class.js.map +1 -0
  28. package/dist-client/pages/master/equipment.d.ts +12 -0
  29. package/dist-client/pages/master/equipment.js +58 -0
  30. package/dist-client/pages/master/equipment.js.map +1 -0
  31. package/dist-client/pages/master/grist-iso-duration.d.ts +20 -0
  32. package/dist-client/pages/master/grist-iso-duration.js +70 -0
  33. package/dist-client/pages/master/grist-iso-duration.js.map +1 -0
  34. package/dist-client/pages/master/grist-reference.d.ts +91 -0
  35. package/dist-client/pages/master/grist-reference.js +419 -0
  36. package/dist-client/pages/master/grist-reference.js.map +1 -0
  37. package/dist-client/pages/master/import-rows.d.ts +35 -0
  38. package/dist-client/pages/master/import-rows.js +66 -0
  39. package/dist-client/pages/master/import-rows.js.map +1 -0
  40. package/dist-client/pages/master/iso-duration.d.ts +34 -0
  41. package/dist-client/pages/master/iso-duration.js +76 -0
  42. package/dist-client/pages/master/iso-duration.js.map +1 -0
  43. package/dist-client/pages/master/master-options.d.ts +40 -0
  44. package/dist-client/pages/master/master-options.js +54 -0
  45. package/dist-client/pages/master/master-options.js.map +1 -0
  46. package/dist-client/pages/master/master-page-base.d.ts +369 -0
  47. package/dist-client/pages/master/master-page-base.js +657 -0
  48. package/dist-client/pages/master/master-page-base.js.map +1 -0
  49. package/dist-client/pages/master/material-class.d.ts +12 -0
  50. package/dist-client/pages/master/material-class.js +42 -0
  51. package/dist-client/pages/master/material-class.js.map +1 -0
  52. package/dist-client/pages/master/material-definition.d.ts +5 -0
  53. package/dist-client/pages/master/material-definition.js +14 -0
  54. package/dist-client/pages/master/material-definition.js.map +1 -0
  55. package/dist-client/pages/master/material-revision-fields.d.ts +2 -0
  56. package/dist-client/pages/master/material-revision-fields.js +43 -0
  57. package/dist-client/pages/master/material-revision-fields.js.map +1 -0
  58. package/dist-client/pages/master/operation-definition.d.ts +12 -0
  59. package/dist-client/pages/master/operation-definition.js +49 -0
  60. package/dist-client/pages/master/operation-definition.js.map +1 -0
  61. package/dist-client/pages/master/operational-location.d.ts +84 -0
  62. package/dist-client/pages/master/operational-location.js +432 -0
  63. package/dist-client/pages/master/operational-location.js.map +1 -0
  64. package/dist-client/pages/master/person.d.ts +12 -0
  65. package/dist-client/pages/master/person.js +41 -0
  66. package/dist-client/pages/master/person.js.map +1 -0
  67. package/dist-client/pages/master/personnel-class.d.ts +12 -0
  68. package/dist-client/pages/master/personnel-class.js +43 -0
  69. package/dist-client/pages/master/personnel-class.js.map +1 -0
  70. package/dist-client/pages/master/physical-asset-class.d.ts +12 -0
  71. package/dist-client/pages/master/physical-asset-class.js +40 -0
  72. package/dist-client/pages/master/physical-asset-class.js.map +1 -0
  73. package/dist-client/pages/master/physical-asset.d.ts +12 -0
  74. package/dist-client/pages/master/physical-asset.js +41 -0
  75. package/dist-client/pages/master/physical-asset.js.map +1 -0
  76. package/dist-client/pages/master/recipe-definition.d.ts +5 -0
  77. package/dist-client/pages/master/recipe-definition.js +14 -0
  78. package/dist-client/pages/master/recipe-definition.js.map +1 -0
  79. package/dist-client/pages/master/reference-targets.d.ts +42 -0
  80. package/dist-client/pages/master/reference-targets.js +82 -0
  81. package/dist-client/pages/master/reference-targets.js.map +1 -0
  82. package/dist-client/pages/master/revision-comparison.d.ts +49 -0
  83. package/dist-client/pages/master/revision-comparison.js +560 -0
  84. package/dist-client/pages/master/revision-comparison.js.map +1 -0
  85. package/dist-client/pages/master/revision-view.d.ts +34 -0
  86. package/dist-client/pages/master/revision-view.js +145 -0
  87. package/dist-client/pages/master/revision-view.js.map +1 -0
  88. package/dist-client/pages/master/revision-workspace.d.ts +50 -0
  89. package/dist-client/pages/master/revision-workspace.js +763 -0
  90. package/dist-client/pages/master/revision-workspace.js.map +1 -0
  91. package/dist-client/pages/master/route-definition.d.ts +19 -0
  92. package/dist-client/pages/master/route-definition.js +40 -0
  93. package/dist-client/pages/master/route-definition.js.map +1 -0
  94. package/dist-client/pages/master/stop-reason.d.ts +12 -0
  95. package/dist-client/pages/master/stop-reason.js +48 -0
  96. package/dist-client/pages/master/stop-reason.js.map +1 -0
  97. package/dist-client/pages/master/test-specification.d.ts +5 -0
  98. package/dist-client/pages/master/test-specification.js +14 -0
  99. package/dist-client/pages/master/test-specification.js.map +1 -0
  100. package/dist-client/pages/master-axes.d.ts +24 -0
  101. package/dist-client/pages/master-axes.js +39 -0
  102. package/dist-client/pages/master-axes.js.map +1 -0
  103. package/dist-client/route.d.ts +1 -0
  104. package/dist-client/route.js +81 -0
  105. package/dist-client/route.js.map +1 -0
  106. package/dist-client/tsconfig.tsbuildinfo +1 -0
  107. package/dist-server/index.d.ts +1 -0
  108. package/dist-server/index.js +19 -0
  109. package/dist-server/index.js.map +1 -0
  110. package/dist-server/service/ai-entry/master-entry-rules.d.ts +175 -0
  111. package/dist-server/service/ai-entry/master-entry-rules.js +302 -0
  112. package/dist-server/service/ai-entry/master-entry-rules.js.map +1 -0
  113. package/dist-server/service/ai-entry/master-entry-targets.d.ts +23 -0
  114. package/dist-server/service/ai-entry/master-entry-targets.js +293 -0
  115. package/dist-server/service/ai-entry/master-entry-targets.js.map +1 -0
  116. package/dist-server/service/approval-route.d.ts +37 -0
  117. package/dist-server/service/approval-route.js +34 -0
  118. package/dist-server/service/approval-route.js.map +1 -0
  119. package/dist-server/service/asset/asset-lifecycle.d.ts +106 -0
  120. package/dist-server/service/asset/asset-lifecycle.js +126 -0
  121. package/dist-server/service/asset/asset-lifecycle.js.map +1 -0
  122. package/dist-server/service/asset/asset-master-resolver.d.ts +53 -0
  123. package/dist-server/service/asset/asset-master-resolver.js +185 -0
  124. package/dist-server/service/asset/asset-master-resolver.js.map +1 -0
  125. package/dist-server/service/asset/asset-master.d.ts +21 -0
  126. package/dist-server/service/asset/asset-master.js +25 -0
  127. package/dist-server/service/asset/asset-master.js.map +1 -0
  128. package/dist-server/service/asset/asset-query.d.ts +16 -0
  129. package/dist-server/service/asset/asset-query.js +72 -0
  130. package/dist-server/service/asset/asset-query.js.map +1 -0
  131. package/dist-server/service/asset/index.d.ts +6 -0
  132. package/dist-server/service/asset/index.js +10 -0
  133. package/dist-server/service/asset/index.js.map +1 -0
  134. package/dist-server/service/asset/physical-asset-class.d.ts +34 -0
  135. package/dist-server/service/asset/physical-asset-class.js +104 -0
  136. package/dist-server/service/asset/physical-asset-class.js.map +1 -0
  137. package/dist-server/service/asset/physical-asset.d.ts +66 -0
  138. package/dist-server/service/asset/physical-asset.js +123 -0
  139. package/dist-server/service/asset/physical-asset.js.map +1 -0
  140. package/dist-server/service/assignment/applied-when.d.ts +24 -0
  141. package/dist-server/service/assignment/applied-when.js +16 -0
  142. package/dist-server/service/assignment/applied-when.js.map +1 -0
  143. package/dist-server/service/assignment/assignment-history.d.ts +92 -0
  144. package/dist-server/service/assignment/assignment-history.js +289 -0
  145. package/dist-server/service/assignment/assignment-history.js.map +1 -0
  146. package/dist-server/service/assignment/assignment-write.d.ts +42 -0
  147. package/dist-server/service/assignment/assignment-write.js +101 -0
  148. package/dist-server/service/assignment/assignment-write.js.map +1 -0
  149. package/dist-server/service/assignment/master-value-claim.d.ts +135 -0
  150. package/dist-server/service/assignment/master-value-claim.js +174 -0
  151. package/dist-server/service/assignment/master-value-claim.js.map +1 -0
  152. package/dist-server/service/equipment/equipment-class.d.ts +34 -0
  153. package/dist-server/service/equipment/equipment-class.js +104 -0
  154. package/dist-server/service/equipment/equipment-class.js.map +1 -0
  155. package/dist-server/service/equipment/equipment-master-resolver.d.ts +77 -0
  156. package/dist-server/service/equipment/equipment-master-resolver.js +266 -0
  157. package/dist-server/service/equipment/equipment-master-resolver.js.map +1 -0
  158. package/dist-server/service/equipment/equipment-master.d.ts +30 -0
  159. package/dist-server/service/equipment/equipment-master.js +53 -0
  160. package/dist-server/service/equipment/equipment-master.js.map +1 -0
  161. package/dist-server/service/equipment/equipment-query.d.ts +16 -0
  162. package/dist-server/service/equipment/equipment-query.js +72 -0
  163. package/dist-server/service/equipment/equipment-query.js.map +1 -0
  164. package/dist-server/service/equipment/equipment.d.ts +71 -0
  165. package/dist-server/service/equipment/equipment.js +138 -0
  166. package/dist-server/service/equipment/equipment.js.map +1 -0
  167. package/dist-server/service/equipment/index.d.ts +8 -0
  168. package/dist-server/service/equipment/index.js +12 -0
  169. package/dist-server/service/equipment/index.js.map +1 -0
  170. package/dist-server/service/equipment/state-period-rules.d.ts +95 -0
  171. package/dist-server/service/equipment/state-period-rules.js +122 -0
  172. package/dist-server/service/equipment/state-period-rules.js.map +1 -0
  173. package/dist-server/service/equipment/stop-reason-query.d.ts +11 -0
  174. package/dist-server/service/equipment/stop-reason-query.js +39 -0
  175. package/dist-server/service/equipment/stop-reason-query.js.map +1 -0
  176. package/dist-server/service/equipment/stop-reason.d.ts +58 -0
  177. package/dist-server/service/equipment/stop-reason.js +114 -0
  178. package/dist-server/service/equipment/stop-reason.js.map +1 -0
  179. package/dist-server/service/index.d.ts +82 -0
  180. package/dist-server/service/index.js +145 -0
  181. package/dist-server/service/index.js.map +1 -0
  182. package/dist-server/service/location/index.d.ts +5 -0
  183. package/dist-server/service/location/index.js +9 -0
  184. package/dist-server/service/location/index.js.map +1 -0
  185. package/dist-server/service/location/location-master-resolver.d.ts +60 -0
  186. package/dist-server/service/location/location-master-resolver.js +313 -0
  187. package/dist-server/service/location/location-master-resolver.js.map +1 -0
  188. package/dist-server/service/location/location-master.d.ts +26 -0
  189. package/dist-server/service/location/location-master.js +28 -0
  190. package/dist-server/service/location/location-master.js.map +1 -0
  191. package/dist-server/service/location/location-query.d.ts +15 -0
  192. package/dist-server/service/location/location-query.js +56 -0
  193. package/dist-server/service/location/location-query.js.map +1 -0
  194. package/dist-server/service/location/operational-location.d.ts +116 -0
  195. package/dist-server/service/location/operational-location.js +157 -0
  196. package/dist-server/service/location/operational-location.js.map +1 -0
  197. package/dist-server/service/master-axis.d.ts +40 -0
  198. package/dist-server/service/master-axis.js +57 -0
  199. package/dist-server/service/master-axis.js.map +1 -0
  200. package/dist-server/service/master-change-approval/approval-input.d.ts +17 -0
  201. package/dist-server/service/master-change-approval/approval-input.js +35 -0
  202. package/dist-server/service/master-change-approval/approval-input.js.map +1 -0
  203. package/dist-server/service/master-change-approval/builtin-axes.d.ts +4 -0
  204. package/dist-server/service/master-change-approval/builtin-axes.js +96 -0
  205. package/dist-server/service/master-change-approval/builtin-axes.js.map +1 -0
  206. package/dist-server/service/master-change-approval/index.d.ts +14 -0
  207. package/dist-server/service/master-change-approval/index.js +37 -0
  208. package/dist-server/service/master-change-approval/index.js.map +1 -0
  209. package/dist-server/service/master-change-approval/master-change-axis.d.ts +54 -0
  210. package/dist-server/service/master-change-approval/master-change-axis.js +17 -0
  211. package/dist-server/service/master-change-approval/master-change-axis.js.map +1 -0
  212. package/dist-server/service/master-change-approval/master-change-flow.d.ts +65 -0
  213. package/dist-server/service/master-change-approval/master-change-flow.js +125 -0
  214. package/dist-server/service/master-change-approval/master-change-flow.js.map +1 -0
  215. package/dist-server/service/master-change-approval/master-change-resolver.d.ts +18 -0
  216. package/dist-server/service/master-change-approval/master-change-resolver.js +58 -0
  217. package/dist-server/service/master-change-approval/master-change-resolver.js.map +1 -0
  218. package/dist-server/service/master-change-policy.d.ts +122 -0
  219. package/dist-server/service/master-change-policy.js +304 -0
  220. package/dist-server/service/master-change-policy.js.map +1 -0
  221. package/dist-server/service/master-conformance-resolver.d.ts +34 -0
  222. package/dist-server/service/master-conformance-resolver.js +153 -0
  223. package/dist-server/service/master-conformance-resolver.js.map +1 -0
  224. package/dist-server/service/master-conformance.d.ts +80 -0
  225. package/dist-server/service/master-conformance.js +266 -0
  226. package/dist-server/service/master-conformance.js.map +1 -0
  227. package/dist-server/service/master-crud.d.ts +55 -0
  228. package/dist-server/service/master-crud.js +93 -0
  229. package/dist-server/service/master-crud.js.map +1 -0
  230. package/dist-server/service/master-list.d.ts +12 -0
  231. package/dist-server/service/master-list.js +30 -0
  232. package/dist-server/service/master-list.js.map +1 -0
  233. package/dist-server/service/master-page-query.d.ts +33 -0
  234. package/dist-server/service/master-page-query.js +55 -0
  235. package/dist-server/service/master-page-query.js.map +1 -0
  236. package/dist-server/service/master-page.d.ts +85 -0
  237. package/dist-server/service/master-page.js +104 -0
  238. package/dist-server/service/master-page.js.map +1 -0
  239. package/dist-server/service/material/index.d.ts +7 -0
  240. package/dist-server/service/material/index.js +12 -0
  241. package/dist-server/service/material/index.js.map +1 -0
  242. package/dist-server/service/material/material-axis-status.d.ts +8 -0
  243. package/dist-server/service/material/material-axis-status.js +19 -0
  244. package/dist-server/service/material/material-axis-status.js.map +1 -0
  245. package/dist-server/service/material/material-class.d.ts +34 -0
  246. package/dist-server/service/material/material-class.js +104 -0
  247. package/dist-server/service/material/material-class.js.map +1 -0
  248. package/dist-server/service/material/material-definition.d.ts +45 -0
  249. package/dist-server/service/material/material-definition.js +125 -0
  250. package/dist-server/service/material/material-definition.js.map +1 -0
  251. package/dist-server/service/material/material-effective-list.d.ts +39 -0
  252. package/dist-server/service/material/material-effective-list.js +54 -0
  253. package/dist-server/service/material/material-effective-list.js.map +1 -0
  254. package/dist-server/service/material/material-master-resolver.d.ts +106 -0
  255. package/dist-server/service/material/material-master-resolver.js +351 -0
  256. package/dist-server/service/material/material-master-resolver.js.map +1 -0
  257. package/dist-server/service/material/material-master.d.ts +9 -0
  258. package/dist-server/service/material/material-master.js +24 -0
  259. package/dist-server/service/material/material-master.js.map +1 -0
  260. package/dist-server/service/material/material-query.d.ts +16 -0
  261. package/dist-server/service/material/material-query.js +79 -0
  262. package/dist-server/service/material/material-query.js.map +1 -0
  263. package/dist-server/service/material/material-revision-content.d.ts +10 -0
  264. package/dist-server/service/material/material-revision-content.js +92 -0
  265. package/dist-server/service/material/material-revision-content.js.map +1 -0
  266. package/dist-server/service/material/material-revision-resolver.d.ts +60 -0
  267. package/dist-server/service/material/material-revision-resolver.js +96 -0
  268. package/dist-server/service/material/material-revision-resolver.js.map +1 -0
  269. package/dist-server/service/material/material-revision-service.d.ts +179 -0
  270. package/dist-server/service/material/material-revision-service.js +687 -0
  271. package/dist-server/service/material/material-revision-service.js.map +1 -0
  272. package/dist-server/service/material/material-revision.d.ts +86 -0
  273. package/dist-server/service/material/material-revision.js +339 -0
  274. package/dist-server/service/material/material-revision.js.map +1 -0
  275. package/dist-server/service/material/recipe-index.d.ts +23 -0
  276. package/dist-server/service/material/recipe-index.js +44 -0
  277. package/dist-server/service/material/recipe-index.js.map +1 -0
  278. package/dist-server/service/operation/index.d.ts +6 -0
  279. package/dist-server/service/operation/index.js +10 -0
  280. package/dist-server/service/operation/index.js.map +1 -0
  281. package/dist-server/service/operation/operation-definition.d.ts +52 -0
  282. package/dist-server/service/operation/operation-definition.js +143 -0
  283. package/dist-server/service/operation/operation-definition.js.map +1 -0
  284. package/dist-server/service/operation/operation-master-resolver.d.ts +52 -0
  285. package/dist-server/service/operation/operation-master-resolver.js +187 -0
  286. package/dist-server/service/operation/operation-master-resolver.js.map +1 -0
  287. package/dist-server/service/operation/operation-master.d.ts +21 -0
  288. package/dist-server/service/operation/operation-master.js +28 -0
  289. package/dist-server/service/operation/operation-master.js.map +1 -0
  290. package/dist-server/service/operation/operation-query.d.ts +15 -0
  291. package/dist-server/service/operation/operation-query.js +56 -0
  292. package/dist-server/service/operation/operation-query.js.map +1 -0
  293. package/dist-server/service/operation/operation-readiness-resolver.d.ts +39 -0
  294. package/dist-server/service/operation/operation-readiness-resolver.js +111 -0
  295. package/dist-server/service/operation/operation-readiness-resolver.js.map +1 -0
  296. package/dist-server/service/operation/operation-readiness.d.ts +34 -0
  297. package/dist-server/service/operation/operation-readiness.js +133 -0
  298. package/dist-server/service/operation/operation-readiness.js.map +1 -0
  299. package/dist-server/service/personnel/index.d.ts +6 -0
  300. package/dist-server/service/personnel/index.js +10 -0
  301. package/dist-server/service/personnel/index.js.map +1 -0
  302. package/dist-server/service/personnel/person.d.ts +51 -0
  303. package/dist-server/service/personnel/person.js +119 -0
  304. package/dist-server/service/personnel/person.js.map +1 -0
  305. package/dist-server/service/personnel/personnel-class-readiness.d.ts +22 -0
  306. package/dist-server/service/personnel/personnel-class-readiness.js +98 -0
  307. package/dist-server/service/personnel/personnel-class-readiness.js.map +1 -0
  308. package/dist-server/service/personnel/personnel-class.d.ts +54 -0
  309. package/dist-server/service/personnel/personnel-class.js +114 -0
  310. package/dist-server/service/personnel/personnel-class.js.map +1 -0
  311. package/dist-server/service/personnel/personnel-master-resolver.d.ts +53 -0
  312. package/dist-server/service/personnel/personnel-master-resolver.js +187 -0
  313. package/dist-server/service/personnel/personnel-master-resolver.js.map +1 -0
  314. package/dist-server/service/personnel/personnel-master.d.ts +39 -0
  315. package/dist-server/service/personnel/personnel-master.js +34 -0
  316. package/dist-server/service/personnel/personnel-master.js.map +1 -0
  317. package/dist-server/service/personnel/personnel-query.d.ts +29 -0
  318. package/dist-server/service/personnel/personnel-query.js +79 -0
  319. package/dist-server/service/personnel/personnel-query.js.map +1 -0
  320. package/dist-server/service/personnel/qualification.d.ts +104 -0
  321. package/dist-server/service/personnel/qualification.js +147 -0
  322. package/dist-server/service/personnel/qualification.js.map +1 -0
  323. package/dist-server/service/quality/index.d.ts +4 -0
  324. package/dist-server/service/quality/index.js +8 -0
  325. package/dist-server/service/quality/index.js.map +1 -0
  326. package/dist-server/service/quality/nonconformance-cause-resolver.d.ts +12 -0
  327. package/dist-server/service/quality/nonconformance-cause-resolver.js +60 -0
  328. package/dist-server/service/quality/nonconformance-cause-resolver.js.map +1 -0
  329. package/dist-server/service/quality/nonconformance-cause.d.ts +20 -0
  330. package/dist-server/service/quality/nonconformance-cause.js +90 -0
  331. package/dist-server/service/quality/nonconformance-cause.js.map +1 -0
  332. package/dist-server/service/recipe/index.d.ts +10 -0
  333. package/dist-server/service/recipe/index.js +16 -0
  334. package/dist-server/service/recipe/index.js.map +1 -0
  335. package/dist-server/service/recipe/recipe-definition.d.ts +75 -0
  336. package/dist-server/service/recipe/recipe-definition.js +143 -0
  337. package/dist-server/service/recipe/recipe-definition.js.map +1 -0
  338. package/dist-server/service/recipe/recipe-effective-list.d.ts +49 -0
  339. package/dist-server/service/recipe/recipe-effective-list.js +96 -0
  340. package/dist-server/service/recipe/recipe-effective-list.js.map +1 -0
  341. package/dist-server/service/recipe/recipe-master-resolver.d.ts +28 -0
  342. package/dist-server/service/recipe/recipe-master-resolver.js +128 -0
  343. package/dist-server/service/recipe/recipe-master-resolver.js.map +1 -0
  344. package/dist-server/service/recipe/recipe-master.d.ts +37 -0
  345. package/dist-server/service/recipe/recipe-master.js +47 -0
  346. package/dist-server/service/recipe/recipe-master.js.map +1 -0
  347. package/dist-server/service/recipe/recipe-query.d.ts +21 -0
  348. package/dist-server/service/recipe/recipe-query.js +82 -0
  349. package/dist-server/service/recipe/recipe-query.js.map +1 -0
  350. package/dist-server/service/recipe/recipe-revision-content.d.ts +32 -0
  351. package/dist-server/service/recipe/recipe-revision-content.js +70 -0
  352. package/dist-server/service/recipe/recipe-revision-content.js.map +1 -0
  353. package/dist-server/service/recipe/recipe-revision-line.d.ts +30 -0
  354. package/dist-server/service/recipe/recipe-revision-line.js +95 -0
  355. package/dist-server/service/recipe/recipe-revision-line.js.map +1 -0
  356. package/dist-server/service/recipe/recipe-revision-resolver.d.ts +65 -0
  357. package/dist-server/service/recipe/recipe-revision-resolver.js +96 -0
  358. package/dist-server/service/recipe/recipe-revision-resolver.js.map +1 -0
  359. package/dist-server/service/recipe/recipe-revision-service.d.ts +183 -0
  360. package/dist-server/service/recipe/recipe-revision-service.js +754 -0
  361. package/dist-server/service/recipe/recipe-revision-service.js.map +1 -0
  362. package/dist-server/service/recipe/recipe-revision.d.ts +102 -0
  363. package/dist-server/service/recipe/recipe-revision.js +373 -0
  364. package/dist-server/service/recipe/recipe-revision.js.map +1 -0
  365. package/dist-server/service/recipe/route-definition.d.ts +51 -0
  366. package/dist-server/service/recipe/route-definition.js +114 -0
  367. package/dist-server/service/recipe/route-definition.js.map +1 -0
  368. package/dist-server/service/resource/class-lineage.d.ts +46 -0
  369. package/dist-server/service/resource/class-lineage.js +80 -0
  370. package/dist-server/service/resource/class-lineage.js.map +1 -0
  371. package/dist-server/service/resource/class-members.d.ts +36 -0
  372. package/dist-server/service/resource/class-members.js +59 -0
  373. package/dist-server/service/resource/class-members.js.map +1 -0
  374. package/dist-server/service/resource/referrers.d.ts +54 -0
  375. package/dist-server/service/resource/referrers.js +99 -0
  376. package/dist-server/service/resource/referrers.js.map +1 -0
  377. package/dist-server/service/resource/resource-class.d.ts +25 -0
  378. package/dist-server/service/resource/resource-class.js +29 -0
  379. package/dist-server/service/resource/resource-class.js.map +1 -0
  380. package/dist-server/service/revision-baseline.d.ts +71 -0
  381. package/dist-server/service/revision-baseline.js +87 -0
  382. package/dist-server/service/revision-baseline.js.map +1 -0
  383. package/dist-server/service/row-lock.d.ts +22 -0
  384. package/dist-server/service/row-lock.js +31 -0
  385. package/dist-server/service/row-lock.js.map +1 -0
  386. package/dist-server/service/status/axis-stamp.d.ts +16 -0
  387. package/dist-server/service/status/axis-stamp.js +22 -0
  388. package/dist-server/service/status/axis-stamp.js.map +1 -0
  389. package/dist-server/service/status/index.d.ts +3 -0
  390. package/dist-server/service/status/index.js +7 -0
  391. package/dist-server/service/status/index.js.map +1 -0
  392. package/dist-server/service/status/master-status.d.ts +38 -0
  393. package/dist-server/service/status/master-status.js +129 -0
  394. package/dist-server/service/status/master-status.js.map +1 -0
  395. package/dist-server/service/test-spec/criteria-check.d.ts +53 -0
  396. package/dist-server/service/test-spec/criteria-check.js +142 -0
  397. package/dist-server/service/test-spec/criteria-check.js.map +1 -0
  398. package/dist-server/service/test-spec/criteria-rows.d.ts +89 -0
  399. package/dist-server/service/test-spec/criteria-rows.js +139 -0
  400. package/dist-server/service/test-spec/criteria-rows.js.map +1 -0
  401. package/dist-server/service/test-spec/index.d.ts +6 -0
  402. package/dist-server/service/test-spec/index.js +11 -0
  403. package/dist-server/service/test-spec/index.js.map +1 -0
  404. package/dist-server/service/test-spec/test-spec-effective-list.d.ts +34 -0
  405. package/dist-server/service/test-spec/test-spec-effective-list.js +42 -0
  406. package/dist-server/service/test-spec/test-spec-effective-list.js.map +1 -0
  407. package/dist-server/service/test-spec/test-spec-master-resolver.d.ts +44 -0
  408. package/dist-server/service/test-spec/test-spec-master-resolver.js +144 -0
  409. package/dist-server/service/test-spec/test-spec-master-resolver.js.map +1 -0
  410. package/dist-server/service/test-spec/test-spec-master.d.ts +6 -0
  411. package/dist-server/service/test-spec/test-spec-master.js +18 -0
  412. package/dist-server/service/test-spec/test-spec-master.js.map +1 -0
  413. package/dist-server/service/test-spec/test-spec-query.d.ts +15 -0
  414. package/dist-server/service/test-spec/test-spec-query.js +61 -0
  415. package/dist-server/service/test-spec/test-spec-query.js.map +1 -0
  416. package/dist-server/service/test-spec/test-spec-revision-resolver.d.ts +59 -0
  417. package/dist-server/service/test-spec/test-spec-revision-resolver.js +96 -0
  418. package/dist-server/service/test-spec/test-spec-revision-resolver.js.map +1 -0
  419. package/dist-server/service/test-spec/test-spec-revision-service.d.ts +178 -0
  420. package/dist-server/service/test-spec/test-spec-revision-service.js +685 -0
  421. package/dist-server/service/test-spec/test-spec-revision-service.js.map +1 -0
  422. package/dist-server/service/test-spec/test-spec-revision.d.ts +86 -0
  423. package/dist-server/service/test-spec/test-spec-revision.js +334 -0
  424. package/dist-server/service/test-spec/test-spec-revision.js.map +1 -0
  425. package/dist-server/service/test-spec/test-specification.d.ts +47 -0
  426. package/dist-server/service/test-spec/test-specification.js +119 -0
  427. package/dist-server/service/test-spec/test-specification.js.map +1 -0
  428. package/dist-server/tsconfig.tsbuildinfo +1 -0
  429. package/package.json +3 -3
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.materialDraftContent = materialDraftContent;
4
+ exports.validateMaterialReferences = validateMaterialReferences;
5
+ const typeorm_1 = require("typeorm");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const material_class_1 = require("./material-class");
8
+ const test_specification_1 = require("../test-spec/test-specification");
9
+ function invalid(field) {
10
+ throw new shell_1.Refusal('INVALID_MATERIAL_CONTENT', { field }, `Invalid material definition: ${field}`);
11
+ }
12
+ function names(value, field) {
13
+ if (value == null)
14
+ return [];
15
+ if (!Array.isArray(value) || value.length > 1000)
16
+ invalid(field);
17
+ const result = value.map(name => {
18
+ if (typeof name !== 'string' || !name.trim())
19
+ invalid(field);
20
+ return name.trim();
21
+ });
22
+ if (new Set(result).size !== result.length)
23
+ invalid(`${field}.duplicate`);
24
+ return result;
25
+ }
26
+ /** Preserve the recursive ResourceProperty shape; never stringify a structured value silently. */
27
+ function materialDraftContent(input, stored = false) {
28
+ if (!input || typeof input !== 'object' || Array.isArray(input))
29
+ invalid('content');
30
+ if (!stored) {
31
+ const allowed = new Set(['description', 'materialClassIds', 'properties', 'testSpecificationIds', 'effectiveFrom', 'reason']);
32
+ for (const field of Object.keys(input))
33
+ if (!allowed.has(field))
34
+ invalid(field);
35
+ }
36
+ if (input.description != null && typeof input.description !== 'string')
37
+ invalid('description');
38
+ let count = 0;
39
+ const properties = (rows, depth = 0) => {
40
+ if (rows == null)
41
+ return [];
42
+ if (!Array.isArray(rows) || depth > 32)
43
+ invalid('properties');
44
+ const keys = new Set();
45
+ return rows.map(row => {
46
+ if (++count > 1000 || !row || typeof row !== 'object' || Array.isArray(row))
47
+ invalid('properties');
48
+ const allowed = new Set(['id', 'description', 'value', 'dataType', 'uom', 'children', 'classPropertyId', 'source']);
49
+ for (const field of Object.keys(row))
50
+ if (!allowed.has(field))
51
+ invalid(`properties.${field}`);
52
+ if (typeof row.id !== 'string' || !row.id.trim())
53
+ invalid('properties.id');
54
+ for (const field of ['description', 'dataType', 'uom', 'classPropertyId'])
55
+ if (row[field] != null && typeof row[field] !== 'string')
56
+ invalid(`properties.${field}`);
57
+ if (row.value != null && typeof row.value !== 'string' && (typeof row.value !== 'number' || !Number.isFinite(row.value)))
58
+ invalid('properties.value');
59
+ if (row.source != null && !['local', 'reference'].includes(row.source))
60
+ invalid('properties.source');
61
+ const id = row.id.trim();
62
+ // Several perBaseUnit declarations are allowed, one for each target unit.
63
+ const key = JSON.stringify([id, row.uom ?? '']);
64
+ if (keys.has(key))
65
+ invalid('properties.duplicate');
66
+ keys.add(key);
67
+ if (id === 'perBaseUnit' && (typeof row.uom !== 'string' || !row.uom.trim() || !['string', 'number'].includes(typeof row.value) || !Number.isFinite(Number(row.value)) || Number(row.value) <= 0))
68
+ invalid('properties.perBaseUnit');
69
+ return { ...row, id, ...(row.children != null ? { children: properties(row.children, depth + 1) } : {}) };
70
+ });
71
+ };
72
+ return {
73
+ description: input.description ?? null,
74
+ materialClassIds: names(input.materialClassIds, 'materialClassIds'),
75
+ properties: properties(input.properties),
76
+ testSpecificationIds: names(input.testSpecificationIds, 'testSpecificationIds')
77
+ };
78
+ }
79
+ /** These are standard business-name references, not revision IDs or approval of the referenced contents. */
80
+ async function validateMaterialReferences(manager, domainId, input) {
81
+ for (const [entity, values, field] of [
82
+ [material_class_1.MaterialClass, input.materialClassIds, 'materialClassIds'],
83
+ [test_specification_1.TestSpecification, input.testSpecificationIds, 'testSpecificationIds']
84
+ ]) {
85
+ if (!values.length)
86
+ continue;
87
+ const found = await manager.getRepository(entity).count({ where: { domain: { id: domainId }, name: (0, typeorm_1.In)(values) } });
88
+ if (found !== values.length)
89
+ throw new shell_1.Refusal('INVALID_MATERIAL_REFERENCE', { field }, 'A referenced master does not exist in this domain.');
90
+ }
91
+ }
92
+ //# sourceMappingURL=material-revision-content.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"material-revision-content.js","sourceRoot":"","sources":["../../../server/service/material/material-revision-content.ts"],"names":[],"mappings":"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","sourcesContent":["import { EntityManager, In } from 'typeorm'\nimport { Refusal } from '@things-factory/shell'\nimport { MaterialClass } from './material-class'\nimport { TestSpecification } from '../test-spec/test-specification'\n\nfunction invalid(field: string): never {\n throw new Refusal('INVALID_MATERIAL_CONTENT', { field }, `Invalid material definition: ${field}`)\n}\nfunction names(value: unknown, field: string): string[] {\n if (value == null) return []\n if (!Array.isArray(value) || value.length > 1000) invalid(field)\n const result = value.map(name => {\n if (typeof name !== 'string' || !name.trim()) invalid(field)\n return name.trim()\n })\n if (new Set(result).size !== result.length) invalid(`${field}.duplicate`)\n return result\n}\n\n/** Preserve the recursive ResourceProperty shape; never stringify a structured value silently. */\nexport function materialDraftContent(input: any, stored = false) {\n if (!input || typeof input !== 'object' || Array.isArray(input)) invalid('content')\n if (!stored) {\n const allowed = new Set(['description', 'materialClassIds', 'properties', 'testSpecificationIds', 'effectiveFrom', 'reason'])\n for (const field of Object.keys(input)) if (!allowed.has(field)) invalid(field)\n }\n if (input.description != null && typeof input.description !== 'string') invalid('description')\n let count = 0\n const properties = (rows: unknown, depth = 0): Record<string, unknown>[] => {\n if (rows == null) return []\n if (!Array.isArray(rows) || depth > 32) invalid('properties')\n const keys = new Set<string>()\n return rows.map(row => {\n if (++count > 1000 || !row || typeof row !== 'object' || Array.isArray(row)) invalid('properties')\n const allowed = new Set(['id', 'description', 'value', 'dataType', 'uom', 'children', 'classPropertyId', 'source'])\n for (const field of Object.keys(row)) if (!allowed.has(field)) invalid(`properties.${field}`)\n if (typeof row.id !== 'string' || !row.id.trim()) invalid('properties.id')\n for (const field of ['description', 'dataType', 'uom', 'classPropertyId'])\n if (row[field] != null && typeof row[field] !== 'string') invalid(`properties.${field}`)\n if (row.value != null && typeof row.value !== 'string' && (typeof row.value !== 'number' || !Number.isFinite(row.value))) invalid('properties.value')\n if (row.source != null && !['local', 'reference'].includes(row.source)) invalid('properties.source')\n const id = row.id.trim()\n // Several perBaseUnit declarations are allowed, one for each target unit.\n const key = JSON.stringify([id, row.uom ?? ''])\n if (keys.has(key)) invalid('properties.duplicate')\n keys.add(key)\n if (id === 'perBaseUnit' && (typeof row.uom !== 'string' || !row.uom.trim() || !['string', 'number'].includes(typeof row.value) || !Number.isFinite(Number(row.value)) || Number(row.value) <= 0)) invalid('properties.perBaseUnit')\n return { ...row, id, ...(row.children != null ? { children: properties(row.children, depth + 1) } : {}) }\n })\n }\n return {\n description: input.description ?? null,\n materialClassIds: names(input.materialClassIds, 'materialClassIds'),\n properties: properties(input.properties),\n testSpecificationIds: names(input.testSpecificationIds, 'testSpecificationIds')\n }\n}\n\n/** These are standard business-name references, not revision IDs or approval of the referenced contents. */\nexport async function validateMaterialReferences(manager: EntityManager, domainId: string, input: ReturnType<typeof materialDraftContent>) {\n for (const [entity, values, field] of [\n [MaterialClass, input.materialClassIds, 'materialClassIds'],\n [TestSpecification, input.testSpecificationIds, 'testSpecificationIds']\n ] as const) {\n if (!values.length) continue\n const found = await manager.getRepository(entity).count({ where: { domain: { id: domainId }, name: In(values) } })\n if (found !== values.length) throw new Refusal('INVALID_MATERIAL_REFERENCE', { field }, 'A referenced master does not exist in this domain.')\n }\n}\n"]}
@@ -0,0 +1,60 @@
1
+ import { MaterialDefinition } from './material-definition';
2
+ import { MaterialDefinitionDraftContent } from './material-revision-service';
3
+ export declare class MaterialDefinitionRevisionResolver {
4
+ publishMaterialDefinitionDraft(revisionId: string, editGeneration: number, context: ResolverContext): Promise<import("./material-revision").MaterialDefinitionPlan>;
5
+ materialDefinitionRevisions(materialId: string, context: ResolverContext): Promise<{
6
+ materialId: string;
7
+ name: string;
8
+ generation: number;
9
+ at: string;
10
+ schedule: {
11
+ state: string;
12
+ id: string;
13
+ domain: import("@things-factory/shell").Domain;
14
+ domainId: string;
15
+ material: MaterialDefinition;
16
+ materialId: string;
17
+ plan: import("./material-revision").MaterialDefinitionPlan;
18
+ planId: string;
19
+ revision: import("./material-revision").MaterialDefinitionRevision;
20
+ revisionId: string;
21
+ validFrom: Date;
22
+ validTo: Date | null;
23
+ }[];
24
+ revisions: {
25
+ state: string;
26
+ releaseKind: import("..").ReleaseKind;
27
+ revisionNumber: number;
28
+ policy: import("..").MasterChangePolicy;
29
+ policyId: string;
30
+ id: string;
31
+ domain: import("@things-factory/shell").Domain;
32
+ domainId: string;
33
+ material: MaterialDefinition;
34
+ materialId: string;
35
+ baseRevision: import("./material-revision").MaterialDefinitionRevision | null;
36
+ baseRevisionId: string | null;
37
+ baseGeneration: number;
38
+ editGeneration: number;
39
+ description: string | null;
40
+ materialClassIds: string[];
41
+ properties: Record<string, unknown>[];
42
+ testSpecificationIds: string[];
43
+ effectiveFrom: Date;
44
+ reason: string;
45
+ creator: import("@things-factory/auth-base").User | null;
46
+ creatorId: string | null;
47
+ createdAt: Date;
48
+ frozenAt: Date | null;
49
+ contentHash: string | null;
50
+ activityInstanceId: string | null;
51
+ }[];
52
+ }>;
53
+ createMaterialDefinitionDraft(content: MaterialDefinitionDraftContent, materialId: string, name: string, baseRevisionId: string, context: ResolverContext): Promise<import("./material-revision").MaterialDefinitionRevision>;
54
+ editMaterialDefinitionDraft(revisionId: string, editGeneration: number, content: MaterialDefinitionDraftContent, context: ResolverContext): Promise<import("./material-revision").MaterialDefinitionRevision>;
55
+ /** 비규제 사업장의 저장 한 번 — 초안과 발행이 한 트랜잭션이다. 승인제면 거절되고 아무것도 안 남는다. */
56
+ saveAndPublishMaterialDefinition(content: MaterialDefinitionDraftContent, materialId: string, name: string, baseRevisionId: string, revisionId: string, editGeneration: number, context: ResolverContext): Promise<{
57
+ revision: import("./material-revision").MaterialDefinitionRevision;
58
+ plan: import("./material-revision").MaterialDefinitionPlan;
59
+ }>;
60
+ }
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MaterialDefinitionRevisionResolver = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const type_graphql_1 = require("type-graphql");
6
+ const shell_1 = require("@things-factory/shell");
7
+ const material_definition_1 = require("./material-definition");
8
+ const material_revision_service_1 = require("./material-revision-service");
9
+ let MaterialDefinitionRevisionResolver = class MaterialDefinitionRevisionResolver {
10
+ async publishMaterialDefinitionDraft(revisionId, editGeneration, context) {
11
+ const { tx, domain, user } = context.state;
12
+ return (0, material_revision_service_1.publishUnregulatedMaterialDefinition)(tx, domain.id, user.id, revisionId, editGeneration);
13
+ }
14
+ async materialDefinitionRevisions(materialId, context) {
15
+ return (0, material_revision_service_1.materialDefinitionRevisionOverview)((0, shell_1.getRepository)(material_definition_1.MaterialDefinition).manager, context.state.domain.id, materialId);
16
+ }
17
+ async createMaterialDefinitionDraft(content, materialId, name, baseRevisionId, context) {
18
+ const { tx, domain, user } = context.state;
19
+ return (0, material_revision_service_1.createMaterialDefinitionDraft)(tx, domain.id, user.id, { materialId, name, baseRevisionId, content });
20
+ }
21
+ async editMaterialDefinitionDraft(revisionId, editGeneration, content, context) {
22
+ const { tx, domain, user } = context.state;
23
+ return (0, material_revision_service_1.editMaterialDefinitionDraft)(tx, domain.id, user.id, revisionId, editGeneration, content);
24
+ }
25
+ /** 비규제 사업장의 저장 한 번 — 초안과 발행이 한 트랜잭션이다. 승인제면 거절되고 아무것도 안 남는다. */
26
+ async saveAndPublishMaterialDefinition(content, materialId, name, baseRevisionId, revisionId, editGeneration, context) {
27
+ const { tx, domain, user } = context.state;
28
+ return (0, material_revision_service_1.saveAndPublishMaterialDefinition)(tx, domain.id, user.id, { materialId, name, baseRevisionId, content, revisionId, editGeneration });
29
+ }
30
+ };
31
+ exports.MaterialDefinitionRevisionResolver = MaterialDefinitionRevisionResolver;
32
+ tslib_1.__decorate([
33
+ (0, type_graphql_1.Directive)('@privilege(category: "ops-master", privilege: "mutation", domainOwnerGranted: true)'),
34
+ (0, type_graphql_1.Directive)('@transaction'),
35
+ (0, type_graphql_1.Mutation)(() => shell_1.ScalarObject),
36
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('revisionId')),
37
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('editGeneration', () => type_graphql_1.Int)),
38
+ tslib_1.__param(2, (0, type_graphql_1.Ctx)()),
39
+ tslib_1.__metadata("design:type", Function),
40
+ tslib_1.__metadata("design:paramtypes", [String, Number, Object]),
41
+ tslib_1.__metadata("design:returntype", Promise)
42
+ ], MaterialDefinitionRevisionResolver.prototype, "publishMaterialDefinitionDraft", null);
43
+ tslib_1.__decorate([
44
+ (0, type_graphql_1.Directive)('@privilege(category: "ops-master", privilege: "query", domainOwnerGranted: true)'),
45
+ (0, type_graphql_1.Query)(() => shell_1.ScalarObject),
46
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('materialId')),
47
+ tslib_1.__param(1, (0, type_graphql_1.Ctx)()),
48
+ tslib_1.__metadata("design:type", Function),
49
+ tslib_1.__metadata("design:paramtypes", [String, Object]),
50
+ tslib_1.__metadata("design:returntype", Promise)
51
+ ], MaterialDefinitionRevisionResolver.prototype, "materialDefinitionRevisions", null);
52
+ tslib_1.__decorate([
53
+ (0, type_graphql_1.Directive)('@privilege(category: "ops-master", privilege: "mutation", domainOwnerGranted: true)'),
54
+ (0, type_graphql_1.Directive)('@transaction'),
55
+ (0, type_graphql_1.Mutation)(() => shell_1.ScalarObject),
56
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('content', () => shell_1.ScalarObject)),
57
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('materialId', () => String, { nullable: true })),
58
+ tslib_1.__param(2, (0, type_graphql_1.Arg)('name', () => String, { nullable: true })),
59
+ tslib_1.__param(3, (0, type_graphql_1.Arg)('baseRevisionId', () => String, { nullable: true })),
60
+ tslib_1.__param(4, (0, type_graphql_1.Ctx)()),
61
+ tslib_1.__metadata("design:type", Function),
62
+ tslib_1.__metadata("design:paramtypes", [Object, String, String, String, Object]),
63
+ tslib_1.__metadata("design:returntype", Promise)
64
+ ], MaterialDefinitionRevisionResolver.prototype, "createMaterialDefinitionDraft", null);
65
+ tslib_1.__decorate([
66
+ (0, type_graphql_1.Directive)('@privilege(category: "ops-master", privilege: "mutation", domainOwnerGranted: true)'),
67
+ (0, type_graphql_1.Directive)('@transaction'),
68
+ (0, type_graphql_1.Mutation)(() => shell_1.ScalarObject),
69
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('revisionId')),
70
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('editGeneration', () => type_graphql_1.Int)),
71
+ tslib_1.__param(2, (0, type_graphql_1.Arg)('content', () => shell_1.ScalarObject)),
72
+ tslib_1.__param(3, (0, type_graphql_1.Ctx)()),
73
+ tslib_1.__metadata("design:type", Function),
74
+ tslib_1.__metadata("design:paramtypes", [String, Number, Object, Object]),
75
+ tslib_1.__metadata("design:returntype", Promise)
76
+ ], MaterialDefinitionRevisionResolver.prototype, "editMaterialDefinitionDraft", null);
77
+ tslib_1.__decorate([
78
+ (0, type_graphql_1.Directive)('@privilege(category: "ops-master", privilege: "mutation", domainOwnerGranted: true)'),
79
+ (0, type_graphql_1.Directive)('@transaction'),
80
+ (0, type_graphql_1.Mutation)(() => shell_1.ScalarObject),
81
+ tslib_1.__param(0, (0, type_graphql_1.Arg)('content', () => shell_1.ScalarObject)),
82
+ tslib_1.__param(1, (0, type_graphql_1.Arg)('materialId', () => String, { nullable: true })),
83
+ tslib_1.__param(2, (0, type_graphql_1.Arg)('name', () => String, { nullable: true })),
84
+ tslib_1.__param(3, (0, type_graphql_1.Arg)('baseRevisionId', () => String, { nullable: true })),
85
+ tslib_1.__param(4, (0, type_graphql_1.Arg)('revisionId', () => String, { nullable: true })),
86
+ tslib_1.__param(5, (0, type_graphql_1.Arg)('editGeneration', () => type_graphql_1.Int, { nullable: true })),
87
+ tslib_1.__param(6, (0, type_graphql_1.Ctx)()),
88
+ tslib_1.__metadata("design:type", Function),
89
+ tslib_1.__metadata("design:paramtypes", [Object, String, String, String, String, Number, Object]),
90
+ tslib_1.__metadata("design:returntype", Promise)
91
+ ], MaterialDefinitionRevisionResolver.prototype, "saveAndPublishMaterialDefinition", null);
92
+ exports.MaterialDefinitionRevisionResolver = MaterialDefinitionRevisionResolver = tslib_1.__decorate([
93
+ (0, type_graphql_1.Resolver)(),
94
+ (0, type_graphql_1.UseMiddleware)(shell_1.SpeakRefusals)
95
+ ], MaterialDefinitionRevisionResolver);
96
+ //# sourceMappingURL=material-revision-resolver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"material-revision-resolver.js","sourceRoot":"","sources":["../../../server/service/material/material-revision-resolver.ts"],"names":[],"mappings":"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","sourcesContent":["import { Arg, Ctx, Directive, Int, Mutation, Query, Resolver, UseMiddleware } from 'type-graphql'\nimport { getRepository, ScalarObject, SpeakRefusals } from '@things-factory/shell'\nimport { MaterialDefinition } from './material-definition'\nimport { saveAndPublishMaterialDefinition, createMaterialDefinitionDraft, editMaterialDefinitionDraft, publishUnregulatedMaterialDefinition, materialDefinitionRevisionOverview, MaterialDefinitionDraftContent } from './material-revision-service'\n\n@Resolver()\n@UseMiddleware(SpeakRefusals)\nexport class MaterialDefinitionRevisionResolver {\n @Directive('@privilege(category: \"ops-master\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(() => ScalarObject)\n async publishMaterialDefinitionDraft(@Arg('revisionId') revisionId: string, @Arg('editGeneration', () => Int) editGeneration: number, @Ctx() context: ResolverContext) {\n const { tx, domain, user } = context.state\n return publishUnregulatedMaterialDefinition(tx, domain.id, user.id, revisionId, editGeneration)\n }\n @Directive('@privilege(category: \"ops-master\", privilege: \"query\", domainOwnerGranted: true)')\n @Query(() => ScalarObject)\n async materialDefinitionRevisions(@Arg('materialId') materialId: string, @Ctx() context: ResolverContext) {\n return materialDefinitionRevisionOverview(getRepository(MaterialDefinition).manager, context.state.domain.id, materialId)\n }\n\n @Directive('@privilege(category: \"ops-master\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(() => ScalarObject)\n async createMaterialDefinitionDraft(\n @Arg('content', () => ScalarObject) content: MaterialDefinitionDraftContent,\n @Arg('materialId', () => String, { nullable: true }) materialId: string,\n @Arg('name', () => String, { nullable: true }) name: string,\n @Arg('baseRevisionId', () => String, { nullable: true }) baseRevisionId: string,\n @Ctx() context: ResolverContext\n ) {\n const { tx, domain, user } = context.state\n return createMaterialDefinitionDraft(tx, domain.id, user.id, { materialId, name, baseRevisionId, content })\n }\n\n @Directive('@privilege(category: \"ops-master\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(() => ScalarObject)\n async editMaterialDefinitionDraft(\n @Arg('revisionId') revisionId: string,\n @Arg('editGeneration', () => Int) editGeneration: number,\n @Arg('content', () => ScalarObject) content: MaterialDefinitionDraftContent,\n @Ctx() context: ResolverContext\n ) {\n const { tx, domain, user } = context.state\n return editMaterialDefinitionDraft(tx, domain.id, user.id, revisionId, editGeneration, content)\n }\n\n /** 비규제 사업장의 저장 한 번 — 초안과 발행이 한 트랜잭션이다. 승인제면 거절되고 아무것도 안 남는다. */\n @Directive('@privilege(category: \"ops-master\", privilege: \"mutation\", domainOwnerGranted: true)')\n @Directive('@transaction')\n @Mutation(() => ScalarObject)\n async saveAndPublishMaterialDefinition(\n @Arg('content', () => ScalarObject) content: MaterialDefinitionDraftContent,\n @Arg('materialId', () => String, { nullable: true }) materialId: string,\n @Arg('name', () => String, { nullable: true }) name: string,\n @Arg('baseRevisionId', () => String, { nullable: true }) baseRevisionId: string,\n @Arg('revisionId', () => String, { nullable: true }) revisionId: string,\n @Arg('editGeneration', () => Int, { nullable: true }) editGeneration: number,\n @Ctx() context: ResolverContext\n ) {\n const { tx, domain, user } = context.state\n return saveAndPublishMaterialDefinition(tx, domain.id, user.id, { materialId, name, baseRevisionId, content, revisionId, editGeneration })\n }\n}\n"]}
@@ -0,0 +1,179 @@
1
+ import { EntityManager } from 'typeorm';
2
+ import { Refusal } from '@things-factory/shell';
3
+ import { MaterialDefinition } from './material-definition';
4
+ import { MaterialDefinitionBasis, MaterialDefinitionPlan, MaterialDefinitionRevision, MaterialDefinitionSegment } from './material-revision';
5
+ export declare class MaterialDefinitionRefusal extends Refusal {
6
+ constructor(code: string, detail?: string);
7
+ }
8
+ export declare function materialDefinitionSubmissionHash(revision: MaterialDefinitionRevision): string;
9
+ /** Display values are a checked projection of the frozen revision, never a second editable source. */
10
+ export declare function materialDefinitionApprovalInput(manager: EntityManager, domainId: string, revisionId: string): Promise<{
11
+ headline: string;
12
+ reason: string;
13
+ effectiveFrom: string;
14
+ before: {
15
+ revisionNumber: number;
16
+ detail: {
17
+ validFrom?: string;
18
+ validTo?: string;
19
+ releaseKind?: "policy" | "approved" | "baseline";
20
+ revisionId: string;
21
+ createdAt: string;
22
+ frozenAt: string;
23
+ effectiveFrom: string;
24
+ reason: string;
25
+ };
26
+ description: string;
27
+ materialClassIds: string[];
28
+ properties: Record<string, unknown>[];
29
+ testSpecificationIds: string[];
30
+ };
31
+ after: {
32
+ revisionNumber: number;
33
+ detail: {
34
+ validFrom?: string;
35
+ validTo?: string;
36
+ releaseKind?: "policy" | "approved" | "baseline";
37
+ revisionId: string;
38
+ createdAt: string;
39
+ frozenAt: string;
40
+ effectiveFrom: string;
41
+ reason: string;
42
+ };
43
+ description: string;
44
+ materialClassIds: string[];
45
+ properties: Record<string, unknown>[];
46
+ testSpecificationIds: string[];
47
+ };
48
+ revision: {
49
+ revisionId: string;
50
+ hash: string;
51
+ materialId: string;
52
+ baseGeneration: number;
53
+ };
54
+ }>;
55
+ export declare function assertMaterialDefinitionApprovalInput(manager: EntityManager, domainId: string, input: Record<string, unknown>): Promise<void>;
56
+ export interface MaterialDefinitionDraftContent {
57
+ description?: string;
58
+ materialClassIds?: string[];
59
+ properties?: Record<string, unknown>[];
60
+ testSpecificationIds?: string[];
61
+ effectiveFrom: Date | string;
62
+ reason: string;
63
+ }
64
+ export declare function createMaterialDefinitionDraft(manager: EntityManager, domainId: string, creatorId: string, asked: {
65
+ materialId?: string;
66
+ name?: string;
67
+ baseRevisionId?: string;
68
+ content: MaterialDefinitionDraftContent;
69
+ }): Promise<MaterialDefinitionRevision>;
70
+ export declare function editMaterialDefinitionDraft(manager: EntityManager, domainId: string, actorId: string, revisionId: string, expectedEditGeneration: number, input: MaterialDefinitionDraftContent): Promise<MaterialDefinitionRevision>;
71
+ /** Product calls this in the same transaction as issuing its worklist approval. */
72
+ export declare function freezeMaterialDefinitionDraft(manager: EntityManager, domainId: string, actorId: string, revisionId: string, expectedEditGeneration: number): Promise<MaterialDefinitionRevision>;
73
+ export declare function bindMaterialDefinitionApproval(manager: EntityManager, domainId: string, revisionId: string, activityInstanceId: string): Promise<void>;
74
+ /** Internal completion callback only. Never expose this as an approved=true mutation. */
75
+ export declare function publishMaterialDefinitionRevision(manager: EntityManager, domainId: string, revisionId: string, decision: {
76
+ activityInstanceId: string;
77
+ approverId: string;
78
+ submissionHash: string;
79
+ }): Promise<MaterialDefinitionPlan>;
80
+ export declare function publishUnregulatedMaterialDefinition(manager: EntityManager, domainId: string, actorId: string, revisionId: string, editGeneration: number): Promise<MaterialDefinitionPlan>;
81
+ export declare function resolveMaterialDefinition(manager: EntityManager, domainId: string, materialId: string, businessTime: Date | string, knownAt?: Date | string): Promise<{
82
+ revision: MaterialDefinitionRevision;
83
+ plan: MaterialDefinitionPlan;
84
+ segment: MaterialDefinitionSegment;
85
+ }>;
86
+ /**
87
+ * **개정본이 하나도 없는 품목**마다 지금 서 있는 행을 첫 개정본으로 적는다 — 기준선(2026-09-24).
88
+ * 규칙은 검사 명세의 `standTestSpecificationBaselines` 와 같다. 품목만의 것 둘:
89
+ *
90
+ * - 등급 · 검사 명세는 **이름으로** 가리킨다. 그 이름이 이 사업장에 없으면 세우지 않고 까닭을 남긴다 —
91
+ * 없는 것을 가리키는 개정본은 새 지시가 쓰는 순간 거절된다. 이름은 사업장마다 한 번 읽어 대조한다.
92
+ * - 행의 `testResults` 는 개정본 내용이 아니다. 루트에 그대로 남는다.
93
+ */
94
+ export declare function standMaterialDefinitionBaselines(manager: EntityManager, domainId: string, at: Date, edition: string): Promise<{
95
+ stood: number;
96
+ unreadable: {
97
+ name: string;
98
+ problem: string;
99
+ }[];
100
+ }>;
101
+ /** Replay reads verify the captured digest too, not only the currently effective schedule. */
102
+ export declare function materialDefinitionRevisionForBasis(manager: EntityManager, domainId: string, basis: MaterialDefinitionBasis): Promise<MaterialDefinitionRevision>;
103
+ /** Must run inside the transaction that writes the business record. */
104
+ export declare function captureMaterialDefinitionBasis(manager: EntityManager, domainId: string, materialId: string, recordKey: string, businessTime: Date | string): Promise<MaterialDefinitionBasis>;
105
+ export declare function materialDefinitionRevisionOverview(manager: EntityManager, domainId: string, materialId: string, at?: Date): Promise<{
106
+ materialId: string;
107
+ name: string;
108
+ generation: number;
109
+ at: string;
110
+ schedule: {
111
+ state: string;
112
+ id: string;
113
+ domain: import("@things-factory/shell").Domain;
114
+ domainId: string;
115
+ material: MaterialDefinition;
116
+ materialId: string;
117
+ plan: MaterialDefinitionPlan;
118
+ planId: string;
119
+ revision: MaterialDefinitionRevision;
120
+ revisionId: string;
121
+ validFrom: Date;
122
+ validTo: Date | null;
123
+ }[];
124
+ revisions: {
125
+ state: string;
126
+ releaseKind: import("../master-change-approval/approval-input").ReleaseKind;
127
+ revisionNumber: number;
128
+ policy: import("../master-change-policy").MasterChangePolicy;
129
+ policyId: string;
130
+ id: string;
131
+ domain: import("@things-factory/shell").Domain;
132
+ domainId: string;
133
+ material: MaterialDefinition;
134
+ materialId: string;
135
+ baseRevision: MaterialDefinitionRevision | null;
136
+ baseRevisionId: string | null;
137
+ baseGeneration: number;
138
+ editGeneration: number;
139
+ description: string | null;
140
+ materialClassIds: string[];
141
+ properties: Record<string, unknown>[];
142
+ testSpecificationIds: string[];
143
+ effectiveFrom: Date;
144
+ reason: string;
145
+ creator: import("@things-factory/auth-base").User | null;
146
+ creatorId: string | null;
147
+ createdAt: Date;
148
+ frozenAt: Date | null;
149
+ contentHash: string | null;
150
+ activityInstanceId: string | null;
151
+ }[];
152
+ }>;
153
+ /** Read-time projection, never a clock-driven rewrite of the identity row. */
154
+ export declare function effectiveMaterialDefinition(manager: EntityManager, domainId: string, material: MaterialDefinition, at?: Date): Promise<MaterialDefinition & {
155
+ revisionNumber: number;
156
+ description: string;
157
+ materialClassIds: string[];
158
+ properties: Record<string, unknown>[];
159
+ testSpecificationIds: string[];
160
+ effectiveStart: Date;
161
+ effectiveEnd: Date;
162
+ }>;
163
+ /**
164
+ * **비규제 사업장의 「저장」 한 번** — 초안을 만들고 바로 발행한다, 한 트랜잭션에서(ADR-0086 09-22 보탬).
165
+ * 비규제면 사람이 누를 것은 저장 하나다. 두 걸음(초안 저장 → 발행)이 구조상 필연인 것처럼 보이게 하지 않는다.
166
+ * 이 축이 승인제면 발행이 `MASTER_APPROVAL_REQUIRED` 로 거절되고, 같은 트랜잭션이라 초안도 함께 물러난다 —
167
+ * 반쯤 저장된 것이 남지 않는다. 개정본 · 적용계획 · 구간은 두 걸음 때와 똑같이 선다.
168
+ */
169
+ export declare function saveAndPublishMaterialDefinition(manager: EntityManager, domainId: string, actorId: string, asked: {
170
+ materialId?: string;
171
+ name?: string;
172
+ baseRevisionId?: string;
173
+ content: MaterialDefinitionDraftContent;
174
+ revisionId?: string;
175
+ editGeneration?: number;
176
+ }): Promise<{
177
+ revision: MaterialDefinitionRevision;
178
+ plan: MaterialDefinitionPlan;
179
+ }>;