alpic 0.0.0-dev.gee3e167 → 0.0.0-dev.gee425da

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 (263) hide show
  1. package/README.md +18 -0
  2. package/bin/dev.js +0 -0
  3. package/bin/run.js +15 -1
  4. package/dist/__tests__/alpic-command.test.js +8 -4
  5. package/dist/__tests__/alpic-command.test.js.map +1 -1
  6. package/dist/__tests__/audit.e2e.test.js +17 -30
  7. package/dist/__tests__/audit.e2e.test.js.map +1 -1
  8. package/dist/__tests__/auth.e2e.test.js +9 -23
  9. package/dist/__tests__/auth.e2e.test.js.map +1 -1
  10. package/dist/__tests__/deploy-flags.e2e.test.js +6 -21
  11. package/dist/__tests__/deploy-flags.e2e.test.js.map +1 -1
  12. package/dist/__tests__/deploy.e2e.test.js +5 -21
  13. package/dist/__tests__/deploy.e2e.test.js.map +1 -1
  14. package/dist/__tests__/deployment-inspect.e2e.test.js +18 -31
  15. package/dist/__tests__/deployment-inspect.e2e.test.js.map +1 -1
  16. package/dist/__tests__/deployment-list.e2e.test.js +18 -31
  17. package/dist/__tests__/deployment-list.e2e.test.js.map +1 -1
  18. package/dist/__tests__/deployment-logs.e2e.test.js +15 -29
  19. package/dist/__tests__/deployment-logs.e2e.test.js.map +1 -1
  20. package/dist/__tests__/environment-delete.e2e.test.d.ts +1 -0
  21. package/dist/__tests__/environment-delete.e2e.test.js +95 -0
  22. package/dist/__tests__/environment-delete.e2e.test.js.map +1 -0
  23. package/dist/__tests__/environment-list.e2e.test.js +6 -22
  24. package/dist/__tests__/environment-list.e2e.test.js.map +1 -1
  25. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js +19 -31
  26. package/dist/__tests__/environment-variable/environment-variable-add.e2e.test.js.map +1 -1
  27. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js +19 -31
  28. package/dist/__tests__/environment-variable/environment-variable-list.e2e.test.js.map +1 -1
  29. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js +18 -31
  30. package/dist/__tests__/environment-variable/environment-variable-remove.e2e.test.js.map +1 -1
  31. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js +18 -31
  32. package/dist/__tests__/environment-variable/environment-variable-update.e2e.test.js.map +1 -1
  33. package/dist/__tests__/git-flags.e2e.test.js +6 -22
  34. package/dist/__tests__/git-flags.e2e.test.js.map +1 -1
  35. package/dist/__tests__/git.e2e.test.js +7 -22
  36. package/dist/__tests__/git.e2e.test.js.map +1 -1
  37. package/dist/__tests__/insights-category.e2e.test.d.ts +1 -0
  38. package/dist/__tests__/insights-category.e2e.test.js +247 -0
  39. package/dist/__tests__/insights-category.e2e.test.js.map +1 -0
  40. package/dist/__tests__/insights.e2e.test.d.ts +1 -0
  41. package/dist/__tests__/insights.e2e.test.js +193 -0
  42. package/dist/__tests__/insights.e2e.test.js.map +1 -0
  43. package/dist/__tests__/logs.e2e.test.js +21 -35
  44. package/dist/__tests__/logs.e2e.test.js.map +1 -1
  45. package/dist/__tests__/mock-api.d.ts +28 -1
  46. package/dist/__tests__/mock-api.js +385 -41
  47. package/dist/__tests__/mock-api.js.map +1 -1
  48. package/dist/__tests__/playground/playground-configure.e2e.test.js +18 -26
  49. package/dist/__tests__/playground/playground-configure.e2e.test.js.map +1 -1
  50. package/dist/__tests__/playground/playground-enable-disable.e2e.test.js +18 -26
  51. package/dist/__tests__/playground/playground-enable-disable.e2e.test.js.map +1 -1
  52. package/dist/__tests__/playground/playground-example-prompt.e2e.test.js +18 -26
  53. package/dist/__tests__/playground/playground-example-prompt.e2e.test.js.map +1 -1
  54. package/dist/__tests__/playground/playground-headers.e2e.test.js +18 -26
  55. package/dist/__tests__/playground/playground-headers.e2e.test.js.map +1 -1
  56. package/dist/__tests__/playground/playground-status.e2e.test.js +18 -26
  57. package/dist/__tests__/playground/playground-status.e2e.test.js.map +1 -1
  58. package/dist/__tests__/project-list.e2e.test.js +5 -21
  59. package/dist/__tests__/project-list.e2e.test.js.map +1 -1
  60. package/dist/__tests__/publish.e2e.test.js +6 -24
  61. package/dist/__tests__/publish.e2e.test.js.map +1 -1
  62. package/dist/__tests__/submission.e2e.test.d.ts +1 -0
  63. package/dist/__tests__/submission.e2e.test.js +173 -0
  64. package/dist/__tests__/submission.e2e.test.js.map +1 -0
  65. package/dist/__tests__/team-inspect.e2e.test.js +26 -1
  66. package/dist/__tests__/team-inspect.e2e.test.js.map +1 -1
  67. package/dist/__tests__/team-list.e2e.test.js +5 -21
  68. package/dist/__tests__/team-list.e2e.test.js.map +1 -1
  69. package/dist/__tests__/telemetry-destinations.e2e.test.d.ts +1 -0
  70. package/dist/__tests__/telemetry-destinations.e2e.test.js +105 -0
  71. package/dist/__tests__/telemetry-destinations.e2e.test.js.map +1 -0
  72. package/dist/__tests__/tunnel.e2e.test.js +114 -23
  73. package/dist/__tests__/tunnel.e2e.test.js.map +1 -1
  74. package/dist/__tests__/utils.d.ts +17 -6
  75. package/dist/__tests__/utils.js +49 -20
  76. package/dist/__tests__/utils.js.map +1 -1
  77. package/dist/api.d.ts +1 -1
  78. package/dist/api.js +2 -21
  79. package/dist/api.js.map +1 -1
  80. package/dist/commands/audit.js +3 -1
  81. package/dist/commands/audit.js.map +1 -1
  82. package/dist/commands/deploy.js +71 -54
  83. package/dist/commands/deploy.js.map +1 -1
  84. package/dist/commands/deployment/list.js +3 -3
  85. package/dist/commands/deployment/list.js.map +1 -1
  86. package/dist/commands/environment/delete.d.ts +13 -0
  87. package/dist/commands/environment/delete.js +45 -0
  88. package/dist/commands/environment/delete.js.map +1 -0
  89. package/dist/commands/environment/inspect.js +3 -3
  90. package/dist/commands/environment/inspect.js.map +1 -1
  91. package/dist/commands/environment/list.js +3 -3
  92. package/dist/commands/environment/list.js.map +1 -1
  93. package/dist/commands/git/connect.js +2 -2
  94. package/dist/commands/git/connect.js.map +1 -1
  95. package/dist/commands/git/disconnect.js +2 -2
  96. package/dist/commands/git/disconnect.js.map +1 -1
  97. package/dist/commands/insights/category/create.d.ts +17 -0
  98. package/dist/commands/insights/category/create.js +63 -0
  99. package/dist/commands/insights/category/create.js.map +1 -0
  100. package/dist/commands/insights/category/delete.d.ts +13 -0
  101. package/dist/commands/insights/category/delete.js +40 -0
  102. package/dist/commands/insights/category/delete.js.map +1 -0
  103. package/dist/commands/insights/category/link.d.ts +14 -0
  104. package/dist/commands/insights/category/link.js +36 -0
  105. package/dist/commands/insights/category/link.js.map +1 -0
  106. package/dist/commands/insights/category/list.d.ts +13 -0
  107. package/dist/commands/insights/category/list.js +46 -0
  108. package/dist/commands/insights/category/list.js.map +1 -0
  109. package/dist/commands/insights/category/unlink.d.ts +14 -0
  110. package/dist/commands/insights/category/unlink.js +36 -0
  111. package/dist/commands/insights/category/unlink.js.map +1 -0
  112. package/dist/commands/insights/category/update.d.ts +16 -0
  113. package/dist/commands/insights/category/update.js +45 -0
  114. package/dist/commands/insights/category/update.js.map +1 -0
  115. package/dist/commands/insights/feedback/list.d.ts +19 -0
  116. package/dist/commands/insights/feedback/list.js +73 -0
  117. package/dist/commands/insights/feedback/list.js.map +1 -0
  118. package/dist/commands/insights/intent/list.d.ts +22 -0
  119. package/dist/commands/insights/intent/list.js +89 -0
  120. package/dist/commands/insights/intent/list.js.map +1 -0
  121. package/dist/commands/link.js +4 -3
  122. package/dist/commands/link.js.map +1 -1
  123. package/dist/commands/login.js +7 -5
  124. package/dist/commands/login.js.map +1 -1
  125. package/dist/commands/logout.js +1 -1
  126. package/dist/commands/logout.js.map +1 -1
  127. package/dist/commands/logs.js +1 -9
  128. package/dist/commands/logs.js.map +1 -1
  129. package/dist/commands/project/inspect.js +3 -3
  130. package/dist/commands/project/inspect.js.map +1 -1
  131. package/dist/commands/project/list.js +3 -3
  132. package/dist/commands/project/list.js.map +1 -1
  133. package/dist/commands/submission/create.d.ts +15 -0
  134. package/dist/commands/submission/create.js +59 -0
  135. package/dist/commands/submission/create.js.map +1 -0
  136. package/dist/commands/submission/inspect.d.ts +10 -0
  137. package/dist/commands/submission/inspect.js +56 -0
  138. package/dist/commands/submission/inspect.js.map +1 -0
  139. package/dist/commands/submission/list.d.ts +13 -0
  140. package/dist/commands/submission/list.js +63 -0
  141. package/dist/commands/submission/list.js.map +1 -0
  142. package/dist/commands/submission/update.d.ts +12 -0
  143. package/dist/commands/submission/update.js +37 -0
  144. package/dist/commands/submission/update.js.map +1 -0
  145. package/dist/commands/team/inspect.js +25 -10
  146. package/dist/commands/team/inspect.js.map +1 -1
  147. package/dist/commands/team/list.js +3 -3
  148. package/dist/commands/team/list.js.map +1 -1
  149. package/dist/commands/telemetry/destinations/create.d.ts +19 -0
  150. package/dist/commands/telemetry/destinations/create.js +57 -0
  151. package/dist/commands/telemetry/destinations/create.js.map +1 -0
  152. package/dist/commands/telemetry/destinations/delete.d.ts +13 -0
  153. package/dist/commands/telemetry/destinations/delete.js +27 -0
  154. package/dist/commands/telemetry/destinations/delete.js.map +1 -0
  155. package/dist/commands/telemetry/destinations/list.d.ts +13 -0
  156. package/dist/commands/telemetry/destinations/list.js +48 -0
  157. package/dist/commands/telemetry/destinations/list.js.map +1 -0
  158. package/dist/commands/telemetry/destinations/update.d.ts +20 -0
  159. package/dist/commands/telemetry/destinations/update.js +62 -0
  160. package/dist/commands/telemetry/destinations/update.js.map +1 -0
  161. package/dist/commands/tunnel.js +30 -66
  162. package/dist/commands/tunnel.js.map +1 -1
  163. package/dist/commands/whoami.js +1 -1
  164. package/dist/commands/whoami.js.map +1 -1
  165. package/dist/lib/agent-mode.d.ts +8 -1
  166. package/dist/lib/agent-mode.js +25 -26
  167. package/dist/lib/agent-mode.js.map +1 -1
  168. package/dist/lib/alpic-command.d.ts +2 -1
  169. package/dist/lib/alpic-command.js +20 -8
  170. package/dist/lib/alpic-command.js.map +1 -1
  171. package/dist/lib/alpic-sdk.d.ts +2 -0
  172. package/dist/lib/alpic-sdk.js +8 -0
  173. package/dist/lib/alpic-sdk.js.map +1 -0
  174. package/dist/lib/audit.d.ts +1 -0
  175. package/dist/lib/audit.js +24 -15
  176. package/dist/lib/audit.js.map +1 -1
  177. package/dist/lib/base-workflow.d.ts +2 -1
  178. package/dist/lib/base-workflow.js +3 -3
  179. package/dist/lib/base-workflow.js.map +1 -1
  180. package/dist/lib/deployment.d.ts +0 -21
  181. package/dist/lib/deployment.js +20 -69
  182. package/dist/lib/deployment.js.map +1 -1
  183. package/dist/lib/environment-variable.js +14 -13
  184. package/dist/lib/environment-variable.js.map +1 -1
  185. package/dist/lib/insights.d.ts +19 -0
  186. package/dist/lib/insights.js +54 -0
  187. package/dist/lib/insights.js.map +1 -0
  188. package/dist/lib/link.d.ts +1 -2
  189. package/dist/lib/link.js +20 -75
  190. package/dist/lib/link.js.map +1 -1
  191. package/dist/lib/logs.js +4 -5
  192. package/dist/lib/logs.js.map +1 -1
  193. package/dist/lib/playground.js +25 -25
  194. package/dist/lib/playground.js.map +1 -1
  195. package/dist/lib/project-settings.d.ts +7 -0
  196. package/dist/lib/project-settings.js +140 -0
  197. package/dist/lib/project-settings.js.map +1 -0
  198. package/dist/lib/project-settings.test.d.ts +1 -0
  199. package/dist/lib/project-settings.test.js +56 -0
  200. package/dist/lib/project-settings.test.js.map +1 -0
  201. package/dist/lib/publish.js +3 -3
  202. package/dist/lib/publish.js.map +1 -1
  203. package/dist/lib/resolve.d.ts +7 -6
  204. package/dist/lib/resolve.js +27 -23
  205. package/dist/lib/resolve.js.map +1 -1
  206. package/dist/lib/submission.d.ts +13 -0
  207. package/dist/lib/submission.js +52 -0
  208. package/dist/lib/submission.js.map +1 -0
  209. package/dist/lib/telemetry-destinations.d.ts +9 -0
  210. package/dist/lib/telemetry-destinations.js +21 -0
  211. package/dist/lib/telemetry-destinations.js.map +1 -0
  212. package/dist/lib/telemetry-destinations.test.d.ts +1 -0
  213. package/dist/lib/telemetry-destinations.test.js +14 -0
  214. package/dist/lib/telemetry-destinations.test.js.map +1 -0
  215. package/dist/lib/telemetry.js +27 -17
  216. package/dist/lib/telemetry.js.map +1 -1
  217. package/dist/lib/utils.d.ts +9 -1
  218. package/dist/lib/utils.js +28 -2
  219. package/dist/lib/utils.js.map +1 -1
  220. package/dist/lib/utils.test.js +43 -5
  221. package/dist/lib/utils.test.js.map +1 -1
  222. package/dist/lib/whoami.js +17 -0
  223. package/dist/lib/whoami.js.map +1 -0
  224. package/dist/sentry.js +3 -6
  225. package/dist/sentry.js.map +1 -1
  226. package/package.json +29 -32
  227. package/dist/lib/archive.d.ts +0 -7
  228. package/dist/lib/archive.js +0 -57
  229. package/dist/lib/archive.js.map +0 -1
  230. package/dist/lib/auth/auth.d.ts +0 -5
  231. package/dist/lib/auth/auth.js +0 -50
  232. package/dist/lib/auth/auth.js.map +0 -1
  233. package/dist/lib/auth/oauth/client.d.ts +0 -28
  234. package/dist/lib/auth/oauth/client.js +0 -116
  235. package/dist/lib/auth/oauth/client.js.map +0 -1
  236. package/dist/lib/auth/oauth/constants.d.ts +0 -2
  237. package/dist/lib/auth/oauth/constants.js +0 -3
  238. package/dist/lib/auth/oauth/constants.js.map +0 -1
  239. package/dist/lib/auth/oauth/server/assets/alpic-mountain.png +0 -0
  240. package/dist/lib/auth/oauth/server/assets/authorize.html +0 -234
  241. package/dist/lib/auth/oauth/server/assets/callback.html +0 -88
  242. package/dist/lib/auth/oauth/server/index.d.ts +0 -9
  243. package/dist/lib/auth/oauth/server/index.js +0 -128
  244. package/dist/lib/auth/oauth/server/index.js.map +0 -1
  245. package/dist/lib/auth/whoami.js +0 -47
  246. package/dist/lib/auth/whoami.js.map +0 -1
  247. package/dist/lib/config.d.ts +0 -12
  248. package/dist/lib/config.js +0 -32
  249. package/dist/lib/config.js.map +0 -1
  250. package/dist/lib/global-store.d.ts +0 -28
  251. package/dist/lib/global-store.js +0 -76
  252. package/dist/lib/global-store.js.map +0 -1
  253. package/dist/lib/upload.d.ts +0 -1
  254. package/dist/lib/upload.js +0 -13
  255. package/dist/lib/upload.js.map +0 -1
  256. package/dist/lib/vendor/pipenet.d.ts +0 -1
  257. package/dist/lib/vendor/pipenet.js +0 -16877
  258. package/dist/lib/vendor/pipenet.js.LEGAL.txt +0 -17
  259. package/dist/lib/vendor/pipenet.js.map +0 -7
  260. package/dist/types.d.ts +0 -8
  261. package/dist/types.js +0 -2
  262. package/dist/types.js.map +0 -1
  263. /package/dist/lib/{auth/whoami.d.ts → whoami.d.ts} +0 -0
