workos 0.0.24 → 0.1.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 (305) hide show
  1. package/.claude-plugin/plugin.json +13 -0
  2. package/LICENSE +47 -0
  3. package/README.md +154 -1
  4. package/dist/bin.d.ts +2 -0
  5. package/dist/bin.js +163 -0
  6. package/dist/bin.js.map +1 -0
  7. package/dist/cli.config.d.ts +52 -0
  8. package/dist/cli.config.js +70 -0
  9. package/dist/cli.config.js.map +1 -0
  10. package/dist/package.json +87 -0
  11. package/dist/src/commands/install-skill.d.ts +20 -0
  12. package/dist/src/commands/install-skill.js +130 -0
  13. package/dist/src/commands/install-skill.js.map +1 -0
  14. package/dist/src/commands/install.d.ts +22 -0
  15. package/dist/src/commands/install.js +57 -0
  16. package/dist/src/commands/install.js.map +1 -0
  17. package/dist/src/commands/login.d.ts +1 -0
  18. package/dist/src/commands/login.js +141 -0
  19. package/dist/src/commands/login.js.map +1 -0
  20. package/dist/src/commands/logout.d.ts +1 -0
  21. package/dist/src/commands/logout.js +17 -0
  22. package/dist/src/commands/logout.js.map +1 -0
  23. package/dist/src/dashboard/components/AnimatedLogo.d.ts +8 -0
  24. package/dist/src/dashboard/components/AnimatedLogo.js +16 -0
  25. package/dist/src/dashboard/components/AnimatedLogo.js.map +1 -0
  26. package/dist/src/dashboard/components/CompletionView.d.ts +13 -0
  27. package/dist/src/dashboard/components/CompletionView.js +21 -0
  28. package/dist/src/dashboard/components/CompletionView.js.map +1 -0
  29. package/dist/src/dashboard/components/ConfirmPrompt.d.ts +9 -0
  30. package/dist/src/dashboard/components/ConfirmPrompt.js +25 -0
  31. package/dist/src/dashboard/components/ConfirmPrompt.js.map +1 -0
  32. package/dist/src/dashboard/components/CredentialsForm.d.ts +10 -0
  33. package/dist/src/dashboard/components/CredentialsForm.js +47 -0
  34. package/dist/src/dashboard/components/CredentialsForm.js.map +1 -0
  35. package/dist/src/dashboard/components/Dashboard.d.ts +3 -0
  36. package/dist/src/dashboard/components/Dashboard.js +100 -0
  37. package/dist/src/dashboard/components/Dashboard.js.map +1 -0
  38. package/dist/src/dashboard/components/DashboardLayout.d.ts +24 -0
  39. package/dist/src/dashboard/components/DashboardLayout.js +25 -0
  40. package/dist/src/dashboard/components/DashboardLayout.js.map +1 -0
  41. package/dist/src/dashboard/components/DiffPanel.d.ts +9 -0
  42. package/dist/src/dashboard/components/DiffPanel.js +136 -0
  43. package/dist/src/dashboard/components/DiffPanel.js.map +1 -0
  44. package/dist/src/dashboard/components/InlinePrompt.d.ts +8 -0
  45. package/dist/src/dashboard/components/InlinePrompt.js +19 -0
  46. package/dist/src/dashboard/components/InlinePrompt.js.map +1 -0
  47. package/dist/src/dashboard/components/OutputPanel.d.ts +10 -0
  48. package/dist/src/dashboard/components/OutputPanel.js +100 -0
  49. package/dist/src/dashboard/components/OutputPanel.js.map +1 -0
  50. package/dist/src/dashboard/components/Panel.d.ts +12 -0
  51. package/dist/src/dashboard/components/Panel.js +6 -0
  52. package/dist/src/dashboard/components/Panel.js.map +1 -0
  53. package/dist/src/dashboard/components/TextInput.d.ts +13 -0
  54. package/dist/src/dashboard/components/TextInput.js +57 -0
  55. package/dist/src/dashboard/components/TextInput.js.map +1 -0
  56. package/dist/src/dashboard/components/WelcomeArt.d.ts +2 -0
  57. package/dist/src/dashboard/components/WelcomeArt.js +9 -0
  58. package/dist/src/dashboard/components/WelcomeArt.js.map +1 -0
  59. package/dist/src/dashboard/hooks/useAnimation.d.ts +7 -0
  60. package/dist/src/dashboard/hooks/useAnimation.js +24 -0
  61. package/dist/src/dashboard/hooks/useAnimation.js.map +1 -0
  62. package/dist/src/dashboard/hooks/useKeyboard.d.ts +8 -0
  63. package/dist/src/dashboard/hooks/useKeyboard.js +18 -0
  64. package/dist/src/dashboard/hooks/useKeyboard.js.map +1 -0
  65. package/dist/src/dashboard/hooks/useTerminalSize.d.ts +8 -0
  66. package/dist/src/dashboard/hooks/useTerminalSize.js +23 -0
  67. package/dist/src/dashboard/hooks/useTerminalSize.js.map +1 -0
  68. package/dist/src/dashboard/index.d.ts +6 -0
  69. package/dist/src/dashboard/index.js +36 -0
  70. package/dist/src/dashboard/index.js.map +1 -0
  71. package/dist/src/dashboard/lib/diff-utils.d.ts +21 -0
  72. package/dist/src/dashboard/lib/diff-utils.js +271 -0
  73. package/dist/src/dashboard/lib/diff-utils.js.map +1 -0
  74. package/dist/src/dashboard/lib/logo-frames.d.ts +20 -0
  75. package/dist/src/dashboard/lib/logo-frames.js +109 -0
  76. package/dist/src/dashboard/lib/logo-frames.js.map +1 -0
  77. package/dist/src/dashboard/lib/welcome-art.d.ts +1 -0
  78. package/dist/src/dashboard/lib/welcome-art.js +5 -0
  79. package/dist/src/dashboard/lib/welcome-art.js.map +1 -0
  80. package/dist/src/dashboard/types.d.ts +5 -0
  81. package/dist/src/dashboard/types.js +2 -0
  82. package/dist/src/dashboard/types.js.map +1 -0
  83. package/dist/src/lib/__tests__/test-utils.d.ts +40 -0
  84. package/dist/src/lib/__tests__/test-utils.js +108 -0
  85. package/dist/src/lib/__tests__/test-utils.js.map +1 -0
  86. package/dist/src/lib/adapters/cli-adapter.d.ts +56 -0
  87. package/dist/src/lib/adapters/cli-adapter.js +318 -0
  88. package/dist/src/lib/adapters/cli-adapter.js.map +1 -0
  89. package/dist/src/lib/adapters/dashboard-adapter.d.ts +30 -0
  90. package/dist/src/lib/adapters/dashboard-adapter.js +97 -0
  91. package/dist/src/lib/adapters/dashboard-adapter.js.map +1 -0
  92. package/dist/src/lib/adapters/index.d.ts +3 -0
  93. package/dist/src/lib/adapters/index.js +3 -0
  94. package/dist/src/lib/adapters/index.js.map +1 -0
  95. package/dist/src/lib/adapters/types.d.ts +41 -0
  96. package/dist/src/lib/adapters/types.js +2 -0
  97. package/dist/src/lib/adapters/types.js.map +1 -0
  98. package/dist/src/lib/agent-interface.d.ts +75 -0
  99. package/dist/src/lib/agent-interface.js +563 -0
  100. package/dist/src/lib/agent-interface.js.map +1 -0
  101. package/dist/src/lib/agent-runner.d.ts +9 -0
  102. package/dist/src/lib/agent-runner.js +213 -0
  103. package/dist/src/lib/agent-runner.js.map +1 -0
  104. package/dist/src/lib/api.d.ts +25 -0
  105. package/dist/src/lib/api.js +120 -0
  106. package/dist/src/lib/api.js.map +1 -0
  107. package/dist/src/lib/config.d.ts +60 -0
  108. package/dist/src/lib/config.js +88 -0
  109. package/dist/src/lib/config.js.map +1 -0
  110. package/dist/src/lib/constants.d.ts +32 -0
  111. package/dist/src/lib/constants.js +53 -0
  112. package/dist/src/lib/constants.js.map +1 -0
  113. package/dist/src/lib/credentials.d.ts +19 -0
  114. package/dist/src/lib/credentials.js +55 -0
  115. package/dist/src/lib/credentials.js.map +1 -0
  116. package/dist/src/lib/env-writer.d.ts +14 -0
  117. package/dist/src/lib/env-writer.js +39 -0
  118. package/dist/src/lib/env-writer.js.map +1 -0
  119. package/dist/src/lib/events.d.ts +114 -0
  120. package/dist/src/lib/events.js +19 -0
  121. package/dist/src/lib/events.js.map +1 -0
  122. package/dist/src/lib/framework-config.d.ts +108 -0
  123. package/dist/src/lib/framework-config.js +11 -0
  124. package/dist/src/lib/framework-config.js.map +1 -0
  125. package/dist/src/lib/helper-functions.d.ts +1 -0
  126. package/dist/src/lib/helper-functions.js +2 -0
  127. package/dist/src/lib/helper-functions.js.map +1 -0
  128. package/dist/src/lib/port-detection.d.ts +7 -0
  129. package/dist/src/lib/port-detection.js +112 -0
  130. package/dist/src/lib/port-detection.js.map +1 -0
  131. package/dist/src/lib/progress-tracker.d.ts +22 -0
  132. package/dist/src/lib/progress-tracker.js +47 -0
  133. package/dist/src/lib/progress-tracker.js.map +1 -0
  134. package/dist/src/lib/run-with-core.d.ts +2 -0
  135. package/dist/src/lib/run-with-core.js +266 -0
  136. package/dist/src/lib/run-with-core.js.map +1 -0
  137. package/dist/src/lib/safe-tools.d.ts +2 -0
  138. package/dist/src/lib/safe-tools.js +212 -0
  139. package/dist/src/lib/safe-tools.js.map +1 -0
  140. package/dist/src/lib/settings.d.ts +59 -0
  141. package/dist/src/lib/settings.js +36 -0
  142. package/dist/src/lib/settings.js.map +1 -0
  143. package/dist/src/lib/token-refresh.d.ts +12 -0
  144. package/dist/src/lib/token-refresh.js +26 -0
  145. package/dist/src/lib/token-refresh.js.map +1 -0
  146. package/dist/src/lib/validation/build-validator.d.ts +9 -0
  147. package/dist/src/lib/validation/build-validator.js +118 -0
  148. package/dist/src/lib/validation/build-validator.js.map +1 -0
  149. package/dist/src/lib/validation/index.d.ts +3 -0
  150. package/dist/src/lib/validation/index.js +3 -0
  151. package/dist/src/lib/validation/index.js.map +1 -0
  152. package/dist/src/lib/validation/types.d.ts +41 -0
  153. package/dist/src/lib/validation/types.js +2 -0
  154. package/dist/src/lib/validation/types.js.map +1 -0
  155. package/dist/src/lib/validation/validator.d.ts +6 -0
  156. package/dist/src/lib/validation/validator.js +647 -0
  157. package/dist/src/lib/validation/validator.js.map +1 -0
  158. package/dist/src/lib/wizard-core.d.ts +200 -0
  159. package/dist/src/lib/wizard-core.js +392 -0
  160. package/dist/src/lib/wizard-core.js.map +1 -0
  161. package/dist/src/lib/wizard-core.types.d.ts +73 -0
  162. package/dist/src/lib/wizard-core.types.js +2 -0
  163. package/dist/src/lib/wizard-core.types.js.map +1 -0
  164. package/dist/src/lib/workos-management.d.ts +32 -0
  165. package/dist/src/lib/workos-management.js +142 -0
  166. package/dist/src/lib/workos-management.js.map +1 -0
  167. package/dist/src/nextjs/nextjs-wizard-agent.d.ts +6 -0
  168. package/dist/src/nextjs/nextjs-wizard-agent.js +97 -0
  169. package/dist/src/nextjs/nextjs-wizard-agent.js.map +1 -0
  170. package/dist/src/nextjs/utils.d.ts +8 -0
  171. package/dist/src/nextjs/utils.js +53 -0
  172. package/dist/src/nextjs/utils.js.map +1 -0
  173. package/dist/src/react/react-wizard-agent.d.ts +2 -0
  174. package/dist/src/react/react-wizard-agent.js +47 -0
  175. package/dist/src/react/react-wizard-agent.js.map +1 -0
  176. package/dist/src/react-router/react-router-wizard-agent.d.ts +6 -0
  177. package/dist/src/react-router/react-router-wizard-agent.js +103 -0
  178. package/dist/src/react-router/react-router-wizard-agent.js.map +1 -0
  179. package/dist/src/react-router/utils.d.ts +19 -0
  180. package/dist/src/react-router/utils.js +210 -0
  181. package/dist/src/react-router/utils.js.map +1 -0
  182. package/dist/src/run.d.ts +24 -0
  183. package/dist/src/run.js +48 -0
  184. package/dist/src/run.js.map +1 -0
  185. package/dist/src/steps/add-or-update-environment-variables.d.ts +10 -0
  186. package/dist/src/steps/add-or-update-environment-variables.js +155 -0
  187. package/dist/src/steps/add-or-update-environment-variables.js.map +1 -0
  188. package/dist/src/steps/index.d.ts +3 -0
  189. package/dist/src/steps/index.js +4 -0
  190. package/dist/src/steps/index.js.map +1 -0
  191. package/dist/src/steps/run-prettier.d.ts +5 -0
  192. package/dist/src/steps/run-prettier.js +54 -0
  193. package/dist/src/steps/run-prettier.js.map +1 -0
  194. package/dist/src/steps/upload-environment-variables/EnvironmentProvider.d.ts +8 -0
  195. package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js +7 -0
  196. package/dist/src/steps/upload-environment-variables/EnvironmentProvider.js.map +1 -0
  197. package/dist/src/steps/upload-environment-variables/index.d.ts +6 -0
  198. package/dist/src/steps/upload-environment-variables/index.js +57 -0
  199. package/dist/src/steps/upload-environment-variables/index.js.map +1 -0
  200. package/dist/src/steps/upload-environment-variables/providers/vercel.d.ts +14 -0
  201. package/dist/src/steps/upload-environment-variables/providers/vercel.js +104 -0
  202. package/dist/src/steps/upload-environment-variables/providers/vercel.js.map +1 -0
  203. package/dist/src/tanstack-start/tanstack-start-wizard-agent.d.ts +2 -0
  204. package/dist/src/tanstack-start/tanstack-start-wizard-agent.js +49 -0
  205. package/dist/src/tanstack-start/tanstack-start-wizard-agent.js.map +1 -0
  206. package/dist/src/telemetry.d.ts +2 -0
  207. package/dist/src/telemetry.js +29 -0
  208. package/dist/src/telemetry.js.map +1 -0
  209. package/dist/src/utils/analytics.d.ts +24 -0
  210. package/dist/src/utils/analytics.js +139 -0
  211. package/dist/src/utils/analytics.js.map +1 -0
  212. package/dist/src/utils/bash.d.ts +2 -0
  213. package/dist/src/utils/bash.js +17 -0
  214. package/dist/src/utils/bash.js.map +1 -0
  215. package/dist/src/utils/clack-utils.d.ts +93 -0
  216. package/dist/src/utils/clack-utils.js +397 -0
  217. package/dist/src/utils/clack-utils.js.map +1 -0
  218. package/dist/src/utils/clack.d.ts +5 -0
  219. package/dist/src/utils/clack.js +34 -0
  220. package/dist/src/utils/clack.js.map +1 -0
  221. package/dist/src/utils/cli-symbols.d.ts +32 -0
  222. package/dist/src/utils/cli-symbols.js +46 -0
  223. package/dist/src/utils/cli-symbols.js.map +1 -0
  224. package/dist/src/utils/debug.d.ts +7 -0
  225. package/dist/src/utils/debug.js +88 -0
  226. package/dist/src/utils/debug.js.map +1 -0
  227. package/dist/src/utils/env-parser.d.ts +5 -0
  228. package/dist/src/utils/env-parser.js +18 -0
  229. package/dist/src/utils/env-parser.js.map +1 -0
  230. package/dist/src/utils/environment.d.ts +4 -0
  231. package/dist/src/utils/environment.js +69 -0
  232. package/dist/src/utils/environment.js.map +1 -0
  233. package/dist/src/utils/errors.d.ts +3 -0
  234. package/dist/src/utils/errors.js +7 -0
  235. package/dist/src/utils/errors.js.map +1 -0
  236. package/dist/src/utils/logging.d.ts +9 -0
  237. package/dist/src/utils/logging.js +36 -0
  238. package/dist/src/utils/logging.js.map +1 -0
  239. package/dist/src/utils/package-json.d.ts +25 -0
  240. package/dist/src/utils/package-json.js +21 -0
  241. package/dist/src/utils/package-json.js.map +1 -0
  242. package/dist/src/utils/package-manager.d.ts +21 -0
  243. package/dist/src/utils/package-manager.js +167 -0
  244. package/dist/src/utils/package-manager.js.map +1 -0
  245. package/dist/src/utils/redact.d.ts +5 -0
  246. package/dist/src/utils/redact.js +29 -0
  247. package/dist/src/utils/redact.js.map +1 -0
  248. package/dist/src/utils/semver.d.ts +10 -0
  249. package/dist/src/utils/semver.js +43 -0
  250. package/dist/src/utils/semver.js.map +1 -0
  251. package/dist/src/utils/string.d.ts +1 -0
  252. package/dist/src/utils/string.js +6 -0
  253. package/dist/src/utils/string.js.map +1 -0
  254. package/dist/src/utils/telemetry-client.d.ts +15 -0
  255. package/dist/src/utils/telemetry-client.js +57 -0
  256. package/dist/src/utils/telemetry-client.js.map +1 -0
  257. package/dist/src/utils/telemetry-types.d.ts +51 -0
  258. package/dist/src/utils/telemetry-types.js +6 -0
  259. package/dist/src/utils/telemetry-types.js.map +1 -0
  260. package/dist/src/utils/types.d.ts +80 -0
  261. package/dist/src/utils/types.js +2 -0
  262. package/dist/src/utils/types.js.map +1 -0
  263. package/dist/src/utils/urls.d.ts +7 -0
  264. package/dist/src/utils/urls.js +8 -0
  265. package/dist/src/utils/urls.js.map +1 -0
  266. package/dist/src/utils/vendor/is-unicorn-supported.d.ts +1 -0
  267. package/dist/src/utils/vendor/is-unicorn-supported.js +21 -0
  268. package/dist/src/utils/vendor/is-unicorn-supported.js.map +1 -0
  269. package/dist/src/vanilla-js/vanilla-js-wizard-agent.d.ts +2 -0
  270. package/dist/src/vanilla-js/vanilla-js-wizard-agent.js +47 -0
  271. package/dist/src/vanilla-js/vanilla-js-wizard-agent.js.map +1 -0
  272. package/package.json +76 -84
  273. package/skills/workos-authkit-base/SKILL.md +113 -0
  274. package/skills/workos-authkit-nextjs/SKILL.md +115 -0
  275. package/skills/workos-authkit-react/SKILL.md +91 -0
  276. package/skills/workos-authkit-react-router/SKILL.md +106 -0
  277. package/skills/workos-authkit-tanstack-start/SKILL.md +104 -0
  278. package/skills/workos-authkit-vanilla-js/SKILL.md +81 -0
  279. package/build/apps/index.js +0 -50
  280. package/build/apps/slack.js +0 -151
  281. package/build/cli.js +0 -42
  282. package/build/config.js +0 -34
  283. package/build/dev.js +0 -5
  284. package/build/enable-api-access.png +0 -0
  285. package/build/groups.js +0 -480
  286. package/build/index.js +0 -3
  287. package/build/info.js +0 -69
  288. package/build/login.js +0 -161
  289. package/build/main.js +0 -214
  290. package/build/users.js +0 -402
  291. package/build/util.js +0 -157
  292. package/coverage/clover.xml +0 -66
  293. package/coverage/coverage-final.json +0 -4
  294. package/coverage/lcov-report/base.css +0 -212
  295. package/coverage/lcov-report/cli.ts.html +0 -329
  296. package/coverage/lcov-report/config.ts.html +0 -152
  297. package/coverage/lcov-report/index.html +0 -119
  298. package/coverage/lcov-report/prettify.css +0 -1
  299. package/coverage/lcov-report/prettify.js +0 -1
  300. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  301. package/coverage/lcov-report/sorter.js +0 -158
  302. package/coverage/lcov-report/util.ts.html +0 -350
  303. package/coverage/lcov.info +0 -121
  304. package/package-lock.json +0 -7617
  305. package/tests/util.test.ts +0 -35
