@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 +1 @@
1
- {"version":3,"file":"block_pack_spec.cjs","sources":["../../src/model/block_pack_spec.ts"],"sourcesContent":["import type { ExplicitTemplate, PreparedTemplate } from \"./template_spec\";\nimport type { ResourceType } from \"@milaboratories/pl-client\";\nimport type { BlockConfigContainer } from \"@platforma-sdk/model\";\nimport type { BlockPackSpec } from \"@milaboratories/pl-model-middle-layer\";\n\nexport type FrontendSpec = FrontendFromUrl | FrontendFromFolder;\n\nexport interface FrontendFromUrlData {\n url: string;\n}\n\nexport const FrontendFromUrlResourceType: ResourceType = { name: \"Frontend/FromUrl\", version: \"1\" };\n\n/** Directs user of the block pack to download the contents from the URL\n * outside the pl infrastructure. */\nexport interface FrontendFromUrl extends FrontendFromUrlData {\n type: \"url\";\n}\n\nexport interface FrontendFromFolderData {\n path: string;\n /** HMAC signature of the path using local secret encoded as hex. */\n signature: string;\n}\n\nexport const FrontendFromFolderResourceType: ResourceType = {\n name: \"Frontend/FromFolder\",\n version: \"1\",\n};\n\n/** Directs user of the block pack to load frontend from specific local\n * folder. Signature allows to confirm that this is the same client who\n * added the resource. */\nexport interface FrontendFromFolder extends FrontendFromFolderData {\n type: \"local\";\n}\n\n/** Direct instructions to create block-pack from client. Currently, this\n * is the only block-pack spec that can be directly materialized. */\nexport interface BlockPackExplicit {\n type: \"explicit\";\n template: ExplicitTemplate;\n config: BlockConfigContainer;\n frontend: FrontendSpec;\n source: BlockPackSpec;\n}\n\n/** Block-pack spec that can be materialized in pl. */\nexport type BlockPackSpecPrepared = {\n type: \"prepared\";\n template: PreparedTemplate;\n config: BlockConfigContainer;\n frontend: FrontendSpec;\n source: BlockPackSpec;\n};\n\n/** All block-pack specs. */\nexport type BlockPackSpecAny = BlockPackSpecPrepared | BlockPackExplicit | BlockPackSpec;\n"],"names":[],"mappings":";;AAWO,MAAM,2BAA2B,GAAiB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG;AAc1F,MAAM,8BAA8B,GAAiB;AAC1D,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,OAAO,EAAE,GAAG;;;;;;"}
1
+ {"version":3,"file":"block_pack_spec.cjs","names":[],"sources":["../../src/model/block_pack_spec.ts"],"sourcesContent":["import type { ExplicitTemplate, PreparedTemplate } from \"./template_spec\";\nimport type { ResourceType } from \"@milaboratories/pl-client\";\nimport type { BlockConfigContainer } from \"@platforma-sdk/model\";\nimport type { BlockPackSpec } from \"@milaboratories/pl-model-middle-layer\";\n\nexport type FrontendSpec = FrontendFromUrl | FrontendFromFolder;\n\nexport interface FrontendFromUrlData {\n url: string;\n}\n\nexport const FrontendFromUrlResourceType: ResourceType = { name: \"Frontend/FromUrl\", version: \"1\" };\n\n/** Directs user of the block pack to download the contents from the URL\n * outside the pl infrastructure. */\nexport interface FrontendFromUrl extends FrontendFromUrlData {\n type: \"url\";\n}\n\nexport interface FrontendFromFolderData {\n path: string;\n /** HMAC signature of the path using local secret encoded as hex. */\n signature: string;\n}\n\nexport const FrontendFromFolderResourceType: ResourceType = {\n name: \"Frontend/FromFolder\",\n version: \"1\",\n};\n\n/** Directs user of the block pack to load frontend from specific local\n * folder. Signature allows to confirm that this is the same client who\n * added the resource. */\nexport interface FrontendFromFolder extends FrontendFromFolderData {\n type: \"local\";\n}\n\n/** Direct instructions to create block-pack from client. Currently, this\n * is the only block-pack spec that can be directly materialized. */\nexport interface BlockPackExplicit {\n type: \"explicit\";\n template: ExplicitTemplate;\n config: BlockConfigContainer;\n frontend: FrontendSpec;\n source: BlockPackSpec;\n}\n\n/** Block-pack spec that can be materialized in pl. */\nexport type BlockPackSpecPrepared = {\n type: \"prepared\";\n template: PreparedTemplate;\n config: BlockConfigContainer;\n frontend: FrontendSpec;\n source: BlockPackSpec;\n};\n\n/** All block-pack specs. */\nexport type BlockPackSpecAny = BlockPackSpecPrepared | BlockPackExplicit | BlockPackSpec;\n"],"mappings":";;AAWA,MAAa,8BAA4C;CAAE,MAAM;CAAoB,SAAS;CAAK;AAcnG,MAAa,iCAA+C;CAC1D,MAAM;CACN,SAAS;CACV"}
@@ -1,46 +1,50 @@
1
- import type { ExplicitTemplate, PreparedTemplate } from "./template_spec";
2
- import type { ResourceType } from "@milaboratories/pl-client";
3
- import type { BlockConfigContainer } from "@platforma-sdk/model";
4
- import type { BlockPackSpec } from "@milaboratories/pl-model-middle-layer";
5
- export type FrontendSpec = FrontendFromUrl | FrontendFromFolder;
6
- export interface FrontendFromUrlData {
7
- url: string;
1
+ import { ExplicitTemplate, PreparedTemplate } from "./template_spec.js";
2
+ import { BlockConfigContainer } from "@platforma-sdk/model";
3
+ import { BlockPackSpec } from "@milaboratories/pl-model-middle-layer";
4
+ import { ResourceType } from "@milaboratories/pl-client";
5
+
6
+ //#region src/model/block_pack_spec.d.ts
7
+ type FrontendSpec = FrontendFromUrl | FrontendFromFolder;
8
+ interface FrontendFromUrlData {
9
+ url: string;
8
10
  }
9
- export declare const FrontendFromUrlResourceType: ResourceType;
11
+ declare const FrontendFromUrlResourceType: ResourceType;
10
12
  /** Directs user of the block pack to download the contents from the URL
11
13
  * outside the pl infrastructure. */
12
- export interface FrontendFromUrl extends FrontendFromUrlData {
13
- type: "url";
14
+ interface FrontendFromUrl extends FrontendFromUrlData {
15
+ type: "url";
14
16
  }
15
- export interface FrontendFromFolderData {
16
- path: string;
17
- /** HMAC signature of the path using local secret encoded as hex. */
18
- signature: string;
17
+ interface FrontendFromFolderData {
18
+ path: string;
19
+ /** HMAC signature of the path using local secret encoded as hex. */
20
+ signature: string;
19
21
  }
20
- export declare const FrontendFromFolderResourceType: ResourceType;
22
+ declare const FrontendFromFolderResourceType: ResourceType;
21
23
  /** Directs user of the block pack to load frontend from specific local
22
24
  * folder. Signature allows to confirm that this is the same client who
23
25
  * added the resource. */
24
- export interface FrontendFromFolder extends FrontendFromFolderData {
25
- type: "local";
26
+ interface FrontendFromFolder extends FrontendFromFolderData {
27
+ type: "local";
26
28
  }
27
29
  /** Direct instructions to create block-pack from client. Currently, this
28
30
  * is the only block-pack spec that can be directly materialized. */
29
- export interface BlockPackExplicit {
30
- type: "explicit";
31
- template: ExplicitTemplate;
32
- config: BlockConfigContainer;
33
- frontend: FrontendSpec;
34
- source: BlockPackSpec;
31
+ interface BlockPackExplicit {
32
+ type: "explicit";
33
+ template: ExplicitTemplate;
34
+ config: BlockConfigContainer;
35
+ frontend: FrontendSpec;
36
+ source: BlockPackSpec;
35
37
  }
36
38
  /** Block-pack spec that can be materialized in pl. */
37
- export type BlockPackSpecPrepared = {
38
- type: "prepared";
39
- template: PreparedTemplate;
40
- config: BlockConfigContainer;
41
- frontend: FrontendSpec;
42
- source: BlockPackSpec;
39
+ type BlockPackSpecPrepared = {
40
+ type: "prepared";
41
+ template: PreparedTemplate;
42
+ config: BlockConfigContainer;
43
+ frontend: FrontendSpec;
44
+ source: BlockPackSpec;
43
45
  };
44
46
  /** All block-pack specs. */
45
- export type BlockPackSpecAny = BlockPackSpecPrepared | BlockPackExplicit | BlockPackSpec;
47
+ type BlockPackSpecAny = BlockPackSpecPrepared | BlockPackExplicit | BlockPackSpec;
48
+ //#endregion
49
+ export { BlockPackExplicit, BlockPackSpecAny, BlockPackSpecPrepared, FrontendFromFolder, FrontendFromFolderData, FrontendFromFolderResourceType, FrontendFromUrl, FrontendFromUrlData, FrontendFromUrlResourceType, FrontendSpec };
46
50
  //# sourceMappingURL=block_pack_spec.d.ts.map
@@ -1,8 +1,13 @@
1
- const FrontendFromUrlResourceType = { name: "Frontend/FromUrl", version: "1" };
1
+ //#region src/model/block_pack_spec.ts
2
+ const FrontendFromUrlResourceType = {
3
+ name: "Frontend/FromUrl",
4
+ version: "1"
5
+ };
2
6
  const FrontendFromFolderResourceType = {
3
- name: "Frontend/FromFolder",
4
- version: "1",
7
+ name: "Frontend/FromFolder",
8
+ version: "1"
5
9
  };
6
10
 
11
+ //#endregion
7
12
  export { FrontendFromFolderResourceType, FrontendFromUrlResourceType };
8
- //# sourceMappingURL=block_pack_spec.js.map
13
+ //# sourceMappingURL=block_pack_spec.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"block_pack_spec.js","sources":["../../src/model/block_pack_spec.ts"],"sourcesContent":["import type { ExplicitTemplate, PreparedTemplate } from \"./template_spec\";\nimport type { ResourceType } from \"@milaboratories/pl-client\";\nimport type { BlockConfigContainer } from \"@platforma-sdk/model\";\nimport type { BlockPackSpec } from \"@milaboratories/pl-model-middle-layer\";\n\nexport type FrontendSpec = FrontendFromUrl | FrontendFromFolder;\n\nexport interface FrontendFromUrlData {\n url: string;\n}\n\nexport const FrontendFromUrlResourceType: ResourceType = { name: \"Frontend/FromUrl\", version: \"1\" };\n\n/** Directs user of the block pack to download the contents from the URL\n * outside the pl infrastructure. */\nexport interface FrontendFromUrl extends FrontendFromUrlData {\n type: \"url\";\n}\n\nexport interface FrontendFromFolderData {\n path: string;\n /** HMAC signature of the path using local secret encoded as hex. */\n signature: string;\n}\n\nexport const FrontendFromFolderResourceType: ResourceType = {\n name: \"Frontend/FromFolder\",\n version: \"1\",\n};\n\n/** Directs user of the block pack to load frontend from specific local\n * folder. Signature allows to confirm that this is the same client who\n * added the resource. */\nexport interface FrontendFromFolder extends FrontendFromFolderData {\n type: \"local\";\n}\n\n/** Direct instructions to create block-pack from client. Currently, this\n * is the only block-pack spec that can be directly materialized. */\nexport interface BlockPackExplicit {\n type: \"explicit\";\n template: ExplicitTemplate;\n config: BlockConfigContainer;\n frontend: FrontendSpec;\n source: BlockPackSpec;\n}\n\n/** Block-pack spec that can be materialized in pl. */\nexport type BlockPackSpecPrepared = {\n type: \"prepared\";\n template: PreparedTemplate;\n config: BlockConfigContainer;\n frontend: FrontendSpec;\n source: BlockPackSpec;\n};\n\n/** All block-pack specs. */\nexport type BlockPackSpecAny = BlockPackSpecPrepared | BlockPackExplicit | BlockPackSpec;\n"],"names":[],"mappings":"AAWO,MAAM,2BAA2B,GAAiB,EAAE,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,GAAG;AAc1F,MAAM,8BAA8B,GAAiB;AAC1D,IAAA,IAAI,EAAE,qBAAqB;AAC3B,IAAA,OAAO,EAAE,GAAG;;;;;"}
1
+ {"version":3,"file":"block_pack_spec.js","names":[],"sources":["../../src/model/block_pack_spec.ts"],"sourcesContent":["import type { ExplicitTemplate, PreparedTemplate } from \"./template_spec\";\nimport type { ResourceType } from \"@milaboratories/pl-client\";\nimport type { BlockConfigContainer } from \"@platforma-sdk/model\";\nimport type { BlockPackSpec } from \"@milaboratories/pl-model-middle-layer\";\n\nexport type FrontendSpec = FrontendFromUrl | FrontendFromFolder;\n\nexport interface FrontendFromUrlData {\n url: string;\n}\n\nexport const FrontendFromUrlResourceType: ResourceType = { name: \"Frontend/FromUrl\", version: \"1\" };\n\n/** Directs user of the block pack to download the contents from the URL\n * outside the pl infrastructure. */\nexport interface FrontendFromUrl extends FrontendFromUrlData {\n type: \"url\";\n}\n\nexport interface FrontendFromFolderData {\n path: string;\n /** HMAC signature of the path using local secret encoded as hex. */\n signature: string;\n}\n\nexport const FrontendFromFolderResourceType: ResourceType = {\n name: \"Frontend/FromFolder\",\n version: \"1\",\n};\n\n/** Directs user of the block pack to load frontend from specific local\n * folder. Signature allows to confirm that this is the same client who\n * added the resource. */\nexport interface FrontendFromFolder extends FrontendFromFolderData {\n type: \"local\";\n}\n\n/** Direct instructions to create block-pack from client. Currently, this\n * is the only block-pack spec that can be directly materialized. */\nexport interface BlockPackExplicit {\n type: \"explicit\";\n template: ExplicitTemplate;\n config: BlockConfigContainer;\n frontend: FrontendSpec;\n source: BlockPackSpec;\n}\n\n/** Block-pack spec that can be materialized in pl. */\nexport type BlockPackSpecPrepared = {\n type: \"prepared\";\n template: PreparedTemplate;\n config: BlockConfigContainer;\n frontend: FrontendSpec;\n source: BlockPackSpec;\n};\n\n/** All block-pack specs. */\nexport type BlockPackSpecAny = BlockPackSpecPrepared | BlockPackExplicit | BlockPackSpec;\n"],"mappings":";AAWA,MAAa,8BAA4C;CAAE,MAAM;CAAoB,SAAS;CAAK;AAcnG,MAAa,iCAA+C;CAC1D,MAAM;CACN,SAAS;CACV"}
@@ -1,10 +1,13 @@
1
+ //#region src/model/frontend.d.ts
1
2
  /** Middle layer provides information about where frontend for a specific block
2
3
  * was unpacked and basic meta information about the enclosed UI
3
4
  * (i.e. SDK version). */
4
- export interface FrontendData {
5
- /** URL of the frontend */
6
- readonly url: string;
7
- /** SDK version used by the UI */
8
- readonly sdkVersion: string;
5
+ interface FrontendData {
6
+ /** URL of the frontend */
7
+ readonly url: string;
8
+ /** SDK version used by the UI */
9
+ readonly sdkVersion: string;
9
10
  }
11
+ //#endregion
12
+ export { FrontendData };
10
13
  //# sourceMappingURL=frontend.d.ts.map
@@ -1,3 +1,2 @@
1
- export * from "./block_pack_spec";
2
- export { type ProjectListEntry, type ProjectField } from "./project_model";
3
- //# sourceMappingURL=index.d.ts.map
1
+ import { BlockPackExplicit, BlockPackSpecAny, BlockPackSpecPrepared, FrontendFromFolder, FrontendFromFolderData, FrontendFromFolderResourceType, FrontendFromUrl, FrontendFromUrlData, FrontendFromUrlResourceType, FrontendSpec } from "./block_pack_spec.js";
2
+ import { ProjectField, ProjectListEntry } from "./project_model.js";
@@ -1,196 +1,157 @@
1
- 'use strict';
1
+ const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
+ const require_index = require('../js_render/index.cjs');
3
+ let _platforma_sdk_model = require("@platforma-sdk/model");
4
+ let lru_cache = require("lru-cache");
2
5
 
3
- var model = require('@platforma-sdk/model');
4
- var lruCache = require('lru-cache');
5
- var index = require('../js_render/index.cjs');
6
-
7
- class ProjectHelper {
8
- quickJs;
9
- enrichmentTargetsCache = new lruCache.LRUCache({
10
- max: 256,
11
- memoMethod: (_key, _value, { context }) => {
12
- return { value: this.calculateEnrichmentTargets(context) };
13
- },
14
- });
15
- constructor(quickJs) {
16
- this.quickJs = quickJs;
17
- }
18
- // =============================================================================
19
- // Args Derivation from Storage (V3+)
20
- // =============================================================================
21
- /**
22
- * Derives args directly from storage JSON using VM callback.
23
- * The VM extracts data from storage and calls the block's args() function.
24
- *
25
- * This allows the middle layer to work only with storage JSON,
26
- * without needing to know the underlying data structure.
27
- *
28
- * @param blockConfig The block configuration (provides the model code)
29
- * @param storageJson Storage as JSON string
30
- * @returns The derived args object, or error if derivation fails
31
- */
32
- deriveArgsFromStorage(blockConfig, storageJson) {
33
- if (blockConfig.modelAPIVersion !== model.BLOCK_STORAGE_FACADE_VERSION) {
34
- return {
35
- error: new Error("deriveArgsFromStorage is only supported for model API version 2"),
36
- };
37
- }
38
- try {
39
- const result = index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[model.BlockStorageFacadeCallbacks.ArgsDerive], model.extractCodeWithInfo(blockConfig), storageJson);
40
- if (result.error !== undefined) {
41
- return { error: new Error(result.error) };
42
- }
43
- return { value: result.value };
44
- }
45
- catch (e) {
46
- return { error: new Error("Args derivation from storage failed", { cause: model.ensureError(e) }) };
47
- }
48
- }
49
- /**
50
- * Derives prerunArgs directly from storage JSON using VM callback.
51
- * Falls back to args() if prerunArgs is not defined in the block model.
52
- *
53
- * @param blockConfig The block configuration (provides the model code)
54
- * @param storageJson Storage as JSON string
55
- * @returns The derived prerunArgs, or undefined if derivation fails
56
- */
57
- derivePrerunArgsFromStorage(blockConfig, storageJson) {
58
- if (blockConfig.modelAPIVersion !== model.BLOCK_STORAGE_FACADE_VERSION) {
59
- throw new Error("derivePrerunArgsFromStorage is only supported for model API version 2");
60
- }
61
- try {
62
- const result = index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[model.BlockStorageFacadeCallbacks.PrerunArgsDerive], model.extractCodeWithInfo(blockConfig), storageJson);
63
- if (result.error !== undefined) {
64
- // Return undefined if derivation fails (skip block in staging)
65
- return undefined;
66
- }
67
- return result.value;
68
- }
69
- catch {
70
- // Return undefined if derivation fails (skip block in staging)
71
- return undefined;
72
- }
73
- }
74
- calculateEnrichmentTargets(req) {
75
- const blockConfig = req.blockConfig();
76
- if (blockConfig.enrichmentTargets === undefined)
77
- return undefined;
78
- const args = req.args();
79
- const result = index.executeSingleLambda(this.quickJs, blockConfig.enrichmentTargets, model.extractCodeWithInfo(blockConfig), args);
80
- return result;
81
- }
82
- getEnrichmentTargets(blockConfig, args, key) {
83
- const req = { blockConfig, args };
84
- if (key === undefined)
85
- return this.calculateEnrichmentTargets(req);
86
- const cacheKey = `${key.argsRid}:${key.blockPackRid}`;
87
- return this.enrichmentTargetsCache.memo(cacheKey, { context: req }).value;
88
- }
89
- // =============================================================================
90
- // VM-based Storage Operations
91
- // =============================================================================
92
- /**
93
- * Creates initial BlockStorage for a new block using VM-based transformation.
94
- * This calls the '__pl_storage_initial' callback registered by DataModel which:
95
- * - Gets initial data from DataModel.getDefaultData()
96
- * - Creates BlockStorage with correct version
97
- *
98
- * @param blockConfig The block configuration (provides the model code)
99
- * @returns Initial storage as JSON string
100
- * @throws Error if storage creation fails
101
- */
102
- getInitialStorageInVM(blockConfig) {
103
- if (blockConfig.modelAPIVersion !== model.BLOCK_STORAGE_FACADE_VERSION) {
104
- throw new Error("getInitialStorageInVM is only supported for model API version 2");
105
- }
106
- try {
107
- const result = index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[model.BlockStorageFacadeCallbacks.StorageInitial], model.extractCodeWithInfo(blockConfig));
108
- return result;
109
- }
110
- catch (e) {
111
- console.error("[ProjectHelper.getInitialStorageInVM] Initial storage creation failed:", e);
112
- throw new Error(`Block initial storage creation failed: ${e}`);
113
- }
114
- }
115
- /**
116
- * Applies a state update using VM-based transformation.
117
- * This calls the model's `__pl_storage_applyUpdate` callback which:
118
- * - Normalizes current storage
119
- * - Updates state while preserving other fields (version, plugins)
120
- * - Returns the updated storage as JSON string
121
- *
122
- * @param blockConfig The block configuration (provides the model code)
123
- * @param currentStorageJson Current storage as JSON string (must be defined)
124
- * @param newState New state from developer
125
- * @returns Updated storage as JSON string
126
- * @throws Error if storage update fails
127
- */
128
- applyStorageUpdateInVM(blockConfig, currentStorageJson, payload) {
129
- if (blockConfig.modelAPIVersion !== model.BLOCK_STORAGE_FACADE_VERSION) {
130
- throw new Error("applyStorageUpdateInVM is only supported for model API version 2");
131
- }
132
- try {
133
- const result = index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[model.BlockStorageFacadeCallbacks.StorageApplyUpdate], model.extractCodeWithInfo(blockConfig), currentStorageJson, payload);
134
- return result;
135
- }
136
- catch (e) {
137
- console.error("[ProjectHelper.applyStorageUpdateInVM] Storage update failed:", e);
138
- throw new Error(`Block storage update failed: ${e}`);
139
- }
140
- }
141
- /**
142
- * Gets storage debug view from raw storage data by calling the VM's __pl_storage_debugView callback.
143
- * Returns structured debug info about the storage (e.g., dataVersion).
144
- *
145
- * @param blockConfig Block configuration
146
- * @param rawStorageJson Raw storage as JSON string (or undefined)
147
- * @returns Storage debug view as JSON string (e.g., '{"dataVersion": "v1"}')
148
- */
149
- getStorageDebugViewInVM(blockConfig, rawStorageJson) {
150
- if (blockConfig.modelAPIVersion !== model.BLOCK_STORAGE_FACADE_VERSION) {
151
- throw new Error("getStorageDebugViewInVM is only supported for model API version 2");
152
- }
153
- try {
154
- const result = index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[model.BlockStorageFacadeCallbacks.StorageDebugView], model.extractCodeWithInfo(blockConfig), rawStorageJson);
155
- return result;
156
- }
157
- catch (e) {
158
- console.error("[ProjectHelper.getStorageDebugViewInVM] Get storage debug view failed:", e);
159
- return undefined;
160
- }
161
- }
162
- // =============================================================================
163
- // Block State Migrations
164
- // =============================================================================
165
- /**
166
- * Runs block state migrations via VM-based transformation.
167
- * This calls the model's `__pl_storage_migrate` callback which:
168
- * - Normalizes current storage to get state and version
169
- * - Applies DataModel upgrade to reach target version key
170
- * - Runs all necessary migrations sequentially
171
- * - Returns new storage with updated state and version
172
- *
173
- * The middle layer doesn't need to know about dataVersion or storage internals.
174
- * All migration logic is encapsulated in the model.
175
- *
176
- * @param blockConfig The NEW block configuration (provides the model code with migrations)
177
- * @param currentStorageJson Current storage as JSON string (or undefined)
178
- * @returns MigrationResult with new storage or skip/error info
179
- */
180
- migrateStorageInVM(blockConfig, currentStorageJson) {
181
- if (blockConfig.modelAPIVersion !== model.BLOCK_STORAGE_FACADE_VERSION) {
182
- return { error: "migrateStorageInVM is only supported for model API version 2" };
183
- }
184
- try {
185
- const result = index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[model.BlockStorageFacadeCallbacks.StorageMigrate], model.extractCodeWithInfo(blockConfig), currentStorageJson);
186
- return result;
187
- }
188
- catch (e) {
189
- console.error("[ProjectHelper.migrateStorageInVM] Migration failed:", e);
190
- return { error: `VM execution failed: ${e}` };
191
- }
192
- }
193
- }
6
+ //#region src/model/project_helper.ts
7
+ var ProjectHelper = class {
8
+ enrichmentTargetsCache = new lru_cache.LRUCache({
9
+ max: 256,
10
+ memoMethod: (_key, _value, { context }) => {
11
+ return { value: this.calculateEnrichmentTargets(context) };
12
+ }
13
+ });
14
+ constructor(quickJs) {
15
+ this.quickJs = quickJs;
16
+ }
17
+ /**
18
+ * Derives args directly from storage JSON using VM callback.
19
+ * The VM extracts data from storage and calls the block's args() function.
20
+ *
21
+ * This allows the middle layer to work only with storage JSON,
22
+ * without needing to know the underlying data structure.
23
+ *
24
+ * @param blockConfig The block configuration (provides the model code)
25
+ * @param storageJson Storage as JSON string
26
+ * @returns The derived args object, or error if derivation fails
27
+ */
28
+ deriveArgsFromStorage(blockConfig, storageJson) {
29
+ if (blockConfig.modelAPIVersion !== _platforma_sdk_model.BLOCK_STORAGE_FACADE_VERSION) return { error: /* @__PURE__ */ new Error("deriveArgsFromStorage is only supported for model API version 2") };
30
+ try {
31
+ const result = require_index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[_platforma_sdk_model.BlockStorageFacadeCallbacks.ArgsDerive], (0, _platforma_sdk_model.extractCodeWithInfo)(blockConfig), storageJson);
32
+ if (result.error !== void 0) return { error: new Error(result.error) };
33
+ return { value: result.value };
34
+ } catch (e) {
35
+ return { error: new Error("Args derivation from storage failed", { cause: (0, _platforma_sdk_model.ensureError)(e) }) };
36
+ }
37
+ }
38
+ /**
39
+ * Derives prerunArgs directly from storage JSON using VM callback.
40
+ * Falls back to args() if prerunArgs is not defined in the block model.
41
+ *
42
+ * @param blockConfig The block configuration (provides the model code)
43
+ * @param storageJson Storage as JSON string
44
+ * @returns The derived prerunArgs, or undefined if derivation fails
45
+ */
46
+ derivePrerunArgsFromStorage(blockConfig, storageJson) {
47
+ if (blockConfig.modelAPIVersion !== _platforma_sdk_model.BLOCK_STORAGE_FACADE_VERSION) throw new Error("derivePrerunArgsFromStorage is only supported for model API version 2");
48
+ try {
49
+ const result = require_index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[_platforma_sdk_model.BlockStorageFacadeCallbacks.PrerunArgsDerive], (0, _platforma_sdk_model.extractCodeWithInfo)(blockConfig), storageJson);
50
+ if (result.error !== void 0) return;
51
+ return result.value;
52
+ } catch {
53
+ return;
54
+ }
55
+ }
56
+ calculateEnrichmentTargets(req) {
57
+ const blockConfig = req.blockConfig();
58
+ if (blockConfig.enrichmentTargets === void 0) return void 0;
59
+ const args = req.args();
60
+ return require_index.executeSingleLambda(this.quickJs, blockConfig.enrichmentTargets, (0, _platforma_sdk_model.extractCodeWithInfo)(blockConfig), args);
61
+ }
62
+ getEnrichmentTargets(blockConfig, args, key) {
63
+ const req = {
64
+ blockConfig,
65
+ args
66
+ };
67
+ if (key === void 0) return this.calculateEnrichmentTargets(req);
68
+ const cacheKey = `${key.argsRid}:${key.blockPackRid}`;
69
+ return this.enrichmentTargetsCache.memo(cacheKey, { context: req }).value;
70
+ }
71
+ /**
72
+ * Creates initial BlockStorage for a new block using VM-based transformation.
73
+ * This calls the '__pl_storage_initial' callback registered by DataModel which:
74
+ * - Gets initial data from DataModel.getDefaultData()
75
+ * - Creates BlockStorage with correct version
76
+ *
77
+ * @param blockConfig The block configuration (provides the model code)
78
+ * @returns Initial storage as JSON string
79
+ * @throws Error if storage creation fails
80
+ */
81
+ getInitialStorageInVM(blockConfig) {
82
+ if (blockConfig.modelAPIVersion !== _platforma_sdk_model.BLOCK_STORAGE_FACADE_VERSION) throw new Error("getInitialStorageInVM is only supported for model API version 2");
83
+ try {
84
+ return require_index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[_platforma_sdk_model.BlockStorageFacadeCallbacks.StorageInitial], (0, _platforma_sdk_model.extractCodeWithInfo)(blockConfig));
85
+ } catch (e) {
86
+ console.error("[ProjectHelper.getInitialStorageInVM] Initial storage creation failed:", e);
87
+ throw new Error(`Block initial storage creation failed: ${e}`);
88
+ }
89
+ }
90
+ /**
91
+ * Applies a state update using VM-based transformation.
92
+ * This calls the model's `__pl_storage_applyUpdate` callback which:
93
+ * - Normalizes current storage
94
+ * - Updates state while preserving other fields (version, plugins)
95
+ * - Returns the updated storage as JSON string
96
+ *
97
+ * @param blockConfig The block configuration (provides the model code)
98
+ * @param currentStorageJson Current storage as JSON string (must be defined)
99
+ * @param newState New state from developer
100
+ * @returns Updated storage as JSON string
101
+ * @throws Error if storage update fails
102
+ */
103
+ applyStorageUpdateInVM(blockConfig, currentStorageJson, payload) {
104
+ if (blockConfig.modelAPIVersion !== _platforma_sdk_model.BLOCK_STORAGE_FACADE_VERSION) throw new Error("applyStorageUpdateInVM is only supported for model API version 2");
105
+ try {
106
+ return require_index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[_platforma_sdk_model.BlockStorageFacadeCallbacks.StorageApplyUpdate], (0, _platforma_sdk_model.extractCodeWithInfo)(blockConfig), currentStorageJson, payload);
107
+ } catch (e) {
108
+ console.error("[ProjectHelper.applyStorageUpdateInVM] Storage update failed:", e);
109
+ throw new Error(`Block storage update failed: ${e}`);
110
+ }
111
+ }
112
+ /**
113
+ * Gets storage debug view from raw storage data by calling the VM's __pl_storage_debugView callback.
114
+ * Returns structured debug info about the storage (e.g., dataVersion).
115
+ *
116
+ * @param blockConfig Block configuration
117
+ * @param rawStorageJson Raw storage as JSON string (or undefined)
118
+ * @returns Storage debug view as JSON string (e.g., '{"dataVersion": "v1"}')
119
+ */
120
+ getStorageDebugViewInVM(blockConfig, rawStorageJson) {
121
+ if (blockConfig.modelAPIVersion !== _platforma_sdk_model.BLOCK_STORAGE_FACADE_VERSION) throw new Error("getStorageDebugViewInVM is only supported for model API version 2");
122
+ try {
123
+ return require_index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[_platforma_sdk_model.BlockStorageFacadeCallbacks.StorageDebugView], (0, _platforma_sdk_model.extractCodeWithInfo)(blockConfig), rawStorageJson);
124
+ } catch (e) {
125
+ console.error("[ProjectHelper.getStorageDebugViewInVM] Get storage debug view failed:", e);
126
+ return;
127
+ }
128
+ }
129
+ /**
130
+ * Runs block state migrations via VM-based transformation.
131
+ * This calls the model's `__pl_storage_migrate` callback which:
132
+ * - Normalizes current storage to get state and version
133
+ * - Applies DataModel upgrade to reach target version key
134
+ * - Runs all necessary migrations sequentially
135
+ * - Returns new storage with updated state and version
136
+ *
137
+ * The middle layer doesn't need to know about dataVersion or storage internals.
138
+ * All migration logic is encapsulated in the model.
139
+ *
140
+ * @param blockConfig The NEW block configuration (provides the model code with migrations)
141
+ * @param currentStorageJson Current storage as JSON string (or undefined)
142
+ * @returns MigrationResult with new storage or skip/error info
143
+ */
144
+ migrateStorageInVM(blockConfig, currentStorageJson) {
145
+ if (blockConfig.modelAPIVersion !== _platforma_sdk_model.BLOCK_STORAGE_FACADE_VERSION) return { error: "migrateStorageInVM is only supported for model API version 2" };
146
+ try {
147
+ return require_index.executeSingleLambda(this.quickJs, blockConfig.blockLifecycleCallbacks[_platforma_sdk_model.BlockStorageFacadeCallbacks.StorageMigrate], (0, _platforma_sdk_model.extractCodeWithInfo)(blockConfig), currentStorageJson);
148
+ } catch (e) {
149
+ console.error("[ProjectHelper.migrateStorageInVM] Migration failed:", e);
150
+ return { error: `VM execution failed: ${e}` };
151
+ }
152
+ }
153
+ };
194
154
 
