node-red-contrib-web-worldmap 5.7.1 → 5.8.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 (279) hide show
  1. package/CHANGELOG.md +2 -0
  2. package/README.md +3 -1
  3. package/node_modules/es-object-atoms/CHANGELOG.md +21 -14
  4. package/node_modules/es-object-atoms/isObject.d.ts +1 -1
  5. package/node_modules/es-object-atoms/package.json +6 -7
  6. package/node_modules/es-object-atoms/tsconfig.json +1 -0
  7. package/node_modules/express/History.md +9 -0
  8. package/node_modules/express/lib/utils.js +2 -1
  9. package/node_modules/express/package.json +3 -3
  10. package/node_modules/qs/CHANGELOG.md +178 -0
  11. package/node_modules/qs/README.md +19 -1
  12. package/node_modules/qs/dist/qs.js +17 -17
  13. package/node_modules/qs/eslint.config.mjs +1 -0
  14. package/node_modules/qs/lib/parse.js +57 -25
  15. package/node_modules/qs/lib/stringify.js +11 -4
  16. package/node_modules/qs/lib/utils.js +2 -0
  17. package/node_modules/qs/package.json +3 -3
  18. package/node_modules/qs/test/parse.js +195 -4
  19. package/node_modules/qs/test/stringify.js +138 -0
  20. package/node_modules/qs/test/utils.js +38 -3
  21. package/node_modules/uuid/README.md +182 -177
  22. package/node_modules/uuid/dist/cjs/index.d.ts +15 -0
  23. package/node_modules/uuid/dist/cjs/index.js +31 -0
  24. package/node_modules/uuid/dist/cjs/max.d.ts +2 -0
  25. package/node_modules/uuid/dist/cjs/max.js +3 -0
  26. package/node_modules/uuid/dist/cjs/md5.d.ts +4 -0
  27. package/node_modules/uuid/dist/cjs/md5.js +13 -0
  28. package/node_modules/uuid/dist/cjs/native.d.ts +6 -0
  29. package/node_modules/uuid/dist/cjs/native.js +4 -0
  30. package/node_modules/uuid/dist/cjs/nil.d.ts +2 -0
  31. package/node_modules/uuid/dist/cjs/nil.js +3 -0
  32. package/node_modules/uuid/dist/cjs/package.json +1 -0
  33. package/node_modules/uuid/dist/cjs/parse.d.ts +2 -0
  34. package/node_modules/uuid/dist/cjs/parse.js +11 -0
  35. package/node_modules/uuid/dist/cjs/regex.d.ts +2 -0
  36. package/node_modules/uuid/dist/cjs/regex.js +3 -0
  37. package/node_modules/uuid/dist/cjs/rng.d.ts +1 -0
  38. package/node_modules/uuid/dist/cjs/rng.js +13 -0
  39. package/node_modules/uuid/dist/cjs/sha1.d.ts +4 -0
  40. package/node_modules/uuid/dist/cjs/sha1.js +13 -0
  41. package/node_modules/uuid/dist/cjs/stringify.d.ts +3 -0
  42. package/node_modules/uuid/dist/cjs/stringify.js +39 -0
  43. package/node_modules/uuid/dist/cjs/types.d.ts +21 -0
  44. package/node_modules/uuid/dist/cjs/types.js +2 -0
  45. package/node_modules/uuid/dist/cjs/uuid-bin.d.ts +1 -0
  46. package/node_modules/uuid/dist/cjs/uuid-bin.js +72 -0
  47. package/node_modules/uuid/dist/cjs/v1.d.ts +11 -0
  48. package/node_modules/uuid/dist/cjs/v1.js +87 -0
  49. package/node_modules/uuid/dist/cjs/v1ToV6.d.ts +2 -0
  50. package/node_modules/uuid/dist/cjs/v1ToV6.js +13 -0
  51. package/node_modules/uuid/dist/cjs/v3.d.ts +9 -0
  52. package/node_modules/uuid/dist/cjs/v3.js +14 -0
  53. package/node_modules/uuid/dist/cjs/v35.d.ts +7 -0
  54. package/node_modules/uuid/dist/cjs/v35.js +44 -0
  55. package/node_modules/uuid/dist/cjs/v4.d.ts +4 -0
  56. package/node_modules/uuid/dist/cjs/v4.js +29 -0
  57. package/node_modules/uuid/dist/cjs/v5.d.ts +9 -0
  58. package/node_modules/uuid/dist/cjs/v5.js +14 -0
  59. package/node_modules/uuid/dist/cjs/v6.d.ts +4 -0
  60. package/node_modules/uuid/dist/cjs/v6.js +22 -0
  61. package/node_modules/uuid/dist/cjs/v6ToV1.d.ts +2 -0
  62. package/node_modules/uuid/dist/cjs/v6ToV1.js +13 -0
  63. package/node_modules/uuid/dist/cjs/v7.d.ts +9 -0
  64. package/node_modules/uuid/dist/cjs/v7.js +69 -0
  65. package/node_modules/uuid/dist/cjs/validate.d.ts +2 -0
  66. package/node_modules/uuid/dist/cjs/validate.js +7 -0
  67. package/node_modules/uuid/dist/cjs/version.d.ts +2 -0
  68. package/node_modules/uuid/dist/cjs/version.js +10 -0
  69. package/node_modules/uuid/dist/cjs-browser/index.d.ts +15 -0
  70. package/node_modules/uuid/dist/cjs-browser/index.js +31 -0
  71. package/node_modules/uuid/dist/cjs-browser/max.d.ts +2 -0
  72. package/node_modules/uuid/dist/cjs-browser/max.js +3 -0
  73. package/node_modules/uuid/dist/cjs-browser/md5.d.ts +2 -0
  74. package/node_modules/uuid/dist/cjs-browser/md5.js +137 -0
  75. package/node_modules/uuid/dist/cjs-browser/native.d.ts +4 -0
  76. package/node_modules/uuid/dist/cjs-browser/native.js +4 -0
  77. package/node_modules/uuid/dist/cjs-browser/nil.d.ts +2 -0
  78. package/node_modules/uuid/dist/cjs-browser/nil.js +3 -0
  79. package/node_modules/uuid/dist/cjs-browser/package.json +1 -0
  80. package/node_modules/uuid/dist/cjs-browser/parse.d.ts +2 -0
  81. package/node_modules/uuid/dist/cjs-browser/parse.js +11 -0
  82. package/node_modules/uuid/dist/cjs-browser/regex.d.ts +2 -0
  83. package/node_modules/uuid/dist/cjs-browser/regex.js +3 -0
  84. package/node_modules/uuid/dist/cjs-browser/rng.d.ts +1 -0
  85. package/node_modules/uuid/dist/cjs-browser/rng.js +14 -0
  86. package/node_modules/uuid/dist/cjs-browser/sha1.d.ts +2 -0
  87. package/node_modules/uuid/dist/cjs-browser/sha1.js +72 -0
  88. package/node_modules/uuid/dist/cjs-browser/stringify.d.ts +3 -0
  89. package/node_modules/uuid/dist/cjs-browser/stringify.js +39 -0
  90. package/node_modules/uuid/dist/cjs-browser/types.d.ts +21 -0
  91. package/node_modules/uuid/dist/cjs-browser/types.js +2 -0
  92. package/node_modules/uuid/dist/cjs-browser/uuid-bin.d.ts +1 -0
  93. package/node_modules/uuid/dist/cjs-browser/uuid-bin.js +72 -0
  94. package/node_modules/uuid/dist/cjs-browser/v1.d.ts +11 -0
  95. package/node_modules/uuid/dist/cjs-browser/v1.js +87 -0
  96. package/node_modules/uuid/dist/cjs-browser/v1ToV6.d.ts +2 -0
  97. package/node_modules/uuid/dist/cjs-browser/v1ToV6.js +13 -0
  98. package/node_modules/uuid/dist/cjs-browser/v3.d.ts +9 -0
  99. package/node_modules/uuid/dist/cjs-browser/v3.js +14 -0
  100. package/node_modules/uuid/dist/cjs-browser/v35.d.ts +7 -0
  101. package/node_modules/uuid/dist/cjs-browser/v35.js +44 -0
  102. package/node_modules/uuid/dist/cjs-browser/v4.d.ts +4 -0
  103. package/node_modules/uuid/dist/cjs-browser/v4.js +29 -0
  104. package/node_modules/uuid/dist/cjs-browser/v5.d.ts +9 -0
  105. package/node_modules/uuid/dist/cjs-browser/v5.js +14 -0
  106. package/node_modules/uuid/dist/cjs-browser/v6.d.ts +4 -0
  107. package/node_modules/uuid/dist/cjs-browser/v6.js +22 -0
  108. package/node_modules/uuid/dist/cjs-browser/v6ToV1.d.ts +2 -0
  109. package/node_modules/uuid/dist/cjs-browser/v6ToV1.js +13 -0
  110. package/node_modules/uuid/dist/cjs-browser/v7.d.ts +9 -0
  111. package/node_modules/uuid/dist/cjs-browser/v7.js +69 -0
  112. package/node_modules/uuid/dist/cjs-browser/validate.d.ts +2 -0
  113. package/node_modules/uuid/dist/cjs-browser/validate.js +7 -0
  114. package/node_modules/uuid/dist/cjs-browser/version.d.ts +2 -0
  115. package/node_modules/uuid/dist/cjs-browser/version.js +10 -0
  116. package/node_modules/uuid/dist/esm/bin/uuid +2 -0
  117. package/node_modules/uuid/dist/esm/index.d.ts +15 -0
  118. package/node_modules/uuid/dist/{esm-node → esm}/index.js +9 -4
  119. package/node_modules/uuid/dist/esm/max.d.ts +2 -0
  120. package/node_modules/uuid/dist/esm/max.js +1 -0
  121. package/node_modules/uuid/dist/esm/md5.d.ts +4 -0
  122. package/node_modules/uuid/dist/esm/md5.js +11 -0
  123. package/node_modules/uuid/dist/esm/native.d.ts +6 -0
  124. package/node_modules/uuid/dist/esm/native.js +2 -0
  125. package/node_modules/uuid/dist/esm/nil.d.ts +2 -0
  126. package/node_modules/uuid/dist/esm/nil.js +1 -0
  127. package/node_modules/uuid/dist/esm/parse.d.ts +2 -0
  128. package/node_modules/uuid/dist/esm/parse.js +9 -0
  129. package/node_modules/uuid/dist/esm/regex.d.ts +2 -0
  130. package/node_modules/uuid/dist/esm/regex.js +1 -0
  131. package/node_modules/uuid/dist/esm/rng.d.ts +1 -0
  132. package/node_modules/uuid/dist/esm/rng.js +10 -0
  133. package/node_modules/uuid/dist/esm/sha1.d.ts +4 -0
  134. package/node_modules/uuid/dist/esm/sha1.js +11 -0
  135. package/node_modules/uuid/dist/esm/stringify.d.ts +3 -0
  136. package/node_modules/uuid/dist/esm/stringify.js +35 -0
  137. package/node_modules/uuid/dist/esm/types.d.ts +21 -0
  138. package/node_modules/uuid/dist/esm/types.js +1 -0
  139. package/node_modules/uuid/dist/esm/uuid-bin.d.ts +1 -0
  140. package/node_modules/uuid/dist/esm/uuid-bin.js +70 -0
  141. package/node_modules/uuid/dist/esm/v1.d.ts +11 -0
  142. package/node_modules/uuid/dist/esm/v1.js +83 -0
  143. package/node_modules/uuid/dist/esm/v1ToV6.d.ts +2 -0
  144. package/node_modules/uuid/dist/esm/v1ToV6.js +10 -0
  145. package/node_modules/uuid/dist/esm/v3.d.ts +9 -0
  146. package/node_modules/uuid/dist/esm/v3.js +9 -0
  147. package/node_modules/uuid/dist/esm/v35.d.ts +7 -0
  148. package/node_modules/uuid/dist/esm/v35.js +39 -0
  149. package/node_modules/uuid/dist/esm/v4.d.ts +4 -0
  150. package/node_modules/uuid/dist/esm/v4.js +27 -0
  151. package/node_modules/uuid/dist/esm/v5.d.ts +9 -0
  152. package/node_modules/uuid/dist/esm/v5.js +9 -0
  153. package/node_modules/uuid/dist/esm/v6.d.ts +4 -0
  154. package/node_modules/uuid/dist/esm/v6.js +20 -0
  155. package/node_modules/uuid/dist/esm/v6ToV1.d.ts +2 -0
  156. package/node_modules/uuid/dist/esm/v6ToV1.js +10 -0
  157. package/node_modules/uuid/dist/esm/v7.d.ts +9 -0
  158. package/node_modules/uuid/dist/esm/v7.js +65 -0
  159. package/node_modules/uuid/dist/esm/validate.d.ts +2 -0
  160. package/node_modules/uuid/dist/esm/validate.js +5 -0
  161. package/node_modules/uuid/dist/esm/version.d.ts +2 -0
  162. package/node_modules/uuid/dist/esm/version.js +8 -0
  163. package/node_modules/uuid/dist/esm-browser/index.d.ts +15 -0
  164. package/node_modules/uuid/dist/esm-browser/index.js +9 -4
  165. package/node_modules/uuid/dist/esm-browser/max.d.ts +2 -0
  166. package/node_modules/uuid/dist/esm-browser/max.js +1 -0
  167. package/node_modules/uuid/dist/esm-browser/md5.d.ts +2 -0
  168. package/node_modules/uuid/dist/esm-browser/md5.js +113 -193
  169. package/node_modules/uuid/dist/esm-browser/native.d.ts +4 -0
  170. package/node_modules/uuid/dist/esm-browser/native.js +2 -0
  171. package/node_modules/uuid/dist/esm-browser/nil.d.ts +2 -0
  172. package/node_modules/uuid/dist/esm-browser/nil.js +1 -1
  173. package/node_modules/uuid/dist/esm-browser/parse.d.ts +2 -0
  174. package/node_modules/uuid/dist/esm-browser/parse.js +6 -32
  175. package/node_modules/uuid/dist/esm-browser/regex.d.ts +2 -0
  176. package/node_modules/uuid/dist/esm-browser/regex.js +1 -1
  177. package/node_modules/uuid/dist/esm-browser/rng.d.ts +1 -0
  178. package/node_modules/uuid/dist/esm-browser/rng.js +8 -16
  179. package/node_modules/uuid/dist/esm-browser/sha1.d.ts +2 -0
  180. package/node_modules/uuid/dist/esm-browser/sha1.js +62 -88
  181. package/node_modules/uuid/dist/esm-browser/stringify.d.ts +3 -0
  182. package/node_modules/uuid/dist/esm-browser/stringify.js +32 -27
  183. package/node_modules/uuid/dist/esm-browser/types.d.ts +21 -0
  184. package/node_modules/uuid/dist/esm-browser/types.js +1 -0
  185. package/node_modules/uuid/dist/esm-browser/uuid-bin.d.ts +1 -0
  186. package/node_modules/uuid/dist/esm-browser/uuid-bin.js +70 -0
  187. package/node_modules/uuid/dist/esm-browser/v1.d.ts +11 -0
  188. package/node_modules/uuid/dist/esm-browser/v1.js +78 -90
  189. package/node_modules/uuid/dist/esm-browser/v1ToV6.d.ts +2 -0
  190. package/node_modules/uuid/dist/esm-browser/v1ToV6.js +10 -0
  191. package/node_modules/uuid/dist/esm-browser/v3.d.ts +9 -0
  192. package/node_modules/uuid/dist/esm-browser/v3.js +8 -3
  193. package/node_modules/uuid/dist/esm-browser/v35.d.ts +7 -0
  194. package/node_modules/uuid/dist/esm-browser/v35.js +33 -58
  195. package/node_modules/uuid/dist/esm-browser/v4.d.ts +4 -0
  196. package/node_modules/uuid/dist/esm-browser/v4.js +23 -20
  197. package/node_modules/uuid/dist/esm-browser/v5.d.ts +9 -0
  198. package/node_modules/uuid/dist/esm-browser/v5.js +8 -3
  199. package/node_modules/uuid/dist/esm-browser/v6.d.ts +4 -0
  200. package/node_modules/uuid/dist/esm-browser/v6.js +20 -0
  201. package/node_modules/uuid/dist/esm-browser/v6ToV1.d.ts +2 -0
  202. package/node_modules/uuid/dist/esm-browser/v6ToV1.js +10 -0
  203. package/node_modules/uuid/dist/esm-browser/v7.d.ts +9 -0
  204. package/node_modules/uuid/dist/esm-browser/v7.js +65 -0
  205. package/node_modules/uuid/dist/esm-browser/validate.d.ts +2 -0
  206. package/node_modules/uuid/dist/esm-browser/validate.js +2 -4
  207. package/node_modules/uuid/dist/esm-browser/version.d.ts +2 -0
  208. package/node_modules/uuid/dist/esm-browser/version.js +5 -8
  209. package/node_modules/uuid/package.json +80 -83
  210. package/package.json +5 -2
  211. package/worldmap/worldmap.js +7 -0
  212. package/worldmap.html +1 -1
  213. package/node_modules/body-parser/node_modules/qs/.editorconfig +0 -46
  214. package/node_modules/body-parser/node_modules/qs/.github/FUNDING.yml +0 -12
  215. package/node_modules/body-parser/node_modules/qs/.github/SECURITY.md +0 -11
  216. package/node_modules/body-parser/node_modules/qs/.github/THREAT_MODEL.md +0 -78
  217. package/node_modules/body-parser/node_modules/qs/.nycrc +0 -13
  218. package/node_modules/body-parser/node_modules/qs/CHANGELOG.md +0 -822
  219. package/node_modules/body-parser/node_modules/qs/LICENSE.md +0 -29
  220. package/node_modules/body-parser/node_modules/qs/README.md +0 -758
  221. package/node_modules/body-parser/node_modules/qs/dist/qs.js +0 -141
  222. package/node_modules/body-parser/node_modules/qs/eslint.config.mjs +0 -57
  223. package/node_modules/body-parser/node_modules/qs/lib/formats.js +0 -23
  224. package/node_modules/body-parser/node_modules/qs/lib/index.js +0 -11
  225. package/node_modules/body-parser/node_modules/qs/lib/parse.js +0 -403
  226. package/node_modules/body-parser/node_modules/qs/lib/stringify.js +0 -363
  227. package/node_modules/body-parser/node_modules/qs/lib/utils.js +0 -342
  228. package/node_modules/body-parser/node_modules/qs/package.json +0 -94
  229. package/node_modules/body-parser/node_modules/qs/test/empty-keys-cases.js +0 -267
  230. package/node_modules/body-parser/node_modules/qs/test/parse.js +0 -1703
  231. package/node_modules/body-parser/node_modules/qs/test/stringify.js +0 -1448
  232. package/node_modules/body-parser/node_modules/qs/test/utils.js +0 -432
  233. package/node_modules/uuid/CHANGELOG.md +0 -229
  234. package/node_modules/uuid/CONTRIBUTING.md +0 -18
  235. package/node_modules/uuid/dist/bin/uuid +0 -2
  236. package/node_modules/uuid/dist/esm-node/md5.js +0 -13
  237. package/node_modules/uuid/dist/esm-node/nil.js +0 -1
  238. package/node_modules/uuid/dist/esm-node/parse.js +0 -35
  239. package/node_modules/uuid/dist/esm-node/regex.js +0 -1
  240. package/node_modules/uuid/dist/esm-node/rng.js +0 -12
  241. package/node_modules/uuid/dist/esm-node/sha1.js +0 -13
  242. package/node_modules/uuid/dist/esm-node/stringify.js +0 -29
  243. package/node_modules/uuid/dist/esm-node/v1.js +0 -95
  244. package/node_modules/uuid/dist/esm-node/v3.js +0 -4
  245. package/node_modules/uuid/dist/esm-node/v35.js +0 -64
  246. package/node_modules/uuid/dist/esm-node/v4.js +0 -24
  247. package/node_modules/uuid/dist/esm-node/v5.js +0 -4
  248. package/node_modules/uuid/dist/esm-node/validate.js +0 -7
  249. package/node_modules/uuid/dist/esm-node/version.js +0 -11
  250. package/node_modules/uuid/dist/index.js +0 -79
  251. package/node_modules/uuid/dist/md5-browser.js +0 -223
  252. package/node_modules/uuid/dist/md5.js +0 -23
  253. package/node_modules/uuid/dist/nil.js +0 -8
  254. package/node_modules/uuid/dist/parse.js +0 -45
  255. package/node_modules/uuid/dist/regex.js +0 -8
  256. package/node_modules/uuid/dist/rng-browser.js +0 -26
  257. package/node_modules/uuid/dist/rng.js +0 -24
  258. package/node_modules/uuid/dist/sha1-browser.js +0 -104
  259. package/node_modules/uuid/dist/sha1.js +0 -23
  260. package/node_modules/uuid/dist/stringify.js +0 -39
  261. package/node_modules/uuid/dist/umd/uuid.min.js +0 -1
  262. package/node_modules/uuid/dist/umd/uuidNIL.min.js +0 -1
  263. package/node_modules/uuid/dist/umd/uuidParse.min.js +0 -1
  264. package/node_modules/uuid/dist/umd/uuidStringify.min.js +0 -1
  265. package/node_modules/uuid/dist/umd/uuidValidate.min.js +0 -1
  266. package/node_modules/uuid/dist/umd/uuidVersion.min.js +0 -1
  267. package/node_modules/uuid/dist/umd/uuidv1.min.js +0 -1
  268. package/node_modules/uuid/dist/umd/uuidv3.min.js +0 -1
  269. package/node_modules/uuid/dist/umd/uuidv4.min.js +0 -1
  270. package/node_modules/uuid/dist/umd/uuidv5.min.js +0 -1
  271. package/node_modules/uuid/dist/uuid-bin.js +0 -85
  272. package/node_modules/uuid/dist/v1.js +0 -107
  273. package/node_modules/uuid/dist/v3.js +0 -16
  274. package/node_modules/uuid/dist/v35.js +0 -78
  275. package/node_modules/uuid/dist/v4.js +0 -37
  276. package/node_modules/uuid/dist/v5.js +0 -16
  277. package/node_modules/uuid/dist/validate.js +0 -17
  278. package/node_modules/uuid/dist/version.js +0 -21
  279. package/node_modules/uuid/wrapper.mjs +0 -10
