@limrun/api 0.37.2 → 0.39.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.
Files changed (88) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/app-archive.d.mts +1 -1
  3. package/app-archive.d.mts.map +1 -1
  4. package/app-archive.d.ts +1 -1
  5. package/app-archive.d.ts.map +1 -1
  6. package/app-archive.js +22 -10
  7. package/app-archive.js.map +1 -1
  8. package/app-archive.mjs +22 -10
  9. package/app-archive.mjs.map +1 -1
  10. package/folder-sync-watcher.d.mts +1 -1
  11. package/folder-sync-watcher.d.mts.map +1 -1
  12. package/folder-sync-watcher.d.ts +1 -1
  13. package/folder-sync-watcher.d.ts.map +1 -1
  14. package/folder-sync-watcher.js +2 -9
  15. package/folder-sync-watcher.js.map +1 -1
  16. package/folder-sync-watcher.mjs +2 -9
  17. package/folder-sync-watcher.mjs.map +1 -1
  18. package/folder-sync.d.mts +4 -4
  19. package/folder-sync.d.mts.map +1 -1
  20. package/folder-sync.d.ts +4 -4
  21. package/folder-sync.d.ts.map +1 -1
  22. package/folder-sync.js +149 -45
  23. package/folder-sync.js.map +1 -1
  24. package/folder-sync.mjs +149 -45
  25. package/folder-sync.mjs.map +1 -1
  26. package/instance-client.d.mts +10 -0
  27. package/instance-client.d.mts.map +1 -1
  28. package/instance-client.d.ts +10 -0
  29. package/instance-client.d.ts.map +1 -1
  30. package/instance-client.js +124 -0
  31. package/instance-client.js.map +1 -1
  32. package/instance-client.mjs +123 -0
  33. package/instance-client.mjs.map +1 -1
  34. package/ios-client.d.mts +0 -2
  35. package/ios-client.d.mts.map +1 -1
  36. package/ios-client.d.ts +0 -2
  37. package/ios-client.d.ts.map +1 -1
  38. package/ios-client.js +2 -3
  39. package/ios-client.js.map +1 -1
  40. package/ios-client.mjs +2 -3
  41. package/ios-client.mjs.map +1 -1
  42. package/package.json +2 -2
  43. package/rbe-workspace.d.mts.map +1 -1
  44. package/rbe-workspace.d.ts.map +1 -1
  45. package/rbe-workspace.js +0 -3
  46. package/rbe-workspace.js.map +1 -1
  47. package/rbe-workspace.mjs +0 -3
  48. package/rbe-workspace.mjs.map +1 -1
  49. package/resources/android-instances.d.mts +13 -0
  50. package/resources/android-instances.d.mts.map +1 -1
  51. package/resources/android-instances.d.ts +13 -0
  52. package/resources/android-instances.d.ts.map +1 -1
  53. package/resources/assets.d.mts +14 -9
  54. package/resources/assets.d.mts.map +1 -1
  55. package/resources/assets.d.ts +14 -9
  56. package/resources/assets.d.ts.map +1 -1
  57. package/resources/ios-instances.d.mts +15 -2
  58. package/resources/ios-instances.d.mts.map +1 -1
  59. package/resources/ios-instances.d.ts +15 -2
  60. package/resources/ios-instances.d.ts.map +1 -1
  61. package/resources/xcode-instances-helpers.d.mts +1 -3
  62. package/resources/xcode-instances-helpers.d.mts.map +1 -1
  63. package/resources/xcode-instances-helpers.d.ts +1 -3
  64. package/resources/xcode-instances-helpers.d.ts.map +1 -1
  65. package/resources/xcode-instances-helpers.js +0 -1
  66. package/resources/xcode-instances-helpers.js.map +1 -1
  67. package/resources/xcode-instances-helpers.mjs +0 -1
  68. package/resources/xcode-instances-helpers.mjs.map +1 -1
  69. package/resources/xcode-instances.d.mts +13 -0
  70. package/resources/xcode-instances.d.mts.map +1 -1
  71. package/resources/xcode-instances.d.ts +13 -0
  72. package/resources/xcode-instances.d.ts.map +1 -1
  73. package/src/app-archive.ts +22 -10
  74. package/src/folder-sync-watcher.ts +2 -8
  75. package/src/folder-sync.ts +168 -61
  76. package/src/instance-client.ts +159 -0
  77. package/src/ios-client.ts +2 -6
  78. package/src/rbe-workspace.ts +0 -3
  79. package/src/resources/android-instances.ts +14 -0
  80. package/src/resources/assets.ts +18 -12
  81. package/src/resources/ios-instances.ts +16 -2
  82. package/src/resources/xcode-instances-helpers.ts +1 -4
  83. package/src/resources/xcode-instances.ts +14 -0
  84. package/src/version.ts +1 -1
  85. package/version.d.mts +1 -1
  86. package/version.d.ts +1 -1
  87. package/version.js +1 -1
  88. package/version.mjs +1 -1
