@milaboratories/pl-middle-layer 1.55.1 → 1.55.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (280) hide show
  1. package/dist/_virtual/{_@oxc-project_runtime@0.114.0 → _@oxc-project_runtime@0.123.0}/helpers/usingCtx.cjs +2 -4
  2. package/dist/_virtual/{_@oxc-project_runtime@0.114.0 → _@oxc-project_runtime@0.123.0}/helpers/usingCtx.js +2 -3
  3. package/dist/_virtual/_rolldown/runtime.cjs +7 -13
  4. package/dist/block_registry/index.cjs +3 -3
  5. package/dist/block_registry/index.js +3 -3
  6. package/dist/block_registry/registry-v2-provider.cjs +2 -3
  7. package/dist/block_registry/registry-v2-provider.cjs.map +1 -1
  8. package/dist/block_registry/registry-v2-provider.d.ts.map +1 -0
  9. package/dist/block_registry/registry-v2-provider.js +1 -2
  10. package/dist/block_registry/registry-v2-provider.js.map +1 -1
  11. package/dist/block_registry/registry.cjs +3 -4
  12. package/dist/block_registry/registry.cjs.map +1 -1
  13. package/dist/block_registry/registry.d.ts.map +1 -0
  14. package/dist/block_registry/registry.js +1 -2
  15. package/dist/block_registry/registry.js.map +1 -1
  16. package/dist/block_registry/watcher.cjs +3 -4
  17. package/dist/block_registry/watcher.cjs.map +1 -1
  18. package/dist/block_registry/watcher.d.ts.map +1 -0
  19. package/dist/block_registry/watcher.js +1 -2
  20. package/dist/block_registry/watcher.js.map +1 -1
  21. package/dist/block_registry/well_known_registries.cjs +1 -2
  22. package/dist/block_registry/well_known_registries.cjs.map +1 -1
  23. package/dist/block_registry/well_known_registries.d.ts.map +1 -0
  24. package/dist/block_registry/well_known_registries.js +1 -1
  25. package/dist/cfg_render/executor.cjs +4 -5
  26. package/dist/cfg_render/executor.cjs.map +1 -1
  27. package/dist/cfg_render/executor.js +1 -2
  28. package/dist/cfg_render/executor.js.map +1 -1
  29. package/dist/cfg_render/renderer.cjs +4 -5
  30. package/dist/cfg_render/renderer.cjs.map +1 -1
  31. package/dist/cfg_render/renderer.js +1 -2
  32. package/dist/cfg_render/renderer.js.map +1 -1
  33. package/dist/cfg_render/traverse.cjs +2 -3
  34. package/dist/cfg_render/traverse.cjs.map +1 -1
  35. package/dist/cfg_render/traverse.js +1 -2
  36. package/dist/cfg_render/traverse.js.map +1 -1
  37. package/dist/cfg_render/util.cjs +2 -3
  38. package/dist/cfg_render/util.cjs.map +1 -1
  39. package/dist/cfg_render/util.js +1 -2
  40. package/dist/cfg_render/util.js.map +1 -1
  41. package/dist/debug/index.cjs +1 -2
  42. package/dist/debug/index.cjs.map +1 -1
  43. package/dist/debug/index.js +1 -1
  44. package/dist/debug/index.js.map +1 -1
  45. package/dist/dev_env/index.cjs +3 -4
  46. package/dist/dev_env/index.cjs.map +1 -1
  47. package/dist/dev_env/index.js +1 -2
  48. package/dist/dev_env/index.js.map +1 -1
  49. package/dist/dev_env/util.cjs +2 -3
  50. package/dist/dev_env/util.cjs.map +1 -1
  51. package/dist/dev_env/util.js +1 -2
  52. package/dist/dev_env/util.js.map +1 -1
  53. package/dist/index.cjs +48 -44
  54. package/dist/index.d.ts +0 -3
  55. package/dist/index.js +5 -10
  56. package/dist/js_render/computable_context.cjs +5 -6
  57. package/dist/js_render/computable_context.cjs.map +1 -1
  58. package/dist/js_render/computable_context.js +2 -3
  59. package/dist/js_render/computable_context.js.map +1 -1
  60. package/dist/js_render/context.cjs +3 -4
  61. package/dist/js_render/context.cjs.map +1 -1
  62. package/dist/js_render/context.js +1 -2
  63. package/dist/js_render/context.js.map +1 -1
  64. package/dist/js_render/index.cjs +4 -5
  65. package/dist/js_render/index.cjs.map +1 -1
  66. package/dist/js_render/index.js +1 -2
  67. package/dist/js_render/index.js.map +1 -1
  68. package/dist/js_render/service_injectors.cjs +3 -4
  69. package/dist/js_render/service_injectors.cjs.map +1 -1
  70. package/dist/js_render/service_injectors.js +2 -3
  71. package/dist/js_render/service_injectors.js.map +1 -1
  72. package/dist/middle_layer/active_cfg.cjs +7 -8
  73. package/dist/middle_layer/active_cfg.cjs.map +1 -1
  74. package/dist/middle_layer/active_cfg.js +1 -2
  75. package/dist/middle_layer/active_cfg.js.map +1 -1
  76. package/dist/middle_layer/block.cjs +8 -9
  77. package/dist/middle_layer/block.cjs.map +1 -1
  78. package/dist/middle_layer/block.js +1 -2
  79. package/dist/middle_layer/block.js.map +1 -1
  80. package/dist/middle_layer/block_ctx.cjs +5 -6
  81. package/dist/middle_layer/block_ctx.cjs.map +1 -1
  82. package/dist/middle_layer/block_ctx.js +1 -2
  83. package/dist/middle_layer/block_ctx.js.map +1 -1
  84. package/dist/middle_layer/block_ctx_unsafe.cjs +1 -2
  85. package/dist/middle_layer/block_ctx_unsafe.cjs.map +1 -1
  86. package/dist/middle_layer/block_ctx_unsafe.js +1 -1
  87. package/dist/middle_layer/block_ctx_unsafe.js.map +1 -1
  88. package/dist/middle_layer/driver_kit.cjs +5 -6
  89. package/dist/middle_layer/driver_kit.cjs.map +1 -1
  90. package/dist/middle_layer/driver_kit.d.ts +0 -1
  91. package/dist/middle_layer/driver_kit.d.ts.map +1 -0
  92. package/dist/middle_layer/driver_kit.js +1 -2
  93. package/dist/middle_layer/driver_kit.js.map +1 -1
  94. package/dist/middle_layer/frontend_path.cjs +6 -7
  95. package/dist/middle_layer/frontend_path.cjs.map +1 -1
  96. package/dist/middle_layer/frontend_path.js +1 -2
  97. package/dist/middle_layer/frontend_path.js.map +1 -1
  98. package/dist/middle_layer/index.cjs +5 -5
  99. package/dist/middle_layer/index.js +5 -5
  100. package/dist/middle_layer/middle_layer.cjs +15 -16
  101. package/dist/middle_layer/middle_layer.cjs.map +1 -1
  102. package/dist/middle_layer/middle_layer.d.ts +0 -2
  103. package/dist/middle_layer/middle_layer.d.ts.map +1 -0
  104. package/dist/middle_layer/middle_layer.js +1 -2
  105. package/dist/middle_layer/middle_layer.js.map +1 -1
  106. package/dist/middle_layer/navigation_states.cjs +2 -3
  107. package/dist/middle_layer/navigation_states.cjs.map +1 -1
  108. package/dist/middle_layer/navigation_states.js +1 -2
  109. package/dist/middle_layer/navigation_states.js.map +1 -1
  110. package/dist/middle_layer/ops.cjs +5 -7
  111. package/dist/middle_layer/ops.cjs.map +1 -1
  112. package/dist/middle_layer/ops.d.ts +0 -1
  113. package/dist/middle_layer/ops.d.ts.map +1 -0
  114. package/dist/middle_layer/ops.js +1 -2
  115. package/dist/middle_layer/ops.js.map +1 -1
  116. package/dist/middle_layer/project.cjs +12 -13
  117. package/dist/middle_layer/project.cjs.map +1 -1
  118. package/dist/middle_layer/project.d.ts +0 -1
  119. package/dist/middle_layer/project.d.ts.map +1 -0
  120. package/dist/middle_layer/project.js +1 -2
  121. package/dist/middle_layer/project.js.map +1 -1
  122. package/dist/middle_layer/project_list.cjs +3 -4
  123. package/dist/middle_layer/project_list.cjs.map +1 -1
  124. package/dist/middle_layer/project_list.d.ts +0 -4
  125. package/dist/middle_layer/project_list.d.ts.map +1 -0
  126. package/dist/middle_layer/project_list.js +1 -2
  127. package/dist/middle_layer/project_list.js.map +1 -1
  128. package/dist/middle_layer/project_overview.cjs +9 -10
  129. package/dist/middle_layer/project_overview.cjs.map +1 -1
  130. package/dist/middle_layer/project_overview.js +1 -2
  131. package/dist/middle_layer/project_overview.js.map +1 -1
  132. package/dist/middle_layer/project_overview_light.cjs +4 -5
  133. package/dist/middle_layer/project_overview_light.cjs.map +1 -1
  134. package/dist/middle_layer/project_overview_light.js +1 -2
  135. package/dist/middle_layer/project_overview_light.js.map +1 -1
  136. package/dist/middle_layer/render.cjs +5 -6
  137. package/dist/middle_layer/render.cjs.map +1 -1
  138. package/dist/middle_layer/render.js +1 -2
  139. package/dist/middle_layer/render.js.map +1 -1
  140. package/dist/middle_layer/types.d.ts.map +1 -0
  141. package/dist/middle_layer/util.cjs +4 -5
  142. package/dist/middle_layer/util.cjs.map +1 -1
  143. package/dist/middle_layer/util.js +1 -2
  144. package/dist/middle_layer/util.js.map +1 -1
  145. package/dist/model/args.cjs +2 -3
  146. package/dist/model/args.cjs.map +1 -1
  147. package/dist/model/args.js +1 -2
  148. package/dist/model/args.js.map +1 -1
  149. package/dist/model/block_pack_spec.cjs +1 -2
  150. package/dist/model/block_pack_spec.cjs.map +1 -1
  151. package/dist/model/block_pack_spec.d.ts.map +1 -0
  152. package/dist/model/block_pack_spec.js +1 -1
  153. package/dist/model/frontend.d.ts.map +1 -0
  154. package/dist/model/project_helper.cjs +3 -4
  155. package/dist/model/project_helper.cjs.map +1 -1
  156. package/dist/model/project_helper.d.ts.map +1 -0
  157. package/dist/model/project_helper.js +1 -2
  158. package/dist/model/project_helper.js.map +1 -1
  159. package/dist/model/project_model.cjs +1 -6
  160. package/dist/model/project_model.cjs.map +1 -1
  161. package/dist/model/project_model.d.ts +0 -1
  162. package/dist/model/project_model.d.ts.map +1 -0
  163. package/dist/model/project_model.js +2 -4
  164. package/dist/model/project_model.js.map +1 -1
  165. package/dist/model/project_model_util.cjs +2 -3
  166. package/dist/model/project_model_util.cjs.map +1 -1
  167. package/dist/model/project_model_util.js +1 -2
  168. package/dist/model/project_model_util.js.map +1 -1
  169. package/dist/model/project_model_v1.cjs +1 -5
  170. package/dist/model/project_model_v1.cjs.map +1 -1
  171. package/dist/model/project_model_v1.js +2 -4
  172. package/dist/model/project_model_v1.js.map +1 -1
  173. package/dist/model/template_spec.d.ts.map +1 -0
  174. package/dist/mutator/block-pack/block_pack.cjs +9 -10
  175. package/dist/mutator/block-pack/block_pack.cjs.map +1 -1
  176. package/dist/mutator/block-pack/block_pack.d.ts +0 -1
  177. package/dist/mutator/block-pack/block_pack.d.ts.map +1 -0
  178. package/dist/mutator/block-pack/block_pack.js +2 -3
  179. package/dist/mutator/block-pack/block_pack.js.map +1 -1
  180. package/dist/mutator/block-pack/frontend.cjs +3 -4
  181. package/dist/mutator/block-pack/frontend.cjs.map +1 -1
  182. package/dist/mutator/block-pack/frontend.js +1 -2
  183. package/dist/mutator/block-pack/frontend.js.map +1 -1
  184. package/dist/mutator/context_export.cjs +4 -5
  185. package/dist/mutator/context_export.cjs.map +1 -1
  186. package/dist/mutator/context_export.js +1 -2
  187. package/dist/mutator/context_export.js.map +1 -1
  188. package/dist/mutator/migration.cjs +13 -14
  189. package/dist/mutator/migration.cjs.map +1 -1
  190. package/dist/mutator/migration.js +11 -12
  191. package/dist/mutator/migration.js.map +1 -1
  192. package/dist/mutator/project.cjs +13 -14
  193. package/dist/mutator/project.cjs.map +1 -1
  194. package/dist/mutator/project.d.ts +0 -3
  195. package/dist/mutator/project.d.ts.map +1 -0
  196. package/dist/mutator/project.js +6 -7
  197. package/dist/mutator/project.js.map +1 -1
  198. package/dist/mutator/template/direct_template_loader.cjs +3 -4
  199. package/dist/mutator/template/direct_template_loader.cjs.map +1 -1
  200. package/dist/mutator/template/direct_template_loader.js +1 -2
  201. package/dist/mutator/template/direct_template_loader.js.map +1 -1
  202. package/dist/mutator/template/direct_template_loader_v3.cjs +2 -3
  203. package/dist/mutator/template/direct_template_loader_v3.cjs.map +1 -1
  204. package/dist/mutator/template/direct_template_loader_v3.js +1 -2
  205. package/dist/mutator/template/direct_template_loader_v3.js.map +1 -1
  206. package/dist/mutator/template/render_block.cjs +4 -6
  207. package/dist/mutator/template/render_block.cjs.map +1 -1
  208. package/dist/mutator/template/render_block.js +2 -4
  209. package/dist/mutator/template/render_block.js.map +1 -1
  210. package/dist/mutator/template/render_template.cjs +2 -3
  211. package/dist/mutator/template/render_template.cjs.map +1 -1
  212. package/dist/mutator/template/render_template.d.ts.map +1 -0
  213. package/dist/mutator/template/render_template.js +1 -2
  214. package/dist/mutator/template/render_template.js.map +1 -1
  215. package/dist/mutator/template/template_cache.cjs +6 -10
  216. package/dist/mutator/template/template_cache.cjs.map +1 -1
  217. package/dist/mutator/template/template_cache.d.ts +2 -3
  218. package/dist/mutator/template/template_cache.d.ts.map +1 -0
  219. package/dist/mutator/template/template_cache.js +4 -8
  220. package/dist/mutator/template/template_cache.js.map +1 -1
  221. package/dist/mutator/template/template_loading.cjs +3 -4
  222. package/dist/mutator/template/template_loading.cjs.map +1 -1
  223. package/dist/mutator/template/template_loading.d.ts.map +1 -0
  224. package/dist/mutator/template/template_loading.js +1 -2
  225. package/dist/mutator/template/template_loading.js.map +1 -1
  226. package/dist/network_check/network_check.cjs +4 -5
  227. package/dist/network_check/network_check.cjs.map +1 -1
  228. package/dist/network_check/network_check.d.ts.map +1 -0
  229. package/dist/network_check/network_check.js +1 -2
  230. package/dist/network_check/network_check.js.map +1 -1
  231. package/dist/network_check/pings.cjs +2 -3
  232. package/dist/network_check/pings.cjs.map +1 -1
  233. package/dist/network_check/pings.js +1 -2
  234. package/dist/network_check/pings.js.map +1 -1
  235. package/dist/network_check/template.cjs +4 -5
  236. package/dist/network_check/template.cjs.map +1 -1
  237. package/dist/network_check/template.js +1 -2
  238. package/dist/network_check/template.js.map +1 -1
  239. package/dist/pool/data.cjs +2 -3
  240. package/dist/pool/data.cjs.map +1 -1
  241. package/dist/pool/data.d.ts +0 -1
  242. package/dist/pool/data.d.ts.map +1 -0
  243. package/dist/pool/data.js +1 -2
  244. package/dist/pool/data.js.map +1 -1
  245. package/dist/pool/driver.cjs +3 -4
  246. package/dist/pool/driver.cjs.map +1 -1
  247. package/dist/pool/driver.d.ts +0 -1
  248. package/dist/pool/driver.d.ts.map +1 -0
  249. package/dist/pool/driver.js +1 -2
  250. package/dist/pool/driver.js.map +1 -1
  251. package/dist/pool/index.cjs +2 -2
  252. package/dist/pool/index.d.ts +1 -2
  253. package/dist/pool/index.js +2 -2
  254. package/dist/pool/p_object_collection.cjs +3 -4
  255. package/dist/pool/p_object_collection.cjs.map +1 -1
  256. package/dist/pool/p_object_collection.d.ts.map +1 -0
  257. package/dist/pool/p_object_collection.js +1 -2
  258. package/dist/pool/p_object_collection.js.map +1 -1
  259. package/dist/pool/result_pool.cjs +7 -8
  260. package/dist/pool/result_pool.cjs.map +1 -1
  261. package/dist/pool/result_pool.d.ts +1 -3
  262. package/dist/pool/result_pool.js +1 -2
  263. package/dist/pool/result_pool.js.map +1 -1
  264. package/dist/service_factories.cjs +2 -3
  265. package/dist/service_factories.cjs.map +1 -1
  266. package/dist/service_factories.js +1 -2
  267. package/dist/service_factories.js.map +1 -1
  268. package/dist/worker/WorkerManager.cjs +2 -3
  269. package/dist/worker/WorkerManager.cjs.map +1 -1
  270. package/dist/worker/WorkerManager.js +1 -2
  271. package/dist/worker/WorkerManager.js.map +1 -1
  272. package/dist/worker/worker.cjs +3 -4
  273. package/dist/worker/worker.cjs.map +1 -1
  274. package/dist/worker/worker.js +1 -2
  275. package/dist/worker/worker.js.map +1 -1
  276. package/dist/worker/workerApi.cjs +2 -3
  277. package/dist/worker/workerApi.cjs.map +1 -1
  278. package/dist/worker/workerApi.js +1 -2
  279. package/dist/worker/workerApi.js.map +1 -1
  280. package/package.json +15 -15
