@microwiseai/snapshot 0.3.71 → 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.
Files changed (78) hide show
  1. package/dist/commands/clone-all.d.ts +21 -0
  2. package/dist/commands/clone-all.d.ts.map +1 -0
  3. package/dist/commands/clone-all.js +57 -0
  4. package/dist/commands/clone-all.js.map +1 -0
  5. package/dist/commands/install.d.ts +9 -1
  6. package/dist/commands/install.d.ts.map +1 -1
  7. package/dist/commands/install.js +219 -49
  8. package/dist/commands/install.js.map +1 -1
  9. package/dist/commands/license.js.map +1 -1
  10. package/dist/commands/list.d.ts +15 -0
  11. package/dist/commands/list.d.ts.map +1 -1
  12. package/dist/commands/list.js +21 -39
  13. package/dist/commands/list.js.map +1 -1
  14. package/dist/commands/publish.d.ts.map +1 -1
  15. package/dist/commands/publish.js +22 -0
  16. package/dist/commands/publish.js.map +1 -1
  17. package/dist/index.js +51 -29
  18. package/dist/index.js.map +1 -1
  19. package/dist/lib/config.d.ts.map +1 -1
  20. package/dist/lib/config.js +15 -10
  21. package/dist/lib/config.js.map +1 -1
  22. package/dist/lib/gitlab.d.ts.map +1 -1
  23. package/dist/lib/gitlab.js +6 -8
  24. package/dist/lib/gitlab.js.map +1 -1
  25. package/dist/lib/transitive-resolver.js.map +1 -1
  26. package/dist/lib/types.d.ts +1 -0
  27. package/dist/lib/types.d.ts.map +1 -1
  28. package/dist/lib/version-validator.d.ts +28 -0
  29. package/dist/lib/version-validator.d.ts.map +1 -0
  30. package/dist/lib/version-validator.js +105 -0
  31. package/dist/lib/version-validator.js.map +1 -0
  32. package/dist/lib.js.map +1 -1
  33. package/node_modules/@microwiseai/snapshot-dedup/dist/dedup.d.ts +86 -1
  34. package/node_modules/@microwiseai/snapshot-dedup/dist/dedup.d.ts.map +1 -1
  35. package/node_modules/@microwiseai/snapshot-dedup/dist/dedup.js +171 -5
  36. package/node_modules/@microwiseai/snapshot-dedup/dist/dedup.js.map +1 -1
  37. package/node_modules/@microwiseai/snapshot-dedup/dist/index.d.ts +1 -1
  38. package/node_modules/@microwiseai/snapshot-dedup/dist/index.d.ts.map +1 -1
  39. package/node_modules/@microwiseai/snapshot-dedup/dist/index.js +4 -2
  40. package/node_modules/@microwiseai/snapshot-dedup/dist/index.js.map +1 -1
  41. package/node_modules/@microwiseai/snapshot-dedup/package.json +8 -2
  42. package/package.json +18 -4
  43. package/dist/commands/doctor.d.ts +0 -2
  44. package/dist/commands/doctor.d.ts.map +0 -1
  45. package/dist/commands/doctor.js +0 -37
  46. package/dist/commands/doctor.js.map +0 -1
  47. package/dist/commands/setup.d.ts +0 -5
  48. package/dist/commands/setup.d.ts.map +0 -1
  49. package/dist/commands/setup.js +0 -52
  50. package/dist/commands/setup.js.map +0 -1
  51. package/dist/lib/access-sync.test.d.ts +0 -2
  52. package/dist/lib/access-sync.test.d.ts.map +0 -1
  53. package/dist/lib/access-sync.test.js +0 -112
  54. package/dist/lib/access-sync.test.js.map +0 -1
  55. package/dist/lib/auth-flow.test.d.ts +0 -2
  56. package/dist/lib/auth-flow.test.d.ts.map +0 -1
  57. package/dist/lib/auth-flow.test.js +0 -265
  58. package/dist/lib/auth-flow.test.js.map +0 -1
  59. package/dist/lib/config.test.d.ts +0 -2
  60. package/dist/lib/config.test.d.ts.map +0 -1
  61. package/dist/lib/config.test.js +0 -151
  62. package/dist/lib/config.test.js.map +0 -1
  63. package/dist/lib/gitlab.test.d.ts +0 -2
  64. package/dist/lib/gitlab.test.d.ts.map +0 -1
  65. package/dist/lib/gitlab.test.js +0 -63
  66. package/dist/lib/gitlab.test.js.map +0 -1
  67. package/dist/lib/prerequisites.d.ts +0 -33
  68. package/dist/lib/prerequisites.d.ts.map +0 -1
  69. package/dist/lib/prerequisites.js +0 -123
  70. package/dist/lib/prerequisites.js.map +0 -1
  71. package/dist/lib/registry.d.ts +0 -3
  72. package/dist/lib/registry.d.ts.map +0 -1
  73. package/dist/lib/registry.js +0 -53
  74. package/dist/lib/registry.js.map +0 -1
  75. package/dist/lib/transitive-resolver.test.d.ts +0 -2
  76. package/dist/lib/transitive-resolver.test.d.ts.map +0 -1
  77. package/dist/lib/transitive-resolver.test.js +0 -279
  78. package/dist/lib/transitive-resolver.test.js.map +0 -1
