@inquir/compute 0.4.1 → 0.4.4
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/README.md +258 -256
- package/dist/apps.d.ts +49 -2
- package/dist/apps.d.ts.map +1 -1
- package/dist/apps.js +9 -3
- package/dist/apps.js.map +1 -1
- package/dist/discovery.d.ts.map +1 -1
- package/dist/discovery.js +2 -8
- package/dist/discovery.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/local-runner.d.ts.map +1 -1
- package/dist/local-runner.js +2 -8
- package/dist/local-runner.js.map +1 -1
- package/dist/system-packages.d.ts +441 -0
- package/dist/system-packages.d.ts.map +1 -0
- package/dist/system-packages.js +179 -0
- package/dist/system-packages.js.map +1 -0
- package/dist/transport.d.ts +26 -1
- package/dist/transport.d.ts.map +1 -1
- package/dist/transport.js +8 -0
- package/dist/transport.js.map +1 -1
- package/dist/tsx-loader.d.ts +9 -0
- package/dist/tsx-loader.d.ts.map +1 -0
- package/dist/tsx-loader.js +26 -0
- package/dist/tsx-loader.js.map +1 -0
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/zip.d.ts +87 -3
- package/dist/zip.d.ts.map +1 -1
- package/dist/zip.js +326 -7
- package/dist/zip.js.map +1 -1
- package/package.json +43 -39
package/dist/zip.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"zip.d.ts","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,6CAA8C,CAAC;AAK/E,mEAAmE;AACnE,MAAM,WAAW,kBAAkB;IACjC,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,uGAAuG;IACvG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,mDAAmD;IACnD,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qGAAqG;IACrG,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,gDAAgD;IAChD,cAAc,EAAE,MAAM,CAAC;IACvB,yEAAyE;IACzE,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,sFAAsF;IACtF,eAAe,EAAE,kBAAkB,EAAE,CAAC;CACvC;AAsBD;;;;;;;;;;GAUG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,MAAM,EACpB,IAAI,EAAE,MAAM,OAAO,CAAC,MAAM,CAAC,EAC3B,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBxB;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,sGAAsG;IACtG,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;CACpC;AAwFD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAkB,GAAG,UAAU,EAAE,CAsBxF;AAED,oHAAoH;AACpH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,UAAU,EAAE,GAAG,OAAO,CAQ5F;AAyKD;;;;;;;;GAQG;AACH,wBAAsB,mBAAmB,CACvC,UAAU,EAAE,MAAM,EAClB,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAqExB;AAQD;;;;;GAKG;AACH,wBAAsB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,GAAG,GAAG,IAAI,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAc7G;AAED;;;GAGG;AACH,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,oBAAyB,GAAG,OAAO,CAAC,MAAM,CAAC,CAE7G"}
|
package/dist/zip.js
CHANGED
|
@@ -4,6 +4,205 @@ const IGNORED_DIRECTORIES = new Set(['node_modules', '.git', 'dist', '.inquir'])
|
|
|
4
4
|
const IGNORED_FILENAMES = new Set(['.DS_Store']);
|
|
5
5
|
const IGNORED_SUFFIXES = ['.swp', '.swo', '.tmp', '~'];
|
|
6
6
|
const TEST_FILE_PATTERN = /\.(test|spec)\.[cm]?[jt]sx?$/;
|
|
7
|
+
/**
|
|
8
|
+
* Ignore files read from the root of the build context, in this order, with
|
|
9
|
+
* Docker's .dockerignore syntax. A later rule wins, so .inquirignore can
|
|
10
|
+
* re-include (`!path`) what .dockerignore excludes.
|
|
11
|
+
*/
|
|
12
|
+
export const SOURCE_IGNORE_FILES = ['.dockerignore', '.inquirignore'];
|
|
13
|
+
/** Inquir app manifests; one may name a build context the uploader cannot see without parsing it. */
|
|
14
|
+
const MANIFEST_FILENAMES = ['inquir.yaml', 'inquir.yml'];
|
|
15
|
+
const ENV_TEMPLATE_SUFFIXES = new Set(['example', 'sample', 'template']);
|
|
16
|
+
const SSH_PRIVATE_KEY_NAMES = new Set(['id_rsa', 'id_dsa', 'id_ecdsa', 'id_ed25519', 'id_ecdsa_sk', 'id_ed25519_sk']);
|
|
17
|
+
const CREDENTIAL_FILENAMES = new Set(['.netrc', '_netrc', '.git-credentials', '.pgpass']);
|
|
18
|
+
const KEYSTORE_SUFFIXES = ['.p12', '.pfx'];
|
|
19
|
+
/**
|
|
20
|
+
* Secret only when they hold a private key: a CA bundle .pem is public and
|
|
21
|
+
* often needed, and most JSON is data. A cloud service-account key file
|
|
22
|
+
* (`"private_key": "-----BEGIN PRIVATE KEY-----..."`) is caught this way.
|
|
23
|
+
*/
|
|
24
|
+
const KEY_MATERIAL_SUFFIXES = ['.pem', '.key', '.p8', '.json'];
|
|
25
|
+
const PRIVATE_KEY_MARKER = /-----BEGIN [A-Z0-9 ]*PRIVATE KEY-----/;
|
|
26
|
+
/** Larger files are not inspected for key material (a key file is a few KiB). */
|
|
27
|
+
const MAX_INSPECTED_BYTES = 1024 * 1024;
|
|
28
|
+
/**
|
|
29
|
+
* A registry credential written out literally. A `${NPM_TOKEN}` reference is
|
|
30
|
+
* fine: the value comes from the build environment, not from the file.
|
|
31
|
+
*/
|
|
32
|
+
const NPMRC_LITERAL_CREDENTIAL = /^\s*(?:\/\/\S*:)?(?:_authToken|_auth|_password)\s*=\s*(?!\$\{)\S/m;
|
|
33
|
+
const PYPIRC_LITERAL_CREDENTIAL = /^\s*password\s*[=:]\s*(?!\$\{)\S/m;
|
|
34
|
+
/**
|
|
35
|
+
* Whether a file must never leave the developer's machine in a source upload,
|
|
36
|
+
* at any depth: dotenv files (`.env`, `.envrc`, `.env.*` except
|
|
37
|
+
* `.env.example`, `.env.sample` and `.env.template`), SSH private keys
|
|
38
|
+
* (`id_rsa`, `id_ed25519`, ...), PKCS#12 key stores (`*.p12`, `*.pfx`),
|
|
39
|
+
* `.netrc`, `.git-credentials` and `.pgpass`, `*.pem`/`*.key`/`*.p8`/`*.json`
|
|
40
|
+
* files up to 1 MiB that hold a PRIVATE KEY block, and `.npmrc`/`.pypirc`
|
|
41
|
+
* files that carry a literal credential. Returns the reason, or null for an
|
|
42
|
+
* ordinary file. `read` is called only for the files whose name alone cannot
|
|
43
|
+
* decide; `size` (when known) skips reading large files.
|
|
44
|
+
*/
|
|
45
|
+
export async function isSecretLikeFile(relativePath, read, size) {
|
|
46
|
+
const lower = relativePath.slice(relativePath.lastIndexOf('/') + 1).toLowerCase();
|
|
47
|
+
if (lower === '.env' || lower === '.envrc')
|
|
48
|
+
return 'dotenv file';
|
|
49
|
+
if (lower.startsWith('.env.')) {
|
|
50
|
+
return ENV_TEMPLATE_SUFFIXES.has(lower.slice('.env.'.length)) ? null : 'dotenv file';
|
|
51
|
+
}
|
|
52
|
+
if (SSH_PRIVATE_KEY_NAMES.has(lower))
|
|
53
|
+
return 'SSH private key';
|
|
54
|
+
if (CREDENTIAL_FILENAMES.has(lower))
|
|
55
|
+
return 'credentials file';
|
|
56
|
+
if (KEYSTORE_SUFFIXES.some((suffix) => lower.endsWith(suffix)))
|
|
57
|
+
return 'private key store';
|
|
58
|
+
const text = async () => (await read()).subarray(0, MAX_INSPECTED_BYTES).toString('utf8');
|
|
59
|
+
if (KEY_MATERIAL_SUFFIXES.some((suffix) => lower.endsWith(suffix))) {
|
|
60
|
+
if (size !== undefined && size > MAX_INSPECTED_BYTES)
|
|
61
|
+
return null;
|
|
62
|
+
return PRIVATE_KEY_MARKER.test(await text()) ? 'private key' : null;
|
|
63
|
+
}
|
|
64
|
+
if (lower === '.npmrc')
|
|
65
|
+
return NPMRC_LITERAL_CREDENTIAL.test(await text()) ? 'registry token' : null;
|
|
66
|
+
if (lower === '.pypirc')
|
|
67
|
+
return PYPIRC_LITERAL_CREDENTIAL.test(await text()) ? 'registry password' : null;
|
|
68
|
+
return null;
|
|
69
|
+
}
|
|
70
|
+
/** Characters that make moby/patternmatcher compile a pattern to a regexp. */
|
|
71
|
+
const PATTERN_SPECIAL = /[*?[\]\\]/;
|
|
72
|
+
/**
|
|
73
|
+
* One pattern as moby/patternmatcher matches it: a leading `**` followed by
|
|
74
|
+
* no other special character is a suffix match (`**.js` is any path ending
|
|
75
|
+
* in `.js`, and `**` followed by `/foo` also matches `foo` itself); everything else is the
|
|
76
|
+
* compiled regexp, whose results equal Docker's exact and prefix matches.
|
|
77
|
+
*/
|
|
78
|
+
function compileRule(pattern) {
|
|
79
|
+
if (pattern.startsWith('**') && pattern.length > 2 && !PATTERN_SPECIAL.test(pattern.slice(2))) {
|
|
80
|
+
const suffix = pattern.slice(2);
|
|
81
|
+
return (path) => path.endsWith(suffix) || (suffix.startsWith('/') && path === suffix.slice(1));
|
|
82
|
+
}
|
|
83
|
+
const regexp = compileDockerPattern(pattern);
|
|
84
|
+
return (path) => regexp.test(path);
|
|
85
|
+
}
|
|
86
|
+
const REGEXP_SPECIAL = /[\\^$.*+?()[\]{}|/]/;
|
|
87
|
+
function literal(char) {
|
|
88
|
+
return REGEXP_SPECIAL.test(char) ? `\\${char}` : char;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Docker's pattern syntax (moby/patternmatcher) as an anchored RegExp over a
|
|
92
|
+
* /-separated path: `*` and `?` stay inside one segment, `**` spans
|
|
93
|
+
* directories (zero or more whole directories, or anything at the end), `[...]` is a character
|
|
94
|
+
* class with `^` negation (as in Go; `!` is an ordinary member), and `\`
|
|
95
|
+
* escapes the next character.
|
|
96
|
+
*/
|
|
97
|
+
function compileDockerPattern(pattern) {
|
|
98
|
+
let source = '';
|
|
99
|
+
for (let index = 0; index < pattern.length; index += 1) {
|
|
100
|
+
const char = pattern[index];
|
|
101
|
+
if (char === '*') {
|
|
102
|
+
if (pattern[index + 1] !== '*') {
|
|
103
|
+
source += '[^/]*';
|
|
104
|
+
continue;
|
|
105
|
+
}
|
|
106
|
+
index += 1;
|
|
107
|
+
if (pattern[index + 1] === '/')
|
|
108
|
+
index += 1;
|
|
109
|
+
source += index + 1 >= pattern.length ? '.*' : '(?:.*/)?';
|
|
110
|
+
}
|
|
111
|
+
else if (char === '?') {
|
|
112
|
+
source += '[^/]';
|
|
113
|
+
}
|
|
114
|
+
else if (char === '[') {
|
|
115
|
+
// A `]` right after `[` or `[^` is a member, not the end of the class.
|
|
116
|
+
let start = index + 1;
|
|
117
|
+
if (pattern[start] === '^')
|
|
118
|
+
start += 1;
|
|
119
|
+
const close = pattern.indexOf(']', start + 1);
|
|
120
|
+
if (close === -1) {
|
|
121
|
+
source += '\\[';
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
const negated = pattern[index + 1] === '^';
|
|
125
|
+
const members = pattern.slice(start, close).replace(/[\\\]]/g, (c) => `\\${c}`);
|
|
126
|
+
source += `[${negated ? '^' : ''}${members}]`;
|
|
127
|
+
index = close;
|
|
128
|
+
}
|
|
129
|
+
else if (char === '\\' && index + 1 < pattern.length) {
|
|
130
|
+
index += 1;
|
|
131
|
+
source += literal(pattern[index]);
|
|
132
|
+
}
|
|
133
|
+
else {
|
|
134
|
+
source += literal(char);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return new RegExp(`^${source}$`);
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Lexical clean of a pattern, like Go's filepath.Clean in Docker: a leading
|
|
141
|
+
* `/` is the root, `.` segments go, `x/..` cancels, and a leading `..` stays
|
|
142
|
+
* (such a pattern can never match a file inside the context).
|
|
143
|
+
*/
|
|
144
|
+
function cleanPattern(pattern) {
|
|
145
|
+
const rooted = pattern.startsWith('/');
|
|
146
|
+
const parts = [];
|
|
147
|
+
for (const part of pattern.split('/')) {
|
|
148
|
+
if (part === '' || part === '.')
|
|
149
|
+
continue;
|
|
150
|
+
if (part === '..' && parts.length > 0 && parts[parts.length - 1] !== '..')
|
|
151
|
+
parts.pop();
|
|
152
|
+
// Above the root there is nothing: Go cleans `/../x` to `/x`.
|
|
153
|
+
else if (part === '..' && rooted && parts.length === 0)
|
|
154
|
+
continue;
|
|
155
|
+
else
|
|
156
|
+
parts.push(part);
|
|
157
|
+
}
|
|
158
|
+
return parts.join('/');
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Parses .dockerignore content: one pattern per line, `#` in the first column
|
|
162
|
+
* starts a comment, `!` re-includes. Patterns are relative to the context
|
|
163
|
+
* root (`*.md` matches only top-level files, `**` crosses directories), and a
|
|
164
|
+
* pattern that matches a directory excludes everything under it. `source`
|
|
165
|
+
* names the file in errors.
|
|
166
|
+
*/
|
|
167
|
+
export function parseIgnoreRules(content, source = '.dockerignore') {
|
|
168
|
+
const rules = [];
|
|
169
|
+
// A UTF-8 byte order mark is not part of the first line (moby strips it too).
|
|
170
|
+
const lines = content.replace(/^\uFEFF/, '').split(/\r?\n/);
|
|
171
|
+
for (let number = 0; number < lines.length; number += 1) {
|
|
172
|
+
const rawLine = lines[number];
|
|
173
|
+
if (rawLine.startsWith('#'))
|
|
174
|
+
continue;
|
|
175
|
+
let line = rawLine.trim();
|
|
176
|
+
if (line === '')
|
|
177
|
+
continue;
|
|
178
|
+
const negated = line.startsWith('!');
|
|
179
|
+
if (negated)
|
|
180
|
+
line = line.slice(1).trim();
|
|
181
|
+
const cleaned = cleanPattern(line);
|
|
182
|
+
if (cleaned === '')
|
|
183
|
+
continue;
|
|
184
|
+
let matches;
|
|
185
|
+
try {
|
|
186
|
+
matches = compileRule(cleaned);
|
|
187
|
+
}
|
|
188
|
+
catch (error) {
|
|
189
|
+
throw new Error(`${source}:${number + 1}: invalid pattern '${rawLine.trim()}' (${error instanceof Error ? error.message : String(error)})`);
|
|
190
|
+
}
|
|
191
|
+
rules.push({ negated, matches });
|
|
192
|
+
}
|
|
193
|
+
return rules;
|
|
194
|
+
}
|
|
195
|
+
/** Docker's precedence: the last matching rule wins, and a rule matches a path or any of its parent directories. */
|
|
196
|
+
export function isIgnoredByRules(relativePath, rules) {
|
|
197
|
+
const segments = relativePath.split('/');
|
|
198
|
+
const candidates = segments.map((_, index) => segments.slice(0, index + 1).join('/'));
|
|
199
|
+
let ignored = false;
|
|
200
|
+
for (const rule of rules) {
|
|
201
|
+
if (candidates.some((candidate) => rule.matches(candidate)))
|
|
202
|
+
ignored = !rule.negated;
|
|
203
|
+
}
|
|
204
|
+
return ignored;
|
|
205
|
+
}
|
|
7
206
|
const CRC_TABLE = (() => {
|
|
8
207
|
const table = new Uint32Array(256);
|
|
9
208
|
for (let index = 0; index < 256; index += 1) {
|
|
@@ -37,6 +236,25 @@ async function collectFiles(entryPath, rootDir, output) {
|
|
|
37
236
|
}
|
|
38
237
|
}
|
|
39
238
|
}
|
|
239
|
+
async function readIgnoreRules(rootDir, context) {
|
|
240
|
+
const files = [];
|
|
241
|
+
const rules = [];
|
|
242
|
+
for (const name of SOURCE_IGNORE_FILES) {
|
|
243
|
+
const relative = context ? `${context}/${name}` : name;
|
|
244
|
+
let content;
|
|
245
|
+
try {
|
|
246
|
+
content = await fs.readFile(path.join(rootDir, relative), 'utf8');
|
|
247
|
+
}
|
|
248
|
+
catch (error) {
|
|
249
|
+
if (error.code === 'ENOENT')
|
|
250
|
+
continue;
|
|
251
|
+
throw error;
|
|
252
|
+
}
|
|
253
|
+
files.push(relative);
|
|
254
|
+
rules.push(...parseIgnoreRules(content, relative));
|
|
255
|
+
}
|
|
256
|
+
return { files, rules };
|
|
257
|
+
}
|
|
40
258
|
function computeCrc32(buffer) {
|
|
41
259
|
let crc = 0xffffffff;
|
|
42
260
|
for (const byte of buffer) {
|
|
@@ -121,25 +339,126 @@ function buildZipBuffer(entries) {
|
|
|
121
339
|
endOfCentralDirectory.writeUInt16LE(0, 20);
|
|
122
340
|
return Buffer.concat([...fileChunks, centralDirectory, endOfCentralDirectory]);
|
|
123
341
|
}
|
|
342
|
+
/** A relative path inside the source root, `/`-separated, without `./`; null when it leaves the root. */
|
|
343
|
+
function normalizeRelative(value) {
|
|
344
|
+
const normalized = path.posix.normalize(value.replace(/\\/g, '/'));
|
|
345
|
+
if (normalized === '.' || normalized === './' || normalized === '')
|
|
346
|
+
return '';
|
|
347
|
+
if (normalized.startsWith('../') || normalized === '..' || path.posix.isAbsolute(normalized))
|
|
348
|
+
return null;
|
|
349
|
+
return normalized.replace(/^\.\//, '').replace(/\/$/, '');
|
|
350
|
+
}
|
|
124
351
|
/**
|
|
125
|
-
*
|
|
126
|
-
*
|
|
352
|
+
* Packs a file or directory for a source upload. Skips node_modules, .git,
|
|
353
|
+
* dist, dot-directories, test files and editor droppings; applies the build
|
|
354
|
+
* context's .dockerignore and then .inquirignore with Docker's syntax and
|
|
355
|
+
* precedence, relative to the context (the selected Dockerfile and
|
|
356
|
+
* .dockerignore are always kept, as Docker sends them too); and always keeps
|
|
357
|
+
* secret-like files out (isSecretLikeFile), even when an ignore rule
|
|
358
|
+
* re-includes them, listing each in `excludedSecrets`.
|
|
127
359
|
*/
|
|
128
|
-
export async function
|
|
360
|
+
export async function createSourceArchive(sourcePath, options = {}) {
|
|
129
361
|
const resolvedSourcePath = path.resolve(sourcePath);
|
|
130
362
|
const stats = await fs.stat(resolvedSourcePath);
|
|
131
|
-
const
|
|
363
|
+
const candidates = [];
|
|
132
364
|
let rootDir = resolvedSourcePath;
|
|
365
|
+
let ignore = { files: [], rules: [] };
|
|
366
|
+
let ignoreRulesSkipped;
|
|
367
|
+
let context = '';
|
|
368
|
+
const alwaysSent = new Set();
|
|
133
369
|
if (stats.isDirectory()) {
|
|
134
|
-
await collectFiles(resolvedSourcePath, resolvedSourcePath,
|
|
370
|
+
await collectFiles(resolvedSourcePath, resolvedSourcePath, candidates);
|
|
371
|
+
const requested = options.context === undefined ? '.' : options.context;
|
|
372
|
+
const normalized = requested === null ? null : normalizeRelative(requested);
|
|
373
|
+
if (normalized === null) {
|
|
374
|
+
const present = ignoreFilesIn(candidates);
|
|
375
|
+
if (present.length > 0) {
|
|
376
|
+
ignoreRulesSkipped = requested === null
|
|
377
|
+
? 'the build context is not known here (inquir.yaml may set it)'
|
|
378
|
+
: `the build context '${requested}' is outside the source directory`;
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
else {
|
|
382
|
+
context = normalized;
|
|
383
|
+
ignore = await readIgnoreRules(resolvedSourcePath, context);
|
|
384
|
+
const contextPath = (relative) => (context ? `${context}/${relative}` : relative);
|
|
385
|
+
const dockerfile = normalizeRelative(path.posix.join(context || '.', (options.dockerfile ?? 'Dockerfile').replace(/\\/g, '/')));
|
|
386
|
+
if (dockerfile)
|
|
387
|
+
alwaysSent.add(dockerfile);
|
|
388
|
+
alwaysSent.add(contextPath('.dockerignore'));
|
|
389
|
+
// The server reads the app manifest from the upload's root, whatever
|
|
390
|
+
// the context's .dockerignore says (an allowlist would drop it).
|
|
391
|
+
for (const name of MANIFEST_FILENAMES)
|
|
392
|
+
alwaysSent.add(name);
|
|
393
|
+
}
|
|
135
394
|
}
|
|
136
395
|
else {
|
|
137
396
|
rootDir = path.dirname(resolvedSourcePath);
|
|
138
397
|
if (!shouldIgnoreFile(resolvedSourcePath)) {
|
|
139
|
-
|
|
398
|
+
candidates.push(path.basename(resolvedSourcePath));
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
const relativePaths = [];
|
|
402
|
+
const excludedSecrets = [];
|
|
403
|
+
let ignoredByRules = 0;
|
|
404
|
+
for (const relativePath of candidates) {
|
|
405
|
+
const inContext = context === '' || relativePath.startsWith(`${context}/`);
|
|
406
|
+
if (ignore.rules.length > 0 && inContext && !alwaysSent.has(relativePath)
|
|
407
|
+
&& isIgnoredByRules(context === '' ? relativePath : relativePath.slice(context.length + 1), ignore.rules)) {
|
|
408
|
+
ignoredByRules += 1;
|
|
409
|
+
continue;
|
|
410
|
+
}
|
|
411
|
+
const fullPath = path.join(rootDir, relativePath);
|
|
412
|
+
const lower = relativePath.toLowerCase();
|
|
413
|
+
const size = KEY_MATERIAL_SUFFIXES.some((suffix) => lower.endsWith(suffix)) ? (await fs.stat(fullPath)).size : undefined;
|
|
414
|
+
const reason = await isSecretLikeFile(relativePath, () => fs.readFile(fullPath), size);
|
|
415
|
+
if (reason) {
|
|
416
|
+
excludedSecrets.push({ path: relativePath, reason });
|
|
417
|
+
continue;
|
|
140
418
|
}
|
|
419
|
+
relativePaths.push(relativePath);
|
|
141
420
|
}
|
|
142
421
|
const entries = await buildEntries(rootDir, relativePaths);
|
|
143
|
-
return
|
|
422
|
+
return {
|
|
423
|
+
base64: buildZipBuffer(entries).toString('base64'),
|
|
424
|
+
files: relativePaths,
|
|
425
|
+
ignoreFiles: ignore.files,
|
|
426
|
+
ignoredByRules,
|
|
427
|
+
...(ignoreRulesSkipped ? { ignoreRulesSkipped } : {}),
|
|
428
|
+
excludedSecrets,
|
|
429
|
+
};
|
|
430
|
+
}
|
|
431
|
+
/** Ignore files anywhere in the collected tree (for the "not applied" note). */
|
|
432
|
+
function ignoreFilesIn(candidates) {
|
|
433
|
+
return candidates.filter((candidate) => SOURCE_IGNORE_FILES.includes(candidate.slice(candidate.lastIndexOf('/') + 1)));
|
|
434
|
+
}
|
|
435
|
+
/**
|
|
436
|
+
* The build context an app manifest in `dir` sets, as far as can be told
|
|
437
|
+
* without a YAML parser: `.` when there is no inquir.yaml/inquir.yml or it
|
|
438
|
+
* names no other context, null when it (may) name one. Pass the result as
|
|
439
|
+
* `context` to createSourceArchive when no explicit context was given.
|
|
440
|
+
*/
|
|
441
|
+
export async function manifestBuildContext(dir) {
|
|
442
|
+
for (const name of MANIFEST_FILENAMES) {
|
|
443
|
+
let content;
|
|
444
|
+
try {
|
|
445
|
+
content = await fs.readFile(path.join(dir, name), 'utf8');
|
|
446
|
+
}
|
|
447
|
+
catch {
|
|
448
|
+
continue;
|
|
449
|
+
}
|
|
450
|
+
const context = /^\s*context\s*:\s*['"]?([^'"#\s]+)/m.exec(content)?.[1];
|
|
451
|
+
const dockerfile = /^\s*dockerfile\s*:\s*['"]?([^'"#\s]+)/m.exec(content)?.[1];
|
|
452
|
+
const isRoot = context === undefined || context === '.' || context === './';
|
|
453
|
+
return { context: isRoot ? '.' : null, ...(dockerfile ? { dockerfile } : {}) };
|
|
454
|
+
}
|
|
455
|
+
return { context: '.' };
|
|
456
|
+
}
|
|
457
|
+
/**
|
|
458
|
+
* Creates a base64-encoded ZIP archive from a file or directory, with the
|
|
459
|
+
* exclusions of createSourceArchive (which also reports what it left out).
|
|
460
|
+
*/
|
|
461
|
+
export async function createZipBase64(sourcePath, options = {}) {
|
|
462
|
+
return (await createSourceArchive(sourcePath, options)).base64;
|
|
144
463
|
}
|
|
145
464
|
//# sourceMappingURL=zip.js.map
|
package/dist/zip.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip.js","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zip.js","sourceRoot":"","sources":["../src/zip.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,39 +1,43 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@inquir/compute",
|
|
3
|
-
"version": "0.4.
|
|
4
|
-
"type": "module",
|
|
5
|
-
"description": "Workspace-first SDK for Inquir Compute assets.",
|
|
6
|
-
"exports": {
|
|
7
|
-
".": {
|
|
8
|
-
"types": "./dist/index.d.ts",
|
|
9
|
-
"default": "./dist/index.js"
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
"files": [
|
|
13
|
-
"dist"
|
|
14
|
-
],
|
|
15
|
-
"scripts": {
|
|
16
|
-
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
17
|
-
"build": "npm run clean && tsc -p tsconfig.json",
|
|
18
|
-
"prepack": "npm run build",
|
|
19
|
-
"test": "vitest run -c vitest.config.ts"
|
|
20
|
-
},
|
|
21
|
-
"publishConfig": {
|
|
22
|
-
"access": "public"
|
|
23
|
-
},
|
|
24
|
-
"engines": {
|
|
25
|
-
"node": ">=22"
|
|
26
|
-
},
|
|
27
|
-
"peerDependencies": {
|
|
28
|
-
"
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
"
|
|
38
|
-
|
|
39
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@inquir/compute",
|
|
3
|
+
"version": "0.4.4",
|
|
4
|
+
"type": "module",
|
|
5
|
+
"description": "Workspace-first SDK for Inquir Compute assets.",
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"default": "./dist/index.js"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
12
|
+
"files": [
|
|
13
|
+
"dist"
|
|
14
|
+
],
|
|
15
|
+
"scripts": {
|
|
16
|
+
"clean": "node -e \"require('node:fs').rmSync('dist',{recursive:true,force:true})\"",
|
|
17
|
+
"build": "npm run clean && tsc -p tsconfig.json",
|
|
18
|
+
"prepack": "npm run build",
|
|
19
|
+
"test": "vitest run -c vitest.config.ts"
|
|
20
|
+
},
|
|
21
|
+
"publishConfig": {
|
|
22
|
+
"access": "public"
|
|
23
|
+
},
|
|
24
|
+
"engines": {
|
|
25
|
+
"node": ">=22"
|
|
26
|
+
},
|
|
27
|
+
"peerDependencies": {
|
|
28
|
+
"tsx": "^4.19.2",
|
|
29
|
+
"zod": "^3.23.8"
|
|
30
|
+
},
|
|
31
|
+
"peerDependenciesMeta": {
|
|
32
|
+
"tsx": {
|
|
33
|
+
"optional": true
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/node": "^22.9.0",
|
|
38
|
+
"tsx": "^4.19.2",
|
|
39
|
+
"typescript": "^5.6.3",
|
|
40
|
+
"vitest": "^4.1.9",
|
|
41
|
+
"zod": "^3.23.8"
|
|
42
|
+
}
|
|
43
|
+
}
|