Giter VIP home page Giter VIP logo

asarmor's Introduction

Note

Don't fall victim to impersonation attempts. Verify my identity here.

❓ About Me

I'm a Full Stack Software Engineer who loves to both break and build the web. Ever since I started programming I've had a particular interest in web scraping, automation, bots and security for which I've grown an expertise. Some may recognize me from my contributions in a time where sneaker bots were still cool (see projects below). The other side of me loves to develop web applications, always contemplating the most optimal solution.

Besides my main occupation, I'm interested in other fields such as (but not limited to) cross-platform mobile app development, reverse engineering, GNU/Linux, Containers, DevOps and cloud.

If you'd like to hire me or if you're looking for a partner for your next project, check out my socials and shoot me a DM.

I'm also active on gitlab.

πŸ’» Projects and Companies

Present

  • 2024 -> ... : Open source development. See my latest projects below. Stay tuned and consider becoming a sponsor! πŸ‘€
  • July 2023 -> ... : All in one dating app automation suite for OFM (feat. snkr friends). 😏

Past

  • 2023: Stremio media player & content aggregator
    • Bootstrapped a fresh mobile app for Android and iOS using Kotlin & Compose
  • 2022: Pixl NFT marketplace (formerly known as flow.so and infinity.xyz) to trade digital assets on the ETH blockchain
  • 2019 -> 2021: Cybersole AIO (All In One) web automation software to automatically purchase online items (shoes, clothing, collectibles)
    • Wrote and maintained site modules
    • Reverse engineered all kinds of antibot and WAFs - including mobile versions
  • 2019: Ignite another AIO bot company
    • Rewrote most of the codebase from JavaScript spaghetti code to a modular TypeScript codebase and migrated from plain CSS to SCSS modules
  • 2018 -> ... : Stremio Community media player & content aggregator
  • 2017-2018: Fiverr where it all began...

πŸ‘‹ Socials

You can reach out to me via one of the following channels:

Please email me if your inquiry is urgent.

Do NOT contact me for personal support, feature requests, issues, suggestions etc. regarding any of my public GitHub repositories. Create an issue or start a discussion on the relevant repository instead.

πŸ“ˆ Stats

Overview

github stats

Trophies

trophies

asarmor's People

Contributors

dependabot[bot] avatar klren0312 avatar rishi8094 avatar saramaebee avatar saucesteals avatar sentoxaio avatar sleeyax avatar toyobayashi avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

asarmor's Issues

Encryption: load plaintext asar

We should be able to load/hook an unencrypted asar so we can import and use the modules it contains in our project.

Some work has been done on this already but isn't complete nor tested yet, see hooks/node-modules.ts.

`Uncaught SyntaxError: Invalid or unexpected token` error logged to console

When using electron-forge + Vite + asarmor I can see the following error logged to the devtools console:

Uncaught SyntaxError: Invalid or unexpected token

The app still works fine though, this is a visual annoyance at best and a minor performance degradation at worst.


This happens because the browser still tries to load any encrypted assets defined in the output .vite/rendere/main_window/index.html:

    <!-- ... -->
    <script type="module" crossorigin src="./assets/index.js"></script>
    <link rel="stylesheet" crossorigin href="./assets/index.css">

Because this file is loaded here, right before decrypting the render process:

mainWindow.loadFile(path.join(__dirname, `../renderer/${MAIN_WINDOW_VITE_NAME}/index.html`));

