@milaboratories/pl-middle-layer 1.37.99 → 1.38.0
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.
- package/dist/block_registry/registry.d.ts.map +1 -1
- package/dist/debug/index.d.ts +1 -0
- package/dist/debug/index.d.ts.map +1 -1
- package/dist/index.js +12 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1900 -1853
- package/dist/index.mjs.map +1 -1
- package/dist/js_render/computable_context.d.ts +3 -2
- package/dist/js_render/computable_context.d.ts.map +1 -1
- package/dist/js_render/context.d.ts +2 -1
- package/dist/js_render/context.d.ts.map +1 -1
- package/dist/js_render/index.d.ts +3 -3
- package/dist/js_render/index.d.ts.map +1 -1
- package/dist/middle_layer/active_cfg.d.ts.map +1 -1
- package/dist/middle_layer/block.d.ts.map +1 -1
- package/dist/middle_layer/middle_layer.d.ts +4 -1
- package/dist/middle_layer/middle_layer.d.ts.map +1 -1
- package/dist/middle_layer/project_overview.d.ts.map +1 -1
- package/dist/middle_layer/render.d.ts +2 -2
- package/dist/middle_layer/render.d.ts.map +1 -1
- package/dist/middle_layer/render.test.d.ts.map +1 -1
- package/dist/model/project_helper.d.ts.map +1 -1
- package/dist/pool/driver.d.ts +1 -1
- package/dist/pool/driver.d.ts.map +1 -1
- package/package.json +14 -14
- package/src/block_registry/registry.ts +1 -0
- package/src/cfg_render/executor.test.ts +3 -3
- package/src/debug/index.ts +2 -0
- package/src/js_render/computable_context.ts +38 -16
- package/src/js_render/context.ts +4 -1
- package/src/js_render/index.ts +12 -4
- package/src/middle_layer/active_cfg.ts +2 -1
- package/src/middle_layer/block.ts +9 -2
- package/src/middle_layer/middle_layer.ts +14 -1
- package/src/middle_layer/navigation_states.ts +2 -2
- package/src/middle_layer/project_overview.ts +17 -6
- package/src/middle_layer/render.test.ts +2 -0
- package/src/middle_layer/render.ts +4 -4
- package/src/model/project_helper.ts +2 -2
- package/src/pool/driver.ts +17 -2
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComputableCtx, Computable } from '@milaboratories/computable';
|
|
2
|
-
import {
|
|
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":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"computable_context.d.ts","sourceRoot":"","sources":["../../src/js_render/computable_context.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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 {
|
|
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,
|
|
7
|
-
export declare function executeSingleLambda(quickJs: QuickJSWASMModule, fh: ConfigRenderLambda,
|
|
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,
|
|
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;
|
|
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;
|
|
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;
|
|
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,
|
|
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 {
|
|
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,
|
|
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,
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/pool/driver.d.ts
CHANGED
|
@@ -48,7 +48,7 @@ export declare class PFrameDriver implements InternalPFrameDriver {
|
|
|
48
48
|
static init(blobDriver: DownloadDriver, logger: MiLogger, spillPath: string): Promise<PFrameDriver>;
|
|
49
49
|
private constructor();
|
|
50
50
|
createPFrame(def: PFrameDef<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>, ctx: ComputableCtx): PFrameHandle;
|
|
51
|
-
createPTable(
|
|
51
|
+
createPTable(rawDef: PTableDef<PColumn<PlTreeNodeAccessor | PColumnValues | DataInfo<PlTreeNodeAccessor>>>, ctx: ComputableCtx): PTableHandle;
|
|
52
52
|
findColumns(handle: PFrameHandle, request: FindColumnsRequest): Promise<FindColumnsResponse>;
|
|
53
53
|
getColumnSpec(handle: PFrameHandle, columnId: PObjectId): Promise<PColumnSpec>;
|
|
54
54
|
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;
|
|
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.
|
|
3
|
+
"version": "1.38.0",
|
|
4
4
|
"description": "Pl Middle Layer",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20.16.0"
|
|
@@ -32,27 +32,27 @@
|
|
|
32
32
|
"yaml": "^2.7.0",
|
|
33
33
|
"zod": "~3.23.8",
|
|
34
34
|
"remeda": "^2.22.6",
|
|
35
|
-
"@milaboratories/resolve-helper": "^1.1.0",
|
|
36
|
-
"@milaboratories/computable": "^2.5.1",
|
|
37
35
|
"@milaboratories/pl-http": "^1.1.4",
|
|
38
|
-
"@
|
|
39
|
-
"@milaboratories/pl-drivers": "^1.5.78",
|
|
40
|
-
"@milaboratories/pl-model-backend": "^1.1.2",
|
|
41
|
-
"@milaboratories/pl-model-middle-layer": "^1.7.42",
|
|
36
|
+
"@milaboratories/resolve-helper": "^1.1.0",
|
|
42
37
|
"@milaboratories/pl-client": "^2.11.2",
|
|
43
|
-
"@milaboratories/pl-
|
|
44
|
-
"@
|
|
45
|
-
"@
|
|
38
|
+
"@milaboratories/pl-drivers": "^1.6.0",
|
|
39
|
+
"@milaboratories/computable": "^2.6.0",
|
|
40
|
+
"@platforma-sdk/block-tools": "^2.5.62",
|
|
41
|
+
"@milaboratories/pl-model-middle-layer": "~1.7.44",
|
|
42
|
+
"@milaboratories/pl-model-common": "~1.16.0",
|
|
43
|
+
"@milaboratories/pl-tree": "~1.7.0",
|
|
44
|
+
"@platforma-sdk/model": "~1.39.0",
|
|
45
|
+
"@milaboratories/pl-config": "^1.6.1",
|
|
46
46
|
"@milaboratories/ts-helpers": "^1.4.1",
|
|
47
|
+
"@milaboratories/pl-errors": "^1.1.9",
|
|
47
48
|
"@platforma-sdk/workflow-tengo": "4.9.2",
|
|
48
|
-
"@milaboratories/pl-
|
|
49
|
-
"@milaboratories/pl-deployments": "^2.4.3"
|
|
50
|
-
"@milaboratories/pl-errors": "^1.1.9"
|
|
49
|
+
"@milaboratories/pl-model-backend": "~1.1.2",
|
|
50
|
+
"@milaboratories/pl-deployments": "^2.4.3"
|
|
51
51
|
},
|
|
52
52
|
"devDependencies": {
|
|
53
53
|
"semver": "^7.7.2",
|
|
54
54
|
"@types/semver": "^7.7.0",
|
|
55
|
-
"typescript": "~5.
|
|
55
|
+
"typescript": "~5.6.3",
|
|
56
56
|
"vite": "^6.3.5",
|
|
57
57
|
"vitest": "^2.1.9",
|
|
58
58
|
"@types/jest": "^29.5.14",
|
|
@@ -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
|
-
|
|
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
|
|
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
|
|
86
|
+
).config as BlockConfigGeneric;
|
|
87
87
|
|
|
88
88
|
await TestHelpers.withTempRoot(async (pl) => {
|
|
89
89
|
const tree = await SynchronizedTreeState.init(pl, pl.clientRoot, {
|
package/src/debug/index.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
490
|
-
|
|
491
|
-
|
|
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
|
//
|
package/src/js_render/context.ts
CHANGED
|
@@ -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
|
}
|
package/src/js_render/index.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { MiddleLayerEnvironment } from '../middle_layer/middle_layer';
|
|
2
|
-
import type {
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
};
|
|
@@ -18,7 +18,7 @@ export class NavigationStates {
|
|
|
18
18
|
return;
|
|
19
19
|
}
|
|
20
20
|
entry.state = { ...state };
|
|
21
|
-
entry.change.markChanged();
|
|
21
|
+
entry.change.markChanged('navigation state changed');
|
|
22
22
|
}
|
|
23
23
|
|
|
24
24
|
private readState(ctx: ComputableCtx, blockId: string): NavigationState {
|
|
@@ -44,7 +44,7 @@ export class NavigationStates {
|
|
|
44
44
|
const entry = this.states.get(blockId);
|
|
45
45
|
if (entry !== undefined) {
|
|
46
46
|
this.states.delete(blockId);
|
|
47
|
-
entry.change.markChanged();
|
|
47
|
+
entry.change.markChanged('block deleted');
|
|
48
48
|
}
|
|
49
49
|
}
|
|
50
50
|
}
|