@milaboratories/pl-middle-layer 1.48.11 → 1.48.13

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 (589) hide show
  1. package/dist/_virtual/_@oxc-project_runtime@0.114.0/helpers/usingCtx.cjs +59 -0
  2. package/dist/_virtual/_@oxc-project_runtime@0.114.0/helpers/usingCtx.js +58 -0
  3. package/dist/_virtual/_rolldown/runtime.cjs +29 -0
  4. package/dist/block_registry/index.cjs +3 -0
  5. package/dist/block_registry/index.d.ts +3 -4
  6. package/dist/block_registry/index.js +3 -0
  7. package/dist/block_registry/registry-v2-provider.cjs +18 -19
  8. package/dist/block_registry/registry-v2-provider.cjs.map +1 -1
  9. package/dist/block_registry/registry-v2-provider.d.ts +10 -6
  10. package/dist/block_registry/registry-v2-provider.js +17 -17
  11. package/dist/block_registry/registry-v2-provider.js.map +1 -1
  12. package/dist/block_registry/registry.cjs +188 -219
  13. package/dist/block_registry/registry.cjs.map +1 -1
  14. package/dist/block_registry/registry.d.ts +18 -14
  15. package/dist/block_registry/registry.js +184 -217
  16. package/dist/block_registry/registry.js.map +1 -1
  17. package/dist/block_registry/watcher.cjs +141 -170
  18. package/dist/block_registry/watcher.cjs.map +1 -1
  19. package/dist/block_registry/watcher.d.ts +26 -24
  20. package/dist/block_registry/watcher.js +139 -168
  21. package/dist/block_registry/watcher.js.map +1 -1
  22. package/dist/block_registry/well_known_registries.cjs +9 -8
  23. package/dist/block_registry/well_known_registries.cjs.map +1 -1
  24. package/dist/block_registry/well_known_registries.d.ts +8 -4
  25. package/dist/block_registry/well_known_registries.js +9 -7
  26. package/dist/block_registry/well_known_registries.js.map +1 -1
  27. package/dist/cfg_render/executor.cjs +136 -137
  28. package/dist/cfg_render/executor.cjs.map +1 -1
  29. package/dist/cfg_render/executor.js +133 -135
  30. package/dist/cfg_render/executor.js.map +1 -1
  31. package/dist/cfg_render/renderer.cjs +354 -462
  32. package/dist/cfg_render/renderer.cjs.map +1 -1
  33. package/dist/cfg_render/renderer.js +353 -460
  34. package/dist/cfg_render/renderer.js.map +1 -1
  35. package/dist/cfg_render/traverse.cjs +58 -60
  36. package/dist/cfg_render/traverse.cjs.map +1 -1
  37. package/dist/cfg_render/traverse.js +57 -58
  38. package/dist/cfg_render/traverse.js.map +1 -1
  39. package/dist/cfg_render/util.cjs +14 -19
  40. package/dist/cfg_render/util.cjs.map +1 -1
  41. package/dist/cfg_render/util.js +14 -17
  42. package/dist/cfg_render/util.js.map +1 -1
  43. package/dist/debug/index.cjs +13 -17
  44. package/dist/debug/index.cjs.map +1 -1
  45. package/dist/debug/index.js +13 -16
  46. package/dist/debug/index.js.map +1 -1
  47. package/dist/dev_env/index.cjs +60 -44
  48. package/dist/dev_env/index.cjs.map +1 -1
  49. package/dist/dev_env/index.js +57 -33
  50. package/dist/dev_env/index.js.map +1 -1
  51. package/dist/dev_env/util.cjs +12 -32
  52. package/dist/dev_env/util.cjs.map +1 -1
  53. package/dist/dev_env/util.js +10 -11
  54. package/dist/dev_env/util.js.map +1 -1
  55. package/dist/index.cjs +75 -74
  56. package/dist/index.d.ts +21 -13
  57. package/dist/index.js +25 -18
  58. package/dist/js_render/computable_context.cjs +432 -568
  59. package/dist/js_render/computable_context.cjs.map +1 -1
  60. package/dist/js_render/computable_context.js +431 -566
  61. package/dist/js_render/computable_context.js.map +1 -1
  62. package/dist/js_render/context.cjs +184 -237
  63. package/dist/js_render/context.cjs.map +1 -1
  64. package/dist/js_render/context.js +184 -235
  65. package/dist/js_render/context.js.map +1 -1
  66. package/dist/js_render/index.cjs +137 -156
  67. package/dist/js_render/index.cjs.map +1 -1
  68. package/dist/js_render/index.js +136 -154
  69. package/dist/js_render/index.js.map +1 -1
  70. package/dist/middle_layer/active_cfg.cjs +28 -35
  71. package/dist/middle_layer/active_cfg.cjs.map +1 -1
  72. package/dist/middle_layer/active_cfg.js +27 -33
  73. package/dist/middle_layer/active_cfg.js.map +1 -1
  74. package/dist/middle_layer/block.cjs +36 -42
  75. package/dist/middle_layer/block.cjs.map +1 -1
  76. package/dist/middle_layer/block.js +35 -40
  77. package/dist/middle_layer/block.js.map +1 -1
  78. package/dist/middle_layer/block_ctx.cjs +91 -133
  79. package/dist/middle_layer/block_ctx.cjs.map +1 -1
  80. package/dist/middle_layer/block_ctx.js +90 -131
  81. package/dist/middle_layer/block_ctx.js.map +1 -1
  82. package/dist/middle_layer/block_ctx_unsafe.cjs +20 -19
  83. package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -1
  84. package/dist/middle_layer/block_ctx_unsafe.js +20 -18
  85. package/dist/middle_layer/block_ctx_unsafe.js.map +1 -1
  86. package/dist/middle_layer/driver_kit.cjs +47 -51
  87. package/dist/middle_layer/driver_kit.cjs.map +1 -1
  88. package/dist/middle_layer/driver_kit.d.ts +31 -27
  89. package/dist/middle_layer/driver_kit.js +46 -49
  90. package/dist/middle_layer/driver_kit.js.map +1 -1
  91. package/dist/middle_layer/frontend_path.cjs +49 -55
  92. package/dist/middle_layer/frontend_path.cjs.map +1 -1
  93. package/dist/middle_layer/frontend_path.js +48 -53
  94. package/dist/middle_layer/frontend_path.js.map +1 -1
  95. package/dist/middle_layer/index.cjs +4 -0
  96. package/dist/middle_layer/index.d.ts +4 -5
  97. package/dist/middle_layer/index.js +4 -0
  98. package/dist/middle_layer/middle_layer.cjs +216 -245
  99. package/dist/middle_layer/middle_layer.cjs.map +1 -1
  100. package/dist/middle_layer/middle_layer.d.ts +95 -91
  101. package/dist/middle_layer/middle_layer.js +215 -243
  102. package/dist/middle_layer/middle_layer.js.map +1 -1
  103. package/dist/middle_layer/navigation_states.cjs +45 -38
  104. package/dist/middle_layer/navigation_states.cjs.map +1 -1
  105. package/dist/middle_layer/navigation_states.js +44 -36
  106. package/dist/middle_layer/navigation_states.js.map +1 -1
  107. package/dist/middle_layer/ops.cjs +56 -57
  108. package/dist/middle_layer/ops.cjs.map +1 -1
  109. package/dist/middle_layer/ops.d.ts +86 -96
  110. package/dist/middle_layer/ops.js +54 -55
  111. package/dist/middle_layer/ops.js.map +1 -1
  112. package/dist/middle_layer/project.cjs +497 -527
  113. package/dist/middle_layer/project.cjs.map +1 -1
  114. package/dist/middle_layer/project.d.ts +155 -152
  115. package/dist/middle_layer/project.js +494 -525
  116. package/dist/middle_layer/project.js.map +1 -1
  117. package/dist/middle_layer/project_list.cjs +45 -43
  118. package/dist/middle_layer/project_list.cjs.map +1 -1
  119. package/dist/middle_layer/project_list.js +45 -41
  120. package/dist/middle_layer/project_list.js.map +1 -1
  121. package/dist/middle_layer/project_overview.cjs +202 -240
  122. package/dist/middle_layer/project_overview.cjs.map +1 -1
  123. package/dist/middle_layer/project_overview.js +201 -238
  124. package/dist/middle_layer/project_overview.js.map +1 -1
  125. package/dist/middle_layer/project_overview_light.cjs +11 -14
  126. package/dist/middle_layer/project_overview_light.cjs.map +1 -1
  127. package/dist/middle_layer/project_overview_light.js +10 -12
  128. package/dist/middle_layer/project_overview_light.js.map +1 -1
  129. package/dist/middle_layer/render.cjs +14 -18
  130. package/dist/middle_layer/render.cjs.map +1 -1
  131. package/dist/middle_layer/render.js +13 -16
  132. package/dist/middle_layer/render.js.map +1 -1
  133. package/dist/middle_layer/types.d.ts +7 -10
  134. package/dist/middle_layer/util.cjs +26 -21
  135. package/dist/middle_layer/util.cjs.map +1 -1
  136. package/dist/middle_layer/util.js +25 -19
  137. package/dist/middle_layer/util.js.map +1 -1
  138. package/dist/model/args.cjs +44 -53
  139. package/dist/model/args.cjs.map +1 -1
  140. package/dist/model/args.js +44 -51
  141. package/dist/model/args.js.map +1 -1
  142. package/dist/model/block_pack_spec.cjs +9 -5
  143. package/dist/model/block_pack_spec.cjs.map +1 -1
  144. package/dist/model/block_pack_spec.d.ts +34 -30
  145. package/dist/model/block_pack_spec.js +9 -4
  146. package/dist/model/block_pack_spec.js.map +1 -1
  147. package/dist/model/frontend.d.ts +8 -5
  148. package/dist/model/index.d.ts +2 -3
  149. package/dist/model/project_helper.cjs +154 -193
  150. package/dist/model/project_helper.cjs.map +1 -1
  151. package/dist/model/project_helper.d.ts +96 -92
  152. package/dist/model/project_helper.js +153 -191
  153. package/dist/model/project_helper.js.map +1 -1
  154. package/dist/model/project_model.cjs +33 -32
  155. package/dist/model/project_model.cjs.map +1 -1
  156. package/dist/model/project_model.d.ts +13 -64
  157. package/dist/model/project_model.js +34 -30
  158. package/dist/model/project_model.js.map +1 -1
  159. package/dist/model/project_model_util.cjs +119 -158
  160. package/dist/model/project_model_util.cjs.map +1 -1
  161. package/dist/model/project_model_util.js +120 -156
  162. package/dist/model/project_model_util.js.map +1 -1
  163. package/dist/model/project_model_v1.cjs +3 -2
  164. package/dist/model/project_model_v1.cjs.map +1 -1
  165. package/dist/model/project_model_v1.js +3 -1
  166. package/dist/model/project_model_v1.js.map +1 -1
  167. package/dist/model/template_spec.d.ts +20 -16
  168. package/dist/mutator/block-pack/block_pack.cjs +200 -223
  169. package/dist/mutator/block-pack/block_pack.cjs.map +1 -1
  170. package/dist/mutator/block-pack/block_pack.d.ts +20 -19
  171. package/dist/mutator/block-pack/block_pack.js +199 -221
  172. package/dist/mutator/block-pack/block_pack.js.map +1 -1
  173. package/dist/mutator/block-pack/frontend.cjs +14 -16
  174. package/dist/mutator/block-pack/frontend.cjs.map +1 -1
  175. package/dist/mutator/block-pack/frontend.js +13 -14
  176. package/dist/mutator/block-pack/frontend.js.map +1 -1
  177. package/dist/mutator/context_export.cjs +18 -17
  178. package/dist/mutator/context_export.cjs.map +1 -1
  179. package/dist/mutator/context_export.js +17 -15
  180. package/dist/mutator/context_export.js.map +1 -1
  181. package/dist/mutator/migration.cjs +86 -112
  182. package/dist/mutator/migration.cjs.map +1 -1
  183. package/dist/mutator/migration.js +85 -110
  184. package/dist/mutator/migration.js.map +1 -1
  185. package/dist/mutator/project.cjs +903 -1240
  186. package/dist/mutator/project.cjs.map +1 -1
  187. package/dist/mutator/project.js +901 -1237
  188. package/dist/mutator/project.js.map +1 -1
  189. package/dist/mutator/template/direct_template_loader.cjs +104 -130
  190. package/dist/mutator/template/direct_template_loader.cjs.map +1 -1
  191. package/dist/mutator/template/direct_template_loader.js +103 -128
  192. package/dist/mutator/template/direct_template_loader.js.map +1 -1
  193. package/dist/mutator/template/direct_template_loader_v3.cjs +104 -124
  194. package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -1
  195. package/dist/mutator/template/direct_template_loader_v3.js +103 -122
  196. package/dist/mutator/template/direct_template_loader_v3.js.map +1 -1
  197. package/dist/mutator/template/render_block.cjs +26 -30
  198. package/dist/mutator/template/render_block.cjs.map +1 -1
  199. package/dist/mutator/template/render_block.js +26 -23
  200. package/dist/mutator/template/render_block.js.map +1 -1
  201. package/dist/mutator/template/render_template.cjs +25 -25
  202. package/dist/mutator/template/render_template.cjs.map +1 -1
  203. package/dist/mutator/template/render_template.d.ts +6 -3
  204. package/dist/mutator/template/render_template.js +24 -23
  205. package/dist/mutator/template/render_template.js.map +1 -1
  206. package/dist/mutator/template/template_loading.cjs +42 -46
  207. package/dist/mutator/template/template_loading.cjs.map +1 -1
  208. package/dist/mutator/template/template_loading.d.ts +16 -12
  209. package/dist/mutator/template/template_loading.js +40 -44
  210. package/dist/mutator/template/template_loading.js.map +1 -1
  211. package/dist/network_check/network_check.cjs +149 -194
  212. package/dist/network_check/network_check.cjs.map +1 -1
  213. package/dist/network_check/network_check.d.ts +50 -66
  214. package/dist/network_check/network_check.js +146 -190
  215. package/dist/network_check/network_check.js.map +1 -1
  216. package/dist/network_check/pings.cjs +71 -69
  217. package/dist/network_check/pings.cjs.map +1 -1
  218. package/dist/network_check/pings.js +71 -65
  219. package/dist/network_check/pings.js.map +1 -1
  220. package/dist/network_check/template.cjs +256 -273
  221. package/dist/network_check/template.cjs.map +1 -1
  222. package/dist/network_check/template.js +253 -265
  223. package/dist/network_check/template.js.map +1 -1
  224. package/dist/pool/data.cjs +205 -226
  225. package/dist/pool/data.cjs.map +1 -1
  226. package/dist/pool/data.d.ts +10 -27
  227. package/dist/pool/data.js +196 -209
  228. package/dist/pool/data.js.map +1 -1
  229. package/dist/pool/driver.cjs +180 -207
  230. package/dist/pool/driver.cjs.map +1 -1
  231. package/dist/pool/driver.d.ts +12 -17
  232. package/dist/pool/driver.js +178 -205
  233. package/dist/pool/driver.js.map +1 -1
  234. package/dist/pool/index.cjs +2 -0
  235. package/dist/pool/index.d.ts +2 -3
  236. package/dist/pool/index.js +2 -0
  237. package/dist/pool/p_object_collection.cjs +67 -79
  238. package/dist/pool/p_object_collection.cjs.map +1 -1
  239. package/dist/pool/p_object_collection.d.ts +7 -28
  240. package/dist/pool/p_object_collection.js +65 -77
  241. package/dist/pool/p_object_collection.js.map +1 -1
  242. package/dist/pool/result_pool.cjs +217 -262
  243. package/dist/pool/result_pool.cjs.map +1 -1
  244. package/dist/pool/result_pool.d.ts +4 -27
  245. package/dist/pool/result_pool.js +216 -260
  246. package/dist/pool/result_pool.js.map +1 -1
  247. package/dist/worker/WorkerManager.cjs +51 -49
  248. package/dist/worker/WorkerManager.cjs.map +1 -1
  249. package/dist/worker/WorkerManager.js +49 -47
  250. package/dist/worker/WorkerManager.js.map +1 -1
  251. package/dist/worker/worker.cjs +19 -15
  252. package/dist/worker/worker.cjs.map +1 -1
  253. package/dist/worker/worker.d.ts +1 -2
  254. package/dist/worker/worker.js +18 -13
  255. package/dist/worker/worker.js.map +1 -1
  256. package/dist/worker/workerApi.cjs +14 -18
  257. package/dist/worker/workerApi.cjs.map +1 -1
  258. package/dist/worker/workerApi.js +13 -16
  259. package/dist/worker/workerApi.js.map +1 -1
  260. package/package.json +24 -24
  261. package/src/mutator/template/template_render.test.ts +22 -18
  262. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.cjs +0 -77
  263. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.cjs.map +0 -1
  264. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.js +0 -74
  265. package/dist/__external/.pnpm/@rollup_plugin-typescript@12.3.0_rollup@4.52.4_tslib@2.8.1_typescript@5.6.3/__external/tslib/tslib.es6.js.map +0 -1
  266. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.cjs +0 -162
  267. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.cjs.map +0 -1
  268. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.js +0 -160
  269. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/comparator.js.map +0 -1
  270. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.cjs +0 -576
  271. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.cjs.map +0 -1
  272. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.js +0 -574
  273. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/range.js.map +0 -1
  274. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.cjs +0 -337
  275. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.cjs.map +0 -1
  276. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.js +0 -335
  277. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/classes/semver.js.map +0 -1
  278. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.cjs +0 -22
  279. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.cjs.map +0 -1
  280. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.js +0 -20
  281. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/clean.js.map +0 -1
  282. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.cjs +0 -73
  283. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.cjs.map +0 -1
  284. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.js +0 -71
  285. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/cmp.js.map +0 -1
  286. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.cjs +0 -78
  287. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.cjs.map +0 -1
  288. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.js +0 -76
  289. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/coerce.js.map +0 -1
  290. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.cjs +0 -23
  291. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.cjs.map +0 -1
  292. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.js +0 -21
  293. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-build.js.map +0 -1
  294. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.cjs +0 -19
  295. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.cjs.map +0 -1
  296. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.js +0 -17
  297. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare-loose.js.map +0 -1
  298. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.cjs +0 -21
  299. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.cjs.map +0 -1
  300. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.js +0 -19
  301. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/compare.js.map +0 -1
  302. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.cjs +0 -74
  303. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.cjs.map +0 -1
  304. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.js +0 -72
  305. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/diff.js.map +0 -1
  306. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.cjs +0 -19
  307. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.cjs.map +0 -1
  308. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.js +0 -17
  309. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/eq.js.map +0 -1
  310. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.cjs +0 -19
  311. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.cjs.map +0 -1
  312. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.js +0 -17
  313. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gt.js.map +0 -1
  314. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.cjs +0 -19
  315. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.cjs.map +0 -1
  316. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.js +0 -17
  317. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/gte.js.map +0 -1
  318. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.cjs +0 -35
  319. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.cjs.map +0 -1
  320. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.js +0 -33
  321. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/inc.js.map +0 -1
  322. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.cjs +0 -19
  323. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.cjs.map +0 -1
  324. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.js +0 -17
  325. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lt.js.map +0 -1
  326. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.cjs +0 -19
  327. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.cjs.map +0 -1
  328. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.js +0 -17
  329. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/lte.js.map +0 -1
  330. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.cjs +0 -19
  331. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.cjs.map +0 -1
  332. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.js +0 -17
  333. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/major.js.map +0 -1
  334. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.cjs +0 -19
  335. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.cjs.map +0 -1
  336. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.js +0 -17
  337. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/minor.js.map +0 -1
  338. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.cjs +0 -19
  339. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.cjs.map +0 -1
  340. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.js +0 -17
  341. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/neq.js.map +0 -1
  342. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.cjs +0 -32
  343. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.cjs.map +0 -1
  344. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.js +0 -30
  345. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/parse.js.map +0 -1
  346. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.cjs +0 -19
  347. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.cjs.map +0 -1
  348. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.js +0 -17
  349. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/patch.js.map +0 -1
  350. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.cjs +0 -22
  351. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.cjs.map +0 -1
  352. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.js +0 -20
  353. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/prerelease.js.map +0 -1
  354. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.cjs +0 -19
  355. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.cjs.map +0 -1
  356. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.js +0 -17
  357. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rcompare.js.map +0 -1
  358. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.cjs +0 -19
  359. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.cjs.map +0 -1
  360. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.js +0 -17
  361. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/rsort.js.map +0 -1
  362. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.cjs +0 -26
  363. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.cjs.map +0 -1
  364. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.js +0 -24
  365. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/satisfies.js.map +0 -1
  366. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.cjs +0 -19
  367. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.cjs.map +0 -1
  368. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.js +0 -17
  369. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/sort.js.map +0 -1
  370. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.cjs +0 -22
  371. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.cjs.map +0 -1
  372. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.js +0 -20
  373. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/functions/valid.js.map +0 -1
  374. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.cjs +0 -145
  375. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.cjs.map +0 -1
  376. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.js +0 -143
  377. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/index.js.map +0 -1
  378. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.cjs +0 -49
  379. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.cjs.map +0 -1
  380. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.js +0 -47
  381. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/constants.js.map +0 -1
  382. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.cjs +0 -23
  383. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.cjs.map +0 -1
  384. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.js +0 -21
  385. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/debug.js.map +0 -1
  386. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.cjs +0 -37
  387. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.cjs.map +0 -1
  388. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.js +0 -35
  389. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/identifiers.js.map +0 -1
  390. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.cjs +0 -54
  391. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.cjs.map +0 -1
  392. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.js +0 -52
  393. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/lrucache.js.map +0 -1
  394. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.cjs +0 -29
  395. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.cjs.map +0 -1
  396. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.js +0 -27
  397. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/parse-options.js.map +0 -1
  398. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.cjs +0 -240
  399. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.cjs.map +0 -1
  400. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.js +0 -238
  401. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/internal/re.js.map +0 -1
  402. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.cjs +0 -20
  403. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.cjs.map +0 -1
  404. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.js +0 -18
  405. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/gtr.js.map +0 -1
  406. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.cjs +0 -23
  407. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.cjs.map +0 -1
  408. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.js +0 -21
  409. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/intersects.js.map +0 -1
  410. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.cjs +0 -20
  411. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.cjs.map +0 -1
  412. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.js +0 -18
  413. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/ltr.js.map +0 -1
  414. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.cjs +0 -42
  415. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.cjs.map +0 -1
  416. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.js +0 -40
  417. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/max-satisfying.js.map +0 -1
  418. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.cjs +0 -41
  419. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.cjs.map +0 -1
  420. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.js +0 -39
  421. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-satisfying.js.map +0 -1
  422. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.cjs +0 -79
  423. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.cjs.map +0 -1
  424. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.js +0 -77
  425. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/min-version.js.map +0 -1
  426. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.cjs +0 -103
  427. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.cjs.map +0 -1
  428. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.js +0 -101
  429. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/outside.js.map +0 -1
  430. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.cjs +0 -64
  431. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.cjs.map +0 -1
  432. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.js +0 -62
  433. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/simplify.js.map +0 -1
  434. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.cjs +0 -266
  435. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.cjs.map +0 -1
  436. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.js +0 -264
  437. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/subset.js.map +0 -1
  438. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.cjs +0 -24
  439. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.cjs.map +0 -1
  440. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.js +0 -22
  441. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/to-comparators.js.map +0 -1
  442. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.cjs +0 -27
  443. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.cjs.map +0 -1
  444. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.js +0 -25
  445. package/dist/__external/.pnpm/semver@7.7.2/__external/semver/ranges/valid.js.map +0 -1
  446. package/dist/_virtual/index.cjs +0 -8
  447. package/dist/_virtual/index.cjs.map +0 -1
  448. package/dist/_virtual/index.js +0 -6
  449. package/dist/_virtual/index.js.map +0 -1
  450. package/dist/_virtual/re.cjs +0 -6
  451. package/dist/_virtual/re.cjs.map +0 -1
  452. package/dist/_virtual/re.js +0 -4
  453. package/dist/_virtual/re.js.map +0 -1
  454. package/dist/block_registry/index.d.ts.map +0 -1
  455. package/dist/block_registry/registry-v2-provider.d.ts.map +0 -1
  456. package/dist/block_registry/registry.d.ts.map +0 -1
  457. package/dist/block_registry/registry.test.d.ts +0 -2
  458. package/dist/block_registry/registry.test.d.ts.map +0 -1
  459. package/dist/block_registry/watcher.d.ts.map +0 -1
  460. package/dist/block_registry/well_known_registries.d.ts.map +0 -1
  461. package/dist/cfg_render/executor.d.ts +0 -9
  462. package/dist/cfg_render/executor.d.ts.map +0 -1
  463. package/dist/cfg_render/executor.test.d.ts +0 -2
  464. package/dist/cfg_render/executor.test.d.ts.map +0 -1
  465. package/dist/cfg_render/operation.d.ts +0 -29
  466. package/dist/cfg_render/operation.d.ts.map +0 -1
  467. package/dist/cfg_render/renderer.d.ts +0 -6
  468. package/dist/cfg_render/renderer.d.ts.map +0 -1
  469. package/dist/cfg_render/traverse.d.ts +0 -3
  470. package/dist/cfg_render/traverse.d.ts.map +0 -1
  471. package/dist/cfg_render/util.d.ts +0 -5
  472. package/dist/cfg_render/util.d.ts.map +0 -1
  473. package/dist/debug/index.d.ts +0 -9
  474. package/dist/debug/index.d.ts.map +0 -1
  475. package/dist/dev_env/index.d.ts +0 -21
  476. package/dist/dev_env/index.d.ts.map +0 -1
  477. package/dist/dev_env/util.d.ts +0 -3
  478. package/dist/dev_env/util.d.ts.map +0 -1
  479. package/dist/index.cjs.map +0 -1
  480. package/dist/index.d.ts.map +0 -1
  481. package/dist/index.js.map +0 -1
  482. package/dist/js_render/computable_context.d.ts +0 -74
  483. package/dist/js_render/computable_context.d.ts.map +0 -1
  484. package/dist/js_render/context.d.ts +0 -73
  485. package/dist/js_render/context.d.ts.map +0 -1
  486. package/dist/js_render/index.d.ts +0 -57
  487. package/dist/js_render/index.d.ts.map +0 -1
  488. package/dist/middle_layer/active_cfg.d.ts +0 -6
  489. package/dist/middle_layer/active_cfg.d.ts.map +0 -1
  490. package/dist/middle_layer/block.d.ts +0 -10
  491. package/dist/middle_layer/block.d.ts.map +0 -1
  492. package/dist/middle_layer/block_ctx.d.ts +0 -23
  493. package/dist/middle_layer/block_ctx.d.ts.map +0 -1
  494. package/dist/middle_layer/block_ctx_unsafe.d.ts +0 -16
  495. package/dist/middle_layer/block_ctx_unsafe.d.ts.map +0 -1
  496. package/dist/middle_layer/driver_kit.d.ts.map +0 -1
  497. package/dist/middle_layer/frontend_path.d.ts +0 -6
  498. package/dist/middle_layer/frontend_path.d.ts.map +0 -1
  499. package/dist/middle_layer/index.d.ts.map +0 -1
  500. package/dist/middle_layer/middle_layer.d.ts.map +0 -1
  501. package/dist/middle_layer/navigation_states.d.ts +0 -10
  502. package/dist/middle_layer/navigation_states.d.ts.map +0 -1
  503. package/dist/middle_layer/ops.d.ts.map +0 -1
  504. package/dist/middle_layer/project.d.ts.map +0 -1
  505. package/dist/middle_layer/project_list.d.ts +0 -11
  506. package/dist/middle_layer/project_list.d.ts.map +0 -1
  507. package/dist/middle_layer/project_overview.d.ts +0 -8
  508. package/dist/middle_layer/project_overview.d.ts.map +0 -1
  509. package/dist/middle_layer/project_overview_light.d.ts +0 -8
  510. package/dist/middle_layer/project_overview_light.d.ts.map +0 -1
  511. package/dist/middle_layer/render.d.ts +0 -7
  512. package/dist/middle_layer/render.d.ts.map +0 -1
  513. package/dist/middle_layer/render.test.d.ts +0 -5
  514. package/dist/middle_layer/render.test.d.ts.map +0 -1
  515. package/dist/middle_layer/types.d.ts.map +0 -1
  516. package/dist/middle_layer/util.d.ts +0 -16
  517. package/dist/middle_layer/util.d.ts.map +0 -1
  518. package/dist/model/args.d.ts +0 -14
  519. package/dist/model/args.d.ts.map +0 -1
  520. package/dist/model/block_pack.d.ts +0 -8
  521. package/dist/model/block_pack.d.ts.map +0 -1
  522. package/dist/model/block_pack_spec.d.ts.map +0 -1
  523. package/dist/model/frontend.d.ts.map +0 -1
  524. package/dist/model/index.d.ts.map +0 -1
  525. package/dist/model/project_helper.d.ts.map +0 -1
  526. package/dist/model/project_model.d.ts.map +0 -1
  527. package/dist/model/project_model.test.d.ts +0 -2
  528. package/dist/model/project_model.test.d.ts.map +0 -1
  529. package/dist/model/project_model_util.d.ts +0 -43
  530. package/dist/model/project_model_util.d.ts.map +0 -1
  531. package/dist/model/project_model_util.test.d.ts +0 -2
  532. package/dist/model/project_model_util.test.d.ts.map +0 -1
  533. package/dist/model/project_model_v1.d.ts +0 -8
  534. package/dist/model/project_model_v1.d.ts.map +0 -1
  535. package/dist/model/template_spec.d.ts.map +0 -1
  536. package/dist/mutator/block-pack/block_pack.d.ts.map +0 -1
  537. package/dist/mutator/block-pack/block_pack.test.d.ts +0 -2
  538. package/dist/mutator/block-pack/block_pack.test.d.ts.map +0 -1
  539. package/dist/mutator/block-pack/frontend.d.ts +0 -4
  540. package/dist/mutator/block-pack/frontend.d.ts.map +0 -1
  541. package/dist/mutator/context_export.d.ts +0 -9
  542. package/dist/mutator/context_export.d.ts.map +0 -1
  543. package/dist/mutator/migration.d.ts +0 -9
  544. package/dist/mutator/migration.d.ts.map +0 -1
  545. package/dist/mutator/project-v3.test.d.ts +0 -2
  546. package/dist/mutator/project-v3.test.d.ts.map +0 -1
  547. package/dist/mutator/project.d.ts +0 -211
  548. package/dist/mutator/project.d.ts.map +0 -1
  549. package/dist/mutator/project.test.d.ts +0 -2
  550. package/dist/mutator/project.test.d.ts.map +0 -1
  551. package/dist/mutator/template/direct_template_loader.d.ts +0 -5
  552. package/dist/mutator/template/direct_template_loader.d.ts.map +0 -1
  553. package/dist/mutator/template/direct_template_loader_v3.d.ts +0 -15
  554. package/dist/mutator/template/direct_template_loader_v3.d.ts.map +0 -1
  555. package/dist/mutator/template/render_block.d.ts +0 -32
  556. package/dist/mutator/template/render_block.d.ts.map +0 -1
  557. package/dist/mutator/template/render_template.d.ts.map +0 -1
  558. package/dist/mutator/template/template_loading.d.ts.map +0 -1
  559. package/dist/mutator/template/template_render.test.d.ts +0 -2
  560. package/dist/mutator/template/template_render.test.d.ts.map +0 -1
  561. package/dist/network_check/network_check.d.ts.map +0 -1
  562. package/dist/network_check/network_check.test.d.ts +0 -2
  563. package/dist/network_check/network_check.test.d.ts.map +0 -1
  564. package/dist/network_check/pings.d.ts +0 -32
  565. package/dist/network_check/pings.d.ts.map +0 -1
  566. package/dist/network_check/template.d.ts +0 -57
  567. package/dist/network_check/template.d.ts.map +0 -1
  568. package/dist/network_check/template.test.d.ts +0 -2
  569. package/dist/network_check/template.test.d.ts.map +0 -1
  570. package/dist/network_check/test_utils.d.ts +0 -6
  571. package/dist/network_check/test_utils.d.ts.map +0 -1
  572. package/dist/pool/data.d.ts.map +0 -1
  573. package/dist/pool/driver.d.ts.map +0 -1
  574. package/dist/pool/index.d.ts.map +0 -1
  575. package/dist/pool/p_object_collection.d.ts.map +0 -1
  576. package/dist/pool/result_pool.d.ts.map +0 -1
  577. package/dist/test/block_packs.d.ts +0 -6
  578. package/dist/test/block_packs.d.ts.map +0 -1
  579. package/dist/test/explicit_templates.d.ts +0 -3
  580. package/dist/test/explicit_templates.d.ts.map +0 -1
  581. package/dist/test/known_templates.d.ts +0 -6
  582. package/dist/test/known_templates.d.ts.map +0 -1
  583. package/dist/test_env.d.ts +0 -6
  584. package/dist/test_env.d.ts.map +0 -1
  585. package/dist/worker/WorkerManager.d.ts +0 -12
  586. package/dist/worker/WorkerManager.d.ts.map +0 -1
  587. package/dist/worker/worker.d.ts.map +0 -1
  588. package/dist/worker/workerApi.d.ts +0 -15
  589. package/dist/worker/workerApi.d.ts.map +0 -1
