isomorfeus-speednode 0.4.6 → 0.4.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3f842e689f630194758bcc86a37f75902d1c5aa86ec9600fa5373c2a4349df1f
4
- data.tar.gz: 56959ce3fd7ed8de02abfd0e0970fc62c7a4ec82957c0e01410e583d69697ca5
3
+ metadata.gz: ca0207c7ed85d1fb9f3fd4bbefcd101f2fd07f8b12b9708cd090e0fef4f76880
4
+ data.tar.gz: cebac939d6b699bb9e2afab4a4eefb1880cab09ea6e64ddf23d231e36d64fbd4
5
5
  SHA512:
6
- metadata.gz: eee28f46f8f21b26498e6403c885e0bd27a6ad20980ddff5b2b14e086430df401ad9751cf4e2646ece544ffd18750aa1b7bee9d457d1f55b4cd616d3faf0eede
7
- data.tar.gz: a01893f46a88c31c7cca49e515a5d214a0fb1b3b6b9d4a62a85b09ff242b3247db9a75fc46037fdd5a1bb54a858de095491736e89d50b12d3dd8ec6676e8d643
6
+ metadata.gz: 909f2eafee666a73675fe313aed7dcf34674d8b0563649fffae41271131196b6fc333c61fdd6c2253fd86f2365b41efd788e51f1560fc27fbe5ec5fa4ba3549b
7
+ data.tar.gz: 2829dfa3c69ee7a402a325ca6cd1d7b6e1231f6fd8002f589c699c9b94a178bb7972da445a888d115c09c19fd5cf1d9c878a4c5ff983661cf93c2e2669627416
data/README.md CHANGED
@@ -7,7 +7,7 @@ A fast runtime for execjs using node js. Works on Linux, BSDs, MacOS and Windows
7
7
  Inspired by [execjs-fastnode](https://github.com/jhawthorn/execjs-fastnode).
8
8
 
9
9
  ### Community and Support
10
- At the [Isomorfeus Framework Project](http://isomorfeus.com)
10
+ At the [Isomorfeus Framework Project](https://isomorfeus.com)
11
11
 
12
12
  ### Installation
13
13
 
@@ -4,6 +4,11 @@ const vm = require('vm');
4
4
  const net = require('net');
5
5
  const os = require('os');
6
6
  const fs = require('fs');
7
+ let crypto_var = null;
8
+ try {
9
+ crypto_var = require('crypto');
10
+ } catch (err) {}
11
+ const crypto = crypto_var;
7
12
  let contexts = {};
8
13
  let process_exit = false;
9
14
 
@@ -200,7 +205,7 @@ function createCompatibleContext(uuid, options) {
200
205
  }
201
206
 
202
207
  function createPermissiveContext(uuid, options) {
203
- let c = vm.createContext({ __responder_socket: false, process: { release: { name: "node" }, env: process.env }, Buffer, clearTimeout, fs, net, os, require, setTimeout });
208
+ let c = vm.createContext({ __responder_socket: false, process: { release: { name: "node" }, env: process.env }, Buffer, clearTimeout, crypto, fs, net, os, require, setTimeout });
204
209
  vm.runInContext('global = globalThis;', c);
205
210
  contexts[uuid] = { context: c, options: options };
206
211
  return c;
@@ -110,7 +110,7 @@ module Isomorfeus
110
110
  extract_result(result)
111
111
  end
112
112
 
113
- def extract_result(output)
113
+ def extract_result(output)
114
114
  if output[0] == 'ok'
115
115
  output[1]
116
116
  else
@@ -44,7 +44,7 @@ module Isomorfeus
44
44
  attr_reader :responder
45
45
 
46
46
  def initialize(options)
47
- @mutex = Mutex.new
47
+ @mutex = Thread::Mutex.new
48
48
  @socket_path = nil
49
49
  @options = options
50
50
  @started = false
@@ -101,7 +101,11 @@ module Isomorfeus
101
101
  end
102
102
 
103
103
  def delete_context(context)
104
- command("deleteContext", context)
104
+ @mutex.synchronize do
105
+ VMCommand.new(@socket, "deleteContext", [context]).execute rescue nil
106
+ end
107
+ rescue ThreadError
108
+ nil
105
109
  end
106
110
 
107
111
  # def context_options(context)
@@ -122,7 +126,7 @@ module Isomorfeus
122
126
  @socket_dir = nil
123
127
  @socket_path = SecureRandom.uuid
124
128
  else
125
- @socket_dir = Dir.mktmpdir("isomorfeus-speednode-")
129
+ @socket_dir = Dir.mktmpdir("iso-speednode-")
126
130
  @socket_path = File.join(@socket_dir, "socket")
127
131
  end
128
132
  @pid = Process.spawn({"SOCKET_PATH" => @socket_path}, @options[:binary], @options[:source_maps], @options[:runner_path])
@@ -1,5 +1,5 @@
1
1
  module Isomorfeus
2
2
  module Speednode
3
- VERSION = '0.4.6'
3
+ VERSION = '0.4.10'
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isomorfeus-speednode
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.6
4
+ version: 0.4.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jan Biedermann
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-19 00:00:00.000000000 Z
11
+ date: 2022-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: execjs
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: 3.13.9
33
+ version: 3.13.11
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: 3.13.9
40
+ version: 3.13.11
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: win32-pipe
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -72,14 +72,14 @@ dependencies:
72
72
  requirements:
73
73
  - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 5.14.4
75
+ version: 5.15.0
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 5.14.4
82
+ version: 5.15.0
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: rake
85
85
  requirement: !ruby/object:Gem::Requirement
@@ -130,11 +130,12 @@ files:
130
130
  - lib/isomorfeus/speednode/runtime/vm.rb
131
131
  - lib/isomorfeus/speednode/runtime/vm_command.rb
132
132
  - lib/isomorfeus/speednode/version.rb
133
- homepage: http://isomorfeus.com
133
+ homepage: https://isomorfeus.com
134
134
  licenses:
135
135
  - MIT
136
136
  metadata:
137
137
  github_repo: ssh://github.com/isomorfeus/gems
138
+ source_code_uri: https://github.com/isomorfeus/isomorfeus-speednode
138
139
  post_install_message:
139
140
  rdoc_options: []
140
141
  require_paths:
@@ -143,14 +144,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
143
144
  requirements:
144
145
  - - ">="
145
146
  - !ruby/object:Gem::Version
146
- version: '0'
147
+ version: 3.1.0
147
148
  required_rubygems_version: !ruby/object:Gem::Requirement
148
149
  requirements:
149
150
  - - ">="
150
151
  - !ruby/object:Gem::Version
151
152
  version: '0'
152
153
  requirements: []
153
- rubygems_version: 3.2.22
154
+ rubygems_version: 3.3.3
154
155
  signing_key:
155
156
  specification_version: 4
156
157
  summary: A fast ExecJS runtime based on nodejs, tuned for Isomorfeus.