@milaboratories/pl-middle-layer 1.42.2 → 1.42.4

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 (410) hide show
  1. package/dist/block_registry/index.d.ts +0 -1
  2. package/dist/block_registry/registry-v2-provider.cjs +22 -0
  3. package/dist/block_registry/registry-v2-provider.cjs.map +1 -0
  4. package/dist/block_registry/registry-v2-provider.d.ts +0 -1
  5. package/dist/block_registry/registry-v2-provider.js +20 -0
  6. package/dist/block_registry/registry-v2-provider.js.map +1 -0
  7. package/dist/block_registry/registry.cjs +231 -0
  8. package/dist/block_registry/registry.cjs.map +1 -0
  9. package/dist/block_registry/registry.d.ts +0 -1
  10. package/dist/block_registry/registry.js +227 -0
  11. package/dist/block_registry/registry.js.map +1 -0
  12. package/dist/block_registry/registry.test.d.ts +0 -1
  13. package/dist/block_registry/watcher.cjs +174 -0
  14. package/dist/block_registry/watcher.cjs.map +1 -0
  15. package/dist/block_registry/watcher.d.ts +0 -1
  16. package/dist/block_registry/watcher.js +171 -0
  17. package/dist/block_registry/watcher.js.map +1 -0
  18. package/dist/block_registry/well_known_registries.cjs +19 -0
  19. package/dist/block_registry/well_known_registries.cjs.map +1 -0
  20. package/dist/block_registry/well_known_registries.d.ts +0 -1
  21. package/dist/block_registry/well_known_registries.js +15 -0
  22. package/dist/block_registry/well_known_registries.js.map +1 -0
  23. package/dist/cfg_render/executor.cjs +159 -0
  24. package/dist/cfg_render/executor.cjs.map +1 -0
  25. package/dist/cfg_render/executor.d.ts +0 -1
  26. package/dist/cfg_render/executor.js +156 -0
  27. package/dist/cfg_render/executor.js.map +1 -0
  28. package/dist/cfg_render/executor.test.d.ts +0 -1
  29. package/dist/cfg_render/operation.d.ts +0 -1
  30. package/dist/cfg_render/renderer.cjs +528 -0
  31. package/dist/cfg_render/renderer.cjs.map +1 -0
  32. package/dist/cfg_render/renderer.d.ts +0 -1
  33. package/dist/cfg_render/renderer.js +525 -0
  34. package/dist/cfg_render/renderer.js.map +1 -0
  35. package/dist/cfg_render/traverse.cjs +65 -0
  36. package/dist/cfg_render/traverse.cjs.map +1 -0
  37. package/dist/cfg_render/traverse.d.ts +0 -1
  38. package/dist/cfg_render/traverse.js +63 -0
  39. package/dist/cfg_render/traverse.js.map +1 -0
  40. package/dist/cfg_render/util.cjs +32 -0
  41. package/dist/cfg_render/util.cjs.map +1 -0
  42. package/dist/cfg_render/util.d.ts +0 -1
  43. package/dist/cfg_render/util.js +28 -0
  44. package/dist/cfg_render/util.js.map +1 -0
  45. package/dist/debug/index.cjs +21 -0
  46. package/dist/debug/index.cjs.map +1 -0
  47. package/dist/debug/index.d.ts +0 -1
  48. package/dist/debug/index.js +19 -0
  49. package/dist/debug/index.js.map +1 -0
  50. package/dist/dev_env/index.cjs +59 -0
  51. package/dist/dev_env/index.cjs.map +1 -0
  52. package/dist/dev_env/index.d.ts +0 -1
  53. package/dist/dev_env/index.js +48 -0
  54. package/dist/dev_env/index.js.map +1 -0
  55. package/dist/dev_env/util.cjs +37 -0
  56. package/dist/dev_env/util.cjs.map +1 -0
  57. package/dist/dev_env/util.d.ts +0 -1
  58. package/dist/dev_env/util.js +16 -0
  59. package/dist/dev_env/util.js.map +1 -0
  60. package/dist/index.cjs +74 -0
  61. package/dist/index.cjs.map +1 -0
  62. package/dist/index.d.ts +0 -1
  63. package/dist/index.js +15 -75
  64. package/dist/index.js.map +1 -1
  65. package/dist/js_render/computable_context.cjs +525 -0
  66. package/dist/js_render/computable_context.cjs.map +1 -0
  67. package/dist/js_render/computable_context.d.ts +0 -1
  68. package/dist/js_render/computable_context.js +523 -0
  69. package/dist/js_render/computable_context.js.map +1 -0
  70. package/dist/js_render/context.cjs +229 -0
  71. package/dist/js_render/context.cjs.map +1 -0
  72. package/dist/js_render/context.d.ts +0 -1
  73. package/dist/js_render/context.js +226 -0
  74. package/dist/js_render/context.js.map +1 -0
  75. package/dist/js_render/index.cjs +163 -0
  76. package/dist/js_render/index.cjs.map +1 -0
  77. package/dist/js_render/index.d.ts +0 -1
  78. package/dist/js_render/index.js +160 -0
  79. package/dist/js_render/index.js.map +1 -0
  80. package/dist/middle_layer/active_cfg.cjs +37 -0
  81. package/dist/middle_layer/active_cfg.cjs.map +1 -0
  82. package/dist/middle_layer/active_cfg.d.ts +0 -1
  83. package/dist/middle_layer/active_cfg.js +35 -0
  84. package/dist/middle_layer/active_cfg.js.map +1 -0
  85. package/dist/middle_layer/block.cjs +51 -0
  86. package/dist/middle_layer/block.cjs.map +1 -0
  87. package/dist/middle_layer/block.d.ts +0 -1
  88. package/dist/middle_layer/block.js +48 -0
  89. package/dist/middle_layer/block.js.map +1 -0
  90. package/dist/middle_layer/block_ctx.cjs +87 -0
  91. package/dist/middle_layer/block_ctx.cjs.map +1 -0
  92. package/dist/middle_layer/block_ctx.d.ts +0 -1
  93. package/dist/middle_layer/block_ctx.js +84 -0
  94. package/dist/middle_layer/block_ctx.js.map +1 -0
  95. package/dist/middle_layer/block_ctx_unsafe.cjs +19 -0
  96. package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -0
  97. package/dist/middle_layer/block_ctx_unsafe.d.ts +0 -1
  98. package/dist/middle_layer/block_ctx_unsafe.js +16 -0
  99. package/dist/middle_layer/block_ctx_unsafe.js.map +1 -0
  100. package/dist/middle_layer/driver_kit.cjs +42 -0
  101. package/dist/middle_layer/driver_kit.cjs.map +1 -0
  102. package/dist/middle_layer/driver_kit.d.ts +0 -1
  103. package/dist/middle_layer/driver_kit.js +40 -0
  104. package/dist/middle_layer/driver_kit.js.map +1 -0
  105. package/dist/middle_layer/frontend_path.cjs +64 -0
  106. package/dist/middle_layer/frontend_path.cjs.map +1 -0
  107. package/dist/middle_layer/frontend_path.d.ts +0 -1
  108. package/dist/middle_layer/frontend_path.js +62 -0
  109. package/dist/middle_layer/frontend_path.js.map +1 -0
  110. package/dist/middle_layer/index.d.ts +0 -1
  111. package/dist/middle_layer/middle_layer.cjs +226 -0
  112. package/dist/middle_layer/middle_layer.cjs.map +1 -0
  113. package/dist/middle_layer/middle_layer.d.ts +0 -1
  114. package/dist/middle_layer/middle_layer.js +224 -0
  115. package/dist/middle_layer/middle_layer.js.map +1 -0
  116. package/dist/middle_layer/navigation_states.cjs +41 -0
  117. package/dist/middle_layer/navigation_states.cjs.map +1 -0
  118. package/dist/middle_layer/navigation_states.d.ts +0 -1
  119. package/dist/middle_layer/navigation_states.js +39 -0
  120. package/dist/middle_layer/navigation_states.js.map +1 -0
  121. package/dist/middle_layer/ops.cjs +75 -0
  122. package/dist/middle_layer/ops.cjs.map +1 -0
  123. package/dist/middle_layer/ops.d.ts +0 -1
  124. package/dist/middle_layer/ops.js +70 -0
  125. package/dist/middle_layer/ops.js.map +1 -0
  126. package/dist/middle_layer/project.cjs +446 -0
  127. package/dist/middle_layer/project.cjs.map +1 -0
  128. package/dist/middle_layer/project.d.ts +0 -1
  129. package/dist/middle_layer/project.js +444 -0
  130. package/dist/middle_layer/project.js.map +1 -0
  131. package/dist/middle_layer/project_list.cjs +53 -0
  132. package/dist/middle_layer/project_list.cjs.map +1 -0
  133. package/dist/middle_layer/project_list.d.ts +0 -1
  134. package/dist/middle_layer/project_list.js +48 -0
  135. package/dist/middle_layer/project_list.js.map +1 -0
  136. package/dist/middle_layer/project_overview.cjs +225 -0
  137. package/dist/middle_layer/project_overview.cjs.map +1 -0
  138. package/dist/middle_layer/project_overview.d.ts +0 -1
  139. package/dist/middle_layer/project_overview.js +204 -0
  140. package/dist/middle_layer/project_overview.js.map +1 -0
  141. package/dist/middle_layer/project_overview_light.cjs +20 -0
  142. package/dist/middle_layer/project_overview_light.cjs.map +1 -0
  143. package/dist/middle_layer/project_overview_light.d.ts +0 -1
  144. package/dist/middle_layer/project_overview_light.js +18 -0
  145. package/dist/middle_layer/project_overview_light.js.map +1 -0
  146. package/dist/middle_layer/render.cjs +26 -0
  147. package/dist/middle_layer/render.cjs.map +1 -0
  148. package/dist/middle_layer/render.d.ts +0 -1
  149. package/dist/middle_layer/render.js +23 -0
  150. package/dist/middle_layer/render.js.map +1 -0
  151. package/dist/middle_layer/render.test.d.ts +0 -1
  152. package/dist/middle_layer/types.d.ts +0 -1
  153. package/dist/middle_layer/util.cjs +22 -0
  154. package/dist/middle_layer/util.cjs.map +1 -0
  155. package/dist/middle_layer/util.d.ts +0 -1
  156. package/dist/middle_layer/util.js +20 -0
  157. package/dist/middle_layer/util.js.map +1 -0
  158. package/dist/model/args.cjs +62 -0
  159. package/dist/model/args.cjs.map +1 -0
  160. package/dist/model/args.d.ts +0 -1
  161. package/dist/model/args.js +58 -0
  162. package/dist/model/args.js.map +1 -0
  163. package/dist/model/block_pack.d.ts +0 -1
  164. package/dist/model/block_pack_spec.cjs +11 -0
  165. package/dist/model/block_pack_spec.cjs.map +1 -0
  166. package/dist/model/block_pack_spec.d.ts +0 -1
  167. package/dist/model/block_pack_spec.js +8 -0
  168. package/dist/model/block_pack_spec.js.map +1 -0
  169. package/dist/model/frontend.d.ts +0 -1
  170. package/dist/model/index.d.ts +0 -1
  171. package/dist/model/project_helper.cjs +36 -0
  172. package/dist/model/project_helper.cjs.map +1 -0
  173. package/dist/model/project_helper.d.ts +0 -1
  174. package/dist/model/project_helper.js +34 -0
  175. package/dist/model/project_helper.js.map +1 -0
  176. package/dist/model/project_model.cjs +74 -0
  177. package/dist/model/project_model.cjs.map +1 -0
  178. package/dist/model/project_model.d.ts +0 -1
  179. package/dist/model/project_model.js +54 -0
  180. package/dist/model/project_model.js.map +1 -0
  181. package/dist/model/project_model.test.d.ts +0 -1
  182. package/dist/model/project_model_util.cjs +176 -0
  183. package/dist/model/project_model_util.cjs.map +1 -0
  184. package/dist/model/project_model_util.d.ts +0 -1
  185. package/dist/model/project_model_util.js +170 -0
  186. package/dist/model/project_model_util.js.map +1 -0
  187. package/dist/model/project_model_util.test.d.ts +0 -1
  188. package/dist/model/project_model_v1.cjs +9 -0
  189. package/dist/model/project_model_v1.cjs.map +1 -0
  190. package/dist/model/project_model_v1.d.ts +0 -1
  191. package/dist/model/project_model_v1.js +6 -0
  192. package/dist/model/project_model_v1.js.map +1 -0
  193. package/dist/model/template_spec.d.ts +0 -1
  194. package/dist/mutator/block-pack/block_pack.cjs +233 -0
  195. package/dist/mutator/block-pack/block_pack.cjs.map +1 -0
  196. package/dist/mutator/block-pack/block_pack.d.ts +0 -1
  197. package/dist/mutator/block-pack/block_pack.js +227 -0
  198. package/dist/mutator/block-pack/block_pack.js.map +1 -0
  199. package/dist/mutator/block-pack/block_pack.test.d.ts +0 -1
  200. package/dist/mutator/block-pack/frontend.cjs +21 -0
  201. package/dist/mutator/block-pack/frontend.cjs.map +1 -0
  202. package/dist/mutator/block-pack/frontend.d.ts +0 -1
  203. package/dist/mutator/block-pack/frontend.js +19 -0
  204. package/dist/mutator/block-pack/frontend.js.map +1 -0
  205. package/dist/mutator/context_export.cjs +26 -0
  206. package/dist/mutator/context_export.cjs.map +1 -0
  207. package/dist/mutator/context_export.d.ts +2 -3
  208. package/dist/mutator/context_export.js +23 -0
  209. package/dist/mutator/context_export.js.map +1 -0
  210. package/dist/mutator/migration.cjs +57 -0
  211. package/dist/mutator/migration.cjs.map +1 -0
  212. package/dist/mutator/migration.d.ts +0 -1
  213. package/dist/mutator/migration.js +55 -0
  214. package/dist/mutator/migration.js.map +1 -0
  215. package/dist/mutator/project.cjs +997 -0
  216. package/dist/mutator/project.cjs.map +1 -0
  217. package/dist/mutator/project.d.ts +0 -1
  218. package/dist/mutator/project.js +992 -0
  219. package/dist/mutator/project.js.map +1 -0
  220. package/dist/mutator/project.test.d.ts +0 -1
  221. package/dist/mutator/template/direct_template_loader.cjs +146 -0
  222. package/dist/mutator/template/direct_template_loader.cjs.map +1 -0
  223. package/dist/mutator/template/direct_template_loader.d.ts +0 -1
  224. package/dist/mutator/template/direct_template_loader.js +143 -0
  225. package/dist/mutator/template/direct_template_loader.js.map +1 -0
  226. package/dist/mutator/template/direct_template_loader_v3.cjs +139 -0
  227. package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -0
  228. package/dist/mutator/template/direct_template_loader_v3.d.ts +0 -1
  229. package/dist/mutator/template/direct_template_loader_v3.js +137 -0
  230. package/dist/mutator/template/direct_template_loader_v3.js.map +1 -0
  231. package/dist/mutator/template/render_block.cjs +43 -0
  232. package/dist/mutator/template/render_block.cjs.map +1 -0
  233. package/dist/mutator/template/render_block.d.ts +0 -1
  234. package/dist/mutator/template/render_block.js +34 -0
  235. package/dist/mutator/template/render_block.js.map +1 -0
  236. package/dist/mutator/template/render_template.cjs +35 -0
  237. package/dist/mutator/template/render_template.cjs.map +1 -0
  238. package/dist/mutator/template/render_template.d.ts +0 -1
  239. package/dist/mutator/template/render_template.js +33 -0
  240. package/dist/mutator/template/render_template.js.map +1 -0
  241. package/dist/mutator/template/template_loading.cjs +71 -0
  242. package/dist/mutator/template/template_loading.cjs.map +1 -0
  243. package/dist/mutator/template/template_loading.d.ts +0 -1
  244. package/dist/mutator/template/template_loading.js +60 -0
  245. package/dist/mutator/template/template_loading.js.map +1 -0
  246. package/dist/mutator/template/template_render.test.d.ts +0 -1
  247. package/dist/network_check/network_check.cjs +267 -0
  248. package/dist/network_check/network_check.cjs.map +1 -0
  249. package/dist/network_check/network_check.d.ts +0 -1
  250. package/dist/network_check/network_check.js +264 -0
  251. package/dist/network_check/network_check.js.map +1 -0
  252. package/dist/network_check/network_check.test.d.ts +0 -1
  253. package/dist/network_check/pings.cjs +107 -0
  254. package/dist/network_check/pings.cjs.map +1 -0
  255. package/dist/network_check/pings.d.ts +0 -1
  256. package/dist/network_check/pings.js +96 -0
  257. package/dist/network_check/pings.js.map +1 -0
  258. package/dist/network_check/template.cjs +318 -0
  259. package/dist/network_check/template.cjs.map +1 -0
  260. package/dist/network_check/template.d.ts +0 -1
  261. package/dist/network_check/template.js +302 -0
  262. package/dist/network_check/template.js.map +1 -0
  263. package/dist/network_check/template.test.d.ts +0 -1
  264. package/dist/network_check/test_utils.d.ts +0 -1
  265. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.cjs +77 -0
  266. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.cjs.map +1 -0
  267. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.js +74 -0
  268. package/dist/node_modules/.pnpm/@rollup_plugin-typescript@12.1.4_rollup@4.45.1_tslib@2.7.0_typescript@5.6.3/node_modules/tslib/tslib.es6.js.map +1 -0
  269. package/dist/pool/data.cjs +298 -0
  270. package/dist/pool/data.cjs.map +1 -0
  271. package/dist/pool/data.d.ts +7 -9
  272. package/dist/pool/data.js +282 -0
  273. package/dist/pool/data.js.map +1 -0
  274. package/dist/pool/driver.cjs +620 -0
  275. package/dist/pool/driver.cjs.map +1 -0
  276. package/dist/pool/driver.d.ts +0 -1
  277. package/dist/pool/driver.js +598 -0
  278. package/dist/pool/driver.js.map +1 -0
  279. package/dist/pool/index.d.ts +0 -1
  280. package/dist/pool/p_object_collection.cjs +87 -0
  281. package/dist/pool/p_object_collection.cjs.map +1 -0
  282. package/dist/pool/p_object_collection.d.ts +0 -1
  283. package/dist/pool/p_object_collection.js +84 -0
  284. package/dist/pool/p_object_collection.js.map +1 -0
  285. package/dist/pool/ref_count_pool.cjs +58 -0
  286. package/dist/pool/ref_count_pool.cjs.map +1 -0
  287. package/dist/pool/ref_count_pool.d.ts +0 -1
  288. package/dist/pool/ref_count_pool.js +56 -0
  289. package/dist/pool/ref_count_pool.js.map +1 -0
  290. package/dist/pool/result_pool.cjs +265 -0
  291. package/dist/pool/result_pool.cjs.map +1 -0
  292. package/dist/pool/result_pool.d.ts +0 -1
  293. package/dist/pool/result_pool.js +263 -0
  294. package/dist/pool/result_pool.js.map +1 -0
  295. package/dist/test/block_packs.d.ts +0 -1
  296. package/dist/test/explicit_templates.d.ts +0 -1
  297. package/dist/test/known_templates.d.ts +0 -1
  298. package/dist/test_env.d.ts +0 -1
  299. package/dist/worker/WorkerManager.cjs +53 -0
  300. package/dist/worker/WorkerManager.cjs.map +1 -0
  301. package/dist/worker/WorkerManager.d.ts +0 -1
  302. package/dist/worker/WorkerManager.js +51 -0
  303. package/dist/worker/WorkerManager.js.map +1 -0
  304. package/dist/worker/worker.cjs +16 -0
  305. package/dist/worker/worker.cjs.map +1 -0
  306. package/dist/worker/worker.d.ts +0 -1
  307. package/dist/worker/worker.js +14 -0
  308. package/dist/worker/worker.js.map +1 -0
  309. package/dist/worker/workerApi.cjs +20 -0
  310. package/dist/worker/workerApi.cjs.map +1 -0
  311. package/dist/worker/workerApi.d.ts +1 -3
  312. package/dist/worker/workerApi.js +18 -0
  313. package/dist/worker/workerApi.js.map +1 -0
  314. package/package.json +25 -33
  315. package/src/cfg_render/executor.test.ts +5 -4
  316. package/src/model/project_model.test.ts +3 -3
  317. package/src/model/project_model_util.test.ts +3 -2
  318. package/src/mutator/block-pack/block_pack.test.ts +5 -4
  319. package/src/mutator/project.test.ts +4 -4
  320. package/src/mutator/template/template_render.test.ts +7 -6
  321. package/src/network_check/network_check.test.ts +1 -0
  322. package/src/network_check/test_utils.ts +2 -0
  323. package/src/worker/WorkerManager.ts +6 -8
  324. package/dist/block_registry/index.d.ts.map +0 -1
  325. package/dist/block_registry/registry-v2-provider.d.ts.map +0 -1
  326. package/dist/block_registry/registry.d.ts.map +0 -1
  327. package/dist/block_registry/registry.test.d.ts.map +0 -1
  328. package/dist/block_registry/watcher.d.ts.map +0 -1
  329. package/dist/block_registry/well_known_registries.d.ts.map +0 -1
  330. package/dist/cfg_render/executor.d.ts.map +0 -1
  331. package/dist/cfg_render/executor.test.d.ts.map +0 -1
  332. package/dist/cfg_render/operation.d.ts.map +0 -1
  333. package/dist/cfg_render/renderer.d.ts.map +0 -1
  334. package/dist/cfg_render/traverse.d.ts.map +0 -1
  335. package/dist/cfg_render/util.d.ts.map +0 -1
  336. package/dist/debug/index.d.ts.map +0 -1
  337. package/dist/dev_env/index.d.ts.map +0 -1
  338. package/dist/dev_env/util.d.ts.map +0 -1
  339. package/dist/index.d.ts.map +0 -1
  340. package/dist/index.mjs +0 -6742
  341. package/dist/index.mjs.map +0 -1
  342. package/dist/js_render/computable_context.d.ts.map +0 -1
  343. package/dist/js_render/context.d.ts.map +0 -1
  344. package/dist/js_render/index.d.ts.map +0 -1
  345. package/dist/middle_layer/active_cfg.d.ts.map +0 -1
  346. package/dist/middle_layer/block.d.ts.map +0 -1
  347. package/dist/middle_layer/block_ctx.d.ts.map +0 -1
  348. package/dist/middle_layer/block_ctx_unsafe.d.ts.map +0 -1
  349. package/dist/middle_layer/driver_kit.d.ts.map +0 -1
  350. package/dist/middle_layer/frontend_path.d.ts.map +0 -1
  351. package/dist/middle_layer/index.d.ts.map +0 -1
  352. package/dist/middle_layer/middle_layer.d.ts.map +0 -1
  353. package/dist/middle_layer/navigation_states.d.ts.map +0 -1
  354. package/dist/middle_layer/ops.d.ts.map +0 -1
  355. package/dist/middle_layer/project.d.ts.map +0 -1
  356. package/dist/middle_layer/project_list.d.ts.map +0 -1
  357. package/dist/middle_layer/project_overview.d.ts.map +0 -1
  358. package/dist/middle_layer/project_overview_light.d.ts.map +0 -1
  359. package/dist/middle_layer/render.d.ts.map +0 -1
  360. package/dist/middle_layer/render.test.d.ts.map +0 -1
  361. package/dist/middle_layer/types.d.ts.map +0 -1
  362. package/dist/middle_layer/util.d.ts.map +0 -1
  363. package/dist/model/args.d.ts.map +0 -1
  364. package/dist/model/block_pack.d.ts.map +0 -1
  365. package/dist/model/block_pack_spec.d.ts.map +0 -1
  366. package/dist/model/frontend.d.ts.map +0 -1
  367. package/dist/model/index.d.ts.map +0 -1
  368. package/dist/model/project_helper.d.ts.map +0 -1
  369. package/dist/model/project_model.d.ts.map +0 -1
  370. package/dist/model/project_model.test.d.ts.map +0 -1
  371. package/dist/model/project_model_util.d.ts.map +0 -1
  372. package/dist/model/project_model_util.test.d.ts.map +0 -1
  373. package/dist/model/project_model_v1.d.ts.map +0 -1
  374. package/dist/model/template_spec.d.ts.map +0 -1
  375. package/dist/mutator/block-pack/block_pack.d.ts.map +0 -1
  376. package/dist/mutator/block-pack/block_pack.test.d.ts.map +0 -1
  377. package/dist/mutator/block-pack/frontend.d.ts.map +0 -1
  378. package/dist/mutator/context_export.d.ts.map +0 -1
  379. package/dist/mutator/migration.d.ts.map +0 -1
  380. package/dist/mutator/project.d.ts.map +0 -1
  381. package/dist/mutator/project.test.d.ts.map +0 -1
  382. package/dist/mutator/template/direct_template_loader.d.ts.map +0 -1
  383. package/dist/mutator/template/direct_template_loader_v3.d.ts.map +0 -1
  384. package/dist/mutator/template/render_block.d.ts.map +0 -1
  385. package/dist/mutator/template/render_template.d.ts.map +0 -1
  386. package/dist/mutator/template/template_loading.d.ts.map +0 -1
  387. package/dist/mutator/template/template_render.test.d.ts.map +0 -1
  388. package/dist/network_check/network_check.d.ts.map +0 -1
  389. package/dist/network_check/network_check.test.d.ts.map +0 -1
  390. package/dist/network_check/pings.d.ts.map +0 -1
  391. package/dist/network_check/template.d.ts.map +0 -1
  392. package/dist/network_check/template.test.d.ts.map +0 -1
  393. package/dist/network_check/test_utils.d.ts.map +0 -1
  394. package/dist/pool/data.d.ts.map +0 -1
  395. package/dist/pool/driver.d.ts.map +0 -1
  396. package/dist/pool/index.d.ts.map +0 -1
  397. package/dist/pool/p_object_collection.d.ts.map +0 -1
  398. package/dist/pool/ref_count_pool.d.ts.map +0 -1
  399. package/dist/pool/result_pool.d.ts.map +0 -1
  400. package/dist/test/block_packs.d.ts.map +0 -1
  401. package/dist/test/explicit_templates.d.ts.map +0 -1
  402. package/dist/test/known_templates.d.ts.map +0 -1
  403. package/dist/test_env.d.ts.map +0 -1
  404. package/dist/worker/WorkerManager.d.ts.map +0 -1
  405. package/dist/worker/worker.d.ts.map +0 -1
  406. package/dist/worker/workerApi.d.ts.map +0 -1
  407. package/dist/worker.js +0 -2
  408. package/dist/worker.js.map +0 -1
  409. package/dist/worker.mjs +0 -20
  410. package/dist/worker.mjs.map +0 -1
