@platforma-sdk/workflow-tengo 2.9.6 → 2.9.7
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 +1 -1
|
@@ -1,196 +1,196 @@
|
|
|
1
1
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
2
2
|
slices := import("@platforma-sdk/workflow-tengo:slices")
|
|
3
3
|
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Returns a slice of keys of the map.
|
|
6
|
+
*
|
|
7
|
+
* @param map map[string]any - map to extract keys from
|
|
8
|
+
* @return result: string[] - a slice of keys.
|
|
9
|
+
*/
|
|
10
10
|
getKeys := func(map) {
|
|
11
|
-
res := []
|
|
12
|
-
for k, _ in map {
|
|
13
|
-
res = append(res, k)
|
|
14
|
-
}
|
|
11
|
+
res := []
|
|
12
|
+
for k, _ in map {
|
|
13
|
+
res = append(res, k)
|
|
14
|
+
}
|
|
15
15
|
|
|
16
|
-
return slices.
|
|
16
|
+
return slices.quickSort(res)
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Returns true if map contains specified key.
|
|
21
|
+
* Note: fallback implementation is O(N). You can remove it after 05.2025
|
|
22
|
+
*/
|
|
23
23
|
containsKey := func(map, key) {
|
|
24
|
-
for k, _ in map {
|
|
25
|
-
if key == k {
|
|
26
|
-
return true
|
|
27
|
-
}
|
|
28
|
-
}
|
|
24
|
+
for k, _ in map {
|
|
25
|
+
if key == k {
|
|
26
|
+
return true
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
29
|
|
|
30
|
-
return false
|
|
30
|
+
return false
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
// Load effective version of map key checker if it exists in controller's API
|
|
34
34
|
plapi := import("plapi")
|
|
35
35
|
if ll.methodExists(plapi, "mapHasKey") {
|
|
36
|
-
containsKey = func(map, key) {
|
|
37
|
-
return plapi.mapHasKey(map, key)
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
36
|
+
containsKey = func(map, key) {
|
|
37
|
+
return plapi.mapHasKey(map, key)
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Transforms all keys of the map with a function and returns a new map with these keys.
|
|
43
|
+
*
|
|
44
|
+
* @param map: map[key]any
|
|
45
|
+
* @param fnK: func(key): newKey - a function that gets a key and returns a new key.
|
|
46
|
+
* @return new map: map[newKey]any - a transformed map
|
|
47
|
+
*/
|
|
48
48
|
mapKeys := func(map, fnK) {
|
|
49
|
-
newM := {}
|
|
50
|
-
for k, v in map {
|
|
51
|
-
newM[fnK(k)] = v
|
|
52
|
-
}
|
|
49
|
+
newM := {}
|
|
50
|
+
for k, v in map {
|
|
51
|
+
newM[fnK(k)] = v
|
|
52
|
+
}
|
|
53
53
|
|
|
54
|
-
return newM
|
|
54
|
+
return newM
|
|
55
55
|
}
|
|
56
56
|
|
|
57
|
-
|
|
57
|
+
// Map values
|
|
58
58
|
mapValues := func(map, fnV) {
|
|
59
|
-
newM := {}
|
|
60
|
-
for k, v in map {
|
|
61
|
-
newM[k] = fnV(v)
|
|
62
|
-
}
|
|
59
|
+
newM := {}
|
|
60
|
+
for k, v in map {
|
|
61
|
+
newM[k] = fnV(v)
|
|
62
|
+
}
|
|
63
63
|
|
|
64
|
-
return newM
|
|
64
|
+
return newM
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
|
|
67
|
+
// Map keys and values
|
|
68
68
|
map := func(map, fn) {
|
|
69
|
-
newM := {}
|
|
70
|
-
for k, v in map {
|
|
71
|
-
r := fn(k, v)
|
|
72
|
-
newM[r.key] = r.value
|
|
73
|
-
}
|
|
69
|
+
newM := {}
|
|
70
|
+
for k, v in map {
|
|
71
|
+
r := fn(k, v)
|
|
72
|
+
newM[r.key] = r.value
|
|
73
|
+
}
|
|
74
74
|
|
|
75
|
-
return newM
|
|
75
|
+
return newM
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
filter := func(map, predicateFn) {
|
|
79
|
-
newM := {}
|
|
80
|
-
for k, v in map {
|
|
81
|
-
if predicateFn(k, v) {
|
|
82
|
-
newM[k] = v
|
|
83
|
-
}
|
|
84
|
-
}
|
|
79
|
+
newM := {}
|
|
80
|
+
for k, v in map {
|
|
81
|
+
if predicateFn(k, v) {
|
|
82
|
+
newM[k] = v
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
85
|
|
|
86
|
-
return newM
|
|
86
|
+
return newM
|
|
87
87
|
}
|
|
88
88
|
|
|
89
89
|
filterValues := func(map, predicateFnV) {
|
|
90
|
-
return filter(map, func(k, v) { return predicateFnV(v) })
|
|
90
|
+
return filter(map, func(k, v) { return predicateFnV(v) })
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
filterKeys := func(map, predicateFnK) {
|
|
94
|
-
return filter(map, func(k, v) { return predicateFnK(k) })
|
|
94
|
+
return filter(map, func(k, v) { return predicateFnK(k) })
|
|
95
95
|
}
|
|
96
96
|
|
|
97
97
|
filterKeysValues := func(map, predicateFnK, predicateFnV) {
|
|
98
|
-
return filter(map, func(k, v) { return predicateFnK(k) && predicateFnV(v) })
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
98
|
+
return filter(map, func(k, v) { return predicateFnK(k) && predicateFnV(v) })
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
/**
|
|
102
|
+
* Returns a deep copy of a map or an array.
|
|
103
|
+
* Optionally removes keys having undefined value.
|
|
104
|
+
*
|
|
105
|
+
* @param obj - object to be cloned
|
|
106
|
+
* @param ops - additional options
|
|
107
|
+
* {
|
|
108
|
+
* removeUndefs: boolean
|
|
109
|
+
* }
|
|
110
|
+
*/
|
|
111
111
|
clone := func(obj, ...ops) {
|
|
112
|
-
removeUndefs := false
|
|
113
|
-
if len(ops) == 1 {
|
|
114
|
-
removeUndefs = ops[0].removeUndefs
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if is_map(obj) || ll.isStrict(obj) {
|
|
118
|
-
res := {}
|
|
119
|
-
strict := ll.isStrict(obj)
|
|
120
|
-
if strict {
|
|
121
|
-
obj = ll.fromStrict(obj)
|
|
122
|
-
}
|
|
123
|
-
for k, v in obj {
|
|
124
|
-
if !removeUndefs || !is_undefined(v) {
|
|
125
|
-
res[k] = clone(v, ops...)
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
if strict {
|
|
129
|
-
return ll.toStrict(res)
|
|
130
|
-
} else {
|
|
131
|
-
return res
|
|
132
|
-
}
|
|
133
|
-
} else if is_array(obj) {
|
|
134
|
-
res := []
|
|
135
|
-
for v in obj {
|
|
136
|
-
res = append(res, clone(v, ops...))
|
|
137
|
-
}
|
|
138
|
-
return res
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
return obj
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
112
|
+
removeUndefs := false
|
|
113
|
+
if len(ops) == 1 {
|
|
114
|
+
removeUndefs = ops[0].removeUndefs
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
if is_map(obj) || ll.isStrict(obj) {
|
|
118
|
+
res := {}
|
|
119
|
+
strict := ll.isStrict(obj)
|
|
120
|
+
if strict {
|
|
121
|
+
obj = ll.fromStrict(obj)
|
|
122
|
+
}
|
|
123
|
+
for k, v in obj {
|
|
124
|
+
if !removeUndefs || !is_undefined(v) {
|
|
125
|
+
res[k] = clone(v, ops...)
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
if strict {
|
|
129
|
+
return ll.toStrict(res)
|
|
130
|
+
} else {
|
|
131
|
+
return res
|
|
132
|
+
}
|
|
133
|
+
} else if is_array(obj) {
|
|
134
|
+
res := []
|
|
135
|
+
for v in obj {
|
|
136
|
+
res = append(res, clone(v, ops...))
|
|
137
|
+
}
|
|
138
|
+
return res
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
return obj
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Do shallow merge of arbitrary number of maps.
|
|
146
|
+
* Add {... key: undefined ...} to remove the "key" from the map collected from maps before.
|
|
147
|
+
*/
|
|
148
148
|
merge := func(...maps) {
|
|
149
|
-
res := {}
|
|
150
|
-
for map in maps {
|
|
151
|
-
for k, v in map {
|
|
152
|
-
if is_undefined(v) {
|
|
153
|
-
delete(res, k)
|
|
154
|
-
} else {
|
|
155
|
-
res[k] = v
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
}
|
|
159
|
-
return res
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
149
|
+
res := {}
|
|
150
|
+
for map in maps {
|
|
151
|
+
for k, v in map {
|
|
152
|
+
if is_undefined(v) {
|
|
153
|
+
delete(res, k)
|
|
154
|
+
} else {
|
|
155
|
+
res[k] = v
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
return res
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
/**
|
|
163
|
+
* Do deep merge of arbitrary number of maps.
|
|
164
|
+
* Add {... key: undefined ...} to remove the "key" from the map collected from maps before.
|
|
165
|
+
*/
|
|
166
166
|
deepMerge := undefined
|
|
167
167
|
deepMerge = func(...maps) {
|
|
168
|
-
res := {}
|
|
169
|
-
for map in maps {
|
|
170
|
-
for k, v in map {
|
|
171
|
-
if is_undefined(v) {
|
|
172
|
-
delete(res, k)
|
|
173
|
-
} else if is_map(res[k]) && is_map(v) {
|
|
174
|
-
res[k] = deepMerge(res[k], v)
|
|
175
|
-
} else {
|
|
176
|
-
res[k] = v
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
return res
|
|
168
|
+
res := {}
|
|
169
|
+
for map in maps {
|
|
170
|
+
for k, v in map {
|
|
171
|
+
if is_undefined(v) {
|
|
172
|
+
delete(res, k)
|
|
173
|
+
} else if is_map(res[k]) && is_map(v) {
|
|
174
|
+
res[k] = deepMerge(res[k], v)
|
|
175
|
+
} else {
|
|
176
|
+
res[k] = v
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
return res
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
export ll.toStrict({
|
|
184
|
-
map : map,
|
|
185
|
-
merge: merge,
|
|
186
|
-
deepMerge: deepMerge,
|
|
187
|
-
clone: clone,
|
|
188
|
-
mapKeys : mapKeys,
|
|
189
|
-
mapValues : mapValues,
|
|
190
|
-
filter : filter,
|
|
191
|
-
filterValues : filterValues,
|
|
192
|
-
filterKeys : filterKeys,
|
|
193
|
-
filterKeysValues : filterKeysValues,
|
|
194
|
-
getKeys: getKeys,
|
|
195
|
-
containsKey: containsKey
|
|
184
|
+
map : map,
|
|
185
|
+
merge: merge,
|
|
186
|
+
deepMerge: deepMerge,
|
|
187
|
+
clone: clone,
|
|
188
|
+
mapKeys : mapKeys,
|
|
189
|
+
mapValues : mapValues,
|
|
190
|
+
filter : filter,
|
|
191
|
+
filterValues : filterValues,
|
|
192
|
+
filterKeys : filterKeys,
|
|
193
|
+
filterKeysValues : filterKeysValues,
|
|
194
|
+
getKeys: getKeys,
|
|
195
|
+
containsKey: containsKey
|
|
196
196
|
})
|
|
@@ -1,22 +1,22 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Utilities for working with objects
|
|
3
|
+
*/
|
|
4
4
|
|
|
5
5
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Deletes entries with undefined values from object
|
|
9
|
+
*/
|
|
10
10
|
deleteUndefined := func(obj) {
|
|
11
|
-
for k, v in obj {
|
|
12
|
-
if is_undefined(v) {
|
|
13
|
-
delete(obj, k)
|
|
14
|
-
}
|
|
15
|
-
}
|
|
11
|
+
for k, v in obj {
|
|
12
|
+
if is_undefined(v) {
|
|
13
|
+
delete(obj, k)
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
16
|
|
|
17
|
-
return obj
|
|
17
|
+
return obj
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
export ll.toStrict({
|
|
21
|
-
deleteUndefined: deleteUndefined
|
|
21
|
+
deleteUndefined: deleteUndefined
|
|
22
22
|
})
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Utility functions for working with objects.
|
|
3
|
+
*/
|
|
4
4
|
|
|
5
5
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
6
6
|
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
7
|
+
/**
|
|
8
|
+
* Inherit all methods and properties of a super object
|
|
9
|
+
*
|
|
10
|
+
* @param super a parent from which we get all methods
|
|
11
|
+
* @param self an object in which we set all super methods
|
|
12
|
+
* @return self
|
|
13
|
+
*/
|
|
14
14
|
inherit := func(super, self) {
|
|
15
|
-
self["super"] = super
|
|
15
|
+
self["super"] = super
|
|
16
16
|
|
|
17
|
+
// inherit super methods
|
|
18
|
+
for k, v in super {
|
|
19
|
+
if self[k] == undefined {
|
|
20
|
+
self[k] = v
|
|
21
|
+
}
|
|
22
|
+
}
|
|
17
23
|
|
|
18
|
-
|
|
19
|
-
if self[k] == undefined {
|
|
20
|
-
self[k] = v
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
return ll.toStrict(self)
|
|
24
|
+
return ll.toStrict(self)
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
export ll.toStrict({
|
|
28
|
-
inherit: inherit
|
|
28
|
+
inherit: inherit
|
|
29
29
|
})
|