@indigoai-us/hq-cli 5.5.0 → 5.5.2-sentry-rc.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/bin/hq-auth-refresh.js +22 -12
- package/dist/bin/hq-auth-refresh.js.map +1 -1
- package/dist/commands/_patterns.d.ts +3 -0
- package/dist/commands/_patterns.d.ts.map +1 -0
- package/dist/commands/_patterns.js +3 -0
- package/dist/commands/_patterns.js.map +1 -0
- package/dist/commands/add.d.ts.map +1 -1
- package/dist/commands/add.js +2 -1
- package/dist/commands/add.js.map +1 -1
- package/dist/commands/auth.d.ts +0 -3
- package/dist/commands/auth.d.ts.map +1 -1
- package/dist/commands/auth.js +0 -3
- package/dist/commands/auth.js.map +1 -1
- package/dist/commands/cloud.d.ts +12 -2
- package/dist/commands/cloud.d.ts.map +1 -1
- package/dist/commands/cloud.js +112 -80
- package/dist/commands/cloud.js.map +1 -1
- package/dist/commands/groups.d.ts +3 -0
- package/dist/commands/groups.d.ts.map +1 -0
- package/dist/commands/groups.js +341 -0
- package/dist/commands/groups.js.map +1 -0
- package/dist/commands/list.d.ts.map +1 -1
- package/dist/commands/list.js +18 -1
- package/dist/commands/list.js.map +1 -1
- package/dist/commands/login.d.ts +1 -1
- package/dist/commands/login.d.ts.map +1 -1
- package/dist/commands/login.js +28 -9
- package/dist/commands/login.js.map +1 -1
- package/dist/commands/logout.d.ts +1 -1
- package/dist/commands/logout.d.ts.map +1 -1
- package/dist/commands/logout.js +8 -3
- package/dist/commands/logout.js.map +1 -1
- package/dist/commands/onboard.d.ts +23 -0
- package/dist/commands/onboard.d.ts.map +1 -0
- package/dist/commands/onboard.js +142 -0
- package/dist/commands/onboard.js.map +1 -0
- package/dist/commands/pack-install.d.ts +44 -0
- package/dist/commands/pack-install.d.ts.map +1 -0
- package/dist/commands/pack-install.js +513 -0
- package/dist/commands/pack-install.js.map +1 -0
- package/dist/commands/pkg-install.d.ts.map +1 -1
- package/dist/commands/pkg-install.js +20 -8
- package/dist/commands/pkg-install.js.map +1 -1
- package/dist/commands/pkg-list.js +4 -4
- package/dist/commands/pkg-list.js.map +1 -1
- package/dist/commands/pkg-update.js +3 -3
- package/dist/commands/pkg-update.js.map +1 -1
- package/dist/commands/secrets.d.ts +12 -0
- package/dist/commands/secrets.d.ts.map +1 -0
- package/dist/commands/secrets.js +756 -0
- package/dist/commands/secrets.js.map +1 -0
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +10 -2
- package/dist/commands/sync.js.map +1 -1
- package/dist/commands/team-sync.d.ts.map +1 -1
- package/dist/commands/team-sync.js +6 -6
- package/dist/commands/team-sync.js.map +1 -1
- package/dist/commands/whoami.d.ts +1 -1
- package/dist/commands/whoami.d.ts.map +1 -1
- package/dist/commands/whoami.js +23 -7
- package/dist/commands/whoami.js.map +1 -1
- package/dist/index.js +24 -2
- package/dist/index.js.map +1 -1
- package/dist/sentry-before-send.d.ts +3 -0
- package/dist/sentry-before-send.d.ts.map +1 -0
- package/dist/sentry-before-send.js +216 -0
- package/dist/sentry-before-send.js.map +1 -0
- package/dist/sentry-dsn.generated.d.ts +2 -0
- package/dist/sentry-dsn.generated.d.ts.map +1 -0
- package/dist/sentry-dsn.generated.js.map +1 -0
- package/dist/sentry.d.ts +4 -0
- package/dist/sentry.d.ts.map +1 -0
- package/dist/sentry.js +19 -0
- package/dist/sentry.js.map +1 -0
- package/dist/strategies/link.d.ts +2 -2
- package/dist/strategies/link.d.ts.map +1 -1
- package/dist/strategies/link.js.map +1 -1
- package/dist/strategies/merge.d.ts +2 -2
- package/dist/strategies/merge.d.ts.map +1 -1
- package/dist/strategies/merge.js.map +1 -1
- package/dist/types.d.ts +37 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +6 -0
- package/dist/types.js.map +1 -1
- package/dist/utils/cognito-session.d.ts +18 -7
- package/dist/utils/cognito-session.d.ts.map +1 -1
- package/dist/utils/cognito-session.js +35 -8
- package/dist/utils/cognito-session.js.map +1 -1
- package/dist/utils/manifest.d.ts +13 -0
- package/dist/utils/manifest.d.ts.map +1 -1
- package/dist/utils/manifest.js +24 -1
- package/dist/utils/manifest.js.map +1 -1
- package/dist/utils/secrets-cache.d.ts +7 -0
- package/dist/utils/secrets-cache.d.ts.map +1 -0
- package/dist/utils/secrets-cache.js +135 -0
- package/dist/utils/secrets-cache.js.map +1 -0
- package/package.json +17 -6
- package/scripts/generate-dsn.mjs +26 -0
- package/src/bin/hq-auth-refresh.ts +23 -16
- package/src/commands/_patterns.ts +2 -0
- package/src/commands/add.ts +7 -6
- package/src/commands/auth.ts +0 -3
- package/src/commands/cloud.ts +214 -101
- package/src/commands/groups.ts +357 -0
- package/src/commands/list.ts +20 -1
- package/src/commands/login.ts +28 -9
- package/src/commands/logout.ts +8 -3
- package/src/commands/onboard.ts +193 -0
- package/src/commands/pack-install.ts +667 -0
- package/src/commands/pkg-install.ts +34 -16
- package/src/commands/pkg-list.ts +4 -4
- package/src/commands/pkg-update.ts +3 -3
- package/src/commands/secrets.ts +950 -0
- package/src/commands/sync.ts +20 -4
- package/src/commands/team-sync.ts +7 -8
- package/src/commands/whoami.ts +22 -7
- package/src/index.ts +26 -2
- package/src/sentry-before-send.test.ts +359 -0
- package/src/sentry-before-send.ts +221 -0
- package/src/sentry.test.ts +24 -0
- package/src/sentry.ts +19 -0
- package/src/strategies/link.ts +2 -2
- package/src/strategies/merge.ts +2 -2
- package/src/types.ts +54 -4
- package/src/utils/cognito-session.ts +46 -14
- package/src/utils/manifest.test.ts +148 -0
- package/src/utils/manifest.ts +22 -1
- package/src/utils/secrets-cache.ts +130 -0
- package/tsconfig.json +2 -1
- package/dist/utils/auth.d.ts +0 -27
- package/dist/utils/auth.d.ts.map +0 -1
- package/dist/utils/auth.js +0 -155
- package/dist/utils/auth.js.map +0 -1
- package/dist/utils/token-store.d.ts +0 -28
- package/dist/utils/token-store.d.ts.map +0 -1
- package/dist/utils/token-store.js +0 -68
- package/dist/utils/token-store.js.map +0 -1
- package/src/utils/auth.ts +0 -193
- package/src/utils/token-store.ts +0 -83
package/src/utils/token-store.ts
DELETED
|
@@ -1,83 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Auth token store — manages ~/.hq/auth.json with secure file permissions (US-004)
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
import * as fs from 'fs';
|
|
6
|
-
import * as path from 'path';
|
|
7
|
-
import * as os from 'os';
|
|
8
|
-
|
|
9
|
-
export interface AuthToken {
|
|
10
|
-
clerk_session_token: string;
|
|
11
|
-
user_id: string;
|
|
12
|
-
email: string;
|
|
13
|
-
expires_at: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
const HQ_DIR = path.join(os.homedir(), '.hq');
|
|
17
|
-
const AUTH_FILE = path.join(HQ_DIR, 'auth.json');
|
|
18
|
-
|
|
19
|
-
function ensureHqDir(): void {
|
|
20
|
-
if (!fs.existsSync(HQ_DIR)) {
|
|
21
|
-
fs.mkdirSync(HQ_DIR, { recursive: true, mode: 0o700 });
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
/**
|
|
26
|
-
* Save auth token to ~/.hq/auth.json with 0600 permissions.
|
|
27
|
-
* Token content is never logged or written to stdout.
|
|
28
|
-
*/
|
|
29
|
-
export async function saveToken(token: AuthToken): Promise<void> {
|
|
30
|
-
ensureHqDir();
|
|
31
|
-
const content = JSON.stringify(token, null, 2);
|
|
32
|
-
fs.writeFileSync(AUTH_FILE, content, { mode: 0o600 });
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Load auth token from ~/.hq/auth.json.
|
|
37
|
-
* Returns null if file is missing, unreadable, or contains invalid JSON.
|
|
38
|
-
*/
|
|
39
|
-
export async function loadToken(): Promise<AuthToken | null> {
|
|
40
|
-
try {
|
|
41
|
-
if (!fs.existsSync(AUTH_FILE)) {
|
|
42
|
-
return null;
|
|
43
|
-
}
|
|
44
|
-
const content = fs.readFileSync(AUTH_FILE, 'utf-8');
|
|
45
|
-
const parsed = JSON.parse(content);
|
|
46
|
-
|
|
47
|
-
// Validate required fields
|
|
48
|
-
if (
|
|
49
|
-
typeof parsed.clerk_session_token !== 'string' ||
|
|
50
|
-
typeof parsed.user_id !== 'string' ||
|
|
51
|
-
typeof parsed.email !== 'string' ||
|
|
52
|
-
typeof parsed.expires_at !== 'string'
|
|
53
|
-
) {
|
|
54
|
-
return null;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return parsed as AuthToken;
|
|
58
|
-
} catch {
|
|
59
|
-
return null;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
/**
|
|
64
|
-
* Delete the auth token file.
|
|
65
|
-
*/
|
|
66
|
-
export async function clearToken(): Promise<void> {
|
|
67
|
-
try {
|
|
68
|
-
if (fs.existsSync(AUTH_FILE)) {
|
|
69
|
-
fs.unlinkSync(AUTH_FILE);
|
|
70
|
-
}
|
|
71
|
-
} catch {
|
|
72
|
-
// Ignore errors — file may already be gone
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
|
|
76
|
-
/**
|
|
77
|
-
* Check if a token is expired or within 5 minutes of expiry.
|
|
78
|
-
*/
|
|
79
|
-
export function isTokenExpired(token: AuthToken): boolean {
|
|
80
|
-
const expiresAt = new Date(token.expires_at).getTime();
|
|
81
|
-
const bufferMs = 5 * 60 * 1000; // 5 minutes
|
|
82
|
-
return Date.now() >= expiresAt - bufferMs;
|
|
83
|
-
}
|