@@ -1,228 +1,195 @@
1
- import { request } from 'undici';
2
- import { RegistryV1, tryLoadPackDescription, BlockPackMetaEmbedAbsoluteBytes } from '@platforma-sdk/block-tools';
3
- import fs from 'node:fs';
4
- import path from 'node:path';
5
- import YAML from 'yaml';
6
- import { assertNever } from '@milaboratories/ts-helpers';
7
- import { LegacyDevBlockPackFiles } from '../dev_env/index.js';
8
- import { StableChannel, AnyChannel } from '@milaboratories/pl-model-middle-layer';
1
+ import { LegacyDevBlockPackFiles } from "../dev_env/index.js";
2
+ import { AnyChannel, StableChannel } from "@milaboratories/pl-model-middle-layer";
3
+ import { request } from "undici";
4
+ import { BlockPackMetaEmbedAbsoluteBytes, RegistryV1, tryLoadPackDescription } from "@platforma-sdk/block-tools";
5
+ import fs from "node:fs";
6
+ import path from "node:path";
7
+ import YAML from "yaml";
8
+ import { assertNever } from "@milaboratories/ts-helpers";
9
9
 
10
+ //#region src/block_registry/registry.ts
10
11
  async function getFileContent(path) {
11
- try {
12
- return await fs.promises.readFile(path, "utf8");
13
- }
14
- catch (error) {
15
- if (error instanceof Error && "code" in error && error.code === "ENOENT") {
16
- return undefined;
17
- }
18
- throw error;
19
- }
12
+ try {
13
+ return await fs.promises.readFile(path, "utf8");
14
+ } catch (error) {
15
+ if (error instanceof Error && "code" in error && error.code === "ENOENT") return;
16
+ throw error;
17
+ }
20
18
  }
