@platforma-sdk/test 1.58.7 → 1.58.11

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.
@@ -0,0 +1,29 @@
1
+ //#region \0rolldown/runtime.js
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __copyProps = (to, from, except, desc) => {
9
+ if (from && typeof from === "object" || typeof from === "function") {
10
+ for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
11
+ key = keys[i];
12
+ if (!__hasOwnProp.call(to, key) && key !== except) {
13
+ __defProp(to, key, {
14
+ get: ((k) => from[k]).bind(null, key),
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ }
19
+ }
20
+ return to;
21
+ };
22
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
23
+ value: mod,
24
+ enumerable: true
25
+ }) : target, mod));
26
+
27
+ //#endregion
28
+
29
+ exports.__toESM = __toESM;
package/dist/index.cjs CHANGED
@@ -1,39 +1,23 @@
1
- 'use strict';
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
2
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
3
+ const require_test_pl = require('./test-pl.cjs');
4
+ const require_test_template = require('./test-template.cjs');
5
+ const require_util = require('./util.cjs');
6
+ const require_test_block = require('./test-block.cjs');
7
+ let _milaboratories_pl_middle_layer = require("@milaboratories/pl-middle-layer");
8
+ _milaboratories_pl_middle_layer = require_runtime.__toESM(_milaboratories_pl_middle_layer);
2
9
 
