@platforma-sdk/workflow-tengo 2.13.6 → 2.15.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.
- package/README.md +17 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -1
- package/dist/index.mjs +4 -1
- package/dist/tengo/lib/assets.lib.tengo +28 -28
- package/dist/tengo/lib/assets.swinfo.lib.tengo +24 -24
- package/dist/tengo/lib/constants.lib.tengo +6 -3
- package/dist/tengo/lib/exec.R.internal.lib.tengo +2 -2
- package/dist/tengo/lib/exec.R.lib.tengo +41 -41
- package/dist/tengo/lib/exec.descriptor.lib.tengo +3 -3
- package/dist/tengo/lib/exec.internal.lib.tengo +41 -41
- package/dist/tengo/lib/exec.lib.tengo +289 -289
- package/dist/tengo/lib/exec.limits.lib.tengo +49 -49
- package/dist/tengo/lib/exec.monetization.lib.tengo +1 -1
- package/dist/tengo/lib/exec.monetization_internal.lib.tengo +38 -38
- package/dist/tengo/lib/exec.package.lib.tengo +53 -53
- package/dist/tengo/lib/exec.python.internal.lib.tengo +1 -1
- package/dist/tengo/lib/exec.python.lib.tengo +37 -37
- package/dist/tengo/lib/exec.runcmd.lib.tengo +138 -138
- package/dist/tengo/lib/exec.runenv.lib.tengo +18 -18
- package/dist/tengo/lib/exec.stream.lib.tengo +25 -25
- package/dist/tengo/lib/feats.lib.tengo +3 -3
- package/dist/tengo/lib/file.internal.lib.tengo +31 -31
- package/dist/tengo/lib/file.lib.tengo +29 -29
- package/dist/tengo/lib/ll.get-future-field-default.lib.tengo +137 -0
- package/dist/tengo/lib/ll.lib.tengo +129 -129
- package/dist/tengo/lib/maps.lib.tengo +38 -38
- package/dist/tengo/lib/objects.lib.tengo +6 -6
- package/dist/tengo/lib/oop.lib.tengo +11 -11
- package/dist/tengo/lib/path.lib.tengo +60 -60
- package/dist/tengo/lib/pframes.builder.lib.tengo +3 -3
- package/dist/tengo/lib/pframes.constants.lib.tengo +20 -20
- package/dist/tengo/lib/pframes.export-pcolumn.lib.tengo +5 -5
- package/dist/tengo/lib/pframes.lib.tengo +206 -198
- package/dist/tengo/lib/pframes.ll.lib.tengo +59 -59
- package/dist/tengo/lib/pframes.pcolumn.lib.tengo +18 -18
- package/dist/tengo/lib/pframes.remove-nulls.lib.tengo +36 -0
- package/dist/tengo/lib/pframes.spec.lib.tengo +83 -83
- package/dist/tengo/lib/pframes.util.lib.tengo +176 -176
- package/dist/tengo/lib/pframes.xsv-import-file.lib.tengo +160 -0
- package/dist/tengo/lib/pframes.xsv.lib.tengo +84 -167
- package/dist/tengo/lib/render.lib.tengo +100 -45
- package/dist/tengo/lib/sets.lib.tengo +44 -44
- package/dist/tengo/lib/slices.lib.tengo +126 -126
- package/dist/tengo/lib/smart.lib.tengo +654 -507
- package/dist/tengo/lib/test.lib.tengo +120 -120
- package/dist/tengo/lib/tpl.lib.tengo +206 -170
- package/dist/tengo/lib/tpl.state-await.lib.tengo +17 -17
- package/dist/tengo/lib/tpl.util.lib.tengo +5 -5
- package/dist/tengo/lib/units.lib.tengo +2 -2
- package/dist/tengo/lib/validation.lib.tengo +130 -130
- package/dist/tengo/lib/waiter.lib.tengo +59 -0
- package/dist/tengo/lib/workdir.lib.tengo +126 -126
- package/dist/tengo/lib/workdir.proc.lib.tengo +47 -47
- package/dist/tengo/lib/workdir.save.lib.tengo +53 -53
- package/dist/tengo/lib/workflow.bobject.lib.tengo +11 -11
- package/dist/tengo/lib/workflow.bquery.lib.tengo +40 -40
- package/dist/tengo/lib/workflow.constants.lib.tengo +1 -1
- package/dist/tengo/lib/workflow.context.lib.tengo +16 -16
- package/dist/tengo/lib/workflow.lib.tengo +76 -76
- 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/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.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.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/package.json +2 -2
- package/dist/tengo/tpl/pframes.map-pframe.plj.gz +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
2
|
|
|
3
3
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
4
4
|
oop := import("@platforma-sdk/workflow-tengo:oop")
|
|
@@ -15,12 +15,12 @@ _WORKDIR_AFTER_FIELD := "workdirOut"
|
|
|
15
15
|
_PROGRESS_FIELD := "progress"
|
|
16
16
|
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
24
|
getFileSaveRule := func(fileName) {
|
|
25
25
|
return {
|
|
26
26
|
blobKey: fileName,
|
|
@@ -29,12 +29,12 @@ getFileSaveRule := func(fileName) {
|
|
|
29
29
|
}
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
38
|
getContentSaveRule := func(fileName) {
|
|
39
39
|
return {
|
|
40
40
|
blobKey: fileName,
|
|
@@ -43,90 +43,90 @@ getContentSaveRule := func(fileName) {
|
|
|
43
43
|
}
|
|
44
44
|
}
|
|
45
45
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
|
|
49
49
|
builder := func(wdBefore) {
|
|
50
50
|
|
|
51
51
|
super := smart.ephemeralBuilder(constants.RTYPE_WORKDIR_SAVE)
|
|
52
|
-
|
|
52
|
+
|
|
53
53
|
super.getField(_WORKDIR_IN_FIELD).set(wdBefore)
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
|
|
56
56
|
fRules := {}
|
|
57
|
-
|
|
57
|
+
|
|
58
58
|
cRules := {}
|
|
59
59
|
|
|
60
60
|
self := undefined
|
|
61
61
|
self = ll.toStrict(oop.inherit(super, {
|
|
62
62
|
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
|
|
68
|
+
|
|
69
69
|
saveFile: func(fName) {
|
|
70
70
|
fRules = sets.add(fRules, fName)
|
|
71
71
|
return self
|
|
72
72
|
},
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
74
|
+
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
|
|
80
80
|
saveFileContent: func(fName) {
|
|
81
81
|
cRules = sets.add(cRules, fName)
|
|
82
82
|
return self
|
|
83
83
|
},
|
|
84
84
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
|
|
88
88
|
getSavedFiles: func() {
|
|
89
89
|
return self.getField(_SAVED_FILES_FIELD)
|
|
90
90
|
},
|
|
91
91
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
|
|
93
|
+
|
|
94
|
+
|
|
95
95
|
getSavedFilesContent: func() {
|
|
96
96
|
return self.getField(_SAVED_CONTENT_FIELD)
|
|
97
97
|
},
|
|
98
98
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
|
|
102
102
|
getWorkdirAfter: func() {
|
|
103
103
|
return self.getField(_WORKDIR_AFTER_FIELD)
|
|
104
104
|
},
|
|
105
105
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
|
|
107
|
+
|
|
108
|
+
|
|
109
109
|
getProgress: func() {
|
|
110
110
|
return self.getField(_PROGRESS_FIELD)
|
|
111
111
|
},
|
|
112
112
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
113
|
+
|
|
114
|
+
|
|
115
|
+
|
|
116
116
|
getSavedFile: func(fName) {
|
|
117
117
|
return self.getSavedFiles().getFutureInputField(fName)
|
|
118
118
|
},
|
|
119
119
|
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
|
|
123
123
|
getSavedFileContent: func(fName) {
|
|
124
124
|
return self.getSavedFilesContent().getFutureInputField(fName)
|
|
125
125
|
},
|
|
126
126
|
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
127
|
+
|
|
128
|
+
|
|
129
|
+
|
|
130
130
|
build: func() {
|
|
131
131
|
rules := []
|
|
132
132
|
for fName, _ in fRules {
|
|
@@ -145,7 +145,7 @@ builder := func(wdBefore) {
|
|
|
145
145
|
|
|
146
146
|
resource := super.lockAndBuild()
|
|
147
147
|
|
|
148
|
-
|
|
148
|
+
|
|
149
149
|
return self
|
|
150
150
|
}
|
|
151
151
|
}))
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
|
|
2
|
+
|
|
3
|
+
|
|
4
4
|
|
|
5
5
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
6
6
|
constants := import("@platforma-sdk/workflow-tengo:constants")
|
|
@@ -9,7 +9,7 @@ smart := import("@platforma-sdk/workflow-tengo:smart")
|
|
|
9
9
|
validation := import("@platforma-sdk/workflow-tengo:validation")
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
|
|
13
13
|
_pObjectSpecSchema := {
|
|
14
14
|
"__options__,closed": "",
|
|
15
15
|
|
|
@@ -32,16 +32,16 @@ _pObjectSpecSchema := {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
40
|
createSpec := func(spec) {
|
|
41
41
|
ll.assert(ll.isMap(spec), "expected map got %v", spec)
|
|
42
42
|
|
|
43
|
-
|
|
44
|
-
|
|
43
|
+
|
|
44
|
+
|
|
45
45
|
|
|
46
46
|
return smart.createValueResource(constants.RTYPE_BOBJECT_SPEC, json.encode(spec))
|
|
47
47
|
}
|
|
@@ -6,7 +6,7 @@ json := import("json")
|
|
|
6
6
|
|
|
7
7
|
_CONTEXT_FIELD_NAME := "ctx"
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
|
|
10
10
|
_OPTIONS_SCHEME := {
|
|
11
11
|
"spec,?": `bool`,
|
|
12
12
|
"data,?": `bool`,
|
|
@@ -15,39 +15,39 @@ _OPTIONS_SCHEME := {
|
|
|
15
15
|
"errIfMissing,?": `bool`
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
|
|
19
19
|
_DEFAULT_OPTIONS := {
|
|
20
|
-
|
|
20
|
+
|
|
21
21
|
spec: true,
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
data: true,
|
|
24
|
-
|
|
24
|
+
|
|
25
25
|
single: false,
|
|
26
|
-
|
|
26
|
+
|
|
27
27
|
first: false,
|
|
28
|
-
|
|
28
|
+
|
|
29
29
|
errIfMissing: false
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
|
|
40
40
|
create := func(spec, ctx, ...options) {
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
|
|
43
43
|
|
|
44
44
|
ops := copy(_DEFAULT_OPTIONS)
|
|
45
45
|
if len(options) > 0 {
|
|
46
46
|
ll.assert(len(options) == 1, "expected map, got array: ", options)
|
|
47
47
|
|
|
48
|
-
// @TODO validate options
|
|
49
48
|
|
|
50
|
-
|
|
49
|
+
|
|
50
|
+
|
|
51
51
|
for k, v in options[0] {
|
|
52
52
|
ops[k] = v
|
|
53
53
|
}
|
|
@@ -62,7 +62,7 @@ create := func(spec, ctx, ...options) {
|
|
|
62
62
|
if ops.first {
|
|
63
63
|
builder = smart.ephemeralBuilder(constants.RTYPE_BRESOLVE_FIRST, query)
|
|
64
64
|
} else {
|
|
65
|
-
|
|
65
|
+
|
|
66
66
|
builder = smart.ephemeralBuilder(constants.RTYPE_BRESOLVE_CHOICE, query)
|
|
67
67
|
}
|
|
68
68
|
|
|
@@ -70,24 +70,24 @@ create := func(spec, ctx, ...options) {
|
|
|
70
70
|
resolve := builder.lockInputsAndBuild()
|
|
71
71
|
|
|
72
72
|
|
|
73
|
-
|
|
73
|
+
|
|
74
74
|
|
|
75
75
|
rb := smart.structBuilder(constants.RTYPE_QUERY_RESULT)
|
|
76
76
|
|
|
77
|
-
|
|
77
|
+
|
|
78
78
|
rb.createInputField("ops").setJson(ops)
|
|
79
79
|
|
|
80
80
|
if ops.spec {
|
|
81
81
|
rb.createInputField("spec").set(resolve.getFutureOutputField("spec"))
|
|
82
82
|
}
|
|
83
83
|
|
|
84
|
-
|
|
84
|
+
|
|
85
85
|
if ops.data {
|
|
86
86
|
rb.createInputField("data").set(resolve.getFutureOutputField("data"))
|
|
87
87
|
}
|
|
88
88
|
|
|
89
|
-
|
|
90
|
-
|
|
89
|
+
|
|
90
|
+
|
|
91
91
|
if ops.first {
|
|
92
92
|
rb.createInputField("ref").set(resolve.getFutureOutputField("address"))
|
|
93
93
|
}
|
|
@@ -95,9 +95,9 @@ create := func(spec, ctx, ...options) {
|
|
|
95
95
|
return rb.lockAndBuild()
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
|
|
101
101
|
resultUnmarshaller := func() {
|
|
102
102
|
return {
|
|
103
103
|
canParse: func(r) {
|
|
@@ -109,9 +109,9 @@ resultUnmarshaller := func() {
|
|
|
109
109
|
ops := resource.get("ops").getDataAsJson()
|
|
110
110
|
|
|
111
111
|
if ops.first {
|
|
112
|
-
// special case, single element
|
|
113
112
|
|
|
114
|
-
|
|
113
|
+
|
|
114
|
+
|
|
115
115
|
isNR := func(r) {
|
|
116
116
|
return r.info().Type.Name == constants.RTYPE_BRESOLVE_NO_RESULT.Name
|
|
117
117
|
}
|
|
@@ -125,10 +125,10 @@ resultUnmarshaller := func() {
|
|
|
125
125
|
spec: resource.get("spec").getDataAsJson()
|
|
126
126
|
}
|
|
127
127
|
|
|
128
|
-
|
|
128
|
+
|
|
129
129
|
if resource.hasInputField("data") {
|
|
130
130
|
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
if isNR(resource.get("data")) {
|
|
133
133
|
result.data = undefined
|
|
134
134
|
} else {
|
|
@@ -138,7 +138,7 @@ resultUnmarshaller := func() {
|
|
|
138
138
|
|
|
139
139
|
return ll.toStrict(result)
|
|
140
140
|
} else {
|
|
141
|
-
|
|
141
|
+
|
|
142
142
|
|
|
143
143
|
spec := resource.get("spec").inputs()
|
|
144
144
|
data := undefined
|
|
@@ -153,7 +153,7 @@ resultUnmarshaller := func() {
|
|
|
153
153
|
spec: s.getValueAsJson()
|
|
154
154
|
}
|
|
155
155
|
|
|
156
|
-
|
|
156
|
+
|
|
157
157
|
if !is_undefined(data) {
|
|
158
158
|
r.data = parser(data[ref].getValue())
|
|
159
159
|
}
|
|
@@ -173,13 +173,13 @@ resultUnmarshaller := func() {
|
|
|
173
173
|
}
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
176
|
+
|
|
177
|
+
|
|
178
|
+
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
|
|
182
|
+
|
|
183
183
|
resolve := func(ref, ctx, ...options) {
|
|
184
184
|
|
|
185
185
|
spec := {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
|
|
2
2
|
|
|
3
3
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
4
4
|
smart := import("@platforma-sdk/workflow-tengo:smart")
|
|
@@ -9,32 +9,32 @@ _BLOCK_ID_FIELD := "id"
|
|
|
9
9
|
_PARENT_CTX_FIELD := "parent"
|
|
10
10
|
_EXPORTS_OUTPUT_PREFIX := "values/"
|
|
11
11
|
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
18
|
builder := func(block, parentContext) {
|
|
19
19
|
|
|
20
20
|
super := smart.ephemeralBuilder(constants.RTYPE_CONTEXT)
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
|
|
23
23
|
super.createInputField(_BLOCK_ID_FIELD).setRefOrJson(block)
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
|
|
26
26
|
super.createInputField(_PARENT_CTX_FIELD).set(parentContext)
|
|
27
27
|
|
|
28
28
|
self := undefined
|
|
29
29
|
self = ll.toStrict(oop.inherit(super, {
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
|
|
38
38
|
add: func(name, value) {
|
|
39
39
|
field := super.createInputField(_EXPORTS_OUTPUT_PREFIX + name)
|
|
40
40
|
|