@datacamp/learn-vm-scripts 1.7.1 → 1.8.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 (2) hide show
  1. package/dist/index.cjs +74 -9
  2. package/package.json +1 -1
package/dist/index.cjs CHANGED
@@ -366615,6 +366615,11 @@ async function setupPuppeteerPage({
366615
366615
  return browser.newPage();
366616
366616
  }
366617
366617
 
366618
+ // src/log.ts
366619
+ var log = (message) => {
366620
+ console.log(`[${(/* @__PURE__ */ new Date()).toISOString()}] ${message}`);
366621
+ };
366622
+
366618
366623
  // src/utils.ts
366619
366624
  var AZURE_LOGIN_URL = "https://portal.azure.com/";
366620
366625
  function ensureHttps(url) {
@@ -366627,6 +366632,20 @@ function ensureHttps(url) {
366627
366632
  var unreachable = (_) => {
366628
366633
  throw new Error("unreachable");
366629
366634
  };
366635
+ var setFullscreen = async (page, provider) => {
366636
+ try {
366637
+ await page.bringToFront();
366638
+ await page.evaluate(() => {
366639
+ if (document.documentElement.requestFullscreen) {
366640
+ document.documentElement.requestFullscreen();
366641
+ } else if (document.documentElement.webkitRequestFullscreen) {
366642
+ document.documentElement.webkitRequestFullscreen();
366643
+ }
366644
+ });
366645
+ } catch (error) {
366646
+ log(`Failed to set fullscreen for ${provider}: ${error}`);
366647
+ }
366648
+ };
366630
366649
 
366631
366650
  // src/setInput.ts
366632
366651
  var setInput = ({
@@ -366642,11 +366661,6 @@ var setInput = ({
366642
366661
  );
366643
366662
  };
366644
366663
 
366645
- // src/log.ts
366646
- var log = (message) => {
366647
- console.log(`[${(/* @__PURE__ */ new Date()).toISOString()}] ${message}`);
366648
- };
366649
-
366650
366664
  // src/azureLogin.ts
366651
366665
  var closeOnboardingPopups = async (page) => {
366652
366666
  const welcomeSurveyCloseButton = 'span.fxs-welcomesurvey-close-icon[role="button"]';
@@ -366898,8 +366912,14 @@ async function navigateToPerplexity({
366898
366912
  url,
366899
366913
  page
366900
366914
  }) {
366901
- log("Navigating to Perplexity page...");
366902
- await page.goto(ensureHttps(url));
366915
+ try {
366916
+ log("Navigating to Perplexity page...");
366917
+ await page.goto(ensureHttps(url));
366918
+ } catch (error) {
366919
+ log(`Navigation failed: ${error}`);
366920
+ } finally {
366921
+ await setFullscreen(page, "Perplexity");
366922
+ }
366903
366923
  }
366904
366924
 
366905
366925
  // src/navigateToChatGPT.ts
@@ -366907,8 +366927,45 @@ async function navigateToChatGPT({
366907
366927
  url,
366908
366928
  page
366909
366929
  }) {
366910
- log("Navigating to ChatGPT page...");
366930
+ try {
366931
+ log("Navigating to ChatGPT page...");
366932
+ await page.goto(ensureHttps(url));
366933
+ } catch (error) {
366934
+ log(`Navigation failed: ${error}`);
366935
+ } finally {
366936
+ await setFullscreen(page, "ChatGPT");
366937
+ }
366938
+ }
366939
+
366940
+ // src/n8nLogin.ts
366941
+ var usernameInputSelector = 'input[name="emailOrLdapLoginId"]';
366942
+ var passwordInputSelector = 'input[name="password"]';
366943
+ var signInButtonSelector = 'button[data-test-id="form-submit-button"]';
366944
+ async function loginToN8N({
366945
+ url,
366946
+ username,
366947
+ page,
366948
+ password
366949
+ }) {
366950
+ log("Navigating to N8N login page...");
366911
366951
  await page.goto(ensureHttps(url));
366952
+ await page.waitForSelector(usernameInputSelector);
366953
+ await page.type(usernameInputSelector, username);
366954
+ await setInput({
366955
+ page,
366956
+ querySelector: usernameInputSelector,
366957
+ value: username
366958
+ });
366959
+ await page.waitForSelector(passwordInputSelector);
366960
+ await page.type(passwordInputSelector, password);
366961
+ await setInput({
366962
+ page,
366963
+ querySelector: passwordInputSelector,
366964
+ value: password
366965
+ });
366966
+ await page.waitForSelector(signInButtonSelector);
366967
+ await page.click(signInButtonSelector);
366968
+ log("Logged in to N8N successfully");
366912
366969
  }
366913
366970
 
366914
366971
  // src/startInputWatcher.ts
@@ -366917,7 +366974,7 @@ var LoggedOutProvidersSchema = objectType({
366917
366974
  url: stringType()
366918
366975
  });
366919
366976
  var LoggedInProvidersSchema = objectType({
366920
- cloudProvider: enumType(["aws", "azure", "snowflake"]),
366977
+ cloudProvider: enumType(["aws", "azure", "snowflake", "n8n"]),
366921
366978
  username: stringType(),
366922
366979
  password: stringType(),
366923
366980
  url: stringType()
@@ -366963,6 +367020,14 @@ var handleInput = async ({ line, page }) => {
366963
367020
  password: input.password
366964
367021
  });
366965
367022
  break;
367023
+ case "n8n":
367024
+ await loginToN8N({
367025
+ url: input.url,
367026
+ username: input.username,
367027
+ page,
367028
+ password: input.password
367029
+ });
367030
+ break;
366966
367031
  case "snowflake":
366967
367032
  await loginToSnowflake({
366968
367033
  url: input.url,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@datacamp/learn-vm-scripts",
3
- "version": "1.7.1",
3
+ "version": "1.8.1",
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",