3
- var testPl = require('./test-pl.cjs');
4
- var testTemplate = require('./test-template.cjs');
5
- var testBlock = require('./test-block.cjs');
6
- var util = require('./util.cjs');
7
- var plMiddleLayer = require('@milaboratories/pl-middle-layer');
8
-
9
- function _interopNamespaceDefault(e) {
10
- var n = Object.create(null);
11
- if (e) {
12
- Object.keys(e).forEach(function (k) {
13
- if (k !== 'default') {
14
- var d = Object.getOwnPropertyDescriptor(e, k);
15
- Object.defineProperty(n, k, d.get ? d : {
16
- enumerable: true,
17
- get: function () { return e[k]; }
18
- });
19
- }
20
- });
21
- }
22
- n.default = e;
23
- return Object.freeze(n);
24
- }
25
-
26
- var plMiddleLayer__namespace = /*#__PURE__*/_interopNamespaceDefault(plMiddleLayer);
27
-
28
-
29
-
30
- exports.plTest = testPl.plTest;
31
- exports.TestRenderResults = testTemplate.TestRenderResults;
32
- exports.TestWorkflowResults = testTemplate.TestWorkflowResults;
33
- exports.TplTestHelpers = testTemplate.TplTestHelpers;
34
- exports.tplTest = testTemplate.tplTest;
35
- exports.DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT = testBlock.DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT;
36
- exports.blockTest = testBlock.blockTest;
37
- exports.awaitStableState = util.awaitStableState;
38
- exports.ML = plMiddleLayer__namespace;
39
- //# sourceMappingURL=index.cjs.map
10
+ exports.DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT = require_test_block.DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT;
11
+ Object.defineProperty(exports, 'ML', {
12
+ enumerable: true,
13
+ get: function () {
14
+ return _milaboratories_pl_middle_layer;
15
+ }
16
+ });
17
+ exports.TestRenderResults = require_test_template.TestRenderResults;
18
+ exports.TestWorkflowResults = require_test_template.TestWorkflowResults;
19
+ exports.TplTestHelpers = require_test_template.TplTestHelpers;
20
+ exports.awaitStableState = require_util.awaitStableState;
21
+ exports.blockTest = require_test_block.blockTest;
22
+ exports.plTest = require_test_pl.plTest;
23
+ exports.tplTest = require_test_template.tplTest;
package/dist/index.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- export * from "./test-pl";
2
- export * from "./test-template";
3
- export * from "./test-block";
4
- export { awaitStableState } from "./util";
5
- export * as ML from "@milaboratories/pl-middle-layer";
6
- //# sourceMappingURL=index.d.ts.map
1
+ import { plTest } from "./test-pl.js";
2
+ import { TestRenderResults, TestWorkflowResults, TplTestHelpers, WorkflowRenderOps, tplTest } from "./test-template.js";
3
+ import { AwaitBlockDoneNormalized, AwaitBlockDoneOps, DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT, RawHelpers, blockTest } from "./test-block.js";
4
+ import { awaitStableState } from "./util.js";
5
+ import * as ML from "@milaboratories/pl-middle-layer";
6
+ export { AwaitBlockDoneNormalized, AwaitBlockDoneOps, DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT, ML, RawHelpers, TestRenderResults, TestWorkflowResults, TplTestHelpers, WorkflowRenderOps, awaitStableState, blockTest, plTest, tplTest };
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
- export { plTest } from './test-pl.js';
2
- export { TestRenderResults, TestWorkflowResults, TplTestHelpers, tplTest } from './test-template.js';
3
- export { DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT, blockTest } from './test-block.js';
4
- export { awaitStableState } from './util.js';
5
- import * as plMiddleLayer from '@milaboratories/pl-middle-layer';
6
- export { plMiddleLayer as ML };
7
- //# sourceMappingURL=index.js.map
1
+ import { plTest } from "./test-pl.js";
2
+ import { TestRenderResults, TestWorkflowResults, TplTestHelpers, tplTest } from "./test-template.js";
3
+ import { awaitStableState } from "./util.js";
4
+ import { DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT, blockTest } from "./test-block.js";
5
+ import * as ML from "@milaboratories/pl-middle-layer";
6
+
7
+ export { DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT, ML, TestRenderResults, TestWorkflowResults, TplTestHelpers, awaitStableState, blockTest, plTest, tplTest };
@@ -1,135 +1,105 @@
1
- 'use strict';
2
-
3
- var path = require('node:path');
4
- var fsp = require('node:fs/promises');
5
- var plMiddleLayer = require('@milaboratories/pl-middle-layer');
6
- var testPl = require('./test-pl.cjs');
7
- var util = require('./util.cjs');
8
-
9
- function _interopNamespaceDefault(e) {
10
- var n = Object.create(null);
11
- if (e) {
12
- Object.keys(e).forEach(function (k) {
13
- if (k !== 'default') {
14
- var d = Object.getOwnPropertyDescriptor(e, k);
15
- Object.defineProperty(n, k, d.get ? d : {
16
- enumerable: true,
17
- get: function () { return e[k]; }
18
- });
19
- }
20
- });
21
- }
22
- n.default = e;
23
- return Object.freeze(n);
24
- }
25
-
26
- var fsp__namespace = /*#__PURE__*/_interopNamespaceDefault(fsp);
1
+ const require_runtime = require('./_virtual/_rolldown/runtime.cjs');
2
+ const require_test_pl = require('./test-pl.cjs');
3
+ const require_util = require('./util.cjs');
4
+ let _milaboratories_pl_middle_layer = require("@milaboratories/pl-middle-layer");
5
+ let node_fs_promises = require("node:fs/promises");
6
+ node_fs_promises = require_runtime.__toESM(node_fs_promises);
7
+ let node_path = require("node:path");
8
+ node_path = require_runtime.__toESM(node_path);
27
9
 
10
+ //#region src/test-block.ts
28
11
  function normalizeABDOpts(timeoutOrOps) {
29
- let ops = {};
30
- if (timeoutOrOps !== undefined) {
31
- if (typeof timeoutOrOps === "object" && !(timeoutOrOps instanceof AbortSignal))
32
- ops = { ...ops, ...timeoutOrOps };
33
- else
34
- ops.timeout = timeoutOrOps;
35
- }
36
- const abortSignal = typeof ops.timeout === "undefined"
37
- ? AbortSignal.timeout(DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT)
38
- : typeof ops.timeout === "number"
39
- ? AbortSignal.timeout(ops.timeout)
40
- : ops.timeout;
41
- return {
42
- timeout: abortSignal,
43
- ignoreBlockError: Boolean(ops.ignoreBlockError),
44
- };
12
+ let ops = {};
13
+ if (timeoutOrOps !== void 0) if (typeof timeoutOrOps === "object" && !(timeoutOrOps instanceof AbortSignal)) ops = {
14
+ ...ops,
15
+ ...timeoutOrOps
16
+ };
17
+ else ops.timeout = timeoutOrOps;
18
+ return {
19
+ timeout: typeof ops.timeout === "undefined" ? AbortSignal.timeout(DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT) : typeof ops.timeout === "number" ? AbortSignal.timeout(ops.timeout) : ops.timeout,
20
+ ignoreBlockError: Boolean(ops.ignoreBlockError)
21
+ };
45
22
  }
