@desplega.ai/qa-use 2.5.3 → 2.6.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 (61) hide show
  1. package/dist/lib/api/index.d.ts +1 -0
  2. package/dist/lib/api/index.d.ts.map +1 -1
  3. package/dist/lib/api/index.js +2 -0
  4. package/dist/lib/api/index.js.map +1 -1
  5. package/dist/package.json +1 -1
  6. package/dist/src/cli/commands/browser/check.d.ts.map +1 -1
  7. package/dist/src/cli/commands/browser/check.js +1 -6
  8. package/dist/src/cli/commands/browser/check.js.map +1 -1
  9. package/dist/src/cli/commands/browser/click.d.ts.map +1 -1
  10. package/dist/src/cli/commands/browser/click.js +8 -7
  11. package/dist/src/cli/commands/browser/click.js.map +1 -1
  12. package/dist/src/cli/commands/browser/create.d.ts.map +1 -1
  13. package/dist/src/cli/commands/browser/create.js +64 -14
  14. package/dist/src/cli/commands/browser/create.js.map +1 -1
  15. package/dist/src/cli/commands/browser/drag.d.ts.map +1 -1
  16. package/dist/src/cli/commands/browser/drag.js +1 -6
  17. package/dist/src/cli/commands/browser/drag.js.map +1 -1
  18. package/dist/src/cli/commands/browser/fill.d.ts.map +1 -1
  19. package/dist/src/cli/commands/browser/fill.js +1 -6
  20. package/dist/src/cli/commands/browser/fill.js.map +1 -1
  21. package/dist/src/cli/commands/browser/hover.d.ts.map +1 -1
  22. package/dist/src/cli/commands/browser/hover.js +1 -6
  23. package/dist/src/cli/commands/browser/hover.js.map +1 -1
  24. package/dist/src/cli/commands/browser/mfa-totp.d.ts.map +1 -1
  25. package/dist/src/cli/commands/browser/mfa-totp.js +1 -6
  26. package/dist/src/cli/commands/browser/mfa-totp.js.map +1 -1
  27. package/dist/src/cli/commands/browser/run.d.ts.map +1 -1
  28. package/dist/src/cli/commands/browser/run.js +24 -12
  29. package/dist/src/cli/commands/browser/run.js.map +1 -1
  30. package/dist/src/cli/commands/browser/scroll-into-view.d.ts.map +1 -1
  31. package/dist/src/cli/commands/browser/scroll-into-view.js +1 -6
  32. package/dist/src/cli/commands/browser/scroll-into-view.js.map +1 -1
  33. package/dist/src/cli/commands/browser/select.d.ts.map +1 -1
  34. package/dist/src/cli/commands/browser/select.js +1 -6
  35. package/dist/src/cli/commands/browser/select.js.map +1 -1
  36. package/dist/src/cli/commands/browser/type.d.ts.map +1 -1
  37. package/dist/src/cli/commands/browser/type.js +1 -6
  38. package/dist/src/cli/commands/browser/type.js.map +1 -1
  39. package/dist/src/cli/commands/browser/uncheck.d.ts.map +1 -1
  40. package/dist/src/cli/commands/browser/uncheck.js +1 -6
  41. package/dist/src/cli/commands/browser/uncheck.js.map +1 -1
  42. package/dist/src/cli/commands/browser/upload.d.ts.map +1 -1
  43. package/dist/src/cli/commands/browser/upload.js +1 -6
  44. package/dist/src/cli/commands/browser/upload.js.map +1 -1
  45. package/dist/src/cli/commands/test/export.d.ts.map +1 -1
  46. package/dist/src/cli/commands/test/export.js +6 -5
  47. package/dist/src/cli/commands/test/export.js.map +1 -1
  48. package/dist/src/cli/commands/test/sync.d.ts +1 -1
  49. package/dist/src/cli/commands/test/sync.d.ts.map +1 -1
  50. package/dist/src/cli/commands/test/sync.js +144 -30
  51. package/dist/src/cli/commands/test/sync.js.map +1 -1
  52. package/dist/src/cli/lib/browser-utils.d.ts +20 -0
  53. package/dist/src/cli/lib/browser-utils.d.ts.map +1 -0
  54. package/dist/src/cli/lib/browser-utils.js +32 -0
  55. package/dist/src/cli/lib/browser-utils.js.map +1 -0
  56. package/dist/src/utils/strings.d.ts +8 -0
  57. package/dist/src/utils/strings.d.ts.map +1 -0
  58. package/dist/src/utils/strings.js +13 -0
  59. package/dist/src/utils/strings.js.map +1 -0
  60. package/lib/api/index.ts +2 -0
  61. package/package.json +1 -1
