pinggy 0.2.3 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/.github/workflows/publish-binaries.yml +102 -107
  2. package/Makefile +2 -2
  3. package/dist/index.cjs +1202 -984
  4. package/dist/index.d.cts +30 -10
  5. package/dist/index.d.ts +30 -10
  6. package/dist/index.js +1171 -199
  7. package/ent.plist +14 -0
  8. package/package.json +31 -14
  9. package/scripts/pre_pkg_processing.js +74 -0
  10. package/src/cli/buildConfig.ts +10 -13
  11. package/src/cli/defaults.ts +1 -2
  12. package/src/cli/{starCli.tsx → starCli.ts} +51 -80
  13. package/src/index.ts +0 -6
  14. package/src/remote_management/handler.ts +3 -1
  15. package/src/remote_management/remoteManagement.ts +0 -3
  16. package/src/remote_management/remote_schema.ts +11 -10
  17. package/src/tui/blessed/TunnelTui.ts +298 -0
  18. package/src/tui/blessed/components/DisplayUpdaters.ts +118 -0
  19. package/src/tui/blessed/components/KeyBindings.ts +134 -0
  20. package/src/tui/blessed/components/Modals.ts +216 -0
  21. package/src/tui/blessed/components/UIComponents.ts +306 -0
  22. package/src/tui/blessed/components/index.ts +4 -0
  23. package/src/tui/blessed/headerFetcher.ts +35 -0
  24. package/src/tui/blessed/index.ts +2 -0
  25. package/src/tui/blessed/qrCodeGenerator.ts +20 -0
  26. package/src/tui/blessed/webDebuggerConnection.ts +100 -0
  27. package/src/tui/{hooks → ink/hooks}/useReqResHeaders.ts +1 -1
  28. package/src/tui/{hooks → ink/hooks}/useWebDebugger.ts +2 -2
  29. package/src/tui/{index.tsx → ink/index.tsx} +12 -2
  30. package/src/tui/spinner/spinner.ts +64 -0
  31. package/src/tunnel_manager/TunnelManager.ts +158 -79
  32. package/src/types.ts +2 -0
  33. package/src/utils/printer.ts +15 -21
  34. package/src/utils/util.ts +5 -0
  35. package/tsconfig.json +1 -1
  36. package/dist/tui-AZUFY7T2.js +0 -584
  37. package/src/utils/esmOnlyPackageLoader.ts +0 -29
  38. /package/src/tui/{asciArt.ts → ink/asciArt.ts} +0 -0
  39. /package/src/tui/{hooks → ink/hooks}/useQrCodes.ts +0 -0
  40. /package/src/tui/{hooks → ink/hooks}/useTerminalSize.ts +0 -0
  41. /package/src/tui/{hooks → ink/hooks}/useTerminalStats.ts +0 -0
  42. /package/src/tui/{layout → ink/layout}/Borders.tsx +0 -0
  43. /package/src/tui/{layout → ink/layout}/Container.tsx +0 -0
  44. /package/src/tui/{sections → ink/sections}/DebuggerDetailModal.tsx +0 -0
  45. /package/src/tui/{sections → ink/sections}/KeyBindings.tsx +0 -0
  46. /package/src/tui/{sections → ink/sections}/QrCodeSection.tsx +0 -0
  47. /package/src/tui/{sections → ink/sections}/StatsSection.tsx +0 -0
  48. /package/src/tui/{sections → ink/sections}/URLsSection.tsx +0 -0
  49. /package/src/tui/{utils → ink/utils}/utils.ts +0 -0
@@ -4,6 +4,10 @@ on:
4
4
  release:
5
5
  types: [created]
6
6
 
7
+ env:
8
+ RELEASE_TAG: ${{ github.event.release.tag_name }}
9
+
10
+
7
11
  jobs:
8
12
  Ubuntu:
9
13
  name: Build on ${{ matrix.name }} and upload to GitHub Release
@@ -33,90 +37,26 @@ jobs:
33
37
  - name: Build (tsup)
34
38
  run: npm run build
35
39
 
36
- - name: Run caxa build to produce `bin/`
37
- run: make pack
40
+ - name: Run pkg build for x64
41
+ if: ${{ matrix.name == 'Ubuntu-x64' }}
42
+ run: npm run pack:linux-x64
38
43
 
