@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.
Files changed (42) hide show
  1. package/.github/workflows/build.yml +220 -0
  2. package/.github/workflows/codeql-analysis.yml +71 -0
  3. package/.github/workflows/mattermost-ziti-webhook.yml +26 -0
  4. package/.gitmodules +4 -0
  5. package/.travis.yml-obsolete +99 -0
  6. package/CODE_OF_CONDUCT.md +17 -0
  7. package/CONTRIBUTING.md +6 -0
  8. package/LICENSE +201 -0
  9. package/README.md +155 -0
  10. package/appveyor.yml-obsolete +32 -0
  11. package/binding.gyp +227 -0
  12. package/lib/index.js +17 -0
  13. package/lib/ziti.js +40 -0
  14. package/package.json +56 -0
  15. package/scripts/build-appveyor.bat +198 -0
  16. package/scripts/install_node.sh +99 -0
  17. package/scripts/validate_tag.sh +24 -0
  18. package/src/Ziti_https_request.c +960 -0
  19. package/src/Ziti_https_request_data.c +250 -0
  20. package/src/Ziti_https_request_end.c +79 -0
  21. package/src/stack_traces.c +334 -0
  22. package/src/utils.c +108 -0
  23. package/src/utils.h +85 -0
  24. package/src/ziti-add-on.c +88 -0
  25. package/src/ziti-nodejs.h +209 -0
  26. package/src/ziti_close.c +79 -0
  27. package/src/ziti_dial.c +375 -0
  28. package/src/ziti_enroll.c +245 -0
  29. package/src/ziti_hello.c +52 -0
  30. package/src/ziti_init.c +315 -0
  31. package/src/ziti_service_available.c +222 -0
  32. package/src/ziti_shutdown.c +47 -0
  33. package/src/ziti_websocket_connect.c +458 -0
  34. package/src/ziti_websocket_write.c +235 -0
  35. package/src/ziti_write.c +223 -0
  36. package/tests/enroll-test.js +38 -0
  37. package/tests/hello.js +12 -0
  38. package/tests/https-test.js +206 -0
  39. package/tests/mattermost-test.js +124 -0
  40. package/tests/websocket-test.js +119 -0
  41. package/ziti.js +1 -0
  42. 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