@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.
Files changed (64) hide show
  1. package/dist/tengo/lib/assets.lib.tengo +52 -52
  2. package/dist/tengo/lib/assets.swinfo.lib.tengo +45 -45
  3. package/dist/tengo/lib/constants.lib.tengo +32 -32
  4. package/dist/tengo/lib/exec.R.internal.lib.tengo +29 -29
  5. package/dist/tengo/lib/exec.R.lib.tengo +166 -166
  6. package/dist/tengo/lib/exec.constants.lib.tengo +4 -4
  7. package/dist/tengo/lib/exec.descriptor.lib.tengo +31 -31
  8. package/dist/tengo/lib/exec.internal.lib.tengo +297 -297
  9. package/dist/tengo/lib/exec.lib.tengo +815 -815
  10. package/dist/tengo/lib/exec.monetization.lib.tengo +130 -130
  11. package/dist/tengo/lib/exec.package.lib.tengo +212 -212
  12. package/dist/tengo/lib/exec.python.internal.lib.tengo +6 -6
  13. package/dist/tengo/lib/exec.python.lib.tengo +146 -146
  14. package/dist/tengo/lib/exec.runcmd.lib.tengo +371 -371
  15. package/dist/tengo/lib/exec.runenv.lib.tengo +92 -92
  16. package/dist/tengo/lib/exec.stream.lib.tengo +40 -40
  17. package/dist/tengo/lib/file.internal.lib.tengo +77 -77
  18. package/dist/tengo/lib/file.lib.tengo +57 -57
  19. package/dist/tengo/lib/ll.lib.tengo +244 -244
  20. package/dist/tengo/lib/maps.lib.tengo +152 -152
  21. package/dist/tengo/lib/objects.lib.tengo +13 -13
  22. package/dist/tengo/lib/oop.lib.tengo +19 -19
  23. package/dist/tengo/lib/path.lib.tengo +125 -125
  24. package/dist/tengo/lib/pframes.constants.lib.tengo +28 -28
  25. package/dist/tengo/lib/pframes.export-pcolumn.lib.tengo +33 -33
  26. package/dist/tengo/lib/pframes.lib.tengo +43 -43
  27. package/dist/tengo/lib/pframes.ll.lib.tengo +72 -72
  28. package/dist/tengo/lib/pframes.pcolumn.lib.tengo +49 -49
  29. package/dist/tengo/lib/pframes.spec.lib.tengo +96 -96
  30. package/dist/tengo/lib/pframes.util.lib.tengo +288 -288
  31. package/dist/tengo/lib/pframes.xsv.lib.tengo +272 -272
  32. package/dist/tengo/lib/render.lib.tengo +75 -75
  33. package/dist/tengo/lib/sets.lib.tengo +68 -68
  34. package/dist/tengo/lib/slices.lib.tengo +258 -155
  35. package/dist/tengo/lib/smart.lib.tengo +1069 -1069
  36. package/dist/tengo/lib/test.lib.tengo +161 -161
  37. package/dist/tengo/lib/tpl.lib.tengo +515 -515
  38. package/dist/tengo/lib/tpl.state-await.lib.tengo +240 -240
  39. package/dist/tengo/lib/tpl.util.lib.tengo +9 -9
  40. package/dist/tengo/lib/validation.lib.tengo +378 -378
  41. package/dist/tengo/lib/workdir.lib.tengo +331 -331
  42. package/dist/tengo/lib/workdir.proc.lib.tengo +144 -144
  43. package/dist/tengo/lib/workdir.save.lib.tengo +130 -130
  44. package/dist/tengo/lib/workflow.bobject.lib.tengo +26 -26
  45. package/dist/tengo/lib/workflow.bquery.lib.tengo +165 -165
  46. package/dist/tengo/lib/workflow.constants.lib.tengo +2 -2
  47. package/dist/tengo/lib/workflow.context.lib.tengo +32 -32
  48. package/dist/tengo/lib/workflow.lib.tengo +206 -206
  49. package/dist/tengo/tpl/exec.R.create-renv.plj.gz +0 -0
  50. package/dist/tengo/tpl/exec.exec.plj.gz +0 -0
  51. package/dist/tengo/tpl/exec.monetization_to_json.plj.gz +0 -0
  52. package/dist/tengo/tpl/exec.python.create-venv.plj.gz +0 -0
  53. package/dist/tengo/tpl/exec.python.install-deps.plj.gz +0 -0
  54. package/dist/tengo/tpl/pframes.aggregate.plj.gz +0 -0
  55. package/dist/tengo/tpl/pframes.export-multiple-pcolumns.plj.gz +0 -0
  56. package/dist/tengo/tpl/pframes.export-pframe.plj.gz +0 -0
  57. package/dist/tengo/tpl/pframes.export-single-pcolumn.plj.gz +0 -0
  58. package/dist/tengo/tpl/pframes.import-dir.plj.gz +0 -0
  59. package/dist/tengo/tpl/pframes.map-pframe.plj.gz +0 -0
  60. package/dist/tengo/tpl/pframes.xsv-export-pframe.plj.gz +0 -0
  61. package/dist/tengo/tpl/pframes.xsv-import-map.plj.gz +0 -0
  62. package/dist/tengo/tpl/workdir.save.plj.gz +0 -0
  63. package/dist/tengo/tpl/workflow.build-ctx.plj.gz +0 -0
  64. 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
  })