noodleseed-cli 0.1.14 → 0.1.16

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 (566) hide show
  1. package/dist/cli.js +7 -3
  2. package/dist/cli.js.map +1 -1
  3. package/dist/project.d.ts +1 -1
  4. package/dist/project.d.ts.map +1 -1
  5. package/dist/project.js +103 -3
  6. package/dist/project.js.map +1 -1
  7. package/node_modules/@modelcontextprotocol/sdk/package.json +0 -2
  8. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +3 -2
  9. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  10. package/node_modules/@noodle-borg/authoring/dist/index.js +2 -1
  11. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  12. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
  13. package/node_modules/@noodle-borg/compiler/dist/compile.js +30 -2
  14. package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
  15. package/node_modules/@noodle-borg/compiler/dist/index.d.ts +1 -0
  16. package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
  17. package/node_modules/@noodle-borg/compiler/dist/index.js +1 -0
  18. package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
  19. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +14866 -2
  20. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  21. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +12 -2
  22. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
  23. package/node_modules/@noodle-borg/compiler/dist/widget-ui.d.ts +95 -0
  24. package/node_modules/@noodle-borg/compiler/dist/widget-ui.d.ts.map +1 -0
  25. package/node_modules/@noodle-borg/compiler/dist/widget-ui.js +177 -0
  26. package/node_modules/@noodle-borg/compiler/dist/widget-ui.js.map +1 -0
  27. package/node_modules/@noodle-borg/compiler/node_modules/.bin/yaml +22 -0
  28. package/node_modules/@noodle-borg/connector-defs/node_modules/.bin/yaml +22 -0
  29. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
  30. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +5 -10
  31. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
  32. package/node_modules/@noodle-borg/connector-http/dist/ssrf.d.ts +5 -3
  33. package/node_modules/@noodle-borg/connector-http/dist/ssrf.d.ts.map +1 -1
  34. package/node_modules/@noodle-borg/connector-http/dist/ssrf.js +36 -5
  35. package/node_modules/@noodle-borg/connector-http/dist/ssrf.js.map +1 -1
  36. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.d.ts.map +1 -1
  37. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js +60 -3
  38. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js.map +1 -1
  39. package/node_modules/@noodle-borg/service/package.json +0 -1
  40. package/node_modules/cors/package.json +0 -1
  41. package/node_modules/cross-spawn/node_modules/.bin/node-which +22 -0
  42. package/node_modules/which/CHANGELOG.md +166 -0
  43. package/package.json +1 -56
  44. package/node_modules/accepts/HISTORY.md +0 -250
  45. package/node_modules/accepts/LICENSE +0 -23
  46. package/node_modules/accepts/README.md +0 -140
  47. package/node_modules/accepts/index.js +0 -238
  48. package/node_modules/accepts/package.json +0 -47
  49. package/node_modules/body-parser/LICENSE +0 -23
  50. package/node_modules/body-parser/README.md +0 -494
  51. package/node_modules/body-parser/index.js +0 -71
  52. package/node_modules/body-parser/lib/read.js +0 -247
  53. package/node_modules/body-parser/lib/types/json.js +0 -158
  54. package/node_modules/body-parser/lib/types/raw.js +0 -42
  55. package/node_modules/body-parser/lib/types/text.js +0 -36
  56. package/node_modules/body-parser/lib/types/urlencoded.js +0 -142
  57. package/node_modules/body-parser/lib/utils.js +0 -98
  58. package/node_modules/body-parser/package.json +0 -52
  59. package/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  60. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  61. package/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  62. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  63. package/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  64. package/node_modules/call-bind-apply-helpers/README.md +0 -62
  65. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  66. package/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  67. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  68. package/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  69. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  70. package/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  71. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  72. package/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  73. package/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  74. package/node_modules/call-bind-apply-helpers/index.js +0 -15
  75. package/node_modules/call-bind-apply-helpers/package.json +0 -85
  76. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  77. package/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  78. package/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  79. package/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  80. package/node_modules/call-bound/.eslintrc +0 -13
  81. package/node_modules/call-bound/.github/FUNDING.yml +0 -12
  82. package/node_modules/call-bound/.nycrc +0 -9
  83. package/node_modules/call-bound/CHANGELOG.md +0 -42
  84. package/node_modules/call-bound/LICENSE +0 -21
  85. package/node_modules/call-bound/README.md +0 -53
  86. package/node_modules/call-bound/index.d.ts +0 -94
  87. package/node_modules/call-bound/index.js +0 -19
  88. package/node_modules/call-bound/package.json +0 -99
  89. package/node_modules/call-bound/test/index.js +0 -61
  90. package/node_modules/call-bound/tsconfig.json +0 -10
  91. package/node_modules/content-disposition/LICENSE +0 -22
  92. package/node_modules/content-disposition/README.md +0 -141
  93. package/node_modules/content-disposition/index.js +0 -536
  94. package/node_modules/content-disposition/package.json +0 -40
  95. package/node_modules/cookie/LICENSE +0 -24
  96. package/node_modules/cookie/README.md +0 -317
  97. package/node_modules/cookie/SECURITY.md +0 -25
  98. package/node_modules/cookie/index.js +0 -335
  99. package/node_modules/cookie/package.json +0 -44
  100. package/node_modules/cookie-signature/History.md +0 -70
  101. package/node_modules/cookie-signature/LICENSE +0 -22
  102. package/node_modules/cookie-signature/Readme.md +0 -23
  103. package/node_modules/cookie-signature/index.js +0 -47
  104. package/node_modules/cookie-signature/package.json +0 -28
  105. package/node_modules/debug/LICENSE +0 -20
  106. package/node_modules/debug/README.md +0 -481
  107. package/node_modules/debug/package.json +0 -64
  108. package/node_modules/debug/src/browser.js +0 -272
  109. package/node_modules/debug/src/common.js +0 -292
  110. package/node_modules/debug/src/index.js +0 -10
  111. package/node_modules/debug/src/node.js +0 -263
  112. package/node_modules/dunder-proto/.eslintrc +0 -5
  113. package/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  114. package/node_modules/dunder-proto/.nycrc +0 -13
  115. package/node_modules/dunder-proto/CHANGELOG.md +0 -24
  116. package/node_modules/dunder-proto/LICENSE +0 -21
  117. package/node_modules/dunder-proto/README.md +0 -54
  118. package/node_modules/dunder-proto/get.d.ts +0 -5
  119. package/node_modules/dunder-proto/get.js +0 -30
  120. package/node_modules/dunder-proto/package.json +0 -76
  121. package/node_modules/dunder-proto/set.d.ts +0 -5
  122. package/node_modules/dunder-proto/set.js +0 -35
  123. package/node_modules/dunder-proto/test/get.js +0 -34
  124. package/node_modules/dunder-proto/test/index.js +0 -4
  125. package/node_modules/dunder-proto/test/set.js +0 -50
  126. package/node_modules/dunder-proto/tsconfig.json +0 -9
  127. package/node_modules/ee-first/LICENSE +0 -22
  128. package/node_modules/ee-first/README.md +0 -80
  129. package/node_modules/ee-first/index.js +0 -95
  130. package/node_modules/ee-first/package.json +0 -29
  131. package/node_modules/encodeurl/LICENSE +0 -22
  132. package/node_modules/encodeurl/README.md +0 -109
  133. package/node_modules/encodeurl/index.js +0 -60
  134. package/node_modules/encodeurl/package.json +0 -40
  135. package/node_modules/es-define-property/.eslintrc +0 -13
  136. package/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  137. package/node_modules/es-define-property/.nycrc +0 -9
  138. package/node_modules/es-define-property/CHANGELOG.md +0 -29
  139. package/node_modules/es-define-property/LICENSE +0 -21
  140. package/node_modules/es-define-property/README.md +0 -49
  141. package/node_modules/es-define-property/index.d.ts +0 -3
  142. package/node_modules/es-define-property/index.js +0 -14
  143. package/node_modules/es-define-property/package.json +0 -81
  144. package/node_modules/es-define-property/test/index.js +0 -56
  145. package/node_modules/es-define-property/tsconfig.json +0 -10
  146. package/node_modules/es-errors/.eslintrc +0 -5
  147. package/node_modules/es-errors/.github/FUNDING.yml +0 -12
  148. package/node_modules/es-errors/CHANGELOG.md +0 -40
  149. package/node_modules/es-errors/LICENSE +0 -21
  150. package/node_modules/es-errors/README.md +0 -55
  151. package/node_modules/es-errors/eval.d.ts +0 -3
  152. package/node_modules/es-errors/eval.js +0 -4
  153. package/node_modules/es-errors/index.d.ts +0 -3
  154. package/node_modules/es-errors/index.js +0 -4
  155. package/node_modules/es-errors/package.json +0 -80
  156. package/node_modules/es-errors/range.d.ts +0 -3
  157. package/node_modules/es-errors/range.js +0 -4
  158. package/node_modules/es-errors/ref.d.ts +0 -3
  159. package/node_modules/es-errors/ref.js +0 -4
  160. package/node_modules/es-errors/syntax.d.ts +0 -3
  161. package/node_modules/es-errors/syntax.js +0 -4
  162. package/node_modules/es-errors/test/index.js +0 -19
  163. package/node_modules/es-errors/tsconfig.json +0 -49
  164. package/node_modules/es-errors/type.d.ts +0 -3
  165. package/node_modules/es-errors/type.js +0 -4
  166. package/node_modules/es-errors/uri.d.ts +0 -3
  167. package/node_modules/es-errors/uri.js +0 -4
  168. package/node_modules/es-object-atoms/.eslintrc +0 -16
  169. package/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  170. package/node_modules/es-object-atoms/CHANGELOG.md +0 -44
  171. package/node_modules/es-object-atoms/LICENSE +0 -21
  172. package/node_modules/es-object-atoms/README.md +0 -63
  173. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  174. package/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  175. package/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  176. package/node_modules/es-object-atoms/ToObject.js +0 -10
  177. package/node_modules/es-object-atoms/index.d.ts +0 -3
  178. package/node_modules/es-object-atoms/index.js +0 -4
  179. package/node_modules/es-object-atoms/isObject.d.ts +0 -3
  180. package/node_modules/es-object-atoms/isObject.js +0 -6
  181. package/node_modules/es-object-atoms/package.json +0 -79
  182. package/node_modules/es-object-atoms/test/index.js +0 -38
  183. package/node_modules/es-object-atoms/tsconfig.json +0 -7
  184. package/node_modules/escape-html/LICENSE +0 -24
  185. package/node_modules/escape-html/Readme.md +0 -43
  186. package/node_modules/escape-html/index.js +0 -78
  187. package/node_modules/escape-html/package.json +0 -24
  188. package/node_modules/etag/HISTORY.md +0 -83
  189. package/node_modules/etag/LICENSE +0 -22
  190. package/node_modules/etag/README.md +0 -159
  191. package/node_modules/etag/index.js +0 -131
  192. package/node_modules/etag/package.json +0 -47
  193. package/node_modules/express/LICENSE +0 -24
  194. package/node_modules/express/Readme.md +0 -276
  195. package/node_modules/express/index.js +0 -11
  196. package/node_modules/express/lib/application.js +0 -631
  197. package/node_modules/express/lib/express.js +0 -81
  198. package/node_modules/express/lib/request.js +0 -514
  199. package/node_modules/express/lib/response.js +0 -1053
  200. package/node_modules/express/lib/utils.js +0 -271
  201. package/node_modules/express/lib/view.js +0 -205
  202. package/node_modules/express/package.json +0 -99
  203. package/node_modules/express-rate-limit/dist/index.cjs +0 -1016
  204. package/node_modules/express-rate-limit/dist/index.d.cts +0 -672
  205. package/node_modules/express-rate-limit/dist/index.d.mts +0 -672
  206. package/node_modules/express-rate-limit/dist/index.d.ts +0 -672
  207. package/node_modules/express-rate-limit/dist/index.mjs +0 -986
  208. package/node_modules/express-rate-limit/license.md +0 -20
  209. package/node_modules/express-rate-limit/package.json +0 -113
  210. package/node_modules/express-rate-limit/readme.md +0 -139
  211. package/node_modules/express-rate-limit/tsconfig.json +0 -8
  212. package/node_modules/finalhandler/HISTORY.md +0 -239
  213. package/node_modules/finalhandler/LICENSE +0 -22
  214. package/node_modules/finalhandler/README.md +0 -150
  215. package/node_modules/finalhandler/index.js +0 -293
  216. package/node_modules/finalhandler/package.json +0 -47
  217. package/node_modules/forwarded/HISTORY.md +0 -21
  218. package/node_modules/forwarded/LICENSE +0 -22
  219. package/node_modules/forwarded/README.md +0 -57
  220. package/node_modules/forwarded/index.js +0 -90
  221. package/node_modules/forwarded/package.json +0 -45
  222. package/node_modules/fresh/HISTORY.md +0 -80
  223. package/node_modules/fresh/LICENSE +0 -23
  224. package/node_modules/fresh/README.md +0 -117
  225. package/node_modules/fresh/index.js +0 -136
  226. package/node_modules/fresh/package.json +0 -46
  227. package/node_modules/function-bind/.eslintrc +0 -21
  228. package/node_modules/function-bind/.github/FUNDING.yml +0 -12
  229. package/node_modules/function-bind/.github/SECURITY.md +0 -3
  230. package/node_modules/function-bind/.nycrc +0 -13
  231. package/node_modules/function-bind/CHANGELOG.md +0 -136
  232. package/node_modules/function-bind/LICENSE +0 -20
  233. package/node_modules/function-bind/README.md +0 -46
  234. package/node_modules/function-bind/implementation.js +0 -84
  235. package/node_modules/function-bind/index.js +0 -5
  236. package/node_modules/function-bind/package.json +0 -87
  237. package/node_modules/function-bind/test/.eslintrc +0 -9
  238. package/node_modules/function-bind/test/index.js +0 -252
  239. package/node_modules/get-intrinsic/.eslintrc +0 -42
  240. package/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  241. package/node_modules/get-intrinsic/.nycrc +0 -9
  242. package/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  243. package/node_modules/get-intrinsic/LICENSE +0 -21
  244. package/node_modules/get-intrinsic/README.md +0 -71
  245. package/node_modules/get-intrinsic/index.js +0 -378
  246. package/node_modules/get-intrinsic/package.json +0 -97
  247. package/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  248. package/node_modules/get-proto/.eslintrc +0 -10
  249. package/node_modules/get-proto/.github/FUNDING.yml +0 -12
  250. package/node_modules/get-proto/.nycrc +0 -9
  251. package/node_modules/get-proto/CHANGELOG.md +0 -21
  252. package/node_modules/get-proto/LICENSE +0 -21
  253. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  254. package/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  255. package/node_modules/get-proto/README.md +0 -50
  256. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  257. package/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  258. package/node_modules/get-proto/index.d.ts +0 -5
  259. package/node_modules/get-proto/index.js +0 -27
  260. package/node_modules/get-proto/package.json +0 -81
  261. package/node_modules/get-proto/test/index.js +0 -68
  262. package/node_modules/get-proto/tsconfig.json +0 -9
  263. package/node_modules/gopd/.eslintrc +0 -16
  264. package/node_modules/gopd/.github/FUNDING.yml +0 -12
  265. package/node_modules/gopd/CHANGELOG.md +0 -45
  266. package/node_modules/gopd/LICENSE +0 -21
  267. package/node_modules/gopd/README.md +0 -40
  268. package/node_modules/gopd/gOPD.d.ts +0 -1
  269. package/node_modules/gopd/gOPD.js +0 -4
  270. package/node_modules/gopd/index.d.ts +0 -5
  271. package/node_modules/gopd/index.js +0 -15
  272. package/node_modules/gopd/package.json +0 -77
  273. package/node_modules/gopd/test/index.js +0 -36
  274. package/node_modules/gopd/tsconfig.json +0 -9
  275. package/node_modules/has-symbols/.eslintrc +0 -11
  276. package/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  277. package/node_modules/has-symbols/.nycrc +0 -9
  278. package/node_modules/has-symbols/CHANGELOG.md +0 -91
  279. package/node_modules/has-symbols/LICENSE +0 -21
  280. package/node_modules/has-symbols/README.md +0 -46
  281. package/node_modules/has-symbols/index.d.ts +0 -3
  282. package/node_modules/has-symbols/index.js +0 -14
  283. package/node_modules/has-symbols/package.json +0 -111
  284. package/node_modules/has-symbols/shams.d.ts +0 -3
  285. package/node_modules/has-symbols/shams.js +0 -45
  286. package/node_modules/has-symbols/test/index.js +0 -22
  287. package/node_modules/has-symbols/test/shams/core-js.js +0 -29
  288. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  289. package/node_modules/has-symbols/test/tests.js +0 -58
  290. package/node_modules/has-symbols/tsconfig.json +0 -10
  291. package/node_modules/hasown/.github/FUNDING.yml +0 -12
  292. package/node_modules/hasown/.nycrc +0 -13
  293. package/node_modules/hasown/CHANGELOG.md +0 -58
  294. package/node_modules/hasown/LICENSE +0 -21
  295. package/node_modules/hasown/README.md +0 -40
  296. package/node_modules/hasown/eslint.config.mjs +0 -6
  297. package/node_modules/hasown/index.d.ts +0 -3
  298. package/node_modules/hasown/index.js +0 -8
  299. package/node_modules/hasown/package.json +0 -91
  300. package/node_modules/hasown/tsconfig.json +0 -6
  301. package/node_modules/ip-address/LICENSE +0 -19
  302. package/node_modules/ip-address/README.md +0 -278
  303. package/node_modules/ip-address/dist/address-error.d.ts +0 -4
  304. package/node_modules/ip-address/dist/address-error.js +0 -12
  305. package/node_modules/ip-address/dist/address-error.js.map +0 -1
  306. package/node_modules/ip-address/dist/common.d.ts +0 -20
  307. package/node_modules/ip-address/dist/common.js +0 -67
  308. package/node_modules/ip-address/dist/common.js.map +0 -1
  309. package/node_modules/ip-address/dist/ip-address.d.ts +0 -7
  310. package/node_modules/ip-address/dist/ip-address.js +0 -35
  311. package/node_modules/ip-address/dist/ip-address.js.map +0 -1
  312. package/node_modules/ip-address/dist/ipv4.d.ts +0 -267
  313. package/node_modules/ip-address/dist/ipv4.js +0 -485
  314. package/node_modules/ip-address/dist/ipv4.js.map +0 -1
  315. package/node_modules/ip-address/dist/ipv6.d.ts +0 -489
  316. package/node_modules/ip-address/dist/ipv6.js +0 -1217
  317. package/node_modules/ip-address/dist/ipv6.js.map +0 -1
  318. package/node_modules/ip-address/dist/v4/constants.d.ts +0 -4
  319. package/node_modules/ip-address/dist/v4/constants.js +0 -8
  320. package/node_modules/ip-address/dist/v4/constants.js.map +0 -1
  321. package/node_modules/ip-address/dist/v6/constants.d.ts +0 -44
  322. package/node_modules/ip-address/dist/v6/constants.js +0 -81
  323. package/node_modules/ip-address/dist/v6/constants.js.map +0 -1
  324. package/node_modules/ip-address/dist/v6/helpers.d.ts +0 -18
  325. package/node_modules/ip-address/dist/v6/helpers.js +0 -54
  326. package/node_modules/ip-address/dist/v6/helpers.js.map +0 -1
  327. package/node_modules/ip-address/dist/v6/regular-expressions.d.ts +0 -5
  328. package/node_modules/ip-address/dist/v6/regular-expressions.js +0 -95
  329. package/node_modules/ip-address/dist/v6/regular-expressions.js.map +0 -1
  330. package/node_modules/ip-address/package.json +0 -88
  331. package/node_modules/is-promise/LICENSE +0 -19
  332. package/node_modules/is-promise/index.d.ts +0 -2
  333. package/node_modules/is-promise/index.js +0 -6
  334. package/node_modules/is-promise/index.mjs +0 -3
  335. package/node_modules/is-promise/package.json +0 -30
  336. package/node_modules/is-promise/readme.md +0 -33
  337. package/node_modules/math-intrinsics/.eslintrc +0 -16
  338. package/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  339. package/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  340. package/node_modules/math-intrinsics/LICENSE +0 -21
  341. package/node_modules/math-intrinsics/README.md +0 -50
  342. package/node_modules/math-intrinsics/abs.d.ts +0 -1
  343. package/node_modules/math-intrinsics/abs.js +0 -4
  344. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  345. package/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  346. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  347. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  348. package/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  349. package/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  350. package/node_modules/math-intrinsics/floor.d.ts +0 -1
  351. package/node_modules/math-intrinsics/floor.js +0 -4
  352. package/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  353. package/node_modules/math-intrinsics/isFinite.js +0 -12
  354. package/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  355. package/node_modules/math-intrinsics/isInteger.js +0 -16
  356. package/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  357. package/node_modules/math-intrinsics/isNaN.js +0 -6
  358. package/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  359. package/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  360. package/node_modules/math-intrinsics/max.d.ts +0 -1
  361. package/node_modules/math-intrinsics/max.js +0 -4
  362. package/node_modules/math-intrinsics/min.d.ts +0 -1
  363. package/node_modules/math-intrinsics/min.js +0 -4
  364. package/node_modules/math-intrinsics/mod.d.ts +0 -3
  365. package/node_modules/math-intrinsics/mod.js +0 -9
  366. package/node_modules/math-intrinsics/package.json +0 -86
  367. package/node_modules/math-intrinsics/pow.d.ts +0 -1
  368. package/node_modules/math-intrinsics/pow.js +0 -4
  369. package/node_modules/math-intrinsics/round.d.ts +0 -1
  370. package/node_modules/math-intrinsics/round.js +0 -4
  371. package/node_modules/math-intrinsics/sign.d.ts +0 -3
  372. package/node_modules/math-intrinsics/sign.js +0 -11
  373. package/node_modules/math-intrinsics/test/index.js +0 -192
  374. package/node_modules/math-intrinsics/tsconfig.json +0 -3
  375. package/node_modules/media-typer/HISTORY.md +0 -50
  376. package/node_modules/media-typer/LICENSE +0 -22
  377. package/node_modules/media-typer/README.md +0 -93
  378. package/node_modules/media-typer/index.js +0 -143
  379. package/node_modules/media-typer/package.json +0 -33
  380. package/node_modules/merge-descriptors/index.d.ts +0 -11
  381. package/node_modules/merge-descriptors/index.js +0 -26
  382. package/node_modules/merge-descriptors/license +0 -11
  383. package/node_modules/merge-descriptors/package.json +0 -50
  384. package/node_modules/merge-descriptors/readme.md +0 -55
  385. package/node_modules/mime-db/HISTORY.md +0 -541
  386. package/node_modules/mime-db/LICENSE +0 -23
  387. package/node_modules/mime-db/README.md +0 -109
  388. package/node_modules/mime-db/db.json +0 -9342
  389. package/node_modules/mime-db/index.js +0 -12
  390. package/node_modules/mime-db/package.json +0 -56
  391. package/node_modules/mime-types/HISTORY.md +0 -428
  392. package/node_modules/mime-types/LICENSE +0 -23
  393. package/node_modules/mime-types/README.md +0 -126
  394. package/node_modules/mime-types/index.js +0 -211
  395. package/node_modules/mime-types/mimeScore.js +0 -57
  396. package/node_modules/mime-types/package.json +0 -49
  397. package/node_modules/ms/index.js +0 -162
  398. package/node_modules/ms/license.md +0 -21
  399. package/node_modules/ms/package.json +0 -38
  400. package/node_modules/ms/readme.md +0 -59
  401. package/node_modules/negotiator/HISTORY.md +0 -114
  402. package/node_modules/negotiator/LICENSE +0 -24
  403. package/node_modules/negotiator/README.md +0 -212
  404. package/node_modules/negotiator/index.js +0 -83
  405. package/node_modules/negotiator/lib/charset.js +0 -169
  406. package/node_modules/negotiator/lib/encoding.js +0 -205
  407. package/node_modules/negotiator/lib/language.js +0 -179
  408. package/node_modules/negotiator/lib/mediaType.js +0 -294
  409. package/node_modules/negotiator/package.json +0 -43
  410. package/node_modules/object-inspect/.eslintrc +0 -53
  411. package/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  412. package/node_modules/object-inspect/.nycrc +0 -13
  413. package/node_modules/object-inspect/CHANGELOG.md +0 -424
  414. package/node_modules/object-inspect/LICENSE +0 -21
  415. package/node_modules/object-inspect/example/all.js +0 -23
  416. package/node_modules/object-inspect/example/circular.js +0 -6
  417. package/node_modules/object-inspect/example/fn.js +0 -5
  418. package/node_modules/object-inspect/example/inspect.js +0 -10
  419. package/node_modules/object-inspect/index.js +0 -544
  420. package/node_modules/object-inspect/package-support.json +0 -20
  421. package/node_modules/object-inspect/package.json +0 -105
  422. package/node_modules/object-inspect/readme.markdown +0 -84
  423. package/node_modules/object-inspect/test/bigint.js +0 -58
  424. package/node_modules/object-inspect/test/browser/dom.js +0 -15
  425. package/node_modules/object-inspect/test/circular.js +0 -16
  426. package/node_modules/object-inspect/test/deep.js +0 -12
  427. package/node_modules/object-inspect/test/element.js +0 -53
  428. package/node_modules/object-inspect/test/err.js +0 -48
  429. package/node_modules/object-inspect/test/fakes.js +0 -29
  430. package/node_modules/object-inspect/test/fn.js +0 -76
  431. package/node_modules/object-inspect/test/global.js +0 -17
  432. package/node_modules/object-inspect/test/has.js +0 -15
  433. package/node_modules/object-inspect/test/holes.js +0 -15
  434. package/node_modules/object-inspect/test/indent-option.js +0 -271
  435. package/node_modules/object-inspect/test/inspect.js +0 -139
  436. package/node_modules/object-inspect/test/lowbyte.js +0 -12
  437. package/node_modules/object-inspect/test/number.js +0 -58
  438. package/node_modules/object-inspect/test/quoteStyle.js +0 -26
  439. package/node_modules/object-inspect/test/toStringTag.js +0 -40
  440. package/node_modules/object-inspect/test/undef.js +0 -12
  441. package/node_modules/object-inspect/test/values.js +0 -261
  442. package/node_modules/object-inspect/test-core-js.js +0 -26
  443. package/node_modules/object-inspect/util.inspect.js +0 -1
  444. package/node_modules/on-finished/HISTORY.md +0 -98
  445. package/node_modules/on-finished/LICENSE +0 -23
  446. package/node_modules/on-finished/README.md +0 -162
  447. package/node_modules/on-finished/index.js +0 -234
  448. package/node_modules/on-finished/package.json +0 -39
  449. package/node_modules/once/LICENSE +0 -15
  450. package/node_modules/once/README.md +0 -79
  451. package/node_modules/once/once.js +0 -42
  452. package/node_modules/once/package.json +0 -33
  453. package/node_modules/parseurl/HISTORY.md +0 -58
  454. package/node_modules/parseurl/LICENSE +0 -24
  455. package/node_modules/parseurl/README.md +0 -133
  456. package/node_modules/parseurl/index.js +0 -158
  457. package/node_modules/parseurl/package.json +0 -40
  458. package/node_modules/path-to-regexp/LICENSE +0 -21
  459. package/node_modules/path-to-regexp/Readme.md +0 -224
  460. package/node_modules/path-to-regexp/dist/index.d.ts +0 -147
  461. package/node_modules/path-to-regexp/dist/index.js +0 -431
  462. package/node_modules/path-to-regexp/dist/index.js.map +0 -1
  463. package/node_modules/path-to-regexp/package.json +0 -64
  464. package/node_modules/proxy-addr/HISTORY.md +0 -161
  465. package/node_modules/proxy-addr/LICENSE +0 -22
  466. package/node_modules/proxy-addr/README.md +0 -139
  467. package/node_modules/proxy-addr/index.js +0 -327
  468. package/node_modules/proxy-addr/package.json +0 -47
  469. package/node_modules/qs/.editorconfig +0 -46
  470. package/node_modules/qs/.github/FUNDING.yml +0 -12
  471. package/node_modules/qs/.github/SECURITY.md +0 -11
  472. package/node_modules/qs/.github/THREAT_MODEL.md +0 -78
  473. package/node_modules/qs/.nycrc +0 -13
  474. package/node_modules/qs/CHANGELOG.md +0 -822
  475. package/node_modules/qs/LICENSE.md +0 -29
  476. package/node_modules/qs/README.md +0 -758
  477. package/node_modules/qs/dist/qs.js +0 -141
  478. package/node_modules/qs/eslint.config.mjs +0 -57
  479. package/node_modules/qs/lib/formats.js +0 -23
  480. package/node_modules/qs/lib/index.js +0 -11
  481. package/node_modules/qs/lib/parse.js +0 -403
  482. package/node_modules/qs/lib/stringify.js +0 -363
  483. package/node_modules/qs/lib/utils.js +0 -342
  484. package/node_modules/qs/package.json +0 -94
  485. package/node_modules/qs/test/empty-keys-cases.js +0 -267
  486. package/node_modules/qs/test/parse.js +0 -1703
  487. package/node_modules/qs/test/stringify.js +0 -1448
  488. package/node_modules/qs/test/utils.js +0 -432
  489. package/node_modules/range-parser/HISTORY.md +0 -56
  490. package/node_modules/range-parser/LICENSE +0 -23
  491. package/node_modules/range-parser/README.md +0 -84
  492. package/node_modules/range-parser/index.js +0 -162
  493. package/node_modules/range-parser/package.json +0 -44
  494. package/node_modules/router/HISTORY.md +0 -228
  495. package/node_modules/router/LICENSE +0 -23
  496. package/node_modules/router/README.md +0 -416
  497. package/node_modules/router/index.js +0 -748
  498. package/node_modules/router/lib/layer.js +0 -247
  499. package/node_modules/router/lib/route.js +0 -242
  500. package/node_modules/router/package.json +0 -44
  501. package/node_modules/send/LICENSE +0 -23
  502. package/node_modules/send/README.md +0 -317
  503. package/node_modules/send/index.js +0 -997
  504. package/node_modules/send/package.json +0 -63
  505. package/node_modules/serve-static/LICENSE +0 -25
  506. package/node_modules/serve-static/README.md +0 -253
  507. package/node_modules/serve-static/index.js +0 -208
  508. package/node_modules/serve-static/package.json +0 -44
  509. package/node_modules/side-channel/.editorconfig +0 -9
  510. package/node_modules/side-channel/.eslintrc +0 -12
  511. package/node_modules/side-channel/.github/FUNDING.yml +0 -12
  512. package/node_modules/side-channel/.nycrc +0 -13
  513. package/node_modules/side-channel/CHANGELOG.md +0 -110
  514. package/node_modules/side-channel/LICENSE +0 -21
  515. package/node_modules/side-channel/README.md +0 -61
  516. package/node_modules/side-channel/index.d.ts +0 -14
  517. package/node_modules/side-channel/index.js +0 -43
  518. package/node_modules/side-channel/package.json +0 -85
  519. package/node_modules/side-channel/test/index.js +0 -104
  520. package/node_modules/side-channel/tsconfig.json +0 -9
  521. package/node_modules/side-channel-list/.editorconfig +0 -9
  522. package/node_modules/side-channel-list/.eslintrc +0 -11
  523. package/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  524. package/node_modules/side-channel-list/.nycrc +0 -13
  525. package/node_modules/side-channel-list/CHANGELOG.md +0 -36
  526. package/node_modules/side-channel-list/LICENSE +0 -21
  527. package/node_modules/side-channel-list/README.md +0 -62
  528. package/node_modules/side-channel-list/index.d.ts +0 -13
  529. package/node_modules/side-channel-list/index.js +0 -111
  530. package/node_modules/side-channel-list/list.d.ts +0 -14
  531. package/node_modules/side-channel-list/package.json +0 -77
  532. package/node_modules/side-channel-list/test/index.js +0 -154
  533. package/node_modules/side-channel-list/tsconfig.json +0 -9
  534. package/node_modules/side-channel-map/.editorconfig +0 -9
  535. package/node_modules/side-channel-map/.eslintrc +0 -11
  536. package/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  537. package/node_modules/side-channel-map/.nycrc +0 -13
  538. package/node_modules/side-channel-map/CHANGELOG.md +0 -22
  539. package/node_modules/side-channel-map/LICENSE +0 -21
  540. package/node_modules/side-channel-map/README.md +0 -62
  541. package/node_modules/side-channel-map/index.d.ts +0 -15
  542. package/node_modules/side-channel-map/index.js +0 -68
  543. package/node_modules/side-channel-map/package.json +0 -80
  544. package/node_modules/side-channel-map/test/index.js +0 -114
  545. package/node_modules/side-channel-map/tsconfig.json +0 -9
  546. package/node_modules/side-channel-weakmap/.editorconfig +0 -9
  547. package/node_modules/side-channel-weakmap/.eslintrc +0 -12
  548. package/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  549. package/node_modules/side-channel-weakmap/.nycrc +0 -13
  550. package/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  551. package/node_modules/side-channel-weakmap/LICENSE +0 -21
  552. package/node_modules/side-channel-weakmap/README.md +0 -62
  553. package/node_modules/side-channel-weakmap/index.d.ts +0 -15
  554. package/node_modules/side-channel-weakmap/index.js +0 -84
  555. package/node_modules/side-channel-weakmap/package.json +0 -87
  556. package/node_modules/side-channel-weakmap/test/index.js +0 -114
  557. package/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  558. package/node_modules/type-is/HISTORY.md +0 -292
  559. package/node_modules/type-is/LICENSE +0 -23
  560. package/node_modules/type-is/README.md +0 -198
  561. package/node_modules/type-is/index.js +0 -240
  562. package/node_modules/type-is/package.json +0 -51
  563. package/node_modules/wrappy/LICENSE +0 -15
  564. package/node_modules/wrappy/README.md +0 -36
  565. package/node_modules/wrappy/package.json +0 -29
  566. package/node_modules/wrappy/wrappy.js +0 -33
