@appium/coresim 1.13.0 → 1.13.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.
Files changed (47) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +1 -0
  3. package/lib/src/commands/permissions.d.ts.map +1 -1
  4. package/lib/src/commands/permissions.js +12 -246
  5. package/lib/src/commands/permissions.js.map +1 -1
  6. package/lib/src/index.d.ts +1 -1
  7. package/lib/src/index.d.ts.map +1 -1
  8. package/lib/src/index.js.map +1 -1
  9. package/lib/src/native-simctl.d.ts +27 -9
  10. package/lib/src/native-simctl.d.ts.map +1 -1
  11. package/lib/src/native-simctl.js +9 -16
  12. package/lib/src/native-simctl.js.map +1 -1
  13. package/lib/src/utils/bulletin-board-model-v2.d.ts +10 -0
  14. package/lib/src/utils/bulletin-board-model-v2.d.ts.map +1 -0
  15. package/lib/src/utils/bulletin-board-model-v2.js +73 -0
  16. package/lib/src/utils/bulletin-board-model-v2.js.map +1 -0
  17. package/lib/src/utils/bulletin-board-model-v3.d.ts +4 -0
  18. package/lib/src/utils/bulletin-board-model-v3.d.ts.map +1 -0
  19. package/lib/src/utils/bulletin-board-model-v3.js +16 -0
  20. package/lib/src/utils/bulletin-board-model-v3.js.map +1 -0
  21. package/lib/src/utils/bulletin-board-model.d.ts +19 -0
  22. package/lib/src/utils/bulletin-board-model.d.ts.map +1 -0
  23. package/lib/src/utils/bulletin-board-model.js +2 -0
  24. package/lib/src/utils/bulletin-board-model.js.map +1 -0
  25. package/lib/src/utils/bulletin-board-store.d.ts +41 -0
  26. package/lib/src/utils/bulletin-board-store.d.ts.map +1 -0
  27. package/lib/src/utils/bulletin-board-store.js +114 -0
  28. package/lib/src/utils/bulletin-board-store.js.map +1 -0
  29. package/lib/src/utils/index.d.ts +3 -0
  30. package/lib/src/utils/index.d.ts.map +1 -1
  31. package/lib/src/utils/index.js +2 -0
  32. package/lib/src/utils/index.js.map +1 -1
  33. package/lib/src/utils/springboard.d.ts +26 -0
  34. package/lib/src/utils/springboard.d.ts.map +1 -0
  35. package/lib/src/utils/springboard.js +106 -0
  36. package/lib/src/utils/springboard.js.map +1 -0
  37. package/package.json +3 -2
  38. package/prebuilds/darwin-arm64/@appium+coresim.node +0 -0
  39. package/src/commands/permissions.ts +13 -263
  40. package/src/index.ts +1 -1
  41. package/src/native-simctl.ts +45 -19
  42. package/src/utils/bulletin-board-model-v2.ts +79 -0
  43. package/src/utils/bulletin-board-model-v3.ts +16 -0
  44. package/src/utils/bulletin-board-model.ts +20 -0
  45. package/src/utils/bulletin-board-store.ts +126 -0
  46. package/src/utils/index.ts +3 -0
  47. package/src/utils/springboard.ts +119 -0
