Skip to content

Commit 9d67d90

Browse files
committed
chore(release): Bump version to 2.0.0
1 parent 1f44d7a commit 9d67d90

File tree

2 files changed

+102
-223
lines changed

2 files changed

+102
-223
lines changed

CHANGELOG.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,73 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [2.0.0](https://github.com/SocketDev/socket-lib/releases/tag/v2.0.0) - 2025-10-27
9+
10+
### Breaking Changes
11+
12+
**Environment Variable System Refactor**
13+
14+
This release completely refactors the environment variable system, consolidating 60+ individual env constant files into grouped getter modules with AsyncLocalStorage-based test rewiring.
15+
16+
**Consolidated env files** - Individual files replaced with grouped modules:
17+
- `env/github.ts` - All GitHub-related env vars (GITHUB_TOKEN, GH_TOKEN, GITHUB_API_URL, etc.)
18+
- `env/socket.ts` - Socket-specific env vars (SOCKET_API_TOKEN, SOCKET_CACACHE_DIR, etc.)
19+
- `env/socket-cli.ts` - Socket CLI env vars (SOCKET_CLI_API_TOKEN, SOCKET_CLI_CONFIG, etc.)
20+
- `env/npm.ts` - NPM-related env vars
21+
- `env/locale.ts` - Locale env vars (LANG, LC_ALL, LC_MESSAGES)
22+
- `env/windows.ts` - Windows-specific env vars (USERPROFILE, LOCALAPPDATA, APPDATA, COMSPEC)
23+
- `env/xdg.ts` - XDG base directory env vars
24+
- `env/temp-dir.ts` - Temp directory env vars (TEMP, TMP, TMPDIR)
25+
- `env/test.ts` - Test framework env vars (VITEST, JEST_WORKER_ID)
26+
27+
**Constants → Getter functions** - All env constants converted to functions:
28+
```typescript
29+
// Before (v1.x):
30+
import { GITHUB_TOKEN } from '#env/github-token'
31+
32+
// After (v2.x):
33+
import { getGithubToken } from '#env/github'
34+
```
35+
36+
**Deleted files** - Removed 60+ individual env constant files:
37+
- `env/github-token.ts`, `env/socket-api-token.ts`, etc. → Consolidated into grouped files
38+
- `env/getters.ts` → Functions moved to their respective grouped files
39+
40+
### Added
41+
42+
**AsyncLocalStorage-Based Test Rewiring**
43+
44+
New `env/rewire.ts` and `path/rewire.ts` modules provides context-isolated environment variable overrides for testing:
45+
46+
```typescript
47+
import { withEnv, setEnv, resetEnv, getEnvValue } from '#env/rewire'
48+
49+
// Option 1: Isolated context with AsyncLocalStorage
50+
await withEnv({ CI: '1', NODE_ENV: 'test' }, async () => {
51+
// CI env var is '1' only within this block
52+
// Concurrent tests don't interfere
53+
})
54+
55+
// Option 2: Traditional beforeEach/afterEach pattern
56+
beforeEach(() => {
57+
setEnv('CI', '1')
58+
})
59+
60+
afterEach(() => {
61+
resetEnv()
62+
})
63+
```
64+
65+
**Features:**
66+
- Allows toggling between snapshot and live behavior
67+
- Compatible with `vi.stubEnv()` as fallback
68+
69+
### Changed
70+
71+
- Updated all dynamic `require()` statements to use path aliases (`#constants/*`, `#packages/*`)
72+
- Improved logger blank line tracking per stream (separate stderr/stdout tracking)
73+
- Exported `getCacache()` function for external use
74+
875
## [1.3.6](https://github.com/SocketDev/socket-lib/releases/tag/v1.3.6) - 2025-10-26
976

1077
### Fixed

package.json

Lines changed: 35 additions & 223 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@socketsecurity/lib",
3-
"version": "1.3.6",
3+
"version": "2.0.0",
44
"license": "MIT",
55
"description": "Core utilities and infrastructure for Socket.dev security tools",
66
"keywords": [
@@ -176,53 +176,17 @@
176176
"types": "./dist/env.d.ts",
177177
"default": "./dist/env.js"
178178
},
179-
"./env/appdata": {
180-
"types": "./dist/env/appdata.d.ts",
181-
"default": "./dist/env/appdata.js"
182-
},
183179
"./env/ci": {
184180
"types": "./dist/env/ci.d.ts",
185181
"default": "./dist/env/ci.js"
186182
},
187-
"./env/comspec": {
188-
"types": "./dist/env/comspec.d.ts",
189-
"default": "./dist/env/comspec.js"
190-
},
191183
"./env/debug": {
192184
"types": "./dist/env/debug.d.ts",
193185
"default": "./dist/env/debug.js"
194186
},
195-
"./env/getters": {
196-
"types": "./dist/env/getters.d.ts",
197-
"default": "./dist/env/getters.js"
198-
},
199-
"./env/github-api-url": {
200-
"types": "./dist/env/github-api-url.d.ts",
201-
"default": "./dist/env/github-api-url.js"
202-
},
203-
"./env/github-base-ref": {
204-
"types": "./dist/env/github-base-ref.d.ts",
205-
"default": "./dist/env/github-base-ref.js"
206-
},
207-
"./env/github-ref-name": {
208-
"types": "./dist/env/github-ref-name.d.ts",
209-
"default": "./dist/env/github-ref-name.js"
210-
},
211-
"./env/github-ref-type": {
212-
"types": "./dist/env/github-ref-type.d.ts",
213-
"default": "./dist/env/github-ref-type.js"
214-
},
215-
"./env/github-repository": {
216-
"types": "./dist/env/github-repository.d.ts",
217-
"default": "./dist/env/github-repository.js"
218-
},
219-
"./env/github-server-url": {
220-
"types": "./dist/env/github-server-url.d.ts",
221-
"default": "./dist/env/github-server-url.js"
222-
},
223-
"./env/github-token": {
224-
"types": "./dist/env/github-token.d.ts",
225-
"default": "./dist/env/github-token.js"
187+
"./env/github": {
188+
"types": "./dist/env/github.d.ts",
189+
"default": "./dist/env/github.js"
226190
},
227191
"./env/helpers": {
228192
"types": "./dist/env/helpers.d.ts",
@@ -232,25 +196,9 @@
232196
"types": "./dist/env/home.d.ts",
233197
"default": "./dist/env/home.js"
234198
},
235-
"./env/jest-worker-id": {
236-
"types": "./dist/env/jest-worker-id.d.ts",
237-
"default": "./dist/env/jest-worker-id.js"
238-
},
239-
"./env/lang": {
240-
"types": "./dist/env/lang.d.ts",
241-
"default": "./dist/env/lang.js"
242-
},
243-
"./env/lc-all": {
244-
"types": "./dist/env/lc-all.d.ts",
245-
"default": "./dist/env/lc-all.js"
246-
},
247-
"./env/lc-messages": {
248-
"types": "./dist/env/lc-messages.d.ts",
249-
"default": "./dist/env/lc-messages.js"
250-
},
251-
"./env/localappdata": {
252-
"types": "./dist/env/localappdata.d.ts",
253-
"default": "./dist/env/localappdata.js"
199+
"./env/locale": {
200+
"types": "./dist/env/locale.d.ts",
201+
"default": "./dist/env/locale.js"
254202
},
255203
"./env/node-auth-token": {
256204
"types": "./dist/env/node-auth-token.d.ts",
@@ -260,25 +208,9 @@
260208
"types": "./dist/env/node-env.d.ts",
261209
"default": "./dist/env/node-env.js"
262210
},
263-
"./env/npm-config-registry": {
264-
"types": "./dist/env/npm-config-registry.d.ts",
265-
"default": "./dist/env/npm-config-registry.js"
266-
},
267-
"./env/npm-config-user-agent": {
268-
"types": "./dist/env/npm-config-user-agent.d.ts",
269-
"default": "./dist/env/npm-config-user-agent.js"
270-
},
271-
"./env/npm-lifecycle-event": {
272-
"types": "./dist/env/npm-lifecycle-event.d.ts",
273-
"default": "./dist/env/npm-lifecycle-event.js"
274-
},
275-
"./env/npm-registry": {
276-
"types": "./dist/env/npm-registry.d.ts",
277-
"default": "./dist/env/npm-registry.js"
278-
},
279-
"./env/npm-token": {
280-
"types": "./dist/env/npm-token.d.ts",
281-
"default": "./dist/env/npm-token.js"
211+
"./env/npm": {
212+
"types": "./dist/env/npm.d.ts",
213+
"default": "./dist/env/npm.js"
282214
},
283215
"./env/path": {
284216
"types": "./dist/env/path.d.ts",
@@ -288,165 +220,45 @@
288220
"types": "./dist/env/pre-commit.d.ts",
289221
"default": "./dist/env/pre-commit.js"
290222
},
223+
"./env/rewire": {
224+
"types": "./dist/env/rewire.d.ts",
225+
"default": "./dist/env/rewire.js"
226+
},
291227
"./env/shell": {
292228
"types": "./dist/env/shell.d.ts",
293229
"default": "./dist/env/shell.js"
294230
},
295-
"./env/socket-accept-risks": {
296-
"types": "./dist/env/socket-accept-risks.d.ts",
297-
"default": "./dist/env/socket-accept-risks.js"
298-
},
299-
"./env/socket-api-base-url": {
300-
"types": "./dist/env/socket-api-base-url.d.ts",
301-
"default": "./dist/env/socket-api-base-url.js"
302-
},
303-
"./env/socket-api-proxy": {
304-
"types": "./dist/env/socket-api-proxy.d.ts",
305-
"default": "./dist/env/socket-api-proxy.js"
306-
},
307-
"./env/socket-api-timeout": {
308-
"types": "./dist/env/socket-api-timeout.d.ts",
309-
"default": "./dist/env/socket-api-timeout.js"
310-
},
311-
"./env/socket-api-token": {
312-
"types": "./dist/env/socket-api-token.d.ts",
313-
"default": "./dist/env/socket-api-token.js"
314-
},
315-
"./env/socket-cacache-dir": {
316-
"types": "./dist/env/socket-cacache-dir.d.ts",
317-
"default": "./dist/env/socket-cacache-dir.js"
318-
},
319-
"./env/socket-cli-accept-risks": {
320-
"types": "./dist/env/socket-cli-accept-risks.d.ts",
321-
"default": "./dist/env/socket-cli-accept-risks.js"
322-
},
323-
"./env/socket-cli-api-base-url": {
324-
"types": "./dist/env/socket-cli-api-base-url.d.ts",
325-
"default": "./dist/env/socket-cli-api-base-url.js"
231+
"./env/socket": {
232+
"types": "./dist/env/socket.d.ts",
233+
"default": "./dist/env/socket.js"
326234
},
327-
"./env/socket-cli-api-proxy": {
328-
"types": "./dist/env/socket-cli-api-proxy.d.ts",
329-
"default": "./dist/env/socket-cli-api-proxy.js"
235+
"./env/socket-cli": {
236+
"types": "./dist/env/socket-cli.d.ts",
237+
"default": "./dist/env/socket-cli.js"
330238
},
331-
"./env/socket-cli-api-timeout": {
332-
"types": "./dist/env/socket-cli-api-timeout.d.ts",
333-
"default": "./dist/env/socket-cli-api-timeout.js"
239+
"./env/socket-cli-shadow": {
240+
"types": "./dist/env/socket-cli-shadow.d.ts",
241+
"default": "./dist/env/socket-cli-shadow.js"
334242
},
335-
"./env/socket-cli-api-token": {
336-
"types": "./dist/env/socket-cli-api-token.d.ts",
337-
"default": "./dist/env/socket-cli-api-token.js"
338-
},
339-
"./env/socket-cli-config": {
340-
"types": "./dist/env/socket-cli-config.d.ts",
341-
"default": "./dist/env/socket-cli-config.js"
342-
},
343-
"./env/socket-cli-fix": {
344-
"types": "./dist/env/socket-cli-fix.d.ts",
345-
"default": "./dist/env/socket-cli-fix.js"
346-
},
347-
"./env/socket-cli-no-api-token": {
348-
"types": "./dist/env/socket-cli-no-api-token.d.ts",
349-
"default": "./dist/env/socket-cli-no-api-token.js"
350-
},
351-
"./env/socket-cli-optimize": {
352-
"types": "./dist/env/socket-cli-optimize.d.ts",
353-
"default": "./dist/env/socket-cli-optimize.js"
354-
},
355-
"./env/socket-cli-org-slug": {
356-
"types": "./dist/env/socket-cli-org-slug.d.ts",
357-
"default": "./dist/env/socket-cli-org-slug.js"
358-
},
359-
"./env/socket-cli-shadow-accept-risks": {
360-
"types": "./dist/env/socket-cli-shadow-accept-risks.d.ts",
361-
"default": "./dist/env/socket-cli-shadow-accept-risks.js"
362-
},
363-
"./env/socket-cli-shadow-api-token": {
364-
"types": "./dist/env/socket-cli-shadow-api-token.d.ts",
365-
"default": "./dist/env/socket-cli-shadow-api-token.js"
366-
},
367-
"./env/socket-cli-shadow-bin": {
368-
"types": "./dist/env/socket-cli-shadow-bin.d.ts",
369-
"default": "./dist/env/socket-cli-shadow-bin.js"
370-
},
371-
"./env/socket-cli-shadow-progress": {
372-
"types": "./dist/env/socket-cli-shadow-progress.d.ts",
373-
"default": "./dist/env/socket-cli-shadow-progress.js"
374-
},
375-
"./env/socket-cli-shadow-silent": {
376-
"types": "./dist/env/socket-cli-shadow-silent.d.ts",
377-
"default": "./dist/env/socket-cli-shadow-silent.js"
378-
},
379-
"./env/socket-cli-view-all-risks": {
380-
"types": "./dist/env/socket-cli-view-all-risks.d.ts",
381-
"default": "./dist/env/socket-cli-view-all-risks.js"
382-
},
383-
"./env/socket-config": {
384-
"types": "./dist/env/socket-config.d.ts",
385-
"default": "./dist/env/socket-config.js"
386-
},
387-
"./env/socket-debug": {
388-
"types": "./dist/env/socket-debug.d.ts",
389-
"default": "./dist/env/socket-debug.js"
390-
},
391-
"./env/socket-home": {
392-
"types": "./dist/env/socket-home.d.ts",
393-
"default": "./dist/env/socket-home.js"
394-
},
395-
"./env/socket-no-api-token": {
396-
"types": "./dist/env/socket-no-api-token.d.ts",
397-
"default": "./dist/env/socket-no-api-token.js"
398-
},
399-
"./env/socket-npm-registry": {
400-
"types": "./dist/env/socket-npm-registry.d.ts",
401-
"default": "./dist/env/socket-npm-registry.js"
402-
},
403-
"./env/socket-org-slug": {
404-
"types": "./dist/env/socket-org-slug.d.ts",
405-
"default": "./dist/env/socket-org-slug.js"
406-
},
407-
"./env/socket-registry-url": {
408-
"types": "./dist/env/socket-registry-url.d.ts",
409-
"default": "./dist/env/socket-registry-url.js"
410-
},
411-
"./env/socket-view-all-risks": {
412-
"types": "./dist/env/socket-view-all-risks.d.ts",
413-
"default": "./dist/env/socket-view-all-risks.js"
414-
},
415-
"./env/temp": {
416-
"types": "./dist/env/temp.d.ts",
417-
"default": "./dist/env/temp.js"
243+
"./env/temp-dir": {
244+
"types": "./dist/env/temp-dir.d.ts",
245+
"default": "./dist/env/temp-dir.js"
418246
},
419247
"./env/term": {
420248
"types": "./dist/env/term.d.ts",
421249
"default": "./dist/env/term.js"
422250
},
423-
"./env/tmp": {
424-
"types": "./dist/env/tmp.d.ts",
425-
"default": "./dist/env/tmp.js"
426-
},
427-
"./env/tmpdir": {
428-
"types": "./dist/env/tmpdir.d.ts",
429-
"default": "./dist/env/tmpdir.js"
430-
},
431-
"./env/userprofile": {
432-
"types": "./dist/env/userprofile.d.ts",
433-
"default": "./dist/env/userprofile.js"
434-
},
435-
"./env/vitest": {
436-
"types": "./dist/env/vitest.d.ts",
437-
"default": "./dist/env/vitest.js"
438-
},
439-
"./env/xdg-cache-home": {
440-
"types": "./dist/env/xdg-cache-home.d.ts",
441-
"default": "./dist/env/xdg-cache-home.js"
251+
"./env/test": {
252+
"types": "./dist/env/test.d.ts",
253+
"default": "./dist/env/test.js"
442254
},
443-
"./env/xdg-config-home": {
444-
"types": "./dist/env/xdg-config-home.d.ts",
445-
"default": "./dist/env/xdg-config-home.js"
255+
"./env/windows": {
256+
"types": "./dist/env/windows.d.ts",
257+
"default": "./dist/env/windows.js"
446258
},
447-
"./env/xdg-data-home": {
448-
"types": "./dist/env/xdg-data-home.d.ts",
449-
"default": "./dist/env/xdg-data-home.js"
259+
"./env/xdg": {
260+
"types": "./dist/env/xdg.d.ts",
261+
"default": "./dist/env/xdg.js"
450262
},
451263
"./fs": {
452264
"types": "./dist/fs.d.ts",

0 commit comments

Comments
 (0)