node-datachannel 0.1.10 → 0.1.14-dev

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.
Files changed (52) hide show
  1. package/CMakeLists.txt +13 -3
  2. package/README.md +2 -7
  3. package/node_modules/delegates/package.json +0 -1
  4. package/node_modules/has-unicode/package.json +0 -1
  5. package/node_modules/ini/ini.js +49 -37
  6. package/node_modules/ini/package.json +22 -19
  7. package/node_modules/node-abi/.github/workflows/update-abi.yml +1 -1
  8. package/node_modules/node-abi/.travis.yml +2 -4
  9. package/node_modules/node-abi/README.md +1 -1
  10. package/node_modules/node-abi/abi_registry.json +46 -1
  11. package/node_modules/node-abi/index.js +7 -1
  12. package/node_modules/node-abi/package.json +10 -11
  13. package/node_modules/node-abi/scripts/update-abi-registry.js +11 -5
  14. package/node_modules/prebuild-install/CHANGELOG.md +75 -1
  15. package/node_modules/prebuild-install/README.md +43 -12
  16. package/node_modules/prebuild-install/asset.js +1 -5
  17. package/node_modules/prebuild-install/bin.js +4 -11
  18. package/node_modules/prebuild-install/download.js +55 -43
  19. package/node_modules/prebuild-install/help.txt +2 -0
  20. package/node_modules/prebuild-install/log.js +12 -0
  21. package/node_modules/prebuild-install/package.json +14 -15
  22. package/node_modules/prebuild-install/proxy.js +2 -5
  23. package/node_modules/prebuild-install/rc.js +11 -32
  24. package/node_modules/prebuild-install/util.js +49 -3
  25. package/node_modules/readable-stream/package.json +0 -1
  26. package/node_modules/safe-buffer/package.json +0 -1
  27. package/node_modules/string-width/package.json +2 -3
  28. package/package.json +19 -10
  29. package/src/data-channel-wrapper.cpp +62 -30
  30. package/src/data-channel-wrapper.h +19 -9
  31. package/src/peer-connection-wrapper.cpp +56 -28
  32. package/src/peer-connection-wrapper.h +19 -9
  33. package/src/rtc-wrapper.cpp +11 -1
  34. package/src/rtc-wrapper.h +3 -1
  35. package/src/thread-safe-callback.cpp +69 -0
  36. package/src/thread-safe-callback.h +57 -0
  37. package/test/connectivity.js +2 -1
  38. package/test/test.js +111 -112
  39. package/node_modules/noop-logger/.npmignore +0 -1
  40. package/node_modules/noop-logger/History.md +0 -16
  41. package/node_modules/noop-logger/Makefile +0 -8
  42. package/node_modules/noop-logger/Readme.md +0 -27
  43. package/node_modules/noop-logger/circle.yml +0 -9
  44. package/node_modules/noop-logger/lib/index.js +0 -25
  45. package/node_modules/noop-logger/package.json +0 -51
  46. package/node_modules/noop-logger/test/index.js +0 -18
  47. package/node_modules/prebuild-install/.travis.yml +0 -12
  48. package/node_modules/prebuild-install/appveyor.yml +0 -40
  49. package/node_modules/which-pm-runs/LICENSE +0 -21
  50. package/node_modules/which-pm-runs/README.md +0 -29
  51. package/node_modules/which-pm-runs/index.js +0 -17
  52. package/node_modules/which-pm-runs/package.json +0 -64
package/CMakeLists.txt CHANGED
@@ -1,6 +1,6 @@
1
1
  cmake_minimum_required(VERSION 3.15)
2
2
  cmake_policy(SET CMP0091 NEW)
3
- project(node_datachannel VERSION 0.1.10)
3
+ project(node_datachannel VERSION 0.1.14)
4
4
 
5
5
  include_directories(${CMAKE_JS_INC})
6
6
 
