@platforma-sdk/workflow-tengo 5.0.3 → 5.1.1

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 (40) hide show
  1. package/dist/tengo/lib/exec.runcmd.lib.tengo +34 -4
  2. package/dist/tengo/lib/feats.lib.tengo +4 -1
  3. package/dist/tengo/lib/txt.lib.tengo +70 -0
  4. package/dist/tengo/tpl/anonymize.deanonymize.plj.gz +0 -0
  5. package/dist/tengo/tpl/anonymize.impl.plj.gz +0 -0
  6. package/dist/tengo/tpl/check_network.create_workdir_from_storage.plj.gz +0 -0
  7. package/dist/tengo/tpl/check_network.download_blob.plj.gz +0 -0
  8. package/dist/tengo/tpl/check_network.run_hello_world.plj.gz +0 -0
  9. package/dist/tengo/tpl/check_network.run_hello_world_py.plj.gz +0 -0
  10. package/dist/tengo/tpl/check_network.upload_blob.plj.gz +0 -0
  11. package/dist/tengo/tpl/check_network.upload_template.plj.gz +0 -0
  12. package/dist/tengo/tpl/check_network.workdir_type_name_extractor.plj.gz +0 -0
  13. package/dist/tengo/tpl/exec.R.create-renv.plj.gz +0 -0
  14. package/dist/tengo/tpl/exec.delayed-compute-allocation.impl.plj.gz +0 -0
  15. package/dist/tengo/tpl/exec.exec-impl.plj.gz +0 -0
  16. package/dist/tengo/tpl/exec.exec.plj.gz +0 -0
  17. package/dist/tengo/tpl/exec.load-software.impl.plj.gz +0 -0
  18. package/dist/tengo/tpl/exec.monetization_info.plj.gz +0 -0
  19. package/dist/tengo/tpl/exec.monetization_to_json.plj.gz +0 -0
  20. package/dist/tengo/tpl/exec.python.create-venv.plj.gz +0 -0
  21. package/dist/tengo/tpl/exec.python.install-deps.plj.gz +0 -0
  22. package/dist/tengo/tpl/exec.python.venv-bin-path.plj.gz +0 -0
  23. package/dist/tengo/tpl/ll.get-field.plj.gz +0 -0
  24. package/dist/tengo/tpl/pframes.export-multiple-pcolumns.plj.gz +0 -0
  25. package/dist/tengo/tpl/pframes.export-pframe-for-ui.plj.gz +0 -0
  26. package/dist/tengo/tpl/pframes.export-pframe.plj.gz +0 -0
  27. package/dist/tengo/tpl/pframes.export-single-pcolumn.plj.gz +0 -0
  28. package/dist/tengo/tpl/pframes.import-dir.plj.gz +0 -0
  29. package/dist/tengo/tpl/pframes.parse-to-json.plj.gz +0 -0
  30. package/dist/tengo/tpl/pframes.process-pcolumn-data.plj.gz +0 -0
  31. package/dist/tengo/tpl/pframes.remove-nulls.plj.gz +0 -0
  32. package/dist/tengo/tpl/pframes.slice-data.plj.gz +0 -0
  33. package/dist/tengo/tpl/pframes.xsv-export-pframe.plj.gz +0 -0
  34. package/dist/tengo/tpl/pframes.xsv-import-if-not-null.plj.gz +0 -0
  35. package/dist/tengo/tpl/pframes.xsv-import-map.plj.gz +0 -0
  36. package/dist/tengo/tpl/waiter.waiter.plj.gz +0 -0
  37. package/dist/tengo/tpl/workdir.save.plj.gz +0 -0
  38. package/dist/tengo/tpl/workflow.build-ctx.plj.gz +0 -0
  39. package/dist/tengo/tpl/workflow.query-anchored.plj.gz +0 -0
  40. package/package.json +4 -3
@@ -37,7 +37,9 @@ RUN_CMD_PLAN_OPTIONS_SCHEMA := {
37
37
  "args": [ARG_SCHEMA],
38
38
  "envs": { "any": ARG_SCHEMA },
39
39
  "substRules": { "any": "string" },
40
- "customPaths": [ARG_SCHEMA]
40
+ "customPaths": [ARG_SCHEMA],
41
+ "dockerImageTag,?": "string",
42
+ "dockerEntrypoint,?": ["string"]
41
43
  }
42
44
 
43
45
  RUN_CMD_PLAN_SCHEMA := {
@@ -54,6 +56,8 @@ _initStateFromPlan := func(state, initState, context) {
54
56
  state.options.envs = maps.clone(initOptions.envs)
55
57
  state.options.substRules = maps.clone(initOptions.substRules)
56
58
  state.options.customPaths = maps.clone(initOptions.customPaths)
59
+ state.options.dockerImageTag = initOptions.dockerImageTag
60
+ state.options.dockerEntrypoint = maps.clone(initOptions.dockerEntrypoint)
57
61
 
58
62
  for k, v in initState.refs {
59
63
  state.refs[k] = v
@@ -389,6 +393,26 @@ _createAbstractRunCommandPlan := func(state, returnSelfFn) {
389
393
  state.options.substRules[k] = v
390
394
  }
391
395
  return returnSelfFn()
396
+ },
397
+
398
+
399
+
400
+
401
+
402
+
403
+ dockerImageTag: func(tag) {
404
+ state.options.dockerImageTag = tag
405
+ return returnSelfFn()
406
+ },
407
+
408
+
409
+
410
+
411
+
412
+
413
+ dockerEntrypoint: func(entrypoint) {
414
+ state.options.dockerEntrypoint = maps.clone(entrypoint)
415
+ return returnSelfFn()
392
416
  }
393
417
  })
