@platforma-sdk/workflow-tengo 2.9.6 → 2.9.8
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/tengo/lib/assets.lib.tengo +52 -52
- package/dist/tengo/lib/assets.swinfo.lib.tengo +45 -45
- package/dist/tengo/lib/constants.lib.tengo +32 -32
- package/dist/tengo/lib/exec.R.internal.lib.tengo +29 -29
- package/dist/tengo/lib/exec.R.lib.tengo +166 -166
- package/dist/tengo/lib/exec.constants.lib.tengo +4 -4
- package/dist/tengo/lib/exec.descriptor.lib.tengo +31 -31
- package/dist/tengo/lib/exec.internal.lib.tengo +297 -297
- package/dist/tengo/lib/exec.lib.tengo +815 -815
- package/dist/tengo/lib/exec.monetization.lib.tengo +130 -130
- package/dist/tengo/lib/exec.package.lib.tengo +212 -212
- package/dist/tengo/lib/exec.python.internal.lib.tengo +6 -6
- package/dist/tengo/lib/exec.python.lib.tengo +146 -146
- package/dist/tengo/lib/exec.runcmd.lib.tengo +371 -371
- package/dist/tengo/lib/exec.runenv.lib.tengo +92 -92
- package/dist/tengo/lib/exec.stream.lib.tengo +40 -40
- package/dist/tengo/lib/file.internal.lib.tengo +77 -77
- package/dist/tengo/lib/file.lib.tengo +57 -57
- package/dist/tengo/lib/ll.lib.tengo +244 -244
- package/dist/tengo/lib/maps.lib.tengo +152 -152
- package/dist/tengo/lib/objects.lib.tengo +13 -13
- package/dist/tengo/lib/oop.lib.tengo +19 -19
- package/dist/tengo/lib/path.lib.tengo +125 -125
- package/dist/tengo/lib/pframes.constants.lib.tengo +28 -28
- package/dist/tengo/lib/pframes.export-pcolumn.lib.tengo +33 -33
- package/dist/tengo/lib/pframes.lib.tengo +43 -43
- package/dist/tengo/lib/pframes.ll.lib.tengo +72 -72
- package/dist/tengo/lib/pframes.pcolumn.lib.tengo +49 -49
- package/dist/tengo/lib/pframes.spec.lib.tengo +96 -96
- package/dist/tengo/lib/pframes.util.lib.tengo +288 -288
- package/dist/tengo/lib/pframes.xsv.lib.tengo +272 -272
- package/dist/tengo/lib/render.lib.tengo +75 -75
- package/dist/tengo/lib/sets.lib.tengo +68 -68
- package/dist/tengo/lib/slices.lib.tengo +258 -155
- package/dist/tengo/lib/smart.lib.tengo +1069 -1069
- package/dist/tengo/lib/test.lib.tengo +161 -161
- package/dist/tengo/lib/tpl.lib.tengo +515 -515
- package/dist/tengo/lib/tpl.state-await.lib.tengo +240 -240
- package/dist/tengo/lib/tpl.util.lib.tengo +9 -9
- package/dist/tengo/lib/validation.lib.tengo +378 -378
- package/dist/tengo/lib/workdir.lib.tengo +331 -331
- package/dist/tengo/lib/workdir.proc.lib.tengo +144 -144
- package/dist/tengo/lib/workdir.save.lib.tengo +130 -130
- package/dist/tengo/lib/workflow.bobject.lib.tengo +26 -26
- package/dist/tengo/lib/workflow.bquery.lib.tengo +165 -165
- package/dist/tengo/lib/workflow.constants.lib.tengo +2 -2
- package/dist/tengo/lib/workflow.context.lib.tengo +32 -32
- package/dist/tengo/lib/workflow.lib.tengo +206 -206
- package/dist/tengo/tpl/exec.R.create-renv.plj.gz +0 -0
- package/dist/tengo/tpl/exec.exec.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/pframes.aggregate.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.export-multiple-pcolumns.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.map-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.xsv-export-pframe.plj.gz +0 -0
- package/dist/tengo/tpl/pframes.xsv-import-map.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/package.json +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/*
|
|
2
|
+
* Create renderer objects to render templates from the code
|
|
3
|
+
*/
|
|
4
4
|
|
|
5
5
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
6
6
|
assets := import("@platforma-sdk/workflow-tengo:assets")
|
|
@@ -14,87 +14,87 @@ times := import("times")
|
|
|
14
14
|
|
|
15
15
|
_SUBSCRIPTION_FIELD := "subscription"
|
|
16
16
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
/**
|
|
18
|
+
* Creates a render template resource.
|
|
19
|
+
*
|
|
20
|
+
* @param tpl: template resource (see assets.importTemplate())
|
|
21
|
+
* @param isEph: whether template is ephemeral
|
|
22
|
+
* @param inputs: a map of inputs to be passed to the template
|
|
23
|
+
* @return renderer: a smart resource with additional output("name") method
|
|
24
|
+
*/
|
|
25
25
|
createUniversal := func(tpl, isEph, inputs) {
|
|
26
26
|
|
|
27
|
-
|
|
28
|
-
rbuilder := undefined
|
|
29
|
-
if isEph {
|
|
30
|
-
rbuilder = smart.ephemeralBuilder(constants.RTYPE_RENDER_EPH_TEMPLATE)
|
|
31
|
-
} else {
|
|
32
|
-
rbuilder = smart.structBuilder(constants.RTYPE_RENDER_TEMPLATE)
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
if isEph {
|
|
36
|
-
|
|
37
|
-
rbuilder.createField(_SUBSCRIPTION_FIELD, "OTW")
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
rbuilder.createInputField(tplutil.TEMPLATE_FIELD).set(tpl)
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
inputsMap := isEph ? smart.ephemeralMapBuilder() : smart.mapBuilder()
|
|
45
|
-
for name, value in inputs {
|
|
46
|
-
inputsMap.add(name, value)
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
rbuilder.createInputField(tplutil.INPUTS_MAP_FIELD).set(inputsMap.build())
|
|
50
|
-
|
|
51
|
-
renderer := rbuilder.lockInputsAndBuild()
|
|
52
|
-
|
|
53
|
-
self := undefined
|
|
54
|
-
self = ll.toStrict(oop.inherit(renderer, {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
output: func(name, ...cache) {
|
|
60
|
-
ll.assert(len(cache) == 0 || is_int(cache[0]), "cache should be a number (use 'times' tengo library), got: %v", cache)
|
|
61
|
-
out := renderer.getFutureOutputField(tplutil.TEMPLATE_OUTPUT_PREFIX + name, isEph)
|
|
62
|
-
if len(cache) > 0 && cache[0] > 0 {
|
|
63
|
-
cache = cache[0]
|
|
64
|
-
tx.cacheSetToField(out.id, cache)
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
return out
|
|
68
|
-
}
|
|
69
|
-
}))
|
|
70
|
-
|
|
71
|
-
return self
|
|
27
|
+
// build renderer resource
|
|
28
|
+
rbuilder := undefined
|
|
29
|
+
if isEph {
|
|
30
|
+
rbuilder = smart.ephemeralBuilder(constants.RTYPE_RENDER_EPH_TEMPLATE)
|
|
31
|
+
} else {
|
|
32
|
+
rbuilder = smart.structBuilder(constants.RTYPE_RENDER_TEMPLATE)
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
if isEph {
|
|
36
|
+
// create internal subscription field
|
|
37
|
+
rbuilder.createField(_SUBSCRIPTION_FIELD, "OTW")
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// template input
|
|
41
|
+
rbuilder.createInputField(tplutil.TEMPLATE_FIELD).set(tpl)
|
|
42
|
+
|
|
43
|
+
// inputs input
|
|
44
|
+
inputsMap := isEph ? smart.ephemeralMapBuilder() : smart.mapBuilder()
|
|
45
|
+
for name, value in inputs {
|
|
46
|
+
inputsMap.add(name, value)
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
rbuilder.createInputField(tplutil.INPUTS_MAP_FIELD).set(inputsMap.build())
|
|
50
|
+
// build
|
|
51
|
+
renderer := rbuilder.lockInputsAndBuild()
|
|
52
|
+
|
|
53
|
+
self := undefined
|
|
54
|
+
self = ll.toStrict(oop.inherit(renderer, {
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* Returns an output field with a given name
|
|
58
|
+
*/
|
|
59
|
+
output: func(name, ...cache) {
|
|
60
|
+
ll.assert(len(cache) == 0 || is_int(cache[0]), "cache should be a number (use 'times' tengo library), got: %v", cache)
|
|
61
|
+
out := renderer.getFutureOutputField(tplutil.TEMPLATE_OUTPUT_PREFIX + name, isEph)
|
|
62
|
+
if len(cache) > 0 && cache[0] > 0 {
|
|
63
|
+
cache = cache[0]
|
|
64
|
+
tx.cacheSetToField(out.id, cache)
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return out
|
|
68
|
+
}
|
|
69
|
+
}))
|
|
70
|
+
|
|
71
|
+
return self
|
|
72
72
|
}
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
74
|
+
/**
|
|
75
|
+
* Creates a render template resource.
|
|
76
|
+
*
|
|
77
|
+
* @param tpl: template resource (see assets.importTemplate())
|
|
78
|
+
* @param inputs: a map of inputs to be passed to the template
|
|
79
|
+
* @return renderer: a smart resource with additional output("name") method
|
|
80
|
+
*/
|
|
81
81
|
create := func(tpl, inputs) {
|
|
82
|
-
return createUniversal(tpl, false, inputs)
|
|
82
|
+
return createUniversal(tpl, false, inputs)
|
|
83
83
|
}
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
85
|
+
/**
|
|
86
|
+
* Creates ephemeral render template resource.
|
|
87
|
+
*
|
|
88
|
+
* @param tpl: template resource (see assets.importTemplate())
|
|
89
|
+
* @param inputs: a map of inputs to be passed to the template
|
|
90
|
+
* @return renderer: a smart resource with additional output("name") method
|
|
91
|
+
*/
|
|
92
92
|
createEphemeral := func(tpl, inputs) {
|
|
93
|
-
return createUniversal(tpl, true, inputs)
|
|
93
|
+
return createUniversal(tpl, true, inputs)
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
export ll.toStrict({
|
|
97
|
-
createUniversal: createUniversal,
|
|
98
|
-
create: create,
|
|
99
|
-
createEphemeral: createEphemeral
|
|
97
|
+
createUniversal: createUniversal,
|
|
98
|
+
create: create,
|
|
99
|
+
createEphemeral: createEphemeral
|
|
100
100
|
})
|
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Functions for working with sets of elements,
|
|
3
|
+
* in Tengo they are just maps with truthy values.
|
|
4
|
+
* Keys of the map can be only either strings or numbers.
|
|
5
|
+
*/
|
|
6
6
|
|
|
7
7
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
8
8
|
maps := import("@platforma-sdk/workflow-tengo:maps")
|
|
9
9
|
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
10
|
+
/**
|
|
11
|
+
* Turns a slice to a set of values.
|
|
12
|
+
*
|
|
13
|
+
* @param slice: slice<string|number>
|
|
14
|
+
* @return result: set<string|number>
|
|
15
|
+
*/
|
|
16
16
|
fromSlice := func(slice) {
|
|
17
|
-
set := {}
|
|
18
|
-
for _, elem in slice {
|
|
19
|
-
set[elem] = true
|
|
20
|
-
}
|
|
21
|
-
return set
|
|
17
|
+
set := {}
|
|
18
|
+
for _, elem in slice {
|
|
19
|
+
set[elem] = true
|
|
20
|
+
}
|
|
21
|
+
return set
|
|
22
22
|
}
|
|
23
23
|
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
/**
|
|
25
|
+
* Convert given set to slice
|
|
26
|
+
*
|
|
27
|
+
* @param set: set - a set of values to be converted to slice
|
|
28
|
+
* @return slice: []<string|number>
|
|
29
|
+
*/
|
|
30
30
|
toSlice := func(set) {
|
|
31
|
-
sl := []
|
|
32
|
-
for v, _ in set {
|
|
33
|
-
sl = append(sl, v)
|
|
31
|
+
sl := []
|
|
32
|
+
for v, _ in set {
|
|
33
|
+
sl = append(sl, v)
|
|
34
|
+
}
|
|
35
|
+
return sl
|
|
34
36
|
}
|
|
35
|
-
return sl
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
37
|
|
|
38
|
+
/**
|
|
39
|
+
* Checks if a set has an element.
|
|
40
|
+
*
|
|
41
|
+
* @param set a set of any elements
|
|
42
|
+
* @param element any
|
|
43
|
+
* @return found: bool
|
|
44
|
+
*/
|
|
45
45
|
hasElement := func(set, element) {
|
|
46
|
-
return !is_undefined(set[element])
|
|
46
|
+
return !is_undefined(set[element])
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
/**
|
|
50
|
+
* Adds elements to the set.
|
|
51
|
+
*
|
|
52
|
+
* @param set a set
|
|
53
|
+
* @param elements a slice of elements
|
|
54
|
+
* @return: result: set<string|number> - a changed old set with all old and new elements.
|
|
55
|
+
*/
|
|
56
56
|
add := func(set, ...elements) {
|
|
57
|
-
for _, elem in elements {
|
|
58
|
-
set[elem] = true
|
|
59
|
-
}
|
|
57
|
+
for _, elem in elements {
|
|
58
|
+
set[elem] = true
|
|
59
|
+
}
|
|
60
60
|
|
|
61
|
-
return set
|
|
61
|
+
return set
|
|
62
62
|
}
|
|
63
63
|
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
/**
|
|
65
|
+
* Returns a set of key of the map.
|
|
66
|
+
*
|
|
67
|
+
* @param map a map
|
|
68
|
+
* @return result: set<string|number>
|
|
69
|
+
*/
|
|
70
70
|
fromMapKeys := func(map) {
|
|
71
|
-
keys := maps.getKeys(map)
|
|
72
|
-
return fromSlice(keys)
|
|
71
|
+
keys := maps.getKeys(map)
|
|
72
|
+
return fromSlice(keys)
|
|
73
73
|
}
|
|
74
74
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
75
|
+
/**
|
|
76
|
+
* Transforms all keys of the map with a function and returns a new map with these keys.
|
|
77
|
+
*
|
|
78
|
+
* @param set: set
|
|
79
|
+
* @param fn: func(elem): newElem - a function that gets an element and returns a new element.
|
|
80
|
+
* @return new set: map[newElem]any - a transformed set
|
|
81
|
+
*/
|
|
82
82
|
map := func(set, fn) {
|
|
83
|
-
return maps.mapKeys(set, fn)
|
|
83
|
+
return maps.mapKeys(set, fn)
|
|
84
84
|
}
|
|
85
85
|
|
|
86
86
|
export ll.toStrict({
|
|
87
|
-
fromSlice: fromSlice,
|
|
88
|
-
toSlice: toSlice,
|
|
89
|
-
hasElement: hasElement,
|
|
90
|
-
add: add,
|
|
91
|
-
fromMapKeys: fromMapKeys,
|
|
92
|
-
map: map
|
|
87
|
+
fromSlice: fromSlice,
|
|
88
|
+
toSlice: toSlice,
|
|
89
|
+
hasElement: hasElement,
|
|
90
|
+
add: add,
|
|
91
|
+
fromMapKeys: fromMapKeys,
|
|
92
|
+
map: map
|
|
93
93
|
})
|