@@ -0,0 +1,298 @@
1
+ 'use strict';
2
+
3
+ var model = require('@platforma-sdk/model');
4
+ var tsHelpers = require('@milaboratories/ts-helpers');
5
+ var canonicalize = require('canonicalize');
6
+ var plClient = require('@milaboratories/pl-client');
7
+ var node_crypto = require('node:crypto');
8
+
9
+ function* allBlobs(data) {
10
+ switch (data.type) {
11
+ case 'Json':
12
+ return;
13
+ case 'JsonPartitioned':
14
+ for (const blob of Object.values(data.parts))
15
+ yield blob;
16
+ return;
17
+ case 'BinaryPartitioned':
18
+ for (const { index, values } of Object.values(data.parts)) {
19
+ yield index;
20
+ yield values;
21
+ }
22
+ return;
23
+ case 'ParquetPartitioned':
24
+ for (const { data: blob } of Object.values(data.parts))
25
+ yield blob;
26
+ return;
27
+ default:
28
+ tsHelpers.assertNever(data);
29
+ }
30
+ }
31
+ function mapValues(obj, callback) {
32
+ return Object.fromEntries(Object.entries(obj)
33
+ .map(([key, value]) => [key, callback(value, key)]));
34
+ }
35
+ function mapBlobs(data, mapping) {
36
+ switch (data.type) {
37
+ case 'Json':
38
+ return { ...data };
39
+ case 'JsonPartitioned':
40
+ return {
41
+ ...data,
42
+ parts: mapValues(data.parts, mapping),
43
+ };
44
+ case 'BinaryPartitioned':
45
+ return {
46
+ ...data,
47
+ parts: mapValues(data.parts, (v) => ({
48
+ index: mapping(v.index),
49
+ values: mapping(v.values),
50
+ })),
51
+ };
52
+ case 'ParquetPartitioned':
53
+ return {
54
+ ...data,
55
+ parts: mapValues(data.parts, (v) => ({
56
+ ...v,
57
+ data: mapping(v.data),
58
+ })),
59
+ };
60
+ default:
61
+ tsHelpers.assertNever(data);
62
+ }
63
+ }
64
+ const PColumnDataJsonPartitioned = plClient.resourceType('PColumnData/JsonPartitioned', '1');
65
+ const PColumnDataJsonSuperPartitioned = plClient.resourceType('PColumnData/Partitioned/JsonPartitioned', '1');
66
+ const PColumnDataBinaryPartitioned = plClient.resourceType('PColumnData/BinaryPartitioned', '1');
67
+ const PColumnDataBinarySuperPartitioned = plClient.resourceType('PColumnData/Partitioned/BinaryPartitioned', '1');
68
+ const PColumnDataParquetPartitioned = plClient.resourceType('PColumnData/ParquetPartitioned', '1');
69
+ const PColumnDataParquetSuperPartitioned = plClient.resourceType('PColumnData/Partitioned/ParquetPartitioned', '1');
70
+ const PColumnDataJson = plClient.resourceType('PColumnData/Json', '1');
71
+ function parseDataInfoResource(data) {
72
+ if (!data.getIsReadyOrError())
73
+ throw new model.PFrameDriverError('Data not ready.');
74
+ const resourceData = data.getDataAsJson();
75
+ if (resourceData === undefined)
76
+ throw new model.PFrameDriverError('unexpected data info structure, no resource data');
77
+ if (plClient.resourceTypesEqual(data.resourceType, PColumnDataJson)) {
78
+ const dataContent = resourceData;
79
+ return {
80
+ type: 'Json',
81
+ keyLength: dataContent.keyLength,
82
+ data: dataContent.data,
83
+ };
84
+ }
85
+ else if (plClient.resourceTypesEqual(data.resourceType, PColumnDataJsonPartitioned)) {
86
+ const meta = resourceData;
87
+ const parts = Object.fromEntries(data
88
+ .listInputFields()
89
+ .map((field) => [field, data.traverse({ field, errorIfFieldNotSet: true }).resourceInfo]));
90
+ return {
91
+ type: 'JsonPartitioned',
92
+ partitionKeyLength: meta.partitionKeyLength,
93
+ parts,
94
+ };
95
+ }
96
+ else if (plClient.resourceTypesEqual(data.resourceType, PColumnDataJsonSuperPartitioned)) {
97
+ const meta = resourceData;
98
+ const parts = {};
99
+ for (const superKey of data.listInputFields()) {
100
+ const superPart = data.traverse({ field: superKey, errorIfFieldNotSet: true });
101
+ const keys = superPart.listInputFields();
102
+ if (keys === undefined)
103
+ throw new model.PFrameDriverError(`no partition keys for super key ${superKey}`);
104
+ for (const key of keys) {
105
+ const partKey = JSON.stringify([
106
+ ...JSON.parse(superKey),
107
+ ...JSON.parse(key)
108
+ ]);
109
+ parts[partKey] = superPart.traverse({ field: key, errorIfFieldNotSet: true }).resourceInfo;
110
+ }
111
+ }
112
+ return {
113
+ type: 'JsonPartitioned',
114
+ partitionKeyLength: meta.superPartitionKeyLength + meta.partitionKeyLength,
115
+ parts,
116
+ };
117
+ }
118
+ else if (plClient.resourceTypesEqual(data.resourceType, PColumnDataBinaryPartitioned)) {
119
+ const meta = resourceData;
120
+ const parts = {};
121
+ // parsing the structure
122
+ for (const field of data.listInputFields()) {
123
+ if (field.endsWith('.index')) {
124
+ const partKey = field.slice(0, field.length - 6);
125
+ let part = parts[partKey];
126
+ if (part === undefined) {
127
+ part = {};
128
+ parts[partKey] = part;
129
+ }
130
+ part.index = data.traverse({ field, errorIfFieldNotSet: true }).resourceInfo;
131
+ }
132
+ else if (field.endsWith('.values')) {
133
+ const partKey = field.slice(0, field.length - 7);
134
+ let part = parts[partKey];
135
+ if (part === undefined) {
136
+ part = {};
137
+ parts[partKey] = part;
138
+ }
139
+ part.values = data.traverse({ field, errorIfFieldNotSet: true }).resourceInfo;
140
+ }
141
+ else
142
+ throw new model.PFrameDriverError(`unrecognized part field name: ${field}`);
143
+ }
144
+ // structure validation
145
+ for (const [key, part] of Object.entries(parts)) {
146
+ if (part.index === undefined)
147
+ throw new model.PFrameDriverError(`no index for part ${key}`);
148
+ if (part.values === undefined)
149
+ throw new model.PFrameDriverError(`no values for part ${key}`);
150
+ }
151
+ return {
152
+ type: 'BinaryPartitioned',
153
+ partitionKeyLength: meta.partitionKeyLength,
154
+ parts: parts,
155
+ };
156
+ }
157
+ else if (plClient.resourceTypesEqual(data.resourceType, PColumnDataBinarySuperPartitioned)) {
158
+ const meta = resourceData;
159
+ const parts = {};
160
+ for (const superKey of data.listInputFields()) {
161
+ const superData = data.traverse({ field: superKey, errorIfFieldNotSet: true });
162
+ const keys = superData.listInputFields();
163
+ if (keys === undefined)
164
+ throw new model.PFrameDriverError(`no partition keys for super key ${superKey}`);
165
+ for (const field of keys) {
166
+ if (field.endsWith('.index')) {
167
+ const key = field.slice(0, field.length - 6);
168
+ const partKey = JSON.stringify([
169
+ ...JSON.parse(superKey),
170
+ ...JSON.parse(key)
171
+ ]);
172
+ let part = parts[partKey];
173
+ if (part === undefined) {
174
+ part = {};
175
+ parts[partKey] = part;
176
+ }
177
+ parts[partKey].index = superData.traverse({
178
+ field,
179
+ errorIfFieldNotSet: true,
180
+ }).resourceInfo;
181
+ }
182
+ else if (field.endsWith('.values')) {
183
+ const key = field.slice(0, field.length - 7);
184
+ const partKey = JSON.stringify([
185
+ ...JSON.parse(superKey),
186
+ ...JSON.parse(key)
187
+ ]);
188
+ let part = parts[partKey];
189
+ if (part === undefined) {
190
+ part = {};
191
+ parts[partKey] = part;
192
+ }
193
+ parts[partKey].values = superData.traverse({
194
+ field,
195
+ errorIfFieldNotSet: true,
196
+ }).resourceInfo;
197
+ }
198
+ else
199
+ throw new model.PFrameDriverError(`unrecognized part field name: ${field}`);
200
+ }
201
+ }
202
+ return {
203
+ type: 'BinaryPartitioned',
204
+ partitionKeyLength: meta.superPartitionKeyLength + meta.partitionKeyLength,
205
+ parts: parts,
206
+ };
207
+ }
208
+ else if (plClient.resourceTypesEqual(data.resourceType, PColumnDataParquetPartitioned)) {
209
+ const meta = resourceData;
210
+ const parts = {};
211
+ for (const key of data.listInputFields()) {
212
+ const resource = data.traverse({ field: key, assertFieldType: 'Input', errorIfFieldNotSet: true });
213
+ parts[key] = traverseParquetPartitionedResource(resource);
214
+ }
215
+ return {
216
+ type: 'ParquetPartitioned',
217
+ partitionKeyLength: meta.partitionKeyLength,
218
+ parts,
219
+ };
220
+ }
221
+ else if (plClient.resourceTypesEqual(data.resourceType, PColumnDataParquetSuperPartitioned)) {
222
+ const meta = resourceData;
223
+ const parts = {};
224
+ for (const superKey of data.listInputFields()) {
225
+ const superPart = data.traverse({ field: superKey, errorIfFieldNotSet: true });
226
+ const keys = superPart.listInputFields();
227
+ if (keys === undefined)
228
+ throw new model.PFrameDriverError(`no partition keys for super key ${superKey}`);
229
+ for (const key of keys) {
230
+ const resource = data.traverse({ field: key, errorIfFieldNotSet: true });
231
+ const partKey = JSON.stringify([
232
+ ...JSON.parse(superKey),
233
+ ...JSON.parse(key),
234
+ ]);
235
+ parts[partKey] = traverseParquetPartitionedResource(resource);
236
+ }
237
+ }
238
+ return {
239
+ type: 'ParquetPartitioned',
240
+ partitionKeyLength: meta.superPartitionKeyLength + meta.partitionKeyLength,
241
+ parts,
242
+ };
243
+ }
244
+ throw new model.PFrameDriverError(`unsupported resource type: ${plClient.resourceTypeToString(data.resourceType)}`);
245
+ }
246
+ function traverseParquetPartitionedResource(resource) {
247
+ const blob = resource.traverse({ field: 'blob', assertFieldType: 'Service', errorIfFieldNotSet: true }).resourceInfo;
248
+ const partInfo = resource.getDataAsJson();
249
+ const mapping = resource.traverse({ field: 'mapping', assertFieldType: 'Service', errorIfFieldNotSet: true }).getDataAsJson();
250
+ return {
251
+ data: blob,
252
+ ...partInfo,
253
+ ...mapping,
254
+ };
255
+ }
256
+ function makeDataInfoFromPColumnValues(spec, data) {
257
+ const keyLength = spec.axesSpec.length;
258
+ const jsonData = {};
259
+ for (const { key, val } of data) {
260
+ if (key.length !== keyLength)
261
+ throw new model.PFrameDriverError(`inline column key length ${key.length} differs from axes count ${keyLength}`);
262
+ jsonData[JSON.stringify(key)] = val;
263
+ }
264
+ return {
265
+ type: 'Json',
266
+ keyLength,
267
+ data: jsonData,
268
+ };
269
+ }
270
+ function deriveLegacyPObjectId(spec, data) {
271
+ const hash = node_crypto.createHash('sha256');
272
+ hash.update(canonicalize(spec));
273
+ hash.update(String(!plClient.isNullResourceId(data.originalId) ? data.originalId : data.id));
274
+ return hash.digest().toString('hex');
275
+ }
276
+ function deriveGlobalPObjectId(blockId, exportName) {
277
+ return canonicalize({ __isRef: true, blockId, name: exportName });
278
+ }
279
+ function deriveLocalPObjectId(resolvePath, outputName) {
280
+ return canonicalize({ resolvePath, name: outputName });
281
+ }
282
+
283
+ exports.PColumnDataBinaryPartitioned = PColumnDataBinaryPartitioned;
284
+ exports.PColumnDataBinarySuperPartitioned = PColumnDataBinarySuperPartitioned;
285
+ exports.PColumnDataJson = PColumnDataJson;
286
+ exports.PColumnDataJsonPartitioned = PColumnDataJsonPartitioned;
287
+ exports.PColumnDataJsonSuperPartitioned = PColumnDataJsonSuperPartitioned;
288
+ exports.PColumnDataParquetPartitioned = PColumnDataParquetPartitioned;
289
+ exports.PColumnDataParquetSuperPartitioned = PColumnDataParquetSuperPartitioned;
290
+ exports.allBlobs = allBlobs;
291
+ exports.deriveGlobalPObjectId = deriveGlobalPObjectId;
292
+ exports.deriveLegacyPObjectId = deriveLegacyPObjectId;
293
+ exports.deriveLocalPObjectId = deriveLocalPObjectId;
294
+ exports.makeDataInfoFromPColumnValues = makeDataInfoFromPColumnValues;
295
+ exports.mapBlobs = mapBlobs;
296
+ exports.parseDataInfoResource = parseDataInfoResource;
297
+ exports.traverseParquetPartitionedResource = traverseParquetPartitionedResource;
298
+ //# sourceMappingURL=data.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"data.cjs","sources":["../../src/pool/data.ts"],"sourcesContent":["import {\n PFrameDriverError,\n type BinaryChunk,\n type JsonDataInfo,\n type ParquetChunk,\n type ParquetChunkMapping,\n type ParquetChunkMetadata,\n type PColumnSpec,\n type PColumnValue,\n type PColumnValues,\n type PlRef,\n type PObjectId,\n type PObjectSpec,\n} from '@platforma-sdk/model';\nimport type { PlTreeNodeAccessor, ResourceInfo } from '@milaboratories/pl-tree';\nimport { assertNever } from '@milaboratories/ts-helpers';\nimport canonicalize from 'canonicalize';\nimport {\n isNullResourceId,\n resourceType,\n resourceTypeToString,\n resourceTypesEqual,\n} from '@milaboratories/pl-client';\nimport type { Writable } from 'utility-types';\nimport { createHash } from 'node:crypto';\nimport type { PFrameInternal } from '@milaboratories/pl-model-middle-layer';\n\nexport function* allBlobs<B>(data: PFrameInternal.DataInfo<B>): Generator<B> {\n switch (data.type) {\n case 'Json':\n return;\n case 'JsonPartitioned':\n for (const blob of Object.values(data.parts)) yield blob;\n return;\n case 'BinaryPartitioned':\n for (const { index, values } of Object.values(data.parts)) {\n yield index;\n yield values;\n }\n return;\n case 'ParquetPartitioned':\n for (const { data: blob } of Object.values(data.parts)) yield blob;\n return;\n default:\n assertNever(data);\n }\n}\n\nfunction mapValues<T extends object, TResult>(\n obj: T,\n callback: (v: T[keyof T], key: keyof T) => TResult,\n): { [K in keyof T]: TResult } {\n return Object.fromEntries(\n (Object.entries(obj) as { [K in keyof T]: [K, T[K]]; }[keyof T][])\n .map(([key, value]) => [key, callback(value, key)]),\n ) as { [K in keyof T]: TResult };\n}\n\nexport function mapBlobs<B1, B2>(\n data: PFrameInternal.DataInfo<B1>,\n mapping: (blob: B1) => B2,\n): PFrameInternal.DataInfo<B2> {\n switch (data.type) {\n case 'Json':\n return { ...data };\n case 'JsonPartitioned':\n return {\n ...data,\n parts: mapValues(data.parts, mapping),\n };\n case 'BinaryPartitioned':\n return {\n ...data,\n parts: mapValues(data.parts, (v) => ({\n index: mapping(v.index),\n values: mapping(v.values),\n })),\n };\n case 'ParquetPartitioned':\n return {\n ...data,\n parts: mapValues(data.parts, (v) => ({\n ...v,\n data: mapping(v.data),\n })),\n };\n default:\n assertNever(data);\n }\n}\n\nexport const PColumnDataJsonPartitioned = resourceType('PColumnData/JsonPartitioned', '1');\nexport const PColumnDataJsonSuperPartitioned = resourceType(\n 'PColumnData/Partitioned/JsonPartitioned',\n '1',\n);\nexport const PColumnDataBinaryPartitioned = resourceType('PColumnData/BinaryPartitioned', '1');\nexport const PColumnDataBinarySuperPartitioned = resourceType(\n 'PColumnData/Partitioned/BinaryPartitioned',\n '1',\n);\nexport const PColumnDataParquetPartitioned = resourceType('PColumnData/ParquetPartitioned', '1');\nexport const PColumnDataParquetSuperPartitioned = resourceType(\n 'PColumnData/Partitioned/ParquetPartitioned',\n '1',\n);\nexport const PColumnDataJson = resourceType('PColumnData/Json', '1');\n\nexport type PColumnDataJsonResourceValue = {\n keyLength: number;\n data: Record<string, PColumnValue>;\n};\n\nexport type PColumnDataPartitionedResourceValue = {\n partitionKeyLength: number;\n};\n\nexport type PColumnDataSuperPartitionedResourceValue = {\n superPartitionKeyLength: number;\n partitionKeyLength: number;\n};\n\nexport function parseDataInfoResource(\n data: PlTreeNodeAccessor,\n): PFrameInternal.DataInfo<ResourceInfo> {\n if (!data.getIsReadyOrError()) throw new PFrameDriverError('Data not ready.');\n\n const resourceData = data.getDataAsJson();\n if (resourceData === undefined)\n throw new PFrameDriverError('unexpected data info structure, no resource data');\n\n if (resourceTypesEqual(data.resourceType, PColumnDataJson)) {\n const dataContent = resourceData as PColumnDataJsonResourceValue;\n\n return {\n type: 'Json',\n keyLength: dataContent.keyLength,\n data: dataContent.data,\n };\n } else if (resourceTypesEqual(data.resourceType, PColumnDataJsonPartitioned)) {\n const meta = resourceData as PColumnDataPartitionedResourceValue;\n\n const parts = Object.fromEntries(\n data\n .listInputFields()\n .map((field) => [field, data.traverse({ field, errorIfFieldNotSet: true }).resourceInfo]),\n );\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n } else if (resourceTypesEqual(data.resourceType, PColumnDataJsonSuperPartitioned)) {\n const meta = resourceData as PColumnDataSuperPartitionedResourceValue;\n\n const parts: Record<string, ResourceInfo> = {};\n for (const superKey of data.listInputFields()) {\n const superPart = data.traverse({ field: superKey, errorIfFieldNotSet: true });\n const keys = superPart.listInputFields();\n if (keys === undefined) throw new PFrameDriverError(`no partition keys for super key ${superKey}`);\n\n for (const key of keys) {\n const partKey = JSON.stringify([\n ...JSON.parse(superKey) as PColumnValue[],\n ...JSON.parse(key) as PColumnValue[]]);\n parts[partKey] = superPart.traverse({ field: key, errorIfFieldNotSet: true }).resourceInfo;\n }\n }\n\n return {\n type: 'JsonPartitioned',\n partitionKeyLength: meta.superPartitionKeyLength + meta.partitionKeyLength,\n parts,\n };\n } else if (resourceTypesEqual(data.resourceType, PColumnDataBinaryPartitioned)) {\n const meta = resourceData as PColumnDataPartitionedResourceValue;\n\n const parts: Record<\n string,\n Partial<Writable<BinaryChunk<ResourceInfo>>>\n > = {};\n\n // parsing the structure\n for (const field of data.listInputFields()) {\n if (field.endsWith('.index')) {\n const partKey = field.slice(0, field.length - 6);\n let part = parts[partKey];\n if (part === undefined) {\n part = {};\n parts[partKey] = part;\n }\n part.index = data.traverse({ field, errorIfFieldNotSet: true }).resourceInfo;\n } else if (field.endsWith('.values')) {\n const partKey = field.slice(0, field.length - 7);\n let part = parts[partKey];\n if (part === undefined) {\n part = {};\n parts[partKey] = part;\n }\n part.values = data.traverse({ field, errorIfFieldNotSet: true }).resourceInfo;\n } else throw new PFrameDriverError(`unrecognized part field name: ${field}`);\n }\n\n // structure validation\n for (const [key, part] of Object.entries(parts)) {\n if (part.index === undefined) throw new PFrameDriverError(`no index for part ${key}`);\n if (part.values === undefined) throw new PFrameDriverError(`no values for part ${key}`);\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts: parts as Record<string, BinaryChunk<ResourceInfo>>,\n };\n } else if (resourceTypesEqual(data.resourceType, PColumnDataBinarySuperPartitioned)) {\n const meta = resourceData as PColumnDataSuperPartitionedResourceValue;\n\n const parts: Record<\n string,\n Partial<Writable<BinaryChunk<ResourceInfo>>>\n > = {};\n for (const superKey of data.listInputFields()) {\n const superData = data.traverse({ field: superKey, errorIfFieldNotSet: true });\n const keys = superData.listInputFields();\n if (keys === undefined) throw new PFrameDriverError(`no partition keys for super key ${superKey}`);\n\n for (const field of keys) {\n if (field.endsWith('.index')) {\n const key = field.slice(0, field.length - 6);\n\n const partKey = JSON.stringify([\n ...JSON.parse(superKey) as PColumnValue[],\n ...JSON.parse(key) as PColumnValue[]]);\n let part = parts[partKey];\n if (part === undefined) {\n part = {};\n parts[partKey] = part;\n }\n parts[partKey].index = superData.traverse({\n field,\n errorIfFieldNotSet: true,\n }).resourceInfo;\n } else if (field.endsWith('.values')) {\n const key = field.slice(0, field.length - 7);\n\n const partKey = JSON.stringify([\n ...JSON.parse(superKey) as PColumnValue[],\n ...JSON.parse(key) as PColumnValue[]]);\n let part = parts[partKey];\n if (part === undefined) {\n part = {};\n parts[partKey] = part;\n }\n parts[partKey].values = superData.traverse({\n field,\n errorIfFieldNotSet: true,\n }).resourceInfo;\n } else throw new PFrameDriverError(`unrecognized part field name: ${field}`);\n }\n }\n\n return {\n type: 'BinaryPartitioned',\n partitionKeyLength: meta.superPartitionKeyLength + meta.partitionKeyLength,\n parts: parts as Record<string, BinaryChunk<ResourceInfo>>,\n };\n } else if (resourceTypesEqual(data.resourceType, PColumnDataParquetPartitioned)) {\n const meta = resourceData as PColumnDataPartitionedResourceValue;\n\n const parts: Record<string, ParquetChunk<ResourceInfo>> = {};\n for (const key of data.listInputFields()) {\n const resource = data.traverse({ field: key, assertFieldType: 'Input', errorIfFieldNotSet: true });\n\n parts[key] = traverseParquetPartitionedResource(resource);\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: meta.partitionKeyLength,\n parts,\n };\n } else if (resourceTypesEqual(data.resourceType, PColumnDataParquetSuperPartitioned)) {\n const meta = resourceData as PColumnDataSuperPartitionedResourceValue;\n\n const parts: Record<string, ParquetChunk<ResourceInfo>> = {};\n for (const superKey of data.listInputFields()) {\n const superPart = data.traverse({ field: superKey, errorIfFieldNotSet: true });\n const keys = superPart.listInputFields();\n if (keys === undefined) throw new PFrameDriverError(`no partition keys for super key ${superKey}`);\n\n for (const key of keys) {\n const resource = data.traverse({ field: key, errorIfFieldNotSet: true });\n\n const partKey = JSON.stringify([\n ...JSON.parse(superKey) as PColumnValue[],\n ...JSON.parse(key) as PColumnValue[],\n ]);\n parts[partKey] = traverseParquetPartitionedResource(resource);\n }\n }\n\n return {\n type: 'ParquetPartitioned',\n partitionKeyLength: meta.superPartitionKeyLength + meta.partitionKeyLength,\n parts,\n };\n }\n\n throw new PFrameDriverError(`unsupported resource type: ${resourceTypeToString(data.resourceType)}`);\n}\n\nexport function traverseParquetPartitionedResource(resource: PlTreeNodeAccessor): ParquetChunk<ResourceInfo> {\n const blob = resource.traverse(\n { field: 'blob', assertFieldType: 'Service', errorIfFieldNotSet: true },\n ).resourceInfo;\n const partInfo = resource.getDataAsJson() as ParquetChunkMetadata;\n const mapping = resource.traverse(\n { field: 'mapping', assertFieldType: 'Service', errorIfFieldNotSet: true },\n ).getDataAsJson() as ParquetChunkMapping;\n\n return {\n data: blob,\n ...partInfo,\n ...mapping,\n };\n}\n\nexport function makeDataInfoFromPColumnValues(\n spec: PColumnSpec,\n data: PColumnValues,\n): JsonDataInfo {\n const keyLength = spec.axesSpec.length;\n const jsonData: Record<string, PColumnValue> = {};\n for (const { key, val } of data) {\n if (key.length !== keyLength)\n throw new PFrameDriverError(`inline column key length ${key.length} differs from axes count ${keyLength}`);\n jsonData[JSON.stringify(key)] = val;\n }\n\n return {\n type: 'Json',\n keyLength,\n data: jsonData,\n };\n}\n\nexport function deriveLegacyPObjectId(spec: PObjectSpec, data: PlTreeNodeAccessor): PObjectId {\n const hash = createHash('sha256');\n hash.update(canonicalize(spec)!);\n hash.update(String(!isNullResourceId(data.originalId) ? data.originalId : data.id));\n return hash.digest().toString('hex') as PObjectId;\n}\n\nexport function deriveGlobalPObjectId(blockId: string, exportName: string): PObjectId {\n return canonicalize({ __isRef: true, blockId, name: exportName } satisfies PlRef)! as PObjectId;\n}\n\nexport function deriveLocalPObjectId(resolvePath: string[], outputName: string): PObjectId {\n return canonicalize({ resolvePath, name: outputName })! as PObjectId;\n}\n"],"names":["assertNever","resourceType","PFrameDriverError","resourceTypesEqual","resourceTypeToString","createHash","isNullResourceId"],"mappings":"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"}
@@ -1,16 +1,15 @@
1
1
  import { JsonDataInfo, ParquetChunk, PColumnSpec, PColumnValue, PColumnValues, PObjectId, PObjectSpec } from '@platforma-sdk/model';
