node-red-contrib-web-worldmap 2.23.5 → 2.24.0

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 (202) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/README.md +7 -1
  3. package/node_modules/body-parser/HISTORY.md +15 -0
  4. package/node_modules/body-parser/README.md +25 -12
  5. package/node_modules/body-parser/package.json +32 -35
  6. package/node_modules/{body-parser/node_modules/bytes → bytes}/History.md +5 -0
  7. package/node_modules/{body-parser/node_modules/bytes → bytes}/LICENSE +0 -0
  8. package/node_modules/{raw-body/node_modules/bytes → bytes}/Readme.md +42 -16
  9. package/node_modules/{raw-body/node_modules/bytes → bytes}/index.js +5 -1
  10. package/node_modules/{raw-body/node_modules/bytes → bytes}/package.json +20 -21
  11. package/node_modules/content-disposition/HISTORY.md +5 -0
  12. package/node_modules/content-disposition/README.md +3 -9
  13. package/node_modules/content-disposition/index.js +1 -1
  14. package/node_modules/content-disposition/node_modules/safe-buffer/LICENSE +21 -0
  15. package/node_modules/content-disposition/node_modules/safe-buffer/README.md +584 -0
  16. package/node_modules/content-disposition/node_modules/safe-buffer/index.d.ts +187 -0
  17. package/node_modules/content-disposition/node_modules/safe-buffer/index.js +65 -0
  18. package/node_modules/content-disposition/node_modules/safe-buffer/package.json +76 -0
  19. package/node_modules/content-disposition/package.json +25 -28
  20. package/node_modules/cookie/HISTORY.md +5 -0
  21. package/node_modules/cookie/README.md +4 -0
  22. package/node_modules/cookie/index.js +5 -1
  23. package/node_modules/cookie/package.json +20 -23
  24. package/node_modules/express/History.md +33 -0
  25. package/node_modules/express/Readme.md +8 -5
  26. package/node_modules/express/lib/application.js +1 -1
  27. package/node_modules/express/lib/request.js +1 -1
  28. package/node_modules/express/lib/response.js +16 -11
  29. package/node_modules/express/lib/router/index.js +6 -0
  30. package/node_modules/express/lib/utils.js +2 -6
  31. package/node_modules/express/node_modules/safe-buffer/LICENSE +21 -0
  32. package/node_modules/express/node_modules/safe-buffer/README.md +584 -0
  33. package/node_modules/express/node_modules/safe-buffer/index.d.ts +187 -0
  34. package/node_modules/express/node_modules/safe-buffer/index.js +65 -0
  35. package/node_modules/express/node_modules/safe-buffer/package.json +76 -0
  36. package/node_modules/express/package.json +35 -36
  37. package/node_modules/faye-websocket/CHANGELOG.md +5 -0
  38. package/node_modules/faye-websocket/LICENSE.md +1 -1
  39. package/node_modules/faye-websocket/README.md +13 -13
  40. package/node_modules/faye-websocket/lib/faye/websocket/api.js +10 -8
  41. package/node_modules/faye-websocket/lib/faye/websocket/client.js +4 -4
  42. package/node_modules/faye-websocket/lib/faye/websocket.js +1 -1
  43. package/node_modules/faye-websocket/package.json +14 -17
  44. package/node_modules/forwarded/HISTORY.md +5 -0
  45. package/node_modules/forwarded/README.md +3 -3
  46. package/node_modules/forwarded/index.js +15 -1
  47. package/node_modules/forwarded/package.json +25 -26
  48. package/node_modules/http-errors/HISTORY.md +16 -0
  49. package/node_modules/http-errors/README.md +12 -6
  50. package/node_modules/http-errors/index.js +35 -2
  51. package/node_modules/http-errors/package.json +28 -31
  52. package/node_modules/{websocket-driver/node_modules/http-parser-js → http-parser-js}/LICENSE.md +0 -0
  53. package/node_modules/http-parser-js/README.md +39 -0
  54. package/node_modules/http-parser-js/http-parser.d.ts +175 -0
  55. package/node_modules/{websocket-driver/node_modules/http-parser-js → http-parser-js}/http-parser.js +8 -5
  56. package/node_modules/{websocket-driver/node_modules/http-parser-js → http-parser-js}/package.json +17 -19
  57. package/node_modules/inherits/inherits.js +2 -0
  58. package/node_modules/inherits/inherits_browser.js +18 -14
  59. package/node_modules/inherits/package.json +15 -18
  60. package/node_modules/ipaddr.js/README.md +1 -1
  61. package/node_modules/ipaddr.js/lib/ipaddr.js.d.ts +6 -9
  62. package/node_modules/ipaddr.js/package.json +15 -17
  63. package/node_modules/proxy-addr/HISTORY.md +11 -0
  64. package/node_modules/proxy-addr/README.md +3 -19
  65. package/node_modules/proxy-addr/index.js +1 -1
  66. package/node_modules/proxy-addr/package.json +28 -31
  67. package/node_modules/qs/.editorconfig +9 -0
  68. package/node_modules/qs/.eslintignore +2 -1
  69. package/node_modules/qs/.eslintrc +15 -1
  70. package/node_modules/qs/.github/FUNDING.yml +12 -0
  71. package/node_modules/qs/.nycrc +13 -0
  72. package/node_modules/qs/CHANGELOG.md +103 -0
  73. package/node_modules/qs/LICENSE.md +29 -0
  74. package/node_modules/qs/README.md +34 -0
  75. package/node_modules/qs/dist/qs.js +117 -67
  76. package/node_modules/qs/lib/formats.js +9 -4
  77. package/node_modules/qs/lib/parse.js +29 -14
  78. package/node_modules/qs/lib/stringify.js +55 -46
  79. package/node_modules/qs/lib/utils.js +23 -2
  80. package/node_modules/qs/package.json +39 -31
  81. package/node_modules/qs/test/parse.js +97 -1
  82. package/node_modules/qs/test/stringify.js +115 -1
  83. package/node_modules/qs/test/utils.js +1 -1
  84. package/node_modules/raw-body/HISTORY.md +14 -0
  85. package/node_modules/raw-body/README.md +3 -5
  86. package/node_modules/raw-body/package.json +30 -33
  87. package/node_modules/send/HISTORY.md +10 -0
  88. package/node_modules/send/README.md +4 -6
  89. package/node_modules/send/index.js +7 -3
  90. package/node_modules/send/node_modules/ms/index.js +3 -3
  91. package/node_modules/send/node_modules/ms/license.md +1 -1
  92. package/node_modules/send/node_modules/ms/package.json +19 -21
  93. package/node_modules/send/node_modules/ms/readme.md +1 -2
  94. package/node_modules/send/package.json +28 -31
  95. package/node_modules/serve-static/HISTORY.md +8 -0
  96. package/node_modules/serve-static/README.md +9 -11
  97. package/node_modules/serve-static/package.json +28 -31
  98. package/node_modules/setprototypeof/README.md +1 -1
  99. package/node_modules/setprototypeof/index.js +1 -1
  100. package/node_modules/setprototypeof/package.json +17 -18
  101. package/node_modules/sockjs/Changelog +12 -0
  102. package/node_modules/sockjs/lib/transport.js +1 -1
  103. package/node_modules/sockjs/package.json +14 -16
  104. package/node_modules/toidentifier/HISTORY.md +9 -0
  105. package/node_modules/toidentifier/README.md +3 -3
  106. package/node_modules/toidentifier/index.js +2 -0
  107. package/node_modules/toidentifier/package.json +28 -27
  108. package/node_modules/uuid/CHANGELOG.md +154 -44
  109. package/node_modules/uuid/CONTRIBUTING.md +18 -0
  110. package/node_modules/uuid/LICENSE.md +4 -16
  111. package/node_modules/uuid/README.md +384 -155
  112. package/node_modules/uuid/dist/bin/uuid +2 -0
  113. package/node_modules/uuid/dist/esm-browser/index.js +9 -0
  114. package/node_modules/uuid/{lib/md5-browser.js → dist/esm-browser/md5.js} +70 -71
  115. package/node_modules/uuid/dist/esm-browser/nil.js +1 -0
  116. package/node_modules/uuid/dist/esm-browser/parse.js +35 -0
  117. package/node_modules/uuid/dist/esm-browser/regex.js +1 -0
  118. package/node_modules/uuid/dist/esm-browser/rng.js +19 -0
  119. package/node_modules/uuid/dist/esm-browser/sha1.js +96 -0
  120. package/node_modules/uuid/dist/esm-browser/stringify.js +30 -0
  121. package/node_modules/uuid/{v1.js → dist/esm-browser/v1.js} +36 -50
  122. package/node_modules/uuid/dist/esm-browser/v3.js +4 -0
  123. package/node_modules/uuid/dist/esm-browser/v35.js +64 -0
  124. package/node_modules/uuid/dist/esm-browser/v4.js +24 -0
  125. package/node_modules/uuid/dist/esm-browser/v5.js +4 -0
  126. package/node_modules/uuid/dist/esm-browser/validate.js +7 -0
  127. package/node_modules/uuid/dist/esm-browser/version.js +11 -0
  128. package/node_modules/uuid/dist/esm-node/index.js +9 -0
  129. package/node_modules/uuid/dist/esm-node/md5.js +13 -0
  130. package/node_modules/uuid/dist/esm-node/nil.js +1 -0
  131. package/node_modules/uuid/dist/esm-node/parse.js +35 -0
  132. package/node_modules/uuid/dist/esm-node/regex.js +1 -0
  133. package/node_modules/uuid/dist/esm-node/rng.js +12 -0
  134. package/node_modules/uuid/dist/esm-node/sha1.js +13 -0
  135. package/node_modules/uuid/dist/esm-node/stringify.js +29 -0
  136. package/node_modules/uuid/dist/esm-node/v1.js +95 -0
  137. package/node_modules/uuid/dist/esm-node/v3.js +4 -0
  138. package/node_modules/uuid/dist/esm-node/v35.js +64 -0
  139. package/node_modules/uuid/dist/esm-node/v4.js +24 -0
  140. package/node_modules/uuid/dist/esm-node/v5.js +4 -0
  141. package/node_modules/uuid/dist/esm-node/validate.js +7 -0
  142. package/node_modules/uuid/dist/esm-node/version.js +11 -0
  143. package/node_modules/uuid/dist/index.js +79 -0
  144. package/node_modules/uuid/dist/md5-browser.js +223 -0
  145. package/node_modules/uuid/dist/md5.js +23 -0
  146. package/node_modules/uuid/dist/nil.js +8 -0
  147. package/node_modules/uuid/dist/parse.js +45 -0
  148. package/node_modules/uuid/dist/regex.js +8 -0
  149. package/node_modules/uuid/dist/rng-browser.js +26 -0
  150. package/node_modules/uuid/dist/rng.js +24 -0
  151. package/node_modules/uuid/dist/sha1-browser.js +104 -0
  152. package/node_modules/uuid/dist/sha1.js +23 -0
  153. package/node_modules/uuid/dist/stringify.js +39 -0
  154. package/node_modules/uuid/dist/umd/uuid.min.js +1 -0
  155. package/node_modules/uuid/dist/umd/uuidNIL.min.js +1 -0
  156. package/node_modules/uuid/dist/umd/uuidParse.min.js +1 -0
  157. package/node_modules/uuid/dist/umd/uuidStringify.min.js +1 -0
  158. package/node_modules/uuid/dist/umd/uuidValidate.min.js +1 -0
  159. package/node_modules/uuid/dist/umd/uuidVersion.min.js +1 -0
  160. package/node_modules/uuid/dist/umd/uuidv1.min.js +1 -0
  161. package/node_modules/uuid/dist/umd/uuidv3.min.js +1 -0
  162. package/node_modules/uuid/dist/umd/uuidv4.min.js +1 -0
  163. package/node_modules/uuid/dist/umd/uuidv5.min.js +1 -0
  164. package/node_modules/uuid/dist/uuid-bin.js +85 -0
  165. package/node_modules/uuid/dist/v1.js +107 -0
  166. package/node_modules/uuid/dist/v3.js +16 -0
  167. package/node_modules/uuid/dist/v35.js +78 -0
  168. package/node_modules/uuid/dist/v4.js +37 -0
  169. package/node_modules/uuid/dist/v5.js +16 -0
  170. package/node_modules/uuid/dist/validate.js +17 -0
  171. package/node_modules/uuid/dist/version.js +21 -0
  172. package/node_modules/uuid/package.json +116 -55
  173. package/node_modules/uuid/wrapper.mjs +10 -0
  174. package/package.json +3 -3
  175. package/worldmap/index.html +1 -0
  176. package/worldmap/leaflet/leaflet-arc.min.js +1 -0
  177. package/worldmap/worldmap.js +36 -22
  178. package/worldmap.html +1 -1
  179. package/worldmap.js +2 -2
  180. package/node_modules/body-parser/node_modules/bytes/Readme.md +0 -126
  181. package/node_modules/body-parser/node_modules/bytes/index.js +0 -162
  182. package/node_modules/body-parser/node_modules/bytes/package.json +0 -86
  183. package/node_modules/qs/LICENSE +0 -28
  184. package/node_modules/qs/test/.eslintrc +0 -17
  185. package/node_modules/qs/test/index.js +0 -7
  186. package/node_modules/raw-body/node_modules/bytes/History.md +0 -87
  187. package/node_modules/raw-body/node_modules/bytes/LICENSE +0 -23
  188. package/node_modules/uuid/AUTHORS +0 -5
  189. package/node_modules/uuid/bin/uuid +0 -65
  190. package/node_modules/uuid/index.js +0 -8
  191. package/node_modules/uuid/lib/bytesToUuid.js +0 -26
  192. package/node_modules/uuid/lib/md5.js +0 -25
  193. package/node_modules/uuid/lib/rng-browser.js +0 -34
  194. package/node_modules/uuid/lib/rng.js +0 -8
  195. package/node_modules/uuid/lib/sha1-browser.js +0 -89
  196. package/node_modules/uuid/lib/sha1.js +0 -25
  197. package/node_modules/uuid/lib/v35.js +0 -57
  198. package/node_modules/uuid/v3.js +0 -4
  199. package/node_modules/uuid/v4.js +0 -29
  200. package/node_modules/uuid/v5.js +0 -3
  201. package/node_modules/websocket-driver/node_modules/http-parser-js/CHANGELOG.md +0 -14
  202. package/node_modules/websocket-driver/node_modules/http-parser-js/README.md +0 -31