155
+ //#endregion
195
156
  exports.ProjectHelper = ProjectHelper;
196
- //# sourceMappingURL=project_helper.cjs.map
157
+ //# sourceMappingURL=project_helper.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"project_helper.cjs","sources":["../../src/model/project_helper.ts"],"sourcesContent":["import type {\n ResultOrError,\n BlockConfig,\n BlockStorage,\n PlRef,\n StorageDebugView,\n} from \"@platforma-sdk/model\";\nimport type { StringifiedJson } from \"@milaboratories/pl-model-common\";\nimport {\n extractCodeWithInfo,\n ensureError,\n BlockStorageFacadeCallbacks,\n BLOCK_STORAGE_FACADE_VERSION,\n} from \"@platforma-sdk/model\";\nimport { LRUCache } from \"lru-cache\";\nimport type { QuickJSWASMModule } from \"quickjs-emscripten\";\nimport { executeSingleLambda } from \"../js_render\";\nimport type { ResourceId } from \"@milaboratories/pl-client\";\n\ntype EnrichmentTargetsRequest = {\n blockConfig: () => BlockConfig;\n args: () => unknown;\n};\n\ntype EnrichmentTargetsValue = {\n value: PlRef[] | undefined;\n};\n\n/**\n * Result of VM-based storage migration.\n * Returned by migrateStorageInVM().\n *\n * - Error result: { error: string } - serious failure (no context, etc.)\n * - Success result: { newStorageJson: StringifiedJson<BlockStorage>, info: string } - migration succeeded\n */\nexport type MigrationResult =\n | { error: string }\n | { error?: undefined; newStorageJson: StringifiedJson<BlockStorage>; info: string };\n\n/**\n * Result of args derivation from storage.\n * Returned by __pl_args_derive and __pl_prerunArgs_derive VM callbacks.\n */\ntype ArgsDeriveResult = { error: string } | { error?: undefined; value: unknown };\n\nexport class ProjectHelper {\n private readonly enrichmentTargetsCache = new LRUCache<\n string,\n EnrichmentTargetsValue,\n EnrichmentTargetsRequest\n >({\n max: 256,\n memoMethod: (_key, _value, { context }) => {\n return { value: this.calculateEnrichmentTargets(context) };\n },\n });\n\n constructor(private readonly quickJs: QuickJSWASMModule) {}\n\n // =============================================================================\n // Args Derivation from Storage (V3+)\n // =============================================================================\n\n /**\n * Derives args directly from storage JSON using VM callback.\n * The VM extracts data from storage and calls the block's args() function.\n *\n * This allows the middle layer to work only with storage JSON,\n * without needing to know the underlying data structure.\n *\n * @param blockConfig The block configuration (provides the model code)\n * @param storageJson Storage as JSON string\n * @returns The derived args object, or error if derivation fails\n */\n public deriveArgsFromStorage(\n blockConfig: BlockConfig,\n storageJson: string,\n ): ResultOrError<unknown> {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n return {\n error: new Error(\"deriveArgsFromStorage is only supported for model API version 2\"),\n };\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.ArgsDerive],\n extractCodeWithInfo(blockConfig),\n storageJson,\n ) as ArgsDeriveResult;\n\n if (result.error !== undefined) {\n return { error: new Error(result.error) };\n }\n return { value: result.value };\n } catch (e) {\n return { error: new Error(\"Args derivation from storage failed\", { cause: ensureError(e) }) };\n }\n }\n\n /**\n * Derives prerunArgs directly from storage JSON using VM callback.\n * Falls back to args() if prerunArgs is not defined in the block model.\n *\n * @param blockConfig The block configuration (provides the model code)\n * @param storageJson Storage as JSON string\n * @returns The derived prerunArgs, or undefined if derivation fails\n */\n public derivePrerunArgsFromStorage(blockConfig: BlockConfig, storageJson: string): unknown {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n throw new Error(\"derivePrerunArgsFromStorage is only supported for model API version 2\");\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.PrerunArgsDerive],\n extractCodeWithInfo(blockConfig),\n storageJson,\n ) as ArgsDeriveResult;\n\n if (result.error !== undefined) {\n // Return undefined if derivation fails (skip block in staging)\n return undefined;\n }\n return result.value;\n } catch {\n // Return undefined if derivation fails (skip block in staging)\n return undefined;\n }\n }\n\n private calculateEnrichmentTargets(req: EnrichmentTargetsRequest): PlRef[] | undefined {\n const blockConfig = req.blockConfig();\n if (blockConfig.enrichmentTargets === undefined) return undefined;\n const args = req.args();\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.enrichmentTargets,\n extractCodeWithInfo(blockConfig),\n args,\n ) as PlRef[];\n return result;\n }\n\n public getEnrichmentTargets(\n blockConfig: () => BlockConfig,\n args: () => unknown,\n key?: { argsRid: ResourceId; blockPackRid: ResourceId },\n ): PlRef[] | undefined {\n const req = { blockConfig, args };\n if (key === undefined) return this.calculateEnrichmentTargets(req);\n const cacheKey = `${key.argsRid}:${key.blockPackRid}`;\n return this.enrichmentTargetsCache.memo(cacheKey, { context: req }).value;\n }\n\n // =============================================================================\n // VM-based Storage Operations\n // =============================================================================\n\n /**\n * Creates initial BlockStorage for a new block using VM-based transformation.\n * This calls the '__pl_storage_initial' callback registered by DataModel which:\n * - Gets initial data from DataModel.getDefaultData()\n * - Creates BlockStorage with correct version\n *\n * @param blockConfig The block configuration (provides the model code)\n * @returns Initial storage as JSON string\n * @throws Error if storage creation fails\n */\n public getInitialStorageInVM(blockConfig: BlockConfig): string {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n throw new Error(\"getInitialStorageInVM is only supported for model API version 2\");\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.StorageInitial],\n extractCodeWithInfo(blockConfig),\n ) as string;\n return result;\n } catch (e) {\n console.error(\"[ProjectHelper.getInitialStorageInVM] Initial storage creation failed:\", e);\n throw new Error(`Block initial storage creation failed: ${e}`);\n }\n }\n\n /**\n * Applies a state update using VM-based transformation.\n * This calls the model's `__pl_storage_applyUpdate` callback which:\n * - Normalizes current storage\n * - Updates state while preserving other fields (version, plugins)\n * - Returns the updated storage as JSON string\n *\n * @param blockConfig The block configuration (provides the model code)\n * @param currentStorageJson Current storage as JSON string (must be defined)\n * @param newState New state from developer\n * @returns Updated storage as JSON string\n * @throws Error if storage update fails\n */\n public applyStorageUpdateInVM(\n blockConfig: BlockConfig,\n currentStorageJson: string,\n payload: { operation: string; value: unknown },\n ): string {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n throw new Error(\"applyStorageUpdateInVM is only supported for model API version 2\");\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.StorageApplyUpdate],\n extractCodeWithInfo(blockConfig),\n currentStorageJson,\n payload,\n ) as string;\n return result;\n } catch (e) {\n console.error(\"[ProjectHelper.applyStorageUpdateInVM] Storage update failed:\", e);\n throw new Error(`Block storage update failed: ${e}`);\n }\n }\n\n /**\n * Gets storage debug view from raw storage data by calling the VM's __pl_storage_debugView callback.\n * Returns structured debug info about the storage (e.g., dataVersion).\n *\n * @param blockConfig Block configuration\n * @param rawStorageJson Raw storage as JSON string (or undefined)\n * @returns Storage debug view as JSON string (e.g., '{\"dataVersion\": \"v1\"}')\n */\n public getStorageDebugViewInVM(\n blockConfig: BlockConfig,\n rawStorageJson: string | undefined,\n ): StringifiedJson<StorageDebugView> | undefined {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n throw new Error(\"getStorageDebugViewInVM is only supported for model API version 2\");\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.StorageDebugView],\n extractCodeWithInfo(blockConfig),\n rawStorageJson,\n ) as StringifiedJson<StorageDebugView>;\n return result;\n } catch (e) {\n console.error(\"[ProjectHelper.getStorageDebugViewInVM] Get storage debug view failed:\", e);\n return undefined;\n }\n }\n\n // =============================================================================\n // Block State Migrations\n // =============================================================================\n\n /**\n * Runs block state migrations via VM-based transformation.\n * This calls the model's `__pl_storage_migrate` callback which:\n * - Normalizes current storage to get state and version\n * - Applies DataModel upgrade to reach target version key\n * - Runs all necessary migrations sequentially\n * - Returns new storage with updated state and version\n *\n * The middle layer doesn't need to know about dataVersion or storage internals.\n * All migration logic is encapsulated in the model.\n *\n * @param blockConfig The NEW block configuration (provides the model code with migrations)\n * @param currentStorageJson Current storage as JSON string (or undefined)\n * @returns MigrationResult with new storage or skip/error info\n */\n public migrateStorageInVM(\n blockConfig: BlockConfig,\n currentStorageJson: string | undefined,\n ): MigrationResult {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n return { error: \"migrateStorageInVM is only supported for model API version 2\" };\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.StorageMigrate],\n extractCodeWithInfo(blockConfig),\n currentStorageJson,\n ) as MigrationResult;\n return result;\n } catch (e) {\n console.error(\"[ProjectHelper.migrateStorageInVM] Migration failed:\", e);\n return { error: `VM execution failed: ${e}` };\n }\n }\n}\n"],"names":["LRUCache","BLOCK_STORAGE_FACADE_VERSION","executeSingleLambda","BlockStorageFacadeCallbacks","extractCodeWithInfo","ensureError"],"mappings":"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"}
1
+ {"version":3,"file":"project_helper.cjs","names":["LRUCache","BLOCK_STORAGE_FACADE_VERSION","executeSingleLambda","BlockStorageFacadeCallbacks"],"sources":["../../src/model/project_helper.ts"],"sourcesContent":["import type {\n ResultOrError,\n BlockConfig,\n BlockStorage,\n PlRef,\n StorageDebugView,\n} from \"@platforma-sdk/model\";\nimport type { StringifiedJson } from \"@milaboratories/pl-model-common\";\nimport {\n extractCodeWithInfo,\n ensureError,\n BlockStorageFacadeCallbacks,\n BLOCK_STORAGE_FACADE_VERSION,\n} from \"@platforma-sdk/model\";\nimport { LRUCache } from \"lru-cache\";\nimport type { QuickJSWASMModule } from \"quickjs-emscripten\";\nimport { executeSingleLambda } from \"../js_render\";\nimport type { ResourceId } from \"@milaboratories/pl-client\";\n\ntype EnrichmentTargetsRequest = {\n blockConfig: () => BlockConfig;\n args: () => unknown;\n};\n\ntype EnrichmentTargetsValue = {\n value: PlRef[] | undefined;\n};\n\n/**\n * Result of VM-based storage migration.\n * Returned by migrateStorageInVM().\n *\n * - Error result: { error: string } - serious failure (no context, etc.)\n * - Success result: { newStorageJson: StringifiedJson<BlockStorage>, info: string } - migration succeeded\n */\nexport type MigrationResult =\n | { error: string }\n | { error?: undefined; newStorageJson: StringifiedJson<BlockStorage>; info: string };\n\n/**\n * Result of args derivation from storage.\n * Returned by __pl_args_derive and __pl_prerunArgs_derive VM callbacks.\n */\ntype ArgsDeriveResult = { error: string } | { error?: undefined; value: unknown };\n\nexport class ProjectHelper {\n private readonly enrichmentTargetsCache = new LRUCache<\n string,\n EnrichmentTargetsValue,\n EnrichmentTargetsRequest\n >({\n max: 256,\n memoMethod: (_key, _value, { context }) => {\n return { value: this.calculateEnrichmentTargets(context) };\n },\n });\n\n constructor(private readonly quickJs: QuickJSWASMModule) {}\n\n // =============================================================================\n // Args Derivation from Storage (V3+)\n // =============================================================================\n\n /**\n * Derives args directly from storage JSON using VM callback.\n * The VM extracts data from storage and calls the block's args() function.\n *\n * This allows the middle layer to work only with storage JSON,\n * without needing to know the underlying data structure.\n *\n * @param blockConfig The block configuration (provides the model code)\n * @param storageJson Storage as JSON string\n * @returns The derived args object, or error if derivation fails\n */\n public deriveArgsFromStorage(\n blockConfig: BlockConfig,\n storageJson: string,\n ): ResultOrError<unknown> {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n return {\n error: new Error(\"deriveArgsFromStorage is only supported for model API version 2\"),\n };\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.ArgsDerive],\n extractCodeWithInfo(blockConfig),\n storageJson,\n ) as ArgsDeriveResult;\n\n if (result.error !== undefined) {\n return { error: new Error(result.error) };\n }\n return { value: result.value };\n } catch (e) {\n return { error: new Error(\"Args derivation from storage failed\", { cause: ensureError(e) }) };\n }\n }\n\n /**\n * Derives prerunArgs directly from storage JSON using VM callback.\n * Falls back to args() if prerunArgs is not defined in the block model.\n *\n * @param blockConfig The block configuration (provides the model code)\n * @param storageJson Storage as JSON string\n * @returns The derived prerunArgs, or undefined if derivation fails\n */\n public derivePrerunArgsFromStorage(blockConfig: BlockConfig, storageJson: string): unknown {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n throw new Error(\"derivePrerunArgsFromStorage is only supported for model API version 2\");\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.PrerunArgsDerive],\n extractCodeWithInfo(blockConfig),\n storageJson,\n ) as ArgsDeriveResult;\n\n if (result.error !== undefined) {\n // Return undefined if derivation fails (skip block in staging)\n return undefined;\n }\n return result.value;\n } catch {\n // Return undefined if derivation fails (skip block in staging)\n return undefined;\n }\n }\n\n private calculateEnrichmentTargets(req: EnrichmentTargetsRequest): PlRef[] | undefined {\n const blockConfig = req.blockConfig();\n if (blockConfig.enrichmentTargets === undefined) return undefined;\n const args = req.args();\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.enrichmentTargets,\n extractCodeWithInfo(blockConfig),\n args,\n ) as PlRef[];\n return result;\n }\n\n public getEnrichmentTargets(\n blockConfig: () => BlockConfig,\n args: () => unknown,\n key?: { argsRid: ResourceId; blockPackRid: ResourceId },\n ): PlRef[] | undefined {\n const req = { blockConfig, args };\n if (key === undefined) return this.calculateEnrichmentTargets(req);\n const cacheKey = `${key.argsRid}:${key.blockPackRid}`;\n return this.enrichmentTargetsCache.memo(cacheKey, { context: req }).value;\n }\n\n // =============================================================================\n // VM-based Storage Operations\n // =============================================================================\n\n /**\n * Creates initial BlockStorage for a new block using VM-based transformation.\n * This calls the '__pl_storage_initial' callback registered by DataModel which:\n * - Gets initial data from DataModel.getDefaultData()\n * - Creates BlockStorage with correct version\n *\n * @param blockConfig The block configuration (provides the model code)\n * @returns Initial storage as JSON string\n * @throws Error if storage creation fails\n */\n public getInitialStorageInVM(blockConfig: BlockConfig): string {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n throw new Error(\"getInitialStorageInVM is only supported for model API version 2\");\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.StorageInitial],\n extractCodeWithInfo(blockConfig),\n ) as string;\n return result;\n } catch (e) {\n console.error(\"[ProjectHelper.getInitialStorageInVM] Initial storage creation failed:\", e);\n throw new Error(`Block initial storage creation failed: ${e}`);\n }\n }\n\n /**\n * Applies a state update using VM-based transformation.\n * This calls the model's `__pl_storage_applyUpdate` callback which:\n * - Normalizes current storage\n * - Updates state while preserving other fields (version, plugins)\n * - Returns the updated storage as JSON string\n *\n * @param blockConfig The block configuration (provides the model code)\n * @param currentStorageJson Current storage as JSON string (must be defined)\n * @param newState New state from developer\n * @returns Updated storage as JSON string\n * @throws Error if storage update fails\n */\n public applyStorageUpdateInVM(\n blockConfig: BlockConfig,\n currentStorageJson: string,\n payload: { operation: string; value: unknown },\n ): string {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n throw new Error(\"applyStorageUpdateInVM is only supported for model API version 2\");\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.StorageApplyUpdate],\n extractCodeWithInfo(blockConfig),\n currentStorageJson,\n payload,\n ) as string;\n return result;\n } catch (e) {\n console.error(\"[ProjectHelper.applyStorageUpdateInVM] Storage update failed:\", e);\n throw new Error(`Block storage update failed: ${e}`);\n }\n }\n\n /**\n * Gets storage debug view from raw storage data by calling the VM's __pl_storage_debugView callback.\n * Returns structured debug info about the storage (e.g., dataVersion).\n *\n * @param blockConfig Block configuration\n * @param rawStorageJson Raw storage as JSON string (or undefined)\n * @returns Storage debug view as JSON string (e.g., '{\"dataVersion\": \"v1\"}')\n */\n public getStorageDebugViewInVM(\n blockConfig: BlockConfig,\n rawStorageJson: string | undefined,\n ): StringifiedJson<StorageDebugView> | undefined {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n throw new Error(\"getStorageDebugViewInVM is only supported for model API version 2\");\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.StorageDebugView],\n extractCodeWithInfo(blockConfig),\n rawStorageJson,\n ) as StringifiedJson<StorageDebugView>;\n return result;\n } catch (e) {\n console.error(\"[ProjectHelper.getStorageDebugViewInVM] Get storage debug view failed:\", e);\n return undefined;\n }\n }\n\n // =============================================================================\n // Block State Migrations\n // =============================================================================\n\n /**\n * Runs block state migrations via VM-based transformation.\n * This calls the model's `__pl_storage_migrate` callback which:\n * - Normalizes current storage to get state and version\n * - Applies DataModel upgrade to reach target version key\n * - Runs all necessary migrations sequentially\n * - Returns new storage with updated state and version\n *\n * The middle layer doesn't need to know about dataVersion or storage internals.\n * All migration logic is encapsulated in the model.\n *\n * @param blockConfig The NEW block configuration (provides the model code with migrations)\n * @param currentStorageJson Current storage as JSON string (or undefined)\n * @returns MigrationResult with new storage or skip/error info\n */\n public migrateStorageInVM(\n blockConfig: BlockConfig,\n currentStorageJson: string | undefined,\n ): MigrationResult {\n if (blockConfig.modelAPIVersion !== BLOCK_STORAGE_FACADE_VERSION) {\n return { error: \"migrateStorageInVM is only supported for model API version 2\" };\n }\n\n try {\n const result = executeSingleLambda(\n this.quickJs,\n blockConfig.blockLifecycleCallbacks[BlockStorageFacadeCallbacks.StorageMigrate],\n extractCodeWithInfo(blockConfig),\n currentStorageJson,\n ) as MigrationResult;\n return result;\n } catch (e) {\n console.error(\"[ProjectHelper.migrateStorageInVM] Migration failed:\", e);\n return { error: `VM execution failed: ${e}` };\n }\n }\n}\n"],"mappings":"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"}