@milaboratories/pl-middle-layer 1.66.18 → 1.67.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/index.cjs +3 -0
- package/dist/block_registry/index.d.ts +2 -1
- package/dist/block_registry/index.js +2 -1
- package/dist/block_registry/location_provider.cjs +117 -0
- package/dist/block_registry/location_provider.cjs.map +1 -0
- package/dist/block_registry/location_provider.js +114 -0
- package/dist/block_registry/location_provider.js.map +1 -0
- package/dist/block_registry/registry.cjs +13 -0
- package/dist/block_registry/registry.cjs.map +1 -1
- package/dist/block_registry/registry.d.ts +14 -1
- package/dist/block_registry/registry.d.ts.map +1 -1
- package/dist/block_registry/registry.js +13 -0
- package/dist/block_registry/registry.js.map +1 -1
- package/dist/block_registry/template_provider.cjs +104 -0
- package/dist/block_registry/template_provider.cjs.map +1 -0
- package/dist/block_registry/template_provider.d.ts +62 -0
- package/dist/block_registry/template_provider.d.ts.map +1 -0
- package/dist/block_registry/template_provider.js +103 -0
- package/dist/block_registry/template_provider.js.map +1 -0
- package/dist/block_registry/watcher.cjs +3 -3
- package/dist/block_registry/watcher.js +2 -2
- package/dist/dev_env/util.js +2 -2
- package/dist/dev_env/util.js.map +1 -1
- package/dist/index.cjs +10 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +5 -1
- package/dist/js_render/computable_context.cjs +1 -1
- package/dist/js_render/computable_context.js +1 -1
- package/dist/middle_layer/driver_kit.d.ts +1 -1
- package/dist/middle_layer/middle_layer.cjs +144 -2
- package/dist/middle_layer/middle_layer.cjs.map +1 -1
- package/dist/middle_layer/middle_layer.d.ts +67 -1
- package/dist/middle_layer/middle_layer.d.ts.map +1 -1
- package/dist/middle_layer/middle_layer.js +146 -4
- package/dist/middle_layer/middle_layer.js.map +1 -1
- package/dist/middle_layer/project.cjs +1 -0
- package/dist/middle_layer/project.cjs.map +1 -1
- package/dist/middle_layer/project.d.ts +2 -2
- package/dist/middle_layer/project.js +4 -4
- package/dist/middle_layer/project.js.map +1 -1
- package/dist/middle_layer/sharing_list.d.ts +1 -1
- package/dist/model/args.cjs +9 -28
- package/dist/model/args.cjs.map +1 -1
- package/dist/model/args.js +9 -28
- package/dist/model/args.js.map +1 -1
- package/dist/model/index.cjs +7 -0
- package/dist/model/index.d.ts +4 -1
- package/dist/model/index.js +4 -1
- package/dist/model/project_helper.cjs +111 -0
- package/dist/model/project_helper.cjs.map +1 -1
- package/dist/model/project_helper.d.ts +76 -1
- package/dist/model/project_helper.d.ts.map +1 -1
- package/dist/model/project_helper.js +111 -0
- package/dist/model/project_helper.js.map +1 -1
- package/dist/model/project_model.d.ts +1 -1
- package/dist/model/sharing_model.d.ts +1 -1
- package/dist/model/template_apply.cjs +67 -0
- package/dist/model/template_apply.cjs.map +1 -0
- package/dist/model/template_apply.d.ts +50 -0
- package/dist/model/template_apply.d.ts.map +1 -0
- package/dist/model/template_apply.js +64 -0
- package/dist/model/template_apply.js.map +1 -0
- package/dist/model/template_export.cjs +82 -0
- package/dist/model/template_export.cjs.map +1 -0
- package/dist/model/template_export.d.ts +9 -0
- package/dist/model/template_export.d.ts.map +1 -0
- package/dist/model/template_export.js +82 -0
- package/dist/model/template_export.js.map +1 -0
- package/dist/model/template_parser.cjs +74 -0
- package/dist/model/template_parser.cjs.map +1 -0
- package/dist/model/template_parser.d.ts +43 -0
- package/dist/model/template_parser.d.ts.map +1 -0
- package/dist/model/template_parser.js +72 -0
- package/dist/model/template_parser.js.map +1 -0
- package/dist/model/template_resolve.cjs +134 -0
- package/dist/model/template_resolve.cjs.map +1 -0
- package/dist/model/template_resolve.d.ts +193 -0
- package/dist/model/template_resolve.d.ts.map +1 -0
- package/dist/model/template_resolve.js +133 -0
- package/dist/model/template_resolve.js.map +1 -0
- package/dist/model/template_serializer.cjs +162 -0
- package/dist/model/template_serializer.cjs.map +1 -0
- package/dist/model/template_serializer.d.ts +17 -0
- package/dist/model/template_serializer.d.ts.map +1 -0
- package/dist/model/template_serializer.js +157 -0
- package/dist/model/template_serializer.js.map +1 -0
- package/dist/mutator/block-pack/block_pack.cjs +1 -1
- package/dist/mutator/block-pack/block_pack.js +1 -1
- package/dist/mutator/migration.cjs +1 -1
- package/dist/mutator/migration.js +1 -1
- package/dist/mutator/project.cjs +35 -5
- package/dist/mutator/project.cjs.map +1 -1
- package/dist/mutator/project.d.ts.map +1 -1
- package/dist/mutator/project.js +35 -5
- package/dist/mutator/project.js.map +1 -1
- package/dist/mutator/template_construct.cjs +77 -0
- package/dist/mutator/template_construct.cjs.map +1 -0
- package/dist/mutator/template_construct.js +77 -0
- package/dist/mutator/template_construct.js.map +1 -0
- package/dist/network_check/template.js +3 -3
- package/dist/network_check/template.js.map +1 -1
- package/package.json +17 -17
- package/src/block_registry/index.ts +1 -0
- package/src/block_registry/location_provider.test.ts +236 -0
- package/src/block_registry/location_provider.ts +124 -0
- package/src/block_registry/registry.ts +22 -0
- package/src/block_registry/template_provider.test.ts +275 -0
- package/src/block_registry/template_provider.ts +168 -0
- package/src/middle_layer/middle_layer.ts +192 -1
- package/src/middle_layer/project.ts +1 -1
- package/src/model/args.test.ts +26 -1
- package/src/model/args.ts +16 -31
- package/src/model/index.ts +21 -0
- package/src/model/project_helper.ts +238 -0
- package/src/model/project_helper_params_init.test.ts +249 -0
- package/src/model/template_apply.test.ts +65 -0
- package/src/model/template_apply.ts +128 -0
- package/src/model/template_export.test.ts +255 -0
- package/src/model/template_export.ts +136 -0
- package/src/model/template_parser.test.ts +264 -0
- package/src/model/template_parser.ts +108 -0
- package/src/model/template_resolve.test.ts +397 -0
- package/src/model/template_resolve.ts +346 -0
- package/src/model/template_serializer.test.ts +398 -0
- package/src/model/template_serializer.ts +232 -0
- package/src/model/template_serializer_fixtures.test.ts +274 -0
- package/src/mutator/project-v3.test.ts +11 -11
- package/src/mutator/project.ts +92 -5
- package/src/mutator/template_construct.test.ts +456 -0
- package/src/mutator/template_construct.ts +150 -0
package/dist/mutator/project.js
CHANGED
|
@@ -4,6 +4,7 @@ import { loadTemplate } from "./template/template_loading.js";
|
|
|
4
4
|
import { BlockPackTemplateField, createBlockPack } from "./block-pack/block_pack.js";
|
|
5
5
|
import { allBlocks, graphDiff, productionGraph, stagingGraph } from "../model/project_model_util.js";
|
|
6
6
|
import { exportContext, getPreparedExportTemplateEnvelope } from "./context_export.js";
|
|
7
|
+
import { exportProjectAsTemplateV1 } from "../model/template_serializer.js";
|
|
7
8
|
import { getDebugFlags } from "../debug/index.js";
|
|
8
9
|
import { BLOCK_STORAGE_FACADE_VERSION, UiError, extractConfig } from "@platforma-sdk/model";
|
|
9
10
|
import { InitialBlockSettings } from "@milaboratories/pl-model-middle-layer";
|
|
@@ -46,12 +47,14 @@ var BlockInfo = class {
|
|
|
46
47
|
fields;
|
|
47
48
|
config;
|
|
48
49
|
source;
|
|
50
|
+
kind;
|
|
49
51
|
logger;
|
|
50
|
-
constructor(id, fields, config, source, logger = new ConsoleLoggerAdapter()) {
|
|
52
|
+
constructor(id, fields, config, source, kind, logger = new ConsoleLoggerAdapter()) {
|
|
51
53
|
this.id = id;
|
|
52
54
|
this.fields = fields;
|
|
53
55
|
this.config = config;
|
|
54
56
|
this.source = source;
|
|
57
|
+
this.kind = kind;
|
|
55
58
|
this.logger = logger;
|
|
56
59
|
}
|
|
57
60
|
check() {
|
|
@@ -241,6 +244,32 @@ var ProjectMutator = class ProjectMutator {
|
|
|
241
244
|
enrichmentTargets: this.projectHelper.getEnrichmentTargets(() => bInfo.config, () => args)
|
|
242
245
|
};
|
|
243
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* Render this project as a `template-v1` YAML document, or report every reason it
|
|
249
|
+
* cannot be.
|
|
250
|
+
*
|
|
251
|
+
* Read-only: it derives params in the VM and touches no field, so a `withProject`
|
|
252
|
+
* wrapper sees `wasModified === false` and skips the commit.
|
|
253
|
+
*
|
|
254
|
+
* This is where the three providers the serializer needs come from, and all are
|
|
255
|
+
* only reachable here. A block's storage lives behind `BlockInfo`, which is
|
|
256
|
+
* populated by the loader's batched round-trips, and both its kind reference and
|
|
257
|
+
* its origin spec are read off the block-pack container during that same load —
|
|
258
|
+
* `config` cannot carry the kind, since `extractConfig` normalizes the render
|
|
259
|
+
* envelope one level below it, and the spec is not part of the config at all.
|
|
260
|
+
*/
|
|
261
|
+
exportAsTemplateV1() {
|
|
262
|
+
return exportProjectAsTemplateV1(this.struct, (blockId) => this.deriveTemplateParams(blockId), (blockId) => this.blockInfos.get(blockId)?.kind, (blockId) => this.blockInfos.get(blockId)?.source);
|
|
263
|
+
}
|
|
264
|
+
deriveTemplateParams(blockId) {
|
|
265
|
+
const info = this.blockInfos.get(blockId);
|
|
266
|
+
if (info === void 0) return void 0;
|
|
267
|
+
const storageJson = info.blockStorageJson;
|
|
268
|
+
if (storageJson === void 0) return void 0;
|
|
269
|
+
const derived = this.projectHelper.deriveTemplateParamsFromStorage(info.config, storageJson);
|
|
270
|
+
if (derived.error !== void 0) return { error: derived.error.message };
|
|
271
|
+
return { value: derived.value };
|
|
272
|
+
}
|
|
244
273
|
getPendingProductionGraph() {
|
|
245
274
|
if (this.pendingProductionGraph === void 0) this.pendingProductionGraph = productionGraph(this.struct, (blockId) => this.getProductionGraphBlockInfo(blockId, false));
|
|
246
275
|
return this.pendingProductionGraph;
|
|
@@ -599,7 +628,7 @@ var ProjectMutator = class ProjectMutator {
|
|
|
599
628
|
if (this.blocksInLimbo.delete(blockId)) this.renderingStateChanged = true;
|
|
600
629
|
}
|
|
601
630
|
initializeNewBlock(blockId, spec) {
|
|
602
|
-
const info = new BlockInfo(blockId, {}, extractConfig(spec.blockPack.config), spec.blockPack.source, this.projectHelper.logger);
|
|
631
|
+
const info = new BlockInfo(blockId, {}, extractConfig(spec.blockPack.config), spec.blockPack.source, spec.blockPack.config.kind, this.projectHelper.logger);
|
|
603
632
|
this.blockInfos.set(blockId, info);
|
|
604
633
|
const bp = createBlockPack(this.tx, spec.blockPack);
|
|
605
634
|
this.setBlockField(blockId, "blockPack", Pl.wrapInHolder(this.tx, bp), "NotReady");
|
|
@@ -609,7 +638,7 @@ var ProjectMutator = class ProjectMutator {
|
|
|
609
638
|
let prerunArgs;
|
|
610
639
|
let storageToWrite;
|
|
611
640
|
if (spec.storageMode === "fromModel") {
|
|
612
|
-
storageToWrite = this.projectHelper.getInitialStorageInVM(blockConfig);
|
|
641
|
+
storageToWrite = spec.initialStorage ?? this.projectHelper.getInitialStorageInVM(blockConfig);
|
|
613
642
|
prerunArgs = this.projectHelper.derivePrerunArgsFromStorage(blockConfig, storageToWrite);
|
|
614
643
|
const deriveArgsResult = this.projectHelper.deriveArgsFromStorage(blockConfig, storageToWrite);
|
|
615
644
|
args = deriveArgsResult.error ? void 0 : deriveArgsResult.value;
|
|
@@ -645,7 +674,7 @@ var ProjectMutator = class ProjectMutator {
|
|
|
645
674
|
]));
|
|
646
675
|
}
|
|
647
676
|
initializeBlockDuplicate(blockId, originalBlockInfo) {
|
|
648
|
-
const info = new BlockInfo(blockId, {}, originalBlockInfo.config, originalBlockInfo.source, this.projectHelper.logger);
|
|
677
|
+
const info = new BlockInfo(blockId, {}, originalBlockInfo.config, originalBlockInfo.source, originalBlockInfo.kind, this.projectHelper.logger);
|
|
649
678
|
this.blockInfos.set(blockId, info);
|
|
650
679
|
const fieldNamesToDuplicate = this.getFieldNamesToDuplicate(blockId);
|
|
651
680
|
for (const [fieldName, fieldState] of Object.entries(originalBlockInfo.fields)) if (fieldNamesToDuplicate.has(fieldName) && fieldState && fieldState.ref) this.setBlockFieldObj(blockId, fieldName, {
|
|
@@ -988,6 +1017,7 @@ var ProjectMutator = class ProjectMutator {
|
|
|
988
1017
|
for (const [info, response] of blockPackRequests) {
|
|
989
1018
|
const bpInfo = cachedDeserialize(notEmpty((await response).data));
|
|
990
1019
|
info.blockConfig = extractConfig(bpInfo.config);
|
|
1020
|
+
info.blockKind = bpInfo.config.kind;
|
|
991
1021
|
info.blockPack = bpInfo.source;
|
|
992
1022
|
}
|
|
993
1023
|
const ctxExportTplEnvelope = await getPreparedExportTemplateEnvelope();
|
|
@@ -1002,7 +1032,7 @@ var ProjectMutator = class ProjectMutator {
|
|
|
1002
1032
|
const renderingState = { stagingRefreshTimestamp };
|
|
1003
1033
|
const blocksInLimboSet = new Set(blocksInLimbo);
|
|
1004
1034
|
const blockInfos = /* @__PURE__ */ new Map();
|
|
1005
|
-
blockInfoStates.forEach(({ id, fields, blockConfig, blockPack }) => blockInfos.set(id, new BlockInfo(id, fields, notEmpty(blockConfig), notEmpty(blockPack), projectHelper.logger)));
|
|
1035
|
+
blockInfoStates.forEach(({ id, fields, blockConfig, blockKind, blockPack }) => blockInfos.set(id, new BlockInfo(id, fields, notEmpty(blockConfig), notEmpty(blockPack), blockKind, projectHelper.logger)));
|
|
1006
1036
|
const blockInStruct = /* @__PURE__ */ new Set();
|
|
1007
1037
|
for (const b of allBlocks(structure)) {
|
|
1008
1038
|
if (!blockInfos.has(b.id)) throw new Error(`Inconsistent project structure: no inputs for ${b.id}`);
|