@redocly/cli 0.0.0-snapshot.1755019909 → 0.0.0-snapshot.1757598120

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/lib/auth/device-flow.d.ts +7 -8
  2. package/lib/auth/device-flow.d.ts.map +1 -1
  3. package/lib/auth/device-flow.js +5 -6
  4. package/lib/auth/device-flow.js.map +1 -1
  5. package/lib/auth/oauth-client.d.ts +13 -10
  6. package/lib/auth/oauth-client.d.ts.map +1 -1
  7. package/lib/auth/oauth-client.js +70 -53
  8. package/lib/auth/oauth-client.js.map +1 -1
  9. package/lib/commands/auth.d.ts +2 -2
  10. package/lib/commands/auth.d.ts.map +1 -1
  11. package/lib/commands/auth.js +5 -6
  12. package/lib/commands/auth.js.map +1 -1
  13. package/lib/commands/bundle.d.ts.map +1 -1
  14. package/lib/commands/bundle.js +7 -2
  15. package/lib/commands/bundle.js.map +1 -1
  16. package/lib/commands/join.d.ts.map +1 -1
  17. package/lib/commands/join.js +28 -26
  18. package/lib/commands/join.js.map +1 -1
  19. package/lib/commands/lint.d.ts.map +1 -1
  20. package/lib/commands/lint.js +6 -1
  21. package/lib/commands/lint.js.map +1 -1
  22. package/lib/commands/stats.d.ts.map +1 -1
  23. package/lib/commands/stats.js +2 -1
  24. package/lib/commands/stats.js.map +1 -1
  25. package/lib/index.js +0 -2
  26. package/lib/index.js.map +1 -1
  27. package/lib/reunite/api/api-client.d.ts +2 -5
  28. package/lib/reunite/api/api-client.d.ts.map +1 -1
  29. package/lib/reunite/api/api-client.js +5 -6
  30. package/lib/reunite/api/api-client.js.map +1 -1
  31. package/lib/reunite/api/domains.d.ts +2 -1
  32. package/lib/reunite/api/domains.d.ts.map +1 -1
  33. package/lib/reunite/api/domains.js +20 -4
  34. package/lib/reunite/api/domains.js.map +1 -1
  35. package/lib/reunite/commands/push-status.d.ts +1 -1
  36. package/lib/reunite/commands/push-status.d.ts.map +1 -1
  37. package/lib/reunite/commands/push-status.js +2 -2
  38. package/lib/reunite/commands/push-status.js.map +1 -1
  39. package/lib/reunite/commands/push.d.ts +1 -1
  40. package/lib/reunite/commands/push.d.ts.map +1 -1
  41. package/lib/reunite/commands/push.js +3 -2
  42. package/lib/reunite/commands/push.js.map +1 -1
  43. package/lib/utils/miscellaneous.d.ts.map +1 -1
  44. package/lib/utils/miscellaneous.js +2 -4
  45. package/lib/utils/miscellaneous.js.map +1 -1
  46. package/lib/utils/telemetry.d.ts.map +1 -1
  47. package/lib/utils/telemetry.js +2 -3
  48. package/lib/utils/telemetry.js.map +1 -1
  49. package/package.json +3 -3