@@ -1,485 +0,0 @@
1
- "use strict";
2
- /* eslint-disable no-param-reassign */
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
26
- Object.defineProperty(exports, "__esModule", { value: true });
27
- exports.Address4 = void 0;
28
- const common = __importStar(require("./common"));
29
- const constants = __importStar(require("./v4/constants"));
30
- const address_error_1 = require("./address-error");
31
- const isCorrect4 = common.isCorrect(constants.BITS);
32
- /**
33
- * Represents an IPv4 address
34
- * @param {string} address - An IPv4 address string
35
- */
36
- class Address4 {
37
- constructor(address) {
38
- this.groups = constants.GROUPS;
39
- this.parsedAddress = [];
40
- this.parsedSubnet = '';
41
- this.subnet = '/32';
42
- this.subnetMask = 32;
43
- this.v4 = true;
44
- /**
45
- * Returns true if the address is correct, false otherwise
46
- * @returns {Boolean}
47
- */
48
- this.isCorrect = isCorrect4;
49
- /**
50
- * Returns true if the given address is in the subnet of the current address
51
- * @returns {boolean}
52
- */
53
- this.isInSubnet = common.isInSubnet;
54
- this.address = address;
55
- const subnet = constants.RE_SUBNET_STRING.exec(address);
56
- if (subnet) {
57
- this.parsedSubnet = subnet[0].replace('/', '');
58
- this.subnetMask = parseInt(this.parsedSubnet, 10);
59
- this.subnet = `/${this.subnetMask}`;
60
- if (this.subnetMask < 0 || this.subnetMask > constants.BITS) {
61
- throw new address_error_1.AddressError('Invalid subnet mask.');
62
- }
63
- address = address.replace(constants.RE_SUBNET_STRING, '');
64
- }
65
- this.addressMinusSuffix = address;
66
- this.parsedAddress = this.parse(address);
67
- }
68
- /**
69
- * Returns true if the given string is a valid IPv4 address (with optional
70
- * CIDR subnet), false otherwise. Host bits in the subnet portion are
71
- * allowed (e.g. `192.168.1.5/24` is valid); for strict network-address
72
- * validation compare `correctForm()` to `startAddress().correctForm()`,
73
- * or use `networkForm()`.
74
- */
75
- static isValid(address) {
76
- try {
77
- // eslint-disable-next-line no-new
78
- new Address4(address);
79
- return true;
80
- }
81
- catch (e) {
82
- return false;
83
- }
84
- }
85
- /**
86
- * Parses an IPv4 address string into its four octet groups and stores the
87
- * result on `this.parsedAddress`. Called automatically by the constructor;
88
- * you typically don't need to call it directly. Throws `AddressError` if
89
- * the input is not a valid IPv4 address.
90
- */
91
- parse(address) {
92
- const groups = address.split('.');
93
- if (!address.match(constants.RE_ADDRESS)) {
94
- throw new address_error_1.AddressError('Invalid IPv4 address.');
95
- }
96
- return groups;
97
- }
98
- /**
99
- * Returns the address in correct form: octets joined with `.` and any
100
- * leading zeros stripped (e.g. `192.168.1.1`). For IPv4 this matches the
101
- * canonical dotted-decimal representation.
102
- */
103
- correctForm() {
104
- return this.parsedAddress.map((part) => parseInt(part, 10)).join('.');
105
- }
106
- /**
107
- * Construct an `Address4` from an address and a dotted-decimal subnet
108
- * mask given as separate strings (e.g. as returned by Node's
109
- * `os.networkInterfaces()`). Throws `AddressError` if the mask is
110
- * non-contiguous (e.g. `255.0.255.0`).
111
- * @example
112
- * var address = Address4.fromAddressAndMask('192.168.1.1', '255.255.255.0');
113
- * address.subnetMask; // 24
114
- */
115
- static fromAddressAndMask(address, mask) {
116
- const bits = common.prefixLengthFromMask(new Address4(mask).bigInt(), constants.BITS);
117
- return new Address4(`${address}/${bits}`);
118
- }
119
- /**
120
- * Construct an `Address4` from an address and a Cisco-style wildcard mask
121
- * given as separate strings (e.g. `0.0.0.255` for a `/24`). The wildcard
122
- * mask is the bitwise inverse of the subnet mask. Throws `AddressError`
123
- * if the mask is non-contiguous (e.g. `0.255.0.255`).
124
- * @example
125
- * var address = Address4.fromAddressAndWildcardMask('10.0.0.1', '0.0.0.255');
126
- * address.subnetMask; // 24
127
- */
128
- static fromAddressAndWildcardMask(address, wildcardMask) {
129
- const wildcard = new Address4(wildcardMask).bigInt();
130
- const allOnes = (BigInt(1) << BigInt(constants.BITS)) - BigInt(1);
131
- // eslint-disable-next-line no-bitwise
132
- const mask = wildcard ^ allOnes;
133
- const bits = common.prefixLengthFromMask(mask, constants.BITS);
134
- return new Address4(`${address}/${bits}`);
135
- }
136
- /**
137
- * Construct an `Address4` from a wildcard pattern with trailing `*`
138
- * octets. The number of trailing wildcards determines the prefix
139
- * length: each `*` represents 8 bits.
140
- *
141
- * Only trailing whole-octet wildcards are supported. Partial-octet
142
- * wildcards (e.g. `192.168.0.1*`) and interior wildcards (e.g.
143
- * `192.*.0.1`) throw `AddressError`.
144
- * @example
145
- * Address4.fromWildcard('192.168.0.*').subnet; // '/24'
146
- * Address4.fromWildcard('192.168.*.*').subnet; // '/16'
147
- * Address4.fromWildcard('*.*.*.*').subnet; // '/0'
148
- */
149
- static fromWildcard(input) {
150
- const groups = input.split('.');
151
- if (groups.length !== constants.GROUPS) {
152
- throw new address_error_1.AddressError('Wildcard pattern must have 4 octets');
153
- }
154
- let firstWildcard = -1;
155
- for (let i = 0; i < groups.length; i++) {
156
- if (groups[i] === '*') {
157
- if (firstWildcard === -1) {
158
- firstWildcard = i;
159
- }
160
- }
161
- else if (firstWildcard !== -1) {
162
- throw new address_error_1.AddressError('Wildcard `*` must only appear in trailing octets (e.g. `192.168.0.*`)');
163
- }
164
- }
165
- const trailing = firstWildcard === -1 ? 0 : groups.length - firstWildcard;
166
- const replaced = groups.map((g) => (g === '*' ? '0' : g));
167
- const subnetBits = constants.BITS - trailing * 8;
168
- return new Address4(`${replaced.join('.')}/${subnetBits}`);
169
- }
170
- /**
171
- * Converts a hex string to an IPv4 address object. Accepts 8 hex digits
172
- * with optional `:` separators (e.g. `'7f000001'` or `'7f:00:00:01'`).
173
- * Throws `AddressError` for any other length or for non-hex characters.
174
- * @param {string} hex - a hex string to convert
175
- * @returns {Address4}
176
- */
177
- static fromHex(hex) {
178
- const stripped = hex.replace(/:/g, '');
179
- if (!/^[0-9a-fA-F]{8}$/.test(stripped)) {
180
- throw new address_error_1.AddressError('IPv4 hex must be exactly 8 hex digits');
181
- }
182
- const groups = [];
183
- for (let i = 0; i < 8; i += 2) {
184
- groups.push(parseInt(stripped.slice(i, i + 2), 16));
185
- }
186
- return new Address4(groups.join('.'));
187
- }
188
- /**
189
- * Converts an integer into a IPv4 address object. The integer must be a
190
- * non-negative safe integer in the range `[0, 2**32 - 1]`; otherwise
191
- * `AddressError` is thrown.
192
- * @param {integer} integer - a number to convert
193
- * @returns {Address4}
194
- */
195
- static fromInteger(integer) {
196
- if (!Number.isInteger(integer) || integer < 0 || integer > 0xffffffff) {
197
- throw new address_error_1.AddressError('IPv4 integer must be in the range 0 to 2**32 - 1');
198
- }
199
- return Address4.fromHex(integer.toString(16).padStart(8, '0'));
200
- }
201
- /**
202
- * Return an address from in-addr.arpa form
203
- * @param {string} arpaFormAddress - an 'in-addr.arpa' form ipv4 address
204
- * @returns {Adress4}
205
- * @example
206
- * var address = Address4.fromArpa(42.2.0.192.in-addr.arpa.)
207
- * address.correctForm(); // '192.0.2.42'
208
- */
209
- static fromArpa(arpaFormAddress) {
210
- // remove ending ".in-addr.arpa." or just "."
211
- const leader = arpaFormAddress.replace(/(\.in-addr\.arpa)?\.$/, '');
212
- const address = leader.split('.').reverse().join('.');
213
- return new Address4(address);
214
- }
215
- /**
216
- * Converts an IPv4 address object to a hex string
217
- * @returns {String}
218
- */
219
- toHex() {
220
- return this.parsedAddress.map((part) => common.stringToPaddedHex(part)).join(':');
221
- }
222
- /**
223
- * Converts an IPv4 address object to an array of bytes.
224
- *
225
- * To get a Node.js `Buffer`, wrap the result: `Buffer.from(address.toArray())`.
226
- * @returns {Array}
227
- */
228
- toArray() {
229
- return this.parsedAddress.map((part) => parseInt(part, 10));
230
- }
231
- /**
232
- * Converts an IPv4 address object to an IPv6 address group
233
- * @returns {String}
234
- */
235
- toGroup6() {
236
- const output = [];
237
- let i;
238
- for (i = 0; i < constants.GROUPS; i += 2) {
239
- output.push(`${common.stringToPaddedHex(this.parsedAddress[i])}${common.stringToPaddedHex(this.parsedAddress[i + 1])}`);
240
- }
241
- return output.join(':');
242
- }
243
- /**
244
- * Returns the address as a `bigint`
245
- * @returns {bigint}
246
- */
247
- bigInt() {
248
- return BigInt(`0x${this.parsedAddress.map((n) => common.stringToPaddedHex(n)).join('')}`);
249
- }
250
- /**
251
- * Helper function getting start address.
252
- * @returns {bigint}
253
- */
254
- _startAddress() {
255
- return BigInt(`0b${this.mask() + '0'.repeat(constants.BITS - this.subnetMask)}`);
256
- }
257
- /**
258
- * The first address in the range given by this address' subnet.
259
- * Often referred to as the Network Address.
260
- * @returns {Address4}
261
- */
262
- startAddress() {
263
- return Address4.fromBigInt(this._startAddress());
264
- }
265
- /**
266
- * The first host address in the range given by this address's subnet ie
267
- * the first address after the Network Address
268
- * @returns {Address4}
269
- */
270
- startAddressExclusive() {
271
- const adjust = BigInt('1');
272
- return Address4.fromBigInt(this._startAddress() + adjust);
273
- }
274
- /**
275
- * Helper function getting end address.
276
- * @returns {bigint}
277
- */
278
- _endAddress() {
279
- return BigInt(`0b${this.mask() + '1'.repeat(constants.BITS - this.subnetMask)}`);
280
- }
281
- /**
282
- * The last address in the range given by this address' subnet
283
- * Often referred to as the Broadcast
284
- * @returns {Address4}
285
- */
286
- endAddress() {
287
- return Address4.fromBigInt(this._endAddress());
288
- }
289
- /**
290
- * The last host address in the range given by this address's subnet ie
291
- * the last address prior to the Broadcast Address
292
- * @returns {Address4}
293
- */
294
- endAddressExclusive() {
295
- const adjust = BigInt('1');
296
- return Address4.fromBigInt(this._endAddress() - adjust);
297
- }
298
- /**
299
- * The dotted-decimal form of the subnet mask, e.g. `255.255.240.0` for
300
- * a `/20`. Returns an `Address4`; call `.correctForm()` for the string.
301
- * @returns {Address4}
302
- */
303
- subnetMaskAddress() {
304
- return Address4.fromBigInt(BigInt(`0b${'1'.repeat(this.subnetMask)}${'0'.repeat(constants.BITS - this.subnetMask)}`));
305
- }
306
- /**
307
- * The Cisco-style wildcard mask, e.g. `0.0.0.255` for a `/24`. This is
308
- * the bitwise inverse of `subnetMaskAddress()`. Returns an `Address4`;
309
- * call `.correctForm()` for the string.
310
- * @returns {Address4}
311
- */
312
- wildcardMask() {
313
- return Address4.fromBigInt(BigInt(`0b${'0'.repeat(this.subnetMask)}${'1'.repeat(constants.BITS - this.subnetMask)}`));
314
- }
315
- /**
316
- * The network address in CIDR string form, e.g. `192.168.1.0/24` for
317
- * `192.168.1.5/24`. For an address with no explicit subnet the prefix is
318
- * `/32`, e.g. `networkForm()` on `192.168.1.5` returns `192.168.1.5/32`.
319
- * @returns {string}
320
- */
321
- networkForm() {
322
- return `${this.startAddress().correctForm()}/${this.subnetMask}`;
323
- }
324
- /**
325
- * Converts a BigInt to a v4 address object. The value must be in the
326
- * range `[0, 2**32 - 1]`; otherwise `AddressError` is thrown.
327
- * @param {bigint} bigInt - a BigInt to convert
328
- * @returns {Address4}
329
- */
330
- static fromBigInt(bigInt) {
331
- if (bigInt < 0n || bigInt > 0xffffffffn) {
332
- throw new address_error_1.AddressError('IPv4 BigInt must be in the range 0 to 2**32 - 1');
333
- }
334
- return Address4.fromHex(bigInt.toString(16).padStart(8, '0'));
335
- }
336
- /**
337
- * Convert a byte array to an Address4 object.
338
- *
339
- * To convert from a Node.js `Buffer`, spread it: `Address4.fromByteArray([...buf])`.
340
- * @param {Array<number>} bytes - an array of 4 bytes (0-255)
341
- * @returns {Address4}
342
- */
343
- static fromByteArray(bytes) {
344
- if (bytes.length !== 4) {
345
- throw new address_error_1.AddressError('IPv4 addresses require exactly 4 bytes');
346
- }
347
- // Validate that all bytes are within valid range (0-255)
348
- for (let i = 0; i < bytes.length; i++) {
349
- if (!Number.isInteger(bytes[i]) || bytes[i] < 0 || bytes[i] > 255) {
350
- throw new address_error_1.AddressError('All bytes must be integers between 0 and 255');
351
- }
352
- }
353
- return this.fromUnsignedByteArray(bytes);
354
- }
355
- /**
356
- * Convert an unsigned byte array to an Address4 object
357
- * @param {Array<number>} bytes - an array of 4 unsigned bytes (0-255)
358
- * @returns {Address4}
359
- */
360
- static fromUnsignedByteArray(bytes) {
361
- if (bytes.length !== 4) {
362
- throw new address_error_1.AddressError('IPv4 addresses require exactly 4 bytes');
363
- }
364
- const address = bytes.join('.');
365
- return new Address4(address);
366
- }
367
- /**
368
- * Returns the first n bits of the address, defaulting to the
369
- * subnet mask
370
- * @returns {String}
371
- */
372
- mask(mask) {
373
- if (mask === undefined) {
374
- mask = this.subnetMask;
375
- }
376
- return this.getBitsBase2(0, mask);
377
- }
378
- /**
379
- * Returns the bits in the given range as a base-2 string
380
- * @returns {string}
381
- */
382
- getBitsBase2(start, end) {
383
- return this.binaryZeroPad().slice(start, end);
384
- }
385
- /**
386
- * Return the reversed ip6.arpa form of the address
387
- * @param {Object} options
388
- * @param {boolean} options.omitSuffix - omit the "in-addr.arpa" suffix
389
- * @returns {String}
390
- */
391
- reverseForm(options) {
392
- if (!options) {
393
- options = {};
394
- }
395
- const reversed = this.correctForm().split('.').reverse().join('.');
396
- if (options.omitSuffix) {
397
- return reversed;
398
- }
399
- return `${reversed}.in-addr.arpa.`;
400
- }
401
- /**
402
- * Returns true if the given address is a multicast address
403
- * @returns {boolean}
404
- */
405
- isMulticast() {
406
- return this.isInSubnet(MULTICAST_V4);
407
- }
408
- /**
409
- * Returns true if the address is in one of the [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918) private address ranges (`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`).
410
- * @returns {boolean}
411
- */
412
- isPrivate() {
413
- return PRIVATE_V4.some((subnet) => this.isInSubnet(subnet));
414
- }
415
- /**
416
- * Returns true if the address is in the loopback range `127.0.0.0/8` ([RFC 1122](https://datatracker.ietf.org/doc/html/rfc1122)).
417
- * @returns {boolean}
418
- */
419
- isLoopback() {
420
- return this.isInSubnet(LOOPBACK_V4);
421
- }
422
- /**
423
- * Returns true if the address is in the link-local range `169.254.0.0/16` ([RFC 3927](https://datatracker.ietf.org/doc/html/rfc3927)).
424
- * @returns {boolean}
425
- */
426
- isLinkLocal() {
427
- return this.isInSubnet(LINK_LOCAL_V4);
428
- }
429
- /**
430
- * Returns true if the address is the unspecified address `0.0.0.0`.
431
- * @returns {boolean}
432
- */
433
- isUnspecified() {
434
- return this.isInSubnet(UNSPECIFIED_V4);
435
- }
436
- /**
437
- * Returns true if the address is the limited broadcast address `255.255.255.255` ([RFC 919](https://datatracker.ietf.org/doc/html/rfc919)).
438
- * @returns {boolean}
439
- */
440
- isBroadcast() {
441
- return this.isInSubnet(BROADCAST_V4);
442
- }
443
- /**
444
- * Returns true if the address is in the carrier-grade NAT range `100.64.0.0/10` ([RFC 6598](https://datatracker.ietf.org/doc/html/rfc6598)).
445
- * @returns {boolean}
446
- */
447
- isCGNAT() {
448
- return this.isInSubnet(CGNAT_V4);
449
- }
450
- /**
451
- * Returns a zero-padded base-2 string representation of the address
452
- * @returns {string}
453
- */
454
- binaryZeroPad() {
455
- if (this._binaryZeroPad === undefined) {
456
- this._binaryZeroPad = this.bigInt().toString(2).padStart(constants.BITS, '0');
457
- }
458
- return this._binaryZeroPad;
459
- }
460
- /**
461
- * Groups an IPv4 address for inclusion at the end of an IPv6 address
462
- * @returns {String}
463
- */
464
- groupForV6() {
465
- const segments = this.parsedAddress;
466
- return this.address.replace(constants.RE_ADDRESS, `<span class="hover-group group-v4 group-6">${segments
467
- .slice(0, 2)
468
- .join('.')}</span>.<span class="hover-group group-v4 group-7">${segments
469
- .slice(2, 4)
470
- .join('.')}</span>`);
471
- }
472
- }
473
- exports.Address4 = Address4;
474
- const MULTICAST_V4 = new Address4('224.0.0.0/4');
475
- const PRIVATE_V4 = [
476
- new Address4('10.0.0.0/8'),
477
- new Address4('172.16.0.0/12'),
478
- new Address4('192.168.0.0/16'),
479
- ];
480
- const LOOPBACK_V4 = new Address4('127.0.0.0/8');
481
- const LINK_LOCAL_V4 = new Address4('169.254.0.0/16');
482
- const UNSPECIFIED_V4 = new Address4('0.0.0.0/32');
483
- const BROADCAST_V4 = new Address4('255.255.255.255/32');
484
- const CGNAT_V4 = new Address4('100.64.0.0/10');
485
- //# sourceMappingURL=ipv4.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ipv4.js","sourceRoot":"","sources":["../src/ipv4.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n\nimport * as common from './common';\nimport * as constants from './v4/constants';\nimport { AddressError } from './address-error';\n\nconst isCorrect4 = common.isCorrect(constants.BITS);\n\n/**\n * Represents an IPv4 address\n * @param {string} address - An IPv4 address string\n */\nexport class Address4 {\n address: string;\n addressMinusSuffix?: string;\n groups: number = constants.GROUPS;\n parsedAddress: string[] = [];\n parsedSubnet: string = '';\n subnet: string = '/32';\n subnetMask: number = 32;\n v4: boolean = true;\n private _binaryZeroPad?: string;\n\n constructor(address: string) {\n this.address = address;\n\n const subnet = constants.RE_SUBNET_STRING.exec(address);\n\n if (subnet) {\n this.parsedSubnet = subnet[0].replace('/', '');\n this.subnetMask = parseInt(this.parsedSubnet, 10);\n this.subnet = `/${this.subnetMask}`;\n\n if (this.subnetMask < 0 || this.subnetMask > constants.BITS) {\n throw new AddressError('Invalid subnet mask.');\n }\n\n address = address.replace(constants.RE_SUBNET_STRING, '');\n }\n\n this.addressMinusSuffix = address;\n\n this.parsedAddress = this.parse(address);\n }\n\n /**\n * Returns true if the given string is a valid IPv4 address (with optional\n * CIDR subnet), false otherwise. Host bits in the subnet portion are\n * allowed (e.g. `192.168.1.5/24` is valid); for strict network-address\n * validation compare `correctForm()` to `startAddress().correctForm()`,\n * or use `networkForm()`.\n */\n static isValid(address: string): boolean {\n try {\n // eslint-disable-next-line no-new\n new Address4(address);\n\n return true;\n } catch (e) {\n return false;\n }\n }\n\n /**\n * Parses an IPv4 address string into its four octet groups and stores the\n * result on `this.parsedAddress`. Called automatically by the constructor;\n * you typically don't need to call it directly. Throws `AddressError` if\n * the input is not a valid IPv4 address.\n */\n parse(address: string) {\n const groups = address.split('.');\n\n if (!address.match(constants.RE_ADDRESS)) {\n throw new AddressError('Invalid IPv4 address.');\n }\n\n return groups;\n }\n\n /**\n * Returns the address in correct form: octets joined with `.` and any\n * leading zeros stripped (e.g. `192.168.1.1`). For IPv4 this matches the\n * canonical dotted-decimal representation.\n */\n correctForm(): string {\n return this.parsedAddress.map((part) => parseInt(part, 10)).join('.');\n }\n\n /**\n * Returns true if the address is correct, false otherwise\n * @returns {Boolean}\n */\n isCorrect = isCorrect4;\n\n /**\n * Construct an `Address4` from an address and a dotted-decimal subnet\n * mask given as separate strings (e.g. as returned by Node's\n * `os.networkInterfaces()`). Throws `AddressError` if the mask is\n * non-contiguous (e.g. `255.0.255.0`).\n * @example\n * var address = Address4.fromAddressAndMask('192.168.1.1', '255.255.255.0');\n * address.subnetMask; // 24\n */\n static fromAddressAndMask(address: string, mask: string): Address4 {\n const bits = common.prefixLengthFromMask(new Address4(mask).bigInt(), constants.BITS);\n return new Address4(`${address}/${bits}`);\n }\n\n /**\n * Construct an `Address4` from an address and a Cisco-style wildcard mask\n * given as separate strings (e.g. `0.0.0.255` for a `/24`). The wildcard\n * mask is the bitwise inverse of the subnet mask. Throws `AddressError`\n * if the mask is non-contiguous (e.g. `0.255.0.255`).\n * @example\n * var address = Address4.fromAddressAndWildcardMask('10.0.0.1', '0.0.0.255');\n * address.subnetMask; // 24\n */\n static fromAddressAndWildcardMask(address: string, wildcardMask: string): Address4 {\n const wildcard = new Address4(wildcardMask).bigInt();\n const allOnes = (BigInt(1) << BigInt(constants.BITS)) - BigInt(1);\n // eslint-disable-next-line no-bitwise\n const mask = wildcard ^ allOnes;\n const bits = common.prefixLengthFromMask(mask, constants.BITS);\n return new Address4(`${address}/${bits}`);\n }\n\n /**\n * Construct an `Address4` from a wildcard pattern with trailing `*`\n * octets. The number of trailing wildcards determines the prefix\n * length: each `*` represents 8 bits.\n *\n * Only trailing whole-octet wildcards are supported. Partial-octet\n * wildcards (e.g. `192.168.0.1*`) and interior wildcards (e.g.\n * `192.*.0.1`) throw `AddressError`.\n * @example\n * Address4.fromWildcard('192.168.0.*').subnet; // '/24'\n * Address4.fromWildcard('192.168.*.*').subnet; // '/16'\n * Address4.fromWildcard('*.*.*.*').subnet; // '/0'\n */\n static fromWildcard(input: string): Address4 {\n const groups = input.split('.');\n\n if (groups.length !== constants.GROUPS) {\n throw new AddressError('Wildcard pattern must have 4 octets');\n }\n\n let firstWildcard = -1;\n\n for (let i = 0; i < groups.length; i++) {\n if (groups[i] === '*') {\n if (firstWildcard === -1) {\n firstWildcard = i;\n }\n } else if (firstWildcard !== -1) {\n throw new AddressError(\n 'Wildcard `*` must only appear in trailing octets (e.g. `192.168.0.*`)',\n );\n }\n }\n\n const trailing = firstWildcard === -1 ? 0 : groups.length - firstWildcard;\n const replaced = groups.map((g) => (g === '*' ? '0' : g));\n const subnetBits = constants.BITS - trailing * 8;\n\n return new Address4(`${replaced.join('.')}/${subnetBits}`);\n }\n\n /**\n * Converts a hex string to an IPv4 address object. Accepts 8 hex digits\n * with optional `:` separators (e.g. `'7f000001'` or `'7f:00:00:01'`).\n * Throws `AddressError` for any other length or for non-hex characters.\n * @param {string} hex - a hex string to convert\n * @returns {Address4}\n */\n static fromHex(hex: string): Address4 {\n const stripped = hex.replace(/:/g, '');\n\n if (!/^[0-9a-fA-F]{8}$/.test(stripped)) {\n throw new AddressError('IPv4 hex must be exactly 8 hex digits');\n }\n\n const groups = [];\n\n for (let i = 0; i < 8; i += 2) {\n groups.push(parseInt(stripped.slice(i, i + 2), 16));\n }\n\n return new Address4(groups.join('.'));\n }\n\n /**\n * Converts an integer into a IPv4 address object. The integer must be a\n * non-negative safe integer in the range `[0, 2**32 - 1]`; otherwise\n * `AddressError` is thrown.\n * @param {integer} integer - a number to convert\n * @returns {Address4}\n */\n static fromInteger(integer: number): Address4 {\n if (!Number.isInteger(integer) || integer < 0 || integer > 0xffffffff) {\n throw new AddressError('IPv4 integer must be in the range 0 to 2**32 - 1');\n }\n\n return Address4.fromHex(integer.toString(16).padStart(8, '0'));\n }\n\n /**\n * Return an address from in-addr.arpa form\n * @param {string} arpaFormAddress - an 'in-addr.arpa' form ipv4 address\n * @returns {Adress4}\n * @example\n * var address = Address4.fromArpa(42.2.0.192.in-addr.arpa.)\n * address.correctForm(); // '192.0.2.42'\n */\n static fromArpa(arpaFormAddress: string): Address4 {\n // remove ending \".in-addr.arpa.\" or just \".\"\n const leader = arpaFormAddress.replace(/(\\.in-addr\\.arpa)?\\.$/, '');\n\n const address = leader.split('.').reverse().join('.');\n\n return new Address4(address);\n }\n\n /**\n * Converts an IPv4 address object to a hex string\n * @returns {String}\n */\n toHex(): string {\n return this.parsedAddress.map((part) => common.stringToPaddedHex(part)).join(':');\n }\n\n /**\n * Converts an IPv4 address object to an array of bytes.\n *\n * To get a Node.js `Buffer`, wrap the result: `Buffer.from(address.toArray())`.\n * @returns {Array}\n */\n toArray(): number[] {\n return this.parsedAddress.map((part) => parseInt(part, 10));\n }\n\n /**\n * Converts an IPv4 address object to an IPv6 address group\n * @returns {String}\n */\n toGroup6(): string {\n const output = [];\n let i;\n\n for (i = 0; i < constants.GROUPS; i += 2) {\n output.push(\n `${common.stringToPaddedHex(this.parsedAddress[i])}${common.stringToPaddedHex(\n this.parsedAddress[i + 1],\n )}`,\n );\n }\n\n return output.join(':');\n }\n\n /**\n * Returns the address as a `bigint`\n * @returns {bigint}\n */\n bigInt(): bigint {\n return BigInt(`0x${this.parsedAddress.map((n) => common.stringToPaddedHex(n)).join('')}`);\n }\n\n /**\n * Helper function getting start address.\n * @returns {bigint}\n */\n _startAddress(): bigint {\n return BigInt(`0b${this.mask() + '0'.repeat(constants.BITS - this.subnetMask)}`);\n }\n\n /**\n * The first address in the range given by this address' subnet.\n * Often referred to as the Network Address.\n * @returns {Address4}\n */\n startAddress(): Address4 {\n return Address4.fromBigInt(this._startAddress());\n }\n\n /**\n * The first host address in the range given by this address's subnet ie\n * the first address after the Network Address\n * @returns {Address4}\n */\n startAddressExclusive(): Address4 {\n const adjust = BigInt('1');\n return Address4.fromBigInt(this._startAddress() + adjust);\n }\n\n /**\n * Helper function getting end address.\n * @returns {bigint}\n */\n _endAddress(): bigint {\n return BigInt(`0b${this.mask() + '1'.repeat(constants.BITS - this.subnetMask)}`);\n }\n\n /**\n * The last address in the range given by this address' subnet\n * Often referred to as the Broadcast\n * @returns {Address4}\n */\n endAddress(): Address4 {\n return Address4.fromBigInt(this._endAddress());\n }\n\n /**\n * The last host address in the range given by this address's subnet ie\n * the last address prior to the Broadcast Address\n * @returns {Address4}\n */\n endAddressExclusive(): Address4 {\n const adjust = BigInt('1');\n return Address4.fromBigInt(this._endAddress() - adjust);\n }\n\n /**\n * The dotted-decimal form of the subnet mask, e.g. `255.255.240.0` for\n * a `/20`. Returns an `Address4`; call `.correctForm()` for the string.\n * @returns {Address4}\n */\n subnetMaskAddress(): Address4 {\n return Address4.fromBigInt(\n BigInt(`0b${'1'.repeat(this.subnetMask)}${'0'.repeat(constants.BITS - this.subnetMask)}`),\n );\n }\n\n /**\n * The Cisco-style wildcard mask, e.g. `0.0.0.255` for a `/24`. This is\n * the bitwise inverse of `subnetMaskAddress()`. Returns an `Address4`;\n * call `.correctForm()` for the string.\n * @returns {Address4}\n */\n wildcardMask(): Address4 {\n return Address4.fromBigInt(\n BigInt(`0b${'0'.repeat(this.subnetMask)}${'1'.repeat(constants.BITS - this.subnetMask)}`),\n );\n }\n\n /**\n * The network address in CIDR string form, e.g. `192.168.1.0/24` for\n * `192.168.1.5/24`. For an address with no explicit subnet the prefix is\n * `/32`, e.g. `networkForm()` on `192.168.1.5` returns `192.168.1.5/32`.\n * @returns {string}\n */\n networkForm(): string {\n return `${this.startAddress().correctForm()}/${this.subnetMask}`;\n }\n\n /**\n * Converts a BigInt to a v4 address object. The value must be in the\n * range `[0, 2**32 - 1]`; otherwise `AddressError` is thrown.\n * @param {bigint} bigInt - a BigInt to convert\n * @returns {Address4}\n */\n static fromBigInt(bigInt: bigint): Address4 {\n if (bigInt < 0n || bigInt > 0xffffffffn) {\n throw new AddressError('IPv4 BigInt must be in the range 0 to 2**32 - 1');\n }\n\n return Address4.fromHex(bigInt.toString(16).padStart(8, '0'));\n }\n\n /**\n * Convert a byte array to an Address4 object.\n *\n * To convert from a Node.js `Buffer`, spread it: `Address4.fromByteArray([...buf])`.\n * @param {Array<number>} bytes - an array of 4 bytes (0-255)\n * @returns {Address4}\n */\n static fromByteArray(bytes: Array<number>): Address4 {\n if (bytes.length !== 4) {\n throw new AddressError('IPv4 addresses require exactly 4 bytes');\n }\n\n // Validate that all bytes are within valid range (0-255)\n for (let i = 0; i < bytes.length; i++) {\n if (!Number.isInteger(bytes[i]) || bytes[i] < 0 || bytes[i] > 255) {\n throw new AddressError('All bytes must be integers between 0 and 255');\n }\n }\n\n return this.fromUnsignedByteArray(bytes);\n }\n\n /**\n * Convert an unsigned byte array to an Address4 object\n * @param {Array<number>} bytes - an array of 4 unsigned bytes (0-255)\n * @returns {Address4}\n */\n static fromUnsignedByteArray(bytes: Array<number>): Address4 {\n if (bytes.length !== 4) {\n throw new AddressError('IPv4 addresses require exactly 4 bytes');\n }\n\n const address = bytes.join('.');\n return new Address4(address);\n }\n\n /**\n * Returns the first n bits of the address, defaulting to the\n * subnet mask\n * @returns {String}\n */\n mask(mask?: number): string {\n if (mask === undefined) {\n mask = this.subnetMask;\n }\n\n return this.getBitsBase2(0, mask);\n }\n\n /**\n * Returns the bits in the given range as a base-2 string\n * @returns {string}\n */\n getBitsBase2(start: number, end: number): string {\n return this.binaryZeroPad().slice(start, end);\n }\n\n /**\n * Return the reversed ip6.arpa form of the address\n * @param {Object} options\n * @param {boolean} options.omitSuffix - omit the \"in-addr.arpa\" suffix\n * @returns {String}\n */\n reverseForm(options?: common.ReverseFormOptions): string {\n if (!options) {\n options = {};\n }\n\n const reversed = this.correctForm().split('.').reverse().join('.');\n\n if (options.omitSuffix) {\n return reversed;\n }\n\n return `${reversed}.in-addr.arpa.`;\n }\n\n /**\n * Returns true if the given address is in the subnet of the current address\n * @returns {boolean}\n */\n isInSubnet = common.isInSubnet;\n\n /**\n * Returns true if the given address is a multicast address\n * @returns {boolean}\n */\n isMulticast(): boolean {\n return this.isInSubnet(MULTICAST_V4);\n }\n\n /**\n * Returns true if the address is in one of the [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918) private address ranges (`10.0.0.0/8`, `172.16.0.0/12`, `192.168.0.0/16`).\n * @returns {boolean}\n */\n isPrivate(): boolean {\n return PRIVATE_V4.some((subnet) => this.isInSubnet(subnet));\n }\n\n /**\n * Returns true if the address is in the loopback range `127.0.0.0/8` ([RFC 1122](https://datatracker.ietf.org/doc/html/rfc1122)).\n * @returns {boolean}\n */\n isLoopback(): boolean {\n return this.isInSubnet(LOOPBACK_V4);\n }\n\n /**\n * Returns true if the address is in the link-local range `169.254.0.0/16` ([RFC 3927](https://datatracker.ietf.org/doc/html/rfc3927)).\n * @returns {boolean}\n */\n isLinkLocal(): boolean {\n return this.isInSubnet(LINK_LOCAL_V4);\n }\n\n /**\n * Returns true if the address is the unspecified address `0.0.0.0`.\n * @returns {boolean}\n */\n isUnspecified(): boolean {\n return this.isInSubnet(UNSPECIFIED_V4);\n }\n\n /**\n * Returns true if the address is the limited broadcast address `255.255.255.255` ([RFC 919](https://datatracker.ietf.org/doc/html/rfc919)).\n * @returns {boolean}\n */\n isBroadcast(): boolean {\n return this.isInSubnet(BROADCAST_V4);\n }\n\n /**\n * Returns true if the address is in the carrier-grade NAT range `100.64.0.0/10` ([RFC 6598](https://datatracker.ietf.org/doc/html/rfc6598)).\n * @returns {boolean}\n */\n isCGNAT(): boolean {\n return this.isInSubnet(CGNAT_V4);\n }\n\n /**\n * Returns a zero-padded base-2 string representation of the address\n * @returns {string}\n */\n binaryZeroPad(): string {\n if (this._binaryZeroPad === undefined) {\n this._binaryZeroPad = this.bigInt().toString(2).padStart(constants.BITS, '0');\n }\n return this._binaryZeroPad;\n }\n\n /**\n * Groups an IPv4 address for inclusion at the end of an IPv6 address\n * @returns {String}\n */\n groupForV6(): string {\n const segments = this.parsedAddress;\n\n return this.address.replace(\n constants.RE_ADDRESS,\n `<span class=\"hover-group group-v4 group-6\">${segments\n .slice(0, 2)\n .join('.')}</span>.<span class=\"hover-group group-v4 group-7\">${segments\n .slice(2, 4)\n .join('.')}</span>`,\n );\n }\n}\n\nconst MULTICAST_V4 = new Address4('224.0.0.0/4');\nconst PRIVATE_V4 = [\n new Address4('10.0.0.0/8'),\n new Address4('172.16.0.0/12'),\n new Address4('192.168.0.0/16'),\n];\nconst LOOPBACK_V4 = new Address4('127.0.0.0/8');\nconst LINK_LOCAL_V4 = new Address4('169.254.0.0/16');\nconst UNSPECIFIED_V4 = new Address4('0.0.0.0/32');\nconst BROADCAST_V4 = new Address4('255.255.255.255/32');\nconst CGNAT_V4 = new Address4('100.64.0.0/10');\n"]}