@@ -27,9 +27,12 @@ include(FetchContent)
27
27
  FetchContent_Declare(
28
28
  libdatachannel
29
29
  GIT_REPOSITORY https://github.com/paullouisageneau/libdatachannel.git
30
- GIT_TAG "v0.15.2"
30
+ GIT_TAG "v0.16.0"
31
31
  )
32
32
 
33
+ option(NO_MEDIA "Disable media transport support in libdatachannel" ON)
34
+ option(NO_WEBSOCKET "Disable WebSocket support in libdatachannel" ON)
35
+
33
36
  FetchContent_GetProperties(libdatachannel)
34
37
  if(NOT libdatachannel)
35
38
  FetchContent_Populate(libdatachannel)
@@ -41,6 +44,7 @@ add_library(${PROJECT_NAME} SHARED
41
44
  src/rtc-wrapper.cpp
42
45
  src/data-channel-wrapper.cpp
43
46
  src/peer-connection-wrapper.cpp
47
+ src/thread-safe-callback.cpp
44
48
  src/main.cpp
45
49
  ${CMAKE_JS_SRC}
46
50
  )
@@ -50,10 +54,16 @@ set_target_properties(${PROJECT_NAME} PROPERTIES PREFIX "" SUFFIX ".node")
50
54
 
51
55
  target_include_directories(${PROJECT_NAME} PRIVATE
52
56
  ${CMAKE_SOURCE_DIR}/node_modules/node-addon-api
53
- ${CMAKE_SOURCE_DIR}/node_modules/napi-thread-safe-callback
54
57
  ${CMAKE_BINARY_DIR}/_deps/libdatachannel-src/include
55
58
  )
56
59
 