46
- const DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT = 5000;
23
+ const DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT = 5e3;
47
24
  async function awaitBlockDone(prj, blockId, timeoutOrOps) {
48
- const ops = normalizeABDOpts(timeoutOrOps);
49
- const overview = prj.overview;
50
- const state = prj.getBlockState(blockId);
51
- while (true) {
52
- const overviewSnapshot = (await overview.getValue());
53
- const blockOverview = overviewSnapshot.blocks.find((b) => b.id == blockId);
54
- if (blockOverview === undefined)
55
- throw new Error(`Blocks not found: ${blockId}`);
56
- if (blockOverview.outputErrors) {
57
- if (ops.ignoreBlockError)
58
- return;
59
- else {
60
- let errorMessage = blockOverview.outputsError;
61
- if (errorMessage === undefined)
62
- errorMessage = blockOverview.exportsError;
63
- throw new Error("Block error: " + (errorMessage ?? "no message"));
64
- }
65
- }
66
- if (blockOverview.calculationStatus === "Done")
67
- return;
68
- if (blockOverview.calculationStatus !== "Running")
69
- throw new Error(`Unexpected block status, block not calculating anything at the moment: ${blockOverview.calculationStatus}`);
70
- try {
71
- await overview.awaitChange(ops.timeout);
72
- }
73
- catch (e) {
74
- console.dir(blockOverview, { depth: 5 });
75
- console.dir(await state.getValue(), { depth: 5 });
76
- throw new Error("Aborted while awaiting block done.", { cause: e });
77
- }
78
- }
25
+ const ops = normalizeABDOpts(timeoutOrOps);
26
+ const overview = prj.overview;
27
+ const state = prj.getBlockState(blockId);
28
+ while (true) {
29
+ const blockOverview = (await overview.getValue()).blocks.find((b) => b.id == blockId);
30
+ if (blockOverview === void 0) throw new Error(`Blocks not found: ${blockId}`);
31
+ if (blockOverview.outputErrors) if (ops.ignoreBlockError) return;
32
+ else {
33
+ let errorMessage = blockOverview.outputsError;
34
+ if (errorMessage === void 0) errorMessage = blockOverview.exportsError;
35
+ throw new Error("Block error: " + (errorMessage ?? "no message"));
36
+ }
37
+ if (blockOverview.calculationStatus === "Done") return;
38
+ if (blockOverview.calculationStatus !== "Running") throw new Error(`Unexpected block status, block not calculating anything at the moment: ${blockOverview.calculationStatus}`);
39
+ try {
40
+ await overview.awaitChange(ops.timeout);
41
+ } catch (e) {
42
+ console.dir(blockOverview, { depth: 5 });
43
+ console.dir(await state.getValue(), { depth: 5 });
44
+ throw new Error("Aborted while awaiting block done.", { cause: e });
45
+ }
46
+ }
79
47
  }