package/src/ios-client.ts CHANGED
@@ -641,7 +641,6 @@ export type InstanceClient = {
641
641
  * @param opts Optional sync options
642
642
  * @param opts.install If true, install the app after syncing. Defaults to true.
643
643
  * @param opts.basisCacheDir Directory for the client-side folder-sync cache.
644
- * @param opts.maxPatchBytes Max patch size (bytes) to send as delta before falling back to full upload. Defaults to 4MB.
645
644
  * @param opts.launchMode Launch mode after installation: "ForegroundIfRunning" (default): bring to foreground if already running, otherwise launch, "RelaunchIfRunning": kill and relaunch if already running
646
645
  * @param opts.watch If true, watch the folder and re-sync on any changes (debounced, single-flight).
647
646
  */
@@ -650,7 +649,6 @@ export type InstanceClient = {
650
649
  opts?: {
651
650
  install?: boolean;
652
651
  basisCacheDir?: string;
653
- maxPatchBytes?: number;
654
652
  launchMode?: 'ForegroundIfRunning' | 'RelaunchIfRunning';
655
653
  watch?: boolean;
656
654
  },
@@ -1939,7 +1937,6 @@ export async function createInstanceClient(options: InstanceClientOptions): Prom
1939
1937
  opts?: {
1940
1938
  install?: boolean;
1941
1939
  basisCacheDir?: string;
1942
- maxPatchBytes?: number;
1943
1940
  launchMode?: 'ForegroundIfRunning' | 'RelaunchIfRunning';
1944
1941
  watch?: boolean;
1945
1942
  },
@@ -1987,7 +1984,6 @@ export async function createInstanceClient(options: InstanceClientOptions): Prom
1987
1984
  basisCacheDir,
1988
1985
  log: syncLog,
1989
1986
  install: opts?.install ?? true,
1990
- maxPatchBytes: opts?.maxPatchBytes ?? 4 * 1024 * 1024,
1991
1987
  launchMode: opts?.launchMode ?? 'ForegroundIfRunning',
1992
1988
  watch: preparedApp.isArchive ? false : shouldWatch,
1993
1989
  };
@@ -2004,8 +2000,8 @@ export async function createInstanceClient(options: InstanceClientOptions): Prom
2004
2000
  });
2005
2001
  return {
2006
2002
  ...result,
2007
- stopWatching: () => {
2008
- archiveWatcher.close();
2003
+ stopWatching: async () => {
2004
+ await archiveWatcher.close();
2009
2005
  },
2010
2006
  };
2011
2007
  };
@@ -1,6 +1,3 @@
1
- // Mirrored between src/rbe-workspace.ts (canonical) and packages/cli/src/lib/rbe-workspace.ts
2
- // until the CLI imports it from a published @limrun/api; tests/rbe-copy-sync.test.ts keeps the
3
- // two copies byte-identical. Apply any edit to both.
4
1
  import fs from 'fs';
5
2
  import path from 'path';
6
3
 
