polyv-live-cli 1.1.5 → 1.1.8
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/commands/account.commands.d.ts +3 -0
- package/dist/commands/account.commands.d.ts.map +1 -0
- package/dist/commands/account.commands.js +386 -0
- package/dist/commands/account.commands.js.map +1 -0
- package/dist/commands/channel.commands.d.ts.map +1 -1
- package/dist/commands/channel.commands.js +84 -60
- package/dist/commands/channel.commands.js.map +1 -1
- package/dist/commands/index.d.ts +2 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +5 -1
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/stream.commands.d.ts.map +1 -1
- package/dist/commands/stream.commands.js +141 -63
- package/dist/commands/stream.commands.js.map +1 -1
- package/dist/commands/use.commands.d.ts +9 -0
- package/dist/commands/use.commands.d.ts.map +1 -0
- package/dist/commands/use.commands.js +66 -0
- package/dist/commands/use.commands.js.map +1 -0
- package/dist/components/alert.panel.d.ts.map +1 -1
- package/dist/components/alert.panel.js +3 -2
- package/dist/components/alert.panel.js.map +1 -1
- package/dist/components/index.d.ts +2 -1
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js.map +1 -1
- package/dist/config/account-config.d.ts +27 -0
- package/dist/config/account-config.d.ts.map +1 -0
- package/dist/config/account-config.js +358 -0
- package/dist/config/account-config.js.map +1 -0
- package/dist/config/account-crypto.d.ts +17 -0
- package/dist/config/account-crypto.d.ts.map +1 -0
- package/dist/config/account-crypto.js +129 -0
- package/dist/config/account-crypto.js.map +1 -0
- package/dist/config/account-encryption.d.ts +35 -0
- package/dist/config/account-encryption.d.ts.map +1 -0
- package/dist/config/account-encryption.js +207 -0
- package/dist/config/account-encryption.js.map +1 -0
- package/dist/config/auth-adapter.d.ts +23 -0
- package/dist/config/auth-adapter.d.ts.map +1 -0
- package/dist/config/auth-adapter.js +49 -0
- package/dist/config/auth-adapter.js.map +1 -0
- package/dist/config/auth-provider.d.ts +27 -0
- package/dist/config/auth-provider.d.ts.map +1 -0
- package/dist/config/auth-provider.js +54 -0
- package/dist/config/auth-provider.js.map +1 -0
- package/dist/config/auth-source-manager.d.ts +61 -0
- package/dist/config/auth-source-manager.d.ts.map +1 -0
- package/dist/config/auth-source-manager.js +402 -0
- package/dist/config/auth-source-manager.js.map +1 -0
- package/dist/config/config-recovery-manager.d.ts +67 -0
- package/dist/config/config-recovery-manager.d.ts.map +1 -0
- package/dist/config/config-recovery-manager.js +593 -0
- package/dist/config/config-recovery-manager.js.map +1 -0
- package/dist/config/config-version-manager.d.ts +44 -0
- package/dist/config/config-version-manager.d.ts.map +1 -0
- package/dist/config/config-version-manager.js +319 -0
- package/dist/config/config-version-manager.js.map +1 -0
- package/dist/config/file-permission-manager.d.ts +41 -0
- package/dist/config/file-permission-manager.d.ts.map +1 -0
- package/dist/config/file-permission-manager.js +290 -0
- package/dist/config/file-permission-manager.js.map +1 -0
- package/dist/config/layout-manager.d.ts.map +1 -1
- package/dist/config/layout-manager.js +2 -1
- package/dist/config/layout-manager.js.map +1 -1
- package/dist/config/secure-account-manager.d.ts +54 -0
- package/dist/config/secure-account-manager.d.ts.map +1 -0
- package/dist/config/secure-account-manager.js +438 -0
- package/dist/config/secure-account-manager.js.map +1 -0
- package/dist/config/session-state.d.ts +37 -0
- package/dist/config/session-state.d.ts.map +1 -0
- package/dist/config/session-state.js +207 -0
- package/dist/config/session-state.js.map +1 -0
- package/dist/config/session-storage.d.ts +21 -0
- package/dist/config/session-storage.d.ts.map +1 -0
- package/dist/config/session-storage.js +235 -0
- package/dist/config/session-storage.js.map +1 -0
- package/dist/config/theme-manager.d.ts.map +1 -1
- package/dist/config/theme-manager.js +2 -1
- package/dist/config/theme-manager.js.map +1 -1
- package/dist/handlers/stream.handler.d.ts.map +1 -1
- package/dist/handlers/stream.handler.js +6 -0
- package/dist/handlers/stream.handler.js.map +1 -1
- package/dist/handlers/use.handler.d.ts +13 -0
- package/dist/handlers/use.handler.d.ts.map +1 -0
- package/dist/handlers/use.handler.js +118 -0
- package/dist/handlers/use.handler.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +19 -12
- package/dist/index.js.map +1 -1
- package/dist/performance/batch-request-manager.d.ts +1 -0
- package/dist/performance/batch-request-manager.d.ts.map +1 -1
- package/dist/performance/batch-request-manager.js +7 -3
- package/dist/performance/batch-request-manager.js.map +1 -1
- package/dist/performance/change-detector.d.ts.map +1 -1
- package/dist/performance/change-detector.js +32 -3
- package/dist/performance/change-detector.js.map +1 -1
- package/dist/performance/error-recovery-manager.d.ts.map +1 -1
- package/dist/performance/error-recovery-manager.js +2 -2
- package/dist/performance/error-recovery-manager.js.map +1 -1
- package/dist/performance/index.d.ts +24 -12
- package/dist/performance/index.d.ts.map +1 -1
- package/dist/performance/index.js.map +1 -1
- package/dist/services/index.d.ts +4 -2
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js.map +1 -1
- package/dist/types/account.types.d.ts +79 -0
- package/dist/types/account.types.d.ts.map +1 -0
- package/dist/types/account.types.js +23 -0
- package/dist/types/account.types.js.map +1 -0
- package/dist/types/auth-source.types.d.ts +62 -0
- package/dist/types/auth-source.types.d.ts.map +1 -0
- package/dist/types/auth-source.types.js +25 -0
- package/dist/types/auth-source.types.js.map +1 -0
- package/dist/types/session.types.d.ts +43 -0
- package/dist/types/session.types.d.ts.map +1 -0
- package/dist/types/session.types.js +27 -0
- package/dist/types/session.types.js.map +1 -0
- package/dist/utils/auth-diagnostics.d.ts +47 -0
- package/dist/utils/auth-diagnostics.d.ts.map +1 -0
- package/dist/utils/auth-diagnostics.js +245 -0
- package/dist/utils/auth-diagnostics.js.map +1 -0
- package/package.json +19 -7
|
@@ -0,0 +1,129 @@
|
|
|
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.AccountCrypto = void 0;
|
|
37
|
+
const crypto = __importStar(require("crypto"));
|
|
38
|
+
const ENCRYPTION_CONFIG = {
|
|
39
|
+
algorithm: 'aes-256-cbc',
|
|
40
|
+
keyLength: 32,
|
|
41
|
+
ivLength: 16,
|
|
42
|
+
defaultMasterKey: 'polyv-cli-default-master-key-2024'
|
|
43
|
+
};
|
|
44
|
+
class AccountCrypto {
|
|
45
|
+
constructor(masterKey) {
|
|
46
|
+
const keySource = masterKey || process.env['POLYV_MASTER_KEY'] || ENCRYPTION_CONFIG.defaultMasterKey;
|
|
47
|
+
this.masterKey = this.deriveKey(keySource);
|
|
48
|
+
}
|
|
49
|
+
deriveKey(masterKey) {
|
|
50
|
+
const salt = Buffer.from('polyv-cli-salt-2024', 'utf8');
|
|
51
|
+
return crypto.pbkdf2Sync(masterKey, salt, 100000, ENCRYPTION_CONFIG.keyLength, 'sha256');
|
|
52
|
+
}
|
|
53
|
+
encrypt(plaintext) {
|
|
54
|
+
try {
|
|
55
|
+
const iv = crypto.randomBytes(ENCRYPTION_CONFIG.ivLength);
|
|
56
|
+
const cipher = crypto.createCipheriv(ENCRYPTION_CONFIG.algorithm, this.masterKey, iv);
|
|
57
|
+
let encrypted = cipher.update(plaintext, 'utf8', 'hex');
|
|
58
|
+
encrypted += cipher.final('hex');
|
|
59
|
+
const metadata = {
|
|
60
|
+
algorithm: ENCRYPTION_CONFIG.algorithm,
|
|
61
|
+
iv: iv.toString('hex'),
|
|
62
|
+
authTag: ''
|
|
63
|
+
};
|
|
64
|
+
return {
|
|
65
|
+
encrypted,
|
|
66
|
+
metadata
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
throw new Error(`Failed to encrypt account secret: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
decrypt(encrypted, metadata) {
|
|
74
|
+
try {
|
|
75
|
+
if (metadata.algorithm !== ENCRYPTION_CONFIG.algorithm) {
|
|
76
|
+
throw new Error(`Unsupported encryption algorithm: ${metadata.algorithm}`);
|
|
77
|
+
}
|
|
78
|
+
const iv = Buffer.from(metadata.iv, 'hex');
|
|
79
|
+
const decipher = crypto.createDecipheriv(metadata.algorithm, this.masterKey, iv);
|
|
80
|
+
let decrypted = decipher.update(encrypted, 'hex', 'utf8');
|
|
81
|
+
decrypted += decipher.final('utf8');
|
|
82
|
+
return decrypted;
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
throw new Error(`Failed to decrypt account secret: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
encryptSimple(plaintext) {
|
|
89
|
+
const { encrypted, metadata } = this.encrypt(plaintext);
|
|
90
|
+
const combined = {
|
|
91
|
+
data: encrypted,
|
|
92
|
+
meta: metadata
|
|
93
|
+
};
|
|
94
|
+
return Buffer.from(JSON.stringify(combined)).toString('base64');
|
|
95
|
+
}
|
|
96
|
+
decryptSimple(encryptedData) {
|
|
97
|
+
try {
|
|
98
|
+
const combined = JSON.parse(Buffer.from(encryptedData, 'base64').toString('utf8'));
|
|
99
|
+
return this.decrypt(combined.data, combined.meta);
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
throw new Error(`Failed to decrypt account secret: Invalid encrypted data format`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
validateEncryptedData(encryptedData) {
|
|
106
|
+
try {
|
|
107
|
+
this.decryptSimple(encryptedData);
|
|
108
|
+
return true;
|
|
109
|
+
}
|
|
110
|
+
catch {
|
|
111
|
+
return false;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
static generateMasterKey() {
|
|
115
|
+
return crypto.randomBytes(32).toString('hex');
|
|
116
|
+
}
|
|
117
|
+
testEncryption(testData = 'test-secret-data') {
|
|
118
|
+
try {
|
|
119
|
+
const encrypted = this.encryptSimple(testData);
|
|
120
|
+
const decrypted = this.decryptSimple(encrypted);
|
|
121
|
+
return decrypted === testData;
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
return false;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
exports.AccountCrypto = AccountCrypto;
|
|
129
|
+
//# sourceMappingURL=account-crypto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-crypto.js","sourceRoot":"","sources":["../../src/config/account-crypto.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export interface EncryptedData {
|
|
2
|
+
algorithm: 'aes-256-gcm';
|
|
3
|
+
iv: string;
|
|
4
|
+
authTag: string;
|
|
5
|
+
encrypted: string;
|
|
6
|
+
}
|
|
7
|
+
export interface AccountEncryption {
|
|
8
|
+
encrypt(plaintext: string): EncryptedData;
|
|
9
|
+
decrypt(encryptedData: EncryptedData): string;
|
|
10
|
+
generateKey(): string;
|
|
11
|
+
validateKey(key: string): boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare class AccountEncryptionImpl implements AccountEncryption {
|
|
14
|
+
private encryptionKey;
|
|
15
|
+
private keySource;
|
|
16
|
+
constructor(masterKey?: string);
|
|
17
|
+
private resolveEncryptionKey;
|
|
18
|
+
private generateDefaultKey;
|
|
19
|
+
private deriveEncryptionKey;
|
|
20
|
+
encrypt(plaintext: string): EncryptedData;
|
|
21
|
+
decrypt(encryptedData: EncryptedData): string;
|
|
22
|
+
generateKey(): string;
|
|
23
|
+
validateKey(key: string): boolean;
|
|
24
|
+
testEncryption(testData?: string): boolean;
|
|
25
|
+
getKeySource(): 'environment' | 'generated';
|
|
26
|
+
validateEncryptedData(encryptedData: unknown): encryptedData is EncryptedData;
|
|
27
|
+
getEncryptionMetadata(): {
|
|
28
|
+
algorithm: string;
|
|
29
|
+
keySource: 'environment' | 'generated';
|
|
30
|
+
version: string;
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export declare function createAccountEncryption(masterKey?: string): AccountEncryption;
|
|
34
|
+
export declare const defaultAccountEncryption: AccountEncryption;
|
|
35
|
+
//# sourceMappingURL=account-encryption.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-encryption.d.ts","sourceRoot":"","sources":["../../src/config/account-encryption.ts"],"names":[],"mappings":"AAqBA,MAAM,WAAW,aAAa;IAE5B,SAAS,EAAE,aAAa,CAAC;IAEzB,EAAE,EAAE,MAAM,CAAC;IAEX,OAAO,EAAE,MAAM,CAAC;IAEhB,SAAS,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,WAAW,iBAAiB;IAMhC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,CAAC;IAO1C,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM,CAAC;IAM9C,WAAW,IAAI,MAAM,CAAC;IAOtB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACnC;AAiBD,qBAAa,qBAAsB,YAAW,iBAAiB;IAC7D,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,SAAS,CAA8B;gBAMnC,SAAS,CAAC,EAAE,MAAM;IAW9B,OAAO,CAAC,oBAAoB;IAkC5B,OAAO,CAAC,kBAAkB;IA+B1B,OAAO,CAAC,mBAAmB;IAiBpB,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa;IAmCzC,OAAO,CAAC,aAAa,EAAE,aAAa,GAAG,MAAM;IAiD7C,WAAW,IAAI,MAAM;IAWrB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAsBjC,cAAc,CAAC,QAAQ,GAAE,MAAgC,GAAG,OAAO;IAcnE,YAAY,IAAI,aAAa,GAAG,WAAW;IAS3C,qBAAqB,CAAC,aAAa,EAAE,OAAO,GAAG,aAAa,IAAI,aAAa;IAsB7E,qBAAqB,IAAI;QAC9B,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,aAAa,GAAG,WAAW,CAAC;QACvC,OAAO,EAAE,MAAM,CAAC;KACjB;CAOF;AAOD,wBAAgB,uBAAuB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,iBAAiB,CAE7E;AAKD,eAAO,MAAM,wBAAwB,mBAA4B,CAAC"}
|
|
@@ -0,0 +1,207 @@
|
|
|
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.defaultAccountEncryption = exports.AccountEncryptionImpl = void 0;
|
|
37
|
+
exports.createAccountEncryption = createAccountEncryption;
|
|
38
|
+
const crypto = __importStar(require("crypto"));
|
|
39
|
+
const os = __importStar(require("os"));
|
|
40
|
+
const ENCRYPTION_CONFIG = {
|
|
41
|
+
algorithm: 'aes-256-gcm',
|
|
42
|
+
keyLength: 32,
|
|
43
|
+
ivLength: 16,
|
|
44
|
+
authTagLength: 16,
|
|
45
|
+
keyDerivationIterations: 100000,
|
|
46
|
+
saltString: 'polyv-cli-security-salt-v1.0'
|
|
47
|
+
};
|
|
48
|
+
class AccountEncryptionImpl {
|
|
49
|
+
constructor(masterKey) {
|
|
50
|
+
const keyInfo = this.resolveEncryptionKey(masterKey);
|
|
51
|
+
this.encryptionKey = keyInfo.key;
|
|
52
|
+
this.keySource = keyInfo.source;
|
|
53
|
+
}
|
|
54
|
+
resolveEncryptionKey(providedKey) {
|
|
55
|
+
let keyString;
|
|
56
|
+
let source;
|
|
57
|
+
if (providedKey) {
|
|
58
|
+
keyString = providedKey;
|
|
59
|
+
source = 'environment';
|
|
60
|
+
}
|
|
61
|
+
else if (process.env['POLYV_MASTER_KEY']) {
|
|
62
|
+
keyString = process.env['POLYV_MASTER_KEY'];
|
|
63
|
+
source = 'environment';
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
keyString = this.generateDefaultKey();
|
|
67
|
+
source = 'generated';
|
|
68
|
+
}
|
|
69
|
+
if (!this.validateKey(keyString)) {
|
|
70
|
+
throw new Error('Invalid encryption key. Key must be at least 16 characters long and contain mixed case letters and numbers.');
|
|
71
|
+
}
|
|
72
|
+
return {
|
|
73
|
+
key: this.deriveEncryptionKey(keyString),
|
|
74
|
+
source
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
generateDefaultKey() {
|
|
78
|
+
let username = 'unknown';
|
|
79
|
+
try {
|
|
80
|
+
const userInfo = os.userInfo();
|
|
81
|
+
username = userInfo && userInfo.username ? userInfo.username : 'unknown';
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
username = 'unknown';
|
|
85
|
+
}
|
|
86
|
+
const machineInfo = {
|
|
87
|
+
hostname: os.hostname(),
|
|
88
|
+
platform: os.platform(),
|
|
89
|
+
arch: os.arch(),
|
|
90
|
+
homedir: os.homedir(),
|
|
91
|
+
username
|
|
92
|
+
};
|
|
93
|
+
const hash = crypto.createHash('sha256');
|
|
94
|
+
hash.update(JSON.stringify(machineInfo));
|
|
95
|
+
hash.update('polyv-cli-default-key-v1.0');
|
|
96
|
+
return hash.digest('hex');
|
|
97
|
+
}
|
|
98
|
+
deriveEncryptionKey(masterKey) {
|
|
99
|
+
const salt = Buffer.from(ENCRYPTION_CONFIG.saltString, 'utf8');
|
|
100
|
+
return crypto.pbkdf2Sync(masterKey, salt, ENCRYPTION_CONFIG.keyDerivationIterations, ENCRYPTION_CONFIG.keyLength, 'sha256');
|
|
101
|
+
}
|
|
102
|
+
encrypt(plaintext) {
|
|
103
|
+
try {
|
|
104
|
+
const iv = crypto.randomBytes(ENCRYPTION_CONFIG.ivLength);
|
|
105
|
+
const cipher = crypto.createCipheriv(ENCRYPTION_CONFIG.algorithm, this.encryptionKey, iv);
|
|
106
|
+
let encrypted = cipher.update(plaintext, 'utf8');
|
|
107
|
+
encrypted = Buffer.concat([encrypted, cipher.final()]);
|
|
108
|
+
const authTag = cipher.getAuthTag();
|
|
109
|
+
return {
|
|
110
|
+
algorithm: ENCRYPTION_CONFIG.algorithm,
|
|
111
|
+
iv: iv.toString('base64'),
|
|
112
|
+
authTag: authTag.toString('base64'),
|
|
113
|
+
encrypted: encrypted.toString('base64')
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
catch (error) {
|
|
117
|
+
throw new Error(`Failed to encrypt account secret. Please check your encryption key and try again. ` +
|
|
118
|
+
`Error: ${error instanceof Error ? error.message : 'Unknown encryption error'}`);
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
decrypt(encryptedData) {
|
|
122
|
+
try {
|
|
123
|
+
if (encryptedData.algorithm !== ENCRYPTION_CONFIG.algorithm) {
|
|
124
|
+
throw new Error(`Unsupported encryption algorithm: ${encryptedData.algorithm}. Expected: ${ENCRYPTION_CONFIG.algorithm}`);
|
|
125
|
+
}
|
|
126
|
+
const iv = Buffer.from(encryptedData.iv, 'base64');
|
|
127
|
+
const authTag = Buffer.from(encryptedData.authTag, 'base64');
|
|
128
|
+
const encrypted = Buffer.from(encryptedData.encrypted, 'base64');
|
|
129
|
+
const decipher = crypto.createDecipheriv(ENCRYPTION_CONFIG.algorithm, this.encryptionKey, iv);
|
|
130
|
+
decipher.setAuthTag(authTag);
|
|
131
|
+
let decrypted = decipher.update(encrypted);
|
|
132
|
+
decrypted = Buffer.concat([decrypted, decipher.final()]);
|
|
133
|
+
return decrypted.toString('utf8');
|
|
134
|
+
}
|
|
135
|
+
catch (error) {
|
|
136
|
+
if (error instanceof Error) {
|
|
137
|
+
const errorMessage = error.message.toLowerCase();
|
|
138
|
+
if (errorMessage.includes('bad decrypt') ||
|
|
139
|
+
errorMessage.includes('unsupported state or unable to authenticate data') ||
|
|
140
|
+
errorMessage.includes('invalid authentication tag') ||
|
|
141
|
+
errorMessage.includes('authentication failed')) {
|
|
142
|
+
throw new Error('Failed to decrypt account secret. This may be due to:\n' +
|
|
143
|
+
'1. Incorrect encryption key (check POLYV_MASTER_KEY environment variable)\n' +
|
|
144
|
+
'2. Corrupted configuration file\n' +
|
|
145
|
+
'3. Configuration file created with different key\n\n' +
|
|
146
|
+
'Try: polyv-cli config recover');
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
throw new Error(`Failed to decrypt account secret: ${error instanceof Error ? error.message : 'Unknown decryption error'}\n\n` +
|
|
150
|
+
'Try: polyv-cli config recover');
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
generateKey() {
|
|
154
|
+
const randomBytes = crypto.randomBytes(32);
|
|
155
|
+
return randomBytes.toString('hex');
|
|
156
|
+
}
|
|
157
|
+
validateKey(key) {
|
|
158
|
+
if (!key || typeof key !== 'string') {
|
|
159
|
+
return false;
|
|
160
|
+
}
|
|
161
|
+
if (key.length < 16) {
|
|
162
|
+
return false;
|
|
163
|
+
}
|
|
164
|
+
const hasLowerCase = /[a-z]/.test(key);
|
|
165
|
+
const hasUpperOrNumber = /[A-Z0-9]/.test(key);
|
|
166
|
+
return hasLowerCase && hasUpperOrNumber;
|
|
167
|
+
}
|
|
168
|
+
testEncryption(testData = 'test-secret-data-2024') {
|
|
169
|
+
try {
|
|
170
|
+
const encrypted = this.encrypt(testData);
|
|
171
|
+
const decrypted = this.decrypt(encrypted);
|
|
172
|
+
return decrypted === testData;
|
|
173
|
+
}
|
|
174
|
+
catch {
|
|
175
|
+
return false;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
getKeySource() {
|
|
179
|
+
return this.keySource;
|
|
180
|
+
}
|
|
181
|
+
validateEncryptedData(encryptedData) {
|
|
182
|
+
if (!encryptedData || typeof encryptedData !== 'object') {
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
const data = encryptedData;
|
|
186
|
+
return (data['algorithm'] === ENCRYPTION_CONFIG.algorithm &&
|
|
187
|
+
typeof data['iv'] === 'string' &&
|
|
188
|
+
typeof data['authTag'] === 'string' &&
|
|
189
|
+
typeof data['encrypted'] === 'string' &&
|
|
190
|
+
data['iv'].length > 0 &&
|
|
191
|
+
data['authTag'].length > 0 &&
|
|
192
|
+
data['encrypted'].length > 0);
|
|
193
|
+
}
|
|
194
|
+
getEncryptionMetadata() {
|
|
195
|
+
return {
|
|
196
|
+
algorithm: ENCRYPTION_CONFIG.algorithm,
|
|
197
|
+
keySource: this.keySource,
|
|
198
|
+
version: '1.0'
|
|
199
|
+
};
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
exports.AccountEncryptionImpl = AccountEncryptionImpl;
|
|
203
|
+
function createAccountEncryption(masterKey) {
|
|
204
|
+
return new AccountEncryptionImpl(masterKey);
|
|
205
|
+
}
|
|
206
|
+
exports.defaultAccountEncryption = createAccountEncryption();
|
|
207
|
+
//# sourceMappingURL=account-encryption.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"account-encryption.js","sourceRoot":"","sources":["../../src/config/account-encryption.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { AuthConfig } from '../types/auth';
|
|
2
|
+
import { AuthenticationProvider } from '../types/auth-source.types';
|
|
3
|
+
export declare class AuthenticationAdapter {
|
|
4
|
+
private authProvider;
|
|
5
|
+
constructor(authProvider?: AuthenticationProvider);
|
|
6
|
+
getAuthConfig(options?: Record<string, unknown>): AuthConfig;
|
|
7
|
+
tryGetAuthConfig(options?: Record<string, unknown>): {
|
|
8
|
+
config: AuthConfig;
|
|
9
|
+
source: string;
|
|
10
|
+
accountName?: string;
|
|
11
|
+
} | null;
|
|
12
|
+
isAuthenticationAvailable(options?: Record<string, unknown>): boolean;
|
|
13
|
+
getStatusMessage(options?: Record<string, unknown>): string;
|
|
14
|
+
getDiagnostics(options?: Record<string, unknown>): {
|
|
15
|
+
availableSources: import("../types/auth-source.types").AuthenticationSource[];
|
|
16
|
+
selectedSource?: import("../types/auth-source.types").AuthenticationSource;
|
|
17
|
+
errors: string[];
|
|
18
|
+
warnings: string[];
|
|
19
|
+
suggestions: string[];
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
export declare const authAdapter: AuthenticationAdapter;
|
|
23
|
+
//# sourceMappingURL=auth-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-adapter.d.ts","sourceRoot":"","sources":["../../src/config/auth-adapter.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAQpE,qBAAa,qBAAqB;IAChC,OAAO,CAAC,YAAY,CAAyB;gBAEjC,YAAY,CAAC,EAAE,sBAAsB;IAU1C,aAAa,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,UAAU;IAoB5D,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QAC1D,MAAM,EAAE,UAAU,CAAC;QACnB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,GAAG,IAAI;IAuBD,yBAAyB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;IASrE,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAS3D,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;;;;;;CAGxD;AAKD,eAAO,MAAM,WAAW,uBAA8B,CAAC"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.authAdapter = exports.AuthenticationAdapter = void 0;
|
|
4
|
+
const auth_provider_1 = require("./auth-provider");
|
|
5
|
+
const errors_1 = require("../utils/errors");
|
|
6
|
+
class AuthenticationAdapter {
|
|
7
|
+
constructor(authProvider) {
|
|
8
|
+
this.authProvider = authProvider || new auth_provider_1.DefaultAuthenticationProvider();
|
|
9
|
+
}
|
|
10
|
+
getAuthConfig(options) {
|
|
11
|
+
const credentials = this.authProvider.getCredentials(options);
|
|
12
|
+
if (!credentials) {
|
|
13
|
+
const statusMessage = this.authProvider.getStatusMessage(options);
|
|
14
|
+
throw new errors_1.ConfigurationError(statusMessage);
|
|
15
|
+
}
|
|
16
|
+
return {
|
|
17
|
+
appId: credentials.appId,
|
|
18
|
+
appSecret: credentials.appSecret,
|
|
19
|
+
...(credentials.userId && { userId: credentials.userId }),
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
tryGetAuthConfig(options) {
|
|
23
|
+
const context = this.authProvider.getAuthenticationContext(options);
|
|
24
|
+
if (!context) {
|
|
25
|
+
return null;
|
|
26
|
+
}
|
|
27
|
+
return {
|
|
28
|
+
config: {
|
|
29
|
+
appId: context.credentials.appId,
|
|
30
|
+
appSecret: context.credentials.appSecret,
|
|
31
|
+
...(context.credentials.userId && { userId: context.credentials.userId }),
|
|
32
|
+
},
|
|
33
|
+
source: context.source.metadata.source,
|
|
34
|
+
...(context.source.metadata.accountName && { accountName: context.source.metadata.accountName }),
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
isAuthenticationAvailable(options) {
|
|
38
|
+
return this.authProvider.getCredentials(options) !== null;
|
|
39
|
+
}
|
|
40
|
+
getStatusMessage(options) {
|
|
41
|
+
return this.authProvider.getStatusMessage(options);
|
|
42
|
+
}
|
|
43
|
+
getDiagnostics(options) {
|
|
44
|
+
return this.authProvider.getDiagnostics(options);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
exports.AuthenticationAdapter = AuthenticationAdapter;
|
|
48
|
+
exports.authAdapter = new AuthenticationAdapter();
|
|
49
|
+
//# sourceMappingURL=auth-adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-adapter.js","sourceRoot":"","sources":["../../src/config/auth-adapter.ts"],"names":[],"mappings":";;;AAMA,mDAAgE;AAChE,4CAAqD;AAMrD,MAAa,qBAAqB;IAGhC,YAAY,YAAqC;QAC/C,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,IAAI,6CAA6B,EAAE,CAAC;IAC1E,CAAC;IAQM,aAAa,CAAC,OAAiC;QACpD,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE9D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;YAClE,MAAM,IAAI,2BAAkB,CAAC,aAAa,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,SAAS,EAAE,WAAW,CAAC,SAAS;YAChC,GAAG,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,CAAC;SAC1D,CAAC;IACJ,CAAC;IAOM,gBAAgB,CAAC,OAAiC;QAKvD,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;QAEpE,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,MAAM,EAAE;gBACN,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,KAAK;gBAChC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,SAAS;gBACxC,GAAG,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;aAC1E;YACD,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM;YACtC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;SACjG,CAAC;IACJ,CAAC;IAOM,yBAAyB,CAAC,OAAiC;QAChE,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC;IAC5D,CAAC;IAOM,gBAAgB,CAAC,OAAiC;QACvD,OAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACrD,CAAC;IAOM,cAAc,CAAC,OAAiC;QACrD,OAAO,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;CACF;AAjFD,sDAiFC;AAKY,QAAA,WAAW,GAAG,IAAI,qBAAqB,EAAE,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { AuthenticationProvider, AuthenticationContext, AuthenticationSource } from '../types/auth-source.types';
|
|
2
|
+
import { SessionStateManager } from './session-state';
|
|
3
|
+
import { AccountConfigManager } from './account-config';
|
|
4
|
+
export declare class DefaultAuthenticationProvider implements AuthenticationProvider {
|
|
5
|
+
private sourceManager;
|
|
6
|
+
constructor(sessionManager?: SessionStateManager, accountManager?: AccountConfigManager);
|
|
7
|
+
getAuthenticationContext(options?: Record<string, unknown>): AuthenticationContext | null;
|
|
8
|
+
getCredentials(options?: Record<string, unknown>): {
|
|
9
|
+
appId: string;
|
|
10
|
+
appSecret: string;
|
|
11
|
+
userId?: string;
|
|
12
|
+
} | null;
|
|
13
|
+
getCurrentSource(options?: Record<string, unknown>): AuthenticationSource | null;
|
|
14
|
+
validateAuthentication(source: AuthenticationSource): boolean;
|
|
15
|
+
getStatusMessage(options?: Record<string, unknown>): string;
|
|
16
|
+
getDiagnostics(options?: Record<string, unknown>): {
|
|
17
|
+
availableSources: AuthenticationSource[];
|
|
18
|
+
selectedSource?: AuthenticationSource;
|
|
19
|
+
errors: string[];
|
|
20
|
+
warnings: string[];
|
|
21
|
+
suggestions: string[];
|
|
22
|
+
};
|
|
23
|
+
getSourceByType(type: string, options?: Record<string, unknown>): AuthenticationSource | null;
|
|
24
|
+
isSourceAvailable(type: string, options?: Record<string, unknown>): boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare const authProvider: DefaultAuthenticationProvider;
|
|
27
|
+
//# sourceMappingURL=auth-provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-provider.d.ts","sourceRoot":"","sources":["../../src/config/auth-provider.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,4BAA4B,CAAC;AAEpC,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAKxD,qBAAa,6BAA8B,YAAW,sBAAsB;IAC1E,OAAO,CAAC,aAAa,CAA8B;gBAGjD,cAAc,CAAC,EAAE,mBAAmB,EACpC,cAAc,CAAC,EAAE,oBAAoB;IAUhC,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,qBAAqB,GAAG,IAAI;IA6BzF,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACxD,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI;IASD,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,oBAAoB,GAAG,IAAI;IAShF,sBAAsB,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO;IAS7D,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAS3D,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;QACxD,gBAAgB,EAAE,oBAAoB,EAAE,CAAC;QACzC,cAAc,CAAC,EAAE,oBAAoB,CAAC;QACtC,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;IAUM,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,oBAAoB,GAAG,IAAI;IAU7F,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO;CAGnF;AAKD,eAAO,MAAM,YAAY,+BAAsC,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.authProvider = exports.DefaultAuthenticationProvider = void 0;
|
|
4
|
+
const auth_source_manager_1 = require("./auth-source-manager");
|
|
5
|
+
class DefaultAuthenticationProvider {
|
|
6
|
+
constructor(sessionManager, accountManager) {
|
|
7
|
+
this.sourceManager = new auth_source_manager_1.AuthenticationSourceManager(sessionManager, accountManager);
|
|
8
|
+
}
|
|
9
|
+
getAuthenticationContext(options) {
|
|
10
|
+
const diagnostics = this.sourceManager.getDiagnostics(options);
|
|
11
|
+
const selectedSource = diagnostics.selectedSource;
|
|
12
|
+
if (!selectedSource || !this.sourceManager.isCompleteAuthentication(selectedSource)) {
|
|
13
|
+
return null;
|
|
14
|
+
}
|
|
15
|
+
return {
|
|
16
|
+
source: selectedSource,
|
|
17
|
+
credentials: {
|
|
18
|
+
appId: selectedSource.appId,
|
|
19
|
+
appSecret: selectedSource.appSecret,
|
|
20
|
+
...(selectedSource.userId && { userId: selectedSource.userId }),
|
|
21
|
+
},
|
|
22
|
+
diagnostics: {
|
|
23
|
+
attemptedSources: diagnostics.availableSources.map(s => s.metadata.source),
|
|
24
|
+
selectedReason: `优先级最高的完整认证源 (优先级 ${selectedSource.priority})`,
|
|
25
|
+
warnings: diagnostics.warnings,
|
|
26
|
+
isComplete: true,
|
|
27
|
+
},
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
getCredentials(options) {
|
|
31
|
+
return this.sourceManager.getCredentials(options);
|
|
32
|
+
}
|
|
33
|
+
getCurrentSource(options) {
|
|
34
|
+
return this.sourceManager.getAuthenticationSource(options);
|
|
35
|
+
}
|
|
36
|
+
validateAuthentication(source) {
|
|
37
|
+
return this.sourceManager.isCompleteAuthentication(source);
|
|
38
|
+
}
|
|
39
|
+
getStatusMessage(options) {
|
|
40
|
+
return this.sourceManager.getStatusMessage(options);
|
|
41
|
+
}
|
|
42
|
+
getDiagnostics(options) {
|
|
43
|
+
return this.sourceManager.getDiagnostics(options);
|
|
44
|
+
}
|
|
45
|
+
getSourceByType(type, options) {
|
|
46
|
+
return this.sourceManager.getSourceByType(type, options);
|
|
47
|
+
}
|
|
48
|
+
isSourceAvailable(type, options) {
|
|
49
|
+
return this.sourceManager.isSourceAvailable(type, options);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.DefaultAuthenticationProvider = DefaultAuthenticationProvider;
|
|
53
|
+
exports.authProvider = new DefaultAuthenticationProvider();
|
|
54
|
+
//# sourceMappingURL=auth-provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-provider.js","sourceRoot":"","sources":["../../src/config/auth-provider.ts"],"names":[],"mappings":";;;AASA,+DAAoE;AAOpE,MAAa,6BAA6B;IAGxC,YACE,cAAoC,EACpC,cAAqC;QAErC,IAAI,CAAC,aAAa,GAAG,IAAI,iDAA2B,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;IACvF,CAAC;IAOM,wBAAwB,CAAC,OAAiC;QAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAC/D,MAAM,cAAc,GAAG,WAAW,CAAC,cAAc,CAAC;QAElD,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,cAAc,CAAC,EAAE,CAAC;YACpF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,MAAM,EAAE,cAAc;YACtB,WAAW,EAAE;gBACX,KAAK,EAAE,cAAc,CAAC,KAAM;gBAC5B,SAAS,EAAE,cAAc,CAAC,SAAU;gBACpC,GAAG,CAAC,cAAc,CAAC,MAAM,IAAI,EAAE,MAAM,EAAE,cAAc,CAAC,MAAM,EAAE,CAAC;aAChE;YACD,WAAW,EAAE;gBACX,gBAAgB,EAAE,WAAW,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC1E,cAAc,EAAE,oBAAoB,cAAc,CAAC,QAAQ,GAAG;gBAC9D,QAAQ,EAAE,WAAW,CAAC,QAAQ;gBAC9B,UAAU,EAAE,IAAI;aACjB;SACF,CAAC;IACJ,CAAC;IAOM,cAAc,CAAC,OAAiC;QAKrD,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAOM,gBAAgB,CAAC,OAAiC;QACvD,OAAO,IAAI,CAAC,aAAa,CAAC,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAC7D,CAAC;IAOM,sBAAsB,CAAC,MAA4B;QACxD,OAAO,IAAI,CAAC,aAAa,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAC7D,CAAC;IAOM,gBAAgB,CAAC,OAAiC;QACvD,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtD,CAAC;IAOM,cAAc,CAAC,OAAiC;QAOrD,OAAO,IAAI,CAAC,aAAa,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IACpD,CAAC;IAQM,eAAe,CAAC,IAAY,EAAE,OAAiC;QACpE,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,IAAW,EAAE,OAAO,CAAC,CAAC;IAClE,CAAC;IAQM,iBAAiB,CAAC,IAAY,EAAE,OAAiC;QACtE,OAAO,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAW,EAAE,OAAO,CAAC,CAAC;IACpE,CAAC;CACF;AAjHD,sEAiHC;AAKY,QAAA,YAAY,GAAG,IAAI,6BAA6B,EAAE,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import { AuthenticationSource, AuthenticationSourceType, AuthenticationSourceDetector } from '../types/auth-source.types';
|
|
2
|
+
import { SessionStateManager } from './session-state';
|
|
3
|
+
import { AccountConfigManager } from './account-config';
|
|
4
|
+
export declare class CommandLineAuthDetector implements AuthenticationSourceDetector {
|
|
5
|
+
readonly type: AuthenticationSourceType;
|
|
6
|
+
readonly priority: number;
|
|
7
|
+
detect(options?: Record<string, unknown>): AuthenticationSource | null;
|
|
8
|
+
isAvailable(options?: Record<string, unknown>): boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare class SessionAuthDetector implements AuthenticationSourceDetector {
|
|
11
|
+
readonly type: AuthenticationSourceType;
|
|
12
|
+
readonly priority: number;
|
|
13
|
+
private sessionManager;
|
|
14
|
+
private accountManager;
|
|
15
|
+
constructor(sessionManager?: SessionStateManager, accountManager?: AccountConfigManager);
|
|
16
|
+
detect(_options?: Record<string, unknown>): AuthenticationSource | null;
|
|
17
|
+
isAvailable(options?: Record<string, unknown>): boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare class DefaultAccountAuthDetector implements AuthenticationSourceDetector {
|
|
20
|
+
readonly type: AuthenticationSourceType;
|
|
21
|
+
readonly priority: number;
|
|
22
|
+
private accountManager;
|
|
23
|
+
constructor(accountManager?: AccountConfigManager);
|
|
24
|
+
detect(_options?: Record<string, unknown>): AuthenticationSource | null;
|
|
25
|
+
isAvailable(options?: Record<string, unknown>): boolean;
|
|
26
|
+
}
|
|
27
|
+
export declare class EnvironmentAuthDetector implements AuthenticationSourceDetector {
|
|
28
|
+
readonly type: AuthenticationSourceType;
|
|
29
|
+
readonly priority: number;
|
|
30
|
+
detect(_options?: Record<string, unknown>): AuthenticationSource | null;
|
|
31
|
+
isAvailable(options?: Record<string, unknown>): boolean;
|
|
32
|
+
}
|
|
33
|
+
export declare class ConfigAuthDetector implements AuthenticationSourceDetector {
|
|
34
|
+
readonly type: AuthenticationSourceType;
|
|
35
|
+
readonly priority: number;
|
|
36
|
+
detect(_options?: Record<string, unknown>): AuthenticationSource | null;
|
|
37
|
+
isAvailable(options?: Record<string, unknown>): boolean;
|
|
38
|
+
}
|
|
39
|
+
export declare class AuthenticationSourceManager {
|
|
40
|
+
private detectors;
|
|
41
|
+
constructor(sessionManager?: SessionStateManager, accountManager?: AccountConfigManager);
|
|
42
|
+
getAvailableSources(options?: Record<string, unknown>): AuthenticationSource[];
|
|
43
|
+
getAuthenticationSource(options?: Record<string, unknown>): AuthenticationSource | null;
|
|
44
|
+
isCompleteAuthentication(source: AuthenticationSource): boolean;
|
|
45
|
+
getCredentials(options?: Record<string, unknown>): {
|
|
46
|
+
appId: string;
|
|
47
|
+
appSecret: string;
|
|
48
|
+
userId?: string;
|
|
49
|
+
} | null;
|
|
50
|
+
getDiagnostics(options?: Record<string, unknown>): {
|
|
51
|
+
availableSources: AuthenticationSource[];
|
|
52
|
+
selectedSource?: AuthenticationSource;
|
|
53
|
+
errors: string[];
|
|
54
|
+
warnings: string[];
|
|
55
|
+
suggestions: string[];
|
|
56
|
+
};
|
|
57
|
+
getStatusMessage(options?: Record<string, unknown>): string;
|
|
58
|
+
getSourceByType(type: AuthenticationSourceType, options?: Record<string, unknown>): AuthenticationSource | null;
|
|
59
|
+
isSourceAvailable(type: AuthenticationSourceType, options?: Record<string, unknown>): boolean;
|
|
60
|
+
}
|
|
61
|
+
//# sourceMappingURL=auth-source-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth-source-manager.d.ts","sourceRoot":"","sources":["../../src/config/auth-source-manager.ts"],"names":[],"mappings":"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"}
|