21
19
  async function getFileStat(path) {
22
- try {
23
- return await fs.promises.stat(path, { bigint: true });
24
- }
25
- catch (error) {
26
- if (error instanceof Error && "code" in error && error.code === "ENOENT") {
27
- return undefined;
28
- }
29
- throw error;
30
- }
20
+ try {
21
+ return await fs.promises.stat(path, { bigint: true });
22
+ } catch (error) {
23
+ if (error instanceof Error && "code" in error && error.code === "ENOENT") return;
24
+ throw error;
25
+ }
31
26
  }
32
27
  async function getDevV1PacketMtime(devPath) {
33
- let mtime = 0n;
34
- for (const f of LegacyDevBlockPackFiles) {
35
- const fullPath = path.join(devPath, ...f);
36
- const stat = await getFileStat(fullPath);
37
- if (stat === undefined)
38
- continue;
39
- if (mtime < stat.mtimeNs)
40
- mtime = stat.mtimeNs;
41
- }
42
- return mtime.toString();
28
+ let mtime = 0n;
29
+ for (const f of LegacyDevBlockPackFiles) {
30
+ const stat = await getFileStat(path.join(devPath, ...f));
31
+ if (stat === void 0) continue;
32
+ if (mtime < stat.mtimeNs) mtime = stat.mtimeNs;
33
+ }
34
+ return mtime.toString();
43
35
  }
