@sandboxpm/config 0.1.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/LICENSE +21 -0
- package/dist/index.d.ts +63 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +187 -0
- package/dist/index.js.map +1 -0
- package/package.json +31 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 sandboxpm contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sandboxpm/config
|
|
3
|
+
*
|
|
4
|
+
* Parses and validates .sandboxpmrc (YAML) and manages the global
|
|
5
|
+
* config at ~/.sandboxpm/config.json.
|
|
6
|
+
*/
|
|
7
|
+
export interface SandboxConfig {
|
|
8
|
+
memory: string;
|
|
9
|
+
cpus: number;
|
|
10
|
+
timeout: number;
|
|
11
|
+
networkMode: 'isolated' | 'restricted' | 'none';
|
|
12
|
+
auditSyscalls: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface PoliciesConfig {
|
|
15
|
+
onWarn: 'continue' | 'prompt' | 'abort';
|
|
16
|
+
onBlock: 'abort' | 'prompt';
|
|
17
|
+
extraPolicyDirs: string[];
|
|
18
|
+
}
|
|
19
|
+
export interface RegistryConfig {
|
|
20
|
+
url: string;
|
|
21
|
+
token?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface CacheConfig {
|
|
24
|
+
enabled: boolean;
|
|
25
|
+
maxSizeGb: number;
|
|
26
|
+
ttlDays: number;
|
|
27
|
+
}
|
|
28
|
+
export interface SandboxpmRc {
|
|
29
|
+
version: number;
|
|
30
|
+
sandbox: SandboxConfig;
|
|
31
|
+
policies: PoliciesConfig;
|
|
32
|
+
registries: RegistryConfig[];
|
|
33
|
+
whitelist: string[];
|
|
34
|
+
blacklist: string[];
|
|
35
|
+
envPassthrough: string[];
|
|
36
|
+
cache: CacheConfig;
|
|
37
|
+
}
|
|
38
|
+
export interface GlobalConfig {
|
|
39
|
+
storeDir: string;
|
|
40
|
+
cacheDir: string;
|
|
41
|
+
reportsDir: string;
|
|
42
|
+
}
|
|
43
|
+
export declare function defaultRc(): SandboxpmRc;
|
|
44
|
+
export declare function mergeRc(base: SandboxpmRc, overrides: Partial<SandboxpmRc>): SandboxpmRc;
|
|
45
|
+
/** Walk up from `dir` until a .sandboxpmrc is found, then merge with defaults. */
|
|
46
|
+
export declare function loadRc(projectDir: string): Promise<SandboxpmRc>;
|
|
47
|
+
export declare function saveRc(projectDir: string, rc: SandboxpmRc): Promise<void>;
|
|
48
|
+
export declare function loadGlobalConfig(): Promise<GlobalConfig>;
|
|
49
|
+
export declare function saveGlobalConfig(config: GlobalConfig): Promise<void>;
|
|
50
|
+
export interface HostPlatform {
|
|
51
|
+
os: string;
|
|
52
|
+
cpu: string;
|
|
53
|
+
libc?: 'glibc' | 'musl';
|
|
54
|
+
}
|
|
55
|
+
export interface PlatformConstraints {
|
|
56
|
+
os?: string[];
|
|
57
|
+
cpu?: string[];
|
|
58
|
+
libc?: string[];
|
|
59
|
+
}
|
|
60
|
+
export declare function getHostPlatform(): HostPlatform;
|
|
61
|
+
/** npm-style os/cpu/libc matching for optionalDependencies (supports "!value" negation). */
|
|
62
|
+
export declare function matchesHostPlatform(pkg: PlatformConstraints, host: HostPlatform): boolean;
|
|
63
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,UAAU,GAAG,YAAY,GAAG,MAAM,CAAA;IAC/C,aAAa,EAAE,OAAO,CAAA;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,UAAU,GAAG,QAAQ,GAAG,OAAO,CAAA;IACvC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAA;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAA;CAC1B;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,aAAa,CAAA;IACtB,QAAQ,EAAE,cAAc,CAAA;IACxB,UAAU,EAAE,cAAc,EAAE,CAAA;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,SAAS,EAAE,MAAM,EAAE,CAAA;IACnB,cAAc,EAAE,MAAM,EAAE,CAAA;IACxB,KAAK,EAAE,WAAW,CAAA;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;CACnB;AAED,wBAAgB,SAAS,IAAI,WAAW,CA2BvC;AAiDD,wBAAgB,OAAO,CAAC,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,WAAW,CAiBvF;AAED,kFAAkF;AAClF,wBAAsB,MAAM,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAqBrE;AAED,wBAAsB,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAI/E;AAaD,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,YAAY,CAAC,CAW9D;AAED,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1E;AAID,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,OAAO,GAAG,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;IACb,GAAG,CAAC,EAAE,MAAM,EAAE,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,EAAE,CAAA;CAChB;AAID,wBAAgB,eAAe,IAAI,YAAY,CAU9C;AAWD,4FAA4F;AAC5F,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,mBAAmB,EAAE,IAAI,EAAE,YAAY,GAAG,OAAO,CAQzF"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @sandboxpm/config
|
|
3
|
+
*
|
|
4
|
+
* Parses and validates .sandboxpmrc (YAML) and manages the global
|
|
5
|
+
* config at ~/.sandboxpm/config.json.
|
|
6
|
+
*/
|
|
7
|
+
import * as fs from 'fs/promises';
|
|
8
|
+
import { existsSync } from 'fs';
|
|
9
|
+
import * as path from 'path';
|
|
10
|
+
import * as os from 'os';
|
|
11
|
+
import * as yaml from 'js-yaml';
|
|
12
|
+
export function defaultRc() {
|
|
13
|
+
return {
|
|
14
|
+
version: 1,
|
|
15
|
+
sandbox: {
|
|
16
|
+
memory: '1g',
|
|
17
|
+
cpus: 1.0,
|
|
18
|
+
timeout: 120,
|
|
19
|
+
networkMode: 'isolated',
|
|
20
|
+
auditSyscalls: false,
|
|
21
|
+
},
|
|
22
|
+
policies: {
|
|
23
|
+
onWarn: 'prompt',
|
|
24
|
+
onBlock: 'abort',
|
|
25
|
+
extraPolicyDirs: [],
|
|
26
|
+
},
|
|
27
|
+
registries: [
|
|
28
|
+
{ url: 'https://registry.npmjs.org' },
|
|
29
|
+
],
|
|
30
|
+
whitelist: [],
|
|
31
|
+
blacklist: [],
|
|
32
|
+
envPassthrough: [],
|
|
33
|
+
cache: {
|
|
34
|
+
enabled: true,
|
|
35
|
+
maxSizeGb: 10,
|
|
36
|
+
ttlDays: 30,
|
|
37
|
+
},
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
function validateRc(raw, filePath) {
|
|
41
|
+
if (typeof raw !== 'object' || raw === null) {
|
|
42
|
+
throw new Error(`Invalid .sandboxpmrc at ${filePath}: must be a YAML object`);
|
|
43
|
+
}
|
|
44
|
+
const obj = raw;
|
|
45
|
+
if ('version' in obj && typeof obj['version'] !== 'number') {
|
|
46
|
+
throw new Error(`Invalid .sandboxpmrc at ${filePath}: "version" must be a number`);
|
|
47
|
+
}
|
|
48
|
+
const sandbox = obj['sandbox'];
|
|
49
|
+
if (sandbox !== undefined) {
|
|
50
|
+
if (typeof sandbox !== 'object' || sandbox === null) {
|
|
51
|
+
throw new Error(`Invalid .sandboxpmrc at ${filePath}: "sandbox" must be an object`);
|
|
52
|
+
}
|
|
53
|
+
const s = sandbox;
|
|
54
|
+
const validNetworkModes = ['isolated', 'restricted', 'none'];
|
|
55
|
+
if ('networkMode' in s && !validNetworkModes.includes(s['networkMode'])) {
|
|
56
|
+
throw new Error(`Invalid .sandboxpmrc at ${filePath}: "sandbox.networkMode" must be one of ${validNetworkModes.join(', ')}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const policies = obj['policies'];
|
|
60
|
+
if (policies !== undefined) {
|
|
61
|
+
if (typeof policies !== 'object' || policies === null) {
|
|
62
|
+
throw new Error(`Invalid .sandboxpmrc at ${filePath}: "policies" must be an object`);
|
|
63
|
+
}
|
|
64
|
+
const p = policies;
|
|
65
|
+
const validOnWarn = ['continue', 'prompt', 'abort'];
|
|
66
|
+
const validOnBlock = ['abort', 'prompt'];
|
|
67
|
+
if ('onWarn' in p && !validOnWarn.includes(p['onWarn'])) {
|
|
68
|
+
throw new Error(`Invalid .sandboxpmrc at ${filePath}: "policies.onWarn" must be one of ${validOnWarn.join(', ')}`);
|
|
69
|
+
}
|
|
70
|
+
if ('onBlock' in p && !validOnBlock.includes(p['onBlock'])) {
|
|
71
|
+
throw new Error(`Invalid .sandboxpmrc at ${filePath}: "policies.onBlock" must be one of ${validOnBlock.join(', ')}`);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
return mergeRc(defaultRc(), obj);
|
|
75
|
+
}
|
|
76
|
+
export function mergeRc(base, overrides) {
|
|
77
|
+
return {
|
|
78
|
+
version: overrides.version ?? base.version,
|
|
79
|
+
sandbox: overrides.sandbox != null
|
|
80
|
+
? { ...base.sandbox, ...overrides.sandbox }
|
|
81
|
+
: base.sandbox,
|
|
82
|
+
policies: overrides.policies != null
|
|
83
|
+
? { ...base.policies, ...overrides.policies }
|
|
84
|
+
: base.policies,
|
|
85
|
+
registries: overrides.registries ?? base.registries,
|
|
86
|
+
whitelist: overrides.whitelist ?? base.whitelist,
|
|
87
|
+
blacklist: overrides.blacklist ?? base.blacklist,
|
|
88
|
+
envPassthrough: overrides.envPassthrough ?? base.envPassthrough,
|
|
89
|
+
cache: overrides.cache != null
|
|
90
|
+
? { ...base.cache, ...overrides.cache }
|
|
91
|
+
: base.cache,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
/** Walk up from `dir` until a .sandboxpmrc is found, then merge with defaults. */
|
|
95
|
+
export async function loadRc(projectDir) {
|
|
96
|
+
let dir = path.resolve(projectDir);
|
|
97
|
+
const root = path.parse(dir).root;
|
|
98
|
+
while (true) {
|
|
99
|
+
const candidate = path.join(dir, '.sandboxpmrc');
|
|
100
|
+
try {
|
|
101
|
+
const content = await fs.readFile(candidate, 'utf8');
|
|
102
|
+
const raw = yaml.load(content);
|
|
103
|
+
return validateRc(raw, candidate);
|
|
104
|
+
}
|
|
105
|
+
catch (err) {
|
|
106
|
+
if (err.code !== 'ENOENT') {
|
|
107
|
+
throw err;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
if (dir === root)
|
|
111
|
+
break;
|
|
112
|
+
dir = path.dirname(dir);
|
|
113
|
+
}
|
|
114
|
+
return defaultRc();
|
|
115
|
+
}
|
|
116
|
+
export async function saveRc(projectDir, rc) {
|
|
117
|
+
const filePath = path.join(projectDir, '.sandboxpmrc');
|
|
118
|
+
const content = yaml.dump(rc, { lineWidth: 120 });
|
|
119
|
+
await fs.writeFile(filePath, content, 'utf8');
|
|
120
|
+
}
|
|
121
|
+
const SANDBOXPM_HOME = path.join(os.homedir(), '.sandboxpm');
|
|
122
|
+
const GLOBAL_CONFIG_PATH = path.join(SANDBOXPM_HOME, 'config.json');
|
|
123
|
+
function defaultGlobalConfig() {
|
|
124
|
+
return {
|
|
125
|
+
storeDir: path.join(SANDBOXPM_HOME, 'store'),
|
|
126
|
+
cacheDir: path.join(SANDBOXPM_HOME, 'cache'),
|
|
127
|
+
reportsDir: path.join(SANDBOXPM_HOME, 'reports'),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
export async function loadGlobalConfig() {
|
|
131
|
+
try {
|
|
132
|
+
const content = await fs.readFile(GLOBAL_CONFIG_PATH, 'utf8');
|
|
133
|
+
const raw = JSON.parse(content);
|
|
134
|
+
return { ...defaultGlobalConfig(), ...raw };
|
|
135
|
+
}
|
|
136
|
+
catch (err) {
|
|
137
|
+
if (err.code !== 'ENOENT') {
|
|
138
|
+
throw err;
|
|
139
|
+
}
|
|
140
|
+
return defaultGlobalConfig();
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
export async function saveGlobalConfig(config) {
|
|
144
|
+
await fs.mkdir(SANDBOXPM_HOME, { recursive: true });
|
|
145
|
+
const tmp = `${GLOBAL_CONFIG_PATH}.tmp`;
|
|
146
|
+
await fs.writeFile(tmp, JSON.stringify(config, null, 2), 'utf8');
|
|
147
|
+
await fs.rename(tmp, GLOBAL_CONFIG_PATH);
|
|
148
|
+
}
|
|
149
|
+
let cachedHost;
|
|
150
|
+
export function getHostPlatform() {
|
|
151
|
+
if (cachedHost)
|
|
152
|
+
return cachedHost;
|
|
153
|
+
const host = { os: process.platform, cpu: process.arch };
|
|
154
|
+
if (process.platform === 'linux') {
|
|
155
|
+
// ponytail: alpine-release presence is the standard fast musl signal; swap for a
|
|
156
|
+
// syscall-based check (like the `detect-libc` package) if this ever misfires.
|
|
157
|
+
host.libc = existsSync('/etc/alpine-release') ? 'musl' : 'glibc';
|
|
158
|
+
}
|
|
159
|
+
cachedHost = host;
|
|
160
|
+
return host;
|
|
161
|
+
}
|
|
162
|
+
function matchesList(list, value) {
|
|
163
|
+
if (!list || list.length === 0)
|
|
164
|
+
return true;
|
|
165
|
+
const negated = list.filter(v => v.startsWith('!'));
|
|
166
|
+
const positive = list.filter(v => !v.startsWith('!'));
|
|
167
|
+
if (negated.some(v => v.slice(1) === value))
|
|
168
|
+
return false;
|
|
169
|
+
if (positive.length > 0 && !positive.includes(value))
|
|
170
|
+
return false;
|
|
171
|
+
return true;
|
|
172
|
+
}
|
|
173
|
+
/** npm-style os/cpu/libc matching for optionalDependencies (supports "!value" negation). */
|
|
174
|
+
export function matchesHostPlatform(pkg, host) {
|
|
175
|
+
if (!matchesList(pkg.os, host.os))
|
|
176
|
+
return false;
|
|
177
|
+
if (!matchesList(pkg.cpu, host.cpu))
|
|
178
|
+
return false;
|
|
179
|
+
if (pkg.libc && pkg.libc.length > 0) {
|
|
180
|
+
if (host.os !== 'linux')
|
|
181
|
+
return false;
|
|
182
|
+
if (!matchesList(pkg.libc, host.libc ?? 'glibc'))
|
|
183
|
+
return false;
|
|
184
|
+
}
|
|
185
|
+
return true;
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@sandboxpm/config",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Loads and merges .sandboxpmrc config files for sandboxpm",
|
|
5
|
+
"license": "MIT",
|
|
6
|
+
"repository": {
|
|
7
|
+
"type": "git",
|
|
8
|
+
"url": "git+https://github.com/daviddaco1/sandboxpm.git",
|
|
9
|
+
"directory": "packages/config"
|
|
10
|
+
},
|
|
11
|
+
"publishConfig": {
|
|
12
|
+
"access": "public"
|
|
13
|
+
},
|
|
14
|
+
"type": "module",
|
|
15
|
+
"main": "./dist/index.js",
|
|
16
|
+
"types": "./dist/index.d.ts",
|
|
17
|
+
"files": [
|
|
18
|
+
"dist",
|
|
19
|
+
"!dist/**/*.tsbuildinfo"
|
|
20
|
+
],
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"js-yaml": "^4.1.0"
|
|
23
|
+
},
|
|
24
|
+
"devDependencies": {
|
|
25
|
+
"@types/js-yaml": "^4.0.9"
|
|
26
|
+
},
|
|
27
|
+
"scripts": {
|
|
28
|
+
"build": "tsc --build",
|
|
29
|
+
"test": "vitest run"
|
|
30
|
+
}
|
|
31
|
+
}
|