superacli 1.1.5 → 1.1.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.
Files changed (191) hide show
  1. package/__tests__/resend-plugin.test.js +22 -1
  2. package/package.json +1 -1
  3. package/plugins/plugins.json +2 -2
  4. package/plugins/resend/plugin.json +279 -2
  5. package/plugins/resend/skills/quickstart/SKILL.md +32 -13
  6. package/temp_resend_cli/repo/.github/scripts/pr-title-check.js +34 -0
  7. package/temp_resend_cli/repo/.github/workflows/ci.yml +67 -0
  8. package/temp_resend_cli/repo/.github/workflows/post-release.yml +51 -0
  9. package/temp_resend_cli/repo/.github/workflows/pr-title-check.yml +13 -0
  10. package/temp_resend_cli/repo/.github/workflows/release.yml +175 -0
  11. package/temp_resend_cli/repo/.github/workflows/test-install-unix.yml +34 -0
  12. package/temp_resend_cli/repo/.github/workflows/test-install-windows.yml +48 -0
  13. package/temp_resend_cli/repo/CHANGELOG.md +31 -0
  14. package/temp_resend_cli/repo/LICENSE +21 -0
  15. package/temp_resend_cli/repo/README.md +450 -0
  16. package/temp_resend_cli/repo/biome.json +36 -0
  17. package/temp_resend_cli/repo/install.ps1 +141 -0
  18. package/temp_resend_cli/repo/install.sh +301 -0
  19. package/temp_resend_cli/repo/package.json +61 -0
  20. package/temp_resend_cli/repo/pnpm-lock.yaml +2439 -0
  21. package/temp_resend_cli/repo/renovate.json +4 -0
  22. package/temp_resend_cli/repo/src/cli.ts +98 -0
  23. package/temp_resend_cli/repo/src/commands/api-keys/create.ts +114 -0
  24. package/temp_resend_cli/repo/src/commands/api-keys/delete.ts +47 -0
  25. package/temp_resend_cli/repo/src/commands/api-keys/index.ts +26 -0
  26. package/temp_resend_cli/repo/src/commands/api-keys/list.ts +35 -0
  27. package/temp_resend_cli/repo/src/commands/api-keys/utils.ts +8 -0
  28. package/temp_resend_cli/repo/src/commands/auth/index.ts +20 -0
  29. package/temp_resend_cli/repo/src/commands/auth/login.ts +234 -0
  30. package/temp_resend_cli/repo/src/commands/auth/logout.ts +105 -0
  31. package/temp_resend_cli/repo/src/commands/broadcasts/create.ts +196 -0
  32. package/temp_resend_cli/repo/src/commands/broadcasts/delete.ts +46 -0
  33. package/temp_resend_cli/repo/src/commands/broadcasts/get.ts +59 -0
  34. package/temp_resend_cli/repo/src/commands/broadcasts/index.ts +43 -0
  35. package/temp_resend_cli/repo/src/commands/broadcasts/list.ts +60 -0
  36. package/temp_resend_cli/repo/src/commands/broadcasts/send.ts +56 -0
  37. package/temp_resend_cli/repo/src/commands/broadcasts/update.ts +95 -0
  38. package/temp_resend_cli/repo/src/commands/broadcasts/utils.ts +35 -0
  39. package/temp_resend_cli/repo/src/commands/contact-properties/create.ts +118 -0
  40. package/temp_resend_cli/repo/src/commands/contact-properties/delete.ts +48 -0
  41. package/temp_resend_cli/repo/src/commands/contact-properties/get.ts +46 -0
  42. package/temp_resend_cli/repo/src/commands/contact-properties/index.ts +48 -0
  43. package/temp_resend_cli/repo/src/commands/contact-properties/list.ts +68 -0
  44. package/temp_resend_cli/repo/src/commands/contact-properties/update.ts +88 -0
  45. package/temp_resend_cli/repo/src/commands/contact-properties/utils.ts +17 -0
  46. package/temp_resend_cli/repo/src/commands/contacts/add-segment.ts +78 -0
  47. package/temp_resend_cli/repo/src/commands/contacts/create.ts +122 -0
  48. package/temp_resend_cli/repo/src/commands/contacts/delete.ts +49 -0
  49. package/temp_resend_cli/repo/src/commands/contacts/get.ts +53 -0
  50. package/temp_resend_cli/repo/src/commands/contacts/index.ts +58 -0
  51. package/temp_resend_cli/repo/src/commands/contacts/list.ts +57 -0
  52. package/temp_resend_cli/repo/src/commands/contacts/remove-segment.ts +48 -0
  53. package/temp_resend_cli/repo/src/commands/contacts/segments.ts +39 -0
  54. package/temp_resend_cli/repo/src/commands/contacts/topics.ts +45 -0
  55. package/temp_resend_cli/repo/src/commands/contacts/update-topics.ts +90 -0
  56. package/temp_resend_cli/repo/src/commands/contacts/update.ts +77 -0
  57. package/temp_resend_cli/repo/src/commands/contacts/utils.ts +119 -0
  58. package/temp_resend_cli/repo/src/commands/doctor.ts +216 -0
  59. package/temp_resend_cli/repo/src/commands/domains/create.ts +83 -0
  60. package/temp_resend_cli/repo/src/commands/domains/delete.ts +42 -0
  61. package/temp_resend_cli/repo/src/commands/domains/get.ts +47 -0
  62. package/temp_resend_cli/repo/src/commands/domains/index.ts +35 -0
  63. package/temp_resend_cli/repo/src/commands/domains/list.ts +53 -0
  64. package/temp_resend_cli/repo/src/commands/domains/update.ts +75 -0
  65. package/temp_resend_cli/repo/src/commands/domains/utils.ts +44 -0
  66. package/temp_resend_cli/repo/src/commands/domains/verify.ts +38 -0
  67. package/temp_resend_cli/repo/src/commands/emails/batch.ts +140 -0
  68. package/temp_resend_cli/repo/src/commands/emails/get.ts +44 -0
  69. package/temp_resend_cli/repo/src/commands/emails/index.ts +30 -0
  70. package/temp_resend_cli/repo/src/commands/emails/list.ts +84 -0
  71. package/temp_resend_cli/repo/src/commands/emails/receiving/attachment.ts +55 -0
  72. package/temp_resend_cli/repo/src/commands/emails/receiving/attachments.ts +68 -0
  73. package/temp_resend_cli/repo/src/commands/emails/receiving/get.ts +58 -0
  74. package/temp_resend_cli/repo/src/commands/emails/receiving/index.ts +28 -0
  75. package/temp_resend_cli/repo/src/commands/emails/receiving/list.ts +59 -0
  76. package/temp_resend_cli/repo/src/commands/emails/receiving/utils.ts +38 -0
  77. package/temp_resend_cli/repo/src/commands/emails/send.ts +189 -0
  78. package/temp_resend_cli/repo/src/commands/open.ts +27 -0
  79. package/temp_resend_cli/repo/src/commands/segments/create.ts +50 -0
  80. package/temp_resend_cli/repo/src/commands/segments/delete.ts +47 -0
  81. package/temp_resend_cli/repo/src/commands/segments/get.ts +38 -0
  82. package/temp_resend_cli/repo/src/commands/segments/index.ts +36 -0
  83. package/temp_resend_cli/repo/src/commands/segments/list.ts +58 -0
  84. package/temp_resend_cli/repo/src/commands/segments/utils.ts +7 -0
  85. package/temp_resend_cli/repo/src/commands/teams/index.ts +10 -0
  86. package/temp_resend_cli/repo/src/commands/teams/list.ts +35 -0
  87. package/temp_resend_cli/repo/src/commands/teams/remove.ts +86 -0
  88. package/temp_resend_cli/repo/src/commands/teams/switch.ts +76 -0
  89. package/temp_resend_cli/repo/src/commands/topics/create.ts +73 -0
  90. package/temp_resend_cli/repo/src/commands/topics/delete.ts +47 -0
  91. package/temp_resend_cli/repo/src/commands/topics/get.ts +42 -0
  92. package/temp_resend_cli/repo/src/commands/topics/index.ts +42 -0
  93. package/temp_resend_cli/repo/src/commands/topics/list.ts +34 -0
  94. package/temp_resend_cli/repo/src/commands/topics/update.ts +59 -0
  95. package/temp_resend_cli/repo/src/commands/topics/utils.ts +16 -0
  96. package/temp_resend_cli/repo/src/commands/webhooks/create.ts +128 -0
  97. package/temp_resend_cli/repo/src/commands/webhooks/delete.ts +49 -0
  98. package/temp_resend_cli/repo/src/commands/webhooks/get.ts +42 -0
  99. package/temp_resend_cli/repo/src/commands/webhooks/index.ts +42 -0
  100. package/temp_resend_cli/repo/src/commands/webhooks/list.ts +55 -0
  101. package/temp_resend_cli/repo/src/commands/webhooks/listen.ts +379 -0
  102. package/temp_resend_cli/repo/src/commands/webhooks/update.ts +83 -0
  103. package/temp_resend_cli/repo/src/commands/webhooks/utils.ts +36 -0
  104. package/temp_resend_cli/repo/src/commands/whoami.ts +71 -0
  105. package/temp_resend_cli/repo/src/lib/actions.ts +157 -0
  106. package/temp_resend_cli/repo/src/lib/client.ts +37 -0
  107. package/temp_resend_cli/repo/src/lib/config.ts +217 -0
  108. package/temp_resend_cli/repo/src/lib/files.ts +15 -0
  109. package/temp_resend_cli/repo/src/lib/help-text.ts +38 -0
  110. package/temp_resend_cli/repo/src/lib/output.ts +56 -0
  111. package/temp_resend_cli/repo/src/lib/pagination.ts +36 -0
  112. package/temp_resend_cli/repo/src/lib/prompts.ts +149 -0
  113. package/temp_resend_cli/repo/src/lib/spinner.ts +100 -0
  114. package/temp_resend_cli/repo/src/lib/table.ts +57 -0
  115. package/temp_resend_cli/repo/src/lib/tty.ts +28 -0
  116. package/temp_resend_cli/repo/src/lib/update-check.ts +169 -0
  117. package/temp_resend_cli/repo/src/lib/version.ts +4 -0
  118. package/temp_resend_cli/repo/tests/commands/api-keys/create.test.ts +196 -0
  119. package/temp_resend_cli/repo/tests/commands/api-keys/delete.test.ts +157 -0
  120. package/temp_resend_cli/repo/tests/commands/api-keys/list.test.ts +134 -0
  121. package/temp_resend_cli/repo/tests/commands/auth/login.test.ts +153 -0
  122. package/temp_resend_cli/repo/tests/commands/auth/logout.test.ts +153 -0
  123. package/temp_resend_cli/repo/tests/commands/broadcasts/create.test.ts +454 -0
  124. package/temp_resend_cli/repo/tests/commands/broadcasts/delete.test.ts +183 -0
  125. package/temp_resend_cli/repo/tests/commands/broadcasts/get.test.ts +147 -0
  126. package/temp_resend_cli/repo/tests/commands/broadcasts/list.test.ts +199 -0
  127. package/temp_resend_cli/repo/tests/commands/broadcasts/send.test.ts +162 -0
  128. package/temp_resend_cli/repo/tests/commands/broadcasts/update.test.ts +288 -0
  129. package/temp_resend_cli/repo/tests/commands/contact-properties/create.test.ts +251 -0
  130. package/temp_resend_cli/repo/tests/commands/contact-properties/delete.test.ts +184 -0
  131. package/temp_resend_cli/repo/tests/commands/contact-properties/get.test.ts +145 -0
  132. package/temp_resend_cli/repo/tests/commands/contact-properties/list.test.ts +181 -0
  133. package/temp_resend_cli/repo/tests/commands/contact-properties/update.test.ts +217 -0
  134. package/temp_resend_cli/repo/tests/commands/contacts/add-segment.test.ts +189 -0
  135. package/temp_resend_cli/repo/tests/commands/contacts/create.test.ts +271 -0
  136. package/temp_resend_cli/repo/tests/commands/contacts/delete.test.ts +193 -0
  137. package/temp_resend_cli/repo/tests/commands/contacts/get.test.ts +149 -0
  138. package/temp_resend_cli/repo/tests/commands/contacts/list.test.ts +176 -0
  139. package/temp_resend_cli/repo/tests/commands/contacts/remove-segment.test.ts +167 -0
  140. package/temp_resend_cli/repo/tests/commands/contacts/segments.test.ts +168 -0
  141. package/temp_resend_cli/repo/tests/commands/contacts/topics.test.ts +164 -0
  142. package/temp_resend_cli/repo/tests/commands/contacts/update-topics.test.ts +248 -0
  143. package/temp_resend_cli/repo/tests/commands/contacts/update.test.ts +206 -0
  144. package/temp_resend_cli/repo/tests/commands/doctor.test.ts +164 -0
  145. package/temp_resend_cli/repo/tests/commands/domains/create.test.ts +193 -0
  146. package/temp_resend_cli/repo/tests/commands/domains/delete.test.ts +157 -0
  147. package/temp_resend_cli/repo/tests/commands/domains/get.test.ts +138 -0
  148. package/temp_resend_cli/repo/tests/commands/domains/list.test.ts +165 -0
  149. package/temp_resend_cli/repo/tests/commands/domains/update.test.ts +224 -0
  150. package/temp_resend_cli/repo/tests/commands/domains/verify.test.ts +118 -0
  151. package/temp_resend_cli/repo/tests/commands/emails/batch.test.ts +324 -0
  152. package/temp_resend_cli/repo/tests/commands/emails/get.test.ts +132 -0
  153. package/temp_resend_cli/repo/tests/commands/emails/receiving/attachment.test.ts +141 -0
  154. package/temp_resend_cli/repo/tests/commands/emails/receiving/attachments.test.ts +169 -0
  155. package/temp_resend_cli/repo/tests/commands/emails/receiving/get.test.ts +141 -0
  156. package/temp_resend_cli/repo/tests/commands/emails/receiving/list.test.ts +182 -0
  157. package/temp_resend_cli/repo/tests/commands/emails/send.test.ts +312 -0
  158. package/temp_resend_cli/repo/tests/commands/segments/create.test.ts +164 -0
  159. package/temp_resend_cli/repo/tests/commands/segments/delete.test.ts +183 -0
  160. package/temp_resend_cli/repo/tests/commands/segments/get.test.ts +138 -0
  161. package/temp_resend_cli/repo/tests/commands/segments/list.test.ts +174 -0
  162. package/temp_resend_cli/repo/tests/commands/teams/list.test.ts +62 -0
  163. package/temp_resend_cli/repo/tests/commands/teams/remove.test.ts +110 -0
  164. package/temp_resend_cli/repo/tests/commands/teams/switch.test.ts +103 -0
  165. package/temp_resend_cli/repo/tests/commands/topics/create.test.ts +192 -0
  166. package/temp_resend_cli/repo/tests/commands/topics/delete.test.ts +157 -0
  167. package/temp_resend_cli/repo/tests/commands/topics/get.test.ts +126 -0
  168. package/temp_resend_cli/repo/tests/commands/topics/list.test.ts +125 -0
  169. package/temp_resend_cli/repo/tests/commands/topics/update.test.ts +178 -0
  170. package/temp_resend_cli/repo/tests/commands/webhooks/create.test.ts +225 -0
  171. package/temp_resend_cli/repo/tests/commands/webhooks/delete.test.ts +157 -0
  172. package/temp_resend_cli/repo/tests/commands/webhooks/get.test.ts +126 -0
  173. package/temp_resend_cli/repo/tests/commands/webhooks/list.test.ts +178 -0
  174. package/temp_resend_cli/repo/tests/commands/webhooks/update.test.ts +207 -0
  175. package/temp_resend_cli/repo/tests/commands/whoami.test.ts +98 -0
  176. package/temp_resend_cli/repo/tests/e2e/smoke.test.ts +93 -0
  177. package/temp_resend_cli/repo/tests/helpers.ts +86 -0
  178. package/temp_resend_cli/repo/tests/lib/client.test.ts +71 -0
  179. package/temp_resend_cli/repo/tests/lib/config.test.ts +451 -0
  180. package/temp_resend_cli/repo/tests/lib/files.test.ts +73 -0
  181. package/temp_resend_cli/repo/tests/lib/help-text.test.ts +97 -0
  182. package/temp_resend_cli/repo/tests/lib/output.test.ts +136 -0
  183. package/temp_resend_cli/repo/tests/lib/prompts.test.ts +185 -0
  184. package/temp_resend_cli/repo/tests/lib/spinner.test.ts +166 -0
  185. package/temp_resend_cli/repo/tests/lib/table.test.ts +63 -0
  186. package/temp_resend_cli/repo/tests/lib/tty.test.ts +89 -0
  187. package/temp_resend_cli/repo/tests/lib/update-check.test.ts +179 -0
  188. package/temp_resend_cli/repo/tsconfig.json +14 -0
  189. package/temp_resend_cli/repo/vitest.config.e2e.ts +8 -0
  190. package/temp_resend_cli/repo/vitest.config.ts +10 -0
  191. package/tests/test-resend-smoke.sh +7 -3
