@milaboratories/pl-middle-layer 1.33.3 → 1.34.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/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +241 -226
- package/dist/index.mjs.map +1 -1
- package/dist/js_render/context.d.ts +11 -1
- package/dist/js_render/context.d.ts.map +1 -1
- package/dist/js_render/index.d.ts.map +1 -1
- package/package.json +8 -8
- package/src/js_render/context.ts +18 -0
- package/src/js_render/index.ts +10 -1
|
@@ -4,11 +4,21 @@ import { QuickJSContext, QuickJSHandle, Scope } from 'quickjs-emscripten';
|
|
|
4
4
|
import { Optional } from 'utility-types';
|
|
5
5
|
import { BlockContextAny } from '../middle_layer/block_ctx';
|
|
6
6
|
import { MiddleLayerEnvironment } from '../middle_layer/middle_layer';
|
|
7
|
+
export type DeadlineSettings = {
|
|
8
|
+
currentExecutionTarget: string;
|
|
9
|
+
deadline: number;
|
|
10
|
+
};
|
|
11
|
+
/**
|
|
12
|
+
* Communicates a deadline to the quickjs runtime, that if passed, will interrupt the execution.
|
|
13
|
+
* Undefined can be used to reset the deadline.
|
|
14
|
+
* */
|
|
15
|
+
export type DeadlineSetter = (settings: DeadlineSettings | undefined) => void;
|
|
7
16
|
export declare class JsExecutionContext implements JsRenderInternal.GlobalCfgRenderCtxMethods<string, string> {
|
|
8
17
|
private readonly scope;
|
|
9
18
|
private readonly vm;
|
|
10
19
|
private readonly blockCtx;
|
|
11
20
|
private readonly env;
|
|
21
|
+
private readonly deadlineSetter;
|
|
12
22
|
private readonly callbackRegistry;
|
|
13
23
|
private readonly fnJSONStringify;
|
|
14
24
|
private readonly fnJSONParse;
|
|
@@ -17,7 +27,7 @@ export declare class JsExecutionContext implements JsRenderInternal.GlobalCfgRen
|
|
|
17
27
|
private readonly accessors;
|
|
18
28
|
private readonly meta;
|
|
19
29
|
private readonly errorRepo;
|
|
20
|
-
constructor(scope: Scope, vm: QuickJSContext, blockCtx: BlockContextAny, env: MiddleLayerEnvironment, computableCtx: ComputableCtx);
|
|
30
|
+
constructor(scope: Scope, vm: QuickJSContext, blockCtx: BlockContextAny, env: MiddleLayerEnvironment, deadlineSetter: DeadlineSetter, computableCtx: ComputableCtx);
|
|
21
31
|
resetComputableCtx(): void;
|
|
22
32
|
private static cleanErrorContext;
|
|
23
33
|
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;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,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,EACb,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,gBAAgB,EAKjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAA4B,MAAM,oBAAoB,CAAC;AAClG,OAAO,EAAE,KAAK,EAAU,MAAM,oBAAoB,CAAC;AACnD,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;
|
|
1
|
+
{"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/js_render/context.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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;AAIxD,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,CA2DrB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@milaboratories/pl-middle-layer",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0",
|
|
4
4
|
"description": "Pl Middle Layer",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=20.16.0"
|
|
@@ -34,19 +34,19 @@
|
|
|
34
34
|
"@milaboratories/pl-http": "^1.1.2",
|
|
35
35
|
"@milaboratories/computable": "^2.4.3",
|
|
36
36
|
"@milaboratories/resolve-helper": "^1.1.0",
|
|
37
|
-
"@milaboratories/pl-client": "^2.7.14",
|
|
38
37
|
"@platforma-sdk/block-tools": "^2.5.35",
|
|
39
|
-
"@milaboratories/pl-
|
|
38
|
+
"@milaboratories/pl-client": "^2.7.14",
|
|
40
39
|
"@milaboratories/pl-model-common": "^1.13.4",
|
|
40
|
+
"@milaboratories/pl-drivers": "^1.5.41",
|
|
41
41
|
"@milaboratories/pl-model-middle-layer": "^1.7.22",
|
|
42
|
-
"@milaboratories/pl-tree": "^1.5.3",
|
|
43
42
|
"@milaboratories/pl-model-backend": "^1.0.4",
|
|
44
|
-
"@
|
|
43
|
+
"@milaboratories/pl-tree": "^1.5.3",
|
|
44
|
+
"@platforma-sdk/model": "^1.28.4",
|
|
45
45
|
"@milaboratories/ts-helpers": "^1.1.5",
|
|
46
|
-
"@platforma-sdk/workflow-tengo": "4.0.
|
|
46
|
+
"@platforma-sdk/workflow-tengo": "4.0.4",
|
|
47
47
|
"@milaboratories/pl-config": "^1.4.5",
|
|
48
|
-
"@milaboratories/pl-
|
|
49
|
-
"@milaboratories/pl-
|
|
48
|
+
"@milaboratories/pl-deployments": "^1.7.2",
|
|
49
|
+
"@milaboratories/pl-errors": "^1.0.4"
|
|
50
50
|
},
|
|
51
51
|
"devDependencies": {
|
|
52
52
|
"semver": "^7.6.3",
|
package/src/js_render/context.ts
CHANGED
|
@@ -41,6 +41,17 @@ import type { ResultPool } from '../pool/result_pool';
|
|
|
41
41
|
import { stringifyWithResourceId } from '@milaboratories/pl-client';
|
|
42
42
|
import { PlQuickJSError } from '@milaboratories/pl-errors';
|
|
43
43
|
|
|
44
|
+
export type DeadlineSettings = {
|
|
45
|
+
currentExecutionTarget: string;
|
|
46
|
+
deadline: number;
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* Communicates a deadline to the quickjs runtime, that if passed, will interrupt the execution.
|
|
51
|
+
* Undefined can be used to reset the deadline.
|
|
52
|
+
* */
|
|
53
|
+
export type DeadlineSetter = (settings: DeadlineSettings | undefined) => void;
|
|
54
|
+
|
|
44
55
|
function isArrayBufferOrView(obj: unknown): obj is ArrayBufferLike {
|
|
45
56
|
return obj instanceof ArrayBuffer || ArrayBuffer.isView(obj);
|
|
46
57
|
}
|
|
@@ -69,6 +80,7 @@ implements JsRenderInternal.GlobalCfgRenderCtxMethods<string, string> {
|
|
|
69
80
|
private readonly vm: QuickJSContext,
|
|
70
81
|
private readonly blockCtx: BlockContextAny,
|
|
71
82
|
private readonly env: MiddleLayerEnvironment,
|
|
83
|
+
private readonly deadlineSetter: DeadlineSetter,
|
|
72
84
|
computableCtx: ComputableCtx,
|
|
73
85
|
) {
|
|
74
86
|
this.computableCtx = computableCtx;
|
|
@@ -101,15 +113,19 @@ implements JsRenderInternal.GlobalCfgRenderCtxMethods<string, string> {
|
|
|
101
113
|
|
|
102
114
|
public evaluateBundle(code: string) {
|
|
103
115
|
try {
|
|
116
|
+
this.deadlineSetter({ currentExecutionTarget: 'evaluateBundle', deadline: Date.now() + 10000 });
|
|
104
117
|
this.vm.unwrapResult(this.vm.evalCode(code, 'bundle.js', { type: 'global' })).dispose();
|
|
105
118
|
} catch (err: unknown) {
|
|
106
119
|
JsExecutionContext.cleanErrorContext(err);
|
|
107
120
|
throw err;
|
|
121
|
+
} finally {
|
|
122
|
+
this.deadlineSetter(undefined);
|
|
108
123
|
}
|
|
109
124
|
}
|
|
110
125
|
|
|
111
126
|
public runCallback(cbName: string, ...args: unknown[]): QuickJSHandle {
|
|
112
127
|
try {
|
|
128
|
+
this.deadlineSetter({ currentExecutionTarget: cbName, deadline: Date.now() + 10000 });
|
|
113
129
|
return Scope.withScope((localScope) => {
|
|
114
130
|
const targetCallback = localScope.manage(this.vm.getProp(this.callbackRegistry, cbName));
|
|
115
131
|
|
|
@@ -130,6 +146,8 @@ implements JsRenderInternal.GlobalCfgRenderCtxMethods<string, string> {
|
|
|
130
146
|
JsExecutionContext.cleanErrorContext(err);
|
|
131
147
|
const original = this.errorRepo.getOriginal(err);
|
|
132
148
|
throw original;
|
|
149
|
+
} finally {
|
|
150
|
+
this.deadlineSetter(undefined);
|
|
133
151
|
}
|
|
134
152
|
}
|
|
135
153
|
|
package/src/js_render/index.ts
CHANGED
|
@@ -3,6 +3,7 @@ import type { Code, ConfigRenderLambda } from '@platforma-sdk/model';
|
|
|
3
3
|
import type { ComputableRenderingOps } from '@milaboratories/computable';
|
|
4
4
|
import { Computable } from '@milaboratories/computable';
|
|
5
5
|
import { Scope } from 'quickjs-emscripten';
|
|
6
|
+
import type { DeadlineSettings } from './context';
|
|
6
7
|
import { JsExecutionContext } from './context';
|
|
7
8
|
import type { BlockContextAny } from '../middle_layer/block_ctx';
|
|
8
9
|
import { LogOutputStatus } from '../middle_layer/util';
|
|
@@ -26,8 +27,16 @@ export function computableFromRF(
|
|
|
26
27
|
const runtime = scope.manage(env.quickJs.newRuntime());
|
|
27
28
|
runtime.setMemoryLimit(1024 * 1024 * 8);
|
|
28
29
|
runtime.setMaxStackSize(1024 * 320);
|
|
30
|
+
|
|
31
|
+
let deadlineSettings: DeadlineSettings | undefined;
|
|
32
|
+
runtime.setInterruptHandler(() => {
|
|
33
|
+
if (deadlineSettings === undefined) return false;
|
|
34
|
+
if (Date.now() > deadlineSettings.deadline) return true;
|
|
35
|
+
return false;
|
|
36
|
+
});
|
|
29
37
|
const vm = scope.manage(runtime.newContext());
|
|
30
|
-
const rCtx = new JsExecutionContext(scope, vm, ctx, env,
|
|
38
|
+
const rCtx = new JsExecutionContext(scope, vm, ctx, env,
|
|
39
|
+
(s) => { deadlineSettings = s; }, cCtx);
|
|
31
40
|
|
|
32
41
|
rCtx.evaluateBundle(code.content);
|
|
33
42
|
const result = rCtx.runCallback(fh.handle);
|