package/dist/lib/utils.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { z } from "zod";
1
2
  export function pollIntervalMs(defaultMs) {
2
3
  const override = process.env.ALPIC_POLL_INTERVAL_MS;
3
4
  if (override !== undefined) {
@@ -51,7 +52,32 @@ export const formatAgo = (date, options = {}) => {
51
52
  return rtf.format(value, unit);
52
53
  };
53
54
  export const plural = (count, word) => `${count} ${word}${count === 1 ? "" : "s"}`;
54
- import { z } from "zod";
55
+ const numberFormatter = new Intl.NumberFormat("en-US");
56
+ export const formatUsage = ({ requestCount, includedRequests, periodEnd, now, }) => {
57
+ const allowance = includedRequests === null ? "" : ` / ${numberFormatter.format(includedRequests)}`;
58
+ return `${numberFormatter.format(requestCount)}${allowance} requests (resets ${formatAgo(periodEnd, { now })})`;
59
+ };
60
+ const errorStatusSchema = z.object({ status: z.number() });
61
+ const errorCauseStatusSchema = z.object({ cause: errorStatusSchema });
62
+ export function getResponseErrorStatus(error) {
63
+ const direct = errorStatusSchema.safeParse(error);
64
+ if (direct.success) {
65
+ return direct.data.status;
66
+ }
67
+ const viaCause = errorCauseStatusSchema.safeParse(error);
68
+ if (viaCause.success) {
69
+ return viaCause.data.cause.status;
70
+ }
71
+ return undefined;
72
+ }
55
73
  const RELATIVE_TIME_RE = /^\d+(\.\d+)?\s*(ms|s|m|h|d|w|y)$/i;
56
- export const isValidLogTimeInput = (input) => RELATIVE_TIME_RE.test(input) || z.iso.datetime().safeParse(input).success;
74
+ export const isValidTimeInput = (input) => RELATIVE_TIME_RE.test(input) || z.iso.datetime().safeParse(input).success;
75
+ export function validateTimeFlag(value, flagName) {
76
+ if (value === undefined) {
77
+ return;
78
+ }
79
+ if (!isValidTimeInput(value)) {
80
+ throw new Error(`Invalid --${flagName} value: "${value}". Use a relative duration (1h, 30m, 2d) or ISO 8601 date (2024-01-01T00:00:00Z).`);
81
+ }
82
+ }
57
83
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { describe, expect, it } from "vitest";
2
- import { formatAgo, isValidLogTimeInput } from "./utils.js";
2
+ import { formatAgo, formatUsage, getResponseErrorStatus, isValidTimeInput, validateTimeFlag } from "./utils.js";
3
3
  describe("formatAgo", () => {
4
4
  const now = new Date("2026-01-01T00:00:00.000Z");
5
5
  it("formats past dates", () => {
@@ -24,21 +24,59 @@ describe("formatAgo", () => {
24
24
  })).toBe("3mo");
25
25
  });
26
26
  });
27
- describe("isValidLogTimeInput", () => {
27
+ describe("isValidTimeInput", () => {
28
28
  it("accepts relative durations", () => {
29
29
  for (const value of ["1s", "30m", "2h", "1d", "1w", "1y", "1.5h", "10 ms", "5 m"]) {
30
- expect(isValidLogTimeInput(value)).toBe(true);
30
+ expect(isValidTimeInput(value)).toBe(true);
31
31
  }
32
32
  });
33
33
  it("accepts ISO 8601 dates", () => {
34
34
  for (const value of ["2024-01-01T00:00:00Z", "2024-06-01T12:34:56.789Z"]) {
35
- expect(isValidLogTimeInput(value)).toBe(true);
35
+ expect(isValidTimeInput(value)).toBe(true);
36
36
  }
37
37
  });
38
38
  it("rejects invalid values", () => {
39
39
  for (const value of ["", "abc", "123", "1x", "2024-13-01T00:00:00Z"]) {
40
- expect(isValidLogTimeInput(value)).toBe(false);
40
+ expect(isValidTimeInput(value)).toBe(false);
41
41
  }
42
42
  });
43
43
  });
44
+ describe("formatUsage", () => {
45
+ const now = new Date("2026-08-20T00:00:00.000Z");
46
+ const periodEnd = new Date("2026-09-01T00:00:00.000Z");
47
+ it("renders the count against the plan allowance", () => {
48
+ expect(formatUsage({ requestCount: 4_231, includedRequests: 10_000, periodEnd, now })).toBe("4,231 / 10,000 requests (resets in 12 days)");
49
+ });
50
+ it("renders zero for a team that has made no request in the window", () => {
51
+ expect(formatUsage({ requestCount: 0, includedRequests: 10_000, periodEnd, now })).toBe("0 / 10,000 requests (resets in 12 days)");
52
+ });
53
+ it("omits the allowance when the plan has no published one", () => {
54
+ expect(formatUsage({ requestCount: 3_000_000, includedRequests: null, periodEnd, now })).toBe("3,000,000 requests (resets in 12 days)");
55
+ });
56
+ });
57
+ describe("validateTimeFlag", () => {
58
+ it("accepts missing and valid values", () => {
59
+ expect(() => validateTimeFlag(undefined, "since")).not.toThrow();
60
+ expect(() => validateTimeFlag("1h", "since")).not.toThrow();
61
+ expect(() => validateTimeFlag("2024-01-01T00:00:00Z", "until")).not.toThrow();
62
+ });
63
+ it("includes the flag name when rejecting invalid values", () => {
64
+ expect(() => validateTimeFlag("yesterday", "since")).toThrow('Invalid --since value: "yesterday"');
65
+ });
66
+ });
67
+ describe("getResponseErrorStatus", () => {
68
+ it("reads a numeric status off the error itself", () => {
69
+ expect(getResponseErrorStatus(Object.assign(new Error("challenge"), { status: 401 }))).toBe(401);
70
+ });
71
+ it("reads the status off a Response held as cause", () => {
72
+ expect(getResponseErrorStatus(new Error("unexpected", { cause: new Response(null, { status: 403 }) }))).toBe(403);
73
+ expect(getResponseErrorStatus(new Error("unexpected", { cause: new Response(null, { status: 500 }) }))).toBe(500);
74
+ });
75
+ it("returns undefined when no status is present", () => {
76
+ expect(getResponseErrorStatus(new Error("boom"))).toBeUndefined();
77
+ expect(getResponseErrorStatus("boom")).toBeUndefined();
78
+ expect(getResponseErrorStatus(undefined)).toBeUndefined();
79
+ expect(getResponseErrorStatus({ cause: {} })).toBeUndefined();
80
+ });
81
+ });
44
82
  //# sourceMappingURL=utils.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/lib/utils.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.test.js","sourceRoot":"","sources":["../../src/lib/utils.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import chalk from "chalk";
2
+ import { alpic } from "./alpic-sdk.js";
3
+ export async function getWhoamiInfoMessage() {
4
+ const info = await alpic.whoami();
5
+ if (info.method === "unauthenticated") {
6
+ return "Not logged in. Run `alpic login` or set ALPIC_API_KEY.";
7
+ }
8
+ if (info.method === "api_key") {
9
+ return `Authenticated via API key — Team: ${chalk.green(info.team?.name ?? "unknown")}`;
10
+ }
11
+ let label = chalk.cyan(info.email ?? "unknown");
12
+ if (info.name) {
13
+ label = `${chalk.green(info.name)} (${label})`;
14
+ }
15
+ return `Authenticated as ${label}`;
16
+ }
17
+ //# sourceMappingURL=whoami.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../src/lib/whoami.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,MAAM,CAAC,KAAK,UAAU,oBAAoB;IACxC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,MAAM,EAAE,CAAC;IAElC,IAAI,IAAI,CAAC,MAAM,KAAK,iBAAiB,EAAE,CAAC;QACtC,OAAO,wDAAwD,CAAC;IAClE,CAAC;IAED,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC9B,OAAO,qCAAqC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,IAAI,SAAS,CAAC,EAAE,CAAC;IAC1F,CAAC;IAED,IAAI,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IAChD,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,KAAK,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC;IACjD,CAAC;IAED,OAAO,oBAAoB,KAAK,EAAE,CAAC;AACrC,CAAC"}
package/dist/sentry.js CHANGED
@@ -12,14 +12,11 @@ export function initSentry(release) {
12
12
  release,
13
13
  // No tracing, profiling, or logs for a one-shot CLI process.
14
14
  tracesSampleRate: 0,
15
- // The default integrations register uncaughtException / unhandledRejection
16
- // handlers and start OpenTelemetry. We init lazily after oclif has already
17
- // caught the error, so those are pure overhead with no benefit.
15
+ // The default integrations register uncaughtException/unhandledRejection handlers and start OpenTelemetry — pure overhead since we init lazily after oclif has already caught the error.
18
16
  defaultIntegrations: false,
17
+ integrations: [Sentry.linkedErrorsIntegration()],
19
18
  beforeSend(event) {
20
- // Stack frames and exception messages often contain the user's home
21
- // directory. Replace it with `~` so we don't ship absolute paths to
22
- // Sentry.
19
+ // Stack frames and exception messages often contain the user's home directory; replace it with `~` so absolute paths never ship to Sentry.
23
20
  const home = os.homedir();
24
21
  if (!home) {
25
22
  return event;
@@ -1 +1 @@
1
- {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,GAAG,iGAAiG,CAAC;AAErH,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;IAEnB,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,UAAU;QACf,OAAO;QACP,6DAA6D;QAC7D,gBAAgB,EAAE,CAAC;QACnB,2EAA2E;QAC3E,2EAA2E;QAC3E,gEAAgE;QAChE,mBAAmB,EAAE,KAAK;QAC1B,UAAU,CAAC,KAAK;YACd,oEAAoE;YACpE,oEAAoE;YACpE,UAAU;YACV,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3F,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;gBAC/C,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC3B,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;oBAChD,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACvC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"sentry.js","sourceRoot":"","sources":["../src/sentry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,KAAK,MAAM,MAAM,cAAc,CAAC;AAEvC,MAAM,UAAU,GAAG,iGAAiG,CAAC;AAErH,IAAI,WAAW,GAAG,KAAK,CAAC;AAExB,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,IAAI,WAAW,EAAE,CAAC;QAChB,OAAO;IACT,CAAC;IACD,WAAW,GAAG,IAAI,CAAC;IAEnB,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,UAAU;QACf,OAAO;QACP,6DAA6D;QAC7D,gBAAgB,EAAE,CAAC;QACnB,yLAAyL;QACzL,mBAAmB,EAAE,KAAK;QAC1B,YAAY,EAAE,CAAC,MAAM,CAAC,uBAAuB,EAAE,CAAC;QAChD,UAAU,CAAC,KAAK;YACd,2IAA2I;YAC3I,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,OAAO,KAAK,CAAC;YACf,CAAC;YACD,MAAM,KAAK,GAAG,CAAC,KAAyB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;YAC3F,KAAK,MAAM,EAAE,IAAI,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;gBAC/C,EAAE,CAAC,KAAK,GAAG,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gBAC3B,KAAK,MAAM,KAAK,IAAI,EAAE,CAAC,UAAU,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;oBAChD,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;oBACvC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "alpic",
3
- "version": "0.0.0-dev.gee3e167",
3
+ "version": "0.0.0-dev.gee425da",
4
4
  "description": "The command-line interface for Alpic",
5
5
  "homepage": "https://alpic.ai",
6
6
  "preferGlobal": true,
@@ -14,7 +14,7 @@
14
14
  "dist"
15
15
  ],
16
16
  "engines": {
17
- "node": ">= 18.20.8"
17
+ "node": ">= 22.23.2"
18
18
  },
19
19
  "keywords": [
20
20
  "chatgpt",
@@ -25,46 +25,44 @@
25
25
  "author": "Alpic",
26
26
  "license": "ISC",
27
27
  "dependencies": {
28
- "@clack/prompts": "^1.5.1",
29
- "@oclif/core": "^4.11.4",
30
- "@orpc/client": "^1.14.6",
31
- "@orpc/contract": "^1.14.6",
32
- "@orpc/openapi-client": "^1.14.6",
33
- "@sentry/node": "^10.57.0",
28
+ "@alpic-ai/api": "0.0.0-dev.gee425da",
29
+ "@alpic-ai/sdk": "0.0.0-dev.gee425da",
30
+ "@clack/prompts": "^1.8.1",
31
+ "@oclif/core": "^5.1.2",
32
+ "@orpc/client": "^1.15.4",
33
+ "@orpc/contract": "^1.15.4",
34
+ "@orpc/openapi-client": "^1.15.4",
35
+ "@sentry/node": "^11.4.0",
34
36
  "@t3-oss/env-core": "^0.13.11",
35
- "@vercel/detect-agent": "^1.2.3",
36
- "chalk": "^5.6.2",
37
+ "@vercel/detect-agent": "^1.2.5",
38
+ "chalk": "^6.0.1",
37
39
  "ci-info": "^4.4.0",
38
- "env-paths": "^4.0.0",
39
40
  "envfile": "^7.1.0",
40
41
  "jwt-decode": "^4.0.0",
41
- "open": "^11.0.0",
42
- "openid-client": "^6.8.4",
43
- "posthog-node": "^5.37.0",
44
- "semver": "^7.8.4",
45
- "tar": "^7.5.16",
46
- "undici": "^8.4.1",
47
- "zod": "^4.4.3",
48
- "@alpic-ai/api": "0.0.0-dev.gee3e167"
42
+ "open": "^11.0.4",
43
+ "posthog-node": "^5.55.0",
44
+ "semver": "^7.8.5",
45
+ "std-env": "^4.3.0",
46
+ "undici": "^6.28.1",
47
+ "zod": "^4.5.4"
49
48
  },
50
49
  "devDependencies": {
51
- "@orpc/openapi": "^1.14.6",
52
- "@orpc/server": "^1.14.6",
53
- "@orpc/zod": "^1.14.6",
50
+ "@orpc/openapi": "^1.15.4",
51
+ "@orpc/server": "^1.15.4",
52
+ "@orpc/zod": "^1.15.4",
54
53
  "@total-typescript/tsconfig": "^1.0.4",
55
54
  "@types/express": "^5.0.6",
56
- "@types/node": "^25.9.3",
57
- "@types/semver": "^7.7.1",
58
- "esbuild": "^0.28.1",
55
+ "@types/node": "^25.9.9",
56
+ "@types/semver": "^7.8.0",
59
57
  "express": "^5.2.1",
60
- "jsdom": "^29.1.1",
58
+ "jsdom": "^30.1.1",
61
59
  "node-pty": "1.1.0",
62
- "pipenet": "1.4.0",
60
+ "pipenet": "1.4.2",
63
61
  "selfsigned": "^5.5.0",
64
62
  "shx": "^0.4.0",
65
63
  "ts-node": "^10.9.2",
66
64
  "typescript": "^6.0.3",
67
- "vitest": "^4.1.8"
65
+ "vitest": "^5.0.3"
68
66
  },
69
67
  "bin": {
70
68
  "alpic": "bin/run.js"
@@ -79,15 +77,14 @@
79
77
  }
80
78
  },
81
79
  "scripts": {
82
- "build": "shx rm -rf dist && tsc && pnpm run build:assets && node scripts/bundle-vendor.mjs",
83
- "build:assets": "shx cp -r src/lib/auth/oauth/server/assets dist/lib/auth/oauth/server/",
80
+ "build": "shx rm -rf dist && tsc",
84
81
  "format": "biome check --write --error-on-warnings .",
85
82
  "test": "pnpm run test:unit && pnpm run test:type && pnpm run test:format && pnpm run test:pack",
86
83
  "test:unit": "vitest run",
87
84
  "test:format": "biome check --error-on-warnings .",
88
- "test:type": "tsc --noEmit",
85
+ "test:type": "tsgo --noEmit",
89
86
  "test:pack": "sh scripts/test-pack.sh",
90
87
  "update:docs": "claude --add-dir ../../docs --permission-mode acceptEdits -p \"/update-cli-docs\" 2>&1 && pnpm --filter docs run format",
91
- "publish:npm": "pnpm publish --tag \"${NPM_TAG}\" --access public --no-git-checks"
88
+ "publish:npm": "../../scripts/publish-if-new.sh"
92
89
  }
93
90
  }
@@ -1,7 +0,0 @@
1
- export declare function ensureGitAvailable(): void;
2
- export declare function getGitFiles(): string[];
3
- export declare function getFilesToPack(): string[];
4
- export declare function createTarArchive(files: string[]): Promise<{
5
- tmpDir: string;
6
- archivePath: string;
7
- }>;
@@ -1,57 +0,0 @@
1
- import { execSync } from "node:child_process";
2
- import { existsSync, mkdtempSync, rmSync } from "node:fs";
3
- import { tmpdir } from "node:os";
4
- import { join } from "node:path";
5
- import { create as tarCreate } from "tar";
6
- const GIT_FILES_MAX_BUFFER = 10 * 1024 * 1024;
7
- function isGitRepository() {
8
- return existsSync(join(process.cwd(), ".git"));
9
- }
10
- export function ensureGitAvailable() {
11
- try {
12
- execSync("git --version", { stdio: "ignore" });
13
- }
14
- catch {
15
- throw new Error("Git is required to deploy. Please install git and ensure it is available in your PATH.");
16
- }
17
- }
18
- export function getGitFiles() {
19
- const output = execSync("git ls-files -z --cached --others --exclude-standard -- .", {
20
- encoding: "utf8",
21
- maxBuffer: GIT_FILES_MAX_BUFFER,
22
- });
23
- const files = output.split("\0").filter(Boolean);
24
- if (files.length === 0) {
25
- throw new Error("No tracked or untracked files found. Ensure you are in a git repository with files to deploy.");
26
- }
27
- return files;
28
- }
29
- export function getFilesToPack() {
30
- if (isGitRepository()) {
31
- return getGitFiles();
32
- }
33
- ensureGitAvailable();
34
- execSync("git init", { stdio: "ignore" });
35
- try {
36
- return getGitFiles();
37
- }
38
- finally {
39
- rmSync(join(process.cwd(), ".git"), { recursive: true, force: true });
40
- }
41
- }
42
- export async function createTarArchive(files) {
43
- const tmpDir = mkdtempSync(join(tmpdir(), "alpic-deploy-"));
44
- const archivePath = join(tmpDir, "source.tar.gz");
45
- try {
46
- await tarCreate({
47
- gzip: true,
48
- file: archivePath,
49
- }, files);
50
- }
51
- catch (error) {
52
- rmSync(tmpDir, { recursive: true, force: true });
53
- throw error;
54
- }
55
- return { tmpDir, archivePath };
56
- }
57
- //# sourceMappingURL=archive.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"archive.js","sourceRoot":"","sources":["../../src/lib/archive.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,IAAI,SAAS,EAAE,MAAM,KAAK,CAAC;AAE1C,MAAM,oBAAoB,GAAG,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC;AAE9C,SAAS,eAAe;IACtB,OAAO,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AACjD,CAAC;AAED,MAAM,UAAU,kBAAkB;IAChC,IAAI,CAAC;QACH,QAAQ,CAAC,eAAe,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IACjD,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,wFAAwF,CAAC,CAAC;IAC5G,CAAC;AACH,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,MAAM,GAAG,QAAQ,CAAC,2DAA2D,EAAE;QACnF,QAAQ,EAAE,MAAM;QAChB,SAAS,EAAE,oBAAoB;KAChC,CAAC,CAAC;IACH,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACjD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,+FAA+F,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,IAAI,eAAe,EAAE,EAAE,CAAC;QACtB,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;IACD,kBAAkB,EAAE,CAAC;IACrB,QAAQ,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC1C,IAAI,CAAC;QACH,OAAO,WAAW,EAAE,CAAC;IACvB,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxE,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAe;IACpD,MAAM,MAAM,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,eAAe,CAAC,CAAC,CAAC;IAC5D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,SAAS,CACb;YACE,IAAI,EAAE,IAAI;YACV,IAAI,EAAE,WAAW;SAClB,EACD,KAAK,CACN,CAAC;IACJ,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,KAAK,CAAC;IACd,CAAC;IACD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,CAAC;AACjC,CAAC"}
@@ -1,5 +0,0 @@
1
- export declare function getApiToken(): Promise<string | undefined>;
2
- export declare function isAuthenticated(): Promise<boolean>;
3
- export declare function oauthLogin(opts?: {
4
- isPlain?: boolean;
5
- }): Promise<void>;
@@ -1,50 +0,0 @@
1
- import * as p from "@clack/prompts";
2
- import chalk from "chalk";
3
- import open from "open";
4
- import { globalStore } from "../global-store.js";
5
- import { aliasMachineToUser } from "../telemetry.js";
6
- import { getOAuthClient } from "./oauth/client.js";
7
- import { getLoginPageUrl, listenToOAuthCallback } from "./oauth/server/index.js";
8
- export async function getApiToken() {
9
- const token = process.env.ALPIC_API_KEY ?? (await getOAuthClient().getValidAccessToken())?.access_token;
10
- return token;
11
- }
12
- export async function isAuthenticated() {
13
- const isAuthenticatedViaApiKey = hasApiKey();
14
- if (isAuthenticatedViaApiKey) {
15
- return true;
16
- }
17
- const isAuthenticatedViaOAuth = await hasValidAccessToken();
18
- if (isAuthenticatedViaOAuth) {
19
- return true;
20
- }
21
- return false;
22
- }
23
- function hasApiKey() {
24
- return process.env.ALPIC_API_KEY !== undefined;
25
- }
26
- async function hasValidAccessToken() {
27
- return (await getOAuthClient().getValidAccessToken()) !== null;
28
- }
29
- export async function oauthLogin(opts) {
30
- const { authorizeUrl, state, nonce, codeVerifier } = await getOAuthClient().prepareOAuthConfig();
31
- const loginUrl = getLoginPageUrl();
32
- if (opts?.isPlain) {
33
- console.log(`Opening browser to log in: ${loginUrl}`);
34
- }
35
- else {
36
- p.log.message(`Opening browser to log in…\n\nIf the browser does not open, copy this URL: ${chalk.cyan(loginUrl)}`);
37
- }
38
- if (!process.env.ALPIC_NO_OPEN) {
39
- await open(loginUrl);
40
- }
41
- const storedToken = await listenToOAuthCallback({
42
- state,
43
- nonce,
44
- codeVerifier,
45
- authorizeUrl: authorizeUrl.toString(),
46
- });
47
- globalStore.saveCredentials(storedToken);
48
- await aliasMachineToUser(storedToken.sub);
49
- }
50
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/auth/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEjF,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,MAAM,cAAc,EAAE,CAAC,mBAAmB,EAAE,CAAC,EAAE,YAAY,CAAC;IAExG,OAAO,KAAK,CAAC;AACf,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,eAAe;IACnC,MAAM,wBAAwB,GAAG,SAAS,EAAE,CAAC;IAC7C,IAAI,wBAAwB,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,uBAAuB,GAAG,MAAM,mBAAmB,EAAE,CAAC;IAC5D,IAAI,uBAAuB,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC;AACjD,CAAC;AAED,KAAK,UAAU,mBAAmB;IAChC,OAAO,CAAC,MAAM,cAAc,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,IAAI,CAAC;AACjE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,IAA4B;IAC3D,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,MAAM,cAAc,EAAE,CAAC,kBAAkB,EAAE,CAAC;IAEjG,MAAM,QAAQ,GAAG,eAAe,EAAE,CAAC;IACnC,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IACxD,CAAC;SAAM,CAAC;QACN,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,8EAA8E,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACtH,CAAC;IACD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC/B,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,MAAM,qBAAqB,CAAC;QAC9C,KAAK;QACL,KAAK;QACL,YAAY;QACZ,YAAY,EAAE,YAAY,CAAC,QAAQ,EAAE;KACtC,CAAC,CAAC;IAEH,WAAW,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IAEzC,MAAM,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC"}
@@ -1,28 +0,0 @@
1
- import * as openid from "openid-client";
2
- import { type Credentials } from "../../global-store.js";
3
- export declare class OAuthClient {
4
- private config;
5
- initialize: Promise<void>;
6
- constructor();
7
- getValidAccessToken(): Promise<Credentials | null>;
8
- fetchUserInfo(credentials: Credentials): Promise<openid.UserInfoResponse>;
9
- refreshAccessToken(credentials: Credentials): Promise<Credentials>;
10
- prepareOAuthConfig(): Promise<{
11
- authorizeUrl: URL;
12
- state: string;
13
- nonce: string;
14
- codeVerifier: string;
15
- }>;
16
- exchangeAuthorizationCode({ url, codeVerifier, state, nonce, }: {
17
- url: URL;
18
- codeVerifier: string;
19
- state: string;
20
- nonce: string;
21
- }): Promise<openid.TokenEndpointResponse & openid.TokenEndpointResponseHelpers>;
22
- getExpiresAt(expires_in: number): number;
23
- private loadConfig;
24
- private fetchOAuthProtectedResourceConfig;
25
- private getConfig;
26
- private isAccessTokenExpired;
27
- }
28
- export declare function getOAuthClient(): OAuthClient;
@@ -1,116 +0,0 @@
1
- import * as openid from "openid-client";
2
- import { env } from "../../../env.js";
3
- import { globalStore } from "../../global-store.js";
4
- import { LOOPBACK_HOST, LOOPBACK_PORT } from "./constants.js";
5
- const SCOPES = ["openid", "email", "profile"];
6
- export class OAuthClient {
7
- config = null;
8
- initialize;
9
- constructor() {
10
- this.initialize = this.loadConfig();
11
- }
12
- async getValidAccessToken() {
13
- await this.initialize;
14
- const stored = globalStore.getCredentials();
15
- if (!stored) {
16
- return null;
17
- }
18
- if (this.isAccessTokenExpired(stored)) {
19
- try {
20
- return await this.refreshAccessToken(stored);
21
- }
22
- catch {
23
- return null;
24
- }
25
- }
26
- return stored;
27
- }
28
- async fetchUserInfo(credentials) {
29
- return openid.fetchUserInfo(await this.getConfig(), credentials.access_token, credentials.sub);
30
- }
31
- async refreshAccessToken(credentials) {
32
- if (!credentials.refresh_token) {
33
- throw new Error("No refresh token available");
34
- }
35
- const response = await openid.refreshTokenGrant(await this.getConfig(), credentials.refresh_token);
36
- const refreshed = {
37
- access_token: response.access_token,
38
- refresh_token: response.refresh_token ?? credentials.refresh_token,
39
- expires_at: this.getExpiresAt(response.expires_in ?? 0),
40
- sub: credentials.sub,
41
- };
42
- globalStore.saveCredentials(refreshed);
43
- return refreshed;
44
- }
45
- async prepareOAuthConfig() {
46
- await this.initialize;
47
- if (!this.config) {
48
- throw new Error("Config not loaded");
49
- }
50
- const codeVerifier = openid.randomPKCECodeVerifier();
51
- const codeChallenge = await openid.calculatePKCECodeChallenge(codeVerifier);
52
- const state = openid.randomState();
53
- const nonce = openid.randomNonce();
54
- const callbackUrl = new URL(`http://${LOOPBACK_HOST}:${LOOPBACK_PORT}/callback`);
55
- const authorizeUrl = openid.buildAuthorizationUrl(this.config, {
56
- redirect_uri: callbackUrl.toString(),
57
- scope: SCOPES.join(" "),
58
- code_challenge: codeChallenge,
59
- code_challenge_method: "S256",
60
- state,
61
- nonce,
62
- });
63
- return { authorizeUrl, state, nonce, codeVerifier };
64
- }
65
- async exchangeAuthorizationCode({ url, codeVerifier, state, nonce, }) {
66
- return await openid.authorizationCodeGrant(await this.getConfig(), url, {
67
- pkceCodeVerifier: codeVerifier,
68
- expectedState: state,
69
- expectedNonce: nonce,
70
- });
71
- }
72
- getExpiresAt(expires_in) {
73
- return expires_in !== undefined ? Math.floor(Date.now() / 1000) + expires_in : Date.now() / 1000 + 3600;
74
- }
75
- async loadConfig() {
76
- const protectedResourceConfig = await this.fetchOAuthProtectedResourceConfig();
77
- const issuer = protectedResourceConfig.authorization_servers[0];
78
- if (!issuer) {
79
- throw new Error("No authorization server in OAuth protected resource config");
80
- }
81
- const issuerUrl = new URL(issuer);
82
- try {
83
- this.config = await openid.discovery(issuerUrl, env.ALPIC_COGNITO_CLIENT_ID);
84
- }
85
- catch {
86
- throw new Error("Failed to discover OAuth config");
87
- }
88
- }
89
- async fetchOAuthProtectedResourceConfig() {
90
- const baseUrl = env.ALPIC_API_BASE_URL;
91
- const response = await fetch(`${baseUrl}/.well-known/oauth-protected-resource`);
92
- if (!response.ok) {
93
- throw new Error(`Failed to load service config from ${baseUrl} (${response.status} ${response.statusText})`);
94
- }
95
- return (await response.json());
96
- }
97
- async getConfig() {
98
- await this.initialize;
99
- if (!this.config) {
100
- throw new Error("Config not loaded");
101
- }
102
- return this.config;
103
- }
104
- isAccessTokenExpired(credentials) {
105
- const EXPIRATION_WINDOW_IN_SECONDS = 300;
106
- return Date.now() / 1000 + EXPIRATION_WINDOW_IN_SECONDS >= credentials.expires_at;
107
- }
108
- }
109
- let _oAuthClient = null;
110
- export function getOAuthClient() {
111
- if (!_oAuthClient) {
112
- _oAuthClient = new OAuthClient();
113
- }
114
- return _oAuthClient;
115
- }
116
- //# sourceMappingURL=client.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/client.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const LOOPBACK_HOST = "127.0.0.1";
2
- export declare const LOOPBACK_PORT = 38472;
@@ -1,3 +0,0 @@
1
- export const LOOPBACK_HOST = "127.0.0.1";
2
- export const LOOPBACK_PORT = 38472;
3
- //# sourceMappingURL=constants.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../../src/lib/auth/oauth/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,WAAW,CAAC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,KAAK,CAAC"}