react-native-tapline 1.3.1 → 1.5.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.
- package/dist/actions.d.ts +66 -1
- package/dist/actions.js +483 -51
- package/dist/actions.js.map +1 -1
- package/dist/checks.d.ts +43 -1
- package/dist/checks.js +17 -5
- package/dist/checks.js.map +1 -1
- package/dist/client.js +11 -1
- package/dist/client.js.map +1 -1
- package/dist/closest.d.ts +30 -0
- package/dist/closest.js +101 -0
- package/dist/closest.js.map +1 -0
- package/dist/commands.d.ts +9 -0
- package/dist/commands.js +135 -2
- package/dist/commands.js.map +1 -1
- package/dist/glass.d.ts +3 -0
- package/dist/glass.js +81 -0
- package/dist/glass.js.map +1 -0
- package/dist/glassclip.d.ts +18 -0
- package/dist/glassclip.js +69 -0
- package/dist/glassclip.js.map +1 -0
- package/dist/index.d.ts +5 -1
- package/dist/index.js +10 -1
- package/dist/index.js.map +1 -1
- package/dist/inspect.d.ts +7 -1
- package/dist/inspect.js +16 -3
- package/dist/inspect.js.map +1 -1
- package/dist/locale.d.ts +67 -0
- package/dist/locale.js +224 -0
- package/dist/locale.js.map +1 -0
- package/dist/logs.d.ts +2 -0
- package/dist/logs.js +7 -0
- package/dist/logs.js.map +1 -1
- package/dist/media.d.ts +71 -0
- package/dist/media.js +516 -0
- package/dist/media.js.map +1 -0
- package/dist/methods.js +6 -1
- package/dist/methods.js.map +1 -1
- package/dist/network.d.ts +20 -2
- package/dist/network.js +750 -3
- package/dist/network.js.map +1 -1
- package/dist/types.d.ts +8 -2
- package/dist/types.js.map +1 -1
- package/dist/uxcheck.d.ts +57 -0
- package/dist/uxcheck.js +222 -0
- package/dist/uxcheck.js.map +1 -0
- package/dist/wait.js +30 -3
- package/dist/wait.js.map +1 -1
- package/package.json +1 -1
package/dist/media.js
ADDED
|
@@ -0,0 +1,516 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setMediaModules = setMediaModules;
|
|
4
|
+
exports.setMediaPatience = setMediaPatience;
|
|
5
|
+
exports.addedAssetIds = addedAssetIds;
|
|
6
|
+
exports.registerTaplinePickerHook = registerTaplinePickerHook;
|
|
7
|
+
exports.resetMedia = resetMedia;
|
|
8
|
+
exports.pickerArmed = pickerArmed;
|
|
9
|
+
exports.media = media;
|
|
10
|
+
const events_1 = require("./events");
|
|
11
|
+
const types_1 = require("./types");
|
|
12
|
+
/**
|
|
13
|
+
* `media` (AGENT-TOOLS 1.12 §17.6): test pictures for an app's photo picker.
|
|
14
|
+
*
|
|
15
|
+
* - `add`: saves a picture the host sent into the phone's photo library through the app's own
|
|
16
|
+
* `expo-media-library` (else `@react-native-camera-roll/camera-roll`). The OS asks the person for access.
|
|
17
|
+
* - `remove`: deletes only the assets this session added.
|
|
18
|
+
* - `picker`: the next `expo-image-picker` call (or a registered hook) gets the pictures, without the OS picker.
|
|
19
|
+
*
|
|
20
|
+
* Every module is optional and loaded the way the SDK loads react-native-view-shot. Tapline never reads
|
|
21
|
+
* the photo library: nothing here lists, queries or fetches assets.
|
|
22
|
+
*/
|
|
23
|
+
const UNSUPPORTED_LIBRARY = "this app has no photo-library module (expo-media-library or @react-native-camera-roll/camera-roll); Tapwright's media adds pictures for any app.";
|
|
24
|
+
const UNSUPPORTED_FILES = "this app has no expo-file-system, which Tapline needs to hand a picture to the photo library (npx expo install expo-file-system).";
|
|
25
|
+
/** How long to wait for the person to answer an OS prompt before telling the agent a person must. */
|
|
26
|
+
const DEFAULT_PATIENCE_MS = 4000;
|
|
27
|
+
function fn(value) {
|
|
28
|
+
return typeof value === 'function';
|
|
29
|
+
}
|
|
30
|
+
function isExpoMediaLibrary(value) {
|
|
31
|
+
return (0, types_1.isRecord)(value) && fn(value.createAssetAsync) && fn(value.deleteAssetsAsync) && fn(value.requestPermissionsAsync) && fn(value.getPermissionsAsync);
|
|
32
|
+
}
|
|
33
|
+
function isCameraRoll(value) {
|
|
34
|
+
return (0, types_1.isRecord)(value) && fn(value.save) && fn(value.deletePhotos);
|
|
35
|
+
}
|
|
36
|
+
function isFileSystem(value) {
|
|
37
|
+
return (0, types_1.isRecord)(value) && typeof value.cacheDirectory === 'string' && fn(value.writeAsStringAsync) && fn(value.deleteAsync);
|
|
38
|
+
}
|
|
39
|
+
/** A module's exports, or its `default` when that is where an ES module put them. */
|
|
40
|
+
function unwrap(mod, check) {
|
|
41
|
+
if (check(mod))
|
|
42
|
+
return mod;
|
|
43
|
+
return (0, types_1.isRecord)(mod) && check(mod.default) ? mod.default : null;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Metro needs literal module names, and treats a require as optional only when it sits directly inside a `try`
|
|
47
|
+
* block: otherwise an app without the module fails to bundle at all (found on the phone with Wayfare, 2026-11-12).
|
|
48
|
+
*/
|
|
49
|
+
function load(name) {
|
|
50
|
+
switch (name) {
|
|
51
|
+
case 'expo-media-library':
|
|
52
|
+
try {
|
|
53
|
+
return require('expo-media-library');
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
return null;
|
|
57
|
+
}
|
|
58
|
+
case '@react-native-camera-roll/camera-roll':
|
|
59
|
+
try {
|
|
60
|
+
return require('@react-native-camera-roll/camera-roll');
|
|
61
|
+
}
|
|
62
|
+
catch {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
case 'expo-file-system/legacy':
|
|
66
|
+
try {
|
|
67
|
+
return require('expo-file-system/legacy');
|
|
68
|
+
}
|
|
69
|
+
catch {
|
|
70
|
+
return null;
|
|
71
|
+
}
|
|
72
|
+
case 'expo-file-system':
|
|
73
|
+
try {
|
|
74
|
+
return require('expo-file-system');
|
|
75
|
+
}
|
|
76
|
+
catch {
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
default:
|
|
80
|
+
try {
|
|
81
|
+
return require('expo-image-picker');
|
|
82
|
+
}
|
|
83
|
+
catch {
|
|
84
|
+
return null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
function tryLoad(name, check) {
|
|
89
|
+
try {
|
|
90
|
+
return unwrap(load(name), check);
|
|
91
|
+
}
|
|
92
|
+
catch {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
let override;
|
|
97
|
+
let loaded;
|
|
98
|
+
function modules() {
|
|
99
|
+
if (override !== undefined)
|
|
100
|
+
return override;
|
|
101
|
+
if (loaded === undefined) {
|
|
102
|
+
const cameraRollRaw = tryLoadRaw('@react-native-camera-roll/camera-roll');
|
|
103
|
+
const cameraRollModule = unwrap(cameraRollRaw, isCameraRoll) ?? ((0, types_1.isRecord)(cameraRollRaw) ? unwrap(cameraRollRaw.CameraRoll, isCameraRoll) : null);
|
|
104
|
+
const picker = tryLoadRaw('expo-image-picker');
|
|
105
|
+
loaded = {
|
|
106
|
+
expo: tryLoad('expo-media-library', isExpoMediaLibrary),
|
|
107
|
+
cameraRoll: cameraRollModule,
|
|
108
|
+
// SDK 54 moved the classic API to /legacy; older SDKs have it at the top.
|
|
109
|
+
fileSystem: tryLoad('expo-file-system/legacy', isFileSystem) ?? tryLoad('expo-file-system', isFileSystem),
|
|
110
|
+
imagePicker: (0, types_1.isRecord)(picker) ? picker : null,
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
return loaded;
|
|
114
|
+
}
|
|
115
|
+
function tryLoadRaw(name) {
|
|
116
|
+
try {
|
|
117
|
+
return load(name);
|
|
118
|
+
}
|
|
119
|
+
catch {
|
|
120
|
+
return null;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/** Replace the optional modules (tests); undefined restores the lookup. */
|
|
124
|
+
function setMediaModules(next) {
|
|
125
|
+
override = next;
|
|
126
|
+
loaded = undefined;
|
|
127
|
+
resetMedia();
|
|
128
|
+
addedIds.length = 0;
|
|
129
|
+
permissionPending = null;
|
|
130
|
+
pendingSaves.clear();
|
|
131
|
+
abandonedSaves.clear();
|
|
132
|
+
completedSaves.clear();
|
|
133
|
+
lateSaved.length = 0;
|
|
134
|
+
}
|
|
135
|
+
let patienceMs = DEFAULT_PATIENCE_MS;
|
|
136
|
+
/** How long an OS prompt is waited for before the answer says a person must (tests shorten it). */
|
|
137
|
+
function setMediaPatience(ms) {
|
|
138
|
+
patienceMs = ms;
|
|
139
|
+
}
|
|
140
|
+
// ---- state kept in memory for this session ----------------------------------
|
|
141
|
+
/**
|
|
142
|
+
* Asset ids added, in order, each with the host that added it (its `owner`, one per host process): `remove` only
|
|
143
|
+
* deletes its own host's pictures, never an earlier host's that the app still remembers. Never written anywhere.
|
|
144
|
+
*/
|
|
145
|
+
const addedIds = [];
|
|
146
|
+
let permissionPending = null;
|
|
147
|
+
/** A camera-roll save the person has not answered yet, by host and picture name, so a retry waits for it instead of saving twice. */
|
|
148
|
+
const pendingSaves = new Map();
|
|
149
|
+
/** Names of saves whose caller was already told `needsPerson`: if one completes, nobody is waiting for its id. */
|
|
150
|
+
const abandonedSaves = new Set();
|
|
151
|
+
/** The id of an abandoned save that completed, by host and picture name, until a retry collects it (so a retry saves nothing twice). */
|
|
152
|
+
const completedSaves = new Map();
|
|
153
|
+
/**
|
|
154
|
+
* Ids of abandoned saves that completed and that no answer has carried to the host yet. The next `add` answer
|
|
155
|
+
* reports them (`late`), so the host can remember them for `remove` after a JS reload.
|
|
156
|
+
*/
|
|
157
|
+
const lateSaved = [];
|
|
158
|
+
/** A retry got this save's id itself: it is neither late nor waiting to be collected. */
|
|
159
|
+
function collected(name, id) {
|
|
160
|
+
if (completedSaves.get(name) === id)
|
|
161
|
+
completedSaves.delete(name);
|
|
162
|
+
const at = lateSaved.findIndex((late) => late.id === id);
|
|
163
|
+
if (at >= 0)
|
|
164
|
+
lateSaved.splice(at, 1);
|
|
165
|
+
}
|
|
166
|
+
/** The late ids of this host, taken out of the list. */
|
|
167
|
+
function takeLate(owner) {
|
|
168
|
+
const mine = lateSaved.filter((late) => late.owner === owner).map((late) => late.id);
|
|
169
|
+
for (let i = lateSaved.length - 1; i >= 0; i--)
|
|
170
|
+
if (lateSaved[i]?.owner === owner)
|
|
171
|
+
lateSaved.splice(i, 1);
|
|
172
|
+
return mine;
|
|
173
|
+
}
|
|
174
|
+
/** The asset ids this session has added and not yet removed. */
|
|
175
|
+
function addedAssetIds() {
|
|
176
|
+
return addedIds.map((added) => added.id);
|
|
177
|
+
}
|
|
178
|
+
/** The host that asks: its `owner` token, or '' from a host that sends none. */
|
|
179
|
+
function ownerOf(params) {
|
|
180
|
+
return typeof params.owner === 'string' ? params.owner : '';
|
|
181
|
+
}
|
|
182
|
+
/** Waits for `promise` for `ms`; `{done:false}` when it is still waiting (it carries on in the background). */
|
|
183
|
+
function within(promise, ms) {
|
|
184
|
+
return new Promise((resolve, reject) => {
|
|
185
|
+
const timer = setTimeout(() => resolve({ done: false }), ms);
|
|
186
|
+
promise.then((value) => {
|
|
187
|
+
clearTimeout(timer);
|
|
188
|
+
resolve({ done: true, value });
|
|
189
|
+
}, (error) => {
|
|
190
|
+
clearTimeout(timer);
|
|
191
|
+
reject(error);
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
}
|
|
195
|
+
function badParams(message) {
|
|
196
|
+
return new types_1.TaplineError('bad_params', message);
|
|
197
|
+
}
|
|
198
|
+
function paramString(params, key) {
|
|
199
|
+
const value = params[key];
|
|
200
|
+
if (typeof value !== 'string' || value === '')
|
|
201
|
+
throw badParams(`${key} must be a non-empty string`);
|
|
202
|
+
return value;
|
|
203
|
+
}
|
|
204
|
+
function paramNumber(params, key) {
|
|
205
|
+
const value = params[key];
|
|
206
|
+
return typeof value === 'number' && Number.isFinite(value) && value > 0 ? value : undefined;
|
|
207
|
+
}
|
|
208
|
+
function extensionOf(mime) {
|
|
209
|
+
return mime === 'image/png' ? 'png' : 'jpg';
|
|
210
|
+
}
|
|
211
|
+
function isGranted(result) {
|
|
212
|
+
return (0, types_1.isRecord)(result) && (result.granted === true || result.status === 'granted');
|
|
213
|
+
}
|
|
214
|
+
/** expo-media-library: write-only access, asked once. `granted`, `denied`, or `pending` while the person has not answered. */
|
|
215
|
+
async function expoAccess(lib) {
|
|
216
|
+
const current = await lib.getPermissionsAsync(true);
|
|
217
|
+
if (isGranted(current))
|
|
218
|
+
return 'granted';
|
|
219
|
+
if ((0, types_1.isRecord)(current) && current.canAskAgain === false)
|
|
220
|
+
return 'denied';
|
|
221
|
+
permissionPending ??= lib.requestPermissionsAsync(true).finally(() => {
|
|
222
|
+
permissionPending = null;
|
|
223
|
+
});
|
|
224
|
+
const waited = await within(permissionPending, patienceMs);
|
|
225
|
+
if (!waited.done)
|
|
226
|
+
return 'pending';
|
|
227
|
+
return isGranted(waited.value) ? 'granted' : 'denied';
|
|
228
|
+
}
|
|
229
|
+
function assetIdOf(asset) {
|
|
230
|
+
if ((0, types_1.isRecord)(asset) && typeof asset.id === 'string' && asset.id !== '')
|
|
231
|
+
return asset.id;
|
|
232
|
+
throw new types_1.TaplineError('internal', 'the photo library did not return the new picture\'s id');
|
|
233
|
+
}
|
|
234
|
+
async function writeTemp(files, mime, data) {
|
|
235
|
+
const uri = `${files.cacheDirectory}tapline-media-${Date.now()}-${Math.floor(Math.random() * 1e6)}.${extensionOf(mime)}`;
|
|
236
|
+
await files.writeAsStringAsync(uri, data, { encoding: 'base64' });
|
|
237
|
+
return uri;
|
|
238
|
+
}
|
|
239
|
+
async function addPicture(params) {
|
|
240
|
+
const outcome = await addOne(params);
|
|
241
|
+
const late = takeLate(ownerOf(params)).filter((id) => id !== outcome.id);
|
|
242
|
+
return late.length > 0 ? { ...outcome, late } : outcome;
|
|
243
|
+
}
|
|
244
|
+
async function addOne(params) {
|
|
245
|
+
const name = paramString(params, 'name');
|
|
246
|
+
const mime = paramString(params, 'mime');
|
|
247
|
+
const data = paramString(params, 'data');
|
|
248
|
+
const { expo, cameraRoll, fileSystem } = modules();
|
|
249
|
+
if (expo === null && cameraRoll === null)
|
|
250
|
+
throw new types_1.TaplineError('unsupported', UNSUPPORTED_LIBRARY);
|
|
251
|
+
if (fileSystem === null)
|
|
252
|
+
throw new types_1.TaplineError('unsupported', UNSUPPORTED_FILES);
|
|
253
|
+
if (expo !== null) {
|
|
254
|
+
const access = await expoAccess(expo);
|
|
255
|
+
if (access === 'pending')
|
|
256
|
+
return { needsPerson: true };
|
|
257
|
+
if (access === 'denied') {
|
|
258
|
+
throw new types_1.TaplineError('not_actionable', 'the person did not allow adding photos (Settings > the app > Photos); ask your user to allow it, then call media again.');
|
|
259
|
+
}
|
|
260
|
+
const uri = await writeTemp(fileSystem, mime, data);
|
|
261
|
+
try {
|
|
262
|
+
const id = assetIdOf(await expo.createAssetAsync(uri));
|
|
263
|
+
addedIds.push({ id, owner: ownerOf(params) });
|
|
264
|
+
return { id };
|
|
265
|
+
}
|
|
266
|
+
finally {
|
|
267
|
+
await fileSystem.deleteAsync(uri, { idempotent: true }).catch(() => undefined);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
// @react-native-camera-roll: iOS asks for add-only access by itself when the save starts.
|
|
271
|
+
const library = cameraRoll;
|
|
272
|
+
if (library === null)
|
|
273
|
+
throw new types_1.TaplineError('unsupported', UNSUPPORTED_LIBRARY);
|
|
274
|
+
// One host's save is never another's: a restarted host adding the same name saves its own picture.
|
|
275
|
+
const key = `${ownerOf(params)}\u0000${name}`;
|
|
276
|
+
const finished = completedSaves.get(key);
|
|
277
|
+
if (finished !== undefined) {
|
|
278
|
+
collected(key, finished);
|
|
279
|
+
return { id: finished };
|
|
280
|
+
}
|
|
281
|
+
let saving = pendingSaves.get(key);
|
|
282
|
+
let temp = null;
|
|
283
|
+
if (saving === undefined) {
|
|
284
|
+
const uri = await writeTemp(fileSystem, mime, data);
|
|
285
|
+
temp = uri;
|
|
286
|
+
saving = library.save(uri, { type: 'photo' }).then((saved) => {
|
|
287
|
+
if (typeof saved !== 'string' || saved === '')
|
|
288
|
+
throw new types_1.TaplineError('internal', 'the photo library did not return the new picture\'s id');
|
|
289
|
+
return saved;
|
|
290
|
+
});
|
|
291
|
+
pendingSaves.set(key, saving);
|
|
292
|
+
const cleanup = () => {
|
|
293
|
+
pendingSaves.delete(key);
|
|
294
|
+
if (temp !== null)
|
|
295
|
+
void fileSystem.deleteAsync(temp, { idempotent: true }).catch(() => undefined);
|
|
296
|
+
};
|
|
297
|
+
saving.then((id) => {
|
|
298
|
+
cleanup();
|
|
299
|
+
const owner = ownerOf(params);
|
|
300
|
+
addedIds.push({ id, owner });
|
|
301
|
+
if (abandonedSaves.delete(key)) {
|
|
302
|
+
completedSaves.set(key, id);
|
|
303
|
+
lateSaved.push({ id, owner });
|
|
304
|
+
}
|
|
305
|
+
}, () => {
|
|
306
|
+
cleanup();
|
|
307
|
+
abandonedSaves.delete(key);
|
|
308
|
+
});
|
|
309
|
+
}
|
|
310
|
+
const waited = await within(saving, patienceMs);
|
|
311
|
+
if (!waited.done) {
|
|
312
|
+
abandonedSaves.add(key);
|
|
313
|
+
return { needsPerson: true };
|
|
314
|
+
}
|
|
315
|
+
collected(key, waited.value);
|
|
316
|
+
return { id: waited.value };
|
|
317
|
+
}
|
|
318
|
+
function forget(ids) {
|
|
319
|
+
for (const id of ids) {
|
|
320
|
+
const at = addedIds.findIndex((added) => added.id === id);
|
|
321
|
+
if (at >= 0)
|
|
322
|
+
addedIds.splice(at, 1);
|
|
323
|
+
// A removed picture is no longer a finished save: adding the same name again must save a new one.
|
|
324
|
+
for (const [key, saved] of completedSaves)
|
|
325
|
+
if (saved === id)
|
|
326
|
+
completedSaves.delete(key);
|
|
327
|
+
for (let i = lateSaved.length - 1; i >= 0; i--)
|
|
328
|
+
if (lateSaved[i]?.id === id)
|
|
329
|
+
lateSaved.splice(i, 1);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
async function removePictures(params) {
|
|
333
|
+
const { expo, cameraRoll } = modules();
|
|
334
|
+
if (expo === null && cameraRoll === null)
|
|
335
|
+
throw new types_1.TaplineError('unsupported', UNSUPPORTED_LIBRARY);
|
|
336
|
+
// This host's pictures in the phone's memory, plus the ids the host kept itself (after a JS reload). An earlier
|
|
337
|
+
// host's pictures stay: a restarted host is another session (1.5 review).
|
|
338
|
+
const owner = ownerOf(params);
|
|
339
|
+
const mine = addedIds.filter((added) => added.owner === owner).map((added) => added.id);
|
|
340
|
+
const fromHost = Array.isArray(params.ids) ? params.ids.filter((id) => typeof id === 'string' && id !== '') : [];
|
|
341
|
+
const ids = [...new Set([...mine, ...fromHost])];
|
|
342
|
+
if (ids.length === 0)
|
|
343
|
+
return { removed: 0 };
|
|
344
|
+
const deleting = expo !== null ? expo.deleteAssetsAsync(ids) : cameraRoll.deletePhotos(ids);
|
|
345
|
+
const settle = (outcome) => {
|
|
346
|
+
const declined = outcome === false;
|
|
347
|
+
if (!declined)
|
|
348
|
+
forget(ids);
|
|
349
|
+
return declined;
|
|
350
|
+
};
|
|
351
|
+
const waited = await within(deleting, patienceMs);
|
|
352
|
+
if (!waited.done) {
|
|
353
|
+
deleting.then(settle, () => undefined);
|
|
354
|
+
return { removed: ids.length, pending: true };
|
|
355
|
+
}
|
|
356
|
+
return settle(waited.value) ? { removed: 0, declined: true } : { removed: ids.length };
|
|
357
|
+
}
|
|
358
|
+
const hooks = new Set();
|
|
359
|
+
/**
|
|
360
|
+
* For an app whose photo picker is not expo-image-picker: called when the agent arms test pictures
|
|
361
|
+
* (`media` with `picker: true`), so the app can hand them to its own picker once. Returns the unregister function.
|
|
362
|
+
*/
|
|
363
|
+
function registerTaplinePickerHook(hook) {
|
|
364
|
+
hooks.add(hook);
|
|
365
|
+
return () => {
|
|
366
|
+
hooks.delete(hook);
|
|
367
|
+
};
|
|
368
|
+
}
|
|
369
|
+
const WRAPPED = ['launchImageLibraryAsync', 'launchCameraAsync'];
|
|
370
|
+
let staged = [];
|
|
371
|
+
let armed = null;
|
|
372
|
+
let restoreOriginals = null;
|
|
373
|
+
function asPicture(p) {
|
|
374
|
+
return { ...p, uri: `data:${p.mimeType};base64,${p.base64}` };
|
|
375
|
+
}
|
|
376
|
+
function pickerResult(pictures) {
|
|
377
|
+
return {
|
|
378
|
+
canceled: false,
|
|
379
|
+
assets: pictures.map((p) => ({
|
|
380
|
+
uri: `data:${p.mimeType};base64,${p.base64}`,
|
|
381
|
+
assetId: null,
|
|
382
|
+
width: p.width,
|
|
383
|
+
height: p.height,
|
|
384
|
+
type: 'image',
|
|
385
|
+
fileName: p.fileName,
|
|
386
|
+
fileSize: Math.floor((p.base64.length * 3) / 4),
|
|
387
|
+
mimeType: p.mimeType,
|
|
388
|
+
exif: null,
|
|
389
|
+
base64: null,
|
|
390
|
+
})),
|
|
391
|
+
};
|
|
392
|
+
}
|
|
393
|
+
/** Wraps the picker's launch functions; false when the module's properties can't be replaced. */
|
|
394
|
+
function installWrappers(mod) {
|
|
395
|
+
if (restoreOriginals !== null)
|
|
396
|
+
return true;
|
|
397
|
+
const originals = new Map();
|
|
398
|
+
const wrapper = (name) => async (...args) => {
|
|
399
|
+
const pictures = armed;
|
|
400
|
+
const original = originals.get(name);
|
|
401
|
+
if (pictures === null) {
|
|
402
|
+
// Nothing pending any more: behave as the app's own picker does.
|
|
403
|
+
return typeof original === 'function' ? original(...args) : undefined;
|
|
404
|
+
}
|
|
405
|
+
// One use: the original is back before the result is handed over.
|
|
406
|
+
resetMedia();
|
|
407
|
+
(0, events_1.emitEvent)('pickerSkipped', { count: pictures.length });
|
|
408
|
+
return pickerResult(pictures);
|
|
409
|
+
};
|
|
410
|
+
const done = [];
|
|
411
|
+
for (const name of WRAPPED) {
|
|
412
|
+
const original = mod[name];
|
|
413
|
+
if (typeof original !== 'function')
|
|
414
|
+
continue;
|
|
415
|
+
originals.set(name, original);
|
|
416
|
+
const replacement = wrapper(name);
|
|
417
|
+
try {
|
|
418
|
+
mod[name] = replacement;
|
|
419
|
+
}
|
|
420
|
+
catch {
|
|
421
|
+
// read-only export
|
|
422
|
+
}
|
|
423
|
+
if (mod[name] === replacement)
|
|
424
|
+
done.push(name);
|
|
425
|
+
}
|
|
426
|
+
if (done.length === 0)
|
|
427
|
+
return false;
|
|
428
|
+
restoreOriginals = () => {
|
|
429
|
+
for (const name of done) {
|
|
430
|
+
try {
|
|
431
|
+
mod[name] = originals.get(name);
|
|
432
|
+
}
|
|
433
|
+
catch {
|
|
434
|
+
// already gone
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
};
|
|
438
|
+
return true;
|
|
439
|
+
}
|
|
440
|
+
async function armPicker(params) {
|
|
441
|
+
const index = paramNumber(params, 'index') ?? 1;
|
|
442
|
+
const total = paramNumber(params, 'total') ?? 1;
|
|
443
|
+
const data = paramString(params, 'data');
|
|
444
|
+
const mime = paramString(params, 'mime');
|
|
445
|
+
const name = paramString(params, 'name');
|
|
446
|
+
if (index === 1)
|
|
447
|
+
staged = [];
|
|
448
|
+
staged.push({
|
|
449
|
+
fileName: name,
|
|
450
|
+
mimeType: mime,
|
|
451
|
+
width: paramNumber(params, 'width') ?? 0,
|
|
452
|
+
height: paramNumber(params, 'height') ?? 0,
|
|
453
|
+
base64: data,
|
|
454
|
+
});
|
|
455
|
+
if (index < total)
|
|
456
|
+
return { pictures: staged.length, hooks: 0 };
|
|
457
|
+
const pictures = staged;
|
|
458
|
+
staged = [];
|
|
459
|
+
const mod = modules().imagePicker;
|
|
460
|
+
const wrapped = mod !== null && installWrappers(mod);
|
|
461
|
+
if (!wrapped && hooks.size === 0) {
|
|
462
|
+
throw new types_1.TaplineError('unsupported', mod === null
|
|
463
|
+
? "this app has no expo-image-picker; register a hook with registerTaplinePickerHook(fn) in the app so Tapline can hand its own picker the pictures."
|
|
464
|
+
: "this app's expo-image-picker can't be wrapped (its exports are read-only); register a hook with registerTaplinePickerHook(fn).");
|
|
465
|
+
}
|
|
466
|
+
armed = wrapped ? pictures : null;
|
|
467
|
+
let called = 0;
|
|
468
|
+
const forHooks = hooks.size > 0 ? pictures.map(asPicture) : [];
|
|
469
|
+
for (const hook of [...hooks]) {
|
|
470
|
+
try {
|
|
471
|
+
await hook(forHooks);
|
|
472
|
+
called += 1;
|
|
473
|
+
}
|
|
474
|
+
catch {
|
|
475
|
+
// a broken hook must not break the run
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
(0, events_1.emitEvent)('pickerArmed', { count: pictures.length });
|
|
479
|
+
return { pictures: pictures.length, hooks: called };
|
|
480
|
+
}
|
|
481
|
+
/** Puts the picker back as the app made it and forgets pictures not yet used. Called after one use and on disconnect. */
|
|
482
|
+
function resetMedia() {
|
|
483
|
+
const restore = restoreOriginals;
|
|
484
|
+
restoreOriginals = null;
|
|
485
|
+
armed = null;
|
|
486
|
+
staged = [];
|
|
487
|
+
if (restore !== null)
|
|
488
|
+
restore();
|
|
489
|
+
}
|
|
490
|
+
/** Whether a picker stub is waiting for its one use. */
|
|
491
|
+
function pickerArmed() {
|
|
492
|
+
return armed !== null;
|
|
493
|
+
}
|
|
494
|
+
// ---- the protocol method --------------------------------------------------------
|
|
495
|
+
/** `media {op: "add" | "remove" | "picker", ...}` (AGENT-TOOLS 1.12 §17.6). One picture per `add` and `picker` request. */
|
|
496
|
+
async function media(rawParams) {
|
|
497
|
+
if (!(0, types_1.isRecord)(rawParams))
|
|
498
|
+
throw badParams('params must be an object');
|
|
499
|
+
switch (rawParams.op) {
|
|
500
|
+
case 'add':
|
|
501
|
+
return addPicture(rawParams);
|
|
502
|
+
case 'remove':
|
|
503
|
+
return removePictures(rawParams);
|
|
504
|
+
case 'picker':
|
|
505
|
+
return armPicker(rawParams);
|
|
506
|
+
case 'disarm': {
|
|
507
|
+
// The host's journey stopped: a stub nobody used goes back, so a person's next pick is their own.
|
|
508
|
+
const was = armed !== null || staged.length > 0;
|
|
509
|
+
resetMedia();
|
|
510
|
+
return { disarmed: was };
|
|
511
|
+
}
|
|
512
|
+
default:
|
|
513
|
+
throw badParams('op must be "add", "remove", "picker" or "disarm"');
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
//# sourceMappingURL=media.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.js","sourceRoot":"","sources":["../src/media.ts"],"names":[],"mappings":"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"}
|
package/dist/methods.js
CHANGED
|
@@ -5,7 +5,10 @@ const actions_1 = require("./actions");
|
|
|
5
5
|
const checks_1 = require("./checks");
|
|
6
6
|
const crash_1 = require("./crash");
|
|
7
7
|
const commands_1 = require("./commands");
|
|
8
|
+
const glass_1 = require("./glass");
|
|
8
9
|
const inspect_1 = require("./inspect");
|
|
10
|
+
const media_1 = require("./media");
|
|
11
|
+
const types_1 = require("./types");
|
|
9
12
|
const live_1 = require("./live");
|
|
10
13
|
const perf_1 = require("./perf");
|
|
11
14
|
const wait_1 = require("./wait");
|
|
@@ -24,7 +27,7 @@ function action(fn) {
|
|
|
24
27
|
}
|
|
25
28
|
/** Protocol method name -> implementation. */
|
|
26
29
|
exports.methods = {
|
|
27
|
-
tree: (params) => (0, inspect_1.tree)(params),
|
|
30
|
+
tree: (params) => ((0, types_1.isRecord)(params) && params.glass === true ? (0, glass_1.glassTree)(params) : (0, inspect_1.tree)(params)),
|
|
28
31
|
press: action((params) => (0, actions_1.press)(params)),
|
|
29
32
|
longPress: action((params) => (0, actions_1.longPress)(params)),
|
|
30
33
|
type: action((params) => (0, actions_1.typeText)(params)),
|
|
@@ -43,6 +46,8 @@ exports.methods = {
|
|
|
43
46
|
logs: (params) => (0, actions_1.getLogs)(params),
|
|
44
47
|
inspect: (params) => (0, actions_1.inspect)(params),
|
|
45
48
|
audit: (params) => (0, actions_1.audit)(params),
|
|
49
|
+
uxCheck: (params) => (0, actions_1.uxCheck)(params),
|
|
50
|
+
media: (params) => (0, media_1.media)(params),
|
|
46
51
|
reload: () => (0, actions_1.reload)(),
|
|
47
52
|
perfStart: () => (0, perf_1.perfStart)(),
|
|
48
53
|
perfStop: (params) => (0, perf_1.perfStop)(params),
|
package/dist/methods.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../src/methods.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"methods.js","sourceRoot":"","sources":["../src/methods.ts"],"names":[],"mappings":"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"}
|
package/dist/network.d.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Network tracking: counts requests in flight (so an agent can wait for loading to finish)
|
|
3
|
-
* and reports failed ones. React Native's fetch is built on XMLHttpRequest,
|
|
4
|
-
*
|
|
3
|
+
* and reports failed ones. React Native's fetch is built on XMLHttpRequest, but Expo SDK 58's
|
|
4
|
+
* expo/fetch is native, so both XMLHttpRequest.prototype and the global fetch are wrapped (a
|
|
5
|
+
* request is counted once). Nothing here may ever throw into the app.
|
|
5
6
|
*/
|
|
6
7
|
export interface NetworkFailure {
|
|
7
8
|
method: string;
|
|
@@ -17,8 +18,25 @@ export interface NetworkOptions {
|
|
|
17
18
|
};
|
|
18
19
|
ignore?: (url: string) => boolean;
|
|
19
20
|
}
|
|
21
|
+
/** What Tapline can make the app's requests behave like (`network` app command). */
|
|
22
|
+
export type NetworkMode = 'offline' | '3g' | 'lossy' | 'normal';
|
|
23
|
+
export declare const NETWORK_MODES: readonly NetworkMode[];
|
|
20
24
|
/** scheme://host[:port]/path, query replaced by "?…", no fragment or credentials. */
|
|
21
25
|
export declare function redactUrl(raw: string): string;
|
|
26
|
+
/**
|
|
27
|
+
* Wraps the app's global fetch, once per function: a fetch replaced after Tapline started (Expo installs its own
|
|
28
|
+
* lazily) is wrapped when this runs next. Called on install, on each condition change and whenever requests are
|
|
29
|
+
* counted. Never throws into the app.
|
|
30
|
+
*/
|
|
31
|
+
export declare function ensureFetchWrapped(given?: Record<string, unknown>): void;
|
|
32
|
+
/** The mode the app's requests are in now. */
|
|
33
|
+
export declare function networkCondition(): NetworkMode;
|
|
34
|
+
/** Puts the app's requests into a mode; `normal` restores them. Requests already sent are not touched. */
|
|
35
|
+
export declare function setNetworkCondition(mode: NetworkMode): void;
|
|
36
|
+
/** Back to normal; safe to call any time (host gone, Tapline stopped). */
|
|
37
|
+
export declare function resetNetworkCondition(): void;
|
|
38
|
+
/** A seeded random source for `lossy` (tests); `null` goes back to Math.random. */
|
|
39
|
+
export declare function seedNetworkRandom(seed: number | null): void;
|
|
22
40
|
export declare function installNetworkTracking(options?: NetworkOptions): void;
|
|
23
41
|
export declare function uninstallNetworkTracking(): void;
|
|
24
42
|
/** Requests that have been sent and not yet finished (dev-server traffic excluded). */
|