39
- - name: Import Code Signing Certificate
40
- env:
41
- MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
42
- MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
43
- run: |
44
- # Create temporary keychain
45
- KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
46
- KEYCHAIN_PASSWORD=$(openssl rand -base64 32)
47
-
48
- # Decode certificate and import to keychain
49
- echo "$MACOS_CERTIFICATE" | base64 --decode > certificate.p12
50
- security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
51
- security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH"
52
- security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
53
- security import certificate.p12 -k "$KEYCHAIN_PATH" -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
54
- security list-keychain -d user -s "$KEYCHAIN_PATH"
55
- security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
56
-
57
- # Clean up certificate file
58
- rm certificate.p12
59
-
60
- - name: Code Sign Binary
61
- env:
62
- DEVELOPER_ID: ${{ secrets.MACOS_DEVELOPER_ID }}
63
- run: |
64
- FILE=$(ls bin)
65
- echo "Code signing: $FILE"
66
- codesign --force --options runtime --sign "$DEVELOPER_ID" --timestamp "bin/$FILE"
67
- codesign --verify --verbose "bin/$FILE"
68
-
69
- - name: Notarize Binary (Optional)
70
- env:
71
- APPLE_ID: ${{ secrets.APPLE_ID }}
72
- APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
73
- APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
74
- run: |
75
- FILE=$(ls bin)
76
-
77
- # Create a zip for notarization
78
- ditto -c -k --keepParent "bin/$FILE" "bin/$FILE.zip"
79
-
80
- # Submit for notarization
81
- xcrun notarytool submit "bin/$FILE.zip" \
82
- --apple-id "$APPLE_ID" \
83
- --password "$APPLE_APP_SPECIFIC_PASSWORD" \
84
- --team-id "$APPLE_TEAM_ID" \
85
- --wait
86
-
87
- # Remove zip file
88
- rm "bin/$FILE.zip"
89
-
90
- echo "Notarization complete"
44
+ - name: Run pkg build for arm64
45
+ if: ${{ matrix.name == 'Ubuntu-arm64' }}
46
+ run: npm run pack:linux-arm64
91
47
 
92
- - name: Show bin directory
93
- run: ls -R ./bin
48
+ - name: Show out directory
49
+ run: ls -R ./out
94
50
 
95
51
  - name: Upload artifact to GitHub Release
96
52
  env:
97
53
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
98
54
  shell: bash
99
55
  run: |