@@ -1,265 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- // ============================================================
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.
8
- // ============================================================
9
- describe('getProxyAuthToken() — credentials.json:.token SSOT', () => {
10
- const FAKE_JWT = 'fake.ist.jwt-from-credentials';
11
- beforeEach(() => {
12
- vi.resetModules();
13
- delete process.env.IST_SESSION_TOKEN;
14
- delete process.env.SNAPSHOT_LICENSE_KEY;
15
- });
16
- afterEach(() => {
17
- delete process.env.IST_SESSION_TOKEN;
18
- delete process.env.SNAPSHOT_LICENSE_KEY;
19
- vi.restoreAllMocks();
20
- });
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;
28
- vi.doMock('fs', async () => {
29
- const actual = await vi.importActual('fs');
30
- return {
31
- ...actual,
32
- existsSync: (p) => {
33
- if (typeof p === 'string' && p.includes('credentials.json'))
34
- return true;
35
- return actual.existsSync(p);
36
- },
37
- readFileSync: (p, encoding) => {
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
- }
47
- return actual.readFileSync(p, encoding);
48
- },
49
- };
50
- });
51
- const { getProxyAuthToken } = await import('./config.js');
52
- expect(getProxyAuthToken()).toBe(FAKE_JWT);
53
- });
54
- it('returns null when credentials.json is absent (anonymous)', async () => {
55
- delete process.env.IST_SESSION_TOKEN;
56
- vi.doMock('fs', async () => {
57
- const actual = await vi.importActual('fs');
58
- return {
59
- ...actual,
60
- existsSync: (p) => {
61
- if (typeof p === 'string' && p.includes('credentials.json'))
62
- return false;
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'))
78
- return true;
79
- return actual.existsSync(p);
80
- },
81
- readFileSync: (p, encoding) => {
82
- if (typeof p === 'string' && p.includes('credentials.json')) {
83
- return JSON.stringify({ uid: 'firebase-uid-123', username: 'tester' });
84
- }
85
- return actual.readFileSync(p, encoding);
86
- },
87
- };
88
- });
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
- };
114
- });
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();
123
- });
124
- });
125
- // ============================================================
126
- // Group 2: getLicenseKey() fallback chain
127
- // ============================================================
128
- describe('getLicenseKey() fallback chain', () => {
129
- beforeEach(() => {
130
- vi.resetModules();
131
- delete process.env.SNAPSHOT_LICENSE_KEY;
132
- delete process.env.IST_SESSION_TOKEN;
133
- });
134
- afterEach(() => {
135
- delete process.env.SNAPSHOT_LICENSE_KEY;
136
- delete process.env.IST_SESSION_TOKEN;
137
- vi.restoreAllMocks();
138
- });
139
- it('getLicenseKey() returns env var when SNAPSHOT_LICENSE_KEY is set', async () => {
140
- process.env.SNAPSHOT_LICENSE_KEY = 'test-license-key-123';
141
- const { getLicenseKey } = await import('./config.js');
142
- expect(getLicenseKey()).toBe('test-license-key-123');
143
- });
144
- it('getLicenseKey() returns null when no license key configured', async () => {
145
- delete process.env.SNAPSHOT_LICENSE_KEY;
146
- const { getLicenseKey } = await import('./config.js');
147
- // May return null or a value from file — at minimum shouldn't throw
148
- const result = getLicenseKey();
149
- // Without a license file, should be null
150
- expect(result === null || typeof result === 'string').toBe(true);
151
- });
152
- });
153
- // ============================================================
154
- // Group 3: fetchSnapshotFromProxy authToken header verification
155
- // ============================================================
156
- describe('fetchSnapshotFromRepo authToken passthrough', () => {
157
- let originalFetch;
158
- let capturedHeaders;
159
- // Return 500 so fetchSnapshotFromProxy throws before attempting tarball parsing
160
- function createMockErrorResponse() {
161
- return new Response(JSON.stringify({ error: 'mock-test-error' }), {
162
- status: 500,
163
- headers: { 'Content-Type': 'application/json' },
164
- });
165
- }
166
- beforeEach(() => {
167
- vi.resetModules();
168
- originalFetch = globalThis.fetch;
169
- capturedHeaders = {};
170
- delete process.env.SNAPSHOT_LICENSE_KEY;
171
- delete process.env.IST_SESSION_TOKEN;
172
- });
173
- afterEach(() => {
174
- globalThis.fetch = originalFetch;
175
- delete process.env.SNAPSHOT_LICENSE_KEY;
176
- delete process.env.IST_SESSION_TOKEN;
177
- vi.restoreAllMocks();
178
- });
179
- it('should include Authorization: Bearer header when authToken is provided', async () => {
180
- // Mock config to prevent real token lookups
181
- vi.doMock('./config.js', async () => {
182
- const actual = await vi.importActual('./config.js');
183
- return {
184
- ...actual,
185
- getLicenseKey: () => null,
186
- getProxyAuthToken: () => null,
187
- REGISTRY_PROXY_URL: 'https://test-proxy.example.com',
188
- };
189
- });
190
- globalThis.fetch = vi.fn(async (input, init) => {
191
- const headers = init?.headers;
192
- if (headers) {
193
- capturedHeaders = { ...headers };
194
- }
195
- return createMockErrorResponse();
196
- });
197
- const { fetchSnapshotFromRepo } = await import('./gitlab.js');
198
- // Will fail on tarball parsing but we can still check the fetch headers
199
- try {
200
- await fetchSnapshotFromRepo('@ist/test', 'my-secret-token');
201
- }
202
- catch {
203
- // Expected — mock response isn't a real tarball
204
- }
205
- expect(capturedHeaders['Authorization']).toBe('Bearer my-secret-token');
206
- });
207
- it('should NOT include Authorization header when authToken is null', async () => {
208
- vi.doMock('./config.js', async () => {
209
- const actual = await vi.importActual('./config.js');
210
- return {
211
- ...actual,
212
- getLicenseKey: () => null,
213
- getProxyAuthToken: () => null,
214
- REGISTRY_PROXY_URL: 'https://test-proxy.example.com',
215
- };
216
- });
217
- globalThis.fetch = vi.fn(async (input, init) => {
218
- const headers = init?.headers;
219
- if (headers) {
220
- capturedHeaders = { ...headers };
221
- }
222
- return createMockErrorResponse();
223
- });
224
- const { fetchSnapshotFromRepo } = await import('./gitlab.js');
225
- try {
226
- await fetchSnapshotFromRepo('@ist/test', null);
227
- }
228
- catch {
229
- // Expected — mock response isn't a real tarball
230
- }
231
- expect(capturedHeaders['Authorization']).toBeUndefined();
232
- });
233
- it('should send request to correct proxy URL', async () => {
234
- let capturedUrl = '';
235
- vi.doMock('./config.js', async () => {
236
- const actual = await vi.importActual('./config.js');
237
- return {
238
- ...actual,
239
- getLicenseKey: () => null,
240
- getProxyAuthToken: () => null,
241
- REGISTRY_PROXY_URL: 'https://test-proxy.example.com',
242
- };
243
- });
244
- globalThis.fetch = vi.fn(async (input, init) => {
245
- const url = typeof input === 'string' ? input : input instanceof URL ? input.toString() : input.url;
246
- capturedUrl = url;
247
- const headers = init?.headers;
248
- if (headers) {
249
- capturedHeaders = { ...headers };
250
- }
251
- return createMockErrorResponse();
252
- });
253
- const { fetchSnapshotFromRepo } = await import('./gitlab.js');
254
- try {
255
- await fetchSnapshotFromRepo('@ist/test@1.0.0', 'token-123');
256
- }
257
- catch {
258
- // Expected
259
- }
260
- expect(capturedUrl).toContain('https://test-proxy.example.com/generic/');
261
- expect(capturedUrl).toContain('ist__test');
262
- expect(capturedUrl).toContain('1.0.0');
263
- });
264
- });
265
- //# sourceMappingURL=auth-flow.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth-flow.test.js","sourceRoot":"","sources":["../../src/lib/auth-flow.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=config.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.d.ts","sourceRoot":"","sources":["../../src/lib/config.test.ts"],"names":[],"mappings":""}
@@ -1,151 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- // Dynamic import for env override tests
3
- async function importConfig() {
4
- // Clear module cache to test env overrides
5
- vi.resetModules();
6
- return import('./config.js');
7
- }
8
- describe('config.ts - Centralized Constants', () => {
9
- describe('REGISTRY_PROXY_URL', () => {
10
- beforeEach(() => {
11
- vi.resetModules();
12
- });
13
- afterEach(() => {
14
- delete process.env.REGISTRY_PROXY_URL;
15
- });
16
- it('should use the hardcoded default when no env override is set', async () => {
17
- delete process.env.REGISTRY_PROXY_URL;
18
- const config = await importConfig();
19
- expect(config.REGISTRY_PROXY_URL).toBe('https://registry-proxy.sisung-kim1.workers.dev');
20
- });
21
- it('should allow env override for REGISTRY_PROXY_URL', async () => {
22
- process.env.REGISTRY_PROXY_URL = 'https://custom-registry.example.com';
23
- const config = await importConfig();
24
- expect(config.REGISTRY_PROXY_URL).toBe('https://custom-registry.example.com');
25
- });
26
- it('should export a valid URL string', async () => {
27
- const config = await importConfig();
28
- expect(typeof config.REGISTRY_PROXY_URL).toBe('string');
29
- expect(config.REGISTRY_PROXY_URL).toMatch(/^https?:\/\//);
30
- });
31
- });
32
- describe('GITLAB_GROUP_ID', () => {
33
- beforeEach(() => {
34
- vi.resetModules();
35
- });
36
- afterEach(() => {
37
- delete process.env.GITLAB_GROUP_ID;
38
- });
39
- it('should export default GITLAB_GROUP_ID', async () => {
40
- delete process.env.GITLAB_GROUP_ID;
41
- const config = await importConfig();
42
- expect(config.GITLAB_GROUP_ID).toBe('110834981');
43
- });
44
- it('should allow env override for GITLAB_GROUP_ID', async () => {
45
- process.env.GITLAB_GROUP_ID = '999999';
46
- const config = await importConfig();
47
- expect(config.GITLAB_GROUP_ID).toBe('999999');
48
- });
49
- });
50
- // PUBLIC_PACKAGES and FALLBACK_SNAPSHOTS removed — no hardcoded snapshot names
51
- describe('LICENSE_API_URL', () => {
52
- beforeEach(() => {
53
- vi.resetModules();
54
- });
55
- afterEach(() => {
56
- delete process.env.LICENSE_API_URL;
57
- });
58
- it('should export LICENSE_API_URL constant', async () => {
59
- delete process.env.LICENSE_API_URL;
60
- const config = await importConfig();
61
- expect(typeof config.LICENSE_API_URL).toBe('string');
62
- expect(config.LICENSE_API_URL).toMatch(/^https?:\/\//);
63
- });
64
- it('should allow env override for LICENSE_API_URL', async () => {
65
- process.env.LICENSE_API_URL = 'https://custom-license.example.com';
66
- const config = await importConfig();
67
- expect(config.LICENSE_API_URL).toBe('https://custom-license.example.com');
68
- });
69
- });
70
- describe('Vendor configuration', () => {
71
- beforeEach(() => {
72
- vi.resetModules();
73
- });
74
- afterEach(() => {
75
- delete process.env.SNAPSHOT_VENDOR_NAME;
76
- delete process.env.SNAPSHOT_STORE_URL;
77
- delete process.env.SNAPSHOT_PACKAGE_NAME;
78
- });
79
- it('should export VENDOR_NAME with default', async () => {
80
- delete process.env.SNAPSHOT_VENDOR_NAME;
81
- const config = await importConfig();
82
- expect(config.VENDOR_NAME).toBe('snapshot');
83
- });
84
- it('should export STORE_URL with default', async () => {
85
- delete process.env.SNAPSHOT_STORE_URL;
86
- const config = await importConfig();
87
- expect(config.STORE_URL).toContain('microwiseai.com');
88
- });
89
- it('should export PACKAGE_NAME with default', async () => {
90
- delete process.env.SNAPSHOT_PACKAGE_NAME;
91
- const config = await importConfig();
92
- expect(config.PACKAGE_NAME).toBe('@microwiseai/snapshot');
93
- });
94
- });
95
- });
96
- describe('config.ts - Functions', () => {
97
- describe('getConfig', () => {
98
- it('should return config object with configDir and currentFile', async () => {
99
- const config = await importConfig();
100
- const result = config.getConfig();
101
- expect(result).toHaveProperty('configDir');
102
- expect(result).toHaveProperty('currentFile');
103
- expect(typeof result.configDir).toBe('string');
104
- expect(typeof result.currentFile).toBe('string');
105
- });
106
- it('should include ist-snapshot in path', async () => {
107
- const config = await importConfig();
108
- const result = config.getConfig();
109
- expect(result.configDir).toContain('ist-snapshot');
110
- });
111
- });
112
- describe('getGitlabToken', () => {
113
- beforeEach(() => {
114
- vi.resetModules();
115
- });
116
- afterEach(() => {
117
- delete process.env.GITLAB_TOKEN;
118
- });
119
- it('should return env GITLAB_TOKEN if set', async () => {
120
- process.env.GITLAB_TOKEN = 'test-token-123';
121
- const config = await importConfig();
122
- // gitlab-config may or may not be available, so check env fallback
123
- const token = config.getGitlabToken();
124
- // If gitlab-config command fails, it should fall back to env
125
- if (token) {
126
- expect(typeof token).toBe('string');
127
- }
128
- });
129
- });
130
- describe('getLicenseKey / saveLicenseKey', () => {
131
- beforeEach(() => {
132
- vi.resetModules();
133
- });
134
- afterEach(() => {
135
- delete process.env.SNAPSHOT_LICENSE_KEY;
136
- });
137
- it('should return env SNAPSHOT_LICENSE_KEY if set', async () => {
138
- process.env.SNAPSHOT_LICENSE_KEY = 'test-license-key';
139
- const config = await importConfig();
140
- expect(config.getLicenseKey()).toBe('test-license-key');
141
- });
142
- it('should return null if no license available', async () => {
143
- delete process.env.SNAPSHOT_LICENSE_KEY;
144
- const config = await importConfig();
145
- // May return null or file-based key
146
- const key = config.getLicenseKey();
147
- expect(key === null || typeof key === 'string').toBe(true);
148
- });
149
- });
150
- });
151
- //# sourceMappingURL=config.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.test.js","sourceRoot":"","sources":["../../src/lib/config.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AAEzE,wCAAwC;AACxC,KAAK,UAAU,YAAY;IACzB,2CAA2C;IAC3C,EAAE,CAAC,YAAY,EAAE,CAAC;IAClB,OAAO,MAAM,CAAC,aAAa,CAAC,CAAC;AAC/B,CAAC;AAED,QAAQ,CAAC,mCAAmC,EAAE,GAAG,EAAE;IACjD,QAAQ,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAClC,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACxC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,8DAA8D,EAAE,KAAK,IAAI,EAAE;YAC5E,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,gDAAgD,CAAC,CAAC;QAC3F,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kDAAkD,EAAE,KAAK,IAAI,EAAE;YAChE,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,qCAAqC,CAAC;YACvE,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,kCAAkC,EAAE,KAAK,IAAI,EAAE;YAChD,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,MAAM,CAAC,kBAAkB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACxD,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,QAAQ,CAAC;YACvC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,+EAA+E;IAE/E,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;QAC/B,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,OAAO,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,OAAO,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACrD,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QACzD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,oCAAoC,CAAC;YACnE,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,oCAAoC,CAAC,CAAC;QAC5E,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;YACxC,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACtC,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;QAC3C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,wCAAwC,EAAE,KAAK,IAAI,EAAE;YACtD,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,sCAAsC,EAAE,KAAK,IAAI,EAAE;YACpD,OAAO,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;YACtC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,iBAAiB,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,yCAAyC,EAAE,KAAK,IAAI,EAAE;YACvD,OAAO,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;YACzC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACrC,QAAQ,CAAC,WAAW,EAAE,GAAG,EAAE;QACzB,EAAE,CAAC,4DAA4D,EAAE,KAAK,IAAI,EAAE;YAC1E,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,WAAW,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,CAAC,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC/C,MAAM,CAAC,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,qCAAqC,EAAE,KAAK,IAAI,EAAE;YACnD,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,CAAC;YAClC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC;QACrD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;QAC9B,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;QAClC,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,uCAAuC,EAAE,KAAK,IAAI,EAAE;YACrD,OAAO,CAAC,GAAG,CAAC,YAAY,GAAG,gBAAgB,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,mEAAmE;YACnE,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,EAAE,CAAC;YACtC,6DAA6D;YAC7D,IAAI,KAAK,EAAE,CAAC;gBACV,MAAM,CAAC,OAAO,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC9C,UAAU,CAAC,GAAG,EAAE;YACd,EAAE,CAAC,YAAY,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,SAAS,CAAC,GAAG,EAAE;YACb,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,+CAA+C,EAAE,KAAK,IAAI,EAAE;YAC7D,OAAO,CAAC,GAAG,CAAC,oBAAoB,GAAG,kBAAkB,CAAC;YACtD,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;QAC1D,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;YACxC,MAAM,MAAM,GAAG,MAAM,YAAY,EAAE,CAAC;YACpC,oCAAoC;YACpC,MAAM,GAAG,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC;YACnC,MAAM,CAAC,GAAG,KAAK,IAAI,IAAI,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=gitlab.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitlab.test.d.ts","sourceRoot":"","sources":["../../src/lib/gitlab.test.ts"],"names":[],"mappings":""}
@@ -1,63 +0,0 @@
1
- import { describe, it, expect } from 'vitest';
2
- import { parseSnapshotSpec, snapshotNameToPackageName, snapshotNameToRepoName, repoNameToSnapshotName, } from './gitlab.js';
3
- describe('parseSnapshotSpec', () => {
4
- it('should parse name with version', () => {
5
- const result = parseSnapshotSpec('@ist/minimal@0.2.1');
6
- expect(result).toEqual({ name: '@ist/minimal', version: '0.2.1' });
7
- });
8
- it('should parse name without version', () => {
9
- const result = parseSnapshotSpec('@ist/minimal');
10
- expect(result).toEqual({ name: '@ist/minimal' });
11
- });
12
- it('should handle complex version strings', () => {
13
- const result = parseSnapshotSpec('@ist/core@1.0.0-beta.1');
14
- expect(result).toEqual({ name: '@ist/core', version: '1.0.0-beta.1' });
15
- });
16
- it('should handle scope with multiple parts in name', () => {
17
- const result = parseSnapshotSpec('@ist/my-snapshot@2.0.0');
18
- expect(result).toEqual({ name: '@ist/my-snapshot', version: '2.0.0' });
19
- });
20
- });
21
- describe('snapshotNameToPackageName', () => {
22
- it('should convert @ist/minimal to ist__minimal', () => {
23
- expect(snapshotNameToPackageName('@ist/minimal')).toBe('ist__minimal');
24
- });
25
- it('should convert @ist/core to ist__core', () => {
26
- expect(snapshotNameToPackageName('@ist/core')).toBe('ist__core');
27
- });
28
- it('should handle hyphenated names', () => {
29
- expect(snapshotNameToPackageName('@ist/my-package')).toBe('ist__my-package');
30
- });
31
- });
32
- describe('snapshotNameToRepoName', () => {
33
- it('should convert @ist/minimal to snapshot.ist.minimal', () => {
34
- expect(snapshotNameToRepoName('@ist/minimal')).toBe('snapshot.ist.minimal');
35
- });
36
- it('should convert @ist/core to snapshot.ist.core', () => {
37
- expect(snapshotNameToRepoName('@ist/core')).toBe('snapshot.ist.core');
38
- });
39
- it('should handle spec with version', () => {
40
- expect(snapshotNameToRepoName('@ist/minimal@0.2.1')).toBe('snapshot.ist.minimal');
41
- });
42
- it('should throw for invalid format (no @)', () => {
43
- expect(() => snapshotNameToRepoName('ist/minimal')).toThrow('Invalid snapshot name');
44
- });
45
- it('should throw for invalid format (no /)', () => {
46
- expect(() => snapshotNameToRepoName('@istminimal')).toThrow('Invalid snapshot name');
47
- });
48
- });
49
- describe('repoNameToSnapshotName', () => {
50
- it('should convert snapshot.ist.minimal to @ist/minimal', () => {
51
- expect(repoNameToSnapshotName('snapshot.ist.minimal')).toBe('@ist/minimal');
52
- });
53
- it('should convert snapshot.ist.core to @ist/core', () => {
54
- expect(repoNameToSnapshotName('snapshot.ist.core')).toBe('@ist/core');
55
- });
56
- it('should handle names with multiple dots after scope', () => {
57
- expect(repoNameToSnapshotName('snapshot.ist.my.package')).toBe('@ist/my.package');
58
- });
59
- it('should return original if not matching format', () => {
60
- expect(repoNameToSnapshotName('someother')).toBe('someother');
61
- });
62
- });
63
- //# sourceMappingURL=gitlab.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gitlab.test.js","sourceRoot":"","sources":["../../src/lib/gitlab.test.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- export interface Prerequisite {
2
- name: string;
3
- description: string;
4
- requiredBy: string[];
5
- check: () => boolean;
6
- install?: Record<string, string>;
7
- guide?: string;
8
- autoInstall: boolean;
9
- }
10
- export interface CheckResult {
11
- name: string;
12
- description: string;
13
- requiredBy: string[];
14
- installed: boolean;
15
- guide?: string;
16
- installCommand?: string;
17
- }
18
- /**
19
- * Minimal snapshot prerequisites
20
- */
21
- export declare const MINIMAL_PREREQUISITES: Prerequisite[];
22
- /**
23
- * Check all prerequisites and return results
24
- */
25
- export declare function checkPrerequisites(prerequisites?: Prerequisite[]): CheckResult[];
26
- /**
27
- * Install a single prerequisite
28
- */
29
- export declare function installPrerequisite(result: CheckResult): {
30
- success: boolean;
31
- error?: string;
32
- };
33
- //# sourceMappingURL=prerequisites.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"prerequisites.d.ts","sourceRoot":"","sources":["../../src/lib/prerequisites.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,OAAO,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAqCD;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,YAAY,EAgD/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,GAAE,YAAY,EAA0B,GAAG,WAAW,EAAE,CAWvG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAU7F"}