80
- const blockTest = testPl.plTest.extend({
81
- ml: async ({ pl, tmpFolder }, use) => {
82
- const frontendFolder = path.join(tmpFolder, "frontend");
83
- const downloadFolder = path.join(tmpFolder, "download");
84
- await fsp__namespace.mkdir(frontendFolder, { recursive: true });
85
- await fsp__namespace.mkdir(downloadFolder, { recursive: true });
86
- const ml = await plMiddleLayer.MiddleLayer.init(pl, tmpFolder, {
87
- defaultTreeOptions: { pollingInterval: 250, stopPollingDelay: 500 },
88
- devBlockUpdateRecheckInterval: 300,
89
- localSecret: plMiddleLayer.MiddleLayer.generateLocalSecret(),
90
- localProjections: [], // TODO must be different with local pl
91
- openFileDialogCallback: () => {
92
- throw new Error("Not implemented.");
93
- },
94
- });
95
- ml.addRuntimeCapability("requiresUIAPIVersion", 1);
96
- ml.addRuntimeCapability("requiresUIAPIVersion", 2);
97
- ml.addRuntimeCapability("requiresUIAPIVersion", 3);
98
- try {
99
- await use(ml);
100
- }
101
- finally {
102
- await ml.close();
103
- }
104
- },
105
- rawPrj: async ({ ml }, use) => {
106
- const pRid1 = await ml.createProject({ label: "Test Project" }, "test_project");
107
- await ml.openProject(pRid1);
108
- const prj = ml.getOpenedProject(pRid1);
109
- try {
110
- await use(prj);
111
- }
112
- finally {
113
- ml.closeProject(pRid1);
114
- }
115
- },
116
- helpers: async ({ ml, rawPrj }, use) => {
117
- await use({
118
- async awaitBlockDone(blockId, timeout) {
119
- await awaitBlockDone(rawPrj, blockId, timeout);
120
- },
121
- awaitBlockDoneAndGetStableBlockState: async (blockId, timeoutOrOps) => {
122
- const ops = normalizeABDOpts(timeoutOrOps);
123
- await awaitBlockDone(rawPrj, blockId, ops);
124
- return (await util.awaitStableState(rawPrj.getBlockState(blockId), ops.timeout));
125
- },
126
- async getLocalFileHandle(localPath) {
127
- return await ml.internalDriverKit.lsDriver.getLocalFileHandle(path.resolve(localPath));
128
- },
129
- });
130
- },
48
+ const blockTest = require_test_pl.plTest.extend({
49
+ ml: async ({ pl, tmpFolder }, use) => {
50
+ const frontendFolder = node_path.default.join(tmpFolder, "frontend");
51
+ const downloadFolder = node_path.default.join(tmpFolder, "download");
52
+ await node_fs_promises.mkdir(frontendFolder, { recursive: true });
53
+ await node_fs_promises.mkdir(downloadFolder, { recursive: true });
54
+ const ml = await _milaboratories_pl_middle_layer.MiddleLayer.init(pl, tmpFolder, {
55
+ defaultTreeOptions: {
56
+ pollingInterval: 250,
57
+ stopPollingDelay: 500
58
+ },
59
+ devBlockUpdateRecheckInterval: 300,
60
+ localSecret: _milaboratories_pl_middle_layer.MiddleLayer.generateLocalSecret(),
61
+ localProjections: [],
62
+ openFileDialogCallback: () => {
63
+ throw new Error("Not implemented.");
64
+ }
65
+ });
66
+ ml.addRuntimeCapability("requiresUIAPIVersion", 1);
67
+ ml.addRuntimeCapability("requiresUIAPIVersion", 2);
68
+ ml.addRuntimeCapability("requiresUIAPIVersion", 3);
69
+ try {
70
+ await use(ml);
71
+ } finally {
72
+ await ml.close();
73
+ }
74
+ },
75
+ rawPrj: async ({ ml }, use) => {
76
+ const pRid1 = await ml.createProject({ label: "Test Project" }, "test_project");
77
+ await ml.openProject(pRid1);
78
+ const prj = ml.getOpenedProject(pRid1);
79
+ try {
80
+ await use(prj);
81
+ } finally {
82
+ ml.closeProject(pRid1);
83
+ }
84
+ },
85
+ helpers: async ({ ml, rawPrj }, use) => {
86
+ await use({
87
+ async awaitBlockDone(blockId, timeout) {
88
+ await awaitBlockDone(rawPrj, blockId, timeout);
89
+ },
90
+ awaitBlockDoneAndGetStableBlockState: async (blockId, timeoutOrOps) => {
91
+ const ops = normalizeABDOpts(timeoutOrOps);
92
+ await awaitBlockDone(rawPrj, blockId, ops);
93
+ return await require_util.awaitStableState(rawPrj.getBlockState(blockId), ops.timeout);
94
+ },
95
+ async getLocalFileHandle(localPath) {
96
+ return await ml.internalDriverKit.lsDriver.getLocalFileHandle(node_path.default.resolve(localPath));
97
+ }
98
+ });
99
+ }
131
100
  });
132
101
 
102
+ //#endregion
133
103
  exports.DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT = DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT;
134
104
  exports.blockTest = blockTest;
135
- //# sourceMappingURL=test-block.cjs.map
105
+ //# sourceMappingURL=test-block.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"test-block.cjs","sources":["../src/test-block.ts"],"sourcesContent":["import path from \"node:path\";\nimport * as fsp from \"node:fs/promises\";\nimport type {\n InferBlockState,\n LocalImportFileHandle,\n Platforma,\n Project,\n} from \"@milaboratories/pl-middle-layer\";\nimport { MiddleLayer } from \"@milaboratories/pl-middle-layer\";\nimport { plTest } from \"./test-pl\";\nimport { awaitStableState } from \"./util\";\n\nexport type AwaitBlockDoneOps = {\n timeout?: number | AbortSignal;\n ignoreBlockError?: boolean;\n};\n\nexport type AwaitBlockDoneNormalized = {\n timeout: AbortSignal;\n ignoreBlockError: boolean;\n};\n\nfunction normalizeABDOpts(timeoutOrOps?: number | AwaitBlockDoneOps): AwaitBlockDoneNormalized {\n let ops: AwaitBlockDoneOps = {};\n if (timeoutOrOps !== undefined) {\n if (typeof timeoutOrOps === \"object\" && !(timeoutOrOps instanceof AbortSignal))\n ops = { ...ops, ...timeoutOrOps };\n else ops.timeout = timeoutOrOps;\n }\n const abortSignal =\n typeof ops.timeout === \"undefined\"\n ? AbortSignal.timeout(DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT)\n : typeof ops.timeout === \"number\"\n ? AbortSignal.timeout(ops.timeout)\n : ops.timeout;\n return {\n timeout: abortSignal,\n ignoreBlockError: Boolean(ops.ignoreBlockError),\n };\n}\n\nexport const DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT = 5000;\n\nasync function awaitBlockDone(\n prj: Project,\n blockId: string,\n timeoutOrOps?: number | AwaitBlockDoneOps,\n) {\n const ops = normalizeABDOpts(timeoutOrOps);\n const overview = prj.overview;\n const state = prj.getBlockState(blockId);\n while (true) {\n const overviewSnapshot = (await overview.getValue())!;\n const blockOverview = overviewSnapshot.blocks.find((b) => b.id == blockId);\n if (blockOverview === undefined) throw new Error(`Blocks not found: ${blockId}`);\n if (blockOverview.outputErrors) {\n if (ops.ignoreBlockError) return;\n else {\n let errorMessage = blockOverview.outputsError;\n if (errorMessage === undefined) errorMessage = blockOverview.exportsError;\n throw new Error(\"Block error: \" + (errorMessage ?? \"no message\"));\n }\n }\n if (blockOverview.calculationStatus === \"Done\") return;\n if (blockOverview.calculationStatus !== \"Running\")\n throw new Error(\n `Unexpected block status, block not calculating anything at the moment: ${blockOverview.calculationStatus}`,\n );\n try {\n await overview.awaitChange(ops.timeout);\n } catch (e: any) {\n console.dir(blockOverview, { depth: 5 });\n console.dir(await state.getValue(), { depth: 5 });\n throw new Error(\"Aborted while awaiting block done.\", { cause: e });\n }\n }\n}\n\nexport interface RawHelpers {\n awaitBlockDone(blockId: string, timeoutOrOps?: number | AwaitBlockDoneOps): Promise<void>;\n awaitBlockDoneAndGetStableBlockState<Pl extends Platforma>(\n blockId: string,\n timeoutOrOps?: number | AwaitBlockDoneOps,\n ): Promise<InferBlockState<Pl>>;\n getLocalFileHandle(localPath: string): Promise<LocalImportFileHandle>;\n}\n\nexport const blockTest = plTest.extend<{\n ml: MiddleLayer;\n rawPrj: Project;\n helpers: RawHelpers;\n}>({\n ml: async ({ pl, tmpFolder }, use) => {\n const frontendFolder = path.join(tmpFolder, \"frontend\");\n const downloadFolder = path.join(tmpFolder, \"download\");\n await fsp.mkdir(frontendFolder, { recursive: true });\n await fsp.mkdir(downloadFolder, { recursive: true });\n\n const ml = await MiddleLayer.init(pl, tmpFolder, {\n defaultTreeOptions: { pollingInterval: 250, stopPollingDelay: 500 },\n devBlockUpdateRecheckInterval: 300,\n localSecret: MiddleLayer.generateLocalSecret(),\n localProjections: [], // TODO must be different with local pl\n openFileDialogCallback: () => {\n throw new Error(\"Not implemented.\");\n },\n });\n ml.addRuntimeCapability(\"requiresUIAPIVersion\", 1);\n ml.addRuntimeCapability(\"requiresUIAPIVersion\", 2);\n ml.addRuntimeCapability(\"requiresUIAPIVersion\", 3);\n\n try {\n await use(ml);\n } finally {\n await ml.close();\n }\n },\n rawPrj: async ({ ml }, use) => {\n const pRid1 = await ml.createProject({ label: \"Test Project\" }, \"test_project\");\n await ml.openProject(pRid1);\n const prj = ml.getOpenedProject(pRid1);\n try {\n await use(prj);\n } finally {\n ml.closeProject(pRid1);\n }\n },\n helpers: async ({ ml, rawPrj }, use) => {\n await use({\n async awaitBlockDone(blockId, timeout) {\n await awaitBlockDone(rawPrj, blockId, timeout);\n },\n awaitBlockDoneAndGetStableBlockState: async <Pl extends Platforma>(\n blockId: string,\n timeoutOrOps?: number | AwaitBlockDoneOps,\n ) => {\n const ops = normalizeABDOpts(timeoutOrOps);\n await awaitBlockDone(rawPrj, blockId, ops);\n return (await awaitStableState(\n rawPrj.getBlockState(blockId),\n ops.timeout,\n )) as InferBlockState<Pl>;\n },\n async getLocalFileHandle(localPath) {\n return await ml.internalDriverKit.lsDriver.getLocalFileHandle(path.resolve(localPath));\n },\n });\n },\n});\n"],"names":["plTest","fsp","MiddleLayer","awaitStableState"],"mappings":"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"}
1
+ {"version":3,"file":"test-block.cjs","names":["plTest","path","fsp","MiddleLayer","awaitStableState"],"sources":["../src/test-block.ts"],"sourcesContent":["import path from \"node:path\";\nimport * as fsp from \"node:fs/promises\";\nimport type {\n InferBlockState,\n LocalImportFileHandle,\n Platforma,\n Project,\n} from \"@milaboratories/pl-middle-layer\";\nimport { MiddleLayer } from \"@milaboratories/pl-middle-layer\";\nimport { plTest } from \"./test-pl\";\nimport { awaitStableState } from \"./util\";\n\nexport type AwaitBlockDoneOps = {\n timeout?: number | AbortSignal;\n ignoreBlockError?: boolean;\n};\n\nexport type AwaitBlockDoneNormalized = {\n timeout: AbortSignal;\n ignoreBlockError: boolean;\n};\n\nfunction normalizeABDOpts(timeoutOrOps?: number | AwaitBlockDoneOps): AwaitBlockDoneNormalized {\n let ops: AwaitBlockDoneOps = {};\n if (timeoutOrOps !== undefined) {\n if (typeof timeoutOrOps === \"object\" && !(timeoutOrOps instanceof AbortSignal))\n ops = { ...ops, ...timeoutOrOps };\n else ops.timeout = timeoutOrOps;\n }\n const abortSignal =\n typeof ops.timeout === \"undefined\"\n ? AbortSignal.timeout(DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT)\n : typeof ops.timeout === \"number\"\n ? AbortSignal.timeout(ops.timeout)\n : ops.timeout;\n return {\n timeout: abortSignal,\n ignoreBlockError: Boolean(ops.ignoreBlockError),\n };\n}\n\nexport const DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT = 5000;\n\nasync function awaitBlockDone(\n prj: Project,\n blockId: string,\n timeoutOrOps?: number | AwaitBlockDoneOps,\n) {\n const ops = normalizeABDOpts(timeoutOrOps);\n const overview = prj.overview;\n const state = prj.getBlockState(blockId);\n while (true) {\n const overviewSnapshot = (await overview.getValue())!;\n const blockOverview = overviewSnapshot.blocks.find((b) => b.id == blockId);\n if (blockOverview === undefined) throw new Error(`Blocks not found: ${blockId}`);\n if (blockOverview.outputErrors) {\n if (ops.ignoreBlockError) return;\n else {\n let errorMessage = blockOverview.outputsError;\n if (errorMessage === undefined) errorMessage = blockOverview.exportsError;\n throw new Error(\"Block error: \" + (errorMessage ?? \"no message\"));\n }\n }\n if (blockOverview.calculationStatus === \"Done\") return;\n if (blockOverview.calculationStatus !== \"Running\")\n throw new Error(\n `Unexpected block status, block not calculating anything at the moment: ${blockOverview.calculationStatus}`,\n );\n try {\n await overview.awaitChange(ops.timeout);\n } catch (e: any) {\n console.dir(blockOverview, { depth: 5 });\n console.dir(await state.getValue(), { depth: 5 });\n throw new Error(\"Aborted while awaiting block done.\", { cause: e });\n }\n }\n}\n\nexport interface RawHelpers {\n awaitBlockDone(blockId: string, timeoutOrOps?: number | AwaitBlockDoneOps): Promise<void>;\n awaitBlockDoneAndGetStableBlockState<Pl extends Platforma>(\n blockId: string,\n timeoutOrOps?: number | AwaitBlockDoneOps,\n ): Promise<InferBlockState<Pl>>;\n getLocalFileHandle(localPath: string): Promise<LocalImportFileHandle>;\n}\n\nexport const blockTest = plTest.extend<{\n ml: MiddleLayer;\n rawPrj: Project;\n helpers: RawHelpers;\n}>({\n ml: async ({ pl, tmpFolder }, use) => {\n const frontendFolder = path.join(tmpFolder, \"frontend\");\n const downloadFolder = path.join(tmpFolder, \"download\");\n await fsp.mkdir(frontendFolder, { recursive: true });\n await fsp.mkdir(downloadFolder, { recursive: true });\n\n const ml = await MiddleLayer.init(pl, tmpFolder, {\n defaultTreeOptions: { pollingInterval: 250, stopPollingDelay: 500 },\n devBlockUpdateRecheckInterval: 300,\n localSecret: MiddleLayer.generateLocalSecret(),\n localProjections: [], // TODO must be different with local pl\n openFileDialogCallback: () => {\n throw new Error(\"Not implemented.\");\n },\n });\n ml.addRuntimeCapability(\"requiresUIAPIVersion\", 1);\n ml.addRuntimeCapability(\"requiresUIAPIVersion\", 2);\n ml.addRuntimeCapability(\"requiresUIAPIVersion\", 3);\n\n try {\n await use(ml);\n } finally {\n await ml.close();\n }\n },\n rawPrj: async ({ ml }, use) => {\n const pRid1 = await ml.createProject({ label: \"Test Project\" }, \"test_project\");\n await ml.openProject(pRid1);\n const prj = ml.getOpenedProject(pRid1);\n try {\n await use(prj);\n } finally {\n ml.closeProject(pRid1);\n }\n },\n helpers: async ({ ml, rawPrj }, use) => {\n await use({\n async awaitBlockDone(blockId, timeout) {\n await awaitBlockDone(rawPrj, blockId, timeout);\n },\n awaitBlockDoneAndGetStableBlockState: async <Pl extends Platforma>(\n blockId: string,\n timeoutOrOps?: number | AwaitBlockDoneOps,\n ) => {\n const ops = normalizeABDOpts(timeoutOrOps);\n await awaitBlockDone(rawPrj, blockId, ops);\n return (await awaitStableState(\n rawPrj.getBlockState(blockId),\n ops.timeout,\n )) as InferBlockState<Pl>;\n },\n async getLocalFileHandle(localPath) {\n return await ml.internalDriverKit.lsDriver.getLocalFileHandle(path.resolve(localPath));\n },\n });\n },\n});\n"],"mappings":"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"}
@@ -1,26 +1,32 @@
1
- import type { InferBlockState, LocalImportFileHandle, Platforma, Project } from "@milaboratories/pl-middle-layer";
2
- import { MiddleLayer } from "@milaboratories/pl-middle-layer";
3
- export type AwaitBlockDoneOps = {
4
- timeout?: number | AbortSignal;
5
- ignoreBlockError?: boolean;
1
+ import { InferBlockState, LocalImportFileHandle, MiddleLayer, Platforma, Project } from "@milaboratories/pl-middle-layer";
2
+ import * as _milaboratories_pl_tree0 from "@milaboratories/pl-tree";
3
+ import * as vitest from "vitest";
4
+ import * as _milaboratories_pl_client0 from "@milaboratories/pl-client";
5
+
6
+ //#region src/test-block.d.ts
7
+ type AwaitBlockDoneOps = {
8
+ timeout?: number | AbortSignal;
9
+ ignoreBlockError?: boolean;
6
10
  };
7
- export type AwaitBlockDoneNormalized = {
8
- timeout: AbortSignal;
9
- ignoreBlockError: boolean;
11
+ type AwaitBlockDoneNormalized = {
12
+ timeout: AbortSignal;
13
+ ignoreBlockError: boolean;
10
14
  };
11
- export declare const DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT = 5000;
12
- export interface RawHelpers {
13
- awaitBlockDone(blockId: string, timeoutOrOps?: number | AwaitBlockDoneOps): Promise<void>;
14
- awaitBlockDoneAndGetStableBlockState<Pl extends Platforma>(blockId: string, timeoutOrOps?: number | AwaitBlockDoneOps): Promise<InferBlockState<Pl>>;
15
- getLocalFileHandle(localPath: string): Promise<LocalImportFileHandle>;
15
+ declare const DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT = 5000;
16
+ interface RawHelpers {
17
+ awaitBlockDone(blockId: string, timeoutOrOps?: number | AwaitBlockDoneOps): Promise<void>;
18
+ awaitBlockDoneAndGetStableBlockState<Pl extends Platforma>(blockId: string, timeoutOrOps?: number | AwaitBlockDoneOps): Promise<InferBlockState<Pl>>;
19
+ getLocalFileHandle(localPath: string): Promise<LocalImportFileHandle>;
16
20
  }
17
- export declare const blockTest: import("vitest").TestAPI<{
18
- pl: import("@milaboratories/pl-middle-layer").PlClient;
19
- createTree: (res: import("@milaboratories/pl-middle-layer").ResourceId, ops?: import("@milaboratories/pl-tree").SynchronizedTreeOps) => Promise<import("@milaboratories/pl-tree").SynchronizedTreeState>;
20
- rootTree: import("@milaboratories/pl-tree").SynchronizedTreeState;
21
- tmpFolder: string;
22
- ml: MiddleLayer;
23
- rawPrj: Project;
24
- helpers: RawHelpers;
21
+ declare const blockTest: vitest.TestAPI<{
22
+ pl: _milaboratories_pl_client0.PlClient;
23
+ createTree: (res: _milaboratories_pl_client0.ResourceId, ops?: _milaboratories_pl_tree0.SynchronizedTreeOps) => Promise<_milaboratories_pl_tree0.SynchronizedTreeState>;
24
+ rootTree: _milaboratories_pl_tree0.SynchronizedTreeState;
25
+ tmpFolder: string;
26
+ ml: MiddleLayer;
27
+ rawPrj: Project;
28
+ helpers: RawHelpers;
25
29
  }>;
30
+ //#endregion
31
+ export { AwaitBlockDoneNormalized, AwaitBlockDoneOps, DEFAULT_AWAIT_BLOCK_DONE_TIMEOUT, RawHelpers, blockTest };
26
32
  //# sourceMappingURL=test-block.d.ts.map