package/build/login.js DELETED
@@ -1,161 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- var __importDefault = (this && this.__importDefault) || function (mod) {
38
- return (mod && mod.__esModule) ? mod : { "default": mod };
39
- };
40
- var _this = this;
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- var http_1 = __importDefault(require("http"));
43
- var opn_1 = __importDefault(require("opn"));
44
- var got_1 = __importDefault(require("got"));
45
- var query_string_1 = __importDefault(require("query-string"));
46
- var url_parse_1 = __importDefault(require("url-parse"));
47
- var server_destroy_1 = __importDefault(require("server-destroy"));
48
- var osascript = require('node-osascript'); // because it doesn't have types
49
- var ora_1 = __importDefault(require("ora"));
50
- var util_1 = require("./util");
51
- var config_1 = require("./config");
52
- var OAUTH_AUTHORIZE_URL = config_1.OAUTH_BASE_URL + '/oauth2/authorize';
53
- var OAUTH_TOKEN_URL = config_1.OAUTH_BASE_URL + '/oauth2/token';
54
- var LOCAL_OAUTH_REDIRECT_URI = 'http://localhost:8080/callback';
55
- var WORKOS_CLIENT_ID = 'workos-cli';
56
- var CSRF_PROTECTION_STATE = Math.random().toString(36).substring(2, 15);
57
- var _getOauthURL = function () {
58
- var params = query_string_1.default.stringify({
59
- client_id: WORKOS_CLIENT_ID,
60
- redirect_uri: LOCAL_OAUTH_REDIRECT_URI,
61
- authorization_type: 'code',
62
- // scopes: 'somescopes', // todo
63
- state: CSRF_PROTECTION_STATE
64
- });
65
- return OAUTH_AUTHORIZE_URL + '?' + params;
66
- };
67
- exports.login = function () { return __awaiter(_this, void 0, void 0, function () {
68
- var oauthURL, spinner, getOAuthCode, _a, code, server, form, resp, token, meResp;
69
- return __generator(this, function (_b) {
70
- switch (_b.label) {
71
- case 0:
72
- // Log in
73
- util_1.log('You must authenticate a G Suite Admin account with WorkOS. Opening your browser...\n');
74
- oauthURL = _getOauthURL();
75
- util_1.log("If your browser doesn't open, visit this url: " + oauthURL + " \n\n");
76
- // await _waitForEnter()
77
- // debug(`Got enter key, now opening URL ${oauthURL}`)
78
- opn_1.default(oauthURL);
79
- spinner = ora_1.default("Waiting for auth...").start();
80
- getOAuthCode = new Promise(function (resolve, reject) {
81
- var callbackServer = http_1.default.createServer(function (req, res) {
82
- if (req.method !== 'GET' || !req.url) {
83
- util_1.logError("Can't handle " + req.method + " type requests.");
84
- return process.exit();
85
- }
86
- if (!req.url.startsWith('/callback')) {
87
- return res.end();
88
- }
89
- var myQueryString = url_parse_1.default(req.url).query.toString();
90
- var queryParams = query_string_1.default.parse(myQueryString);
91
- util_1.debug("URL params: " + JSON.stringify(queryParams));
92
- if (!queryParams.code) {
93
- util_1.debug("Doesn't have \"code\" parameter in URL.");
94
- return;
95
- }
96
- if (queryParams.state !== CSRF_PROTECTION_STATE) {
97
- spinner.fail('State parameter mismatch -- OAuth request may have been tampered with!');
98
- process.exit();
99
- }
100
- try {
101
- osascript.execute("\n if application \"iTerm\" is running then\n tell application \"iTerm\"\n activate\n end tell\n end if\n ");
102
- }
103
- catch (error) {
104
- util_1.debug('Failed to open web browser');
105
- }
106
- res.writeHead(200, { 'Content-Type': 'text/plain' });
107
- res.write('Successfully authenticated WorkOS!'); // Redirect to help docs
108
- res.end();
109
- resolve({ code: queryParams.code, server: callbackServer });
110
- });
111
- server_destroy_1.default(callbackServer);
112
- callbackServer.listen({ port: 8080, host: 'localhost' }, function (err) {
113
- if (err) {
114
- return util_1.logError("Error with local web server: " + err);
115
- }
116
- util_1.debug("Server is listening");
117
- });
118
- });
119
- return [4 /*yield*/, getOAuthCode];
120
- case 1:
121
- _a = _b.sent(), code = _a.code, server = _a.server;
122
- util_1.debug("Got OAuth code ");
123
- util_1.debug('Destroying server.');
124
- server.destroy();
125
- util_1.debug('Done.');
126
- form = {
127
- code: code,
128
- grant_type: 'authorization_code',
129
- client_id: WORKOS_CLIENT_ID,
130
- // client_secret: 'client_secret_foo',
131
- redirect_uri: LOCAL_OAUTH_REDIRECT_URI
132
- };
133
- util_1.debug("Sending code to get access token to " + OAUTH_TOKEN_URL + " with params " + JSON.stringify(form));
134
- return [4 /*yield*/, got_1.default.post(OAUTH_TOKEN_URL, { form: true, body: form, json: true })];
135
- case 2:
136
- resp = _b.sent();
137
- util_1.debug("Response: " + resp.body);
138
- if (!resp.body.access_token) {
139
- util_1.log("Couldn't exchange code for token.");
140
- process.exit();
141
- }
142
- token = resp.body.access_token;
143
- util_1.debug("Access token is " + token);
144
- config_1.config.set('API_TOKEN', token);
145
- return [4 /*yield*/, got_1.default(config_1.API_BASE_URL + "/me", {
146
- json: true,
147
- headers: {
148
- 'Authorization': "Bearer " + token
149
- }
150
- })];
151
- case 3:
152
- meResp = _b.sent();
153
- config_1.config.set('ACCOUNT', meResp.body); // TODO check this
154
- config_1.config.set('G_SUITE_DOMAIN', meResp.body.email.split('@')[1]);
155
- spinner.succeed('Success. Now try running a command like $ workos users');
156
- process.exit();
157
- return [2 /*return*/];
158
- }
159
- });
160
- }); };
161
- //# sourceMappingURL=login.js.map
package/build/main.js DELETED
@@ -1,214 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
12
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (_) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
- var __importDefault = (this && this.__importDefault) || function (mod) {
38
- return (mod && mod.__esModule) ? mod : { "default": mod };
39
- };
40
- var _this = this;
41
- Object.defineProperty(exports, "__esModule", { value: true });
42
- var pkg = require('../package.json');
43
- var semver_1 = __importDefault(require("semver"));
44
- var version = pkg.engines.node;
45
- if (!semver_1.default.satisfies(process.version, version)) {
46
- console.log("Required node version " + version + " not satisfied with current version " + process.version + ".");
47
- process.exit(1);
48
- }
49
- var raven_1 = __importDefault(require("raven"));
50
- raven_1.default.config('https://9cb818ee533a480d91a2ab08fbf0348c@sentry.io/1331913', { release: pkg.version }).install();
51
- var update_notifier_1 = __importDefault(require("update-notifier"));
52
- var notifier = update_notifier_1.default({
53
- pkg: pkg,
54
- updateCheckInterval: 1000 * 60 * 60,
55
- // @ts-ignore
56
- shouldNotifyInNpmScript: true
57
- });
58
- notifier.notify({
59
- defer: true,
60
- isGlobal: true,
61
- });
62
- var readline_1 = __importDefault(require("readline"));
63
- var chalk_1 = __importDefault(require("chalk"));
64
- var env_var_1 = __importDefault(require("env-var"));
65
- var termImg = require('term-img');
66
- var path = require('path');
67
- var got_1 = __importDefault(require("got"));
68
- var cli_1 = require("./cli");
69
- var config_1 = require("./config");
70
- var login_1 = require("./login");
71
- var users_1 = require("./users");
72
- var groups_1 = require("./groups");
73
- var apps_1 = require("./apps");
74
- var info_1 = require("./info");
75
- var util_1 = require("./util");
76
- var config_2 = require("./config");
77
- exports.main = function () { return __awaiter(_this, void 0, void 0, function () {
78
- var workosEnv, command, meResp, error_1, _a, type, url, message;
79
- return __generator(this, function (_b) {
80
- switch (_b.label) {
81
- case 0:
82
- _b.trys.push([0, 20, , 21]);
83
- util_1.debug("Inputs " + cli_1.cli.input);
84
- util_1.debug("Flags: " + JSON.stringify(cli_1.cli.flags));
85
- workosEnv = env_var_1.default.get('WORKOS_ENV').asString();
86
- util_1.debug("WORKOS_ENV: " + workosEnv);
87
- if (workosEnv && workosEnv !== 'production') {
88
- console.log(chalk_1.default.yellowBright("\u26A0\uFE0F You are running this tool in \"" + workosEnv + "\" mode"));
89
- console.log(chalk_1.default.yellowBright("\u26A0\uFE0F The API root is " + config_2.API_BASE_URL));
90
- }
91
- util_1.debug("OAUTH_BASE_URL: " + config_2.OAUTH_BASE_URL);
92
- util_1.debug("API_BASE_URL: " + config_2.API_BASE_URL);
93
- command = cli_1.cli.input[0];
94
- if (!(command === 'logout')) return [3 /*break*/, 1];
95
- config_2.resetConfig();
96
- // TODO also revoke the token
97
- util_1.log('Deleted auth token.');
98
- process.exit();
99
- return [3 /*break*/, 5];
100
- case 1:
101
- if (!(command && command.toLowerCase() === 'info')) return [3 /*break*/, 3];
102
- util_1.debug('Running info command');
103
- return [4 /*yield*/, info_1.showInfo()];
104
- case 2:
105
- _b.sent();
106
- process.exit();
107
- return [3 /*break*/, 5];
108
- case 3:
109
- if (!(command === 'login' || (!command && !config_2.IS_AUTHENTICATED))) return [3 /*break*/, 5];
110
- return [4 /*yield*/, login_1.login()];
111
- case 4:
112
- _b.sent();
113
- process.exit();
114
- _b.label = 5;
115
- case 5:
116
- // All following commands require auth
117
- if (!config_2.IS_AUTHENTICATED) {
118
- util_1.log("Please auth by running " + chalk_1.default.cyanBright('workos login'));
119
- process.exit();
120
- }
121
- if (!(!config_1.config.get('ACCOUNT') || !config_1.config.get('G_SUITE_DOMAIN'))) return [3 /*break*/, 7];
122
- return [4 /*yield*/, got_1.default(config_2.API_BASE_URL + "/me", {
123
- json: true,
124
- headers: { 'Authorization': "Bearer " + config_1.config.get('API_TOKEN') }
125
- })];
126
- case 6:
127
- meResp = _b.sent();
128
- config_1.config.set('ACCOUNT', meResp.body); // TODO check this
129
- config_1.config.set('G_SUITE_DOMAIN', meResp.body.email.split('@')[1]);
130
- _b.label = 7;
131
- case 7:
132
- if (!!command) return [3 /*break*/, 8];
133
- cli_1.cli.showHelp();
134
- process.exit();
135
- return [3 /*break*/, 19];
136
- case 8:
137
- if (!(command === 'login')) return [3 /*break*/, 10];
138
- return [4 /*yield*/, login_1.login()];
139
- case 9:
140
- _b.sent();
141
- return [3 /*break*/, 19];
142
- case 10:
143
- if (!(command.toLowerCase() === 'info')) return [3 /*break*/, 12];
144
- util_1.debug('Running info command');
145
- return [4 /*yield*/, info_1.showInfo()];
146
- case 11:
147
- _b.sent();
148
- return [3 /*break*/, 19];
149
- case 12:
150
- if (!command.toLowerCase().startsWith('user')) return [3 /*break*/, 14];
151
- util_1.debug('Running user command');
152
- return [4 /*yield*/, users_1.userCommand()];
153
- case 13:
154
- _b.sent();
155
- return [3 /*break*/, 19];
156
- case 14:
157
- if (!command.toLowerCase().startsWith('group')) return [3 /*break*/, 16];
158
- util_1.debug('Running group command');
159
- return [4 /*yield*/, groups_1.groupCommand()];
160
- case 15:
161
- _b.sent();
162
- return [3 /*break*/, 19];
163
- case 16:
164
- if (!command.toLowerCase().startsWith('app')) return [3 /*break*/, 18];
165
- util_1.debug('Running app command');
166
- return [4 /*yield*/, apps_1.appCommand()];
167
- case 17:
168
- _b.sent();
169
- return [3 /*break*/, 19];
170
- case 18:
171
- util_1.logError("Unknown command \"" + cli_1.cli.input[0] + "\"");
172
- _b.label = 19;
173
- case 19:
174
- process.exit();
175
- return [3 /*break*/, 21];
176
- case 20:
177
- error_1 = _b.sent();
178
- util_1.debug(error_1);
179
- // Known API errors
180
- if (error_1.response && error_1.response.object === 'api_error') {
181
- _a = error_1.response.body, type = _a.type, url = _a.url, message = _a.message;
182
- util_1.debug("Error type: " + type);
183
- console.log("Error: " + message + " \n\n \uD83D\uDC49 " + chalk_1.default.yellowBright(url) + "\n");
184
- // Note this only works in iTerm2 version >3
185
- try {
186
- termImg(path.resolve(__dirname, './enable-api-access.png'), { width: '400px' });
187
- }
188
- catch (_c) {
189
- util_1.debug('Failure to display image');
190
- }
191
- process.exit();
192
- }
193
- else {
194
- util_1.debug('Sending error to Sentry');
195
- util_1.logError(error_1);
196
- raven_1.default.captureException(error_1, { user: config_1.config.get('ACCOUNT') }, function () {
197
- process.exit();
198
- });
199
- }
200
- return [3 /*break*/, 21];
201
- case 21: return [2 /*return*/];
202
- }
203
- });
204
- }); };
205
- readline_1.default.emitKeypressEvents(process.stdin);
206
- if (process.stdin.setRawMode) {
207
- process.stdin.setRawMode(true);
208
- }
209
- process.stdin.on('keypress', function (ch, key) {
210
- if (key.name === 'escape' || (key.name === 'c' && key.ctrl)) {
211
- process.exit();
212
- }
213
- });
214
- //# sourceMappingURL=main.js.map