safaridriver 0.0.5 → 0.1.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.
package/README.md CHANGED
@@ -19,7 +19,7 @@ To start a Safaridriver server, import the package and run:
19
19
  ```js
20
20
  import safaridriver from 'safaridriver'
21
21
 
22
- safaridriver.start()
22
+ await safaridriver.start()
23
23
 
24
24
  // run some automation...
25
25
 
@@ -43,6 +43,13 @@ Path to Safaridriver binary.
43
43
  __Type:__ `string`<br />
44
44
  __Default:__ `/usr/bin/safaridriver`
45
45
 
46
+ ### `useTechnologyPreview`
47
+
48
+ If set to `true`, it will start the Safaridriver for Safari Technology Preview. Make sure you have it installed by installing Safari Technology Preview on Apple's [offical website](https://developer.apple.com/safari/technology-preview/).
49
+
50
+ __Type:__ `boolean`<br />
51
+ __Default:__ `false`
52
+
46
53
  ### `enable`
47
54
 
48
55
  Applies configuration changes so that subsequent WebDriver sessions will run without further authentication. This includes checking "Enable Remote Automation" in Safari's `Develop` menu. The user must authenticate via password for the changes to be applied.
package/dist/index.d.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  import cp from 'node:child_process';
2
2
  export declare const DEFAULT_PATH = "/usr/bin/safaridriver";
3
+ export declare const DEFAULT_STP_PATH = "/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver";
3
4
  export declare const DEFAULT_PORT = 4444;
4
5
  export interface SafaridriverOptions {
5
6
  /**
@@ -30,6 +31,10 @@ export interface SafaridriverOptions {
30
31
  * @default false
31
32
  */
32
33
  diagnose?: boolean;
34
+ /**
35
+ * If enabled, it starts the Safaridriver binary from the Safari Technology Preview app.
36
+ */
37
+ useTechnologyPreview?: boolean;
33
38
  }
34
39
  export declare const start: (options?: SafaridriverOptions) => cp.ChildProcess;
35
40
  export declare const stop: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,MAAM,oBAAoB,CAAA;AAE1D,eAAO,MAAM,YAAY,0BAA0B,CAAA;AACnD,eAAO,MAAM,YAAY,OAAO,CAAA;AAEhC,MAAM,WAAW,mBAAmB;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;CACrB;AAID,eAAO,MAAM,KAAK,aAAa,mBAAmB,oBAoBjD,CAAA;AAED,eAAO,MAAM,IAAI,YAKhB,CAAA;;;;;AAED,wBAA8B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAyB,MAAM,oBAAoB,CAAA;AAE1D,eAAO,MAAM,YAAY,0BAA0B,CAAA;AACnD,eAAO,MAAM,gBAAgB,4EAA4E,CAAA;AACzG,eAAO,MAAM,YAAY,OAAO,CAAA;AAEhC,MAAM,WAAW,mBAAmB;IAChC;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;;;;;;;OASG;IACH,MAAM,CAAC,EAAE,OAAO,CAAA;IAChB;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB;;OAEG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAA;CACjC;AAID,eAAO,MAAM,KAAK,aAAa,mBAAmB,oBAgCjD,CAAA;AAED,eAAO,MAAM,IAAI,YAKhB,CAAA;;;;;AAED,wBAA8B"}
package/dist/index.js CHANGED
@@ -1,12 +1,21 @@
1
+ import fs from 'node:fs';
1
2
  import cp from 'node:child_process';
2
3
  export const DEFAULT_PATH = '/usr/bin/safaridriver';
4
+ export const DEFAULT_STP_PATH = '/Applications/Safari Technology Preview.app/Contents/MacOS/safaridriver';
3
5
  export const DEFAULT_PORT = 4444;
4
6
  let instance;
5
7
  let instanceOptions;
6
8
  export const start = (options = {}) => {
7
9
  const port = typeof options.port === 'number' ? options.port : DEFAULT_PORT;
8
10
  const args = [`--port=${port}`];
9
- const driverPath = options.path || DEFAULT_PATH;
11
+ const driverPath = options.path || (options.useTechnologyPreview
12
+ ? DEFAULT_STP_PATH
13
+ : DEFAULT_PATH);
14
+ const isSTPInstalled = options.useTechnologyPreview && fs.existsSync(DEFAULT_STP_PATH);
15
+ if (options.useTechnologyPreview && !isSTPInstalled) {
16
+ throw new Error('Safari Technology Preview is not installed! Please go to ' +
17
+ 'https://developer.apple.com/safari/technology-preview/ and install it.');
18
+ }
10
19
  if (options.enable) {
11
20
  args.push('--enable');
12
21
  }
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,MAAM,oBAAoB,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAA;AACnD,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAA;AAiChC,IAAI,QAAsB,CAAA;AAC1B,IAAI,eAAoC,CAAA;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,UAA+B,EAAE,EAAE,EAAE;IACvD,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAA;IAC3E,MAAM,IAAI,GAAa,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,YAAY,CAAA;IAE/C,IAAI,OAAO,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACxB;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;KAC1B;IAED,IAAI,QAAQ,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,4DAA4D,eAAe,CAAC,IAAI,GAAG,CAAC,CAAA;KACvG;IAED,eAAe,GAAG,OAAO,CAAA;IACzB,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IACxC,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE;IACrB,IAAI,QAAQ,EAAE;QACV,QAAQ,CAAC,IAAI,EAAE,CAAA;QACf,QAAQ,GAAG,SAAS,CAAA;KACvB;AACL,CAAC,CAAA;AAED,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,EAAyB,MAAM,oBAAoB,CAAA;AAE1D,MAAM,CAAC,MAAM,YAAY,GAAG,uBAAuB,CAAA;AACnD,MAAM,CAAC,MAAM,gBAAgB,GAAG,yEAAyE,CAAA;AACzG,MAAM,CAAC,MAAM,YAAY,GAAG,IAAI,CAAA;AAqChC,IAAI,QAAsB,CAAA;AAC1B,IAAI,eAAoC,CAAA;AACxC,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,UAA+B,EAAE,EAAE,EAAE;IACvD,MAAM,IAAI,GAAG,OAAO,OAAO,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,CAAA;IAC3E,MAAM,IAAI,GAAa,CAAC,UAAU,IAAI,EAAE,CAAC,CAAA;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,IAAI,CAC/B,OAAO,CAAC,oBAAoB;QACxB,CAAC,CAAC,gBAAgB;QAClB,CAAC,CAAC,YAAY,CACrB,CAAA;IAED,MAAM,cAAc,GAAG,OAAO,CAAC,oBAAoB,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAA;IACtF,IAAI,OAAO,CAAC,oBAAoB,IAAI,CAAC,cAAc,EAAE;QACjD,MAAM,IAAI,KAAK,CACX,2DAA2D;YAC3D,wEAAwE,CAC3E,CAAA;KACJ;IAED,IAAI,OAAO,CAAC,MAAM,EAAE;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;KACxB;IAED,IAAI,OAAO,CAAC,QAAQ,EAAE;QAClB,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAA;KAC1B;IAED,IAAI,QAAQ,EAAE;QACV,MAAM,IAAI,KAAK,CAAC,4DAA4D,eAAe,CAAC,IAAI,GAAG,CAAC,CAAA;KACvG;IAED,eAAe,GAAG,OAAO,CAAA;IACzB,QAAQ,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,IAAI,CAAC,CAAA;IACxC,OAAO,QAAQ,CAAA;AACnB,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,EAAE;IACrB,IAAI,QAAQ,EAAE;QACV,QAAQ,CAAC,IAAI,EAAE,CAAA;QACf,QAAQ,GAAG,SAAS,CAAA;KACvB;AACL,CAAC,CAAA;AAED,eAAe,EAAE,KAAK,EAAE,IAAI,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "safaridriver",
3
- "version": "0.0.5",
3
+ "version": "0.1.0",
4
4
  "author": "Christian Bromann <mail@bromann.dev>",
5
5
  "license": "MIT",
6
6
  "description": "An NPM wrapper for handling the Safaridriver binary.",
@@ -46,16 +46,16 @@
46
46
  "types": "./dist/index.d.ts",
47
47
  "typeScriptVersion": "3.8.3",
48
48
  "devDependencies": {
49
- "@typescript-eslint/eslint-plugin": "^5.48.0",
50
- "@typescript-eslint/parser": "^5.48.0",
51
- "@vitest/coverage-c8": "^0.31.0",
52
- "eslint": "^8.31.0",
53
- "eslint-plugin-import": "^2.26.0",
54
- "eslint-plugin-unicorn": "^47.0.0",
49
+ "@typescript-eslint/eslint-plugin": "^6.0.0",
50
+ "@typescript-eslint/parser": "^6.0.0",
51
+ "@vitest/coverage-c8": "^0.33.0",
52
+ "eslint": "^8.45.0",
53
+ "eslint-plugin-import": "^2.27.5",
54
+ "eslint-plugin-unicorn": "^48.0.0",
55
55
  "husky": "^8.0.3",
56
56
  "npm-run-all": "^4.1.5",
57
- "release-it": "^15.6.0",
58
- "typescript": "^5.0.2",
59
- "vitest": "^0.31.0"
57
+ "release-it": "^16.1.0",
58
+ "typescript": "^5.1.6",
59
+ "vitest": "^0.33.0"
60
60
  }
61
61
  }