2
2
  import { PlTreeNodeAccessor, ResourceInfo } from '@milaboratories/pl-tree';
3
3
  import { PFrameInternal } from '@milaboratories/pl-model-middle-layer';
4
- import { ResourceType } from '@milaboratories/pl-client';
5
4
  export declare function allBlobs<B>(data: PFrameInternal.DataInfo<B>): Generator<B>;
6
5
  export declare function mapBlobs<B1, B2>(data: PFrameInternal.DataInfo<B1>, mapping: (blob: B1) => B2): PFrameInternal.DataInfo<B2>;
7
- export declare const PColumnDataJsonPartitioned: ResourceType;
8
- export declare const PColumnDataJsonSuperPartitioned: ResourceType;
9
- export declare const PColumnDataBinaryPartitioned: ResourceType;
10
- export declare const PColumnDataBinarySuperPartitioned: ResourceType;
11
- export declare const PColumnDataParquetPartitioned: ResourceType;
12
- export declare const PColumnDataParquetSuperPartitioned: ResourceType;
13
- export declare const PColumnDataJson: ResourceType;
6
+ export declare const PColumnDataJsonPartitioned: import('@milaboratories/pl-client').ResourceType;
7
+ export declare const PColumnDataJsonSuperPartitioned: import('@milaboratories/pl-client').ResourceType;
8
+ export declare const PColumnDataBinaryPartitioned: import('@milaboratories/pl-client').ResourceType;
9
+ export declare const PColumnDataBinarySuperPartitioned: import('@milaboratories/pl-client').ResourceType;
10
+ export declare const PColumnDataParquetPartitioned: import('@milaboratories/pl-client').ResourceType;
11
+ export declare const PColumnDataParquetSuperPartitioned: import('@milaboratories/pl-client').ResourceType;
12
+ export declare const PColumnDataJson: import('@milaboratories/pl-client').ResourceType;
14
13
  export type PColumnDataJsonResourceValue = {
15
14
  keyLength: number;
16
15
  data: Record<string, PColumnValue>;
@@ -28,4 +27,3 @@ export declare function makeDataInfoFromPColumnValues(spec: PColumnSpec, data: P
28
27
  export declare function deriveLegacyPObjectId(spec: PObjectSpec, data: PlTreeNodeAccessor): PObjectId;
29
28
  export declare function deriveGlobalPObjectId(blockId: string, exportName: string): PObjectId;
30
29
  export declare function deriveLocalPObjectId(resolvePath: string[], outputName: string): PObjectId;
31
- //# sourceMappingURL=data.d.ts.map
@@ -0,0 +1,282 @@
1
+ import { PFrameDriverError } from '@platforma-sdk/model';
2
+ import { assertNever } from '@milaboratories/ts-helpers';
3
+ import canonicalize from 'canonicalize';
4
+ import { resourceType, resourceTypesEqual, resourceTypeToString, isNullResourceId } from '@milaboratories/pl-client';
5
+ import { createHash } from 'node:crypto';
6
+
7
+ function* allBlobs(data) {
8
+ switch (data.type) {
9
+ case 'Json':
10
+ return;
11
+ case 'JsonPartitioned':
12
+ for (const blob of Object.values(data.parts))
13
+ yield blob;
14
+ return;
15
+ case 'BinaryPartitioned':
16
+ for (const { index, values } of Object.values(data.parts)) {
17
+ yield index;
18
+ yield values;
19
+ }
20
+ return;
21
+ case 'ParquetPartitioned':
22
+ for (const { data: blob } of Object.values(data.parts))
23
+ yield blob;
24
+ return;
25
+ default:
26
+ assertNever(data);
27
+ }
28
+ }
29
+ function mapValues(obj, callback) {
30
+ return Object.fromEntries(Object.entries(obj)
31
+ .map(([key, value]) => [key, callback(value, key)]));
32
+ }
33
+ function mapBlobs(data, mapping) {
34
+ switch (data.type) {
35
+ case 'Json':
36
+ return { ...data };
37
+ case 'JsonPartitioned':
38
+ return {
39
+ ...data,
40
+ parts: mapValues(data.parts, mapping),
41
+ };
42
+ case 'BinaryPartitioned':
43
+ return {
44
+ ...data,
45
+ parts: mapValues(data.parts, (v) => ({
46
+ index: mapping(v.index),
47
+ values: mapping(v.values),
48
+ })),
49
+ };
50
+ case 'ParquetPartitioned':
51
+ return {
52
+ ...data,
53
+ parts: mapValues(data.parts, (v) => ({
54
+ ...v,
55
+ data: mapping(v.data),
56
+ })),
57
+ };
58
+ default:
59
+ assertNever(data);
60
+ }
61
+ }
62
+ const PColumnDataJsonPartitioned = resourceType('PColumnData/JsonPartitioned', '1');
63
+ const PColumnDataJsonSuperPartitioned = resourceType('PColumnData/Partitioned/JsonPartitioned', '1');
64
+ const PColumnDataBinaryPartitioned = resourceType('PColumnData/BinaryPartitioned', '1');
65
+ const PColumnDataBinarySuperPartitioned = resourceType('PColumnData/Partitioned/BinaryPartitioned', '1');
66
+ const PColumnDataParquetPartitioned = resourceType('PColumnData/ParquetPartitioned', '1');
67
+ const PColumnDataParquetSuperPartitioned = resourceType('PColumnData/Partitioned/ParquetPartitioned', '1');
68
+ const PColumnDataJson = resourceType('PColumnData/Json', '1');
69
+ function parseDataInfoResource(data) {
70
+ if (!data.getIsReadyOrError())
71
+ throw new PFrameDriverError('Data not ready.');
72
+ const resourceData = data.getDataAsJson();
73
+ if (resourceData === undefined)
74
+ throw new PFrameDriverError('unexpected data info structure, no resource data');
75
+ if (resourceTypesEqual(data.resourceType, PColumnDataJson)) {
76
+ const dataContent = resourceData;
77
+ return {
78
+ type: 'Json',
79
+ keyLength: dataContent.keyLength,
80
+ data: dataContent.data,
81
+ };
82
+ }
83
+ else if (resourceTypesEqual(data.resourceType, PColumnDataJsonPartitioned)) {
84
+ const meta = resourceData;
85
+ const parts = Object.fromEntries(data
86
+ .listInputFields()
87
+ .map((field) => [field, data.traverse({ field, errorIfFieldNotSet: true }).resourceInfo]));
88
+ return {
89
+ type: 'JsonPartitioned',
90
+ partitionKeyLength: meta.partitionKeyLength,
91
+ parts,
92
+ };
93
+ }
94
+ else if (resourceTypesEqual(data.resourceType, PColumnDataJsonSuperPartitioned)) {
95
+ const meta = resourceData;
96
+ const parts = {};
97
+ for (const superKey of data.listInputFields()) {
98
+ const superPart = data.traverse({ field: superKey, errorIfFieldNotSet: true });
99
+ const keys = superPart.listInputFields();
100
+ if (keys === undefined)
101
+ throw new PFrameDriverError(`no partition keys for super key ${superKey}`);
102
+ for (const key of keys) {
103
+ const partKey = JSON.stringify([
104
+ ...JSON.parse(superKey),
105
+ ...JSON.parse(key)
106
+ ]);
107
+ parts[partKey] = superPart.traverse({ field: key, errorIfFieldNotSet: true }).resourceInfo;
108
+ }
109
+ }
110
+ return {
111
+ type: 'JsonPartitioned',
112
+ partitionKeyLength: meta.superPartitionKeyLength + meta.partitionKeyLength,
113
+ parts,
114
+ };
115
+ }
116
+ else if (resourceTypesEqual(data.resourceType, PColumnDataBinaryPartitioned)) {
117
+ const meta = resourceData;
118
+ const parts = {};
119
+ // parsing the structure
120
+ for (const field of data.listInputFields()) {
121
+ if (field.endsWith('.index')) {
122
+ const partKey = field.slice(0, field.length - 6);
123
+ let part = parts[partKey];
124
+ if (part === undefined) {
125
+ part = {};
126
+ parts[partKey] = part;
127
+ }
128
+ part.index = data.traverse({ field, errorIfFieldNotSet: true }).resourceInfo;
129
+ }
130
+ else if (field.endsWith('.values')) {
131
+ const partKey = field.slice(0, field.length - 7);
132
+ let part = parts[partKey];
133
+ if (part === undefined) {
134
+ part = {};
135
+ parts[partKey] = part;
136
+ }
137
+ part.values = data.traverse({ field, errorIfFieldNotSet: true }).resourceInfo;
138
+ }
139
+ else
140
+ throw new PFrameDriverError(`unrecognized part field name: ${field}`);
141
+ }
142
+ // structure validation
143
+ for (const [key, part] of Object.entries(parts)) {
144
+ if (part.index === undefined)
145
+ throw new PFrameDriverError(`no index for part ${key}`);
146
+ if (part.values === undefined)
147
+ throw new PFrameDriverError(`no values for part ${key}`);
148
+ }
149
+ return {
150
+ type: 'BinaryPartitioned',
151
+ partitionKeyLength: meta.partitionKeyLength,
152
+ parts: parts,
153
+ };
154
+ }
155
+ else if (resourceTypesEqual(data.resourceType, PColumnDataBinarySuperPartitioned)) {
156
+ const meta = resourceData;
157
+ const parts = {};
158
+ for (const superKey of data.listInputFields()) {
159
+ const superData = data.traverse({ field: superKey, errorIfFieldNotSet: true });
160
+ const keys = superData.listInputFields();
161
+ if (keys === undefined)
162
+ throw new PFrameDriverError(`no partition keys for super key ${superKey}`);
163
+ for (const field of keys) {
164
+ if (field.endsWith('.index')) {
165
+ const key = field.slice(0, field.length - 6);
166
+ const partKey = JSON.stringify([
167
+ ...JSON.parse(superKey),
168
+ ...JSON.parse(key)
169
+ ]);
170
+ let part = parts[partKey];
171
+ if (part === undefined) {
172
+ part = {};
173
+ parts[partKey] = part;
174
+ }
175
+ parts[partKey].index = superData.traverse({
176
+ field,
177
+ errorIfFieldNotSet: true,
178
+ }).resourceInfo;
179
+ }
180
+ else if (field.endsWith('.values')) {
181
+ const key = field.slice(0, field.length - 7);
182
+ const partKey = JSON.stringify([
183
+ ...JSON.parse(superKey),
184
+ ...JSON.parse(key)
185
+ ]);
186
+ let part = parts[partKey];
187
+ if (part === undefined) {
188
+ part = {};
189
+ parts[partKey] = part;
190
+ }
191
+ parts[partKey].values = superData.traverse({
192
+ field,
193
+ errorIfFieldNotSet: true,
194
+ }).resourceInfo;
195
+ }
196
+ else
197
+ throw new PFrameDriverError(`unrecognized part field name: ${field}`);
198
+ }
199
+ }
200
+ return {
201
+ type: 'BinaryPartitioned',
202
+ partitionKeyLength: meta.superPartitionKeyLength + meta.partitionKeyLength,
203
+ parts: parts,
204
+ };
205
+ }
206
+ else if (resourceTypesEqual(data.resourceType, PColumnDataParquetPartitioned)) {
207
+ const meta = resourceData;
208
+ const parts = {};
209
+ for (const key of data.listInputFields()) {
210
+ const resource = data.traverse({ field: key, assertFieldType: 'Input', errorIfFieldNotSet: true });
211
+ parts[key] = traverseParquetPartitionedResource(resource);
212
+ }
213
+ return {
214
+ type: 'ParquetPartitioned',
215
+ partitionKeyLength: meta.partitionKeyLength,
216
+ parts,
217
+ };
218
+ }
219
+ else if (resourceTypesEqual(data.resourceType, PColumnDataParquetSuperPartitioned)) {
220
+ const meta = resourceData;
221
+ const parts = {};
222
+ for (const superKey of data.listInputFields()) {
223
+ const superPart = data.traverse({ field: superKey, errorIfFieldNotSet: true });
224
+ const keys = superPart.listInputFields();
225
+ if (keys === undefined)
226
+ throw new PFrameDriverError(`no partition keys for super key ${superKey}`);
227
+ for (const key of keys) {
228
+ const resource = data.traverse({ field: key, errorIfFieldNotSet: true });
229
+ const partKey = JSON.stringify([
230
+ ...JSON.parse(superKey),
231
+ ...JSON.parse(key),
232
+ ]);
233
+ parts[partKey] = traverseParquetPartitionedResource(resource);
234
+ }
235
+ }
236
+ return {
237
+ type: 'ParquetPartitioned',
238
+ partitionKeyLength: meta.superPartitionKeyLength + meta.partitionKeyLength,
239
+ parts,
240
+ };
241
+ }
242
+ throw new PFrameDriverError(`unsupported resource type: ${resourceTypeToString(data.resourceType)}`);
243
+ }
244
+ function traverseParquetPartitionedResource(resource) {
245
+ const blob = resource.traverse({ field: 'blob', assertFieldType: 'Service', errorIfFieldNotSet: true }).resourceInfo;
246
+ const partInfo = resource.getDataAsJson();
247
+ const mapping = resource.traverse({ field: 'mapping', assertFieldType: 'Service', errorIfFieldNotSet: true }).getDataAsJson();
248
+ return {
249
+ data: blob,
250
+ ...partInfo,
251
+ ...mapping,
252
+ };
253
+ }
254
+ function makeDataInfoFromPColumnValues(spec, data) {
255
+ const keyLength = spec.axesSpec.length;
256
+ const jsonData = {};
257
+ for (const { key, val } of data) {
258
+ if (key.length !== keyLength)
259
+ throw new PFrameDriverError(`inline column key length ${key.length} differs from axes count ${keyLength}`);
260
+ jsonData[JSON.stringify(key)] = val;
261
+ }
262
+ return {
263
+ type: 'Json',
264
+ keyLength,
265
+ data: jsonData,
266
+ };
267
+ }
268
+ function deriveLegacyPObjectId(spec, data) {
269
+ const hash = createHash('sha256');
270
+ hash.update(canonicalize(spec));
271
+ hash.update(String(!isNullResourceId(data.originalId) ? data.originalId : data.id));
272
+ return hash.digest().toString('hex');
273
+ }
274
+ function deriveGlobalPObjectId(blockId, exportName) {
275
+ return canonicalize({ __isRef: true, blockId, name: exportName });
276
+ }
277
+ function deriveLocalPObjectId(resolvePath, outputName) {
278
+ return canonicalize({ resolvePath, name: outputName });
279
+ }
280
+
281
+ export { PColumnDataBinaryPartitioned, PColumnDataBinarySuperPartitioned, PColumnDataJson, PColumnDataJsonPartitioned, PColumnDataJsonSuperPartitioned, PColumnDataParquetPartitioned, PColumnDataParquetSuperPartitioned, allBlobs, deriveGlobalPObjectId, deriveLegacyPObjectId, deriveLocalPObjectId, makeDataInfoFromPColumnValues, mapBlobs, parseDataInfoResource, traverseParquetPartitionedResource };
282
+ //# sourceMappingURL=data.js.map