@@ -1,20 +1,24 @@
1
1
  /**
2
- * qa-use test sync - Sync local and cloud tests
2
+ * qa-use test sync - Sync local tests with cloud
3
3
  */
4
4
  import * as fs from 'node:fs/promises';
5
5
  import * as path from 'node:path';
6
6
  import { Command } from 'commander';
7
7
  import * as yaml from 'yaml';
8
8
  import { ApiClient } from '../../../../lib/api/index.js';
9
+ import { toSafeFilename } from '../../../utils/strings.js';
9
10
  import { loadConfig } from '../../lib/config.js';
10
11
  import { discoverTests, loadTestDefinition } from '../../lib/loader.js';
11
12
  import { error, formatError, info, success, warning } from '../../lib/output.js';
12
- export const syncCommand = new Command('sync')
13
- .description('Sync local tests with cloud')
14
- .option('--pull', 'Pull tests from cloud to local (default)')
15
- .option('--push', 'Push local tests to cloud')
13
+ // Parent command
14
+ export const syncCommand = new Command('sync').description('Sync local tests with cloud');
15
+ // Pull subcommand
16
+ const pullCommand = new Command('pull')
17
+ .description('Pull tests from cloud to local')
18
+ .option('--id <uuid>', 'Pull single test by ID')
19
+ .option('--app-config-id <id>', 'Pull tests for specific app config')
16
20
  .option('--dry-run', 'Show what would be synced without making changes')
