@milaboratories/pl-middle-layer 1.37.100 → 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.
Files changed (37) 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 +1892 -1852
  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/package.json +11 -11
  24. package/src/block_registry/registry.ts +1 -0
  25. package/src/cfg_render/executor.test.ts +3 -3
  26. package/src/debug/index.ts +2 -0
  27. package/src/js_render/computable_context.ts +38 -16
  28. package/src/js_render/context.ts +4 -1
  29. package/src/js_render/index.ts +12 -4
  30. package/src/middle_layer/active_cfg.ts +2 -1
  31. package/src/middle_layer/block.ts +9 -2
  32. package/src/middle_layer/middle_layer.ts +14 -1
  33. package/src/middle_layer/navigation_states.ts +2 -2
  34. package/src/middle_layer/project_overview.ts +17 -6
  35. package/src/middle_layer/render.test.ts +2 -0
  36. package/src/middle_layer/render.ts +4 -4
  37. package/src/model/project_helper.ts +2 -2
@@ -25,7 +25,7 @@ import type {
25
25
  } from '@milaboratories/pl-model-middle-layer';
26
26
  import { constructBlockContextArgsOnly } from './block_ctx';
27
27
  import { ifNotUndef } from '../cfg_render/util';
28
- import type { BlockSection } from '@platforma-sdk/model';
28
+ import { extractCodeWithInfo, type BlockSection } from '@platforma-sdk/model';
29
29
  import { computableFromCfgOrRF } from './render';
30
30
  import type { NavigationStates } from './navigation_states';
31
31
  import { getBlockPackInfo } from './util';
@@ -154,15 +154,22 @@ export function projectOverview(
154
154
 
155
155
  const bp = getBlockPackInfo(prj, id);
156
156
 
157
- const { sections, title, inputsValid, sdkVersion }
157
+ const { sections, title, inputsValid, sdkVersion, featureFlags, isIncompatibleWithRuntime }
158
158
  = ifNotUndef(bp, ({ bpId, cfg }) => {
159
+ if (!env.runtimeCapabilities.checkCompatibility(cfg.featureFlags)) {
160
+ return {
161
+ isIncompatibleWithRuntime: true,
162
+ featureFlags: cfg.featureFlags,
163
+ };
164
+ }
159
165
  const blockCtxArgsOnly = constructBlockContextArgsOnly(prjEntry, id);
166
+ const codeWithInfo = extractCodeWithInfo(cfg);
160
167
  return {
161
168
  sections: computableFromCfgOrRF(
162
169
  env,
163
170
  blockCtxArgsOnly,
164
171
  cfg.sections,
165
- cfg.code,
172
+ codeWithInfo,
166
173
  bpId,
167
174
  ).wrap({
168
175
  recover: (e) => {
@@ -178,7 +185,7 @@ export function projectOverview(
178
185
  env,
179
186
  blockCtxArgsOnly,
180
187
  title,
181
- cfg.code,
188
+ codeWithInfo,
182
189
  bpId,
183
190
  ).wrap({
184
191
  recover: (e) => {
@@ -192,7 +199,7 @@ export function projectOverview(
192
199
  env,
193
200
  blockCtxArgsOnly,
194
201
  cfg.inputsValid,
195
- cfg.code,
202
+ codeWithInfo,
196
203
  bpId,
197
204
  ).wrap({
198
205
  recover: (e) => {
@@ -202,7 +209,9 @@ export function projectOverview(
202
209
  return false;
203
210
  },
204
211
  }) as ComputableStableDefined<boolean>,
205
- sdkVersion: cfg.sdkVersion,
212
+ sdkVersion: codeWithInfo?.sdkVersion,
213
+ featureFlags: codeWithInfo?.featureFlags ?? {},
214
+ isIncompatibleWithRuntime: false,
206
215
  };
207
216
  }) || {};
208
217
 
@@ -239,6 +248,8 @@ export function projectOverview(
239
248
  currentBlockPack: bp?.info?.source,
240
249
  updates,
241
250
  sdkVersion,
251
+ featureFlags,
252
+ isIncompatibleWithRuntime,
242
253
  navigationState: navigationStates.getState(id),
243
254
  };
244
255
  });
@@ -23,6 +23,8 @@ export async function withMl(
23
23
  throw new Error('Not implemented.');
24
24
  }
25
25
  });
26
+ ml.addRuntimeCapability('requiresUIAPIVersion', 1);
27
+ ml.addRuntimeCapability('requiresUIAPIVersion', 2);
26
28
  try {
27
29
  await cb(ml, workFolder);
28
30
  } finally {
@@ -1,4 +1,4 @@
1
- import type { Code, TypedConfigOrConfigLambda } from '@platforma-sdk/model';
1
+ import type { BlockCodeWithInfo, TypedConfigOrConfigLambda } from '@platforma-sdk/model';
2
2
  import { isConfigLambda } from '@platforma-sdk/model';
3
3
  import type { Computable, ComputableRenderingOps } from '@milaboratories/computable';
4
4
  import { computableFromCfg } from '../cfg_render/executor';
@@ -16,12 +16,12 @@ export function computableFromCfgOrRF(
16
16
  env: MiddleLayerEnvironment,
17
17
  ctx: BlockContextAny,
18
18
  cfgOrFh: TypedConfigOrConfigLambda,
19
- code: Code | undefined,
19
+ codeWithInfo: BlockCodeWithInfo | undefined,
20
20
  configKey: string,
21
21
  ops: Partial<ComputableRenderingOps> = {},
22
22
  ): Computable<unknown> {
23
23
  if (isConfigLambda(cfgOrFh)) {
24
- if (code === undefined) throw new Error('No code bundle.');
25
- return computableFromRF(env, ctx, cfgOrFh, code, configKey, ops);
24
+ if (codeWithInfo === undefined) throw new Error('No code bundle.');
25
+ return computableFromRF(env, ctx, cfgOrFh, codeWithInfo, configKey, ops);
26
26
  } else return computableFromCfg(env.driverKit, ctx, cfgOrFh, ops);
27
27
  }
@@ -1,4 +1,4 @@
1
- import type { BlockConfig, PlRef } from '@platforma-sdk/model';
1
+ import { extractCodeWithInfo, type BlockConfig, type PlRef } from '@platforma-sdk/model';
2
2
  import { LRUCache } from 'lru-cache';
3
3
  import type { QuickJSWASMModule } from 'quickjs-emscripten';
4
4
  import { executeSingleLambda } from '../js_render';
@@ -27,7 +27,7 @@ export class ProjectHelper {
27
27
  const blockConfig = req.blockConfig();
28
28
  if (blockConfig.enrichmentTargets === undefined) return undefined;
29
29
  const args = req.args();
30
- const result = executeSingleLambda(this.quickJs, blockConfig.enrichmentTargets, blockConfig.code!, args) as PlRef[];
30
+ const result = executeSingleLambda(this.quickJs, blockConfig.enrichmentTargets, extractCodeWithInfo(blockConfig)!, args) as PlRef[];
31
31
  return result;
32
32
  }
33
33