44
36
  async function getDevV2PacketMtime(description) {
45
- const wfStats = await fs.promises.stat(description.components.workflow.main.file, {
46
- bigint: true,
47
- });
48
- const modelStats = await fs.promises.stat(description.components.model.file, { bigint: true });
49
- return (wfStats.mtimeNs > modelStats.mtimeNs ? wfStats.mtimeNs : modelStats.mtimeNs).toString();
50
- }
51
- class BlockPackRegistry {
52
- v2Provider;
53
- registries;
54
- http;
55
- constructor(v2Provider, registries, http) {
56
- this.v2Provider = v2Provider;
57
- this.registries = registries;
58
- this.http = http;
59
- }
60
- async getPackagesForRoot(regEntry) {
61
- const result = [];
62
- const regSpec = regEntry.spec;
63
- switch (regSpec.type) {
64
- case "remote-v1": {
65
- const httpOptions = this.http !== undefined ? { dispatcher: this.http } : {};
66
- const overviewResponse = await request(`${regSpec.url}/${RegistryV1.GlobalOverviewPath}`, httpOptions);
67
- const overview = (await overviewResponse.body.json());
68
- for (const overviewEntry of overview) {
69
- const { organization, package: pkg, latestMeta, latestVersion } = overviewEntry;
70
- const id = {
71
- organization,
72
- name: pkg,
73
- version: latestVersion,
74
- };
75
- const latestOverview = {
76
- id,
77
- meta: {
78
- title: latestMeta["title"] ?? "No title",
79
- description: latestMeta["description"] ?? "No Description",
80
- organization: {
81
- name: organization,
82
- url: "https://unknown.com",
83
- },
84
- },
85
- spec: {
86
- type: "from-registry-v1",
87
- id,
88
- registryUrl: regSpec.url,
89
- },
90
- };
91
- result.push({
92
- registryId: regEntry.id,
93
- id,
94
- latestByChannel: {
95
- [AnyChannel]: latestOverview,
96
- [StableChannel]: latestOverview,
97
- },
98
- allVersions: overviewEntry.allVersions.map((v) => ({ version: v, channels: [] })),
99
- });
100
- }
101
- return result;
102
- }
103
- case "remote-v2":
104
- return (await this.v2Provider.getRegistry(regSpec.url).listBlockPacks()).map((e) => ({
105
- ...e,
106
- registryId: regEntry.id,
107
- }));
108
- // e.latestByChannel[StableChannel]
109
- // ? {
110
- // ...e,
111
- // registryId: regEntry.id,
112
- // }
113
- // : {
114
- // ...e,
115
- // latestByChannel: {
116
- // ...e.latestByChannel,
117
- // [StableChannel]: ((s: SingleBlockPackOverview) => {
118
- // if (s.spec.type === 'from-registry-v2') {
119
- // return { ...s, spec: { ...s.spec, channel: StableChannel } };
120
- // }
121
- // return s;
122
- // })(e.latestByChannel[AnyChannel]),
123
- // },
124
- // registryId: regEntry.id,
125
- // },
126
- case "local-dev":
127
- for (const entry of await fs.promises.readdir(regSpec.path, { withFileTypes: true })) {
128
- if (!entry.isDirectory())
129
- continue;
130
- const devPath = path.join(regSpec.path, entry.name);
131
- const legacyYamlContent = await getFileContent(path.join(devPath, RegistryV1.PlPackageYamlConfigFile));
132
- if (legacyYamlContent !== undefined) {
133
- const config = RegistryV1.PlPackageConfigData.parse(YAML.parse(legacyYamlContent));
134
- const mtime = await getDevV1PacketMtime(devPath);
135
- const id = {
136
- organization: config.organization,
137
- name: config.package,
138
- version: "DEV",
139
- };
140
- const latestOverview = {
141
- id,
142
- meta: {
143
- title: config.meta["title"] ?? "No title",
144
- description: config.meta["description"] ?? "No Description",
145
- organization: {
146
- name: config.organization,
147
- url: "https://unknown.com",
148
- },
149
- },
150
- spec: {
151
- type: "dev-v2",
152
- folder: devPath,
153
- mtime,
154
- },
155
- };
156
- result.push({
157
- registryId: regEntry.id,
158
- id,
159
- latestByChannel: {
160
- [AnyChannel]: latestOverview,
161
- [StableChannel]: latestOverview,
162
- },
163
- allVersions: [],
164
- });
165
- }
166
- else {
167
- let actualDevPath = devPath;
168
- let v2Description = await tryLoadPackDescription(actualDevPath);
169
- if (v2Description === undefined)
170
- // iterating over expected subfolder names where block developer may put root block-pack package
171
- for (const bpSubfolder of ["block", "meta"]) {
172
- actualDevPath = path.join(devPath, bpSubfolder);
173
- v2Description = await tryLoadPackDescription(actualDevPath);
174
- if (v2Description !== undefined)
175
- break;
176
- }
177
- if (v2Description !== undefined) {
178
- const mtime = await getDevV2PacketMtime(v2Description);
179
- const latestOverview = {
180
- id: v2Description.id,
181
- meta: await BlockPackMetaEmbedAbsoluteBytes.parseAsync(v2Description.meta),
182
- featureFlags: v2Description.featureFlags,
183
- spec: {
184
- type: "dev-v2",
185
- folder: actualDevPath,
186
- mtime,
187
- },
188
- };
189
- result.push({
190
- registryId: regEntry.id,
191
- id: v2Description.id,
192
- latestByChannel: {
193
- [AnyChannel]: latestOverview,
194
- [StableChannel]: latestOverview,
195
- },
196
- allVersions: [],
197
- });
198
- }
199
- }
200
- continue;
201
- }
202
- return result;
203
- default:
204
- return assertNever(regSpec);
205
- }
206
- }
207
- async listBlockPacks() {
208
- const blockPacks = [];
209
- const registries = [];
210
- for (const regSpecs of this.registries) {
211
- registries.push({ ...regSpecs, status: "online" });
212
- blockPacks.push(...(await this.getPackagesForRoot(regSpecs)));
213
- }
214
- return { registries, blockPacks };
215
- }
216
- async getOverview(registryId, blockId, channel) {
217
- const regSpec = this.registries.find((reg) => reg.id === registryId)?.spec;
218
- if (!regSpec)
219
- throw new Error(`Registry with id "${registryId}" not found`);
220
- if (regSpec.type !== "remote-v2")
221
- throw new Error(`Only "remote-v2" registries support specific package version overview retrieval.`);
222
- const reg = this.v2Provider.getRegistry(regSpec.url);
223
- return await reg.getSpecificOverview(blockId, channel);
224
- }
37
+ const wfStats = await fs.promises.stat(description.components.workflow.main.file, { bigint: true });
38
+ const modelStats = await fs.promises.stat(description.components.model.file, { bigint: true });
39
+ return (wfStats.mtimeNs > modelStats.mtimeNs ? wfStats.mtimeNs : modelStats.mtimeNs).toString();
225
40
  }