package/CHANGELOG.md CHANGED
@@ -1,5 +1,7 @@
1
1
  ### Change Log for Node-RED Worldmap
2
2
 
3
+ - v5.8.0 - Stop double click on icons zooming in. Bump uuid lib.
4
+ - v5.7.2 - Bump express libs
3
5
  - v5.7.0 - Add events for openPopup and closePopup actions, small popup fixups. Add showdialog command.
4
6
  - v5.6.1 - Also call autoswitch on initial connect to ensure map in view.
5
7
  - v5.6.0 - Autoswitch pmtiles basemaps based on zoom and/or coverage.
package/README.md CHANGED
@@ -10,6 +10,8 @@ A <a href="https://nodered.org" target="mapinfo">Node-RED</a> node to provide a
10
10
 
11
11
  ### Updates
12
12
 
13
+ - v5.8.0 - Stop double click on icons zooming in. Bump uuid lib.
14
+ - v5.7.2 - Bump express libs.
13
15
  - v5.7.0 - Add events for openPopup and closePopup, small popup fixups. Add showdialog command.
14
16
  - v5.6.1 - Also call autoswitch on initial connect to ensure map in view.
15
17
  - v5.6.0 - Autoswitch pmtiles basemaps based on zoom and/or coverage.
@@ -61,7 +63,7 @@ Optional properties for **msg.payload** include
61
63
  - **iconSize** : Set the size in pixels of the "special" icons and web icons.