@@ -0,0 +1,175 @@
1
+ name: Release
2
+ on:
3
+ push:
4
+ tags:
5
+ - 'v*'
6
+ concurrency:
7
+ group: release
8
+ cancel-in-progress: false
9
+ jobs:
10
+ test-binary:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ include:
15
+ - os: macos-latest
16
+ target: node24-macos-arm64
17
+ binary: dist/resend
18
+ - os: macos-13
19
+ target: node24-macos-x64
20
+ binary: dist/resend
21
+ - os: ubuntu-latest
22
+ target: node24-linux-x64
23
+ binary: dist/resend
24
+ - os: windows-latest
25
+ target: node24-win-x64
26
+ binary: dist/resend.exe
27
+ runs-on: ${{ matrix.os }}
28
+ steps:
29
+ - uses: actions/checkout@v6
30
+
31
+ - uses: pnpm/action-setup@v4
32
+
33
+ - uses: actions/setup-node@v6
34
+ with:
35
+ node-version: 24
36
+ cache: 'pnpm'
37
+
38
+ - name: Install dependencies
39
+ run: pnpm install --frozen-lockfile
40
+
41
+ - name: Build Node bundle
42
+ run: pnpm build
43
+
44
+ - name: Build binary
45
+ run: pnpm exec pkg dist/cli.cjs --compress Brotli --target ${{ matrix.target }} --output ${{ matrix.binary }}
46
+
47
+ - name: Verify binary runs
48
+ run: |
49
+ ${{ matrix.binary }} --version
50
+ ${{ matrix.binary }} --help
51
+
52
+ test-binary-linux-arm64:
53
+ runs-on: ubuntu-latest
54
+ steps:
55
+ - uses: actions/checkout@v6
56
+
57
+ - uses: pnpm/action-setup@v4
58
+
59
+ - uses: actions/setup-node@v6
60
+ with:
61
+ node-version: 24
62
+ cache: 'pnpm'
63
+
64
+ - name: Install dependencies
65
+ run: pnpm install --frozen-lockfile
66
+
67
+ - name: Build Node bundle
68
+ run: pnpm build
69
+
70
+ - name: Build binary
71
+ run: pnpm exec pkg dist/cli.cjs --compress Brotli --target node24-linux-arm64 --output dist/resend
72
+
73
+ - name: Set up QEMU
74
+ uses: docker/setup-qemu-action@v3
75
+ with:
76
+ platforms: arm64
77
+
78
+ - name: Verify binary runs on arm64
79
+ run: |
80
+ docker run --rm --platform linux/arm64 \
81
+ -v "$PWD/dist:/dist" \
82
+ node:24-slim sh -c "/dist/resend --version && /dist/resend --help"
83
+
84
+ release:
85
+ needs: [test-binary, test-binary-linux-arm64]
86
+ permissions:
87
+ contents: write
88
+ runs-on: blacksmith-2vcpu-ubuntu-2204
89
+ steps:
90
+ - uses: actions/checkout@v6
91
+
92
+ - uses: pnpm/action-setup@v4
93
+
94
+ - uses: actions/setup-node@v6
95
+ with:
96
+ node-version: 24
97
+ cache: 'pnpm'
98
+
99
+ - name: Install dependencies
100
+ run: pnpm install --frozen-lockfile
101
+
102
+ - name: Build Node bundle
103
+ run: pnpm build
104
+
105
+ - name: Build binaries
106
+ run: |
107
+ pnpm exec pkg dist/cli.cjs --compress Brotli --target node24-macos-arm64 --output dist/resend-darwin-arm64
108
+ pnpm exec pkg dist/cli.cjs --compress Brotli --target node24-macos-x64 --output dist/resend-darwin-x64
109
+ pnpm exec pkg dist/cli.cjs --compress Brotli --target node24-linux-x64 --output dist/resend-linux-x64
110
+ pnpm exec pkg dist/cli.cjs --compress Brotli --target node24-linux-arm64 --output dist/resend-linux-arm64
111
+ pnpm exec pkg dist/cli.cjs --compress Brotli --target node24-win-x64 --output dist/resend-windows-x64.exe
112
+
113
+ - name: Verify binaries
114
+ run: |
115
+ for f in dist/resend-darwin-arm64 dist/resend-darwin-x64 \
116
+ dist/resend-linux-x64 dist/resend-linux-arm64 \
117
+ dist/resend-windows-x64.exe; do
118
+ [ -s "$f" ] || { echo "Missing or empty: $f"; exit 1; }
119
+ done
120
+
121
+ - name: Package archives
122
+ run: |
123
+ cd dist
124
+ for bin in resend-darwin-arm64 resend-darwin-x64 resend-linux-x64 resend-linux-arm64; do
125
+ cp "$bin" resend
126
+ chmod +x resend
127
+ tar -czf "${bin}.tar.gz" resend
128
+ rm resend
129
+ done
130
+ cp resend-windows-x64.exe resend.exe
131
+ zip resend-windows-x64.zip resend.exe
132
+ rm resend.exe
133
+
134
+ - name: Create GitHub Release
135
+ uses: softprops/action-gh-release@v2
136
+ with:
137
+ generate_release_notes: true
138
+ body: |
139
+ ## Install
140
+
141
+ **macOS / Linux**
142
+ ```sh
143
+ curl -fsSL https://resend.com/install.sh | bash
144
+ ```
145
+
146
+ **Windows (PowerShell)**
147
+ ```pwsh
148
+ irm https://resend.com/install.ps1 | iex
149
+ ```
150
+
151
+ **npx**
152
+ ```sh
153
+ npx resend-cli
154
+ ```
155
+ files: |
156
+ dist/resend-darwin-arm64.tar.gz
157
+ dist/resend-darwin-x64.tar.gz
158
+ dist/resend-linux-x64.tar.gz
159
+ dist/resend-linux-arm64.tar.gz
160
+ dist/resend-windows-x64.zip
161
+
162
+ notify-tap:
163
+ name: Trigger Homebrew Tap Update
164
+ needs: release
165
+ runs-on: ubuntu-latest
166
+ permissions:
167
+ contents: read
168
+ steps:
169
+ - name: Dispatch publish-release workflow on tap
170
+ env:
171
+ GH_TOKEN: ${{ secrets.RELEASE_CLI_ON_HOMEBREW }}
172
+ run: |
173
+ gh workflow run publish-release.yml \
174
+ --repo resend/homebrew-cli \
175
+ --field version="${GITHUB_REF_NAME}"
@@ -0,0 +1,34 @@
1
+ name: Test Unix Installer
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - install.sh
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ test:
11
+ strategy:
12
+ fail-fast: false
13
+ matrix:
14
+ os: [ubuntu-latest, macos-latest]
15
+ runs-on: ${{ matrix.os }}
16
+ steps:
17
+ - uses: actions/checkout@v6
18
+
19
+ - name: Run install.sh from repo
20
+ run: bash install.sh
21
+
22
+ - name: Verify binary exists
23
+ run: |
24
+ exe="$HOME/.resend/bin/resend"
25
+ if [ ! -f "$exe" ]; then
26
+ echo "Binary not found at $exe"
27
+ exit 1
28
+ fi
29
+ echo "Found binary at $exe"
30
+
31
+ - name: Verify binary runs
32
+ run: |
33
+ "$HOME/.resend/bin/resend" --version
34
+ "$HOME/.resend/bin/resend" --help
@@ -0,0 +1,48 @@
1
+ name: Test Windows Installer
2
+
3
+ on:
4
+ pull_request:
5
+ paths:
6
+ - install.ps1
7
+ workflow_dispatch:
8
+
9
+ jobs:
10
+ test:
11
+ runs-on: windows-latest
12
+ steps:
13
+ - uses: actions/checkout@v6
14
+
15
+ - name: Run install.ps1 from repo
16
+ shell: pwsh
17
+ run: .\install.ps1
18
+
19
+ - name: Verify binary exists
20
+ shell: pwsh
21
+ run: |
22
+ $exe = "$env:USERPROFILE\.resend\bin\resend.exe"
23
+ if (-not (Test-Path $exe)) {
24
+ Write-Error "Binary not found at $exe"
25
+ exit 1
26
+ }
27
+ Write-Host "Found binary at $exe"
28
+
29
+ - name: Verify binary runs
30
+ shell: pwsh
31
+ run: |
32
+ $exe = "$env:USERPROFILE\.resend\bin\resend.exe"
33
+ & $exe --version
34
+ if ($LASTEXITCODE -ne 0) {
35
+ Write-Error "resend --version failed"
36
+ exit 1
37
+ }
38
+
39
+ - name: Verify PATH was updated
40
+ shell: pwsh
41
+ run: |
42
+ $binDir = "$env:USERPROFILE\.resend\bin"
43
+ $path = [Environment]::GetEnvironmentVariable("PATH", "User")
44
+ if ($path -notlike "*$binDir*") {
45
+ Write-Error "$binDir was not added to PATH"
46
+ exit 1
47
+ }
48
+ Write-Host "PATH correctly updated"
@@ -0,0 +1,31 @@
1
+ # Changelog
2
+
3
+ ## [0.2.0] - 2026-02-18
4
+
5
+ ### Added
6
+
7
+ - `resend domains` — create, verify, get, list, update, delete sending domains
8
+ - `resend api-keys` — create, list, delete API keys
9
+ - `resend broadcasts` — full broadcast lifecycle (create, send, get, list, update, delete)
10
+ - `resend contacts` — manage contacts, segments, and topics across all CRUD operations
11
+ - `resend emails batch` — send up to 100 emails in a single request from a JSON file
12
+ - Shared pagination (`--limit`, `--after`, `--before`) on all list commands
13
+ - `--html-file` flag on `emails send` and `broadcasts create` to read body from a file
14
+
15
+ ### Fixed
16
+
17
+ - `isInteractive()` now checks both `stdin` and `stdout` TTY — CI environments are correctly detected as non-interactive
18
+ - `domains delete` now returns a consistent `{ id, deleted: true }` object instead of an empty `{}`
19
+
20
+ ### Changed
21
+
22
+ - All delete commands return a uniform `{ object, id, deleted: true }` response
23
+ - `--help` improved across all commands with output shape, error codes, and usage examples
24
+
25
+ ---
26
+
27
+ ## [0.1.0] - 2026-02-18
28
+
29
+ - Initial release: `auth login`, `emails send`, `doctor`
30
+ - Auto JSON output when stdout is not a TTY (`--json`)
31
+ - Cross-platform binaries for macOS, Linux, and Windows via GitHub Actions
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2025 Resend
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.