@milaboratories/pl-middle-layer 1.37.100 → 1.38.1

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 (40) hide show
  1. package/dist/block_registry/registry.d.ts.map +1 -1
  2. package/dist/debug/index.d.ts +1 -0
  3. package/dist/debug/index.d.ts.map +1 -1
  4. package/dist/index.js +12 -12
  5. package/dist/index.js.map +1 -1
  6. package/dist/index.mjs +2035 -1974
  7. package/dist/index.mjs.map +1 -1
  8. package/dist/js_render/computable_context.d.ts +3 -2
  9. package/dist/js_render/computable_context.d.ts.map +1 -1
  10. package/dist/js_render/context.d.ts +2 -1
  11. package/dist/js_render/context.d.ts.map +1 -1
  12. package/dist/js_render/index.d.ts +3 -3
  13. package/dist/js_render/index.d.ts.map +1 -1
  14. package/dist/middle_layer/active_cfg.d.ts.map +1 -1
  15. package/dist/middle_layer/block.d.ts.map +1 -1
  16. package/dist/middle_layer/middle_layer.d.ts +4 -1
  17. package/dist/middle_layer/middle_layer.d.ts.map +1 -1
  18. package/dist/middle_layer/project_overview.d.ts.map +1 -1
  19. package/dist/middle_layer/render.d.ts +2 -2
  20. package/dist/middle_layer/render.d.ts.map +1 -1
  21. package/dist/middle_layer/render.test.d.ts.map +1 -1
  22. package/dist/model/project_helper.d.ts.map +1 -1
  23. package/dist/pool/driver.d.ts +5 -4
  24. package/dist/pool/driver.d.ts.map +1 -1
  25. package/package.json +13 -13
  26. package/src/block_registry/registry.ts +1 -0
  27. package/src/cfg_render/executor.test.ts +3 -3
  28. package/src/debug/index.ts +2 -0
  29. package/src/js_render/computable_context.ts +38 -16
  30. package/src/js_render/context.ts +4 -1
  31. package/src/js_render/index.ts +12 -4
  32. package/src/middle_layer/active_cfg.ts +2 -1
  33. package/src/middle_layer/block.ts +9 -2
  34. package/src/middle_layer/middle_layer.ts +14 -1
  35. package/src/middle_layer/navigation_states.ts +2 -2
  36. package/src/middle_layer/project_overview.ts +17 -6
  37. package/src/middle_layer/render.test.ts +2 -0
  38. package/src/middle_layer/render.ts +4 -4
  39. package/src/model/project_helper.ts +2 -2
  40. package/src/pool/driver.ts +116 -73
@@ -1,5 +1,5 @@
1
1
  import { ComputableCtx, Computable } from '@milaboratories/computable';
2
- import { JsRenderInternal, ArchiveFormat, CommonFieldTraverseOps as CommonFieldTraverseOpsFromSDK, DataInfo, FieldTraversalStep as FieldTraversalStepFromSDK, Option, PColumn, PColumnValues, PFrameDef, PFrameHandle, PObject, PObjectSpec, PSpecPredicate, PTableDef, PTableHandle, ResourceType as ResourceTypeFromSDK, ResultCollection, ValueOrError, RangeBytes } from '@platforma-sdk/model';
2
+ import { ArchiveFormat, CommonFieldTraverseOps as CommonFieldTraverseOpsFromSDK, DataInfo, FieldTraversalStep as FieldTraversalStepFromSDK, Option, PColumn, PColumnValues, PFrameDef, PFrameHandle, PObject, PObjectSpec, PSpecPredicate, PTableDef, PTableHandle, ResourceType as ResourceTypeFromSDK, ResultCollection, ValueOrError, RangeBytes, BlockCodeKnownFeatureFlags, JsRenderInternal } from '@platforma-sdk/model';
3
3
  import { Optional } from 'utility-types';
4
4
  import { BlockContextAny } from '../middle_layer/block_ctx';
5
5
  import { MiddleLayerEnvironment } from '../middle_layer/middle_layer';
@@ -9,11 +9,12 @@ export declare class ComputableContextHelper implements JsRenderInternal.GlobalC
9
9
  private readonly parent;
10
10
  private readonly blockCtx;
11
11
  private readonly env;
12
+ private readonly featureFlags;
12
13
  readonly computablesToResolve: Record<string, Computable<unknown>>;
13
14
  private computableCtx;
14
15
  private readonly accessors;
15
16
  private readonly meta;
16
- constructor(parent: JsExecutionContext, blockCtx: BlockContextAny, env: MiddleLayerEnvironment, computableCtx: ComputableCtx);
17
+ constructor(parent: JsExecutionContext, blockCtx: BlockContextAny, env: MiddleLayerEnvironment, featureFlags: BlockCodeKnownFeatureFlags | undefined, computableCtx: ComputableCtx);
17
18
  resetComputableCtx(): void;
18
19
  getAccessorHandleByName(name: string): string | undefined;
