daytona 0.126.0.alpha.6
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.
- checksums.yaml +7 -0
- data/.rubocop.yml +16 -0
- data/.ruby-version +1 -0
- data/CODE_OF_CONDUCT.md +132 -0
- data/README.md +117 -0
- data/Rakefile +12 -0
- data/lib/daytona/code_toolbox/sandbox_python_code_toolbox.rb +439 -0
- data/lib/daytona/code_toolbox/sandbox_ts_code_toolbox.rb +23 -0
- data/lib/daytona/common/charts.rb +298 -0
- data/lib/daytona/common/code_language.rb +11 -0
- data/lib/daytona/common/daytona.rb +206 -0
- data/lib/daytona/common/file_system.rb +23 -0
- data/lib/daytona/common/git.rb +16 -0
- data/lib/daytona/common/image.rb +493 -0
- data/lib/daytona/common/process.rb +141 -0
- data/lib/daytona/common/pty.rb +306 -0
- data/lib/daytona/common/resources.rb +31 -0
- data/lib/daytona/common/response.rb +28 -0
- data/lib/daytona/common/snapshot.rb +110 -0
- data/lib/daytona/computer_use.rb +549 -0
- data/lib/daytona/config.rb +53 -0
- data/lib/daytona/daytona.rb +289 -0
- data/lib/daytona/file_system.rb +359 -0
- data/lib/daytona/git.rb +280 -0
- data/lib/daytona/lsp_server.rb +125 -0
- data/lib/daytona/object_storage.rb +169 -0
- data/lib/daytona/process.rb +480 -0
- data/lib/daytona/sandbox.rb +404 -0
- data/lib/daytona/sdk/version.rb +7 -0
- data/lib/daytona/sdk.rb +46 -0
- data/lib/daytona/snapshot_service.rb +198 -0
- data/lib/daytona/util.rb +56 -0
- data/lib/daytona/volume.rb +43 -0
- data/lib/daytona/volume_service.rb +49 -0
- data/lib/daytona.rb +8 -0
- data/project.json +67 -0
- data/sig/daytona/sdk.rbs +6 -0
- metadata +165 -0
|
@@ -0,0 +1,439 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'base64'
|
|
4
|
+
|
|
5
|
+
module Daytona
|
|
6
|
+
class SandboxPythonCodeToolbox # rubocop:disable Metrics/ClassLength
|
|
7
|
+
# Get the run command for executing Python code
|
|
8
|
+
#
|
|
9
|
+
# @param code [String] The Python code to execute
|
|
10
|
+
# @param params [Daytona::CodeRunParams, nil] Optional parameters for code execution
|
|
11
|
+
# @return [String] The command to run the Python code
|
|
12
|
+
def get_run_command(code, params = nil)
|
|
13
|
+
encoded_code = Base64.encode64(code)
|
|
14
|
+
|
|
15
|
+
# Override plt.show() method if matplotlib is imported
|
|
16
|
+
if matplotlib_imported?(code)
|
|
17
|
+
encoded_code = Base64.encode64(
|
|
18
|
+
Base64.decode64(PYTHON_CODE_WRAPPER).gsub('{encoded_code}', encoded_code)
|
|
19
|
+
)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
argv = params&.argv&.join(' ') || ''
|
|
23
|
+
|
|
24
|
+
# Execute the bootstrapper code directly
|
|
25
|
+
# Use -u flag to ensure unbuffered output for real-time error reporting
|
|
26
|
+
|
|
27
|
+
" sh -c 'python3 -u -c \"exec(__import__(\\\"base64\\\").b64decode(\\\"\\\"\\\"#{encoded_code}\\\"\\\"\\\")" \
|
|
28
|
+
".decode())\" #{argv}' "
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
private
|
|
32
|
+
|
|
33
|
+
# Check if matplotlib is imported in the code
|
|
34
|
+
#
|
|
35
|
+
# @param code [String] The Python code to check
|
|
36
|
+
# @return [Boolean] True if matplotlib is imported, false otherwise
|
|
37
|
+
def matplotlib_imported?(code) = PATTERNS.any? { |pattern| code.match?(pattern) }
|
|
38
|
+
|
|
39
|
+
PATTERNS = [
|
|
40
|
+
# Standard imports
|
|
41
|
+
/^[^#]*import\s+matplotlib/m,
|
|
42
|
+
/^[^#]*from\s+matplotlib/m,
|
|
43
|
+
# Dynamic imports
|
|
44
|
+
/^[^#]*__import__\s*\(\s*['"]matplotlib['"]/m,
|
|
45
|
+
/^[^#]*importlib\.import_module\s*\(\s*['"]matplotlib['"]/m,
|
|
46
|
+
# Other dynamic loading patterns
|
|
47
|
+
/^[^#]*loader\.load_module\s*\(\s*['"]matplotlib['"]/m,
|
|
48
|
+
/^[^#]*sys\.modules\[['"]matplotlib['"]\]/m
|
|
49
|
+
].freeze
|
|
50
|
+
private_constant :PATTERNS
|
|
51
|
+
|
|
52
|
+
PYTHON_CODE_WRAPPER = <<~BASE64.strip
|
|
53
|
+
aW1wb3J0IGJhc2U2NAppbXBvcnQgZGF0ZXRpbWUKaW1wb3J0IGhhc2hsaWIK
|
|
54
|
+
aW1wb3J0IGlvCmltcG9ydCBqc29uCmltcG9ydCBsaW5lY2FjaGUKaW1wb3J0
|
|
55
|
+
IHN5cwppbXBvcnQgdHJhY2ViYWNrCmltcG9ydCB0eXBlcwpmcm9tIGltcG9y
|
|
56
|
+
dGxpYi5hYmMgaW1wb3J0IExvYWRlciwgTWV0YVBhdGhGaW5kZXIKZnJvbSBp
|
|
57
|
+
bXBvcnRsaWIudXRpbCBpbXBvcnQgZmluZF9zcGVjLCBzcGVjX2Zyb21fbG9h
|
|
58
|
+
ZGVyCgojIEdsb2JhbCB2YXJpYWJsZXMgdG8gaG9sZCBpbXBvcnRlZCBsaWJy
|
|
59
|
+
YXJpZXMgaWYgbmVlZGVkCm5wID0gTm9uZQptcGwgPSBOb25lCnBpbF9pbWcg
|
|
60
|
+
PSBOb25lCgoKcGx0X3BhdGNoZWQgPSBGYWxzZQpwcm9jZXNzZWRfZmlndXJl
|
|
61
|
+
cyA9IHNldCgpCgoKZGVmIF9wYXJzZV9wb2ludChwb2ludCk6CiAgICBpZiBp
|
|
62
|
+
c2luc3RhbmNlKHBvaW50LCBkYXRldGltZS5kYXRlKToKICAgICAgICByZXR1
|
|
63
|
+
cm4gcG9pbnQuaXNvZm9ybWF0KCkKICAgIGlmIGlzaW5zdGFuY2UocG9pbnQs
|
|
64
|
+
IG5wLmRhdGV0aW1lNjQpOgogICAgICAgIHJldHVybiBwb2ludC5hc3R5cGUo
|
|
65
|
+
ImRhdGV0aW1lNjRbc10iKS5hc3R5cGUoc3RyKQogICAgcmV0dXJuIHBvaW50
|
|
66
|
+
CgoKZGVmIF9pc19ncmlkX2xpbmUobGluZTogYW55KSAtPiBib29sOgogICAg
|
|
67
|
+
eF9kYXRhID0gbGluZS5nZXRfeGRhdGEoKQogICAgaWYgbGVuKHhfZGF0YSkg
|
|
68
|
+
IT0gMjoKICAgICAgICByZXR1cm4gRmFsc2UKCiAgICB5X2RhdGEgPSBsaW5l
|
|
69
|
+
LmdldF95ZGF0YSgpCiAgICBpZiBsZW4oeV9kYXRhKSAhPSAyOgogICAgICAg
|
|
70
|
+
IHJldHVybiBGYWxzZQoKICAgIGlmIHhfZGF0YVswXSA9PSB4X2RhdGFbMV0g
|
|
71
|
+
b3IgeV9kYXRhWzBdID09IHlfZGF0YVsxXToKICAgICAgICByZXR1cm4gVHJ1
|
|
72
|
+
ZQoKICAgIHJldHVybiBGYWxzZQoKCmRlZiBfZXh0cmFjdF9saW5lX2NoYXJ0
|
|
73
|
+
X2VsZW1lbnRzKGF4KToKICAgIGVsZW1lbnRzID0gW10KCiAgICBmb3IgbGlu
|
|
74
|
+
ZSBpbiBheC5nZXRfbGluZXMoKToKICAgICAgICBpZiBfaXNfZ3JpZF9saW5l
|
|
75
|
+
KGxpbmUpOgogICAgICAgICAgICBjb250aW51ZQogICAgICAgIGxhYmVsID0g
|
|
76
|
+
bGluZS5nZXRfbGFiZWwoKQogICAgICAgIHBvaW50cyA9IFtfcGFyc2VfcG9p
|
|
77
|
+
bnQoKHgsIHkpKSBmb3IgeCwgeSBpbiB6aXAobGluZS5nZXRfeGRhdGEoKSwg
|
|
78
|
+
bGluZS5nZXRfeWRhdGEoKSldCgogICAgICAgIGVsZW1lbnQgPSB7ImxhYmVs
|
|
79
|
+
IjogbGFiZWwsICJwb2ludHMiOiBwb2ludHN9CiAgICAgICAgZWxlbWVudHMu
|
|
80
|
+
YXBwZW5kKGVsZW1lbnQpCgogICAgcmV0dXJuIGVsZW1lbnRzCgoKZGVmIF9l
|
|
81
|
+
eHRyYWN0X3NjYXR0ZXJfY2hhcnRfZWxlbWVudHMoYXgpOgogICAgZWxlbWVu
|
|
82
|
+
dHMgPSBbXQoKICAgIGZvciBjb2xsZWN0aW9uIGluIGF4LmNvbGxlY3Rpb25z
|
|
83
|
+
OgogICAgICAgIHBvaW50cyA9IFtfcGFyc2VfcG9pbnQoKHgsIHkpKSBmb3Ig
|
|
84
|
+
eCwgeSBpbiBjb2xsZWN0aW9uLmdldF9vZmZzZXRzKCldCiAgICAgICAgZWxl
|
|
85
|
+
bWVudCA9IHsibGFiZWwiOiBjb2xsZWN0aW9uLmdldF9sYWJlbCgpLCAicG9p
|
|
86
|
+
bnRzIjogcG9pbnRzfQogICAgICAgIGVsZW1lbnRzLmFwcGVuZChlbGVtZW50
|
|
87
|
+
KQoKICAgIHJldHVybiBlbGVtZW50cwoKCmRlZiBfZXh0cmFjdF9iYXJfY2hh
|
|
88
|
+
cnRfZWxlbWVudHMoYXgpOgogICAgZWxlbWVudHMgPSBbXQogICAgY2hhbmdl
|
|
89
|
+
X29yaWVudGF0aW9uID0gRmFsc2UKCiAgICBmb3IgY29udGFpbmVyIGluIGF4
|
|
90
|
+
LmNvbnRhaW5lcnM6CiAgICAgICAgaGVpZ2h0cyA9IFtyZWN0LmdldF9oZWln
|
|
91
|
+
aHQoKSBmb3IgcmVjdCBpbiBjb250YWluZXJdCiAgICAgICAgaWYgYWxsKGhl
|
|
92
|
+
aWdodCA9PSBoZWlnaHRzWzBdIGZvciBoZWlnaHQgaW4gaGVpZ2h0cyk6CiAg
|
|
93
|
+
ICAgICAgICAgICMgdmVydGljYWwgYmFycwogICAgICAgICAgICBjaGFuZ2Vf
|
|
94
|
+
b3JpZW50YXRpb24gPSBUcnVlCiAgICAgICAgICAgIGxhYmVscyA9IFtsYWJl
|
|
95
|
+
bC5nZXRfdGV4dCgpIGZvciBsYWJlbCBpbiBheC5nZXRfeXRpY2tsYWJlbHMo
|
|
96
|
+
KV0KICAgICAgICAgICAgdmFsdWVzID0gW3JlY3QuZ2V0X3dpZHRoKCkgZm9y
|
|
97
|
+
IHJlY3QgaW4gY29udGFpbmVyXQogICAgICAgIGVsc2U6CiAgICAgICAgICAg
|
|
98
|
+
ICMgaG9yaXpvbnRhbCBiYXJzCiAgICAgICAgICAgIGxhYmVscyA9IFtsYWJl
|
|
99
|
+
bC5nZXRfdGV4dCgpIGZvciBsYWJlbCBpbiBheC5nZXRfeHRpY2tsYWJlbHMo
|
|
100
|
+
KV0KICAgICAgICAgICAgdmFsdWVzID0gaGVpZ2h0cwogICAgICAgIGZvciBs
|
|
101
|
+
YWJlbCwgdmFsdWUgaW4gemlwKGxhYmVscywgdmFsdWVzKToKICAgICAgICAg
|
|
102
|
+
ICAgZWxlbWVudCA9IHsibGFiZWwiOiBsYWJlbCwgImdyb3VwIjogY29udGFp
|
|
103
|
+
bmVyLmdldF9sYWJlbCgpLCAidmFsdWUiOiB2YWx1ZX0KICAgICAgICAgICAg
|
|
104
|
+
ZWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpCgogICAgcmV0dXJuIGVsZW1lbnRz
|
|
105
|
+
LCBjaGFuZ2Vfb3JpZW50YXRpb24KCgpkZWYgX2V4dHJhY3RfcGllX2NoYXJ0
|
|
106
|
+
X2VsZW1lbnRzKGF4KToKICAgIGVsZW1lbnRzID0gW10KCiAgICB3ZWRnZXMg
|
|
107
|
+
PSBbcGF0Y2ggZm9yIHBhdGNoIGluIGF4LnBhdGNoZXMgaWYgaXNpbnN0YW5j
|
|
108
|
+
ZShwYXRjaCwgbXBsLnBhdGNoZXMuV2VkZ2UpXQogICAgaWYgbGVuKHdlZGdl
|
|
109
|
+
cykgPT0gMDoKICAgICAgICByZXR1cm4gZWxlbWVudHMKCiAgICB0ZXh0cyA9
|
|
110
|
+
IFt0ZXh0X29iai5nZXRfdGV4dCgpIGZvciB0ZXh0X29iaiBpbiBheC50ZXh0
|
|
111
|
+
c10KCiAgICBsYWJlbHMgPSBbXQogICAgYXV0b3BjdHMgPSBbXQoKICAgIGlm
|
|
112
|
+
IGxlbih0ZXh0cykgPT0gMiAqIGxlbih3ZWRnZXMpOgogICAgICAgIGxhYmVs
|
|
113
|
+
cyA9IFt0ZXh0c1tpXSBmb3IgaSBpbiByYW5nZSgwLCAyICogbGVuKHdlZGdl
|
|
114
|
+
cyksIDIpXQogICAgICAgIGF1dG9wY3RzID0gW3RleHRzW2ldIGZvciBpIGlu
|
|
115
|
+
IHJhbmdlKDEsIDIgKiBsZW4od2VkZ2VzKSwgMildCiAgICBlbHNlOgogICAg
|
|
116
|
+
ICAgIGxhYmVscyA9IHRleHRzWzogbGVuKHdlZGdlcyldCgogICAgZm9yIGlk
|
|
117
|
+
eCwgd2VkZ2UgaW4gZW51bWVyYXRlKHdlZGdlcyk6CiAgICAgICAgZWxlbWVu
|
|
118
|
+
dCA9IHsKICAgICAgICAgICAgImxhYmVsIjogbGFiZWxzW2lkeF0sCiAgICAg
|
|
119
|
+
ICAgICAgICJhbmdsZSI6IGFicyh3ZWRnZS50aGV0YTIgLSB3ZWRnZS50aGV0
|
|
120
|
+
YTEpLAogICAgICAgICAgICAicmFkaXVzIjogd2VkZ2UuciwKICAgICAgICAg
|
|
121
|
+
ICAgImF1dG9wY3QiOiBhdXRvcGN0c1tpZHhdIGlmIGF1dG9wY3RzIGFuZCBs
|
|
122
|
+
ZW4oYXV0b3BjdHMpID4gaWR4IGVsc2UgTm9uZSwKICAgICAgICB9CiAgICAg
|
|
123
|
+
ICAgZWxlbWVudHMuYXBwZW5kKGVsZW1lbnQpCgogICAgcmV0dXJuIGVsZW1l
|
|
124
|
+
bnRzCgoKIyBweWxpbnQ6IGRpc2FibGU9dG9vLW1hbnktYnJhbmNoZXMKZGVm
|
|
125
|
+
IF9leHRyYWN0X2JveF9jaGFydF9lbGVtZW50cyhheCk6CiAgICBjaGFuZ2Vf
|
|
126
|
+
b3JpZW50YXRpb24gPSBGYWxzZQoKICAgIHh0aWNrbGFiZWxzID0gW2xhYmVs
|
|
127
|
+
LmdldF90ZXh0KCkgZm9yIGxhYmVsIGluIGF4LmdldF94dGlja2xhYmVscygp
|
|
128
|
+
XQogICAgYm94ZXMgPSBbXQogICAgZm9yIGxhYmVsLCBib3ggaW4gemlwKHh0
|
|
129
|
+
aWNrbGFiZWxzLCBheC5wYXRjaGVzKToKICAgICAgICB2ZXJ0aWNlcyA9IGJv
|
|
130
|
+
eC5nZXRfcGF0aCgpLnZlcnRpY2VzCiAgICAgICAgeF92ZXJ0aWNlcyA9IGxp
|
|
131
|
+
c3QodmVydGljZXNbOiwgMF0pCiAgICAgICAgeV92ZXJ0aWNlcyA9IGxpc3Qo
|
|
132
|
+
dmVydGljZXNbOiwgMV0pCiAgICAgICAgeCA9IG1pbih4X3ZlcnRpY2VzKQog
|
|
133
|
+
ICAgICAgIHkgPSBtaW4oeV92ZXJ0aWNlcykKCiAgICAgICAgYm94ZXMuYXBw
|
|
134
|
+
ZW5kKAogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAieCI6IHgsCiAg
|
|
135
|
+
ICAgICAgICAgICAgICAieSI6IHksCiAgICAgICAgICAgICAgICAibGFiZWwi
|
|
136
|
+
OiBsYWJlbCwKICAgICAgICAgICAgICAgICJ3aWR0aCI6IG1heCh4X3ZlcnRp
|
|
137
|
+
Y2VzKSAtIHgsCiAgICAgICAgICAgICAgICAiaGVpZ2h0IjogbWF4KHlfdmVy
|
|
138
|
+
dGljZXMpIC0geSwKICAgICAgICAgICAgICAgICJvdXRsaWVycyI6IFtdLAog
|
|
139
|
+
ICAgICAgICAgICB9CiAgICAgICAgKQoKICAgIG9yaWVudGF0aW9uID0gImhv
|
|
140
|
+
cml6b250YWwiCiAgICBpZiBhbGwoYm94WyJoZWlnaHQiXSA9PSBib3hlc1sw
|
|
141
|
+
XVsiaGVpZ2h0Il0gZm9yIGJveCBpbiBib3hlcyk6CiAgICAgICAgb3JpZW50
|
|
142
|
+
YXRpb24gPSAidmVydGljYWwiCgogICAgaWYgb3JpZW50YXRpb24gPT0gInZl
|
|
143
|
+
cnRpY2FsIjoKICAgICAgICBjaGFuZ2Vfb3JpZW50YXRpb24gPSBUcnVlCiAg
|
|
144
|
+
ICAgICAgZm9yIGJveCBpbiBib3hlczoKICAgICAgICAgICAgYm94WyJ4Il0s
|
|
145
|
+
IGJveFsieSJdID0gYm94WyJ5Il0sIGJveFsieCJdCiAgICAgICAgICAgIGJv
|
|
146
|
+
eFsid2lkdGgiXSwgYm94WyJoZWlnaHQiXSA9IGJveFsiaGVpZ2h0Il0sIGJv
|
|
147
|
+
eFsid2lkdGgiXQoKICAgIGZvciBsaW5lIGluIGF4LmxpbmVzOgogICAgICAg
|
|
148
|
+
IHhkYXRhID0gbGluZS5nZXRfeGRhdGEoKQogICAgICAgIHlkYXRhID0gbGlu
|
|
149
|
+
ZS5nZXRfeWRhdGEoKQoKICAgICAgICBpZiBvcmllbnRhdGlvbiA9PSAidmVy
|
|
150
|
+
dGljYWwiOgogICAgICAgICAgICB4ZGF0YSwgeWRhdGEgPSB5ZGF0YSwgeGRh
|
|
151
|
+
dGEKCiAgICAgICAgaWYgbGVuKHhkYXRhKSA8PSAxIG9yIGxlbih5ZGF0YSkg
|
|
152
|
+
IT0gMjoKICAgICAgICAgICAgY29udGludWUKCiAgICAgICAgZm9yIGJveCBp
|
|
153
|
+
biBib3hlczoKICAgICAgICAgICAgaWYgYm94WyJ4Il0gPD0geGRhdGFbMF0g
|
|
154
|
+
PD0geGRhdGFbMV0gPD0gYm94WyJ4Il0gKyBib3hbIndpZHRoIl06CiAgICAg
|
|
155
|
+
ICAgICAgICAgICAjIEhvcml6b250YWwgbGluZSAobWVkaWFuIG9yIGNhcCkK
|
|
156
|
+
ICAgICAgICAgICAgICAgIGlmIGFicyh5ZGF0YVswXSAtIHlkYXRhWzFdKSA8
|
|
157
|
+
IDAuMDAxIGFuZCBib3hbInkiXSA8PSB5ZGF0YVswXSA8PSBib3hbInkiXSAr
|
|
158
|
+
IGJveFsiaGVpZ2h0Il06CiAgICAgICAgICAgICAgICAgICAgYm94WyJtZWRp
|
|
159
|
+
YW4iXSA9IHlkYXRhWzBdCiAgICAgICAgICAgICAgICAjIFZlcnRpY2FsIGxp
|
|
160
|
+
bmUgKHdoaXNrZXJzKQogICAgICAgICAgICAgICAgZWxpZiBhYnMoeGRhdGFb
|
|
161
|
+
MF0gLSB4ZGF0YVsxXSkgPCAwLjAwMToKICAgICAgICAgICAgICAgICAgICB5
|
|
162
|
+
X21pbiA9IG1pbih5ZGF0YSkKICAgICAgICAgICAgICAgICAgICB5X21heCA9
|
|
163
|
+
IG1heCh5ZGF0YSkKCiAgICAgICAgICAgICAgICAgICAgIyBJZiBhdHRhY2hl
|
|
164
|
+
ZCB0byBib3R0b20gb2YgYm94CiAgICAgICAgICAgICAgICAgICAgaWYgYWJz
|
|
165
|
+
KHlfbWF4IC0gYm94WyJ5Il0pIDwgMC4wMDE6CiAgICAgICAgICAgICAgICAg
|
|
166
|
+
ICAgICAgIGJveFsid2hpc2tlcl9sb3dlciJdID0geV9taW4KCiAgICAgICAg
|
|
167
|
+
ICAgICAgICAgICAgIyBJZiBhdHRhY2hlZCB0byB0b3Agb2YgYm94CiAgICAg
|
|
168
|
+
ICAgICAgICAgICAgICAgZWxpZiBhYnMoeV9taW4gLSAoYm94WyJ5Il0gKyBi
|
|
169
|
+
b3hbImhlaWdodCJdKSkgPCAwLjAwMToKICAgICAgICAgICAgICAgICAgICAg
|
|
170
|
+
ICAgYm94WyJ3aGlza2VyX3VwcGVyIl0gPSB5X21heAogICAgICAgICAgICAg
|
|
171
|
+
ICAgYnJlYWsKCiAgICBvdXRsaWVyX2NhbmRpZGF0ZXMgPSBbXQoKICAgICMg
|
|
172
|
+
Q2hlY2sgZm9yIGFueSBtYXJrZXJzIGluIGFsbCBhcnRpc3RzCiAgICBmb3Ig
|
|
173
|
+
YXJ0aXN0IGluIGF4LmdldF9jaGlsZHJlbigpOgogICAgICAgIGlmIGhhc2F0
|
|
174
|
+
dHIoYXJ0aXN0LCAiZ2V0X3hkYXRhIikgYW5kIGhhc2F0dHIoYXJ0aXN0LCAi
|
|
175
|
+
Z2V0X3lkYXRhIik6CiAgICAgICAgICAgIHRyeToKICAgICAgICAgICAgICAg
|
|
176
|
+
IHhkYXRhID0gYXJ0aXN0LmdldF94ZGF0YSgpCiAgICAgICAgICAgICAgICB5
|
|
177
|
+
ZGF0YSA9IGFydGlzdC5nZXRfeWRhdGEoKQoKICAgICAgICAgICAgICAgIGlm
|
|
178
|
+
IG9yaWVudGF0aW9uID09ICJ2ZXJ0aWNhbCI6CiAgICAgICAgICAgICAgICAg
|
|
179
|
+
ICAgeGRhdGEsIHlkYXRhID0geWRhdGEsIHhkYXRhCgogICAgICAgICAgICAg
|
|
180
|
+
ICAgaWYgaXNpbnN0YW5jZSh4ZGF0YSwgKGxpc3QsIG5wLm5kYXJyYXkpKSBh
|
|
181
|
+
bmQgaXNpbnN0YW5jZSh5ZGF0YSwgKGxpc3QsIG5wLm5kYXJyYXkpKToKICAg
|
|
182
|
+
ICAgICAgICAgICAgICAgICBmb3IgaSBpbiByYW5nZShtaW4obGVuKHhkYXRh
|
|
183
|
+
KSwgbGVuKHlkYXRhKSkpOgogICAgICAgICAgICAgICAgICAgICAgICBvdXRs
|
|
184
|
+
aWVyX2NhbmRpZGF0ZXMuYXBwZW5kKChmbG9hdCh4ZGF0YVtpXSksIGZsb2F0
|
|
185
|
+
KHlkYXRhW2ldKSkpCiAgICAgICAgICAgIGV4Y2VwdDoKICAgICAgICAgICAg
|
|
186
|
+
ICAgIHBhc3MKCiAgICAjIEFzc2lnbiBwb2ludHMgdG8gYm94ZXMgYW5kIGRl
|
|
187
|
+
dGVybWluZSBpZiB0aGV5J3JlIG91dGxpZXJzCiAgICBmb3IgeCwgeSBpbiBv
|
|
188
|
+
dXRsaWVyX2NhbmRpZGF0ZXM6CiAgICAgICAgZm9yIGJveCBpbiBib3hlczoK
|
|
189
|
+
ICAgICAgICAgICAgaWYgYm94WyJ4Il0gPD0geCA8PSBib3hbIngiXSArIGJv
|
|
190
|
+
eFsid2lkdGgiXToKICAgICAgICAgICAgICAgIGJveF9jZW50ZXIgPSBib3hb
|
|
191
|
+
IngiXSArIGJveFsid2lkdGgiXSAvIDIKICAgICAgICAgICAgICAgIGlmIGFi
|
|
192
|
+
cyh4IC0gYm94X2NlbnRlcikgPCAwLjAwMToKICAgICAgICAgICAgICAgICAg
|
|
193
|
+
ICB5X21pbiA9IGJveFsieSJdCiAgICAgICAgICAgICAgICAgICAgeV9tYXgg
|
|
194
|
+
PSBib3hbInkiXSArIGJveFsiaGVpZ2h0Il0KICAgICAgICAgICAgICAgICAg
|
|
195
|
+
ICBpZiBib3guZ2V0KCJ3aGlza2VyX2xvd2VyIiwgTm9uZSk6CiAgICAgICAg
|
|
196
|
+
ICAgICAgICAgICAgICAgIHlfbWluID0gYm94WyJ3aGlza2VyX2xvd2VyIl0K
|
|
197
|
+
ICAgICAgICAgICAgICAgICAgICBpZiBib3guZ2V0KCJ3aGlza2VyX3VwcGVy
|
|
198
|
+
IiwgTm9uZSk6CiAgICAgICAgICAgICAgICAgICAgICAgIHlfbWF4ID0gYm94
|
|
199
|
+
WyJ3aGlza2VyX3VwcGVyIl0KICAgICAgICAgICAgICAgICAgICBpZiB5IDwg
|
|
200
|
+
eV9taW4gb3IgeSA+IHlfbWF4OgogICAgICAgICAgICAgICAgICAgICAgICBi
|
|
201
|
+
b3hbIm91dGxpZXJzIl0uYXBwZW5kKHkpCiAgICAgICAgICAgICAgICBicmVh
|
|
202
|
+
awoKICAgIHJldHVybiBbCiAgICAgICAgewogICAgICAgICAgICAibGFiZWwi
|
|
203
|
+
OiBib3hbImxhYmVsIl0sCiAgICAgICAgICAgICJtaW4iOiBib3guZ2V0KCJ3
|
|
204
|
+
aGlza2VyX2xvd2VyIiwgTm9uZSksCiAgICAgICAgICAgICJmaXJzdF9xdWFy
|
|
205
|
+
dGlsZSI6IGJveFsieSJdLAogICAgICAgICAgICAibWVkaWFuIjogYm94Lmdl
|
|
206
|
+
dCgibWVkaWFuIiwgTm9uZSksCiAgICAgICAgICAgICJ0aGlyZF9xdWFydGls
|
|
207
|
+
ZSI6IGJveFsieSJdICsgYm94WyJoZWlnaHQiXSwKICAgICAgICAgICAgIm1h
|
|
208
|
+
eCI6IGJveC5nZXQoIndoaXNrZXJfdXBwZXIiLCBOb25lKSwKICAgICAgICAg
|
|
209
|
+
ICAgIm91dGxpZXJzIjogYm94WyJvdXRsaWVycyJdLAogICAgICAgIH0KICAg
|
|
210
|
+
ICAgICBmb3IgYm94IGluIGJveGVzCiAgICBdLCBjaGFuZ2Vfb3JpZW50YXRp
|
|
211
|
+
b24KCgpkZWYgX3NhdmVfZmlndXJlX2FzX2Jhc2U2NChmaWcsIGJib3hfaW5j
|
|
212
|
+
aGVzPSJ0aWdodCIsIGRwaT0xMDApOgogICAgIyBGaXJzdCBzYXZlIHdpdGgg
|
|
213
|
+
bWF0cGxvdGxpYgogICAgcG5nX2J1ZmZlciA9IGlvLkJ5dGVzSU8oKQogICAg
|
|
214
|
+
ZmlnLnNhdmVmaWcocG5nX2J1ZmZlciwgZm9ybWF0PSJwbmciLCBiYm94X2lu
|
|
215
|
+
Y2hlcz1iYm94X2luY2hlcywgZHBpPWRwaSkKICAgIHBuZ19idWZmZXIuc2Vl
|
|
216
|
+
aygwKQoKICAgICMgT3BlbiB3aXRoIFBJTCBhbmQgYXBwbHkgbWF4aW11bSBj
|
|
217
|
+
b21wcmVzc2lvbgogICAgd2l0aCBwaWxfaW1nLm9wZW4ocG5nX2J1ZmZlcikg
|
|
218
|
+
YXMgaW1nOgogICAgICAgIG9wdGltaXplZF9idWZmZXIgPSBpby5CeXRlc0lP
|
|
219
|
+
KCkKICAgICAgICBpbWcuc2F2ZShvcHRpbWl6ZWRfYnVmZmVyLCBmb3JtYXQ9
|
|
220
|
+
InBuZyIsIG9wdGltaXplPVRydWUsIHF1YWxpdHk9MTAwLCBjb21wcmVzc19s
|
|
221
|
+
ZXZlbD05KQogICAgICAgIG9wdGltaXplZF9idWZmZXIuc2VlaygwKQogICAg
|
|
222
|
+
ICAgIHJldHVybiBiYXNlNjQuYjY0ZW5jb2RlKG9wdGltaXplZF9idWZmZXIu
|
|
223
|
+
Z2V0dmFsdWUoKSkuZGVjb2RlKCJ1dGYtOCIpCgoKZGVmIF9nZXRfZmlndXJl
|
|
224
|
+
X2hhc2goZmlnKToKICAgIHBuZ19idWZmZXIgPSBpby5CeXRlc0lPKCkKICAg
|
|
225
|
+
IGZpZy5zYXZlZmlnKHBuZ19idWZmZXIsIGZvcm1hdD0icG5nIiwgZHBpPTUw
|
|
226
|
+
KQogICAgcmV0dXJuIGhhc2hsaWIubWQ1KHBuZ19idWZmZXIuZ2V0dmFsdWUo
|
|
227
|
+
KSkuaGV4ZGlnZXN0KCkKCgpkZWYgX2dldF9jaGFydF90eXBlKGF4KToKICAg
|
|
228
|
+
IG9iamVjdHMgPSBsaXN0KAogICAgICAgIGZpbHRlcigKICAgICAgICAgICAg
|
|
229
|
+
bGFtYmRhIG9iajogbm90IGlzaW5zdGFuY2Uob2JqLCBtcGwudGV4dC5UZXh0
|
|
230
|
+
KSBhbmQgbm90IGlzaW5zdGFuY2Uob2JqLCBtcGwucGF0Y2hlcy5TaGFkb3cp
|
|
231
|
+
LAogICAgICAgICAgICBheC5fY2hpbGRyZW4sICAjIHB5bGludDogZGlzYWJs
|
|
232
|
+
ZT1wcm90ZWN0ZWQtYWNjZXNzCiAgICAgICAgKQogICAgKQoKICAgICMgQ2hl
|
|
233
|
+
Y2sgZm9yIExpbmUgcGxvdHMKICAgIGlmIGFsbChpc2luc3RhbmNlKGxpbmUs
|
|
234
|
+
IG1wbC5saW5lcy5MaW5lMkQpIGZvciBsaW5lIGluIG9iamVjdHMpOgogICAg
|
|
235
|
+
ICAgIHJldHVybiAibGluZSIKCiAgICBpZiBhbGwoaXNpbnN0YW5jZShib3hf
|
|
236
|
+
b3JfcGF0aCwgKG1wbC5wYXRjaGVzLlBhdGhQYXRjaCwgbXBsLmxpbmVzLkxp
|
|
237
|
+
bmUyRCkpIGZvciBib3hfb3JfcGF0aCBpbiBvYmplY3RzKToKICAgICAgICBy
|
|
238
|
+
ZXR1cm4gImJveF9hbmRfd2hpc2tlciIKCiAgICBmaWx0ZXJlZCA9IFtdCiAg
|
|
239
|
+
ICBmb3Igb2JqIGluIG9iamVjdHM6CiAgICAgICAgaWYgaXNpbnN0YW5jZShv
|
|
240
|
+
YmosIG1wbC5saW5lcy5MaW5lMkQpIGFuZCBfaXNfZ3JpZF9saW5lKG9iaik6
|
|
241
|
+
CiAgICAgICAgICAgIGNvbnRpbnVlCiAgICAgICAgZmlsdGVyZWQuYXBwZW5k
|
|
242
|
+
KG9iaikKCiAgICBvYmplY3RzID0gZmlsdGVyZWQKCiAgICAjIENoZWNrIGZv
|
|
243
|
+
ciBTY2F0dGVyIHBsb3RzCiAgICBpZiBhbGwoaXNpbnN0YW5jZShwYXRoLCBt
|
|
244
|
+
cGwuY29sbGVjdGlvbnMuUGF0aENvbGxlY3Rpb24pIGZvciBwYXRoIGluIG9i
|
|
245
|
+
amVjdHMpOgogICAgICAgIHJldHVybiAic2NhdHRlciIKCiAgICAjIENoZWNr
|
|
246
|
+
IGZvciBCYXIgcGxvdHMKICAgIGlmIGFsbChpc2luc3RhbmNlKHJlY3QsIG1w
|
|
247
|
+
bC5wYXRjaGVzLlJlY3RhbmdsZSkgZm9yIHJlY3QgaW4gb2JqZWN0cyk6CiAg
|
|
248
|
+
ICAgICAgcmV0dXJuICJiYXIiCgogICAgIyBDaGVjayBmb3IgUGllIHBsb3Rz
|
|
249
|
+
CiAgICBpZiBhbGwoaXNpbnN0YW5jZShhcnRpc3QsIG1wbC5wYXRjaGVzLldl
|
|
250
|
+
ZGdlKSBmb3IgYXJ0aXN0IGluIG9iamVjdHMpOgogICAgICAgIHJldHVybiAi
|
|
251
|
+
cGllIgoKICAgIHJldHVybiAidW5rbm93biIKCgpkZWYgX2lzX2F1dG9fZW1w
|
|
252
|
+
dHlfYXhpcyhheCk6CiAgICByZXR1cm4gYXguZ2V0X3N1YnBsb3RzcGVjKCkg
|
|
253
|
+
aXMgbm90IE5vbmUgYW5kIG5vdCBheC5oYXNfZGF0YSgpCgoKZGVmIF9pc19j
|
|
254
|
+
b2xvcmJhcl9heGlzKGF4KToKICAgIHJldHVybiBhbnkoCiAgICAgICAgIyBw
|
|
255
|
+
eWxpbnQ6IGRpc2FibGU9cHJvdGVjdGVkLWFjY2VzcwogICAgICAgIGlzaW5z
|
|
256
|
+
dGFuY2UoY2hpbGQsIG1wbC5jb2xvcmJhci5fQ29sb3JiYXJTcGluZSkKICAg
|
|
257
|
+
ICAgICBmb3IgY2hpbGQgaW4gYXguZ2V0X2NoaWxkcmVuKCkKICAgICkKCgpk
|
|
258
|
+
ZWYgX2ZpbHRlcl9vdXRfdW53YW50ZWRfYXhlcyhheGVzKToKICAgIHJldHVy
|
|
259
|
+
biBbYXggZm9yIGF4IGluIGF4ZXMgaWYgbm90IF9pc19hdXRvX2VtcHR5X2F4
|
|
260
|
+
aXMoYXgpIGFuZCBub3QgX2lzX2NvbG9yYmFyX2F4aXMoYXgpXQoKCmRlZiBf
|
|
261
|
+
ZXh0cmFjdF90aWNrc19kYXRhKGNvbnZlcnRlcjogYW55LCB0aWNrczogYW55
|
|
262
|
+
KSAtPiBsaXN0OgogICAgaWYgaXNpbnN0YW5jZShjb252ZXJ0ZXIsIG1wbC5k
|
|
263
|
+
YXRlcy5fU3dpdGNoYWJsZURhdGVDb252ZXJ0ZXIpOiAgIyBweWxpbnQ6IGRp
|
|
264
|
+
c2FibGU9cHJvdGVjdGVkLWFjY2VzcwogICAgICAgIHJldHVybiBbbXBsLmRh
|
|
265
|
+
dGVzLm51bTJkYXRlKHRpY2spLmlzb2Zvcm1hdCgpIGZvciB0aWNrIGluIHRp
|
|
266
|
+
Y2tzXQogICAgdHJ5OgogICAgICAgIHJldHVybiBbZmxvYXQodGljaykgZm9y
|
|
267
|
+
IHRpY2sgaW4gdGlja3NdCiAgICBleGNlcHQgRXhjZXB0aW9uOgogICAgICAg
|
|
268
|
+
IHJldHVybiBsaXN0KHRpY2tzKQoKCmRlZiBfZXh0cmFjdF9zY2FsZShjb252
|
|
269
|
+
ZXJ0ZXIsIHNjYWxlOiBzdHIsIHRpY2tzLCBsYWJlbHMpIC0+IHN0cjoKICAg
|
|
270
|
+
IGlmIGlzaW5zdGFuY2UoY29udmVydGVyLCBtcGwuZGF0ZXMuX1N3aXRjaGFi
|
|
271
|
+
bGVEYXRlQ29udmVydGVyKTogICMgcHlsaW50OiBkaXNhYmxlPXByb3RlY3Rl
|
|
272
|
+
ZC1hY2Nlc3MKICAgICAgICByZXR1cm4gImRhdGV0aW1lIgoKICAgICMgSWYg
|
|
273
|
+
dGhlIHNjYWxlIGlzIG5vdCBsaW5lYXIsIGl0IGNhbid0IGJlIGNhdGVnb3Jp
|
|
274
|
+
Y2FsCiAgICBpZiBzY2FsZSAhPSAibGluZWFyIjoKICAgICAgICByZXR1cm4g
|
|
275
|
+
c2NhbGUKCiAgICAjIElmIGFsbCB0aGUgdGlja3MgYXJlIGludGVnZXJzIGFu
|
|
276
|
+
ZCBhcmUgaW4gb3JkZXIgZnJvbSAwIHRvIG4tMQogICAgIyBhbmQgdGhlIGxh
|
|
277
|
+
YmVscyBhcmVuJ3QgY29ycmVzcG9uZGluZyB0byB0aGUgdGlja3MsIGl0J3Mg
|
|
278
|
+
Y2F0ZWdvcmljYWwKICAgIGZvciBpLCB0aWNrX2FuZF9sYWJlbCBpbiBlbnVt
|
|
279
|
+
ZXJhdGUoemlwKHRpY2tzLCBsYWJlbHMpKToKICAgICAgICB0aWNrLCBsYWJl
|
|
280
|
+
bCA9IHRpY2tfYW5kX2xhYmVsCiAgICAgICAgaWYgaXNpbnN0YW5jZSh0aWNr
|
|
281
|
+
LCAoaW50LCBmbG9hdCkpIGFuZCB0aWNrID09IGkgYW5kIHN0cihpKSAhPSBs
|
|
282
|
+
YWJlbDoKICAgICAgICAgICAgY29udGludWUKICAgICAgICAjIEZvdW5kIGEg
|
|
283
|
+
dGljaywgd2hpY2ggd291bGRuJ3QgYmUgaW4gYSBjYXRlZ29yaWNhbCBzY2Fs
|
|
284
|
+
ZQogICAgICAgIHJldHVybiAibGluZWFyIgoKICAgIHJldHVybiAiY2F0ZWdv
|
|
285
|
+
cmljYWwiCgoKZGVmIF9leHRyYWN0X2NoYXJ0X2RhdGEoYXgpOgogICAgZGF0
|
|
286
|
+
YSA9IHt9CgogICAgZGF0YVsidGl0bGUiXSA9IGF4LmdldF90aXRsZSgpCgog
|
|
287
|
+
ICAgZGF0YVsieF9sYWJlbCJdID0gYXguZ2V0X3hsYWJlbCgpCiAgICBkYXRh
|
|
288
|
+
WyJ5X2xhYmVsIl0gPSBheC5nZXRfeWxhYmVsKCkKCiAgICB4X3RpY2tfbGFi
|
|
289
|
+
ZWxzID0gW2xhYmVsLmdldF90ZXh0KCkgZm9yIGxhYmVsIGluIGF4LmdldF94
|
|
290
|
+
dGlja2xhYmVscygpXQogICAgZGF0YVsieF90aWNrcyJdID0gX2V4dHJhY3Rf
|
|
291
|
+
dGlja3NfZGF0YShheC54YXhpcy5nZXRfY29udmVydGVyKCksIGF4LmdldF94
|
|
292
|
+
dGlja3MoKSkKICAgIGRhdGFbInhfdGlja19sYWJlbHMiXSA9IHhfdGlja19s
|
|
293
|
+
YWJlbHMKICAgIGRhdGFbInhfc2NhbGUiXSA9IF9leHRyYWN0X3NjYWxlKGF4
|
|
294
|
+
LnhheGlzLmdldF9jb252ZXJ0ZXIoKSwgYXguZ2V0X3hzY2FsZSgpLCBheC5n
|
|
295
|
+
ZXRfeHRpY2tzKCksIHhfdGlja19sYWJlbHMpCgogICAgeV90aWNrX2xhYmVs
|
|
296
|
+
cyA9IFtsYWJlbC5nZXRfdGV4dCgpIGZvciBsYWJlbCBpbiBheC5nZXRfeXRp
|
|
297
|
+
Y2tsYWJlbHMoKV0KICAgIGRhdGFbInlfdGlja3MiXSA9IF9leHRyYWN0X3Rp
|
|
298
|
+
Y2tzX2RhdGEoYXgueWF4aXMuZ2V0X2NvbnZlcnRlcigpLCBheC5nZXRfeXRp
|
|
299
|
+
Y2tzKCkpCiAgICBkYXRhWyJ5X3RpY2tfbGFiZWxzIl0gPSB5X3RpY2tfbGFi
|
|
300
|
+
ZWxzCiAgICBkYXRhWyJ5X3NjYWxlIl0gPSBfZXh0cmFjdF9zY2FsZShheC55
|
|
301
|
+
YXhpcy5nZXRfY29udmVydGVyKCksIGF4LmdldF95c2NhbGUoKSwgYXguZ2V0
|
|
302
|
+
X3l0aWNrcygpLCB5X3RpY2tfbGFiZWxzKQoKICAgIGNoYXJ0X3R5cGUgPSBf
|
|
303
|
+
Z2V0X2NoYXJ0X3R5cGUoYXgpCiAgICBlbGVtZW50cyA9IFtdCiAgICBjaGFu
|
|
304
|
+
Z2Vfb3JpZW50YXRpb24gPSBGYWxzZQoKICAgIGlmIGNoYXJ0X3R5cGUgPT0g
|
|
305
|
+
ImxpbmUiOgogICAgICAgIGVsZW1lbnRzID0gX2V4dHJhY3RfbGluZV9jaGFy
|
|
306
|
+
dF9lbGVtZW50cyhheCkKICAgIGVsaWYgY2hhcnRfdHlwZSA9PSAic2NhdHRl
|
|
307
|
+
ciI6CiAgICAgICAgZWxlbWVudHMgPSBfZXh0cmFjdF9zY2F0dGVyX2NoYXJ0
|
|
308
|
+
X2VsZW1lbnRzKGF4KQogICAgZWxpZiBjaGFydF90eXBlID09ICJiYXIiOgog
|
|
309
|
+
ICAgICAgIGVsZW1lbnRzLCBjaGFuZ2Vfb3JpZW50YXRpb24gPSBfZXh0cmFj
|
|
310
|
+
dF9iYXJfY2hhcnRfZWxlbWVudHMoYXgpCiAgICBlbGlmIGNoYXJ0X3R5cGUg
|
|
311
|
+
PT0gImJveF9hbmRfd2hpc2tlciI6CiAgICAgICAgZWxlbWVudHMsIGNoYW5n
|
|
312
|
+
ZV9vcmllbnRhdGlvbiA9IF9leHRyYWN0X2JveF9jaGFydF9lbGVtZW50cyhh
|
|
313
|
+
eCkKICAgIGVsaWYgY2hhcnRfdHlwZSA9PSAicGllIjoKICAgICAgICBlbGVt
|
|
314
|
+
ZW50cyA9IF9leHRyYWN0X3BpZV9jaGFydF9lbGVtZW50cyhheCkKCiAgICBp
|
|
315
|
+
ZiBjaGFuZ2Vfb3JpZW50YXRpb246CiAgICAgICAgZGF0YVsieF9sYWJlbCJd
|
|
316
|
+
LCBkYXRhWyJ5X2xhYmVsIl0gPSBkYXRhWyJ5X2xhYmVsIl0sIGRhdGFbInhf
|
|
317
|
+
bGFiZWwiXQoKICAgIGRhdGFbInR5cGUiXSA9IGNoYXJ0X3R5cGUKICAgIGRh
|
|
318
|
+
dGFbImVsZW1lbnRzIl0gPSBlbGVtZW50cwoKICAgIHJldHVybiBkYXRhCgoK
|
|
319
|
+
ZGVmIF9jdXN0b21fanNvbl9zZXJpYWxpemVyKG9iaik6CiAgICBpZiBpc2lu
|
|
320
|
+
c3RhbmNlKG9iaiwgbnAuaW50ZWdlcik6CiAgICAgICAgcmV0dXJuIGludChv
|
|
321
|
+
YmopCiAgICBpZiBpc2luc3RhbmNlKG9iaiwgbnAuZmxvYXRpbmcpOgogICAg
|
|
322
|
+
ICAgIHJldHVybiBmbG9hdChvYmopCiAgICBpZiBpc2luc3RhbmNlKG9iaiwg
|
|
323
|
+
bnAubmRhcnJheSk6CiAgICAgICAgcmV0dXJuIG9iai50b2xpc3QoKQogICAg
|
|
324
|
+
aWYgaXNpbnN0YW5jZShvYmosIHNldCk6CiAgICAgICAgcmV0dXJuIGxpc3Qo
|
|
325
|
+
b2JqKQogICAgcmFpc2UgVHlwZUVycm9yKGYiVHlwZSB7dHlwZShvYmopfSBu
|
|
326
|
+
b3Qgc2VyaWFsaXphYmxlIikKCgpkZWYgZXh0cmFjdF9hbmRfcHJpbnRfZmln
|
|
327
|
+
dXJlX21ldGFkYXRhKGZpZyk6CiAgICAiIiJFeHRyYWN0IG1ldGFkYXRhIGZy
|
|
328
|
+
b20gYSBtYXRwbG90bGliIGZpZ3VyZSBhbmQgcHJpbnQgYXMgSlNPTiIiIgog
|
|
329
|
+
ICAgbWV0YWRhdGEgPSB7fQogICAgc3VicGxvdHMgPSBbXQoKICAgIGF4ZXMg
|
|
330
|
+
PSBfZmlsdGVyX291dF91bndhbnRlZF9heGVzKGZpZy5heGVzKQoKICAgIGZv
|
|
331
|
+
ciBheCBpbiBheGVzOgogICAgICAgIGRhdGEgPSBfZXh0cmFjdF9jaGFydF9k
|
|
332
|
+
YXRhKGF4KQogICAgICAgIHN1YnBsb3RzLmFwcGVuZChkYXRhKQoKICAgIGlm
|
|
333
|
+
IGxlbihzdWJwbG90cykgPiAxOgogICAgICAgIG1ldGFkYXRhID0gewogICAg
|
|
334
|
+
ICAgICAgICAidGl0bGUiOiBmaWcudGV4dHNbMF0uZ2V0X3RleHQoKSBpZiBm
|
|
335
|
+
aWcudGV4dHMgYW5kIGxlbihmaWcudGV4dHMpID4gMCBlbHNlIE5vbmUsCiAg
|
|
336
|
+
ICAgICAgICAgICJ0eXBlIjogImNvbXBvc2l0ZV9jaGFydCIsCiAgICAgICAg
|
|
337
|
+
ICAgICJlbGVtZW50cyI6IHN1YnBsb3RzLAogICAgICAgIH0KICAgIGVsc2U6
|
|
338
|
+
CiAgICAgICAgbWV0YWRhdGEgPSBzdWJwbG90c1swXSBpZiBzdWJwbG90cyBh
|
|
339
|
+
bmQgbGVuKHN1YnBsb3RzKSA+IDAgZWxzZSB7InR5cGUiOiAidW5rbm93biJ9
|
|
340
|
+
CgogICAgbWV0YWRhdGFbInBuZyJdID0gX3NhdmVfZmlndXJlX2FzX2Jhc2U2
|
|
341
|
+
NChmaWcpCiAgICBqc29uX291dHB1dCA9IHsidHlwZSI6ICJjaGFydCIsICJ2
|
|
342
|
+
YWx1ZSI6IG1ldGFkYXRhfQoKICAgIHByaW50KGYiZHRuX2FydGlmYWN0X2sz
|
|
343
|
+
OWZkMjp7anNvbi5kdW1wcyhqc29uX291dHB1dCwgZGVmYXVsdD1fY3VzdG9t
|
|
344
|
+
X2pzb25fc2VyaWFsaXplcil9IikKCgpjbGFzcyBNYXRwbG90bGliRmluZGVy
|
|
345
|
+
KE1ldGFQYXRoRmluZGVyKToKICAgICIiIkN1c3RvbSBmaW5kZXIgdG8gaW50
|
|
346
|
+
ZXJjZXB0IG1hdHBsb3RsaWIucHlwbG90IGltcG9ydHMiIiIKCiAgICBkZWYg
|
|
347
|
+
ZmluZF9zcGVjKHNlbGYsIGZ1bGxuYW1lLCBwYXRoLCB0YXJnZXQ9Tm9uZSk6
|
|
348
|
+
ICAjIHB5bGludDogZGlzYWJsZT11bnVzZWQtYXJndW1lbnQKICAgICAgICBn
|
|
349
|
+
bG9iYWwgcGx0X3BhdGNoZWQsIG5wLCBtcGwsIHBpbF9pbWcgICMgcHlsaW50
|
|
350
|
+
OiBkaXNhYmxlPWdsb2JhbC1zdGF0ZW1lbnQKICAgICAgICBpZiBmdWxsbmFt
|
|
351
|
+
ZSA9PSAibWF0cGxvdGxpYi5weXBsb3QiIGFuZCBub3QgcGx0X3BhdGNoZWQ6
|
|
352
|
+
CiAgICAgICAgICAgIHBsdF9wYXRjaGVkID0gVHJ1ZQoKICAgICAgICAgICAg
|
|
353
|
+
IyBJbXBvcnQgbnVtcHkgYW5kIG1hdHBsb3RsaWIgb25jZSB3ZSBhcmUgc3Vy
|
|
354
|
+
ZSB3ZSBuZWVkIHRoZW0KICAgICAgICAgICAgIyBweWxpbnQ6IGRpc2FibGU9
|
|
355
|
+
aW1wb3J0LW91dHNpZGUtdG9wbGV2ZWwKICAgICAgICAgICAgaW1wb3J0IG1h
|
|
356
|
+
dHBsb3RsaWIKICAgICAgICAgICAgaW1wb3J0IG51bXB5CiAgICAgICAgICAg
|
|
357
|
+
IGZyb20gUElMIGltcG9ydCBJbWFnZQoKICAgICAgICAgICAgIyBTdG9yZSB0
|
|
358
|
+
aGVtIGluIGdsb2JhbCB2YXJpYWJsZXMgZm9yIHVzZSB0aHJvdWdob3V0IHRo
|
|
359
|
+
ZSBtb2R1bGUKICAgICAgICAgICAgbnAgPSBudW1weQogICAgICAgICAgICBt
|
|
360
|
+
cGwgPSBtYXRwbG90bGliCiAgICAgICAgICAgIHBpbF9pbWcgPSBJbWFnZQoK
|
|
361
|
+
ICAgICAgICAgICAgb3JpZ2luYWxfc3BlYyA9IGZpbmRfc3BlYyhmdWxsbmFt
|
|
362
|
+
ZSkKICAgICAgICAgICAgaWYgb3JpZ2luYWxfc3BlYyBpcyBOb25lOgogICAg
|
|
363
|
+
ICAgICAgICAgICAgcmV0dXJuIE5vbmUKICAgICAgICAgICAgcmV0dXJuIHNw
|
|
364
|
+
ZWNfZnJvbV9sb2FkZXIoCiAgICAgICAgICAgICAgICBmdWxsbmFtZSwKICAg
|
|
365
|
+
ICAgICAgICAgICAgIE1hdHBsb3RsaWJMb2FkZXIob3JpZ2luYWxfc3BlYy5s
|
|
366
|
+
b2FkZXIpLAogICAgICAgICAgICAgICAgb3JpZ2luPW9yaWdpbmFsX3NwZWMu
|
|
367
|
+
b3JpZ2luLAogICAgICAgICAgICAgICAgaXNfcGFja2FnZT1vcmlnaW5hbF9z
|
|
368
|
+
cGVjLnN1Ym1vZHVsZV9zZWFyY2hfbG9jYXRpb25zIGlzIG5vdCBOb25lLAog
|
|
369
|
+
ICAgICAgICAgICApCiAgICAgICAgcmV0dXJuIE5vbmUKCgpjbGFzcyBNYXRw
|
|
370
|
+
bG90bGliTG9hZGVyKExvYWRlcik6CiAgICAiIiJDdXN0b20gbG9hZGVyIHRv
|
|
371
|
+
IHBhdGNoIHRoZSBtYXRwbG90bGliLnB5cGxvdCBtb2R1bGUiIiIKCiAgICBk
|
|
372
|
+
ZWYgX19pbml0X18oc2VsZiwgb3JpZ2luYWxfbG9hZGVyKToKICAgICAgICBz
|
|
373
|
+
ZWxmLm9yaWdpbmFsX2xvYWRlciA9IG9yaWdpbmFsX2xvYWRlcgoKICAgIGRl
|
|
374
|
+
ZiBjcmVhdGVfbW9kdWxlKHNlbGYsIHNwZWMpOgogICAgICAgIHJldHVybiBz
|
|
375
|
+
ZWxmLm9yaWdpbmFsX2xvYWRlci5jcmVhdGVfbW9kdWxlKHNwZWMpCgogICAg
|
|
376
|
+
ZGVmIGV4ZWNfbW9kdWxlKHNlbGYsIG1vZHVsZSk6CiAgICAgICAgc2VsZi5v
|
|
377
|
+
cmlnaW5hbF9sb2FkZXIuZXhlY19tb2R1bGUobW9kdWxlKQogICAgICAgIGlm
|
|
378
|
+
IGhhc2F0dHIobW9kdWxlLCAic2hvdyIpOgogICAgICAgICAgICBvcmlnaW5h
|
|
379
|
+
bF9zaG93ID0gbW9kdWxlLnNob3cKCiAgICAgICAgICAgIGRlZiBjdXN0b21f
|
|
380
|
+
c2hvdygqYXJncywgKiprd2FyZ3MpOgogICAgICAgICAgICAgICAgZ2xvYmFs
|
|
381
|
+
IHByb2Nlc3NlZF9maWd1cmVzICAjIHB5bGludDogZGlzYWJsZT1nbG9iYWwt
|
|
382
|
+
dmFyaWFibGUtbm90LWFzc2lnbmVkCiAgICAgICAgICAgICAgICBmaWdfbnVt
|
|
383
|
+
cyA9IG1vZHVsZS5nZXRfZmlnbnVtcygpCiAgICAgICAgICAgICAgICBmb3Ig
|
|
384
|
+
ZmlnX251bSBpbiBmaWdfbnVtczoKICAgICAgICAgICAgICAgICAgICBmaWcg
|
|
385
|
+
PSBtb2R1bGUuZmlndXJlKGZpZ19udW0pCiAgICAgICAgICAgICAgICAgICAg
|
|
386
|
+
ZmlnX2hhc2ggPSBfZ2V0X2ZpZ3VyZV9oYXNoKGZpZykKICAgICAgICAgICAg
|
|
387
|
+
ICAgICAgICBpZiBmaWdfaGFzaCBub3QgaW4gcHJvY2Vzc2VkX2ZpZ3VyZXM6
|
|
388
|
+
CiAgICAgICAgICAgICAgICAgICAgICAgIGV4dHJhY3RfYW5kX3ByaW50X2Zp
|
|
389
|
+
Z3VyZV9tZXRhZGF0YShmaWcpCiAgICAgICAgICAgICAgICAgICAgICAgIHBy
|
|
390
|
+
b2Nlc3NlZF9maWd1cmVzLmFkZChmaWdfaGFzaCkKICAgICAgICAgICAgICAg
|
|
391
|
+
IHJlc3VsdCA9IG9yaWdpbmFsX3Nob3coKmFyZ3MsICoqa3dhcmdzKQogICAg
|
|
392
|
+
ICAgICAgICAgICAgbW9kdWxlLmNsb3NlKCJhbGwiKQogICAgICAgICAgICAg
|
|
393
|
+
ICAgcmV0dXJuIHJlc3VsdAoKICAgICAgICAgICAgbW9kdWxlLnNob3cgPSBj
|
|
394
|
+
dXN0b21fc2hvdwoKCmRlZiBzZXR1cF91c2VyX2NvZGVfZW52aXJvbm1lbnQo
|
|
395
|
+
Y29kZSk6CiAgICAiIiJTZXQgdXAgdGhlIG1vZHVsZSB0byBydW4gdXNlciBj
|
|
396
|
+
b2RlIGluIiIiCiAgICBtb2R1bGUgPSB0eXBlcy5Nb2R1bGVUeXBlKCJfX21h
|
|
397
|
+
aW5fXyIpCiAgICBtb2R1bGUuX19maWxlX18gPSAiPHRhcmdldF9jb2RlPiIK
|
|
398
|
+
ICAgIHN5cy5tb2R1bGVzWyJfX21haW5fXyJdID0gbW9kdWxlCiAgICBjb2Rl
|
|
399
|
+
X2xpbmVzID0gY29kZS5zcGxpdGxpbmVzKCkKICAgIGxpbmVjYWNoZS5jYWNo
|
|
400
|
+
ZVsiPHRhcmdldF9jb2RlPiJdID0gKGxlbihjb2RlKSwgTm9uZSwgY29kZV9s
|
|
401
|
+
aW5lcywgIjx0YXJnZXRfY29kZT4iKQogICAgcmV0dXJuIG1vZHVsZQoKCmRl
|
|
402
|
+
ZiBydW5fdXNlcl9jb2RlKGNvZGUpOgogICAgIiIiUnVuIHRoZSB1c2VyIGNv
|
|
403
|
+
ZGUgd2l0aCB0aGUgbWF0cGxvdGxpYiBpbnRlcmNlcHRvciBpbnN0YWxsZWQi
|
|
404
|
+
IiIKICAgICMgSW5zdGFsbCBtYXRwbG90bGliIGludGVyY2VwdG9yCiAgICBz
|
|
405
|
+
eXMubWV0YV9wYXRoLmluc2VydCgwLCBNYXRwbG90bGliRmluZGVyKCkpCgog
|
|
406
|
+
ICAgIyBTZXQgdXAgY2xlYW4gZW52aXJvbm1lbnQgZm9yIHVzZXIgY29kZQog
|
|
407
|
+
ICAgbW9kdWxlID0gc2V0dXBfdXNlcl9jb2RlX2Vudmlyb25tZW50KGNvZGUp
|
|
408
|
+
CgogICAgIyBDb21waWxlIGFuZCBydW4gdGhlIGNvZGUKICAgIGNvbXBpbGVk
|
|
409
|
+
ID0gY29tcGlsZShjb2RlLCAiPHRhcmdldF9jb2RlPiIsICJleGVjIikKCiAg
|
|
410
|
+
ICAjIEV4ZWN1dGUgaW4gdGhlIG1vZHVsZSdzIG5hbWVzcGFjZQogICAgZXhl
|
|
411
|
+
Yyhjb21waWxlZCwgbW9kdWxlLl9fZGljdF9fKSAgIyBweWxpbnQ6IGRpc2Fi
|
|
412
|
+
bGU9ZXhlYy11c2VkCgoKaWYgX19uYW1lX18gPT0gIl9fbWFpbl9fIjoKICAg
|
|
413
|
+
IHRyeToKICAgICAgICAjIEdldCB0aGUgZW5jb2RlZCB1c2VyIGNvZGUKICAg
|
|
414
|
+
ICAgICB1c2VyX2NvZGUgPSBiYXNlNjQuYjY0ZGVjb2RlKCIiIntlbmNvZGVk
|
|
415
|
+
X2NvZGV9IiIiKS5kZWNvZGUoKQoKICAgICAgICAjIFJ1biB0aGUgY29kZQog
|
|
416
|
+
ICAgICAgIHJ1bl91c2VyX2NvZGUodXNlcl9jb2RlKQogICAgZXhjZXB0IEV4
|
|
417
|
+
Y2VwdGlvbjoKICAgICAgICAjIFByaW50IG9ubHkgdGhlIHJlbGV2YW50IHBh
|
|
418
|
+
cnRzIG9mIHRoZSB0cmFjZWJhY2sKICAgICAgICBleGNfdHlwZSwgZXhjX3Zh
|
|
419
|
+
bHVlLCBleGNfdGIgPSBzeXMuZXhjX2luZm8oKQoKICAgICAgICAjIEZpbHRl
|
|
420
|
+
ciB0cmFjZWJhY2sgdG8gb25seSBzaG93IHVzZXIgY29kZSBmcmFtZXMKICAg
|
|
421
|
+
ICAgICBmaWx0ZXJlZF90YiA9IFtdCiAgICAgICAgdGIgPSBleGNfdGIKICAg
|
|
422
|
+
ICAgICB3aGlsZSB0YiBpcyBub3QgTm9uZToKICAgICAgICAgICAgaWYgdGIu
|
|
423
|
+
dGJfZnJhbWUuZl9jb2RlLmNvX2ZpbGVuYW1lID09ICI8dGFyZ2V0X2NvZGU+
|
|
424
|
+
IjoKICAgICAgICAgICAgICAgIGZpbHRlcmVkX3RiLmFwcGVuZCh0YikKICAg
|
|
425
|
+
ICAgICAgICAgdGIgPSB0Yi50Yl9uZXh0CgogICAgICAgIGlmIGZpbHRlcmVk
|
|
426
|
+
X3RiOgogICAgICAgICAgICAjIENyZWF0ZSBhIG5ldyB0cmFjZWJhY2sgZnJv
|
|
427
|
+
bSB0aGUgZmlsdGVyZWQgZnJhbWVzCiAgICAgICAgICAgIGV4Y192YWx1ZS5f
|
|
428
|
+
X3RyYWNlYmFja19fID0gZmlsdGVyZWRfdGJbLTFdCiAgICAgICAgICAgIHRy
|
|
429
|
+
YWNlYmFjay5wcmludF9leGNlcHRpb24oZXhjX3R5cGUsIGV4Y192YWx1ZSwg
|
|
430
|
+
ZXhjX3ZhbHVlLl9fdHJhY2ViYWNrX18pCiAgICAgICAgZWxzZToKICAgICAg
|
|
431
|
+
ICAgICAgIyBGYWxsYmFjayBpZiBubyB1c2VyIGNvZGUgZnJhbWVzIGZvdW5k
|
|
432
|
+
IC0gcmFpc2UgdGhlIG9yaWdpbmFsIGV4Y2VwdGlvbiB0eXBlCiAgICAgICAg
|
|
433
|
+
ICAgICMgd2l0aCB0aGUgb3JpZ2luYWwgbWVzc2FnZSBidXQgY3JlYXRlIGEg
|
|
434
|
+
ZnJlc2ggdHJhY2ViYWNrCiAgICAgICAgICAgIHJhaXNlIGV4Y190eXBlKHN0
|
|
435
|
+
cihleGNfdmFsdWUpKSBmcm9tIE5vbmUKCiAgICAgICAgc3lzLmV4aXQoMSkK
|
|
436
|
+
BASE64
|
|
437
|
+
private_constant :PYTHON_CODE_WRAPPER
|
|
438
|
+
end
|
|
439
|
+
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require 'base64'
|
|
4
|
+
|
|
5
|
+
module Daytona
|
|
6
|
+
class SandboxTsCodeToolbox
|
|
7
|
+
# Get the run command for executing TypeScript code
|
|
8
|
+
#
|
|
9
|
+
# @param code [String] The TypeScript code to execute
|
|
10
|
+
# @param params [Daytona::CodeRunParams, nil] Optional parameters for code execution
|
|
11
|
+
# @return [String] The command to run the TypeScript code
|
|
12
|
+
def get_run_command(code, params = nil)
|
|
13
|
+
encoded_code = Base64.encode64(code)
|
|
14
|
+
|
|
15
|
+
argv = params&.argv&.join(' ') || ''
|
|
16
|
+
|
|
17
|
+
# Execute TypeScript code using ts-node with ESM support
|
|
18
|
+
" sh -c 'echo #{encoded_code} | base64 --decode | npx ts-node -O " \
|
|
19
|
+
"\"{\\\"module\\\":\\\"CommonJS\\\"}\" -e \"$(cat)\" x #{argv} 2>&1 | grep -vE " \
|
|
20
|
+
"\"npm notice\"' "
|
|
21
|
+
end
|
|
22
|
+
end
|
|
23
|
+
end
|