@openziti/ziti-sdk-nodejs 0.6.0
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/.github/workflows/build.yml +220 -0
- package/.github/workflows/codeql-analysis.yml +71 -0
- package/.github/workflows/mattermost-ziti-webhook.yml +26 -0
- package/.gitmodules +4 -0
- package/.travis.yml-obsolete +99 -0
- package/CODE_OF_CONDUCT.md +17 -0
- package/CONTRIBUTING.md +6 -0
- package/LICENSE +201 -0
- package/README.md +155 -0
- package/appveyor.yml-obsolete +32 -0
- package/binding.gyp +227 -0
- package/lib/index.js +17 -0
- package/lib/ziti.js +40 -0
- package/package.json +56 -0
- package/scripts/build-appveyor.bat +198 -0
- package/scripts/install_node.sh +99 -0
- package/scripts/validate_tag.sh +24 -0
- package/src/Ziti_https_request.c +960 -0
- package/src/Ziti_https_request_data.c +250 -0
- package/src/Ziti_https_request_end.c +79 -0
- package/src/stack_traces.c +334 -0
- package/src/utils.c +108 -0
- package/src/utils.h +85 -0
- package/src/ziti-add-on.c +88 -0
- package/src/ziti-nodejs.h +209 -0
- package/src/ziti_close.c +79 -0
- package/src/ziti_dial.c +375 -0
- package/src/ziti_enroll.c +245 -0
- package/src/ziti_hello.c +52 -0
- package/src/ziti_init.c +315 -0
- package/src/ziti_service_available.c +222 -0
- package/src/ziti_shutdown.c +47 -0
- package/src/ziti_websocket_connect.c +458 -0
- package/src/ziti_websocket_write.c +235 -0
- package/src/ziti_write.c +223 -0
- package/tests/enroll-test.js +38 -0
- package/tests/hello.js +12 -0
- package/tests/https-test.js +206 -0
- package/tests/mattermost-test.js +124 -0
- package/tests/websocket-test.js +119 -0
- package/ziti.js +1 -0
- package/ziti.png +0 -0
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
@ECHO OFF
|
|
2
|
+
SETLOCAL
|
|
3
|
+
SET EL=0
|
|
4
|
+
|
|
5
|
+
ECHO ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ %~f0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
6
|
+
|
|
7
|
+
IF /I "%msvs_toolset%"=="" ECHO msvs_toolset unset, defaulting to 14 && SET msvs_toolset=14
|
|
8
|
+
IF /I "%msvs_version%"=="" ECHO msvs_version unset, defaulting to 2019 && SET msvs_version=2019
|
|
9
|
+
|
|
10
|
+
SET PATH=%CD%;%PATH%
|
|
11
|
+
IF "%msvs_toolset%"=="12" SET msvs_version=2013
|
|
12
|
+
IF NOT "%NODE_RUNTIME%"=="" SET "TOOLSET_ARGS=%TOOLSET_ARGS% --runtime=%NODE_RUNTIME%"
|
|
13
|
+
IF NOT "%NODE_RUNTIME_VERSION%"=="" SET "TOOLSET_ARGS=%TOOLSET_ARGS% --target=%NODE_RUNTIME_VERSION%"
|
|
14
|
+
|
|
15
|
+
ECHO APPVEYOR^: %APPVEYOR%
|
|
16
|
+
ECHO nodejs_version^: %nodejs_version%
|
|
17
|
+
ECHO platform^: %platform%
|
|
18
|
+
ECHO msvs_toolset^: %msvs_toolset%
|
|
19
|
+
ECHO msvs_version^: %msvs_version%
|
|
20
|
+
ECHO TOOLSET_ARGS^: %TOOLSET_ARGS%
|
|
21
|
+
|
|
22
|
+
ECHO activating VS command prompt
|
|
23
|
+
:: NOTE this call makes the x64 -> X64
|
|
24
|
+
IF /I "%platform%"=="x64" ECHO x64 && CALL "C:\Program Files (x86)\Microsoft Visual Studio\%msvs_version%\Community\VC\Auxiliary\Build\vcvarsall.bat" amd64
|
|
25
|
+
IF /I "%platform%"=="x86" ECHO x86 && CALL "C:\Program Files (x86)\Microsoft Visual Studio\%msvs_version%\Community\VC\Auxiliary\Build\vcvarsall.bat" x86
|
|
26
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
27
|
+
|
|
28
|
+
ECHO using compiler^: && CALL cl
|
|
29
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
30
|
+
|
|
31
|
+
ECHO using MSBuild^: && CALL msbuild /version && ECHO.
|
|
32
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
33
|
+
|
|
34
|
+
ECHO downloading/installing node
|
|
35
|
+
powershell Update-NodeJsInstallation (Get-NodeJsLatestBuild $env:nodejs_version) $env:PLATFORM
|
|
36
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
37
|
+
|
|
38
|
+
powershell Set-ExecutionPolicy Unrestricted -Scope CurrentUser -Force
|
|
39
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
40
|
+
|
|
41
|
+
ECHO available node.exe^:
|
|
42
|
+
call where node
|
|
43
|
+
ECHO available npm^:
|
|
44
|
+
call where npm
|
|
45
|
+
|
|
46
|
+
ECHO node^: && call node -v
|
|
47
|
+
call node -e "console.log(' - arch:',process.arch,'\n - argv:',process.argv,'\n - execPath:',process.execPath)"
|
|
48
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
49
|
+
|
|
50
|
+
ECHO npm^: && CALL npm -v
|
|
51
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
52
|
+
|
|
53
|
+
ECHO ===== where npm puts stuff START ============
|
|
54
|
+
ECHO npm root && CALL npm root
|
|
55
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
56
|
+
ECHO npm root -g && CALL npm root -g
|
|
57
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
58
|
+
|
|
59
|
+
ECHO npm bin && CALL npm bin
|
|
60
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
61
|
+
ECHO npm bin -g && CALL npm bin -g
|
|
62
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
63
|
+
|
|
64
|
+
SET NPM_BIN_DIR=
|
|
65
|
+
FOR /F "tokens=*" %%i in ('CALL npm bin -g') DO SET NPM_BIN_DIR=%%i
|
|
66
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
67
|
+
IF /I "%NPM_BIN_DIR%"=="%CD%" ECHO ERROR npm bin -g equals local directory && SET ERRORLEVEL=1 && GOTO ERROR
|
|
68
|
+
ECHO ===== where npm puts stuff END ============
|
|
69
|
+
|
|
70
|
+
IF "%nodejs_version:~0,1%"=="4" CALL npm install node-gyp@3.x
|
|
71
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
72
|
+
IF "%nodejs_version:~0,1%"=="5" CALL npm install node-gyp@3.x
|
|
73
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
74
|
+
|
|
75
|
+
::Need to force update node-gyp to v6+ for electron v6 and v5
|
|
76
|
+
ECHO ===== conditional node-gyp upgrade START ============
|
|
77
|
+
:: Find the folder to install the node-gyp in
|
|
78
|
+
SET npm_in_nodejs_dir="%ProgramFiles%\nodejs\node_modules\npm"
|
|
79
|
+
ECHO npm_in_nodejs_dir^: %npm_in_nodejs_dir%
|
|
80
|
+
IF /I "%platform%"=="x86" SET npm_in_nodejs_dir="%ProgramFiles(x86)%\nodejs\node_modules\npm"
|
|
81
|
+
ECHO npm_in_nodejs_dir^: %npm_in_nodejs_dir%
|
|
82
|
+
:: Set boolean whether the update has to happen
|
|
83
|
+
SET "needs_patch="
|
|
84
|
+
IF DEFINED NODE_RUNTIME_VERSION (
|
|
85
|
+
ECHO NODE_RUNTIME_VERSION_REDUCED^: %NODE_RUNTIME_VERSION:~0,1%
|
|
86
|
+
IF "%NODE_RUNTIME_VERSION:~0,1%"=="5" SET "needs_patch=y"
|
|
87
|
+
IF "%NODE_RUNTIME_VERSION:~0,1%"=="6" SET "needs_patch=y"
|
|
88
|
+
)
|
|
89
|
+
:: Check if electron and install
|
|
90
|
+
ECHO NODE_RUNTIME^: %NODE_RUNTIME%
|
|
91
|
+
IF DEFINED needs_patch CALL npm install --prefix %npm_in_nodejs_dir% node-gyp@6.x
|
|
92
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
93
|
+
ECHO ===== conditional node-gyp upgrade END ============
|
|
94
|
+
|
|
95
|
+
:: install node-gyp v6.1
|
|
96
|
+
ECHO ===== install node-gyp v6.1 ============
|
|
97
|
+
CALL npm install -g node-gyp
|
|
98
|
+
REM SET npm_config_node_gyp=C:\Users\appveyor\AppData\Roaming\npm\node-gyp
|
|
99
|
+
SET npm_config_node_gyp=C:\Users\appveyor\AppData\Roaming\npm\node_modules\node-gyp\bin\node-gyp.js
|
|
100
|
+
ECHO ===== install node-gyp v6.1 completed ============
|
|
101
|
+
|
|
102
|
+
:: build Ziti C-SDK
|
|
103
|
+
CALL git submodule update --init --recursive
|
|
104
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
105
|
+
CALL cd deps
|
|
106
|
+
CALL cd ziti-sdk-c
|
|
107
|
+
CALL git submodule update --init --recursive
|
|
108
|
+
ECHO ===== starting make sequence... ============
|
|
109
|
+
CALL mkdir build
|
|
110
|
+
CALL cd build
|
|
111
|
+
|
|
112
|
+
ECHO ===== calling cmake -G Ninja ============
|
|
113
|
+
CALL cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release -DCMAKE_VERBOSE_MAKEFILE=OFF -G "NMake Makefiles" ..
|
|
114
|
+
|
|
115
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
116
|
+
ECHO ===== calling cmake --build ============
|
|
117
|
+
CALL nmake ziti
|
|
118
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
119
|
+
CALL cd ..
|
|
120
|
+
CALL cd ..
|
|
121
|
+
CALL cd ..
|
|
122
|
+
|
|
123
|
+
:: build Ziti NodeJS-SDK
|
|
124
|
+
ECHO ===== calling npm install --build-from-source ============
|
|
125
|
+
CALL npm install --build-from-source --cd=%CD% --msvs_version=%msvs_version% %TOOLSET_ARGS%
|
|
126
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
127
|
+
|
|
128
|
+
:: test our module
|
|
129
|
+
CALL node tests/hello.js
|
|
130
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
131
|
+
|
|
132
|
+
FOR /F "tokens=*" %%i in ('"CALL node_modules\.bin\node-pre-gyp reveal module %TOOLSET_ARGS% --silent"') DO SET MODULE=%%i
|
|
133
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
134
|
+
FOR /F "tokens=*" %%i in ('node -e "console.log(process.execPath)"') DO SET NODE_EXE=%%i
|
|
135
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
136
|
+
|
|
137
|
+
dumpbin /DEPENDENTS "%NODE_EXE%"
|
|
138
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
139
|
+
dumpbin /DEPENDENTS "%MODULE%"
|
|
140
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
141
|
+
|
|
142
|
+
|
|
143
|
+
IF "%NODE_RUNTIME%"=="electron" GOTO CHECK_ELECTRON_TEST_ERRORLEVEL
|
|
144
|
+
|
|
145
|
+
::skipping check for errorlevel npm test result when using io.js
|
|
146
|
+
::@springmeyer: how to proceed?
|
|
147
|
+
IF NOT "%nodejs_version%"=="1.8.1" IF NOT "%nodejs_version%"=="2.0.0" GOTO CHECK_NPM_TEST_ERRORLEVEL
|
|
148
|
+
|
|
149
|
+
ECHO test our module
|
|
150
|
+
CALL node tests/hello.js
|
|
151
|
+
ECHO ==========================================
|
|
152
|
+
ECHO ==========================================
|
|
153
|
+
ECHO ==========================================
|
|
154
|
+
|
|
155
|
+
GOTO NPM_TEST_FINISHED
|
|
156
|
+
|
|
157
|
+
|
|
158
|
+
:CHECK_ELECTRON_TEST_ERRORLEVEL
|
|
159
|
+
ECHO installing electron
|
|
160
|
+
CALL npm install -g "electron@%NODE_RUNTIME_VERSION%"
|
|
161
|
+
ECHO installing electron-mocha
|
|
162
|
+
IF "%nodejs_version%" LEQ 6 CALL npm install -g "electron-mocha@7"
|
|
163
|
+
IF "%nodejs_version%" GTR 6 CALL npm install -g "electron-mocha"
|
|
164
|
+
ECHO preparing tests
|
|
165
|
+
CALL electron "test/support/createdb-electron.js"
|
|
166
|
+
DEL "test\support\createdb-electron.js"
|
|
167
|
+
ECHO calling electron-mocha
|
|
168
|
+
CALL electron-mocha -R spec --timeout 480000
|
|
169
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
170
|
+
GOTO NPM_TEST_FINISHED
|
|
171
|
+
|
|
172
|
+
|
|
173
|
+
:CHECK_NPM_TEST_ERRORLEVEL
|
|
174
|
+
ECHO calling npm test
|
|
175
|
+
CALL npm test
|
|
176
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
177
|
+
|
|
178
|
+
:NPM_TEST_FINISHED
|
|
179
|
+
ECHO packaging for node-gyp
|
|
180
|
+
CALL node_modules\.bin\node-pre-gyp package %TOOLSET_ARGS%
|
|
181
|
+
::make commit message env var shorter
|
|
182
|
+
SET CM=%APPVEYOR_REPO_COMMIT_MESSAGE%
|
|
183
|
+
IF NOT "%CM%" == "%CM:[publish binary]=%" (ECHO publishing && CALL node_modules\.bin\node-pre-gyp --msvs_version=%msvs_version% publish %TOOLSET_ARGS%) ELSE (ECHO not publishing)
|
|
184
|
+
IF %ERRORLEVEL% NEQ 0 GOTO ERROR
|
|
185
|
+
|
|
186
|
+
GOTO DONE
|
|
187
|
+
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
:ERROR
|
|
191
|
+
ECHO ~~~~~~~~~~~~~~~~~~~~~~ ERROR %~f0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
192
|
+
ECHO ERRORLEVEL^: %ERRORLEVEL%
|
|
193
|
+
SET EL=%ERRORLEVEL%
|
|
194
|
+
|
|
195
|
+
:DONE
|
|
196
|
+
ECHO ~~~~~~~~~~~~~~~~~~~~~~ DONE %~f0 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
197
|
+
|
|
198
|
+
EXIT /b %EL%
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
do_node_install() {
|
|
4
|
+
# if an existing nvm is already installed we need to unload it
|
|
5
|
+
nvm unload || true
|
|
6
|
+
|
|
7
|
+
# here we set up the node version on the fly based on the matrix value.
|
|
8
|
+
# This is done manually so that the build works the same on OS X
|
|
9
|
+
rm -rf ./__nvm/ && git clone --depth 1 https://github.com/creationix/nvm.git ./__nvm
|
|
10
|
+
source ./__nvm/nvm.sh
|
|
11
|
+
nvm install ${NODE_VERSION}
|
|
12
|
+
nvm use --delete-prefix ${NODE_VERSION}
|
|
13
|
+
which node
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
do_win_node_install() {
|
|
17
|
+
# # install NVS
|
|
18
|
+
# choco install nvs
|
|
19
|
+
|
|
20
|
+
# Install NVS.
|
|
21
|
+
export NVS_HOME="$HOME/.nvs"
|
|
22
|
+
git clone https://github.com/jasongin/nvs "$NVS_HOME"
|
|
23
|
+
export NVS_EXECUTE=1
|
|
24
|
+
. "$NVS_HOME/nvs.sh" install
|
|
25
|
+
|
|
26
|
+
echo "DEBUG 1: check nvs version"
|
|
27
|
+
nvs --version
|
|
28
|
+
echo "DEBUG 1: done"
|
|
29
|
+
|
|
30
|
+
echo "DEBUG 2: do nvs add"
|
|
31
|
+
nvs add node/${NODE_VERSION}
|
|
32
|
+
echo "DEBUG 2: done"
|
|
33
|
+
|
|
34
|
+
echo "DEBUG 3: do nvs use"
|
|
35
|
+
"$NVS_HOME/nvs.sh" use node/${NODE_VERSION}
|
|
36
|
+
$PATH += ~/.nvs/node/${NODE_VERSION}/x64
|
|
37
|
+
echo "DEBUG 3: done"
|
|
38
|
+
|
|
39
|
+
echo "DEBUG 4: do nvs link"
|
|
40
|
+
"$NVS_HOME/nvs.sh" link node/${NODE_VERSION}
|
|
41
|
+
echo "DEBUG 4: done"
|
|
42
|
+
|
|
43
|
+
echo "DEBUG 5: do node --version"
|
|
44
|
+
node --version
|
|
45
|
+
echo "DEBUG 5: done"
|
|
46
|
+
|
|
47
|
+
echo "DEBUG 6: do npm --version"
|
|
48
|
+
npm --version
|
|
49
|
+
echo "DEBUG 6: done"
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
# ls -l ${LOCALAPPDATA}/nvs
|
|
53
|
+
|
|
54
|
+
# # Install the selected version of Node.js using NVS.
|
|
55
|
+
# ${LOCALAPPDATA}/nvs/nvs.cmd add ${NODE_VERSION}
|
|
56
|
+
# ${LOCALAPPDATA}/nvs/nvs.cmd use ${NODE_VERSION}
|
|
57
|
+
# ${LOCALAPPDATA}/nvs/nvs.cmd link ${NODE_VERSION}
|
|
58
|
+
|
|
59
|
+
# export PATH=${LOCALAPPDATA}/nvs/default/:$PATH
|
|
60
|
+
|
|
61
|
+
# echo "after nvs, PATH is now: $PATH"
|
|
62
|
+
|
|
63
|
+
# ls -l ${LOCALAPPDATA}/nvs/default/node_modules/npm/bin
|
|
64
|
+
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
if [[ ${1:-false} == 'false' ]]; then
|
|
68
|
+
echo "Error: pass node version as first argument"
|
|
69
|
+
exit 1
|
|
70
|
+
fi
|
|
71
|
+
|
|
72
|
+
NODE_VERSION=$1
|
|
73
|
+
|
|
74
|
+
echo "OSTYPE is: $OSTYPE"
|
|
75
|
+
|
|
76
|
+
if [[ "$OSTYPE" == "linux-gnu" ]]; then
|
|
77
|
+
echo "OSTYPE is supported";
|
|
78
|
+
do_node_install;
|
|
79
|
+
elif [[ "$OSTYPE" == "darwin"* ]]; then
|
|
80
|
+
echo "OSTYPE is supported";
|
|
81
|
+
do_node_install;
|
|
82
|
+
elif [[ "$OSTYPE" == "cygwin" ]]; then
|
|
83
|
+
# POSIX compatibility layer and Linux environment emulation for Windows
|
|
84
|
+
echo "OSTYPE is supported";
|
|
85
|
+
do_win_node_install;
|
|
86
|
+
elif [[ "$OSTYPE" == "msys" ]]; then
|
|
87
|
+
# Lightweight shell and GNU utilities compiled for Windows (part of MinGW)
|
|
88
|
+
echo "OSTYPE is supported";
|
|
89
|
+
# do_win_node_install;
|
|
90
|
+
do_node_install;
|
|
91
|
+
elif [[ "$OSTYPE" == "win32" ]]; then
|
|
92
|
+
# I'm not sure this can happen.
|
|
93
|
+
echo "OSTYPE is unsupported";
|
|
94
|
+
elif [[ "$OSTYPE" == "freebsd"* ]]; then
|
|
95
|
+
echo "OSTYPE is supported";
|
|
96
|
+
do_node_install;
|
|
97
|
+
else
|
|
98
|
+
echo "OSTYPE is unsupported";
|
|
99
|
+
fi
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
set -u
|
|
4
|
+
|
|
5
|
+
# let's catch the case where we tag but
|
|
6
|
+
# forget to increment the package.json version
|
|
7
|
+
|
|
8
|
+
# check if we are on a tag
|
|
9
|
+
if [ `git describe --tags --always HEAD` ]; then
|
|
10
|
+
echo 'looks like we are on a tag'
|
|
11
|
+
if [[ $TRAVIS_BRANCH == `git describe --tags --always HEAD` ]]; then
|
|
12
|
+
echo 'git reports the same tag as travis'
|
|
13
|
+
# now check to make sure package.json `version` matches
|
|
14
|
+
MODULE_VERSION=$(node -e "console.log(require('./package.json').version)")
|
|
15
|
+
if [[ $MODULE_VERSION != $TRAVIS_BRANCH ]] && [[ v$MODULE_VERSION != $TRAVIS_BRANCH ]]; then
|
|
16
|
+
echo "package.json version ($MODULE_VERSION) does not match tag ($TRAVIS_BRANCH)"
|
|
17
|
+
exit 1
|
|
18
|
+
else
|
|
19
|
+
echo "Validation success: package.json ($MODULE_VERSION) matches tag ($TRAVIS_BRANCH)"
|
|
20
|
+
fi
|
|
21
|
+
else
|
|
22
|
+
echo "warning: travis thinks the tag ($TRAVIS_BRANCH) differs from git (`git describe --tags --always HEAD`)"
|
|
23
|
+
fi
|
|
24
|
+
fi
|