@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.
- package/dist/index.d.ts +1 -1
- package/dist/index.js +6 -4
- package/dist/index.mjs +6 -4
- package/dist/tengo/lib/exec.R.internal.lib.tengo +4 -1
- package/dist/tengo/lib/exec.delayed-compute-allocation.lib.tengo +43 -0
- package/dist/tengo/lib/exec.lib.tengo +3 -0
- package/dist/tengo/lib/exec.load-software.lib.tengo +32 -0
- package/dist/tengo/lib/exec.monetization.lib.tengo +7 -1
- package/dist/tengo/lib/exec.monetization_internal.lib.tengo +13 -19
- package/dist/tengo/lib/exec.runcmd.lib.tengo +350 -104
- package/dist/tengo/lib/feats.lib.tengo +1 -1
- package/dist/tengo/lib/feature-guard.lib.tengo +14 -0
- package/dist/tengo/lib/pframes.lib.tengo +14 -0
- package/dist/tengo/lib/render.lib.tengo +3 -3
- package/dist/tengo/lib/smart.lib.tengo +44 -10
- package/dist/tengo/lib/tpl.base.lib.tengo +17 -5
- package/dist/tengo/tpl/check_network.create_workdir_from_storage.plj.gz +0 -0
- package/dist/tengo/tpl/check_network.download_blob.plj.gz +0 -0
- package/dist/tengo/tpl/check_network.run_hello_world.plj.gz +0 -0
- package/dist/tengo/tpl/check_network.run_hello_world_py.plj.gz +0 -0
- package/dist/tengo/tpl/check_network.upload_blob.plj.gz +0 -0
- package/dist/tengo/tpl/check_network.upload_template.plj.gz +0 -0
- package/dist/tengo/tpl/exec.R.create-renv.plj.gz +0 -0
- package/dist/tengo/tpl/exec.delayed-compute-allocation.impl.plj.gz +0 -0
- package/dist/tengo/tpl/exec.exec-impl.plj.gz +0 -0
- package/dist/tengo/tpl/exec.exec.plj.gz +0 -0
- package/dist/tengo/tpl/exec.load-software.impl.plj.gz +0 -0
- package/dist/tengo/tpl/exec.monetization_info.plj.gz +0 -0
- package/dist/tengo/tpl/exec.monetization_to_json.plj.gz +0 -0
- package/dist/tengo/tpl/exec.python.create-venv.plj.gz +0 -0
- package/dist/tengo/tpl/exec.python.install-deps.plj.gz +0 -0
- package/dist/tengo/tpl/exec.python.venv-bin-path.plj.gz +0 -0
- package/dist/tengo/tpl/ll.get-field.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-multiple-pcolumns.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-pframe-for-ui.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-single-pcolumn.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.import-dir.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.process-pcolumn-data.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.remove-nulls.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.slice-data.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.xsv-export-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.xsv-import-if-not-null.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.xsv-import-map.plj.gz +0 -0
- package/dist/tengo/tpl/waiter.waiter.plj.gz +0 -0
- package/dist/tengo/tpl/workdir.save.plj.gz +0 -0
- package/dist/tengo/tpl/workflow.build-ctx.plj.gz +0 -0
- package/dist/tengo/tpl/workflow.query-anchored.plj.gz +0 -0
- package/package.json +1 -1
- package/dist/tengo/lib/exec.internal.lib.tengo +0 -430
- 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
|
-
|
|
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
|
|
57
|
+
for name, value in metaInputs {
|
|
58
58
|
if !is_undefined(value) {
|
|
59
59
|
if feats.serviceFields {
|
|
60
|
-
inputsMap.
|
|
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
|
-
|
|
521
|
+
_metaInputs: undefined,
|
|
521
522
|
|
|
522
523
|
|
|
523
524
|
|
|
524
|
-
|
|
525
|
-
|
|
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.
|
|
532
|
-
return self.
|
|
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.
|
|
542
|
+
self._metaInputs = svcs
|
|
541
543
|
}
|
|
542
|
-
return self.
|
|
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
|
-
|
|
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
|
-
|
|
1384
|
-
builder.
|
|
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.
|
|
71
|
+
for field, value in resource.metaInputs() {
|
|
70
72
|
if value.isErrorSet() {
|
|
71
|
-
ll.panic("
|
|
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.
|
|
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.
|
|
397
|
-
ll.panic("prepare() statement is not available for templates with
|
|
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
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|