@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
|
@@ -15,174 +15,174 @@ _OUTPUT_RUN_ENV := "runEnv"
|
|
|
15
15
|
createRenvTpl := assets.importTemplate("@platforma-sdk/workflow-tengo:exec.R.create-renv")
|
|
16
16
|
|
|
17
17
|
rVenvBuilder := func() {
|
|
18
|
-
self := undefined
|
|
19
|
-
|
|
20
|
-
opMode := "remote"
|
|
21
|
-
toolset := "renv"
|
|
22
|
-
rDescriptor := undefined
|
|
23
|
-
softwareRef := undefined
|
|
24
|
-
dependencies := undefined
|
|
25
|
-
cache := 0
|
|
26
|
-
|
|
27
|
-
self = {
|
|
28
|
-
operationMode: func(mode) {
|
|
29
|
-
validation.assertJsonSchema(mode, "string",
|
|
30
|
-
"exec.R.operationMode: <mode> must be string")
|
|
31
|
-
|
|
32
|
-
ll.assert(mode == "remote" || mode == "dev-local",
|
|
33
|
-
"exec.R.operationMode: unsupported operation mode: 'remote', 'dev-local' are valid in this version of workflow-tengo SDK")
|
|
34
|
-
|
|
35
|
-
opMode = mode
|
|
36
|
-
return self
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
useToolset: func(name) {
|
|
40
|
-
validation.assertJsonSchema(name, "string",
|
|
41
|
-
"exec.R.useToolset: <name> must be valid name of R packaging toolset (i.e. 'renv')")
|
|
42
|
-
ll.assert(name != "", "exec.R.useToolset: toolset name must not be empty")
|
|
43
|
-
|
|
44
|
-
toolset = name
|
|
45
|
-
return self
|
|
46
|
-
},
|
|
47
|
-
|
|
48
|
-
runEnvDescriptor: func(descriptor) {
|
|
49
|
-
validation.assertJsonSchema(descriptor, desc.runEnvScheme, "exec.R.runEnvDescriptor: <descriptor> must be run environment specification")
|
|
50
|
-
ll.assert(descriptor.type == "R", "exec.R.runEnvDescriptor: not a 'R' run environment: %q", descriptor.type)
|
|
51
|
-
|
|
52
|
-
rDescriptor = ll.fromStrict(descriptor)
|
|
53
|
-
return self
|
|
54
|
-
},
|
|
55
|
-
|
|
56
|
-
software: func(pkgRef) {
|
|
57
|
-
validation.assertJsonSchema(pkgRef, validation.reference, "exec.R.software: <pkgRef> must be a reference to software package")
|
|
58
|
-
|
|
59
|
-
softwareRef = pkgRef
|
|
60
|
-
return self
|
|
61
|
-
},
|
|
62
|
-
|
|
63
|
-
dependencies: func(deps) {
|
|
64
|
-
validation.assertJsonSchema(deps, { "any": "string" }, "exec.R.dependencies: <deps> must be map of reference file paths")
|
|
65
|
-
|
|
66
|
-
dependencies = deps
|
|
67
|
-
return self
|
|
68
|
-
},
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
cacheMillis: func(millis) {
|
|
76
|
-
ll.assert(is_int(millis) && millis > 0, "exec.R.cacheMillis: cache time must be a number of milliseconds")
|
|
77
|
-
cache = millis * times.millisecond
|
|
78
|
-
return self
|
|
79
|
-
},
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
cacheSeconds: func(seconds) {
|
|
87
|
-
ll.assert(is_int(seconds) && seconds > 0, "exec.R.cacheSeconds: cache time must be a number of seconds")
|
|
88
|
-
cache = seconds * times.second
|
|
89
|
-
return self
|
|
90
|
-
},
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
cacheMinutes: func(minutes) {
|
|
98
|
-
ll.assert(is_int(minutes) && minutes > 0, "exec.R.cacheMinutes: cache time must be a number of minutes")
|
|
99
|
-
cache = minutes * times.minute
|
|
100
|
-
return self
|
|
101
|
-
},
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
cacheHours: func(hours) {
|
|
109
|
-
ll.assert(is_int(hours) && hours > 0, "exec.R.cacheHours: cache time must be a number of hours")
|
|
110
|
-
cache = hours * times.hour
|
|
111
|
-
return self
|
|
112
|
-
},
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
cacheDays: func(days) {
|
|
120
|
-
ll.assert(is_int(days) && days > 0, "exec.R.cacheDays: cache time must be a number of days")
|
|
121
|
-
cache = days * times.hour * 24
|
|
122
|
-
return self
|
|
123
|
-
},
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
cache: func(time) {
|
|
132
|
-
ll.assert(
|
|
133
|
-
is_int(time) && time > times.millisecond,
|
|
134
|
-
"exec.R.cache: cache time must be an integer. " +
|
|
135
|
-
"Did you forget to import a standard tengo library 'times'?")
|
|
136
|
-
cache = time
|
|
137
|
-
return self
|
|
138
|
-
},
|
|
139
|
-
|
|
140
|
-
build: func() {
|
|
141
|
-
archive := pkg.get(rDescriptor.registry, rDescriptor.package).archive()
|
|
142
|
-
rPkg := pkg.install(archive).package()
|
|
143
|
-
|
|
144
|
-
rVenvInputs := {
|
|
145
|
-
operationMode: opMode,
|
|
146
|
-
toolset: toolset,
|
|
147
|
-
dependencies: dependencies,
|
|
148
|
-
software: softwareRef,
|
|
149
|
-
rDescriptor: rDescriptor,
|
|
150
|
-
R: rPkg
|
|
151
|
-
}
|
|
152
|
-
|
|
153
|
-
validation.assertJsonSchema(rVenvInputs, internal.rVenvInputSchema, "incomplete R runenv configuration")
|
|
154
|
-
|
|
155
|
-
tpl := render.create(createRenvTpl, rVenvInputs)
|
|
156
|
-
|
|
157
|
-
self := undefined
|
|
158
|
-
self = ll.toStrict(oop.inherit(tpl, {
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
venv: func() {
|
|
165
|
-
return tpl.output(_OUTPUT_RUN_ENV, cache)
|
|
166
|
-
},
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
R: func() {
|
|
174
|
-
return rPkg
|
|
175
|
-
}
|
|
176
|
-
}))
|
|
177
|
-
|
|
178
|
-
return self
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
|
|
182
|
-
return self
|
|
18
|
+
self := undefined
|
|
19
|
+
|
|
20
|
+
opMode := "remote"
|
|
21
|
+
toolset := "renv"
|
|
22
|
+
rDescriptor := undefined
|
|
23
|
+
softwareRef := undefined
|
|
24
|
+
dependencies := undefined
|
|
25
|
+
cache := 0
|
|
26
|
+
|
|
27
|
+
self = {
|
|
28
|
+
operationMode: func(mode) {
|
|
29
|
+
validation.assertJsonSchema(mode, "string",
|
|
30
|
+
"exec.R.operationMode: <mode> must be string")
|
|
31
|
+
|
|
32
|
+
ll.assert(mode == "remote" || mode == "dev-local",
|
|
33
|
+
"exec.R.operationMode: unsupported operation mode: 'remote', 'dev-local' are valid in this version of workflow-tengo SDK")
|
|
34
|
+
|
|
35
|
+
opMode = mode
|
|
36
|
+
return self
|
|
37
|
+
},
|
|
38
|
+
|
|
39
|
+
useToolset: func(name) {
|
|
40
|
+
validation.assertJsonSchema(name, "string",
|
|
41
|
+
"exec.R.useToolset: <name> must be valid name of R packaging toolset (i.e. 'renv')")
|
|
42
|
+
ll.assert(name != "", "exec.R.useToolset: toolset name must not be empty")
|
|
43
|
+
|
|
44
|
+
toolset = name
|
|
45
|
+
return self
|
|
46
|
+
},
|
|
47
|
+
|
|
48
|
+
runEnvDescriptor: func(descriptor) {
|
|
49
|
+
validation.assertJsonSchema(descriptor, desc.runEnvScheme, "exec.R.runEnvDescriptor: <descriptor> must be run environment specification")
|
|
50
|
+
ll.assert(descriptor.type == "R", "exec.R.runEnvDescriptor: not a 'R' run environment: %q", descriptor.type)
|
|
51
|
+
|
|
52
|
+
rDescriptor = ll.fromStrict(descriptor)
|
|
53
|
+
return self
|
|
54
|
+
},
|
|
55
|
+
|
|
56
|
+
software: func(pkgRef) {
|
|
57
|
+
validation.assertJsonSchema(pkgRef, validation.reference, "exec.R.software: <pkgRef> must be a reference to software package")
|
|
58
|
+
|
|
59
|
+
softwareRef = pkgRef
|
|
60
|
+
return self
|
|
61
|
+
},
|
|
62
|
+
|
|
63
|
+
dependencies: func(deps) {
|
|
64
|
+
validation.assertJsonSchema(deps, { "any": "string" }, "exec.R.dependencies: <deps> must be map of reference file paths")
|
|
65
|
+
|
|
66
|
+
dependencies = deps
|
|
67
|
+
return self
|
|
68
|
+
},
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Sets the cache time in milliseconds.
|
|
72
|
+
*
|
|
73
|
+
* @param millis: number
|
|
74
|
+
*/
|
|
75
|
+
cacheMillis: func(millis) {
|
|
76
|
+
ll.assert(is_int(millis) && millis > 0, "exec.R.cacheMillis: cache time must be a number of milliseconds")
|
|
77
|
+
cache = millis * times.millisecond
|
|
78
|
+
return self
|
|
79
|
+
},
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Sets the cache time in seconds.
|
|
83
|
+
*
|
|
84
|
+
* @param seconds: number
|
|
85
|
+
*/
|
|
86
|
+
cacheSeconds: func(seconds) {
|
|
87
|
+
ll.assert(is_int(seconds) && seconds > 0, "exec.R.cacheSeconds: cache time must be a number of seconds")
|
|
88
|
+
cache = seconds * times.second
|
|
89
|
+
return self
|
|
90
|
+
},
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* Sets the cache time in minutes.
|
|
94
|
+
*
|
|
95
|
+
* @param minutes: number
|
|
96
|
+
*/
|
|
97
|
+
cacheMinutes: func(minutes) {
|
|
98
|
+
ll.assert(is_int(minutes) && minutes > 0, "exec.R.cacheMinutes: cache time must be a number of minutes")
|
|
99
|
+
cache = minutes * times.minute
|
|
100
|
+
return self
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Sets the cache time in hours.
|
|
105
|
+
*
|
|
106
|
+
* @param hours: number
|
|
107
|
+
*/
|
|
108
|
+
cacheHours: func(hours) {
|
|
109
|
+
ll.assert(is_int(hours) && hours > 0, "exec.R.cacheHours: cache time must be a number of hours")
|
|
110
|
+
cache = hours * times.hour
|
|
111
|
+
return self
|
|
112
|
+
},
|
|
113
|
+
|
|
114
|
+
/**
|
|
115
|
+
* Sets the cache time in days
|
|
116
|
+
*
|
|
117
|
+
* @param days: number
|
|
118
|
+
*/
|
|
119
|
+
cacheDays: func(days) {
|
|
120
|
+
ll.assert(is_int(days) && days > 0, "exec.R.cacheDays: cache time must be a number of days")
|
|
121
|
+
cache = days * times.hour * 24
|
|
122
|
+
return self
|
|
123
|
+
},
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* @deprecated, use cacheMillis, cacheSeconds, cacheMinutes, cacheHours and cacheDays instead.
|
|
127
|
+
* Sets the cache time.
|
|
128
|
+
*
|
|
129
|
+
* @param time: duration - the cache time from 'times' library.
|
|
130
|
+
*/
|
|
131
|
+
cache: func(time) {
|
|
132
|
+
ll.assert(
|
|
133
|
+
is_int(time) && time > times.millisecond,
|
|
134
|
+
"exec.R.cache: cache time must be an integer. " +
|
|
135
|
+
"Did you forget to import a standard tengo library 'times'?")
|
|
136
|
+
cache = time
|
|
137
|
+
return self
|
|
138
|
+
},
|
|
139
|
+
|
|
140
|
+
build: func() {
|
|
141
|
+
archive := pkg.get(rDescriptor.registry, rDescriptor.package).archive()
|
|
142
|
+
rPkg := pkg.install(archive).package()
|
|
143
|
+
|
|
144
|
+
rVenvInputs := {
|
|
145
|
+
operationMode: opMode,
|
|
146
|
+
toolset: toolset,
|
|
147
|
+
dependencies: dependencies,
|
|
148
|
+
software: softwareRef,
|
|
149
|
+
rDescriptor: rDescriptor,
|
|
150
|
+
R: rPkg
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
validation.assertJsonSchema(rVenvInputs, internal.rVenvInputSchema, "incomplete R runenv configuration")
|
|
154
|
+
|
|
155
|
+
tpl := render.create(createRenvTpl, rVenvInputs)
|
|
156
|
+
|
|
157
|
+
self := undefined
|
|
158
|
+
self = ll.toStrict(oop.inherit(tpl, {
|
|
159
|
+
/**
|
|
160
|
+
* R virtual environment with all dependencies installed.
|
|
161
|
+
*
|
|
162
|
+
* @return renv: smart.field - a reference to the R portable run environment.
|
|
163
|
+
*/
|
|
164
|
+
venv: func() {
|
|
165
|
+
return tpl.output(_OUTPUT_RUN_ENV, cache)
|
|
166
|
+
},
|
|
167
|
+
|
|
168
|
+
/**
|
|
169
|
+
* R runtime used for R virtual environment creation.
|
|
170
|
+
*
|
|
171
|
+
* @return R: smart.Field - a reference to the R runtime.
|
|
172
|
+
*/
|
|
173
|
+
R: func() {
|
|
174
|
+
return rPkg
|
|
175
|
+
}
|
|
176
|
+
}))
|
|
177
|
+
|
|
178
|
+
return self
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return self
|
|
183
183
|
}
|
|
184
184
|
|
|
185
185
|
|
|
186
186
|
export ll.toStrict({
|
|
187
|
-
rVenvBuilder : rVenvBuilder
|
|
187
|
+
rVenvBuilder : rVenvBuilder
|
|
188
188
|
})
|
|
@@ -4,8 +4,8 @@ ARG_TYPE_VAR := "variableRef" // TODO: deprecated, remove after 15 Mar 20
|
|
|
4
4
|
ARG_TYPES := [ARG_TYPE_STRING, ARG_TYPE_EXPRESSION, ARG_TYPE_VAR]
|
|
5
5
|
|
|
6
6
|
export {
|
|
7
|
-
ARG_TYPE_STRING: ARG_TYPE_STRING,
|
|
8
|
-
ARG_TYPE_EXPRESSION: ARG_TYPE_EXPRESSION,
|
|
9
|
-
ARG_TYPE_VAR: ARG_TYPE_VAR,
|
|
10
|
-
ARG_TYPES: ARG_TYPES
|
|
7
|
+
ARG_TYPE_STRING: ARG_TYPE_STRING,
|
|
8
|
+
ARG_TYPE_EXPRESSION: ARG_TYPE_EXPRESSION,
|
|
9
|
+
ARG_TYPE_VAR: ARG_TYPE_VAR,
|
|
10
|
+
ARG_TYPES: ARG_TYPES
|
|
11
11
|
}
|
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/** Everything about software descriptors
|
|
2
|
+
* The scheme is here:
|
|
3
|
+
* https://github.com/milaboratory/platforma/blob/main/tools/package-builder/src/core/renderer.ts#L161 */
|
|
4
4
|
|
|
5
5
|
ll := import("@platforma-sdk/workflow-tengo:ll")
|
|
6
6
|
|
|
7
7
|
runEnvScheme := {
|
|
8
|
-
registry: "string",
|
|
9
|
-
package: "string",
|
|
10
|
-
type: "string",
|
|
11
|
-
binDir: "string"
|
|
8
|
+
registry: "string",
|
|
9
|
+
package: "string",
|
|
10
|
+
type: "string",
|
|
11
|
+
binDir: "string"
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
binaryScheme := {
|
|
15
|
-
registry: "string",
|
|
16
|
-
package: "string",
|
|
17
|
-
cmd: ["string"],
|
|
18
|
-
"runEnv,?": runEnvScheme
|
|
15
|
+
registry: "string",
|
|
16
|
+
package: "string",
|
|
17
|
+
cmd: ["string"],
|
|
18
|
+
"runEnv,?": runEnvScheme
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
assetScheme := {
|
|
22
|
-
registry: "string",
|
|
23
|
-
package: "string",
|
|
24
|
-
url: "string"
|
|
22
|
+
registry: "string",
|
|
23
|
+
package: "string",
|
|
24
|
+
url: "string"
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
localScheme := {
|
|
28
|
-
hash: "string",
|
|
29
|
-
path: "string",
|
|
30
|
-
cmd: ["string"],
|
|
31
|
-
runEnv: runEnvScheme
|
|
28
|
+
hash: "string",
|
|
29
|
+
path: "string",
|
|
30
|
+
cmd: ["string"],
|
|
31
|
+
runEnv: runEnvScheme
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
scheme := {
|
|
35
|
-
"isDev,?": "bool",
|
|
36
|
-
"schemaVersion,?": "number",
|
|
37
|
-
"binary,?": binaryScheme,
|
|
38
|
-
"asset,?": assetScheme,
|
|
39
|
-
"local,?": localScheme
|
|
35
|
+
"isDev,?": "bool",
|
|
36
|
+
"schemaVersion,?": "number",
|
|
37
|
+
"binary,?": binaryScheme,
|
|
38
|
+
"asset,?": assetScheme,
|
|
39
|
+
"local,?": localScheme
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
/** True if Platforma Backend supports expression refs. */
|
|
43
43
|
canBackendUseExpressions := func() {
|
|
44
|
-
return ll.apiVersion() >= 2
|
|
44
|
+
return ll.apiVersion() >= 2
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
export {
|
|
48
|
-
runEnvScheme: runEnvScheme,
|
|
49
|
-
binaryScheme: binaryScheme,
|
|
50
|
-
assetScheme: assetScheme,
|
|
51
|
-
localScheme: localScheme,
|
|
52
|
-
scheme: scheme,
|
|
53
|
-
canBackendUseExpressions: canBackendUseExpressions
|
|
48
|
+
runEnvScheme: runEnvScheme,
|
|
49
|
+
binaryScheme: binaryScheme,
|
|
50
|
+
assetScheme: assetScheme,
|
|
51
|
+
localScheme: localScheme,
|
|
52
|
+
scheme: scheme,
|
|
53
|
+
canBackendUseExpressions: canBackendUseExpressions
|
|
54
54
|
}
|