noodleseed-cli 0.1.15 → 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 (558) hide show
  1. package/dist/cli.js +3 -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 +3 -3
  28. package/node_modules/@noodle-borg/connector-defs/node_modules/.bin/yaml +3 -3
  29. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.d.ts.map +1 -1
  30. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js +60 -3
  31. package/node_modules/@noodle-borg/protocol/dist/widget/bootstrap.js.map +1 -1
  32. package/node_modules/@noodle-borg/service/package.json +0 -1
  33. package/node_modules/cors/package.json +0 -1
  34. package/node_modules/cross-spawn/node_modules/.bin/node-which +3 -3
  35. package/package.json +1 -56
  36. package/node_modules/accepts/HISTORY.md +0 -250
  37. package/node_modules/accepts/LICENSE +0 -23
  38. package/node_modules/accepts/README.md +0 -140
  39. package/node_modules/accepts/index.js +0 -238
  40. package/node_modules/accepts/package.json +0 -47
  41. package/node_modules/body-parser/LICENSE +0 -23
  42. package/node_modules/body-parser/README.md +0 -494
  43. package/node_modules/body-parser/index.js +0 -71
  44. package/node_modules/body-parser/lib/read.js +0 -247
  45. package/node_modules/body-parser/lib/types/json.js +0 -158
  46. package/node_modules/body-parser/lib/types/raw.js +0 -42
  47. package/node_modules/body-parser/lib/types/text.js +0 -36
  48. package/node_modules/body-parser/lib/types/urlencoded.js +0 -142
  49. package/node_modules/body-parser/lib/utils.js +0 -98
  50. package/node_modules/body-parser/package.json +0 -52
  51. package/node_modules/call-bind-apply-helpers/.eslintrc +0 -17
  52. package/node_modules/call-bind-apply-helpers/.github/FUNDING.yml +0 -12
  53. package/node_modules/call-bind-apply-helpers/.nycrc +0 -9
  54. package/node_modules/call-bind-apply-helpers/CHANGELOG.md +0 -30
  55. package/node_modules/call-bind-apply-helpers/LICENSE +0 -21
  56. package/node_modules/call-bind-apply-helpers/README.md +0 -62
  57. package/node_modules/call-bind-apply-helpers/actualApply.d.ts +0 -1
  58. package/node_modules/call-bind-apply-helpers/actualApply.js +0 -10
  59. package/node_modules/call-bind-apply-helpers/applyBind.d.ts +0 -19
  60. package/node_modules/call-bind-apply-helpers/applyBind.js +0 -10
  61. package/node_modules/call-bind-apply-helpers/functionApply.d.ts +0 -1
  62. package/node_modules/call-bind-apply-helpers/functionApply.js +0 -4
  63. package/node_modules/call-bind-apply-helpers/functionCall.d.ts +0 -1
  64. package/node_modules/call-bind-apply-helpers/functionCall.js +0 -4
  65. package/node_modules/call-bind-apply-helpers/index.d.ts +0 -64
  66. package/node_modules/call-bind-apply-helpers/index.js +0 -15
  67. package/node_modules/call-bind-apply-helpers/package.json +0 -85
  68. package/node_modules/call-bind-apply-helpers/reflectApply.d.ts +0 -3
  69. package/node_modules/call-bind-apply-helpers/reflectApply.js +0 -4
  70. package/node_modules/call-bind-apply-helpers/test/index.js +0 -63
  71. package/node_modules/call-bind-apply-helpers/tsconfig.json +0 -9
  72. package/node_modules/call-bound/.eslintrc +0 -13
  73. package/node_modules/call-bound/.github/FUNDING.yml +0 -12
  74. package/node_modules/call-bound/.nycrc +0 -9
  75. package/node_modules/call-bound/CHANGELOG.md +0 -42
  76. package/node_modules/call-bound/LICENSE +0 -21
  77. package/node_modules/call-bound/README.md +0 -53
  78. package/node_modules/call-bound/index.d.ts +0 -94
  79. package/node_modules/call-bound/index.js +0 -19
  80. package/node_modules/call-bound/package.json +0 -99
  81. package/node_modules/call-bound/test/index.js +0 -61
  82. package/node_modules/call-bound/tsconfig.json +0 -10
  83. package/node_modules/content-disposition/LICENSE +0 -22
  84. package/node_modules/content-disposition/README.md +0 -141
  85. package/node_modules/content-disposition/index.js +0 -536
  86. package/node_modules/content-disposition/package.json +0 -40
  87. package/node_modules/cookie/LICENSE +0 -24
  88. package/node_modules/cookie/README.md +0 -317
  89. package/node_modules/cookie/SECURITY.md +0 -25
  90. package/node_modules/cookie/index.js +0 -335
  91. package/node_modules/cookie/package.json +0 -44
  92. package/node_modules/cookie-signature/History.md +0 -70
  93. package/node_modules/cookie-signature/LICENSE +0 -22
  94. package/node_modules/cookie-signature/Readme.md +0 -23
  95. package/node_modules/cookie-signature/index.js +0 -47
  96. package/node_modules/cookie-signature/package.json +0 -28
  97. package/node_modules/debug/LICENSE +0 -20
  98. package/node_modules/debug/README.md +0 -481
  99. package/node_modules/debug/package.json +0 -64
  100. package/node_modules/debug/src/browser.js +0 -272
  101. package/node_modules/debug/src/common.js +0 -292
  102. package/node_modules/debug/src/index.js +0 -10
  103. package/node_modules/debug/src/node.js +0 -263
  104. package/node_modules/dunder-proto/.eslintrc +0 -5
  105. package/node_modules/dunder-proto/.github/FUNDING.yml +0 -12
  106. package/node_modules/dunder-proto/.nycrc +0 -13
  107. package/node_modules/dunder-proto/CHANGELOG.md +0 -24
  108. package/node_modules/dunder-proto/LICENSE +0 -21
  109. package/node_modules/dunder-proto/README.md +0 -54
  110. package/node_modules/dunder-proto/get.d.ts +0 -5
  111. package/node_modules/dunder-proto/get.js +0 -30
  112. package/node_modules/dunder-proto/package.json +0 -76
  113. package/node_modules/dunder-proto/set.d.ts +0 -5
  114. package/node_modules/dunder-proto/set.js +0 -35
  115. package/node_modules/dunder-proto/test/get.js +0 -34
  116. package/node_modules/dunder-proto/test/index.js +0 -4
  117. package/node_modules/dunder-proto/test/set.js +0 -50
  118. package/node_modules/dunder-proto/tsconfig.json +0 -9
  119. package/node_modules/ee-first/LICENSE +0 -22
  120. package/node_modules/ee-first/README.md +0 -80
  121. package/node_modules/ee-first/index.js +0 -95
  122. package/node_modules/ee-first/package.json +0 -29
  123. package/node_modules/encodeurl/LICENSE +0 -22
  124. package/node_modules/encodeurl/README.md +0 -109
  125. package/node_modules/encodeurl/index.js +0 -60
  126. package/node_modules/encodeurl/package.json +0 -40
  127. package/node_modules/es-define-property/.eslintrc +0 -13
  128. package/node_modules/es-define-property/.github/FUNDING.yml +0 -12
  129. package/node_modules/es-define-property/.nycrc +0 -9
  130. package/node_modules/es-define-property/CHANGELOG.md +0 -29
  131. package/node_modules/es-define-property/LICENSE +0 -21
  132. package/node_modules/es-define-property/README.md +0 -49
  133. package/node_modules/es-define-property/index.d.ts +0 -3
  134. package/node_modules/es-define-property/index.js +0 -14
  135. package/node_modules/es-define-property/package.json +0 -81
  136. package/node_modules/es-define-property/test/index.js +0 -56
  137. package/node_modules/es-define-property/tsconfig.json +0 -10
  138. package/node_modules/es-errors/.eslintrc +0 -5
  139. package/node_modules/es-errors/.github/FUNDING.yml +0 -12
  140. package/node_modules/es-errors/CHANGELOG.md +0 -40
  141. package/node_modules/es-errors/LICENSE +0 -21
  142. package/node_modules/es-errors/README.md +0 -55
  143. package/node_modules/es-errors/eval.d.ts +0 -3
  144. package/node_modules/es-errors/eval.js +0 -4
  145. package/node_modules/es-errors/index.d.ts +0 -3
  146. package/node_modules/es-errors/index.js +0 -4
  147. package/node_modules/es-errors/package.json +0 -80
  148. package/node_modules/es-errors/range.d.ts +0 -3
  149. package/node_modules/es-errors/range.js +0 -4
  150. package/node_modules/es-errors/ref.d.ts +0 -3
  151. package/node_modules/es-errors/ref.js +0 -4
  152. package/node_modules/es-errors/syntax.d.ts +0 -3
  153. package/node_modules/es-errors/syntax.js +0 -4
  154. package/node_modules/es-errors/test/index.js +0 -19
  155. package/node_modules/es-errors/tsconfig.json +0 -49
  156. package/node_modules/es-errors/type.d.ts +0 -3
  157. package/node_modules/es-errors/type.js +0 -4
  158. package/node_modules/es-errors/uri.d.ts +0 -3
  159. package/node_modules/es-errors/uri.js +0 -4
  160. package/node_modules/es-object-atoms/.eslintrc +0 -16
  161. package/node_modules/es-object-atoms/.github/FUNDING.yml +0 -12
  162. package/node_modules/es-object-atoms/CHANGELOG.md +0 -44
  163. package/node_modules/es-object-atoms/LICENSE +0 -21
  164. package/node_modules/es-object-atoms/README.md +0 -63
  165. package/node_modules/es-object-atoms/RequireObjectCoercible.d.ts +0 -3
  166. package/node_modules/es-object-atoms/RequireObjectCoercible.js +0 -11
  167. package/node_modules/es-object-atoms/ToObject.d.ts +0 -7
  168. package/node_modules/es-object-atoms/ToObject.js +0 -10
  169. package/node_modules/es-object-atoms/index.d.ts +0 -3
  170. package/node_modules/es-object-atoms/index.js +0 -4
  171. package/node_modules/es-object-atoms/isObject.d.ts +0 -3
  172. package/node_modules/es-object-atoms/isObject.js +0 -6
  173. package/node_modules/es-object-atoms/package.json +0 -79
  174. package/node_modules/es-object-atoms/test/index.js +0 -38
  175. package/node_modules/es-object-atoms/tsconfig.json +0 -7
  176. package/node_modules/escape-html/LICENSE +0 -24
  177. package/node_modules/escape-html/Readme.md +0 -43
  178. package/node_modules/escape-html/index.js +0 -78
  179. package/node_modules/escape-html/package.json +0 -24
  180. package/node_modules/etag/HISTORY.md +0 -83
  181. package/node_modules/etag/LICENSE +0 -22
  182. package/node_modules/etag/README.md +0 -159
  183. package/node_modules/etag/index.js +0 -131
  184. package/node_modules/etag/package.json +0 -47
  185. package/node_modules/express/LICENSE +0 -24
  186. package/node_modules/express/Readme.md +0 -276
  187. package/node_modules/express/index.js +0 -11
  188. package/node_modules/express/lib/application.js +0 -631
  189. package/node_modules/express/lib/express.js +0 -81
  190. package/node_modules/express/lib/request.js +0 -514
  191. package/node_modules/express/lib/response.js +0 -1053
  192. package/node_modules/express/lib/utils.js +0 -271
  193. package/node_modules/express/lib/view.js +0 -205
  194. package/node_modules/express/package.json +0 -99
  195. package/node_modules/express-rate-limit/dist/index.cjs +0 -1016
  196. package/node_modules/express-rate-limit/dist/index.d.cts +0 -672
  197. package/node_modules/express-rate-limit/dist/index.d.mts +0 -672
  198. package/node_modules/express-rate-limit/dist/index.d.ts +0 -672
  199. package/node_modules/express-rate-limit/dist/index.mjs +0 -986
  200. package/node_modules/express-rate-limit/license.md +0 -20
  201. package/node_modules/express-rate-limit/package.json +0 -113
  202. package/node_modules/express-rate-limit/readme.md +0 -139
  203. package/node_modules/express-rate-limit/tsconfig.json +0 -8
  204. package/node_modules/finalhandler/HISTORY.md +0 -239
  205. package/node_modules/finalhandler/LICENSE +0 -22
  206. package/node_modules/finalhandler/README.md +0 -150
  207. package/node_modules/finalhandler/index.js +0 -293
  208. package/node_modules/finalhandler/package.json +0 -47
  209. package/node_modules/forwarded/HISTORY.md +0 -21
  210. package/node_modules/forwarded/LICENSE +0 -22
  211. package/node_modules/forwarded/README.md +0 -57
  212. package/node_modules/forwarded/index.js +0 -90
  213. package/node_modules/forwarded/package.json +0 -45
  214. package/node_modules/fresh/HISTORY.md +0 -80
  215. package/node_modules/fresh/LICENSE +0 -23
  216. package/node_modules/fresh/README.md +0 -117
  217. package/node_modules/fresh/index.js +0 -136
  218. package/node_modules/fresh/package.json +0 -46
  219. package/node_modules/function-bind/.eslintrc +0 -21
  220. package/node_modules/function-bind/.github/FUNDING.yml +0 -12
  221. package/node_modules/function-bind/.github/SECURITY.md +0 -3
  222. package/node_modules/function-bind/.nycrc +0 -13
  223. package/node_modules/function-bind/CHANGELOG.md +0 -136
  224. package/node_modules/function-bind/LICENSE +0 -20
  225. package/node_modules/function-bind/README.md +0 -46
  226. package/node_modules/function-bind/implementation.js +0 -84
  227. package/node_modules/function-bind/index.js +0 -5
  228. package/node_modules/function-bind/package.json +0 -87
  229. package/node_modules/function-bind/test/.eslintrc +0 -9
  230. package/node_modules/function-bind/test/index.js +0 -252
  231. package/node_modules/get-intrinsic/.eslintrc +0 -42
  232. package/node_modules/get-intrinsic/.github/FUNDING.yml +0 -12
  233. package/node_modules/get-intrinsic/.nycrc +0 -9
  234. package/node_modules/get-intrinsic/CHANGELOG.md +0 -186
  235. package/node_modules/get-intrinsic/LICENSE +0 -21
  236. package/node_modules/get-intrinsic/README.md +0 -71
  237. package/node_modules/get-intrinsic/index.js +0 -378
  238. package/node_modules/get-intrinsic/package.json +0 -97
  239. package/node_modules/get-intrinsic/test/GetIntrinsic.js +0 -274
  240. package/node_modules/get-proto/.eslintrc +0 -10
  241. package/node_modules/get-proto/.github/FUNDING.yml +0 -12
  242. package/node_modules/get-proto/.nycrc +0 -9
  243. package/node_modules/get-proto/CHANGELOG.md +0 -21
  244. package/node_modules/get-proto/LICENSE +0 -21
  245. package/node_modules/get-proto/Object.getPrototypeOf.d.ts +0 -5
  246. package/node_modules/get-proto/Object.getPrototypeOf.js +0 -6
  247. package/node_modules/get-proto/README.md +0 -50
  248. package/node_modules/get-proto/Reflect.getPrototypeOf.d.ts +0 -3
  249. package/node_modules/get-proto/Reflect.getPrototypeOf.js +0 -4
  250. package/node_modules/get-proto/index.d.ts +0 -5
  251. package/node_modules/get-proto/index.js +0 -27
  252. package/node_modules/get-proto/package.json +0 -81
  253. package/node_modules/get-proto/test/index.js +0 -68
  254. package/node_modules/get-proto/tsconfig.json +0 -9
  255. package/node_modules/gopd/.eslintrc +0 -16
  256. package/node_modules/gopd/.github/FUNDING.yml +0 -12
  257. package/node_modules/gopd/CHANGELOG.md +0 -45
  258. package/node_modules/gopd/LICENSE +0 -21
  259. package/node_modules/gopd/README.md +0 -40
  260. package/node_modules/gopd/gOPD.d.ts +0 -1
  261. package/node_modules/gopd/gOPD.js +0 -4
  262. package/node_modules/gopd/index.d.ts +0 -5
  263. package/node_modules/gopd/index.js +0 -15
  264. package/node_modules/gopd/package.json +0 -77
  265. package/node_modules/gopd/test/index.js +0 -36
  266. package/node_modules/gopd/tsconfig.json +0 -9
  267. package/node_modules/has-symbols/.eslintrc +0 -11
  268. package/node_modules/has-symbols/.github/FUNDING.yml +0 -12
  269. package/node_modules/has-symbols/.nycrc +0 -9
  270. package/node_modules/has-symbols/CHANGELOG.md +0 -91
  271. package/node_modules/has-symbols/LICENSE +0 -21
  272. package/node_modules/has-symbols/README.md +0 -46
  273. package/node_modules/has-symbols/index.d.ts +0 -3
  274. package/node_modules/has-symbols/index.js +0 -14
  275. package/node_modules/has-symbols/package.json +0 -111
  276. package/node_modules/has-symbols/shams.d.ts +0 -3
  277. package/node_modules/has-symbols/shams.js +0 -45
  278. package/node_modules/has-symbols/test/index.js +0 -22
  279. package/node_modules/has-symbols/test/shams/core-js.js +0 -29
  280. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +0 -29
  281. package/node_modules/has-symbols/test/tests.js +0 -58
  282. package/node_modules/has-symbols/tsconfig.json +0 -10
  283. package/node_modules/hasown/.github/FUNDING.yml +0 -12
  284. package/node_modules/hasown/.nycrc +0 -13
  285. package/node_modules/hasown/CHANGELOG.md +0 -58
  286. package/node_modules/hasown/LICENSE +0 -21
  287. package/node_modules/hasown/README.md +0 -40
  288. package/node_modules/hasown/eslint.config.mjs +0 -6
  289. package/node_modules/hasown/index.d.ts +0 -3
  290. package/node_modules/hasown/index.js +0 -8
  291. package/node_modules/hasown/package.json +0 -91
  292. package/node_modules/hasown/tsconfig.json +0 -6
  293. package/node_modules/ip-address/LICENSE +0 -19
  294. package/node_modules/ip-address/README.md +0 -278
  295. package/node_modules/ip-address/dist/address-error.d.ts +0 -4
  296. package/node_modules/ip-address/dist/address-error.js +0 -12
  297. package/node_modules/ip-address/dist/address-error.js.map +0 -1
  298. package/node_modules/ip-address/dist/common.d.ts +0 -20
  299. package/node_modules/ip-address/dist/common.js +0 -67
  300. package/node_modules/ip-address/dist/common.js.map +0 -1
  301. package/node_modules/ip-address/dist/ip-address.d.ts +0 -7
  302. package/node_modules/ip-address/dist/ip-address.js +0 -35
  303. package/node_modules/ip-address/dist/ip-address.js.map +0 -1
  304. package/node_modules/ip-address/dist/ipv4.d.ts +0 -267
  305. package/node_modules/ip-address/dist/ipv4.js +0 -485
  306. package/node_modules/ip-address/dist/ipv4.js.map +0 -1
  307. package/node_modules/ip-address/dist/ipv6.d.ts +0 -489
  308. package/node_modules/ip-address/dist/ipv6.js +0 -1217
  309. package/node_modules/ip-address/dist/ipv6.js.map +0 -1
  310. package/node_modules/ip-address/dist/v4/constants.d.ts +0 -4
  311. package/node_modules/ip-address/dist/v4/constants.js +0 -8
  312. package/node_modules/ip-address/dist/v4/constants.js.map +0 -1
  313. package/node_modules/ip-address/dist/v6/constants.d.ts +0 -44
  314. package/node_modules/ip-address/dist/v6/constants.js +0 -81
  315. package/node_modules/ip-address/dist/v6/constants.js.map +0 -1
  316. package/node_modules/ip-address/dist/v6/helpers.d.ts +0 -18
  317. package/node_modules/ip-address/dist/v6/helpers.js +0 -54
  318. package/node_modules/ip-address/dist/v6/helpers.js.map +0 -1
  319. package/node_modules/ip-address/dist/v6/regular-expressions.d.ts +0 -5
  320. package/node_modules/ip-address/dist/v6/regular-expressions.js +0 -95
  321. package/node_modules/ip-address/dist/v6/regular-expressions.js.map +0 -1
  322. package/node_modules/ip-address/package.json +0 -88
  323. package/node_modules/is-promise/LICENSE +0 -19
  324. package/node_modules/is-promise/index.d.ts +0 -2
  325. package/node_modules/is-promise/index.js +0 -6
  326. package/node_modules/is-promise/index.mjs +0 -3
  327. package/node_modules/is-promise/package.json +0 -30
  328. package/node_modules/is-promise/readme.md +0 -33
  329. package/node_modules/math-intrinsics/.eslintrc +0 -16
  330. package/node_modules/math-intrinsics/.github/FUNDING.yml +0 -12
  331. package/node_modules/math-intrinsics/CHANGELOG.md +0 -24
  332. package/node_modules/math-intrinsics/LICENSE +0 -21
  333. package/node_modules/math-intrinsics/README.md +0 -50
  334. package/node_modules/math-intrinsics/abs.d.ts +0 -1
  335. package/node_modules/math-intrinsics/abs.js +0 -4
  336. package/node_modules/math-intrinsics/constants/maxArrayLength.d.ts +0 -3
  337. package/node_modules/math-intrinsics/constants/maxArrayLength.js +0 -4
  338. package/node_modules/math-intrinsics/constants/maxSafeInteger.d.ts +0 -3
  339. package/node_modules/math-intrinsics/constants/maxSafeInteger.js +0 -5
  340. package/node_modules/math-intrinsics/constants/maxValue.d.ts +0 -3
  341. package/node_modules/math-intrinsics/constants/maxValue.js +0 -5
  342. package/node_modules/math-intrinsics/floor.d.ts +0 -1
  343. package/node_modules/math-intrinsics/floor.js +0 -4
  344. package/node_modules/math-intrinsics/isFinite.d.ts +0 -3
  345. package/node_modules/math-intrinsics/isFinite.js +0 -12
  346. package/node_modules/math-intrinsics/isInteger.d.ts +0 -3
  347. package/node_modules/math-intrinsics/isInteger.js +0 -16
  348. package/node_modules/math-intrinsics/isNaN.d.ts +0 -1
  349. package/node_modules/math-intrinsics/isNaN.js +0 -6
  350. package/node_modules/math-intrinsics/isNegativeZero.d.ts +0 -3
  351. package/node_modules/math-intrinsics/isNegativeZero.js +0 -6
  352. package/node_modules/math-intrinsics/max.d.ts +0 -1
  353. package/node_modules/math-intrinsics/max.js +0 -4
  354. package/node_modules/math-intrinsics/min.d.ts +0 -1
  355. package/node_modules/math-intrinsics/min.js +0 -4
  356. package/node_modules/math-intrinsics/mod.d.ts +0 -3
  357. package/node_modules/math-intrinsics/mod.js +0 -9
  358. package/node_modules/math-intrinsics/package.json +0 -86
  359. package/node_modules/math-intrinsics/pow.d.ts +0 -1
  360. package/node_modules/math-intrinsics/pow.js +0 -4
  361. package/node_modules/math-intrinsics/round.d.ts +0 -1
  362. package/node_modules/math-intrinsics/round.js +0 -4
  363. package/node_modules/math-intrinsics/sign.d.ts +0 -3
  364. package/node_modules/math-intrinsics/sign.js +0 -11
  365. package/node_modules/math-intrinsics/test/index.js +0 -192
  366. package/node_modules/math-intrinsics/tsconfig.json +0 -3
  367. package/node_modules/media-typer/HISTORY.md +0 -50
  368. package/node_modules/media-typer/LICENSE +0 -22
  369. package/node_modules/media-typer/README.md +0 -93
  370. package/node_modules/media-typer/index.js +0 -143
  371. package/node_modules/media-typer/package.json +0 -33
  372. package/node_modules/merge-descriptors/index.d.ts +0 -11
  373. package/node_modules/merge-descriptors/index.js +0 -26
  374. package/node_modules/merge-descriptors/license +0 -11
  375. package/node_modules/merge-descriptors/package.json +0 -50
  376. package/node_modules/merge-descriptors/readme.md +0 -55
  377. package/node_modules/mime-db/HISTORY.md +0 -541
  378. package/node_modules/mime-db/LICENSE +0 -23
  379. package/node_modules/mime-db/README.md +0 -109
  380. package/node_modules/mime-db/db.json +0 -9342
  381. package/node_modules/mime-db/index.js +0 -12
  382. package/node_modules/mime-db/package.json +0 -56
  383. package/node_modules/mime-types/HISTORY.md +0 -428
  384. package/node_modules/mime-types/LICENSE +0 -23
  385. package/node_modules/mime-types/README.md +0 -126
  386. package/node_modules/mime-types/index.js +0 -211
  387. package/node_modules/mime-types/mimeScore.js +0 -57
  388. package/node_modules/mime-types/package.json +0 -49
  389. package/node_modules/ms/index.js +0 -162
  390. package/node_modules/ms/license.md +0 -21
  391. package/node_modules/ms/package.json +0 -38
  392. package/node_modules/ms/readme.md +0 -59
  393. package/node_modules/negotiator/HISTORY.md +0 -114
  394. package/node_modules/negotiator/LICENSE +0 -24
  395. package/node_modules/negotiator/README.md +0 -212
  396. package/node_modules/negotiator/index.js +0 -83
  397. package/node_modules/negotiator/lib/charset.js +0 -169
  398. package/node_modules/negotiator/lib/encoding.js +0 -205
  399. package/node_modules/negotiator/lib/language.js +0 -179
  400. package/node_modules/negotiator/lib/mediaType.js +0 -294
  401. package/node_modules/negotiator/package.json +0 -43
  402. package/node_modules/object-inspect/.eslintrc +0 -53
  403. package/node_modules/object-inspect/.github/FUNDING.yml +0 -12
  404. package/node_modules/object-inspect/.nycrc +0 -13
  405. package/node_modules/object-inspect/CHANGELOG.md +0 -424
  406. package/node_modules/object-inspect/LICENSE +0 -21
  407. package/node_modules/object-inspect/example/all.js +0 -23
  408. package/node_modules/object-inspect/example/circular.js +0 -6
  409. package/node_modules/object-inspect/example/fn.js +0 -5
  410. package/node_modules/object-inspect/example/inspect.js +0 -10
  411. package/node_modules/object-inspect/index.js +0 -544
  412. package/node_modules/object-inspect/package-support.json +0 -20
  413. package/node_modules/object-inspect/package.json +0 -105
  414. package/node_modules/object-inspect/readme.markdown +0 -84
  415. package/node_modules/object-inspect/test/bigint.js +0 -58
  416. package/node_modules/object-inspect/test/browser/dom.js +0 -15
  417. package/node_modules/object-inspect/test/circular.js +0 -16
  418. package/node_modules/object-inspect/test/deep.js +0 -12
  419. package/node_modules/object-inspect/test/element.js +0 -53
  420. package/node_modules/object-inspect/test/err.js +0 -48
  421. package/node_modules/object-inspect/test/fakes.js +0 -29
  422. package/node_modules/object-inspect/test/fn.js +0 -76
  423. package/node_modules/object-inspect/test/global.js +0 -17
  424. package/node_modules/object-inspect/test/has.js +0 -15
  425. package/node_modules/object-inspect/test/holes.js +0 -15
  426. package/node_modules/object-inspect/test/indent-option.js +0 -271
  427. package/node_modules/object-inspect/test/inspect.js +0 -139
  428. package/node_modules/object-inspect/test/lowbyte.js +0 -12
  429. package/node_modules/object-inspect/test/number.js +0 -58
  430. package/node_modules/object-inspect/test/quoteStyle.js +0 -26
  431. package/node_modules/object-inspect/test/toStringTag.js +0 -40
  432. package/node_modules/object-inspect/test/undef.js +0 -12
  433. package/node_modules/object-inspect/test/values.js +0 -261
  434. package/node_modules/object-inspect/test-core-js.js +0 -26
  435. package/node_modules/object-inspect/util.inspect.js +0 -1
  436. package/node_modules/on-finished/HISTORY.md +0 -98
  437. package/node_modules/on-finished/LICENSE +0 -23
  438. package/node_modules/on-finished/README.md +0 -162
  439. package/node_modules/on-finished/index.js +0 -234
  440. package/node_modules/on-finished/package.json +0 -39
  441. package/node_modules/once/LICENSE +0 -15
  442. package/node_modules/once/README.md +0 -79
  443. package/node_modules/once/once.js +0 -42
  444. package/node_modules/once/package.json +0 -33
  445. package/node_modules/parseurl/HISTORY.md +0 -58
  446. package/node_modules/parseurl/LICENSE +0 -24
  447. package/node_modules/parseurl/README.md +0 -133
  448. package/node_modules/parseurl/index.js +0 -158
  449. package/node_modules/parseurl/package.json +0 -40
  450. package/node_modules/path-to-regexp/LICENSE +0 -21
  451. package/node_modules/path-to-regexp/Readme.md +0 -224
  452. package/node_modules/path-to-regexp/dist/index.d.ts +0 -147
  453. package/node_modules/path-to-regexp/dist/index.js +0 -431
  454. package/node_modules/path-to-regexp/dist/index.js.map +0 -1
  455. package/node_modules/path-to-regexp/package.json +0 -64
  456. package/node_modules/proxy-addr/HISTORY.md +0 -161
  457. package/node_modules/proxy-addr/LICENSE +0 -22
  458. package/node_modules/proxy-addr/README.md +0 -139
  459. package/node_modules/proxy-addr/index.js +0 -327
  460. package/node_modules/proxy-addr/package.json +0 -47
  461. package/node_modules/qs/.editorconfig +0 -46
  462. package/node_modules/qs/.github/FUNDING.yml +0 -12
  463. package/node_modules/qs/.github/SECURITY.md +0 -11
  464. package/node_modules/qs/.github/THREAT_MODEL.md +0 -78
  465. package/node_modules/qs/.nycrc +0 -13
  466. package/node_modules/qs/CHANGELOG.md +0 -822
  467. package/node_modules/qs/LICENSE.md +0 -29
  468. package/node_modules/qs/README.md +0 -758
  469. package/node_modules/qs/dist/qs.js +0 -141
  470. package/node_modules/qs/eslint.config.mjs +0 -57
  471. package/node_modules/qs/lib/formats.js +0 -23
  472. package/node_modules/qs/lib/index.js +0 -11
  473. package/node_modules/qs/lib/parse.js +0 -403
  474. package/node_modules/qs/lib/stringify.js +0 -363
  475. package/node_modules/qs/lib/utils.js +0 -342
  476. package/node_modules/qs/package.json +0 -94
  477. package/node_modules/qs/test/empty-keys-cases.js +0 -267
  478. package/node_modules/qs/test/parse.js +0 -1703
  479. package/node_modules/qs/test/stringify.js +0 -1448
  480. package/node_modules/qs/test/utils.js +0 -432
  481. package/node_modules/range-parser/HISTORY.md +0 -56
  482. package/node_modules/range-parser/LICENSE +0 -23
  483. package/node_modules/range-parser/README.md +0 -84
  484. package/node_modules/range-parser/index.js +0 -162
  485. package/node_modules/range-parser/package.json +0 -44
  486. package/node_modules/router/HISTORY.md +0 -228
  487. package/node_modules/router/LICENSE +0 -23
  488. package/node_modules/router/README.md +0 -416
  489. package/node_modules/router/index.js +0 -748
  490. package/node_modules/router/lib/layer.js +0 -247
  491. package/node_modules/router/lib/route.js +0 -242
  492. package/node_modules/router/package.json +0 -44
  493. package/node_modules/send/LICENSE +0 -23
  494. package/node_modules/send/README.md +0 -317
  495. package/node_modules/send/index.js +0 -997
  496. package/node_modules/send/package.json +0 -63
  497. package/node_modules/serve-static/LICENSE +0 -25
  498. package/node_modules/serve-static/README.md +0 -253
  499. package/node_modules/serve-static/index.js +0 -208
  500. package/node_modules/serve-static/package.json +0 -44
  501. package/node_modules/side-channel/.editorconfig +0 -9
  502. package/node_modules/side-channel/.eslintrc +0 -12
  503. package/node_modules/side-channel/.github/FUNDING.yml +0 -12
  504. package/node_modules/side-channel/.nycrc +0 -13
  505. package/node_modules/side-channel/CHANGELOG.md +0 -110
  506. package/node_modules/side-channel/LICENSE +0 -21
  507. package/node_modules/side-channel/README.md +0 -61
  508. package/node_modules/side-channel/index.d.ts +0 -14
  509. package/node_modules/side-channel/index.js +0 -43
  510. package/node_modules/side-channel/package.json +0 -85
  511. package/node_modules/side-channel/test/index.js +0 -104
  512. package/node_modules/side-channel/tsconfig.json +0 -9
  513. package/node_modules/side-channel-list/.editorconfig +0 -9
  514. package/node_modules/side-channel-list/.eslintrc +0 -11
  515. package/node_modules/side-channel-list/.github/FUNDING.yml +0 -12
  516. package/node_modules/side-channel-list/.nycrc +0 -13
  517. package/node_modules/side-channel-list/CHANGELOG.md +0 -36
  518. package/node_modules/side-channel-list/LICENSE +0 -21
  519. package/node_modules/side-channel-list/README.md +0 -62
  520. package/node_modules/side-channel-list/index.d.ts +0 -13
  521. package/node_modules/side-channel-list/index.js +0 -111
  522. package/node_modules/side-channel-list/list.d.ts +0 -14
  523. package/node_modules/side-channel-list/package.json +0 -77
  524. package/node_modules/side-channel-list/test/index.js +0 -154
  525. package/node_modules/side-channel-list/tsconfig.json +0 -9
  526. package/node_modules/side-channel-map/.editorconfig +0 -9
  527. package/node_modules/side-channel-map/.eslintrc +0 -11
  528. package/node_modules/side-channel-map/.github/FUNDING.yml +0 -12
  529. package/node_modules/side-channel-map/.nycrc +0 -13
  530. package/node_modules/side-channel-map/CHANGELOG.md +0 -22
  531. package/node_modules/side-channel-map/LICENSE +0 -21
  532. package/node_modules/side-channel-map/README.md +0 -62
  533. package/node_modules/side-channel-map/index.d.ts +0 -15
  534. package/node_modules/side-channel-map/index.js +0 -68
  535. package/node_modules/side-channel-map/package.json +0 -80
  536. package/node_modules/side-channel-map/test/index.js +0 -114
  537. package/node_modules/side-channel-map/tsconfig.json +0 -9
  538. package/node_modules/side-channel-weakmap/.editorconfig +0 -9
  539. package/node_modules/side-channel-weakmap/.eslintrc +0 -12
  540. package/node_modules/side-channel-weakmap/.github/FUNDING.yml +0 -12
  541. package/node_modules/side-channel-weakmap/.nycrc +0 -13
  542. package/node_modules/side-channel-weakmap/CHANGELOG.md +0 -28
  543. package/node_modules/side-channel-weakmap/LICENSE +0 -21
  544. package/node_modules/side-channel-weakmap/README.md +0 -62
  545. package/node_modules/side-channel-weakmap/index.d.ts +0 -15
  546. package/node_modules/side-channel-weakmap/index.js +0 -84
  547. package/node_modules/side-channel-weakmap/package.json +0 -87
  548. package/node_modules/side-channel-weakmap/test/index.js +0 -114
  549. package/node_modules/side-channel-weakmap/tsconfig.json +0 -9
  550. package/node_modules/type-is/HISTORY.md +0 -292
  551. package/node_modules/type-is/LICENSE +0 -23
  552. package/node_modules/type-is/README.md +0 -198
  553. package/node_modules/type-is/index.js +0 -240
  554. package/node_modules/type-is/package.json +0 -51
  555. package/node_modules/wrappy/LICENSE +0 -15
  556. package/node_modules/wrappy/README.md +0 -36
  557. package/node_modules/wrappy/package.json +0 -29
  558. 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"]}