Removing the render script from the root index.html:

    <!-- ... -->
    <script type="module" src="/src/renderer.ts"></script>`

... doesn't resolve the issue because then Vite no longer picks it up for processing and we end up with a different error.

Thus, we should figure out a way to tell Vite to include these source files but not output them to .vite/rendere/main_window/index.html.

Can't use directories in protections

I can't seem to use any sort of directory when using protections such as FileCrash.

When I input directories such as
asarmor.applyProtection(new FileCrash(join('build', 'index.js'), -999));
asarmor.applyProtection(new FileCrash('build\\index.js', -999));
It outputs 'Error: build\index.js not found in archive!'

Question on loading encrypted .js in renderer

Hello. Should I be able to do something like the below? My app's code cannot be imported from a require() call, so I'm trying to load it afterwards. But it seems like it's not getting the decrypted version.

win.loadFile(`${__dirname}/app/index.html`).then(_ => {
	win.webContents.executeJavaScript(`!function () {
		require('./renderer.node');
		let scr=document.createElement('script');
		scr.src='js/app.js';
		document.body.appendChild(scr);
	}()`);
});

The console shows an error Uncaught SyntaxError: Invalid or unsupported token.
Is there a proper way to dynamically load the script that will pull the decrypted version?
Thanks!

Will asarmor affect app perfomance?

It's seem sound amazing, but sorry I can't test yet, I'm just wondering will this affect app performance? I mean app resource usage(RAM/CPU/DISK) will higher when running app that use asarmor? Or this just affect performance when develop/build only?

Thanks in advance

General Use Bloater

The bloat and trashify protections provided are I think a little too similar and weird in how they function

  • One will let u provide gigabytes, won't actually use that to determine the size of the files, randomizes everything else as well
  • Other will weirdly determine how many files to put and what their names should be along with the sizes

I myself wasn't quite sure exactly what the two were doing and would rather be a little more confident in the outcome of the protections

Wouldn't it be better to just combine them into one and make it more configurable
Example:

config: {
    // Filename
    // Example:
    // () => [".env", "file", "file2"][random(0, 2)] 
    // () => crypto.randomBytes(12).toString("hex")
    filename: () => string
    
    // Amount of files
    // Example:
    // 10
    fileCount: number
    
    // Offest of each file
    // Example:
    // 0
    // () => Math.floor(Math.random() * (Math.pow(2, 32) - 1));
    offset: number | () => number
    
    // Size in bytes
    // Example:
    // 1024 ** 3 (gb)
    // () => crypto.randomInt(20, 100) * (1024 ** 2)
    size: number | () => number
}
  apply(archive: IArchive): IArchive {
    const header = archive.header;

    for (let i = 0; i < this.fileCount; i++) {
      const fileName = this.getFileName() // Get from file from file()
      const size = this.getFileSize() // Get size number or size()
      const offset = this.getOffest() // Get offset number or offset()
      
      header.files[fileName] = {
        size,
        offset,
      }
    }
    
    return {
      headerSize: archive.headerSize,
      header,
    }
  }

Cannot find module 'terser'

Well, I tried to install it using yarn 3 but it failed with an error both
as a devdependency and just a dependency, I had to install it globally
using npm and also I had to install a module called terser which wasnt
installed for me?

CLI Procedure:
call npm install -g asar
call npm install -g terser
call npm install -g asarmor

(ignore call it's sitting on a bat file)

on that note, I would like to recommend anyone reading this to checkout yarn 3 and try to make it work for his new projects! it's worth it, I control what packages I need in my build project, my build size is 1.3mb (the asar file) electron remains 147 MB lol.., and absolutely everything done with yarn 3 feels blazing fast idk why

what errors it gives me on yarn 3? I tested: (feel free to skip all that part and relay on the title and the last comment xD)

  1. yarn 3 example: (corepack enables yarn on npm as per their official docs without installing it old school - corepack comes with npm) [Core pack should only be ran once on a pc where yarn -v returns nada]
yarn -v
corepack enable


mkdir test
cd test
yarn init -y
echo Yarn Version Before:
yarn -v
yarn set version stable
echo Yarn Version After:
yarn -v

should output before 1.22.15, after 3.2.1..

  1. now that we have this, we can start installing packages into the project for example:
yarn add electron-builder --dev
yarn add --dev electron
yarn add bytenode --dev
yarn unplug bytenode
yarn install
  1. may be irrelevant: (but it demonstrates how another module is working on yarn 3 for me)
    (I use bytenode to enable the preload script to work and after installing it, it simply doesn't work it says bytenode module can't be found, so I must unplug it and then it works, but only if I require it directly from the unplugged folder with like const bytenode = require('./.yarn/unplugged/bytenode-npm-1.3.6-f5c303324f/node_modules/bytenode/lib/index.js'));
    they did it to save space and make requires faster, I simply made a function that detects the last part 1.3.6-f5c303324f for me on any given module so I can go: const bytenode = require(pnp('bytenode-npm-1.3.6')); instead

unplugged plugins live as folders on .yarn/unplugged while plugged plugins is on .yarn/cache stored as zip files.
when building electron I must keep the .yarn/unplugged and the .yarn/cache folders in the build, but I can remove a lot of files from there and the app will still work, also my package.json in the build folder can look like this: {"main":"index.load.js"} which then loads bytenode and then index.jsc which is compiled into the binary ...

image

image

image

  1. now I can simply run electron on that folder: (also for some reason I must delete .pnp.loader.mjs for it to work, but you can't delete .pnp.cjs, you also need it packaged inside the build directory, nothing else that I haven't mentioned should be in the build directory)
(well of course you also need like an index.js file)
yarn run electron --version

del .pnp.loader.mjs
yarn run electron .

or if you are one dir behind..
del test\pnp.loader.mjs
yarn run electron test
  1. and now lets try to install asarmor:
yarn add asarmor --dev

errors:

>yarn add asarmor --dev
➀ YN0000: β”Œ Resolution step
➀ YN0032: β”‚ node-addon-api@npm:5.0.0: Implicit dependencies on node-gyp are discouraged
➀ YN0000: β”” Completed in 0s 364ms
➀ YN0000: β”Œ Fetch step
➀ YN0013: β”‚ asarmor@npm:2.1.0-beta.8 can't be found in the cache and will be fetched from the remote registry
➀ YN0013: β”‚ commander@npm:6.2.1 can't be found in the cache and will be fetched from the remote registry
➀ YN0013: β”‚ node-addon-api@npm:5.0.0 can't be found in the cache and will be fetched from the remote registry
➀ YN0000: β”” Completed in 0s 323ms
➀ YN0000: β”Œ Link step
➀ YN0000: β”‚ ESM support for PnP uses the experimental loader API and is therefore experimental
➀ YN0007: β”‚ asarmor@npm:2.1.0-beta.8 must be built because it never has been before or the last one failed
➀ YN0008: β”‚ electron@npm:19.0.2 must be rebuilt because its dependency tree changed
➀ YN0009: β”‚ asarmor@npm:2.1.0-beta.8 couldn't be built successfully (exit code 1, logs can be found here: C:\Users\USERNAME\AppData\Local\Temp\xfs-e5a8a4e9\build.log)
➀ YN0000: β”” Completed in 0s 731ms
➀ YN0000: Failed with errors in 1s 473ms

lets try again, this time I've ran it as administrator and installed it as a dependency:

yarn add asarmor

errors:

>yarn add asarmor
➀ YN0000: β”Œ Resolution step
➀ YN0000: β”” Completed
➀ YN0000: β”Œ Fetch step
➀ YN0000: β”” Completed in 0s 278ms
➀ YN0000: β”Œ Link step
➀ YN0000: β”‚ ESM support for PnP uses the experimental loader API and is therefore experimental
➀ YN0007: β”‚ asarmor@npm:2.1.0-beta.8 must be built because it never has been before or the last one failed
➀ YN0009: β”‚ asarmor@npm:2.1.0-beta.8 couldn't be built successfully (exit code 1, logs can be found here: C:\Users\USERNAME\AppData\Local\Temp\xfs-14ea60d8\build.log)
➀ YN0000: β”” Completed in 0s 430ms
➀ YN0000: Failed with errors in 0s 808ms

Ohhhhh we've got it: (Same problem as npm but this time it's hidden behind log files)

Error: asarmor tried to access terser, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.

full log file:

# This file contains the result of Yarn building a package (asarmor@npm:2.1.0-beta.8)
# Script name: install

B:\HIDDENHIDDEN\test\.pnp.cjs:11920
      Error.captureStackTrace(firstError);
            ^

Error: asarmor tried to access terser, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound.

Required package: terser
Required by: asarmor@npm:2.1.0-beta.8 (via B:\HIDDENHIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.8-b2463a6272\node_modules\asarmor\scripts\)

Require stack:
- B:\HIDDENHIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.8-b2463a6272\node_modules\asarmor\scripts\js2c.js
    at Function.require$$0.Module._resolveFilename (B:\HIDDENHIDDEN\test\.pnp.cjs:11920:13)
    at Function.require$$0.Module._load (B:\HIDDENHIDDEN\test\.pnp.cjs:11774:42)
    at Module.require (node:internal/modules/cjs/loader:999:19)
    at require (node:internal/modules/cjs/helpers:102:18)
    at Object.<anonymous> (B:\HIDDENHIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.8-b2463a6272\node_modules\asarmor\scripts\js2c.js:9:16)
    at Module._compile (node:internal/modules/cjs/loader:1099:14)
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
    at Object.require$$0.Module._extensions..js (B:\HIDDENHIDDEN\test\.pnp.cjs:11964:33)
    at Module.load (node:internal/modules/cjs/loader:975:32)
    at Function.require$$0.Module._load (B:\HIDDENHIDDEN\test\.pnp.cjs:11787:22)

Node.js v17.9.0

yarn 3 has this pnp crap that I both hate and love at the same time since it makes my binary size smaller while making my work harder

anywho let's uninstall terser and asarmor so I can replicate what happened on my fresh machine with new npm new node new everything - and let's install just asarmor with npm globally and show you the error:

>npm uninstall -g asarmor

removed 103 packages, and audited 1 package in 759ms

found 0 vulnerabilities
>npm uninstall -g terser

removed 12 packages, and audited 1 package in 522ms

found 0 vulnerabilities

ok lets run it:

>npm install -g asarmor

errors:

npm ERR! code 1
npm ERR! path C:\Users\Burgil\AppData\Roaming\npm\node_modules\asarmor
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node ./scripts/keygen.js && node ./scripts/js2c.js && npm run gyp
npm ERR! node:internal/modules/cjs/loader:936
npm ERR!   throw err;
npm ERR!   ^
npm ERR!
npm ERR! Error: Cannot find module 'terser'
npm ERR! Require stack:
npm ERR! - C:\Users\USERNAME\AppData\Roaming\npm\node_modules\asarmor\scripts\js2c.js
npm ERR!     at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15)
npm ERR!     at Function.Module._load (node:internal/modules/cjs/loader:778:27)
npm ERR!     at Module.require (node:internal/modules/cjs/loader:999:19)
npm ERR!     at require (node:internal/modules/cjs/helpers:102:18)
npm ERR!     at Object.<anonymous> (C:\Users\USERNAME\AppData\Roaming\npm\node_modules\asarmor\scripts\js2c.js:9:16)
npm ERR!     at Module._compile (node:internal/modules/cjs/loader:1099:14)
npm ERR!     at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10)
npm ERR!     at Module.load (node:internal/modules/cjs/loader:975:32)
npm ERR!     at Function.Module._load (node:internal/modules/cjs/loader:822:12)
npm ERR!     at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) {
npm ERR!   code: 'MODULE_NOT_FOUND',
npm ERR!   requireStack: [
npm ERR!     'C:\\Users\\USERNAME\\AppData\\Roaming\\npm\\node_modules\\asarmor\\scripts\\js2c.js'
npm ERR!   ]
npm ERR! }
npm ERR!
npm ERR! Node.js v17.9.0

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\USERNAME\AppData\Local\npm-cache\_logs\2022-06-02T15_05_18_773Z-debug-0.log

let's get that debug log file:

and again it all comes down to:

596 error Error: Cannot find module 'terser'
full debug log file: 0 verbose cli [ 0 verbose cli 'C:\\Program Files\\nodejs\\node.exe', 0 verbose cli 'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js', 0 verbose cli 'install', 0 verbose cli '-g', 0 verbose cli 'asarmor' 0 verbose cli ] 1 info using [email protected] 2 info using [email protected] 3 timing npm:load:whichnode Completed in 0ms 4 timing config:load:defaults Completed in 1ms 5 timing config:load:file:C:\Program Files\nodejs\node_modules\npm\npmrc Completed in 3ms 6 timing config:load:builtin Completed in 3ms 7 timing config:load:cli Completed in 3ms 8 timing config:load:env Completed in 0ms 9 timing config:load:project Completed in 4ms 10 timing config:load:file:C:\Users\Burgil\.npmrc Completed in 1ms 11 timing config:load:user Completed in 1ms 12 timing config:load:file:C:\Users\Burgil\AppData\Roaming\npm\etc\npmrc Completed in 0ms 13 timing config:load:global Completed in 0ms 14 timing config:load:validate Completed in 0ms 15 timing config:load:credentials Completed in 0ms 16 timing config:load:setEnvs Completed in 1ms 17 timing config:load Completed in 14ms 18 timing npm:load:configload Completed in 14ms 19 timing npm:load:setTitle Completed in 1ms 20 timing config:load:flatten Completed in 4ms 21 timing npm:load:display Completed in 5ms 22 verbose logfile C:\Users\Burgil\AppData\Local\npm-cache\_logs\2022-06-02T15_05_18_773Z-debug-0.log 23 timing npm:load:logFile Completed in 8ms 24 timing npm:load:timers Completed in 0ms 25 timing npm:load:configScope Completed in 0ms 26 timing npm:load Completed in 29ms 27 timing arborist:ctor Completed in 1ms 28 silly logfile start cleaning logs, removing 2 files 29 timing idealTree:init Completed in 6ms 30 timing idealTree:userRequests Completed in 2ms 31 silly idealTree buildDeps 32 silly fetch manifest asarmor@* 33 http fetch GET 200 https://registry.npmjs.org/asarmor 18ms (cache hit) 34 silly placeDep ROOT [email protected] OK for: want: * 35 silly fetch manifest asar@^3.1.0 36 silly fetch manifest chromium-pickle-js@^0.2.0 37 silly fetch manifest commander@^6.1.0 38 silly fetch manifest node-addon-api@^5.0.0 39 silly fetch manifest node-gyp@^9.0.0 40 http fetch GET 200 https://registry.npmjs.org/asar 23ms (cache hit) 41 http fetch GET 200 https://registry.npmjs.org/node-addon-api 22ms (cache hit) 42 http fetch GET 200 https://registry.npmjs.org/chromium-pickle-js 24ms (cache hit) 43 http fetch GET 200 https://registry.npmjs.org/commander 24ms (cache hit) 44 http fetch GET 200 https://registry.npmjs.org/node-gyp 26ms (cache hit) 45 timing idealTree:#root Completed in 61ms 46 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^3.1.0 47 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^0.2.0 48 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^6.1.0 49 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^5.0.0 50 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^9.0.0 51 silly fetch manifest commander@^5.0.0 52 silly fetch manifest glob@^7.1.6 53 silly fetch manifest minimatch@^3.0.4 54 silly fetch manifest @types/glob@^7.1.1 55 silly fetch manifest env-paths@^2.2.0 56 silly fetch manifest glob@^7.1.4 57 silly fetch manifest graceful-fs@^4.2.6 58 silly fetch manifest make-fetch-happen@^10.0.3 59 silly fetch manifest nopt@^5.0.0 60 silly fetch manifest npmlog@^6.0.0 61 silly fetch manifest rimraf@^3.0.2 62 silly fetch manifest semver@^7.3.5 63 silly fetch manifest tar@^6.1.2 64 silly fetch manifest which@^2.0.2 65 http fetch GET 200 https://registry.npmjs.org/@types%2fglob 42ms (cache hit) 66 http fetch GET 200 https://registry.npmjs.org/env-paths 41ms (cache hit) 67 http fetch GET 200 https://registry.npmjs.org/glob 45ms (cache hit) 68 http fetch GET 200 https://registry.npmjs.org/graceful-fs 45ms (cache hit) 69 http fetch GET 200 https://registry.npmjs.org/npmlog 45ms (cache hit) 70 http fetch GET 200 https://registry.npmjs.org/nopt 46ms (cache hit) 71 http fetch GET 200 https://registry.npmjs.org/rimraf 47ms (cache hit) 72 http fetch GET 200 https://registry.npmjs.org/minimatch 51ms (cache hit) 73 http fetch GET 200 https://registry.npmjs.org/tar 46ms (cache hit) 74 http fetch GET 200 https://registry.npmjs.org/make-fetch-happen 52ms (cache hit) 75 http fetch GET 200 https://registry.npmjs.org/semver 53ms (cache hit) 76 http fetch GET 200 https://registry.npmjs.org/which 52ms (cache hit) 77 timing idealTree:node_modules/asarmor Completed in 70ms 78 silly placeDep node_modules/asarmor @types/[email protected] OK for: [email protected] want: ^7.1.1 79 silly placeDep node_modules/asarmor/node_modules/asar [email protected] OK for: [email protected] want: ^5.0.0 80 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^7.1.6 81 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^3.0.4 82 silly fetch manifest @types/minimatch@* 83 silly fetch manifest @types/node@* 84 silly fetch manifest fs.realpath@^1.0.0 85 silly fetch manifest inflight@^1.0.4 86 silly fetch manifest inherits@2 87 silly fetch manifest once@^1.3.0 88 silly fetch manifest path-is-absolute@^1.0.0 89 silly fetch manifest brace-expansion@^1.1.7 90 http fetch GET 200 https://registry.npmjs.org/@types%2fminimatch 23ms (cache hit) 91 http fetch GET 200 https://registry.npmjs.org/path-is-absolute 21ms (cache hit) 92 http fetch GET 200 https://registry.npmjs.org/inflight 23ms (cache hit) 93 http fetch GET 200 https://registry.npmjs.org/fs.realpath 25ms (cache hit) 94 http fetch GET 200 https://registry.npmjs.org/once 23ms (cache hit) 95 http fetch GET 200 https://registry.npmjs.org/inherits 24ms (cache hit) 96 http fetch GET 200 https://registry.npmjs.org/brace-expansion 22ms (cache hit) 97 http fetch GET 200 https://registry.npmjs.org/@types%2fnode 30ms (cache hit) 98 timing idealTree:node_modules/asarmor/node_modules/asar Completed in 46ms 99 silly placeDep node_modules/asarmor @types/[email protected] OK for: @types/[email protected] want: * 100 silly placeDep node_modules/asarmor @types/[email protected] OK for: @types/[email protected] want: * 101 timing idealTree:node_modules/asarmor/node_modules/@types/glob Completed in 2ms 102 timing idealTree:node_modules/asarmor/node_modules/@types/minimatch Completed in 0ms 103 timing idealTree:node_modules/asarmor/node_modules/@types/node Completed in 0ms 104 timing idealTree:node_modules/asarmor/node_modules/chromium-pickle-js Completed in 0ms 105 timing idealTree:node_modules/asarmor/node_modules/commander Completed in 0ms 106 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.0 107 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.4 108 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: 2 109 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.3.0 110 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.0 111 silly fetch manifest wrappy@1 112 http fetch GET 200 https://registry.npmjs.org/wrappy 8ms (cache hit) 113 timing idealTree:node_modules/asarmor/node_modules/glob Completed in 15ms 114 timing idealTree:node_modules/asarmor/node_modules/fs.realpath Completed in 0ms 115 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: 1 116 timing idealTree:node_modules/asarmor/node_modules/inflight Completed in 2ms 117 timing idealTree:node_modules/asarmor/node_modules/inherits Completed in 0ms 118 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.1.7 119 silly fetch manifest balanced-match@^1.0.0 120 silly fetch manifest [email protected] 121 http fetch GET 200 https://registry.npmjs.org/concat-map 12ms (cache hit) 122 http fetch GET 200 https://registry.npmjs.org/balanced-match 14ms (cache hit) 123 timing idealTree:node_modules/asarmor/node_modules/minimatch Completed in 15ms 124 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.0 125 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: 0.0.1 126 timing idealTree:node_modules/asarmor/node_modules/brace-expansion Completed in 3ms 127 timing idealTree:node_modules/asarmor/node_modules/balanced-match Completed in 0ms 128 timing idealTree:node_modules/asarmor/node_modules/concat-map Completed in 0ms 129 timing idealTree:node_modules/asarmor/node_modules/node-addon-api Completed in 0ms 130 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.2.0 131 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.2.6 132 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^10.0.3 133 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^5.0.0 134 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^6.0.0 135 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^3.0.2 136 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^7.3.5 137 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^6.1.2 138 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.2 139 silly fetch manifest agentkeepalive@^4.2.1 140 silly fetch manifest cacache@^16.1.0 141 silly fetch manifest http-cache-semantics@^4.1.0 142 silly fetch manifest http-proxy-agent@^5.0.0 143 silly fetch manifest https-proxy-agent@^5.0.0 144 silly fetch manifest is-lambda@^1.0.1 145 silly fetch manifest lru-cache@^7.7.1 146 silly fetch manifest minipass@^3.1.6 147 silly fetch manifest minipass-collect@^1.0.2 148 silly fetch manifest minipass-fetch@^2.0.3 149 silly fetch manifest minipass-flush@^1.0.5 150 silly fetch manifest minipass-pipeline@^1.2.4 151 silly fetch manifest negotiator@^0.6.3 152 silly fetch manifest promise-retry@^2.0.1 153 silly fetch manifest socks-proxy-agent@^6.1.1 154 silly fetch manifest ssri@^9.0.0 155 silly fetch manifest abbrev@1 156 silly fetch manifest are-we-there-yet@^3.0.0 157 silly fetch manifest console-control-strings@^1.1.0 158 silly fetch manifest gauge@^4.0.3 159 silly fetch manifest set-blocking@^2.0.0 160 silly fetch manifest lru-cache@^6.0.0 161 silly fetch manifest chownr@^2.0.0 162 silly fetch manifest fs-minipass@^2.0.0 163 silly fetch manifest minipass@^3.0.0 164 silly fetch manifest minizlib@^2.1.1 165 silly fetch manifest mkdirp@^1.0.3 166 silly fetch manifest yallist@^4.0.0 167 silly fetch manifest isexe@^2.0.0 168 http fetch GET 200 https://registry.npmjs.org/http-cache-semantics 90ms (cache hit) 169 http fetch GET 200 https://registry.npmjs.org/agentkeepalive 93ms (cache hit) 170 http fetch GET 200 https://registry.npmjs.org/http-proxy-agent 91ms (cache hit) 171 http fetch GET 200 https://registry.npmjs.org/is-lambda 91ms (cache hit) 172 http fetch GET 200 https://registry.npmjs.org/minipass 89ms (cache hit) 173 http fetch GET 200 https://registry.npmjs.org/cacache 94ms (cache hit) 174 http fetch GET 200 https://registry.npmjs.org/https-proxy-agent 93ms (cache hit) 175 http fetch GET 200 https://registry.npmjs.org/minipass-fetch 91ms (cache hit) 176 http fetch GET 200 https://registry.npmjs.org/minipass-collect 92ms (cache hit) 177 http fetch GET 200 https://registry.npmjs.org/minipass-flush 91ms (cache hit) 178 http fetch GET 200 https://registry.npmjs.org/lru-cache 94ms (cache hit) 179 http fetch GET 200 https://registry.npmjs.org/socks-proxy-agent 90ms (cache hit) 180 http fetch GET 200 https://registry.npmjs.org/minipass-pipeline 94ms (cache hit) 181 http fetch GET 200 https://registry.npmjs.org/negotiator 93ms (cache hit) 182 http fetch GET 200 https://registry.npmjs.org/abbrev 91ms (cache hit) 183 http fetch GET 200 https://registry.npmjs.org/promise-retry 93ms (cache hit) 184 http fetch GET 200 https://registry.npmjs.org/are-we-there-yet 91ms (cache hit) 185 http fetch GET 200 https://registry.npmjs.org/console-control-strings 91ms (cache hit) 186 http fetch GET 200 https://registry.npmjs.org/set-blocking 89ms (cache hit) 187 http fetch GET 200 https://registry.npmjs.org/ssri 94ms (cache hit) 188 http fetch GET 200 https://registry.npmjs.org/gauge 92ms (cache hit) 189 http fetch GET 200 https://registry.npmjs.org/mkdirp 88ms (cache hit) 190 http fetch GET 200 https://registry.npmjs.org/chownr 91ms (cache hit) 191 http fetch GET 200 https://registry.npmjs.org/minizlib 90ms (cache hit) 192 http fetch GET 200 https://registry.npmjs.org/fs-minipass 92ms (cache hit) 193 http fetch GET 200 https://registry.npmjs.org/isexe 89ms (cache hit) 194 http fetch GET 200 https://registry.npmjs.org/yallist 89ms (cache hit) 195 timing idealTree:node_modules/asarmor/node_modules/node-gyp Completed in 116ms 196 timing idealTree:node_modules/asarmor/node_modules/env-paths Completed in 0ms 197 timing idealTree:node_modules/asarmor/node_modules/graceful-fs Completed in 0ms 198 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.2.1 199 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^16.1.0 200 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.1.0 201 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^5.0.0 202 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^5.0.0 203 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.1 204 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^7.7.1 205 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^3.1.6 206 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.2 207 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.3 208 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.5 209 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.2.4 210 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^0.6.3 211 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.1 212 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^6.1.1 213 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^9.0.0 214 silly fetch manifest debug@^4.1.0 215 silly fetch manifest depd@^1.1.2 216 silly fetch manifest humanize-ms@^1.2.1 217 silly fetch manifest @npmcli/fs@^2.1.0 218 silly fetch manifest @npmcli/move-file@^2.0.0 219 silly fetch manifest fs-minipass@^2.1.0 220 silly fetch manifest glob@^8.0.1 221 silly fetch manifest infer-owner@^1.0.4 222 silly fetch manifest mkdirp@^1.0.4 223 silly fetch manifest p-map@^4.0.0 224 silly fetch manifest promise-inflight@^1.0.1 225 silly fetch manifest unique-filename@^1.1.1 226 silly fetch manifest @tootallnate/once@2 227 silly fetch manifest agent-base@6 228 silly fetch manifest debug@4 229 silly fetch manifest minipass-sized@^1.0.3 230 silly fetch manifest minizlib@^2.1.2 231 silly fetch manifest encoding@^0.1.13 232 silly fetch manifest err-code@^2.0.2 233 silly fetch manifest retry@^0.12.0 234 silly fetch manifest agent-base@^6.0.2 235 silly fetch manifest debug@^4.3.3 236 silly fetch manifest socks@^2.6.2 237 http fetch GET 200 https://registry.npmjs.org/depd 62ms (cache hit) 238 http fetch GET 200 https://registry.npmjs.org/@npmcli%2ffs 62ms (cache hit) 239 http fetch GET 200 https://registry.npmjs.org/humanize-ms 62ms (cache hit) 240 http fetch GET 200 https://registry.npmjs.org/p-map 60ms (cache hit) 241 http fetch GET 200 https://registry.npmjs.org/debug 65ms (cache hit) 242 http fetch GET 200 https://registry.npmjs.org/@npmcli%2fmove-file 63ms (cache hit) 243 http fetch GET 200 https://registry.npmjs.org/infer-owner 62ms (cache hit) 244 http fetch GET 200 https://registry.npmjs.org/promise-inflight 61ms (cache hit) 245 http fetch GET 200 https://registry.npmjs.org/unique-filename 62ms (cache hit) 246 http fetch GET 200 https://registry.npmjs.org/agent-base 60ms (cache hit) 247 http fetch GET 200 https://registry.npmjs.org/@TooTallNate%2fonce 62ms (cache hit) 248 http fetch GET 200 https://registry.npmjs.org/minipass-sized 60ms (cache hit) 249 http fetch GET 200 https://registry.npmjs.org/retry 57ms (cache hit) 250 http fetch GET 200 https://registry.npmjs.org/socks 56ms (cache hit) 251 http fetch GET 200 https://registry.npmjs.org/encoding 63ms (cache hit) 252 http fetch GET 200 https://registry.npmjs.org/err-code 62ms (cache hit) 253 timing idealTree:node_modules/asarmor/node_modules/make-fetch-happen Completed in 89ms 254 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.1.0 255 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.1.2 256 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.2.1 257 silly fetch manifest [email protected] 258 silly fetch manifest ms@^2.0.0 259 http fetch GET 200 https://registry.npmjs.org/ms 7ms (cache hit) 260 timing idealTree:node_modules/asarmor/node_modules/agentkeepalive Completed in 10ms 261 silly placeDep node_modules/asarmor @npmcli/[email protected] OK for: [email protected] want: ^2.1.0 262 silly placeDep node_modules/asarmor @npmcli/[email protected] OK for: [email protected] want: ^2.0.0 263 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.0 264 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.1.0 265 silly placeDep node_modules/asarmor/node_modules/cacache [email protected] OK for: [email protected] want: ^8.0.1 266 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.4 267 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.4 268 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.0.0 269 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.1 270 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.1.1 271 silly fetch manifest @gar/promisify@^1.1.3 272 silly fetch manifest minimatch@^5.0.1 273 silly fetch manifest aggregate-error@^3.0.0 274 silly fetch manifest unique-slug@^2.0.0 275 http fetch GET 200 https://registry.npmjs.org/@gar%2fpromisify 14ms (cache hit) 276 http fetch GET 200 https://registry.npmjs.org/aggregate-error 13ms (cache hit) 277 http fetch GET 200 https://registry.npmjs.org/unique-slug 13ms (cache hit) 278 timing idealTree:node_modules/asarmor/node_modules/cacache Completed in 26ms 279 silly placeDep node_modules/asarmor @gar/[email protected] OK for: @npmcli/[email protected] want: ^1.1.3 280 timing idealTree:node_modules/asarmor/node_modules/@npmcli/fs Completed in 1ms 281 timing idealTree:node_modules/asarmor/node_modules/@gar/promisify Completed in 0ms 282 timing idealTree:node_modules/asarmor/node_modules/@npmcli/move-file Completed in 0ms 283 timing idealTree:node_modules/asarmor/node_modules/chownr Completed in 0ms 284 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: 2.1.2 285 timing idealTree:node_modules/asarmor/node_modules/debug Completed in 1ms 286 timing idealTree:node_modules/asarmor/node_modules/depd Completed in 0ms 287 timing idealTree:node_modules/asarmor/node_modules/fs-minipass Completed in 0ms 288 timing idealTree:node_modules/asarmor/node_modules/http-cache-semantics Completed in 0ms 289 silly placeDep node_modules/asarmor @tootallnate/[email protected] OK for: [email protected] want: 2 290 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: 6 291 timing idealTree:node_modules/asarmor/node_modules/http-proxy-agent Completed in 2ms 292 timing idealTree:node_modules/asarmor/node_modules/@tootallnate/once Completed in 0ms 293 timing idealTree:node_modules/asarmor/node_modules/agent-base Completed in 0ms 294 timing idealTree:node_modules/asarmor/node_modules/https-proxy-agent Completed in 0ms 295 timing idealTree:node_modules/asarmor/node_modules/humanize-ms Completed in 0ms 296 timing idealTree:node_modules/asarmor/node_modules/infer-owner Completed in 0ms 297 timing idealTree:node_modules/asarmor/node_modules/is-lambda Completed in 0ms 298 timing idealTree:node_modules/asarmor/node_modules/lru-cache Completed in 0ms 299 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.0.0 300 timing idealTree:node_modules/asarmor/node_modules/minipass Completed in 1ms 301 timing idealTree:node_modules/asarmor/node_modules/minipass-collect Completed in 0ms 302 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^0.1.13 303 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.3 304 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.1.2 305 silly fetch manifest iconv-lite@^0.6.2 306 http fetch GET 200 https://registry.npmjs.org/iconv-lite 7ms (cache hit) 307 timing idealTree:node_modules/asarmor/node_modules/minipass-fetch Completed in 10ms 308 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^0.6.2 309 silly fetch manifest safer-buffer@>= 2.1.2 < 3.0.0 310 http fetch GET 200 https://registry.npmjs.org/safer-buffer 6ms (cache hit) 311 timing idealTree:node_modules/asarmor/node_modules/encoding Completed in 7ms 312 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: >= 2.1.2 < 3.0.0 313 timing idealTree:node_modules/asarmor/node_modules/iconv-lite Completed in 2ms 314 timing idealTree:node_modules/asarmor/node_modules/minipass-flush Completed in 0ms 315 timing idealTree:node_modules/asarmor/node_modules/minipass-pipeline Completed in 0ms 316 timing idealTree:node_modules/asarmor/node_modules/minipass-sized Completed in 0ms 317 timing idealTree:node_modules/asarmor/node_modules/minizlib Completed in 0ms 318 timing idealTree:node_modules/asarmor/node_modules/mkdirp Completed in 0ms 319 timing idealTree:node_modules/asarmor/node_modules/ms Completed in 0ms 320 timing idealTree:node_modules/asarmor/node_modules/negotiator Completed in 0ms 321 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: 1 322 timing idealTree:node_modules/asarmor/node_modules/nopt Completed in 1ms 323 timing idealTree:node_modules/asarmor/node_modules/abbrev Completed in 0ms 324 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^3.0.0 325 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.1.0 326 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.0.3 327 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.0 328 silly fetch manifest delegates@^1.0.0 329 silly fetch manifest readable-stream@^3.6.0 330 silly fetch manifest aproba@^1.0.3 || ^2.0.0 331 silly fetch manifest color-support@^1.1.3 332 silly fetch manifest has-unicode@^2.0.1 333 silly fetch manifest signal-exit@^3.0.7 334 silly fetch manifest string-width@^4.2.3 335 silly fetch manifest strip-ansi@^6.0.1 336 silly fetch manifest wide-align@^1.1.5 337 http fetch GET 200 https://registry.npmjs.org/delegates 32ms (cache hit) 338 http fetch GET 200 https://registry.npmjs.org/aproba 32ms (cache hit) 339 http fetch GET 200 https://registry.npmjs.org/readable-stream 32ms (cache hit) 340 http fetch GET 200 https://registry.npmjs.org/color-support 32ms (cache hit) 341 http fetch GET 200 https://registry.npmjs.org/has-unicode 32ms (cache hit) 342 http fetch GET 200 https://registry.npmjs.org/string-width 32ms (cache hit) 343 http fetch GET 200 https://registry.npmjs.org/signal-exit 32ms (cache hit) 344 http fetch GET 200 https://registry.npmjs.org/strip-ansi 32ms (cache hit) 345 http fetch GET 200 https://registry.npmjs.org/wide-align 32ms (cache hit) 346 timing idealTree:node_modules/asarmor/node_modules/npmlog Completed in 41ms 347 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.0 348 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^3.6.0 349 silly fetch manifest string_decoder@^1.1.1 350 silly fetch manifest util-deprecate@^1.0.1 351 http fetch GET 200 https://registry.npmjs.org/string_decoder 8ms (cache hit) 352 http fetch GET 200 https://registry.npmjs.org/util-deprecate 8ms (cache hit) 353 timing idealTree:node_modules/asarmor/node_modules/are-we-there-yet Completed in 11ms 354 timing idealTree:node_modules/asarmor/node_modules/console-control-strings Completed in 0ms 355 timing idealTree:node_modules/asarmor/node_modules/delegates Completed in 0ms 356 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.3 || ^2.0.0 357 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.1.3 358 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.1 359 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^3.0.7 360 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.2.3 361 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^6.0.1 362 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.1.5 363 silly fetch manifest emoji-regex@^8.0.0 364 silly fetch manifest is-fullwidth-code-point@^3.0.0 365 silly fetch manifest ansi-regex@^5.0.1 366 http fetch GET 200 https://registry.npmjs.org/emoji-regex 10ms (cache hit) 367 http fetch GET 200 https://registry.npmjs.org/ansi-regex 10ms (cache hit) 368 http fetch GET 200 https://registry.npmjs.org/is-fullwidth-code-point 12ms (cache hit) 369 timing idealTree:node_modules/asarmor/node_modules/gauge Completed in 19ms 370 timing idealTree:node_modules/asarmor/node_modules/aproba Completed in 0ms 371 timing idealTree:node_modules/asarmor/node_modules/color-support Completed in 0ms 372 timing idealTree:node_modules/asarmor/node_modules/has-unicode Completed in 0ms 373 timing idealTree:node_modules/asarmor/node_modules/once Completed in 0ms 374 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^3.0.0 375 silly fetch manifest clean-stack@^2.0.0 376 silly fetch manifest indent-string@^4.0.0 377 http fetch GET 200 https://registry.npmjs.org/indent-string 10ms (cache hit) 378 http fetch GET 200 https://registry.npmjs.org/clean-stack 10ms (cache hit) 379 timing idealTree:node_modules/asarmor/node_modules/p-map Completed in 13ms 380 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.0 381 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.0.0 382 timing idealTree:node_modules/asarmor/node_modules/aggregate-error Completed in 2ms 383 timing idealTree:node_modules/asarmor/node_modules/clean-stack Completed in 0ms 384 timing idealTree:node_modules/asarmor/node_modules/indent-string Completed in 0ms 385 timing idealTree:node_modules/asarmor/node_modules/path-is-absolute Completed in 0ms 386 timing idealTree:node_modules/asarmor/node_modules/promise-inflight Completed in 0ms 387 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.2 388 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^0.12.0 389 timing idealTree:node_modules/asarmor/node_modules/promise-retry Completed in 2ms 390 timing idealTree:node_modules/asarmor/node_modules/err-code Completed in 0ms 391 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.1.1 392 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.0.1 393 silly fetch manifest safe-buffer@~5.2.0 394 http fetch GET 200 https://registry.npmjs.org/safe-buffer 8ms (cache hit) 395 timing idealTree:node_modules/asarmor/node_modules/readable-stream Completed in 10ms 396 timing idealTree:node_modules/asarmor/node_modules/retry Completed in 0ms 397 timing idealTree:node_modules/asarmor/node_modules/rimraf Completed in 0ms 398 timing idealTree:node_modules/asarmor/node_modules/safer-buffer Completed in 0ms 399 silly placeDep node_modules/asarmor/node_modules/semver [email protected] OK for: [email protected] want: ^6.0.0 400 timing idealTree:node_modules/asarmor/node_modules/semver Completed in 1ms 401 timing idealTree:node_modules/asarmor/node_modules/set-blocking Completed in 0ms 402 timing idealTree:node_modules/asarmor/node_modules/signal-exit Completed in 0ms 403 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.6.2 404 silly fetch manifest ip@^1.1.5 405 silly fetch manifest smart-buffer@^4.2.0 406 http fetch GET 200 https://registry.npmjs.org/ip 7ms (cache hit) 407 http fetch GET 200 https://registry.npmjs.org/smart-buffer 7ms (cache hit) 408 timing idealTree:node_modules/asarmor/node_modules/socks-proxy-agent Completed in 10ms 409 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^1.1.5 410 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^4.2.0 411 timing idealTree:node_modules/asarmor/node_modules/socks Completed in 1ms 412 timing idealTree:node_modules/asarmor/node_modules/ip Completed in 0ms 413 timing idealTree:node_modules/asarmor/node_modules/smart-buffer Completed in 0ms 414 timing idealTree:node_modules/asarmor/node_modules/ssri Completed in 0ms 415 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ~5.2.0 416 timing idealTree:node_modules/asarmor/node_modules/string_decoder Completed in 1ms 417 timing idealTree:node_modules/asarmor/node_modules/safe-buffer Completed in 0ms 418 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^8.0.0 419 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^3.0.0 420 timing idealTree:node_modules/asarmor/node_modules/string-width Completed in 2ms 421 timing idealTree:node_modules/asarmor/node_modules/emoji-regex Completed in 0ms 422 timing idealTree:node_modules/asarmor/node_modules/is-fullwidth-code-point Completed in 0ms 423 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^5.0.1 424 timing idealTree:node_modules/asarmor/node_modules/strip-ansi Completed in 1ms 425 timing idealTree:node_modules/asarmor/node_modules/ansi-regex Completed in 0ms 426 timing idealTree:node_modules/asarmor/node_modules/tar Completed in 0ms 427 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.0 428 silly fetch manifest imurmurhash@^0.1.4 429 http fetch GET 200 https://registry.npmjs.org/imurmurhash 7ms (cache hit) 430 timing idealTree:node_modules/asarmor/node_modules/unique-filename Completed in 8ms 431 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^0.1.4 432 timing idealTree:node_modules/asarmor/node_modules/unique-slug Completed in 1ms 433 timing idealTree:node_modules/asarmor/node_modules/imurmurhash Completed in 0ms 434 timing idealTree:node_modules/asarmor/node_modules/util-deprecate Completed in 0ms 435 silly placeDep node_modules/asarmor [email protected] OK for: [email protected] want: ^2.0.0 436 timing idealTree:node_modules/asarmor/node_modules/which Completed in 1ms 437 timing idealTree:node_modules/asarmor/node_modules/isexe Completed in 0ms 438 timing idealTree:node_modules/asarmor/node_modules/wide-align Completed in 0ms 439 timing idealTree:node_modules/asarmor/node_modules/wrappy Completed in 0ms 440 timing idealTree:node_modules/asarmor/node_modules/yallist Completed in 0ms 441 timing idealTree:node_modules/asarmor/node_modules/asar/node_modules/commander Completed in 0ms 442 silly placeDep node_modules/asarmor/node_modules/cacache [email protected] OK for: [email protected] want: ^5.0.1 443 silly fetch manifest brace-expansion@^2.0.1 444 timing idealTree:node_modules/asarmor/node_modules/cacache/node_modules/glob Completed in 2ms 445 silly placeDep node_modules/asarmor/node_modules/cacache [email protected] OK for: [email protected] want: ^2.0.1 446 timing idealTree:node_modules/asarmor/node_modules/cacache/node_modules/minimatch Completed in 1ms 447 timing idealTree:node_modules/asarmor/node_modules/cacache/node_modules/brace-expansion Completed in 0ms 448 timing idealTree:node_modules/asarmor/node_modules/semver/node_modules/lru-cache Completed in 0ms 449 timing idealTree:buildDeps Completed in 615ms 450 timing idealTree:fixDepFlags Completed in 2ms 451 timing idealTree Completed in 628ms 452 timing reify:loadTrees Completed in 633ms 453 timing reify:diffTrees Completed in 3ms 454 silly reify moves {} 455 timing reify:retireShallow Completed in 0ms 456 timing reify:createSparse Completed in 43ms 457 timing reify:loadBundles Completed in 0ms 458 silly audit bulk request { 458 silly audit asarmor: [ '2.1.0-beta.8' ], 458 silly audit asar: [ '3.1.0' ], 458 silly audit 'chromium-pickle-js': [ '0.2.0' ], 458 silly audit commander: [ '6.2.1', '5.1.0' ], 458 silly audit 'node-addon-api': [ '5.0.0' ], 458 silly audit 'node-gyp': [ '9.0.0' ], 458 silly audit '@types/glob': [ '7.2.0' ], 458 silly audit glob: [ '7.2.3', '8.0.3' ], 458 silly audit minimatch: [ '3.1.2', '5.1.0' ], 458 silly audit '@types/minimatch': [ '3.0.5' ], 458 silly audit '@types/node': [ '17.0.38' ], 458 silly audit 'fs.realpath': [ '1.0.0' ], 458 silly audit inflight: [ '1.0.6' ], 458 silly audit inherits: [ '2.0.4' ], 458 silly audit once: [ '1.4.0' ], 458 silly audit 'path-is-absolute': [ '1.0.1' ], 458 silly audit wrappy: [ '1.0.2' ], 458 silly audit 'brace-expansion': [ '1.1.11', '2.0.1' ], 458 silly audit 'balanced-match': [ '1.0.2' ], 458 silly audit 'concat-map': [ '0.0.1' ], 458 silly audit 'env-paths': [ '2.2.1' ], 458 silly audit 'graceful-fs': [ '4.2.10' ], 458 silly audit 'make-fetch-happen': [ '10.1.6' ], 458 silly audit nopt: [ '5.0.0' ], 458 silly audit npmlog: [ '6.0.2' ], 458 silly audit rimraf: [ '3.0.2' ], 458 silly audit semver: [ '7.3.7' ], 458 silly audit tar: [ '6.1.11' ], 458 silly audit which: [ '2.0.2' ], 458 silly audit agentkeepalive: [ '4.2.1' ], 458 silly audit cacache: [ '16.1.0' ], 458 silly audit 'http-cache-semantics': [ '4.1.0' ], 458 silly audit 'http-proxy-agent': [ '5.0.0' ], 458 silly audit 'https-proxy-agent': [ '5.0.1' ], 458 silly audit 'is-lambda': [ '1.0.1' ], 458 silly audit 'lru-cache': [ '7.10.1', '6.0.0' ], 458 silly audit minipass: [ '3.1.6' ], 458 silly audit 'minipass-collect': [ '1.0.2' ], 458 silly audit 'minipass-fetch': [ '2.1.0' ], 458 silly audit 'minipass-flush': [ '1.0.5' ], 458 silly audit 'minipass-pipeline': [ '1.2.4' ], 458 silly audit negotiator: [ '0.6.3' ], 458 silly audit 'promise-retry': [ '2.0.1' ], 458 silly audit 'socks-proxy-agent': [ '6.2.1' ], 458 silly audit ssri: [ '9.0.1' ], 458 silly audit debug: [ '4.3.4' ], 458 silly audit depd: [ '1.1.2' ], 458 silly audit 'humanize-ms': [ '1.2.1' ], 458 silly audit '@npmcli/fs': [ '2.1.0' ], 458 silly audit '@npmcli/move-file': [ '2.0.0' ], 458 silly audit chownr: [ '2.0.0' ], 458 silly audit 'fs-minipass': [ '2.1.0' ], 458 silly audit 'infer-owner': [ '1.0.4' ], 458 silly audit mkdirp: [ '1.0.4' ], 458 silly audit 'p-map': [ '4.0.0' ], 458 silly audit 'promise-inflight': [ '1.0.1' ], 458 silly audit 'unique-filename': [ '1.1.1' ], 458 silly audit '@gar/promisify': [ '1.1.3' ], 458 silly audit ms: [ '2.1.2' ], 458 silly audit '@tootallnate/once': [ '2.0.0' ], 458 silly audit 'agent-base': [ '6.0.2' ], 458 silly audit yallist: [ '4.0.0' ], 458 silly audit encoding: [ '0.1.13' ], 458 silly audit 'minipass-sized': [ '1.0.3' ], 458 silly audit minizlib: [ '2.1.2' ], 458 silly audit 'iconv-lite': [ '0.6.3' ], 458 silly audit 'safer-buffer': [ '2.1.2' ], 458 silly audit abbrev: [ '1.1.1' ], 458 silly audit 'are-we-there-yet': [ '3.0.0' ], 458 silly audit 'console-control-strings': [ '1.1.0' ], 458 silly audit gauge: [ '4.0.4' ], 458 silly audit 'set-blocking': [ '2.0.0' ], 458 silly audit delegates: [ '1.0.0' ], 458 silly audit 'readable-stream': [ '3.6.0' ], 458 silly audit aproba: [ '2.0.0' ], 458 silly audit 'color-support': [ '1.1.3' ], 458 silly audit 'has-unicode': [ '2.0.1' ], 458 silly audit 'signal-exit': [ '3.0.7' ], 458 silly audit 'string-width': [ '4.2.3' ], 458 silly audit 'strip-ansi': [ '6.0.1' ], 458 silly audit 'wide-align': [ '1.1.5' ], 458 silly audit 'aggregate-error': [ '3.1.0' ], 458 silly audit 'clean-stack': [ '2.2.0' ], 458 silly audit 'indent-string': [ '4.0.0' ], 458 silly audit 'err-code': [ '2.0.3' ], 458 silly audit retry: [ '0.12.0' ], 458 silly audit string_decoder: [ '1.3.0' ], 458 silly audit 'util-deprecate': [ '1.0.2' ], 458 silly audit socks: [ '2.6.2' ], 458 silly audit ip: [ '1.1.8' ], 458 silly audit 'smart-buffer': [ '4.2.0' ], 458 silly audit 'safe-buffer': [ '5.2.1' ], 458 silly audit 'emoji-regex': [ '8.0.0' ], 458 silly audit 'is-fullwidth-code-point': [ '3.0.0' ], 458 silly audit 'ansi-regex': [ '5.0.1' ], 458 silly audit 'unique-slug': [ '2.0.2' ], 458 silly audit imurmurhash: [ '0.1.4' ], 458 silly audit isexe: [ '2.0.0' ] 458 silly audit } 459 timing reifyNode:node_modules/asarmor/node_modules/ip Completed in 379ms 460 timing reifyNode:node_modules/asarmor/node_modules/imurmurhash Completed in 398ms 461 timing reifyNode:node_modules/asarmor/node_modules/wide-align Completed in 398ms 462 timing reifyNode:node_modules/asarmor/node_modules/has-unicode Completed in 399ms 463 timing reifyNode:node_modules/asarmor/node_modules/abbrev Completed in 398ms 464 timing reifyNode:node_modules/asarmor/node_modules/ms Completed in 400ms 465 timing reifyNode:node_modules/asarmor/node_modules/@gar/promisify Completed in 401ms 466 timing reifyNode:node_modules/asarmor/node_modules/chownr Completed in 400ms 467 timing reifyNode:node_modules/asarmor/node_modules/infer-owner Completed in 402ms 468 timing reifyNode:node_modules/asarmor/node_modules/promise-inflight Completed in 402ms 469 timing reifyNode:node_modules/asarmor/node_modules/minipass-pipeline Completed in 402ms 470 timing reifyNode:node_modules/asarmor/node_modules/minipass-flush Completed in 402ms 471 timing reifyNode:node_modules/asarmor/node_modules/minipass-collect Completed in 402ms 472 timing reifyNode:node_modules/asarmor/node_modules/wrappy Completed in 402ms 473 timing reifyNode:node_modules/asarmor/node_modules/brace-expansion Completed in 403ms 474 timing reifyNode:node_modules/asarmor/node_modules/once Completed in 402ms 475 timing reifyNode:node_modules/asarmor/node_modules/path-is-absolute Completed in 402ms 476 timing reifyNode:node_modules/asarmor/node_modules/inflight Completed in 402ms 477 timing reifyNode:node_modules/asarmor/node_modules/@types/minimatch Completed in 404ms 478 timing reifyNode:node_modules/asarmor/node_modules/@types/glob Completed in 404ms 479 timing reifyNode:node_modules/asarmor/node_modules/fs-minipass Completed in 409ms 480 timing reifyNode:node_modules/asarmor/node_modules/@npmcli/move-file Completed in 414ms 481 timing reifyNode:node_modules/asarmor/node_modules/semver/node_modules/lru-cache Completed in 414ms 482 timing reifyNode:node_modules/asarmor/node_modules/chromium-pickle-js Completed in 414ms 483 timing reifyNode:node_modules/asarmor/node_modules/string_decoder Completed in 419ms 484 timing reifyNode:node_modules/asarmor/node_modules/minipass Completed in 419ms 485 timing reifyNode:node_modules/asarmor/node_modules/http-cache-semantics Completed in 419ms 486 timing reifyNode:node_modules/asarmor/node_modules/minimatch Completed in 419ms 487 timing reifyNode:node_modules/asarmor/node_modules/npmlog Completed in 421ms 488 timing reifyNode:node_modules/asarmor/node_modules/ssri Completed in 423ms 489 timing reifyNode:node_modules/asarmor/node_modules/ansi-regex Completed in 428ms 490 timing reifyNode:node_modules/asarmor/node_modules/is-fullwidth-code-point Completed in 428ms 491 timing reifyNode:node_modules/asarmor/node_modules/strip-ansi Completed in 427ms 492 timing reifyNode:node_modules/asarmor/node_modules/indent-string Completed in 427ms 493 timing reifyNode:node_modules/asarmor/node_modules/clean-stack Completed in 428ms 494 timing reifyNode:node_modules/asarmor/node_modules/string-width Completed in 428ms 495 timing reifyNode:node_modules/asarmor/node_modules/aggregate-error Completed in 428ms 496 timing reifyNode:node_modules/asarmor/node_modules/signal-exit Completed in 429ms 497 timing reifyNode:node_modules/asarmor/node_modules/aproba Completed in 429ms 498 timing reifyNode:node_modules/asarmor/node_modules/set-blocking Completed in 428ms 499 timing reifyNode:node_modules/asarmor/node_modules/console-control-strings Completed in 428ms 500 timing reifyNode:node_modules/asarmor/node_modules/humanize-ms Completed in 428ms 501 timing reifyNode:node_modules/asarmor/node_modules/p-map Completed in 429ms 502 timing reifyNode:node_modules/asarmor/node_modules/env-paths Completed in 428ms 503 timing reifyNode:node_modules/asarmor/node_modules/inherits Completed in 429ms 504 timing reifyNode:node_modules/asarmor/node_modules/minizlib Completed in 433ms 505 timing reifyNode:node_modules/asarmor/node_modules/yallist Completed in 433ms 506 timing reifyNode:node_modules/asarmor/node_modules/cacache/node_modules/brace-expansion Completed in 433ms 507 timing reifyNode:node_modules/asarmor/node_modules/balanced-match Completed in 433ms 508 timing reifyNode:node_modules/asarmor/node_modules/fs.realpath Completed in 434ms 509 timing reifyNode:node_modules/asarmor/node_modules/safe-buffer Completed in 440ms 510 timing reifyNode:node_modules/asarmor/node_modules/socks-proxy-agent Completed in 440ms 511 timing reifyNode:node_modules/asarmor/node_modules/cacache/node_modules/minimatch Completed in 440ms 512 timing reifyNode:node_modules/asarmor/node_modules/util-deprecate Completed in 446ms 513 timing reifyNode:node_modules/asarmor/node_modules/color-support Completed in 446ms 514 timing reifyNode:node_modules/asarmor/node_modules/lru-cache Completed in 445ms 515 timing reifyNode:node_modules/asarmor/node_modules/unique-slug Completed in 450ms 516 timing reifyNode:node_modules/asarmor/node_modules/rimraf Completed in 447ms 517 timing reifyNode:node_modules/asarmor/node_modules/which Completed in 447ms 518 timing reifyNode:node_modules/asarmor/node_modules/cacache/node_modules/glob Completed in 455ms 519 timing reifyNode:node_modules/asarmor/node_modules/nopt Completed in 455ms 520 timing reifyNode:node_modules/asarmor/node_modules/glob Completed in 455ms 521 timing reifyNode:node_modules/asarmor/node_modules/is-lambda Completed in 459ms 522 timing reifyNode:node_modules/asarmor/node_modules/graceful-fs Completed in 460ms 523 timing reifyNode:node_modules/asarmor/node_modules/safer-buffer Completed in 463ms 524 timing reifyNode:node_modules/asarmor/node_modules/debug Completed in 462ms 525 timing reifyNode:node_modules/asarmor/node_modules/encoding Completed in 465ms 526 timing reifyNode:node_modules/asarmor/node_modules/concat-map Completed in 464ms 527 timing reifyNode:node_modules/asarmor/node_modules/asar/node_modules/commander Completed in 466ms 528 timing reifyNode:node_modules/asarmor/node_modules/delegates Completed in 470ms 529 timing reifyNode:node_modules/asarmor/node_modules/commander Completed in 467ms 530 timing reifyNode:node_modules/asarmor/node_modules/isexe Completed in 474ms 531 timing reifyNode:node_modules/asarmor/node_modules/http-proxy-agent Completed in 472ms 532 timing reifyNode:node_modules/asarmor/node_modules/are-we-there-yet Completed in 473ms 533 timing reifyNode:node_modules/asarmor/node_modules/promise-retry Completed in 473ms 534 timing reifyNode:node_modules/asarmor/node_modules/emoji-regex Completed in 476ms 535 timing reifyNode:node_modules/asarmor/node_modules/minipass-sized Completed in 477ms 536 timing reifyNode:node_modules/asarmor/node_modules/negotiator Completed in 481ms 537 timing reifyNode:node_modules/asarmor/node_modules/err-code Completed in 485ms 538 timing reifyNode:node_modules/asarmor/node_modules/agentkeepalive Completed in 487ms 539 timing reifyNode:node_modules/asarmor/node_modules/depd Completed in 488ms 540 timing reifyNode:node_modules/asarmor/node_modules/agent-base Completed in 491ms 541 timing reifyNode:node_modules/asarmor/node_modules/https-proxy-agent Completed in 493ms 542 timing reifyNode:node_modules/asarmor/node_modules/minipass-fetch Completed in 494ms 543 timing reifyNode:node_modules/asarmor/node_modules/@tootallnate/once Completed in 496ms 544 timing reifyNode:node_modules/asarmor/node_modules/mkdirp Completed in 499ms 545 timing reifyNode:node_modules/asarmor/node_modules/asar Completed in 499ms 546 timing reifyNode:node_modules/asarmor/node_modules/smart-buffer Completed in 516ms 547 timing reifyNode:node_modules/asarmor/node_modules/make-fetch-happen Completed in 516ms 548 timing reifyNode:node_modules/asarmor/node_modules/unique-filename Completed in 520ms 549 timing reifyNode:node_modules/asarmor/node_modules/retry Completed in 524ms 550 timing reifyNode:node_modules/asarmor/node_modules/gauge Completed in 529ms 551 timing reifyNode:node_modules/asarmor/node_modules/cacache Completed in 530ms 552 timing reifyNode:node_modules/asarmor/node_modules/node-addon-api Completed in 540ms 553 timing reifyNode:node_modules/asarmor/node_modules/@npmcli/fs Completed in 550ms 554 timing reifyNode:node_modules/asarmor/node_modules/readable-stream Completed in 553ms 555 timing reifyNode:node_modules/asarmor/node_modules/tar Completed in 559ms 556 http fetch POST 200 https://registry.npmjs.org/-/npm/v1/security/advisories/bulk 575ms 557 timing auditReport:getReport Completed in 579ms 558 silly audit report {} 559 timing auditReport:init Completed in 0ms 560 timing reify:audit Completed in 579ms 561 timing reifyNode:node_modules/asarmor/node_modules/socks Completed in 582ms 562 timing reifyNode:node_modules/asarmor/node_modules/iconv-lite Completed in 585ms 563 timing reifyNode:node_modules/asarmor/node_modules/semver Completed in 598ms 564 timing reifyNode:node_modules/asarmor Completed in 631ms 565 timing reifyNode:node_modules/asarmor/node_modules/@types/node Completed in 639ms 566 timing reifyNode:node_modules/asarmor/node_modules/node-gyp Completed in 736ms 567 timing reify:unpack Completed in 742ms 568 timing reify:unretire Completed in 0ms 569 timing build:queue Completed in 6ms 570 timing build:link:node_modules/asarmor Completed in 16ms 571 timing build:link:node_modules/asarmor/node_modules/asar Completed in 15ms 572 timing build:link:node_modules/asarmor/node_modules/color-support Completed in 16ms 573 timing build:link:node_modules/asarmor/node_modules/rimraf Completed in 15ms 574 timing build:link:node_modules/asarmor/node_modules/mkdirp Completed in 16ms 575 timing build:link:node_modules/asarmor/node_modules/semver Completed in 15ms 576 timing build:link:node_modules/asarmor/node_modules/node-gyp Completed in 16ms 577 timing build:link:node_modules/asarmor/node_modules/nopt Completed in 16ms 578 timing build:link:node_modules/asarmor/node_modules/which Completed in 15ms 579 timing build:link Completed in 17ms 580 info run [email protected] install node_modules/asarmor node ./scripts/keygen.js && node ./scripts/js2c.js && npm run gyp 581 info run [email protected] install { code: 1, signal: null } 582 timing reify:rollback:createSparse Completed in 337ms 583 timing reify:rollback:retireShallow Completed in 0ms 584 timing command:install Completed in 1964ms 585 verbose stack Error: command failed 585 verbose stack at ChildProcess. (C:\Program Files\nodejs\node_modules\npm\node_modules\@npmcli\promise-spawn\index.js:64:27) 585 verbose stack at ChildProcess.emit (node:events:527:28) 585 verbose stack at maybeClose (node:internal/child_process:1090:16) 585 verbose stack at Process.ChildProcess._handle.onexit (node:internal/child_process:302:5) 586 verbose pkgid [email protected] 587 verbose cwd C:\Users\Burgil 588 verbose Windows_NT 10.0.19044 589 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "install" "-g" "asarmor" 590 verbose node v17.9.0 591 verbose npm v8.5.5 592 error code 1 593 error path C:\Users\USERNAME\AppData\Roaming\npm\node_modules\asarmor 594 error command failed 595 error command C:\Windows\system32\cmd.exe /d /s /c node ./scripts/keygen.js && node ./scripts/js2c.js && npm run gyp 596 error node:internal/modules/cjs/loader:936 596 error throw err; 596 error ^ 596 error 596 error Error: Cannot find module 'terser' 596 error Require stack: 596 error - C:\Users\Burgil\AppData\Roaming\npm\node_modules\asarmor\scripts\js2c.js 596 error at Function.Module._resolveFilename (node:internal/modules/cjs/loader:933:15) 596 error at Function.Module._load (node:internal/modules/cjs/loader:778:27) 596 error at Module.require (node:internal/modules/cjs/loader:999:19) 596 error at require (node:internal/modules/cjs/helpers:102:18) 596 error at Object. (C:\Users\USERNAME\AppData\Roaming\npm\node_modules\asarmor\scripts\js2c.js:9:16) 596 error at Module._compile (node:internal/modules/cjs/loader:1099:14) 596 error at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) 596 error at Module.load (node:internal/modules/cjs/loader:975:32) 596 error at Function.Module._load (node:internal/modules/cjs/loader:822:12) 596 error at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:77:12) { 596 error code: 'MODULE_NOT_FOUND', 596 error requireStack: [ 596 error 'C:\\Users\\USERNAME\\AppData\\Roaming\\npm\\node_modules\\asarmor\\scripts\\js2c.js' 596 error ] 596 error } 596 error 596 error Node.js v17.9.0 597 verbose exit 1 598 timing npm Completed in 2410ms 599 verbose unfinished npm timer reify 1654182319195 600 verbose unfinished npm timer reify:build 1654182320632 601 verbose unfinished npm timer build 1654182320632 602 verbose unfinished npm timer build:deps 1654182320632 603 verbose unfinished npm timer build:run:install 1654182320656 604 verbose unfinished npm timer build:run:install:node_modules/asarmor 1654182320656 605 verbose code 1 606 error A complete log of this run can be found in: 606 error C:\Users\USERNAME\AppData\Local\npm-cache\_logs\2022-06-02T15_05_18_773Z-debug-0.log

I hope that will help add support for yarn 3, yarn 2, and windows environment (I tried on both windows 10 and win11 pc and both has the same outcome)

My versions:

NodeJS Version:
v17.9.0

NPM Version:
8.5.5

Yarn Version: (Ignore Low Versions - Updated manually per project)
1.22.15

Chocolatey Version:
1.1.0

Windows 21H2

need a writeSync function

Question:
I used the asarmor module in the afterPack process, but I found that 7za stopped processing during the generation of the zip package, so I started looking for the cause of the problem, and finally I found that using the write function would generate a .tmp file, and the write method had not finished when 7za packed the file, causing the 7za compression to report an error:

WARNING: No such file or directory
    xxxxx.app/Contents/Resources/app.asar.tmp

I took a look at the source code and added a promise to the write method and the problem was solved, but it would be better to provide a method that can be called synchronously, thank you very much.

code like this :

Asarmor.prototype.writeSync = function (output) {
        return new Promise((resolve, reject) => {
            // Convert header back to string
            var headerPickle = pickle.createEmpty();
            headerPickle.writeString(JSON.stringify(this.archive.header));
            // Read new header size
            var headerBuffer = headerPickle.toBuffer();
            var sizePickle = pickle.createEmpty();
            sizePickle.writeUInt32(headerBuffer.length);
            var sizeBuffer = sizePickle.toBuffer();
            // Write everything to output file :D
            var tmp = output + '.tmp'; // create temp file bcs we can't read & write the same file at the same time
            var writeStream = fs_1.default.createWriteStream(tmp, { flags: 'w' });
            writeStream.write(sizeBuffer);
            writeStream.write(headerBuffer);
            // write unmodified contents
            var fd = fs_1.default.openSync(this.filePath, 'r');
            var originalHeaderSize = this.readHeaderSize(fd);
            fs_1.default.closeSync(fd);
            var readStream = fs_1.default.createReadStream(this.filePath, { start: this.headerSizeOffset + originalHeaderSize });
            readStream.pipe(writeStream);
            readStream.on('close', function () { return readStream.unpipe(); });
            writeStream.on('close', () => {
                fs_1.default.renameSync(tmp, output);
                console.log("Asarmor sync write end");
                return resolve();
            });
        })
    };

after I use the FileCrash, the electron app can not run

electron-builder, afterPack

const { Asarmor, Trashify, FileCrash } = require('asarmor');
const { join } = require("path");

exports.default = async ({ appOutDir, packager }) => {
  try {
    const asarPath = join(packager.getResourcesDir(appOutDir), 'app.asar');
    console.log(`applying asarmor protections to ${asarPath}`);
    const asarmor = new Asarmor(asarPath);
    asarmor.applyProtection(new Trashify(['.git', '.env']));
    asarmor.applyProtection(new FileCrash('background.js', -999));
    asarmor.write(asarPath);
  } catch (err) {
    console.error(err);
  }
}

after I package app

It can not open, and no error

main.node is not a win32 application

I'm able to package and run my Electron app on macOS, however not on Windows. I get:
image

I've done a rebuild with npm rebuild which appeared to run successfully and recreated main.node and renderer.node. Didn't fix it.

Please help.

gyp ERR! asarmor 3.0.0

npm ERR! code 1
npm ERR! path D:\Web\Java projects\WJ-Writer\node_modules\asarmor    
npm ERR! command failed
npm ERR! command C:\Windows\system32\cmd.exe /d /s /c node ./scripts/keygen.js && npm run gyp
npm ERR! > asarmor@3.0.0 gyp
npm ERR! > npm run gyp:config && npm run gyp:build
npm ERR!
npm ERR!
npm ERR! > asarmor@3.0.0 gyp:config
npm ERR! > node ./scripts/configure.js
npm ERR! gyp info it worked if it ends with ok
npm ERR! gyp info using node-gyp@10.1.0
npm ERR! gyp info using node@16.20.2 | win32 | x64
npm ERR! gyp info find Python using Python version 3.10.8 found at "D:\SysTools\Python310\python.exe"
npm ERR! gyp http GET https://electronjs.org/headers/v12.2.3/node-v12.2.3-headers.tar.gz
npm ERR! gyp http fetch GET https://electronjs.org/headers/v12.2.3/node-v12.2.3-headers.tar.gz attempt 1 failed with ENOTFOUND
npm ERR! gyp WARN install got an error, rolling back install
npm ERR! gyp ERR! configure error
npm ERR! gyp ERR! stack Error: This is most likely not a problem with node-gyp or the package itself and
npm ERR! gyp ERR! stack is related to network connectivity. In most cases you are behind a proxy or have bad
npm ERR! gyp ERR! stack network settings.
npm ERR! gyp ERR! stack at go (D:\Web\Java projects\WJ-Writer\node_modules\asarmor\node_modules\node-gyp\lib\install.js:244:21)
npm ERR! gyp ERR! stack at processTicksAndRejections (node:internal/process/task_queues:96:5)
npm ERR! gyp ERR! stack at async install (D:\Web\Java projects\WJ-Writer\node_modules\asarmor\node_modules\node-gyp\lib\install.js:63:18) 
npm ERR! gyp ERR! stack at async getNodeDir (D:\Web\Java projects\WJ-Writer\node_modules\asarmor\node_modules\node-gyp\lib\configure.js:79:7)
npm ERR! gyp ERR! stack at async run (D:\Web\Java projects\WJ-Writer\node_modules\asarmor\node_modules\node-gyp\bin\node-gyp.js:81:18)    
npm ERR! gyp ERR! System Windows_NT 10.0.19045
npm ERR! gyp ERR! command "D:\\nvm\\node\\node.exe" "D:\\Web\\Java projects\\WJ-Writer\\node_modules\\asarmor\\node_modules\\node-gyp\\bin\\node-gyp.js" "configure" "--target=12.2.3" "--disturl=https://electronjs.org/headers"
npm ERR! gyp ERR! cwd D:\Web\Java projects\WJ-Writer\node_modules\asarmor
npm ERR! gyp ERR! node -v v16.20.2
npm ERR! gyp ERR! node-gyp -v v10.1.0
npm ERR! gyp ERR! not ok 
npm ERR! D:\Web\Java projects\WJ-Writer\node_modules\asarmor\scripts\spawn.js:18
npm ERR!         reject(new Error(`Child process exit: ${code}. Reason: ${reason}\n\n${command} ${argsString}\n`));
npm ERR!                ^
npm ERR!
npm ERR! Error: Child process exit: 1. Reason: null
npm ERR!
npm ERR! node "D:\Web\Java projects\WJ-Writer\node_modules\asarmor\node_modules\node-gyp\bin\node-gyp.js" configure --target=12.2.3 --disturl=https://electronjs.org/headers
npm ERR!
npm ERR!     at ChildProcess.<anonymous> (D:\Web\Java projects\WJ-Writer\node_modules\asarmor\scripts\spawn.js:18:16)
npm ERR!     at Object.onceWrapper (node:events:628:26)
npm ERR!     at ChildProcess.emit (node:events:513:28)
npm ERR!     at Process.ChildProcess._handle.onexit (node:internal/child_process:293:12)
node -v 
v16.20.2

npm -v 
8.19.4

OS
windows

Create plugins for `electron-builder` and `electron-forge`

It would be nice if we had a plugin for both packagers so users can install asarmor more easily.

The biggest challenge will probably be handling the different build tools (webpack, vite, ts/js etc.), managing edge cases and different project states (e.g. clashing configuration options, older versions, ...).

Resources:

Question about encrypt command in CLI

How to use encrypt command in CLI? Do I still need to create afterPack.js and beforePack.js as well as the library method?

Btw, I am using electron packager, here is my command:

electron-packager . --overwrite --out=dist/win --platform=win32 --arch=x64 --asar --icon=./public/img/favicon.ico && asarmor -a ./dist/win/app-win32-x64/resources/app.asar -o ./dist/win/app-win32-x64/resources/app.asar --encrypt ./src --key ./key.txt

After packaging the app, I tried to unpack app.asar and the folder node-modules disappeared, I didn't find any native files mentioned in readme.md as well. All the code is still there, but it became some unreadable encrypted format (Is this correct behavior?), and the app can't start without logging anything.

I have read the electron-asar-encrypt-demo repo, but don't understand how to use it in my application since I am using npm run command to pack the application.

Please forgive my stupidity if I did it wrong or misunderstood it.

θž’εΉ•ζˆͺεœ– 2022-06-03 δΈ‹εˆ4 46 14

main.js after packed.

README should contain key generation instructions

It's unclear whether or not base64 encode, whether or not a newline at the end of a key file is valid, etc.

Ideally next to the encrypt command it should include a method to generate a key, or the keyFile should not be included as an arg to the function in the example.

Understanding trashify behavior

Hello there, first off thanks you so much for this library 🀘

I have successfully completed all the steps to patch my asar file, however, I struggle to understand the purpose of the trashify patch
I tried multiple approachs from this template, including adding a filename array of 500 random names

  archive.patch(asarmor.createTrashPatch({
    filenames: ['foo', 'bar'],
    beforeWrite: (filename) => {
      const extensions = ['js', 'ts', 'tsx', 'txt'];
      const extension = extensions[Math.floor(Math.random() * extensions.length)];
      return filename + '.' + extension;
    }
  }));

I test how this affects to the extraction with the command npx @electron/asar extract ./resources/app.asar /out

I always get multiple console errors as a result, but anyway the extraction is done completely and I see absolutely all files. I guess I'm missing something

RangeError [ERR_INVALID_ARG_VALUE]: The argument 'size' is invalid. Received 3.6070516137455966e+307
RangeError [ERR_INVALID_ARG_VALUE]: The argument 'size' is invalid. Received 2.1199720750809106e+307
RangeError [ERR_INVALID_ARG_VALUE]: The argument 'size' is invalid. Received 7.202901386823941e+307
    at Function.alloc (node:buffer:366:3)
    at Object.module.exports.readFileSync (node_modules\@electron\asar\lib\disk.js:106:23)
    at Object.module.exports.extractAll (node_modules\@electron\asar\lib\asar.js:206:30).......

Regards

Write data to archive body

Instead of only modifying the asar header, we should look into writing data to the body as well. This should be an optional feature though, as it will increase the resulting asar file size.

Related to #43.

Error from renderer.node in BrowserWindow

I'm trying to use asarmor (v2.1.0-beta.10) with encryption, and I get the following in the console of the renderer.

Uncaught TypeError: Cannot read properties of undefined (reading 'exports')
    at r (<anonymous>:1:60)
    at findEntryModule (<anonymous>:1:169)
    at process.func [as dlopen] (node:electron/js2c/asar_bundle:2:1822)
    at Module._extensions..node (node:internal/modules/cjs/loader:1226:18)
    at Object.func [as .node] (node:electron/js2c/asar_bundle:2:1822)
    at Module.load (node:internal/modules/cjs/loader:1011:32)
    at Module._load (node:internal/modules/cjs/loader:846:12)
    at f._load (node:electron/js2c/asar_bundle:2:13330)
    at o._load (node:electron/js2c/renderer_init:2:3109)
    at Module.require (node:internal/modules/cjs/loader:1035:19)

I've followed instructions

  • webPreferences options to include: nodeIntegration:true and contextIsolation:false
  • in main.js, export a bootstrap function which calls createWindow after app.whenReady() promise
  • in createWindow(), call the following after BrowserWindow instantiated
win.loadFile(`${__dirname}/app/index.html`);
win.webContents.executeJavaScript(`!function () {
   require('../../app.asar.unpacked/renderer.node');
}()`)

(if I leave out the loadFile call, the console shows no activity, and I'm not able to call loadFile after the executeJavaScript() - it just does nothing)

My app differs from the example in that the initial renderer contents is from an html, not generated from js.
I've left out details of the packaging process, as that appears to be working to encrypt the app.asar file.

Am I doing something incorrectly ? Your help would be greatly appreciated.

Encryption: support preload script

From the electron docs:

string (optional) - Specifies a script that will be loaded before other scripts run in the page. This script will always have access to node APIs no matter whether node integration is turned on or off. The value should be the absolute file path to the script. When node integration is turned off, the preload script can reintroduce Node global symbols back to the global scope.

Asarmor currently doesn't support preload scripts because they run before decryption of the render process occurred.

It would be nice if we could do the decryption within the preload script instead. That way we should also be able to disable nodeIntegration, which increases overall security as well. If that's not possible, it would be nice to at least support preload scripts one way or the other, because now they just don't work at all - or mention it's a caveat in README.md.

[suggestion] maybe should add a tip...

if someone use asarmor + leveldb + electron-builder and NOT add asarmor to electronBuilder:{externals:[]}, running the packaged program will report an error about leveldb LOCK xxx

Config file like this is work for me:

 electronBuilder: {
      externals: ["level", "asarmor"],
}

File size limit

Hello,

I am writing to ask you why there is size limit of 2gb?
I try to asarmor a 4gb .asar file and i can't.
Is there any possibility to expand the size limit?

error: unknown option '--encrypt-key'

I think the problem is outdated command info on the readme file and here: #44 (comment) regarding the --encrypt-key option

Packaging the app into an asar archive...
error: unknown option '--encrypt-key'
node:internal/process/promises:279
            triggerUncaughtException(err, true /* fromPromise */);
            ^

[Error: ENOENT: no such file or directory, stat 'B:\HIDDENHIDDEN\test\release\win-unpacked\resources\app.asar'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'stat',
  path: 'B:\\HIDDENHIDDEN\\test\\release\\win-unpacked\\resources\\app.asar'
}

Node.js v17.9.0
skipped call asar pack app app.asar
skipped rmdir /s /q app

Trying to package the app.asar before now like so: (Because I also tried without running asar pack app app.asar and asarmor said that it's missing the app.asar file that its not found or something)

This is how I did it on Windows:

echo Packaging the app into an asar archive...
call yarn run asar pack app app.asar
call node --eval "fs.writeFileSync(path.join(__dirname, 'random.key.txt'), Array.prototype.map.call(crypto.randomBytes(32), (v => ('0x' + ('0' + v.toString(16)).slice(-2)))).toString());"
call yarn run asarmor -a ./app -o app.asar --encrypt-key random.key.txt
call yarn run asarmor -a app.asar -o asarmor.asar --trashify key.txt main.js index.ts style.css index.html index.load.ts index.js --bloat 420
del random.key.txt

echo skipped call asar pack app app.asar
echo skipped rmdir /s /q app

I guess this can be done on linux and mac like so:

echo Packaging the app into an asar archive...
yarn run asar pack app app.asar
node --eval "fs.writeFileSync(path.join(__dirname, 'random.key.txt'), Array.prototype.map.call(crypto.randomBytes(32), (v => ('0x' + ('0' + v.toString(16)).slice(-2)))).toString());"
yarn run asarmor -a ./app -o app.asar --encrypt-key random.key.txt
yarn run asarmor -a app.asar -o asarmor.asar --trashify key.txt main.js index.ts style.css index.html index.load.ts index.js --bloat 420
rm -f random.key.txt

nope still getting:

Packaging the app into an asar archive...
error: unknown option '--encrypt-key'
B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
        throw new Error('Unable to read header size!');
              ^

Error: Unable to read header size!
    at readHeaderSize (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17:15)
    at async readArchive (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:24:24)
    at async read (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:48:21)
    at async Object.open (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:134:21)
    at async main (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\bin\asarmor.js:43:21)

Node.js v17.9.0
skipped rmdir /s /q app

folder view:

image

trying with -ek flag instead

Usage: asarmor [options]

Options:
  -V, --version                  output the version number
  -a, --archive <archive>        input asar file (required)
  -o, --output <output>          output asar file (required)
  -b, --backup                   create backup
  -r, --restore                  restore backup
  -bl, --bloat [gigabytes]       add huge random files to disk on extraction attempt
  -t, --trashify [junkfiles...]  add fake files to the archive
  -e, --encrypt <src>            encrypt file contents
  -k, --key <file path>          key file to use for encryption
  -h, --help                     display help for command

B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
        throw new Error('Unable to read header size!');
              ^

Error: Unable to read header size!
    at readHeaderSize (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17:15)
    at async readArchive (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:24:24)
    at async read (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:48:21)
    at async Object.open (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:134:21)
    at async main (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\bin\asarmor.js:43:21)

Node.js v17.9.0
skipped rmdir /s /q app

with this new options we got I noticed --key is different than --encrypt-key, let's try:

image

now I have no idea what's wrong:

Packaging the app into an asar archive...
node:internal/process/promises:279
            triggerUncaughtException(err, true /* fromPromise */);
            ^

[Error: EISDIR: illegal operation on a directory, read] {
  errno: -4068,
  code: 'EISDIR',
  syscall: 'read'
}

Node.js v17.9.0
B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
        throw new Error('Unable to read header size!');
              ^

Error: Unable to read header size!
    at readHeaderSize (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17:15)
    at async readArchive (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:24:24)
    at async read (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:48:21)
    at async Object.open (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:134:21)
    at async main (B:\HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\bin\asarmor.js:43:21)

Node.js v17.9.0
skipped rmdir /s /q app

I narrowed down the problem to this line:

asarmor -a app.asar -o app.protected.asar -k random.key.txt

tried every possible combo between -a and -o, both same, one like this, another, and all possibilities basically, when it doesnt throw the error of file missing it throws:

asar pack .\app app.asar
asarmor -a app.asar -o app.asar -k random.key.txt
asarmor -a app.asar -o app.protected.asar -k random.key.txt
asarmor -a app.protected.asar -o app.asar -k random.key.txt
asarmor -a .\app -o app.protected.asar -k random.key.txt
asarmor -a ./app -o app.protected.asar -k random.key.txt
asarmor -a app.protected.asar -o ./app -k random.key.txt
asarmor -a app.asar -o ./app -k random.key.txt
HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
        throw new Error('Unable to read header size!');
              ^

Error: Unable to read header size!
    at readHeaderSize (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17:15)
    at async readArchive (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:24:24)
    at async read (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:48:21)
    at async Object.open (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:134:21)
    at async main (HIDDEN\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\bin\asarmor.js:43:21)

Node.js v17.9.0

or this:

\test\.yarn\unplugged\asarmor-npm-2.1.0-beta.9-ec95b2afd7\node_modules\asarmor\build\src\asarmor.js:17
node:internal/process/promises:279
            triggerUncaughtException(err, true /* fromPromise */);
            ^

[Error: ENOENT: no such file or directory, stat 'B:\hidden\test\release\win-unpacked\resources\app.protected.asar'] {
  errno: -4058,
  code: 'ENOENT',
  syscall: 'stat',
  path: 'B:\\hidden\\test\\release\\win-unpacked\\resources\\app.protected.asar'
}

Application entry file does not exist?

This is the first time I use the library method to encrypt the app, but I'm getting issue, here is my afterPack.js and my app directory:
Screenshot 2023-01-23 at 12 09 38 AM

When I run the pack command, it show the Application entry file does not exist error, did I did something wrong with it?

Screenshot 2023-01-23 at 12 13 28 AM

I tried to use the asar unpack command and index.js is actually there, and it's contents are encrypted.

Node Integration true shoudn't be a security issue?

Great tool btw ! I have a security related question.

I'm worried about nodeIntegration: true option as i've read this article.

If we build it with asarmor it shoudn't be an issue right? Because it's encrypted.

const mainWindow = new BrowserWindow({
    // ...
    webPreferences: {
      nodeIntegration: true,   // MUST BE ENABLED
      contextIsolation: false, // MUST BE DISABLED
    },
});

Thank you !

Errors in main.js when attempting to use encryption

Hi, thank you for this repo!

I've been following the new instructions in the Readme to get encryption working on my electron-react-boilerplate-based app, and I think I've followed them correctly - ./src/main/main.node is my entry point in my app's root package.json file and my asar has encrypted files in it.

image

However, when I try to run the electron app after installation I get this error message, and it looks like it is trying to load the encrypted main.js

image

I noticed that release/app/package.json still had main.js as the "main" target - modifying that file to also point to main.node, I now get a different error message, so I think that at least let me load main.js correctly? - Maybe this should be added as instruction in the readme.

Screenshot 2024-05-01 183339

This error message seemed to be resolved by changing

module.exports = function bootstrap(k: Uint8Array) {...

to export default function bootstrap(k: Uint8Array) {...

But now I get a new error

image

Any idea what might be going wrong at this stage?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.