@datacamp/learn-vm-scripts 1.11.0 → 1.13.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.
Files changed (2) hide show
  1. package/dist/index.cjs +28 -57
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -366649,33 +366649,27 @@ var setFullscreen = async (page, provider) => {
366649
366649
  log(`Failed to set fullscreen for ${provider}: ${error}`);
366650
366650
  }
366651
366651
  };
366652
- var waitForStableBox = async (page, selector, stableMs = 200) => {
366653
- await page.waitForSelector(selector, { visible: true });
366654
- return page.waitForFunction(
366655
- (sel, stable) => {
366656
- const el = document.querySelector(sel);
366657
- if (!el) return false;
366658
- const now = performance.now();
366659
- const rect = el.getBoundingClientRect();
366660
- if (!window.__stableBox) {
366661
- window.__stableBox = {};
366662
- }
366663
- const previous = window.__stableBox[sel];
366664
- if (!previous) {
366665
- window.__stableBox[sel] = { rect, t: now };
366666
- return false;
366667
- }
366668
- const samePos = Math.abs(previous.rect.x - rect.x) < 0.5 && Math.abs(previous.rect.y - rect.y) < 0.5 && Math.abs(previous.rect.width - rect.width) < 0.5 && Math.abs(previous.rect.height - rect.height) < 0.5;
366669
- if (!samePos) {
366670
- window.__stableBox[sel] = { rect, t: now };
366671
- return false;
366672
- }
366673
- return now - previous.t >= stable;
366674
- },
366675
- { timeout: 3e3 },
366676
- selector,
366677
- stableMs
366678
- );
366652
+
366653
+ // src/retryWithExponentialBackoff.ts
366654
+ var retryWithExponentialBackoff = async ({
366655
+ fn,
366656
+ maxRetries,
366657
+ initialDelay
366658
+ }) => {
366659
+ let retries = 0;
366660
+ while (retries < maxRetries) {
366661
+ try {
366662
+ await fn();
366663
+ return;
366664
+ } catch (e) {
366665
+ console.error(`Error in exponential backoff iteration ${retries}:`, e);
366666
+ await new Promise(
366667
+ (resolve5) => setTimeout(resolve5, 2 ** retries * initialDelay)
366668
+ );
366669
+ retries++;
366670
+ }
366671
+ }
366672
+ throw new Error("Max retries exceeded");
366679
366673
  };
366680
366674
 
366681
366675
  // src/setInput.ts
@@ -366684,22 +366678,23 @@ var setInput = async ({
366684
366678
  querySelector,
366685
366679
  value
366686
366680
  }) => {
366687
- try {
366688
- await waitForStableBox(page, querySelector);
366689
- } catch (error) {
366690
- log(`Error waiting for stable box: ${error}`);
366691
- }
366681
+ await page.waitForSelector(querySelector, { visible: true });
366692
366682
  try {
366693
366683
  await page.type(querySelector, value);
366694
366684
  } catch (error) {
366695
366685
  log(`Error typing in input: ${error}`);
366696
366686
  }
366697
- return page.evaluate(
366687
+ const fn = () => page.evaluate(
366698
366688
  ({ querySelector: querySelector2, value: value2 }) => {
366699
366689
  document.querySelector(querySelector2).value = value2;
366700
366690
  },
366701
366691
  { querySelector, value }
366702
366692
  );
366693
+ return retryWithExponentialBackoff({
366694
+ fn,
366695
+ initialDelay: 100,
366696
+ maxRetries: 3
366697
+ });
366703
366698
  };
366704
366699
 
366705
366700
  // src/azureLogin.ts
@@ -366825,30 +366820,6 @@ async function loginToDatabricks({
366825
366820
  // src/resetChrome.ts
366826
366821
  var import_node_child_process = require("node:child_process");
366827
366822
  var import_promises = require("node:fs/promises");
366828
-
366829
- // src/retryWithExponentialBackoff.ts
366830
- var retryWithExponentialBackoff = async ({
366831
- fn,
366832
- maxRetries,
366833
- initialDelay
366834
- }) => {
366835
- let retries = 0;
366836
- while (retries < maxRetries) {
366837
- try {
366838
- await fn();
366839
- return;
366840
- } catch (e) {
366841
- console.error(`Error in exponential backoff iteration ${retries}:`, e);
366842
- await new Promise(
366843
- (resolve5) => setTimeout(resolve5, 2 ** retries * initialDelay)
366844
- );
366845
- retries++;
366846
- }
366847
- }
366848
- throw new Error("Max retries exceeded");
366849
- };
366850
-
366851
- // src/resetChrome.ts
366852
366823
  var resetChrome = async ({ userDataDir }) => {
366853
366824
  try {
366854
366825
  const stdout = (0, import_node_child_process.execSync)("taskkill /IM chrome.exe /F");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datacamp/learn-vm-scripts",
3
- "version": "1.11.0",
3
+ "version": "1.13.0",
4
4
  "repository": "git@github.com:datacamp-engineering/learn-vm-scripts.git",
5
5
  "description": "Scripts used by VMs in learn.",
6
6
  "main": "./dist/index.cjs",