@bubblegum-ai/node 0.0.6-alpha.10 → 0.0.6-alpha.12
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/README.md +1 -1
- package/dist/cjs/index.d.ts +1 -1
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/session.d.ts +42 -3
- package/dist/cjs/session.d.ts.map +1 -1
- package/dist/cjs/session.js +32 -3
- package/dist/cjs/session.js.map +1 -1
- package/dist/esm/index.d.ts +1 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/session.d.ts +42 -3
- package/dist/esm/session.d.ts.map +1 -1
- package/dist/esm/session.js +32 -3
- package/dist/esm/session.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/cjs/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* a thin, typed proxy. See ../../docs/distribution-npm-and-pypi.md.
|
|
8
8
|
*/
|
|
9
9
|
export { Bubblegum } from "./session.js";
|
|
10
|
-
export type { Channel, LaunchOptions, AttachOptions, RecoverArgs } from "./session.js";
|
|
10
|
+
export type { Channel, LaunchOptions, AttachOptions, MobileAttachOptions, RecoverArgs } from "./session.js";
|
|
11
11
|
export { BridgeClient, spawnBridgeTransport } from "./client.js";
|
|
12
12
|
export type { Transport, SpawnOptions, BridgeClientOptions } from "./client.js";
|
|
13
13
|
export { BridgeError } from "./errors.js";
|
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5G,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACjE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,YAAY,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC"}
|
package/dist/cjs/session.d.ts
CHANGED
|
@@ -23,11 +23,28 @@ export interface LaunchOptions extends BridgeClientOptions {
|
|
|
23
23
|
cdpEndpoint?: string;
|
|
24
24
|
/** Which existing page to attach to when using `cdpEndpoint` (default 0). */
|
|
25
25
|
pageIndex?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Mobile client-owned mode: attach the engine to an Appium session another
|
|
28
|
+
* test already created, by its session id (e.g. WebdriverIO's
|
|
29
|
+
* `browser.sessionId`). Cloud device farms allow only one session per device,
|
|
30
|
+
* so an in-test fallback must reuse the running session rather than open a
|
|
31
|
+
* new one. The engine reuses it and never quits it. Requires the engine to
|
|
32
|
+
* advertise the `channel.mobile.attach` capability.
|
|
33
|
+
*/
|
|
34
|
+
existingSessionId?: string;
|
|
26
35
|
}
|
|
27
36
|
/** Options for {@link Bubblegum.attach} — `cdpEndpoint` is required. */
|
|
28
37
|
export interface AttachOptions extends Omit<LaunchOptions, "channel"> {
|
|
29
38
|
cdpEndpoint: string;
|
|
30
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for {@link Bubblegum.attachMobile} — attach to an Appium session your
|
|
42
|
+
* test already drives. `appiumUrl` + `existingSessionId` are required.
|
|
43
|
+
*/
|
|
44
|
+
export interface MobileAttachOptions extends Omit<LaunchOptions, "channel" | "cdpEndpoint" | "pageIndex"> {
|
|
45
|
+
appiumUrl: string;
|
|
46
|
+
existingSessionId: string;
|
|
47
|
+
}
|
|
31
48
|
/** One step's outcome from {@link Bubblegum.preflight}. */
|
|
32
49
|
export interface PreflightResult {
|
|
33
50
|
instruction: string;
|
|
@@ -104,6 +121,28 @@ export declare class Bubblegum {
|
|
|
104
121
|
* ```
|
|
105
122
|
*/
|
|
106
123
|
static attach(opts: AttachOptions): Promise<Bubblegum>;
|
|
124
|
+
/**
|
|
125
|
+
* Attach the engine to a mobile (Appium) session your test already drives,
|
|
126
|
+
* by its session id. Cloud device farms (pCloudy, BrowserStack, …) allow only
|
|
127
|
+
* one Appium session per device, so an in-test Bubblegum fallback must reuse
|
|
128
|
+
* the running session instead of opening a new one. The engine shares the
|
|
129
|
+
* session and never quits it — your test keeps ownership of teardown.
|
|
130
|
+
*
|
|
131
|
+
* ```ts
|
|
132
|
+
* // Inside a WebdriverIO test, when a normal locator click fails:
|
|
133
|
+
* const bg = await Bubblegum.attachMobile({
|
|
134
|
+
* appiumUrl: "https://appium.example.com/wd/hub",
|
|
135
|
+
* existingSessionId: browser.sessionId,
|
|
136
|
+
* capabilities: { platformName: "iOS" },
|
|
137
|
+
* });
|
|
138
|
+
* try {
|
|
139
|
+
* await bg.act("Tap Continue");
|
|
140
|
+
* } finally {
|
|
141
|
+
* await bg.close(); // closes the engine wrapper only; device session stays up
|
|
142
|
+
* }
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
static attachMobile(opts: MobileAttachOptions): Promise<Bubblegum>;
|
|
107
146
|
/** The bridge client (for advanced use / capability checks). */
|
|
108
147
|
get bridge(): BridgeClient;
|
|
109
148
|
act(instruction: string, options?: StepOptions): Promise<StepResult>;
|
|
@@ -139,8 +178,8 @@ export declare class Bubblegum {
|
|
|
139
178
|
* when the visible text is dynamic (a UUID, a DB id) and so can't be named.
|
|
140
179
|
*
|
|
141
180
|
* @example
|
|
142
|
-
* await bg.clickInTable({ column: "
|
|
143
|
-
* await bg.clickInTable({ column: "
|
|
181
|
+
* await bg.clickInTable({ column: "RecordID", row: "first" });
|
|
182
|
+
* await bg.clickInTable({ column: "RecordID", rowMatch: { Name: dbName } });
|
|
144
183
|
*/
|
|
145
184
|
clickInTable(spec: TableCellTarget): Promise<StepResult>;
|
|
146
185
|
/**
|
|
@@ -163,7 +202,7 @@ export declare class Bubblegum {
|
|
|
163
202
|
* inside a badge (expected is matched as a substring of the cell).
|
|
164
203
|
*
|
|
165
204
|
* @example
|
|
166
|
-
* await bg.verifyTable({ columns: ["
|
|
205
|
+
* await bg.verifyTable({ columns: ["RecordID", "Account Status", "Profile Status"] });
|
|
167
206
|
* await bg.verifyTable({ row: { Name: dbName }, cell: { "Account Status": dbStatus } });
|
|
168
207
|
*/
|
|
169
208
|
verifyTable(spec: TableAssertion): Promise<StepResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvC,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACxD,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/session.js
CHANGED
|
@@ -36,6 +36,10 @@ class Bubblegum {
|
|
|
36
36
|
if (opts.cdpEndpoint && !client.hasCapability("channel.web.cdp")) {
|
|
37
37
|
throw new errors_js_1.BridgeError(protocol_js_1.ErrorCodes.Unsupported, "this engine does not support CDP attach (channel.web.cdp); upgrade bubblegum-ai");
|
|
38
38
|
}
|
|
39
|
+
if (opts.existingSessionId && !client.hasCapability("channel.mobile.attach")) {
|
|
40
|
+
throw new errors_js_1.BridgeError(protocol_js_1.ErrorCodes.Unsupported, "this engine does not support attaching to an existing Appium session " +
|
|
41
|
+
"(channel.mobile.attach); upgrade bubblegum-ai");
|
|
42
|
+
}
|
|
39
43
|
const { session_id } = await client.request("session.open", {
|
|
40
44
|
channel: opts.channel ?? "web",
|
|
41
45
|
url: opts.url,
|
|
@@ -45,6 +49,7 @@ class Bubblegum {
|
|
|
45
49
|
capabilities: opts.capabilities,
|
|
46
50
|
cdp_endpoint: opts.cdpEndpoint,
|
|
47
51
|
page_index: opts.pageIndex,
|
|
52
|
+
existing_session_id: opts.existingSessionId,
|
|
48
53
|
});
|
|
49
54
|
return new Bubblegum(client, session_id);
|
|
50
55
|
}
|
|
@@ -67,6 +72,30 @@ class Bubblegum {
|
|
|
67
72
|
static attach(opts) {
|
|
68
73
|
return Bubblegum.launch({ ...opts, channel: "web" });
|
|
69
74
|
}
|
|
75
|
+
/**
|
|
76
|
+
* Attach the engine to a mobile (Appium) session your test already drives,
|
|
77
|
+
* by its session id. Cloud device farms (pCloudy, BrowserStack, …) allow only
|
|
78
|
+
* one Appium session per device, so an in-test Bubblegum fallback must reuse
|
|
79
|
+
* the running session instead of opening a new one. The engine shares the
|
|
80
|
+
* session and never quits it — your test keeps ownership of teardown.
|
|
81
|
+
*
|
|
82
|
+
* ```ts
|
|
83
|
+
* // Inside a WebdriverIO test, when a normal locator click fails:
|
|
84
|
+
* const bg = await Bubblegum.attachMobile({
|
|
85
|
+
* appiumUrl: "https://appium.example.com/wd/hub",
|
|
86
|
+
* existingSessionId: browser.sessionId,
|
|
87
|
+
* capabilities: { platformName: "iOS" },
|
|
88
|
+
* });
|
|
89
|
+
* try {
|
|
90
|
+
* await bg.act("Tap Continue");
|
|
91
|
+
* } finally {
|
|
92
|
+
* await bg.close(); // closes the engine wrapper only; device session stays up
|
|
93
|
+
* }
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
static attachMobile(opts) {
|
|
97
|
+
return Bubblegum.launch({ ...opts, channel: "mobile" });
|
|
98
|
+
}
|
|
70
99
|
/** The bridge client (for advanced use / capability checks). */
|
|
71
100
|
get bridge() {
|
|
72
101
|
return this.client;
|
|
@@ -136,8 +165,8 @@ class Bubblegum {
|
|
|
136
165
|
* when the visible text is dynamic (a UUID, a DB id) and so can't be named.
|
|
137
166
|
*
|
|
138
167
|
* @example
|
|
139
|
-
* await bg.clickInTable({ column: "
|
|
140
|
-
* await bg.clickInTable({ column: "
|
|
168
|
+
* await bg.clickInTable({ column: "RecordID", row: "first" });
|
|
169
|
+
* await bg.clickInTable({ column: "RecordID", rowMatch: { Name: dbName } });
|
|
141
170
|
*/
|
|
142
171
|
clickInTable(spec) {
|
|
143
172
|
const { column, row, rowMatch, timeoutMs } = spec;
|
|
@@ -174,7 +203,7 @@ class Bubblegum {
|
|
|
174
203
|
* inside a badge (expected is matched as a substring of the cell).
|
|
175
204
|
*
|
|
176
205
|
* @example
|
|
177
|
-
* await bg.verifyTable({ columns: ["
|
|
206
|
+
* await bg.verifyTable({ columns: ["RecordID", "Account Status", "Profile Status"] });
|
|
178
207
|
* await bg.verifyTable({ row: { Name: dbName }, cell: { "Account Status": dbStatus } });
|
|
179
208
|
*/
|
|
180
209
|
verifyTable(spec) {
|
package/dist/cjs/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":";;;AAAA,2CAAgE;AAChE,2CAA0C;AAC1C,+CAA2C;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* a thin, typed proxy. See ../../docs/distribution-npm-and-pypi.md.
|
|
8
8
|
*/
|
|
9
9
|
export { Bubblegum } from "./session.js";
|
|
10
|
-
export type { Channel, LaunchOptions, AttachOptions, RecoverArgs } from "./session.js";
|
|
10
|
+
export type { Channel, LaunchOptions, AttachOptions, MobileAttachOptions, RecoverArgs } from "./session.js";
|
|
11
11
|
export { BridgeClient, spawnBridgeTransport } from "./client.js";
|
|
12
12
|
export type { Transport, SpawnOptions, BridgeClientOptions } from "./client.js";
|
|
13
13
|
export { BridgeError } from "./errors.js";
|
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,YAAY,EAAE,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE5G,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACjE,YAAY,EAAE,SAAS,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEhF,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EACL,gBAAgB,EAChB,2BAA2B,EAC3B,UAAU,GACX,MAAM,eAAe,CAAC;AACvB,YAAY,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAEhE,YAAY,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,SAAS,EACT,cAAc,EACd,WAAW,EACX,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC"}
|
package/dist/esm/session.d.ts
CHANGED
|
@@ -23,11 +23,28 @@ export interface LaunchOptions extends BridgeClientOptions {
|
|
|
23
23
|
cdpEndpoint?: string;
|
|
24
24
|
/** Which existing page to attach to when using `cdpEndpoint` (default 0). */
|
|
25
25
|
pageIndex?: number;
|
|
26
|
+
/**
|
|
27
|
+
* Mobile client-owned mode: attach the engine to an Appium session another
|
|
28
|
+
* test already created, by its session id (e.g. WebdriverIO's
|
|
29
|
+
* `browser.sessionId`). Cloud device farms allow only one session per device,
|
|
30
|
+
* so an in-test fallback must reuse the running session rather than open a
|
|
31
|
+
* new one. The engine reuses it and never quits it. Requires the engine to
|
|
32
|
+
* advertise the `channel.mobile.attach` capability.
|
|
33
|
+
*/
|
|
34
|
+
existingSessionId?: string;
|
|
26
35
|
}
|
|
27
36
|
/** Options for {@link Bubblegum.attach} — `cdpEndpoint` is required. */
|
|
28
37
|
export interface AttachOptions extends Omit<LaunchOptions, "channel"> {
|
|
29
38
|
cdpEndpoint: string;
|
|
30
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for {@link Bubblegum.attachMobile} — attach to an Appium session your
|
|
42
|
+
* test already drives. `appiumUrl` + `existingSessionId` are required.
|
|
43
|
+
*/
|
|
44
|
+
export interface MobileAttachOptions extends Omit<LaunchOptions, "channel" | "cdpEndpoint" | "pageIndex"> {
|
|
45
|
+
appiumUrl: string;
|
|
46
|
+
existingSessionId: string;
|
|
47
|
+
}
|
|
31
48
|
/** One step's outcome from {@link Bubblegum.preflight}. */
|
|
32
49
|
export interface PreflightResult {
|
|
33
50
|
instruction: string;
|
|
@@ -104,6 +121,28 @@ export declare class Bubblegum {
|
|
|
104
121
|
* ```
|
|
105
122
|
*/
|
|
106
123
|
static attach(opts: AttachOptions): Promise<Bubblegum>;
|
|
124
|
+
/**
|
|
125
|
+
* Attach the engine to a mobile (Appium) session your test already drives,
|
|
126
|
+
* by its session id. Cloud device farms (pCloudy, BrowserStack, …) allow only
|
|
127
|
+
* one Appium session per device, so an in-test Bubblegum fallback must reuse
|
|
128
|
+
* the running session instead of opening a new one. The engine shares the
|
|
129
|
+
* session and never quits it — your test keeps ownership of teardown.
|
|
130
|
+
*
|
|
131
|
+
* ```ts
|
|
132
|
+
* // Inside a WebdriverIO test, when a normal locator click fails:
|
|
133
|
+
* const bg = await Bubblegum.attachMobile({
|
|
134
|
+
* appiumUrl: "https://appium.example.com/wd/hub",
|
|
135
|
+
* existingSessionId: browser.sessionId,
|
|
136
|
+
* capabilities: { platformName: "iOS" },
|
|
137
|
+
* });
|
|
138
|
+
* try {
|
|
139
|
+
* await bg.act("Tap Continue");
|
|
140
|
+
* } finally {
|
|
141
|
+
* await bg.close(); // closes the engine wrapper only; device session stays up
|
|
142
|
+
* }
|
|
143
|
+
* ```
|
|
144
|
+
*/
|
|
145
|
+
static attachMobile(opts: MobileAttachOptions): Promise<Bubblegum>;
|
|
107
146
|
/** The bridge client (for advanced use / capability checks). */
|
|
108
147
|
get bridge(): BridgeClient;
|
|
109
148
|
act(instruction: string, options?: StepOptions): Promise<StepResult>;
|
|
@@ -139,8 +178,8 @@ export declare class Bubblegum {
|
|
|
139
178
|
* when the visible text is dynamic (a UUID, a DB id) and so can't be named.
|
|
140
179
|
*
|
|
141
180
|
* @example
|
|
142
|
-
* await bg.clickInTable({ column: "
|
|
143
|
-
* await bg.clickInTable({ column: "
|
|
181
|
+
* await bg.clickInTable({ column: "RecordID", row: "first" });
|
|
182
|
+
* await bg.clickInTable({ column: "RecordID", rowMatch: { Name: dbName } });
|
|
144
183
|
*/
|
|
145
184
|
clickInTable(spec: TableCellTarget): Promise<StepResult>;
|
|
146
185
|
/**
|
|
@@ -163,7 +202,7 @@ export declare class Bubblegum {
|
|
|
163
202
|
* inside a badge (expected is matched as a substring of the cell).
|
|
164
203
|
*
|
|
165
204
|
* @example
|
|
166
|
-
* await bg.verifyTable({ columns: ["
|
|
205
|
+
* await bg.verifyTable({ columns: ["RecordID", "Account Status", "Profile Status"] });
|
|
167
206
|
* await bg.verifyTable({ row: { Name: dbName }, cell: { "Account Status": dbStatus } });
|
|
168
207
|
*/
|
|
169
208
|
verifyTable(spec: TableAssertion): Promise<StepResult>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAGhE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAElG,MAAM,MAAM,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAEvC,MAAM,WAAW,aAAc,SAAQ,mBAAmB;IACxD,mCAAmC;IACnC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,wCAAwC;IACxC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oCAAoC;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mEAAmE;IACnE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvC;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6EAA6E;IAC7E,SAAS,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/session.js
CHANGED
|
@@ -33,6 +33,10 @@ export class Bubblegum {
|
|
|
33
33
|
if (opts.cdpEndpoint && !client.hasCapability("channel.web.cdp")) {
|
|
34
34
|
throw new BridgeError(ErrorCodes.Unsupported, "this engine does not support CDP attach (channel.web.cdp); upgrade bubblegum-ai");
|
|
35
35
|
}
|
|
36
|
+
if (opts.existingSessionId && !client.hasCapability("channel.mobile.attach")) {
|
|
37
|
+
throw new BridgeError(ErrorCodes.Unsupported, "this engine does not support attaching to an existing Appium session " +
|
|
38
|
+
"(channel.mobile.attach); upgrade bubblegum-ai");
|
|
39
|
+
}
|
|
36
40
|
const { session_id } = await client.request("session.open", {
|
|
37
41
|
channel: opts.channel ?? "web",
|
|
38
42
|
url: opts.url,
|
|
@@ -42,6 +46,7 @@ export class Bubblegum {
|
|
|
42
46
|
capabilities: opts.capabilities,
|
|
43
47
|
cdp_endpoint: opts.cdpEndpoint,
|
|
44
48
|
page_index: opts.pageIndex,
|
|
49
|
+
existing_session_id: opts.existingSessionId,
|
|
45
50
|
});
|
|
46
51
|
return new Bubblegum(client, session_id);
|
|
47
52
|
}
|
|
@@ -64,6 +69,30 @@ export class Bubblegum {
|
|
|
64
69
|
static attach(opts) {
|
|
65
70
|
return Bubblegum.launch({ ...opts, channel: "web" });
|
|
66
71
|
}
|
|
72
|
+
/**
|
|
73
|
+
* Attach the engine to a mobile (Appium) session your test already drives,
|
|
74
|
+
* by its session id. Cloud device farms (pCloudy, BrowserStack, …) allow only
|
|
75
|
+
* one Appium session per device, so an in-test Bubblegum fallback must reuse
|
|
76
|
+
* the running session instead of opening a new one. The engine shares the
|
|
77
|
+
* session and never quits it — your test keeps ownership of teardown.
|
|
78
|
+
*
|
|
79
|
+
* ```ts
|
|
80
|
+
* // Inside a WebdriverIO test, when a normal locator click fails:
|
|
81
|
+
* const bg = await Bubblegum.attachMobile({
|
|
82
|
+
* appiumUrl: "https://appium.example.com/wd/hub",
|
|
83
|
+
* existingSessionId: browser.sessionId,
|
|
84
|
+
* capabilities: { platformName: "iOS" },
|
|
85
|
+
* });
|
|
86
|
+
* try {
|
|
87
|
+
* await bg.act("Tap Continue");
|
|
88
|
+
* } finally {
|
|
89
|
+
* await bg.close(); // closes the engine wrapper only; device session stays up
|
|
90
|
+
* }
|
|
91
|
+
* ```
|
|
92
|
+
*/
|
|
93
|
+
static attachMobile(opts) {
|
|
94
|
+
return Bubblegum.launch({ ...opts, channel: "mobile" });
|
|
95
|
+
}
|
|
67
96
|
/** The bridge client (for advanced use / capability checks). */
|
|
68
97
|
get bridge() {
|
|
69
98
|
return this.client;
|
|
@@ -133,8 +162,8 @@ export class Bubblegum {
|
|
|
133
162
|
* when the visible text is dynamic (a UUID, a DB id) and so can't be named.
|
|
134
163
|
*
|
|
135
164
|
* @example
|
|
136
|
-
* await bg.clickInTable({ column: "
|
|
137
|
-
* await bg.clickInTable({ column: "
|
|
165
|
+
* await bg.clickInTable({ column: "RecordID", row: "first" });
|
|
166
|
+
* await bg.clickInTable({ column: "RecordID", rowMatch: { Name: dbName } });
|
|
138
167
|
*/
|
|
139
168
|
clickInTable(spec) {
|
|
140
169
|
const { column, row, rowMatch, timeoutMs } = spec;
|
|
@@ -171,7 +200,7 @@ export class Bubblegum {
|
|
|
171
200
|
* inside a badge (expected is matched as a substring of the cell).
|
|
172
201
|
*
|
|
173
202
|
* @example
|
|
174
|
-
* await bg.verifyTable({ columns: ["
|
|
203
|
+
* await bg.verifyTable({ columns: ["RecordID", "Account Status", "Profile Status"] });
|
|
175
204
|
* await bg.verifyTable({ row: { Name: dbName }, cell: { "Account Status": dbStatus } });
|
|
176
205
|
*/
|
|
177
206
|
verifyTable(spec) {
|
package/dist/esm/session.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAuB,MAAM,aAAa,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bubblegum-ai/node",
|
|
3
|
-
"version": "0.0.6-alpha.
|
|
3
|
+
"version": "0.0.6-alpha.12",
|
|
4
4
|
"description": "Node/TypeScript client for the Bubblegum engine — drive AI-powered, natural-language Playwright/Appium test steps from JS/TS via the Bubblegum JSON-RPC bridge.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"exports": {
|