@elf5/periscope 1.0.64
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/LICENSE +21 -0
- package/README.md +41 -0
- package/dist/__tests__/e2e/cli-test-utils.d.ts +79 -0
- package/dist/__tests__/e2e/cli-test-utils.d.ts.map +1 -0
- package/dist/__tests__/e2e/mock-server.d.ts +43 -0
- package/dist/__tests__/e2e/mock-server.d.ts.map +1 -0
- package/dist/__tests__/e2e/test-server.d.ts +46 -0
- package/dist/__tests__/e2e/test-server.d.ts.map +1 -0
- package/dist/__tests__/e2e/test-utils.d.ts +84 -0
- package/dist/__tests__/e2e/test-utils.d.ts.map +1 -0
- package/dist/__tests__/helpers/assertions.d.ts +5 -0
- package/dist/__tests__/helpers/assertions.d.ts.map +1 -0
- package/dist/__tests__/helpers/mock-factory.d.ts +31 -0
- package/dist/__tests__/helpers/mock-factory.d.ts.map +1 -0
- package/dist/__tests__/setup.d.ts +2 -0
- package/dist/__tests__/setup.d.ts.map +1 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +5156 -0
- package/dist/cli.js.map +7 -0
- package/dist/commands/auth.d.ts +14 -0
- package/dist/commands/auth.d.ts.map +1 -0
- package/dist/commands/base-command.d.ts +56 -0
- package/dist/commands/base-command.d.ts.map +1 -0
- package/dist/commands/config.d.ts +15 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/feedback.d.ts +15 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/status.d.ts +8 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/tunnel.d.ts +31 -0
- package/dist/commands/tunnel.d.ts.map +1 -0
- package/dist/commands/user.d.ts +18 -0
- package/dist/commands/user.d.ts.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4976 -0
- package/dist/index.js.map +7 -0
- package/dist/interactive.d.ts +25 -0
- package/dist/interactive.d.ts.map +1 -0
- package/dist/lib/__tests__/__mocks__/ssh-client.mock.d.ts +18 -0
- package/dist/lib/__tests__/__mocks__/ssh-client.mock.d.ts.map +1 -0
- package/dist/lib/auth-callback-server.d.ts +25 -0
- package/dist/lib/auth-callback-server.d.ts.map +1 -0
- package/dist/lib/auth-types.d.ts +24 -0
- package/dist/lib/auth-types.d.ts.map +1 -0
- package/dist/lib/auth0-auth-manager.d.ts +73 -0
- package/dist/lib/auth0-auth-manager.d.ts.map +1 -0
- package/dist/lib/cache-utils.d.ts +14 -0
- package/dist/lib/cache-utils.d.ts.map +1 -0
- package/dist/lib/client.d.ts +181 -0
- package/dist/lib/client.d.ts.map +1 -0
- package/dist/lib/config-manager.d.ts +34 -0
- package/dist/lib/config-manager.d.ts.map +1 -0
- package/dist/lib/error-classifier.d.ts +55 -0
- package/dist/lib/error-classifier.d.ts.map +1 -0
- package/dist/lib/interactive-utils.d.ts +14 -0
- package/dist/lib/interactive-utils.d.ts.map +1 -0
- package/dist/lib/logger.d.ts +99 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/msal-auth-manager.d.ts +54 -0
- package/dist/lib/msal-auth-manager.d.ts.map +1 -0
- package/dist/lib/msal-cache-plugin.d.ts +29 -0
- package/dist/lib/msal-cache-plugin.d.ts.map +1 -0
- package/dist/lib/process-lifecycle.d.ts +13 -0
- package/dist/lib/process-lifecycle.d.ts.map +1 -0
- package/dist/lib/readline-instance.d.ts +6 -0
- package/dist/lib/readline-instance.d.ts.map +1 -0
- package/dist/lib/request-monitor.d.ts +21 -0
- package/dist/lib/request-monitor.d.ts.map +1 -0
- package/dist/lib/secure-memory.d.ts +28 -0
- package/dist/lib/secure-memory.d.ts.map +1 -0
- package/dist/lib/server-config.d.ts +25 -0
- package/dist/lib/server-config.d.ts.map +1 -0
- package/dist/lib/ssh-key-manager.d.ts +50 -0
- package/dist/lib/ssh-key-manager.d.ts.map +1 -0
- package/dist/lib/telemetry.d.ts +42 -0
- package/dist/lib/telemetry.d.ts.map +1 -0
- package/dist/lib/terms.d.ts +8 -0
- package/dist/lib/terms.d.ts.map +1 -0
- package/dist/lib/tunnel-manager.d.ts +82 -0
- package/dist/lib/tunnel-manager.d.ts.map +1 -0
- package/dist/lib/tunnel-utils.d.ts +20 -0
- package/dist/lib/tunnel-utils.d.ts.map +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { PromptValue } from '../lib/auth-types.js';
|
|
2
|
+
import { BaseCommand } from './base-command.js';
|
|
3
|
+
export declare class AuthCommand extends BaseCommand {
|
|
4
|
+
/** Action constants for type-safe error handling */
|
|
5
|
+
static readonly Action: {
|
|
6
|
+
readonly LOGIN: "authenticate";
|
|
7
|
+
readonly LOGOUT: "logout";
|
|
8
|
+
};
|
|
9
|
+
static login(options?: {
|
|
10
|
+
prompt?: PromptValue;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
static logout(): Promise<void>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/commands/auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAInD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,WAAY,SAAQ,WAAW;IAC1C,oDAAoD;IACpD,MAAM,CAAC,QAAQ,CAAC,MAAM;;;MAGX;WAEE,KAAK,CAChB,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,WAAW,CAAC;KACjB;WA8BK,MAAM;CAqBpB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { PeriscopeClient } from '../lib/client.js';
|
|
2
|
+
import { ConfigManager } from '../lib/config-manager.js';
|
|
3
|
+
import { PromptValue } from '../lib/auth-types.js';
|
|
4
|
+
export declare abstract class BaseCommand {
|
|
5
|
+
/**
|
|
6
|
+
* Common error handler for all commands
|
|
7
|
+
* Uses ErrorClassifier for structured error handling based on HTTP status codes and error patterns
|
|
8
|
+
* @param action - Action constant from the command's Actions object (e.g., TunnelCommand.Action.CREATE)
|
|
9
|
+
* @param error - The error to handle
|
|
10
|
+
*/
|
|
11
|
+
protected static handleError(action: string, error: unknown): never;
|
|
12
|
+
/**
|
|
13
|
+
* Display a warning that the account is pending approval.
|
|
14
|
+
*/
|
|
15
|
+
protected static warnPendingApproval(): void;
|
|
16
|
+
/**
|
|
17
|
+
* Core authentication logic.
|
|
18
|
+
* Device code auth is hidden behind PERISCOPE_ENABLE_DEVICE_CODE=true for internal use.
|
|
19
|
+
* Returns the account status string if available.
|
|
20
|
+
*/
|
|
21
|
+
static authenticateWithChoice(client: PeriscopeClient, prompt?: PromptValue): Promise<{
|
|
22
|
+
status: string | null;
|
|
23
|
+
method: string;
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Load config, validate server URL, init telemetry, and create client.
|
|
27
|
+
* Shared entry point for all command paths that need a PeriscopeClient.
|
|
28
|
+
* Accepts an optional pre-loaded config to avoid double-loading.
|
|
29
|
+
*/
|
|
30
|
+
protected static initClient(existingConfig?: ReturnType<typeof ConfigManager.load>): Promise<{
|
|
31
|
+
client: PeriscopeClient;
|
|
32
|
+
config: ReturnType<typeof ConfigManager.load>;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Check client version compatibility with the server.
|
|
36
|
+
* Blocks on incompatible, warns on outdated, silent on compatible/null.
|
|
37
|
+
*/
|
|
38
|
+
private static checkVersionCompatibility;
|
|
39
|
+
/**
|
|
40
|
+
* Common setup for all commands - handles config loading and authentication
|
|
41
|
+
*/
|
|
42
|
+
static setupClient(actionDescription?: string): Promise<{
|
|
43
|
+
client: PeriscopeClient;
|
|
44
|
+
config: ReturnType<typeof ConfigManager.load>;
|
|
45
|
+
}>;
|
|
46
|
+
/**
|
|
47
|
+
* Check if user has accepted the current Terms of Service.
|
|
48
|
+
* If not, display embedded TOS and prompt for acceptance.
|
|
49
|
+
*/
|
|
50
|
+
private static ensureTermsAccepted;
|
|
51
|
+
/**
|
|
52
|
+
* Prompt user to accept or decline Terms of Service.
|
|
53
|
+
*/
|
|
54
|
+
private static promptTermsAcceptance;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=base-command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-command.d.ts","sourceRoot":"","sources":["../../src/commands/base-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAiB,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAWnD,8BAAsB,WAAW;IAC/B;;;;;OAKG;IACH,SAAS,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,KAAK;IA0BnE;;OAEG;IACH,SAAS,CAAC,MAAM,CAAC,mBAAmB,IAAI,IAAI;IAM5C;;;;OAIG;WACU,sBAAsB,CACjC,MAAM,EAAE,eAAe,EACvB,MAAM,GAAE,WAA8B,GACrC,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA2DrD;;;;OAIG;qBACoB,UAAU,CAC/B,cAAc,CAAC,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,GACrD,OAAO,CAAC;QACT,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;KAC/C,CAAC;IAaF;;;OAGG;mBACkB,yBAAyB;IA6D9C;;OAEG;WACU,WAAW,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;QAC5D,MAAM,EAAE,eAAe,CAAC;QACxB,MAAM,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC;KAC/C,CAAC;IAiEF;;;OAGG;mBACkB,mBAAmB;IAgDxC;;OAEG;mBACkB,qBAAqB;CAQ3C"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from './base-command.js';
|
|
2
|
+
export declare class ConfigCommand extends BaseCommand {
|
|
3
|
+
/** Action constants for type-safe error handling */
|
|
4
|
+
static readonly Action: {
|
|
5
|
+
readonly SET: "update configuration";
|
|
6
|
+
readonly SHOW: "load configuration";
|
|
7
|
+
};
|
|
8
|
+
static set(options: {
|
|
9
|
+
server?: string;
|
|
10
|
+
requestLog?: string;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
static show(): Promise<void>;
|
|
13
|
+
private static showConfigValue;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,aAAc,SAAQ,WAAW;IAC5C,oDAAoD;IACpD,MAAM,CAAC,QAAQ,CAAC,MAAM;;;MAGX;WAEE,GAAG,CAAC,OAAO,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,CAAA;KAAE;WAkDrD,IAAI;IA0BjB,OAAO,CAAC,MAAM,CAAC,eAAe;CAY/B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BaseCommand } from './base-command.js';
|
|
2
|
+
export declare class FeedbackCommand extends BaseCommand {
|
|
3
|
+
/** Action constants for type-safe error handling */
|
|
4
|
+
static readonly Action: {
|
|
5
|
+
readonly SUBMIT: "submit feedback";
|
|
6
|
+
};
|
|
7
|
+
private static readonly SUPPORT_EMAIL;
|
|
8
|
+
/**
|
|
9
|
+
* Submit user feedback to create a Linear issue.
|
|
10
|
+
* Does NOT require authentication - works for both authenticated and anonymous users.
|
|
11
|
+
* If submission fails, provides email fallback instructions.
|
|
12
|
+
*/
|
|
13
|
+
static submit(message: string): Promise<void>;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=feedback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/commands/feedback.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,oDAAoD;IACpD,MAAM,CAAC,QAAQ,CAAC,MAAM;;MAEX;IAEX,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAsB;IAE3D;;;;OAIG;WACU,MAAM,CAAC,OAAO,EAAE,MAAM;CAoEpC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,aAAc,SAAQ,WAAW;IAC5C,MAAM,CAAC,QAAQ,CAAC,MAAM;;MAEX;WAEE,KAAK;CA2HnB"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { BaseCommand } from './base-command.js';
|
|
2
|
+
export declare class TunnelCommand extends BaseCommand {
|
|
3
|
+
/** Action constants for type-safe error handling */
|
|
4
|
+
static readonly Action: {
|
|
5
|
+
readonly CONNECT: "connect to tunnel";
|
|
6
|
+
readonly KEY_SETUP: "set up SSH key";
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Wizard invoked when no local SSH key is found.
|
|
10
|
+
* By default, auto-generates a new key pair without prompting. When
|
|
11
|
+
* allowExternalKey is true (future enterprise feature), presents a menu
|
|
12
|
+
* that also allows providing a path to an existing key.
|
|
13
|
+
*
|
|
14
|
+
* Returns the resolved key path to use for the retry, or null if the user
|
|
15
|
+
* cancels. Throws SshKeySetupError if key generation or registration fails.
|
|
16
|
+
*/
|
|
17
|
+
private static handleMissingKeyWizard;
|
|
18
|
+
/**
|
|
19
|
+
* Full menu wizard for missing SSH key. Only shown when allowExternalKey
|
|
20
|
+
* is enabled in configuration. Allows generating a new key or providing
|
|
21
|
+
* a path to an existing one.
|
|
22
|
+
*/
|
|
23
|
+
private static handleMissingKeyMenu;
|
|
24
|
+
static parseTarget(target: string): {
|
|
25
|
+
port: number;
|
|
26
|
+
localHost?: string;
|
|
27
|
+
localScheme?: string;
|
|
28
|
+
};
|
|
29
|
+
static connect(name: string, target?: string, sshKeyPath?: string): Promise<void>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=tunnel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tunnel.d.ts","sourceRoot":"","sources":["../../src/commands/tunnel.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAahD,qBAAa,aAAc,SAAQ,WAAW;IAC5C,oDAAoD;IACpD,MAAM,CAAC,QAAQ,CAAC,MAAM;;;MAGX;IAEX;;;;;;;;OAQG;mBACkB,sBAAsB;IAyC3C;;;;OAIG;mBACkB,oBAAoB;IA6EzC,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG;QAClC,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB;WA4CY,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM;CA+ExE"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { BaseCommand } from './base-command.js';
|
|
2
|
+
export declare class UserCommand extends BaseCommand {
|
|
3
|
+
/** Action constants for type-safe error handling */
|
|
4
|
+
static readonly Action: {
|
|
5
|
+
readonly KEY_GENERATE: "generate SSH key";
|
|
6
|
+
readonly UPDATE_SLUG: "update user slug";
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Generate a new SSH key pair and register it with the server.
|
|
10
|
+
* Overwrites any existing key at the configured path.
|
|
11
|
+
*/
|
|
12
|
+
static keyGenerate(): Promise<void>;
|
|
13
|
+
/**
|
|
14
|
+
* Update the user's slug for tunnel namespacing (delegates to server update).
|
|
15
|
+
*/
|
|
16
|
+
static updateSlug(newSlug: string): Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/commands/user.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,WAAY,SAAQ,WAAW;IAC1C,oDAAoD;IACpD,MAAM,CAAC,QAAQ,CAAC,MAAM;;;MAGX;IAEX;;;OAGG;WACU,WAAW;IAuBxB;;OAEG;WACU,UAAU,CAAC,OAAO,EAAE,MAAM;CAuBxC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export { PeriscopeClient, HealthStatus, UserInfo } from './lib/client.js';
|
|
2
|
+
export { TunnelManager, TunnelInfo } from './lib/tunnel-manager.js';
|
|
3
|
+
export { ConfigManager, PeriscopeConfig } from './lib/config-manager.js';
|
|
4
|
+
export { type IAuthManager, type AuthToken } from './lib/auth-types.js';
|
|
5
|
+
export { MsalAuthManager, type MSALConfig } from './lib/msal-auth-manager.js';
|
|
6
|
+
export { Auth0AuthManager, type Auth0Config, } from './lib/auth0-auth-manager.js';
|
|
7
|
+
export { setupSecureCleanup } from './lib/secure-memory.js';
|
|
8
|
+
export { InteractiveMode } from './interactive.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACzE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,SAAS,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAC9E,OAAO,EACL,gBAAgB,EAChB,KAAK,WAAW,GACjB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC"}
|