@@ -1,20 +1,19 @@
1
- export type AuthToken = {
1
+ export type Credentials = {
2
2
  access_token: string;
3
- refresh_token?: string;
3
+ refresh_token: string;
4
+ expires_in: number;
4
5
  token_type?: string;
5
- expires_in?: number;
6
6
  };
7
7
  export declare class RedoclyOAuthDeviceFlow {
8
8
  private baseUrl;
9
- private clientName;
10
- private version;
11
9
  private apiClient;
12
- constructor(baseUrl: string, clientName: string, version: string);
13
- run(): Promise<AuthToken>;
10
+ private clientName;
11
+ constructor(baseUrl: string);
12
+ run(): Promise<Credentials>;
14
13
  private openBrowser;
15
14
  verifyToken(accessToken: string): Promise<boolean>;
16
15
  verifyApiKey(apiKey: string): Promise<boolean>;
17
- refreshToken(refreshToken: string): Promise<{
16
+ refreshToken(refreshToken?: string): Promise<{
18
17
  access_token: any;
19
18
  refresh_token: any;
20
19
  expires_in: any;
@@ -1 +1 @@
1
- {"version":3,"file":"device-flow.d.ts","sourceRoot":"","sources":["../../src/auth/device-flow.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GAAG;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,sBAAsB;IAGrB,OAAO,CAAC,OAAO;IAAU,OAAO,CAAC,UAAU;IAAU,OAAO,CAAC,OAAO;IAFhF,OAAO,CAAC,SAAS,CAAmB;gBAEhB,OAAO,EAAE,MAAM,EAAU,UAAU,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM;IAIlF,GAAG;IA0BT,OAAO,CAAC,WAAW;IAeb,WAAW,CAAC,WAAW,EAAE,MAAM;IAY/B,YAAY,CAAC,MAAM,EAAE,MAAM;IAW3B,YAAY,CAAC,YAAY,EAAE,MAAM;;;;;YAiBzB,kBAAkB;YA4BlB,cAAc;YAQd,aAAa;YAsBb,WAAW;CAkB1B"}
1
+ {"version":3,"file":"device-flow.d.ts","sourceRoot":"","sources":["../../src/auth/device-flow.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,WAAW,GAAG;IACxB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,qBAAa,sBAAsB;IAIrB,OAAO,CAAC,OAAO;IAH3B,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,UAAU,CAAiB;gBAEf,OAAO,EAAE,MAAM;IAI7B,GAAG;IA0BT,OAAO,CAAC,WAAW;IAeb,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAYlD,YAAY,CAAC,MAAM,EAAE,MAAM;IAW3B,YAAY,CAAC,YAAY,CAAC,EAAE,MAAM;;;;;YAiB1B,kBAAkB;YA4BlB,cAAc;YAQd,aAAa;YAsBb,WAAW;CAkB1B"}
@@ -4,11 +4,10 @@ import { logger } from '@redocly/openapi-core';
4
4
  import { ReuniteApiClient } from '../reunite/api/api-client.js';
5
5
  import { DEFAULT_FETCH_TIMEOUT } from '../utils/constants.js';
6
6
  export class RedoclyOAuthDeviceFlow {
7
- constructor(baseUrl, clientName, version) {
7
+ constructor(baseUrl) {
8
8
  this.baseUrl = baseUrl;
9
- this.clientName = clientName;
10
- this.version = version;
11
- this.apiClient = new ReuniteApiClient(this.version, 'login');
9
+ this.clientName = 'redocly-cli';
10
+ this.apiClient = new ReuniteApiClient('login');
12
11
  }
13
12
  async run() {
14
13
  const code = await this.getDeviceCode();
@@ -116,8 +115,8 @@ export class RedoclyOAuthDeviceFlow {
116
115
  expiresIn,
117
116
  };
118
117
  }
119
- async sendRequest(url, method = 'GET', body = undefined, headers = {}) {
120
- url = `${this.baseUrl}${url}`;
118
+ async sendRequest(path, method = 'GET', body = undefined, headers = {}) {
119
+ const url = `${this.baseUrl}/api${path}`;
121
120
  const response = await this.apiClient.request(url, {
122
121
  body: body ? JSON.stringify(body) : body,
123
122
  method,
@@ -1 +1 @@
1
- {"version":3,"file":"device-flow.js","sourceRoot":"","sources":["../../src/auth/device-flow.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"device-flow.js","sourceRoot":"","sources":["../../src/auth/device-flow.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,18 @@
1
1
  export declare class RedoclyOAuthClient {
2
- private clientName;
3
- private version;
4
- private dir;
5
- private cipher;
6
- private decipher;
7
- constructor(clientName: string, version: string);
2
+ static readonly CREDENTIALS_FILE = "credentials";
3
+ private readonly dir;
4
+ private readonly key;
5
+ private readonly iv;
6
+ constructor();
8
7
  login(baseUrl: string): Promise<void>;
9
8
  logout(): Promise<void>;
10
- isAuthorized(baseUrl: string, apiKey?: string): Promise<boolean>;
11
- private saveToken;
12
- private readToken;
13
- private removeToken;
9
+ isAuthorized(reuniteUrl: string, apiKey?: string): Promise<boolean>;
10
+ getAccessToken: (reuniteUrl: string) => Promise<string | null>;
11
+ private get credentialsPath();
12
+ private saveCredentials;
13
+ private readCredentials;
14
+ private removeCredentials;
15
+ private encryptCredentials;
16
+ private decryptCredentials;
14
17
  }
15
18
  //# sourceMappingURL=oauth-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-client.d.ts","sourceRoot":"","sources":["../../src/auth/oauth-client.ts"],"names":[],"mappings":"AAWA,qBAAa,kBAAkB;IAKjB,OAAO,CAAC,UAAU;IAAU,OAAO,CAAC,OAAO;IAJvD,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAkB;gBAEd,UAAU,EAAE,MAAM,EAAU,OAAO,EAAE,MAAM;IAuBzD,KAAK,CAAC,OAAO,EAAE,MAAM;IAUrB,MAAM;IAQN,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;YA4BrC,SAAS;YAUT,SAAS;YAUT,WAAW;CAM1B"}
1
+ {"version":3,"file":"oauth-client.d.ts","sourceRoot":"","sources":["../../src/auth/oauth-client.ts"],"names":[],"mappings":"AAWA,qBAAa,kBAAkB;IAC7B,gBAAuB,gBAAgB,iBAAiB;IAExD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAS;;IAYf,KAAK,CAAC,OAAO,EAAE,MAAM;IAUrB,MAAM;IAQN,YAAY,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAWzE,cAAc,eAAsB,MAAM,KAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAsBxE;IAEF,OAAO,KAAK,eAAe,GAE1B;YAEa,eAAe;YASf,eAAe;YAaf,iBAAiB;IAM/B,OAAO,CAAC,kBAAkB;IAU1B,OAAO,CAAC,kBAAkB;CAS3B"}
@@ -1,91 +1,108 @@
1
1
  import { homedir } from 'node:os';
2
- import * as path from 'node:path';
2
+ import path from 'node:path';
3
3
  import { mkdirSync, existsSync, writeFileSync, readFileSync, rmSync } from 'node:fs';
4
- import * as crypto from 'node:crypto';
4
+ import crypto from 'node:crypto';
5
5
  import { Buffer } from 'node:buffer';
6
6
  import { logger } from '@redocly/openapi-core';
7
7
  import { RedoclyOAuthDeviceFlow } from './device-flow.js';
8
8
  const SALT = '4618dbc9-8aed-4e27-aaf0-225f4603e5a4';
9
9
  const CRYPTO_ALGORITHM = 'aes-256-cbc';
10
10
  export class RedoclyOAuthClient {
11
- constructor(clientName, version) {
12
- this.clientName = clientName;
13
- this.version = version;
14
- this.dir = path.join(homedir(), '.redocly');
15
- if (!existsSync(this.dir)) {
16
- mkdirSync(this.dir);
17
- }
18
- const homeDirPath = process.env.HOME;
19
- const hash = crypto.createHash('sha256');
20
- hash.update(`${homeDirPath}${SALT}`);
21
- const hashHex = hash.digest('hex');
22
- const key = Buffer.alloc(32, Buffer.from(hashHex).toString('base64')).toString();
23
- const iv = Buffer.alloc(16, Buffer.from(process.env.HOME).toString('base64')).toString();
24
- this.cipher = crypto.createCipheriv(CRYPTO_ALGORITHM, key, iv);
25
- this.decipher = crypto.createDecipheriv(CRYPTO_ALGORITHM, key, iv);
11
+ constructor() {
12
+ this.getAccessToken = async (reuniteUrl) => {
13
+ const deviceFlow = new RedoclyOAuthDeviceFlow(reuniteUrl);
14
+ const credentials = await this.readCredentials();
15
+ if (!credentials) {
16
+ return null;
17
+ }
18
+ const isValid = await deviceFlow.verifyToken(credentials.access_token);
19
+ if (isValid) {
20
+ return credentials.access_token;
21
+ }
22
+ try {
23
+ const newCredentials = await deviceFlow.refreshToken(credentials.refresh_token);
24
+ await this.saveCredentials(newCredentials);
25
+ return newCredentials.access_token;
26
+ }
27
+ catch {
28
+ return null;
29
+ }
30
+ };
31
+ const homeDirPath = homedir();
32
+ this.dir = path.join(homeDirPath, '.redocly');
33
+ mkdirSync(this.dir, { recursive: true });
34
+ this.key = crypto.createHash('sha256').update(`${homeDirPath}${SALT}`).digest(); // 32-byte key
35
+ this.iv = crypto.createHash('md5').update(homeDirPath).digest(); // 16-byte IV
26
36
  }
27
37
  async login(baseUrl) {
28
- const deviceFlow = new RedoclyOAuthDeviceFlow(baseUrl, this.clientName, this.version);
29
- const token = await deviceFlow.run();
30
- if (!token) {
38
+ const deviceFlow = new RedoclyOAuthDeviceFlow(baseUrl);
39
+ const credentials = await deviceFlow.run();
40
+ if (!credentials) {
31
41
  throw new Error('Failed to login');
32
42
  }
33
- this.saveToken(token);
43
+ this.saveCredentials(credentials);
34
44
  }
35
45
  async logout() {
36
46
  try {
37
- this.removeToken();
47
+ this.removeCredentials();
38
48
  }
39
49
  catch (err) {
40
50
  // do nothing
41
51
  }
42
52
  }
43
- async isAuthorized(baseUrl, apiKey) {
44
- const deviceFlow = new RedoclyOAuthDeviceFlow(baseUrl, this.clientName, this.version);
53
+ async isAuthorized(reuniteUrl, apiKey) {
45
54
  if (apiKey) {
46
- return await deviceFlow.verifyApiKey(apiKey);
47
- }
48
- const token = await this.readToken();
49
- if (!token) {
50
- return false;
51
- }
52
- const isValidAccessToken = await deviceFlow.verifyToken(token.access_token);
53
- if (isValidAccessToken) {
54
- return true;
55
- }
56
- try {
57
- const newToken = await deviceFlow.refreshToken(token.refresh_token);
58
- await this.saveToken(newToken);
59
- }
60
- catch {
61
- return false;
55
+ const deviceFlow = new RedoclyOAuthDeviceFlow(reuniteUrl);
56
+ return deviceFlow.verifyApiKey(apiKey);
62
57
  }
63
- return true;
58
+ const accessToken = await this.getAccessToken(reuniteUrl);
59
+ return Boolean(accessToken);
60
+ }
61
+ get credentialsPath() {
62
+ return path.join(this.dir, RedoclyOAuthClient.CREDENTIALS_FILE);
64
63
  }
65
- async saveToken(token) {
64
+ async saveCredentials(credentials) {
66
65
  try {
67
- const encrypted = this.cipher.update(JSON.stringify(token), 'utf8', 'hex') + this.cipher.final('hex');
68
- writeFileSync(path.join(this.dir, 'auth.json'), encrypted);
66
+ const encryptedCredentials = this.encryptCredentials(credentials);
67
+ writeFileSync(this.credentialsPath, encryptedCredentials, 'utf8');
69
68
  }
70
69
  catch (error) {
71
- logger.error(`Error saving tokens: ${error}`);
70
+ logger.error(`Failed to save credentials: ${error.message}`);
72
71
  }
73
72
  }
74
- async readToken() {
73
+ async readCredentials() {
74
+ if (!existsSync(this.credentialsPath)) {
75
+ return null;
76
+ }
75
77
  try {
76
- const token = readFileSync(path.join(this.dir, 'auth.json'), 'utf8');
77
- const decrypted = this.decipher.update(token, 'hex', 'utf8') + this.decipher.final('utf8');
78
- return decrypted ? JSON.parse(decrypted) : null;
78
+ const encryptedCredentials = readFileSync(this.credentialsPath, 'utf8');
79
+ return this.decryptCredentials(encryptedCredentials);
79
80
  }
80
81
  catch {
81
82
  return null;
82
83
  }
83
84
  }
84
- async removeToken() {
85
- const tokenPath = path.join(this.dir, 'auth.json');
86
- if (existsSync(tokenPath)) {
87
- rmSync(tokenPath);
85
+ async removeCredentials() {
86
+ if (existsSync(this.credentialsPath)) {
87
+ rmSync(this.credentialsPath);
88
88
  }
89
89
  }
90
+ encryptCredentials(credentials) {
91
+ const cipher = crypto.createCipheriv(CRYPTO_ALGORITHM, this.key, this.iv);
92
+ const encrypted = Buffer.concat([
93
+ cipher.update(JSON.stringify(credentials), 'utf8'),
94
+ cipher.final(),
95
+ ]);
96
+ return encrypted.toString('hex');
97
+ }
98
+ decryptCredentials(encryptedCredentials) {
99
+ const decipher = crypto.createDecipheriv(CRYPTO_ALGORITHM, this.key, this.iv);
100
+ const decrypted = Buffer.concat([
101
+ decipher.update(Buffer.from(encryptedCredentials, 'hex')),
102
+ decipher.final(),
103
+ ]);
104
+ return JSON.parse(decrypted.toString('utf8'));
105
+ }
90
106
  }
107
+ RedoclyOAuthClient.CREDENTIALS_FILE = 'credentials';
91
108
  //# sourceMappingURL=oauth-client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"oauth-client.js","sourceRoot":"","sources":["../../src/auth/oauth-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"oauth-client.js","sourceRoot":"","sources":["../../src/auth/oauth-client.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ export type LoginArgv = {
3
3
  residency?: string;
4
4
  config?: string;
5
5
  };
6
- export declare function handleLogin({ argv, version, config }: CommandArgs<LoginArgv>): Promise<void>;
6
+ export declare function handleLogin({ argv, config }: CommandArgs<LoginArgv>): Promise<void>;
7
7
  export type LogoutArgv = {
8
8
  config?: string;
9
9
  };
10
- export declare function handleLogout({ version }: CommandArgs<LogoutArgv>): Promise<void>;
10
+ export declare function handleLogout(): Promise<void>;
11
11
  //# sourceMappingURL=auth.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,iBAalF;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,YAAY,CAAC,EAAE,OAAO,EAAE,EAAE,WAAW,CAAC,UAAU,CAAC,iBAKtE"}
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,SAAS,CAAC,iBAYzE;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,wBAAsB,YAAY,kBAKjC"}
@@ -2,11 +2,10 @@ import { logger } from '@redocly/openapi-core';
2
2
  import { exitWithError } from '../utils/error.js';
3
3
  import { RedoclyOAuthClient } from '../auth/oauth-client.js';
4
4
  import { getReuniteUrl } from '../reunite/api/index.js';
5
- export async function handleLogin({ argv, version, config }) {
6
- const residency = argv.residency || config?.resolvedConfig?.residency;
7
- const reuniteUrl = getReuniteUrl(residency);
5
+ export async function handleLogin({ argv, config }) {
6
+ const reuniteUrl = getReuniteUrl(config, argv.residency);
8
7
  try {
9
- const oauthClient = new RedoclyOAuthClient('redocly-cli', version);
8
+ const oauthClient = new RedoclyOAuthClient();
10
9
  await oauthClient.login(reuniteUrl);
11
10
  }
12
11
  catch {
@@ -18,8 +17,8 @@ export async function handleLogin({ argv, version, config }) {
18
17
  }
19
18
  }
20
19
  }
21
- export async function handleLogout({ version }) {
22
- const oauthClient = new RedoclyOAuthClient('redocly-cli', version);
20
+ export async function handleLogout() {
21
+ const oauthClient = new RedoclyOAuthClient();
23
22
  oauthClient.logout();
24
23
  logger.output('Logged out from the Redocly account. ✋ \n');
25
24
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AASxD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAA0B;IACjF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,IAAI,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC;IACtE,MAAM,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC5C,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QACnE,MAAM,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,aAAa,CAAC,mBAAmB,UAAU,UAAU,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,8DAA8D,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,EAAE,OAAO,EAA2B;IACrE,MAAM,WAAW,GAAG,IAAI,kBAAkB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;IACnE,WAAW,CAAC,MAAM,EAAE,CAAC;IAErB,MAAM,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC;AAC7D,CAAC"}
1
+ {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AASxD,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,EAAE,IAAI,EAAE,MAAM,EAA0B;IACxE,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IACzD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;QAC7C,MAAM,WAAW,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,aAAa,CAAC,mBAAmB,UAAU,UAAU,CAAC,CAAC;QACzD,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,8DAA8D,CAAC,CAAC;QAChF,CAAC;IACH,CAAC;AACH,CAAC;AAMD,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,MAAM,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC7C,WAAW,CAAC,MAAM,EAAE,CAAC;IAErB,MAAM,CAAC,MAAM,CAAC,2CAA2C,CAAC,CAAC;AAC7D,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"AAiBA,OAAO,KAAK,EAAE,eAAe,EAAU,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,GAAG,mBAAmB,CAAC;AAExB,wBAAsB,YAAY,CAAC,EACjC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,eAAe,GAChB,EAAE,WAAW,CAAC,UAAU,CAAC,iBA4GzB"}
1
+ {"version":3,"file":"bundle.d.ts","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,eAAe,EAAU,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAEjD,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,eAAe,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC,GAAG,mBAAmB,CAAC;AAExB,wBAAsB,YAAY,CAAC,EACjC,IAAI,EACJ,MAAM,EACN,OAAO,EACP,eAAe,GAChB,EAAE,WAAW,CAAC,UAAU,CAAC,iBAsHzB"}
@@ -1,7 +1,7 @@
1
1
  import { performance } from 'perf_hooks';
2
2
  import { blue, gray, green, yellow } from 'colorette';
3
3
  import { writeFileSync } from 'fs';
4
- import { formatProblems, getTotals, bundle, logger } from '@redocly/openapi-core';
4
+ import { formatProblems, getTotals, bundle, logger, } from '@redocly/openapi-core';
5
5
  import { dumpBundle, getExecutionTime, getFallbackApisOrExit, getOutputFileName, handleError, printUnusedWarnings, saveBundle, sortTopLevelKeysForOas, formatPath, } from '../utils/miscellaneous.js';
6
6
  import { AbortFlowError } from '../utils/error.js';
7
7
  export async function handleBundle({ argv, config, version, collectSpecData, }) {
@@ -15,7 +15,12 @@ export async function handleBundle({ argv, config, version, collectSpecData, })
15
15
  const aliasConfig = config.forAlias(alias);
16
16
  aliasConfig.skipPreprocessors(argv['skip-preprocessor']);
17
17
  aliasConfig.skipDecorators(argv['skip-decorator']);
18
- logger.info(gray(`bundling ${formatPath(path)}...\n`));
18
+ if (alias === undefined) {
19
+ logger.info(gray(`bundling ${formatPath(path)}...\n`));
20
+ }
21
+ else {
22
+ logger.info(gray(`bundling ${formatPath(path)} using configuration for api '${alias}'...\n`));
23
+ }
19
24
  const { bundle: result, problems, ...meta } = await bundle({
20
25
  ref: path,
21
26
  config: aliasConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../src/commands/bundle.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../src/commands/join.ts"],"names":[],"mappings":"AAwCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAgBvD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,mBAAmB,CAAC;AAExB,wBAAsB,UAAU,CAAC,EAC/B,IAAI,EACJ,MAAM,EACN,OAAO,EAAE,cAAc,EACvB,eAAe,GAChB,EAAE,WAAW,CAAC,QAAQ,CAAC,sBA4jBvB"}
1
+ {"version":3,"file":"join.d.ts","sourceRoot":"","sources":["../../src/commands/join.ts"],"names":[],"mappings":"AAyCA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAgBvD,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,2BAA2B,CAAC,EAAE,OAAO,CAAC;IACtC,kCAAkC,CAAC,EAAE,MAAM,CAAC;IAC5C,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,mBAAmB,CAAC;AAExB,wBAAsB,UAAU,CAAC,EAC/B,IAAI,EACJ,MAAM,EACN,OAAO,EAAE,cAAc,EACvB,eAAe,GAChB,EAAE,WAAW,CAAC,QAAQ,CAAC,sBAkkBvB"}
@@ -1,7 +1,7 @@
1
1
  import * as path from 'node:path';
2
2
  import { red, blue, yellow, green } from 'colorette';
3
3
  import { performance } from 'node:perf_hooks';
4
- import { BaseResolver, formatProblems, getTotals, detectSpec, bundleDocument, isRef, dequal, logger, isString, isPlainObject, keysOf, } from '@redocly/openapi-core';
4
+ import { BaseResolver, formatProblems, getTotals, detectSpec, bundleDocument, isRef, dequal, logger, isString, isPlainObject, keysOf, isEmptyObject, } from '@redocly/openapi-core';
5
5
  import { getFallbackApisOrExit, printExecutionTime, sortTopLevelKeysForOas, getAndValidateFileExtension, writeToFileByExtension, } from '../utils/miscellaneous.js';
6
6
  import { exitWithError } from '../utils/error.js';
7
7
  import { COMPONENTS, OPENAPI3_METHOD_NAMES } from './split/types.js';
@@ -74,6 +74,14 @@ export async function handleJoin({ argv, config, version: packageVersion, collec
74
74
  return exitWithError(`${e.message}: ${blue(document.source.absoluteRef)}.`);
75
75
  }
76
76
  }
77
+ const [first, ...others] = (documents ?? []);
78
+ const serversAreTheSame = others.every(({ parsed: { paths, servers } }) => {
79
+ // include only documents with paths
80
+ if (!paths || isEmptyObject(paths || {})) {
81
+ return true;
82
+ }
83
+ return servers?.every((server) => first.parsed.servers?.find(({ url }) => url === server.url));
84
+ });
77
85
  const joinedDef = {};
78
86
  const potentialConflicts = {
79
87
  tags: {},
@@ -82,8 +90,13 @@ export async function handleJoin({ argv, config, version: packageVersion, collec
82
90
  webhooks: {},
83
91
  };
84
92
  addInfoSectionAndSpecVersion(documents, prefixComponentsWithInfoProp);
93
+ if (serversAreTheSame && first.parsed.servers) {
94
+ joinedDef.servers = first.parsed.servers;
95
+ }
85
96
  for (const document of documents) {
86
- const openapi = document.parsed;
97
+ const openapi = isPlainObject(document.parsed)
98
+ ? document.parsed
99
+ : {};
87
100
  const { tags, info } = openapi;
88
101
  const api = path.relative(process.cwd(), document.source.absoluteRef);
89
102
  const apiFilename = getApiFilename(api);
@@ -106,9 +119,8 @@ export async function handleJoin({ argv, config, version: packageVersion, collec
106
119
  if (tags) {
107
120
  populateTags(context);
108
121
  }
109
- collectServers(openapi);
110
122
  collectExternalDocs(openapi, context);
111
- collectPaths(openapi, context);
123
+ collectPaths(openapi, context, serversAreTheSame);
112
124
  collectComponents(openapi, context);
113
125
  collectWebhooks(oasVersion, openapi, context);
114
126
  if (componentsPrefix) {
@@ -132,7 +144,7 @@ export async function handleJoin({ argv, config, version: packageVersion, collec
132
144
  if (withoutXTagGroups && !potentialConflicts.tags.hasOwnProperty('description')) {
133
145
  potentialConflicts.tags['description'] = {};
134
146
  }
135
- for (const tag of tags) {
147
+ for (const tag of tags || []) {
136
148
  const entrypointTagName = addPrefix(tag.name, tagsPrefix);
137
149
  if (tag.description) {
138
150
  tag.description = addComponentsPrefix(tag.description, componentsPrefix);
@@ -189,19 +201,6 @@ export async function handleJoin({ argv, config, version: packageVersion, collec
189
201
  joinedDef[xTagGroups][indexGroup][Tags].push(entrypointTagName);
190
202
  }
191
203
  }
192
- function collectServers(openapi) {
193
- const { servers } = openapi;
194
- if (servers) {
195
- if (!joinedDef.hasOwnProperty('servers')) {
196
- joinedDef['servers'] = [];
197
- }
198
- for (const server of servers) {
199
- if (!joinedDef.servers.some((s) => s.url === server.url)) {
200
- joinedDef.servers.push(server);
201
- }
202
- }
203
- }
204
- }
205
204
  function collectExternalDocs(openapi, { api }) {
206
205
  const { externalDocs } = openapi;
207
206
  if (externalDocs) {
@@ -212,8 +211,8 @@ export async function handleJoin({ argv, config, version: packageVersion, collec
212
211
  joinedDef['externalDocs'] = externalDocs;
213
212
  }
214
213
  }
215
- function collectPaths(openapi, { apiFilename, apiTitle, api, potentialConflicts, tagsPrefix, componentsPrefix, }) {
216
- const { paths } = openapi;
214
+ function collectPaths(openapi, { apiFilename, apiTitle, api, potentialConflicts, tagsPrefix, componentsPrefix, }, serversAreTheSame) {
215
+ const { paths, servers: rootServers } = openapi;
217
216
  const operationsSet = new Set(OPENAPI3_METHOD_NAMES);
218
217
  if (paths) {
219
218
  if (!joinedDef.hasOwnProperty('paths')) {
@@ -227,13 +226,16 @@ export async function handleJoin({ argv, config, version: packageVersion, collec
227
226
  potentialConflicts.paths[path] = {};
228
227
  }
229
228
  const pathItem = paths[path];
229
+ const servers = serversAreTheSame
230
+ ? pathItem.servers
231
+ : pathItem.servers || rootServers || [];
232
+ if (servers) {
233
+ collectPathServers(servers, path);
234
+ }
230
235
  for (const field of keysOf(pathItem)) {
231
236
  if (operationsSet.has(field)) {
232
237
  collectPathOperation(pathItem, path, field);
233
238
  }
234
- if (field === 'servers') {
235
- collectPathServers(pathItem, path);
236
- }
237
239
  if (field === 'parameters') {
238
240
  collectPathParameters(pathItem, path);
239
241
  }
@@ -252,14 +254,14 @@ export async function handleJoin({ argv, config, version: packageVersion, collec
252
254
  }
253
255
  joinedDef.paths[path][field] = fieldValue;
254
256
  }
255
- function collectPathServers(pathItem, path) {
256
- if (!pathItem.servers) {
257
+ function collectPathServers(servers, path) {
258
+ if (!servers) {
257
259
  return;
258
260
  }
259
261
  if (!joinedDef.paths[path].hasOwnProperty('servers')) {
260
262
  joinedDef.paths[path].servers = [];
261
263
  }
262
- for (const server of pathItem.servers) {
264
+ for (const server of servers) {
263
265
  let isFoundServer = false;
264
266
  for (const pathServer of joinedDef.paths[path].servers) {
265
267
  if (pathServer.url === server.url) {