@appium/fake-plugin 4.2.4 → 4.3.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/build/lib/plugin.d.ts +4 -0
- package/build/lib/plugin.d.ts.map +1 -1
- package/build/lib/plugin.js +26 -1
- package/build/lib/plugin.js.map +1 -1
- package/lib/plugin.ts +32 -1
- package/package.json +6 -7
- package/tsconfig.json +1 -0
package/build/lib/plugin.d.ts
CHANGED
|
@@ -13,10 +13,13 @@ export declare class FakePlugin extends BasePlugin {
|
|
|
13
13
|
protected _clockRunning: boolean;
|
|
14
14
|
private readonly fakeThing;
|
|
15
15
|
private pluginThing;
|
|
16
|
+
private fakeDriverClockIsRunning;
|
|
17
|
+
private ipcPluginMath?;
|
|
16
18
|
constructor(name: string, cliArgs?: Record<string, unknown>);
|
|
17
19
|
static fakeRoute(_req: Request, res: Response): void;
|
|
18
20
|
static unexpectedData(_req: Request, res: Response): void;
|
|
19
21
|
static updateServer(expressApp: Application, _httpServer: AppiumServer, cliArgs: Record<string, unknown>): Promise<void>;
|
|
22
|
+
onIpcInit(): Promise<void>;
|
|
20
23
|
startClock(): Promise<void>;
|
|
21
24
|
doSomeMath(next: () => Promise<number>, _driver: DriverLike, num1: number, num2: number): Promise<number>;
|
|
22
25
|
doSomeMath2(_next: () => Promise<unknown>, _driver: DriverLike, num1: number, num2: number): Promise<number>;
|
|
@@ -25,6 +28,7 @@ export declare class FakePlugin extends BasePlugin {
|
|
|
25
28
|
setPluginThing(_next: () => Promise<unknown>, _driver: DriverLike, thing: unknown): Promise<void>;
|
|
26
29
|
plugMeIn(_next: () => Promise<unknown>, _driver: DriverLike, socket: string): Promise<string>;
|
|
27
30
|
getFakePluginArgs(): Promise<Record<string, unknown>>;
|
|
31
|
+
getFakeDriverClockStatus(): Promise<boolean>;
|
|
28
32
|
getPageSource(_next: () => Promise<string>, _driver: DriverLike, ...args: unknown[]): Promise<string>;
|
|
29
33
|
findElement(next: () => Promise<{
|
|
30
34
|
fake?: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,MAAM,eAAe,CAAC;AAEzC,OAAO,KAAK,EAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAC,MAAM,SAAS,CAAC;AAC5D,OAAO,KAAK,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,cAAc,
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":"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"}
|
package/build/lib/plugin.js
CHANGED
|
@@ -50,11 +50,16 @@ class FakePlugin extends plugin_1.BasePlugin {
|
|
|
50
50
|
command: 'plugMeIn',
|
|
51
51
|
params: { required: ['socket'] },
|
|
52
52
|
},
|
|
53
|
+
'fake: getFakeDriverClockStatus': {
|
|
54
|
+
command: 'getFakeDriverClockStatus',
|
|
55
|
+
},
|
|
53
56
|
};
|
|
54
57
|
static _unexpectedData = null;
|
|
55
58
|
_clockRunning = true;
|
|
56
59
|
fakeThing;
|
|
57
60
|
pluginThing = null;
|
|
61
|
+
fakeDriverClockIsRunning = false;
|
|
62
|
+
ipcPluginMath;
|
|
58
63
|
constructor(name, cliArgs = {}) {
|
|
59
64
|
super(name, cliArgs);
|
|
60
65
|
this.fakeThing = 'PLUGIN_FAKE_THING';
|
|
@@ -74,6 +79,19 @@ class FakePlugin extends plugin_1.BasePlugin {
|
|
|
74
79
|
res.send(JSON.stringify(cliArgs));
|
|
75
80
|
});
|
|
76
81
|
}
|
|
82
|
+
async onIpcInit() {
|
|
83
|
+
const clockSub = this.ipcSubscribe('clockLifecycle');
|
|
84
|
+
clockSub.on('message', (message) => {
|
|
85
|
+
this.fakeDriverClockIsRunning = message.data.running;
|
|
86
|
+
});
|
|
87
|
+
// subscribing to clockLifecycle doesn't tell us the current status if it started before this
|
|
88
|
+
// constructor was called, so retrieve it
|
|
89
|
+
const message = clockSub.getMessage();
|
|
90
|
+
if (message) {
|
|
91
|
+
this.fakeDriverClockIsRunning = message.data.running;
|
|
92
|
+
}
|
|
93
|
+
this.ipcPluginMath = this.ipcSubscribe('pluginMath');
|
|
94
|
+
}
|
|
77
95
|
async startClock() {
|
|
78
96
|
while (this._clockRunning) {
|
|
79
97
|
await (0, asyncbox_1.sleep)(250);
|
|
@@ -89,7 +107,11 @@ class FakePlugin extends plugin_1.BasePlugin {
|
|
|
89
107
|
}
|
|
90
108
|
async doSomeMath2(_next, _driver, num1, num2) {
|
|
91
109
|
await (0, asyncbox_1.sleep)(1);
|
|
92
|
-
|
|
110
|
+
const result = num1 * num2;
|
|
111
|
+
if (this.ipcPluginMath) {
|
|
112
|
+
await this.ipcPluginMath.publish(result);
|
|
113
|
+
}
|
|
114
|
+
return result;
|
|
93
115
|
}
|
|
94
116
|
async getFakeThing() {
|
|
95
117
|
await (0, asyncbox_1.sleep)(1);
|
|
@@ -113,6 +135,9 @@ class FakePlugin extends plugin_1.BasePlugin {
|
|
|
113
135
|
await (0, asyncbox_1.sleep)(1);
|
|
114
136
|
return this.cliArgs;
|
|
115
137
|
}
|
|
138
|
+
async getFakeDriverClockStatus() {
|
|
139
|
+
return this.fakeDriverClockIsRunning;
|
|
140
|
+
}
|
|
116
141
|
async getPageSource(_next, _driver, ...args) {
|
|
117
142
|
await (0, asyncbox_1.sleep)(10);
|
|
118
143
|
return `<Fake>${JSON.stringify(args)}</Fake>`;
|
package/build/lib/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,uCAA+B;
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../lib/plugin.ts"],"names":[],"mappings":";;;AAAA,0CAAyC;AACzC,uCAA+B;AAiB/B,MAAa,UAAW,SAAQ,mBAAU;IACxC,MAAM,CAAC,YAAY,GAA0B;QAC3C,+BAA+B,EAAE;YAC/B,GAAG,EAAE,EAAC,OAAO,EAAE,oBAAoB,EAAE,UAAU,EAAE,IAAI,EAAC;YACtD,IAAI,EAAE;gBACJ,OAAO,EAAE,oBAAoB;gBAC7B,aAAa,EAAE,EAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAC;gBACnC,UAAU,EAAE,IAAI;aACjB;SACF;QACD,oCAAoC,EAAE;YACpC,GAAG,EAAE,EAAC,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,IAAI,EAAC;SACtD;KACF,CAAC;IAEF,MAAM,CAAC,eAAe,GAAkB;QACtC,aAAa,EAAE;YACb,cAAc,EAAE;gBACd,OAAO,EAAE,gBAAgB;aAC1B;YACD,cAAc,EAAE;gBACd,OAAO,EAAE,gBAAgB;gBACzB,MAAM,EAAE;oBACN,QAAQ,EAAE,CAAC,OAAO,CAAC;iBACpB;aACF;YACD,UAAU,EAAE;gBACV,OAAO,EAAE,YAAY;gBACrB,MAAM,EAAE;oBACN,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;iBAC3B;aACF;YACD,WAAW,EAAE;gBACX,OAAO,EAAE,aAAa;gBACtB,MAAM,EAAE;oBACN,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC;iBAC3B;aACF;SACF;KACF,CAAC;IAEF,MAAM,CAAC,gBAAgB,GAAiC;QACtD,gBAAgB,EAAE;YAChB,OAAO,EAAE,cAAc;SACxB;QACD,gBAAgB,EAAE;YAChB,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,EAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,EAAC;SAC/B;QACD,gCAAgC,EAAE;YAChC,OAAO,EAAE,0BAA0B;SACpC;KACF,CAAC;IAEM,MAAM,CAAC,eAAe,GAAkB,IAAI,CAAC;IAC3C,aAAa,GAAY,IAAI,CAAC;IACvB,SAAS,CAAS;IAC3B,WAAW,GAAY,IAAI,CAAC;IAC5B,wBAAwB,GAAY,KAAK,CAAC;IAC1C,aAAa,CAA4B;IAEjD,YAAY,IAAY,EAAE,UAAmC,EAAE;QAC7D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,GAAG,mBAAmB,CAAC;QACrC,KAAK,IAAI,CAAC,UAAU,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CAAC,SAAS,CAAC,IAAa,EAAE,GAAa;QAC3C,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAC,IAAI,EAAE,cAAc,EAAC,CAAC,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,IAAa,EAAE,GAAa;QAChD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;QACrD,UAAU,CAAC,eAAe,GAAG,IAAI,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,YAAY,CACvB,UAAuB,EACvB,WAAyB,EACzB,OAAgC;QAEhC,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAC;QAC9C,UAAU,CAAC,GAAG,CAAC,aAAa,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;QACzD,UAAU,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YACtC,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAc,gBAAgB,CAAC,CAAC;QAClE,QAAQ,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAgC,EAAE,EAAE;YAC1D,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACvD,CAAC,CAAC,CAAC;QACH,6FAA6F;QAC7F,yCAAyC;QACzC,MAAM,OAAO,GAAG,QAAQ,CAAC,UAAU,EAAE,CAAC;QACtC,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,wBAAwB,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC;QACvD,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,YAAY,CAAS,YAAY,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;YAC1B,MAAM,IAAA,gBAAK,EAAC,GAAG,CAAC,CAAC;YACjB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE;gBAClC,MAAM,EAAE,0BAA0B;gBAClC,MAAM,EAAE,EAAC,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAC;aAC3B,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAA2B,EAC3B,OAAmB,EACnB,IAAY,EACZ,IAAY;QAEZ,MAAM,GAAG,GAAG,MAAM,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,GAAG,IAAI,GAAG,GAAG,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW,CACf,KAA6B,EAC7B,OAAmB,EACnB,IAAY,EACZ,IAAY;QAEZ,MAAM,IAAA,gBAAK,EAAC,CAAC,CAAC,CAAC;QACf,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;QAC3B,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,MAAM,IAAA,gBAAK,EAAC,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,cAAc;QAClB,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE;YAClC,MAAM,EAAE,kCAAkC;YAC1C,MAAM,EAAE,EAAE;SACX,CAAC,CAAC;QACH,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,KAA6B,EAC7B,OAAmB,EACnB,KAAc;QAEd,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,KAA6B,EAC7B,OAAmB,EACnB,MAAc;QAEd,MAAM,IAAA,gBAAK,EAAC,CAAC,CAAC,CAAC;QACf,OAAO,iBAAiB,MAAM,EAAE,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,iBAAiB;QACrB,MAAM,IAAA,gBAAK,EAAC,CAAC,CAAC,CAAC;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,wBAAwB;QAC5B,OAAO,IAAI,CAAC,wBAAwB,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,KAA4B,EAC5B,OAAmB,EACnB,GAAG,IAAe;QAElB,MAAM,IAAA,gBAAK,EAAC,EAAE,CAAC,CAAC;QAChB,OAAO,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC;IAChD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAA+D,EAC/D,OAAmB,EACnB,GAAG,IAAe;QAElB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7E,MAAM,WAAW,GAAG,MAAM,IAAI,EAAE,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC1C,WAAW,CAAC,IAAI,GAAG,IAAI,CAAC;QACxB,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,KAA6B,EAAE,MAAkB;QACxE,MAAM,IAAA,gBAAK,EAAC,CAAC,CAAC,CAAC;QACf,OAAO,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,KAA6B,EAC7B,MAAkB,EAClB,GAAG,IAAe;QAElB,MAAM,IAAA,gBAAK,EAAC,CAAC,CAAC,CAAC;QACf,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACjC,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,IAA2B;QAC/C,MAAM,MAAM,GAAG,MAAM,IAAI,EAAE,CAAC;QAC5B,OAAO,KAAK,MAAM,IAAI,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,OAAmB,EAAE,KAAqB;QACnE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,UAAU,CAAC,eAAe,GAAG,yBAAyB,KAAK,EAAE,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,OAAO,CACX,IAA4B,EAC5B,MAAkB,EAClB,MAAc,EACd,IAAe;QAEf,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,MAAa,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,IAA4B;QAC9C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,OAAO,MAAM,IAAI,EAAE,CAAC;IACtB,CAAC;;AAzOH,gCA0OC"}
|
package/lib/plugin.ts
CHANGED
|
@@ -6,12 +6,16 @@ import type {
|
|
|
6
6
|
BidiModuleMap,
|
|
7
7
|
ExecuteMethodMap,
|
|
8
8
|
ExternalDriver,
|
|
9
|
+
IpcMessage,
|
|
9
10
|
MethodMap,
|
|
11
|
+
IIpcSubscription,
|
|
10
12
|
} from '@appium/types';
|
|
11
13
|
|
|
12
14
|
/** Driver as seen by this plugin; may include plugin-specific session data */
|
|
13
15
|
export type DriverLike = ExternalDriver & {fakeSessionData?: unknown};
|
|
14
16
|
|
|
17
|
+
type ClockStatus = {running: boolean};
|
|
18
|
+
|
|
15
19
|
export class FakePlugin extends BasePlugin {
|
|
16
20
|
static newMethodMap: MethodMap<FakePlugin> = {
|
|
17
21
|
'/session/:sessionId/fake_data': {
|
|
@@ -61,12 +65,17 @@ export class FakePlugin extends BasePlugin {
|
|
|
61
65
|
command: 'plugMeIn',
|
|
62
66
|
params: {required: ['socket']},
|
|
63
67
|
},
|
|
68
|
+
'fake: getFakeDriverClockStatus': {
|
|
69
|
+
command: 'getFakeDriverClockStatus',
|
|
70
|
+
},
|
|
64
71
|
};
|
|
65
72
|
|
|
66
73
|
private static _unexpectedData: string | null = null;
|
|
67
74
|
protected _clockRunning: boolean = true;
|
|
68
75
|
private readonly fakeThing: string;
|
|
69
76
|
private pluginThing: unknown = null;
|
|
77
|
+
private fakeDriverClockIsRunning: boolean = false;
|
|
78
|
+
private ipcPluginMath?: IIpcSubscription<number>;
|
|
70
79
|
|
|
71
80
|
constructor(name: string, cliArgs: Record<string, unknown> = {}) {
|
|
72
81
|
super(name, cliArgs);
|
|
@@ -95,6 +104,20 @@ export class FakePlugin extends BasePlugin {
|
|
|
95
104
|
});
|
|
96
105
|
}
|
|
97
106
|
|
|
107
|
+
async onIpcInit() {
|
|
108
|
+
const clockSub = this.ipcSubscribe<ClockStatus>('clockLifecycle');
|
|
109
|
+
clockSub.on('message', (message: IpcMessage<ClockStatus>) => {
|
|
110
|
+
this.fakeDriverClockIsRunning = message.data.running;
|
|
111
|
+
});
|
|
112
|
+
// subscribing to clockLifecycle doesn't tell us the current status if it started before this
|
|
113
|
+
// constructor was called, so retrieve it
|
|
114
|
+
const message = clockSub.getMessage();
|
|
115
|
+
if (message) {
|
|
116
|
+
this.fakeDriverClockIsRunning = message.data.running;
|
|
117
|
+
}
|
|
118
|
+
this.ipcPluginMath = this.ipcSubscribe<number>('pluginMath');
|
|
119
|
+
}
|
|
120
|
+
|
|
98
121
|
async startClock(): Promise<void> {
|
|
99
122
|
while (this._clockRunning) {
|
|
100
123
|
await sleep(250);
|
|
@@ -122,7 +145,11 @@ export class FakePlugin extends BasePlugin {
|
|
|
122
145
|
num2: number
|
|
123
146
|
): Promise<number> {
|
|
124
147
|
await sleep(1);
|
|
125
|
-
|
|
148
|
+
const result = num1 * num2;
|
|
149
|
+
if (this.ipcPluginMath) {
|
|
150
|
+
await this.ipcPluginMath.publish(result);
|
|
151
|
+
}
|
|
152
|
+
return result;
|
|
126
153
|
}
|
|
127
154
|
|
|
128
155
|
async getFakeThing(): Promise<string> {
|
|
@@ -160,6 +187,10 @@ export class FakePlugin extends BasePlugin {
|
|
|
160
187
|
return this.cliArgs;
|
|
161
188
|
}
|
|
162
189
|
|
|
190
|
+
async getFakeDriverClockStatus(): Promise<boolean> {
|
|
191
|
+
return this.fakeDriverClockIsRunning;
|
|
192
|
+
}
|
|
193
|
+
|
|
163
194
|
async getPageSource(
|
|
164
195
|
_next: () => Promise<string>,
|
|
165
196
|
_driver: DriverLike,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@appium/fake-plugin",
|
|
3
|
-
"version": "4.
|
|
3
|
+
"version": "4.3.0",
|
|
4
4
|
"description": "A fake Appium plugin",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"automation",
|
|
@@ -39,13 +39,12 @@
|
|
|
39
39
|
"test:unit": "mocha \"./test/unit/**/*.spec.*ts\""
|
|
40
40
|
},
|
|
41
41
|
"dependencies": {
|
|
42
|
-
"@appium/base-plugin": "3.
|
|
43
|
-
"@appium/support": "7.2.
|
|
44
|
-
"asyncbox": "6.
|
|
45
|
-
"lodash": "4.18.1"
|
|
42
|
+
"@appium/base-plugin": "3.3.0",
|
|
43
|
+
"@appium/support": "7.2.3",
|
|
44
|
+
"asyncbox": "6.3.0"
|
|
46
45
|
},
|
|
47
46
|
"devDependencies": {
|
|
48
|
-
"@appium/types": "1.
|
|
47
|
+
"@appium/types": "1.5.0",
|
|
49
48
|
"express": "5.2.1"
|
|
50
49
|
},
|
|
51
50
|
"peerDependencies": {
|
|
@@ -66,7 +65,7 @@
|
|
|
66
65
|
"publishConfig": {
|
|
67
66
|
"access": "public"
|
|
68
67
|
},
|
|
69
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "8018f8b70ecc975fa115e19072ef337b8473865d",
|
|
70
69
|
"tags": [
|
|
71
70
|
"appium"
|
|
72
71
|
]
|