@@ -5,14 +5,14 @@ var formats = require('./formats');
5
5
  var has = Object.prototype.hasOwnProperty;
6
6
 
7
7
  var arrayPrefixGenerators = {
8
- brackets: function brackets(prefix) { // eslint-disable-line func-name-matching
8
+ brackets: function brackets(prefix) {
9
9
  return prefix + '[]';
10
10
  },
11
11
  comma: 'comma',
12
- indices: function indices(prefix, key) { // eslint-disable-line func-name-matching
12
+ indices: function indices(prefix, key) {
13
13
  return prefix + '[' + key + ']';
14
14
  },
15
- repeat: function repeat(prefix) { // eslint-disable-line func-name-matching
15
+ repeat: function repeat(prefix) {
16
16
  return prefix;
17
17
  }
18
18
  };
@@ -25,6 +25,7 @@ var pushToArray = function (arr, valueOrArray) {
25
25
 
26
26
  var toISO = Date.prototype.toISOString;
27
27
 
28
+ var defaultFormat = formats['default'];
28
29
  var defaults = {
29
30
  addQueryPrefix: false,
30
31
  allowDots: false,
@@ -34,17 +35,26 @@ var defaults = {
34
35
  encode: true,
35
36
  encoder: utils.encode,
36
37
  encodeValuesOnly: false,
37
- formatter: formats.formatters[formats['default']],
38
+ format: defaultFormat,
39
+ formatter: formats.formatters[defaultFormat],
38
40
  // deprecated
39
41
  indices: false,
40
- serializeDate: function serializeDate(date) { // eslint-disable-line func-name-matching
42
+ serializeDate: function serializeDate(date) {
41
43
  return toISO.call(date);
42
44
  },
43
45
  skipNulls: false,
44
46
  strictNullHandling: false
45
47
  };
46
48
 
47
- var stringify = function stringify( // eslint-disable-line func-name-matching
49
+ var isNonNullishPrimitive = function isNonNullishPrimitive(v) {
50
+ return typeof v === 'string'
51
+ || typeof v === 'number'
52
+ || typeof v === 'boolean'
53
+ || typeof v === 'symbol'
54
+ || typeof v === 'bigint';
55
+ };
56
+
57
+ var stringify = function stringify(
48
58
  object,
49
59
  prefix,
50
60
  generateArrayPrefix,
@@ -55,6 +65,7 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
55
65
  sort,
56
66
  allowDots,
57
67
  serializeDate,
68
+ format,
58
69
  formatter,
59
70
  encodeValuesOnly,
60
71
  charset
@@ -65,21 +76,26 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
65
76
  } else if (obj instanceof Date) {
66
77
  obj = serializeDate(obj);
67
78
  } else if (generateArrayPrefix === 'comma' && isArray(obj)) {
68
- obj = obj.join(',');
79
+ obj = utils.maybeMap(obj, function (value) {
80
+ if (value instanceof Date) {
81
+ return serializeDate(value);
82
+ }
83
+ return value;
84
+ });
69
85
  }
70
86
 
71
87
  if (obj === null) {
72
88
  if (strictNullHandling) {
73
- return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset) : prefix;
89
+ return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;
74
90
  }
75
91
 
76
92
  obj = '';
77
93
  }
78
94
 
79
- if (typeof obj === 'string' || typeof obj === 'number' || typeof obj === 'boolean' || utils.isBuffer(obj)) {
95
+ if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {
80
96
  if (encoder) {
81
- var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset);
82
- return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset))];
97
+ var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);
98
+ return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];
83
99
  }
84
100
  return [formatter(prefix) + '=' + formatter(String(obj))];
85
101
  }
@@ -91,7 +107,10 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
91
107
  }