62
64
  - **SIDC** : NATO symbology code (can be used instead of icon). See below.
63
65
  - **building** : OSMbulding GeoJSON feature set to add 2.5D buildings to buildings layer. See below.
64
- - **ttl** : time to live, how long an individual marker stays on map in seconds (overrides general maxage setting, minimum 20 seconds)
66
+ - **ttl** : time to live, how long an individual marker stays on map in seconds (overrides general maxage setting, minimum 20 seconds). Setting to 0 disables the timeout.
65
67
  - **photoUrl** : adds an image pointed at by the url to the popup box.
66
68
  - **videoUrl** : adds an mp4 video pointed at by the url to the popup box. Ideally 320x240 in size.
67
69
  - **weblink** : adds a link to an external page. Either set a url as a *string*, or an *object* like `{"name":"BBC News", "url":"https://news.bbc.co.uk", "target":"_new"}`, or multiple links with an *array of objects* `[{"name":"BBC News", "url":"https://news.bbc.co.uk", "target":"_new"},{"name":"node-red", "url":"https://nodered.org", "target":"_new"}]`
@@ -5,33 +5,40 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/)
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
- ## [v1.1.1](https://github.com/ljharb/es-object-atoms/compare/v1.1.0...v1.1.1) - 2025-01-14
8
+ ## [v1.1.2](https://github.com/es-shims/es-object-atoms/compare/v1.1.1...v1.1.2) - 2026-05-22
9
9
 
