Socket
Socket
Sign inDemoInstall

@nesk/puphpeteer

Package Overview
Dependencies
43
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.2.0 to 1.3.0

src/Resources/TimeoutError.php

22

.github/contributing.md

@@ -43,7 +43,12 @@ # Contributing to PuPHPeteer

+ $logPath = 'path/to/your.log';
+
+
+ $logger = new \Monolog\Logger('PuPHPeteer');
+ $logger->pushHandler(new \Monolog\Handler\StreamHandler($logPath, \Monolog\Logger::DEBUG));
+
+ $puppeteer = new Puppeteer(['logger' => $logger]);
+
+ $puppeteer = new Puppeteer([
+ 'logger' => $logger,
+ 'log_node_console' => true,
+ 'log_browser_console' => true,
+ ]);
+
$browser = $puppeteer->launch();

@@ -57,7 +62,8 @@ $browser->newPage()->goto('https://example.com');

```
[2018-06-07 12:41:19] PuPHPeteer.DEBUG: [options] {"read_timeout":35,"logger":{}} [] []
[2018-06-07 12:41:19] PuPHPeteer.DEBUG: Starting process... [] []
[2018-06-07 12:41:19] PuPHPeteer.DEBUG: [PID 15547] Process started [] []
[2018-06-07 12:41:20] PuPHPeteer.DEBUG: [PORT 61118] [sending] {"type":"call","name":"launch","catched":false,"value":[]} [] []
[2018-06-07 12:41:20] PuPHPeteer.DEBUG: [PORT 61118] [receiving] {"__rialto_resource__":true,"class_name":"Browser","id":"1528375280340.2676"} [] []
[2018-08-17 10:26:01] PuPHPeteer.INFO: Applying options... {"options":{"read_timeout":30,"log_browser_console":true,"logger":"[object] (Monolog\\Logger: {})","log_node_console":true}} []
[2018-08-17 10:26:01] PuPHPeteer.DEBUG: Options applied and merged with defaults {"options":{"executable_path":"node","idle_timeout":60,"read_timeout":30,"stop_timeout":3,"logger":"[object] (Monolog\\Logger: {})","log_node_console":true,"debug":false,"log_browser_console":true}} []
[2018-08-17 10:26:01] PuPHPeteer.INFO: Starting process with command line: 'node' '/Users/johann/Development/puphpeteer/node_modules/@nesk/rialto/src/node-process/serve.js' '/Users/johann/Development/puphpeteer/src/PuppeteerConnectionDelegate.js' '{"idle_timeout":60,"log_node_console":true,"log_browser_console":true}' {"commandline":"'node' '/Users/johann/Development/puphpeteer/node_modules/@nesk/rialto/src/node-process/serve.js' '/Users/johann/Development/puphpeteer/src/PuppeteerConnectionDelegate.js' '{\"idle_timeout\":60,\"log_node_console\":true,\"log_browser_console\":true}'"} []
[2018-08-17 10:26:01] PuPHPeteer.INFO: Process started with PID 18153 {"pid":18153} []
[2018-08-17 10:26:01] PuPHPeteer.DEBUG: Sending an instruction to the port 59621... {"pid":18153,"port":59621,"instruction":{"type":"call","name":"launch","catched":false,"value":[]}} []
[2018-08-17 10:26:01] PuPHPeteer.DEBUG: Received data from the port 59621... {"pid":18153,"port":59621,"data":"[object] (Nesk\\Puphpeteer\\Resources\\Browser: {\"__rialto_resource__\":true,\"class_name\":\"Browser\",\"id\":\"1534501561533.8093\"})"} []
```

@@ -13,2 +13,7 @@ # Changelog

## [1.3.0] - 2018-08-20
### Added
- Add a `log_browser_console` option to log the output of Browser's console methods (`console.log`, `console.debug`, `console.table`, etc…) to the PHP logger
- Support Puppeteer v1.7
## [1.2.0] - 2018-07-25

@@ -66,3 +71,4 @@ ### Added

[Unreleased]: https://github.com/nesk/puphpeteer/compare/1.2.0...HEAD
[Unreleased]: https://github.com/nesk/puphpeteer/compare/1.3.0...HEAD
[1.3.0]: https://github.com/nesk/puphpeteer/compare/1.2.0...1.3.0
[1.2.0]: https://github.com/nesk/puphpeteer/compare/1.1.0...1.2.0

@@ -69,0 +75,0 @@ [1.1.0]: https://github.com/nesk/puphpeteer/compare/1.0.0...1.1.0

