@platforma-sdk/workflow-tengo 4.8.1 → 4.9.1

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 (51) hide show
  1. package/dist/index.d.ts +1 -1
  2. package/dist/index.js +6 -4
  3. package/dist/index.mjs +6 -4
  4. package/dist/tengo/lib/exec.R.internal.lib.tengo +4 -1
  5. package/dist/tengo/lib/exec.delayed-compute-allocation.lib.tengo +43 -0
  6. package/dist/tengo/lib/exec.lib.tengo +3 -0
  7. package/dist/tengo/lib/exec.load-software.lib.tengo +32 -0
  8. package/dist/tengo/lib/exec.monetization.lib.tengo +7 -1
  9. package/dist/tengo/lib/exec.monetization_internal.lib.tengo +13 -19
  10. package/dist/tengo/lib/exec.runcmd.lib.tengo +350 -104
  11. package/dist/tengo/lib/feats.lib.tengo +1 -1
  12. package/dist/tengo/lib/feature-guard.lib.tengo +14 -0
  13. package/dist/tengo/lib/pframes.lib.tengo +14 -0
  14. package/dist/tengo/lib/render.lib.tengo +3 -3
  15. package/dist/tengo/lib/smart.lib.tengo +44 -10
  16. package/dist/tengo/lib/tpl.base.lib.tengo +17 -5
  17. package/dist/tengo/tpl/check_network.create_workdir_from_storage.plj.gz +0 -0
  18. package/dist/tengo/tpl/check_network.download_blob.plj.gz +0 -0
  19. package/dist/tengo/tpl/check_network.run_hello_world.plj.gz +0 -0
  20. package/dist/tengo/tpl/check_network.run_hello_world_py.plj.gz +0 -0
  21. package/dist/tengo/tpl/check_network.upload_blob.plj.gz +0 -0
  22. package/dist/tengo/tpl/check_network.upload_template.plj.gz +0 -0
  23. package/dist/tengo/tpl/exec.R.create-renv.plj.gz +0 -0
  24. package/dist/tengo/tpl/exec.delayed-compute-allocation.impl.plj.gz +0 -0
  25. package/dist/tengo/tpl/exec.exec-impl.plj.gz +0 -0
  26. package/dist/tengo/tpl/exec.exec.plj.gz +0 -0
  27. package/dist/tengo/tpl/exec.load-software.impl.plj.gz +0 -0
  28. package/dist/tengo/tpl/exec.monetization_info.plj.gz +0 -0
  29. package/dist/tengo/tpl/exec.monetization_to_json.plj.gz +0 -0
  30. package/dist/tengo/tpl/exec.python.create-venv.plj.gz +0 -0
  31. package/dist/tengo/tpl/exec.python.install-deps.plj.gz +0 -0
  32. package/dist/tengo/tpl/exec.python.venv-bin-path.plj.gz +0 -0
  33. package/dist/tengo/tpl/ll.get-field.plj.gz +0 -0
  34. package/dist/tengo/tpl/pframes.export-multiple-pcolumns.plj.gz +0 -0
  35. package/dist/tengo/tpl/pframes.export-pframe-for-ui.plj.gz +0 -0
  36. package/dist/tengo/tpl/pframes.export-pframe.plj.gz +0 -0
  37. package/dist/tengo/tpl/pframes.export-single-pcolumn.plj.gz +0 -0
  38. package/dist/tengo/tpl/pframes.import-dir.plj.gz +0 -0
  39. package/dist/tengo/tpl/pframes.process-pcolumn-data.plj.gz +0 -0
  40. package/dist/tengo/tpl/pframes.remove-nulls.plj.gz +0 -0
  41. package/dist/tengo/tpl/pframes.slice-data.plj.gz +0 -0
  42. package/dist/tengo/tpl/pframes.xsv-export-pframe.plj.gz +0 -0
  43. package/dist/tengo/tpl/pframes.xsv-import-if-not-null.plj.gz +0 -0
  44. package/dist/tengo/tpl/pframes.xsv-import-map.plj.gz +0 -0
  45. package/dist/tengo/tpl/waiter.waiter.plj.gz +0 -0
  46. package/dist/tengo/tpl/workdir.save.plj.gz +0 -0
  47. package/dist/tengo/tpl/workflow.build-ctx.plj.gz +0 -0
  48. package/dist/tengo/tpl/workflow.query-anchored.plj.gz +0 -0
  49. package/package.json +1 -1
  50. package/dist/tengo/lib/exec.internal.lib.tengo +0 -430
  51. package/dist/tengo/tpl/exec.delayed_compute_allocation.plj.gz +0 -0
