@microwiseai/snapshot 0.3.65 → 0.3.69
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/install.d.ts.map +1 -1
- package/dist/commands/install.js +15 -25
- package/dist/commands/install.js.map +1 -1
- package/dist/lib/access-sync.d.ts.map +1 -1
- package/dist/lib/access-sync.js +48 -43
- package/dist/lib/access-sync.js.map +1 -1
- package/dist/lib/access-sync.test.d.ts +2 -0
- package/dist/lib/access-sync.test.d.ts.map +1 -0
- package/dist/lib/access-sync.test.js +112 -0
- package/dist/lib/access-sync.test.js.map +1 -0
- package/dist/lib/auth-flow.test.js +80 -141
- package/dist/lib/auth-flow.test.js.map +1 -1
- package/dist/lib/config.d.ts +25 -10
- package/dist/lib/config.d.ts.map +1 -1
- package/dist/lib/config.js +52 -77
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/config.test.js +2 -3
- package/dist/lib/config.test.js.map +1 -1
- package/dist/lib/prerequisites.d.ts.map +1 -1
- package/dist/lib/prerequisites.js +6 -4
- package/dist/lib/prerequisites.js.map +1 -1
- package/package.json +1 -3
|
@@ -1,139 +1,131 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
2
|
// ============================================================
|
|
3
|
-
// Group 1:
|
|
3
|
+
// Group 1: getProxyAuthToken() — IST JWT transport token
|
|
4
|
+
// SSOT (auth-credential-schema): single transport token =
|
|
5
|
+
// ~/.ist/credentials.json `.token` (IST JWT).
|
|
6
|
+
// env IST_SESSION_TOKEN override (value also an IST JWT).
|
|
7
|
+
// Legacy ~/.ist/session-token file + ~/.npmrc _authToken reads are RETIRED.
|
|
4
8
|
// ============================================================
|
|
5
|
-
describe('
|
|
6
|
-
const
|
|
7
|
-
const FAKE_ID_TOKEN = 'fake-id-token-xyz789';
|
|
8
|
-
const FAKE_SESSION_TOKEN = 'fake-session-token-999';
|
|
9
|
-
let fetchCalls;
|
|
10
|
-
let originalFetch;
|
|
9
|
+
describe('getProxyAuthToken() — credentials.json:.token SSOT', () => {
|
|
10
|
+
const FAKE_JWT = 'fake.ist.jwt-from-credentials';
|
|
11
11
|
beforeEach(() => {
|
|
12
12
|
vi.resetModules();
|
|
13
|
-
fetchCalls = [];
|
|
14
|
-
originalFetch = globalThis.fetch;
|
|
15
|
-
// Clean env
|
|
16
13
|
delete process.env.IST_SESSION_TOKEN;
|
|
17
14
|
delete process.env.SNAPSHOT_LICENSE_KEY;
|
|
18
|
-
delete process.env.LICENSE_API_URL;
|
|
19
15
|
});
|
|
20
16
|
afterEach(() => {
|
|
21
|
-
globalThis.fetch = originalFetch;
|
|
22
17
|
delete process.env.IST_SESSION_TOKEN;
|
|
23
18
|
delete process.env.SNAPSHOT_LICENSE_KEY;
|
|
24
|
-
delete process.env.LICENSE_API_URL;
|
|
25
19
|
vi.restoreAllMocks();
|
|
26
20
|
});
|
|
27
|
-
it('
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
21
|
+
it('returns IST_SESSION_TOKEN env var when set (override)', async () => {
|
|
22
|
+
process.env.IST_SESSION_TOKEN = 'proxy-token-abc';
|
|
23
|
+
const { getProxyAuthToken } = await import('./config.js');
|
|
24
|
+
expect(getProxyAuthToken()).toBe('proxy-token-abc');
|
|
25
|
+
});
|
|
26
|
+
it('reads .token from ~/.ist/credentials.json when no env override', async () => {
|
|
27
|
+
delete process.env.IST_SESSION_TOKEN;
|
|
32
28
|
vi.doMock('fs', async () => {
|
|
33
29
|
const actual = await vi.importActual('fs');
|
|
34
30
|
return {
|
|
35
31
|
...actual,
|
|
36
32
|
existsSync: (p) => {
|
|
37
|
-
if (typeof p === 'string' && p.includes('
|
|
38
|
-
return false;
|
|
39
|
-
if (typeof p === 'string' && p.includes('credentials'))
|
|
33
|
+
if (typeof p === 'string' && p.includes('credentials.json'))
|
|
40
34
|
return true;
|
|
41
35
|
return actual.existsSync(p);
|
|
42
36
|
},
|
|
43
37
|
readFileSync: (p, encoding) => {
|
|
44
|
-
if (typeof p === 'string' && p.includes('credentials')) {
|
|
45
|
-
return JSON.stringify({
|
|
38
|
+
if (typeof p === 'string' && p.includes('credentials.json')) {
|
|
39
|
+
return JSON.stringify({
|
|
40
|
+
uid: 'firebase-uid-123',
|
|
41
|
+
token: FAKE_JWT,
|
|
42
|
+
username: 'tester',
|
|
43
|
+
apiUrl: 'https://ist-identity-api.example.dev',
|
|
44
|
+
savedAt: '2026-06-02T00:00:00.000Z',
|
|
45
|
+
});
|
|
46
46
|
}
|
|
47
47
|
return actual.readFileSync(p, encoding);
|
|
48
48
|
},
|
|
49
49
|
};
|
|
50
50
|
});
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
const url = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
|
|
54
|
-
fetchCalls.push({ url, options: init || {} });
|
|
55
|
-
// Firebase response
|
|
56
|
-
if (url.includes('securetoken.googleapis.com')) {
|
|
57
|
-
return new Response(JSON.stringify({ id_token: FAKE_ID_TOKEN }), {
|
|
58
|
-
status: 200,
|
|
59
|
-
headers: { 'Content-Type': 'application/json' },
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
// License API login response
|
|
63
|
-
if (url.includes('/auth/login')) {
|
|
64
|
-
return new Response(JSON.stringify({ data: { sessionToken: FAKE_SESSION_TOKEN } }), {
|
|
65
|
-
status: 200,
|
|
66
|
-
headers: { 'Content-Type': 'application/json' },
|
|
67
|
-
});
|
|
68
|
-
}
|
|
69
|
-
return new Response('Not found', { status: 404 });
|
|
70
|
-
});
|
|
71
|
-
const { exchangeSessionToken } = await import('./config.js');
|
|
72
|
-
const result = await exchangeSessionToken();
|
|
73
|
-
expect(result).toBe(FAKE_SESSION_TOKEN);
|
|
74
|
-
expect(fetchCalls.length).toBe(2);
|
|
75
|
-
// 1. Firebase URL check
|
|
76
|
-
const firebaseCall = fetchCalls[0];
|
|
77
|
-
expect(firebaseCall.url).toMatch(/^https:\/\/securetoken\.googleapis\.com\/v1\/token\?key=/);
|
|
78
|
-
// 2. License API URL check — must NOT have /api/api
|
|
79
|
-
const loginCall = fetchCalls[1];
|
|
80
|
-
expect(loginCall.url).toContain('/auth/login');
|
|
81
|
-
expect(loginCall.url).not.toContain('/api/api');
|
|
82
|
-
// Verify it's LICENSE_API_URL + '/auth/login'
|
|
83
|
-
const expectedBase = 'https://license-api.sisung-kim1.workers.dev/api';
|
|
84
|
-
expect(loginCall.url).toBe(`${expectedBase}/auth/login`);
|
|
51
|
+
const { getProxyAuthToken } = await import('./config.js');
|
|
52
|
+
expect(getProxyAuthToken()).toBe(FAKE_JWT);
|
|
85
53
|
});
|
|
86
|
-
it('
|
|
87
|
-
process.env.
|
|
54
|
+
it('returns null when credentials.json is absent (anonymous)', async () => {
|
|
55
|
+
delete process.env.IST_SESSION_TOKEN;
|
|
88
56
|
vi.doMock('fs', async () => {
|
|
89
57
|
const actual = await vi.importActual('fs');
|
|
90
58
|
return {
|
|
91
59
|
...actual,
|
|
92
60
|
existsSync: (p) => {
|
|
93
|
-
if (typeof p === 'string' && p.includes('
|
|
61
|
+
if (typeof p === 'string' && p.includes('credentials.json'))
|
|
94
62
|
return false;
|
|
95
|
-
|
|
63
|
+
return actual.existsSync(p);
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
});
|
|
67
|
+
const { getProxyAuthToken } = await import('./config.js');
|
|
68
|
+
expect(getProxyAuthToken()).toBeNull();
|
|
69
|
+
});
|
|
70
|
+
it('returns null when credentials.json has no .token field', async () => {
|
|
71
|
+
delete process.env.IST_SESSION_TOKEN;
|
|
72
|
+
vi.doMock('fs', async () => {
|
|
73
|
+
const actual = await vi.importActual('fs');
|
|
74
|
+
return {
|
|
75
|
+
...actual,
|
|
76
|
+
existsSync: (p) => {
|
|
77
|
+
if (typeof p === 'string' && p.includes('credentials.json'))
|
|
96
78
|
return true;
|
|
97
79
|
return actual.existsSync(p);
|
|
98
80
|
},
|
|
99
81
|
readFileSync: (p, encoding) => {
|
|
100
|
-
if (typeof p === 'string' && p.includes('credentials')) {
|
|
101
|
-
return JSON.stringify({
|
|
82
|
+
if (typeof p === 'string' && p.includes('credentials.json')) {
|
|
83
|
+
return JSON.stringify({ uid: 'firebase-uid-123', username: 'tester' });
|
|
102
84
|
}
|
|
103
85
|
return actual.readFileSync(p, encoding);
|
|
104
86
|
},
|
|
105
87
|
};
|
|
106
88
|
});
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
89
|
+
const { getProxyAuthToken } = await import('./config.js');
|
|
90
|
+
expect(getProxyAuthToken()).toBeNull();
|
|
91
|
+
});
|
|
92
|
+
it('does NOT read the retired ~/.ist/session-token file', async () => {
|
|
93
|
+
delete process.env.IST_SESSION_TOKEN;
|
|
94
|
+
const touched = [];
|
|
95
|
+
vi.doMock('fs', async () => {
|
|
96
|
+
const actual = await vi.importActual('fs');
|
|
97
|
+
return {
|
|
98
|
+
...actual,
|
|
99
|
+
existsSync: (p) => {
|
|
100
|
+
if (typeof p === 'string')
|
|
101
|
+
touched.push(p);
|
|
102
|
+
// credentials.json absent → would-be anonymous
|
|
103
|
+
if (typeof p === 'string' && p.includes('credentials.json'))
|
|
104
|
+
return false;
|
|
105
|
+
return actual.existsSync(p);
|
|
106
|
+
},
|
|
107
|
+
readFileSync: (p, encoding) => {
|
|
108
|
+
if (typeof p === 'string' && p.includes('session-token')) {
|
|
109
|
+
throw new Error('retired session-token file must not be read');
|
|
110
|
+
}
|
|
111
|
+
return actual.readFileSync(p, encoding);
|
|
112
|
+
},
|
|
113
|
+
};
|
|
123
114
|
});
|
|
124
|
-
const {
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
115
|
+
const { getProxyAuthToken } = await import('./config.js');
|
|
116
|
+
expect(getProxyAuthToken()).toBeNull();
|
|
117
|
+
// The legacy session-token file path must never be probed.
|
|
118
|
+
expect(touched.some(p => p.includes('session-token'))).toBe(false);
|
|
119
|
+
});
|
|
120
|
+
it('exchangeSessionToken export has been removed', async () => {
|
|
121
|
+
const mod = await import('./config.js');
|
|
122
|
+
expect(mod.exchangeSessionToken).toBeUndefined();
|
|
131
123
|
});
|
|
132
124
|
});
|
|
133
125
|
// ============================================================
|
|
134
|
-
// Group 2:
|
|
126
|
+
// Group 2: getLicenseKey() fallback chain
|
|
135
127
|
// ============================================================
|
|
136
|
-
describe('
|
|
128
|
+
describe('getLicenseKey() fallback chain', () => {
|
|
137
129
|
beforeEach(() => {
|
|
138
130
|
vi.resetModules();
|
|
139
131
|
delete process.env.SNAPSHOT_LICENSE_KEY;
|
|
@@ -157,59 +149,6 @@ describe('Auth fallback chain', () => {
|
|
|
157
149
|
// Without a license file, should be null
|
|
158
150
|
expect(result === null || typeof result === 'string').toBe(true);
|
|
159
151
|
});
|
|
160
|
-
it('getProxyAuthToken() returns IST_SESSION_TOKEN env var when set', async () => {
|
|
161
|
-
process.env.IST_SESSION_TOKEN = 'proxy-token-abc';
|
|
162
|
-
const { getProxyAuthToken } = await import('./config.js');
|
|
163
|
-
expect(getProxyAuthToken()).toBe('proxy-token-abc');
|
|
164
|
-
});
|
|
165
|
-
it('getProxyAuthToken() returns null when no token sources available', async () => {
|
|
166
|
-
delete process.env.IST_SESSION_TOKEN;
|
|
167
|
-
const { getProxyAuthToken } = await import('./config.js');
|
|
168
|
-
// Without env var, file, or .npmrc match, should return null or a string
|
|
169
|
-
const result = getProxyAuthToken();
|
|
170
|
-
expect(result === null || typeof result === 'string').toBe(true);
|
|
171
|
-
});
|
|
172
|
-
it('exchangeSessionToken() returns null when no credentials exist', async () => {
|
|
173
|
-
delete process.env.IST_SESSION_TOKEN;
|
|
174
|
-
vi.doMock('fs', async () => {
|
|
175
|
-
const actual = await vi.importActual('fs');
|
|
176
|
-
return {
|
|
177
|
-
...actual,
|
|
178
|
-
existsSync: (p) => {
|
|
179
|
-
if (typeof p === 'string' && (p.includes('session-token') || p.includes('credentials'))) {
|
|
180
|
-
return false;
|
|
181
|
-
}
|
|
182
|
-
return actual.existsSync(p);
|
|
183
|
-
},
|
|
184
|
-
};
|
|
185
|
-
});
|
|
186
|
-
const { exchangeSessionToken } = await import('./config.js');
|
|
187
|
-
const result = await exchangeSessionToken();
|
|
188
|
-
expect(result).toBeNull();
|
|
189
|
-
});
|
|
190
|
-
it('exchangeSessionToken() returns cached session-token file if it exists', async () => {
|
|
191
|
-
delete process.env.IST_SESSION_TOKEN;
|
|
192
|
-
vi.doMock('fs', async () => {
|
|
193
|
-
const actual = await vi.importActual('fs');
|
|
194
|
-
return {
|
|
195
|
-
...actual,
|
|
196
|
-
existsSync: (p) => {
|
|
197
|
-
if (typeof p === 'string' && p.includes('session-token'))
|
|
198
|
-
return true;
|
|
199
|
-
return actual.existsSync(p);
|
|
200
|
-
},
|
|
201
|
-
readFileSync: (p, encoding) => {
|
|
202
|
-
if (typeof p === 'string' && p.includes('session-token')) {
|
|
203
|
-
return 'cached-session-token-xyz';
|
|
204
|
-
}
|
|
205
|
-
return actual.readFileSync(p, encoding);
|
|
206
|
-
},
|
|
207
|
-
};
|
|
208
|
-
});
|
|
209
|
-
const { exchangeSessionToken } = await import('./config.js');
|
|
210
|
-
const result = await exchangeSessionToken();
|
|
211
|
-
expect(result).toBe('cached-session-token-xyz');
|
|
212
|
-
});
|
|
213
152
|
});
|
|
214
153
|
// ============================================================
|
|
215
154
|
// Group 3: fetchSnapshotFromProxy authToken header verification
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth-flow.test.js","sourceRoot":"","sources":["../../src/lib/auth-flow.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"auth-flow.test.js","sourceRoot":"","sources":["../../src/lib/auth-flow.test.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.d.ts
CHANGED
|
@@ -25,20 +25,35 @@ export declare function getLicenseKey(): string | null;
|
|
|
25
25
|
*/
|
|
26
26
|
export declare function saveLicenseKey(licenseKey: string): void;
|
|
27
27
|
/**
|
|
28
|
-
* Read auth token for registry-proxy access.
|
|
29
|
-
*
|
|
28
|
+
* Read auth token for registry-proxy access (IST JWT transport token).
|
|
29
|
+
*
|
|
30
|
+
* SSOT (auth-credential-schema): the single transport token is the `.token`
|
|
31
|
+
* field of ~/.ist/credentials.json (an IST JWT). The IST_SESSION_TOKEN env
|
|
32
|
+
* var is an override and its value is likewise an IST JWT.
|
|
33
|
+
*
|
|
34
|
+
* Priority:
|
|
35
|
+
* 1. env IST_SESSION_TOKEN (override)
|
|
36
|
+
* 2. ~/.ist/credentials.json `.token`
|
|
37
|
+
*
|
|
38
|
+
* Returns null when no token is available (anonymous access — public tiers).
|
|
39
|
+
*
|
|
40
|
+
* Note: legacy ~/.ist/session-token file reads and ~/.npmrc `_authToken`
|
|
41
|
+
* fallback reads have been retired per the credential schema contract.
|
|
30
42
|
*/
|
|
31
43
|
export declare function getProxyAuthToken(): string | null;
|
|
32
44
|
/**
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
45
|
+
* SYNC, LOCAL login pre-check (a UX gate, not authz).
|
|
46
|
+
*
|
|
47
|
+
* = a transmit token is present (IST_SESSION_TOKEN env override OR
|
|
48
|
+
* ~/.ist/credentials.json `.token`) AND it is not locally expired
|
|
49
|
+
* (JWT payload.exp). Authoritative verification is SERVER-side at point of
|
|
50
|
+
* use; forged/expired tokens are rejected there with 401.
|
|
51
|
+
*
|
|
52
|
+
* Per auth-credential-schema, snapshot stays a lightweight reader: it decodes
|
|
53
|
+
* the token locally and does NOT take a hard dependency on the heavy cli-auth
|
|
54
|
+
* CLI for reads.
|
|
40
55
|
*/
|
|
41
|
-
export declare function
|
|
56
|
+
export declare function isLoggedIn(): boolean;
|
|
42
57
|
export declare function verifyLicenseKey(licenseKey: string): Promise<{
|
|
43
58
|
valid: boolean;
|
|
44
59
|
productId?: string;
|
package/dist/lib/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAOjD,eAAO,MAAM,kBAAkB,QAAqF,CAAC;AAGrH,eAAO,MAAM,eAAe,QAAmF,CAAC;AAGhH,eAAO,MAAM,eAAe,QAA6C,CAAC;AAM1E,eAAO,MAAM,WAAW,QAAiD,CAAC;AAC1E,eAAO,MAAM,SAAS,QAA+E,CAAC;AACtG,eAAO,MAAM,YAAY,QAA+D,CAAC;AAMzF,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,cAAc,GAAG,IAAI,CASzD;AAGD,wBAAgB,SAAS,IAAI,cAAc,CAO1C;AAED,wBAAgB,cAAc,IAAI,MAAM,GAAG,IAAI,CAe9C;AAcD;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,GAAG,IAAI,CAkB7C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAUvD;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,GAAG,IAAI,CAejD;AAmBD;;;;;;;;;;;GAWG;AACH,wBAAgB,UAAU,IAAI,OAAO,CAIpC;AAED,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,KAAK,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAuB1H"}
|
package/dist/lib/config.js
CHANGED
|
@@ -2,12 +2,11 @@ import { homedir } from 'os';
|
|
|
2
2
|
import { join } from 'path';
|
|
3
3
|
import { execSync } from 'child_process';
|
|
4
4
|
import { readFileSync, writeFileSync, mkdirSync, existsSync } from 'fs';
|
|
5
|
-
import { REGISTRY_PROXY_URL as BASE_REGISTRY_PROXY_URL } from '@ist/registry-config';
|
|
6
5
|
// ============================================================
|
|
7
6
|
// Centralized Constants (SSOT)
|
|
8
7
|
// ============================================================
|
|
9
8
|
// Registry proxy URL (env override supported)
|
|
10
|
-
export const REGISTRY_PROXY_URL = process.env.REGISTRY_PROXY_URL ||
|
|
9
|
+
export const REGISTRY_PROXY_URL = process.env.REGISTRY_PROXY_URL || 'https://registry-proxy.sisung-kim1.workers.dev';
|
|
11
10
|
// License API URL
|
|
12
11
|
export const LICENSE_API_URL = process.env.LICENSE_API_URL || 'https://license-api.sisung-kim1.workers.dev/api';
|
|
13
12
|
// GitLab Group ID for package resolution
|
|
@@ -94,40 +93,34 @@ export function saveLicenseKey(licenseKey) {
|
|
|
94
93
|
writeFileSync(getLicenseFilePath(), JSON.stringify(data, null, 2));
|
|
95
94
|
}
|
|
96
95
|
/**
|
|
97
|
-
* Read auth token for registry-proxy access.
|
|
98
|
-
*
|
|
96
|
+
* Read auth token for registry-proxy access (IST JWT transport token).
|
|
97
|
+
*
|
|
98
|
+
* SSOT (auth-credential-schema): the single transport token is the `.token`
|
|
99
|
+
* field of ~/.ist/credentials.json (an IST JWT). The IST_SESSION_TOKEN env
|
|
100
|
+
* var is an override and its value is likewise an IST JWT.
|
|
101
|
+
*
|
|
102
|
+
* Priority:
|
|
103
|
+
* 1. env IST_SESSION_TOKEN (override)
|
|
104
|
+
* 2. ~/.ist/credentials.json `.token`
|
|
105
|
+
*
|
|
106
|
+
* Returns null when no token is available (anonymous access — public tiers).
|
|
107
|
+
*
|
|
108
|
+
* Note: legacy ~/.ist/session-token file reads and ~/.npmrc `_authToken`
|
|
109
|
+
* fallback reads have been retired per the credential schema contract.
|
|
99
110
|
*/
|
|
100
111
|
export function getProxyAuthToken() {
|
|
101
|
-
// 1순위: 환경변수 (
|
|
112
|
+
// 1순위: 환경변수 오버라이드 (값도 IST JWT)
|
|
102
113
|
if (process.env.IST_SESSION_TOKEN) {
|
|
103
114
|
return process.env.IST_SESSION_TOKEN;
|
|
104
115
|
}
|
|
105
|
-
// 2순위: ~/.ist/
|
|
116
|
+
// 2순위: ~/.ist/credentials.json 의 .token (유일 전송토큰 SSOT)
|
|
106
117
|
try {
|
|
107
|
-
const
|
|
108
|
-
if (existsSync(
|
|
109
|
-
const token = readFileSync(tokenPath, 'utf-8').trim();
|
|
110
|
-
if (token)
|
|
111
|
-
return token;
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
catch { /* ignore */ }
|
|
115
|
-
// 3순위: .npmrc 폴백 (하위호환 — 기존 로직 유지)
|
|
116
|
-
try {
|
|
117
|
-
const npmrcPath = join(homedir(), '.npmrc');
|
|
118
|
-
if (!existsSync(npmrcPath))
|
|
118
|
+
const credPath = join(homedir(), '.ist', 'credentials.json');
|
|
119
|
+
if (!existsSync(credPath))
|
|
119
120
|
return null;
|
|
120
|
-
const
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
for (const line of content.split('\n')) {
|
|
124
|
-
const trimmed = line.trim();
|
|
125
|
-
if (trimmed.startsWith(pattern)) {
|
|
126
|
-
const token = trimmed.slice(pattern.length).trim();
|
|
127
|
-
if (token)
|
|
128
|
-
return token;
|
|
129
|
-
}
|
|
130
|
-
}
|
|
121
|
+
const cred = JSON.parse(readFileSync(credPath, 'utf-8'));
|
|
122
|
+
if (cred.token)
|
|
123
|
+
return cred.token;
|
|
131
124
|
}
|
|
132
125
|
catch {
|
|
133
126
|
// Ignore errors
|
|
@@ -135,60 +128,42 @@ export function getProxyAuthToken() {
|
|
|
135
128
|
return null;
|
|
136
129
|
}
|
|
137
130
|
/**
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
* 3. Firebase securetoken API로 idToken 갱신
|
|
142
|
-
* 4. license-api /api/auth/login으로 session token 발급
|
|
143
|
-
* 5. process.env.IST_SESSION_TOKEN에 설정
|
|
144
|
-
* 실패 시 null 반환 (폴백으로 기존 토큰 사용)
|
|
131
|
+
* Decode a JWT's payload.exp (epoch seconds) and check local expiry.
|
|
132
|
+
* No `exp` claim → treated as non-expiring. Unparseable → treated as expired.
|
|
133
|
+
* Local, unverified pre-check only (auth-credential-schema [검증 계층]).
|
|
145
134
|
*/
|
|
146
|
-
|
|
135
|
+
function isJwtExpired(token) {
|
|
147
136
|
try {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
// 2. ~/.ist/credentials에서 refreshToken으로 직접 교환
|
|
158
|
-
const credPath = join(homedir(), '.ist', 'credentials');
|
|
159
|
-
if (!existsSync(credPath))
|
|
160
|
-
return null;
|
|
161
|
-
const cred = JSON.parse(readFileSync(credPath, 'utf-8'));
|
|
162
|
-
if (!cred.refreshToken)
|
|
163
|
-
return null;
|
|
164
|
-
// 2a. Firebase refresh → 새 idToken
|
|
165
|
-
const firebaseResp = await fetch('https://securetoken.googleapis.com/v1/token?key=AIzaSyAxWfDYLtbKUP2JF29RSouzxjAqLEJuoBU', {
|
|
166
|
-
method: 'POST',
|
|
167
|
-
headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
|
|
168
|
-
body: `grant_type=refresh_token&refresh_token=${cred.refreshToken}`,
|
|
169
|
-
});
|
|
170
|
-
if (!firebaseResp.ok)
|
|
171
|
-
return null;
|
|
172
|
-
const firebaseData = await firebaseResp.json();
|
|
173
|
-
// 2b. license-api로 session token 발급
|
|
174
|
-
const loginResp = await fetch(`${LICENSE_API_URL}/auth/login`, {
|
|
175
|
-
method: 'POST',
|
|
176
|
-
headers: { 'Content-Type': 'application/json' },
|
|
177
|
-
body: JSON.stringify({ idToken: firebaseData.id_token }),
|
|
178
|
-
});
|
|
179
|
-
if (!loginResp.ok)
|
|
180
|
-
return null;
|
|
181
|
-
const loginData = await loginResp.json();
|
|
182
|
-
const token = loginData.data?.sessionToken || loginData.sessionToken;
|
|
183
|
-
if (!token)
|
|
184
|
-
return null;
|
|
185
|
-
process.env.IST_SESSION_TOKEN = token;
|
|
186
|
-
return token;
|
|
137
|
+
const part = token.split('.')[1];
|
|
138
|
+
if (!part)
|
|
139
|
+
return true;
|
|
140
|
+
const payload = JSON.parse(Buffer.from(part, 'base64url').toString('utf-8'));
|
|
141
|
+
if (typeof payload.exp !== 'number')
|
|
142
|
+
return false; // no exp claim = non-expiring
|
|
143
|
+
return Date.now() >= payload.exp * 1000;
|
|
187
144
|
}
|
|
188
145
|
catch {
|
|
189
|
-
return
|
|
146
|
+
return true; // unparseable = treat as expired/invalid
|
|
190
147
|
}
|
|
191
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* SYNC, LOCAL login pre-check (a UX gate, not authz).
|
|
151
|
+
*
|
|
152
|
+
* = a transmit token is present (IST_SESSION_TOKEN env override OR
|
|
153
|
+
* ~/.ist/credentials.json `.token`) AND it is not locally expired
|
|
154
|
+
* (JWT payload.exp). Authoritative verification is SERVER-side at point of
|
|
155
|
+
* use; forged/expired tokens are rejected there with 401.
|
|
156
|
+
*
|
|
157
|
+
* Per auth-credential-schema, snapshot stays a lightweight reader: it decodes
|
|
158
|
+
* the token locally and does NOT take a hard dependency on the heavy cli-auth
|
|
159
|
+
* CLI for reads.
|
|
160
|
+
*/
|
|
161
|
+
export function isLoggedIn() {
|
|
162
|
+
const token = getProxyAuthToken();
|
|
163
|
+
if (!token)
|
|
164
|
+
return false;
|
|
165
|
+
return !isJwtExpired(token);
|
|
166
|
+
}
|
|
192
167
|
export async function verifyLicenseKey(licenseKey) {
|
|
193
168
|
const response = await fetch(`${LICENSE_API_URL}/licenses/verify`, {
|
|
194
169
|
method: 'POST',
|
package/dist/lib/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAC7B,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/config.test.js
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
|
|
2
|
-
import { REGISTRY_PROXY_URL as BASE_REGISTRY_PROXY_URL } from '@ist/registry-config';
|
|
3
2
|
// Dynamic import for env override tests
|
|
4
3
|
async function importConfig() {
|
|
5
4
|
// Clear module cache to test env overrides
|
|
@@ -14,10 +13,10 @@ describe('config.ts - Centralized Constants', () => {
|
|
|
14
13
|
afterEach(() => {
|
|
15
14
|
delete process.env.REGISTRY_PROXY_URL;
|
|
16
15
|
});
|
|
17
|
-
it('should
|
|
16
|
+
it('should use the hardcoded default when no env override is set', async () => {
|
|
18
17
|
delete process.env.REGISTRY_PROXY_URL;
|
|
19
18
|
const config = await importConfig();
|
|
20
|
-
expect(config.REGISTRY_PROXY_URL).toBe(
|
|
19
|
+
expect(config.REGISTRY_PROXY_URL).toBe('https://registry-proxy.sisung-kim1.workers.dev');
|
|
21
20
|
});
|
|
22
21
|
it('should allow env override for REGISTRY_PROXY_URL', async () => {
|
|
23
22
|
process.env.REGISTRY_PROXY_URL = 'https://custom-registry.example.com';
|