@@ -23,7 +23,9 @@ {

"php": ">=7.1",
"nesk/rialto": "^1.1.0",
"vierbergenlars/php-semver": "^3.0"
"nesk/rialto": "^1.2.0",
"psr/log": "^1.0",
"vierbergenlars/php-semver": "^3.0.2"
},
"require-dev": {
"codedungeon/phpunit-result-printer": ">=0.6 <1.0",
"monolog/monolog": "^1.23",
"phpunit/phpunit": "^6.5|^7.0",

@@ -30,0 +32,0 @@ "symfony/process": "^4.0"

{
"name": "@nesk/puphpeteer",
"version": "1.2.0",
"version": "1.3.0",
"description": "A Puppeteer bridge for PHP, supporting the entire API.",

@@ -25,5 +25,5 @@ "keywords": [

"dependencies": {
"@nesk/rialto": "^1.1.0",
"puppeteer": "~1.6.0"
"@nesk/rialto": "^1.2.0",
"puppeteer": "~1.7.0"
}
}

@@ -1,2 +0,2 @@

# PuPHPeteer
# PuPHPeteer <a href="#support-me"><img src="https://beerpay.io/nesk/puphpeteer/badge.svg" alt="Beerpay" align="right"></a>

@@ -85,6 +85,16 @@ <img src="https://user-images.githubusercontent.com/817508/41925638-6f1b9dde-796d-11e8-8f87-3646f0c89750.png" style="max-width:100%;" width="190px" align="right">

You can also pass some options to the constructor, see [Rialto's documentation](https://github.com/nesk/rialto/blob/master/docs/api.md#options).
You can also pass some options to the constructor, see [Rialto's documentation](https://github.com/nesk/rialto/blob/master/docs/api.md#options). PuPHPeteer also extends these options:
**Note:** If you use some timeouts higher than 30 seconds in Puppeteer's API, you will have to set a higher value for the `read_timeout` option (default: `35`):
```php
[
// Logs the output of Browser's console methods (console.log, console.debug, etc...) to the PHP logger
'log_browser_console' => false,
]
```
<details>
<summary><strong>⏱ Want to use some timeouts higher than 30 seconds in Puppeteer's API?</strong></summary> <br>
If you use some timeouts higher than 30 seconds, you will have to set a higher value for the `read_timeout` option (default: `35`):
```php

@@ -99,2 +109,3 @@ $puppeteer = new Puppeteer([

```
</details>

@@ -162,1 +173,7 @@ ### No need to use the `await` keyword

Thanks to [Laravel News](https://laravel-news.com/) for picking the icons and colors of the logo.
## Support me
PuPHPeteer is a project requiring a lot of work (especially with [Rialto](https://github.com/nesk/rialto)). While I'm happy to work on it on my free time, I also enjoy to drink a couple of beers sometimes with my friends. If you want to support development, buy me a beer at [BeerPay](https://beerpay.io/nesk/puphpeteer). 🙏
[![Beerpay](https://beerpay.io/nesk/puphpeteer/badge.svg)](https://beerpay.io/nesk/puphpeteer)

@@ -0,1 +1,3 @@

'use strict';
function output(value) {

@@ -2,0 +4,0 @@ process.stdout.write(JSON.stringify(value));

'use strict';
const puppeteer = require('puppeteer'),
{Page} = require('puppeteer/lib/Page'),
{Browser} = require('puppeteer/lib/Browser'),
{ConnectionDelegate} = require('@nesk/rialto');
{ConnectionDelegate} = require('@nesk/rialto'),
Logger = require('@nesk/rialto/src/node-process/Logger'),
ConsoleInterceptor = require('@nesk/rialto/src/node-process/NodeInterceptors/ConsoleInterceptor'),
StandardStreamsInterceptor = require('@nesk/rialto/src/node-process/NodeInterceptors/StandardStreamsInterceptor');

@@ -10,8 +14,11 @@ /**

*/
class PuppeteerConnectionDelegate extends ConnectionDelegate {
class PuppeteerConnectionDelegate extends ConnectionDelegate
{
/**
* Constructor.
*
* @param {Object} options
*/
constructor() {
super();
constructor(options) {
super(options);

@@ -27,4 +34,2 @@ this.browsers = new Set;

async handleInstruction(instruction, responseHandler, errorHandler) {
const instructionName = instruction.name();
instruction.setDefaultResource(puppeteer);

@@ -48,2 +53,6 @@

if (this.options.log_browser_console === true && value instanceof Page) {
value.on('console', this.logConsoleMessage);
}
responseHandler(value);

@@ -53,2 +62,26 @@ }

/**
* Log the console message.
*
* @param {ConsoleMessage} consoleMessage
*/
async logConsoleMessage(consoleMessage) {
const type = consoleMessage.type();
if (!ConsoleInterceptor.typeIsSupported(type)) {
return;
}
const level = ConsoleInterceptor.getLevelFromType(type);
const args = await Promise.all(consoleMessage.args().map(arg => arg.jsonValue()));
StandardStreamsInterceptor.startInterceptingStrings(message => {
Logger.log('Browser', level, ConsoleInterceptor.formatMessage(message));
});
ConsoleInterceptor.originalConsole[type](...args);
StandardStreamsInterceptor.stopInterceptingStrings();
}
/**
* Listen for process signal events.

@@ -55,0 +88,0 @@ *

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc