noodleseed-cli 0.1.15 → 0.1.17

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