41
+ var BlockPackRegistry = class {
42
+ constructor(v2Provider, registries, http) {
43
+ this.v2Provider = v2Provider;
44
+ this.registries = registries;
45
+ this.http = http;
46
+ }
47
+ async getPackagesForRoot(regEntry) {
48
+ const result = [];
49
+ const regSpec = regEntry.spec;
50
+ switch (regSpec.type) {
51
+ case "remote-v1": {
52
+ const httpOptions = this.http !== void 0 ? { dispatcher: this.http } : {};
53
+ const overview = await (await request(`${regSpec.url}/${RegistryV1.GlobalOverviewPath}`, httpOptions)).body.json();
54
+ for (const overviewEntry of overview) {
55
+ const { organization, package: pkg, latestMeta, latestVersion } = overviewEntry;
56
+ const id = {
57
+ organization,
58
+ name: pkg,
59
+ version: latestVersion
60
+ };
61
+ const latestOverview = {
62
+ id,
63
+ meta: {
64
+ title: latestMeta["title"] ?? "No title",
65
+ description: latestMeta["description"] ?? "No Description",
66
+ organization: {
67
+ name: organization,
68
+ url: "https://unknown.com"
69
+ }
70
+ },
71
+ spec: {
72
+ type: "from-registry-v1",
73
+ id,
74
+ registryUrl: regSpec.url
75
+ }
76
+ };
77
+ result.push({
78
+ registryId: regEntry.id,
79
+ id,
80
+ latestByChannel: {
81
+ [AnyChannel]: latestOverview,
82
+ [StableChannel]: latestOverview
83
+ },
84
+ allVersions: overviewEntry.allVersions.map((v) => ({
85
+ version: v,
86
+ channels: []
87
+ }))
88
+ });
89
+ }
90
+ return result;
91
+ }
92
+ case "remote-v2": return (await this.v2Provider.getRegistry(regSpec.url).listBlockPacks()).map((e) => ({
93
+ ...e,
94
+ registryId: regEntry.id
95
+ }));
96
+ case "local-dev":
97
+ for (const entry of await fs.promises.readdir(regSpec.path, { withFileTypes: true })) {
98
+ if (!entry.isDirectory()) continue;
99
+ const devPath = path.join(regSpec.path, entry.name);
100
+ const legacyYamlContent = await getFileContent(path.join(devPath, RegistryV1.PlPackageYamlConfigFile));
101
+ if (legacyYamlContent !== void 0) {
102
+ const config = RegistryV1.PlPackageConfigData.parse(YAML.parse(legacyYamlContent));
103
+ const mtime = await getDevV1PacketMtime(devPath);
104
+ const id = {
105
+ organization: config.organization,
106
+ name: config.package,
107
+ version: "DEV"
108
+ };
109
+ const latestOverview = {
110
+ id,
111
+ meta: {
112
+ title: config.meta["title"] ?? "No title",
113
+ description: config.meta["description"] ?? "No Description",
114
+ organization: {
115
+ name: config.organization,
116
+ url: "https://unknown.com"
117
+ }
118
+ },
119
+ spec: {
120
+ type: "dev-v2",
121
+ folder: devPath,
122
+ mtime
123
+ }
124
+ };
125
+ result.push({
126
+ registryId: regEntry.id,
127
+ id,
128
+ latestByChannel: {
129
+ [AnyChannel]: latestOverview,
130
+ [StableChannel]: latestOverview
131
+ },
132
+ allVersions: []
133
+ });
134
+ } else {
135
+ let actualDevPath = devPath;
136
+ let v2Description = await tryLoadPackDescription(actualDevPath);
137
+ if (v2Description === void 0) for (const bpSubfolder of ["block", "meta"]) {
138
+ actualDevPath = path.join(devPath, bpSubfolder);
139
+ v2Description = await tryLoadPackDescription(actualDevPath);
140
+ if (v2Description !== void 0) break;
141
+ }
142
+ if (v2Description !== void 0) {
143
+ const mtime = await getDevV2PacketMtime(v2Description);
144
+ const latestOverview = {
145
+ id: v2Description.id,
146
+ meta: await BlockPackMetaEmbedAbsoluteBytes.parseAsync(v2Description.meta),
147
+ featureFlags: v2Description.featureFlags,
148
+ spec: {
149
+ type: "dev-v2",
150
+ folder: actualDevPath,
151
+ mtime
152
+ }
153
+ };
154
+ result.push({
155
+ registryId: regEntry.id,
156
+ id: v2Description.id,
157
+ latestByChannel: {
158
+ [AnyChannel]: latestOverview,
159
+ [StableChannel]: latestOverview
160
+ },
161
+ allVersions: []
162
+ });
163
+ }
164
+ }
165
+ }
166
+ return result;
167
+ default: return assertNever(regSpec);
168
+ }
169
+ }
170
+ async listBlockPacks() {
171
+ const blockPacks = [];
172
+ const registries = [];
173
+ for (const regSpecs of this.registries) {
174
+ registries.push({
175
+ ...regSpecs,
176
+ status: "online"
177
+ });
178
+ blockPacks.push(...await this.getPackagesForRoot(regSpecs));
179
+ }
180
+ return {
181
+ registries,
182
+ blockPacks
183
+ };
184
+ }
185
+ async getOverview(registryId, blockId, channel) {
186
+ const regSpec = this.registries.find((reg) => reg.id === registryId)?.spec;
187
+ if (!regSpec) throw new Error(`Registry with id "${registryId}" not found`);
188
+ if (regSpec.type !== "remote-v2") throw new Error(`Only "remote-v2" registries support specific package version overview retrieval.`);
189
+ return await this.v2Provider.getRegistry(regSpec.url).getSpecificOverview(blockId, channel);
190
+ }
191
+ };
226
192
 