92
108
 
93
109
  var objKeys;
94
- if (isArray(filter)) {
110
+ if (generateArrayPrefix === 'comma' && isArray(obj)) {
111
+ // we need to join elements in
112
+ objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : undefined }];
113
+ } else if (isArray(filter)) {
95
114
  objKeys = filter;
96
115
  } else {
97
116
  var keys = Object.keys(obj);
@@ -100,44 +119,32 @@ var stringify = function stringify( // eslint-disable-line func-name-matching
100
119
 
101
120
  for (var i = 0; i < objKeys.length; ++i) {
102
121
  var key = objKeys[i];
122
+ var value = typeof key === 'object' && key.value !== undefined ? key.value : obj[key];
103
123
 
104
- if (skipNulls && obj[key] === null) {
124
+ if (skipNulls && value === null) {
105
125
  continue;
106
126
  }
107
127
 
108
- if (isArray(obj)) {
109
- pushToArray(values, stringify(
110
- obj[key],
111
- typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix,
112
- generateArrayPrefix,
113
- strictNullHandling,
114
- skipNulls,
115
- encoder,
116
- filter,
117
- sort,
118
- allowDots,
119
- serializeDate,
120
- formatter,
121
- encodeValuesOnly,
122
- charset
123
- ));
124
- } else {
125
- pushToArray(values, stringify(
126
- obj[key],
127
- prefix + (allowDots ? '.' + key : '[' + key + ']'),
128
- generateArrayPrefix,
129
- strictNullHandling,
130
- skipNulls,
131
- encoder,
132
- filter,
133
- sort,
134
- allowDots,
135
- serializeDate,
136
- formatter,
137
- encodeValuesOnly,
138
- charset
139
- ));
140
- }
128
+ var keyPrefix = isArray(obj)
129
+ ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(prefix, key) : prefix
130
+ : prefix + (allowDots ? '.' + key : '[' + key + ']');
131
+
132
+ pushToArray(values, stringify(
133
+ value,
134
+ keyPrefix,
135
+ generateArrayPrefix,
136
+ strictNullHandling,
137
+ skipNulls,
138
+ encoder,
139
+ filter,
140
+ sort,
141
+ allowDots,
142
+ serializeDate,
143
+ format,
144
+ formatter,
145
+ encodeValuesOnly,
146
+ charset
147
+ ));
141
148
  }
142
149
 
143
150
  return values;
@@ -181,6 +188,7 @@ var normalizeStringifyOptions = function normalizeStringifyOptions(opts) {
181
188
  encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,
182
189
  encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,
183
190
  filter: filter,
191
+ format: format,
184
192
  formatter: formatter,
185
193
  serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,
186
194
  skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,
@@ -246,6 +254,7 @@ module.exports = function (object, opts) {
246
254
  options.sort,
247
255
  options.allowDots,
248
256
  options.serializeDate,
257
+ options.format,
249
258
  options.formatter,
250
259
  options.encodeValuesOnly,
251
260
  options.charset
@@ -1,5 +1,7 @@
1
1
  'use strict';
2
2
 
3
+ var formats = require('./formats');
4
+
3
5
  var has = Object.prototype.hasOwnProperty;
4
6
  var isArray = Array.isArray;
5
7
 
@@ -43,6 +45,7 @@ var arrayToObject = function arrayToObject(source, options) {
43
45
  };
44
46
 
45
47
  var merge = function merge(target, source, options) {
48
+ /* eslint no-param-reassign: 0 */
46
49
  if (!source) {
47
50
  return target;
48
51
  }
@@ -119,14 +122,19 @@ var decode = function (str, decoder, charset) {
119
122
  }
120
123
  };
121
124
 
122
- var encode = function encode(str, defaultEncoder, charset) {
125
+ var encode = function encode(str, defaultEncoder, charset, kind, format) {
123
126
  // This code was originally written by Brian White (mscdex) for the io.js core querystring library.
124
127
  // It has been adapted here for stricter adherence to RFC 3986
125
128
  if (str.length === 0) {
126
129
  return str;
127
130
  }
128
131
 
129
- var string = typeof str === 'string' ? str : String(str);
132
+ var string = str;
133
+ if (typeof str === 'symbol') {
134
+ string = Symbol.prototype.toString.call(str);
135
+ } else if (typeof str !== 'string') {
136
+ string = String(str);
137
+ }
130
138
 
131
139
  if (charset === 'iso-8859-1') {
132
140
  return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {
@@ -146,6 +154,7 @@ var encode = function encode(str, defaultEncoder, charset) {
146
154
  || (c >= 0x30 && c <= 0x39) // 0-9
147
155
  || (c >= 0x41 && c <= 0x5A) // a-z
148
156
  || (c >= 0x61 && c <= 0x7A) // A-Z
157
+ || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )
149
158
  ) {
150
159
  out += string.charAt(i);
151
160
  continue;
@@ -217,6 +226,17 @@ var combine = function combine(a, b) {
217
226
  return [].concat(a, b);
218
227
  };
219
228
 
229
+ var maybeMap = function maybeMap(val, fn) {
230
+ if (isArray(val)) {
231
+ var mapped = [];
232
+ for (var i = 0; i < val.length; i += 1) {
233
+ mapped.push(fn(val[i]));
234
+ }
235
+ return mapped;
236
+ }
237
+ return fn(val);
238
+ };
239
+
220
240
  module.exports = {
221
241
  arrayToObject: arrayToObject,
222
242
  assign: assign,
@@ -226,5 +246,6 @@ module.exports = {
226
246
  encode: encode,
227
247
  isBuffer: isBuffer,
228
248
  isRegExp: isRegExp,
249
+ maybeMap: maybeMap,
229
250
  merge: merge
230
251
  };
@@ -1,36 +1,32 @@
1
1
  {
2
- "_args": [
3
- [
4
- "qs@6.7.0",
5
- "/Users/conway/Projects/worldmap"
6
- ]
7
- ],
8
- "_from": "qs@6.7.0",
9
- "_id": "qs@6.7.0",
2
+ "_from": "qs@6.9.6",
3
+ "_id": "qs@6.9.6",
10
4
  "_inBundle": false,
11
- "_integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==",
5
+ "_integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==",
12
6
  "_location": "/qs",
13
7
  "_phantomChildren": {},
14
8
  "_requested": {
15
9
  "type": "version",
16
10
  "registry": true,
17
- "raw": "qs@6.7.0",
11
+ "raw": "qs@6.9.6",
18
12
  "name": "qs",
19
13
  "escapedName": "qs",
20
- "rawSpec": "6.7.0",
14
+ "rawSpec": "6.9.6",
21
15
  "saveSpec": null,
22
- "fetchSpec": "6.7.0"
16
+ "fetchSpec": "6.9.6"
23
17
  },
24
18
  "_requiredBy": [
25
19
  "/body-parser",
26
20
  "/express"
27
21
  ],
28
- "_resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
29
- "_spec": "6.7.0",
30
- "_where": "/Users/conway/Projects/worldmap",
22
+ "_resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz",
23
+ "_shasum": "26ed3c8243a431b2924aca84cc90471f35d5a0ee",
24
+ "_spec": "qs@6.9.6",
25
+ "_where": "/Users/conway/Projects/worldmap/node_modules/express",
31
26
  "bugs": {
32
27
  "url": "https://github.com/ljharb/qs/issues"
33
28
  },
29
+ "bundleDependencies": false,
34
30
  "contributors": [
35
31
  {
36
32
  "name": "Jordan Harband",
@@ -39,26 +35,38 @@
39
35
  }
40
36
  ],
41
37
  "dependencies": {},
38
+ "deprecated": false,
42
39
  "description": "A querystring parser that supports nesting and arrays, with a depth limit",
43
40
  "devDependencies": {
44
- "@ljharb/eslint-config": "^13.1.1",
45
- "browserify": "^16.2.3",
46
- "covert": "^1.1.1",
47
- "editorconfig-tools": "^0.1.1",
48
- "eslint": "^5.15.3",
49
- "evalmd": "^0.0.17",
41
+ "@ljharb/eslint-config": "^17.3.0",
42
+ "aud": "^1.1.3",
43
+ "browserify": "^16.5.2",
44
+ "eclint": "^2.8.1",
45
+ "eslint": "^7.17.0",
46
+ "evalmd": "^0.0.19",
50
47
  "for-each": "^0.3.3",
51
- "iconv-lite": "^0.4.24",
52
- "mkdirp": "^0.5.1",
53
- "object-inspect": "^1.6.0",
48
+ "has-symbols": "^1.0.1",
49
+ "iconv-lite": "^0.5.1",
50
+ "mkdirp": "^0.5.5",
51
+ "nyc": "^10.3.2",
52
+ "object-inspect": "^1.9.0",
54
53
  "qs-iconv": "^1.0.4",
55
- "safe-publish-latest": "^1.1.2",
54
+ "safe-publish-latest": "^1.1.4",
56
55
  "safer-buffer": "^2.1.2",
57
- "tape": "^4.10.1"
56
+ "tape": "^5.1.1"
58
57
  },
59
58
  "engines": {
60
59
  "node": ">=0.6"
61
60
  },
61
+ "funding": {
62
+ "url": "https://github.com/sponsors/ljharb"
63
+ },
64
+ "greenkeeper": {
65
+ "ignore": [
66
+ "iconv-lite",
67
+ "mkdirp"
68
+ ]
69
+ },
62
70
  "homepage": "https://github.com/ljharb/qs",
63
71
  "keywords": [
64
72
  "querystring",
@@ -76,15 +84,15 @@
76
84
  "url": "git+https://github.com/ljharb/qs.git"
77
85
  },
78
86
  "scripts": {
79
- "coverage": "covert test",
80
87
  "dist": "mkdirp dist && browserify --standalone Qs lib/index.js > dist/qs.js",
81
88
  "lint": "eslint lib/*.js test/*.js",
82
- "postlint": "editorconfig-tools check * lib/* test/*",
89
+ "postlint": "eclint check * lib/* test/*",
90
+ "posttest": "aud --production",
83
91
  "prepublish": "safe-publish-latest && npm run dist",
84
92
  "pretest": "npm run --silent readme && npm run --silent lint",
85
93
  "readme": "evalmd README.md",
86
- "test": "npm run --silent coverage",
87
- "tests-only": "node test"
94
+ "test": "npm run tests-only",
95
+ "tests-only": "nyc tape 'test/**/*.js'"
88
96
  },
89
- "version": "6.7.0"
97
+ "version": "6.9.6"
90
98
  }
@@ -32,6 +32,38 @@ test('parse()', function (t) {
32
32
  st.end();
33
33
  });
34
34
 
35
+ t.test('arrayFormat: brackets allows only explicit arrays', function (st) {
36
+ st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] });
37
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] });
38
+ st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'brackets' }), { a: 'b,c' });
39
+ st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'brackets' }), { a: ['b', 'c'] });
40
+ st.end();
41
+ });
42
+
43
+ t.test('arrayFormat: indices allows only indexed arrays', function (st) {
44
+ st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] });
45
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] });
46
+ st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'indices' }), { a: 'b,c' });
47
+ st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'indices' }), { a: ['b', 'c'] });
48
+ st.end();
49
+ });
50
+
51
+ t.test('arrayFormat: comma allows only comma-separated arrays', function (st) {
52
+ st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] });
53
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] });
54
+ st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'comma' }), { a: 'b,c' });
55
+ st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'comma' }), { a: ['b', 'c'] });
56
+ st.end();
57
+ });
58
+
59
+ t.test('arrayFormat: repeat allows only repeated values', function (st) {
60
+ st.deepEqual(qs.parse('a[]=b&a[]=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] });
61
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] });
62
+ st.deepEqual(qs.parse('a=b,c', { arrayFormat: 'repeat' }), { a: 'b,c' });
63
+ st.deepEqual(qs.parse('a=b&a=c', { arrayFormat: 'repeat' }), { a: ['b', 'c'] });
64
+ st.end();
65
+ });
66
+
35
67
  t.test('allows enabling dot notation', function (st) {
36
68
  st.deepEqual(qs.parse('a.b=c'), { 'a.b': 'c' });
37
69
  st.deepEqual(qs.parse('a.b=c', { allowDots: true }), { a: { b: 'c' } });
@@ -52,6 +84,18 @@ test('parse()', function (t) {
52
84
  st.end();
53
85
  });
54
86
 
87
+ t.test('uses original key when depth = 0', function (st) {
88
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: 0 }), { 'a[0]': 'b', 'a[1]': 'c' });
89
+ st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: 0 }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' });
90
+ st.end();
91
+ });
92
+
93
+ t.test('uses original key when depth = false', function (st) {
94
+ st.deepEqual(qs.parse('a[0]=b&a[1]=c', { depth: false }), { 'a[0]': 'b', 'a[1]': 'c' });
95
+ st.deepEqual(qs.parse('a[0][0]=b&a[0][1]=c&a[1]=d&e=2', { depth: false }), { 'a[0][0]': 'b', 'a[0][1]': 'c', 'a[1]': 'd', e: '2' });
96
+ st.end();
97
+ });
98
+
55
99
  t.deepEqual(qs.parse('a=b&a=c'), { a: ['b', 'c'] }, 'parses a simple array');
