@fractary/core 0.3.3 → 0.5.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.
- package/dist/__tests__/factories.test.d.ts +5 -0
- package/dist/__tests__/factories.test.d.ts.map +1 -0
- package/dist/__tests__/factories.test.js +66 -0
- package/dist/__tests__/factories.test.js.map +1 -0
- package/dist/auth/__tests__/create-token-provider.test.d.ts +5 -0
- package/dist/auth/__tests__/create-token-provider.test.d.ts.map +1 -0
- package/dist/auth/__tests__/create-token-provider.test.js +104 -0
- package/dist/auth/__tests__/create-token-provider.test.js.map +1 -0
- package/dist/auth/__tests__/github-app-auth.test.d.ts +5 -0
- package/dist/auth/__tests__/github-app-auth.test.d.ts.map +1 -0
- package/dist/auth/__tests__/github-app-auth.test.js +293 -0
- package/dist/auth/__tests__/github-app-auth.test.js.map +1 -0
- package/dist/auth/__tests__/static-token-provider.test.d.ts +5 -0
- package/dist/auth/__tests__/static-token-provider.test.d.ts.map +1 -0
- package/dist/auth/__tests__/static-token-provider.test.js +54 -0
- package/dist/auth/__tests__/static-token-provider.test.js.map +1 -0
- package/dist/auth/github-app-auth.d.ts +109 -0
- package/dist/auth/github-app-auth.d.ts.map +1 -0
- package/dist/auth/github-app-auth.js +262 -0
- package/dist/auth/github-app-auth.js.map +1 -0
- package/dist/auth/github-app-token-provider.d.ts +59 -0
- package/dist/auth/github-app-token-provider.d.ts.map +1 -0
- package/dist/auth/github-app-token-provider.js +68 -0
- package/dist/auth/github-app-token-provider.js.map +1 -0
- package/dist/auth/index.d.ts +45 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +74 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/static-token-provider.d.ts +35 -0
- package/dist/auth/static-token-provider.d.ts.map +1 -0
- package/dist/auth/static-token-provider.js +45 -0
- package/dist/auth/static-token-provider.js.map +1 -0
- package/dist/auth/types.d.ts +49 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/auth/types.js +8 -0
- package/dist/auth/types.js.map +1 -0
- package/dist/common/__tests__/secrets.test.d.ts +7 -0
- package/dist/common/__tests__/secrets.test.d.ts.map +1 -0
- package/dist/common/__tests__/secrets.test.js +320 -0
- package/dist/common/__tests__/secrets.test.js.map +1 -0
- package/dist/common/config.d.ts +6 -4
- package/dist/common/config.d.ts.map +1 -1
- package/dist/common/config.js +4 -30
- package/dist/common/config.js.map +1 -1
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.d.ts.map +1 -1
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/common/secrets.d.ts +68 -0
- package/dist/common/secrets.d.ts.map +1 -0
- package/dist/common/secrets.js +180 -0
- package/dist/common/secrets.js.map +1 -0
- package/dist/common/yaml-config.d.ts +10 -0
- package/dist/common/yaml-config.d.ts.map +1 -1
- package/dist/common/yaml-config.js.map +1 -1
- package/dist/config/__tests__/loader.test.d.ts +5 -0
- package/dist/config/__tests__/loader.test.d.ts.map +1 -0
- package/dist/config/__tests__/loader.test.js +129 -0
- package/dist/config/__tests__/loader.test.js.map +1 -0
- package/dist/config/index.d.ts +8 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +27 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/loader.d.ts +126 -0
- package/dist/config/loader.d.ts.map +1 -0
- package/dist/config/loader.js +277 -0
- package/dist/config/loader.js.map +1 -0
- package/dist/docs/index.d.ts +5 -0
- package/dist/docs/index.d.ts.map +1 -1
- package/dist/docs/index.js +6 -1
- package/dist/docs/index.js.map +1 -1
- package/dist/docs/manager.d.ts +27 -0
- package/dist/docs/manager.d.ts.map +1 -1
- package/dist/docs/manager.js +168 -15
- package/dist/docs/manager.js.map +1 -1
- package/dist/docs/type-registry.d.ts +123 -0
- package/dist/docs/type-registry.d.ts.map +1 -0
- package/dist/docs/type-registry.js +393 -0
- package/dist/docs/type-registry.js.map +1 -0
- package/dist/docs/types.d.ts +93 -0
- package/dist/docs/types.d.ts.map +1 -1
- package/dist/factories.d.ts +89 -0
- package/dist/factories.d.ts.map +1 -0
- package/dist/factories.js +228 -0
- package/dist/factories.js.map +1 -0
- package/dist/file/factory.d.ts +41 -0
- package/dist/file/factory.d.ts.map +1 -0
- package/dist/file/factory.js +237 -0
- package/dist/file/factory.js.map +1 -0
- package/dist/file/gcs.d.ts +66 -0
- package/dist/file/gcs.d.ts.map +1 -0
- package/dist/file/gcs.js +226 -0
- package/dist/file/gcs.js.map +1 -0
- package/dist/file/gdrive.d.ts +78 -0
- package/dist/file/gdrive.d.ts.map +1 -0
- package/dist/file/gdrive.js +302 -0
- package/dist/file/gdrive.js.map +1 -0
- package/dist/file/index.d.ts +13 -1
- package/dist/file/index.d.ts.map +1 -1
- package/dist/file/index.js +25 -1
- package/dist/file/index.js.map +1 -1
- package/dist/file/manager.d.ts +83 -2
- package/dist/file/manager.d.ts.map +1 -1
- package/dist/file/manager.js +125 -4
- package/dist/file/manager.js.map +1 -1
- package/dist/file/r2.d.ts +56 -0
- package/dist/file/r2.d.ts.map +1 -0
- package/dist/file/r2.js +96 -0
- package/dist/file/r2.js.map +1 -0
- package/dist/file/s3.d.ts +61 -0
- package/dist/file/s3.d.ts.map +1 -0
- package/dist/file/s3.js +258 -0
- package/dist/file/s3.js.map +1 -0
- package/dist/file/types.d.ts +145 -2
- package/dist/file/types.d.ts.map +1 -1
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -0
- package/dist/index.js.map +1 -1
- package/dist/logs/index.d.ts +1 -0
- package/dist/logs/index.d.ts.map +1 -1
- package/dist/logs/index.js +3 -1
- package/dist/logs/index.js.map +1 -1
- package/dist/logs/manager.d.ts +29 -2
- package/dist/logs/manager.d.ts.map +1 -1
- package/dist/logs/manager.js +48 -7
- package/dist/logs/manager.js.map +1 -1
- package/dist/logs/type-registry.d.ts +180 -0
- package/dist/logs/type-registry.d.ts.map +1 -0
- package/dist/logs/type-registry.js +421 -0
- package/dist/logs/type-registry.js.map +1 -0
- package/dist/logs/type-registry.test.d.ts +5 -0
- package/dist/logs/type-registry.test.d.ts.map +1 -0
- package/dist/logs/type-registry.test.js +671 -0
- package/dist/logs/type-registry.test.js.map +1 -0
- package/dist/logs/types.d.ts +2 -0
- package/dist/logs/types.d.ts.map +1 -1
- package/package.json +76 -8
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fractary/core - Static Token Provider
|
|
3
|
+
*
|
|
4
|
+
* Simple token provider for Personal Access Token (PAT) authentication.
|
|
5
|
+
*/
|
|
6
|
+
import type { TokenProvider } from './types';
|
|
7
|
+
/**
|
|
8
|
+
* Static token provider for PAT authentication
|
|
9
|
+
*
|
|
10
|
+
* Provides a simple implementation that returns a static token.
|
|
11
|
+
* Suitable for Personal Access Token (PAT) authentication.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```typescript
|
|
15
|
+
* const provider = new StaticTokenProvider('ghp_xxxx');
|
|
16
|
+
* const token = await provider.getToken();
|
|
17
|
+
* ```
|
|
18
|
+
*/
|
|
19
|
+
export declare class StaticTokenProvider implements TokenProvider {
|
|
20
|
+
private readonly token;
|
|
21
|
+
/**
|
|
22
|
+
* Create a new static token provider
|
|
23
|
+
*
|
|
24
|
+
* @param token The authentication token (e.g., GitHub PAT)
|
|
25
|
+
* @throws Error if token is empty or undefined
|
|
26
|
+
*/
|
|
27
|
+
constructor(token: string);
|
|
28
|
+
/**
|
|
29
|
+
* Get the authentication token
|
|
30
|
+
*
|
|
31
|
+
* @returns Promise resolving to the token string
|
|
32
|
+
*/
|
|
33
|
+
getToken(): Promise<string>;
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=static-token-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-token-provider.d.ts","sourceRoot":"","sources":["../../src/auth/static-token-provider.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C;;;;;;;;;;;GAWG;AACH,qBAAa,mBAAoB,YAAW,aAAa;IACvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;IAE/B;;;;;OAKG;gBACS,KAAK,EAAE,MAAM;IAOzB;;;;OAIG;IACG,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;CAGlC"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fractary/core - Static Token Provider
|
|
4
|
+
*
|
|
5
|
+
* Simple token provider for Personal Access Token (PAT) authentication.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
exports.StaticTokenProvider = void 0;
|
|
9
|
+
/**
|
|
10
|
+
* Static token provider for PAT authentication
|
|
11
|
+
*
|
|
12
|
+
* Provides a simple implementation that returns a static token.
|
|
13
|
+
* Suitable for Personal Access Token (PAT) authentication.
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```typescript
|
|
17
|
+
* const provider = new StaticTokenProvider('ghp_xxxx');
|
|
18
|
+
* const token = await provider.getToken();
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
class StaticTokenProvider {
|
|
22
|
+
token;
|
|
23
|
+
/**
|
|
24
|
+
* Create a new static token provider
|
|
25
|
+
*
|
|
26
|
+
* @param token The authentication token (e.g., GitHub PAT)
|
|
27
|
+
* @throws Error if token is empty or undefined
|
|
28
|
+
*/
|
|
29
|
+
constructor(token) {
|
|
30
|
+
if (!token || typeof token !== 'string' || token.trim() === '') {
|
|
31
|
+
throw new Error('Token must be a non-empty string');
|
|
32
|
+
}
|
|
33
|
+
this.token = token;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Get the authentication token
|
|
37
|
+
*
|
|
38
|
+
* @returns Promise resolving to the token string
|
|
39
|
+
*/
|
|
40
|
+
async getToken() {
|
|
41
|
+
return this.token;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
exports.StaticTokenProvider = StaticTokenProvider;
|
|
45
|
+
//# sourceMappingURL=static-token-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static-token-provider.js","sourceRoot":"","sources":["../../src/auth/static-token-provider.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;AAIH;;;;;;;;;;;GAWG;AACH,MAAa,mBAAmB;IACb,KAAK,CAAS;IAE/B;;;;;OAKG;IACH,YAAY,KAAa;QACvB,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;YAC/D,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;QACtD,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;CACF;AAxBD,kDAwBC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fractary/core - Authentication Types
|
|
3
|
+
*
|
|
4
|
+
* Token provider interfaces and configuration types for GitHub authentication.
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* Token provider interface for authentication
|
|
8
|
+
*
|
|
9
|
+
* Implementations must provide a way to get a valid authentication token.
|
|
10
|
+
* Tokens may be cached and auto-refreshed by implementations.
|
|
11
|
+
*/
|
|
12
|
+
export interface TokenProvider {
|
|
13
|
+
/**
|
|
14
|
+
* Get a valid authentication token
|
|
15
|
+
*
|
|
16
|
+
* @returns Promise resolving to the token string
|
|
17
|
+
* @throws AuthenticationError if token cannot be obtained
|
|
18
|
+
*/
|
|
19
|
+
getToken(): Promise<string>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* GitHub App configuration
|
|
23
|
+
*
|
|
24
|
+
* Used to configure GitHub App authentication with JWT exchange.
|
|
25
|
+
*/
|
|
26
|
+
export interface GitHubAppConfig {
|
|
27
|
+
/** GitHub App ID */
|
|
28
|
+
id: string;
|
|
29
|
+
/** Installation ID for the target organization/repository */
|
|
30
|
+
installation_id: string;
|
|
31
|
+
/** Path to the private key PEM file (mutually exclusive with private_key_env_var) */
|
|
32
|
+
private_key_path?: string;
|
|
33
|
+
/** Environment variable containing base64-encoded private key (mutually exclusive with private_key_path) */
|
|
34
|
+
private_key_env_var?: string;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* GitHub configuration from yaml config
|
|
38
|
+
*/
|
|
39
|
+
export interface GitHubConfig {
|
|
40
|
+
/** Personal access token (PAT) */
|
|
41
|
+
token?: string;
|
|
42
|
+
/** GitHub organization name */
|
|
43
|
+
organization?: string;
|
|
44
|
+
/** GitHub project (owner/repo) */
|
|
45
|
+
project?: string;
|
|
46
|
+
/** GitHub App configuration (alternative to PAT) */
|
|
47
|
+
app?: GitHubAppConfig;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B;;;;;OAKG;IACH,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC7B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,oBAAoB;IACpB,EAAE,EAAE,MAAM,CAAC;IACX,6DAA6D;IAC7D,eAAe,EAAE,MAAM,CAAC;IACxB,qFAAqF;IACrF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,4GAA4G;IAC5G,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,+BAA+B;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oDAAoD;IACpD,GAAG,CAAC,EAAE,eAAe,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":";AAAA;;;;GAIG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.test.d.ts","sourceRoot":"","sources":["../../../src/common/__tests__/secrets.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
|
|
@@ -0,0 +1,320 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* @fractary/core - Secrets Sanitization Tests
|
|
4
|
+
*
|
|
5
|
+
* Comprehensive unit tests for the secrets sanitization utilities.
|
|
6
|
+
*/
|
|
7
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
+
const secrets_1 = require("../secrets");
|
|
9
|
+
describe('sanitizeSecrets', () => {
|
|
10
|
+
describe('GitHub tokens', () => {
|
|
11
|
+
it('should redact GitHub personal access tokens (ghp_)', () => {
|
|
12
|
+
const input = 'Token: ghp_1234567890abcdefghijklmnopqrstuvwxyz12';
|
|
13
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
14
|
+
expect(result).toBe('Token: [REDACTED_GITHUB_TOKEN]');
|
|
15
|
+
});
|
|
16
|
+
it('should redact GitHub OAuth tokens (gho_)', () => {
|
|
17
|
+
const input = 'Auth: gho_1234567890abcdefghijklmnopqrstuvwxyz12';
|
|
18
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
19
|
+
expect(result).toBe('Auth: [REDACTED_GITHUB_TOKEN]');
|
|
20
|
+
});
|
|
21
|
+
it('should redact GitHub user-to-server tokens (ghu_)', () => {
|
|
22
|
+
const input = 'ghu_abcdefghijklmnopqrstuvwxyz1234567890ab';
|
|
23
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
24
|
+
expect(result).toBe('[REDACTED_GITHUB_TOKEN]');
|
|
25
|
+
});
|
|
26
|
+
it('should redact GitHub server-to-server tokens (ghs_)', () => {
|
|
27
|
+
const input = 'ghs_abcdefghijklmnopqrstuvwxyz1234567890ab';
|
|
28
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
29
|
+
expect(result).toBe('[REDACTED_GITHUB_TOKEN]');
|
|
30
|
+
});
|
|
31
|
+
it('should redact GitHub refresh tokens (ghr_)', () => {
|
|
32
|
+
const input = 'ghr_abcdefghijklmnopqrstuvwxyz1234567890ab';
|
|
33
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
34
|
+
expect(result).toBe('[REDACTED_GITHUB_TOKEN]');
|
|
35
|
+
});
|
|
36
|
+
it('should redact multiple GitHub tokens in one string', () => {
|
|
37
|
+
const input = 'Token1: ghp_abc123456789012345678901234567890123 and Token2: gho_xyz123456789012345678901234567890123';
|
|
38
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
39
|
+
expect(result).toBe('Token1: [REDACTED_GITHUB_TOKEN] and Token2: [REDACTED_GITHUB_TOKEN]');
|
|
40
|
+
});
|
|
41
|
+
});
|
|
42
|
+
describe('GitLab tokens', () => {
|
|
43
|
+
it('should redact GitLab personal access tokens', () => {
|
|
44
|
+
const input = 'token: glpat-xxxxxxxxxxxxxxxxxxxx';
|
|
45
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
46
|
+
expect(result).toBe('token: [REDACTED]');
|
|
47
|
+
});
|
|
48
|
+
it('should redact GitLab tokens with hyphens and underscores', () => {
|
|
49
|
+
const input = 'glpat-abc_def-123_456_789_012_345';
|
|
50
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
51
|
+
expect(result).toBe('[REDACTED_GITLAB_TOKEN]');
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
describe('Bearer tokens', () => {
|
|
55
|
+
it('should redact Bearer tokens', () => {
|
|
56
|
+
const input = 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIn0';
|
|
57
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
58
|
+
expect(result).toBe('Authorization: Bearer [REDACTED]');
|
|
59
|
+
});
|
|
60
|
+
it('should redact Bearer tokens with padding', () => {
|
|
61
|
+
const input = 'Bearer abc123==';
|
|
62
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
63
|
+
expect(result).toBe('Bearer [REDACTED]');
|
|
64
|
+
});
|
|
65
|
+
});
|
|
66
|
+
describe('Basic auth', () => {
|
|
67
|
+
it('should redact Basic auth tokens', () => {
|
|
68
|
+
const input = 'Authorization: Basic dXNlcm5hbWU6cGFzc3dvcmQ=';
|
|
69
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
70
|
+
expect(result).toBe('Authorization: Basic [REDACTED]');
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
describe('key-value patterns', () => {
|
|
74
|
+
it('should redact token in JSON format', () => {
|
|
75
|
+
const input = '{"token": "secret123"}';
|
|
76
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
77
|
+
expect(result).toContain('[REDACTED]');
|
|
78
|
+
});
|
|
79
|
+
it('should redact password in config', () => {
|
|
80
|
+
const input = 'password: mysecretpassword';
|
|
81
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
82
|
+
expect(result).toBe('password: [REDACTED]');
|
|
83
|
+
});
|
|
84
|
+
it('should redact api_key values', () => {
|
|
85
|
+
const input = 'api_key=sk-1234567890abcdefghij';
|
|
86
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
87
|
+
expect(result).toBe('api_key: [REDACTED]');
|
|
88
|
+
});
|
|
89
|
+
it('should redact secret values', () => {
|
|
90
|
+
const input = 'secret: "my_super_secret_value"';
|
|
91
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
92
|
+
expect(result).toBe('secret: [REDACTED]');
|
|
93
|
+
});
|
|
94
|
+
it('should redact access_token values', () => {
|
|
95
|
+
const input = 'access_token=abcdef123456';
|
|
96
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
97
|
+
expect(result).toBe('access_token: [REDACTED]');
|
|
98
|
+
});
|
|
99
|
+
});
|
|
100
|
+
describe('edge cases', () => {
|
|
101
|
+
it('should handle empty string', () => {
|
|
102
|
+
expect((0, secrets_1.sanitizeSecrets)('')).toBe('');
|
|
103
|
+
});
|
|
104
|
+
it('should handle string with no secrets', () => {
|
|
105
|
+
const input = 'This is a normal message with no secrets';
|
|
106
|
+
expect((0, secrets_1.sanitizeSecrets)(input)).toBe(input);
|
|
107
|
+
});
|
|
108
|
+
it('should handle very long strings', () => {
|
|
109
|
+
const longString = 'a'.repeat(10000) + 'ghp_' + 'b'.repeat(36) + 'c'.repeat(10000);
|
|
110
|
+
const result = (0, secrets_1.sanitizeSecrets)(longString);
|
|
111
|
+
expect(result).toContain('[REDACTED_GITHUB_TOKEN]');
|
|
112
|
+
expect(result).not.toContain('ghp_');
|
|
113
|
+
});
|
|
114
|
+
it('should handle strings with special characters', () => {
|
|
115
|
+
const input = 'token: ghp_abc123!@#$%^&*()_+-=[]{}|;:,.<>?';
|
|
116
|
+
const result = (0, secrets_1.sanitizeSecrets)(input);
|
|
117
|
+
expect(result).toContain('[REDACTED]');
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
describe('containsSecrets', () => {
|
|
122
|
+
it('should detect token keyword', () => {
|
|
123
|
+
expect((0, secrets_1.containsSecrets)('my token is here')).toBe(true);
|
|
124
|
+
});
|
|
125
|
+
it('should detect password keyword', () => {
|
|
126
|
+
expect((0, secrets_1.containsSecrets)('enter your password')).toBe(true);
|
|
127
|
+
});
|
|
128
|
+
it('should detect secret keyword', () => {
|
|
129
|
+
expect((0, secrets_1.containsSecrets)('this is a secret')).toBe(true);
|
|
130
|
+
});
|
|
131
|
+
it('should detect api_key keyword', () => {
|
|
132
|
+
expect((0, secrets_1.containsSecrets)('set your api_key')).toBe(true);
|
|
133
|
+
});
|
|
134
|
+
it('should detect api-key keyword', () => {
|
|
135
|
+
expect((0, secrets_1.containsSecrets)('set your api-key')).toBe(true);
|
|
136
|
+
});
|
|
137
|
+
it('should detect bearer keyword', () => {
|
|
138
|
+
expect((0, secrets_1.containsSecrets)('Bearer token required')).toBe(true);
|
|
139
|
+
});
|
|
140
|
+
it('should detect authorization keyword', () => {
|
|
141
|
+
expect((0, secrets_1.containsSecrets)('Authorization header')).toBe(true);
|
|
142
|
+
});
|
|
143
|
+
it('should detect GitHub token prefix', () => {
|
|
144
|
+
expect((0, secrets_1.containsSecrets)('ghp_token')).toBe(true);
|
|
145
|
+
expect((0, secrets_1.containsSecrets)('gho_token')).toBe(true);
|
|
146
|
+
});
|
|
147
|
+
it('should detect GitLab token prefix', () => {
|
|
148
|
+
expect((0, secrets_1.containsSecrets)('glpat-token')).toBe(true);
|
|
149
|
+
});
|
|
150
|
+
it('should return false for normal text', () => {
|
|
151
|
+
expect((0, secrets_1.containsSecrets)('hello world')).toBe(false);
|
|
152
|
+
expect((0, secrets_1.containsSecrets)('this is normal text')).toBe(false);
|
|
153
|
+
});
|
|
154
|
+
it('should be case insensitive', () => {
|
|
155
|
+
expect((0, secrets_1.containsSecrets)('TOKEN')).toBe(true);
|
|
156
|
+
expect((0, secrets_1.containsSecrets)('Password')).toBe(true);
|
|
157
|
+
expect((0, secrets_1.containsSecrets)('SECRET')).toBe(true);
|
|
158
|
+
});
|
|
159
|
+
});
|
|
160
|
+
describe('isSensitiveKey', () => {
|
|
161
|
+
it('should identify token keys', () => {
|
|
162
|
+
expect((0, secrets_1.isSensitiveKey)('token')).toBe(true);
|
|
163
|
+
expect((0, secrets_1.isSensitiveKey)('access_token')).toBe(true);
|
|
164
|
+
expect((0, secrets_1.isSensitiveKey)('refresh_token')).toBe(true);
|
|
165
|
+
expect((0, secrets_1.isSensitiveKey)('GITHUB_TOKEN')).toBe(true);
|
|
166
|
+
});
|
|
167
|
+
it('should identify key keys', () => {
|
|
168
|
+
expect((0, secrets_1.isSensitiveKey)('api_key')).toBe(true);
|
|
169
|
+
expect((0, secrets_1.isSensitiveKey)('apiKey')).toBe(true);
|
|
170
|
+
expect((0, secrets_1.isSensitiveKey)('private_key')).toBe(true);
|
|
171
|
+
});
|
|
172
|
+
it('should identify secret keys', () => {
|
|
173
|
+
expect((0, secrets_1.isSensitiveKey)('secret')).toBe(true);
|
|
174
|
+
expect((0, secrets_1.isSensitiveKey)('client_secret')).toBe(true);
|
|
175
|
+
expect((0, secrets_1.isSensitiveKey)('SECRET_KEY')).toBe(true);
|
|
176
|
+
});
|
|
177
|
+
it('should identify password keys', () => {
|
|
178
|
+
expect((0, secrets_1.isSensitiveKey)('password')).toBe(true);
|
|
179
|
+
expect((0, secrets_1.isSensitiveKey)('db_password')).toBe(true);
|
|
180
|
+
expect((0, secrets_1.isSensitiveKey)('PASSWORD')).toBe(true);
|
|
181
|
+
});
|
|
182
|
+
it('should identify auth keys', () => {
|
|
183
|
+
expect((0, secrets_1.isSensitiveKey)('auth')).toBe(true);
|
|
184
|
+
expect((0, secrets_1.isSensitiveKey)('authorization')).toBe(true);
|
|
185
|
+
expect((0, secrets_1.isSensitiveKey)('auth_token')).toBe(true);
|
|
186
|
+
});
|
|
187
|
+
it('should return false for non-sensitive keys', () => {
|
|
188
|
+
expect((0, secrets_1.isSensitiveKey)('name')).toBe(false);
|
|
189
|
+
expect((0, secrets_1.isSensitiveKey)('email')).toBe(false);
|
|
190
|
+
expect((0, secrets_1.isSensitiveKey)('description')).toBe(false);
|
|
191
|
+
expect((0, secrets_1.isSensitiveKey)('owner')).toBe(false);
|
|
192
|
+
});
|
|
193
|
+
it('should be case insensitive', () => {
|
|
194
|
+
expect((0, secrets_1.isSensitiveKey)('TOKEN')).toBe(true);
|
|
195
|
+
expect((0, secrets_1.isSensitiveKey)('Token')).toBe(true);
|
|
196
|
+
expect((0, secrets_1.isSensitiveKey)('tOkEn')).toBe(true);
|
|
197
|
+
});
|
|
198
|
+
});
|
|
199
|
+
describe('redactConfig', () => {
|
|
200
|
+
it('should redact top-level token values', () => {
|
|
201
|
+
const config = { token: 'secret123', owner: 'myorg' };
|
|
202
|
+
const result = (0, secrets_1.redactConfig)(config);
|
|
203
|
+
expect(result.token).toBe('********');
|
|
204
|
+
expect(result.owner).toBe('myorg');
|
|
205
|
+
});
|
|
206
|
+
it('should redact nested sensitive values', () => {
|
|
207
|
+
const config = {
|
|
208
|
+
github: {
|
|
209
|
+
token: 'ghp_secret',
|
|
210
|
+
owner: 'myorg',
|
|
211
|
+
},
|
|
212
|
+
};
|
|
213
|
+
const result = (0, secrets_1.redactConfig)(config);
|
|
214
|
+
expect(result.github.token).toBe('********');
|
|
215
|
+
expect(result.github.owner).toBe('myorg');
|
|
216
|
+
});
|
|
217
|
+
it('should redact deeply nested values', () => {
|
|
218
|
+
const config = {
|
|
219
|
+
level1: {
|
|
220
|
+
level2: {
|
|
221
|
+
level3: {
|
|
222
|
+
api_key: 'secret',
|
|
223
|
+
},
|
|
224
|
+
},
|
|
225
|
+
},
|
|
226
|
+
};
|
|
227
|
+
const result = (0, secrets_1.redactConfig)(config);
|
|
228
|
+
expect(result.level1.level2.level3.api_key).toBe('********');
|
|
229
|
+
});
|
|
230
|
+
it('should preserve environment variable references', () => {
|
|
231
|
+
const config = { token: '${GITHUB_TOKEN}', secret: '${MY_SECRET}' };
|
|
232
|
+
const result = (0, secrets_1.redactConfig)(config);
|
|
233
|
+
expect(result.token).toBe('${GITHUB_TOKEN}');
|
|
234
|
+
expect(result.secret).toBe('${MY_SECRET}');
|
|
235
|
+
});
|
|
236
|
+
it('should not mutate original config', () => {
|
|
237
|
+
const original = { token: 'secret123' };
|
|
238
|
+
const originalToken = original.token;
|
|
239
|
+
(0, secrets_1.redactConfig)(original);
|
|
240
|
+
expect(original.token).toBe(originalToken);
|
|
241
|
+
});
|
|
242
|
+
it('should handle null and undefined', () => {
|
|
243
|
+
expect((0, secrets_1.redactConfig)(null)).toBe(null);
|
|
244
|
+
expect((0, secrets_1.redactConfig)(undefined)).toBe(undefined);
|
|
245
|
+
});
|
|
246
|
+
it('should handle arrays in config', () => {
|
|
247
|
+
const config = {
|
|
248
|
+
handlers: [{ token: 'secret1' }, { token: 'secret2' }],
|
|
249
|
+
};
|
|
250
|
+
const result = (0, secrets_1.redactConfig)(config);
|
|
251
|
+
expect(result.handlers[0].token).toBe('********');
|
|
252
|
+
expect(result.handlers[1].token).toBe('********');
|
|
253
|
+
});
|
|
254
|
+
it('should handle mixed content', () => {
|
|
255
|
+
const config = {
|
|
256
|
+
work: {
|
|
257
|
+
active_handler: 'github',
|
|
258
|
+
handlers: {
|
|
259
|
+
github: {
|
|
260
|
+
token: 'ghp_secret',
|
|
261
|
+
owner: 'myorg',
|
|
262
|
+
repo: 'myrepo',
|
|
263
|
+
},
|
|
264
|
+
},
|
|
265
|
+
},
|
|
266
|
+
repo: {
|
|
267
|
+
defaults: {
|
|
268
|
+
default_branch: 'main',
|
|
269
|
+
},
|
|
270
|
+
},
|
|
271
|
+
};
|
|
272
|
+
const result = (0, secrets_1.redactConfig)(config);
|
|
273
|
+
expect(result.work.handlers.github.token).toBe('********');
|
|
274
|
+
expect(result.work.handlers.github.owner).toBe('myorg');
|
|
275
|
+
expect(result.work.active_handler).toBe('github');
|
|
276
|
+
expect(result.repo.defaults.default_branch).toBe('main');
|
|
277
|
+
});
|
|
278
|
+
});
|
|
279
|
+
describe('redactValue', () => {
|
|
280
|
+
it('should redact value when key is sensitive', () => {
|
|
281
|
+
expect((0, secrets_1.redactValue)('secret123', 'token')).toBe('********');
|
|
282
|
+
expect((0, secrets_1.redactValue)('secret123', 'password')).toBe('********');
|
|
283
|
+
expect((0, secrets_1.redactValue)('secret123', 'api_key')).toBe('********');
|
|
284
|
+
});
|
|
285
|
+
it('should preserve env var references even with sensitive key', () => {
|
|
286
|
+
expect((0, secrets_1.redactValue)('${GITHUB_TOKEN}', 'token')).toBe('${GITHUB_TOKEN}');
|
|
287
|
+
expect((0, secrets_1.redactValue)('${DB_PASSWORD}', 'password')).toBe('${DB_PASSWORD}');
|
|
288
|
+
});
|
|
289
|
+
it('should redact GitHub tokens regardless of key', () => {
|
|
290
|
+
expect((0, secrets_1.redactValue)('ghp_1234567890abcdefghijklmnopqrstuvwxyz12')).toBe('[REDACTED_GITHUB_TOKEN]');
|
|
291
|
+
});
|
|
292
|
+
it('should redact GitLab tokens regardless of key', () => {
|
|
293
|
+
expect((0, secrets_1.redactValue)('glpat-xxxxxxxxxxxxxxxxxxxx')).toBe('[REDACTED_GITLAB_TOKEN]');
|
|
294
|
+
});
|
|
295
|
+
it('should return original value for non-sensitive content', () => {
|
|
296
|
+
expect((0, secrets_1.redactValue)('myorg', 'owner')).toBe('myorg');
|
|
297
|
+
expect((0, secrets_1.redactValue)('main', 'branch')).toBe('main');
|
|
298
|
+
});
|
|
299
|
+
});
|
|
300
|
+
describe('performance', () => {
|
|
301
|
+
it('should handle large strings efficiently', () => {
|
|
302
|
+
const largeString = 'x'.repeat(100000);
|
|
303
|
+
const start = Date.now();
|
|
304
|
+
(0, secrets_1.sanitizeSecrets)(largeString);
|
|
305
|
+
const elapsed = Date.now() - start;
|
|
306
|
+
// Should complete in under 100ms
|
|
307
|
+
expect(elapsed).toBeLessThan(100);
|
|
308
|
+
});
|
|
309
|
+
it('should handle many secrets efficiently', () => {
|
|
310
|
+
const manySecrets = Array(100)
|
|
311
|
+
.fill('token: ghp_1234567890abcdefghijklmnopqrstuvwxyz12')
|
|
312
|
+
.join('\n');
|
|
313
|
+
const start = Date.now();
|
|
314
|
+
const result = (0, secrets_1.sanitizeSecrets)(manySecrets);
|
|
315
|
+
const elapsed = Date.now() - start;
|
|
316
|
+
expect(elapsed).toBeLessThan(100);
|
|
317
|
+
expect(result).not.toContain('ghp_');
|
|
318
|
+
});
|
|
319
|
+
});
|
|
320
|
+
//# sourceMappingURL=secrets.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.test.js","sourceRoot":"","sources":["../../../src/common/__tests__/secrets.test.ts"],"names":[],"mappings":"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"}
|
package/dist/common/config.d.ts
CHANGED
|
@@ -3,10 +3,8 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Utilities for finding project roots and loading configuration.
|
|
5
5
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
*/
|
|
9
|
-
export declare function findProjectRoot(startDir?: string): string;
|
|
6
|
+
import { findProjectRoot as yamlFindProjectRoot } from './yaml-config';
|
|
7
|
+
export { yamlFindProjectRoot as findProjectRoot };
|
|
10
8
|
/**
|
|
11
9
|
* Check if a directory is a git repository
|
|
12
10
|
*/
|
|
@@ -19,6 +17,10 @@ export declare function getFractaryDir(projectRoot?: string): string;
|
|
|
19
17
|
* Ensure a directory exists
|
|
20
18
|
*/
|
|
21
19
|
export declare function ensureDir(dirPath: string): void;
|
|
20
|
+
/**
|
|
21
|
+
* Config loaders - extract plugin sections from unified YAML config
|
|
22
|
+
* Uses .fractary/core/config.yaml as the single source of truth
|
|
23
|
+
*/
|
|
22
24
|
/**
|
|
23
25
|
* Load work plugin configuration from unified YAML
|
|
24
26
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/common/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/common/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,eAAe,IAAI,mBAAmB,EAAkB,MAAM,eAAe,CAAC;AAIvF,OAAO,EAAE,mBAAmB,IAAI,eAAe,EAAE,CAAC;AAElD;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,GAAE,MAAsB,GAAG,OAAO,CAGpE;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAG3D;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAI/C;AAED;;;GAGG;AAEH;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAG/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAG/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAG/D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAG9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAG/D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAG/D"}
|
package/dist/common/config.js
CHANGED
|
@@ -38,7 +38,7 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
38
38
|
};
|
|
39
39
|
})();
|
|
40
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
41
|
-
exports.findProjectRoot =
|
|
41
|
+
exports.findProjectRoot = void 0;
|
|
42
42
|
exports.isGitRepository = isGitRepository;
|
|
43
43
|
exports.getFractaryDir = getFractaryDir;
|
|
44
44
|
exports.ensureDir = ensureDir;
|
|
@@ -50,33 +50,8 @@ exports.loadFileConfig = loadFileConfig;
|
|
|
50
50
|
exports.loadDocsConfig = loadDocsConfig;
|
|
51
51
|
const fs = __importStar(require("fs"));
|
|
52
52
|
const path = __importStar(require("path"));
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
*/
|
|
56
|
-
function findProjectRoot(startDir = process.cwd()) {
|
|
57
|
-
let currentDir = startDir;
|
|
58
|
-
// Common project root markers
|
|
59
|
-
const markers = [
|
|
60
|
-
'package.json',
|
|
61
|
-
'.git',
|
|
62
|
-
'tsconfig.json',
|
|
63
|
-
'pyproject.toml',
|
|
64
|
-
'setup.py',
|
|
65
|
-
];
|
|
66
|
-
while (currentDir !== path.parse(currentDir).root) {
|
|
67
|
-
// Check if any marker exists in current directory
|
|
68
|
-
for (const marker of markers) {
|
|
69
|
-
const markerPath = path.join(currentDir, marker);
|
|
70
|
-
if (fs.existsSync(markerPath)) {
|
|
71
|
-
return currentDir;
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
// Move up one directory
|
|
75
|
-
currentDir = path.dirname(currentDir);
|
|
76
|
-
}
|
|
77
|
-
// If no marker found, return the starting directory
|
|
78
|
-
return startDir;
|
|
79
|
-
}
|
|
53
|
+
const yaml_config_1 = require("./yaml-config");
|
|
54
|
+
Object.defineProperty(exports, "findProjectRoot", { enumerable: true, get: function () { return yaml_config_1.findProjectRoot; } });
|
|
80
55
|
/**
|
|
81
56
|
* Check if a directory is a git repository
|
|
82
57
|
*/
|
|
@@ -88,7 +63,7 @@ function isGitRepository(dir = process.cwd()) {
|
|
|
88
63
|
* Get the .fractary directory path
|
|
89
64
|
*/
|
|
90
65
|
function getFractaryDir(projectRoot) {
|
|
91
|
-
const root = projectRoot || findProjectRoot();
|
|
66
|
+
const root = projectRoot || (0, yaml_config_1.findProjectRoot)();
|
|
92
67
|
return path.join(root, '.fractary');
|
|
93
68
|
}
|
|
94
69
|
/**
|
|
@@ -103,7 +78,6 @@ function ensureDir(dirPath) {
|
|
|
103
78
|
* Config loaders - extract plugin sections from unified YAML config
|
|
104
79
|
* Uses .fractary/core/config.yaml as the single source of truth
|
|
105
80
|
*/
|
|
106
|
-
const yaml_config_1 = require("./yaml-config");
|
|
107
81
|
/**
|
|
108
82
|
* Load work plugin configuration from unified YAML
|
|
109
83
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/common/config.ts"],"names":[],"mappings":";AAAA;;;;GAIG
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/common/config.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaH,0CAGC;AAKD,wCAGC;AAKD,8BAIC;AAUD,wCAGC;AAKD,wCAGC;AAKD,wCAGC;AAKD,sCAGC;AAKD,wCAGC;AAKD,wCAGC;AApFD,uCAAyB;AACzB,2CAA6B;AAC7B,+CAAuF;AAIvD,gGAJJ,6BAAmB,OAIA;AAE/C;;GAEG;AACH,SAAgB,eAAe,CAAC,MAAc,OAAO,CAAC,GAAG,EAAE;IACzD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IACtC,OAAO,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,WAAoB;IACjD,MAAM,IAAI,GAAG,WAAW,IAAI,IAAA,6BAAmB,GAAE,CAAC;IAClD,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AACtC,CAAC;AAED;;GAEG;AACH,SAAgB,SAAS,CAAC,OAAe;IACvC,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC7C,CAAC;AACH,CAAC;AAED;;;GAGG;AAEH;;GAEG;AACH,SAAgB,cAAc,CAAC,WAAoB;IACjD,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/C,OAAO,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,WAAoB;IACjD,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/C,OAAO,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,WAAoB;IACjD,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/C,OAAO,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,aAAa,CAAC,WAAoB;IAChD,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/C,OAAO,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,WAAoB;IACjD,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/C,OAAO,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,WAAoB;IACjD,MAAM,MAAM,GAAG,IAAA,4BAAc,EAAC,EAAE,WAAW,EAAE,CAAC,CAAC;IAC/C,OAAO,MAAM,EAAE,IAAI,IAAI,IAAI,CAAC;AAC9B,CAAC"}
|
package/dist/common/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,WAAW,CAAC"}
|
package/dist/common/index.js
CHANGED
|
@@ -22,4 +22,5 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
22
22
|
__exportStar(require("./types"), exports);
|
|
23
23
|
__exportStar(require("./errors"), exports);
|
|
24
24
|
__exportStar(require("./config"), exports);
|
|
25
|
+
__exportStar(require("./secrets"), exports);
|
|
25
26
|
//# sourceMappingURL=index.js.map
|
package/dist/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;AAEH,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B"}
|