@mablhq/mabl-cli 2.8.25 → 2.12.7

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 (37) hide show
  1. package/api/mablApiClient.js +24 -0
  2. package/browserLauncher/playwrightBrowserLauncher/playwrightBrowser.js +2 -2
  3. package/browserLauncher/playwrightBrowserLauncher/playwrightPage.js +0 -3
  4. package/commands/environments/environments_cmds/create.js +3 -2
  5. package/commands/environments/environments_cmds/update.js +1 -1
  6. package/commands/tests/testsUtil.js +2 -0
  7. package/core/execution/newman-types.js +2 -1
  8. package/execution/index.js +9 -9
  9. package/execution/index.js.LICENSE.txt +60 -0
  10. package/execution/runAppiumServer.js +16 -4
  11. package/index.d.ts +2 -0
  12. package/mablApi/index.js +1 -1
  13. package/mablscript/importer.js +6 -0
  14. package/mablscript/mobile/steps/EnterTextStep.js +3 -0
  15. package/mablscript/mobile/steps/InstallAppStep.js +22 -0
  16. package/mablscript/mobile/steps/PrepareSessionStep.js +19 -0
  17. package/mablscript/mobile/steps/ScrollStep.js +52 -8
  18. package/mablscript/mobile/steps/UninstallAppStep.js +22 -0
  19. package/mablscript/mobile/steps/stepUtil.js +51 -12
  20. package/mablscript/mobile/tests/TestMobileFindDescriptors.js +72 -1
  21. package/mablscript/mobile/tests/steps/GeneralHumanization.mobiletest.js +144 -7
  22. package/mablscript/mobile/tests/steps/InstallAppStep.mobiletest.js +20 -0
  23. package/mablscript/mobile/tests/steps/ScrollStep.mobiletest.js +289 -78
  24. package/mablscript/mobile/tests/steps/UninstallAppStep.mobiletest.js +20 -0
  25. package/mablscript/steps/AwaitTabStep.js +36 -8
  26. package/mablscript/types/mobile/InstallAppStepDescriptor.js +2 -0
  27. package/mablscript/types/mobile/PrepareSessionStepDescriptor.js +2 -0
  28. package/mablscript/types/mobile/ScrollStepDescriptor.js +14 -0
  29. package/mablscript/types/mobile/UninstallAppStepDescriptor.js +2 -0
  30. package/mablscriptFind/index.js +1 -1
  31. package/package.json +2 -6
  32. package/resources/mablFind.js +1 -1
  33. package/resources/pdf-viewer/embeddedPdfDetection.js +22 -6
  34. package/socketTunnel/index.js +2 -0
  35. package/socketTunnel/index.js.LICENSE.txt +66 -0
  36. package/upload/index.js +1 -1
  37. package/util/downloadUtil.js +1 -1
@@ -117,7 +117,7 @@ mablEmbeddedPdfDetector = () => {
117
117
  const pdfUrl = pdfElement.src || pdfElement.data;
118
118
  const pdfFileName = mablGetPdfFilenameFromUrl(pdfUrl);
119
119
 
120
- const embeddedPdfMablId = '__mabl_pdf_viewer_' + idSanitize(pdfFileName);
120
+ const embeddedPdfMablId = createEmbeddedPdfMablId(pdfFileName);
121
121
  // Mark the embedded PDF element so that we can find it to replace it later
122
122
  pdfElement.setAttribute(
123
123
  MABL_EMBEDDED_PDF_DETECTED_FLAG,
@@ -125,7 +125,7 @@ mablEmbeddedPdfDetector = () => {
125
125
  );
126
126
 
127
127
  // Signal embedded PDF detection and pending download
128
- // Wait for PDF to be downloaded by PageFrameContextTracker before continuing
128
+ // Wait for PDF event be acknowledged by PageFrameContextTracker before continuing
129
129
  await window.dispatchMablEvent({
130
130
  type: MESSAGE_TYPE_EMBEDDED_PDF_DETECTED,
131
131
  baseUri,
@@ -133,6 +133,8 @@ mablEmbeddedPdfDetector = () => {
133
133
  pdfFileName,
134
134
  });
135
135
 
136
+ mablDownloadEmbeddedPdf(pdfFileName, pdfUrl);
137
+
136
138
  // Trigger replacement of the embedded PDF with an interactable version served by PDF server
137
139
  window.dispatchMablEvent({
138
140
  type: MESSAGE_TYPE_EMBEDDED_PDF_MARKED,
@@ -168,10 +170,6 @@ mablEmbeddedPdfDetector = () => {
168
170
  }
169
171
  return true;
170
172
  }
171
-
172
- function idSanitize(originalId) {
173
- return originalId && originalId.replace(/[^a-zA-Z0-9.-]/g, '_');
174
- }
175
173
  };
176
174
 
177
175
  const CHECK_INTERVAL_IN_MILLIS = 300;
@@ -180,6 +178,14 @@ let checkTimer;
180
178
  const checkStartTime = Date.now();
181
179
  const MABL_DEFAULT_PDF_NAME = 'mablPdf';
182
180
 
181
+ function mablPdfIdSanitize(originalId) {
182
+ return originalId && originalId.replace(/[^a-zA-Z0-9.-]/g, '_');
183
+ }
184
+
185
+ function createEmbeddedPdfMablId(pdfFileName) {
186
+ return '__mabl_pdf_viewer_' + mablPdfIdSanitize(pdfFileName);
187
+ }
188
+
183
189
  function documentHasDocType() {
184
190
  return document.doctype && document.doctype.name;
185
191
  }
@@ -200,6 +206,16 @@ function mablGetPdfFilenameFromUrl(pdfUrl) {
200
206
  return pdfUrl.startsWith('blob:') ? 'blob_pdf' : pdfFileName;
201
207
  }
202
208
 
209
+ function mablDownloadEmbeddedPdf(fileName, pdfUrl) {
210
+ const aTag = document.createElement('a');
211
+ aTag.style.display = 'none';
212
+ document.body.appendChild(aTag);
213
+ aTag.href = pdfUrl;
214
+ aTag.setAttribute('download', fileName);
215
+ aTag.click();
216
+ document.body.removeChild(aTag);
217
+ }
218
+
203
219
  if (!documentHasDocType()) {
204
220
  // If this is executed too quickly, the DOCTYPE has not been loaded yet
205
221
  // so wait a bit before checking again.