@@ -36,6 +36,7 @@ exportColumnData := func(data) {
36
36
 
37
37
 
38
38
 
39
+
39
40
  pColumnResourceMapDataBuilder := func(keyLength) {
40
41
  ll.panic("pframes.pColumnResourceMapDataBuilder is not supported any more; use pcolumn.resourceMapBuilder")
41
42
  }
@@ -182,6 +183,10 @@ __primitiveValueTypes := { "Int": true, "Long": true, "Float": true, "Double": t
182
183
 
183
184
 
184
185
 
186
+
187
+
188
+
189
+
185
190
 
186
191
 
187
192
 
@@ -261,6 +266,11 @@ processColumn := func(input, bodyTpl, outputs, ...opts) {
261
266
  extra = {}
262
267
  }
263
268
 
269
+ metaExtra := opts.metaExtra
270
+ if is_undefined(metaExtra) {
271
+ metaExtra = {}
272
+ }
273
+
264
274
  iterationAxesSpec := input.spec.axesSpec
265
275
 
266
276
 
@@ -372,6 +382,10 @@ processColumn := func(input, bodyTpl, outputs, ...opts) {
372
382
  renderInputs["__extra_" + k] = v
373
383
  }
374
384
 
385
+ for k, v in metaExtra {
386
+ renderInputs["__meta_" + k] = v
387
+ }
388
+
375
389
  renderResult := render.createEphemeral(llProcessTpl, renderInputs)
376
390
 
377
391
  self := undefined
@@ -29,7 +29,7 @@ _SUBSCRIPTION_FIELD := "subscription"
29
29
 
30
30
 
31
31
  createUniversal := func(tpl, isEph, inputs, ...opts) {
32
- serviceInputs := opts[0]
32
+ metaInputs := opts[0]
33
33
 
34
34
 
35
35
  rbuilder := undefined
@@ -54,10 +54,10 @@ createUniversal := func(tpl, isEph, inputs, ...opts) {
54
54
  inputsMap.add(name, value)
55
55
  }
56
56
  }
57
- for name, value in serviceInputs {
57
+ for name, value in metaInputs {
58
58
  if !is_undefined(value) {
59
59
  if feats.serviceFields {
60
- inputsMap.addService(name, value)
60
+ inputsMap.addMeta(name, value)
61
61
  } else {
62
62
  inputsMap.add(name, value)
63
63
  }
@@ -160,6 +160,7 @@ _getFutureField := func(from, name, fieldType, isEph) {
160
160
 
161
161
 
162
162
 
163
+
163
164
  _buildFutureField := func(resourceOrField, nameOrPath, ...eph) {
164
165
  globalIsEph := undefined
165
166
  if len(eph) > 0 && is_bool(eph[0]) {
@@ -517,19 +518,20 @@ resource = func(r) {
517
518
  },
518
519
 
519
520
 
520
- _serviceInputs: undefined,
521
+ _metaInputs: undefined,
521
522
 
522
523
 
523
524
 
524
- serviceInputs: func() {
525
- if self._serviceInputs == undefined {
525
+
526
+ metaInputs: func() {
527
+ if self._metaInputs == undefined {
526
528
  info := self.info()
527
529
 
528
530
  if !maps.containsKey(info, "ServiceFields") {
529
531
 
530
532
 
531
- self._serviceInputs = {}
532
- return self._serviceInputs
533
+ self._metaInputs = {}
534
+ return self._metaInputs
533
535
  }
534
536
 
535
537
  svcs := maps.mapValues(info.ServiceFields, field)
@@ -537,9 +539,17 @@ resource = func(r) {
537
539
  if !info.InputsLocked {
538
540
  return svcs
539
541
  }
540
- self._serviceInputs = svcs
542
+ self._metaInputs = svcs
541
543
  }
542
- return self._serviceInputs
544
+ return self._metaInputs
545
+ },
546
+
547
+
548
+
549
+
550
+
551
+ serviceInputs: func() {
552
+ return self.metaInputs()
543
553
  },
544
554
 
545
555
 
@@ -1211,7 +1221,7 @@ resourceBuilder = func(r) {
1211
1221
 
1212
1222
 
1213
1223
 
1214
- createServiceField: func(name) {
1224
+ createMetaField: func(name) {
1215
1225
  assertNotBuilt()
1216
1226
  return self.createField(name, constants.FTYPE_SERVICE)
1217
1227
  },
@@ -1221,6 +1231,17 @@ resourceBuilder = func(r) {
1221
1231
 
1222
1232
 
1223
1233
 
1234
+
1235
+
1236
+ createServiceField: func(name) {
1237
+ return self.createMetaField(name)
1238
+ },
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1224
1245
  createInputField: func(name) {
1225
1246
  assertNotBuilt()
1226
1247
  return self.createField(name, constants.FTYPE_INPUT)
@@ -1380,8 +1401,8 @@ _mapBuilder := func(isEph, ...resourceType) {
1380
1401
 
1381
1402
 
1382
1403
 
1383
- addService: func(key, value) {
1384
- builder.createServiceField(key).setRefOrJson(value)
1404
+ addMeta: func(key, value) {
1405
+ builder.createMetaField(key).setRefOrJson(value)
1385
1406
  return self
1386
1407
  },
1387
1408
 
@@ -1390,6 +1411,19 @@ _mapBuilder := func(isEph, ...resourceType) {
1390
1411
 
1391
1412
 
1392
1413
 
1414
+
1415
+
1416
+
1417
+
1418
+ addService: func(key, value) {
1419
+ return self.addMeta(key, value)
1420
+ },
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1393
1427
  build: func() {
1394
1428
  return builder.lockAndBuild()
1395
1429
  }
@@ -18,6 +18,8 @@ validation := import("@platforma-sdk/workflow-tengo:validation")
18
18
 
19
19
 
20
20
 
21
+
22
+
21
23
  _unmarshal := func(resource, preprocessors) {
22
24
  ll.assert(smart.isResource(resource), "expected resource, found ", resource)
23
25
 
@@ -66,9 +68,9 @@ _unmarshal := func(resource, preprocessors) {
66
68
  }
67
69
  }
68
70
 
69
- for field, value in resource.serviceInputs() {
71
+ for field, value in resource.metaInputs() {
70
72
  if value.isErrorSet() {
71
- ll.panic("service input %v field has error: %v", field, field.getError().getDataAsJson().message)
73
+ ll.panic("meta input %v field has error: %v", field, field.getError().getDataAsJson().message)
72
74
  } else if value.isSet() {
73
75
  result[field] = _unmarshal(value.getValue(), preprocessors)
74
76
  } else {
@@ -181,8 +183,16 @@ tpl := func(ops) {
181
183
 
182
184
 
183
185
 
186
+
184
187
  rawServiceInputs: func() {
185
- return self.renderer().get(tplutil.INPUTS_MAP_FIELD).serviceInputs()
188
+ return self.rawMetaInputs()
189
+ },
190
+
191
+
192
+
193
+
194
+ rawMetaInputs: func() {
195
+ return self.renderer().get(tplutil.INPUTS_MAP_FIELD).metaInputs()
186
196
  },
187
197
 
188
198
 
@@ -393,8 +403,8 @@ tpl := func(ops) {
393
403
 
394
404
  inputs := self.inputs()
395
405
 
396
- if len(self.rawServiceInputs()) > 0 {
397
- ll.panic("prepare() statement is not available for templates with service inputs in this verson of workflow-tengo SDK")
406
+ if len(self.rawMetaInputs()) > 0 {
407
+ ll.panic("prepare() statement is not available for templates with meta inputs in this verson of workflow-tengo SDK")
398
408
  }
399
409
 
400
410
 
@@ -645,6 +655,8 @@ tpl := func(ops) {
645
655
  renderer : self.renderer,
646
656
  registerUnmarshaller : self.registerUnmarshaller,
647
657
  rawInputs : self.rawInputs,
658
+ rawServiceInputs : self.rawServiceInputs,
659
+ rawMetaInputs : self.rawMetaInputs,
648
660
  hasInput : self.hasInput,
649
661
  inputs : self.inputs,
650
662
  defineOutputs : self.defineOutputs,
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/workflow-tengo",
3
- "version": "4.8.1",
3
+ "version": "4.9.1",
4
4
  "description": "Tengo SDK library",
5
5
  "types": "./dist/index.d.ts",
6
6
  "main": "./dist/index.js",