@@ -4,7 +4,6 @@ import { assertNever, notEmpty } from "@milaboratories/ts-helpers";
4
4
  import { Computable } from "@milaboratories/computable";
5
5
  import canonicalize from "canonicalize";
6
6
  import Denque from "denque";
7
-
8
7
  //#region src/cfg_render/executor.ts
9
8
  /** Special address of operation, see below. */
10
9
  const ReturnOpKey = Symbol();
@@ -148,7 +147,7 @@ function computableFromCfgUnsafe(drivers, ctx, cfg, ops = {}) {
148
147
  key
149
148
  });
150
149
  }
151
-
152
150
  //#endregion
153
151
  export { computableFromCfg, computableFromCfgUnsafe };
152
+
154
153
  //# sourceMappingURL=executor.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.js","names":[],"sources":["../../src/cfg_render/executor.ts"],"sourcesContent":["import type {\n ArgumentKey,\n ArgumentValues,\n ExecutionEnvironment,\n Operation,\n Subroutine,\n} from \"./operation\";\nimport Denque from \"denque\";\nimport { assertNever, notEmpty } from \"@milaboratories/ts-helpers\";\nimport type { ComputableCtx, ComputableRenderingOps } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport type { Cfg } from \"@platforma-sdk/model\";\nimport { renderCfg, resOp } from \"./renderer\";\nimport canonicalize from \"canonicalize\";\nimport type { BlockContextAny } from \"../middle_layer/block_ctx\";\nimport type { MiddleLayerDriverKit } from \"../middle_layer/driver_kit\";\nimport { NonKeyCtxFields, toCfgContext } from \"../middle_layer/block_ctx_unsafe\";\n\n/** Addresses pending subroutines inside the stack */\ntype SubroutineKey = symbol;\n\n/** Represents destination of the result of an operation. I.e. when sequence of\n * subroutine invocations, and computables terminates with result, this object\n * determines to which argument of which pending subroutine it should be delivered.\n * See special value for delivery of the final \"return\" result. */\ntype Destination = {\n op: SubroutineKey;\n arg: ArgumentKey;\n};\n\n/** Special address of operation, see below. */\nconst ReturnOpKey: unique symbol = Symbol();\n/** The same, but for the argument part of destination, see below. */\nconst ReturnArgKey = \"return\";\n\n/** Special destination, telling the executor that corresponding result should\n * be exposed as a final result, and execution terminate at this point. */\nconst ReturnDestination = { op: ReturnOpKey, arg: ReturnArgKey } as Destination;\n\nfunction isReturnDestination(destination: Destination): boolean {\n return destination.op == ReturnOpKey && destination.arg == ReturnArgKey;\n}\n\n/** Queued operation, used inside the executor */\ntype QueuedOperation = {\n operation: Operation;\n destination: Destination;\n};\n\n/** Queued computation, returned by the first round of config execution. Such\n * computables should be returned in the intermediate representation of the\n * enclosing computable, and after they are resolved and passed to the\n * postprocessing routine, should be injected into the execution stack to\n * finalize the computation. */\ntype ScheduledComputable = {\n destination: Destination;\n computable: Computable<unknown>;\n};\n\n/** This is what ScheduledComputable transforms from intermediate\n * representation to post-processing. */\ntype MaterializedComputable = {\n destination: Destination;\n computable: unknown;\n};\n\n/** Main entry inside the execution stack. */\ntype PendingSubroutine = {\n subroutine: Subroutine;\n destination: Destination;\n argCounter: number;\n args: ArgumentValues;\n};\n\n/** Execution stack. The closest concept that this object along with enclosed\n * {@link PendingSubroutine}s represent is a Continuation.\n * https://en.wikipedia.org/wiki/Continuation */\ntype ExecutionStack = {\n result?: unknown;\n pendingSubroutines: Map<SubroutineKey, PendingSubroutine>;\n};\n\n/** Returns initial stack value. */\nfunction zeroStack(): ExecutionStack {\n return { pendingSubroutines: new Map<SubroutineKey, PendingSubroutine>() };\n}\n\n/** Implements main executor mechanism.\n * @param env to be passed to while executing operations\n * @param stack execution stack to continue execution from\n * @param operations operations to initiate the execution process\n * @param allowComputables if false, scheduling of async computables will result in error\n * */\nfunction execute(\n env: ExecutionEnvironment,\n stack: ExecutionStack,\n operations: QueuedOperation[],\n allowComputables: boolean,\n): ScheduledComputable[] {\n const operationQueue = new Denque<QueuedOperation>(operations);\n\n /** Returns false if final result is set as result of this operation,\n * true if we should continue processing. */\n const deliverResult = (destination: Destination, result: unknown): boolean => {\n if (isReturnDestination(destination)) {\n stack.result = result;\n return false;\n }\n\n const pending = notEmpty(stack.pendingSubroutines.get(destination.op));\n if (destination.arg in pending.args) throw new Error(\"argument already set\");\n pending.args[destination.arg] = result;\n pending.argCounter--;\n if (pending.argCounter === 0) {\n stack.pendingSubroutines.delete(destination.op);\n operationQueue.push({\n destination: pending.destination,\n operation: pending.subroutine(pending.args),\n });\n }\n\n return true;\n };\n\n // computables, scheduled during computation, are aggregated in this array,\n // and returned from the function in the end\n const computables: ScheduledComputable[] = [];\n\n // each loop = execution of a single queued operation\n mainLoop: while (operationQueue.length > 0) {\n const op = operationQueue.shift()!;\n const action = op.operation(env);\n switch (action.type) {\n case \"ReturnResult\":\n if (!deliverResult(op.destination, action.result)) break mainLoop; // this terminates execution\n break; // switch\n\n case \"ScheduleSubroutine\":\n {\n const newOpKey = Symbol();\n\n const argRequests = Object.entries(action.args);\n const initialArgCounter = argRequests.length;\n\n if (initialArgCounter === 0)\n // if no pending arguments\n operationQueue.push({\n destination: op.destination,\n operation: action.subroutine({}),\n });\n else {\n for (const [arg, operation] of argRequests)\n operationQueue.push({\n destination: { op: newOpKey, arg },\n operation,\n });\n\n stack.pendingSubroutines.set(newOpKey, {\n argCounter: initialArgCounter,\n args: {},\n subroutine: action.subroutine,\n destination: op.destination,\n });\n }\n }\n break;\n\n case \"ScheduleComputable\":\n if (!allowComputables)\n throw new Error(\"asynchronous operations are forbidden in this context\");\n computables.push({\n destination: op.destination,\n computable: action.computable,\n });\n break;\n\n default:\n assertNever(action);\n }\n }\n\n return computables;\n}\n\n//\n// Computable\n//\n\n/** Main method to render configurations */\nexport function computableFromCfg(\n drivers: MiddleLayerDriverKit,\n bCtx: BlockContextAny,\n cfg: Cfg,\n ops: Partial<ComputableRenderingOps> = {},\n): Computable<unknown> {\n return computableFromCfgUnsafe(drivers, toCfgContext(bCtx), cfg, ops);\n}\n\nexport function computableFromCfgUnsafe(\n drivers: MiddleLayerDriverKit,\n ctx: Record<string, unknown>,\n cfg: Cfg,\n ops: Partial<ComputableRenderingOps> = {},\n): Computable<unknown> {\n const key =\n `${ctx.blockId}#` +\n canonicalize({\n ctx: Object.fromEntries(\n Object.entries(ctx).filter(([k]) => NonKeyCtxFields.indexOf(k) === -1),\n ),\n cfg: cfg,\n })!;\n return Computable.makeRaw(\n (c) => {\n const env: ExecutionEnvironment = { drivers, cCtx: c };\n const stack = zeroStack();\n const computables = execute(\n env,\n stack,\n [\n {\n destination: ReturnDestination,\n operation: renderCfg(ctx, cfg),\n },\n ],\n true,\n );\n return {\n ir: computables,\n postprocessValue(value: MaterializedComputable[]): unknown {\n const resolvedOps: QueuedOperation[] = [];\n for (const mc of value)\n resolvedOps.push({ destination: mc.destination, operation: resOp(mc.computable) });\n const postEnv: ExecutionEnvironment = {\n drivers,\n get cCtx(): ComputableCtx {\n throw new Error(\"asynchronous operations are forbidden in this context\");\n },\n };\n\n // Post process can be called several times, that's why it must be a side-effect-free function.\n // But `execute` modifies a stack, so we have to defensively copy it here.\n const copyOfPendingSubrotines = new Map<SubroutineKey, PendingSubroutine>();\n for (const [key, value] of stack.pendingSubroutines)\n copyOfPendingSubrotines.set(key, { ...value, args: { ...value.args } });\n const copiedStack: ExecutionStack = {\n result: stack.result,\n pendingSubroutines: copyOfPendingSubrotines,\n };\n execute(postEnv, copiedStack, resolvedOps, false);\n if (!(\"result\" in copiedStack))\n throw new Error(\"illegal cfg rendering stack state, no result\");\n return copiedStack.result;\n },\n };\n },\n { ...ops, key },\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"executor.js","names":[],"sources":["../../src/cfg_render/executor.ts"],"sourcesContent":["import type {\n ArgumentKey,\n ArgumentValues,\n ExecutionEnvironment,\n Operation,\n Subroutine,\n} from \"./operation\";\nimport Denque from \"denque\";\nimport { assertNever, notEmpty } from \"@milaboratories/ts-helpers\";\nimport type { ComputableCtx, ComputableRenderingOps } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\nimport type { Cfg } from \"@platforma-sdk/model\";\nimport { renderCfg, resOp } from \"./renderer\";\nimport canonicalize from \"canonicalize\";\nimport type { BlockContextAny } from \"../middle_layer/block_ctx\";\nimport type { MiddleLayerDriverKit } from \"../middle_layer/driver_kit\";\nimport { NonKeyCtxFields, toCfgContext } from \"../middle_layer/block_ctx_unsafe\";\n\n/** Addresses pending subroutines inside the stack */\ntype SubroutineKey = symbol;\n\n/** Represents destination of the result of an operation. I.e. when sequence of\n * subroutine invocations, and computables terminates with result, this object\n * determines to which argument of which pending subroutine it should be delivered.\n * See special value for delivery of the final \"return\" result. */\ntype Destination = {\n op: SubroutineKey;\n arg: ArgumentKey;\n};\n\n/** Special address of operation, see below. */\nconst ReturnOpKey: unique symbol = Symbol();\n/** The same, but for the argument part of destination, see below. */\nconst ReturnArgKey = \"return\";\n\n/** Special destination, telling the executor that corresponding result should\n * be exposed as a final result, and execution terminate at this point. */\nconst ReturnDestination = { op: ReturnOpKey, arg: ReturnArgKey } as Destination;\n\nfunction isReturnDestination(destination: Destination): boolean {\n return destination.op == ReturnOpKey && destination.arg == ReturnArgKey;\n}\n\n/** Queued operation, used inside the executor */\ntype QueuedOperation = {\n operation: Operation;\n destination: Destination;\n};\n\n/** Queued computation, returned by the first round of config execution. Such\n * computables should be returned in the intermediate representation of the\n * enclosing computable, and after they are resolved and passed to the\n * postprocessing routine, should be injected into the execution stack to\n * finalize the computation. */\ntype ScheduledComputable = {\n destination: Destination;\n computable: Computable<unknown>;\n};\n\n/** This is what ScheduledComputable transforms from intermediate\n * representation to post-processing. */\ntype MaterializedComputable = {\n destination: Destination;\n computable: unknown;\n};\n\n/** Main entry inside the execution stack. */\ntype PendingSubroutine = {\n subroutine: Subroutine;\n destination: Destination;\n argCounter: number;\n args: ArgumentValues;\n};\n\n/** Execution stack. The closest concept that this object along with enclosed\n * {@link PendingSubroutine}s represent is a Continuation.\n * https://en.wikipedia.org/wiki/Continuation */\ntype ExecutionStack = {\n result?: unknown;\n pendingSubroutines: Map<SubroutineKey, PendingSubroutine>;\n};\n\n/** Returns initial stack value. */\nfunction zeroStack(): ExecutionStack {\n return { pendingSubroutines: new Map<SubroutineKey, PendingSubroutine>() };\n}\n\n/** Implements main executor mechanism.\n * @param env to be passed to while executing operations\n * @param stack execution stack to continue execution from\n * @param operations operations to initiate the execution process\n * @param allowComputables if false, scheduling of async computables will result in error\n * */\nfunction execute(\n env: ExecutionEnvironment,\n stack: ExecutionStack,\n operations: QueuedOperation[],\n allowComputables: boolean,\n): ScheduledComputable[] {\n const operationQueue = new Denque<QueuedOperation>(operations);\n\n /** Returns false if final result is set as result of this operation,\n * true if we should continue processing. */\n const deliverResult = (destination: Destination, result: unknown): boolean => {\n if (isReturnDestination(destination)) {\n stack.result = result;\n return false;\n }\n\n const pending = notEmpty(stack.pendingSubroutines.get(destination.op));\n if (destination.arg in pending.args) throw new Error(\"argument already set\");\n pending.args[destination.arg] = result;\n pending.argCounter--;\n if (pending.argCounter === 0) {\n stack.pendingSubroutines.delete(destination.op);\n operationQueue.push({\n destination: pending.destination,\n operation: pending.subroutine(pending.args),\n });\n }\n\n return true;\n };\n\n // computables, scheduled during computation, are aggregated in this array,\n // and returned from the function in the end\n const computables: ScheduledComputable[] = [];\n\n // each loop = execution of a single queued operation\n mainLoop: while (operationQueue.length > 0) {\n const op = operationQueue.shift()!;\n const action = op.operation(env);\n switch (action.type) {\n case \"ReturnResult\":\n if (!deliverResult(op.destination, action.result)) break mainLoop; // this terminates execution\n break; // switch\n\n case \"ScheduleSubroutine\":\n {\n const newOpKey = Symbol();\n\n const argRequests = Object.entries(action.args);\n const initialArgCounter = argRequests.length;\n\n if (initialArgCounter === 0)\n // if no pending arguments\n operationQueue.push({\n destination: op.destination,\n operation: action.subroutine({}),\n });\n else {\n for (const [arg, operation] of argRequests)\n operationQueue.push({\n destination: { op: newOpKey, arg },\n operation,\n });\n\n stack.pendingSubroutines.set(newOpKey, {\n argCounter: initialArgCounter,\n args: {},\n subroutine: action.subroutine,\n destination: op.destination,\n });\n }\n }\n break;\n\n case \"ScheduleComputable\":\n if (!allowComputables)\n throw new Error(\"asynchronous operations are forbidden in this context\");\n computables.push({\n destination: op.destination,\n computable: action.computable,\n });\n break;\n\n default:\n assertNever(action);\n }\n }\n\n return computables;\n}\n\n//\n// Computable\n//\n\n/** Main method to render configurations */\nexport function computableFromCfg(\n drivers: MiddleLayerDriverKit,\n bCtx: BlockContextAny,\n cfg: Cfg,\n ops: Partial<ComputableRenderingOps> = {},\n): Computable<unknown> {\n return computableFromCfgUnsafe(drivers, toCfgContext(bCtx), cfg, ops);\n}\n\nexport function computableFromCfgUnsafe(\n drivers: MiddleLayerDriverKit,\n ctx: Record<string, unknown>,\n cfg: Cfg,\n ops: Partial<ComputableRenderingOps> = {},\n): Computable<unknown> {\n const key =\n `${ctx.blockId}#` +\n canonicalize({\n ctx: Object.fromEntries(\n Object.entries(ctx).filter(([k]) => NonKeyCtxFields.indexOf(k) === -1),\n ),\n cfg: cfg,\n })!;\n return Computable.makeRaw(\n (c) => {\n const env: ExecutionEnvironment = { drivers, cCtx: c };\n const stack = zeroStack();\n const computables = execute(\n env,\n stack,\n [\n {\n destination: ReturnDestination,\n operation: renderCfg(ctx, cfg),\n },\n ],\n true,\n );\n return {\n ir: computables,\n postprocessValue(value: MaterializedComputable[]): unknown {\n const resolvedOps: QueuedOperation[] = [];\n for (const mc of value)\n resolvedOps.push({ destination: mc.destination, operation: resOp(mc.computable) });\n const postEnv: ExecutionEnvironment = {\n drivers,\n get cCtx(): ComputableCtx {\n throw new Error(\"asynchronous operations are forbidden in this context\");\n },\n };\n\n // Post process can be called several times, that's why it must be a side-effect-free function.\n // But `execute` modifies a stack, so we have to defensively copy it here.\n const copyOfPendingSubrotines = new Map<SubroutineKey, PendingSubroutine>();\n for (const [key, value] of stack.pendingSubroutines)\n copyOfPendingSubrotines.set(key, { ...value, args: { ...value.args } });\n const copiedStack: ExecutionStack = {\n result: stack.result,\n pendingSubroutines: copyOfPendingSubrotines,\n };\n execute(postEnv, copiedStack, resolvedOps, false);\n if (!(\"result\" in copiedStack))\n throw new Error(\"illegal cfg rendering stack state, no result\");\n return copiedStack.result;\n },\n };\n },\n { ...ops, key },\n );\n}\n"],"mappings":";;;;;;;;AA+BA,MAAM,cAA6B,QAAQ;;AAE3C,MAAM,eAAe;;;AAIrB,MAAM,oBAAoB;CAAE,IAAI;CAAa,KAAK;CAAc;AAEhE,SAAS,oBAAoB,aAAmC;AAC9D,QAAO,YAAY,MAAM,eAAe,YAAY,OAAO;;;AA2C7D,SAAS,YAA4B;AACnC,QAAO,EAAE,oCAAoB,IAAI,KAAuC,EAAE;;;;;;;;AAS5E,SAAS,QACP,KACA,OACA,YACA,kBACuB;CACvB,MAAM,iBAAiB,IAAI,OAAwB,WAAW;;;CAI9D,MAAM,iBAAiB,aAA0B,WAA6B;AAC5E,MAAI,oBAAoB,YAAY,EAAE;AACpC,SAAM,SAAS;AACf,UAAO;;EAGT,MAAM,UAAU,SAAS,MAAM,mBAAmB,IAAI,YAAY,GAAG,CAAC;AACtE,MAAI,YAAY,OAAO,QAAQ,KAAM,OAAM,IAAI,MAAM,uBAAuB;AAC5E,UAAQ,KAAK,YAAY,OAAO;AAChC,UAAQ;AACR,MAAI,QAAQ,eAAe,GAAG;AAC5B,SAAM,mBAAmB,OAAO,YAAY,GAAG;AAC/C,kBAAe,KAAK;IAClB,aAAa,QAAQ;IACrB,WAAW,QAAQ,WAAW,QAAQ,KAAK;IAC5C,CAAC;;AAGJ,SAAO;;CAKT,MAAM,cAAqC,EAAE;AAG7C,UAAU,QAAO,eAAe,SAAS,GAAG;EAC1C,MAAM,KAAK,eAAe,OAAO;EACjC,MAAM,SAAS,GAAG,UAAU,IAAI;AAChC,UAAQ,OAAO,MAAf;GACE,KAAK;AACH,QAAI,CAAC,cAAc,GAAG,aAAa,OAAO,OAAO,CAAE,OAAM;AACzD;GAEF,KAAK;IACH;KACE,MAAM,WAAW,QAAQ;KAEzB,MAAM,cAAc,OAAO,QAAQ,OAAO,KAAK;KAC/C,MAAM,oBAAoB,YAAY;AAEtC,SAAI,sBAAsB,EAExB,gBAAe,KAAK;MAClB,aAAa,GAAG;MAChB,WAAW,OAAO,WAAW,EAAE,CAAC;MACjC,CAAC;UACC;AACH,WAAK,MAAM,CAAC,KAAK,cAAc,YAC7B,gBAAe,KAAK;OAClB,aAAa;QAAE,IAAI;QAAU;QAAK;OAClC;OACD,CAAC;AAEJ,YAAM,mBAAmB,IAAI,UAAU;OACrC,YAAY;OACZ,MAAM,EAAE;OACR,YAAY,OAAO;OACnB,aAAa,GAAG;OACjB,CAAC;;;AAGN;GAEF,KAAK;AACH,QAAI,CAAC,iBACH,OAAM,IAAI,MAAM,wDAAwD;AAC1E,gBAAY,KAAK;KACf,aAAa,GAAG;KAChB,YAAY,OAAO;KACpB,CAAC;AACF;GAEF,QACE,aAAY,OAAO;;;AAIzB,QAAO;;;AAQT,SAAgB,kBACd,SACA,MACA,KACA,MAAuC,EAAE,EACpB;AACrB,QAAO,wBAAwB,SAAS,aAAa,KAAK,EAAE,KAAK,IAAI;;AAGvE,SAAgB,wBACd,SACA,KACA,KACA,MAAuC,EAAE,EACpB;CACrB,MAAM,MACJ,GAAG,IAAI,QAAQ,KACf,aAAa;EACX,KAAK,OAAO,YACV,OAAO,QAAQ,IAAI,CAAC,QAAQ,CAAC,OAAO,gBAAgB,QAAQ,EAAE,KAAK,GAAG,CACvE;EACI;EACN,CAAC;AACJ,QAAO,WAAW,SACf,MAAM;EACL,MAAM,MAA4B;GAAE;GAAS,MAAM;GAAG;EACtD,MAAM,QAAQ,WAAW;AAYzB,SAAO;GACL,IAZkB,QAClB,KACA,OACA,CACE;IACE,aAAa;IACb,WAAW,UAAU,KAAK,IAAI;IAC/B,CACF,EACD,KACD;GAGC,iBAAiB,OAA0C;IACzD,MAAM,cAAiC,EAAE;AACzC,SAAK,MAAM,MAAM,MACf,aAAY,KAAK;KAAE,aAAa,GAAG;KAAa,WAAW,MAAM,GAAG,WAAW;KAAE,CAAC;IACpF,MAAM,UAAgC;KACpC;KACA,IAAI,OAAsB;AACxB,YAAM,IAAI,MAAM,wDAAwD;;KAE3E;IAID,MAAM,0CAA0B,IAAI,KAAuC;AAC3E,SAAK,MAAM,CAAC,KAAK,UAAU,MAAM,mBAC/B,yBAAwB,IAAI,KAAK;KAAE,GAAG;KAAO,MAAM,EAAE,GAAG,MAAM,MAAM;KAAE,CAAC;IACzE,MAAM,cAA8B;KAClC,QAAQ,MAAM;KACd,oBAAoB;KACrB;AACD,YAAQ,SAAS,aAAa,aAAa,MAAM;AACjD,QAAI,EAAE,YAAY,aAChB,OAAM,IAAI,MAAM,+CAA+C;AACjE,WAAO,YAAY;;GAEtB;IAEH;EAAE,GAAG;EAAK;EAAK,CAChB"}