package/CHANGELOG.md CHANGED
@@ -3,6 +3,13 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [1.13.1](https://github.com/appium/appium-ios/compare/@appium/coresim@1.13.0...@appium/coresim@1.13.1) (2026-10-16)
7
+
8
+ ### Code Refactoring
9
+
10
+ * **coresim:** split notifications store handling out of permissions ([#68](https://github.com/appium/appium-ios/issues/68)) ([7808a34](https://github.com/appium/appium-ios/commit/7808a34bd5c57918414abed62279be31ac18e353))
11
+
12
+
6
13
  ## [1.13.0](https://github.com/appium/appium-ios/compare/@appium/coresim@1.12.0...@appium/coresim@1.13.0) (2026-10-15)
7
14
 
8
15
  ### Features
package/README.md CHANGED
@@ -27,6 +27,7 @@ instead of crashing.
27
27
  ```ts
28
28
  import {NativeSimctl} from '@appium/coresim';
29
29
 
30
+ // Optionally: new NativeSimctl({developerDir, deviceSetPath}), like `simctl --set <path>`
30
31
  const sim = new NativeSimctl();
31
32
 
32
33
  const devices = await sim.getDevices();
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/commands/permissions.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAiB,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAC,MAAM,aAAa,CAAC;AAchG,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,YAAY;QACpB,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;QACjB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/F,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9F,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;KAC5G;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,SAAS,GAAG,SAAS,GAAG,UAAsB,GACrD,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CAQ9B"}
1
+ {"version":3,"file":"permissions.d.ts","sourceRoot":"","sources":["../../../src/commands/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAiB,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAC,MAAM,aAAa,CAAC;AAKhG,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,YAAY;QACpB,eAAe,CACb,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,UAAU,GAC1C,OAAO,CAAC,IAAI,CAAC,CAAC;QACjB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/F,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAC9F,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;KAC5G;CACF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,EAChB,MAAM,GAAE,SAAS,GAAG,SAAS,GAAG,UAAsB,GACrD,OAAO,CAAC,IAAI,CAAC,CAcf;AAED;;;;;;;GAOG;AACH,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;;GAQG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,IAAI,EAAE,YAAY,EAClB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,oBAAoB,EAC7B,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,mBAAmB,CAAC,CAQ9B"}
@@ -1,20 +1,6 @@
1
- import { execFile } from 'node:child_process';
2
- import { randomUUID } from 'node:crypto';
3
- import { once } from 'node:events';
4
- import path from 'node:path';
5
- import { promisify } from 'node:util';
6
- import { fs, plist } from '@appium/support';
7
- import { waitForCondition } from 'asyncbox';
8
1
  import { SimDeviceState } from '../types.js';
9
- import { runCatchingAsync } from '../utils/index.js';
10
- const execFileAsync = promisify(execFile);
2
+ import { BulletinBoardStore, runCatchingAsync, SpringBoard } from '../utils/index.js';
11
3
  const NOTIFICATIONS_SERVICE = 'notifications';
12
- const SPRINGBOARD_SERVICE = 'com.apple.SpringBoard';
13
- // The `sectionInfoVersionNumber` of the BulletinBoard stores SpringBoard writes (iOS 18 and 26).
14
- const BULLETIN_BOARD_STORE_VERSION = 2;
15
- const SPRINGBOARD_RESTART_TIMEOUT_MS = 30000;
16
- // The last pending notifications update of each BulletinBoard store, see withStoreLock.
17
- const storeUpdates = new Map();
18
4
  /**
19
5
  * Grants a privacy permission to the given app on the given device, by writing directly to the
20
6
  * simulator's own TCC (privacy) database — see CLAUDE.md for why this bypasses CoreSimulator's own
@@ -128,22 +114,22 @@ function toTCCIdentifier(service) {
128
114
  return identifier;
129
115
  }
130
116
  /**
131
- * `notifications` isn't a TCC row: SpringBoard keeps it per app in its BulletinBoard store
132
- * (`Library/BulletinBoard/VersionedSectionInfo.plist`), reads that file only on its own start and
133
- * rewrites it from memory from time to time (e.g. a few seconds after it starts). So SpringBoard of
134
- * a booted device is paused while the app's section is written, then restarted with the store kept
135
- * immutable until the old process is gone. The new SpringBoard loads the change and terminates
136
- * every running app. A shut down device only gets the file, SpringBoard loads it on boot.
117
+ * `notifications` isn't a TCC row: SpringBoard keeps it per app in its BulletinBoard store, reads
118
+ * that file only on its own start and rewrites it from memory from time to time (e.g. a few seconds
119
+ * after it starts). So SpringBoard of a booted device is paused while the app's section is written,
120
+ * then restarted with the store kept immutable until the old process is gone. The new SpringBoard
121
+ * loads the change and terminates every running app. A shut down device only gets the file,
122
+ * SpringBoard loads it on boot.
137
123
  */
138
124
  async function setNotificationsAccess(udid, bundleId, status) {
139
125
  const device = await this._findDevice(udid);
140
- const storePath = path.join(device.dataPath(), 'Library', 'BulletinBoard', 'VersionedSectionInfo.plist');
141
- await withStoreLock(storePath, async () => {
126
+ const store = new BulletinBoardStore(device.dataPath(), this._options.bulletinBoardVersions);
127
+ await store.withLock(async () => {
142
128
  const springBoard = device.state() === SimDeviceState.Booted ? new SpringBoard(this, udid) : undefined;
143
129
  await springBoard?.pause();
144
130
  let written = false;
145
131
  try {
146
- written = await writeNotificationsSection(storePath, bundleId, status);
132
+ written = await store.setNotificationsStatus(bundleId, status);
147
133
  }
148
134
  finally {
149
135
  if (!written) {
@@ -153,233 +139,13 @@ async function setNotificationsAccess(udid, bundleId, status) {
153
139
  if (!springBoard || !written) {
154
140
  return;
155
141
  }
156
- await setImmutable(storePath, true);
142
+ await store.setImmutable(true);
157
143
  try {
158
144
  await springBoard.restart();
159
145
  }
160
146
  finally {
161
- await setImmutable(storePath, false);
147
+ await store.setImmutable(false);
162
148
  }
163
149
  });
164
150
  }
165
- /**
166
- * Runs `update` once every earlier update of the same store has settled: concurrent updates for
167
- * different apps would otherwise read the same store, and the last write would drop the other app's
168
- * section. Only the calls made by this process are serialized.
169
- */
170
- async function withStoreLock(storePath, update) {
171
- const result = (storeUpdates.get(storePath) ?? Promise.resolve()).then(update);
172
- const settled = result.catch(() => { });
173
- storeUpdates.set(storePath, settled);
174
- try {
175
- await result;
176
- }
177
- finally {
178
- if (storeUpdates.get(storePath) === settled) {
179
- storeUpdates.delete(storePath);
180
- }
181
- }
182
- }
183
- /**
184
- * Adds, replaces or (`unset`) removes the app's section. The store is replaced atomically, so a
185
- * failed write leaves the previous one intact. A device that has never been booted has no store yet:
186
- * it is created with just this section, and SpringBoard adds the rest on boot.
187
- *
188
- * @returns `false` if there was nothing to write (`unset` without a store)
189
- */
190
- async function writeNotificationsSection(storePath, bundleId, status) {
191
- let store;
192
- if (await fs.exists(storePath)) {
193
- store = (await plist.parsePlistFile(storePath));
194
- }
195
- else if (status === 'unset') {
196
- return false;
197
- }
198
- else {
199
- await fs.mkdir(path.dirname(storePath), { recursive: true });
200
- store = { sectionInfoVersionNumber: BULLETIN_BOARD_STORE_VERSION };
201
- }
202
- const sectionInfo = store.sectionInfo ?? {};
203
- if (status === 'unset') {
204
- delete sectionInfo[bundleId];
205
- }
206
- else {
207
- sectionInfo[bundleId] = buildNotificationsSectionInfo(bundleId, status);
208
- }
209
- store.sectionInfo = sectionInfo;
210
- // In the same directory, so that the rename is atomic.
211
- const tmpPath = `${storePath}.${randomUUID()}.tmp`;
212
- try {
213
- await fs.writeFile(tmpPath, plist.createPlist(store, false), { flag: 'wx' });
214
- await fs.rename(tmpPath, storePath);
215
- }
216
- catch (err) {
217
- await fs.unlink(tmpPath).catch(() => { });
218
- throw err;
219
- }
220
- return true;
221
- }
222
- /**
223
- * Builds the NSKeyedArchiver-encoded `BBSectionInfo` of `bundleId`, the same archive
224
- * AppleSimulatorUtils writes (SetNotificationsPermission.m). SpringBoard migrates its
225
- * `allowsNotifications` flag to the current `authorizationStatus` when it loads the section.
226
- */
227
- function buildNotificationsSectionInfo(bundleId, status) {
228
- const nil = { UID: 0 };
229
- return plist.createBinaryPlist({
230
- $version: 100000,
231
- $objects: [
232
- '$null',
233
- {
234
- suppressFromSettings: false,
235
- suppressedSettings: 0,
236
- hideWeeApp: false,
237
- sectionID: { UID: 2 },
238
- displayName: { UID: 5 },
239
- icon: nil,
240
- displaysCriticalBulletins: false,
241
- subsections: nil,
242
- sectionInfoSettings: { UID: 3 },
243
- $class: { UID: 7 },
244
- sectionCategory: 0,
245
- subsectionPriority: 0,
246
- version: { UID: 6 },
247
- managedSectionInfoSettings: nil,
248
- appName: { UID: 5 },
249
- sectionType: 0,
250
- factorySectionID: nil,
251
- dataProviderIDs: nil,
252
- subsectionID: nil,
253
- filters: nil,
254
- pathToWeeAppPluginBundle: nil,
255
- },
256
- bundleId,
257
- {
258
- pushSettings: 63,
259
- showsInNotificationCenter: true,
260
- allowsNotifications: status !== 'denied',
261
- showsOnExternalDevices: true,
262
- contentPreviewSetting: 0,
263
- carPlaySetting: 0,
264
- $class: { UID: 4 },
265
- showsInLockScreen: true,
266
- alertType: 1,
267
- criticalAlertSetting: status === 'critical' ? 2 : 0,
268
- },
269
- { $classname: 'BBSectionInfoSettings', $classes: ['BBSectionInfoSettings', 'NSObject'] },
270
- bundleId,
271
- 0,
272
- { $classname: 'BBSectionInfo', $classes: ['BBSectionInfo', 'NSObject'] },
273
- ],
274
- $archiver: 'NSKeyedArchiver',
275
- $top: { root: { UID: 1 } },
276
- });
277
- }
278
- async function setImmutable(filePath, immutable) {
279
- try {
280
- await execFileAsync('chflags', [immutable ? 'uchg' : 'nouchg', filePath]);
281
- }
282
- catch { }
283
- }
284
- /**
285
- * SpringBoard of a booted device: the process that owns the BulletinBoard store, see
286
- * setNotificationsAccess. The simulator shares the host kernel, so it is signalled directly.
287
- */
288
- class SpringBoard {
289
- simctl;
290
- udid;
291
- pausedPid;
292
- constructor(simctl, udid) {
293
- this.simctl = simctl;
294
- this.udid = udid;
295
- }
296
- /**
297
- * Pauses the running SpringBoard so that it cannot rewrite the BulletinBoard store. It can be in
298
- * the middle of a restart, hence the retries.
299
- */
300
- async pause() {
301
- try {
302
- await waitForCondition(async () => {
303
- const pid = await this.pid().catch(() => undefined);
304
- if (pid && sendSignal(pid, 'SIGSTOP')) {
305
- this.pausedPid = pid;
306
- }
307
- return Boolean(this.pausedPid);
308
- }, { waitMs: SPRINGBOARD_RESTART_TIMEOUT_MS, intervalMs: 300 });
309
- }
310
- catch { }
311
- if (!this.pausedPid) {
312
- throw new Error(`${SPRINGBOARD_SERVICE} is not running`);
313
- }
314
- }
315
- /** Lets the paused SpringBoard run again. */
316
- resume() {
317
- if (this.pausedPid) {
318
- sendSignal(this.pausedPid, 'SIGCONT');
319
- }
320
- }
321
- /**
322
- * Replaces the paused SpringBoard with a new one: asks launchd to stop it (launchd starts a new
323
- * one right away), resumes it so that it can exit, then waits for the new process.
324
- */
325
- async restart() {
326
- const previousPid = this.pausedPid;
327
- try {
328
- await this.stop();
329
- }
330
- finally {
331
- this.resume();
332
- this.pausedPid = undefined;
333
- }
334
- try {
335
- await waitForCondition(async () => {
336
- const pid = await this.pid().catch(() => undefined);
337
- return Number.isInteger(pid) && pid !== previousPid;
338
- }, { waitMs: SPRINGBOARD_RESTART_TIMEOUT_MS, intervalMs: 300 });
339
- }
340
- catch {
341
- throw new Error(`${SPRINGBOARD_SERVICE} did not restart within ${SPRINGBOARD_RESTART_TIMEOUT_MS}ms`);
342
- }
343
- }
344
- async pid() {
345
- return (await this.simctl.listProcesses(this.udid)).find(({ name }) => name === SPRINGBOARD_SERVICE)?.pid;
346
- }
347
- async stop() {
348
- // Bare name: resolved against the guest runtime's own bin dirs, like in listProcesses.
349
- const proc = await this.simctl.spawnProcess(this.udid, 'launchctl', {
350
- arguments: ['launchctl', 'stop', SPRINGBOARD_SERVICE],
351
- });
352
- let stderr = '';
353
- proc.stdout.resume();
354
- proc.stderr.on('data', (chunk) => {
355
- stderr += chunk;
356
- });
357
- const streamError = Promise.race([once(proc.stdout, 'error'), once(proc.stderr, 'error')]).then(([err]) => {
358
- throw err;
359
- });
360
- const [[code, signal]] = await Promise.race([
361
- Promise.all([once(proc, 'exit'), once(proc.stderr, 'end')]),
362
- streamError,
363
- ]);
364
- if (code !== 0) {
365
- const reason = signal ? `signal ${signal}` : `exit code ${code}`;
366
- throw new Error(`'launchctl stop ${SPRINGBOARD_SERVICE}' failed with ${reason}${stderr.trim() ? `: ${stderr.trim()}` : ''}`);
367
- }
368
- }
369
- }
370
- /**
371
- * @returns `false` if the process no longer exists
372
- */
373
- function sendSignal(pid, name) {
374
- try {
375
- process.kill(pid, name);
376
- return true;
377
- }
378
- catch (err) {
379
- if (err?.code === 'ESRCH') {
380
- return false;
381
- }
382
- throw err;
383
- }
384
- }
385
151
  //# sourceMappingURL=permissions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/commands/permissions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAC,UAAU,EAAC,MAAM,aAAa,CAAC;AACvC,OAAO,EAAC,IAAI,EAAC,MAAM,aAAa,CAAC;AACjC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAC,SAAS,EAAC,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAC,EAAE,EAAE,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAC,gBAAgB,EAAC,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAC,cAAc,EAAsD,MAAM,aAAa,CAAC;AAChG,OAAO,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AAEnD,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AAE1C,MAAM,qBAAqB,GAAG,eAAe,CAAC;AAC9C,MAAM,mBAAmB,GAAG,uBAAuB,CAAC;AACpD,iGAAiG;AACjG,MAAM,4BAA4B,GAAG,CAAC,CAAC;AACvC,MAAM,8BAA8B,GAAG,KAAK,CAAC;AAE7C,wFAAwF;AACxF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyB,CAAC;AAgBtD;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAEnC,IAAY,EACZ,OAA6B,EAC7B,QAAgB,EAChB,SAA6C,SAAS;IAEtD,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE;QACjC,IAAI,MAAM,KAAK,SAAS,IAAI,OAAO,KAAK,QAAQ,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,mEAAmE,OAAO,GAAG,CAAC,CAAC;QACjG,CAAC;QACD,IAAI,OAAO,KAAK,qBAAqB,EAAE,CAAC;YACtC,OAAO,MAAM,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QACjH,CAAC;QACD,IAAI,MAAM,KAAK,UAAU,EAAE,CAAC;YAC1B,MAAM,IAAI,KAAK,CAAC,2EAA2E,OAAO,GAAG,CAAC,CAAC;QACzG,CAAC;QACD,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;IACzF,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAEpC,IAAY,EACZ,OAA6B,EAC7B,QAAgB;IAEhB,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE;QACjC,IAAI,OAAO,KAAK,qBAAqB,EAAE,CAAC;YACtC,OAAO,MAAM,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3E,CAAC;QACD,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAClF,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAEnC,IAAY,EACZ,OAA6B,EAC7B,QAAgB;IAEhB,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE;QACjC,IAAI,OAAO,KAAK,qBAAqB,EAAE,CAAC;YACtC,OAAO,MAAM,sBAAsB,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IACjF,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAEjC,IAAY,EACZ,OAA6B,EAC7B,QAAgB;IAEhB,OAAO,gBAAgB,CAAC,KAAK,IAAI,EAAE;QACjC,IAAI,OAAO,KAAK,qBAAqB,EAAE,CAAC;YACtC,MAAM,IAAI,KAAK,CAAC,sBAAsB,qBAAqB,6BAA6B,CAAC,CAAC;QAC5F,CAAC;QACD,MAAM,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,aAAa,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;IAC/E,CAAC,CAAC,CAAC;AACL,CAAC;AAED,iGAAiG;AACjG,mGAAmG;AACnG,+FAA+F;AAC/F,mGAAmG;AACnG,MAAM,yBAAyB,GAAmE;IAChG,QAAQ,EAAE,qBAAqB;IAC/B,MAAM,EAAE,mBAAmB;IAC3B,QAAQ,EAAE,wBAAwB;IAClC,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,gBAAgB;IACxB,OAAO,EAAE,mBAAmB;IAC5B,YAAY,EAAE,yBAAyB;IACvC,UAAU,EAAE,uBAAuB;IACnC,MAAM,EAAE,mBAAmB;IAC3B,MAAM,EAAE,mBAAmB;IAC3B,SAAS,EAAE,sBAAsB;IACjC,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,8BAA8B;IACtC,YAAY,EAAE,yBAAyB;CACxC,CAAC;AAEF,SAAS,eAAe,CAAC,OAAuD;IAC9E,MAAM,UAAU,GAAG,yBAAyB,CAAC,OAAO,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CACb,IAAI,OAAO,+CAA+C,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC9G,CAAC;IACJ,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED;;;;;;;GAOG;AACH,KAAK,UAAU,sBAAsB,CAEnC,IAAY,EACZ,QAAgB,EAChB,MAAmD;IAEnD,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,eAAe,EAAE,4BAA4B,CAAC,CAAC;IACzG,MAAM,aAAa,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;QACxC,MAAM,WAAW,GAAG,MAAM,CAAC,KAAK,EAAE,KAAK,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvG,MAAM,WAAW,EAAE,KAAK,EAAE,CAAC;QAC3B,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,GAAG,MAAM,yBAAyB,CAAC,SAAS,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;QACzE,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,WAAW,EAAE,MAAM,EAAE,CAAC;YACxB,CAAC;QACH,CAAC;QACD,IAAI,CAAC,WAAW,IAAI,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,MAAM,YAAY,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;QACpC,IAAI,CAAC;YACH,MAAM,WAAW,CAAC,OAAO,EAAE,CAAC;QAC9B,CAAC;gBAAS,CAAC;YACT,MAAM,YAAY,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QACvC,CAAC;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,aAAa,CAAC,SAAiB,EAAE,MAA2B;IACzE,MAAM,MAAM,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC/E,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;IACvC,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACrC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC;IACf,CAAC;YAAS,CAAC;QACT,IAAI,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,KAAK,OAAO,EAAE,CAAC;YAC5C,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,KAAK,UAAU,yBAAyB,CACtC,SAAiB,EACjB,QAAgB,EAChB,MAAmD;IAEnD,IAAI,KAAoF,CAAC;IACzF,IAAI,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;QAC/B,KAAK,GAAG,CAAC,MAAM,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,CAAiB,CAAC;IAClE,CAAC;SAAM,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,EAAC,SAAS,EAAE,IAAI,EAAC,CAAC,CAAC;QAC3D,KAAK,GAAG,EAAC,wBAAwB,EAAE,4BAA4B,EAAC,CAAC;IACnE,CAAC;IACD,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC;IAC5C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACvB,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;IAC/B,CAAC;SAAM,CAAC;QACN,WAAW,CAAC,QAAQ,CAAC,GAAG,6BAA6B,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1E,CAAC;IACD,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;IAChC,uDAAuD;IACvD,MAAM,OAAO,GAAG,GAAG,SAAS,IAAI,UAAU,EAAE,MAAM,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;QAC3E,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QACzC,MAAM,GAAG,CAAC;IACZ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,SAAS,6BAA6B,CAAC,QAAgB,EAAE,MAAyC;IAChG,MAAM,GAAG,GAAG,EAAC,GAAG,EAAE,CAAC,EAAC,CAAC;IACrB,OAAO,KAAK,CAAC,iBAAiB,CAAC;QAC7B,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,OAAO;YACP;gBACE,oBAAoB,EAAE,KAAK;gBAC3B,kBAAkB,EAAE,CAAC;gBACrB,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBACnB,WAAW,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBACrB,IAAI,EAAE,GAAG;gBACT,yBAAyB,EAAE,KAAK;gBAChC,WAAW,EAAE,GAAG;gBAChB,mBAAmB,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBAC7B,MAAM,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBAChB,eAAe,EAAE,CAAC;gBAClB,kBAAkB,EAAE,CAAC;gBACrB,OAAO,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBACjB,0BAA0B,EAAE,GAAG;gBAC/B,OAAO,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBACjB,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,GAAG;gBACrB,eAAe,EAAE,GAAG;gBACpB,YAAY,EAAE,GAAG;gBACjB,OAAO,EAAE,GAAG;gBACZ,wBAAwB,EAAE,GAAG;aAC9B;YACD,QAAQ;YACR;gBACE,YAAY,EAAE,EAAE;gBAChB,yBAAyB,EAAE,IAAI;gBAC/B,mBAAmB,EAAE,MAAM,KAAK,QAAQ;gBACxC,sBAAsB,EAAE,IAAI;gBAC5B,qBAAqB,EAAE,CAAC;gBACxB,cAAc,EAAE,CAAC;gBACjB,MAAM,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBAChB,iBAAiB,EAAE,IAAI;gBACvB,SAAS,EAAE,CAAC;gBACZ,oBAAoB,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpD;YACD,EAAC,UAAU,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,uBAAuB,EAAE,UAAU,CAAC,EAAC;YACtF,QAAQ;YACR,CAAC;YACD,EAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,EAAC;SACvE;QACD,SAAS,EAAE,iBAAiB;QAC5B,IAAI,EAAE,EAAC,IAAI,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC,EAAC;KACvB,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,SAAkB;IAC9D,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5E,CAAC;IAAC,MAAM,CAAC,CAAA,CAAC;AACZ,CAAC;AAED;;;GAGG;AACH,MAAM,WAAW;IAII;IACA;IAJX,SAAS,CAAqB;IAEtC,YACmB,MAAoB,EACpB,IAAY;QADZ,WAAM,GAAN,MAAM,CAAc;QACpB,SAAI,GAAJ,IAAI,CAAQ;IAC5B,CAAC;IAEJ;;;OAGG;IACH,KAAK,CAAC,KAAK;QACT,IAAI,CAAC;YACH,MAAM,gBAAgB,CACpB,KAAK,IAAI,EAAE;gBACT,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACpD,IAAI,GAAG,IAAI,UAAU,CAAC,GAAG,EAAE,SAAS,CAAC,EAAE,CAAC;oBACtC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;gBACvB,CAAC;gBACD,OAAO,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACjC,CAAC,EACD,EAAC,MAAM,EAAE,8BAA8B,EAAE,UAAU,EAAE,GAAG,EAAC,CAC1D,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;QACV,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAmB,iBAAiB,CAAC,CAAC;QAC3D,CAAC;IACH,CAAC;IAED,6CAA6C;IAC7C,MAAM;QACJ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,OAAO;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC;QACnC,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QACpB,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC7B,CAAC;QACD,IAAI,CAAC;YACH,MAAM,gBAAgB,CACpB,KAAK,IAAI,EAAE;gBACT,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC;gBACpD,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,GAAG,KAAK,WAAW,CAAC;YACtD,CAAC,EACD,EAAC,MAAM,EAAE,8BAA8B,EAAE,UAAU,EAAE,GAAG,EAAC,CAC1D,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,GAAG,mBAAmB,2BAA2B,8BAA8B,IAAI,CAAC,CAAC;QACvG,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,GAAG;QACf,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE,CAAC,IAAI,KAAK,mBAAmB,CAAC,EAAE,GAAG,CAAC;IAC1G,CAAC;IAEO,KAAK,CAAC,IAAI;QAChB,uFAAuF;QACvF,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE;YAClE,SAAS,EAAE,CAAC,WAAW,EAAE,MAAM,EAAE,mBAAmB,CAAC;SACtD,CAAC,CAAC;QACH,IAAI,MAAM,GAAG,EAAE,CAAC;QAChB,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;QACrB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACvC,MAAM,IAAI,KAAK,CAAC;QAClB,CAAC,CAAC,CAAC;QACH,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,EAAE;YACxG,MAAM,GAAG,CAAC;QACZ,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;YAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;YAC3D,WAAW;SACZ,CAAC,CAAC;QACH,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACf,MAAM,MAAM,GAAG,MAAM,CAAC,CAAC,CAAC,UAAU,MAAM,EAAE,CAAC,CAAC,CAAC,aAAa,IAAI,EAAE,CAAC;YACjE,MAAM,IAAI,KAAK,CACb,mBAAmB,mBAAmB,iBAAiB,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAC5G,CAAC;QACJ,CAAC;IACH,CAAC;CACF;AAED;;GAEG;AACH,SAAS,UAAU,CAAC,GAAW,EAAE,IAAoB;IACnD,IAAI,CAAC;QACH,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,IAAI,GAAG,EAAE,IAAI,KAAK,OAAO,EAAE,CAAC;YAC1B,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/commands/permissions.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  export { NativeSimError, NativeSimUnavailableError, NativeSimDispatchError, NativeSimOperationError } from './errors.js';
2
- export { NativeSimctl } from './native-simctl.js';
2
+ export { NativeSimctl, type NativeSimctlOptions } from './native-simctl.js';
3
3
  export { SpawnedProcess } from './commands/spawn.js';
4
4
  export { VideoStream } from './commands/video-stream.js';
5
5
  export { JpegStream } from './commands/jpeg-stream.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AACvH,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AACvH,OAAO,EAAC,YAAY,EAAE,KAAK,mBAAmB,EAAC,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AACrD,YAAY,EAAC,gBAAgB,EAAC,MAAM,mBAAmB,CAAC;AACxD,YAAY,EAAC,aAAa,EAAC,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,SAAS,EACd,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,iBAAiB,EACtB,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,cAAc,EACnB,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,yBAAyB,EAC9B,KAAK,eAAe,EACpB,KAAK,qBAAqB,EAC1B,KAAK,kBAAkB,GACxB,MAAM,YAAY,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AACvH,OAAO,EAAC,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,GAuBf,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAE,yBAAyB,EAAE,sBAAsB,EAAE,uBAAuB,EAAC,MAAM,aAAa,CAAC;AACvH,OAAO,EAAC,YAAY,EAA2B,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAC,cAAc,EAAC,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAC,WAAW,EAAC,MAAM,4BAA4B,CAAC;AACvD,OAAO,EAAC,UAAU,EAAC,MAAM,2BAA2B,CAAC;AAGrD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,GAuBf,MAAM,YAAY,CAAC"}
@@ -34,6 +34,21 @@ import './commands/ui.js';
34
34
  import './commands/video-recording.js';
35
35
  import './commands/video-stream.js';
36
36
  import './commands/webinspector.js';
37
+ export interface NativeSimctlOptions {
38
+ /** Defaults to `xcode-select -p` (the active Xcode's Developer dir). */
39
+ developerDir?: string;
40
+ /**
41
+ * Defaults to the default device set (`~/Library/Developer/CoreSimulator/Devices`), same as
42
+ * `simctl --set <path>`.
43
+ */
44
+ deviceSetPath?: string;
45
+ /**
46
+ * The versions of SpringBoard's notifications store (`sectionInfoVersionNumber`) the runtimes in
47
+ * use may have, the oldest first. Defaults to all the known ones; callers that know their Xcode
48
+ * narrow it. A store of any other version is refused.
49
+ */
50
+ bulletinBoardVersions?: readonly number[];
51
+ }
37
52
  /**
38
53
  * Drives `CoreSimulator.framework` directly — no `simctl`/`xcrun` subprocess — for the operations
39
54
  * `node-simctl`'s `Simctl` class exposes over the CLI. Devices are addressed by UDID; each call
@@ -53,18 +68,21 @@ import './commands/webinspector.js';
53
68
  * textually define.
54
69
  */
55
70
  export declare class NativeSimctl {
56
- private readonly developerDir?;
57
- private readonly deviceSetPath?;
58
71
  private cachedServiceContext;
59
72
  /**
60
- * @param developerDir — defaults to `xcode-select -p` (the active Xcode's Developer dir).
61
- * @param deviceSetPath — defaults to the default device set
62
- * (`~/Library/Developer/CoreSimulator/Devices`), same as `simctl --set <path>`. Constructing a
63
- * NativeSimctl must never throw — the platform check and the native sharedServiceContext call
64
- * both happen lazily in the `_serviceContext` getter below, so only a method that actually needs
65
- * the simulator (getDevices(), createDevice(), ...) can raise.
73
+ * Constructing a NativeSimctl must never throw — the platform check and the native
74
+ * sharedServiceContext call both happen lazily in the `_serviceContext` getter below, so only a
75
+ * method that actually needs the simulator (getDevices(), createDevice(), ...) can raise.
76
+ *
77
+ * @param options — see {@link NativeSimctlOptions}.
78
+ */
79
+ constructor(options?: NativeSimctlOptions);
80
+ /**
81
+ * @deprecated Pass {@link NativeSimctlOptions} instead.
82
+ * @param developerDir — see {@link NativeSimctlOptions.developerDir}.
83
+ * @param deviceSetPath — see {@link NativeSimctlOptions.deviceSetPath}.
66
84
  */
67
- constructor(developerDir?: string | undefined, deviceSetPath?: string | undefined);
85
+ constructor(developerDir?: string, deviceSetPath?: string);
68
86
  /** @returns `CFBundleVersion` of the loaded `CoreSimulator.framework` (e.g. `"1171.6"`). */
69
87
  static frameworkVersion(): Promise<string>;
70
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"native-simctl.d.ts","sourceRoot":"","sources":["../../src/native-simctl.ts"],"names":[],"mappings":"AAKA,OASO,mBAAmB,CAAC;AAC3B,OAAuE,yBAAyB,CAAC;AACjG,OAIO,mCAAmC,CAAC;AAC3C,OAA4E,2BAA2B,CAAC;AACxG,OAA8B,2BAA2B,CAAC;AAC1D,OAAgE,wBAAwB,CAAC;AACzF,OAaO,yBAAyB,CAAC;AACjC,OAA2C,qBAAqB,CAAC;AACjE,OAAoB,oBAAoB,CAAC;AACzC,OAA2C,0BAA0B,CAAC;AACtE,OAAgF,2BAA2B,CAAC;AAC5G,OAAgD,uBAAuB,CAAC;AACxE,OAAyC,0BAA0B,CAAC;AACpE,OAA2B,qBAAqB,CAAC;AACjD,OASO,kBAAkB,CAAC;AAC1B,OAAwE,+BAA+B,CAAC;AACxG,OAA+B,4BAA4B,CAAC;AAC5D,OAAoC,4BAA4B,CAAC;AAKjE,OAAO,mBAAmB,CAAC;AAC3B,OAAO,yBAAyB,CAAC;AACjC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,wBAAwB,CAAC;AAChC,OAAO,yBAAyB,CAAC;AACjC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0BAA0B,CAAC;AAClC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,+BAA+B,CAAC;AACvC,OAAO,4BAA4B,CAAC;AACpC,OAAO,4BAA4B,CAAC;AAYpC;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IAYrB,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC;IAZjC,OAAO,CAAC,oBAAoB,CAAkD;IAE9E;;;;;;;OAOG;gBAEgB,YAAY,CAAC,EAAE,MAAM,YAAA,EACrB,aAAa,CAAC,EAAE,MAAM,YAAA;IAGzC,4FAA4F;WAC/E,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAkDjD"}
1
+ {"version":3,"file":"native-simctl.d.ts","sourceRoot":"","sources":["../../src/native-simctl.ts"],"names":[],"mappings":"AAKA,OASO,mBAAmB,CAAC;AAC3B,OAAuE,yBAAyB,CAAC;AACjG,OAIO,mCAAmC,CAAC;AAC3C,OAA4E,2BAA2B,CAAC;AACxG,OAA8B,2BAA2B,CAAC;AAC1D,OAAgE,wBAAwB,CAAC;AACzF,OAaO,yBAAyB,CAAC;AACjC,OAA2C,qBAAqB,CAAC;AACjE,OAAoB,oBAAoB,CAAC;AACzC,OAA2C,0BAA0B,CAAC;AACtE,OAAgF,2BAA2B,CAAC;AAC5G,OAAgD,uBAAuB,CAAC;AACxE,OAAyC,0BAA0B,CAAC;AACpE,OAA2B,qBAAqB,CAAC;AACjD,OASO,kBAAkB,CAAC;AAC1B,OAAwE,+BAA+B,CAAC;AACxG,OAA+B,4BAA4B,CAAC;AAC5D,OAAoC,4BAA4B,CAAC;AAYjE,OAAO,mBAAmB,CAAC;AAC3B,OAAO,yBAAyB,CAAC;AACjC,OAAO,mCAAmC,CAAC;AAC3C,OAAO,2BAA2B,CAAC;AACnC,OAAO,2BAA2B,CAAC;AACnC,OAAO,wBAAwB,CAAC;AAChC,OAAO,yBAAyB,CAAC;AACjC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,0BAA0B,CAAC;AAClC,OAAO,2BAA2B,CAAC;AACnC,OAAO,uBAAuB,CAAC;AAC/B,OAAO,0BAA0B,CAAC;AAClC,OAAO,qBAAqB,CAAC;AAC7B,OAAO,kBAAkB,CAAC;AAC1B,OAAO,+BAA+B,CAAC;AACvC,OAAO,4BAA4B,CAAC;AACpC,OAAO,4BAA4B,CAAC;AAKpC,MAAM,WAAW,mBAAmB;IAClC,wEAAwE;IACxE,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC3C;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,oBAAoB,CAAkD;IAK9E;;;;;;OAMG;gBACS,OAAO,CAAC,EAAE,mBAAmB;IACzC;;;;OAIG;gBACS,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;IAOzD,4FAA4F;WAC/E,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;CAkDjD"}
@@ -19,6 +19,7 @@ import { getAppearance, getContentSize, getIncreaseContrast, getOrientation, set
19
19
  import { isVideoRecording, startVideoRecording, stopVideoRecording } from './commands/video-recording.js';
20
20
  import { startVideoStream } from './commands/video-stream.js';
21
21
  import { getWebInspectorSocket } from './commands/webinspector.js';
22
+ import { NativeSimUnavailableError } from './errors.js';
22
23
  // Bare re-imports so `declare module './native-simctl.js'` augmentations in the command modules
23
24
  // (which add their methods to NativeSimctl's type) reach downstream consumers' emitted .d.ts
24
25
  // import graph — the named imports above alone aren't part of NativeSimctl's emitted type
@@ -41,7 +42,6 @@ import './commands/ui.js';
41
42
  import './commands/video-recording.js';
42
43
  import './commands/video-stream.js';
43
44
  import './commands/webinspector.js';
44
- import { NativeSimUnavailableError } from './errors.js';
45
45
  import { getPkgRoot, PACKAGE_NAME, runCatchingAsync } from './utils/index.js';
46
46
  const require = createRequire(import.meta.url);
47
47
  /**
@@ -63,20 +63,13 @@ const require = createRequire(import.meta.url);
63
63
  * textually define.
64
64
  */
65
65
  export class NativeSimctl {
66
- developerDir;
67
- deviceSetPath;
68
66
  cachedServiceContext;
69
- /**
70
- * @param developerDir — defaults to `xcode-select -p` (the active Xcode's Developer dir).
71
- * @param deviceSetPath — defaults to the default device set
72
- * (`~/Library/Developer/CoreSimulator/Devices`), same as `simctl --set <path>`. Constructing a
73
- * NativeSimctl must never throw — the platform check and the native sharedServiceContext call
74
- * both happen lazily in the `_serviceContext` getter below, so only a method that actually needs
75
- * the simulator (getDevices(), createDevice(), ...) can raise.
76
- */
77
- constructor(developerDir, deviceSetPath) {
78
- this.developerDir = developerDir;
79
- this.deviceSetPath = deviceSetPath;
67
+ /** @internal Read by the command mixins. */
68
+ _options;
69
+ constructor(optionsOrDeveloperDir, deviceSetPath) {
70
+ this._options = util.isPlainObject(optionsOrDeveloperDir)
71
+ ? { ...optionsOrDeveloperDir }
72
+ : { developerDir: optionsOrDeveloperDir, deviceSetPath };
80
73
  }
81
74
  /** @returns `CFBundleVersion` of the loaded `CoreSimulator.framework` (e.g. `"1171.6"`). */
82
75
  static async frameworkVersion() {
@@ -96,7 +89,7 @@ export class NativeSimctl {
96
89
  */
97
90
  async _serviceContext() {
98
91
  if (!this.cachedServiceContext) {
99
- this.cachedServiceContext = runCatchingAsync(() => loadNative().sharedServiceContext(this.developerDir ?? defaultDeveloperDir())).catch((err) => {
92
+ this.cachedServiceContext = runCatchingAsync(() => loadNative().sharedServiceContext(this._options.developerDir ?? defaultDeveloperDir())).catch((err) => {
100
93
  this.cachedServiceContext = undefined;
101
94
  throw err;
102
95
  });
@@ -106,7 +99,7 @@ export class NativeSimctl {
106
99
  /** @internal Not part of the public API — exposed only so `src/commands/*.ts` mixins can call it. */
107
100
  async _deviceSet() {
108
101
  const context = await this._serviceContext();
109
- const deviceSetPath = this.deviceSetPath;
102
+ const deviceSetPath = this._options.deviceSetPath;
110
103
  return runCatchingAsync(() => deviceSetPath ? context.deviceSetWithPath(deviceSetPath) : context.defaultDeviceSet());
111
104
  }
112
105
  /** @internal Not part of the public API — exposed only so `src/commands/*.ts` mixins can call it. */
@@ -1 +1 @@
1
- {"version":3,"file":"native-simctl.js","sourceRoot":"","sources":["../../src/native-simctl.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-simctl.js","sourceRoot":"","sources":["../../src/native-simctl.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import type { BulletinBoardModel, NotificationsStatus } from './bulletin-board-model.js';
2
+ /** The format used by SpringBoard since iOS 18. */
3
+ export declare const bulletinBoardModelV2: BulletinBoardModel;
4
+ /**
5
+ * Builds the NSKeyedArchiver-encoded `BBSectionInfo` of `bundleId`, the same archive
6
+ * AppleSimulatorUtils writes (SetNotificationsPermission.m). SpringBoard migrates its
7
+ * `allowsNotifications` flag to the current `authorizationStatus` when it loads the section.
8
+ */
9
+ export declare function buildSectionInfo(bundleId: string, status: Exclude<NotificationsStatus, 'unset'>, extraSectionKeys?: Record<string, unknown>): Buffer;
10
+ //# sourceMappingURL=bulletin-board-model-v2.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulletin-board-model-v2.d.ts","sourceRoot":"","sources":["../../../src/utils/bulletin-board-model-v2.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAC,kBAAkB,EAAE,mBAAmB,EAAC,MAAM,2BAA2B,CAAC;AAEvF,mDAAmD;AACnD,eAAO,MAAM,oBAAoB,EAAE,kBAWlC,CAAC;AAEF;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,OAAO,CAAC,mBAAmB,EAAE,OAAO,CAAC,EAC7C,gBAAgB,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GAC7C,MAAM,CAmDR"}
@@ -0,0 +1,73 @@
1
+ import { plist } from '@appium/support';
2
+ /** The format used by SpringBoard since iOS 18. */
3
+ export const bulletinBoardModelV2 = {
4
+ version: 2,
5
+ createStore: () => ({ sectionInfoVersionNumber: 2 }),
6
+ setNotificationsStatus(store, bundleId, status) {
7
+ const sectionInfo = (store.sectionInfo ??= {});
8
+ if (status === 'unset') {
9
+ delete sectionInfo[bundleId];
10
+ }
11
+ else {
12
+ sectionInfo[bundleId] = buildSectionInfo(bundleId, status);
13
+ }
14
+ },
15
+ };
16
+ /**
17
+ * Builds the NSKeyedArchiver-encoded `BBSectionInfo` of `bundleId`, the same archive
18
+ * AppleSimulatorUtils writes (SetNotificationsPermission.m). SpringBoard migrates its
19
+ * `allowsNotifications` flag to the current `authorizationStatus` when it loads the section.
20
+ */
21
+ export function buildSectionInfo(bundleId, status, extraSectionKeys = {}) {
22
+ const nil = { UID: 0 };
23
+ return plist.createBinaryPlist({
24
+ $version: 100000,
25
+ $objects: [
26
+ '$null',
27
+ {
28
+ suppressFromSettings: false,
29
+ suppressedSettings: 0,
30
+ hideWeeApp: false,
31
+ sectionID: { UID: 2 },
32
+ displayName: { UID: 5 },
33
+ icon: nil,
34
+ displaysCriticalBulletins: false,
35
+ subsections: nil,
36
+ sectionInfoSettings: { UID: 3 },
37
+ $class: { UID: 7 },
38
+ sectionCategory: 0,
39
+ subsectionPriority: 0,
40
+ version: { UID: 6 },
41
+ managedSectionInfoSettings: nil,
42
+ appName: { UID: 5 },
43
+ sectionType: 0,
44
+ factorySectionID: nil,
45
+ dataProviderIDs: nil,
46
+ subsectionID: nil,
47
+ filters: nil,
48
+ pathToWeeAppPluginBundle: nil,
49
+ ...extraSectionKeys,
50
+ },
51
+ bundleId,
52
+ {
53
+ pushSettings: 63,
54
+ showsInNotificationCenter: true,
55
+ allowsNotifications: status !== 'denied',
56
+ showsOnExternalDevices: true,
57
+ contentPreviewSetting: 0,
58
+ carPlaySetting: 0,
59
+ $class: { UID: 4 },
60
+ showsInLockScreen: true,
61
+ alertType: 1,
62
+ criticalAlertSetting: status === 'critical' ? 2 : 0,
63
+ },
64
+ { $classname: 'BBSectionInfoSettings', $classes: ['BBSectionInfoSettings', 'NSObject'] },
65
+ bundleId,
66
+ 0,
67
+ { $classname: 'BBSectionInfo', $classes: ['BBSectionInfo', 'NSObject'] },
68
+ ],
69
+ $archiver: 'NSKeyedArchiver',
70
+ $top: { root: { UID: 1 } },
71
+ });
72
+ }
73
+ //# sourceMappingURL=bulletin-board-model-v2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulletin-board-model-v2.js","sourceRoot":"","sources":["../../../src/utils/bulletin-board-model-v2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,iBAAiB,CAAC;AAItC,mDAAmD;AACnD,MAAM,CAAC,MAAM,oBAAoB,GAAuB;IACtD,OAAO,EAAE,CAAC;IACV,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,EAAC,wBAAwB,EAAE,CAAC,EAAC,CAAC;IAClD,sBAAsB,CAAC,KAAK,EAAE,QAAQ,EAAE,MAAM;QAC5C,MAAM,WAAW,GAAG,CAAC,KAAK,CAAC,WAAW,KAAK,EAAE,CAAC,CAAC;QAC/C,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACvB,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,WAAW,CAAC,QAAQ,CAAC,GAAG,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;CACF,CAAC;AAEF;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAgB,EAChB,MAA6C,EAC7C,mBAA4C,EAAE;IAE9C,MAAM,GAAG,GAAG,EAAC,GAAG,EAAE,CAAC,EAAC,CAAC;IACrB,OAAO,KAAK,CAAC,iBAAiB,CAAC;QAC7B,QAAQ,EAAE,MAAM;QAChB,QAAQ,EAAE;YACR,OAAO;YACP;gBACE,oBAAoB,EAAE,KAAK;gBAC3B,kBAAkB,EAAE,CAAC;gBACrB,UAAU,EAAE,KAAK;gBACjB,SAAS,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBACnB,WAAW,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBACrB,IAAI,EAAE,GAAG;gBACT,yBAAyB,EAAE,KAAK;gBAChC,WAAW,EAAE,GAAG;gBAChB,mBAAmB,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBAC7B,MAAM,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBAChB,eAAe,EAAE,CAAC;gBAClB,kBAAkB,EAAE,CAAC;gBACrB,OAAO,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBACjB,0BAA0B,EAAE,GAAG;gBAC/B,OAAO,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBACjB,WAAW,EAAE,CAAC;gBACd,gBAAgB,EAAE,GAAG;gBACrB,eAAe,EAAE,GAAG;gBACpB,YAAY,EAAE,GAAG;gBACjB,OAAO,EAAE,GAAG;gBACZ,wBAAwB,EAAE,GAAG;gBAC7B,GAAG,gBAAgB;aACpB;YACD,QAAQ;YACR;gBACE,YAAY,EAAE,EAAE;gBAChB,yBAAyB,EAAE,IAAI;gBAC/B,mBAAmB,EAAE,MAAM,KAAK,QAAQ;gBACxC,sBAAsB,EAAE,IAAI;gBAC5B,qBAAqB,EAAE,CAAC;gBACxB,cAAc,EAAE,CAAC;gBACjB,MAAM,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC;gBAChB,iBAAiB,EAAE,IAAI;gBACvB,SAAS,EAAE,CAAC;gBACZ,oBAAoB,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;aACpD;YACD,EAAC,UAAU,EAAE,uBAAuB,EAAE,QAAQ,EAAE,CAAC,uBAAuB,EAAE,UAAU,CAAC,EAAC;YACtF,QAAQ;YACR,CAAC;YACD,EAAC,UAAU,EAAE,eAAe,EAAE,QAAQ,EAAE,CAAC,eAAe,EAAE,UAAU,CAAC,EAAC;SACvE;QACD,SAAS,EAAE,iBAAiB;QAC5B,IAAI,EAAE,EAAC,IAAI,EAAE,EAAC,GAAG,EAAE,CAAC,EAAC,EAAC;KACvB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { BulletinBoardModel } from './bulletin-board-model.js';
2
+ /** The format used by SpringBoard since iOS 27: v2 with `isLocked` in the `BBSectionInfo`. */
3
+ export declare const bulletinBoardModelV3: BulletinBoardModel;
4
+ //# sourceMappingURL=bulletin-board-model-v3.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulletin-board-model-v3.d.ts","sourceRoot":"","sources":["../../../src/utils/bulletin-board-model-v3.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,2BAA2B,CAAC;AAElE,8FAA8F;AAC9F,eAAO,MAAM,oBAAoB,EAAE,kBAWlC,CAAC"}