@limrun/api 0.28.1 → 0.28.2
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/CHANGELOG.md +13 -0
- package/client.d.mts.map +1 -1
- package/client.d.ts.map +1 -1
- package/client.js +11 -0
- package/client.js.map +1 -1
- package/client.mjs +11 -0
- package/client.mjs.map +1 -1
- package/folder-sync-ignore.d.mts +2 -0
- package/folder-sync-ignore.d.mts.map +1 -1
- package/folder-sync-ignore.d.ts +2 -0
- package/folder-sync-ignore.d.ts.map +1 -1
- package/folder-sync-ignore.js +53 -2
- package/folder-sync-ignore.js.map +1 -1
- package/folder-sync-ignore.mjs +53 -2
- package/folder-sync-ignore.mjs.map +1 -1
- package/ios-client.d.mts.map +1 -1
- package/ios-client.d.ts.map +1 -1
- package/ios-client.js +21 -20
- package/ios-client.js.map +1 -1
- package/ios-client.mjs +21 -20
- package/ios-client.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/xcode-instances-helpers.d.mts +3 -0
- package/resources/xcode-instances-helpers.d.mts.map +1 -1
- package/resources/xcode-instances-helpers.d.ts +3 -0
- package/resources/xcode-instances-helpers.d.ts.map +1 -1
- package/resources/xcode-instances-helpers.js +6 -1
- package/resources/xcode-instances-helpers.js.map +1 -1
- package/resources/xcode-instances-helpers.mjs +6 -1
- package/resources/xcode-instances-helpers.mjs.map +1 -1
- package/src/client.ts +12 -0
- package/src/folder-sync-ignore.ts +64 -2
- package/src/ios-client.ts +21 -20
- package/src/resources/xcode-instances-helpers.ts +8 -2
- package/src/version.ts +1 -1
- package/version.d.mts +1 -1
- package/version.d.ts +1 -1
- package/version.js +1 -1
- package/version.mjs +1 -1
|
@@ -54,6 +54,7 @@ export class XcodeInstances extends GeneratedXcodeInstances {
|
|
|
54
54
|
install: opts?.install ?? true,
|
|
55
55
|
ignoreFn: await createIgnoreFn(localCodePath, {
|
|
56
56
|
basisCacheDir,
|
|
57
|
+
log,
|
|
57
58
|
additional: (relativePath) => {
|
|
58
59
|
if (relativePath.startsWith('build/') ||
|
|
59
60
|
relativePath.startsWith('.build/') ||
|
|
@@ -97,7 +98,7 @@ export class XcodeInstances extends GeneratedXcodeInstances {
|
|
|
97
98
|
command: 'xcodebuild',
|
|
98
99
|
...(settings && { xcodebuild: settings }),
|
|
99
100
|
};
|
|
100
|
-
if (options?.upload) {
|
|
101
|
+
if (options?.upload && 'assetName' in options.upload) {
|
|
101
102
|
const uploadName = options.upload.assetName;
|
|
102
103
|
const requestPromise = client.assets
|
|
103
104
|
.getOrCreate({ name: uploadName })
|
|
@@ -111,6 +112,10 @@ export class XcodeInstances extends GeneratedXcodeInstances {
|
|
|
111
112
|
});
|
|
112
113
|
return exec(requestPromise, { apiUrl, token, log });
|
|
113
114
|
}
|
|
115
|
+
if (options?.upload && 'signedUploadUrl' in options.upload && 'signedDownloadUrl' in options.upload) {
|
|
116
|
+
request.signedUploadUrl = options.upload.signedUploadUrl;
|
|
117
|
+
request.additionalMetadata = { signedDownloadUrl: options.upload.signedDownloadUrl };
|
|
118
|
+
}
|
|
114
119
|
return exec(request, { apiUrl, token, log });
|
|
115
120
|
},
|
|
116
121
|
async attachSimulator(simulator) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"xcode-instances-helpers.mjs","sourceRoot":"","sources":["../src/resources/xcode-instances-helpers.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"xcode-instances-helpers.mjs","sourceRoot":"","sources":["../src/resources/xcode-instances-helpers.ts"],"names":[],"mappings":"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"}
|
package/src/client.ts
CHANGED
|
@@ -198,6 +198,18 @@ export class Limrun {
|
|
|
198
198
|
this.fetch = options.fetch ?? Shims.getDefaultFetch();
|
|
199
199
|
this.#encoder = Opts.FallbackEncoder;
|
|
200
200
|
|
|
201
|
+
const customHeadersEnv = readEnv('LIMRUN_CUSTOM_HEADERS');
|
|
202
|
+
if (customHeadersEnv) {
|
|
203
|
+
const parsed: Record<string, string> = {};
|
|
204
|
+
for (const line of customHeadersEnv.split('\n')) {
|
|
205
|
+
const colon = line.indexOf(':');
|
|
206
|
+
if (colon >= 0) {
|
|
207
|
+
parsed[line.substring(0, colon).trim()] = line.substring(colon + 1).trim();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
options.defaultHeaders = { ...parsed, ...options.defaultHeaders };
|
|
211
|
+
}
|
|
212
|
+
|
|
201
213
|
this._options = options;
|
|
202
214
|
|
|
203
215
|
this.apiKey = apiKey;
|
|
@@ -1,12 +1,19 @@
|
|
|
1
1
|
import fs from 'fs';
|
|
2
2
|
import path from 'path';
|
|
3
|
+
import { execFile } from 'child_process';
|
|
4
|
+
import { promisify } from 'util';
|
|
3
5
|
import ignorePkg from 'ignore';
|
|
4
6
|
|
|
7
|
+
const execFileAsync = promisify(execFile);
|
|
8
|
+
|
|
5
9
|
export type IgnoreFn = (relativePath: string) => boolean;
|
|
6
10
|
|
|
11
|
+
export type IgnoreLogger = (level: 'debug' | 'info' | 'warn' | 'error', msg: string) => void;
|
|
12
|
+
|
|
7
13
|
export type IgnoreFnOptions = {
|
|
8
14
|
additional?: IgnoreFn;
|
|
9
15
|
basisCacheDir: string;
|
|
16
|
+
log?: IgnoreLogger;
|
|
10
17
|
};
|
|
11
18
|
|
|
12
19
|
function normalizeRelativePath(relativePath: string): string {
|
|
@@ -17,9 +24,42 @@ function normalizeRelativePath(relativePath: string): string {
|
|
|
17
24
|
.replace(/\/+/g, '/');
|
|
18
25
|
}
|
|
19
26
|
|
|
27
|
+
type GitTrackedSets = {
|
|
28
|
+
tracked: Set<string>;
|
|
29
|
+
prefixes: Set<string>;
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
async function getGitTrackedSets(rootDir: string): Promise<GitTrackedSets | null> {
|
|
33
|
+
try {
|
|
34
|
+
const { stdout } = await execFileAsync('git', ['ls-files', '-z'], {
|
|
35
|
+
cwd: rootDir,
|
|
36
|
+
maxBuffer: 256 * 1024 * 1024,
|
|
37
|
+
});
|
|
38
|
+
const tracked = new Set<string>();
|
|
39
|
+
const prefixes = new Set<string>();
|
|
40
|
+
for (const file of stdout.split('\0')) {
|
|
41
|
+
if (!file) continue;
|
|
42
|
+
tracked.add(file);
|
|
43
|
+
let idx = file.lastIndexOf('/');
|
|
44
|
+
while (idx > 0) {
|
|
45
|
+
prefixes.add(file.substring(0, idx));
|
|
46
|
+
idx = file.lastIndexOf('/', idx - 1);
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return { tracked, prefixes };
|
|
50
|
+
} catch {
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
|
|
20
55
|
export async function createIgnoreFn(rootDir: string, options: IgnoreFnOptions): Promise<IgnoreFn> {
|
|
21
56
|
const rootResolved = path.resolve(rootDir);
|
|
22
|
-
|
|
57
|
+
// ignorecase: false matches git's default semantics. The package defaults to true,
|
|
58
|
+
// which silently drops e.g. `Vendor/` when .gitignore says `vendor/` (Ruby convention).
|
|
59
|
+
// allowRelativePaths: true so a `../`-style path doesn't throw mid-sync — treat it as
|
|
60
|
+
// "not ignored" and let it through, since the cost of dropping a needed file is higher
|
|
61
|
+
// than including an unexpected one.
|
|
62
|
+
const ig = ignorePkg({ ignorecase: false, allowRelativePaths: true });
|
|
23
63
|
const gitignorePath = path.join(rootResolved, '.gitignore');
|
|
24
64
|
try {
|
|
25
65
|
const content = await fs.promises.readFile(gitignorePath, 'utf-8');
|
|
@@ -36,6 +76,11 @@ export async function createIgnoreFn(rootDir: string, options: IgnoreFnOptions):
|
|
|
36
76
|
basisCacheRelative !== '..' &&
|
|
37
77
|
!basisCacheRelative.startsWith('../');
|
|
38
78
|
|
|
79
|
+
const trackedSets = await getGitTrackedSets(rootResolved);
|
|
80
|
+
const log = options.log;
|
|
81
|
+
// Dedupe by .gitignore rule so a single bad rule doesn't spam the log per matched file.
|
|
82
|
+
const warnedRules = new Set<string>();
|
|
83
|
+
|
|
39
84
|
return (relativePath: string) => {
|
|
40
85
|
const normalized = normalizeRelativePath(relativePath);
|
|
41
86
|
if (!normalized) return false;
|
|
@@ -59,7 +104,24 @@ export async function createIgnoreFn(rootDir: string, options: IgnoreFnOptions):
|
|
|
59
104
|
return true;
|
|
60
105
|
}
|
|
61
106
|
if (withoutTrailingSlash.endsWith('.xcconfig')) return false;
|
|
62
|
-
if (ig.ignores(normalized))
|
|
107
|
+
if (ig.ignores(normalized)) {
|
|
108
|
+
if (
|
|
109
|
+
trackedSets &&
|
|
110
|
+
(trackedSets.tracked.has(withoutTrailingSlash) || trackedSets.prefixes.has(withoutTrailingSlash))
|
|
111
|
+
) {
|
|
112
|
+
const rule = ig.test(normalized).rule?.pattern ?? '<unknown>';
|
|
113
|
+
if (!warnedRules.has(rule)) {
|
|
114
|
+
warnedRules.add(rule);
|
|
115
|
+
const msg = `.gitignore rule '${rule}' is dropping '${withoutTrailingSlash}', which is tracked in git. The remote build will not see this path. Remove or scope the rule if you need it synced.`;
|
|
116
|
+
if (log) {
|
|
117
|
+
log('warn', msg);
|
|
118
|
+
} else {
|
|
119
|
+
console.warn('[FolderSync]', msg);
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
63
125
|
if (options.additional?.(normalized)) return true;
|
|
64
126
|
return false;
|
|
65
127
|
};
|
package/src/ios-client.ts
CHANGED
|
@@ -1763,31 +1763,32 @@ export async function createInstanceClient(options: InstanceClientOptions): Prom
|
|
|
1763
1763
|
const hash = crypto.createHash('sha1').update(resolvedPath).digest('hex').slice(0, 8);
|
|
1764
1764
|
const cacheKey = `limsync-cache-${folderName}-${hash}`;
|
|
1765
1765
|
const basisCacheDir = opts?.basisCacheDir ?? path.join(os.tmpdir(), cacheKey);
|
|
1766
|
+
const syncLog: FolderSyncOptions['log'] = (level, msg) => {
|
|
1767
|
+
switch (level) {
|
|
1768
|
+
case 'debug':
|
|
1769
|
+
logger.debug(msg);
|
|
1770
|
+
break;
|
|
1771
|
+
case 'info':
|
|
1772
|
+
logger.info(msg);
|
|
1773
|
+
break;
|
|
1774
|
+
case 'warn':
|
|
1775
|
+
logger.warn(msg);
|
|
1776
|
+
break;
|
|
1777
|
+
case 'error':
|
|
1778
|
+
logger.error(msg);
|
|
1779
|
+
break;
|
|
1780
|
+
default:
|
|
1781
|
+
logger.info(msg);
|
|
1782
|
+
break;
|
|
1783
|
+
}
|
|
1784
|
+
};
|
|
1766
1785
|
const folderSyncOpts: FolderSyncOptions = {
|
|
1767
1786
|
apiUrl: options.apiUrl,
|
|
1768
1787
|
token: options.token,
|
|
1769
1788
|
udid: cacheKey,
|
|
1770
|
-
ignoreFn: await createIgnoreFn(localAppBundlePath, { basisCacheDir }),
|
|
1789
|
+
ignoreFn: await createIgnoreFn(localAppBundlePath, { basisCacheDir, log: syncLog }),
|
|
1771
1790
|
basisCacheDir,
|
|
1772
|
-
log:
|
|
1773
|
-
switch (level) {
|
|
1774
|
-
case 'debug':
|
|
1775
|
-
logger.debug(msg);
|
|
1776
|
-
break;
|
|
1777
|
-
case 'info':
|
|
1778
|
-
logger.info(msg);
|
|
1779
|
-
break;
|
|
1780
|
-
case 'warn':
|
|
1781
|
-
logger.warn(msg);
|
|
1782
|
-
break;
|
|
1783
|
-
case 'error':
|
|
1784
|
-
logger.error(msg);
|
|
1785
|
-
break;
|
|
1786
|
-
default:
|
|
1787
|
-
logger.info(msg);
|
|
1788
|
-
break;
|
|
1789
|
-
}
|
|
1790
|
-
},
|
|
1791
|
+
log: syncLog,
|
|
1791
1792
|
install: opts?.install ?? true,
|
|
1792
1793
|
maxPatchBytes: opts?.maxPatchBytes ?? 4 * 1024 * 1024,
|
|
1793
1794
|
launchMode: opts?.launchMode ?? 'ForegroundIfRunning',
|
|
@@ -47,7 +47,7 @@ export type XcodeProjectConfig = {
|
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
export type XcodeBuildOptions = {
|
|
50
|
-
upload?: { assetName: string };
|
|
50
|
+
upload?: { assetName: string } | { signedUploadUrl: string; signedDownloadUrl: string };
|
|
51
51
|
};
|
|
52
52
|
|
|
53
53
|
export type XcodeClient = {
|
|
@@ -126,6 +126,7 @@ export class XcodeInstances extends GeneratedXcodeInstances {
|
|
|
126
126
|
install: opts?.install ?? true,
|
|
127
127
|
ignoreFn: await createIgnoreFn(localCodePath, {
|
|
128
128
|
basisCacheDir,
|
|
129
|
+
log,
|
|
129
130
|
additional: (relativePath: string) => {
|
|
130
131
|
if (
|
|
131
132
|
relativePath.startsWith('build/') ||
|
|
@@ -176,7 +177,7 @@ export class XcodeInstances extends GeneratedXcodeInstances {
|
|
|
176
177
|
...(settings && { xcodebuild: settings }),
|
|
177
178
|
};
|
|
178
179
|
|
|
179
|
-
if (options?.upload) {
|
|
180
|
+
if (options?.upload && 'assetName' in options.upload) {
|
|
180
181
|
const uploadName = options.upload.assetName;
|
|
181
182
|
const requestPromise = client.assets
|
|
182
183
|
.getOrCreate({ name: uploadName })
|
|
@@ -195,6 +196,11 @@ export class XcodeInstances extends GeneratedXcodeInstances {
|
|
|
195
196
|
return exec(requestPromise, { apiUrl, token, log });
|
|
196
197
|
}
|
|
197
198
|
|
|
199
|
+
if (options?.upload && 'signedUploadUrl' in options.upload && 'signedDownloadUrl' in options.upload) {
|
|
200
|
+
request.signedUploadUrl = options.upload.signedUploadUrl;
|
|
201
|
+
request.additionalMetadata = { signedDownloadUrl: options.upload.signedDownloadUrl };
|
|
202
|
+
}
|
|
203
|
+
|
|
198
204
|
return exec(request, { apiUrl, token, log });
|
|
199
205
|
},
|
|
200
206
|
|
package/src/version.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export const VERSION = '0.28.
|
|
1
|
+
export const VERSION = '0.28.2'; // x-release-please-version
|
package/version.d.mts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.28.
|
|
1
|
+
export declare const VERSION = "0.28.2";
|
|
2
2
|
//# sourceMappingURL=version.d.mts.map
|
package/version.d.ts
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const VERSION = "0.28.
|
|
1
|
+
export declare const VERSION = "0.28.2";
|
|
2
2
|
//# sourceMappingURL=version.d.ts.map
|
package/version.js
CHANGED
package/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '0.28.
|
|
1
|
+
export const VERSION = '0.28.2'; // x-release-please-version
|
|
2
2
|
//# sourceMappingURL=version.mjs.map
|