vibe64 0.1.21 → 0.1.22
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/assets/ProjectTypeGate-B3NHteXC.js +1 -0
- package/dist/assets/ProjectTypeGate-fJcYj6sR.css +1 -0
- package/dist/assets/{SetupReadinessGate-DkkorR2Y.js → SetupReadinessGate-2twHjoYZ.js} +1 -1
- package/dist/assets/{ShellLayout-BcKS2HG9.js → ShellLayout-BjAbXfzf.js} +1 -1
- package/dist/assets/{VTabs-BJ8MKoig.js → VTabs-BLGGdbms.js} +1 -1
- package/dist/assets/{error-CwT53qTu.js → error-DvUPciuh.js} +1 -1
- package/dist/assets/history-DfM4ewyV.js +1 -0
- package/dist/assets/home-sh4v0vz7.js +1 -0
- package/dist/assets/index-C4JbNnml.css +1 -0
- package/dist/assets/{index-BJxDQvyK.js → index-CdFWokfE.js} +1 -1
- package/dist/assets/index-D4oqjV9n.js +132 -0
- package/dist/assets/{index-CY-wDjNv.js → index-DqoYKexs.js} +15 -15
- package/dist/assets/{placement-7FCYadh2.js → placement-QfRaYTFY.js} +1 -1
- package/dist/assets/{setup-BzzdD38G.js → setup-B-WOti3H.js} +2 -2
- package/dist/assets/{streamEvents-Ba9kHw-1.js → streamEvents-CIqegoLa.js} +1 -1
- package/dist/assets/{studioGateApi-hkZdLr1Y.js → studioGateApi-CFtez6lH.js} +1 -1
- package/dist/assets/{target-scripts-8hczu84t.js → target-scripts-CI-nAISO.js} +1 -1
- package/dist/assets/useStudioTerminal-I8tuBymw.js +1 -0
- package/dist/assets/vibe64SessionPanelModel-DLdexNxC.js +1 -0
- package/dist/index.html +1 -1
- package/node_modules/@local/setup-doctor-core/src/server/doctorToolchain.js +4 -0
- package/node_modules/@local/studio-terminal-core/src/server/gitGithubTransport.js +33 -0
- package/node_modules/@local/studio-terminal-core/src/server/index.js +1 -0
- package/node_modules/@local/studio-terminal-core/src/server/terminalSessions.js +51 -1
- package/node_modules/@local/vibe64-adapters/src/server/adapter.js +4 -0
- package/node_modules/@local/vibe64-adapters/src/server/adapters/laravel/adapter.js +5 -0
- package/node_modules/@local/vibe64-adapters/src/server/adapters/laravel/databaseRuntime.js +50 -0
- package/node_modules/@local/vibe64-adapters/src/server/configStore.js +22 -1
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/agent_conversation.txt +0 -2
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/draft_issue.txt +18 -0
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/make_plan.txt +14 -2
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/prepare_for_merge.txt +2 -0
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/resolve_pull_request.txt +1 -0
- package/node_modules/@local/vibe64-adapters/src/server/systemPrompts/run_deep_ui_check.txt +7 -3
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/commitPush.js +4 -22
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/factMetadata.js +21 -20
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/issuePr.js +27 -4
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/mergeSync.js +65 -8
- package/node_modules/@local/vibe64-adapters/src/server/workflowCommandTerminal/worktreeDependencies.js +12 -25
- package/node_modules/@local/vibe64-adapters/src/server/workflowSessionActions.js +77 -20
- package/node_modules/@local/vibe64-core/src/server/terminalWebSocketRoutes.js +14 -5
- package/node_modules/@local/vibe64-project/src/server/actions.js +21 -0
- package/node_modules/@local/vibe64-project/src/server/registerRoutes.js +6 -0
- package/node_modules/@local/vibe64-project/src/server/service.js +125 -8
- package/node_modules/@local/vibe64-runtime/src/server/coreProjectTools.js +135 -0
- package/node_modules/@local/vibe64-runtime/src/server/index.js +4 -0
- package/node_modules/@local/vibe64-runtime/src/server/projectToolRegistry.js +434 -0
- package/node_modules/@local/vibe64-runtime/src/server/runtime.js +40 -16
- package/node_modules/@local/vibe64-runtime/src/server/sessionWorktreeState.js +25 -0
- package/node_modules/@local/vibe64-runtime/src/server/terminalFailureFixRequest.js +112 -0
- package/node_modules/@local/vibe64-runtime/src/server/workflowArtifacts.js +2 -2
- package/node_modules/@local/vibe64-runtime/src/server/workflowDefinitionBuilders.js +1 -0
- package/node_modules/@local/vibe64-runtime/src/server/workflowDefinitionComposers.js +192 -0
- package/node_modules/@local/vibe64-runtime/src/server/workflowMachine.js +5 -0
- package/node_modules/@local/vibe64-runtime/src/server/workflowModules/coreCoding.js +1309 -419
- package/node_modules/@local/vibe64-runtime/src/server/workflowModules/coreLifecycle.js +540 -358
- package/node_modules/@local/vibe64-runtime/src/server/workflowModules/coreMaintenance.js +5 -26
- package/node_modules/@local/vibe64-runtime/src/server/workflowPresentation.js +153 -26
- package/node_modules/@local/vibe64-runtime/src/server/workflowStepMachineHelpers.js +63 -10
- package/node_modules/@local/vibe64-runtime/src/server/workflowStepMachines.js +63 -2
- package/node_modules/@local/vibe64-sessions/src/server/inputSchemas.js +5 -0
- package/node_modules/@local/vibe64-sessions/src/server/service.js +8 -9
- package/node_modules/@local/vibe64-terminals/src/server/actions.js +65 -0
- package/node_modules/@local/vibe64-terminals/src/server/codexTerminal.js +608 -23
- package/node_modules/@local/vibe64-terminals/src/server/commandTerminal.js +261 -4
- package/node_modules/@local/vibe64-terminals/src/server/fixCodexJobs.js +420 -0
- package/node_modules/@local/vibe64-terminals/src/server/inputSchemas.js +240 -0
- package/node_modules/@local/vibe64-terminals/src/server/launchTargetTerminal.js +2 -0
- package/node_modules/@local/vibe64-terminals/src/server/registerRoutes.js +226 -0
- package/node_modules/@local/vibe64-terminals/src/server/service.js +140 -1
- package/node_modules/@local/vibe64-terminals/src/server/targetToolchainTerminal.js +1 -1
- package/node_modules/@local/vibe64-terminals/src/server/terminalShared.js +34 -0
- package/node_modules/node-pty/build/Makefile +369 -0
- package/node_modules/node-pty/build/Release/pty.node +0 -0
- package/node_modules/node-pty/build/binding.Makefile +6 -0
- package/node_modules/node-pty/build/config.gypi +440 -0
- package/node_modules/node-pty/build/pty.target.mk +166 -0
- package/node_modules/node-pty/node-addon-api/node_addon_api.Makefile +6 -0
- package/node_modules/node-pty/node-addon-api/node_addon_api.target.mk +104 -0
- package/node_modules/node-pty/node-addon-api/node_addon_api_except.target.mk +108 -0
- package/node_modules/node-pty/node-addon-api/node_addon_api_maybe.target.mk +104 -0
- package/node_modules/which/CHANGELOG.md +166 -0
- package/package.json +2 -2
- package/packages/setup-doctor-core/src/server/doctorToolchain.js +4 -0
- package/packages/studio-terminal-core/src/server/gitGithubTransport.js +33 -0
- package/packages/studio-terminal-core/src/server/index.js +1 -0
- package/packages/studio-terminal-core/src/server/terminalSessions.js +51 -1
- package/packages/vibe64-adapters/src/server/adapter.js +4 -0
- package/packages/vibe64-adapters/src/server/adapters/laravel/adapter.js +5 -0
- package/packages/vibe64-adapters/src/server/adapters/laravel/databaseRuntime.js +50 -0
- package/packages/vibe64-adapters/src/server/configStore.js +22 -1
- package/packages/vibe64-adapters/src/server/systemPrompts/agent_conversation.txt +0 -2
- package/packages/vibe64-adapters/src/server/systemPrompts/draft_issue.txt +18 -0
- package/packages/vibe64-adapters/src/server/systemPrompts/make_plan.txt +14 -2
- package/packages/vibe64-adapters/src/server/systemPrompts/prepare_for_merge.txt +2 -0
- package/packages/vibe64-adapters/src/server/systemPrompts/resolve_pull_request.txt +1 -0
- package/packages/vibe64-adapters/src/server/systemPrompts/run_deep_ui_check.txt +7 -3
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/commitPush.js +4 -22
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/factMetadata.js +21 -20
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/issuePr.js +27 -4
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/mergeSync.js +65 -8
- package/packages/vibe64-adapters/src/server/workflowCommandTerminal/worktreeDependencies.js +12 -25
- package/packages/vibe64-adapters/src/server/workflowSessionActions.js +77 -20
- package/packages/vibe64-core/src/server/terminalWebSocketRoutes.js +14 -5
- package/packages/vibe64-project/src/server/actions.js +21 -0
- package/packages/vibe64-project/src/server/registerRoutes.js +6 -0
- package/packages/vibe64-project/src/server/service.js +125 -8
- package/packages/vibe64-runtime/src/server/coreProjectTools.js +135 -0
- package/packages/vibe64-runtime/src/server/index.js +4 -0
- package/packages/vibe64-runtime/src/server/projectToolRegistry.js +434 -0
- package/packages/vibe64-runtime/src/server/runtime.js +40 -16
- package/packages/vibe64-runtime/src/server/sessionWorktreeState.js +25 -0
- package/packages/vibe64-runtime/src/server/terminalFailureFixRequest.js +112 -0
- package/packages/vibe64-runtime/src/server/workflowArtifacts.js +2 -2
- package/packages/vibe64-runtime/src/server/workflowDefinitionBuilders.js +1 -0
- package/packages/vibe64-runtime/src/server/workflowDefinitionComposers.js +192 -0
- package/packages/vibe64-runtime/src/server/workflowMachine.js +5 -0
- package/packages/vibe64-runtime/src/server/workflowModules/coreCoding.js +1309 -419
- package/packages/vibe64-runtime/src/server/workflowModules/coreLifecycle.js +540 -358
- package/packages/vibe64-runtime/src/server/workflowModules/coreMaintenance.js +5 -26
- package/packages/vibe64-runtime/src/server/workflowPresentation.js +153 -26
- package/packages/vibe64-runtime/src/server/workflowStepMachineHelpers.js +63 -10
- package/packages/vibe64-runtime/src/server/workflowStepMachines.js +63 -2
- package/packages/vibe64-sessions/src/server/inputSchemas.js +5 -0
- package/packages/vibe64-sessions/src/server/service.js +8 -9
- package/packages/vibe64-terminals/src/server/actions.js +65 -0
- package/packages/vibe64-terminals/src/server/codexTerminal.js +608 -23
- package/packages/vibe64-terminals/src/server/commandTerminal.js +261 -4
- package/packages/vibe64-terminals/src/server/fixCodexJobs.js +420 -0
- package/packages/vibe64-terminals/src/server/inputSchemas.js +240 -0
- package/packages/vibe64-terminals/src/server/launchTargetTerminal.js +2 -0
- package/packages/vibe64-terminals/src/server/registerRoutes.js +226 -0
- package/packages/vibe64-terminals/src/server/service.js +140 -1
- package/packages/vibe64-terminals/src/server/targetToolchainTerminal.js +1 -1
- package/packages/vibe64-terminals/src/server/terminalShared.js +34 -0
- package/dist/assets/ProjectTypeGate-DStq4W4X.js +0 -1
- package/dist/assets/ProjectTypeGate-Dh2ycSoM.css +0 -1
- package/dist/assets/history-HQ_XliX2.js +0 -1
- package/dist/assets/home-B89EbUmA.js +0 -1
- package/dist/assets/index-16P0GeGq.js +0 -134
- package/dist/assets/index-eMhOXhf_.css +0 -1
- package/dist/assets/useStudioTerminal-D9TNb50w.js +0 -1
- package/dist/assets/vibe64SessionPanelModel-DvY_IbW3.js +0 -1
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# This file is generated by gyp; do not edit.
|
|
2
|
+
|
|
3
|
+
TOOLSET := target
|
|
4
|
+
TARGET := node_addon_api
|
|
5
|
+
DEFS_Debug := \
|
|
6
|
+
'-DNODE_GYP_MODULE_NAME=node_addon_api' \
|
|
7
|
+
'-DUSING_UV_SHARED=1' \
|
|
8
|
+
'-DUSING_V8_SHARED=1' \
|
|
9
|
+
'-DV8_DEPRECATION_WARNINGS=1' \
|
|
10
|
+
'-D_GLIBCXX_USE_CXX11_ABI=1' \
|
|
11
|
+
'-D_LARGEFILE_SOURCE' \
|
|
12
|
+
'-D_FILE_OFFSET_BITS=64' \
|
|
13
|
+
'-D__STDC_FORMAT_MACROS' \
|
|
14
|
+
'-DOPENSSL_NO_PINSHARED' \
|
|
15
|
+
'-DOPENSSL_THREADS' \
|
|
16
|
+
'-DDEBUG' \
|
|
17
|
+
'-D_DEBUG'
|
|
18
|
+
|
|
19
|
+
# Flags passed to all source files.
|
|
20
|
+
CFLAGS_Debug := \
|
|
21
|
+
-fPIC \
|
|
22
|
+
-pthread \
|
|
23
|
+
-Wall \
|
|
24
|
+
-Wextra \
|
|
25
|
+
-Wno-unused-parameter \
|
|
26
|
+
-m64 \
|
|
27
|
+
-g \
|
|
28
|
+
-O0
|
|
29
|
+
|
|
30
|
+
# Flags passed to only C files.
|
|
31
|
+
CFLAGS_C_Debug :=
|
|
32
|
+
|
|
33
|
+
# Flags passed to only C++ files.
|
|
34
|
+
CFLAGS_CC_Debug := \
|
|
35
|
+
-fno-rtti \
|
|
36
|
+
-fno-exceptions \
|
|
37
|
+
-std=gnu++17
|
|
38
|
+
|
|
39
|
+
INCS_Debug := \
|
|
40
|
+
-I/home/merc/.cache/node-gyp/20.19.0/include/node \
|
|
41
|
+
-I/home/merc/.cache/node-gyp/20.19.0/src \
|
|
42
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/config \
|
|
43
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/openssl/include \
|
|
44
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/uv/include \
|
|
45
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/zlib \
|
|
46
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/v8/include
|
|
47
|
+
|
|
48
|
+
DEFS_Release := \
|
|
49
|
+
'-DNODE_GYP_MODULE_NAME=node_addon_api' \
|
|
50
|
+
'-DUSING_UV_SHARED=1' \
|
|
51
|
+
'-DUSING_V8_SHARED=1' \
|
|
52
|
+
'-DV8_DEPRECATION_WARNINGS=1' \
|
|
53
|
+
'-D_GLIBCXX_USE_CXX11_ABI=1' \
|
|
54
|
+
'-D_LARGEFILE_SOURCE' \
|
|
55
|
+
'-D_FILE_OFFSET_BITS=64' \
|
|
56
|
+
'-D__STDC_FORMAT_MACROS' \
|
|
57
|
+
'-DOPENSSL_NO_PINSHARED' \
|
|
58
|
+
'-DOPENSSL_THREADS'
|
|
59
|
+
|
|
60
|
+
# Flags passed to all source files.
|
|
61
|
+
CFLAGS_Release := \
|
|
62
|
+
-fPIC \
|
|
63
|
+
-pthread \
|
|
64
|
+
-Wall \
|
|
65
|
+
-Wextra \
|
|
66
|
+
-Wno-unused-parameter \
|
|
67
|
+
-m64 \
|
|
68
|
+
-O3 \
|
|
69
|
+
-fno-omit-frame-pointer
|
|
70
|
+
|
|
71
|
+
# Flags passed to only C files.
|
|
72
|
+
CFLAGS_C_Release :=
|
|
73
|
+
|
|
74
|
+
# Flags passed to only C++ files.
|
|
75
|
+
CFLAGS_CC_Release := \
|
|
76
|
+
-fno-rtti \
|
|
77
|
+
-fno-exceptions \
|
|
78
|
+
-std=gnu++17
|
|
79
|
+
|
|
80
|
+
INCS_Release := \
|
|
81
|
+
-I/home/merc/.cache/node-gyp/20.19.0/include/node \
|
|
82
|
+
-I/home/merc/.cache/node-gyp/20.19.0/src \
|
|
83
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/config \
|
|
84
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/openssl/include \
|
|
85
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/uv/include \
|
|
86
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/zlib \
|
|
87
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/v8/include
|
|
88
|
+
|
|
89
|
+
OBJS :=
|
|
90
|
+
|
|
91
|
+
# Add to the list of files we specially track dependencies for.
|
|
92
|
+
all_deps += $(OBJS)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
### Rules for final target.
|
|
96
|
+
$(obj).target/../node-addon-api/node_addon_api.stamp: TOOLSET := $(TOOLSET)
|
|
97
|
+
$(obj).target/../node-addon-api/node_addon_api.stamp: FORCE_DO_CMD
|
|
98
|
+
$(call do_cmd,touch)
|
|
99
|
+
|
|
100
|
+
all_deps += $(obj).target/../node-addon-api/node_addon_api.stamp
|
|
101
|
+
# Add target alias
|
|
102
|
+
.PHONY: node_addon_api
|
|
103
|
+
node_addon_api: $(obj).target/../node-addon-api/node_addon_api.stamp
|
|
104
|
+
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
# This file is generated by gyp; do not edit.
|
|
2
|
+
|
|
3
|
+
TOOLSET := target
|
|
4
|
+
TARGET := node_addon_api_except
|
|
5
|
+
DEFS_Debug := \
|
|
6
|
+
'-DNODE_GYP_MODULE_NAME=node_addon_api_except' \
|
|
7
|
+
'-DUSING_UV_SHARED=1' \
|
|
8
|
+
'-DUSING_V8_SHARED=1' \
|
|
9
|
+
'-DV8_DEPRECATION_WARNINGS=1' \
|
|
10
|
+
'-D_GLIBCXX_USE_CXX11_ABI=1' \
|
|
11
|
+
'-D_LARGEFILE_SOURCE' \
|
|
12
|
+
'-D_FILE_OFFSET_BITS=64' \
|
|
13
|
+
'-D__STDC_FORMAT_MACROS' \
|
|
14
|
+
'-DOPENSSL_NO_PINSHARED' \
|
|
15
|
+
'-DOPENSSL_THREADS' \
|
|
16
|
+
'-DDEBUG' \
|
|
17
|
+
'-D_DEBUG'
|
|
18
|
+
|
|
19
|
+
# Flags passed to all source files.
|
|
20
|
+
CFLAGS_Debug := \
|
|
21
|
+
-fPIC \
|
|
22
|
+
-pthread \
|
|
23
|
+
-Wall \
|
|
24
|
+
-Wextra \
|
|
25
|
+
-Wno-unused-parameter \
|
|
26
|
+
-m64 \
|
|
27
|
+
-g \
|
|
28
|
+
-O0
|
|
29
|
+
|
|
30
|
+
# Flags passed to only C files.
|
|
31
|
+
CFLAGS_C_Debug :=
|
|
32
|
+
|
|
33
|
+
# Flags passed to only C++ files.
|
|
34
|
+
CFLAGS_CC_Debug := \
|
|
35
|
+
-fno-rtti \
|
|
36
|
+
-fno-exceptions \
|
|
37
|
+
-std=gnu++17
|
|
38
|
+
|
|
39
|
+
INCS_Debug := \
|
|
40
|
+
-I/home/merc/.cache/node-gyp/20.19.0/include/node \
|
|
41
|
+
-I/home/merc/.cache/node-gyp/20.19.0/src \
|
|
42
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/config \
|
|
43
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/openssl/include \
|
|
44
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/uv/include \
|
|
45
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/zlib \
|
|
46
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/v8/include
|
|
47
|
+
|
|
48
|
+
DEFS_Release := \
|
|
49
|
+
'-DNODE_GYP_MODULE_NAME=node_addon_api_except' \
|
|
50
|
+
'-DUSING_UV_SHARED=1' \
|
|
51
|
+
'-DUSING_V8_SHARED=1' \
|
|
52
|
+
'-DV8_DEPRECATION_WARNINGS=1' \
|
|
53
|
+
'-D_GLIBCXX_USE_CXX11_ABI=1' \
|
|
54
|
+
'-D_LARGEFILE_SOURCE' \
|
|
55
|
+
'-D_FILE_OFFSET_BITS=64' \
|
|
56
|
+
'-D__STDC_FORMAT_MACROS' \
|
|
57
|
+
'-DOPENSSL_NO_PINSHARED' \
|
|
58
|
+
'-DOPENSSL_THREADS'
|
|
59
|
+
|
|
60
|
+
# Flags passed to all source files.
|
|
61
|
+
CFLAGS_Release := \
|
|
62
|
+
-fPIC \
|
|
63
|
+
-pthread \
|
|
64
|
+
-Wall \
|
|
65
|
+
-Wextra \
|
|
66
|
+
-Wno-unused-parameter \
|
|
67
|
+
-m64 \
|
|
68
|
+
-O3 \
|
|
69
|
+
-fno-omit-frame-pointer
|
|
70
|
+
|
|
71
|
+
# Flags passed to only C files.
|
|
72
|
+
CFLAGS_C_Release :=
|
|
73
|
+
|
|
74
|
+
# Flags passed to only C++ files.
|
|
75
|
+
CFLAGS_CC_Release := \
|
|
76
|
+
-fno-rtti \
|
|
77
|
+
-fno-exceptions \
|
|
78
|
+
-std=gnu++17
|
|
79
|
+
|
|
80
|
+
INCS_Release := \
|
|
81
|
+
-I/home/merc/.cache/node-gyp/20.19.0/include/node \
|
|
82
|
+
-I/home/merc/.cache/node-gyp/20.19.0/src \
|
|
83
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/config \
|
|
84
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/openssl/include \
|
|
85
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/uv/include \
|
|
86
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/zlib \
|
|
87
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/v8/include
|
|
88
|
+
|
|
89
|
+
OBJS :=
|
|
90
|
+
|
|
91
|
+
# Add to the list of files we specially track dependencies for.
|
|
92
|
+
all_deps += $(OBJS)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
### Rules for final target.
|
|
96
|
+
$(obj).target/../node-addon-api/node_addon_api_except.stamp: TOOLSET := $(TOOLSET)
|
|
97
|
+
$(obj).target/../node-addon-api/node_addon_api_except.stamp: FORCE_DO_CMD
|
|
98
|
+
$(call do_cmd,touch)
|
|
99
|
+
|
|
100
|
+
all_deps += $(obj).target/../node-addon-api/node_addon_api_except.stamp
|
|
101
|
+
# Add target alias
|
|
102
|
+
.PHONY: node_addon_api_except
|
|
103
|
+
node_addon_api_except: $(obj).target/../node-addon-api/node_addon_api_except.stamp
|
|
104
|
+
|
|
105
|
+
# Add target alias to "all" target.
|
|
106
|
+
.PHONY: all
|
|
107
|
+
all: node_addon_api_except
|
|
108
|
+
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
# This file is generated by gyp; do not edit.
|
|
2
|
+
|
|
3
|
+
TOOLSET := target
|
|
4
|
+
TARGET := node_addon_api_maybe
|
|
5
|
+
DEFS_Debug := \
|
|
6
|
+
'-DNODE_GYP_MODULE_NAME=node_addon_api_maybe' \
|
|
7
|
+
'-DUSING_UV_SHARED=1' \
|
|
8
|
+
'-DUSING_V8_SHARED=1' \
|
|
9
|
+
'-DV8_DEPRECATION_WARNINGS=1' \
|
|
10
|
+
'-D_GLIBCXX_USE_CXX11_ABI=1' \
|
|
11
|
+
'-D_LARGEFILE_SOURCE' \
|
|
12
|
+
'-D_FILE_OFFSET_BITS=64' \
|
|
13
|
+
'-D__STDC_FORMAT_MACROS' \
|
|
14
|
+
'-DOPENSSL_NO_PINSHARED' \
|
|
15
|
+
'-DOPENSSL_THREADS' \
|
|
16
|
+
'-DDEBUG' \
|
|
17
|
+
'-D_DEBUG'
|
|
18
|
+
|
|
19
|
+
# Flags passed to all source files.
|
|
20
|
+
CFLAGS_Debug := \
|
|
21
|
+
-fPIC \
|
|
22
|
+
-pthread \
|
|
23
|
+
-Wall \
|
|
24
|
+
-Wextra \
|
|
25
|
+
-Wno-unused-parameter \
|
|
26
|
+
-m64 \
|
|
27
|
+
-g \
|
|
28
|
+
-O0
|
|
29
|
+
|
|
30
|
+
# Flags passed to only C files.
|
|
31
|
+
CFLAGS_C_Debug :=
|
|
32
|
+
|
|
33
|
+
# Flags passed to only C++ files.
|
|
34
|
+
CFLAGS_CC_Debug := \
|
|
35
|
+
-fno-rtti \
|
|
36
|
+
-fno-exceptions \
|
|
37
|
+
-std=gnu++17
|
|
38
|
+
|
|
39
|
+
INCS_Debug := \
|
|
40
|
+
-I/home/merc/.cache/node-gyp/20.19.0/include/node \
|
|
41
|
+
-I/home/merc/.cache/node-gyp/20.19.0/src \
|
|
42
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/config \
|
|
43
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/openssl/include \
|
|
44
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/uv/include \
|
|
45
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/zlib \
|
|
46
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/v8/include
|
|
47
|
+
|
|
48
|
+
DEFS_Release := \
|
|
49
|
+
'-DNODE_GYP_MODULE_NAME=node_addon_api_maybe' \
|
|
50
|
+
'-DUSING_UV_SHARED=1' \
|
|
51
|
+
'-DUSING_V8_SHARED=1' \
|
|
52
|
+
'-DV8_DEPRECATION_WARNINGS=1' \
|
|
53
|
+
'-D_GLIBCXX_USE_CXX11_ABI=1' \
|
|
54
|
+
'-D_LARGEFILE_SOURCE' \
|
|
55
|
+
'-D_FILE_OFFSET_BITS=64' \
|
|
56
|
+
'-D__STDC_FORMAT_MACROS' \
|
|
57
|
+
'-DOPENSSL_NO_PINSHARED' \
|
|
58
|
+
'-DOPENSSL_THREADS'
|
|
59
|
+
|
|
60
|
+
# Flags passed to all source files.
|
|
61
|
+
CFLAGS_Release := \
|
|
62
|
+
-fPIC \
|
|
63
|
+
-pthread \
|
|
64
|
+
-Wall \
|
|
65
|
+
-Wextra \
|
|
66
|
+
-Wno-unused-parameter \
|
|
67
|
+
-m64 \
|
|
68
|
+
-O3 \
|
|
69
|
+
-fno-omit-frame-pointer
|
|
70
|
+
|
|
71
|
+
# Flags passed to only C files.
|
|
72
|
+
CFLAGS_C_Release :=
|
|
73
|
+
|
|
74
|
+
# Flags passed to only C++ files.
|
|
75
|
+
CFLAGS_CC_Release := \
|
|
76
|
+
-fno-rtti \
|
|
77
|
+
-fno-exceptions \
|
|
78
|
+
-std=gnu++17
|
|
79
|
+
|
|
80
|
+
INCS_Release := \
|
|
81
|
+
-I/home/merc/.cache/node-gyp/20.19.0/include/node \
|
|
82
|
+
-I/home/merc/.cache/node-gyp/20.19.0/src \
|
|
83
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/config \
|
|
84
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/openssl/openssl/include \
|
|
85
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/uv/include \
|
|
86
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/zlib \
|
|
87
|
+
-I/home/merc/.cache/node-gyp/20.19.0/deps/v8/include
|
|
88
|
+
|
|
89
|
+
OBJS :=
|
|
90
|
+
|
|
91
|
+
# Add to the list of files we specially track dependencies for.
|
|
92
|
+
all_deps += $(OBJS)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
### Rules for final target.
|
|
96
|
+
$(obj).target/../node-addon-api/node_addon_api_maybe.stamp: TOOLSET := $(TOOLSET)
|
|
97
|
+
$(obj).target/../node-addon-api/node_addon_api_maybe.stamp: FORCE_DO_CMD
|
|
98
|
+
$(call do_cmd,touch)
|
|
99
|
+
|
|
100
|
+
all_deps += $(obj).target/../node-addon-api/node_addon_api_maybe.stamp
|
|
101
|
+
# Add target alias
|
|
102
|
+
.PHONY: node_addon_api_maybe
|
|
103
|
+
node_addon_api_maybe: $(obj).target/../node-addon-api/node_addon_api_maybe.stamp
|
|
104
|
+
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
# Changes
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
## 2.0.2
|
|
5
|
+
|
|
6
|
+
* Rename bin to `node-which`
|
|
7
|
+
|
|
8
|
+
## 2.0.1
|
|
9
|
+
|
|
10
|
+
* generate changelog and publish on version bump
|
|
11
|
+
* enforce 100% test coverage
|
|
12
|
+
* Promise interface
|
|
13
|
+
|
|
14
|
+
## 2.0.0
|
|
15
|
+
|
|
16
|
+
* Parallel tests, modern JavaScript, and drop support for node < 8
|
|
17
|
+
|
|
18
|
+
## 1.3.1
|
|
19
|
+
|
|
20
|
+
* update deps
|
|
21
|
+
* update travis
|
|
22
|
+
|
|
23
|
+
## v1.3.0
|
|
24
|
+
|
|
25
|
+
* Add nothrow option to which.sync
|
|
26
|
+
* update tap
|
|
27
|
+
|
|
28
|
+
## v1.2.14
|
|
29
|
+
|
|
30
|
+
* appveyor: drop node 5 and 0.x
|
|
31
|
+
* travis-ci: add node 6, drop 0.x
|
|
32
|
+
|
|
33
|
+
## v1.2.13
|
|
34
|
+
|
|
35
|
+
* test: Pass missing option to pass on windows
|
|
36
|
+
* update tap
|
|
37
|
+
* update isexe to 2.0.0
|
|
38
|
+
* neveragain.tech pledge request
|
|
39
|
+
|
|
40
|
+
## v1.2.12
|
|
41
|
+
|
|
42
|
+
* Removed unused require
|
|
43
|
+
|
|
44
|
+
## v1.2.11
|
|
45
|
+
|
|
46
|
+
* Prevent changelog script from being included in package
|
|
47
|
+
|
|
48
|
+
## v1.2.10
|
|
49
|
+
|
|
50
|
+
* Use env.PATH only, not env.Path
|
|
51
|
+
|
|
52
|
+
## v1.2.9
|
|
53
|
+
|
|
54
|
+
* fix for paths starting with ../
|
|
55
|
+
* Remove unused `is-absolute` module
|
|
56
|
+
|
|
57
|
+
## v1.2.8
|
|
58
|
+
|
|
59
|
+
* bullet items in changelog that contain (but don't start with) #
|
|
60
|
+
|
|
61
|
+
## v1.2.7
|
|
62
|
+
|
|
63
|
+
* strip 'update changelog' changelog entries out of changelog
|
|
64
|
+
|
|
65
|
+
## v1.2.6
|
|
66
|
+
|
|
67
|
+
* make the changelog bulleted
|
|
68
|
+
|
|
69
|
+
## v1.2.5
|
|
70
|
+
|
|
71
|
+
* make a changelog, and keep it up to date
|
|
72
|
+
* don't include tests in package
|
|
73
|
+
* Properly handle relative-path executables
|
|
74
|
+
* appveyor
|
|
75
|
+
* Attach error code to Not Found error
|
|
76
|
+
* Make tests pass on Windows
|
|
77
|
+
|
|
78
|
+
## v1.2.4
|
|
79
|
+
|
|
80
|
+
* Fix typo
|
|
81
|
+
|
|
82
|
+
## v1.2.3
|
|
83
|
+
|
|
84
|
+
* update isexe, fix regression in pathExt handling
|
|
85
|
+
|
|
86
|
+
## v1.2.2
|
|
87
|
+
|
|
88
|
+
* update deps, use isexe module, test windows
|
|
89
|
+
|
|
90
|
+
## v1.2.1
|
|
91
|
+
|
|
92
|
+
* Sometimes windows PATH entries are quoted
|
|
93
|
+
* Fixed a bug in the check for group and user mode bits. This bug was introduced during refactoring for supporting strict mode.
|
|
94
|
+
* doc cli
|
|
95
|
+
|
|
96
|
+
## v1.2.0
|
|
97
|
+
|
|
98
|
+
* Add support for opt.all and -as cli flags
|
|
99
|
+
* test the bin
|
|
100
|
+
* update travis
|
|
101
|
+
* Allow checking for multiple programs in bin/which
|
|
102
|
+
* tap 2
|
|
103
|
+
|
|
104
|
+
## v1.1.2
|
|
105
|
+
|
|
106
|
+
* travis
|
|
107
|
+
* Refactored and fixed undefined error on Windows
|
|
108
|
+
* Support strict mode
|
|
109
|
+
|
|
110
|
+
## v1.1.1
|
|
111
|
+
|
|
112
|
+
* test +g exes against secondary groups, if available
|
|
113
|
+
* Use windows exe semantics on cygwin & msys
|
|
114
|
+
* cwd should be first in path on win32, not last
|
|
115
|
+
* Handle lower-case 'env.Path' on Windows
|
|
116
|
+
* Update docs
|
|
117
|
+
* use single-quotes
|
|
118
|
+
|
|
119
|
+
## v1.1.0
|
|
120
|
+
|
|
121
|
+
* Add tests, depend on is-absolute
|
|
122
|
+
|
|
123
|
+
## v1.0.9
|
|
124
|
+
|
|
125
|
+
* which.js: root is allowed to execute files owned by anyone
|
|
126
|
+
|
|
127
|
+
## v1.0.8
|
|
128
|
+
|
|
129
|
+
* don't use graceful-fs
|
|
130
|
+
|
|
131
|
+
## v1.0.7
|
|
132
|
+
|
|
133
|
+
* add license to package.json
|
|
134
|
+
|
|
135
|
+
## v1.0.6
|
|
136
|
+
|
|
137
|
+
* isc license
|
|
138
|
+
|
|
139
|
+
## 1.0.5
|
|
140
|
+
|
|
141
|
+
* Awful typo
|
|
142
|
+
|
|
143
|
+
## 1.0.4
|
|
144
|
+
|
|
145
|
+
* Test for path absoluteness properly
|
|
146
|
+
* win: Allow '' as a pathext if cmd has a . in it
|
|
147
|
+
|
|
148
|
+
## 1.0.3
|
|
149
|
+
|
|
150
|
+
* Remove references to execPath
|
|
151
|
+
* Make `which.sync()` work on Windows by honoring the PATHEXT variable.
|
|
152
|
+
* Make `isExe()` always return true on Windows.
|
|
153
|
+
* MIT
|
|
154
|
+
|
|
155
|
+
## 1.0.2
|
|
156
|
+
|
|
157
|
+
* Only files can be exes
|
|
158
|
+
|
|
159
|
+
## 1.0.1
|
|
160
|
+
|
|
161
|
+
* Respect the PATHEXT env for win32 support
|
|
162
|
+
* should 0755 the bin
|
|
163
|
+
* binary
|
|
164
|
+
* guts
|
|
165
|
+
* package
|
|
166
|
+
* 1st
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vibe64",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"workspaces": [
|
|
@@ -63,7 +63,7 @@
|
|
|
63
63
|
"test": "node --test tests/server/*.test.js",
|
|
64
64
|
"test:client": "vitest run tests/client",
|
|
65
65
|
"test:e2e": "playwright test --config playwright.config.ts tests/e2e/self-contained-smoke.spec.ts tests/e2e/dumb-client-autopilot.spec.ts",
|
|
66
|
-
"test:e2e:
|
|
66
|
+
"test:e2e:shell": "playwright test --config playwright.config.ts tests/e2e/base-shell.spec.ts",
|
|
67
67
|
"test:e2e:live": "npm run build && VIBE64_LIVE_E2E=1 playwright test --config playwright.config.ts tests/e2e/live-vibe64-workflow.spec.ts",
|
|
68
68
|
"verify": "npx jskit app verify && npm run verify:packages && npm run --if-present verify:app",
|
|
69
69
|
"verify:packages": "node ./tooling/verify-package-boundaries.mjs",
|
|
@@ -3,6 +3,9 @@ import process from "node:process";
|
|
|
3
3
|
import {
|
|
4
4
|
gitToolchainMountArgs
|
|
5
5
|
} from "@local/studio-terminal-core/server/gitToolchainMounts";
|
|
6
|
+
import {
|
|
7
|
+
githubSshToHttpsGitDockerEnvArgs
|
|
8
|
+
} from "@local/studio-terminal-core/server/gitGithubTransport";
|
|
6
9
|
import {
|
|
7
10
|
targetRuntimeNetworkDockerArgs
|
|
8
11
|
} from "@local/studio-terminal-core/server/runtimeContainers";
|
|
@@ -108,6 +111,7 @@ function buildDoctorToolchainArgs(commandArgs, options = {}) {
|
|
|
108
111
|
"run",
|
|
109
112
|
"--rm",
|
|
110
113
|
...toolchainHomeDockerArgs(extraArgs),
|
|
114
|
+
...githubSshToHttpsGitDockerEnvArgs(),
|
|
111
115
|
"--label",
|
|
112
116
|
STUDIO_TOOLCHAIN_CONTAINER_LABEL,
|
|
113
117
|
"--label",
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
const GITHUB_SSH_TO_HTTPS_GIT_CONFIG = Object.freeze([
|
|
2
|
+
{
|
|
3
|
+
key: "url.https://github.com/.insteadOf",
|
|
4
|
+
value: "git@github.com:"
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
key: "url.https://github.com/.insteadOf",
|
|
8
|
+
value: "ssh://git@github.com/"
|
|
9
|
+
}
|
|
10
|
+
]);
|
|
11
|
+
|
|
12
|
+
function githubSshToHttpsGitEnv() {
|
|
13
|
+
return Object.fromEntries([
|
|
14
|
+
["GIT_CONFIG_COUNT", String(GITHUB_SSH_TO_HTTPS_GIT_CONFIG.length)],
|
|
15
|
+
...GITHUB_SSH_TO_HTTPS_GIT_CONFIG.flatMap((entry, index) => [
|
|
16
|
+
[`GIT_CONFIG_KEY_${index}`, entry.key],
|
|
17
|
+
[`GIT_CONFIG_VALUE_${index}`, entry.value]
|
|
18
|
+
])
|
|
19
|
+
]);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
function githubSshToHttpsGitDockerEnvArgs() {
|
|
23
|
+
return Object.entries(githubSshToHttpsGitEnv()).flatMap(([key, value]) => [
|
|
24
|
+
"-e",
|
|
25
|
+
`${key}=${value}`
|
|
26
|
+
]);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export {
|
|
30
|
+
GITHUB_SSH_TO_HTTPS_GIT_CONFIG,
|
|
31
|
+
githubSshToHttpsGitDockerEnvArgs,
|
|
32
|
+
githubSshToHttpsGitEnv
|
|
33
|
+
};
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { Buffer } from "node:buffer";
|
|
1
2
|
import crypto from "node:crypto";
|
|
2
3
|
import { spawn as spawnPty } from "node-pty";
|
|
3
4
|
|
|
@@ -47,8 +48,14 @@ function terminalSessionResponse(session) {
|
|
|
47
48
|
id: session.id,
|
|
48
49
|
commandPreview: session.commandPreview,
|
|
49
50
|
exitCode: session.exitCode,
|
|
51
|
+
inputVersion: session.inputVersion || 0,
|
|
52
|
+
lastInputAt: session.lastInputAt || "",
|
|
53
|
+
lastInputBytes: session.lastInputBytes || 0,
|
|
54
|
+
lastOutputAt: session.lastOutputAt || "",
|
|
55
|
+
lastOutputBytes: session.lastOutputBytes || 0,
|
|
50
56
|
metadata: session.metadata || {},
|
|
51
57
|
output: session.output,
|
|
58
|
+
outputVersion: session.outputVersion || 0,
|
|
52
59
|
rows: session.rows || DEFAULT_TERMINAL_ROWS,
|
|
53
60
|
status: session.status
|
|
54
61
|
};
|
|
@@ -101,6 +108,36 @@ function applySessionMetadata(session, metadata = {}) {
|
|
|
101
108
|
return terminalSessionResponse(session);
|
|
102
109
|
}
|
|
103
110
|
|
|
111
|
+
function byteLength(value = "") {
|
|
112
|
+
return Buffer.byteLength(String(value || ""), "utf8");
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
function recordTerminalInput(session, data = "") {
|
|
116
|
+
const bytes = byteLength(data);
|
|
117
|
+
if (bytes < 1) {
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
session.inputVersion = Number(session.inputVersion || 0) + 1;
|
|
121
|
+
session.lastInputAt = new Date().toISOString();
|
|
122
|
+
session.lastInputBytes = bytes;
|
|
123
|
+
sendToSubscribers(session, {
|
|
124
|
+
bytes,
|
|
125
|
+
inputVersion: session.inputVersion,
|
|
126
|
+
lastInputAt: session.lastInputAt,
|
|
127
|
+
type: "input"
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
function recordTerminalOutput(session, data = "") {
|
|
132
|
+
const bytes = byteLength(data);
|
|
133
|
+
if (bytes < 1) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
session.outputVersion = Number(session.outputVersion || 0) + 1;
|
|
137
|
+
session.lastOutputAt = new Date().toISOString();
|
|
138
|
+
session.lastOutputBytes = bytes;
|
|
139
|
+
}
|
|
140
|
+
|
|
104
141
|
function sendToSubscribers(session, message) {
|
|
105
142
|
if (!session?.subscribers?.size) {
|
|
106
143
|
return;
|
|
@@ -300,7 +337,13 @@ function startTerminalSession({
|
|
|
300
337
|
: {},
|
|
301
338
|
onClose,
|
|
302
339
|
onStop,
|
|
340
|
+
inputVersion: 0,
|
|
341
|
+
lastInputAt: "",
|
|
342
|
+
lastInputBytes: 0,
|
|
343
|
+
lastOutputAt: "",
|
|
344
|
+
lastOutputBytes: 0,
|
|
303
345
|
output: "",
|
|
346
|
+
outputVersion: 0,
|
|
304
347
|
rows: DEFAULT_TERMINAL_ROWS,
|
|
305
348
|
status: "running",
|
|
306
349
|
subscribers: new Set(),
|
|
@@ -308,9 +351,12 @@ function startTerminalSession({
|
|
|
308
351
|
};
|
|
309
352
|
|
|
310
353
|
terminal.onData((data) => {
|
|
354
|
+
recordTerminalOutput(session, data);
|
|
311
355
|
session.output = trimBuffer(session.output + data);
|
|
312
356
|
sendToSubscribers(session, {
|
|
313
357
|
chunk: data,
|
|
358
|
+
lastOutputAt: session.lastOutputAt,
|
|
359
|
+
outputVersion: session.outputVersion,
|
|
314
360
|
type: "output"
|
|
315
361
|
});
|
|
316
362
|
if (typeof onOutput === "function") {
|
|
@@ -420,7 +466,11 @@ function writeTerminalSession(id, data, { namespace = "default" } = {}) {
|
|
|
420
466
|
return readTerminalSession(id, { namespace });
|
|
421
467
|
}
|
|
422
468
|
|
|
423
|
-
|
|
469
|
+
const input = String(data || "");
|
|
470
|
+
if (input) {
|
|
471
|
+
recordTerminalInput(session, input);
|
|
472
|
+
session.terminal.write(input);
|
|
473
|
+
}
|
|
424
474
|
return readTerminalSession(id, { namespace });
|
|
425
475
|
}
|
|
426
476
|
|
|
@@ -62,6 +62,7 @@ import {
|
|
|
62
62
|
} from "./currentApp.js";
|
|
63
63
|
import {
|
|
64
64
|
createLaravelRuntimeContainers,
|
|
65
|
+
listLaravelDatabaseProjectTools,
|
|
65
66
|
selectedLaravelDatabaseRuntime
|
|
66
67
|
} from "./databaseRuntime.js";
|
|
67
68
|
import {
|
|
@@ -428,6 +429,10 @@ class LaravelTargetAdapter extends Vibe64DescribedWorkflowTargetAdapter {
|
|
|
428
429
|
}
|
|
429
430
|
});
|
|
430
431
|
}
|
|
432
|
+
|
|
433
|
+
async listProjectTools(context = {}) {
|
|
434
|
+
return listLaravelDatabaseProjectTools(context);
|
|
435
|
+
}
|
|
431
436
|
}
|
|
432
437
|
|
|
433
438
|
export {
|