@getbrevo/cli 2.0.1 → 2.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 (213) hide show
  1. package/CHANGELOG.md +221 -0
  2. package/README.md +8 -5
  3. package/agent-context/AGENTS.md +59 -15
  4. package/agent-context/SKILL.md +70 -14
  5. package/dist/{templates → bin}/files/AGENTS.md.tmpl +11 -1
  6. package/dist/{templates → bin}/files/CLAUDE.md.tmpl +8 -0
  7. package/dist/{templates → bin}/files/README.md.tmpl +11 -14
  8. package/dist/bin/files/app-config.json.tmpl +16 -0
  9. package/dist/{templates → bin}/files/src/oauth/.env.example.tmpl +8 -0
  10. package/dist/{templates → bin}/files/src/oauth/.env.local.tmpl +2 -0
  11. package/dist/{templates → bin}/files/src/oauth/handler.js.tmpl +49 -7
  12. package/dist/{templates → bin}/files/src/oauth/server.js.tmpl +20 -14
  13. package/dist/{templates → bin}/files/src/oauth/token-store.js.tmpl +19 -0
  14. package/dist/bin/index.js +660 -221
  15. package/dist/bin/index.js.map +7 -1
  16. package/package.json +6 -4
  17. package/dist/api/client.d.ts +0 -25
  18. package/dist/api/client.d.ts.map +0 -1
  19. package/dist/api/client.js +0 -205
  20. package/dist/api/client.js.map +0 -1
  21. package/dist/bin/index.d.ts +0 -3
  22. package/dist/bin/index.d.ts.map +0 -1
  23. package/dist/commands/app/create.d.ts +0 -8
  24. package/dist/commands/app/create.d.ts.map +0 -1
  25. package/dist/commands/app/create.js +0 -325
  26. package/dist/commands/app/create.js.map +0 -1
  27. package/dist/commands/app/credentials.d.ts +0 -6
  28. package/dist/commands/app/credentials.d.ts.map +0 -1
  29. package/dist/commands/app/credentials.js +0 -114
  30. package/dist/commands/app/credentials.js.map +0 -1
  31. package/dist/commands/app/delete.d.ts +0 -6
  32. package/dist/commands/app/delete.d.ts.map +0 -1
  33. package/dist/commands/app/delete.js +0 -167
  34. package/dist/commands/app/delete.js.map +0 -1
  35. package/dist/commands/app/list.d.ts +0 -4
  36. package/dist/commands/app/list.d.ts.map +0 -1
  37. package/dist/commands/app/list.js +0 -71
  38. package/dist/commands/app/list.js.map +0 -1
  39. package/dist/commands/app/scaffold.d.ts +0 -5
  40. package/dist/commands/app/scaffold.d.ts.map +0 -1
  41. package/dist/commands/app/scaffold.js +0 -213
  42. package/dist/commands/app/scaffold.js.map +0 -1
  43. package/dist/commands/app/scopes.d.ts +0 -2
  44. package/dist/commands/app/scopes.d.ts.map +0 -1
  45. package/dist/commands/app/scopes.js +0 -81
  46. package/dist/commands/app/scopes.js.map +0 -1
  47. package/dist/commands/app/start.d.ts +0 -5
  48. package/dist/commands/app/start.d.ts.map +0 -1
  49. package/dist/commands/app/start.js +0 -220
  50. package/dist/commands/app/start.js.map +0 -1
  51. package/dist/commands/app/update.d.ts +0 -2
  52. package/dist/commands/app/update.d.ts.map +0 -1
  53. package/dist/commands/app/update.js +0 -444
  54. package/dist/commands/app/update.js.map +0 -1
  55. package/dist/commands/definitions.d.ts +0 -5
  56. package/dist/commands/definitions.d.ts.map +0 -1
  57. package/dist/commands/definitions.js +0 -262
  58. package/dist/commands/definitions.js.map +0 -1
  59. package/dist/commands/init.d.ts +0 -2
  60. package/dist/commands/init.d.ts.map +0 -1
  61. package/dist/commands/init.js +0 -106
  62. package/dist/commands/init.js.map +0 -1
  63. package/dist/commands/login.d.ts +0 -6
  64. package/dist/commands/login.d.ts.map +0 -1
  65. package/dist/commands/login.js +0 -251
  66. package/dist/commands/login.js.map +0 -1
  67. package/dist/commands/logout.d.ts +0 -5
  68. package/dist/commands/logout.d.ts.map +0 -1
  69. package/dist/commands/logout.js +0 -54
  70. package/dist/commands/logout.js.map +0 -1
  71. package/dist/commands/skill/install.d.ts +0 -4
  72. package/dist/commands/skill/install.d.ts.map +0 -1
  73. package/dist/commands/skill/install.js +0 -29
  74. package/dist/commands/skill/install.js.map +0 -1
  75. package/dist/commands/skill/uninstall.d.ts +0 -4
  76. package/dist/commands/skill/uninstall.d.ts.map +0 -1
  77. package/dist/commands/skill/uninstall.js +0 -23
  78. package/dist/commands/skill/uninstall.js.map +0 -1
  79. package/dist/commands/whoami.d.ts +0 -4
  80. package/dist/commands/whoami.d.ts.map +0 -1
  81. package/dist/commands/whoami.js +0 -85
  82. package/dist/commands/whoami.js.map +0 -1
  83. package/dist/container.d.ts +0 -7
  84. package/dist/container.d.ts.map +0 -1
  85. package/dist/container.js +0 -28
  86. package/dist/container.js.map +0 -1
  87. package/dist/lang/en.d.ts +0 -161
  88. package/dist/lang/en.d.ts.map +0 -1
  89. package/dist/lang/en.js +0 -188
  90. package/dist/lang/en.js.map +0 -1
  91. package/dist/lib/abort.d.ts +0 -3
  92. package/dist/lib/abort.d.ts.map +0 -1
  93. package/dist/lib/abort.js +0 -30
  94. package/dist/lib/abort.js.map +0 -1
  95. package/dist/lib/auth-guard.d.ts +0 -3
  96. package/dist/lib/auth-guard.d.ts.map +0 -1
  97. package/dist/lib/auth-guard.js +0 -47
  98. package/dist/lib/auth-guard.js.map +0 -1
  99. package/dist/lib/browser.d.ts +0 -2
  100. package/dist/lib/browser.d.ts.map +0 -1
  101. package/dist/lib/browser.js +0 -16
  102. package/dist/lib/browser.js.map +0 -1
  103. package/dist/lib/cli-version.d.ts +0 -2
  104. package/dist/lib/cli-version.d.ts.map +0 -1
  105. package/dist/lib/cli-version.js +0 -59
  106. package/dist/lib/cli-version.js.map +0 -1
  107. package/dist/lib/command-handler.d.ts +0 -10
  108. package/dist/lib/command-handler.d.ts.map +0 -1
  109. package/dist/lib/command-handler.js +0 -16
  110. package/dist/lib/command-handler.js.map +0 -1
  111. package/dist/lib/command-registry.d.ts +0 -28
  112. package/dist/lib/command-registry.d.ts.map +0 -1
  113. package/dist/lib/command-registry.js +0 -54
  114. package/dist/lib/command-registry.js.map +0 -1
  115. package/dist/lib/config.d.ts +0 -83
  116. package/dist/lib/config.d.ts.map +0 -1
  117. package/dist/lib/config.js +0 -430
  118. package/dist/lib/config.js.map +0 -1
  119. package/dist/lib/constants.d.ts +0 -48
  120. package/dist/lib/constants.d.ts.map +0 -1
  121. package/dist/lib/constants.js +0 -121
  122. package/dist/lib/constants.js.map +0 -1
  123. package/dist/lib/errors.d.ts +0 -30
  124. package/dist/lib/errors.d.ts.map +0 -1
  125. package/dist/lib/errors.js +0 -66
  126. package/dist/lib/errors.js.map +0 -1
  127. package/dist/lib/exit-codes.d.ts +0 -9
  128. package/dist/lib/exit-codes.d.ts.map +0 -1
  129. package/dist/lib/exit-codes.js +0 -12
  130. package/dist/lib/exit-codes.js.map +0 -1
  131. package/dist/lib/hidden-input.d.ts +0 -2
  132. package/dist/lib/hidden-input.d.ts.map +0 -1
  133. package/dist/lib/hidden-input.js +0 -78
  134. package/dist/lib/hidden-input.js.map +0 -1
  135. package/dist/lib/json-output.d.ts +0 -6
  136. package/dist/lib/json-output.d.ts.map +0 -1
  137. package/dist/lib/json-output.js +0 -11
  138. package/dist/lib/json-output.js.map +0 -1
  139. package/dist/lib/logger.d.ts +0 -11
  140. package/dist/lib/logger.d.ts.map +0 -1
  141. package/dist/lib/logger.js +0 -110
  142. package/dist/lib/logger.js.map +0 -1
  143. package/dist/lib/port.d.ts +0 -25
  144. package/dist/lib/port.d.ts.map +0 -1
  145. package/dist/lib/port.js +0 -103
  146. package/dist/lib/port.js.map +0 -1
  147. package/dist/lib/telemetry.d.ts +0 -9
  148. package/dist/lib/telemetry.d.ts.map +0 -1
  149. package/dist/lib/telemetry.js +0 -57
  150. package/dist/lib/telemetry.js.map +0 -1
  151. package/dist/lib/ui.d.ts +0 -14
  152. package/dist/lib/ui.d.ts.map +0 -1
  153. package/dist/lib/ui.js +0 -75
  154. package/dist/lib/ui.js.map +0 -1
  155. package/dist/lib/update-notifier.d.ts +0 -37
  156. package/dist/lib/update-notifier.d.ts.map +0 -1
  157. package/dist/lib/update-notifier.js +0 -298
  158. package/dist/lib/update-notifier.js.map +0 -1
  159. package/dist/lib/validators.d.ts +0 -55
  160. package/dist/lib/validators.d.ts.map +0 -1
  161. package/dist/lib/validators.js +0 -166
  162. package/dist/lib/validators.js.map +0 -1
  163. package/dist/services/account.d.ts +0 -8
  164. package/dist/services/account.d.ts.map +0 -1
  165. package/dist/services/account.js +0 -15
  166. package/dist/services/account.js.map +0 -1
  167. package/dist/services/app.d.ts +0 -38
  168. package/dist/services/app.d.ts.map +0 -1
  169. package/dist/services/app.js +0 -145
  170. package/dist/services/app.js.map +0 -1
  171. package/dist/services/browser-auth.d.ts +0 -15
  172. package/dist/services/browser-auth.d.ts.map +0 -1
  173. package/dist/services/browser-auth.js +0 -188
  174. package/dist/services/browser-auth.js.map +0 -1
  175. package/dist/services/normalize-app-id.d.ts +0 -12
  176. package/dist/services/normalize-app-id.d.ts.map +0 -1
  177. package/dist/services/normalize-app-id.js +0 -38
  178. package/dist/services/normalize-app-id.js.map +0 -1
  179. package/dist/services/oauth-metadata.d.ts +0 -7
  180. package/dist/services/oauth-metadata.d.ts.map +0 -1
  181. package/dist/services/oauth-metadata.js +0 -43
  182. package/dist/services/oauth-metadata.js.map +0 -1
  183. package/dist/services/oauth-refresh.d.ts +0 -14
  184. package/dist/services/oauth-refresh.d.ts.map +0 -1
  185. package/dist/services/oauth-refresh.js +0 -70
  186. package/dist/services/oauth-refresh.js.map +0 -1
  187. package/dist/services/scopes-html.d.ts +0 -3
  188. package/dist/services/scopes-html.d.ts.map +0 -1
  189. package/dist/services/scopes-html.js +0 -516
  190. package/dist/services/scopes-html.js.map +0 -1
  191. package/dist/services/scopes-web.d.ts +0 -12
  192. package/dist/services/scopes-web.d.ts.map +0 -1
  193. package/dist/services/scopes-web.js +0 -95
  194. package/dist/services/scopes-web.js.map +0 -1
  195. package/dist/services/skill.d.ts +0 -48
  196. package/dist/services/skill.d.ts.map +0 -1
  197. package/dist/services/skill.js +0 -223
  198. package/dist/services/skill.js.map +0 -1
  199. package/dist/skills/index.d.ts +0 -47
  200. package/dist/skills/index.d.ts.map +0 -1
  201. package/dist/skills/index.js +0 -61
  202. package/dist/skills/index.js.map +0 -1
  203. package/dist/templates/files/app-config.json.tmpl +0 -25
  204. package/dist/templates/index.d.ts +0 -36
  205. package/dist/templates/index.d.ts.map +0 -1
  206. package/dist/templates/index.js +0 -105
  207. package/dist/templates/index.js.map +0 -1
  208. package/dist/types.d.ts +0 -32
  209. package/dist/types.d.ts.map +0 -1
  210. package/dist/types.js +0 -3
  211. package/dist/types.js.map +0 -1
  212. /package/dist/{templates → bin}/files/gitignore.tmpl +0 -0
  213. /package/dist/{templates → bin}/files/src/oauth/package.json.tmpl +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"validators.js","sourceRoot":"","sources":["../../src/lib/validators.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import { ApiClient } from '../api/client';
2
- import { AccountResponse } from '../types';
3
- export declare function createAccountService(client: ApiClient): {
4
- validateApiKey(apiKey: string): Promise<AccountResponse>;
5
- getAccount(): Promise<AccountResponse>;
6
- };
7
- export type AccountService = ReturnType<typeof createAccountService>;
8
- //# sourceMappingURL=account.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account.d.ts","sourceRoot":"","sources":["../../src/services/account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,SAAS;2BAE3B,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;kBAG1C,OAAO,CAAC,eAAe,CAAC;EAIzC;AAED,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
@@ -1,15 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createAccountService = createAccountService;
4
- const constants_1 = require("../lib/constants");
5
- function createAccountService(client) {
6
- return {
7
- validateApiKey(apiKey) {
8
- return client.getWithKey(constants_1.ENDPOINTS.ACCOUNT, apiKey);
9
- },
10
- getAccount() {
11
- return client.get(constants_1.ENDPOINTS.ACCOUNT);
12
- },
13
- };
14
- }
15
- //# sourceMappingURL=account.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/services/account.ts"],"names":[],"mappings":";;AAIA,oDASC;AAZD,gDAA6C;AAG7C,SAAgB,oBAAoB,CAAC,MAAiB;IACpD,OAAO;QACL,cAAc,CAAC,MAAc;YAC3B,OAAO,MAAM,CAAC,UAAU,CAAkB,qBAAS,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;QACvE,CAAC;QACD,UAAU;YACR,OAAO,MAAM,CAAC,GAAG,CAAkB,qBAAS,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1,38 +0,0 @@
1
- import { ApiClient } from '../api/client';
2
- import { OAuthApp, CreateAppResponse } from '../types';
3
- export declare function createAppService(client: ApiClient): {
4
- fetchAppsList: () => Promise<OAuthApp[]>;
5
- fetchApp(appId: string): Promise<OAuthApp | null>;
6
- pickApp(promptMessage: string, formatChoice?: (app: OAuthApp) => string): Promise<string>;
7
- /**
8
- * Fetch app from API and merge with local cache.
9
- * The GET endpoint may not return client_secret (only shown at creation),
10
- * so we fall back to the locally cached value.
11
- */
12
- resolveAppCredentials(appId: string): Promise<{
13
- app: OAuthApp;
14
- diffs: string[];
15
- } | null>;
16
- /**
17
- * Save credentials to local cache.
18
- * Preserves existing local values when the app has missing fields
19
- * (e.g. GET endpoint doesn't return client_secret).
20
- */
21
- syncAppCredentials(appId: string, app: OAuthApp): void;
22
- createApp(payload: {
23
- name: string;
24
- distribution_type: "public" | "private";
25
- redirect_uris?: string[];
26
- scopes?: string[];
27
- logo_uri?: string;
28
- }): Promise<CreateAppResponse>;
29
- updateApp(appId: string, body: {
30
- name?: string;
31
- redirect_uris: string[];
32
- scopes?: string[];
33
- logo_uri?: string;
34
- }): Promise<void>;
35
- deleteApp(appId: string): Promise<void>;
36
- };
37
- export type AppService = ReturnType<typeof createAppService>;
38
- //# sourceMappingURL=app.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.d.ts","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAQ1C,OAAO,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAmBvD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,SAAS;yBAChB,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAQ3B,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;2BAWtC,MAAM,iBACN,CAAC,GAAG,EAAE,QAAQ,KAAK,MAAM,GACvC,OAAO,CAAC,MAAM,CAAC;IA2BlB;;;;OAIG;iCACgC,MAAM,GAAG,OAAO,CAAC;QAAE,GAAG,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,IAAI,CAAC;IA8B9F;;;;OAIG;8BACuB,MAAM,OAAO,QAAQ,GAAG,IAAI;uBAU7B;QACvB,IAAI,EAAE,MAAM,CAAC;QACb,iBAAiB,EAAE,QAAQ,GAAG,SAAS,CAAC;QACxC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,GAAG,OAAO,CAAC,iBAAiB,CAAC;qBAUrB,MAAM,QACP;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,GACrF,OAAO,CAAC,IAAI,CAAC;qBAOO,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;EAQhD;AAED,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
@@ -1,145 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createAppService = createAppService;
7
- const inquirer_1 = __importDefault(require("inquirer"));
8
- const cli_version_1 = require("../lib/cli-version");
9
- const constants_1 = require("../lib/constants");
10
- const errors_1 = require("../lib/errors");
11
- const exit_codes_1 = require("../lib/exit-codes");
12
- const logger_1 = require("../lib/logger");
13
- const ui_1 = require("../lib/ui");
14
- const en_1 = require("../lang/en");
15
- const config_1 = require("../lib/config");
16
- const normalize_app_id_1 = require("./normalize-app-id");
17
- function rethrowNotFound(err, appId) {
18
- if (err instanceof errors_1.ApiError && err.statusCode === 404) {
19
- throw new errors_1.CliError(`App ${appId} not found.`, err.exitCode);
20
- }
21
- throw err;
22
- }
23
- /**
24
- * Check apps exist and throw with user-facing message if empty.
25
- */
26
- function logEmptyAndThrow() {
27
- (0, logger_1.logInfo)(`\n ${en_1.messages.APP_LIST_EMPTY}\n`);
28
- throw new errors_1.CliError(en_1.messages.APP_LIST_EMPTY, exit_codes_1.EXIT_CODES.ERROR);
29
- }
30
- function createAppService(client) {
31
- async function fetchAppsList() {
32
- const apps = await client.get(constants_1.ENDPOINTS.APP_STORE_APPS);
33
- return (apps || []).map(normalize_app_id_1.normalizeAppId);
34
- }
35
- return {
36
- fetchAppsList,
37
- async fetchApp(appId) {
38
- let app;
39
- try {
40
- app = await client.get(constants_1.ENDPOINTS.APP_STORE_APP(appId));
41
- }
42
- catch (err) {
43
- rethrowNotFound(err, appId);
44
- }
45
- return app ? (0, normalize_app_id_1.normalizeAppId)(app) : null;
46
- },
47
- async pickApp(promptMessage, formatChoice) {
48
- const spinner = (0, ui_1.createSpinner)('Loading apps...');
49
- const apps = await fetchAppsList();
50
- spinner.stop();
51
- if (apps.length === 0) {
52
- logEmptyAndThrow();
53
- }
54
- const { selectedApp } = await inquirer_1.default.prompt([
55
- {
56
- type: 'rawlist',
57
- name: 'selectedApp',
58
- message: promptMessage,
59
- choices: apps.map((a) => {
60
- const appName = a.name || 'App ' + a.app_id;
61
- return {
62
- name: formatChoice
63
- ? formatChoice(a)
64
- : `${appName} (App ID: ${a.app_id}, Client ID: ${a.client_id})`,
65
- value: a.app_id,
66
- };
67
- }),
68
- },
69
- ]);
70
- return selectedApp;
71
- },
72
- /**
73
- * Fetch app from API and merge with local cache.
74
- * The GET endpoint may not return client_secret (only shown at creation),
75
- * so we fall back to the locally cached value.
76
- */
77
- async resolveAppCredentials(appId) {
78
- let raw;
79
- try {
80
- raw = await client.get(constants_1.ENDPOINTS.APP_STORE_APP(appId));
81
- }
82
- catch (err) {
83
- rethrowNotFound(err, appId);
84
- }
85
- if (!raw)
86
- return null;
87
- const app = (0, normalize_app_id_1.normalizeAppId)(raw);
88
- const local = (0, config_1.getAppCredentials)(appId);
89
- const diffs = [];
90
- // Merge: prefer remote values, fall back to local cache for missing fields
91
- if (local) {
92
- if (!app.client_id && local.clientId) {
93
- app.client_id = local.clientId;
94
- }
95
- else if (local.clientId && local.clientId !== app.client_id) {
96
- diffs.push('client_id');
97
- }
98
- if (!app.client_secret && local.clientSecret) {
99
- app.client_secret = local.clientSecret;
100
- }
101
- else if (local.clientSecret && local.clientSecret !== app.client_secret) {
102
- diffs.push('client_secret');
103
- }
104
- }
105
- return { app, diffs };
106
- },
107
- /**
108
- * Save credentials to local cache.
109
- * Preserves existing local values when the app has missing fields
110
- * (e.g. GET endpoint doesn't return client_secret).
111
- */
112
- syncAppCredentials(appId, app) {
113
- const existing = (0, config_1.getAppCredentials)(appId);
114
- const clientId = app.client_id || existing?.clientId;
115
- const clientSecret = app.client_secret || existing?.clientSecret;
116
- // Only write if we have at least a client ID and a non-empty secret
117
- if (clientId && clientSecret) {
118
- (0, config_1.saveAppCredentials)(appId, { clientId, clientSecret });
119
- }
120
- },
121
- async createApp(payload) {
122
- const raw = await client.post(constants_1.ENDPOINTS.APP_STORE_APPS, {
123
- ...payload,
124
- source: 'cli',
125
- cli_version: cli_version_1.CLI_VERSION,
126
- });
127
- return (0, normalize_app_id_1.normalizeAppId)(raw);
128
- },
129
- async updateApp(appId, body) {
130
- await client.patch(constants_1.ENDPOINTS.APP_STORE_APP(appId), {
131
- ...body,
132
- cli_version: cli_version_1.CLI_VERSION,
133
- });
134
- },
135
- async deleteApp(appId) {
136
- try {
137
- await client.delete(constants_1.ENDPOINTS.APP_STORE_APP(appId));
138
- }
139
- catch (err) {
140
- rethrowNotFound(err, appId);
141
- }
142
- },
143
- };
144
- }
145
- //# sourceMappingURL=app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/services/app.ts"],"names":[],"mappings":"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"}
@@ -1,15 +0,0 @@
1
- export interface OAuthTokens {
2
- accessToken: string;
3
- refreshToken: string;
4
- expiresIn: number;
5
- tokenType: string;
6
- scope?: string;
7
- }
8
- export interface RunBrowserLoginOptions {
9
- proxyUrl: string;
10
- timeoutMs?: number;
11
- openBrowser?: (url: string) => void;
12
- onWaiting?: (loginUrl: string) => void;
13
- }
14
- export declare function runBrowserLoginFlow(opts: RunBrowserLoginOptions): Promise<OAuthTokens>;
15
- //# sourceMappingURL=browser-auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-auth.d.ts","sourceRoot":"","sources":["../../src/services/browser-auth.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC;AAsCD,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAkI5F"}
@@ -1,188 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- Object.defineProperty(exports, "__esModule", { value: true });
36
- exports.runBrowserLoginFlow = runBrowserLoginFlow;
37
- const http = __importStar(require("node:http"));
38
- const node_crypto_1 = require("node:crypto");
39
- const logger_1 = require("../lib/logger");
40
- const errors_1 = require("../lib/errors");
41
- const en_1 = require("../lang/en");
42
- const MAX_BODY_BYTES = 16 * 1024;
43
- // 5 minutes — accommodates SSO/2FA flows where the user may need to fetch a
44
- // code from another device. 120s was too tight and routinely timed out mid-2FA.
45
- const DEFAULT_TIMEOUT_MS = 300_000;
46
- function normalizeTokens(raw) {
47
- if (typeof raw.access_token !== 'string' ||
48
- !raw.access_token ||
49
- typeof raw.refresh_token !== 'string' ||
50
- !raw.refresh_token ||
51
- typeof raw.expires_in !== 'number' ||
52
- !Number.isFinite(raw.expires_in) ||
53
- raw.expires_in <= 0 ||
54
- typeof raw.token_type !== 'string' ||
55
- !raw.token_type) {
56
- return null;
57
- }
58
- return {
59
- accessToken: raw.access_token,
60
- refreshToken: raw.refresh_token,
61
- expiresIn: raw.expires_in,
62
- tokenType: raw.token_type,
63
- scope: typeof raw.scope === 'string' ? raw.scope : undefined,
64
- };
65
- }
66
- async function runBrowserLoginFlow(opts) {
67
- const proxyOrigin = new URL(opts.proxyUrl).origin;
68
- const timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
69
- const openBrowser = opts.openBrowser ?? (() => { });
70
- return new Promise((resolve, reject) => {
71
- let settled = false;
72
- const claimSettlement = () => {
73
- if (settled)
74
- return false;
75
- settled = true;
76
- return true;
77
- };
78
- const server = http.createServer((req, res) => {
79
- const pathname = new URL(req.url ?? '/', 'http://127.0.0.1').pathname;
80
- const origin = req.headers.origin;
81
- (0, logger_1.logDebug)('loopback request', { method: req.method, url: req.url, pathname, origin });
82
- if (req.method === 'OPTIONS' && pathname === '/callback') {
83
- if (origin !== proxyOrigin) {
84
- (0, logger_1.logDebug)('loopback OPTIONS rejected: origin mismatch', { origin, expected: proxyOrigin });
85
- res.writeHead(403).end();
86
- return;
87
- }
88
- res
89
- .writeHead(204, {
90
- 'Access-Control-Allow-Origin': proxyOrigin,
91
- 'Access-Control-Allow-Methods': 'POST, OPTIONS',
92
- 'Access-Control-Allow-Headers': 'Content-Type',
93
- 'Access-Control-Max-Age': '600',
94
- })
95
- .end();
96
- return;
97
- }
98
- if (req.method === 'POST' && pathname === '/callback') {
99
- if (origin !== proxyOrigin) {
100
- (0, logger_1.logDebug)('loopback POST rejected: origin mismatch', { origin, expected: proxyOrigin });
101
- res.writeHead(403).end();
102
- return;
103
- }
104
- let bytes = 0;
105
- const chunks = [];
106
- req.on('data', (chunk) => {
107
- bytes += chunk.length;
108
- if (bytes > MAX_BODY_BYTES) {
109
- (0, logger_1.logDebug)('loopback POST rejected: body too large', { bytes, max: MAX_BODY_BYTES });
110
- res.writeHead(413, { Connection: 'close' }).end();
111
- req.destroy();
112
- return;
113
- }
114
- chunks.push(chunk);
115
- });
116
- req.on('end', () => {
117
- let parsed = null;
118
- try {
119
- parsed = JSON.parse(Buffer.concat(chunks).toString('utf-8'));
120
- }
121
- catch {
122
- parsed = null;
123
- }
124
- const tokens = parsed ? normalizeTokens(parsed) : null;
125
- if (!tokens) {
126
- (0, logger_1.logDebug)('loopback POST rejected: bad payload shape', {
127
- hasParsed: parsed !== null,
128
- keys: parsed ? Object.keys(parsed) : null,
129
- });
130
- res
131
- .writeHead(400, {
132
- 'Access-Control-Allow-Origin': proxyOrigin,
133
- 'Content-Type': 'text/plain',
134
- })
135
- .end('Bad payload');
136
- return;
137
- }
138
- (0, logger_1.logDebug)('loopback POST accepted', { hasScope: tokens.scope !== undefined });
139
- res.writeHead(204, { 'Access-Control-Allow-Origin': proxyOrigin }).end();
140
- if (claimSettlement()) {
141
- server.close();
142
- resolve(tokens);
143
- }
144
- });
145
- return;
146
- }
147
- if (req.method === 'GET' && (pathname === '/' || pathname === '/callback')) {
148
- res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
149
- res.end('<!doctype html><meta charset="utf-8"><title>Brevo CLI login</title>' +
150
- '<p>Waiting for login to complete — you can close this tab once the CLI confirms success.</p>');
151
- return;
152
- }
153
- (0, logger_1.logDebug)('loopback request not matched', { method: req.method, pathname });
154
- res.writeHead(404).end();
155
- });
156
- server.on('error', (err) => {
157
- (0, logger_1.logDebug)('loopback server error', { message: err.message });
158
- if (claimSettlement())
159
- reject(err);
160
- });
161
- server.listen(0, '127.0.0.1', () => {
162
- const port = server.address().port;
163
- // Unique per-attempt token. If a previous attempt timed out mid-flow,
164
- // the browser may still have a tab open at the proxy showing an error;
165
- // a unique URL forces a fresh navigation instead of reusing that tab,
166
- // and prevents the proxy/browser from serving a cached response.
167
- const attemptToken = (0, node_crypto_1.randomUUID)();
168
- const loginUrl = `${opts.proxyUrl}/login?port=${port}&t=${attemptToken}`;
169
- (0, logger_1.logDebug)('loopback listening', { host: '127.0.0.1', port, proxyOrigin });
170
- opts.onWaiting?.(loginUrl);
171
- try {
172
- openBrowser(loginUrl);
173
- }
174
- catch {
175
- // best-effort — URL already surfaced via onWaiting
176
- }
177
- });
178
- const timer = setTimeout(() => {
179
- if (claimSettlement()) {
180
- server.close();
181
- reject(new errors_1.CliError(en_1.messages.AUTH_BROWSER_TIMEOUT));
182
- }
183
- }, timeoutMs);
184
- timer.unref?.();
185
- server.on('close', () => clearTimeout(timer));
186
- });
187
- }
188
- //# sourceMappingURL=browser-auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"browser-auth.js","sourceRoot":"","sources":["../../src/services/browser-auth.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DA,kDAkIC;AA5LD,gDAAkC;AAClC,6CAAyC;AAEzC,0CAAyC;AACzC,0CAAyC;AACzC,mCAAsC;AAiBtC,MAAM,cAAc,GAAG,EAAE,GAAG,IAAI,CAAC;AACjC,4EAA4E;AAC5E,gFAAgF;AAChF,MAAM,kBAAkB,GAAG,OAAO,CAAC;AAUnC,SAAS,eAAe,CAAC,GAAoB;IAC3C,IACE,OAAO,GAAG,CAAC,YAAY,KAAK,QAAQ;QACpC,CAAC,GAAG,CAAC,YAAY;QACjB,OAAO,GAAG,CAAC,aAAa,KAAK,QAAQ;QACrC,CAAC,GAAG,CAAC,aAAa;QAClB,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;QAClC,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC;QAChC,GAAG,CAAC,UAAU,IAAI,CAAC;QACnB,OAAO,GAAG,CAAC,UAAU,KAAK,QAAQ;QAClC,CAAC,GAAG,CAAC,UAAU,EACf,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO;QACL,WAAW,EAAE,GAAG,CAAC,YAAY;QAC7B,YAAY,EAAE,GAAG,CAAC,aAAa;QAC/B,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,SAAS,EAAE,GAAG,CAAC,UAAU;QACzB,KAAK,EAAE,OAAO,GAAG,CAAC,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;KAC7D,CAAC;AACJ,CAAC;AAEM,KAAK,UAAU,mBAAmB,CAAC,IAA4B;IACpE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;IAClD,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,kBAAkB,CAAC;IACvD,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IAEnD,OAAO,IAAI,OAAO,CAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAClD,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,eAAe,GAAG,GAAY,EAAE;YACpC,IAAI,OAAO;gBAAE,OAAO,KAAK,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC,CAAC;QAEF,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC5C,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,EAAE,kBAAkB,CAAC,CAAC,QAAQ,CAAC;YACtE,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,IAAA,iBAAQ,EAAC,kBAAkB,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;YAErF,IAAI,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACzD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC3B,IAAA,iBAAQ,EAAC,4CAA4C,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;oBAC1F,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBACzB,OAAO;gBACT,CAAC;gBACD,GAAG;qBACA,SAAS,CAAC,GAAG,EAAE;oBACd,6BAA6B,EAAE,WAAW;oBAC1C,8BAA8B,EAAE,eAAe;oBAC/C,8BAA8B,EAAE,cAAc;oBAC9C,wBAAwB,EAAE,KAAK;iBAChC,CAAC;qBACD,GAAG,EAAE,CAAC;gBACT,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,MAAM,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;gBACtD,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;oBAC3B,IAAA,iBAAQ,EAAC,yCAAyC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC,CAAC;oBACvF,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;oBACzB,OAAO;gBACT,CAAC;gBAED,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;oBAC/B,KAAK,IAAI,KAAK,CAAC,MAAM,CAAC;oBACtB,IAAI,KAAK,GAAG,cAAc,EAAE,CAAC;wBAC3B,IAAA,iBAAQ,EAAC,wCAAwC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,EAAE,CAAC,CAAC;wBACnF,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;wBAClD,GAAG,CAAC,OAAO,EAAE,CAAC;wBACd,OAAO;oBACT,CAAC;oBACD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,CAAC,CAAC,CAAC;gBACH,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,IAAI,MAAM,GAA2B,IAAI,CAAC;oBAC1C,IAAI,CAAC;wBACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAoB,CAAC;oBAClF,CAAC;oBAAC,MAAM,CAAC;wBACP,MAAM,GAAG,IAAI,CAAC;oBAChB,CAAC;oBACD,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;oBACvD,IAAI,CAAC,MAAM,EAAE,CAAC;wBACZ,IAAA,iBAAQ,EAAC,2CAA2C,EAAE;4BACpD,SAAS,EAAE,MAAM,KAAK,IAAI;4BAC1B,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI;yBAC1C,CAAC,CAAC;wBACH,GAAG;6BACA,SAAS,CAAC,GAAG,EAAE;4BACd,6BAA6B,EAAE,WAAW;4BAC1C,cAAc,EAAE,YAAY;yBAC7B,CAAC;6BACD,GAAG,CAAC,aAAa,CAAC,CAAC;wBACtB,OAAO;oBACT,CAAC;oBACD,IAAA,iBAAQ,EAAC,wBAAwB,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC,CAAC;oBAC7E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,6BAA6B,EAAE,WAAW,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC;oBACzE,IAAI,eAAe,EAAE,EAAE,CAAC;wBACtB,MAAM,CAAC,KAAK,EAAE,CAAC;wBACf,OAAO,CAAC,MAAM,CAAC,CAAC;oBAClB,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,OAAO;YACT,CAAC;YAED,IAAI,GAAG,CAAC,MAAM,KAAK,KAAK,IAAI,CAAC,QAAQ,KAAK,GAAG,IAAI,QAAQ,KAAK,WAAW,CAAC,EAAE,CAAC;gBAC3E,GAAG,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,0BAA0B,EAAE,CAAC,CAAC;gBACnE,GAAG,CAAC,GAAG,CACL,qEAAqE;oBACnE,8FAA8F,CACjG,CAAC;gBACF,OAAO;YACT,CAAC;YAED,IAAA,iBAAQ,EAAC,8BAA8B,EAAE,EAAE,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC3E,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC;QAC3B,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACzB,IAAA,iBAAQ,EAAC,uBAAuB,EAAE,EAAE,OAAO,EAAG,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACvE,IAAI,eAAe,EAAE;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,WAAW,EAAE,GAAG,EAAE;YACjC,MAAM,IAAI,GAAI,MAAM,CAAC,OAAO,EAAkB,CAAC,IAAI,CAAC;YACpD,sEAAsE;YACtE,uEAAuE;YACvE,sEAAsE;YACtE,iEAAiE;YACjE,MAAM,YAAY,GAAG,IAAA,wBAAU,GAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,GAAG,IAAI,CAAC,QAAQ,eAAe,IAAI,MAAM,YAAY,EAAE,CAAC;YACzE,IAAA,iBAAQ,EAAC,oBAAoB,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;YACzE,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC;YAC3B,IAAI,CAAC;gBACH,WAAW,CAAC,QAAQ,CAAC,CAAC;YACxB,CAAC;YAAC,MAAM,CAAC;gBACP,mDAAmD;YACrD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,IAAI,eAAe,EAAE,EAAE,CAAC;gBACtB,MAAM,CAAC,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,IAAI,iBAAQ,CAAC,aAAQ,CAAC,oBAAoB,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,EAAE,SAAS,CAAC,CAAC;QACd,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC;QAEhB,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,12 +0,0 @@
1
- /**
2
- * Coerce `app_id` on an API response object to a string.
3
- * Defensive boundary in case the server still returns a number for a legacy app.
4
- * Fails fast on unexpected types so invalid server responses never propagate as
5
- * bogus IDs (e.g. "undefined", "[object Object]") into requests or credential keys.
6
- */
7
- export declare function normalizeAppId<T extends {
8
- app_id: unknown;
9
- }>(raw: T): Omit<T, 'app_id'> & {
10
- app_id: string;
11
- };
12
- //# sourceMappingURL=normalize-app-id.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize-app-id.d.ts","sourceRoot":"","sources":["../../src/services/normalize-app-id.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,EAC1D,GAAG,EAAE,CAAC,GACL,IAAI,CAAC,CAAC,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,CAkBxC"}
@@ -1,38 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.normalizeAppId = normalizeAppId;
4
- const errors_1 = require("../lib/errors");
5
- /**
6
- * Coerce `app_id` on an API response object to a string.
7
- * Defensive boundary in case the server still returns a number for a legacy app.
8
- * Fails fast on unexpected types so invalid server responses never propagate as
9
- * bogus IDs (e.g. "undefined", "[object Object]") into requests or credential keys.
10
- */
11
- function normalizeAppId(raw) {
12
- const { app_id } = raw;
13
- if (typeof app_id === 'string') {
14
- const trimmed = app_id.trim();
15
- if (trimmed.length === 0) {
16
- throw new errors_1.CliError('Invalid app_id in API response: expected non-empty string, received empty string.');
17
- }
18
- return { ...raw, app_id: trimmed };
19
- }
20
- if (typeof app_id === 'number' && Number.isFinite(app_id)) {
21
- return { ...raw, app_id: String(app_id) };
22
- }
23
- const received = describeAppId(app_id);
24
- throw new errors_1.CliError(`Invalid app_id in API response: expected string or finite number, received ${received}.`);
25
- }
26
- function describeAppId(value) {
27
- if (value === null)
28
- return 'null';
29
- if (typeof value === 'number') {
30
- if (Number.isNaN(value))
31
- return 'number (NaN)';
32
- if (!Number.isFinite(value))
33
- return `number (${value > 0 ? 'Infinity' : '-Infinity'})`;
34
- return 'number';
35
- }
36
- return typeof value;
37
- }
38
- //# sourceMappingURL=normalize-app-id.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"normalize-app-id.js","sourceRoot":"","sources":["../../src/services/normalize-app-id.ts"],"names":[],"mappings":";;AAQA,wCAoBC;AA5BD,0CAAyC;AAEzC;;;;;GAKG;AACH,SAAgB,cAAc,CAC5B,GAAM;IAEN,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAC;IACvB,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC;QAC9B,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,IAAI,iBAAQ,CAChB,mFAAmF,CACpF,CAAC;QACJ,CAAC;QACD,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QAC1D,OAAO,EAAE,GAAG,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,QAAQ,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,MAAM,IAAI,iBAAQ,CAChB,8EAA8E,QAAQ,GAAG,CAC1F,CAAC;AACJ,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,IAAI,KAAK,KAAK,IAAI;QAAE,OAAO,MAAM,CAAC;IAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC;YAAE,OAAO,cAAc,CAAC;QAC/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,OAAO,WAAW,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,GAAG,CAAC;QACvF,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,OAAO,OAAO,KAAK,CAAC;AACtB,CAAC"}
@@ -1,7 +0,0 @@
1
- export interface ScopeEntry {
2
- name: string;
3
- category: string;
4
- apiEndpoints: string[];
5
- }
6
- export declare function fetchSupportedScopes(): Promise<ScopeEntry[]>;
7
- //# sourceMappingURL=oauth-metadata.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-metadata.d.ts","sourceRoot":"","sources":["../../src/services/oauth-metadata.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AASD,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC,CAuDlE"}
@@ -1,43 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.fetchSupportedScopes = fetchSupportedScopes;
4
- const constants_1 = require("../lib/constants");
5
- const errors_1 = require("../lib/errors");
6
- const en_1 = require("../lang/en");
7
- async function fetchSupportedScopes() {
8
- let response;
9
- try {
10
- response = await fetch(constants_1.OAUTH_SCOPES_URL, { method: 'GET' });
11
- }
12
- catch {
13
- throw new errors_1.ApiError(en_1.messages.OAUTH_METADATA_FETCH_FAILED(constants_1.OAUTH_SCOPES_URL, 0), 0, errors_1.ErrorCode.NETWORK_ERROR);
14
- }
15
- if (!response.ok) {
16
- throw new errors_1.ApiError(en_1.messages.OAUTH_METADATA_FETCH_FAILED(constants_1.OAUTH_SCOPES_URL, response.status), response.status);
17
- }
18
- let body;
19
- try {
20
- body = await response.json();
21
- }
22
- catch {
23
- throw new errors_1.CliError(en_1.messages.OAUTH_METADATA_MISSING_SCOPES);
24
- }
25
- if (!body || typeof body !== 'object' || !Array.isArray(body.scopes)) {
26
- throw new errors_1.CliError(en_1.messages.OAUTH_METADATA_MISSING_SCOPES);
27
- }
28
- const rawScopes = body.scopes;
29
- return rawScopes
30
- .filter((s) => !!s &&
31
- typeof s === 'object' &&
32
- typeof s.name === 'string' &&
33
- typeof s.category === 'string' &&
34
- s.is_oidc_reserved !== true)
35
- .map((s) => ({
36
- name: s.name,
37
- category: s.category,
38
- apiEndpoints: Array.isArray(s.api_endpoints)
39
- ? s.api_endpoints.filter((e) => typeof e === 'string')
40
- : [],
41
- }));
42
- }
43
- //# sourceMappingURL=oauth-metadata.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-metadata.js","sourceRoot":"","sources":["../../src/services/oauth-metadata.ts"],"names":[],"mappings":";;AAiBA,oDAuDC;AAxED,gDAAoD;AACpD,0CAA8D;AAC9D,mCAAsC;AAe/B,KAAK,UAAU,oBAAoB;IACxC,IAAI,QAAkB,CAAC;IACvB,IAAI,CAAC;QACH,QAAQ,GAAG,MAAM,KAAK,CAAC,4BAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAQ,CAChB,aAAQ,CAAC,2BAA2B,CAAC,4BAAgB,EAAE,CAAC,CAAC,EACzD,CAAC,EACD,kBAAS,CAAC,aAAa,CACxB,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;QACjB,MAAM,IAAI,iBAAQ,CAChB,aAAQ,CAAC,2BAA2B,CAAC,4BAAgB,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvE,QAAQ,CAAC,MAAM,CAChB,CAAC;IACJ,CAAC;IAED,IAAI,IAAa,CAAC;IAClB,IAAI,CAAC;QACH,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC/B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,iBAAQ,CAAC,aAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC7D,CAAC;IAED,IAAI,CAAC,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAE,IAA6B,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/F,MAAM,IAAI,iBAAQ,CAAC,aAAQ,CAAC,6BAA6B,CAAC,CAAC;IAC7D,CAAC;IAED,MAAM,SAAS,GAAI,IAA8B,CAAC,MAAoB,CAAC;IAEvE,OAAO,SAAS;SACb,MAAM,CACL,CACE,CAAC,EAMD,EAAE,CACF,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,KAAK,QAAQ;QACrB,OAAO,CAAC,CAAC,IAAI,KAAK,QAAQ;QAC1B,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ;QAC9B,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAC9B;SACA,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;QACX,IAAI,EAAE,CAAC,CAAC,IAAI;QACZ,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,aAAa,CAAC;YAC1C,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,EAAe,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC;YACnE,CAAC,CAAC,EAAE;KACP,CAAC,CAAC,CAAC;AACR,CAAC"}
@@ -1,14 +0,0 @@
1
- export interface RefreshedTokens {
2
- accessToken: string;
3
- refreshToken: string;
4
- expiresIn: number;
5
- tokenType: string;
6
- scope?: string;
7
- }
8
- export declare class RefreshError extends Error {
9
- readonly unauthorized: boolean;
10
- readonly cause?: unknown | undefined;
11
- constructor(message: string, unauthorized: boolean, cause?: unknown | undefined);
12
- }
13
- export declare function refreshAccessToken(refreshToken: string, proxyUrl: string): Promise<RefreshedTokens>;
14
- //# sourceMappingURL=oauth-refresh.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"oauth-refresh.d.ts","sourceRoot":"","sources":["../../src/services/oauth-refresh.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,eAAe;IAC9B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,YAAa,SAAQ,KAAK;aAGnB,YAAY,EAAE,OAAO;aACrB,KAAK,CAAC,EAAE,OAAO;gBAF/B,OAAO,EAAE,MAAM,EACC,YAAY,EAAE,OAAO,EACrB,KAAK,CAAC,EAAE,OAAO,YAAA;CAKlC;AAED,wBAAsB,kBAAkB,CACtC,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAgE1B"}