@@ -110,6 +110,20 @@ export namespace AndroidInstance {
110
110
  signedStreamUrl?: string;
111
111
 
112
112
  targetHttpPortUrlPrefix?: string;
113
+
114
+ /**
115
+ * Machine-readable reason the instance was terminated. Always present once state
116
+ * is "terminated", never present before that. New values may be added over time,
117
+ * so treat any unrecognized value as "Unknown". Known values:
118
+ *
119
+ * - "UserRequested": terminated by a delete request to the API.
120
+ * - "InactivityTimeout": the timeout given in spec.inactivityTimeout elapsed.
121
+ * - "HardTimeout": the timeout given in spec.hardTimeout elapsed.
122
+ * - "Unknown": terminated for a cause the platform did not attribute, including
123
+ * instances that failed to get ready during creation. See errorMessage for
124
+ * details when available.
125
+ */
126
+ terminationReason?: string;
113
127
  }
114
128
 
115
129
  export namespace Status {
@@ -54,9 +54,9 @@ export class Assets extends APIResource {
54
54
  export interface Asset {
55
55
  id: string;
56
56
 
57
- name: string;
57
+ kind: 'App' | 'Keychain';
58
58
 
59
- kind: AssetKind;
59
+ name: string;
60
60
 
61
61
  /**
62
62
  * Human-readable display name for the asset. If not set, the name should be used.
@@ -74,10 +74,16 @@ export interface Asset {
74
74
  md5?: string;
75
75
 
76
76
  /**
77
- * The platform this asset is for. If not set, the asset is available for
78
- * all platforms.
77
+ * @deprecated Deprecated: alias of platform, always mirrors it. Use platform
78
+ * instead.
79
+ */
80
+ os?: 'ios' | 'android' | 'xcode';
81
+
82
+ /**
83
+ * The platform this asset is for. If not set, the asset is available for all
84
+ * platforms.
79
85
  */
80
- platform?: AssetPlatform;
86
+ platform?: 'ios' | 'android' | 'xcode';
81
87
 
82
88
  signedDownloadUrl?: string;
83
89
 
@@ -89,16 +95,14 @@ export type AssetListResponse = Array<Asset>;
89
95
  export interface AssetGetOrCreateResponse {
90
96
  id: string;
91
97
 
92
- name: string;
98
+ kind: 'App' | 'Keychain';
93
99
 
94
- kind: AssetKind;
100
+ name: string;
95
101
 
96
102
  signedDownloadUrl: string;
97
103
 
98
104
  signedUploadUrl: string;
99
105
 
100
- platform?: AssetPlatform;
101
-
102
106
  /**
103
107
  * When set, the time after which the asset is automatically deleted.
104
108
  */
@@ -108,6 +112,8 @@ export interface AssetGetOrCreateResponse {
108
112
  * Returned only if there is a corresponding file uploaded already.
109
113
  */
110
114
  md5?: string;
115
+
116
+ platform?: 'ios' | 'android' | 'xcode';
111
117
  }
112
118
 
113
119
  export interface AssetListParams {
@@ -130,7 +136,7 @@ export interface AssetListParams {
130
136
  /**
131
137
  * Filters assets by kind.
132
138
  */
133
- kindFilter?: AssetKind;
139
+ kindFilter?: 'App' | 'Keychain';
134
140
 
135
141
  /**
136
142
  * Maximum number of items to be returned. The default is 50.
@@ -171,9 +177,9 @@ export interface AssetGetParams {
171
177
  export interface AssetGetOrCreateParams {
172
178
  name: string;
173
179
 
174
- kind?: AssetKind;
180
+ kind?: 'App' | 'Keychain';
175
181
 
176
- platform?: AssetPlatform;
182
+ platform?: 'ios' | 'android' | 'xcode';
177
183
 
178
184
  /**
179
185
  * Optional time-to-live as a Go duration string (e.g. "24h"). When set, the asset
@@ -108,6 +108,20 @@ export namespace IosInstance {
108
108
  signedStreamUrl?: string;
109
109
 
110
110
  targetHttpPortUrlPrefix?: string;
111
+
112
+ /**
113
+ * Machine-readable reason the instance was terminated. Always present once state
114
+ * is "terminated", never present before that. New values may be added over time,
115
+ * so treat any unrecognized value as "Unknown". Known values:
116
+ *
117
+ * - "UserRequested": terminated by a delete request to the API.
118
+ * - "InactivityTimeout": the timeout given in spec.inactivityTimeout elapsed.
119
+ * - "HardTimeout": the timeout given in spec.hardTimeout elapsed.
120
+ * - "Unknown": terminated for a cause the platform did not attribute, including
121
+ * instances that failed to get ready during creation. See errorMessage for
122
+ * details when available.
123
+ */
124
+ terminationReason?: string;
111
125
  }
112
126
 
113
127
  export namespace Status {
@@ -217,8 +231,8 @@ export namespace IosInstanceCreateParams {
217
231
  assetName?: string;
218
232
 
219
233
  /**
220
- * Base64/base64url-encoded 32-byte key used to decrypt Keychain assets.
221
- * Required when kind is Keychain.
234
+ * Base64/base64url-encoded 32-byte key used to decrypt Keychain assets. Required
235
+ * when kind is Keychain.
222
236
  */
223
237
  encryptionKey?: string;
224
238
 
@@ -34,8 +34,6 @@ export type SyncOptions = {
34
34
  * Defaults to a temporary directory under the OS temp directory.
35
35
  */
36
36
  basisCacheDir?: string;
37
- /** Max patch size (bytes) to send as delta before falling back to full upload. */
38
- maxPatchBytes?: number;
39
37
  /** If true, install the app after syncing. Defaults to true. */
40
38
  install?: boolean;
41
39
  /**
@@ -53,7 +51,7 @@ export type SyncOptions = {
53
51
 
54
52
  export type SyncResult = {
55
53
  /** Present only when watch=true; call to stop watching */
56
- stopWatching?: () => void;
54
+ stopWatching?: () => Promise<void>;
57
55
  };
58
56
 
59
57
  export type XcodeProjectConfig = {
@@ -615,7 +613,6 @@ export class XcodeInstances extends GeneratedXcodeInstances {
615
613
  }),
616
614
  basisCacheDir,
617
615
  watch: opts?.watch ?? true,
618
- maxPatchBytes: opts?.maxPatchBytes ?? 4 * 1024 * 1024,
619
616
  launchMode: 'ForegroundIfRunning',
620
617
  log,
621
618
  ...(additionalFiles ? { additionalFiles } : {}),
@@ -85,6 +85,20 @@ export namespace XcodeInstance {
85
85
  apiUrl?: string;
86
86
 
87
87
  errorMessage?: string;
88
+
89
+ /**
90
+ * Machine-readable reason the instance was terminated. Always present once state
91
+ * is "terminated", never present before that. New values may be added over time,
92
+ * so treat any unrecognized value as "Unknown". Known values:
93
+ *
94
+ * - "UserRequested": terminated by a delete request to the API.
95
+ * - "InactivityTimeout": the timeout given in spec.inactivityTimeout elapsed.
96
+ * - "HardTimeout": the timeout given in spec.hardTimeout elapsed.
97
+ * - "Unknown": terminated for a cause the platform did not attribute, including
98
+ * instances that failed to get ready during creation. See errorMessage for
99
+ * details when available.
100
+ */
101
+ terminationReason?: string;
88
102
  }
89
103
  }
90
104
 
package/src/version.ts CHANGED
@@ -1 +1 @@
1
- export const VERSION = '0.37.2'; // x-release-please-version
1
+ export const VERSION = '0.39.0'; // x-release-please-version
package/version.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.37.2";
1
+ export declare const VERSION = "0.39.0";
2
2
  //# sourceMappingURL=version.d.mts.map
package/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const VERSION = "0.37.2";
1
+ export declare const VERSION = "0.39.0";
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.37.2'; // x-release-please-version
4
+ exports.VERSION = '0.39.0'; // x-release-please-version
5
5
  //# sourceMappingURL=version.js.map
package/version.mjs CHANGED
@@ -1,2 +1,2 @@
1
- export const VERSION = '0.37.2'; // x-release-please-version
1
+ export const VERSION = '0.39.0'; // x-release-please-version
2
2
  //# sourceMappingURL=version.mjs.map