56
100
 
57
101
  t.test('parses an explicit array', function (st) {
@@ -356,6 +400,43 @@ test('parse()', function (t) {
356
400
  st.end();
357
401
  });
358
402
 
403
+ t.test('parses values with comma as array divider', function (st) {
404
+ st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: false }), { foo: 'bar,tee' });
405
+ st.deepEqual(qs.parse({ foo: 'bar,tee' }, { comma: true }), { foo: ['bar', 'tee'] });
406
+ st.end();
407
+ });
408
+
409
+ t.test('use number decoder, parses string that has one number with comma option enabled', function (st) {
410
+ var decoder = function (str, defaultDecoder, charset, type) {
411
+ if (!isNaN(Number(str))) {
412
+ return parseFloat(str);
413
+ }
414
+ return defaultDecoder(str, defaultDecoder, charset, type);
415
+ };
416
+
417
+ st.deepEqual(qs.parse('foo=1', { comma: true, decoder: decoder }), { foo: 1 });
418
+ st.deepEqual(qs.parse('foo=0', { comma: true, decoder: decoder }), { foo: 0 });
419
+
420
+ st.end();
421
+ });
422
+
423
+ t.test('parses brackets holds array of arrays when having two parts of strings with comma as array divider', function (st) {
424
+ st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=4,5,6', { comma: true }), { foo: [['1', '2', '3'], ['4', '5', '6']] });
425
+ st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=', { comma: true }), { foo: [['1', '2', '3'], ''] });
426
+ st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=,', { comma: true }), { foo: [['1', '2', '3'], ['', '']] });
427
+ st.deepEqual(qs.parse('foo[]=1,2,3&foo[]=a', { comma: true }), { foo: [['1', '2', '3'], 'a'] });
428
+
429
+ st.end();
430
+ });
431
+
432
+ t.test('parses comma delimited array while having percent-encoded comma treated as normal text', function (st) {
433
+ st.deepEqual(qs.parse('foo=a%2Cb', { comma: true }), { foo: 'a,b' });
434
+ st.deepEqual(qs.parse('foo=a%2C%20b,d', { comma: true }), { foo: ['a, b', 'd'] });
435
+ st.deepEqual(qs.parse('foo=a%2C%20b,c%2C%20d', { comma: true }), { foo: ['a, b', 'c, d'] });
436
+
437
+ st.end();
438
+ });
439
+
359
440
  t.test('parses an object in dot notation', function (st) {
360
441
  var input = {
361
442
  'user.name': { 'pop[bob]': 3 },
@@ -532,7 +613,7 @@ test('parse()', function (t) {
532
613
 
533
614
  st.deepEqual(
534
615
  qs.parse('a[b]=c&a=toString', { plainObjects: true }),
535
- { a: { b: 'c', toString: true } },
616
+ { __proto__: null, a: { __proto__: null, b: 'c', toString: true } },
536
617
  'can overwrite prototype with plainObjects true'
537
618
  );
538
619
 
@@ -672,5 +753,20 @@ test('parse()', function (t) {
672
753
  st.end();
673
754
  });
674
755
 
756
+ t.test('allows for decoding keys and values differently', function (st) {
757
+ var decoder = function (str, defaultDecoder, charset, type) {
758
+ if (type === 'key') {
759
+ return defaultDecoder(str, defaultDecoder, charset, type).toLowerCase();
760
+ }
761
+ if (type === 'value') {
762
+ return defaultDecoder(str, defaultDecoder, charset, type).toUpperCase();
763
+ }
764
+ throw 'this should never happen! type: ' + type;
765
+ };
766
+
767
+ st.deepEqual(qs.parse('KeY=vAlUe', { decoder: decoder }), { key: 'VALUE' });
768
+ st.end();
769
+ });
770
+
675
771
  t.end();
676
772
  });