@@ -1,9 +1,8 @@
1
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
- const require_util = require('./util.cjs');
3
- const require_executor = require('./executor.cjs');
1
+ require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_util = require("./util.cjs");
3
+ const require_executor = require("./executor.cjs");
4
4
  let _milaboratories_ts_helpers = require("@milaboratories/ts-helpers");
5
5
  let _milaboratories_computable = require("@milaboratories/computable");
6
-
7
6
  //#region src/cfg_render/renderer.ts
8
7
  function res(result) {
9
8
  return {
@@ -412,8 +411,8 @@ function renderCfg(ctx, cfg) {
412
411
  default: return (0, _milaboratories_ts_helpers.assertNever)(cfg);
413
412
  }
414
413
  }
415
-
416
414
  //#endregion
417
415
  exports.renderCfg = renderCfg;
418
416
  exports.resOp = resOp;
417
+
419
418
  //# sourceMappingURL=renderer.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.cjs","names":["Computable","computableFromCfgUnsafe","mapRecord"],"sources":["../../src/cfg_render/renderer.ts"],"sourcesContent":["import type {\n ArchiveFormat,\n Cfg,\n CfgMapArrayValues,\n CfgMapRecordValues,\n CfgMapResourceFields,\n RangeBytes,\n} from \"@platforma-sdk/model\";\nimport type { ArgumentRequests, Operation, OperationAction, Subroutine } from \"./operation\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport { mapRecord } from \"./util\";\nimport { computableFromCfgUnsafe } from \"./executor\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\nimport type { ComputableCtx } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\n\nfunction res(result: unknown): OperationAction {\n return {\n type: \"ReturnResult\",\n result: result,\n };\n}\n\nexport function resOp(result: unknown): Operation {\n return () => res(result);\n}\n\n//\n// Subroutines\n//\n\nconst SRMakeObject: Subroutine = (args) => {\n const result: Record<string | symbol, unknown> = {};\n for (const [k, v] of Object.entries(args)) result[k] = v;\n return resOp(result);\n};\n\nconst SRFlatten: Subroutine = (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n const result: unknown[] = [];\n for (const nested of source) {\n if (nested instanceof Array) result.push(...(nested as unknown[]));\n else result.push(nested);\n }\n return resOp(result);\n};\n\nconst SRGetResourceField: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return ({ cCtx }) => {\n return res(cCtx.accessor(source).node().traverse(field)?.persist());\n };\n};\n\nfunction mapArrayToRecord<T, R>(elements: T[], cb: (e: T) => R): Record<string, R> {\n const result: Record<string, R> = {};\n const length = elements.length;\n for (let i = 0; i < length; i++) result[String(i)] = cb(elements[i]);\n return result;\n}\n\nfunction SRMapArrayValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapArrayValues, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRCollectArrayFromArgs(source.length),\n args: mapArrayToRecord(source, (e) => renderCfg({ ...ctx, [ops.itVar]: e }, ops.mapping)),\n });\n };\n}\n\nfunction SRCollectArrayFromArgs(length: number): Subroutine {\n return (args) => {\n const result: unknown[] = [];\n for (let i = 0; i < length; i++) result.push(args[String(i)]);\n return resOp(result);\n };\n}\n\nfunction SRMapRecordValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapRecordValues, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n if (source === undefined) return resOp(undefined);\n const nextArgs: ArgumentRequests = {};\n for (const [k, v] of Object.entries(source)) {\n const newCtx = { ...ctx, [ops.itVar]: v };\n nextArgs[k] = renderCfg(newCtx, ops.mapping);\n }\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapRecordValues2,\n args: nextArgs,\n });\n };\n}\n\nconst SRMapRecordValues2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRIsEmpty: Subroutine = (args) => {\n const arg = args.arg as unknown[] | string | undefined;\n if (arg === undefined) return resOp(undefined);\n return resOp(arg.length === 0);\n};\n\nconst SRNot: Subroutine = (args) => {\n const operand = args.operand as boolean | undefined;\n if (operand === undefined) return resOp(undefined);\n return resOp(!operand);\n};\n\nconst SRAnd: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 && operand2);\n};\n\nconst SROr: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 || operand2);\n};\n\nconst SRResourceValueAsJson: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n return ({ cCtx }) => res(cCtx.accessor(source).node()?.getDataAsJson());\n};\n\nconst SRGetJsonField: Subroutine = (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return resOp(source[field]);\n};\n\nfunction SRMapResourceFields1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapResourceFields, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx }) => {\n const node = cCtx.accessor(source).node();\n\n const nextArgs: ArgumentRequests = {};\n for (const fieldName of node.listInputFields()) {\n const res = node.traverse(fieldName);\n if (res === undefined) nextArgs[fieldName] = resOp(undefined);\n else {\n const newCtx = { ...ctx, [ops.itVar]: res.persist() };\n nextArgs[fieldName] = renderCfg(newCtx, ops.mapping);\n }\n }\n\n return {\n type: \"ScheduleSubroutine\",\n subroutine: SRMapResourceFields2,\n args: nextArgs,\n };\n };\n };\n}\n\nconst SRMapResourceFields2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRGetBlobContent: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (ctx) => {\n return drivers.blobDriver.getDownloadedBlob(ctx.accessor(source).node().resourceInfo);\n },\n {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n return await drivers.blobDriver.getContent(value.handle, range);\n },\n },\n ),\n };\n };\n};\n\nconst SRGetBlobContentAsString: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx, drivers }) => {\n // getting target resource id and type\n const resourceInfo = cCtx.accessor(source).node().resourceInfo;\n\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (ctx) => drivers.blobDriver.getDownloadedBlob(resourceInfo, ctx),\n {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n return content.toString();\n },\n },\n ),\n };\n };\n};\n\nconst SRGetBlobContentAsJson: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (c) => drivers.blobDriver.getDownloadedBlob(c.accessor(source).node().resourceInfo, c),\n {\n postprocessValue: async (value) => {\n if (value == undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n if (content == undefined) return undefined;\n return JSON.parse(Buffer.from(content).toString()) as unknown;\n },\n },\n ),\n };\n };\n};\n\nconst SRGetDownloadedBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return (ctx) => {\n return {\n type: \"ScheduleComputable\",\n computable: ctx.drivers.blobDriver.getDownloadedBlob(source),\n };\n };\n};\n\nconst SRGetOnDemandBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.blobDriver.getOnDemandBlob(source),\n };\n };\n};\n\nconst SRExtractArchiveAndGetURL: (format: ArchiveFormat) => Subroutine = (format) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.blobToURLDriver.extractArchiveAndGetURL(source, format),\n };\n };\n};\n\nconst SRGetImportProgress: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.uploadDriver.getProgressId(source),\n };\n };\n};\n\nconst SRGetLastLogs: (lines: number) => Subroutine = (lines) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getLastLogs(source, lines),\n };\n };\n};\n\nconst SRGetProgressLog: (patternToSearch: string) => Subroutine = (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getProgressLog(source, patternToSearch),\n };\n };\n};\n\nconst SRGetProgressLogWithInfo: (patternToSearch: string) => Subroutine =\n (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getProgressLogWithInfo(source, patternToSearch),\n };\n };\n };\n\nconst SRGetLogHandle: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getLogHandle(source),\n };\n };\n};\n\n/** Renders configuration into executor's Operation */\nexport function renderCfg(ctx: Record<string, unknown>, cfg: Cfg): Operation {\n switch (cfg.type) {\n case \"GetFromCtx\": {\n const ctxValue = ctx[cfg.variable];\n if (typeof ctxValue === \"function\") {\n return (e) => res((ctxValue as (cCtx: ComputableCtx) => OperationAction)(e.cCtx));\n } else {\n return resOp(ctxValue);\n }\n }\n\n case \"Isolate\":\n return ({ drivers }) => ({\n type: \"ScheduleComputable\",\n computable: computableFromCfgUnsafe(drivers, ctx, cfg.cfg),\n });\n\n case \"Immediate\":\n return resOp(cfg.value);\n\n case \"GetJsonField\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetJsonField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case \"MapArrayValues\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapArrayValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"MapRecordValues\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapRecordValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"MakeObject\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMakeObject,\n args: mapRecord(cfg.template, (c) => renderCfg(ctx, c)),\n });\n\n case \"MakeArray\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRCollectArrayFromArgs(cfg.template.length),\n args: mapArrayToRecord(cfg.template, (e) => renderCfg(ctx, e)),\n });\n\n case \"Flatten\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRFlatten,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"IsEmpty\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRIsEmpty,\n args: {\n arg: renderCfg(ctx, cfg.arg),\n },\n });\n\n case \"Not\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRNot,\n args: {\n operand: renderCfg(ctx, cfg.operand),\n },\n });\n\n case \"And\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRAnd,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case \"Or\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SROr,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case \"MapResourceFields\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapResourceFields1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetResourceField\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetResourceField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case \"GetResourceValueAsJson\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRResourceValueAsJson,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContent(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContentAsString\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContentAsString(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContentAsJson\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContentAsJson(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetDownloadedBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetDownloadedBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetOnDemandBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetOnDemandBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"ExtractArchiveAndGetURL\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRExtractArchiveAndGetURL(cfg.format),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetImportProgress\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetImportProgress,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetLastLogs\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetLastLogs(cfg.lines),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetProgressLog\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetProgressLog(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetProgressLogWithInfo\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetProgressLogWithInfo(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetLogHandle\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetLogHandle,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n default:\n return assertNever(cfg);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"renderer.cjs","names":["Computable","computableFromCfgUnsafe","mapRecord"],"sources":["../../src/cfg_render/renderer.ts"],"sourcesContent":["import type {\n ArchiveFormat,\n Cfg,\n CfgMapArrayValues,\n CfgMapRecordValues,\n CfgMapResourceFields,\n RangeBytes,\n} from \"@platforma-sdk/model\";\nimport type { ArgumentRequests, Operation, OperationAction, Subroutine } from \"./operation\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport { mapRecord } from \"./util\";\nimport { computableFromCfgUnsafe } from \"./executor\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\nimport type { ComputableCtx } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\n\nfunction res(result: unknown): OperationAction {\n return {\n type: \"ReturnResult\",\n result: result,\n };\n}\n\nexport function resOp(result: unknown): Operation {\n return () => res(result);\n}\n\n//\n// Subroutines\n//\n\nconst SRMakeObject: Subroutine = (args) => {\n const result: Record<string | symbol, unknown> = {};\n for (const [k, v] of Object.entries(args)) result[k] = v;\n return resOp(result);\n};\n\nconst SRFlatten: Subroutine = (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n const result: unknown[] = [];\n for (const nested of source) {\n if (nested instanceof Array) result.push(...(nested as unknown[]));\n else result.push(nested);\n }\n return resOp(result);\n};\n\nconst SRGetResourceField: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return ({ cCtx }) => {\n return res(cCtx.accessor(source).node().traverse(field)?.persist());\n };\n};\n\nfunction mapArrayToRecord<T, R>(elements: T[], cb: (e: T) => R): Record<string, R> {\n const result: Record<string, R> = {};\n const length = elements.length;\n for (let i = 0; i < length; i++) result[String(i)] = cb(elements[i]);\n return result;\n}\n\nfunction SRMapArrayValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapArrayValues, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRCollectArrayFromArgs(source.length),\n args: mapArrayToRecord(source, (e) => renderCfg({ ...ctx, [ops.itVar]: e }, ops.mapping)),\n });\n };\n}\n\nfunction SRCollectArrayFromArgs(length: number): Subroutine {\n return (args) => {\n const result: unknown[] = [];\n for (let i = 0; i < length; i++) result.push(args[String(i)]);\n return resOp(result);\n };\n}\n\nfunction SRMapRecordValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapRecordValues, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n if (source === undefined) return resOp(undefined);\n const nextArgs: ArgumentRequests = {};\n for (const [k, v] of Object.entries(source)) {\n const newCtx = { ...ctx, [ops.itVar]: v };\n nextArgs[k] = renderCfg(newCtx, ops.mapping);\n }\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapRecordValues2,\n args: nextArgs,\n });\n };\n}\n\nconst SRMapRecordValues2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRIsEmpty: Subroutine = (args) => {\n const arg = args.arg as unknown[] | string | undefined;\n if (arg === undefined) return resOp(undefined);\n return resOp(arg.length === 0);\n};\n\nconst SRNot: Subroutine = (args) => {\n const operand = args.operand as boolean | undefined;\n if (operand === undefined) return resOp(undefined);\n return resOp(!operand);\n};\n\nconst SRAnd: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 && operand2);\n};\n\nconst SROr: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 || operand2);\n};\n\nconst SRResourceValueAsJson: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n return ({ cCtx }) => res(cCtx.accessor(source).node()?.getDataAsJson());\n};\n\nconst SRGetJsonField: Subroutine = (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return resOp(source[field]);\n};\n\nfunction SRMapResourceFields1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapResourceFields, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx }) => {\n const node = cCtx.accessor(source).node();\n\n const nextArgs: ArgumentRequests = {};\n for (const fieldName of node.listInputFields()) {\n const res = node.traverse(fieldName);\n if (res === undefined) nextArgs[fieldName] = resOp(undefined);\n else {\n const newCtx = { ...ctx, [ops.itVar]: res.persist() };\n nextArgs[fieldName] = renderCfg(newCtx, ops.mapping);\n }\n }\n\n return {\n type: \"ScheduleSubroutine\",\n subroutine: SRMapResourceFields2,\n args: nextArgs,\n };\n };\n };\n}\n\nconst SRMapResourceFields2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRGetBlobContent: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (ctx) => {\n return drivers.blobDriver.getDownloadedBlob(ctx.accessor(source).node().resourceInfo);\n },\n {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n return await drivers.blobDriver.getContent(value.handle, range);\n },\n },\n ),\n };\n };\n};\n\nconst SRGetBlobContentAsString: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx, drivers }) => {\n // getting target resource id and type\n const resourceInfo = cCtx.accessor(source).node().resourceInfo;\n\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (ctx) => drivers.blobDriver.getDownloadedBlob(resourceInfo, ctx),\n {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n return content.toString();\n },\n },\n ),\n };\n };\n};\n\nconst SRGetBlobContentAsJson: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (c) => drivers.blobDriver.getDownloadedBlob(c.accessor(source).node().resourceInfo, c),\n {\n postprocessValue: async (value) => {\n if (value == undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n if (content == undefined) return undefined;\n return JSON.parse(Buffer.from(content).toString()) as unknown;\n },\n },\n ),\n };\n };\n};\n\nconst SRGetDownloadedBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return (ctx) => {\n return {\n type: \"ScheduleComputable\",\n computable: ctx.drivers.blobDriver.getDownloadedBlob(source),\n };\n };\n};\n\nconst SRGetOnDemandBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.blobDriver.getOnDemandBlob(source),\n };\n };\n};\n\nconst SRExtractArchiveAndGetURL: (format: ArchiveFormat) => Subroutine = (format) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.blobToURLDriver.extractArchiveAndGetURL(source, format),\n };\n };\n};\n\nconst SRGetImportProgress: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.uploadDriver.getProgressId(source),\n };\n };\n};\n\nconst SRGetLastLogs: (lines: number) => Subroutine = (lines) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getLastLogs(source, lines),\n };\n };\n};\n\nconst SRGetProgressLog: (patternToSearch: string) => Subroutine = (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getProgressLog(source, patternToSearch),\n };\n };\n};\n\nconst SRGetProgressLogWithInfo: (patternToSearch: string) => Subroutine =\n (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getProgressLogWithInfo(source, patternToSearch),\n };\n };\n };\n\nconst SRGetLogHandle: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getLogHandle(source),\n };\n };\n};\n\n/** Renders configuration into executor's Operation */\nexport function renderCfg(ctx: Record<string, unknown>, cfg: Cfg): Operation {\n switch (cfg.type) {\n case \"GetFromCtx\": {\n const ctxValue = ctx[cfg.variable];\n if (typeof ctxValue === \"function\") {\n return (e) => res((ctxValue as (cCtx: ComputableCtx) => OperationAction)(e.cCtx));\n } else {\n return resOp(ctxValue);\n }\n }\n\n case \"Isolate\":\n return ({ drivers }) => ({\n type: \"ScheduleComputable\",\n computable: computableFromCfgUnsafe(drivers, ctx, cfg.cfg),\n });\n\n case \"Immediate\":\n return resOp(cfg.value);\n\n case \"GetJsonField\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetJsonField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case \"MapArrayValues\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapArrayValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"MapRecordValues\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapRecordValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"MakeObject\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMakeObject,\n args: mapRecord(cfg.template, (c) => renderCfg(ctx, c)),\n });\n\n case \"MakeArray\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRCollectArrayFromArgs(cfg.template.length),\n args: mapArrayToRecord(cfg.template, (e) => renderCfg(ctx, e)),\n });\n\n case \"Flatten\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRFlatten,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"IsEmpty\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRIsEmpty,\n args: {\n arg: renderCfg(ctx, cfg.arg),\n },\n });\n\n case \"Not\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRNot,\n args: {\n operand: renderCfg(ctx, cfg.operand),\n },\n });\n\n case \"And\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRAnd,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case \"Or\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SROr,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case \"MapResourceFields\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapResourceFields1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetResourceField\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetResourceField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case \"GetResourceValueAsJson\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRResourceValueAsJson,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContent(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContentAsString\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContentAsString(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContentAsJson\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContentAsJson(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetDownloadedBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetDownloadedBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetOnDemandBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetOnDemandBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"ExtractArchiveAndGetURL\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRExtractArchiveAndGetURL(cfg.format),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetImportProgress\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetImportProgress,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetLastLogs\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetLastLogs(cfg.lines),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetProgressLog\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetProgressLog(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetProgressLogWithInfo\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetProgressLogWithInfo(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetLogHandle\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetLogHandle,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n default:\n return assertNever(cfg);\n }\n}\n"],"mappings":"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"}
@@ -2,7 +2,6 @@ import { mapRecord } from "./util.js";
2
2
  import { computableFromCfgUnsafe } from "./executor.js";
3
3
  import { assertNever } from "@milaboratories/ts-helpers";
4
4
  import { Computable } from "@milaboratories/computable";
5
-
6
5
  //#region src/cfg_render/renderer.ts
7
6
  function res(result) {
8
7
  return {
@@ -411,7 +410,7 @@ function renderCfg(ctx, cfg) {
411
410
  default: return assertNever(cfg);
412
411
  }
413
412
  }
414
-
415
413
  //#endregion
416
414
  export { renderCfg, resOp };
415
+
417
416
  //# sourceMappingURL=renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer.js","names":[],"sources":["../../src/cfg_render/renderer.ts"],"sourcesContent":["import type {\n ArchiveFormat,\n Cfg,\n CfgMapArrayValues,\n CfgMapRecordValues,\n CfgMapResourceFields,\n RangeBytes,\n} from \"@platforma-sdk/model\";\nimport type { ArgumentRequests, Operation, OperationAction, Subroutine } from \"./operation\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport { mapRecord } from \"./util\";\nimport { computableFromCfgUnsafe } from \"./executor\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\nimport type { ComputableCtx } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\n\nfunction res(result: unknown): OperationAction {\n return {\n type: \"ReturnResult\",\n result: result,\n };\n}\n\nexport function resOp(result: unknown): Operation {\n return () => res(result);\n}\n\n//\n// Subroutines\n//\n\nconst SRMakeObject: Subroutine = (args) => {\n const result: Record<string | symbol, unknown> = {};\n for (const [k, v] of Object.entries(args)) result[k] = v;\n return resOp(result);\n};\n\nconst SRFlatten: Subroutine = (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n const result: unknown[] = [];\n for (const nested of source) {\n if (nested instanceof Array) result.push(...(nested as unknown[]));\n else result.push(nested);\n }\n return resOp(result);\n};\n\nconst SRGetResourceField: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return ({ cCtx }) => {\n return res(cCtx.accessor(source).node().traverse(field)?.persist());\n };\n};\n\nfunction mapArrayToRecord<T, R>(elements: T[], cb: (e: T) => R): Record<string, R> {\n const result: Record<string, R> = {};\n const length = elements.length;\n for (let i = 0; i < length; i++) result[String(i)] = cb(elements[i]);\n return result;\n}\n\nfunction SRMapArrayValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapArrayValues, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRCollectArrayFromArgs(source.length),\n args: mapArrayToRecord(source, (e) => renderCfg({ ...ctx, [ops.itVar]: e }, ops.mapping)),\n });\n };\n}\n\nfunction SRCollectArrayFromArgs(length: number): Subroutine {\n return (args) => {\n const result: unknown[] = [];\n for (let i = 0; i < length; i++) result.push(args[String(i)]);\n return resOp(result);\n };\n}\n\nfunction SRMapRecordValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapRecordValues, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n if (source === undefined) return resOp(undefined);\n const nextArgs: ArgumentRequests = {};\n for (const [k, v] of Object.entries(source)) {\n const newCtx = { ...ctx, [ops.itVar]: v };\n nextArgs[k] = renderCfg(newCtx, ops.mapping);\n }\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapRecordValues2,\n args: nextArgs,\n });\n };\n}\n\nconst SRMapRecordValues2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRIsEmpty: Subroutine = (args) => {\n const arg = args.arg as unknown[] | string | undefined;\n if (arg === undefined) return resOp(undefined);\n return resOp(arg.length === 0);\n};\n\nconst SRNot: Subroutine = (args) => {\n const operand = args.operand as boolean | undefined;\n if (operand === undefined) return resOp(undefined);\n return resOp(!operand);\n};\n\nconst SRAnd: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 && operand2);\n};\n\nconst SROr: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 || operand2);\n};\n\nconst SRResourceValueAsJson: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n return ({ cCtx }) => res(cCtx.accessor(source).node()?.getDataAsJson());\n};\n\nconst SRGetJsonField: Subroutine = (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return resOp(source[field]);\n};\n\nfunction SRMapResourceFields1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapResourceFields, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx }) => {\n const node = cCtx.accessor(source).node();\n\n const nextArgs: ArgumentRequests = {};\n for (const fieldName of node.listInputFields()) {\n const res = node.traverse(fieldName);\n if (res === undefined) nextArgs[fieldName] = resOp(undefined);\n else {\n const newCtx = { ...ctx, [ops.itVar]: res.persist() };\n nextArgs[fieldName] = renderCfg(newCtx, ops.mapping);\n }\n }\n\n return {\n type: \"ScheduleSubroutine\",\n subroutine: SRMapResourceFields2,\n args: nextArgs,\n };\n };\n };\n}\n\nconst SRMapResourceFields2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRGetBlobContent: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (ctx) => {\n return drivers.blobDriver.getDownloadedBlob(ctx.accessor(source).node().resourceInfo);\n },\n {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n return await drivers.blobDriver.getContent(value.handle, range);\n },\n },\n ),\n };\n };\n};\n\nconst SRGetBlobContentAsString: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx, drivers }) => {\n // getting target resource id and type\n const resourceInfo = cCtx.accessor(source).node().resourceInfo;\n\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (ctx) => drivers.blobDriver.getDownloadedBlob(resourceInfo, ctx),\n {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n return content.toString();\n },\n },\n ),\n };\n };\n};\n\nconst SRGetBlobContentAsJson: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (c) => drivers.blobDriver.getDownloadedBlob(c.accessor(source).node().resourceInfo, c),\n {\n postprocessValue: async (value) => {\n if (value == undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n if (content == undefined) return undefined;\n return JSON.parse(Buffer.from(content).toString()) as unknown;\n },\n },\n ),\n };\n };\n};\n\nconst SRGetDownloadedBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return (ctx) => {\n return {\n type: \"ScheduleComputable\",\n computable: ctx.drivers.blobDriver.getDownloadedBlob(source),\n };\n };\n};\n\nconst SRGetOnDemandBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.blobDriver.getOnDemandBlob(source),\n };\n };\n};\n\nconst SRExtractArchiveAndGetURL: (format: ArchiveFormat) => Subroutine = (format) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.blobToURLDriver.extractArchiveAndGetURL(source, format),\n };\n };\n};\n\nconst SRGetImportProgress: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.uploadDriver.getProgressId(source),\n };\n };\n};\n\nconst SRGetLastLogs: (lines: number) => Subroutine = (lines) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getLastLogs(source, lines),\n };\n };\n};\n\nconst SRGetProgressLog: (patternToSearch: string) => Subroutine = (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getProgressLog(source, patternToSearch),\n };\n };\n};\n\nconst SRGetProgressLogWithInfo: (patternToSearch: string) => Subroutine =\n (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getProgressLogWithInfo(source, patternToSearch),\n };\n };\n };\n\nconst SRGetLogHandle: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getLogHandle(source),\n };\n };\n};\n\n/** Renders configuration into executor's Operation */\nexport function renderCfg(ctx: Record<string, unknown>, cfg: Cfg): Operation {\n switch (cfg.type) {\n case \"GetFromCtx\": {\n const ctxValue = ctx[cfg.variable];\n if (typeof ctxValue === \"function\") {\n return (e) => res((ctxValue as (cCtx: ComputableCtx) => OperationAction)(e.cCtx));\n } else {\n return resOp(ctxValue);\n }\n }\n\n case \"Isolate\":\n return ({ drivers }) => ({\n type: \"ScheduleComputable\",\n computable: computableFromCfgUnsafe(drivers, ctx, cfg.cfg),\n });\n\n case \"Immediate\":\n return resOp(cfg.value);\n\n case \"GetJsonField\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetJsonField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case \"MapArrayValues\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapArrayValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"MapRecordValues\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapRecordValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"MakeObject\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMakeObject,\n args: mapRecord(cfg.template, (c) => renderCfg(ctx, c)),\n });\n\n case \"MakeArray\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRCollectArrayFromArgs(cfg.template.length),\n args: mapArrayToRecord(cfg.template, (e) => renderCfg(ctx, e)),\n });\n\n case \"Flatten\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRFlatten,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"IsEmpty\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRIsEmpty,\n args: {\n arg: renderCfg(ctx, cfg.arg),\n },\n });\n\n case \"Not\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRNot,\n args: {\n operand: renderCfg(ctx, cfg.operand),\n },\n });\n\n case \"And\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRAnd,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case \"Or\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SROr,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case \"MapResourceFields\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapResourceFields1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetResourceField\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetResourceField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case \"GetResourceValueAsJson\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRResourceValueAsJson,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContent(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContentAsString\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContentAsString(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContentAsJson\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContentAsJson(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetDownloadedBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetDownloadedBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetOnDemandBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetOnDemandBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"ExtractArchiveAndGetURL\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRExtractArchiveAndGetURL(cfg.format),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetImportProgress\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetImportProgress,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetLastLogs\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetLastLogs(cfg.lines),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetProgressLog\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetProgressLog(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetProgressLogWithInfo\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetProgressLogWithInfo(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetLogHandle\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetLogHandle,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n default:\n return assertNever(cfg);\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"renderer.js","names":[],"sources":["../../src/cfg_render/renderer.ts"],"sourcesContent":["import type {\n ArchiveFormat,\n Cfg,\n CfgMapArrayValues,\n CfgMapRecordValues,\n CfgMapResourceFields,\n RangeBytes,\n} from \"@platforma-sdk/model\";\nimport type { ArgumentRequests, Operation, OperationAction, Subroutine } from \"./operation\";\nimport type { PlTreeEntry } from \"@milaboratories/pl-tree\";\nimport { mapRecord } from \"./util\";\nimport { computableFromCfgUnsafe } from \"./executor\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\nimport type { ComputableCtx } from \"@milaboratories/computable\";\nimport { Computable } from \"@milaboratories/computable\";\n\nfunction res(result: unknown): OperationAction {\n return {\n type: \"ReturnResult\",\n result: result,\n };\n}\n\nexport function resOp(result: unknown): Operation {\n return () => res(result);\n}\n\n//\n// Subroutines\n//\n\nconst SRMakeObject: Subroutine = (args) => {\n const result: Record<string | symbol, unknown> = {};\n for (const [k, v] of Object.entries(args)) result[k] = v;\n return resOp(result);\n};\n\nconst SRFlatten: Subroutine = (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n const result: unknown[] = [];\n for (const nested of source) {\n if (nested instanceof Array) result.push(...(nested as unknown[]));\n else result.push(nested);\n }\n return resOp(result);\n};\n\nconst SRGetResourceField: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return ({ cCtx }) => {\n return res(cCtx.accessor(source).node().traverse(field)?.persist());\n };\n};\n\nfunction mapArrayToRecord<T, R>(elements: T[], cb: (e: T) => R): Record<string, R> {\n const result: Record<string, R> = {};\n const length = elements.length;\n for (let i = 0; i < length; i++) result[String(i)] = cb(elements[i]);\n return result;\n}\n\nfunction SRMapArrayValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapArrayValues, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as unknown[] | undefined;\n if (source === undefined) return resOp(undefined);\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRCollectArrayFromArgs(source.length),\n args: mapArrayToRecord(source, (e) => renderCfg({ ...ctx, [ops.itVar]: e }, ops.mapping)),\n });\n };\n}\n\nfunction SRCollectArrayFromArgs(length: number): Subroutine {\n return (args) => {\n const result: unknown[] = [];\n for (let i = 0; i < length; i++) result.push(args[String(i)]);\n return resOp(result);\n };\n}\n\nfunction SRMapRecordValues1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapRecordValues, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n if (source === undefined) return resOp(undefined);\n const nextArgs: ArgumentRequests = {};\n for (const [k, v] of Object.entries(source)) {\n const newCtx = { ...ctx, [ops.itVar]: v };\n nextArgs[k] = renderCfg(newCtx, ops.mapping);\n }\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapRecordValues2,\n args: nextArgs,\n });\n };\n}\n\nconst SRMapRecordValues2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRIsEmpty: Subroutine = (args) => {\n const arg = args.arg as unknown[] | string | undefined;\n if (arg === undefined) return resOp(undefined);\n return resOp(arg.length === 0);\n};\n\nconst SRNot: Subroutine = (args) => {\n const operand = args.operand as boolean | undefined;\n if (operand === undefined) return resOp(undefined);\n return resOp(!operand);\n};\n\nconst SRAnd: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 && operand2);\n};\n\nconst SROr: Subroutine = (args) => {\n const operand1 = args.operand1 as boolean | undefined;\n const operand2 = args.operand2 as boolean | undefined;\n if (operand1 === undefined || operand2 === undefined) return resOp(undefined);\n return resOp(operand1 || operand2);\n};\n\nconst SRResourceValueAsJson: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n return ({ cCtx }) => res(cCtx.accessor(source).node()?.getDataAsJson());\n};\n\nconst SRGetJsonField: Subroutine = (args) => {\n const source = args.source as Record<string, unknown> | undefined;\n const field = args.field as string | undefined;\n if (source === undefined || field === undefined) return resOp(undefined);\n return resOp(source[field]);\n};\n\nfunction SRMapResourceFields1(\n ctx: Record<string, unknown>,\n ops: Pick<CfgMapResourceFields, \"itVar\" | \"mapping\">,\n): Subroutine {\n return (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx }) => {\n const node = cCtx.accessor(source).node();\n\n const nextArgs: ArgumentRequests = {};\n for (const fieldName of node.listInputFields()) {\n const res = node.traverse(fieldName);\n if (res === undefined) nextArgs[fieldName] = resOp(undefined);\n else {\n const newCtx = { ...ctx, [ops.itVar]: res.persist() };\n nextArgs[fieldName] = renderCfg(newCtx, ops.mapping);\n }\n }\n\n return {\n type: \"ScheduleSubroutine\",\n subroutine: SRMapResourceFields2,\n args: nextArgs,\n };\n };\n };\n}\n\nconst SRMapResourceFields2: Subroutine = (args) => {\n return resOp(args);\n};\n\nconst SRGetBlobContent: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (ctx) => {\n return drivers.blobDriver.getDownloadedBlob(ctx.accessor(source).node().resourceInfo);\n },\n {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n return await drivers.blobDriver.getContent(value.handle, range);\n },\n },\n ),\n };\n };\n};\n\nconst SRGetBlobContentAsString: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ cCtx, drivers }) => {\n // getting target resource id and type\n const resourceInfo = cCtx.accessor(source).node().resourceInfo;\n\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (ctx) => drivers.blobDriver.getDownloadedBlob(resourceInfo, ctx),\n {\n postprocessValue: async (value) => {\n if (value === undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n return content.toString();\n },\n },\n ),\n };\n };\n};\n\nconst SRGetBlobContentAsJson: (range?: RangeBytes) => Subroutine = (range) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: Computable.make(\n (c) => drivers.blobDriver.getDownloadedBlob(c.accessor(source).node().resourceInfo, c),\n {\n postprocessValue: async (value) => {\n if (value == undefined) return undefined;\n const content = await drivers.blobDriver.getContent(value.handle, range);\n if (content == undefined) return undefined;\n return JSON.parse(Buffer.from(content).toString()) as unknown;\n },\n },\n ),\n };\n };\n};\n\nconst SRGetDownloadedBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return (ctx) => {\n return {\n type: \"ScheduleComputable\",\n computable: ctx.drivers.blobDriver.getDownloadedBlob(source),\n };\n };\n};\n\nconst SRGetOnDemandBlobContent: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.blobDriver.getOnDemandBlob(source),\n };\n };\n};\n\nconst SRExtractArchiveAndGetURL: (format: ArchiveFormat) => Subroutine = (format) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.blobToURLDriver.extractArchiveAndGetURL(source, format),\n };\n };\n};\n\nconst SRGetImportProgress: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.uploadDriver.getProgressId(source),\n };\n };\n};\n\nconst SRGetLastLogs: (lines: number) => Subroutine = (lines) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getLastLogs(source, lines),\n };\n };\n};\n\nconst SRGetProgressLog: (patternToSearch: string) => Subroutine = (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getProgressLog(source, patternToSearch),\n };\n };\n};\n\nconst SRGetProgressLogWithInfo: (patternToSearch: string) => Subroutine =\n (patternToSearch) => (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getProgressLogWithInfo(source, patternToSearch),\n };\n };\n };\n\nconst SRGetLogHandle: Subroutine = (args) => {\n const source = args.source as PlTreeEntry | undefined;\n if (source === undefined) return resOp(undefined);\n\n return ({ drivers }) => {\n return {\n type: \"ScheduleComputable\",\n computable: drivers.logDriver.getLogHandle(source),\n };\n };\n};\n\n/** Renders configuration into executor's Operation */\nexport function renderCfg(ctx: Record<string, unknown>, cfg: Cfg): Operation {\n switch (cfg.type) {\n case \"GetFromCtx\": {\n const ctxValue = ctx[cfg.variable];\n if (typeof ctxValue === \"function\") {\n return (e) => res((ctxValue as (cCtx: ComputableCtx) => OperationAction)(e.cCtx));\n } else {\n return resOp(ctxValue);\n }\n }\n\n case \"Isolate\":\n return ({ drivers }) => ({\n type: \"ScheduleComputable\",\n computable: computableFromCfgUnsafe(drivers, ctx, cfg.cfg),\n });\n\n case \"Immediate\":\n return resOp(cfg.value);\n\n case \"GetJsonField\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetJsonField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case \"MapArrayValues\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapArrayValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"MapRecordValues\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapRecordValues1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"MakeObject\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMakeObject,\n args: mapRecord(cfg.template, (c) => renderCfg(ctx, c)),\n });\n\n case \"MakeArray\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRCollectArrayFromArgs(cfg.template.length),\n args: mapArrayToRecord(cfg.template, (e) => renderCfg(ctx, e)),\n });\n\n case \"Flatten\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRFlatten,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"IsEmpty\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRIsEmpty,\n args: {\n arg: renderCfg(ctx, cfg.arg),\n },\n });\n\n case \"Not\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRNot,\n args: {\n operand: renderCfg(ctx, cfg.operand),\n },\n });\n\n case \"And\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRAnd,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case \"Or\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SROr,\n args: {\n operand1: renderCfg(ctx, cfg.operand1),\n operand2: renderCfg(ctx, cfg.operand2),\n },\n });\n\n case \"MapResourceFields\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRMapResourceFields1(ctx, cfg),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetResourceField\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetResourceField,\n args: {\n source: renderCfg(ctx, cfg.source),\n field: renderCfg(ctx, cfg.field),\n },\n });\n\n case \"GetResourceValueAsJson\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRResourceValueAsJson,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContent(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContentAsString\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContentAsString(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetBlobContentAsJson\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetBlobContentAsJson(cfg.range),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetDownloadedBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetDownloadedBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetOnDemandBlobContent\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetOnDemandBlobContent,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"ExtractArchiveAndGetURL\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRExtractArchiveAndGetURL(cfg.format),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetImportProgress\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetImportProgress,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetLastLogs\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetLastLogs(cfg.lines),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetProgressLog\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetProgressLog(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetProgressLogWithInfo\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetProgressLogWithInfo(cfg.patternToSearch),\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n case \"GetLogHandle\":\n return () => ({\n type: \"ScheduleSubroutine\",\n subroutine: SRGetLogHandle,\n args: {\n source: renderCfg(ctx, cfg.source),\n },\n });\n\n default:\n return assertNever(cfg);\n }\n}\n"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
1
+ require("../_virtual/_rolldown/runtime.cjs");
2
2
  let _milaboratories_ts_helpers = require("@milaboratories/ts-helpers");
3
-
4
3
  //#region src/cfg_render/traverse.ts
5
4
  function* traverseCfg(cfg, guide) {
6
5
  yield cfg;
@@ -57,7 +56,7 @@ function* traverseCfg(cfg, guide) {
57
56
  default: (0, _milaboratories_ts_helpers.assertNever)(cfg);
58
57
  }
59
58
  }
60
-
61
59
  //#endregion
62
60
  exports.traverseCfg = traverseCfg;
61
+
63
62
  //# sourceMappingURL=traverse.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.cjs","names":[],"sources":["../../src/cfg_render/traverse.ts"],"sourcesContent":["import type { Cfg } from \"@platforma-sdk/model\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\n\nexport function* traverseCfg(cfg: Cfg, guide?: (cfg: Cfg) => boolean): Generator<Cfg> {\n yield cfg;\n if (guide !== undefined && !guide(cfg)) return;\n switch (cfg.type) {\n case \"GetFromCtx\":\n case \"Immediate\":\n return;\n case \"Isolate\":\n yield* traverseCfg(cfg.cfg);\n return;\n case \"MakeObject\":\n for (const [, child] of Object.entries(cfg.template)) yield* traverseCfg(child);\n return;\n case \"MakeArray\":\n for (const child of cfg.template) yield* traverseCfg(child);\n return;\n case \"GetJsonField\":\n case \"GetResourceField\":\n yield* traverseCfg(cfg.source);\n yield* traverseCfg(cfg.field);\n return;\n case \"MapRecordValues\":\n case \"MapArrayValues\":\n case \"MapResourceFields\":\n yield* traverseCfg(cfg.source);\n yield* traverseCfg(cfg.mapping);\n return;\n case \"Flatten\":\n case \"GetResourceValueAsJson\":\n case \"GetBlobContent\":\n case \"ExtractArchiveAndGetURL\":\n case \"GetBlobContentAsString\":\n case \"GetBlobContentAsJson\":\n case \"GetDownloadedBlobContent\":\n case \"GetOnDemandBlobContent\":\n case \"GetImportProgress\":\n case \"GetLastLogs\":\n case \"GetProgressLog\":\n case \"GetProgressLogWithInfo\":\n case \"GetLogHandle\":\n yield* traverseCfg(cfg.source);\n return;\n case \"IsEmpty\":\n yield* traverseCfg(cfg.arg);\n return;\n case \"Not\":\n yield* traverseCfg(cfg.operand);\n return;\n case \"And\":\n case \"Or\":\n yield* traverseCfg(cfg.operand1);\n yield* traverseCfg(cfg.operand2);\n return;\n default:\n assertNever(cfg);\n }\n}\n"],"mappings":";;;;AAGA,UAAiB,YAAY,KAAU,OAA+C;AACpF,OAAM;AACN,KAAI,UAAU,UAAa,CAAC,MAAM,IAAI,CAAE;AACxC,SAAQ,IAAI,MAAZ;EACE,KAAK;EACL,KAAK,YACH;EACF,KAAK;AACH,UAAO,YAAY,IAAI,IAAI;AAC3B;EACF,KAAK;AACH,QAAK,MAAM,GAAG,UAAU,OAAO,QAAQ,IAAI,SAAS,CAAE,QAAO,YAAY,MAAM;AAC/E;EACF,KAAK;AACH,QAAK,MAAM,SAAS,IAAI,SAAU,QAAO,YAAY,MAAM;AAC3D;EACF,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B,UAAO,YAAY,IAAI,MAAM;AAC7B;EACF,KAAK;EACL,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B,UAAO,YAAY,IAAI,QAAQ;AAC/B;EACF,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B;EACF,KAAK;AACH,UAAO,YAAY,IAAI,IAAI;AAC3B;EACF,KAAK;AACH,UAAO,YAAY,IAAI,QAAQ;AAC/B;EACF,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,SAAS;AAChC,UAAO,YAAY,IAAI,SAAS;AAChC;EACF,QACE,6CAAY,IAAI"}
1
+ {"version":3,"file":"traverse.cjs","names":[],"sources":["../../src/cfg_render/traverse.ts"],"sourcesContent":["import type { Cfg } from \"@platforma-sdk/model\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\n\nexport function* traverseCfg(cfg: Cfg, guide?: (cfg: Cfg) => boolean): Generator<Cfg> {\n yield cfg;\n if (guide !== undefined && !guide(cfg)) return;\n switch (cfg.type) {\n case \"GetFromCtx\":\n case \"Immediate\":\n return;\n case \"Isolate\":\n yield* traverseCfg(cfg.cfg);\n return;\n case \"MakeObject\":\n for (const [, child] of Object.entries(cfg.template)) yield* traverseCfg(child);\n return;\n case \"MakeArray\":\n for (const child of cfg.template) yield* traverseCfg(child);\n return;\n case \"GetJsonField\":\n case \"GetResourceField\":\n yield* traverseCfg(cfg.source);\n yield* traverseCfg(cfg.field);\n return;\n case \"MapRecordValues\":\n case \"MapArrayValues\":\n case \"MapResourceFields\":\n yield* traverseCfg(cfg.source);\n yield* traverseCfg(cfg.mapping);\n return;\n case \"Flatten\":\n case \"GetResourceValueAsJson\":\n case \"GetBlobContent\":\n case \"ExtractArchiveAndGetURL\":\n case \"GetBlobContentAsString\":\n case \"GetBlobContentAsJson\":\n case \"GetDownloadedBlobContent\":\n case \"GetOnDemandBlobContent\":\n case \"GetImportProgress\":\n case \"GetLastLogs\":\n case \"GetProgressLog\":\n case \"GetProgressLogWithInfo\":\n case \"GetLogHandle\":\n yield* traverseCfg(cfg.source);\n return;\n case \"IsEmpty\":\n yield* traverseCfg(cfg.arg);\n return;\n case \"Not\":\n yield* traverseCfg(cfg.operand);\n return;\n case \"And\":\n case \"Or\":\n yield* traverseCfg(cfg.operand1);\n yield* traverseCfg(cfg.operand2);\n return;\n default:\n assertNever(cfg);\n }\n}\n"],"mappings":";;;AAGA,UAAiB,YAAY,KAAU,OAA+C;AACpF,OAAM;AACN,KAAI,UAAU,KAAA,KAAa,CAAC,MAAM,IAAI,CAAE;AACxC,SAAQ,IAAI,MAAZ;EACE,KAAK;EACL,KAAK,YACH;EACF,KAAK;AACH,UAAO,YAAY,IAAI,IAAI;AAC3B;EACF,KAAK;AACH,QAAK,MAAM,GAAG,UAAU,OAAO,QAAQ,IAAI,SAAS,CAAE,QAAO,YAAY,MAAM;AAC/E;EACF,KAAK;AACH,QAAK,MAAM,SAAS,IAAI,SAAU,QAAO,YAAY,MAAM;AAC3D;EACF,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B,UAAO,YAAY,IAAI,MAAM;AAC7B;EACF,KAAK;EACL,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B,UAAO,YAAY,IAAI,QAAQ;AAC/B;EACF,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B;EACF,KAAK;AACH,UAAO,YAAY,IAAI,IAAI;AAC3B;EACF,KAAK;AACH,UAAO,YAAY,IAAI,QAAQ;AAC/B;EACF,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,SAAS;AAChC,UAAO,YAAY,IAAI,SAAS;AAChC;EACF,QACE,EAAA,GAAA,2BAAA,aAAY,IAAI"}
@@ -1,5 +1,4 @@
1
1
  import { assertNever } from "@milaboratories/ts-helpers";
2
-
3
2
  //#region src/cfg_render/traverse.ts
4
3
  function* traverseCfg(cfg, guide) {
5
4
  yield cfg;
@@ -56,7 +55,7 @@ function* traverseCfg(cfg, guide) {
56
55
  default: assertNever(cfg);
57
56
  }
58
57
  }
59
-
60
58
  //#endregion
61
59
  export { traverseCfg };
60
+
62
61
  //# sourceMappingURL=traverse.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"traverse.js","names":[],"sources":["../../src/cfg_render/traverse.ts"],"sourcesContent":["import type { Cfg } from \"@platforma-sdk/model\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\n\nexport function* traverseCfg(cfg: Cfg, guide?: (cfg: Cfg) => boolean): Generator<Cfg> {\n yield cfg;\n if (guide !== undefined && !guide(cfg)) return;\n switch (cfg.type) {\n case \"GetFromCtx\":\n case \"Immediate\":\n return;\n case \"Isolate\":\n yield* traverseCfg(cfg.cfg);\n return;\n case \"MakeObject\":\n for (const [, child] of Object.entries(cfg.template)) yield* traverseCfg(child);\n return;\n case \"MakeArray\":\n for (const child of cfg.template) yield* traverseCfg(child);\n return;\n case \"GetJsonField\":\n case \"GetResourceField\":\n yield* traverseCfg(cfg.source);\n yield* traverseCfg(cfg.field);\n return;\n case \"MapRecordValues\":\n case \"MapArrayValues\":\n case \"MapResourceFields\":\n yield* traverseCfg(cfg.source);\n yield* traverseCfg(cfg.mapping);\n return;\n case \"Flatten\":\n case \"GetResourceValueAsJson\":\n case \"GetBlobContent\":\n case \"ExtractArchiveAndGetURL\":\n case \"GetBlobContentAsString\":\n case \"GetBlobContentAsJson\":\n case \"GetDownloadedBlobContent\":\n case \"GetOnDemandBlobContent\":\n case \"GetImportProgress\":\n case \"GetLastLogs\":\n case \"GetProgressLog\":\n case \"GetProgressLogWithInfo\":\n case \"GetLogHandle\":\n yield* traverseCfg(cfg.source);\n return;\n case \"IsEmpty\":\n yield* traverseCfg(cfg.arg);\n return;\n case \"Not\":\n yield* traverseCfg(cfg.operand);\n return;\n case \"And\":\n case \"Or\":\n yield* traverseCfg(cfg.operand1);\n yield* traverseCfg(cfg.operand2);\n return;\n default:\n assertNever(cfg);\n }\n}\n"],"mappings":";;;AAGA,UAAiB,YAAY,KAAU,OAA+C;AACpF,OAAM;AACN,KAAI,UAAU,UAAa,CAAC,MAAM,IAAI,CAAE;AACxC,SAAQ,IAAI,MAAZ;EACE,KAAK;EACL,KAAK,YACH;EACF,KAAK;AACH,UAAO,YAAY,IAAI,IAAI;AAC3B;EACF,KAAK;AACH,QAAK,MAAM,GAAG,UAAU,OAAO,QAAQ,IAAI,SAAS,CAAE,QAAO,YAAY,MAAM;AAC/E;EACF,KAAK;AACH,QAAK,MAAM,SAAS,IAAI,SAAU,QAAO,YAAY,MAAM;AAC3D;EACF,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B,UAAO,YAAY,IAAI,MAAM;AAC7B;EACF,KAAK;EACL,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B,UAAO,YAAY,IAAI,QAAQ;AAC/B;EACF,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B;EACF,KAAK;AACH,UAAO,YAAY,IAAI,IAAI;AAC3B;EACF,KAAK;AACH,UAAO,YAAY,IAAI,QAAQ;AAC/B;EACF,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,SAAS;AAChC,UAAO,YAAY,IAAI,SAAS;AAChC;EACF,QACE,aAAY,IAAI"}
1
+ {"version":3,"file":"traverse.js","names":[],"sources":["../../src/cfg_render/traverse.ts"],"sourcesContent":["import type { Cfg } from \"@platforma-sdk/model\";\nimport { assertNever } from \"@milaboratories/ts-helpers\";\n\nexport function* traverseCfg(cfg: Cfg, guide?: (cfg: Cfg) => boolean): Generator<Cfg> {\n yield cfg;\n if (guide !== undefined && !guide(cfg)) return;\n switch (cfg.type) {\n case \"GetFromCtx\":\n case \"Immediate\":\n return;\n case \"Isolate\":\n yield* traverseCfg(cfg.cfg);\n return;\n case \"MakeObject\":\n for (const [, child] of Object.entries(cfg.template)) yield* traverseCfg(child);\n return;\n case \"MakeArray\":\n for (const child of cfg.template) yield* traverseCfg(child);\n return;\n case \"GetJsonField\":\n case \"GetResourceField\":\n yield* traverseCfg(cfg.source);\n yield* traverseCfg(cfg.field);\n return;\n case \"MapRecordValues\":\n case \"MapArrayValues\":\n case \"MapResourceFields\":\n yield* traverseCfg(cfg.source);\n yield* traverseCfg(cfg.mapping);\n return;\n case \"Flatten\":\n case \"GetResourceValueAsJson\":\n case \"GetBlobContent\":\n case \"ExtractArchiveAndGetURL\":\n case \"GetBlobContentAsString\":\n case \"GetBlobContentAsJson\":\n case \"GetDownloadedBlobContent\":\n case \"GetOnDemandBlobContent\":\n case \"GetImportProgress\":\n case \"GetLastLogs\":\n case \"GetProgressLog\":\n case \"GetProgressLogWithInfo\":\n case \"GetLogHandle\":\n yield* traverseCfg(cfg.source);\n return;\n case \"IsEmpty\":\n yield* traverseCfg(cfg.arg);\n return;\n case \"Not\":\n yield* traverseCfg(cfg.operand);\n return;\n case \"And\":\n case \"Or\":\n yield* traverseCfg(cfg.operand1);\n yield* traverseCfg(cfg.operand2);\n return;\n default:\n assertNever(cfg);\n }\n}\n"],"mappings":";;AAGA,UAAiB,YAAY,KAAU,OAA+C;AACpF,OAAM;AACN,KAAI,UAAU,KAAA,KAAa,CAAC,MAAM,IAAI,CAAE;AACxC,SAAQ,IAAI,MAAZ;EACE,KAAK;EACL,KAAK,YACH;EACF,KAAK;AACH,UAAO,YAAY,IAAI,IAAI;AAC3B;EACF,KAAK;AACH,QAAK,MAAM,GAAG,UAAU,OAAO,QAAQ,IAAI,SAAS,CAAE,QAAO,YAAY,MAAM;AAC/E;EACF,KAAK;AACH,QAAK,MAAM,SAAS,IAAI,SAAU,QAAO,YAAY,MAAM;AAC3D;EACF,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B,UAAO,YAAY,IAAI,MAAM;AAC7B;EACF,KAAK;EACL,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B,UAAO,YAAY,IAAI,QAAQ;AAC/B;EACF,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,OAAO;AAC9B;EACF,KAAK;AACH,UAAO,YAAY,IAAI,IAAI;AAC3B;EACF,KAAK;AACH,UAAO,YAAY,IAAI,QAAQ;AAC/B;EACF,KAAK;EACL,KAAK;AACH,UAAO,YAAY,IAAI,SAAS;AAChC,UAAO,YAAY,IAAI,SAAS;AAChC;EACF,QACE,aAAY,IAAI"}
@@ -1,5 +1,4 @@
1
- const require_traverse = require('./traverse.cjs');
2
-
1
+ const require_traverse = require("./traverse.cjs");
3
2
  //#region src/cfg_render/util.ts
4
3
  function mapRecord(obj, mapper) {
5
4
  const result = {};
@@ -19,9 +18,9 @@ function hasActiveCfgComponents(cfg) {
19
18
  for (const nested of require_traverse.traverseCfg(cfg)) if (isActiveCfg(nested)) return true;
20
19
  return false;
21
20
  }
22
-
23
21
  //#endregion
24
22
  exports.hasActiveCfgComponents = hasActiveCfgComponents;
25
23
  exports.ifNotUndef = ifNotUndef;
26
24
  exports.mapRecord = mapRecord;
25
+
27
26
  //# sourceMappingURL=util.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs","names":["traverseCfg"],"sources":["../../src/cfg_render/util.ts"],"sourcesContent":["import type { Cfg } from \"@platforma-sdk/model\";\nimport { traverseCfg } from \"./traverse\";\n\nexport function mapRecord<T1, T2, Key extends string>(\n obj: Record<Key, T1>,\n mapper: (value: T1) => T2,\n): Record<Key, T2> {\n const result = {} as Record<Key, T2>;\n for (const [key, value] of Object.entries(obj)) result[key as Key] = mapper(value as T1);\n return result;\n}\n\nexport function ifNotUndef<T, R>(value: T | undefined, cb: (value: T) => R): R | undefined {\n return value === undefined ? undefined : cb(value);\n}\n\nfunction isActiveCfg(cfg: Cfg): boolean {\n switch (cfg.type) {\n case \"GetImportProgress\":\n return true;\n default:\n return false;\n }\n}\n\nexport function hasActiveCfgComponents(cfg: Cfg): boolean {\n for (const nested of traverseCfg(cfg)) if (isActiveCfg(nested)) return true;\n return false;\n}\n"],"mappings":";;;AAGA,SAAgB,UACd,KACA,QACiB;CACjB,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,CAAE,QAAO,OAAc,OAAO,MAAY;AACxF,QAAO;;AAGT,SAAgB,WAAiB,OAAsB,IAAoC;AACzF,QAAO,UAAU,SAAY,SAAY,GAAG,MAAM;;AAGpD,SAAS,YAAY,KAAmB;AACtC,SAAQ,IAAI,MAAZ;EACE,KAAK,oBACH,QAAO;EACT,QACE,QAAO;;;AAIb,SAAgB,uBAAuB,KAAmB;AACxD,MAAK,MAAM,UAAUA,6BAAY,IAAI,CAAE,KAAI,YAAY,OAAO,CAAE,QAAO;AACvE,QAAO"}
1
+ {"version":3,"file":"util.cjs","names":["traverseCfg"],"sources":["../../src/cfg_render/util.ts"],"sourcesContent":["import type { Cfg } from \"@platforma-sdk/model\";\nimport { traverseCfg } from \"./traverse\";\n\nexport function mapRecord<T1, T2, Key extends string>(\n obj: Record<Key, T1>,\n mapper: (value: T1) => T2,\n): Record<Key, T2> {\n const result = {} as Record<Key, T2>;\n for (const [key, value] of Object.entries(obj)) result[key as Key] = mapper(value as T1);\n return result;\n}\n\nexport function ifNotUndef<T, R>(value: T | undefined, cb: (value: T) => R): R | undefined {\n return value === undefined ? undefined : cb(value);\n}\n\nfunction isActiveCfg(cfg: Cfg): boolean {\n switch (cfg.type) {\n case \"GetImportProgress\":\n return true;\n default:\n return false;\n }\n}\n\nexport function hasActiveCfgComponents(cfg: Cfg): boolean {\n for (const nested of traverseCfg(cfg)) if (isActiveCfg(nested)) return true;\n return false;\n}\n"],"mappings":";;AAGA,SAAgB,UACd,KACA,QACiB;CACjB,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,CAAE,QAAO,OAAc,OAAO,MAAY;AACxF,QAAO;;AAGT,SAAgB,WAAiB,OAAsB,IAAoC;AACzF,QAAO,UAAU,KAAA,IAAY,KAAA,IAAY,GAAG,MAAM;;AAGpD,SAAS,YAAY,KAAmB;AACtC,SAAQ,IAAI,MAAZ;EACE,KAAK,oBACH,QAAO;EACT,QACE,QAAO;;;AAIb,SAAgB,uBAAuB,KAAmB;AACxD,MAAK,MAAM,UAAUA,iBAAAA,YAAY,IAAI,CAAE,KAAI,YAAY,OAAO,CAAE,QAAO;AACvE,QAAO"}
@@ -1,5 +1,4 @@
1
1
  import { traverseCfg } from "./traverse.js";
2
-
3
2
  //#region src/cfg_render/util.ts
4
3
  function mapRecord(obj, mapper) {
5
4
  const result = {};
@@ -19,7 +18,7 @@ function hasActiveCfgComponents(cfg) {
19
18
  for (const nested of traverseCfg(cfg)) if (isActiveCfg(nested)) return true;
20
19
  return false;
21
20
  }
22
-
23
21
  //#endregion
24
22
  export { hasActiveCfgComponents, ifNotUndef, mapRecord };
23
+
25
24
  //# sourceMappingURL=util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","names":[],"sources":["../../src/cfg_render/util.ts"],"sourcesContent":["import type { Cfg } from \"@platforma-sdk/model\";\nimport { traverseCfg } from \"./traverse\";\n\nexport function mapRecord<T1, T2, Key extends string>(\n obj: Record<Key, T1>,\n mapper: (value: T1) => T2,\n): Record<Key, T2> {\n const result = {} as Record<Key, T2>;\n for (const [key, value] of Object.entries(obj)) result[key as Key] = mapper(value as T1);\n return result;\n}\n\nexport function ifNotUndef<T, R>(value: T | undefined, cb: (value: T) => R): R | undefined {\n return value === undefined ? undefined : cb(value);\n}\n\nfunction isActiveCfg(cfg: Cfg): boolean {\n switch (cfg.type) {\n case \"GetImportProgress\":\n return true;\n default:\n return false;\n }\n}\n\nexport function hasActiveCfgComponents(cfg: Cfg): boolean {\n for (const nested of traverseCfg(cfg)) if (isActiveCfg(nested)) return true;\n return false;\n}\n"],"mappings":";;;AAGA,SAAgB,UACd,KACA,QACiB;CACjB,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,CAAE,QAAO,OAAc,OAAO,MAAY;AACxF,QAAO;;AAGT,SAAgB,WAAiB,OAAsB,IAAoC;AACzF,QAAO,UAAU,SAAY,SAAY,GAAG,MAAM;;AAGpD,SAAS,YAAY,KAAmB;AACtC,SAAQ,IAAI,MAAZ;EACE,KAAK,oBACH,QAAO;EACT,QACE,QAAO;;;AAIb,SAAgB,uBAAuB,KAAmB;AACxD,MAAK,MAAM,UAAU,YAAY,IAAI,CAAE,KAAI,YAAY,OAAO,CAAE,QAAO;AACvE,QAAO"}
1
+ {"version":3,"file":"util.js","names":[],"sources":["../../src/cfg_render/util.ts"],"sourcesContent":["import type { Cfg } from \"@platforma-sdk/model\";\nimport { traverseCfg } from \"./traverse\";\n\nexport function mapRecord<T1, T2, Key extends string>(\n obj: Record<Key, T1>,\n mapper: (value: T1) => T2,\n): Record<Key, T2> {\n const result = {} as Record<Key, T2>;\n for (const [key, value] of Object.entries(obj)) result[key as Key] = mapper(value as T1);\n return result;\n}\n\nexport function ifNotUndef<T, R>(value: T | undefined, cb: (value: T) => R): R | undefined {\n return value === undefined ? undefined : cb(value);\n}\n\nfunction isActiveCfg(cfg: Cfg): boolean {\n switch (cfg.type) {\n case \"GetImportProgress\":\n return true;\n default:\n return false;\n }\n}\n\nexport function hasActiveCfgComponents(cfg: Cfg): boolean {\n for (const nested of traverseCfg(cfg)) if (isActiveCfg(nested)) return true;\n return false;\n}\n"],"mappings":";;AAGA,SAAgB,UACd,KACA,QACiB;CACjB,MAAM,SAAS,EAAE;AACjB,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,IAAI,CAAE,QAAO,OAAc,OAAO,MAAY;AACxF,QAAO;;AAGT,SAAgB,WAAiB,OAAsB,IAAoC;AACzF,QAAO,UAAU,KAAA,IAAY,KAAA,IAAY,GAAG,MAAM;;AAGpD,SAAS,YAAY,KAAmB;AACtC,SAAQ,IAAI,MAAZ;EACE,KAAK,oBACH,QAAO;EACT,QACE,QAAO;;;AAIb,SAAgB,uBAAuB,KAAmB;AACxD,MAAK,MAAM,UAAU,YAAY,IAAI,CAAE,KAAI,YAAY,OAAO,CAAE,QAAO;AACvE,QAAO"}
@@ -1,4 +1,3 @@
1
-
2
1
  //#region src/debug/index.ts
3
2
  let flags = void 0;
4
3
  function getDebugFlags() {
@@ -15,7 +14,7 @@ function getDebugFlags() {
15
14
  if (process.env.MI_LOG_TREE_STAT) flags.logTreeStats = process.env.MI_LOG_TREE_STAT === "cumulative" ? "cumulative" : "per-request";
16
15
  return flags;
17
16
  }
18
-
19
17
  //#endregion
20
18
  exports.getDebugFlags = getDebugFlags;
19
+
21
20
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":[],"sources":["../../src/debug/index.ts"],"sourcesContent":["export type MlDebugFlags = {\n logTreeStats?: \"cumulative\" | \"per-request\";\n logProjectMutationStat: boolean;\n logTemplateCacheStat: boolean;\n dumpInitialTreeState: boolean;\n logOutputStatus?: \"any\" | \"unstable-only\";\n logOutputRecalculations?: boolean;\n logProjectOverviewStat: boolean;\n logJsExecStat: boolean;\n};\n\nlet flags: MlDebugFlags | undefined = undefined;\nexport function getDebugFlags() {\n if (flags) return flags;\n flags = {\n dumpInitialTreeState: process.env.MI_DUMP_INITIAL_TREE_STATE !== undefined,\n logProjectMutationStat: process.env.MI_LOG_PROJECT_MUTATION_STAT !== undefined,\n logTemplateCacheStat: process.env.MI_LOG_TEMPLATE_CACHE_STAT !== undefined,\n logOutputRecalculations: process.env.MI_LOG_OUTPUT_RECALCULATIONS !== undefined,\n logProjectOverviewStat: process.env.MI_LOG_PROJECT_OVERVIEW_STAT !== undefined,\n logJsExecStat: process.env.MI_LOG_JS_EXEC_STAT !== undefined,\n };\n if (process.env.MI_LOG_OUTPUT_STATUS)\n flags.logOutputStatus =\n process.env.MI_LOG_OUTPUT_STATUS === \"unstable-only\" ? \"unstable-only\" : \"any\";\n if (process.env.MI_LOG_TREE_STAT)\n flags.logTreeStats =\n process.env.MI_LOG_TREE_STAT === \"cumulative\" ? \"cumulative\" : \"per-request\";\n return flags;\n}\n"],"mappings":";;AAWA,IAAI,QAAkC;AACtC,SAAgB,gBAAgB;AAC9B,KAAI,MAAO,QAAO;AAClB,SAAQ;EACN,sBAAsB,QAAQ,IAAI,+BAA+B;EACjE,wBAAwB,QAAQ,IAAI,iCAAiC;EACrE,sBAAsB,QAAQ,IAAI,+BAA+B;EACjE,yBAAyB,QAAQ,IAAI,iCAAiC;EACtE,wBAAwB,QAAQ,IAAI,iCAAiC;EACrE,eAAe,QAAQ,IAAI,wBAAwB;EACpD;AACD,KAAI,QAAQ,IAAI,qBACd,OAAM,kBACJ,QAAQ,IAAI,yBAAyB,kBAAkB,kBAAkB;AAC7E,KAAI,QAAQ,IAAI,iBACd,OAAM,eACJ,QAAQ,IAAI,qBAAqB,eAAe,eAAe;AACnE,QAAO"}
1
+ {"version":3,"file":"index.cjs","names":[],"sources":["../../src/debug/index.ts"],"sourcesContent":["export type MlDebugFlags = {\n logTreeStats?: \"cumulative\" | \"per-request\";\n logProjectMutationStat: boolean;\n logTemplateCacheStat: boolean;\n dumpInitialTreeState: boolean;\n logOutputStatus?: \"any\" | \"unstable-only\";\n logOutputRecalculations?: boolean;\n logProjectOverviewStat: boolean;\n logJsExecStat: boolean;\n};\n\nlet flags: MlDebugFlags | undefined = undefined;\nexport function getDebugFlags() {\n if (flags) return flags;\n flags = {\n dumpInitialTreeState: process.env.MI_DUMP_INITIAL_TREE_STATE !== undefined,\n logProjectMutationStat: process.env.MI_LOG_PROJECT_MUTATION_STAT !== undefined,\n logTemplateCacheStat: process.env.MI_LOG_TEMPLATE_CACHE_STAT !== undefined,\n logOutputRecalculations: process.env.MI_LOG_OUTPUT_RECALCULATIONS !== undefined,\n logProjectOverviewStat: process.env.MI_LOG_PROJECT_OVERVIEW_STAT !== undefined,\n logJsExecStat: process.env.MI_LOG_JS_EXEC_STAT !== undefined,\n };\n if (process.env.MI_LOG_OUTPUT_STATUS)\n flags.logOutputStatus =\n process.env.MI_LOG_OUTPUT_STATUS === \"unstable-only\" ? \"unstable-only\" : \"any\";\n if (process.env.MI_LOG_TREE_STAT)\n flags.logTreeStats =\n process.env.MI_LOG_TREE_STAT === \"cumulative\" ? \"cumulative\" : \"per-request\";\n return flags;\n}\n"],"mappings":";AAWA,IAAI,QAAkC,KAAA;AACtC,SAAgB,gBAAgB;AAC9B,KAAI,MAAO,QAAO;AAClB,SAAQ;EACN,sBAAsB,QAAQ,IAAI,+BAA+B,KAAA;EACjE,wBAAwB,QAAQ,IAAI,iCAAiC,KAAA;EACrE,sBAAsB,QAAQ,IAAI,+BAA+B,KAAA;EACjE,yBAAyB,QAAQ,IAAI,iCAAiC,KAAA;EACtE,wBAAwB,QAAQ,IAAI,iCAAiC,KAAA;EACrE,eAAe,QAAQ,IAAI,wBAAwB,KAAA;EACpD;AACD,KAAI,QAAQ,IAAI,qBACd,OAAM,kBACJ,QAAQ,IAAI,yBAAyB,kBAAkB,kBAAkB;AAC7E,KAAI,QAAQ,IAAI,iBACd,OAAM,eACJ,QAAQ,IAAI,qBAAqB,eAAe,eAAe;AACnE,QAAO"}
@@ -14,7 +14,7 @@ function getDebugFlags() {
14
14
  if (process.env.MI_LOG_TREE_STAT) flags.logTreeStats = process.env.MI_LOG_TREE_STAT === "cumulative" ? "cumulative" : "per-request";
15
15
  return flags;
16
16
  }
17
-
18
17
  //#endregion
19
18
  export { getDebugFlags };
19
+
20
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../src/debug/index.ts"],"sourcesContent":["export type MlDebugFlags = {\n logTreeStats?: \"cumulative\" | \"per-request\";\n logProjectMutationStat: boolean;\n logTemplateCacheStat: boolean;\n dumpInitialTreeState: boolean;\n logOutputStatus?: \"any\" | \"unstable-only\";\n logOutputRecalculations?: boolean;\n logProjectOverviewStat: boolean;\n logJsExecStat: boolean;\n};\n\nlet flags: MlDebugFlags | undefined = undefined;\nexport function getDebugFlags() {\n if (flags) return flags;\n flags = {\n dumpInitialTreeState: process.env.MI_DUMP_INITIAL_TREE_STATE !== undefined,\n logProjectMutationStat: process.env.MI_LOG_PROJECT_MUTATION_STAT !== undefined,\n logTemplateCacheStat: process.env.MI_LOG_TEMPLATE_CACHE_STAT !== undefined,\n logOutputRecalculations: process.env.MI_LOG_OUTPUT_RECALCULATIONS !== undefined,\n logProjectOverviewStat: process.env.MI_LOG_PROJECT_OVERVIEW_STAT !== undefined,\n logJsExecStat: process.env.MI_LOG_JS_EXEC_STAT !== undefined,\n };\n if (process.env.MI_LOG_OUTPUT_STATUS)\n flags.logOutputStatus =\n process.env.MI_LOG_OUTPUT_STATUS === \"unstable-only\" ? \"unstable-only\" : \"any\";\n if (process.env.MI_LOG_TREE_STAT)\n flags.logTreeStats =\n process.env.MI_LOG_TREE_STAT === \"cumulative\" ? \"cumulative\" : \"per-request\";\n return flags;\n}\n"],"mappings":";AAWA,IAAI,QAAkC;AACtC,SAAgB,gBAAgB;AAC9B,KAAI,MAAO,QAAO;AAClB,SAAQ;EACN,sBAAsB,QAAQ,IAAI,+BAA+B;EACjE,wBAAwB,QAAQ,IAAI,iCAAiC;EACrE,sBAAsB,QAAQ,IAAI,+BAA+B;EACjE,yBAAyB,QAAQ,IAAI,iCAAiC;EACtE,wBAAwB,QAAQ,IAAI,iCAAiC;EACrE,eAAe,QAAQ,IAAI,wBAAwB;EACpD;AACD,KAAI,QAAQ,IAAI,qBACd,OAAM,kBACJ,QAAQ,IAAI,yBAAyB,kBAAkB,kBAAkB;AAC7E,KAAI,QAAQ,IAAI,iBACd,OAAM,eACJ,QAAQ,IAAI,qBAAqB,eAAe,eAAe;AACnE,QAAO"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../src/debug/index.ts"],"sourcesContent":["export type MlDebugFlags = {\n logTreeStats?: \"cumulative\" | \"per-request\";\n logProjectMutationStat: boolean;\n logTemplateCacheStat: boolean;\n dumpInitialTreeState: boolean;\n logOutputStatus?: \"any\" | \"unstable-only\";\n logOutputRecalculations?: boolean;\n logProjectOverviewStat: boolean;\n logJsExecStat: boolean;\n};\n\nlet flags: MlDebugFlags | undefined = undefined;\nexport function getDebugFlags() {\n if (flags) return flags;\n flags = {\n dumpInitialTreeState: process.env.MI_DUMP_INITIAL_TREE_STATE !== undefined,\n logProjectMutationStat: process.env.MI_LOG_PROJECT_MUTATION_STAT !== undefined,\n logTemplateCacheStat: process.env.MI_LOG_TEMPLATE_CACHE_STAT !== undefined,\n logOutputRecalculations: process.env.MI_LOG_OUTPUT_RECALCULATIONS !== undefined,\n logProjectOverviewStat: process.env.MI_LOG_PROJECT_OVERVIEW_STAT !== undefined,\n logJsExecStat: process.env.MI_LOG_JS_EXEC_STAT !== undefined,\n };\n if (process.env.MI_LOG_OUTPUT_STATUS)\n flags.logOutputStatus =\n process.env.MI_LOG_OUTPUT_STATUS === \"unstable-only\" ? \"unstable-only\" : \"any\";\n if (process.env.MI_LOG_TREE_STAT)\n flags.logTreeStats =\n process.env.MI_LOG_TREE_STAT === \"cumulative\" ? \"cumulative\" : \"per-request\";\n return flags;\n}\n"],"mappings":";AAWA,IAAI,QAAkC,KAAA;AACtC,SAAgB,gBAAgB;AAC9B,KAAI,MAAO,QAAO;AAClB,SAAQ;EACN,sBAAsB,QAAQ,IAAI,+BAA+B,KAAA;EACjE,wBAAwB,QAAQ,IAAI,iCAAiC,KAAA;EACrE,sBAAsB,QAAQ,IAAI,+BAA+B,KAAA;EACjE,yBAAyB,QAAQ,IAAI,iCAAiC,KAAA;EACtE,wBAAwB,QAAQ,IAAI,iCAAiC,KAAA;EACrE,eAAe,QAAQ,IAAI,wBAAwB,KAAA;EACpD;AACD,KAAI,QAAQ,IAAI,qBACd,OAAM,kBACJ,QAAQ,IAAI,yBAAyB,kBAAkB,kBAAkB;AAC7E,KAAI,QAAQ,IAAI,iBACd,OAAM,eACJ,QAAQ,IAAI,qBAAqB,eAAe,eAAe;AACnE,QAAO"}
@@ -1,10 +1,9 @@
1
- const require_runtime = require('../_virtual/_rolldown/runtime.cjs');
2
- const require_util = require('./util.cjs');
1
+ const require_runtime = require("../_virtual/_rolldown/runtime.cjs");
2
+ const require_util = require("./util.cjs");
3
3
  let _platforma_sdk_block_tools = require("@platforma-sdk/block-tools");
4
4
  let node_path = require("node:path");
5
5
  node_path = require_runtime.__toESM(node_path);
6
6
  let _milaboratories_resolve_helper = require("@milaboratories/resolve-helper");
7
-
8
7
  //#region src/dev_env/index.ts
9
8
  const LegacyDevBlockPackMetaYaml = [_platforma_sdk_block_tools.RegistryV1.PlPackageYamlConfigFile];
10
9
  const LegacyDevBlockPackMetaJson = [_platforma_sdk_block_tools.RegistryV1.PlPackageJsonConfigFile];
@@ -68,8 +67,8 @@ async function resolveDevPacket(packageRoot, ignoreErrors) {
68
67
  };
69
68
  }
70
69
  }
71
-
72
70
  //#endregion
73
71
  exports.LegacyDevBlockPackFiles = LegacyDevBlockPackFiles;
74
72
  exports.resolveDevPacket = resolveDevPacket;
73
+
75
74
  //# sourceMappingURL=index.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","names":["RegistryV1","tryStat","path"],"sources":["../../src/dev_env/index.ts"],"sourcesContent":["import { RegistryV1 } from \"@platforma-sdk/block-tools\";\nimport path from \"node:path\";\nimport { tryStat } from \"./util\";\nimport { tryResolve } from \"@milaboratories/resolve-helper\";\n\nexport const LegacyDevBlockPackMetaYaml = [RegistryV1.PlPackageYamlConfigFile];\nexport const LegacyDevBlockPackMetaJson = [RegistryV1.PlPackageJsonConfigFile];\nexport const LegacyDevBlockPackTemplate = [\"backend\", \"dist\", \"tengo\", \"tpl\", \"main.plj.gz\"];\nexport const LegacyDevBlockPackConfig = [\"config\", \"dist\", \"config.json\"];\nexport const LegacyDevBlockPackFrontendFolder = [\"frontend\", \"dist\"];\n\nexport const CanonicalBlockWorkflowRequest = \"block-workflow/dist/tengo/tpl/main.plj.gz\";\nexport const CanonicalBlockConfigRequest = \"block-model/dist/config.json\";\nexport const CanonicalBlockUiRequestPackageJson = \"block-ui/package.json\";\n\nexport const LegacyDevBlockPackFiles = [\n LegacyDevBlockPackTemplate,\n LegacyDevBlockPackConfig,\n LegacyDevBlockPackMetaYaml,\n LegacyDevBlockPackMetaJson,\n LegacyDevBlockPackFrontendFolder,\n];\n\nexport type DevPacketPaths = {\n /** main.plj.gz */\n readonly workflow: string;\n /** config.json */\n readonly config: string;\n /** ui dist folder */\n readonly ui: string;\n};\n\nexport async function isLegacyDevPackage(packageRoot: string): Promise<boolean> {\n return (\n (await tryStat(path.join(packageRoot, ...LegacyDevBlockPackConfig))) !== undefined ||\n (await tryStat(path.join(packageRoot, ...LegacyDevBlockPackTemplate))) !== undefined\n );\n}\n\nfunction mustResolve(root: string, request: string): string {\n const res = tryResolve(root, request);\n if (res === undefined) throw new Error(`Can't resolve ${request} against ${root}`);\n return res;\n}\n\nexport async function resolveDevPacket(\n packageRoot: string,\n ignoreErrors: true,\n): Promise<DevPacketPaths | undefined>;\nexport async function resolveDevPacket(\n packageRoot: string,\n ignoreErrors: false,\n): Promise<DevPacketPaths>;\nexport async function resolveDevPacket(\n packageRoot: string,\n ignoreErrors: boolean,\n): Promise<DevPacketPaths | undefined> {\n if (!path.isAbsolute(packageRoot)) packageRoot = path.resolve(packageRoot);\n if (await isLegacyDevPackage(packageRoot))\n return {\n workflow: path.join(packageRoot, ...LegacyDevBlockPackTemplate),\n config: path.join(packageRoot, ...LegacyDevBlockPackConfig),\n ui: path.join(packageRoot, ...LegacyDevBlockPackFrontendFolder),\n };\n if (ignoreErrors) {\n const workflow = tryResolve(packageRoot, CanonicalBlockConfigRequest);\n if (workflow === undefined) return undefined;\n const config = tryResolve(packageRoot, CanonicalBlockConfigRequest);\n if (config === undefined) return undefined;\n const uiPackageJson = tryResolve(packageRoot, CanonicalBlockUiRequestPackageJson);\n if (uiPackageJson === undefined) return undefined;\n return { workflow, config, ui: path.resolve(uiPackageJson, \"..\", \"dist\") };\n } else {\n const workflow = mustResolve(packageRoot, CanonicalBlockConfigRequest);\n const config = mustResolve(packageRoot, CanonicalBlockConfigRequest);\n const uiPackageJson = mustResolve(packageRoot, CanonicalBlockUiRequestPackageJson);\n return { workflow, config, ui: path.resolve(uiPackageJson, \"..\", \"dist\") };\n }\n}\n"],"mappings":";;;;;;;;AAKA,MAAa,6BAA6B,CAACA,sCAAW,wBAAwB;AAC9E,MAAa,6BAA6B,CAACA,sCAAW,wBAAwB;AAC9E,MAAa,6BAA6B;CAAC;CAAW;CAAQ;CAAS;CAAO;CAAc;AAC5F,MAAa,2BAA2B;CAAC;CAAU;CAAQ;CAAc;AACzE,MAAa,mCAAmC,CAAC,YAAY,OAAO;AAGpE,MAAa,8BAA8B;AAC3C,MAAa,qCAAqC;AAElD,MAAa,0BAA0B;CACrC;CACA;CACA;CACA;CACA;CACD;AAWD,eAAsB,mBAAmB,aAAuC;AAC9E,QACG,MAAMC,qBAAQC,kBAAK,KAAK,aAAa,GAAG,yBAAyB,CAAC,KAAM,UACxE,MAAMD,qBAAQC,kBAAK,KAAK,aAAa,GAAG,2BAA2B,CAAC,KAAM;;AAI/E,SAAS,YAAY,MAAc,SAAyB;CAC1D,MAAM,qDAAiB,MAAM,QAAQ;AACrC,KAAI,QAAQ,OAAW,OAAM,IAAI,MAAM,iBAAiB,QAAQ,WAAW,OAAO;AAClF,QAAO;;AAWT,eAAsB,iBACpB,aACA,cACqC;AACrC,KAAI,CAACA,kBAAK,WAAW,YAAY,CAAE,eAAcA,kBAAK,QAAQ,YAAY;AAC1E,KAAI,MAAM,mBAAmB,YAAY,CACvC,QAAO;EACL,UAAUA,kBAAK,KAAK,aAAa,GAAG,2BAA2B;EAC/D,QAAQA,kBAAK,KAAK,aAAa,GAAG,yBAAyB;EAC3D,IAAIA,kBAAK,KAAK,aAAa,GAAG,iCAAiC;EAChE;AACH,KAAI,cAAc;EAChB,MAAM,0DAAsB,aAAa,4BAA4B;AACrE,MAAI,aAAa,OAAW,QAAO;EACnC,MAAM,wDAAoB,aAAa,4BAA4B;AACnE,MAAI,WAAW,OAAW,QAAO;EACjC,MAAM,+DAA2B,aAAa,mCAAmC;AACjF,MAAI,kBAAkB,OAAW,QAAO;AACxC,SAAO;GAAE;GAAU;GAAQ,IAAIA,kBAAK,QAAQ,eAAe,MAAM,OAAO;GAAE;QACrE;EACL,MAAM,WAAW,YAAY,aAAa,4BAA4B;EACtE,MAAM,SAAS,YAAY,aAAa,4BAA4B;EACpE,MAAM,gBAAgB,YAAY,aAAa,mCAAmC;AAClF,SAAO;GAAE;GAAU;GAAQ,IAAIA,kBAAK,QAAQ,eAAe,MAAM,OAAO;GAAE"}
1
+ {"version":3,"file":"index.cjs","names":["RegistryV1","tryStat","path"],"sources":["../../src/dev_env/index.ts"],"sourcesContent":["import { RegistryV1 } from \"@platforma-sdk/block-tools\";\nimport path from \"node:path\";\nimport { tryStat } from \"./util\";\nimport { tryResolve } from \"@milaboratories/resolve-helper\";\n\nexport const LegacyDevBlockPackMetaYaml = [RegistryV1.PlPackageYamlConfigFile];\nexport const LegacyDevBlockPackMetaJson = [RegistryV1.PlPackageJsonConfigFile];\nexport const LegacyDevBlockPackTemplate = [\"backend\", \"dist\", \"tengo\", \"tpl\", \"main.plj.gz\"];\nexport const LegacyDevBlockPackConfig = [\"config\", \"dist\", \"config.json\"];\nexport const LegacyDevBlockPackFrontendFolder = [\"frontend\", \"dist\"];\n\nexport const CanonicalBlockWorkflowRequest = \"block-workflow/dist/tengo/tpl/main.plj.gz\";\nexport const CanonicalBlockConfigRequest = \"block-model/dist/config.json\";\nexport const CanonicalBlockUiRequestPackageJson = \"block-ui/package.json\";\n\nexport const LegacyDevBlockPackFiles = [\n LegacyDevBlockPackTemplate,\n LegacyDevBlockPackConfig,\n LegacyDevBlockPackMetaYaml,\n LegacyDevBlockPackMetaJson,\n LegacyDevBlockPackFrontendFolder,\n];\n\nexport type DevPacketPaths = {\n /** main.plj.gz */\n readonly workflow: string;\n /** config.json */\n readonly config: string;\n /** ui dist folder */\n readonly ui: string;\n};\n\nexport async function isLegacyDevPackage(packageRoot: string): Promise<boolean> {\n return (\n (await tryStat(path.join(packageRoot, ...LegacyDevBlockPackConfig))) !== undefined ||\n (await tryStat(path.join(packageRoot, ...LegacyDevBlockPackTemplate))) !== undefined\n );\n}\n\nfunction mustResolve(root: string, request: string): string {\n const res = tryResolve(root, request);\n if (res === undefined) throw new Error(`Can't resolve ${request} against ${root}`);\n return res;\n}\n\nexport async function resolveDevPacket(\n packageRoot: string,\n ignoreErrors: true,\n): Promise<DevPacketPaths | undefined>;\nexport async function resolveDevPacket(\n packageRoot: string,\n ignoreErrors: false,\n): Promise<DevPacketPaths>;\nexport async function resolveDevPacket(\n packageRoot: string,\n ignoreErrors: boolean,\n): Promise<DevPacketPaths | undefined> {\n if (!path.isAbsolute(packageRoot)) packageRoot = path.resolve(packageRoot);\n if (await isLegacyDevPackage(packageRoot))\n return {\n workflow: path.join(packageRoot, ...LegacyDevBlockPackTemplate),\n config: path.join(packageRoot, ...LegacyDevBlockPackConfig),\n ui: path.join(packageRoot, ...LegacyDevBlockPackFrontendFolder),\n };\n if (ignoreErrors) {\n const workflow = tryResolve(packageRoot, CanonicalBlockConfigRequest);\n if (workflow === undefined) return undefined;\n const config = tryResolve(packageRoot, CanonicalBlockConfigRequest);\n if (config === undefined) return undefined;\n const uiPackageJson = tryResolve(packageRoot, CanonicalBlockUiRequestPackageJson);\n if (uiPackageJson === undefined) return undefined;\n return { workflow, config, ui: path.resolve(uiPackageJson, \"..\", \"dist\") };\n } else {\n const workflow = mustResolve(packageRoot, CanonicalBlockConfigRequest);\n const config = mustResolve(packageRoot, CanonicalBlockConfigRequest);\n const uiPackageJson = mustResolve(packageRoot, CanonicalBlockUiRequestPackageJson);\n return { workflow, config, ui: path.resolve(uiPackageJson, \"..\", \"dist\") };\n }\n}\n"],"mappings":";;;;;;;AAKA,MAAa,6BAA6B,CAACA,2BAAAA,WAAW,wBAAwB;AAC9E,MAAa,6BAA6B,CAACA,2BAAAA,WAAW,wBAAwB;AAC9E,MAAa,6BAA6B;CAAC;CAAW;CAAQ;CAAS;CAAO;CAAc;AAC5F,MAAa,2BAA2B;CAAC;CAAU;CAAQ;CAAc;AACzE,MAAa,mCAAmC,CAAC,YAAY,OAAO;AAGpE,MAAa,8BAA8B;AAC3C,MAAa,qCAAqC;AAElD,MAAa,0BAA0B;CACrC;CACA;CACA;CACA;CACA;CACD;AAWD,eAAsB,mBAAmB,aAAuC;AAC9E,QACG,MAAMC,aAAAA,QAAQC,UAAAA,QAAK,KAAK,aAAa,GAAG,yBAAyB,CAAC,KAAM,KAAA,KACxE,MAAMD,aAAAA,QAAQC,UAAAA,QAAK,KAAK,aAAa,GAAG,2BAA2B,CAAC,KAAM,KAAA;;AAI/E,SAAS,YAAY,MAAc,SAAyB;CAC1D,MAAM,OAAA,GAAA,+BAAA,YAAiB,MAAM,QAAQ;AACrC,KAAI,QAAQ,KAAA,EAAW,OAAM,IAAI,MAAM,iBAAiB,QAAQ,WAAW,OAAO;AAClF,QAAO;;AAWT,eAAsB,iBACpB,aACA,cACqC;AACrC,KAAI,CAACA,UAAAA,QAAK,WAAW,YAAY,CAAE,eAAcA,UAAAA,QAAK,QAAQ,YAAY;AAC1E,KAAI,MAAM,mBAAmB,YAAY,CACvC,QAAO;EACL,UAAUA,UAAAA,QAAK,KAAK,aAAa,GAAG,2BAA2B;EAC/D,QAAQA,UAAAA,QAAK,KAAK,aAAa,GAAG,yBAAyB;EAC3D,IAAIA,UAAAA,QAAK,KAAK,aAAa,GAAG,iCAAiC;EAChE;AACH,KAAI,cAAc;EAChB,MAAM,YAAA,GAAA,+BAAA,YAAsB,aAAa,4BAA4B;AACrE,MAAI,aAAa,KAAA,EAAW,QAAO,KAAA;EACnC,MAAM,UAAA,GAAA,+BAAA,YAAoB,aAAa,4BAA4B;AACnE,MAAI,WAAW,KAAA,EAAW,QAAO,KAAA;EACjC,MAAM,iBAAA,GAAA,+BAAA,YAA2B,aAAa,mCAAmC;AACjF,MAAI,kBAAkB,KAAA,EAAW,QAAO,KAAA;AACxC,SAAO;GAAE;GAAU;GAAQ,IAAIA,UAAAA,QAAK,QAAQ,eAAe,MAAM,OAAO;GAAE;QACrE;EACL,MAAM,WAAW,YAAY,aAAa,4BAA4B;EACtE,MAAM,SAAS,YAAY,aAAa,4BAA4B;EACpE,MAAM,gBAAgB,YAAY,aAAa,mCAAmC;AAClF,SAAO;GAAE;GAAU;GAAQ,IAAIA,UAAAA,QAAK,QAAQ,eAAe,MAAM,OAAO;GAAE"}