193
+ //#endregion
227
194
  export { BlockPackRegistry, getDevV1PacketMtime, getDevV2PacketMtime };
228
- //# sourceMappingURL=registry.js.map
195
+ //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sources":["../../src/block_registry/registry.ts"],"sourcesContent":["import type { Dispatcher } from \"undici\";\nimport { request } from \"undici\";\nimport type { BlockPackDescriptionAbsolute } from \"@platforma-sdk/block-tools\";\nimport { BlockPackMetaEmbedAbsoluteBytes, RegistryV1 } from \"@platforma-sdk/block-tools\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport YAML from \"yaml\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\nimport { LegacyDevBlockPackFiles } from \"../dev_env\";\nimport { tryLoadPackDescription } from \"@platforma-sdk/block-tools\";\nimport type { V2RegistryProvider } from \"./registry-v2-provider\";\nimport type {\n BlockPackId,\n BlockPackListing,\n BlockPackOverview,\n RegistryEntry,\n RegistryStatus,\n SingleBlockPackOverview,\n} from \"@milaboratories/pl-model-middle-layer\";\nimport { AnyChannel, StableChannel } from \"@milaboratories/pl-model-middle-layer\";\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, \"utf8\");\n } catch (error: unknown) {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") {\n return undefined;\n }\n throw error;\n }\n}\n\nasync function getFileStat(path: string) {\n try {\n return await fs.promises.stat(path, { bigint: true });\n } catch (error: unknown) {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") {\n return undefined;\n }\n throw error;\n }\n}\n\nexport async function getDevV1PacketMtime(devPath: string): Promise<string> {\n let mtime = 0n;\n for (const f of LegacyDevBlockPackFiles) {\n const fullPath = path.join(devPath, ...f);\n const stat = await getFileStat(fullPath);\n if (stat === undefined) continue;\n if (mtime < stat.mtimeNs) mtime = stat.mtimeNs;\n }\n return mtime.toString();\n}\n\nexport async function getDevV2PacketMtime(\n description: BlockPackDescriptionAbsolute,\n): Promise<string> {\n const wfStats = await fs.promises.stat(description.components.workflow.main.file, {\n bigint: true,\n });\n const modelStats = await fs.promises.stat(description.components.model.file, { bigint: true });\n return (wfStats.mtimeNs > modelStats.mtimeNs ? wfStats.mtimeNs : modelStats.mtimeNs).toString();\n}\n\nexport class BlockPackRegistry {\n constructor(\n private readonly v2Provider: V2RegistryProvider,\n private readonly registries: RegistryEntry[],\n private readonly http?: Dispatcher,\n ) {}\n\n private async getPackagesForRoot(regEntry: RegistryEntry): Promise<BlockPackOverview[]> {\n const result: BlockPackOverview[] = [];\n const regSpec = regEntry.spec;\n switch (regSpec.type) {\n case \"remote-v1\": {\n const httpOptions = this.http !== undefined ? { dispatcher: this.http } : {};\n\n const overviewResponse = await request(\n `${regSpec.url}/${RegistryV1.GlobalOverviewPath}`,\n httpOptions,\n );\n const overview = (await overviewResponse.body.json()) as RegistryV1.GlobalOverview;\n for (const overviewEntry of overview) {\n const { organization, package: pkg, latestMeta, latestVersion } = overviewEntry;\n const id = {\n organization,\n name: pkg,\n version: latestVersion,\n };\n const latestOverview: SingleBlockPackOverview = {\n id,\n meta: {\n title: (latestMeta[\"title\"] as string | undefined) ?? \"No title\",\n description: (latestMeta[\"description\"] as string | undefined) ?? \"No Description\",\n organization: {\n name: organization,\n url: \"https://unknown.com\",\n },\n },\n spec: {\n type: \"from-registry-v1\",\n id,\n registryUrl: regSpec.url,\n },\n };\n result.push({\n registryId: regEntry.id,\n id,\n latestByChannel: {\n [AnyChannel]: latestOverview,\n [StableChannel]: latestOverview,\n },\n allVersions: overviewEntry.allVersions.map((v) => ({ version: v, channels: [] })),\n });\n }\n return result;\n }\n\n case \"remote-v2\":\n return (await this.v2Provider.getRegistry(regSpec.url).listBlockPacks()).map((e) => ({\n ...e,\n registryId: regEntry.id,\n }));\n // e.latestByChannel[StableChannel]\n // ? {\n // ...e,\n // registryId: regEntry.id,\n // }\n // : {\n // ...e,\n // latestByChannel: {\n // ...e.latestByChannel,\n // [StableChannel]: ((s: SingleBlockPackOverview) => {\n // if (s.spec.type === 'from-registry-v2') {\n // return { ...s, spec: { ...s.spec, channel: StableChannel } };\n // }\n\n // return s;\n // })(e.latestByChannel[AnyChannel]),\n // },\n // registryId: regEntry.id,\n // },\n\n case \"local-dev\":\n for (const entry of await fs.promises.readdir(regSpec.path, { withFileTypes: true })) {\n if (!entry.isDirectory()) continue;\n const devPath = path.join(regSpec.path, entry.name);\n\n const legacyYamlContent = await getFileContent(\n path.join(devPath, RegistryV1.PlPackageYamlConfigFile),\n );\n if (legacyYamlContent !== undefined) {\n const config = RegistryV1.PlPackageConfigData.parse(YAML.parse(legacyYamlContent));\n\n const mtime = await getDevV1PacketMtime(devPath);\n\n const id = {\n organization: config.organization,\n name: config.package,\n version: \"DEV\",\n };\n\n const latestOverview: SingleBlockPackOverview = {\n id,\n meta: {\n title: (config.meta[\"title\"] as string) ?? \"No title\",\n description: (config.meta[\"description\"] as string) ?? \"No Description\",\n organization: {\n name: config.organization,\n url: \"https://unknown.com\",\n },\n },\n spec: {\n type: \"dev-v2\",\n folder: devPath,\n mtime,\n },\n };\n\n result.push({\n registryId: regEntry.id,\n id,\n latestByChannel: {\n [AnyChannel]: latestOverview,\n [StableChannel]: latestOverview,\n },\n allVersions: [],\n });\n } else {\n let actualDevPath = devPath;\n let v2Description = await tryLoadPackDescription(actualDevPath);\n\n if (v2Description === undefined)\n // iterating over expected subfolder names where block developer may put root block-pack package\n for (const bpSubfolder of [\"block\", \"meta\"]) {\n actualDevPath = path.join(devPath, bpSubfolder);\n v2Description = await tryLoadPackDescription(actualDevPath);\n if (v2Description !== undefined) break;\n }\n\n if (v2Description !== undefined) {\n const mtime = await getDevV2PacketMtime(v2Description);\n\n const latestOverview: SingleBlockPackOverview = {\n id: v2Description.id,\n meta: await BlockPackMetaEmbedAbsoluteBytes.parseAsync(v2Description.meta),\n featureFlags: v2Description.featureFlags,\n spec: {\n type: \"dev-v2\",\n folder: actualDevPath,\n mtime,\n },\n };\n\n result.push({\n registryId: regEntry.id,\n id: v2Description.id,\n latestByChannel: {\n [AnyChannel]: latestOverview,\n [StableChannel]: latestOverview,\n },\n allVersions: [],\n });\n }\n }\n\n continue;\n }\n return result;\n default:\n return assertNever(regSpec);\n }\n }\n\n public async listBlockPacks(): Promise<BlockPackListing> {\n const blockPacks: BlockPackOverview[] = [];\n const registries: RegistryStatus[] = [];\n for (const regSpecs of this.registries) {\n registries.push({ ...regSpecs, status: \"online\" });\n blockPacks.push(...(await this.getPackagesForRoot(regSpecs)));\n }\n return { registries, blockPacks };\n }\n\n public async getOverview(\n registryId: string,\n blockId: BlockPackId,\n channel: string,\n ): Promise<SingleBlockPackOverview> {\n const regSpec = this.registries.find((reg) => reg.id === registryId)?.spec;\n if (!regSpec) throw new Error(`Registry with id \"${registryId}\" not found`);\n if (regSpec.type !== \"remote-v2\")\n throw new Error(\n `Only \"remote-v2\" registries support specific package version overview retrieval.`,\n );\n const reg = this.v2Provider.getRegistry(regSpec.url);\n return await reg.getSpecificOverview(blockId, channel);\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAqBA,eAAe,cAAc,CAAC,IAAY,EAAA;AACxC,IAAA,IAAI;QACF,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACjD;IAAE,OAAO,KAAc,EAAE;AACvB,QAAA,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxE,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,KAAK;IACb;AACF;AAEA,eAAe,WAAW,CAAC,IAAY,EAAA;AACrC,IAAA,IAAI;AACF,QAAA,OAAO,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IACvD;IAAE,OAAO,KAAc,EAAE;AACvB,QAAA,IAAI,KAAK,YAAY,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxE,YAAA,OAAO,SAAS;QAClB;AACA,QAAA,MAAM,KAAK;IACb;AACF;AAEO,eAAe,mBAAmB,CAAC,OAAe,EAAA;IACvD,IAAI,KAAK,GAAG,EAAE;AACd,IAAA,KAAK,MAAM,CAAC,IAAI,uBAAuB,EAAE;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AACzC,QAAA,MAAM,IAAI,GAAG,MAAM,WAAW,CAAC,QAAQ,CAAC;QACxC,IAAI,IAAI,KAAK,SAAS;YAAE;AACxB,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,OAAO;AAAE,YAAA,KAAK,GAAG,IAAI,CAAC,OAAO;IAChD;AACA,IAAA,OAAO,KAAK,CAAC,QAAQ,EAAE;AACzB;AAEO,eAAe,mBAAmB,CACvC,WAAyC,EAAA;AAEzC,IAAA,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE;AAChF,QAAA,MAAM,EAAE,IAAI;AACb,KAAA,CAAC;IACF,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC9F,OAAO,CAAC,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,QAAQ,EAAE;AACjG;MAEa,iBAAiB,CAAA;AAET,IAAA,UAAA;AACA,IAAA,UAAA;AACA,IAAA,IAAA;AAHnB,IAAA,WAAA,CACmB,UAA8B,EAC9B,UAA2B,EAC3B,IAAiB,EAAA;QAFjB,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,UAAU,GAAV,UAAU;QACV,IAAA,CAAA,IAAI,GAAJ,IAAI;IACpB;IAEK,MAAM,kBAAkB,CAAC,QAAuB,EAAA;QACtD,MAAM,MAAM,GAAwB,EAAE;AACtC,QAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI;AAC7B,QAAA,QAAQ,OAAO,CAAC,IAAI;YAClB,KAAK,WAAW,EAAE;gBAChB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,GAAG,EAAE,UAAU,EAAE,IAAI,CAAC,IAAI,EAAE,GAAG,EAAE;AAE5E,gBAAA,MAAM,gBAAgB,GAAG,MAAM,OAAO,CACpC,GAAG,OAAO,CAAC,GAAG,CAAA,CAAA,EAAI,UAAU,CAAC,kBAAkB,EAAE,EACjD,WAAW,CACZ;gBACD,MAAM,QAAQ,IAAI,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAA8B;AAClF,gBAAA,KAAK,MAAM,aAAa,IAAI,QAAQ,EAAE;AACpC,oBAAA,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,aAAa;AAC/E,oBAAA,MAAM,EAAE,GAAG;wBACT,YAAY;AACZ,wBAAA,IAAI,EAAE,GAAG;AACT,wBAAA,OAAO,EAAE,aAAa;qBACvB;AACD,oBAAA,MAAM,cAAc,GAA4B;wBAC9C,EAAE;AACF,wBAAA,IAAI,EAAE;AACJ,4BAAA,KAAK,EAAG,UAAU,CAAC,OAAO,CAAwB,IAAI,UAAU;AAChE,4BAAA,WAAW,EAAG,UAAU,CAAC,aAAa,CAAwB,IAAI,gBAAgB;AAClF,4BAAA,YAAY,EAAE;AACZ,gCAAA,IAAI,EAAE,YAAY;AAClB,gCAAA,GAAG,EAAE,qBAAqB;AAC3B,6BAAA;AACF,yBAAA;AACD,wBAAA,IAAI,EAAE;AACJ,4BAAA,IAAI,EAAE,kBAAkB;4BACxB,EAAE;4BACF,WAAW,EAAE,OAAO,CAAC,GAAG;AACzB,yBAAA;qBACF;oBACD,MAAM,CAAC,IAAI,CAAC;wBACV,UAAU,EAAE,QAAQ,CAAC,EAAE;wBACvB,EAAE;AACF,wBAAA,eAAe,EAAE;4BACf,CAAC,UAAU,GAAG,cAAc;4BAC5B,CAAC,aAAa,GAAG,cAAc;AAChC,yBAAA;wBACD,WAAW,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAClF,qBAAA,CAAC;gBACJ;AACA,gBAAA,OAAO,MAAM;YACf;AAEA,YAAA,KAAK,WAAW;gBACd,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,cAAc,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM;AACnF,oBAAA,GAAG,CAAC;oBACJ,UAAU,EAAE,QAAQ,CAAC,EAAE;AACxB,iBAAA,CAAC,CAAC;;;;;;;;;;;;;;;;;;;AAqBL,YAAA,KAAK,WAAW;gBACd,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE;AACpF,oBAAA,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE;wBAAE;AAC1B,oBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;AAEnD,oBAAA,MAAM,iBAAiB,GAAG,MAAM,cAAc,CAC5C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,uBAAuB,CAAC,CACvD;AACD,oBAAA,IAAI,iBAAiB,KAAK,SAAS,EAAE;AACnC,wBAAA,MAAM,MAAM,GAAG,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;AAElF,wBAAA,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,OAAO,CAAC;AAEhD,wBAAA,MAAM,EAAE,GAAG;4BACT,YAAY,EAAE,MAAM,CAAC,YAAY;4BACjC,IAAI,EAAE,MAAM,CAAC,OAAO;AACpB,4BAAA,OAAO,EAAE,KAAK;yBACf;AAED,wBAAA,MAAM,cAAc,GAA4B;4BAC9C,EAAE;AACF,4BAAA,IAAI,EAAE;gCACJ,KAAK,EAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAY,IAAI,UAAU;gCACrD,WAAW,EAAG,MAAM,CAAC,IAAI,CAAC,aAAa,CAAY,IAAI,gBAAgB;AACvE,gCAAA,YAAY,EAAE;oCACZ,IAAI,EAAE,MAAM,CAAC,YAAY;AACzB,oCAAA,GAAG,EAAE,qBAAqB;AAC3B,iCAAA;AACF,6BAAA;AACD,4BAAA,IAAI,EAAE;AACJ,gCAAA,IAAI,EAAE,QAAQ;AACd,gCAAA,MAAM,EAAE,OAAO;gCACf,KAAK;AACN,6BAAA;yBACF;wBAED,MAAM,CAAC,IAAI,CAAC;4BACV,UAAU,EAAE,QAAQ,CAAC,EAAE;4BACvB,EAAE;AACF,4BAAA,eAAe,EAAE;gCACf,CAAC,UAAU,GAAG,cAAc;gCAC5B,CAAC,aAAa,GAAG,cAAc;AAChC,6BAAA;AACD,4BAAA,WAAW,EAAE,EAAE;AAChB,yBAAA,CAAC;oBACJ;yBAAO;wBACL,IAAI,aAAa,GAAG,OAAO;AAC3B,wBAAA,IAAI,aAAa,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC;wBAE/D,IAAI,aAAa,KAAK,SAAS;;4BAE7B,KAAK,MAAM,WAAW,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE;gCAC3C,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC;AAC/C,gCAAA,aAAa,GAAG,MAAM,sBAAsB,CAAC,aAAa,CAAC;gCAC3D,IAAI,aAAa,KAAK,SAAS;oCAAE;4BACnC;AAEF,wBAAA,IAAI,aAAa,KAAK,SAAS,EAAE;AAC/B,4BAAA,MAAM,KAAK,GAAG,MAAM,mBAAmB,CAAC,aAAa,CAAC;AAEtD,4BAAA,MAAM,cAAc,GAA4B;gCAC9C,EAAE,EAAE,aAAa,CAAC,EAAE;gCACpB,IAAI,EAAE,MAAM,+BAA+B,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC;gCAC1E,YAAY,EAAE,aAAa,CAAC,YAAY;AACxC,gCAAA,IAAI,EAAE;AACJ,oCAAA,IAAI,EAAE,QAAQ;AACd,oCAAA,MAAM,EAAE,aAAa;oCACrB,KAAK;AACN,iCAAA;6BACF;4BAED,MAAM,CAAC,IAAI,CAAC;gCACV,UAAU,EAAE,QAAQ,CAAC,EAAE;gCACvB,EAAE,EAAE,aAAa,CAAC,EAAE;AACpB,gCAAA,eAAe,EAAE;oCACf,CAAC,UAAU,GAAG,cAAc;oCAC5B,CAAC,aAAa,GAAG,cAAc;AAChC,iCAAA;AACD,gCAAA,WAAW,EAAE,EAAE;AAChB,6BAAA,CAAC;wBACJ;oBACF;oBAEA;gBACF;AACA,gBAAA,OAAO,MAAM;AACf,YAAA;AACE,gBAAA,OAAO,WAAW,CAAC,OAAO,CAAC;;IAEjC;AAEO,IAAA,MAAM,cAAc,GAAA;QACzB,MAAM,UAAU,GAAwB,EAAE;QAC1C,MAAM,UAAU,GAAqB,EAAE;AACvC,QAAA,KAAK,MAAM,QAAQ,IAAI,IAAI,CAAC,UAAU,EAAE;AACtC,YAAA,UAAU,CAAC,IAAI,CAAC,EAAE,GAAG,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC;AAClD,YAAA,UAAU,CAAC,IAAI,CAAC,IAAI,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC/D;AACA,QAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE;IACnC;AAEO,IAAA,MAAM,WAAW,CACtB,UAAkB,EAClB,OAAoB,EACpB,OAAe,EAAA;QAEf,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,EAAE,KAAK,UAAU,CAAC,EAAE,IAAI;AAC1E,QAAA,IAAI,CAAC,OAAO;AAAE,YAAA,MAAM,IAAI,KAAK,CAAC,qBAAqB,UAAU,CAAA,WAAA,CAAa,CAAC;AAC3E,QAAA,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW;AAC9B,YAAA,MAAM,IAAI,KAAK,CACb,CAAA,gFAAA,CAAkF,CACnF;AACH,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC;QACpD,OAAO,MAAM,GAAG,CAAC,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC;IACxD;AACD;;;;"}
1
+ {"version":3,"file":"registry.js","names":[],"sources":["../../src/block_registry/registry.ts"],"sourcesContent":["import type { Dispatcher } from \"undici\";\nimport { request } from \"undici\";\nimport type { BlockPackDescriptionAbsolute } from \"@platforma-sdk/block-tools\";\nimport { BlockPackMetaEmbedAbsoluteBytes, RegistryV1 } from \"@platforma-sdk/block-tools\";\nimport fs from \"node:fs\";\nimport path from \"node:path\";\nimport YAML from \"yaml\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\nimport { LegacyDevBlockPackFiles } from \"../dev_env\";\nimport { tryLoadPackDescription } from \"@platforma-sdk/block-tools\";\nimport type { V2RegistryProvider } from \"./registry-v2-provider\";\nimport type {\n BlockPackId,\n BlockPackListing,\n BlockPackOverview,\n RegistryEntry,\n RegistryStatus,\n SingleBlockPackOverview,\n} from \"@milaboratories/pl-model-middle-layer\";\nimport { AnyChannel, StableChannel } from \"@milaboratories/pl-model-middle-layer\";\n\nasync function getFileContent(path: string) {\n try {\n return await fs.promises.readFile(path, \"utf8\");\n } catch (error: unknown) {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") {\n return undefined;\n }\n throw error;\n }\n}\n\nasync function getFileStat(path: string) {\n try {\n return await fs.promises.stat(path, { bigint: true });\n } catch (error: unknown) {\n if (error instanceof Error && \"code\" in error && error.code === \"ENOENT\") {\n return undefined;\n }\n throw error;\n }\n}\n\nexport async function getDevV1PacketMtime(devPath: string): Promise<string> {\n let mtime = 0n;\n for (const f of LegacyDevBlockPackFiles) {\n const fullPath = path.join(devPath, ...f);\n const stat = await getFileStat(fullPath);\n if (stat === undefined) continue;\n if (mtime < stat.mtimeNs) mtime = stat.mtimeNs;\n }\n return mtime.toString();\n}\n\nexport async function getDevV2PacketMtime(\n description: BlockPackDescriptionAbsolute,\n): Promise<string> {\n const wfStats = await fs.promises.stat(description.components.workflow.main.file, {\n bigint: true,\n });\n const modelStats = await fs.promises.stat(description.components.model.file, { bigint: true });\n return (wfStats.mtimeNs > modelStats.mtimeNs ? wfStats.mtimeNs : modelStats.mtimeNs).toString();\n}\n\nexport class BlockPackRegistry {\n constructor(\n private readonly v2Provider: V2RegistryProvider,\n private readonly registries: RegistryEntry[],\n private readonly http?: Dispatcher,\n ) {}\n\n private async getPackagesForRoot(regEntry: RegistryEntry): Promise<BlockPackOverview[]> {\n const result: BlockPackOverview[] = [];\n const regSpec = regEntry.spec;\n switch (regSpec.type) {\n case \"remote-v1\": {\n const httpOptions = this.http !== undefined ? { dispatcher: this.http } : {};\n\n const overviewResponse = await request(\n `${regSpec.url}/${RegistryV1.GlobalOverviewPath}`,\n httpOptions,\n );\n const overview = (await overviewResponse.body.json()) as RegistryV1.GlobalOverview;\n for (const overviewEntry of overview) {\n const { organization, package: pkg, latestMeta, latestVersion } = overviewEntry;\n const id = {\n organization,\n name: pkg,\n version: latestVersion,\n };\n const latestOverview: SingleBlockPackOverview = {\n id,\n meta: {\n title: (latestMeta[\"title\"] as string | undefined) ?? \"No title\",\n description: (latestMeta[\"description\"] as string | undefined) ?? \"No Description\",\n organization: {\n name: organization,\n url: \"https://unknown.com\",\n },\n },\n spec: {\n type: \"from-registry-v1\",\n id,\n registryUrl: regSpec.url,\n },\n };\n result.push({\n registryId: regEntry.id,\n id,\n latestByChannel: {\n [AnyChannel]: latestOverview,\n [StableChannel]: latestOverview,\n },\n allVersions: overviewEntry.allVersions.map((v) => ({ version: v, channels: [] })),\n });\n }\n return result;\n }\n\n case \"remote-v2\":\n return (await this.v2Provider.getRegistry(regSpec.url).listBlockPacks()).map((e) => ({\n ...e,\n registryId: regEntry.id,\n }));\n // e.latestByChannel[StableChannel]\n // ? {\n // ...e,\n // registryId: regEntry.id,\n // }\n // : {\n // ...e,\n // latestByChannel: {\n // ...e.latestByChannel,\n // [StableChannel]: ((s: SingleBlockPackOverview) => {\n // if (s.spec.type === 'from-registry-v2') {\n // return { ...s, spec: { ...s.spec, channel: StableChannel } };\n // }\n\n // return s;\n // })(e.latestByChannel[AnyChannel]),\n // },\n // registryId: regEntry.id,\n // },\n\n case \"local-dev\":\n for (const entry of await fs.promises.readdir(regSpec.path, { withFileTypes: true })) {\n if (!entry.isDirectory()) continue;\n const devPath = path.join(regSpec.path, entry.name);\n\n const legacyYamlContent = await getFileContent(\n path.join(devPath, RegistryV1.PlPackageYamlConfigFile),\n );\n if (legacyYamlContent !== undefined) {\n const config = RegistryV1.PlPackageConfigData.parse(YAML.parse(legacyYamlContent));\n\n const mtime = await getDevV1PacketMtime(devPath);\n\n const id = {\n organization: config.organization,\n name: config.package,\n version: \"DEV\",\n };\n\n const latestOverview: SingleBlockPackOverview = {\n id,\n meta: {\n title: (config.meta[\"title\"] as string) ?? \"No title\",\n description: (config.meta[\"description\"] as string) ?? \"No Description\",\n organization: {\n name: config.organization,\n url: \"https://unknown.com\",\n },\n },\n spec: {\n type: \"dev-v2\",\n folder: devPath,\n mtime,\n },\n };\n\n result.push({\n registryId: regEntry.id,\n id,\n latestByChannel: {\n [AnyChannel]: latestOverview,\n [StableChannel]: latestOverview,\n },\n allVersions: [],\n });\n } else {\n let actualDevPath = devPath;\n let v2Description = await tryLoadPackDescription(actualDevPath);\n\n if (v2Description === undefined)\n // iterating over expected subfolder names where block developer may put root block-pack package\n for (const bpSubfolder of [\"block\", \"meta\"]) {\n actualDevPath = path.join(devPath, bpSubfolder);\n v2Description = await tryLoadPackDescription(actualDevPath);\n if (v2Description !== undefined) break;\n }\n\n if (v2Description !== undefined) {\n const mtime = await getDevV2PacketMtime(v2Description);\n\n const latestOverview: SingleBlockPackOverview = {\n id: v2Description.id,\n meta: await BlockPackMetaEmbedAbsoluteBytes.parseAsync(v2Description.meta),\n featureFlags: v2Description.featureFlags,\n spec: {\n type: \"dev-v2\",\n folder: actualDevPath,\n mtime,\n },\n };\n\n result.push({\n registryId: regEntry.id,\n id: v2Description.id,\n latestByChannel: {\n [AnyChannel]: latestOverview,\n [StableChannel]: latestOverview,\n },\n allVersions: [],\n });\n }\n }\n\n continue;\n }\n return result;\n default:\n return assertNever(regSpec);\n }\n }\n\n public async listBlockPacks(): Promise<BlockPackListing> {\n const blockPacks: BlockPackOverview[] = [];\n const registries: RegistryStatus[] = [];\n for (const regSpecs of this.registries) {\n registries.push({ ...regSpecs, status: \"online\" });\n blockPacks.push(...(await this.getPackagesForRoot(regSpecs)));\n }\n return { registries, blockPacks };\n }\n\n public async getOverview(\n registryId: string,\n blockId: BlockPackId,\n channel: string,\n ): Promise<SingleBlockPackOverview> {\n const regSpec = this.registries.find((reg) => reg.id === registryId)?.spec;\n if (!regSpec) throw new Error(`Registry with id \"${registryId}\" not found`);\n if (regSpec.type !== \"remote-v2\")\n throw new Error(\n `Only \"remote-v2\" registries support specific package version overview retrieval.`,\n );\n const reg = this.v2Provider.getRegistry(regSpec.url);\n return await reg.getSpecificOverview(blockId, channel);\n }\n}\n"],"mappings":"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"}