17
- .option('--force', 'Overwrite existing files/tests without prompting')
21
+ .option('--force', 'Overwrite existing files without prompting')
18
22
  .action(async (options) => {
19
23
  try {
20
24
  const config = await loadConfig();
@@ -28,25 +32,90 @@ export const syncCommand = new Command('sync')
28
32
  const client = new ApiClient(config.api_url);
29
33
  client.setApiKey(config.api_key);
30
34
  const testDir = config.test_directory || './qa-tests';
31
- if (options.push) {
32
- await pushToCloud(client, testDir, options.dryRun, options.force);
33
- }
34
- else {
35
- // Default to pull
36
- await pullFromCloud(client, testDir, options.dryRun, options.force);
35
+ await pullFromCloud(client, testDir, {
36
+ dryRun: options.dryRun,
37
+ force: options.force,
38
+ testId: options.id,
39
+ appConfigId: options.appConfigId,
40
+ });
41
+ }
42
+ catch (err) {
43
+ console.log(error(`Sync failed: ${formatError(err)}`));
44
+ process.exit(1);
45
+ }
46
+ });
47
+ // Push subcommand
48
+ const pushCommand = new Command('push')
49
+ .description('Push local tests to cloud')
50
+ .option('--id <uuid>', 'Push single test by ID')
51
+ .option('--all', 'Push all local tests')
52
+ .option('--dry-run', 'Show what would be synced without making changes')
53
+ .option('--force', 'Overwrite cloud tests without version check')
54
+ .action(async (options) => {
55
+ // Require --id or --all
56
+ if (!options.id && !options.all) {
57
+ console.log(error('Must specify --id <uuid> or --all'));
58
+ console.log(' Use --id to push a single test');
59
+ console.log(' Use --all to push all local tests');
60
+ process.exit(1);
61
+ }
62
+ try {
63
+ const config = await loadConfig();
64
+ // Check API key
65
+ if (!config.api_key) {
66
+ console.log(error('API key not configured'));
67
+ console.log(' Run `qa-use setup` to configure');
68
+ process.exit(1);
37
69
  }
70
+ // Initialize API client
71
+ const client = new ApiClient(config.api_url);
72
+ client.setApiKey(config.api_key);
73
+ const testDir = config.test_directory || './qa-tests';
74
+ await pushToCloud(client, testDir, {
75
+ dryRun: options.dryRun,
76
+ force: options.force,
77
+ testId: options.id,
78
+ });
38
79
  }
39
80
  catch (err) {
40
81
  console.log(error(`Sync failed: ${formatError(err)}`));
41
82
  process.exit(1);
42
83
  }
43
84
  });
85
+ syncCommand.addCommand(pullCommand);
86
+ syncCommand.addCommand(pushCommand);
44
87
  /**
45
88
  * Pull tests from cloud to local files
46
89
  */
47
- async function pullFromCloud(client, testDir, dryRun = false, force = false) {
90
+ async function pullFromCloud(client, testDir, options = {}) {
91
+ const { dryRun = false, force = false, testId, appConfigId } = options;
92
+ // Single test by ID
93
+ if (testId) {
94
+ console.log(info(`Fetching test ${testId} from cloud...\n`));
95
+ if (dryRun) {
96
+ console.log(` Would pull: test ${testId}`);
97
+ console.log('');
98
+ console.log(info('Dry run complete.'));
99
+ return;
100
+ }
101
+ try {
102
+ const content = await client.exportTest(testId, 'yaml', true);
103
+ await writeTestsFromContent(content, testDir, force);
104
+ }
105
+ catch (err) {
106
+ console.log(error(`Failed to export test ${testId}: ${formatError(err)}`));
107
+ process.exit(1);
108
+ }
109
+ return;
110
+ }
111
+ // List tests with optional app_config_id filter
48
112
  console.log(info('Fetching tests from cloud...\n'));
49
- const cloudTests = await client.listTests({ limit: 100 });
113
+ const listOptions = { limit: 100 };
114
+ if (appConfigId) {
115
+ listOptions.app_config_id = appConfigId;
116
+ console.log(info(`Filtering by app config: ${appConfigId}\n`));
117
+ }
118
+ const cloudTests = await client.listTests(listOptions);
50
119
  if (cloudTests.length === 0) {
51
120
  console.log(warning('No tests found in cloud'));
52
121
  return;
@@ -65,10 +134,7 @@ async function pullFromCloud(client, testDir, dryRun = false, force = false) {
65
134
  continue;
66
135
  }
67
136
  if (dryRun) {
68
- const safeName = test.name
69
- .toLowerCase()
70
- .replace(/[^a-z0-9]+/g, '-')
71
- .replace(/^-|-$/g, '');
137
+ const safeName = toSafeFilename(test.name);
72
138
  console.log(` Would pull: ${test.name} -> ${path.join(testDir, `${safeName}.yaml`)}`);
73
139
  continue;
74
140
  }
@@ -84,10 +150,7 @@ async function pullFromCloud(client, testDir, dryRun = false, force = false) {
84
150
  if (testDef.id && writtenIds.has(testDef.id)) {
85
151
  continue;
86
152
  }
87
- const safeName = (testDef.name || testDef.id || 'unnamed-test')
88
- .toLowerCase()
89
- .replace(/[^a-z0-9]+/g, '-')
90
- .replace(/^-|-$/g, '');
153
+ const safeName = toSafeFilename(testDef.name || testDef.id || '');
91
154
  const outputPath = path.join(testDir, `${safeName}.yaml`);
92
155
  // Check if file exists
93
156
  let exists = false;
@@ -126,6 +189,43 @@ async function pullFromCloud(client, testDir, dryRun = false, force = false) {
126
189
  console.log(success(`Pulled ${pulled} test(s), skipped ${skipped}`));
127
190
  }
128
191
  }
192
+ /**
193
+ * Write tests from YAML content to files
194
+ */
195
+ async function writeTestsFromContent(content, testDir, force) {
196
+ // Ensure directory exists
197
+ await fs.mkdir(testDir, { recursive: true });
198
+ // Parse multi-document YAML
199
+ const docs = yaml.parseAllDocuments(content);
200
+ const tests = docs.map((d) => d.toJSON());
201
+ let pulled = 0;
202
+ let skipped = 0;
203
+ for (const testDef of tests) {
204
+ const safeName = toSafeFilename(testDef.name || testDef.id || '');
205
+ const outputPath = path.join(testDir, `${safeName}.yaml`);
206
+ // Check if file exists
207
+ let exists = false;
208
+ try {
209
+ await fs.access(outputPath);
210
+ exists = true;
211
+ }
212
+ catch {
213
+ // File doesn't exist
214
+ }
215
+ if (exists && !force) {
216
+ console.log(` Skip: ${safeName}.yaml (exists, use --force to overwrite)`);
217
+ skipped++;
218
+ }
219
+ else {
220
+ const testContent = yaml.stringify(testDef);
221
+ await fs.writeFile(outputPath, testContent, 'utf-8');
222
+ console.log(success(` ${safeName}.yaml`));
223
+ pulled++;
224
+ }
225
+ }
226
+ console.log('');
227
+ console.log(success(`Pulled ${pulled} test(s), skipped ${skipped}`));
228
+ }
129
229
  /**
130
230
  * Update version_hash in a local YAML file
131
231
  * @internal Exported for testing
@@ -139,7 +239,8 @@ export async function updateLocalVersionHash(filePath, versionHash) {
139
239
  /**
140
240
  * Push local tests to cloud
141
241
  */
142
- async function pushToCloud(client, testDir, dryRun = false, force = false) {
242
+ async function pushToCloud(client, testDir, options = {}) {
243
+ const { dryRun = false, force = false, testId } = options;
143
244
  console.log(info(`Loading local tests from ${testDir}...\n`));
144
245
  const files = await discoverTests(testDir);
145
246
  if (files.length === 0) {
@@ -147,7 +248,6 @@ async function pushToCloud(client, testDir, dryRun = false, force = false) {
147
248
  console.log(' Run `qa-use test init` to create example tests');
148
249
  return;
149
250
  }
150
- console.log(`Found ${files.length} local test(s)\n`);
151
251
  // Load all test definitions
152
252
  const definitions = [];
153
253
  for (const file of files) {
@@ -163,18 +263,32 @@ async function pushToCloud(client, testDir, dryRun = false, force = false) {
163
263
  console.log(error('No valid test definitions found'));
164
264
  return;
165
265
  }
266
+ // Filter to single test if --id provided
267
+ let toImport = definitions;
268
+ if (testId) {
269
+ toImport = definitions.filter((d) => d.def.id === testId || d.def.name === testId);
270
+ if (toImport.length === 0) {
271
+ console.log(error(`Test not found: ${testId}`));
272
+ console.log(' Searched by ID and name in local test files');
273
+ process.exit(1);
274
+ }
275
+ console.log(`Found ${toImport.length} matching test(s)\n`);
276
+ }
277
+ else {
278
+ console.log(`Found ${definitions.length} local test(s)\n`);
279
+ }
166
280
  if (dryRun) {
167
281
  console.log(info('Dry run - would push:'));
168
- for (const { file, def } of definitions) {
282
+ for (const { file, def } of toImport) {
169
283
  console.log(` ${def.name || path.basename(file)}`);
170
284
  }
171
285
  console.log('');
172
- console.log(info(`Would import ${definitions.length} test(s)`));
286
+ console.log(info(`Would import ${toImport.length} test(s)`));
173
287
  return;
174
288
  }
175
289
  // Import to cloud
176
290
  console.log('Importing to cloud...\n');
177
- const result = await client.importTestDefinition(definitions.map((d) => d.def), { upsert: true, force });
291
+ const result = await client.importTestDefinition(toImport.map((d) => d.def), { upsert: true, force });
178
292
  if (result.success) {
179
293
  const conflictFiles = [];
180
294
  for (const imported of result.imported) {
@@ -191,7 +305,7 @@ async function pushToCloud(client, testDir, dryRun = false, force = false) {
191
305
  case 'conflict': {
192
306
  console.log(warning(` CONFLICT: ${imported.name} - ${imported.message}`));
193
307
  // Find the local file for this conflict
194
- const localDef = definitions.find((d) => d.def.id === imported.id || d.def.name === imported.name);
308
+ const localDef = toImport.find((d) => d.def.id === imported.id || d.def.name === imported.name);
195
309
  if (localDef) {
196
310
  // Strip extension for cleaner command suggestion
197
311
  const relPath = path.relative(testDir, localDef.file);
@@ -209,7 +323,7 @@ async function pushToCloud(client, testDir, dryRun = false, force = false) {
209
323
  for (const imported of result.imported) {
210
324
  if (imported.version_hash &&
211
325
  (imported.action === 'created' || imported.action === 'updated')) {
212
- const localDef = definitions.find((d) => d.def.id === imported.id || d.def.name === imported.name);
326
+ const localDef = toImport.find((d) => d.def.id === imported.id || d.def.name === imported.name);
213
327
  if (localDef) {
214
328
  try {
215
329
  await updateLocalVersionHash(localDef.file, imported.version_hash);
@@ -227,7 +341,7 @@ async function pushToCloud(client, testDir, dryRun = false, force = false) {
227
341
  console.log(` qa-use test diff ${file}`);
228
342
  }
229
343
  console.log('');
230
- console.log(info('Then use --force to overwrite, or --pull to get latest versions.'));
344
+ console.log(info('Then use --force to overwrite, or pull to get latest versions.'));
231
345
  }
232
346
  console.log(success(`Pushed ${result.imported.length} test(s)`));
233
347
  }
@@ -1 +1 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../../src/cli/commands/test/sync.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../../../../src/cli/commands/test/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Normalize element ref by stripping quotes and @ symbol
3
+ *
4
+ * Handles standard refs (e31), @ prefixed refs (@e31), and custom selectors
5
+ * (__custom__data-testid=...) when wrapped in quotes.
6
+ *
7
+ * Examples:
8
+ * - "e31" → e31
9
+ * - 'e31' → e31
10
+ * - @e31 → e31
11
+ * - "@e31" → e31
12
+ * - e31 → e31
13
+ * - "__custom__data-testid=rf__node-1" → __custom__data-testid=rf__node-1
14
+ * - '__custom__data-testid=rf__node-2' → __custom__data-testid=rf__node-2
15
+ *
16
+ * @param ref - Element ref from snapshot or user input
17
+ * @returns Normalized ref without quotes or @ prefix
18
+ */
19
+ export declare function normalizeRef(ref: string): string;
20
+ //# sourceMappingURL=browser-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-utils.d.ts","sourceRoot":"","sources":["../../../../src/cli/lib/browser-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiBhD"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Normalize element ref by stripping quotes and @ symbol
3
+ *
4
+ * Handles standard refs (e31), @ prefixed refs (@e31), and custom selectors
5
+ * (__custom__data-testid=...) when wrapped in quotes.
6
+ *
7
+ * Examples:
8
+ * - "e31" → e31
9
+ * - 'e31' → e31
10
+ * - @e31 → e31
11
+ * - "@e31" → e31
12
+ * - e31 → e31
13
+ * - "__custom__data-testid=rf__node-1" → __custom__data-testid=rf__node-1
14
+ * - '__custom__data-testid=rf__node-2' → __custom__data-testid=rf__node-2
15
+ *
16
+ * @param ref - Element ref from snapshot or user input
17
+ * @returns Normalized ref without quotes or @ prefix
18
+ */
19
+ export function normalizeRef(ref) {
20
+ let normalized = ref;
21
+ // Strip surrounding quotes (both single and double)
22
+ if ((normalized.startsWith('"') && normalized.endsWith('"')) ||
23
+ (normalized.startsWith("'") && normalized.endsWith("'"))) {
24
+ normalized = normalized.slice(1, -1);
25
+ }
26
+ // Strip leading @ symbol
27
+ if (normalized.startsWith('@')) {
28
+ normalized = normalized.slice(1);
29
+ }
30
+ return normalized;
31
+ }
32
+ //# sourceMappingURL=browser-utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser-utils.js","sourceRoot":"","sources":["../../../../src/cli/lib/browser-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,UAAU,YAAY,CAAC,GAAW;IACtC,IAAI,UAAU,GAAG,GAAG,CAAC;IAErB,oDAAoD;IACpD,IACE,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACxD,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EACxD,CAAC;QACD,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;IACvC,CAAC;IAED,yBAAyB;IACzB,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Converts a test name to a safe filename slug.
3
+ * - Lowercases the string
4
+ * - Replaces non-alphanumeric characters with hyphens
5
+ * - Removes leading/trailing hyphens
6
+ */
7
+ export declare function toSafeFilename(name: string, fallback?: string): string;
8
+ //# sourceMappingURL=strings.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.d.ts","sourceRoot":"","sources":["../../../src/utils/strings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,SAAiB,GAAG,MAAM,CAK9E"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Converts a test name to a safe filename slug.
3
+ * - Lowercases the string
4
+ * - Replaces non-alphanumeric characters with hyphens
5
+ * - Removes leading/trailing hyphens
6
+ */
7
+ export function toSafeFilename(name, fallback = 'unnamed-test') {
8
+ return (name || fallback)
9
+ .toLowerCase()
10
+ .replace(/[^a-z0-9]+/g, '-')
11
+ .replace(/^-|-$/g, '');
12
+ }
13
+ //# sourceMappingURL=strings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strings.js","sourceRoot":"","sources":["../../../src/utils/strings.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAAC,IAAY,EAAE,QAAQ,GAAG,cAAc;IACpE,OAAO,CAAC,IAAI,IAAI,QAAQ,CAAC;SACtB,WAAW,EAAE;SACb,OAAO,CAAC,aAAa,EAAE,GAAG,CAAC;SAC3B,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;AAC3B,CAAC"}
package/lib/api/index.ts CHANGED
@@ -87,6 +87,7 @@ export interface ListOptions {
87
87
  offset?: number;
88
88
  query?: string;
89
89
  self_only?: boolean;
90
+ app_config_id?: string;
90
91
  }
91
92
 
92
93
  export interface RunTestsOptions {
@@ -589,6 +590,7 @@ export class ApiClient {
589
590
  if (options.limit !== undefined) params.append('limit', options.limit.toString());
590
591
  if (options.offset !== undefined) params.append('offset', options.offset.toString());
591
592
  if (options.query) params.append('query', options.query);
593
+ if (options.app_config_id) params.append('app_config_id', options.app_config_id);
592
594
 
593
595
  if (options.self_only === undefined || options.self_only === true) {
594
596
  params.append('self_only', 'true');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@desplega.ai/qa-use",
3
- "version": "2.5.3",
3
+ "version": "2.6.1",
4
4
  "packageManager": "bun@^1.3.4",
5
5
  "description": "QA automation tool for browser testing with MCP server support",
6
6
  "type": "module",