@limrun/api 0.41.1 → 0.42.1
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 +12 -0
- package/client.d.mts +6 -2
- package/client.d.mts.map +1 -1
- package/client.d.ts +6 -2
- package/client.d.ts.map +1 -1
- package/client.js +3 -0
- package/client.js.map +1 -1
- package/client.mjs +3 -0
- package/client.mjs.map +1 -1
- package/exec-client.d.mts +34 -1
- package/exec-client.d.mts.map +1 -1
- package/exec-client.d.ts +34 -1
- package/exec-client.d.ts.map +1 -1
- package/exec-client.js +18 -4
- package/exec-client.js.map +1 -1
- package/exec-client.mjs +18 -4
- package/exec-client.mjs.map +1 -1
- package/folder-sync-ignore.d.mts +8 -0
- package/folder-sync-ignore.d.mts.map +1 -1
- package/folder-sync-ignore.d.ts +8 -0
- package/folder-sync-ignore.d.ts.map +1 -1
- package/folder-sync-ignore.js +12 -4
- package/folder-sync-ignore.js.map +1 -1
- package/folder-sync-ignore.mjs +12 -4
- package/folder-sync-ignore.mjs.map +1 -1
- package/index.d.mts +3 -2
- package/index.d.mts.map +1 -1
- package/index.d.ts +3 -2
- package/index.d.ts.map +1 -1
- package/index.js.map +1 -1
- package/index.mjs.map +1 -1
- package/package.json +1 -1
- package/resources/daemon-client-shared.d.mts +37 -0
- package/resources/daemon-client-shared.d.mts.map +1 -0
- package/resources/daemon-client-shared.d.ts +37 -0
- package/resources/daemon-client-shared.d.ts.map +1 -0
- package/resources/daemon-client-shared.js +51 -0
- package/resources/daemon-client-shared.js.map +1 -0
- package/resources/daemon-client-shared.mjs +45 -0
- package/resources/daemon-client-shared.mjs.map +1 -0
- package/resources/gradle-instances-helpers.d.mts +54 -0
- package/resources/gradle-instances-helpers.d.mts.map +1 -0
- package/resources/gradle-instances-helpers.d.ts +54 -0
- package/resources/gradle-instances-helpers.d.ts.map +1 -0
- package/resources/gradle-instances-helpers.js +98 -0
- package/resources/gradle-instances-helpers.js.map +1 -0
- package/resources/gradle-instances-helpers.mjs +94 -0
- package/resources/gradle-instances-helpers.mjs.map +1 -0
- package/resources/gradle-instances.d.mts +149 -0
- package/resources/gradle-instances.d.mts.map +1 -0
- package/resources/gradle-instances.d.ts +149 -0
- package/resources/gradle-instances.d.ts.map +1 -0
- package/resources/gradle-instances.js +41 -0
- package/resources/gradle-instances.js.map +1 -0
- package/resources/gradle-instances.mjs +37 -0
- package/resources/gradle-instances.mjs.map +1 -0
- package/resources/index.d.mts +3 -1
- package/resources/index.d.mts.map +1 -1
- package/resources/index.d.ts +3 -1
- package/resources/index.d.ts.map +1 -1
- package/resources/index.js +3 -1
- package/resources/index.js.map +1 -1
- package/resources/index.mjs +1 -0
- package/resources/index.mjs.map +1 -1
- package/resources/xcode-instances-helpers.d.mts +43 -11
- package/resources/xcode-instances-helpers.d.mts.map +1 -1
- package/resources/xcode-instances-helpers.d.ts +43 -11
- package/resources/xcode-instances-helpers.d.ts.map +1 -1
- package/resources/xcode-instances-helpers.js +18 -41
- package/resources/xcode-instances-helpers.js.map +1 -1
- package/resources/xcode-instances-helpers.mjs +16 -38
- package/resources/xcode-instances-helpers.mjs.map +1 -1
- package/src/client.ts +31 -0
- package/src/exec-client.ts +55 -5
- package/src/folder-sync-ignore.ts +22 -6
- package/src/index.ts +12 -0
- package/src/resources/daemon-client-shared.ts +71 -0
- package/src/resources/gradle-instances-helpers.ts +155 -0
- package/src/resources/gradle-instances.ts +206 -0
- package/src/resources/index.ts +15 -0
- package/src/resources/xcode-instances-helpers.ts +81 -56
- 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
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
// Helpers and platform-neutral types shared by the per-instance build-daemon
|
|
2
|
+
// clients (xcode, gradle).
|
|
3
|
+
import os from 'os';
|
|
4
|
+
import path from 'path';
|
|
5
|
+
import crypto from 'crypto';
|
|
6
|
+
/**
|
|
7
|
+
* Derives the client-side folder-sync cache location for a local project.
|
|
8
|
+
* The key format is a compatibility contract: changing it orphans every
|
|
9
|
+
* user's existing basis cache, so both daemon clients must share this one
|
|
10
|
+
* derivation.
|
|
11
|
+
*/
|
|
12
|
+
export function deriveBasisCache(localCodePath, override) {
|
|
13
|
+
const resolvedPath = path.resolve(localCodePath);
|
|
14
|
+
const folderName = path.basename(resolvedPath);
|
|
15
|
+
const hash = crypto.createHash('sha1').update(resolvedPath).digest('hex').slice(0, 8);
|
|
16
|
+
const cacheKey = `limsync-cache-${folderName}-${hash}`;
|
|
17
|
+
return { cacheKey, basisCacheDir: override ?? path.join(os.tmpdir(), cacheKey) };
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Mints presigned upload/download URLs for a named asset via assets.getOrCreate,
|
|
21
|
+
* wrapping failures with the asset name (and the original error as cause).
|
|
22
|
+
*/
|
|
23
|
+
export function mintAssetUploadUrls(assets, name, ttl) {
|
|
24
|
+
return assets.getOrCreate({ name, ...(ttl && { ttl }) }).catch((err) => {
|
|
25
|
+
const message = `Failed to create upload URL for asset '${name}': ${err instanceof Error ? err.message : err}`;
|
|
26
|
+
// @ts-ignore - not all envs have native support for cause yet
|
|
27
|
+
throw new Error(message, { cause: err });
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const logLevels = ['none', 'error', 'warn', 'info', 'debug'];
|
|
31
|
+
export function createDaemonLogger(prefix, logLevel) {
|
|
32
|
+
const threshold = logLevels.indexOf(logLevel);
|
|
33
|
+
const shouldLog = (level) => threshold >= logLevels.indexOf(level);
|
|
34
|
+
return (level, msg) => {
|
|
35
|
+
if (!shouldLog(level))
|
|
36
|
+
return;
|
|
37
|
+
if (level === 'error' || level === 'warn') {
|
|
38
|
+
console[level](prefix, msg);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
console.log(prefix, msg);
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=daemon-client-shared.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"daemon-client-shared.mjs","sourceRoot":"","sources":["../src/resources/daemon-client-shared.ts"],"names":[],"mappings":"AAAA,6EAA6E;AAC7E,2BAA2B;AAE3B,OAAO,EAAE,MAAM,IAAI,CAAC;AACpB,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,MAAM,MAAM,QAAQ,CAAC;AAI5B;;;;;GAKG;AACH,MAAM,UAAU,gBAAgB,CAC9B,aAAqB,EACrB,QAAiB;IAEjB,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IAC/C,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtF,MAAM,QAAQ,GAAG,iBAAiB,UAAU,IAAI,IAAI,EAAE,CAAC;IACvD,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC;AACnF,CAAC;AAeD;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CACjC,MAA2F,EAC3F,IAAY,EACZ,GAAY;IAEZ,OAAO,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACrE,MAAM,OAAO,GAAG,0CAA0C,IAAI,MAC5D,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,GACvC,EAAE,CAAC;QACH,8DAA8D;QAC9D,MAAM,IAAI,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC3C,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,SAAS,GAAe,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AAEzE,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,QAAkB;IACnE,MAAM,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,SAAS,GAAG,CAAC,KAAe,EAAE,EAAE,CAAC,SAAS,IAAI,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC7E,OAAO,CAAC,KAA0C,EAAE,GAAW,EAAE,EAAE;QACjE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAAE,OAAO;QAC9B,IAAI,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,MAAM,EAAE,CAAC;YAC1C,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { GradleInstances as GeneratedGradleInstances, type GradleInstance } from "./gradle-instances.mjs";
|
|
2
|
+
import { type ExecChildProcess, type GradleReactNativeConfig } from "../exec-client.mjs";
|
|
3
|
+
import { type LogLevel, type SyncResult } from "./daemon-client-shared.mjs";
|
|
4
|
+
export type GradleCreateClientParams = {
|
|
5
|
+
logLevel?: LogLevel;
|
|
6
|
+
} & ({
|
|
7
|
+
instance: GradleInstance;
|
|
8
|
+
} | {
|
|
9
|
+
apiUrl: string;
|
|
10
|
+
token: string;
|
|
11
|
+
});
|
|
12
|
+
export type GradleSyncOptions = {
|
|
13
|
+
/**
|
|
14
|
+
* Directory for the client-side folder-sync cache.
|
|
15
|
+
* Defaults to a temporary directory under the OS temp directory.
|
|
16
|
+
*/
|
|
17
|
+
basisCacheDir?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Optional predicate for ignoring files and directories during sync.
|
|
20
|
+
* Called with the relative path from the sync root (using forward slashes).
|
|
21
|
+
* For directories, the path ends with '/'.
|
|
22
|
+
* Return true to ignore, false to keep.
|
|
23
|
+
*/
|
|
24
|
+
ignore?: (relativePath: string) => boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Optional predicate for force-including paths that would otherwise be
|
|
27
|
+
* dropped. Same calling convention as `ignore`; return true to force-sync.
|
|
28
|
+
*/
|
|
29
|
+
include?: (relativePath: string) => boolean;
|
|
30
|
+
};
|
|
31
|
+
export type GradleBuildOptions = {
|
|
32
|
+
/** Gradle tasks to run. Omit for the server default (assembleDebug). */
|
|
33
|
+
tasks?: string[];
|
|
34
|
+
/** Relative path to the Gradle root when auto-discovery is ambiguous. */
|
|
35
|
+
projectPath?: string;
|
|
36
|
+
/** Upload the built APK as a named org asset, or to a presigned URL. */
|
|
37
|
+
upload?: {
|
|
38
|
+
assetName: string;
|
|
39
|
+
signedUploadUrl?: never;
|
|
40
|
+
} | {
|
|
41
|
+
signedUploadUrl: string;
|
|
42
|
+
assetName?: never;
|
|
43
|
+
};
|
|
44
|
+
/** React Native / Expo tuning. */
|
|
45
|
+
reactNative?: GradleReactNativeConfig;
|
|
46
|
+
};
|
|
47
|
+
export type GradleClient = {
|
|
48
|
+
sync(localCodePath: string, opts?: GradleSyncOptions): Promise<SyncResult>;
|
|
49
|
+
gradlebuild(options?: GradleBuildOptions): ExecChildProcess;
|
|
50
|
+
};
|
|
51
|
+
export declare class GradleInstances extends GeneratedGradleInstances {
|
|
52
|
+
createClient(params: GradleCreateClientParams): Promise<GradleClient>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=gradle-instances-helpers.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle-instances-helpers.d.mts","sourceRoot":"","sources":["../src/resources/gradle-instances-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,wBAAwB,EAAE,KAAK,cAAc,EAAE,+BAA2B;AACtG,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,uBAAuB,EAC7B,2BAAuB;AAGxB,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,UAAU,EAChB,mCAA+B;AAEhC,MAAM,MAAM,wBAAwB,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GAAG,CAC7D;IAAE,QAAQ,EAAE,cAAc,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACpC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC;IACzG,kCAAkC;IAClC,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3E,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC;CAC7D,CAAC;AAgBF,qBAAa,eAAgB,SAAQ,wBAAwB;IACrD,YAAY,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;CAiF5E"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { GradleInstances as GeneratedGradleInstances, type GradleInstance } from "./gradle-instances.js";
|
|
2
|
+
import { type ExecChildProcess, type GradleReactNativeConfig } from "../exec-client.js";
|
|
3
|
+
import { type LogLevel, type SyncResult } from "./daemon-client-shared.js";
|
|
4
|
+
export type GradleCreateClientParams = {
|
|
5
|
+
logLevel?: LogLevel;
|
|
6
|
+
} & ({
|
|
7
|
+
instance: GradleInstance;
|
|
8
|
+
} | {
|
|
9
|
+
apiUrl: string;
|
|
10
|
+
token: string;
|
|
11
|
+
});
|
|
12
|
+
export type GradleSyncOptions = {
|
|
13
|
+
/**
|
|
14
|
+
* Directory for the client-side folder-sync cache.
|
|
15
|
+
* Defaults to a temporary directory under the OS temp directory.
|
|
16
|
+
*/
|
|
17
|
+
basisCacheDir?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Optional predicate for ignoring files and directories during sync.
|
|
20
|
+
* Called with the relative path from the sync root (using forward slashes).
|
|
21
|
+
* For directories, the path ends with '/'.
|
|
22
|
+
* Return true to ignore, false to keep.
|
|
23
|
+
*/
|
|
24
|
+
ignore?: (relativePath: string) => boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Optional predicate for force-including paths that would otherwise be
|
|
27
|
+
* dropped. Same calling convention as `ignore`; return true to force-sync.
|
|
28
|
+
*/
|
|
29
|
+
include?: (relativePath: string) => boolean;
|
|
30
|
+
};
|
|
31
|
+
export type GradleBuildOptions = {
|
|
32
|
+
/** Gradle tasks to run. Omit for the server default (assembleDebug). */
|
|
33
|
+
tasks?: string[];
|
|
34
|
+
/** Relative path to the Gradle root when auto-discovery is ambiguous. */
|
|
35
|
+
projectPath?: string;
|
|
36
|
+
/** Upload the built APK as a named org asset, or to a presigned URL. */
|
|
37
|
+
upload?: {
|
|
38
|
+
assetName: string;
|
|
39
|
+
signedUploadUrl?: never;
|
|
40
|
+
} | {
|
|
41
|
+
signedUploadUrl: string;
|
|
42
|
+
assetName?: never;
|
|
43
|
+
};
|
|
44
|
+
/** React Native / Expo tuning. */
|
|
45
|
+
reactNative?: GradleReactNativeConfig;
|
|
46
|
+
};
|
|
47
|
+
export type GradleClient = {
|
|
48
|
+
sync(localCodePath: string, opts?: GradleSyncOptions): Promise<SyncResult>;
|
|
49
|
+
gradlebuild(options?: GradleBuildOptions): ExecChildProcess;
|
|
50
|
+
};
|
|
51
|
+
export declare class GradleInstances extends GeneratedGradleInstances {
|
|
52
|
+
createClient(params: GradleCreateClientParams): Promise<GradleClient>;
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=gradle-instances-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle-instances-helpers.d.ts","sourceRoot":"","sources":["../src/resources/gradle-instances-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,IAAI,wBAAwB,EAAE,KAAK,cAAc,EAAE,8BAA2B;AACtG,OAAO,EAEL,KAAK,gBAAgB,EAErB,KAAK,uBAAuB,EAC7B,0BAAuB;AAGxB,OAAO,EAIL,KAAK,QAAQ,EACb,KAAK,UAAU,EAChB,kCAA+B;AAEhC,MAAM,MAAM,wBAAwB,GAAG;IAAE,QAAQ,CAAC,EAAE,QAAQ,CAAA;CAAE,GAAG,CAC7D;IAAE,QAAQ,EAAE,cAAc,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CACpC,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;IAC3C;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC;CAC7C,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,wEAAwE;IACxE,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,yEAAyE;IACzE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,MAAM,CAAC,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,eAAe,CAAC,EAAE,KAAK,CAAA;KAAE,GAAG;QAAE,eAAe,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,KAAK,CAAA;KAAE,CAAC;IACzG,kCAAkC;IAClC,WAAW,CAAC,EAAE,uBAAuB,CAAC;CACvC,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,CAAC,aAAa,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IAC3E,WAAW,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,gBAAgB,CAAC;CAC7D,CAAC;AAgBF,qBAAa,eAAgB,SAAQ,wBAAwB;IACrD,YAAY,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;CAiF5E"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GradleInstances = void 0;
|
|
4
|
+
const gradle_instances_1 = require("./gradle-instances.js");
|
|
5
|
+
const exec_client_1 = require("../exec-client.js");
|
|
6
|
+
const folder_sync_1 = require("../folder-sync.js");
|
|
7
|
+
const folder_sync_ignore_1 = require("../folder-sync-ignore.js");
|
|
8
|
+
const daemon_client_shared_1 = require("./daemon-client-shared.js");
|
|
9
|
+
// Machine-local or regenerable files that must never reach the build
|
|
10
|
+
// sandbox: local.properties points at the developer's own SDK and would
|
|
11
|
+
// shadow the image's. Only ROOT-level cache/output dirs are defaulted;
|
|
12
|
+
// nested module build/ dirs are the project .gitignore's job (dropping any
|
|
13
|
+
// 'build' segment would silently exclude legitimate packages named build).
|
|
14
|
+
function gradleDefaultIgnore(relativePath) {
|
|
15
|
+
const trimmed = relativePath.endsWith('/') ? relativePath.slice(0, -1) : relativePath;
|
|
16
|
+
const segments = trimmed.split('/');
|
|
17
|
+
if (segments[segments.length - 1] === 'local.properties') {
|
|
18
|
+
return true;
|
|
19
|
+
}
|
|
20
|
+
return segments.length === 1 && (trimmed === '.gradle' || trimmed === '.kotlin' || trimmed === 'build');
|
|
21
|
+
}
|
|
22
|
+
class GradleInstances extends gradle_instances_1.GradleInstances {
|
|
23
|
+
async createClient(params) {
|
|
24
|
+
let apiUrl;
|
|
25
|
+
let token;
|
|
26
|
+
if ('instance' in params) {
|
|
27
|
+
if (!params.instance.status.apiUrl) {
|
|
28
|
+
throw new Error('Instance not ready: apiUrl is not available');
|
|
29
|
+
}
|
|
30
|
+
apiUrl = params.instance.status.apiUrl;
|
|
31
|
+
token = params.instance.status.token;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
apiUrl = params.apiUrl;
|
|
35
|
+
token = params.token;
|
|
36
|
+
}
|
|
37
|
+
const log = (0, daemon_client_shared_1.createDaemonLogger)('[GradleInstance]', params.logLevel ?? 'info');
|
|
38
|
+
const client = this._client;
|
|
39
|
+
return {
|
|
40
|
+
async sync(localCodePath, opts) {
|
|
41
|
+
const { cacheKey, basisCacheDir } = (0, daemon_client_shared_1.deriveBasisCache)(localCodePath, opts?.basisCacheDir);
|
|
42
|
+
const userIgnore = opts?.ignore;
|
|
43
|
+
const codeSyncOpts = {
|
|
44
|
+
apiUrl,
|
|
45
|
+
token,
|
|
46
|
+
udid: cacheKey,
|
|
47
|
+
install: false,
|
|
48
|
+
ignoreFn: await (0, folder_sync_ignore_1.createIgnoreFn)(localCodePath, {
|
|
49
|
+
basisCacheDir,
|
|
50
|
+
log,
|
|
51
|
+
xcodeDefaults: false,
|
|
52
|
+
// Honor nested module .gitignore files (app/.gitignore's /build,
|
|
53
|
+
// etc.); gradleDefaultIgnore only covers root-level build/.gradle/
|
|
54
|
+
// .kotlin, so without this a locally-built project would sync its
|
|
55
|
+
// nested build/ artifact trees.
|
|
56
|
+
nestedGitignore: true,
|
|
57
|
+
additional: userIgnore ? (p) => gradleDefaultIgnore(p) || userIgnore(p) : gradleDefaultIgnore,
|
|
58
|
+
...(opts?.include ? { include: opts.include } : {}),
|
|
59
|
+
}),
|
|
60
|
+
basisCacheDir,
|
|
61
|
+
// Gradle builds are one-shot; no dev-loop watch like xcode.
|
|
62
|
+
watch: false,
|
|
63
|
+
launchMode: 'ForegroundIfRunning',
|
|
64
|
+
log,
|
|
65
|
+
syncSymlinks: true,
|
|
66
|
+
};
|
|
67
|
+
const result = await (0, folder_sync_1.syncFolder)(localCodePath, codeSyncOpts);
|
|
68
|
+
const out = {};
|
|
69
|
+
if (result.bytesSent !== undefined) {
|
|
70
|
+
out.bytesSent = result.bytesSent;
|
|
71
|
+
}
|
|
72
|
+
return out;
|
|
73
|
+
},
|
|
74
|
+
gradlebuild(options) {
|
|
75
|
+
const request = {
|
|
76
|
+
command: 'gradlebuild',
|
|
77
|
+
...(options?.tasks?.length && { tasks: options.tasks }),
|
|
78
|
+
...(options?.projectPath && { projectPath: options.projectPath }),
|
|
79
|
+
...(options?.reactNative && { reactNative: options.reactNative }),
|
|
80
|
+
};
|
|
81
|
+
if (options?.upload && 'assetName' in options.upload) {
|
|
82
|
+
const requestPromise = (0, daemon_client_shared_1.mintAssetUploadUrls)(client.assets, options.upload.assetName).then((asset) => {
|
|
83
|
+
request.signedUploadUrl = asset.signedUploadUrl;
|
|
84
|
+
request.additionalMetadata = { signedDownloadUrl: asset.signedDownloadUrl };
|
|
85
|
+
return request;
|
|
86
|
+
});
|
|
87
|
+
return (0, exec_client_1.exec)(requestPromise, { apiUrl, token, log });
|
|
88
|
+
}
|
|
89
|
+
if (options?.upload && 'signedUploadUrl' in options.upload) {
|
|
90
|
+
request.signedUploadUrl = options.upload.signedUploadUrl;
|
|
91
|
+
}
|
|
92
|
+
return (0, exec_client_1.exec)(request, { apiUrl, token, log });
|
|
93
|
+
},
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
exports.GradleInstances = GradleInstances;
|
|
98
|
+
//# sourceMappingURL=gradle-instances-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle-instances-helpers.js","sourceRoot":"","sources":["../src/resources/gradle-instances-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { GradleInstances as GeneratedGradleInstances } from "./gradle-instances.mjs";
|
|
2
|
+
import { exec, } from "../exec-client.mjs";
|
|
3
|
+
import { syncFolder as syncFolderImpl } from "../folder-sync.mjs";
|
|
4
|
+
import { createIgnoreFn } from "../folder-sync-ignore.mjs";
|
|
5
|
+
import { createDaemonLogger, deriveBasisCache, mintAssetUploadUrls, } from "./daemon-client-shared.mjs";
|
|
6
|
+
// Machine-local or regenerable files that must never reach the build
|
|
7
|
+
// sandbox: local.properties points at the developer's own SDK and would
|
|
8
|
+
// shadow the image's. Only ROOT-level cache/output dirs are defaulted;
|
|
9
|
+
// nested module build/ dirs are the project .gitignore's job (dropping any
|
|
10
|
+
// 'build' segment would silently exclude legitimate packages named build).
|
|
11
|
+
function gradleDefaultIgnore(relativePath) {
|
|
12
|
+
const trimmed = relativePath.endsWith('/') ? relativePath.slice(0, -1) : relativePath;
|
|
13
|
+
const segments = trimmed.split('/');
|
|
14
|
+
if (segments[segments.length - 1] === 'local.properties') {
|
|
15
|
+
return true;
|
|
16
|
+
}
|
|
17
|
+
return segments.length === 1 && (trimmed === '.gradle' || trimmed === '.kotlin' || trimmed === 'build');
|
|
18
|
+
}
|
|
19
|
+
export class GradleInstances extends GeneratedGradleInstances {
|
|
20
|
+
async createClient(params) {
|
|
21
|
+
let apiUrl;
|
|
22
|
+
let token;
|
|
23
|
+
if ('instance' in params) {
|
|
24
|
+
if (!params.instance.status.apiUrl) {
|
|
25
|
+
throw new Error('Instance not ready: apiUrl is not available');
|
|
26
|
+
}
|
|
27
|
+
apiUrl = params.instance.status.apiUrl;
|
|
28
|
+
token = params.instance.status.token;
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
apiUrl = params.apiUrl;
|
|
32
|
+
token = params.token;
|
|
33
|
+
}
|
|
34
|
+
const log = createDaemonLogger('[GradleInstance]', params.logLevel ?? 'info');
|
|
35
|
+
const client = this._client;
|
|
36
|
+
return {
|
|
37
|
+
async sync(localCodePath, opts) {
|
|
38
|
+
const { cacheKey, basisCacheDir } = deriveBasisCache(localCodePath, opts?.basisCacheDir);
|
|
39
|
+
const userIgnore = opts?.ignore;
|
|
40
|
+
const codeSyncOpts = {
|
|
41
|
+
apiUrl,
|
|
42
|
+
token,
|
|
43
|
+
udid: cacheKey,
|
|
44
|
+
install: false,
|
|
45
|
+
ignoreFn: await createIgnoreFn(localCodePath, {
|
|
46
|
+
basisCacheDir,
|
|
47
|
+
log,
|
|
48
|
+
xcodeDefaults: false,
|
|
49
|
+
// Honor nested module .gitignore files (app/.gitignore's /build,
|
|
50
|
+
// etc.); gradleDefaultIgnore only covers root-level build/.gradle/
|
|
51
|
+
// .kotlin, so without this a locally-built project would sync its
|
|
52
|
+
// nested build/ artifact trees.
|
|
53
|
+
nestedGitignore: true,
|
|
54
|
+
additional: userIgnore ? (p) => gradleDefaultIgnore(p) || userIgnore(p) : gradleDefaultIgnore,
|
|
55
|
+
...(opts?.include ? { include: opts.include } : {}),
|
|
56
|
+
}),
|
|
57
|
+
basisCacheDir,
|
|
58
|
+
// Gradle builds are one-shot; no dev-loop watch like xcode.
|
|
59
|
+
watch: false,
|
|
60
|
+
launchMode: 'ForegroundIfRunning',
|
|
61
|
+
log,
|
|
62
|
+
syncSymlinks: true,
|
|
63
|
+
};
|
|
64
|
+
const result = await syncFolderImpl(localCodePath, codeSyncOpts);
|
|
65
|
+
const out = {};
|
|
66
|
+
if (result.bytesSent !== undefined) {
|
|
67
|
+
out.bytesSent = result.bytesSent;
|
|
68
|
+
}
|
|
69
|
+
return out;
|
|
70
|
+
},
|
|
71
|
+
gradlebuild(options) {
|
|
72
|
+
const request = {
|
|
73
|
+
command: 'gradlebuild',
|
|
74
|
+
...(options?.tasks?.length && { tasks: options.tasks }),
|
|
75
|
+
...(options?.projectPath && { projectPath: options.projectPath }),
|
|
76
|
+
...(options?.reactNative && { reactNative: options.reactNative }),
|
|
77
|
+
};
|
|
78
|
+
if (options?.upload && 'assetName' in options.upload) {
|
|
79
|
+
const requestPromise = mintAssetUploadUrls(client.assets, options.upload.assetName).then((asset) => {
|
|
80
|
+
request.signedUploadUrl = asset.signedUploadUrl;
|
|
81
|
+
request.additionalMetadata = { signedDownloadUrl: asset.signedDownloadUrl };
|
|
82
|
+
return request;
|
|
83
|
+
});
|
|
84
|
+
return exec(requestPromise, { apiUrl, token, log });
|
|
85
|
+
}
|
|
86
|
+
if (options?.upload && 'signedUploadUrl' in options.upload) {
|
|
87
|
+
request.signedUploadUrl = options.upload.signedUploadUrl;
|
|
88
|
+
}
|
|
89
|
+
return exec(request, { apiUrl, token, log });
|
|
90
|
+
},
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=gradle-instances-helpers.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle-instances-helpers.mjs","sourceRoot":"","sources":["../src/resources/gradle-instances-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { APIResource } from "../core/resource.mjs";
|
|
2
|
+
import { APIPromise } from "../core/api-promise.mjs";
|
|
3
|
+
import { Items, type ItemsParams, PagePromise } from "../core/pagination.mjs";
|
|
4
|
+
import { RequestOptions } from "../internal/request-options.mjs";
|
|
5
|
+
export declare class GradleInstances extends APIResource {
|
|
6
|
+
/**
|
|
7
|
+
* Create a gradle instance
|
|
8
|
+
*/
|
|
9
|
+
create(params: GradleInstanceCreateParams, options?: RequestOptions): APIPromise<GradleInstance>;
|
|
10
|
+
/**
|
|
11
|
+
* List gradle instances
|
|
12
|
+
*/
|
|
13
|
+
list(query?: GradleInstanceListParams | null | undefined, options?: RequestOptions): PagePromise<GradleInstancesItems, GradleInstance>;
|
|
14
|
+
/**
|
|
15
|
+
* Delete gradle instance with given name
|
|
16
|
+
*/
|
|
17
|
+
delete(id: string, options?: RequestOptions): APIPromise<void>;
|
|
18
|
+
/**
|
|
19
|
+
* Get gradle instance with given ID
|
|
20
|
+
*/
|
|
21
|
+
get(id: string, options?: RequestOptions): APIPromise<GradleInstance>;
|
|
22
|
+
}
|
|
23
|
+
export type GradleInstancesItems = Items<GradleInstance>;
|
|
24
|
+
export interface GradleInstance {
|
|
25
|
+
metadata: GradleInstance.Metadata;
|
|
26
|
+
spec: GradleInstance.Spec;
|
|
27
|
+
status: GradleInstance.Status;
|
|
28
|
+
}
|
|
29
|
+
export declare namespace GradleInstance {
|
|
30
|
+
interface Metadata {
|
|
31
|
+
id: string;
|
|
32
|
+
createdAt: string;
|
|
33
|
+
organizationId: string;
|
|
34
|
+
displayName?: string;
|
|
35
|
+
labels?: {
|
|
36
|
+
[key: string]: string;
|
|
37
|
+
};
|
|
38
|
+
terminatedAt?: string;
|
|
39
|
+
}
|
|
40
|
+
interface Spec {
|
|
41
|
+
inactivityTimeout: string;
|
|
42
|
+
region: string;
|
|
43
|
+
hardTimeout?: string;
|
|
44
|
+
}
|
|
45
|
+
interface Status {
|
|
46
|
+
token: string;
|
|
47
|
+
state: 'unknown' | 'creating' | 'assigned' | 'ready' | 'terminated';
|
|
48
|
+
apiUrl?: string;
|
|
49
|
+
errorMessage?: string;
|
|
50
|
+
/**
|
|
51
|
+
* Machine-readable reason the instance was terminated. Always present once state
|
|
52
|
+
* is "terminated", never present before that. New values may be added over time,
|
|
53
|
+
* so treat any unrecognized value as "Unknown". Known values:
|
|
54
|
+
*
|
|
55
|
+
* - "UserRequested": terminated by a delete request to the API.
|
|
56
|
+
* - "InactivityTimeout": the timeout given in spec.inactivityTimeout elapsed.
|
|
57
|
+
* - "HardTimeout": the timeout given in spec.hardTimeout elapsed.
|
|
58
|
+
* - "Unknown": terminated for a cause the platform did not attribute, including
|
|
59
|
+
* instances that failed to get ready during creation. See errorMessage for
|
|
60
|
+
* details when available.
|
|
61
|
+
*/
|
|
62
|
+
terminationReason?: string;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
export interface GradleInstanceCreateParams {
|
|
66
|
+
/**
|
|
67
|
+
* Query param: If there is another instance with given labels and region, return
|
|
68
|
+
* that one instead of creating a new instance.
|
|
69
|
+
*/
|
|
70
|
+
reuseIfExists?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Query param: Return after the instance is ready to connect.
|
|
73
|
+
*/
|
|
74
|
+
wait?: boolean;
|
|
75
|
+
/**
|
|
76
|
+
* Body param
|
|
77
|
+
*/
|
|
78
|
+
metadata?: GradleInstanceCreateParams.Metadata;
|
|
79
|
+
/**
|
|
80
|
+
* Body param
|
|
81
|
+
*/
|
|
82
|
+
spec?: GradleInstanceCreateParams.Spec;
|
|
83
|
+
}
|
|
84
|
+
export declare namespace GradleInstanceCreateParams {
|
|
85
|
+
interface Metadata {
|
|
86
|
+
displayName?: string;
|
|
87
|
+
labels?: {
|
|
88
|
+
[key: string]: string;
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
interface Spec {
|
|
92
|
+
clues?: Array<Spec.Clue>;
|
|
93
|
+
/**
|
|
94
|
+
* After how many minutes should the instance be terminated. Example values 1m,
|
|
95
|
+
* 10m, 3h. Default is "0" which means no hard timeout.
|
|
96
|
+
*/
|
|
97
|
+
hardTimeout?: string;
|
|
98
|
+
/**
|
|
99
|
+
* After how many minutes of inactivity should the instance be terminated. Example
|
|
100
|
+
* values 1m, 10m, 3h. Default is 5m.
|
|
101
|
+
*/
|
|
102
|
+
inactivityTimeout?: string;
|
|
103
|
+
/**
|
|
104
|
+
* Where the instance will be created. If not given, the region is decided based on
|
|
105
|
+
* scheduling clues (client IP) and availability.
|
|
106
|
+
*
|
|
107
|
+
* A region is a preference, not a hard pin: the request always overflows to every
|
|
108
|
+
* other available region, ordered by proximity, when the preferred ones are full.
|
|
109
|
+
*
|
|
110
|
+
* Accepted values:
|
|
111
|
+
*
|
|
112
|
+
* - A specific region name (e.g. "us-west1"). It is tried first, then the
|
|
113
|
+
* remaining regions in order of proximity to it. Scheduling clues (client IP)
|
|
114
|
+
* are ignored when a region is given.
|
|
115
|
+
* - A region group name (e.g. "us", "eu"). Its member regions are tried first in
|
|
116
|
+
* their listed order, then the remaining regions by proximity to the first
|
|
117
|
+
* member.
|
|
118
|
+
* - A pipe-separated, ordered list of regions (e.g. "us-east1|us-west1"). Those
|
|
119
|
+
* are tried first in the given order, then the remaining regions by proximity to
|
|
120
|
+
* the first.
|
|
121
|
+
*/
|
|
122
|
+
region?: string;
|
|
123
|
+
}
|
|
124
|
+
namespace Spec {
|
|
125
|
+
interface Clue {
|
|
126
|
+
kind: 'ClientIP';
|
|
127
|
+
clientIp?: string;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
export interface GradleInstanceListParams extends ItemsParams {
|
|
132
|
+
/**
|
|
133
|
+
* Labels filter to apply to instances to return. Expects a comma-separated list of
|
|
134
|
+
* key=value pairs (e.g., env=prod,region=us-west).
|
|
135
|
+
*/
|
|
136
|
+
labelSelector?: string;
|
|
137
|
+
/**
|
|
138
|
+
* State filter to apply to gradle instances to return. Each comma-separated state
|
|
139
|
+
* will be used as part of an OR clause, e.g. "assigned,ready" will return all
|
|
140
|
+
* instances that are either assigned or ready.
|
|
141
|
+
*
|
|
142
|
+
* Valid states: creating, assigned, ready, terminated, unknown
|
|
143
|
+
*/
|
|
144
|
+
state?: string;
|
|
145
|
+
}
|
|
146
|
+
export declare namespace GradleInstances {
|
|
147
|
+
export { type GradleInstance as GradleInstance, type GradleInstancesItems as GradleInstancesItems, type GradleInstanceCreateParams as GradleInstanceCreateParams, type GradleInstanceListParams as GradleInstanceListParams, };
|
|
148
|
+
}
|
|
149
|
+
//# sourceMappingURL=gradle-instances.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gradle-instances.d.mts","sourceRoot":"","sources":["../src/resources/gradle-instances.ts"],"names":[],"mappings":"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"}
|