60
+ # For compatibility with Node.js 12
61
+ # This should be removed along with the napi-thread-safe-callback-cancellable dependency when dropping support at end-of-life
62
+ target_compile_definitions(${PROJECT_NAME} PRIVATE -DLEGACY_NAPI_THREAD_SAFE_CALLBACK)
63
+ target_include_directories(${PROJECT_NAME} PRIVATE
64
+ ${CMAKE_SOURCE_DIR}/node_modules/napi-thread-safe-callback-cancellable
65
+ )
66
+
57
67
  set(LINK_LIBRARIES
58
68
  ${CMAKE_JS_LIB}
59
69
  datachannel-static
package/README.md CHANGED
@@ -152,15 +152,10 @@ Prebuilt binaries are available (Node Version >= 10);
152
152
  > npm i
153
153
  ```
154
154
 
155
- Build with libnice support
156
- ```sh
157
- > npm run install-nice
158
- ```
159
-
160
155
  Other Options
161
156
  ```sh
162
- > npm run install -- -DUSE_GNUTLS=1 # Use GNU TLS instead of OpenSSL (Default False)
163
- > npm run install -- -DUSE_SRTP=1 # Enable SRTP for media support ( Default False)
157
+ > npm run install -- -DUSE_GNUTLS=1 # Use GnuTLS instead of OpenSSL (Default False)
158
+ > npm run install -- -DUSE_NICE=1 # Use libnice instead of libjuice (Default False)
164
159
  ```
165
160
 
166
161
  ### Test
@@ -23,7 +23,6 @@
23
23
  },
24
24
  "_requiredBy": [
25
25
  "/are-we-there-yet",
26
- "/cmake-js/are-we-there-yet",
27
26
  "/node-ninja/are-we-there-yet",
28
27
  "/npmlog/are-we-there-yet"
29
28
  ],
@@ -22,7 +22,6 @@
22
22
  "fetchSpec": "2.0.1"
23
23
  },
24
24
  "_requiredBy": [
25
- "/cmake-js/gauge",
26
25
  "/gauge",
27
26
  "/npmlog/gauge"
28
27
  ],
@@ -15,7 +15,7 @@ function encode (obj, opt) {
15
15
  if (typeof opt === 'string') {
16
16
  opt = {
17
17
  section: opt,
18
- whitespace: false
18
+ whitespace: false,
19
19
  }
20
20
  } else {
21
21
  opt = opt || {}
@@ -30,27 +30,25 @@ function encode (obj, opt) {
30
30
  val.forEach(function (item) {
31
31
  out += safe(k + '[]') + separator + safe(item) + '\n'
32
32
  })
33
- } else if (val && typeof val === 'object') {
33
+ } else if (val && typeof val === 'object')
34
34
  children.push(k)
35
- } else {
35
+ else
36
36
  out += safe(k) + separator + safe(val) + eol
37
- }
38
37
  })
39
38
 
40
- if (opt.section && out.length) {
39
+ if (opt.section && out.length)
41
40
  out = '[' + safe(opt.section) + ']' + eol + out
42
- }
43
41
 
44
42
  children.forEach(function (k, _, __) {
45
43
  var nk = dotSplit(k).join('\\.')
46
44
  var section = (opt.section ? opt.section + '.' : '') + nk
47
45
  var child = encode(obj[k], {
48
46
  section: section,
49
- whitespace: opt.whitespace
47
+ whitespace: opt.whitespace,
50
48
  })
51
- if (out.length && child.length) {
49
+ if (out.length && child.length)
52
50
  out += eol
53
- }
51
+
54
52
  out += child
55
53
  })
56
54
 
@@ -62,7 +60,7 @@ function dotSplit (str) {
62
60
  .replace(/\\\./g, '\u0001')
63
61
  .split(/\./).map(function (part) {
64
62
  return part.replace(/\1/g, '\\.')
65
- .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001')
63
+ .replace(/\2LITERAL\\1LITERAL\2/g, '\u0001')
66
64
  })
67
65
  }
68
66
 
@@ -75,15 +73,25 @@ function decode (str) {
75
73
  var lines = str.split(/[\r\n]+/g)
76
74
 
77
75
  lines.forEach(function (line, _, __) {
78
- if (!line || line.match(/^\s*[;#]/)) return
76
+ if (!line || line.match(/^\s*[;#]/))
77
+ return
79
78
  var match = line.match(re)
80
- if (!match) return
79
+ if (!match)
80
+ return
81
81
  if (match[1] !== undefined) {
82
82
  section = unsafe(match[1])
83
+ if (section === '__proto__') {
84
+ // not allowed
85
+ // keep parsing the section, but don't attach it.
86
+ p = {}
87
+ return
88
+ }
83
89
  p = out[section] = out[section] || {}
84
90
  return
85
91
  }
86
92
  var key = unsafe(match[2])
93
+ if (key === '__proto__')
94
+ return
87
95
  var value = match[3] ? unsafe(match[4]) : true
88
96
  switch (value) {
89
97
  case 'true':
@@ -94,20 +102,20 @@ function decode (str) {
94
102
  // Convert keys with '[]' suffix to an array
95
103
  if (key.length > 2 && key.slice(-2) === '[]') {
96
104
  key = key.substring(0, key.length - 2)
97
- if (!p[key]) {
105
+ if (key === '__proto__')
106
+ return
107
+ if (!p[key])
98
108
  p[key] = []
99
- } else if (!Array.isArray(p[key])) {
109
+ else if (!Array.isArray(p[key]))
100
110
  p[key] = [p[key]]
101
- }
102
111
  }
103
112
 
104
113
  // safeguard against resetting a previously defined
105
114
  // array by accidentally forgetting the brackets
106
- if (Array.isArray(p[key])) {
115
+ if (Array.isArray(p[key]))
107
116
  p[key].push(value)
108
- } else {
117
+ else
109
118
  p[key] = value
110
- }
111
119
  })
112
120
 
113
121
  // {a:{y:1},"a.b":{x:2}} --> {a:{y:1,b:{x:2}}}
@@ -115,9 +123,9 @@ function decode (str) {
115
123
  Object.keys(out).filter(function (k, _, __) {
116
124
  if (!out[k] ||
117
125
  typeof out[k] !== 'object' ||
118
- Array.isArray(out[k])) {
126
+ Array.isArray(out[k]))
119
127
  return false
120
- }
128
+
121
129
  // see if the parent section is also an object.
122
130
  // if so, add it to that, and mark this one for deletion
123
131
  var parts = dotSplit(k)
@@ -125,12 +133,15 @@ function decode (str) {
125
133
  var l = parts.pop()
126
134
  var nl = l.replace(/\\\./g, '.')
127
135
  parts.forEach(function (part, _, __) {
128
- if (!p[part] || typeof p[part] !== 'object') p[part] = {}
136
+ if (part === '__proto__')
137
+ return
138
+ if (!p[part] || typeof p[part] !== 'object')
139
+ p[part] = {}
129
140
  p = p[part]
130
141
  })
131
- if (p === out && nl === l) {
142
+ if (p === out && nl === l)
132
143
  return false
133
- }
144
+
134
145
  p[nl] = out[k]
135
146
  return true
136
147
  }).forEach(function (del, _, __) {
@@ -152,18 +163,20 @@ function safe (val) {
152
163
  (val.length > 1 &&
153
164
  isQuoted(val)) ||
154
165
  val !== val.trim())
155
- ? JSON.stringify(val)
156
- : val.replace(/;/g, '\\;').replace(/#/g, '\\#')
166
+ ? JSON.stringify(val)
167
+ : val.replace(/;/g, '\\;').replace(/#/g, '\\#')
157
168
  }
158
169
 
159
170
  function unsafe (val, doUnesc) {
160
171
  val = (val || '').trim()
161
172
  if (isQuoted(val)) {
162
173
  // remove the single quotes before calling JSON.parse
163
- if (val.charAt(0) === "'") {
174
+ if (val.charAt(0) === "'")
164
175
  val = val.substr(1, val.length - 2)
165
- }
166
- try { val = JSON.parse(val) } catch (_) {}
176
+
177
+ try {
178
+ val = JSON.parse(val)
179
+ } catch (_) {}
167
180
  } else {
168
181
  // walk the val to find the first not-escaped ; character
169
182
  var esc = false
@@ -171,23 +184,22 @@ function unsafe (val, doUnesc) {
171
184
  for (var i = 0, l = val.length; i < l; i++) {
172
185
  var c = val.charAt(i)
173
186
  if (esc) {
174
- if ('\\;#'.indexOf(c) !== -1) {
187
+ if ('\\;#'.indexOf(c) !== -1)
175
188
  unesc += c
176
- } else {
189
+ else
177
190
  unesc += '\\' + c
178
- }
191
+
179
192
  esc = false
180
- } else if (';#'.indexOf(c) !== -1) {
193
+ } else if (';#'.indexOf(c) !== -1)
181
194
  break
182
- } else if (c === '\\') {
195
+ else if (c === '\\')
183
196
  esc = true
184
- } else {
197
+ else
185
198
  unesc += c
186
- }
187
199
  }
188
- if (esc) {
200
+ if (esc)
189
201
  unesc += '\\'
190
- }
202
+
191
203
  return unesc.trim()
192
204
  }
193
205
  return val
@@ -1,31 +1,31 @@
1
1
  {
2
2
  "_args": [
3
3
  [
4
- "ini@1.3.5",
4
+ "ini@1.3.8",
5
5
  "/home/runner/work/node-datachannel/node-datachannel"
6
6
  ]
7
7
  ],
8
- "_from": "ini@1.3.5",
9
- "_id": "ini@1.3.5",
8
+ "_from": "ini@1.3.8",
9
+ "_id": "ini@1.3.8",
10
10
  "_inBundle": false,
11
- "_integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==",
11
+ "_integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==",
12
12
  "_location": "/ini",
13
13
  "_phantomChildren": {},
14
14
  "_requested": {
15
15
  "type": "version",
16
16
  "registry": true,
17
- "raw": "ini@1.3.5",
17
+ "raw": "ini@1.3.8",
18
18
  "name": "ini",
19
19
  "escapedName": "ini",
20
- "rawSpec": "1.3.5",
20
+ "rawSpec": "1.3.8",
21
21
  "saveSpec": null,
22
- "fetchSpec": "1.3.5"
22
+ "fetchSpec": "1.3.8"
23
23
  },
24
24
  "_requiredBy": [
25
25
  "/rc"
26
26
  ],
27
- "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
28
- "_spec": "1.3.5",
27
+ "_resolved": "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz",
28
+ "_spec": "1.3.8",
29
29
  "_where": "/home/runner/work/node-datachannel/node-datachannel",
30
30
  "author": {
31
31
  "name": "Isaac Z. Schlueter",
@@ -35,14 +35,14 @@
35
35
  "bugs": {
36
36
  "url": "https://github.com/isaacs/ini/issues"
37
37
  },
38
- "dependencies": {},
39
38
  "description": "An ini encoder/decoder for node",
40
39
  "devDependencies": {
41
- "standard": "^10.0.3",
42
- "tap": "^10.7.3 || 11"
43
- },
44
- "engines": {
45
- "node": "*"
40
+ "eslint": "^7.9.0",
41
+ "eslint-plugin-import": "^2.22.0",
42
+ "eslint-plugin-node": "^11.1.0",
43
+ "eslint-plugin-promise": "^4.2.1",
44
+ "eslint-plugin-standard": "^4.0.1",
45
+ "tap": "14"
46
46
  },
47
47
  "files": [
48
48
  "ini.js"
@@ -56,11 +56,14 @@
56
56
  "url": "git://github.com/isaacs/ini.git"
57
57
  },
58
58
  "scripts": {
59
- "postpublish": "git push origin --all; git push origin --tags",
59
+ "eslint": "eslint",
60
+ "lint": "npm run eslint -- ini.js test/*.js",
61
+ "lintfix": "npm run lint -- --fix",
62
+ "posttest": "npm run lint",
60
63
  "postversion": "npm publish",
61
- "pretest": "standard ini.js",
64
+ "prepublishOnly": "git push origin --follow-tags",
62
65
  "preversion": "npm test",
63
- "test": "tap test/*.js --100 -J"
66
+ "test": "tap"
64
67
  },
65
- "version": "1.3.5"
68
+ "version": "1.3.8"
66
69
  }
@@ -1,7 +1,7 @@
1
1
  name: Auto-update ABI JSON file
2
2
  on:
3
3
  schedule:
4
- - cron: '0 0 * * *'
4
+ - cron: '0 * * * *'
5
5
  jobs:
6
6
  autoupdate:
7
7
  runs-on: ubuntu-latest
@@ -5,13 +5,11 @@ cache:
5
5
  notifications:
6
6
  email: false
7
7
  node_js:
8
+ - '14'
9
+ - '12'
8
10
  - '10'
9
11
  - '9'
10
12
  - '8'
11
- - '6'
12
- - '4'
13
- - '0.12'
14
- - '0.10'
15
13
  after_success:
16
14
  - npm run travis-deploy-once "npm run semantic-release"
17
15
  branches:
@@ -47,4 +47,4 @@ nodeAbi.futureTargets
47
47
 
48
48
  - https://github.com/lgeiger/electron-abi
49
49
  - https://nodejs.org/en/download/releases/
50
- - https://github.com/nodejs/LTS
50
+ - https://github.com/nodejs/Release
@@ -40,6 +40,16 @@
40
40
  "future": false,
41
41
  "abi": "88"
42
42
  },
43
+ {
44
+ "runtime": "node",
45
+ "target": "16.0.0",
46
+ "lts": [
47
+ "2021-10-26",
48
+ "2022-10-18"
49
+ ],
50
+ "future": false,
51
+ "abi": "93"
52
+ },
43
53
  {
44
54
  "abi": "70",
45
55
  "future": false,
@@ -68,6 +78,13 @@
68
78
  "runtime": "electron",
69
79
  "target": "8.0.0-beta.1"
70
80
  },
81
+ {
82
+ "abi": "76",
83
+ "future": false,
84
+ "lts": false,
85
+ "runtime": "electron",
86
+ "target": "9.0.0-beta.1"
87
+ },
71
88
  {
72
89
  "abi": "80",
73
90
  "future": false,
@@ -82,6 +99,13 @@
82
99
  "runtime": "electron",
83
100
  "target": "10.0.0-beta.1"
84
101
  },
102
+ {
103
+ "abi": "82",
104
+ "future": false,
105
+ "lts": false,
106
+ "runtime": "electron",
107
+ "target": "11.0.0-beta.1"
108
+ },
85
109
  {
86
110
  "abi": "85",
87
111
  "future": false,
@@ -91,9 +115,30 @@
91
115
  },
92
116
  {
93
117
  "abi": "87",
118
+ "future": false,
119
+ "lts": false,
120
+ "runtime": "electron",
121
+ "target": "12.0.0-beta.1"
122
+ },
123
+ {
124
+ "abi": "89",
125
+ "future": false,
126
+ "lts": false,
127
+ "runtime": "electron",
128
+ "target": "14.0.0-beta.1"
129
+ },
130
+ {
131
+ "abi": "89",
132
+ "future": false,
133
+ "lts": false,
134
+ "runtime": "electron",
135
+ "target": "13.0.0-beta.2"
136
+ },
137
+ {
138
+ "abi": "89",
94
139
  "future": true,
95
140
  "lts": false,
96
141
  "runtime": "electron",
97
- "target": "12.0.0-nightly.20201013"
142
+ "target": "15.0.0-alpha.1"
98
143
  }
99
144
  ]
@@ -4,7 +4,13 @@ function getNextTarget (runtime, targets) {
4
4
  if (targets == null) targets = allTargets
5
5
  var latest = targets.filter(function (t) { return t.runtime === runtime }).slice(-1)[0]
6
6
  var increment = runtime === 'electron' ? 'minor' : 'major'
7
- return semver.inc(latest.target, increment)
7
+ var next = semver.inc(latest.target, increment)
8
+ // Electron releases appear in the registry in their beta form, sometimes there is
9
+ // no active beta line. During this time we need to double bump
10
+ if (runtime === 'electron' && semver.parse(latest.target).prerelease.length) {
11
+ next = semver.inc(next, 'major')
12
+ }
13
+ return next
8
14
  }
9
15
 
10
16
  function getAbi (target, runtime) {
@@ -1,32 +1,31 @@
1
1
  {
2
2
  "_args": [
3
3
  [
4
- "node-abi@2.19.3",
4
+ "node-abi@2.30.1",
5
5
  "/home/runner/work/node-datachannel/node-datachannel"
6
6
  ]
7
7
  ],
8
- "_from": "node-abi@2.19.3",
9
- "_id": "node-abi@2.19.3",
8
+ "_from": "node-abi@2.30.1",
9
+ "_id": "node-abi@2.30.1",
10
10
  "_inBundle": false,
11
- "_integrity": "sha512-9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg==",
11
+ "_integrity": "sha512-/2D0wOQPgaUWzVSVgRMx+trKJRC2UG4SUc4oCJoXx9Uxjtp0Vy3/kt7zcbxHF8+Z/pK3UloLWzBISg72brfy1w==",
12
12
  "_location": "/node-abi",
13
13
  "_phantomChildren": {},
14
14
  "_requested": {
15
15
  "type": "version",
16
16
  "registry": true,
17
- "raw": "node-abi@2.19.3",
17
+ "raw": "node-abi@2.30.1",
18
18
  "name": "node-abi",
19
19
  "escapedName": "node-abi",
20
- "rawSpec": "2.19.3",
20
+ "rawSpec": "2.30.1",
21
21
  "saveSpec": null,
22
- "fetchSpec": "2.19.3"
22
+ "fetchSpec": "2.30.1"
23
23
  },
24
24
  "_requiredBy": [
25
- "/prebuild",
26
25
  "/prebuild-install"
27
26
  ],
28
- "_resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz",
29
- "_spec": "2.19.3",
27
+ "_resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.30.1.tgz",
28
+ "_spec": "2.30.1",
30
29
  "_where": "/home/runner/work/node-datachannel/node-datachannel",
31
30
  "author": {
32
31
  "name": "Lukas Geiger"
@@ -65,5 +64,5 @@
65
64
  "travis-deploy-once": "travis-deploy-once",
66
65
  "update-abi-registry": "node --unhandled-rejections=strict scripts/update-abi-registry.js"
67
66
  },
68
- "version": "2.19.3"
67
+ "version": "2.30.1"
69
68
  }
@@ -9,7 +9,8 @@ async function getJSONFromCDN (urlPath) {
9
9
  }
10
10
 
11
11
  async function fetchElectronReleases () {
12
- return (await getJSONFromCDN('electron/releases/lite.json'))
12
+ const response = await got(`https://electronjs.org/headers/index.json`)
13
+ return JSON.parse(response.body)
13
14
  }