10
10
  ### Commits
11
11
 
12
- - [types] `ToObject`: improve types [`cfe8c8a`](https://github.com/ljharb/es-object-atoms/commit/cfe8c8a105c44820cb22e26f62d12ef0ad9715c8)
12
+ - [Dev Deps] update `@ljharb/eslint-config`, `@ljharb/tsconfig`, `auto-changelog`, `eslint`, `npmignore` [`41e3d94`](https://github.com/es-shims/es-object-atoms/commit/41e3d94f6b49237fa490ec598e068f170c8b161e)
13
+ - [types] improve `isObject` type [`758edc2`](https://github.com/es-shims/es-object-atoms/commit/758edc2280fa6993a294a55957a43cee5951bf51)
13
14
 
14
- ## [v1.1.0](https://github.com/ljharb/es-object-atoms/compare/v1.0.1...v1.1.0) - 2025-01-14
15
+ ## [v1.1.1](https://github.com/es-shims/es-object-atoms/compare/v1.1.0...v1.1.1) - 2025-01-14
15
16
 
16
17
  ### Commits
17
18
 
18
- - [New] add `isObject` [`51e4042`](https://github.com/ljharb/es-object-atoms/commit/51e4042df722eb3165f40dc5f4bf33d0197ecb07)
19
+ - [types] `ToObject`: improve types [`cfe8c8a`](https://github.com/es-shims/es-object-atoms/commit/cfe8c8a105c44820cb22e26f62d12ef0ad9715c8)
19
20
 
20
- ## [v1.0.1](https://github.com/ljharb/es-object-atoms/compare/v1.0.0...v1.0.1) - 2025-01-13
21
+ ## [v1.1.0](https://github.com/es-shims/es-object-atoms/compare/v1.0.1...v1.1.0) - 2025-01-14
21
22
 
22
23
  ### Commits
23
24
 
24
- - [Dev Deps] update `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/tape`, `auto-changelog`, `tape` [`38ab9eb`](https://github.com/ljharb/es-object-atoms/commit/38ab9eb00b62c2f4668644f5e513d9b414ebd595)
25
- - [types] improve types [`7d1beb8`](https://github.com/ljharb/es-object-atoms/commit/7d1beb887958b78b6a728a210a1c8370ab7e2aa1)
26
- - [Tests] replace `aud` with `npm audit` [`25863ba`](https://github.com/ljharb/es-object-atoms/commit/25863baf99178f1d1ad33d1120498db28631907e)
27
- - [Dev Deps] add missing peer dep [`c012309`](https://github.com/ljharb/es-object-atoms/commit/c0123091287e6132d6f4240496340c427433df28)
25
+ - [New] add `isObject` [`51e4042`](https://github.com/es-shims/es-object-atoms/commit/51e4042df722eb3165f40dc5f4bf33d0197ecb07)
26
+
27
+ ## [v1.0.1](https://github.com/es-shims/es-object-atoms/compare/v1.0.0...v1.0.1) - 2025-01-13
28
+
29
+ ### Commits
30
+
31
+ - [Dev Deps] update `@ljharb/eslint-config`, `@ljharb/tsconfig`, `@types/tape`, `auto-changelog`, `tape` [`38ab9eb`](https://github.com/es-shims/es-object-atoms/commit/38ab9eb00b62c2f4668644f5e513d9b414ebd595)
32
+ - [types] improve types [`7d1beb8`](https://github.com/es-shims/es-object-atoms/commit/7d1beb887958b78b6a728a210a1c8370ab7e2aa1)
33
+ - [Tests] replace `aud` with `npm audit` [`25863ba`](https://github.com/es-shims/es-object-atoms/commit/25863baf99178f1d1ad33d1120498db28631907e)
34
+ - [Dev Deps] add missing peer dep [`c012309`](https://github.com/es-shims/es-object-atoms/commit/c0123091287e6132d6f4240496340c427433df28)
28
35
 
29
36
  ## v1.0.0 - 2024-03-16
30
37
 
31
38
  ### Commits
32
39
 
33
- - Initial implementation, tests, readme, types [`f1499db`](https://github.com/ljharb/es-object-atoms/commit/f1499db7d3e1741e64979c61d645ab3137705e82)
34
- - Initial commit [`99eedc7`](https://github.com/ljharb/es-object-atoms/commit/99eedc7b5fde38a50a28d3c8b724706e3e4c5f6a)
35
- - [meta] rename repo [`fc851fa`](https://github.com/ljharb/es-object-atoms/commit/fc851fa70616d2d182aaf0bd02c2ed7084dea8fa)
36
- - npm init [`b909377`](https://github.com/ljharb/es-object-atoms/commit/b909377c50049bd0ec575562d20b0f9ebae8947f)
37
- - Only apps should have lockfiles [`7249edd`](https://github.com/ljharb/es-object-atoms/commit/7249edd2178c1b9ddfc66ffcc6d07fdf0d28efc1)
40
+ - Initial implementation, tests, readme, types [`f1499db`](https://github.com/es-shims/es-object-atoms/commit/f1499db7d3e1741e64979c61d645ab3137705e82)
41
+ - Initial commit [`99eedc7`](https://github.com/es-shims/es-object-atoms/commit/99eedc7b5fde38a50a28d3c8b724706e3e4c5f6a)
42
+ - [meta] rename repo [`fc851fa`](https://github.com/es-shims/es-object-atoms/commit/fc851fa70616d2d182aaf0bd02c2ed7084dea8fa)
43
+ - npm init [`b909377`](https://github.com/es-shims/es-object-atoms/commit/b909377c50049bd0ec575562d20b0f9ebae8947f)
44
+ - Only apps should have lockfiles [`7249edd`](https://github.com/es-shims/es-object-atoms/commit/7249edd2178c1b9ddfc66ffcc6d07fdf0d28efc1)
@@ -1,3 +1,3 @@
1
- declare function isObject(x: unknown): x is object;
1
+ declare function isObject<T>(x: T): x is T & object & Record<PropertyKey, unknown>;
2
2
 
3
3
  export = isObject;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "es-object-atoms",
3
- "version": "1.1.1",
3
+ "version": "1.1.2",
4
4
  "description": "ES Object-related atoms: Object, ToObject, RequireObjectCoercible",
5
5
  "main": "index.js",
6
6
  "exports": {
@@ -46,16 +46,15 @@
46
46
  "es-errors": "^1.3.0"
47
47
  },
48
48
  "devDependencies": {
49
- "@ljharb/eslint-config": "^21.1.1",
50
- "@ljharb/tsconfig": "^0.2.3",
49
+ "@ljharb/eslint-config": "^22.2.3",
50
+ "@ljharb/tsconfig": "^0.3.2",
51
51
  "@types/tape": "^5.8.1",
52
- "auto-changelog": "^2.5.0",
52
+ "auto-changelog": "^2.5.1",
53
53
  "eclint": "^2.8.1",
54
- "encoding": "^0.1.13",
55
- "eslint": "^8.8.0",
54
+ "eslint": "^8.57.1",
56
55
  "evalmd": "^0.0.19",
57
56
  "in-publish": "^2.0.1",
58
- "npmignore": "^0.3.1",
57
+ "npmignore": "^0.3.5",
59
58
  "nyc": "^10.3.2",
60
59
  "safe-publish-latest": "^2.0.0",
61
60
  "tape": "^5.9.0",
@@ -2,5 +2,6 @@
2
2
  "extends": "@ljharb/tsconfig",
3
3
  "compilerOptions": {
4
4
  "target": "es5",
5
+ "ignoreDeprecations": "6.0",
5
6
  },
6
7
  }
@@ -1,7 +1,16 @@
1
+ 4.22.2 / 2026-05-011
2
+ ==========
3
+
4
+ * fix: restore >20 array parsing for `req.query` repeated keys ([`8d09bfe6`](https://github.com/expressjs/express/commit/8d09bfe6d88983da5c3e12cfdd54782c4dc675db))
5
+ * This also unifies array-cap behavior across notations. Indexed notation (`a[0]=...`) was historically capped at qs's default `arrayLimit` of 20 even in older qs versions; after this change it also allows up to 1000 items.
6
+ * deps: qs@~6.15.1
7
+ * deps: body-parser@~1.20.5
8
+
1
9
  4.22.1 / 2025-12-01
2
10
  ==========
3
11
 
4
12
  * Revert security fix for [CVE-2024-51999](https://www.cve.org/CVERecord?id=CVE-2024-51999) ([GHSA-pj86-cfqh-vqx6](https://github.com/expressjs/express/security/advisories/GHSA-pj86-cfqh-vqx6))
13
+ * The prior release (4.22.0) included an erroneous breaking change related to the extended query parser. There is no actual security vulnerability associated with this behavior (CVE-2024-51999 has been rejected). The change has been fully reverted in this release.
5
14
 
6
15
  4.22.0 / 2025-12-01
7
16
  ==========
@@ -287,7 +287,8 @@ function createETagGenerator (options) {
287
287
 
288
288
  function parseExtendedQueryString(str) {
289
289
  return qs.parse(str, {
290
- allowPrototypes: true
290
+ allowPrototypes: true,
291
+ arrayLimit: 1000
291
292
  });
292
293
  }
293
294
 
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "express",
3
3
  "description": "Fast, unopinionated, minimalist web framework",
4
- "version": "4.22.1",
4
+ "version": "4.22.2",
5
5
  "author": "TJ Holowaychuk <tj@vision-media.ca>",
6
6
  "contributors": [
7
7
  "Aaron Heckmann <aaron.heckmann+github@gmail.com>",
@@ -34,7 +34,7 @@
34
34
  "dependencies": {
35
35
  "accepts": "~1.3.8",
36
36
  "array-flatten": "1.1.1",
37
- "body-parser": "~1.20.3",
37
+ "body-parser": "~1.20.5",
38
38
  "content-disposition": "~0.5.4",
39
39
  "content-type": "~1.0.4",
40
40
  "cookie": "~0.7.1",
@@ -53,7 +53,7 @@
53
53
  "parseurl": "~1.3.3",
54
54
  "path-to-regexp": "~0.1.12",
55
55
  "proxy-addr": "~2.0.7",
56
- "qs": "~6.14.0",
56
+ "qs": "~6.15.1",
57
57
  "range-parser": "~1.2.1",
58
58
  "safe-buffer": "5.2.1",
59
59
  "send": "~0.19.0",
@@ -1,3 +1,23 @@
1
+ ## **6.15.2**
2
+ - [Fix] `stringify`: skip null/undefined entries in `arrayFormat: 'comma'` + `encodeValuesOnly` instead of crashing in `encoder`
3
+ - [Fix] `stringify`: use configured `delimiter` after `charsetSentinel` (#555)
4
+ - [Fix] `stringify`: apply `formatter` to encoded key under `strictNullHandling` (#554)
5
+ - [Fix] `stringify`: skip null/undefined filter-array entries instead of crashing in `encoder` (#551)
6
+ - [Fix] `parse`: handle nested bracket groups and add regression tests (#530)
7
+ - [readme] fix grammar (#550)
8
+ - [Dev Deps] update `@ljharb/eslint-config`
9
+ - [Tests] add regression tests for keys containing percent-encoded bracket text
10
+
11
+ ## **6.15.1**
12
+ - [Fix] `parse`: `parameterLimit: Infinity` with `throwOnLimitExceeded: true` silently drops all parameters
13
+ - [Deps] update `@ljharb/eslint-config`
14
+ - [Dev Deps] update `@ljharb/eslint-config`, `iconv-lite`
15
+ - [Tests] increase coverage
16
+
17
+ ## **6.15.0**
18
+ - [New] `parse`: add `strictMerge` option to wrap object/primitive conflicts in an array (#425, #122)
19
+ - [Fix] `duplicates` option should not apply to bracket notation keys (#514)
20
+
1
21
  ## **6.14.2**
2
22
  - [Fix] `parse`: mark overflow objects for indexed notation exceeding `arrayLimit` (#546)
3
23
  - [Fix] `arrayLimit` means max count, not max index, in `combine`/`merge`/`parseArrayValue`
@@ -30,6 +50,17 @@
30
50
  - [Dev Deps] update `es-value-fixtures`, `has-bigints`, `has-proto`, `has-symbols`
31
51
  - [Tests] increase coverage
32
52
 
53
+ ## **6.13.3**
54
+ [Fix] fix regressions from robustness refactor
55
+ [actions] update reusable workflows
56
+
57
+ ## **6.13.2**
58
+ - [Robustness] avoid `.push`, use `void`
59
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
60
+ - [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
61
+ - [readme] replace runkit CI badge with shields.io check-runs badge
62
+ - [actions] fix rebase workflow permissions
63
+
33
64
  ## **6.13.1**
34
65
  - [Fix] `stringify`: avoid a crash when a `filter` key is `null`
35
66
  - [Fix] `utils.merge`: functions should not be stringified into keys
@@ -46,6 +77,17 @@
46
77
  - [New] `parse`: add `strictDepth` option (#511)
47
78
  - [Tests] use `npm audit` instead of `aud`
48
79
 
80
+ ## **6.12.5**
81
+ - [Fix] fix regressions from robustness refactor
82
+ - [actions] update reusable workflows
83
+
84
+ ## **6.12.4**
85
+ - [Robustness] avoid `.push`, use `void`
86
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
87
+ - [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
88
+ - [readme] replace runkit CI badge with shields.io check-runs badge
89
+ - [actions] fix rebase workflow permissions
90
+
49
91
  ## **6.12.3**
50
92
  - [Fix] `parse`: properly account for `strictNullHandling` when `allowEmptyArrays`
51
93
  - [meta] fix changelog indentation
@@ -83,6 +125,17 @@
83
125
  - [Dev Deps] pin `glob`, since v10.3.8+ requires a broken `jackspeak`
84
126
  - [Dev Deps] pin `jackspeak` since 2.1.2+ depends on npm aliases, which kill the install process in npm < 6
85
127
 
128
+ ## **6.11.4**
129
+ - [Fix] fix regressions from robustness refactor
130
+ - [actions] update reusable workflows
131
+
132
+ ## **6.11.3**
133
+ - [Robustness] avoid `.push`, use `void`
134
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
135
+ - [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
136
+ - [readme] replace runkit CI badge with shields.io check-runs badge
137
+ - [actions] fix rebase workflow permissions
138
+
86
139
  ## **6.11.2**
87
140
  - [Fix] `parse`: Fix parsing when the global Object prototype is frozen (#473)
88
141
  - [Tests] add passing test cases with empty keys (#473)
@@ -100,6 +153,17 @@
100
153
  - [New] [Fix] `stringify`: revert 0e903c0; add `commaRoundTrip` option (#442)
101
154
  - [readme] fix version badge
102
155
 
156
+ ## **6.10.7**
157
+ - [Fix] fix regressions from robustness refactor
158
+ - [actions] update reusable workflows
159
+
160
+ ## **6.10.6**
161
+ - [Robustness] avoid `.push`, use `void`
162
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
163
+ - [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
164
+ - [readme] replace runkit CI badge with shields.io check-runs badge
165
+ - [actions] fix rebase workflow permissions
166
+
103
167
  ## **6.10.5**
104
168
  - [Fix] `stringify`: with `arrayFormat: comma`, properly include an explicit `[]` on a single-item array (#434)
105
169
 
@@ -137,6 +201,18 @@
137
201
  - [Tests] use `ljharb/actions/node/install` instead of `ljharb/actions/node/run`
138
202
  - [Tests] Revert "[meta] ignore eclint transitive audit warning"
139
203
 
204
+ ## **6.9.9**
205
+ - [Fix] fix regressions from robustness refactor
206
+ - [meta] add `npmignore` to autogenerate an npmignore file
207
+ - [actions] update reusable workflows
208
+
209
+ ## **6.9.8**
210
+ - [Robustness] avoid `.push`, use `void`
211
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
212
+ - [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
213
+ - [readme] replace runkit CI badge with shields.io check-runs badge
214
+ - [actions] fix rebase workflow permissions
215
+
140
216
  ## **6.9.7**
141
217
  - [Fix] `parse`: ignore `__proto__` keys (#428)
142
218
  - [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424)
@@ -197,6 +273,18 @@
197
273
  - [Tests] up to `node` `v12.10`, `v11.15`, `v10.16`, `v8.16`
198
274
  - [Tests] `Buffer.from` in node v5.0-v5.9 and v4.0-v4.4 requires a TypedArray
199
275
 
276
+ ## **6.8.5**
277
+ - [Fix] fix regressions from robustness refactor
278
+ - [meta] add `npmignore` to autogenerate an npmignore file
279
+ - [actions] update reusable workflows
280
+
281
+ ## **6.8.4**
282
+ - [Robustness] avoid `.push`, use `void`
283
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
284
+ - [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
285
+ - [readme] replace runkit CI badge with shields.io check-runs badge
286
+ - [actions] fix rebase workflow permissions
287
+
200
288
  ## **6.8.3**
201
289
  - [Fix] `parse`: ignore `__proto__` keys (#428)
202
290
  - [Robustness] `stringify`: avoid relying on a global `undefined` (#427)
@@ -241,6 +329,18 @@
241
329
  - [meta] add FUNDING.yml
242
330
  - [meta] Clean up license text so it’s properly detected as BSD-3-Clause
243
331
 
332
+ ## **6.7.5**
333
+ - [Fix] fix regressions from robustness refactor
334
+ - [meta] add `npmignore` to autogenerate an npmignore file
335
+ - [actions] update reusable workflows
336
+
337
+ ## **6.7.4**
338
+ - [Robustness] avoid `.push`, use `void`
339
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
340
+ - [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
341
+ - [readme] replace runkit CI badge with shields.io check-runs badge
342
+ - [actions] fix rebase workflow permissions
343
+
244
344
  ## **6.7.3**
245
345
  - [Fix] `parse`: ignore `__proto__` keys (#428)
246
346
  - [Fix] `stringify`: avoid encoding arrayformat comma when `encodeValuesOnly = true` (#424)
@@ -292,6 +392,18 @@
292
392
  - [Tests] fix Buffer tests to work in node < 4.5 and node < 5.10
293
393
  - [Tests] temporarily allow coverage to fail
294
394
 
395
+ ## **6.6.3**
396
+ - [Fix] fix regressions from robustness refactor
397
+ - [meta] add `npmignore` to autogenerate an npmignore file
398
+ - [actions] update reusable workflows
399
+
400
+ ## **6.6.2**
401
+ - [Robustness] avoid `.push`, use `void`
402
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
403
+ - [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
404
+ - [readme] replace runkit CI badge with shields.io check-runs badge
405
+ - [actions] fix rebase workflow permissions
406
+
295
407
  ## **6.6.1**
296
408
  - [Fix] `parse`: ignore `__proto__` keys (#428)
297
409
  - [Fix] fix for an impossible situation: when the formatter is called with a non-string value
@@ -334,6 +446,18 @@
334
446
  - [Dev Deps] update `browserify`, `eslint`, `@ljharb/eslint-config`, `iconv-lite`, `safe-publish-latest`, `tape`
335
447
  - [Tests] up to `node` `v10.10`, `v9.11`, `v8.12`, `v6.14`, `v4.9`; pin included builds to LTS
336
448
 
449
+ ## **6.5.5**
450
+ - [Fix] fix regressions from robustness refactor
451
+ - [meta] add `npmignore` to autogenerate an npmignore file
452
+ - [actions] update reusable workflows
453
+
454
+ ## **6.5.4**
455
+ - [Robustness] avoid `.push`, use `void`
456
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
457
+ - [readme] document that `addQueryPrefix` does not add `?` to empty output (#418)
458
+ - [readme] replace runkit CI badge with shields.io check-runs badge
459
+ - [actions] fix rebase workflow permissions
460
+
337
461
  ## **6.5.3**
338
462
  - [Fix] `parse`: ignore `__proto__` keys (#428)
339
463
  - [Fix] `utils.merge`: avoid a crash with a null target and a truthy non-array source
@@ -384,6 +508,18 @@
384
508
  - [Tests] up to `node` `v8.1`, `v7.10`, `v6.11`; npm v4.6 breaks on node < v1; npm v5+ breaks on node < v4
385
509
  - [Tests] add `editorconfig-tools`
386
510
 
511
+ ## **6.4.3**
512
+ - [Fix] fix regressions from robustness refactor
513
+ - [meta] add `npmignore` to autogenerate an npmignore file
514
+ - [actions] update reusable workflows
515
+
516
+ ## **6.4.2**
517
+ - [Robustness] avoid `.push`, use `void`
518
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
519
+ - [readme] replace runkit CI badge with shields.io check-runs badge
520
+ - [readme] replace travis CI badge with shields.io check-runs badge
521
+ - [actions] fix rebase workflow permissions
522
+
387
523
  ## **6.4.1**
388
524
  - [Fix] `parse`: ignore `__proto__` keys (#428)
389
525
  - [Fix] fix for an impossible situation: when the formatter is called with a non-string value
@@ -414,6 +550,17 @@
414
550
  - [Tests] up to `node` `v7.7`, `v6.10`,` v4.8`; disable osx builds since they block linux builds
415
551
  - [eslint] reduce warnings
416
552
 
553
+ ## **6.3.5**
554
+ - [Fix] fix regressions from robustness refactor
555
+ - [meta] add `npmignore` to autogenerate an npmignore file
556
+ - [actions] update reusable workflows
557
+
558
+ ## **6.3.4**
559
+ - [Robustness] avoid `.push`, use `void`
560
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
561
+ - [readme] replace travis CI badge with shields.io check-runs badge
562
+ - [actions] fix rebase workflow permissions
563
+
417
564
  ## **6.3.3**
418
565
  - [Fix] `parse`: ignore `__proto__` keys (#428)
419
566
  - [Fix] fix for an impossible situation: when the formatter is called with a non-string value
@@ -467,6 +614,17 @@
467
614
  - [Tests] skip Object.create tests when null objects are not available
468
615
  - [Tests] Turn on eslint for test files (#175)
469
616
 
617
+ ## **6.2.6**
618
+ - [Fix] fix regression from robustness refactor
619
+ - [meta] add `npmignore` to autogenerate an npmignore file
620
+ - [actions] update reusable workflows
621
+
622
+ ## **6.2.5**
623
+ - [Robustness] avoid `.push`, use `void`
624
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
625
+ - [readme] replace travis CI badge with shields.io check-runs badge
626
+ - [actions] fix rebase workflow permissions
627
+
470
628
  ## **6.2.4**
471
629
  - [Fix] `parse`: ignore `__proto__` keys (#428)
472
630
  - [Fix] `utils.merge`: avoid a crash with a null target and an array source
@@ -505,6 +663,16 @@
505
663
  - [New] add "encoder" and "decoder" options, for custom param encoding/decoding (#160)
506
664
  - [Fix] fix compacting of nested sparse arrays (#150)
507
665
 
666
+ ## **6.1.4**
667
+ - [Fix] fix regression from robustness refactor
668
+ - [meta] add `npmignore` to autogenerate an npmignore file
669
+ - [actions] update reusable workflows
670
+
671
+ ## **6.1.3**
672
+ - [Robustness] avoid `.push`, use `void`
673
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
674
+ - [readme] replace travis CI badge with shields.io check-runs badge
675
+
508
676
  ## **6.1.2**
509
677
  - [Fix] follow `allowPrototypes` option during merge (#201, #200)
510
678
  - [Fix] chmod a-x
@@ -519,6 +687,16 @@
519
687
  - [Fix] "sort" option should work at a depth of 3 or more (#151)
520
688
  - [Fix] Restore `dist` directory; will be removed in v7 (#148)
521
689
 
690
+ ## **6.0.6**
691
+ - [Fix] fix regression from robustness refactor
692
+ - [meta] add `npmignore` to autogenerate an npmignore file
693
+ - [actions] update reusable workflows
694
+
695
+ ## **6.0.5**
696
+ - [Robustness] avoid `.push`, use `void`
697
+ - [readme] clarify `parseArrays` and `arrayLimit` documentation (#543)
698
+ - [readme] replace travis CI badge with shields.io check-runs badge
699
+
522
700
  ## **6.0.4**
523
701
  - [Fix] follow `allowPrototypes` option during merge (#201, #200)
524
702
  - [Fix] chmod a-x
@@ -183,7 +183,7 @@ var withDots = qs.parse('name%252Eobj.first=John&name%252Eobj.last=Doe', { decod
183
183
  assert.deepEqual(withDots, { 'name.obj': { first: 'John', last: 'Doe' }});
184
184
  ```
185
185
 
186
- Option `allowEmptyArrays` can be used to allowing empty array values in object
186
+ Option `allowEmptyArrays` can be used to allow empty array values in an object
187
187
  ```javascript
188
188
  var withEmptyArrays = qs.parse('foo[]&bar=baz', { allowEmptyArrays: true });
189
189
  assert.deepEqual(withEmptyArrays, { foo: [], bar: 'baz' });
@@ -197,6 +197,11 @@ assert.deepEqual(qs.parse('foo=bar&foo=baz', { duplicates: 'first' }), { foo: 'b
197
197
  assert.deepEqual(qs.parse('foo=bar&foo=baz', { duplicates: 'last' }), { foo: 'baz' });
198
198
  ```
199
199
 
200
+ Note that keys with bracket notation (`[]`) always combine into arrays, regardless of the `duplicates` setting:
201
+ ```javascript
202
+ assert.deepEqual(qs.parse('a=1&a=2&b[]=1&b[]=2', { duplicates: 'last' }), { a: '2', b: ['1', '2'] });
203
+ ```
204
+
200
205
  If you have to deal with legacy browsers or services, there's also support for decoding percent-encoded octets as iso-8859-1:
201
206
 
202
207
  ```javascript
@@ -325,6 +330,19 @@ var mixedNotation = qs.parse('a[0]=b&a[b]=c');
325
330
  assert.deepEqual(mixedNotation, { a: { '0': 'b', b: 'c' } });
326
331
  ```
327
332
 
333
+ When a key appears as both a plain value and an object, **qs** will by default wrap the conflicting values in an array (`strictMerge` defaults to `true`):
334
+
335
+ ```javascript
336
+ assert.deepEqual(qs.parse('a[b]=c&a=d'), { a: [{ b: 'c' }, 'd'] });
337
+ assert.deepEqual(qs.parse('a=d&a[b]=c'), { a: ['d', { b: 'c' }] });
338
+ ```
339
+
340
+ To restore the legacy behavior (where the primitive is used as a key with value `true`), set `strictMerge` to `false`:
341
+
342
+ ```javascript
343
+ assert.deepEqual(qs.parse('a[b]=c&a=d', { strictMerge: false }), { a: { b: 'c', d: true } });
344
+ ```
345
+
328
346
  You can also create arrays of objects:
329
347
 
330
348
  ```javascript