100
- VERSION=$(git describe --tags --always)
101
-
102
- # Extract the single generated file (e.g., pinggy-linux-x64)
103
- FILE=$(ls bin)
104
-
105
- echo "Detected build artifact: $FILE"
106
-
107
- # Create release if not exists
108
- gh release create "$VERSION" --notes "Release $VERSION" --title "$VERSION" || true
109
-
110
- echo "Uploading $FILE to GitHub Release…"
111
- gh release upload "$VERSION" "bin/$FILE" --clobber
112
-
113
- - name: Cleanup Keychain
114
- if: always()
115
- run: |
116
- KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
117
- if [ -f "$KEYCHAIN_PATH" ]; then
118
- security delete-keychain "$KEYCHAIN_PATH"
119
- fi
56
+ for FILE in out/*; do
57
+ echo "Uploading $FILE"
58
+ gh release upload "$RELEASE_TAG" "$FILE" --clobber
59
+ done
120
60
 
121
61
  Windows:
122
62
  name: Build on ${{ matrix.name }} and upload
@@ -150,29 +90,26 @@ jobs:
150
90
  - name: Build (tsup)
151
91
  run: npm run build
152
92
 
153
- - name: Run caxa build to produce `bin/`
154
- run: make pack
93
+ - name: Run pkg build for x64
94
+ if: ${{ matrix.name == 'Windows-x64' }}
95
+ run: npm run pack:win-x64
96
+
97
+ - name: Run pkg build for arm64
98
+ if: ${{ matrix.name == 'Windows-arm64' }}
99
+ run: npm run pack:win-arm64
155
100
 
156
- - name: See bin directory
157
- run: ls -R ./bin
101
+ - name: See out directory
102
+ run: ls -R ./out
158
103
 
159
104
  - name: Upload artifact to GitHub Release
160
105
  env:
161
106
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
162
107
  shell: bash
163
108
  run: |
164
- VERSION=$(git describe --tags --always)
165
-
166
- # Extract the single generated file (e.g., pinggy-windows-x64)
167
- FILE=$(ls bin)
168
-
169
- echo "Detected build artifact: $FILE"
170
-
171
- # Create release if not exists
172
- gh release create "$VERSION" --notes "Release $VERSION" --title "$VERSION" || true
173
-
174
- echo "Uploading $FILE to GitHub Release…"
175
- gh release upload "$VERSION" "bin/$FILE" --clobber
109
+ for FILE in out/*; do
110
+ echo "Uploading $FILE"
111
+ gh release upload "$RELEASE_TAG" "$FILE" --clobber
112
+ done
176
113
 
177
114
 
178
115
  MacOS:
@@ -203,26 +140,84 @@ jobs:
203
140
  - name: Build (tsup)
204
141
  run: npm run build
205
142
 
206
- - name: Run caxa build to produce `bin/`
207
- run: make pack
143
+ - name: Run pkg build for x64
144
+ if: ${{ matrix.name == 'MacOS-x64' }}
145
+ run: npm run pack:macos-x64
146
+
147
+ - name: Run pkg build for arm64
148
+ if: ${{ matrix.name == 'MacOS-arm64' }}
149
+ run: npm run pack:macos-arm64
150
+
151
+ - name: Import Code Signing Certificate
152
+ env:
153
+ MACOS_CERTIFICATE: ${{ secrets.MACOS_CERTIFICATE }}
154
+ MACOS_CERTIFICATE_PWD: ${{ secrets.MACOS_CERTIFICATE_PWD }}
155
+ run: |
156
+ # Create temporary keychain
157
+ KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
158
+ KEYCHAIN_PASSWORD=$(openssl rand -base64 32)
159
+
160
+ # Decode certificate and import to keychain
161
+ echo "$MACOS_CERTIFICATE" | base64 --decode > certificate.p12
162
+ security create-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
163
+ security set-keychain-settings -lut 21600 "$KEYCHAIN_PATH"
164
+ security unlock-keychain -p "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
165
+ security import certificate.p12 -k "$KEYCHAIN_PATH" -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign
166
+ security list-keychain -d user -s "$KEYCHAIN_PATH"
167
+ security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$KEYCHAIN_PASSWORD" "$KEYCHAIN_PATH"
168
+
169
+ # Clean up certificate file
170
+ rm certificate.p12
208
171
 
209
- - name: See bin directory
210
- run: ls -R ./bin
172
+ - name: Code Sign Binary
173
+ env:
174
+ DEVELOPER_ID: ${{ secrets.MACOS_DEVELOPER_ID }}
175
+ run: |
176
+ FILE=$(ls out)
177
+ echo "Code signing: $FILE"
178
+ codesign --deep --force --options runtime --sign "$DEVELOPER_ID" --timestamp --entitlements ent.plist "out/$FILE"
179
+ codesign --verify --verbose "out/$FILE"
180
+
181
+ - name: Notarize Binary (Optional)
182
+ env:
183
+ APPLE_ID: ${{ secrets.APPLE_ID }}
184
+ APPLE_APP_SPECIFIC_PASSWORD: ${{ secrets.APPLE_APP_SPECIFIC_PASSWORD }}
185
+ APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
186
+ run: |
187
+ FILE=$(ls out)
188
+
189
+ # Create a zip for notarization
190
+ ditto -c -k --keepParent "out/$FILE" "out/$FILE.zip"
191
+
192
+ # Submit for notarization
193
+ xcrun notarytool submit "out/$FILE.zip" \
194
+ --apple-id "$APPLE_ID" \
195
+ --password "$APPLE_APP_SPECIFIC_PASSWORD" \
196
+ --team-id "$APPLE_TEAM_ID" \
197
+ --wait
198
+
199
+ # Remove zip file
200
+ rm "out/$FILE.zip"
201
+
202
+ echo "Notarization complete"
203
+
204
+ - name: See out directory
205
+ run: ls -R ./out
211
206
 
212
207
  - name: Upload artifact to GitHub Release
213
208
  env:
214
209
  GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
215
210
  shell: bash
216
211
  run: |
217
- VERSION=$(git describe --tags --always)
218
-
219
- # Get the file in bin/ (e.g., pinggy-macos-x64)
220
- FILE=$(ls bin)
221
- echo "Detected build artifact: $FILE"
222
-
223
- # Create release if it does not exist
224
- gh release create "$VERSION" --notes "Release $VERSION" --title "$VERSION" || true
225
-
226
- echo "Uploading $FILE to GitHub Release…"
227
- gh release upload "$VERSION" "bin/$FILE" --clobber
212
+ for FILE in out/*; do
213
+ echo "Uploading $FILE"
214
+ gh release upload "$RELEASE_TAG" "$FILE" --clobber
215
+ done
228
216
 
217
+ - name: Cleanup Keychain
218
+ if: always()
219
+ run: |
220
+ KEYCHAIN_PATH=$RUNNER_TEMP/app-signing.keychain-db
221
+ if [ -f "$KEYCHAIN_PATH" ]; then
222
+ security delete-keychain "$KEYCHAIN_PATH"
223
+ fi
package/Makefile CHANGED
@@ -1,4 +1,4 @@
1
1
  pack:
2
- node caxa_build.js
2
+ npm run pack:all
3
3
  clean:
4
- rm -rf bin
4
+ rm -rf out