14
15
 
15
16
  async function fetchNodeVersions () {
@@ -42,22 +43,27 @@ async function fetchAbiVersions () {
42
43
  function electronReleasesToTargets (releases) {
43
44
  const versions = releases.map(({ version }) => version)
44
45
  const versionsByModules = releases
45
- .filter(release => release.deps && Number(release.deps.modules) >= 70)
46
- .map(({ version, deps: { modules } }) => ({
46
+ .filter(release => Number(release.modules) >= 70)
47
+ .map(({ version, modules }) => ({
47
48
  version,
48
49
  modules,
49
50
  }))
51
+ .filter(({ version }) => !version.includes('nightly'))
52
+ .sort((a, b) => Number(a.modules) - Number(b.modules))
50
53
  .reduce(
51
54
  (acc, { modules, version }) => ({
52
55
  ...acc,
53
- [modules]: version,
56
+ [`${version.split('.')[0]}-${modules}`]: {
57
+ version,
58
+ modules,
59
+ }
54
60
  }),
55
61
  {}
56
62
  )
57
63
 
58
64
  return Object.entries(versionsByModules)
59
65
  .map(
60
- ([modules, version]) => ({
66
+ ([major, {version, modules}]) => ({
61
67
  abi: modules,
62
68
  future: !versions.find(
63
69
  v => {
@@ -1,7 +1,81 @@
1
1
  # Changelog
2
2
 
3
- ## 5.3.6 - 2020-10-20
3
+ ## [6.1.4] - 2021-08-11
4
+
5
+ ### Fixed
6
+
7
+ - Move auth token to header instead of query param ([#160](https://github.com/prebuild/prebuild-install/issues/160)) ([`b3fad76`](https://github.com/prebuild/prebuild-install/commit/b3fad76)) (nicolai-nordic)
8
+ - Remove `_` prefix as it isn't allowed by npm config ([#153](https://github.com/prebuild/prebuild-install/issues/153)) ([`a964e5b`](https://github.com/prebuild/prebuild-install/commit/a964e5b)) (Tom Boothman)
9
+ - Make `rc.path` absolute ([#158](https://github.com/prebuild/prebuild-install/issues/158)) ([`57bcc06`](https://github.com/prebuild/prebuild-install/commit/57bcc06)) (George Waters).
10
+
11
+ ## [6.1.3] - 2021-06-03
12
+
13
+ ### Changed
14
+
15
+ - Inline no longer maintained `noop-logger` ([#155](https://github.com/prebuild/prebuild-install/issues/155)) ([`e08d75a`](https://github.com/prebuild/prebuild-install/commit/e08d75a)) (Alexandru Dima)
16
+ - Point users towards `prebuildify` in README ([#150](https://github.com/prebuild/prebuild-install/issues/150)) ([`5ee1a2f`](https://github.com/prebuild/prebuild-install/commit/5ee1a2f)) (Vincent Weevers)
17
+
18
+ ## [6.1.2] - 2021-04-24
19
+
20
+ ### Fixed
21
+
22
+ - Support URL-safe strings in scoped packages ([#148](https://github.com/prebuild/prebuild-install/issues/148)) ([`db36c7a`](https://github.com/prebuild/prebuild-install/commit/db36c7a)) (Marco)
23
+
24
+ ## [6.1.1] - 2021-04-04
25
+
26
+ ### Fixed
27
+
28
+ - Support `force` & `buildFromSource` options in yarn ([#140](https://github.com/prebuild/prebuild-install/issues/140)) ([`8cb1ced`](https://github.com/prebuild/prebuild-install/commit/8cb1ced)) (João Moreno)
29
+ - Bump `node-abi` to prevent dedupe (closes [#135](https://github.com/prebuild/prebuild-install/issues/135)) ([`2950fb2`](https://github.com/prebuild/prebuild-install/commit/2950fb2)) (Vincent Weevers)
30
+
31
+ ## [6.1.0] - 2021-04-03
32
+
33
+ ### Added
34
+
35
+ - Restore local prebuilds feature ([#137](https://github.com/prebuild/prebuild-install/issues/137)) ([`dc4e5ea`](https://github.com/prebuild/prebuild-install/commit/dc4e5ea)) (Wes Roberts). Previously removed in [#81](https://github.com/prebuild/prebuild-install/issues/81) / [`a069253`](https://github.com/prebuild/prebuild-install/commit/a06925378d38ca821bfa93aa4c1fdedc253b2420).
36
+
37
+ ## [6.0.1] - 2021-02-14
38
+
39
+ ### Fixed
40
+
41
+ - Fixes empty `--tag-prefix` ([#143](https://github.com/prebuild/prebuild-install/issues/143)) ([**@mathiask88**](https://github.com/mathiask88))
42
+
43
+ ## [6.0.0] - 2020-10-23
44
+
45
+ ### Changed
46
+
47
+ - **Breaking:** don't skip downloads in standalone mode ([`b6f3b36`](https://github.com/prebuild/prebuild-install/commit/b6f3b36)) ([**@vweevers**](https://github.com/vweevers))
48
+
49
+ ### Added
50
+
51
+ - Document cross platform options ([`e5c9a5a`](https://github.com/prebuild/prebuild-install/commit/e5c9a5a)) ([**@fishbone1**](https://github.com/fishbone1))
52
+
53
+ ### Removed
54
+
55
+ - **Breaking:** remove `--compile` and `--prebuild` options ([`94f2492`](https://github.com/prebuild/prebuild-install/commit/94f2492)) ([**@vweevers**](https://github.com/vweevers))
56
+
57
+ ### Fixed
58
+
59
+ - Support npm 7 ([`8acccac`](https://github.com/prebuild/prebuild-install/commit/8acccac), [`08eaf6d`](https://github.com/prebuild/prebuild-install/commit/08eaf6d), [`22175b8`](https://github.com/prebuild/prebuild-install/commit/22175b8)) ([**@vweevers**](https://github.com/vweevers))
60
+
61
+ ## [5.3.6] - 2020-10-20
4
62
 
5
63
  ### Changed
6
64
 
7
65
  - Replace `mkdirp` dependency with `mkdirp-classic` ([**@ralphtheninja**](https://github.com/ralphtheninja))
66
+
67
+ [6.1.4]: https://github.com/prebuild/prebuild-install/compare/v6.1.3...v6.1.4
68
+
69
+ [6.1.3]: https://github.com/prebuild/prebuild-install/compare/v6.1.2...v6.1.3
70
+
71
+ [6.1.2]: https://github.com/prebuild/prebuild-install/compare/v6.1.1...v6.1.2
72
+
73
+ [6.1.1]: https://github.com/prebuild/prebuild-install/compare/v6.1.0...v6.1.1
74
+
75
+ [6.1.0]: https://github.com/prebuild/prebuild-install/compare/v6.0.1...v6.1.0
76
+
77
+ [6.0.1]: https://github.com/prebuild/prebuild-install/compare/v6.0.0...v6.0.1
78
+
79
+ [6.0.0]: https://github.com/prebuild/prebuild-install/compare/v5.3.6...v6.0.0
80
+
81
+ [5.3.6]: https://github.com/prebuild/prebuild-install/releases/tag/v5.3.6