@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.
@@ -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
- const ig = ignorePkg();
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)) return true;
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: (level, msg) => {
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'; // x-release-please-version
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";
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";
1
+ export declare const VERSION = "0.28.2";
2
2
  //# sourceMappingURL=version.d.ts.map
package/version.js CHANGED
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.VERSION = void 0;
4
- exports.VERSION = '0.28.1'; // x-release-please-version
4
+ exports.VERSION = '0.28.2'; // x-release-please-version
5
5
  //# sourceMappingURL=version.js.map
package/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.28.1'; // x-release-please-version
1
+ export const VERSION = '0.28.2'; // x-release-please-version
2
2
  //# sourceMappingURL=version.mjs.map