394
418
 
@@ -403,7 +427,9 @@ createRunCommandPlan := func(...initialState) {
403
427
  args: [],
404
428
  envs: {},
405
429
  substRules: {},
406
- customPaths: []
430
+ customPaths: [],
431
+ dockerImageTag: undefined,
432
+ dockerEntrypoint: []
407
433
  }
408
434
  }
409
435
 
@@ -448,7 +474,9 @@ builder := func(workdir, ...initialState) {
448
474
  args: [],
449
475
  envs: {},
450
476
  substRules: {},
451
- customPaths: []
477
+ customPaths: [],
478
+ dockerImageTag: "",
479
+ dockerEntrypoint: []
452
480
  }
453
481
  }
454
482
 
@@ -666,7 +694,9 @@ builder := func(workdir, ...initialState) {
666
694
  redirectStderr: stderr,
667
695
  env: options.envs,
668
696
  additionalPaths: options.customPaths,
669
- substitutions: options.substRules
697
+ substitutions: options.substRules,
698
+ dockerImageTag: options.dockerImageTag,
699
+ dockerEntrypoint: options.dockerEntrypoint
670
700
  }
671
701
 
672
702
  optionsRes := smart.createValueResource(_RTYPE_RUN_COMMAND_OPTIONS, json.encode(buildOptions))
@@ -53,5 +53,8 @@ export ll.toStrict({
53
53
  fullFeaturedApi: _isEnabled("fullFeaturedAPI"),
54
54
 
55
55
 
56
- hasBlobSize: ll.methodExists(plapi, "getBlobSize")
56
+ hasBlobSize: ll.methodExists(plapi, "getBlobSize"),
57
+
58
+
59
+ isDockerAvailable: _isEnabled("dockerSupport")
57
60
  })
@@ -0,0 +1,70 @@
1
+ ll := import("@platforma-sdk/workflow-tengo:ll")
2
+ smart := import("@platforma-sdk/workflow-tengo:smart")
3
+ assets := import("@platforma-sdk/workflow-tengo:assets")
4
+ exec := import("@platforma-sdk/workflow-tengo:exec")
5
+
6
+
7
+
8
+
9
+
10
+
11
+
12
+
13
+
14
+
15
+
16
+
17
+
18
+
19
+
20
+
21
+
22
+
23
+
24
+
25
+
26
+ head := func(fileRef, opts) {
27
+ if !smart.isReference(fileRef) {
28
+ ll.panic("fileRef must be a valid resource reference. Got: %T", fileRef)
29
+ }
30
+
31
+ if !is_map(opts) {
32
+ ll.panic("opts must be a map. Got: %T", opts)
33
+ }
34
+
35
+ if is_undefined(opts.lines) {
36
+ ll.panic("opts.lines is required")
37
+ }
38
+
39
+ if !is_int(opts.lines) || opts.lines < 0 {
40
+ ll.panic("opts.lines must be a non-negative integer. Got: %v", opts.lines)
41
+ }
42
+
43
+ maxBytes := 32768 // Default 32KB
44
+ if !is_undefined(opts.maxBytes) {
45
+ if !is_int(opts.maxBytes) || opts.maxBytes < 0 {
46
+ ll.panic("opts.maxBytes must be a non-negative integer. Got: %v", opts.maxBytes)
47
+ }
48
+ maxBytes = opts.maxBytes
49
+ }
50
+
51
+ ptexterSw := assets.importSoftware("@platforma-open/milaboratories.software-ptexter:phead-lines")
52
+
53
+ cmdBuilder := exec.builder().
54
+ software(ptexterSw).
55
+ arg("--lines").
56
+ arg(string(opts.lines)).
57
+ arg("--max-bytes").
58
+ arg(string(maxBytes)).
59
+ arg("input.txt").
60
+ arg("output.txt").
61
+ addFile("input.txt", fileRef).
62
+ saveFileContent("output.txt")
63
+
64
+ result := cmdBuilder.run()
65
+ return result.getFileContent("output.txt")
66
+ }
67
+
68
+ export ll.toStrict({
69
+ head: head
70
+ })
Binary file
Binary file
Binary file
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/workflow-tengo",
3
- "version": "5.0.3",
3
+ "version": "5.1.1",
4
4
  "description": "Tengo SDK library",
5
5
  "type": "module",
6
6
  "types": "./dist/index.d.ts",
@@ -18,10 +18,11 @@
18
18
  "dependencies": {
19
19
  "@milaboratories/software-pframes-conv": "2.2.2",
20
20
  "@platforma-open/milaboratories.software-small-binaries": "^1.15.21",
21
- "@platforma-open/milaboratories.software-ptabler": ""
21
+ "@platforma-open/milaboratories.software-ptabler": "1.11.2",
22
+ "@platforma-open/milaboratories.software-ptexter": "1.0.1"
22
23
  },
23
24
  "devDependencies": {
24
- "@platforma-sdk/tengo-builder": "^2.1.15"
25
+ "@platforma-sdk/tengo-builder": "2.1.16"
25
26
  },
26
27
  "scripts": {
27
28
  "type-check": "pl-tengo check",