19
20
  resolveWithCommon(handle: string, commonOptions: CommonFieldTraverseOpsFromSDK, ...steps: (FieldTraversalStepFromSDK | string)[]): string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"computable_context.d.ts","sourceRoot":"","sources":["../../src/js_render/computable_context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"computable_context.d.ts","sourceRoot":"","sources":["../../src/js_render/computable_context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAKxD,OAAO,KAAK,EACV,aAAa,EACb,sBAAsB,IAAI,6BAA6B,EACvD,QAAQ,EACR,kBAAkB,IAAI,yBAAyB,EAC/C,MAAM,EACN,OAAO,EACP,aAAa,EACb,SAAS,EACT,YAAY,EACZ,OAAO,EACP,WAAW,EACX,cAAc,EACd,SAAS,EACT,YAAY,EACZ,YAAY,IAAI,mBAAmB,EACnC,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,0BAA0B,EAE1B,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAUjD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAI3E,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAEpD,OAAO,EAAS,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAM/D,qBAAa,uBACb,YAAW,gBAAgB,CAAC,yBAAyB,CAAC,MAAM,EAAE,MAAM,CAAC;IASjE,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAX/B,SAAgB,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAM;IAE/E,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqD;IAE/E,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;gBAGvB,MAAM,EAAE,kBAAkB,EAC1B,QAAQ,EAAE,eAAe,EACzB,GAAG,EAAE,sBAAsB,EAC3B,YAAY,EAAE,0BAA0B,GAAG,SAAS,EACrE,aAAa,EAAE,aAAa;IAMvB,kBAAkB;IASzB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAuBzD,iBAAiB,CACf,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,6BAA6B,EAC5C,GAAG,KAAK,EAAE,CAAC,yBAAyB,GAAG,MAAM,CAAC,EAAE,GAC/C,MAAM,GAAG,SAAS;IAIrB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,mBAAmB;IAIpD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIxC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAIzC,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI1C,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAInC,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI5C,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAIzC,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAI1C,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE;IAI3C,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIlE,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIpE,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAIjD,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAQnD,sBAAsB,CACpB,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,OAAO,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,YAAY,EAAE,MAAM,EAAE,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,SAAS;IAe9C,OAAO,CAAC,kBAAkB;IAMnB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM;IAelE,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,UAAU,GAAG,MAAM;IAelE,8BAA8B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAQtD,4BAA4B,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAYpD,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,GAAG,MAAM;IAY7E,iBAAiB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAYzC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM;IAQnD,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM;IAQ/D,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,MAAM;IAQvE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAY7B,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAU7C,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,KAAK,UAAU,GAYrB;IAEM,gBAAgB,CAAC,SAAS,EAAE,cAAc,GAAG,MAAM,EAAE;IAIrD,qBAAqB,IAAI,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAa1D,+BAA+B,IAAI,gBAAgB,CACxD,QAAQ,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CACrD;IAiBM,sBAAsB,IAAI,gBAAgB,CAAC,WAAW,CAAC;IAO9D,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAIxF,0BAA0B,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,SAAS;IAUrF,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,YAAY;IAWrF,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,MAAM,GAAG,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,YAAY;IAarG;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAcpB,wBAAwB,IAAI,MAAM,GAAG,SAAS;IAQ9C,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAQtC,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,YAAY;IAWb,SAAS,CAAC,SAAS,EAAE,aAAa,GAAG,IAAI;CAiVjD"}
@@ -1,4 +1,5 @@
1
1
  import { ComputableCtx } from '@milaboratories/computable';
2
+ import { BlockCodeKnownFeatureFlags } from '@platforma-sdk/model';
2
3
  import { QuickJSContext, QuickJSHandle, Scope } from 'quickjs-emscripten';
3
4
  import { BlockContextAny } from '../middle_layer/block_ctx';
4
5
  import { MiddleLayerEnvironment } from '../middle_layer/middle_layer';
@@ -33,7 +34,7 @@ export declare class JsExecutionContext {
33
34
  private readonly fnJSONParse;
34
35
  readonly errorRepo: ErrorRepository;
35
36
  readonly computableHelper: ComputableContextHelper | undefined;
36
- constructor(scope: Scope, vm: QuickJSContext, deadlineSetter: DeadlineSetter, computableEnv?: ComputableEnv);
37
+ constructor(scope: Scope, vm: QuickJSContext, deadlineSetter: DeadlineSetter, featureFlags: BlockCodeKnownFeatureFlags | undefined, computableEnv?: ComputableEnv);
37
38
  resetComputableCtx(): void;
38
39
  private static cleanErrorContext;
39
40
  evaluateBundle(code: string): void;
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/js_render/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAMhE,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,KAAK,EAAU,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;KAGK;AACL,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,KAAK,IAAI,CAAC;AAM9E;;;;;;KAMK;AACL,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,qBAAa,kBAAkB;aAUX,KAAK,EAAE,KAAK;aACZ,EAAE,EAAE,cAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAXjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAE5C,SAAgB,SAAS,kBAAyB;IAElD,SAAgB,gBAAgB,EAAE,uBAAuB,GAAG,SAAS,CAAC;gBAGpD,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,cAAc,EACjB,cAAc,EAAE,cAAc,EAC/C,aAAa,CAAC,EAAE,aAAa;IAqBxB,kBAAkB;IAIzB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAczB,cAAc,CAAC,IAAI,EAAE,MAAM;IAY3B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa;IAgC9D,iBAAiB,CACtB,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,SAAS,EAC/D,KAAK,EAAE,KAAK,GAAG,SAAS,GACvB,aAAa;IAQT,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS;IAiCvF,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,aAAa;IAM5E,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,aAAa;IAS1E,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO;IAcjE,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAU1D,OAAO,CAAC,SAAS;CA6BlB;AAED;;8GAE8G;AAC9G,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAE7D,oHAAoH;IAC7G,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG;QAC/C,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB;IAiBD,sFAAsF;IAC/E,WAAW,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO;CAwBnD"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/js_render/context.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,KAAK,EACV,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAM3D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,KAAK,EAAU,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAG3E,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;KAGK;AACL,MAAM,MAAM,cAAc,GAAG,CAAC,QAAQ,EAAE,gBAAgB,GAAG,SAAS,KAAK,IAAI,CAAC;AAM9E;;;;;;KAMK;AACL,MAAM,MAAM,aAAa,GAAG;IAC1B,QAAQ,CAAC,QAAQ,EAAE,eAAe,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE,sBAAsB,CAAC;IACvC,aAAa,EAAE,aAAa,CAAC;CAC9B,CAAC;AAEF,qBAAa,kBAAkB;aAUX,KAAK,EAAE,KAAK;aACZ,EAAE,EAAE,cAAc;IAClC,OAAO,CAAC,QAAQ,CAAC,cAAc;IAXjC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAgB;IACjD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAgB;IAChD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAgB;IAE5C,SAAgB,SAAS,kBAAyB;IAElD,SAAgB,gBAAgB,EAAE,uBAAuB,GAAG,SAAS,CAAC;gBAGpD,KAAK,EAAE,KAAK,EACZ,EAAE,EAAE,cAAc,EACjB,cAAc,EAAE,cAAc,EAC/C,YAAY,EAAE,0BAA0B,GAAG,SAAS,EACpD,aAAa,CAAC,EAAE,aAAa;IAqBxB,kBAAkB;IAIzB,OAAO,CAAC,MAAM,CAAC,iBAAiB;IAczB,cAAc,CAAC,IAAI,EAAE,MAAM;IAY3B,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,aAAa;IAgC9D,iBAAiB,CACtB,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,WAAW,GAAG,SAAS,EAC/D,KAAK,EAAE,KAAK,GAAG,SAAS,GACvB,aAAa;IAQT,oBAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,aAAa,GAAG,SAAS;IAiCvF,qBAAqB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,aAAa;IAM5E,mBAAmB,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,aAAa;IAS1E,qBAAqB,CAAC,MAAM,EAAE,aAAa,GAAG,SAAS,GAAG,OAAO;IAcjE,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,OAAO;IAU1D,OAAO,CAAC,SAAS;CA6BlB;AAED;;8GAE8G;AAC9G,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAE7D,oHAAoH;IAC7G,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG;QAC/C,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;KACjB;IAiBD,sFAAsF;IAC/E,WAAW,CAAC,YAAY,EAAE,OAAO,GAAG,OAAO;CAwBnD"}
@@ -1,8 +1,8 @@
1
1
  import { MiddleLayerEnvironment } from '../middle_layer/middle_layer';
2
- import { Code, ConfigRenderLambda } from '@platforma-sdk/model';
2
+ import { BlockCodeWithInfo, ConfigRenderLambda } from '@platforma-sdk/model';
3
3
  import { ComputableRenderingOps, Computable } from '@milaboratories/computable';
4
4
  import { QuickJSWASMModule } from 'quickjs-emscripten';
5
5
  import { BlockContextAny } from '../middle_layer/block_ctx';
6
- export declare function computableFromRF(env: MiddleLayerEnvironment, ctx: BlockContextAny, fh: ConfigRenderLambda, code: Code, configKey: string, ops?: Partial<ComputableRenderingOps>): Computable<unknown>;
7
- export declare function executeSingleLambda(quickJs: QuickJSWASMModule, fh: ConfigRenderLambda, code: Code, ...args: unknown[]): unknown;
6
+ export declare function computableFromRF(env: MiddleLayerEnvironment, ctx: BlockContextAny, fh: ConfigRenderLambda, codeWithInfo: BlockCodeWithInfo, configKey: string, ops?: Partial<ComputableRenderingOps>): Computable<unknown>;
7
+ export declare function executeSingleLambda(quickJs: QuickJSWASMModule, fh: ConfigRenderLambda, codeWithInfo: BlockCodeWithInfo, ...args: unknown[]): unknown;
8
8
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/js_render/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,IAAI,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AACrE,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,sBAAsB,EAC3B,GAAG,EAAE,eAAe,EACpB,EAAE,EAAE,kBAAkB,EACtB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,OAAO,CAAC,sBAAsB,CAAM,GACxC,UAAU,CAAC,OAAO,CAAC,CA4DrB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,EAAE,EAAE,kBAAkB,EACtB,IAAI,EAAE,IAAI,EACV,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,CAyBT"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/js_render/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAI5D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAGjE,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,sBAAsB,EAC3B,GAAG,EAAE,eAAe,EACpB,EAAE,EAAE,kBAAkB,EACtB,YAAY,EAAE,iBAAiB,EAC/B,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,OAAO,CAAC,sBAAsB,CAAM,GACxC,UAAU,CAAC,OAAO,CAAC,CAiErB;AAED,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,iBAAiB,EAC1B,EAAE,EAAE,kBAAkB,EACtB,YAAY,EAAE,iBAAiB,EAC/B,GAAG,IAAI,EAAE,OAAO,EAAE,GACjB,OAAO,CA4BT"}
@@ -1 +1 @@
1
- {"version":3,"file":"active_cfg.d.ts","sourceRoot":"","sources":["../../src/middle_layer/active_cfg.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAQxD,sEAAsE;AACtE,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,EACrB,GAAG,EAAE,sBAAsB,GAC1B,UAAU,CAAC,OAAO,EAAE,CAAC,CA2BvB"}
1
+ {"version":3,"file":"active_cfg.d.ts","sourceRoot":"","sources":["../../src/middle_layer/active_cfg.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AASxD,sEAAsE;AACtE,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,WAAW,EACrB,GAAG,EAAE,sBAAsB,GAC1B,UAAU,CAAC,OAAO,EAAE,CAAC,CA2BvB"}
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/middle_layer/block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACX,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAK9F,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,iBAAiB,CAAC,CAAC;AAE1F,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACnC,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,GAClB,mBAAmB,CAAC;AAuBvB,wBAAgB,YAAY,CAC1B,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,sBAAsB,GAC1B,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAiB3E"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../src/middle_layer/block.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EACV,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACxB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,UAAU,EACX,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAgB,kBAAkB,EAAE,MAAM,uCAAuC,CAAC;AAO9F,MAAM,MAAM,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,SAAS,GAAG,iBAAiB,CAAC,CAAC;AAE1F,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,GACd,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACnC,wBAAgB,mBAAmB,CACjC,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,aAAa,GAClB,mBAAmB,CAAC;AAuBvB,wBAAgB,YAAY,CAC1B,YAAY,EAAE,WAAW,EACzB,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,sBAAsB,GAC1B,uBAAuB,CAAC,MAAM,CAAC,MAAM,EAAE,uBAAuB,CAAC,OAAO,CAAC,CAAC,CAAC,CAsB3E"}
@@ -9,13 +9,14 @@ import { AuthorMarker, ProjectMeta } from '@milaboratories/pl-model-middle-layer
9
9
  import { BlockUpdateWatcher } from '../block_registry/watcher';
10
10
  import { QuickJSWASMModule } from 'quickjs-emscripten';
11
11
  import { MiddleLayerDriverKit } from './driver_kit';
12
- import { DriverKit } from '@platforma-sdk/model';
12
+ import { DriverKit, SupportedRequirement, RuntimeCapabilities } from '@platforma-sdk/model';
13
13
  import { DownloadUrlDriver } from '@milaboratories/pl-drivers';
14
14
  import { V2RegistryProvider } from '../block_registry';
15
15
  import { Dispatcher } from 'undici';
16
16
  import { ProjectHelper } from '../model/project_helper';
17
17
  export interface MiddleLayerEnvironment {
18
18
  readonly pl: PlClient;
19
+ readonly runtimeCapabilities: RuntimeCapabilities;
19
20
  readonly logger: MiLogger;
20
21
  readonly blockEventDispatcher: BlockEventDispatcher;
21
22
  readonly httpDispatcher: Dispatcher;
@@ -53,6 +54,8 @@ export declare class MiddleLayer {
53
54
  /** Contains a reactive list of projects along with their meta information. */
54
55
  readonly projectList: ComputableStableDefined<ProjectListEntry[]>;
55
56
  private constructor();
57
+ /** Adds a runtime capability to the middle layer. */
58
+ addRuntimeCapability(requirement: SupportedRequirement, value?: number | boolean): void;
56
59
  /** Returns extended API driver kit used internally by middle layer. */
57
60
  get internalDriverKit(): MiddleLayerDriverKit;
58
61
  /** Creates a project with initial state and adds it to project list. */
@@ -1 +1 @@
1
- {"version":3,"file":"middle_layer.d.ts","sourceRoot":"","sources":["../../src/middle_layer/middle_layer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,QAAQ,EACR,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAShD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AACrE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EACV,cAAc,EACd,yBAAyB,EAC1B,MAAM,OAAO,CAAC;AAMf,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,uCAAuC,CAAC;AACvF,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAEzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC;IACtB,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,oBAAoB,EAAE,oBAAoB,CAAC;IACpD,QAAQ,CAAC,cAAc,EAAE,UAAU,CAAC;IACpC,QAAQ,CAAC,mBAAmB,EAAE,UAAU,CAAC;IACzC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,cAAc,CAAC;IAC7B,QAAQ,CAAC,UAAU,EAAE,iBAAiB,CAAC;IACvC,QAAQ,CAAC,sBAAsB,EAAE,iBAAiB,CAAC;IACnD,QAAQ,CAAC,kBAAkB,EAAE,kBAAkB,CAAC;IAChD,QAAQ,CAAC,OAAO,EAAE,iBAAiB,CAAC;IACpC,QAAQ,CAAC,SAAS,EAAE,oBAAoB,CAAC;IACzC,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;CACvC;AAED;;;;;;;;;;;KAWK;AACL,qBAAa,WAAW;IAOpB,OAAO,CAAC,QAAQ,CAAC,GAAG;aACJ,SAAS,EAAE,SAAS;aACpB,MAAM,EAAE,MAAM;IAC9B,OAAO,CAAC,QAAQ,CAAC,qBAAqB;IACtC,OAAO,CAAC,QAAQ,CAAC,kBAAkB;IACnC,OAAO,CAAC,QAAQ,CAAC,eAAe;aAChB,qBAAqB,EAAE,kBAAkB;IAZ3D,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAW;IAE9B,8EAA8E;IAC9E,SAAgB,WAAW,EAAE,uBAAuB,CAAC,gBAAgB,EAAE,CAAC,CAAC;IAEzE,OAAO;IAcP,uEAAuE;IACvE,IAAW,iBAAiB,IAAI,oBAAoB,CAEnD;IAMD,wEAAwE;IAC3D,aAAa,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,GAAE,MAAqB,GAAG,OAAO,CAAC,UAAU,CAAC;IAW7F,+BAA+B;IAClB,cAAc,CACzB,GAAG,EAAE,UAAU,EACf,IAAI,EAAE,WAAW,EACjB,MAAM,CAAC,EAAE,YAAY,GACpB,OAAO,CAAC,IAAI,CAAC;IAOhB;gFAC4E;IAC/D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYrD,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAkC;YAExD,qBAAqB;YAQrB,gBAAgB;IAK9B,0EAA0E;IAC7D,WAAW,CAAC,EAAE,EAAE,UAAU,GAAG,MAAM;IAOhD,sEAAsE;IACzD,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAQzD;sBACkB;IACX,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,OAAO;IAMjD;;eAEW;IACE,KAAK;IAQlB,kBAAkB;IACL,wBAAwB;IAIrC;sBACkB;WACJ,mBAAmB,IAAI,MAAM;IAI3C,qFAAqF;IACrF,IAAW,oBAAoB,IAAI,oBAAoB,CAEtD;IAED,8BAA8B;WACV,IAAI,CACtB,EAAE,EAAE,QAAQ,EACZ,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,yBAAyB,GAC9B,OAAO,CAAC,WAAW,CAAC;CAsFxB"}
1
+ {"version":3,"file":"middle_layer.d.ts","sourceRoot":"","sources":["../../src/middle_layer/middle_layer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"project_overview.d.ts","sourceRoot":"","sources":["../../src/middle_layer/project_overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAgB1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAKV,eAAe,EAChB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAmC5D,sEAAsE;AACtE,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,sBAAsB,GAC1B,uBAAuB,CAAC,eAAe,CAAC,CAqN1C"}
1
+ {"version":3,"file":"project_overview.d.ts","sourceRoot":"","sources":["../../src/middle_layer/project_overview.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,4BAA4B,CAAC;AAgB1E,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAKV,eAAe,EAChB,MAAM,uCAAuC,CAAC;AAK/C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAmC5D,sEAAsE;AACtE,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,WAAW,EACrB,gBAAgB,EAAE,gBAAgB,EAClC,GAAG,EAAE,sBAAsB,GAC1B,uBAAuB,CAAC,eAAe,CAAC,CAgO1C"}
@@ -1,7 +1,7 @@
1
- import { Code, TypedConfigOrConfigLambda } from '@platforma-sdk/model';
1
+ import { BlockCodeWithInfo, TypedConfigOrConfigLambda } from '@platforma-sdk/model';
2
2
  import { Computable, ComputableRenderingOps } from '@milaboratories/computable';
3
3
  import { MiddleLayerEnvironment } from './middle_layer';
4
4
  import { BlockContextAny } from './block_ctx';
5
5
  export declare function isActive(cfg: TypedConfigOrConfigLambda): boolean;
6
- export declare function computableFromCfgOrRF(env: MiddleLayerEnvironment, ctx: BlockContextAny, cfgOrFh: TypedConfigOrConfigLambda, code: Code | undefined, configKey: string, ops?: Partial<ComputableRenderingOps>): Computable<unknown>;
6
+ export declare function computableFromCfgOrRF(env: MiddleLayerEnvironment, ctx: BlockContextAny, cfgOrFh: TypedConfigOrConfigLambda, codeWithInfo: BlockCodeWithInfo | undefined, configKey: string, ops?: Partial<ComputableRenderingOps>): Computable<unknown>;
7
7
  //# sourceMappingURL=render.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/middle_layer/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAErF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAGhE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,sBAAsB,EAC3B,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,yBAAyB,EAClC,IAAI,EAAE,IAAI,GAAG,SAAS,EACtB,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,OAAO,CAAC,sBAAsB,CAAM,GACxC,UAAU,CAAC,OAAO,CAAC,CAKrB"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../src/middle_layer/render.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAErF,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAE7D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAGnD,wBAAgB,QAAQ,CAAC,GAAG,EAAE,yBAAyB,GAAG,OAAO,CAGhE;AAED,wBAAgB,qBAAqB,CACnC,GAAG,EAAE,sBAAsB,EAC3B,GAAG,EAAE,eAAe,EACpB,OAAO,EAAE,yBAAyB,EAClC,YAAY,EAAE,iBAAiB,GAAG,SAAS,EAC3C,SAAS,EAAE,MAAM,EACjB,GAAG,GAAE,OAAO,CAAC,sBAAsB,CAAM,GACxC,UAAU,CAAC,OAAO,CAAC,CAKrB"}
@@ -1 +1 @@
1
- {"version":3,"file":"render.test.d.ts","sourceRoot":"","sources":["../../src/middle_layer/render.test.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAsB,MAAM,CAC1B,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAmBf;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAa,iBAsBzF"}
1
+ {"version":3,"file":"render.test.d.ts","sourceRoot":"","sources":["../../src/middle_layer/render.test.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAsB,MAAM,CAC1B,EAAE,EAAE,CAAC,EAAE,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GACzD,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED,wBAAsB,cAAc,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,MAAa,iBAsBzF"}
@@ -1 +1 @@
1
- {"version":3,"file":"project_helper.d.ts","sourceRoot":"","sources":["../../src/model/project_helper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAE/D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAW5D,qBAAa,aAAa;IAQZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAKpC;gBAE0B,OAAO,EAAE,iBAAiB;IAEvD,OAAO,CAAC,0BAA0B;IAQ3B,oBAAoB,CAAC,WAAW,EAAE,MAAM,WAAW,EAAE,IAAI,EAAE,MAAM,OAAO,EAAE,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,UAAU,CAAA;KAAE,GAAG,KAAK,EAAE,GAAG,SAAS;CAO/J"}
1
+ {"version":3,"file":"project_helper.d.ts","sourceRoot":"","sources":["../../src/model/project_helper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAuB,KAAK,WAAW,EAAE,KAAK,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAEzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE5D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAW5D,qBAAa,aAAa;IAQZ,OAAO,CAAC,QAAQ,CAAC,OAAO;IAPpC,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAKpC;gBAE0B,OAAO,EAAE,iBAAiB;IAEvD,OAAO,CAAC,0BAA0B;IAQ3B,oBAAoB,CAAC,WAAW,EAAE,MAAM,WAAW,EAAE,IAAI,EAAE,MAAM,OAAO,EAAE,GAAG,CAAC,EAAE;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,YAAY,EAAE,UAAU,CAAA;KAAE,GAAG,KAAK,EAAE,GAAG,SAAS;CAO/J"}
@@ -3,6 +3,7 @@ import { PlTreeNodeAccessor } from '@milaboratories/pl-tree';
3
3
  import { ComputableCtx } from '@milaboratories/computable';
4
4
  import { CalculateTableDataRequest, CalculateTableDataResponse, FindColumnsRequest, FindColumnsResponse, PColumnIdAndSpec, PColumnSpec, PFrameHandle, PObjectId, PTableColumnSpec, PTableHandle, PTableShape, PTableVector, TableRange, UniqueValuesRequest, UniqueValuesResponse, PFrameDriver as SdkPFrameDriver, PColumn, PFrameDef, PTableDef, PColumnValues, DataInfo } from '@platforma-sdk/model';
5
5
  import { MiLogger } from '@milaboratories/ts-helpers';
6
+ export type PColumnDataUniversal = PlTreeNodeAccessor | DataInfo<PlTreeNodeAccessor> | PColumnValues;
6
7
  /**
7
8
  * Extends public and safe SDK's driver API with methods used internally in the middle
8
9
  * layer and in tests.
@@ -17,9 +18,9 @@ export interface InternalPFrameDriver extends SdkPFrameDriver {
17
18
  */
18
19
  pprofDump(): Promise<Uint8Array>;
19
20
  /** Create a new PFrame */
20
- createPFrame(def: PFrameDef<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>, ctx: ComputableCtx): PFrameHandle;
21
+ createPFrame(def: PFrameDef<PColumnDataUniversal>, ctx: ComputableCtx): PFrameHandle;
21
22
  /** Create a new PTable */
22
- createPTable(def: PTableDef<PColumn<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>>, ctx: ComputableCtx): PTableHandle;
23
+ createPTable(def: PTableDef<PColumn<PColumnDataUniversal>>, ctx: ComputableCtx): PTableHandle;
23
24
  /** Calculates data for the table and returns complete data representation of it */
24
25
  calculateTableData(handle: PFrameHandle, request: CalculateTableDataRequest<PObjectId>, range: TableRange | undefined, signal?: AbortSignal): Promise<CalculateTableDataResponse>;
25
26
  /** Calculate set of unique values for a specific axis for the filtered set of records */
@@ -47,8 +48,8 @@ export declare class PFrameDriver implements InternalPFrameDriver {
47
48
  pprofDump(): Promise<Uint8Array>;
48
49
  static init(blobDriver: DownloadDriver, logger: MiLogger, spillPath: string): Promise<PFrameDriver>;
49
50
  private constructor();
50
- createPFrame(def: PFrameDef<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>, ctx: ComputableCtx): PFrameHandle;
51
- createPTable(rawDef: PTableDef<PColumn<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>>, ctx: ComputableCtx): PTableHandle;
51
+ createPFrame(def: PFrameDef<PColumnDataUniversal>, ctx: ComputableCtx): PFrameHandle;
52
+ createPTable(rawDef: PTableDef<PColumn<PColumnDataUniversal>>, ctx: ComputableCtx): PTableHandle;
52
53
  findColumns(handle: PFrameHandle, request: FindColumnsRequest): Promise<FindColumnsResponse>;
53
54
  getColumnSpec(handle: PFrameHandle, columnId: PObjectId): Promise<PColumnSpec>;
54
55
  listColumns(handle: PFrameHandle): Promise<PColumnIdAndSpec[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/pool/driver.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAEjE,OAAO,KAAK,EAAE,kBAAkB,EAAgB,MAAM,yBAAyB,CAAC;AAEhF,OAAO,KAAK,EAAE,aAAa,EAA2B,MAAM,4BAA4B,CAAC;AACzF,OAAO,KAAK,EACV,yBAAyB,EACzB,0BAA0B,EAC1B,kBAAkB,EAClB,mBAAmB,EAEnB,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,mBAAmB,EACnB,oBAAoB,EACpB,YAAY,IAAI,eAAe,EAC/B,OAAO,EACP,SAAS,EAET,SAAS,EAIT,aAAa,EACb,QAAQ,EAET,MAAM,sBAAsB,CAAC;AAW9B,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,4BAA4B,CAAC;AA+J3D;;;GAGG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D;;;;;;OAMG;IACH,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;IAEjC,0BAA0B;IAC1B,YAAY,CACV,GAAG,EAAE,SAAS,CAAC,kBAAkB,GAAG,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EACjF,GAAG,EAAE,aAAa,GACjB,YAAY,CAAC;IAEhB,0BAA0B;IAC1B,YAAY,CACV,GAAG,EAAE,SAAS,CAAC,OAAO,CAAC,kBAAkB,GAAG,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAC1F,GAAG,EAAE,aAAa,GACjB,YAAY,CAAC;IAEhB,mFAAmF;IACnF,kBAAkB,CAChB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,EAC7C,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,0BAA0B,CAAC,CAAC;IAEvC,yFAAyF;IACzF,eAAe,CACb,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEjC,0BAA0B;IAC1B,QAAQ,CACN,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC,CAAC;IAExB;;;;;;;SAOK;IACL,OAAO,CACL,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EAAE,EACvB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;CAC5B;AAED,qBAAa,YAAa,YAAW,oBAAoB;IAqBrD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;IAtB5B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyD;IACjF,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAoD;IAC5E,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA8B;IACtE,OAAO,CAAC,QAAQ,CAAC,uBAAuB,CAA8B;IAEzD,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;WAIzB,IAAI,CACtB,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,QAAQ,EAChB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,YAAY,CAAC;IAMxB,OAAO;IA+EA,YAAY,CACjB,GAAG,EAAE,SAAS,CAAC,kBAAkB,GAAG,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,EACjF,GAAG,EAAE,aAAa,GACjB,YAAY;IAiBR,YAAY,CACjB,MAAM,EAAE,SAAS,CAAC,OAAO,CAAC,kBAAkB,GAAG,aAAa,GAAG,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAC7F,GAAG,EAAE,aAAa,GACjB,YAAY;IAoBF,WAAW,CACtB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,mBAAmB,CAAC;IA2BlB,aAAa,CAAC,MAAM,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAI9E,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAI9D,kBAAkB,CAC7B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,yBAAyB,CAAC,SAAS,CAAC,EAC7C,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,0BAA0B,CAAC;IAuCzB,eAAe,CAC1B,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,mBAAmB,EAC5B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,oBAAoB,CAAC;IAsBzB,OAAO,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAKpD,QAAQ,CAAC,MAAM,EAAE,YAAY,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAU1E,OAAO,CAClB,MAAM,EAAE,YAAY,EACpB,aAAa,EAAE,MAAM,EAAE,EACvB,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,YAAY,EAAE,CAAC;CAU3B"}
1
+ {"version":3,"file":"driver.d.ts","sourceRoot":"","sources":["../../src/pool/driver.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/pl-middle-layer",
3
- "version": "1.37.100",
3
+ "version": "1.38.1",
4
4
  "description": "Pl Middle Layer",
5
5
  "engines": {
6
6
  "node": ">=20.16.0"
@@ -22,7 +22,7 @@
22
22
  "keywords": [],
23
23
  "license": "UNLICENSED",
24
24
  "dependencies": {
25
- "@milaboratories/pframes-rs-node": "1.0.47",
25
+ "@milaboratories/pframes-rs-node": "1.0.49",
26
26
  "canonicalize": "~2.1.0",
27
27
  "denque": "^2.1.0",
28
28
  "lru-cache": "^11.1.0",
@@ -32,22 +32,22 @@
32
32
  "yaml": "^2.7.0",
33
33
  "zod": "~3.23.8",
34
34
  "remeda": "^2.22.6",
35
- "@milaboratories/computable": "^2.5.1",
35
+ "@milaboratories/computable": "^2.6.0",
36
36
  "@milaboratories/pl-http": "^1.1.4",
37
- "@milaboratories/pl-model-common": "^1.15.9",
38
37
  "@milaboratories/resolve-helper": "^1.1.0",
39
- "@platforma-sdk/block-tools": "^2.5.61",
40
- "@milaboratories/pl-model-middle-layer": "^1.7.43",
38
+ "@platforma-sdk/block-tools": "^2.5.63",
39
+ "@milaboratories/pl-drivers": "^1.6.0",
40
+ "@milaboratories/pl-model-backend": "~1.1.2",
41
41
  "@milaboratories/pl-client": "^2.11.2",
42
- "@milaboratories/pl-drivers": "^1.5.79",
43
- "@milaboratories/pl-tree": "^1.6.12",
44
- "@milaboratories/pl-model-backend": "^1.1.2",
45
- "@platforma-sdk/model": "^1.38.0",
42
+ "@milaboratories/pl-tree": "~1.7.0",
43
+ "@platforma-sdk/model": "~1.39.0",
44
+ "@milaboratories/pl-model-middle-layer": "~1.7.45",
46
45
  "@milaboratories/ts-helpers": "^1.4.1",
47
- "@milaboratories/pl-config": "^1.6.1",
46
+ "@milaboratories/pl-model-common": "~1.16.0",
48
47
  "@platforma-sdk/workflow-tengo": "4.9.2",
49
- "@milaboratories/pl-errors": "^1.1.9",
50
- "@milaboratories/pl-deployments": "^2.4.3"
48
+ "@milaboratories/pl-config": "^1.6.1",
49
+ "@milaboratories/pl-deployments": "^2.4.3",
50
+ "@milaboratories/pl-errors": "^1.1.9"
51
51
  },
52
52
  "devDependencies": {
53
53
  "semver": "^7.7.2",
@@ -210,6 +210,7 @@ export class BlockPackRegistry {
210
210
  const latestOverview: SingleBlockPackOverview = {
211
211
  id: v2Description.id,
212
212
  meta: await BlockPackMetaEmbedAbsoluteBytes.parseAsync(v2Description.meta),
213
+ featureFlags: v2Description.featureFlags,
213
214
  spec: {
214
215
  type: 'dev-v2',
215
216
  folder: actualDevPath,
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Args,
3
- BlockConfig,
3
+ BlockConfigGeneric,
4
4
  BlockModel,
5
5
  getJsonField,
6
6
  getResourceField,
@@ -37,7 +37,7 @@ test('local cfg test (no pl)', async () => {
37
37
  mapArrayValues(getJsonField(Args, 'b'), isolate(makeObject({ theField: It })))
38
38
  )
39
39
  .done() as any
40
- ).config as BlockConfig;
40
+ ).config as BlockConfigGeneric;
41
41
 
42
42
  const ctx = { $args: args };
43
43
 
@@ -83,7 +83,7 @@ test('cfg test with pl, simple', async () => {
83
83
  )
84
84
  )
85
85
  .done() as any
86
- ).config as BlockConfig;
86
+ ).config as BlockConfigGeneric;
87
87
 
88
88
  await TestHelpers.withTempRoot(async (pl) => {
89
89
  const tree = await SynchronizedTreeState.init(pl, pl.clientRoot, {
@@ -4,6 +4,7 @@ export type MlDebugFlags = {
4
4
  logProjectMutationStat: boolean;
5
5
  dumpInitialTreeState: boolean;
6
6
  logOutputStatus?: 'any' | 'unstable-only';
7
+ logOutputRecalculations?: boolean;
7
8
  };
8
9
 
9
10
  let flags: MlDebugFlags | undefined = undefined;
@@ -13,6 +14,7 @@ export function getDebugFlags() {
13
14
  logPFrameRequests: process.env.MI_LOG_PFRAMES !== undefined,
14
15
  dumpInitialTreeState: process.env.MI_DUMP_INITIAL_TREE_STATE !== undefined,
15
16
  logProjectMutationStat: process.env.MI_LOG_PROJECT_MUTATION_STAT !== undefined,
17
+ logOutputRecalculations: process.env.MI_LOG_OUTPUT_RECALCULATIONS !== undefined,
16
18
  };
17
19
  if (process.env.MI_LOG_OUTPUT_STATUS)
18
20
  flags.logOutputStatus = process.env.MI_LOG_OUTPUT_STATUS === 'unstable-only' ? 'unstable-only' : 'any';
@@ -1,8 +1,10 @@
1
1
  import type { ComputableCtx } from '@milaboratories/computable';
2
2
  import { Computable } from '@milaboratories/computable';
3
3
  import type { PlTreeNodeAccessor } from '@milaboratories/pl-tree';
4
+ import {
5
+ checkBlockFlag,
6
+ } from '@platforma-sdk/model';
4
7
  import type {
5
- JsRenderInternal,
6
8
  ArchiveFormat,
7
9
  CommonFieldTraverseOps as CommonFieldTraverseOpsFromSDK,
8
10
  DataInfo,
@@ -21,7 +23,9 @@ import type {
21
23
  ResultCollection,
22
24
  ValueOrError,
23
25
  RangeBytes,
24
- } from '@platforma-sdk/model';
26
+ BlockCodeKnownFeatureFlags,
27
+
28
+ JsRenderInternal } from '@platforma-sdk/model';
25
29
  import {
26
30
  isDataInfo,
27
31
  mapDataInfo,
@@ -58,6 +62,7 @@ implements JsRenderInternal.GlobalCfgRenderCtxMethods<string, string> {
58
62
  private readonly parent: JsExecutionContext,
59
63
  private readonly blockCtx: BlockContextAny,
60
64
  private readonly env: MiddleLayerEnvironment,
65
+ private readonly featureFlags: BlockCodeKnownFeatureFlags | undefined,
61
66
  computableCtx: ComputableCtx,
62
67
  ) {
63
68
  this.computableCtx = computableCtx;
@@ -468,17 +473,6 @@ implements JsRenderInternal.GlobalCfgRenderCtxMethods<string, string> {
468
473
  const vm = parent.vm;
469
474
 
470
475
  Scope.withScope((localScope) => {
471
- // Exporting props
472
-
473
- const args = this.blockCtx.args(this.computableCtx!);
474
- const activeArgs = this.blockCtx.activeArgs(this.computableCtx!);
475
- const uiState = this.blockCtx.uiState(this.computableCtx!);
476
- vm.setProp(configCtx, 'args', localScope.manage(vm.newString(args)));
477
- if (uiState !== undefined)
478
- vm.setProp(configCtx, 'uiState', localScope.manage(vm.newString(uiState)));
479
- if (activeArgs !== undefined)
480
- vm.setProp(configCtx, 'activeArgs', localScope.manage(vm.newString(activeArgs)));
481
-
482
476
  // Exporting methods
483
477
 
484
478
  const exportCtxFunction = (
@@ -486,9 +480,9 @@ implements JsRenderInternal.GlobalCfgRenderCtxMethods<string, string> {
486
480
  fn: VmFunctionImplementation<QuickJSHandle>,
487
481
  ): void => {
488
482
  const withCachedError: VmFunctionImplementation<QuickJSHandle> = (...args) => {
489
- // QuickJS strips all fields from errors apart from 'name' and 'message'.
490
- // That's why here we need to store them, and rethrow them when we exit
491
- // from QuickJS code.
483
+ // QuickJS strips all fields from errors apart from 'name' and 'message'.
484
+ // That's why here we need to store them, and rethrow them when we exit
485
+ // from QuickJS code.
492
486
  try {
493
487
  return (fn as any)(...args);
494
488
  } catch (e: unknown) {
@@ -503,6 +497,34 @@ implements JsRenderInternal.GlobalCfgRenderCtxMethods<string, string> {
503
497
  vm.newFunction(name, fn).consume((fnh) => vm.setProp(configCtx, name + '__internal__', fnh));
504
498
  };
505
499
 
500
+ if (checkBlockFlag(this.featureFlags, 'supportsLazyState')) {
501
+ // injecting lazy state functions
502
+ exportCtxFunction('args', () => {
503
+ if (this.computableCtx === undefined)
504
+ throw new Error(`Add dummy call to ctx.args outside the future lambda. Can't be directly used in this context.`);
505
+ return vm.newString(this.blockCtx.args(this.computableCtx));
506
+ });
507
+ exportCtxFunction('uiState', () => {
508
+ if (this.computableCtx === undefined)
509
+ throw new Error(`Add dummy call to ctx.uiState outside the future lambda. Can't be directly used in this context.`);
510
+ return vm.newString(this.blockCtx.uiState(this.computableCtx) ?? '{}');
511
+ });
512
+ exportCtxFunction('activeArgs', () => {
513
+ if (this.computableCtx === undefined)
514
+ throw new Error(`Add dummy call to ctx.activeArgs outside the future lambda. Can't be directly used in this context.`);
515
+ const res = this.blockCtx.activeArgs(this.computableCtx);
516
+ return res === undefined ? vm.undefined : vm.newString(res);
517
+ });
518
+ } else {
519
+ const args = this.blockCtx.args(this.computableCtx!);
520
+ const activeArgs = this.blockCtx.activeArgs(this.computableCtx!);
521
+ const uiState = this.blockCtx.uiState(this.computableCtx!);
522
+ vm.setProp(configCtx, 'args', localScope.manage(vm.newString(args)));
523
+ vm.setProp(configCtx, 'uiState', localScope.manage(vm.newString(uiState ?? '{}')));
524
+ if (activeArgs !== undefined)
525
+ vm.setProp(configCtx, 'activeArgs', localScope.manage(vm.newString(activeArgs)));
526
+ }
527
+
506
528
  //
507
529
  // Methods for injected ctx object
508
530
  //
@@ -1,4 +1,6 @@
1
1
  import type { ComputableCtx } from '@milaboratories/computable';
2
+ import type {
3
+ BlockCodeKnownFeatureFlags } from '@platforma-sdk/model';
2
4
  import {
3
5
  JsRenderInternal,
4
6
  } from '@platforma-sdk/model';
@@ -53,6 +55,7 @@ export class JsExecutionContext {
53
55
  public readonly scope: Scope,
54
56
  public readonly vm: QuickJSContext,
55
57
  private readonly deadlineSetter: DeadlineSetter,
58
+ featureFlags: BlockCodeKnownFeatureFlags | undefined,
56
59
  computableEnv?: ComputableEnv,
57
60
  ) {
58
61
  this.callbackRegistry = this.scope.manage(this.vm.newObject());
@@ -69,7 +72,7 @@ export class JsExecutionContext {
69
72
  if (vm.typeof(this.fnJSONParse) !== 'function') throw new Error(`JSON.parse() not found.`);
70
73
 
71
74
  if (computableEnv !== undefined)
72
- this.computableHelper = new ComputableContextHelper(this, computableEnv.blockCtx, computableEnv.mlEnv, computableEnv.computableCtx);
75
+ this.computableHelper = new ComputableContextHelper(this, computableEnv.blockCtx, computableEnv.mlEnv, featureFlags, computableEnv.computableCtx);
73
76
 
74
77
  this.injectCtx();
75
78
  }
@@ -1,5 +1,5 @@
1
1
  import type { MiddleLayerEnvironment } from '../middle_layer/middle_layer';
2
- import type { Code, ConfigRenderLambda } from '@platforma-sdk/model';
2
+ import type { BlockCodeWithInfo, ConfigRenderLambda } from '@platforma-sdk/model';
3
3
  import type { ComputableRenderingOps } from '@milaboratories/computable';
4
4
  import { Computable } from '@milaboratories/computable';
5
5
  import type { QuickJSWASMModule } from 'quickjs-emscripten';
@@ -13,15 +13,19 @@ export function computableFromRF(
13
13
  env: MiddleLayerEnvironment,
14
14
  ctx: BlockContextAny,
15
15
  fh: ConfigRenderLambda,
16
- code: Code,
16
+ codeWithInfo: BlockCodeWithInfo,
17
17
  configKey: string,
18
18
  ops: Partial<ComputableRenderingOps> = {},
19
19
  ): Computable<unknown> {
20
+ const { code, featureFlags } = codeWithInfo;
20
21
  // adding configKey to reload all outputs on block-pack update
21
22
  const key = `${ctx.blockId}#lambda#${configKey}#${fh.handle}`;
22
23
  ops = { ...ops, key };
23
24
  if (ops.mode === undefined && fh.retentive === true) ops.mode = 'StableOnlyRetentive';
24
25
  return Computable.makeRaw((cCtx) => {
26
+ if (getDebugFlags().logOutputRecalculations)
27
+ console.log(`Block lambda recalculation : ${key} (${cCtx.changeSourceMarker}; ${cCtx.bodyInvocations} invocations)`);
28
+
25
29
  const scope = new Scope();
26
30
  cCtx.addOnDestroy(() => scope.dispose());
27
31
 
@@ -38,6 +42,7 @@ export function computableFromRF(
38
42
  const vm = scope.manage(runtime.newContext());
39
43
  const rCtx = new JsExecutionContext(scope, vm,
40
44
  (s) => { deadlineSettings = s; },
45
+ featureFlags,
41
46
  { computableCtx: cCtx, blockCtx: ctx, mlEnv: env });
42
47
 
43
48
  rCtx.evaluateBundle(code.content);
@@ -81,9 +86,10 @@ export function computableFromRF(
81
86
  export function executeSingleLambda(
82
87
  quickJs: QuickJSWASMModule,
83
88
  fh: ConfigRenderLambda,
84
- code: Code,
89
+ codeWithInfo: BlockCodeWithInfo,
85
90
  ...args: unknown[]
86
91
  ): unknown {
92
+ const { code, featureFlags } = codeWithInfo;
87
93
  const scope = new Scope();
88
94
  try {
89
95
  const runtime = scope.manage(quickJs.newRuntime());
@@ -98,7 +104,9 @@ export function executeSingleLambda(
98
104
  });
99
105
  const vm = scope.manage(runtime.newContext());
100
106
  const rCtx = new JsExecutionContext(scope, vm,
101
- (s) => { deadlineSettings = s; });
107
+ (s) => { deadlineSettings = s; },
108
+ featureFlags,
109
+ );
102
110
 
103
111
  // Initializing the model
104
112
  rCtx.evaluateBundle(code.content);
@@ -8,6 +8,7 @@ import { allBlocks } from '../model/project_model_util';
8
8
  import { constructBlockContext } from './block_ctx';
9
9
  import { computableFromCfgOrRF, isActive } from './render';
10
10
  import { getBlockPackInfo } from './util';
11
+ import { extractCodeWithInfo } from '@platforma-sdk/model';
11
12
 
12
13
  /** Returns derived general project state form the project resource */
13
14
  export function activeConfigs(
@@ -34,7 +35,7 @@ export function activeConfigs(
34
35
 
35
36
  for (const cfg of activeOutputConfigs)
36
37
  ret.push(
37
- Computable.wrapError(computableFromCfgOrRF(env, blockCtx, cfg, bp.cfg.code, bp.bpId)),
38
+ Computable.wrapError(computableFromCfgOrRF(env, blockCtx, cfg, extractCodeWithInfo(bp.cfg), bp.bpId)),
38
39
  );
39
40
  }
40
41
 
@@ -16,6 +16,8 @@ import type { AuthorMarker, BlockStateInternal } from '@milaboratories/pl-model-
16
16
  import { computableFromCfgOrRF } from './render';
17
17
  import { resourceIdToString } from '@milaboratories/pl-client';
18
18
  import { deepFreeze } from '@milaboratories/ts-helpers';
19
+ import { extractCodeWithInfo } from '@platforma-sdk/model';
20
+ import { getDebugFlags } from '../debug';
19
21
 
20
22
  export type BlockArgsAndUiState = Omit<BlockStateInternal, 'outputs' | 'navigationState'>;
21
23
 
@@ -55,20 +57,25 @@ export function blockOutputs(
55
57
  blockId: string,
56
58
  env: MiddleLayerEnvironment,
57
59
  ): ComputableStableDefined<Record<string, ComputableValueOrErrors<unknown>>> {
60
+ const key = 'outputs#' + resourceIdToString(projectEntry.rid) + '#' + blockId;
58
61
  return Computable.make(
59
62
  (c) => {
63
+ if (getDebugFlags().logOutputRecalculations) {
64
+ console.log(`blockOutput recalculation : ${key} (${c.changeSourceMarker}; ${c.bodyInvocations} invocations)`);
65
+ }
66
+
60
67
  const prj = c.accessor(projectEntry).node();
61
68
  const ctx = constructBlockContext(projectEntry, blockId);
62
69
 
63
70
  return ifNotUndef(getBlockPackInfo(prj, blockId), ({ cfg, bpId }) => {
64
71
  const outputs: Record<string, Computable<any>> = {};
65
72
  for (const [cellId, cellCfg] of Object.entries(cfg.outputs)) {
66
- const computableOutput = computableFromCfgOrRF(env, ctx, cellCfg, cfg.code, bpId);
73
+ const computableOutput = computableFromCfgOrRF(env, ctx, cellCfg, extractCodeWithInfo(cfg), bpId);
67
74
  outputs[cellId] = Computable.wrapError(computableOutput, 1);
68
75
  }
69
76
  return outputs;
70
77
  });
71
78
  },
72
- { key: 'outputs#' + resourceIdToString(projectEntry.rid) + '#' + blockId },
79
+ { key },
73
80
  ).withStableType();
74
81
  }
@@ -32,7 +32,8 @@ import type { QuickJSWASMModule } from 'quickjs-emscripten';
32
32
  import { getQuickJS } from 'quickjs-emscripten';
33
33
  import type { MiddleLayerDriverKit } from './driver_kit';
34
34
  import { initDriverKit } from './driver_kit';
35
- import type { DriverKit } from '@platforma-sdk/model';
35
+ import type { DriverKit, SupportedRequirement } from '@platforma-sdk/model';
36
+ import { RuntimeCapabilities } from '@platforma-sdk/model';
36
37
  import { DownloadUrlDriver } from '@milaboratories/pl-drivers';
37
38
  import { V2RegistryProvider } from '../block_registry';
38
39
  import type { Dispatcher } from 'undici';
@@ -42,6 +43,7 @@ import { ProjectHelper } from '../model/project_helper';
42
43
 
43
44
  export interface MiddleLayerEnvironment {
44
45
  readonly pl: PlClient;
46
+ readonly runtimeCapabilities: RuntimeCapabilities;
45
47
  readonly logger: MiLogger;
46
48
  readonly blockEventDispatcher: BlockEventDispatcher;
47
49
  readonly httpDispatcher: Dispatcher;
@@ -88,6 +90,11 @@ export class MiddleLayer {
88
90
  this.pl = this.env.pl;
89
91
  }
90
92
 
93
+ /** Adds a runtime capability to the middle layer. */
94
+ public addRuntimeCapability(requirement: SupportedRequirement, value: number | boolean = true): void {
95
+ this.env.runtimeCapabilities.addSupportedRequirement(requirement, value);
96
+ }
97
+
91
98
  /** Returns extended API driver kit used internally by middle layer. */
92
99
  public get internalDriverKit(): MiddleLayerDriverKit {
93
100
  return this.env.driverKit;
@@ -259,6 +266,11 @@ export class MiddleLayer {
259
266
 
260
267
  const quickJs = await getQuickJS();
261
268
 
269
+ const runtimeCapabilities = new RuntimeCapabilities();
270
+ // add runtime capabilities of model here
271
+ runtimeCapabilities.addSupportedRequirement('requiresModelAPIVersion', 1);
272
+ // runtime capabilities of the desktop are to be added by the desktop app / test framework
273
+
262
274
  const env: MiddleLayerEnvironment = {
263
275
  pl,
264
276
  blockEventDispatcher: new BlockEventDispatcher(),
@@ -275,6 +287,7 @@ export class MiddleLayer {
275
287
  http: retryHttpDispatcher,
276
288
  preferredUpdateChannel: ops.preferredUpdateChannel,
277
289
  }),
290
+ runtimeCapabilities,
278
291
  quickJs,
279
292
  projectHelper: new ProjectHelper(quickJs),
280
293
  };