@zuplo/cli 6.73.30 → 6.73.31

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 (614) hide show
  1. package/dist/test/invoke-test.d.ts.map +1 -1
  2. package/dist/test/invoke-test.js +4 -3
  3. package/dist/test/invoke-test.js.map +1 -1
  4. package/dist/test/invoke-test.test.d.ts +2 -0
  5. package/dist/test/invoke-test.test.d.ts.map +1 -0
  6. package/dist/test/invoke-test.test.js +57 -0
  7. package/dist/test/invoke-test.test.js.map +1 -0
  8. package/dist/tsconfig.tsbuildinfo +1 -1
  9. package/node_modules/@posthog/core/dist/posthog-core.d.ts.map +1 -1
  10. package/node_modules/@posthog/core/dist/posthog-core.js +18 -1
  11. package/node_modules/@posthog/core/dist/posthog-core.mjs +18 -1
  12. package/node_modules/@posthog/core/package.json +1 -1
  13. package/node_modules/@posthog/core/src/posthog-core.ts +28 -1
  14. package/node_modules/@zuplo/core/package.json +1 -1
  15. package/node_modules/@zuplo/editor/node_modules/hono/LICENSE +21 -0
  16. package/node_modules/@zuplo/editor/node_modules/hono/README.md +85 -0
  17. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/aws-lambda/conninfo.js +24 -0
  18. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/aws-lambda/handler.js +364 -0
  19. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/aws-lambda/index.js +9 -0
  20. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/aws-lambda/types.js +0 -0
  21. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/bun/conninfo.js +27 -0
  22. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/bun/index.js +16 -0
  23. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/bun/serve-static.js +30 -0
  24. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/bun/server.js +5 -0
  25. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/bun/ssg.js +17 -0
  26. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/bun/websocket.js +73 -0
  27. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/cloudflare-pages/conninfo.js +9 -0
  28. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/cloudflare-pages/handler.js +67 -0
  29. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/cloudflare-pages/index.js +9 -0
  30. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/cloudflare-workers/conninfo.js +9 -0
  31. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/cloudflare-workers/index.js +9 -0
  32. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/cloudflare-workers/serve-static-module.js +8 -0
  33. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/cloudflare-workers/serve-static.js +22 -0
  34. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/cloudflare-workers/utils.js +35 -0
  35. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/cloudflare-workers/websocket.js +41 -0
  36. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/deno/conninfo.js +14 -0
  37. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/deno/deno.d.js +0 -0
  38. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/deno/index.js +12 -0
  39. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/deno/serve-static.js +40 -0
  40. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/deno/ssg.js +18 -0
  41. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/deno/websocket.js +32 -0
  42. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/lambda-edge/conninfo.js +9 -0
  43. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/lambda-edge/handler.js +96 -0
  44. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/lambda-edge/index.js +7 -0
  45. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/netlify/conninfo.js +9 -0
  46. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/netlify/handler.js +9 -0
  47. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/netlify/index.js +2 -0
  48. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/netlify/mod.js +7 -0
  49. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/service-worker/handler.js +20 -0
  50. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/service-worker/index.js +9 -0
  51. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/service-worker/types.js +0 -0
  52. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/vercel/conninfo.js +10 -0
  53. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/vercel/handler.js +7 -0
  54. package/node_modules/@zuplo/editor/node_modules/hono/dist/adapter/vercel/index.js +7 -0
  55. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/aws-lambda/conninfo.js +46 -0
  56. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/aws-lambda/handler.js +395 -0
  57. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/aws-lambda/index.js +34 -0
  58. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/aws-lambda/types.js +15 -0
  59. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/bun/conninfo.js +49 -0
  60. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/bun/index.js +45 -0
  61. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/bun/serve-static.js +52 -0
  62. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/bun/server.js +27 -0
  63. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/bun/ssg.js +40 -0
  64. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/bun/websocket.js +98 -0
  65. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/cloudflare-pages/conninfo.js +31 -0
  66. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/cloudflare-pages/handler.js +91 -0
  67. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/cloudflare-pages/index.js +34 -0
  68. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/cloudflare-workers/conninfo.js +31 -0
  69. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/cloudflare-workers/index.js +33 -0
  70. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static-module.js +30 -0
  71. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/cloudflare-workers/serve-static.js +44 -0
  72. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/cloudflare-workers/utils.js +57 -0
  73. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/cloudflare-workers/websocket.js +63 -0
  74. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/deno/conninfo.js +36 -0
  75. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/deno/deno.d.js +0 -0
  76. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/deno/index.js +38 -0
  77. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/deno/serve-static.js +62 -0
  78. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/deno/ssg.js +41 -0
  79. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/deno/websocket.js +54 -0
  80. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/lambda-edge/conninfo.js +31 -0
  81. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/lambda-edge/handler.js +130 -0
  82. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/lambda-edge/index.js +30 -0
  83. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/netlify/conninfo.js +31 -0
  84. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/netlify/handler.js +31 -0
  85. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/netlify/index.js +21 -0
  86. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/netlify/mod.js +30 -0
  87. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/service-worker/handler.js +42 -0
  88. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/service-worker/index.js +32 -0
  89. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/service-worker/types.js +15 -0
  90. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/vercel/conninfo.js +32 -0
  91. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/vercel/handler.js +29 -0
  92. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/adapter/vercel/index.js +30 -0
  93. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/client/client.js +204 -0
  94. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/client/fetch-result-please.js +85 -0
  95. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/client/index.js +32 -0
  96. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/client/types.js +15 -0
  97. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/client/utils.js +105 -0
  98. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/compose.js +68 -0
  99. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/context.js +435 -0
  100. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/accepts/accepts.js +43 -0
  101. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/accepts/index.js +27 -0
  102. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/adapter/index.js +81 -0
  103. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/conninfo/index.js +15 -0
  104. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/conninfo/types.js +15 -0
  105. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/cookie/index.js +130 -0
  106. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/css/common.js +273 -0
  107. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/css/index.js +157 -0
  108. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/dev/index.js +79 -0
  109. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/factory/index.js +54 -0
  110. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/html/index.js +64 -0
  111. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/proxy/index.js +111 -0
  112. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/route/index.js +71 -0
  113. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/ssg/index.js +43 -0
  114. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/ssg/middleware.js +73 -0
  115. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/ssg/plugins.js +70 -0
  116. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/ssg/ssg.js +320 -0
  117. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/ssg/utils.js +93 -0
  118. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/streaming/index.js +35 -0
  119. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/streaming/sse.js +91 -0
  120. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/streaming/stream.js +56 -0
  121. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/streaming/text.js +34 -0
  122. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/streaming/utils.js +35 -0
  123. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/testing/index.js +33 -0
  124. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/helper/websocket/index.js +81 -0
  125. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/hono-base.js +405 -0
  126. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/hono.js +43 -0
  127. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/http-exception.js +57 -0
  128. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/index.js +30 -0
  129. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/base.js +374 -0
  130. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/children.js +44 -0
  131. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/components.js +221 -0
  132. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/constants.js +42 -0
  133. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/context.js +188 -0
  134. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/client.js +76 -0
  135. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/components.js +55 -0
  136. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/context.js +71 -0
  137. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/css.js +168 -0
  138. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/hooks/index.js +74 -0
  139. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/index.js +181 -0
  140. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/intrinsic-element/components.js +399 -0
  141. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/jsx-dev-runtime.js +52 -0
  142. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/jsx-runtime.js +32 -0
  143. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/render.js +641 -0
  144. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/server.js +67 -0
  145. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/dom/utils.js +32 -0
  146. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/hooks/index.js +370 -0
  147. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/index.js +138 -0
  148. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/intrinsic-element/common.js +50 -0
  149. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/intrinsic-element/components.js +189 -0
  150. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/intrinsic-elements.js +15 -0
  151. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/jsx-dev-runtime.js +41 -0
  152. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/jsx-runtime.js +71 -0
  153. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/streaming.js +179 -0
  154. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/types.js +15 -0
  155. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/jsx/utils.js +200 -0
  156. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/basic-auth/index.js +88 -0
  157. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +114 -0
  158. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/body-limit/index.js +75 -0
  159. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/cache/index.js +124 -0
  160. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/combine/index.js +101 -0
  161. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/compress/index.js +92 -0
  162. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/context-storage/index.js +47 -0
  163. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/cors/index.js +106 -0
  164. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/csrf/index.js +77 -0
  165. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/etag/digest.js +55 -0
  166. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/etag/index.js +96 -0
  167. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/ip-restriction/index.js +176 -0
  168. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/jsx-renderer/index.js +82 -0
  169. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/jwk/index.js +27 -0
  170. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/jwk/jwk.js +134 -0
  171. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/jwt/index.js +38 -0
  172. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/jwt/jwt.js +140 -0
  173. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/language/index.js +35 -0
  174. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/language/language.js +199 -0
  175. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/logger/index.js +72 -0
  176. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/method-override/index.js +106 -0
  177. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/powered-by/index.js +32 -0
  178. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/pretty-json/index.js +37 -0
  179. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/request-id/index.js +27 -0
  180. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/request-id/request-id.js +43 -0
  181. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/secure-headers/index.js +29 -0
  182. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/secure-headers/permissions-policy.js +15 -0
  183. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/secure-headers/secure-headers.js +195 -0
  184. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/serve-static/index.js +99 -0
  185. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/serve-static/path.js +40 -0
  186. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/timeout/index.js +47 -0
  187. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/timing/index.js +35 -0
  188. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/timing/timing.js +130 -0
  189. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/middleware/trailing-slash/index.js +62 -0
  190. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/package.json +3 -0
  191. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/preset/quick.js +38 -0
  192. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/preset/tiny.js +34 -0
  193. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/request/constants.js +27 -0
  194. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/request.js +344 -0
  195. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/linear-router/index.js +27 -0
  196. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/linear-router/router.js +140 -0
  197. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/pattern-router/index.js +27 -0
  198. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/pattern-router/router.js +70 -0
  199. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/reg-exp-router/index.js +34 -0
  200. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/reg-exp-router/matcher.js +48 -0
  201. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/reg-exp-router/node.js +134 -0
  202. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/reg-exp-router/prepared-router.js +166 -0
  203. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/reg-exp-router/router.js +208 -0
  204. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/reg-exp-router/trie.js +81 -0
  205. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/smart-router/index.js +27 -0
  206. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/smart-router/router.js +80 -0
  207. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/trie-router/index.js +27 -0
  208. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/trie-router/node.js +210 -0
  209. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router/trie-router/router.js +48 -0
  210. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/router.js +40 -0
  211. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/types.js +28 -0
  212. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/accept.js +245 -0
  213. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/basic-auth.js +45 -0
  214. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/body.js +111 -0
  215. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/buffer.js +103 -0
  216. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/color.js +48 -0
  217. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/compress.js +27 -0
  218. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/concurrent.js +61 -0
  219. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/constants.js +27 -0
  220. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/cookie.js +198 -0
  221. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/crypto.js +69 -0
  222. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/encode.js +54 -0
  223. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/filepath.js +58 -0
  224. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/handler.js +36 -0
  225. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/headers.js +15 -0
  226. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/html.js +150 -0
  227. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/http-status.js +15 -0
  228. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/ipaddr.js +318 -0
  229. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/jwt/index.js +28 -0
  230. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/jwt/jwa.js +42 -0
  231. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/jwt/jws.js +215 -0
  232. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/jwt/jwt.js +219 -0
  233. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/jwt/types.js +161 -0
  234. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/jwt/utf8.js +30 -0
  235. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/mime.js +106 -0
  236. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/stream.js +103 -0
  237. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/types.js +15 -0
  238. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/utils/url.js +256 -0
  239. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/validator/index.js +27 -0
  240. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/validator/utils.js +15 -0
  241. package/node_modules/@zuplo/editor/node_modules/hono/dist/cjs/validator/validator.js +108 -0
  242. package/node_modules/@zuplo/editor/node_modules/hono/dist/client/client.js +189 -0
  243. package/node_modules/@zuplo/editor/node_modules/hono/dist/client/fetch-result-please.js +62 -0
  244. package/node_modules/@zuplo/editor/node_modules/hono/dist/client/index.js +8 -0
  245. package/node_modules/@zuplo/editor/node_modules/hono/dist/client/types.js +0 -0
  246. package/node_modules/@zuplo/editor/node_modules/hono/dist/client/utils.js +76 -0
  247. package/node_modules/@zuplo/editor/node_modules/hono/dist/compose.js +46 -0
  248. package/node_modules/@zuplo/editor/node_modules/hono/dist/context.js +412 -0
  249. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/accepts/accepts.js +20 -0
  250. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/accepts/index.js +5 -0
  251. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/adapter/index.js +56 -0
  252. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/conninfo/index.js +0 -0
  253. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/conninfo/types.js +0 -0
  254. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/cookie/index.js +102 -0
  255. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/css/common.js +236 -0
  256. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/css/index.js +140 -0
  257. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/dev/index.js +55 -0
  258. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/factory/index.js +30 -0
  259. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/html/index.js +41 -0
  260. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/proxy/index.js +89 -0
  261. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/route/index.js +46 -0
  262. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/ssg/index.js +19 -0
  263. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/ssg/middleware.js +45 -0
  264. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/ssg/plugins.js +47 -0
  265. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/ssg/ssg.js +297 -0
  266. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/ssg/utils.js +67 -0
  267. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/streaming/index.js +10 -0
  268. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/streaming/sse.js +68 -0
  269. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/streaming/stream.js +34 -0
  270. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/streaming/text.js +12 -0
  271. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/streaming/utils.js +13 -0
  272. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/testing/index.js +11 -0
  273. package/node_modules/@zuplo/editor/node_modules/hono/dist/helper/websocket/index.js +57 -0
  274. package/node_modules/@zuplo/editor/node_modules/hono/dist/hono-base.js +383 -0
  275. package/node_modules/@zuplo/editor/node_modules/hono/dist/hono.js +21 -0
  276. package/node_modules/@zuplo/editor/node_modules/hono/dist/http-exception.js +35 -0
  277. package/node_modules/@zuplo/editor/node_modules/hono/dist/index.js +7 -0
  278. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/base.js +342 -0
  279. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/children.js +21 -0
  280. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/components.js +198 -0
  281. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/constants.js +15 -0
  282. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/context.js +162 -0
  283. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/client.js +53 -0
  284. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/components.js +32 -0
  285. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/context.js +48 -0
  286. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/css.js +150 -0
  287. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/hooks/index.js +48 -0
  288. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/index.js +142 -0
  289. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/intrinsic-element/components.js +374 -0
  290. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/jsx-dev-runtime.js +19 -0
  291. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/jsx-runtime.js +8 -0
  292. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/render.js +617 -0
  293. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/server.js +33 -0
  294. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/dom/utils.js +10 -0
  295. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/hooks/index.js +328 -0
  296. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/index.js +103 -0
  297. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/intrinsic-element/common.js +24 -0
  298. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/intrinsic-element/components.js +165 -0
  299. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/intrinsic-elements.js +0 -0
  300. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/jsx-dev-runtime.js +18 -0
  301. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/jsx-runtime.js +44 -0
  302. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/streaming.js +155 -0
  303. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/types.js +0 -0
  304. package/node_modules/@zuplo/editor/node_modules/hono/dist/jsx/utils.js +175 -0
  305. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/basic-auth/index.js +66 -0
  306. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/bearer-auth/index.js +92 -0
  307. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/body-limit/index.js +53 -0
  308. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/cache/index.js +102 -0
  309. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/combine/index.js +77 -0
  310. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/compress/index.js +69 -0
  311. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/context-storage/index.js +23 -0
  312. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/cors/index.js +84 -0
  313. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/csrf/index.js +55 -0
  314. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/etag/digest.js +33 -0
  315. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/etag/index.js +73 -0
  316. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/ip-restriction/index.js +162 -0
  317. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/jsx-renderer/index.js +58 -0
  318. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/jwk/index.js +5 -0
  319. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/jwk/jwk.js +112 -0
  320. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/jwt/index.js +11 -0
  321. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/jwt/jwt.js +114 -0
  322. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/language/index.js +15 -0
  323. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/language/language.js +168 -0
  324. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/logger/index.js +44 -0
  325. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/method-override/index.js +84 -0
  326. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/powered-by/index.js +10 -0
  327. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/pretty-json/index.js +15 -0
  328. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/request-id/index.js +5 -0
  329. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/request-id/request-id.js +21 -0
  330. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/secure-headers/index.js +6 -0
  331. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/secure-headers/permissions-policy.js +0 -0
  332. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/secure-headers/secure-headers.js +172 -0
  333. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/serve-static/index.js +77 -0
  334. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/serve-static/path.js +18 -0
  335. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/timeout/index.js +25 -0
  336. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/timing/index.js +9 -0
  337. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/timing/timing.js +104 -0
  338. package/node_modules/@zuplo/editor/node_modules/hono/dist/middleware/trailing-slash/index.js +39 -0
  339. package/node_modules/@zuplo/editor/node_modules/hono/dist/preset/quick.js +16 -0
  340. package/node_modules/@zuplo/editor/node_modules/hono/dist/preset/tiny.js +12 -0
  341. package/node_modules/@zuplo/editor/node_modules/hono/dist/request/constants.js +5 -0
  342. package/node_modules/@zuplo/editor/node_modules/hono/dist/request.js +321 -0
  343. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/linear-router/index.js +5 -0
  344. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/linear-router/router.js +118 -0
  345. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/pattern-router/index.js +5 -0
  346. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/pattern-router/router.js +48 -0
  347. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/reg-exp-router/index.js +9 -0
  348. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/reg-exp-router/matcher.js +25 -0
  349. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/reg-exp-router/node.js +111 -0
  350. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/reg-exp-router/prepared-router.js +142 -0
  351. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/reg-exp-router/router.js +190 -0
  352. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/reg-exp-router/trie.js +59 -0
  353. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/smart-router/index.js +5 -0
  354. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/smart-router/router.js +58 -0
  355. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/trie-router/index.js +5 -0
  356. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/trie-router/node.js +188 -0
  357. package/node_modules/@zuplo/editor/node_modules/hono/dist/router/trie-router/router.js +26 -0
  358. package/node_modules/@zuplo/editor/node_modules/hono/dist/router.js +14 -0
  359. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +27 -0
  360. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/aws-lambda/handler.d.ts +184 -0
  361. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/aws-lambda/index.d.ts +8 -0
  362. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/aws-lambda/types.d.ts +153 -0
  363. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +7 -0
  364. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/bun/index.d.ts +10 -0
  365. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/bun/serve-static.d.ts +3 -0
  366. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/bun/server.d.ts +12 -0
  367. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +13 -0
  368. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/bun/websocket.d.ts +39 -0
  369. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +21 -0
  370. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/cloudflare-pages/handler.d.ts +33 -0
  371. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/cloudflare-pages/index.d.ts +7 -0
  372. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +2 -0
  373. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/cloudflare-workers/index.d.ts +7 -0
  374. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static-module.d.ts +4 -0
  375. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/cloudflare-workers/serve-static.d.ts +16 -0
  376. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/cloudflare-workers/utils.d.ts +5 -0
  377. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/cloudflare-workers/websocket.d.ts +2 -0
  378. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +7 -0
  379. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/deno/index.d.ts +8 -0
  380. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/deno/serve-static.d.ts +3 -0
  381. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +13 -0
  382. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/deno/websocket.d.ts +2 -0
  383. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +2 -0
  384. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/lambda-edge/handler.d.ts +87 -0
  385. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/lambda-edge/index.d.ts +7 -0
  386. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +21 -0
  387. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/netlify/handler.d.ts +2 -0
  388. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/netlify/index.d.ts +5 -0
  389. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/netlify/mod.d.ts +2 -0
  390. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/service-worker/handler.d.ts +16 -0
  391. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/service-worker/index.d.ts +28 -0
  392. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/service-worker/types.d.ts +12 -0
  393. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +2 -0
  394. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/vercel/handler.d.ts +2 -0
  395. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/adapter/vercel/index.d.ts +6 -0
  396. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/client/client.d.ts +4 -0
  397. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/client/fetch-result-please.d.ts +35 -0
  398. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/client/index.d.ts +7 -0
  399. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/client/types.d.ts +229 -0
  400. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/client/utils.d.ts +18 -0
  401. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/compose.d.ts +14 -0
  402. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/context.d.ts +455 -0
  403. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/accepts/accepts.d.ts +30 -0
  404. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/accepts/index.d.ts +5 -0
  405. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/adapter/index.d.ts +12 -0
  406. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/conninfo/index.d.ts +5 -0
  407. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/conninfo/types.d.ts +36 -0
  408. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/cookie/index.d.ts +24 -0
  409. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/css/common.d.ts +59 -0
  410. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/css/index.d.ts +80 -0
  411. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/dev/index.d.ts +20 -0
  412. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/factory/index.d.ts +82 -0
  413. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/html/index.d.ts +8 -0
  414. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/proxy/index.d.ts +72 -0
  415. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/route/index.d.ts +75 -0
  416. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/ssg/index.d.ts +7 -0
  417. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/ssg/middleware.d.ts +44 -0
  418. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/ssg/plugins.d.ts +27 -0
  419. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/ssg/ssg.d.ts +91 -0
  420. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/ssg/utils.d.ts +16 -0
  421. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/streaming/index.d.ts +8 -0
  422. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/streaming/sse.d.ts +13 -0
  423. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/streaming/stream.d.ts +3 -0
  424. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/streaming/text.d.ts +3 -0
  425. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/streaming/utils.d.ts +1 -0
  426. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/testing/index.d.ts +12 -0
  427. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/helper/websocket/index.d.ts +69 -0
  428. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/hono-base.d.ts +220 -0
  429. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/hono.d.ts +19 -0
  430. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/http-exception.d.ts +59 -0
  431. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/index.d.ts +37 -0
  432. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/base.d.ts +56 -0
  433. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/children.d.ts +9 -0
  434. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/components.d.ts +15 -0
  435. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/constants.d.ts +6 -0
  436. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/context.d.ts +51 -0
  437. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/client.d.ts +31 -0
  438. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/components.d.ts +10 -0
  439. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/context.d.ts +3 -0
  440. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/css.d.ts +83 -0
  441. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/hooks/index.d.ts +39 -0
  442. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/index.d.ts +88 -0
  443. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/intrinsic-element/components.d.ts +16 -0
  444. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/jsx-dev-runtime.d.ts +8 -0
  445. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/jsx-runtime.d.ts +7 -0
  446. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/render.d.ts +73 -0
  447. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/server.d.ts +106 -0
  448. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/dom/utils.d.ts +1 -0
  449. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/hooks/index.d.ts +45 -0
  450. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/index.d.ts +75 -0
  451. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/intrinsic-element/common.d.ts +6 -0
  452. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/intrinsic-element/components.d.ts +13 -0
  453. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/intrinsic-elements.d.ts +722 -0
  454. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/jsx-dev-runtime.d.ts +8 -0
  455. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/jsx-runtime.d.ts +12 -0
  456. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/streaming.d.ts +36 -0
  457. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/types.d.ts +35 -0
  458. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/jsx/utils.d.ts +4 -0
  459. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/basic-auth/index.d.ts +75 -0
  460. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +92 -0
  461. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/body-limit/index.d.ts +45 -0
  462. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/cache/index.d.ts +43 -0
  463. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/combine/index.d.ts +85 -0
  464. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/compress/index.d.ts +40 -0
  465. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/context-storage/index.d.ts +40 -0
  466. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/cors/index.d.ts +55 -0
  467. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/csrf/index.d.ts +78 -0
  468. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/etag/digest.d.ts +1 -0
  469. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/etag/index.d.ts +42 -0
  470. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +67 -0
  471. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +77 -0
  472. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/jwk/index.d.ts +1 -0
  473. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/jwk/jwk.d.ts +54 -0
  474. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/jwt/index.d.ts +8 -0
  475. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/jwt/jwt.d.ts +67 -0
  476. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/language/index.d.ts +7 -0
  477. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/language/language.d.ts +120 -0
  478. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/logger/index.d.ts +24 -0
  479. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/method-override/index.d.ts +48 -0
  480. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/powered-by/index.d.ts +29 -0
  481. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/pretty-json/index.d.ts +42 -0
  482. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/request-id/index.d.ts +7 -0
  483. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/request-id/request-id.d.ts +37 -0
  484. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/secure-headers/index.d.ts +8 -0
  485. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/secure-headers/permissions-policy.d.ts +14 -0
  486. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/secure-headers/secure-headers.d.ts +109 -0
  487. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/serve-static/index.d.ts +31 -0
  488. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/serve-static/path.d.ts +5 -0
  489. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/timeout/index.d.ts +31 -0
  490. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/timing/index.d.ts +7 -0
  491. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/timing/timing.d.ts +129 -0
  492. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/middleware/trailing-slash/index.d.ts +94 -0
  493. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/package.json +3 -0
  494. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/preset/quick.d.ts +10 -0
  495. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/preset/tiny.d.ts +10 -0
  496. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/request/constants.d.ts +1 -0
  497. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/request.d.ts +324 -0
  498. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/linear-router/index.d.ts +5 -0
  499. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/linear-router/router.d.ts +7 -0
  500. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/pattern-router/index.d.ts +5 -0
  501. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/pattern-router/router.d.ts +7 -0
  502. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/reg-exp-router/index.d.ts +6 -0
  503. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/reg-exp-router/matcher.d.ts +7 -0
  504. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/reg-exp-router/node.d.ts +10 -0
  505. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/reg-exp-router/prepared-router.d.ts +17 -0
  506. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/reg-exp-router/router.d.ts +11 -0
  507. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/reg-exp-router/trie.d.ts +7 -0
  508. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/smart-router/index.d.ts +5 -0
  509. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/smart-router/router.d.ts +11 -0
  510. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/trie-router/index.d.ts +5 -0
  511. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/trie-router/node.d.ts +7 -0
  512. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router/trie-router/router.d.ts +8 -0
  513. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/router.d.ts +97 -0
  514. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/types.d.ts +573 -0
  515. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/accept.d.ts +6 -0
  516. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/basic-auth.d.ts +5 -0
  517. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/body.d.ts +79 -0
  518. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/buffer.d.ts +17 -0
  519. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/color.d.ts +21 -0
  520. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/compress.d.ts +8 -0
  521. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/concurrent.d.ts +11 -0
  522. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/constants.d.ts +4 -0
  523. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/cookie.d.ts +40 -0
  524. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/crypto.d.ts +15 -0
  525. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/encode.d.ts +8 -0
  526. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/filepath.d.ts +12 -0
  527. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/handler.d.ts +6 -0
  528. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/headers.d.ts +8 -0
  529. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/html.d.ts +44 -0
  530. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/http-status.d.ts +32 -0
  531. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/ipaddr.d.ts +56 -0
  532. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/jwt/index.d.ts +18 -0
  533. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/jwt/jwa.d.ts +23 -0
  534. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/jwt/jws.d.ts +12 -0
  535. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/jwt/jwt.d.ts +43 -0
  536. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/jwt/types.d.ts +86 -0
  537. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/jwt/utf8.d.ts +6 -0
  538. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/mime.d.ts +70 -0
  539. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/stream.d.ts +31 -0
  540. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/types.d.ts +74 -0
  541. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/utils/url.d.ts +39 -0
  542. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/validator/index.d.ts +7 -0
  543. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/validator/utils.d.ts +29 -0
  544. package/node_modules/@zuplo/editor/node_modules/hono/dist/types/validator/validator.d.ts +16 -0
  545. package/node_modules/@zuplo/editor/node_modules/hono/dist/types.js +6 -0
  546. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/accept.js +223 -0
  547. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/basic-auth.js +23 -0
  548. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/body.js +89 -0
  549. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/buffer.js +78 -0
  550. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/color.js +25 -0
  551. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/compress.js +5 -0
  552. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/concurrent.js +39 -0
  553. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/constants.js +5 -0
  554. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/cookie.js +173 -0
  555. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/crypto.js +44 -0
  556. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/encode.js +29 -0
  557. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/filepath.js +35 -0
  558. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/handler.js +13 -0
  559. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/headers.js +0 -0
  560. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/html.js +123 -0
  561. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/http-status.js +0 -0
  562. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/ipaddr.js +288 -0
  563. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/jwt/index.js +6 -0
  564. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/jwt/jwa.js +20 -0
  565. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/jwt/jws.js +192 -0
  566. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/jwt/jwt.js +207 -0
  567. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/jwt/types.js +124 -0
  568. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/jwt/utf8.js +7 -0
  569. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/mime.js +82 -0
  570. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/stream.js +81 -0
  571. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/types.js +0 -0
  572. package/node_modules/@zuplo/editor/node_modules/hono/dist/utils/url.js +222 -0
  573. package/node_modules/@zuplo/editor/node_modules/hono/dist/validator/index.js +5 -0
  574. package/node_modules/@zuplo/editor/node_modules/hono/dist/validator/utils.js +0 -0
  575. package/node_modules/@zuplo/editor/node_modules/hono/dist/validator/validator.js +86 -0
  576. package/node_modules/@zuplo/editor/node_modules/hono/package.json +699 -0
  577. package/node_modules/@zuplo/graphql/package.json +1 -1
  578. package/node_modules/@zuplo/openapi-tools/package.json +1 -1
  579. package/node_modules/@zuplo/otel/out/esm/chunk-6UX7NFNJ.js +26 -0
  580. package/node_modules/@zuplo/otel/out/esm/chunk-6UX7NFNJ.js.map +1 -0
  581. package/node_modules/@zuplo/otel/out/esm/index.js +1 -1
  582. package/node_modules/@zuplo/otel/package.json +1 -1
  583. package/node_modules/@zuplo/runtime/out/esm/chunk-TOMTVLZA.js +405 -0
  584. package/node_modules/@zuplo/runtime/out/esm/chunk-TOMTVLZA.js.map +1 -0
  585. package/node_modules/@zuplo/runtime/out/esm/index.js +1 -1
  586. package/node_modules/@zuplo/runtime/out/esm/index.js.map +1 -1
  587. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js +1 -1
  588. package/node_modules/@zuplo/runtime/out/esm/mcp-gateway/index.js.map +1 -1
  589. package/node_modules/@zuplo/runtime/out/types/index.d.ts +18 -0
  590. package/node_modules/@zuplo/runtime/package.json +1 -1
  591. package/node_modules/fast-uri/index.js +37 -1
  592. package/node_modules/fast-uri/package.json +1 -1
  593. package/node_modules/fast-uri/test/security.test.js +136 -0
  594. package/node_modules/hono/dist/cjs/jsx/hooks/index.js +14 -11
  595. package/node_modules/hono/dist/cjs/utils/cookie.js +2 -1
  596. package/node_modules/hono/dist/jsx/hooks/index.js +14 -11
  597. package/node_modules/hono/dist/utils/cookie.js +2 -1
  598. package/node_modules/hono/package.json +2 -3
  599. package/node_modules/ip-address/README.md +142 -128
  600. package/node_modules/ip-address/dist/common.d.ts +6 -0
  601. package/node_modules/ip-address/dist/common.js +17 -1
  602. package/node_modules/ip-address/dist/common.js.map +1 -1
  603. package/node_modules/ip-address/dist/ipv4.js +3 -12
  604. package/node_modules/ip-address/dist/ipv4.js.map +1 -1
  605. package/node_modules/ip-address/dist/ipv6.d.ts +9 -2
  606. package/node_modules/ip-address/dist/ipv6.js +35 -16
  607. package/node_modules/ip-address/dist/ipv6.js.map +1 -1
  608. package/node_modules/ip-address/package.json +5 -3
  609. package/package.json +6 -6
  610. package/node_modules/@zuplo/otel/out/esm/chunk-6IEB7H3W.js +0 -26
  611. package/node_modules/@zuplo/otel/out/esm/chunk-6IEB7H3W.js.map +0 -1
  612. package/node_modules/@zuplo/runtime/out/esm/chunk-6E46244D.js +0 -405
  613. package/node_modules/@zuplo/runtime/out/esm/chunk-6E46244D.js.map +0 -1
  614. /package/node_modules/@zuplo/runtime/out/esm/{chunk-6E46244D.js.LEGAL.txt → chunk-TOMTVLZA.js.LEGAL.txt} +0 -0
@@ -1,4 +1,4 @@
1
- [![CircleCI](https://dl.circleci.com/status-badge/img/circleci/9fJmTZfn8d8p7GtVt688PY/JjriGjhcxBD6zYKygMZaet/tree/master.svg?style=svg&circle-token=7baede7efd3db5f1f25fb439e97d5f695ff76318)](https://dl.circleci.com/status-badge/redirect/circleci/9fJmTZfn8d8p7GtVt688PY/JjriGjhcxBD6zYKygMZaet/tree/master)
1
+ [![CI](https://github.com/beaugunderson/ip-address/actions/workflows/ci.yml/badge.svg)](https://github.com/beaugunderson/ip-address/actions/workflows/ci.yml)
2
2
  [![codecov]](https://codecov.io/github/beaugunderson/ip-address?branch=master)
3
3
  [![downloads]](https://www.npmjs.com/package/ip-address)
4
4
  [![npm]](https://www.npmjs.com/package/ip-address)
@@ -19,6 +19,7 @@ npm install ip-address
19
19
 
20
20
  ### Examples
21
21
 
22
+ <!-- prettier-ignore -->
22
23
  ```ts
23
24
  import { Address4, Address6 } from 'ip-address';
24
25
 
@@ -98,19 +99,8 @@ A few terms used throughout the API can be confusing if you haven't worked deepl
98
99
 
99
100
  <!-- API:START -->
100
101
 
101
- #### AddressError
102
-
103
- **Constructor**
104
-
105
- - `new AddressError(message: string, parseMessage?: string): AddressError`
106
-
107
- **Properties**
108
-
109
- - `parseMessage: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/address-error.ts#L2)
110
-
111
- #### Address4
112
-
113
- Represents an IPv4 address
102
+ <details>
103
+ <summary><a id="address4"></a><strong>Address4</strong> — Represents an IPv4 address</summary>
114
104
 
115
105
  **Constructor**
116
106
 
@@ -121,41 +111,41 @@ Represents an IPv4 address
121
111
  - `static isValid(address: string): boolean` — Returns true if the given string is a valid IPv4 address (with optional CIDR subnet), false otherwise. Host bits in the subnet portion are allowed (e.g. `192.168.1.5/24` is valid); for strict network-address validation compare `correctForm()` to `startAddress().correctForm()`, or use `networkForm()`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L53)
122
112
  - `static fromAddressAndMask(address: string, mask: string): Address4` — Construct an `Address4` from an address and a dotted-decimal subnet mask given as separate strings (e.g. as returned by Node's `os.networkInterfaces()`). Throws `AddressError` if the mask is non-contiguous (e.g. `255.0.255.0`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L110)
123
113
  - `static fromAddressAndWildcardMask(address: string, wildcardMask: string): Address4` — Construct an `Address4` from an address and a Cisco-style wildcard mask given as separate strings (e.g. `0.0.0.255` for a `/24`). The wildcard mask is the bitwise inverse of the subnet mask. Throws `AddressError` if the mask is non-contiguous (e.g. `0.255.0.255`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L124)
124
- - `static fromWildcard(input: string): Address4` — Construct an `Address4` from a wildcard pattern with trailing `*` octets. The number of trailing wildcards determines the prefix length: each `*` represents 8 bits. Only trailing whole-octet wildcards are supported. Partial-octet wildcards (e.g. `192.168.0.1*`) and interior wildcards (e.g. `192.*.0.1`) throw `AddressError`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L146)
125
- - `static fromHex(hex: string): Address4` — Converts a hex string to an IPv4 address object. Accepts 8 hex digits with optional `:` separators (e.g. `'7f000001'` or `'7f:00:00:01'`). Throws `AddressError` for any other length or for non-hex characters. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L181)
126
- - `static fromInteger(integer: number): Address4` — Converts an integer into a IPv4 address object. The integer must be a non-negative safe integer in the range `[0, 2**32 - 1]`; otherwise `AddressError` is thrown. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L204)
127
- - `static fromArpa(arpaFormAddress: string): Address4` — Return an address from in-addr.arpa form [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L220)
128
- - `static fromBigInt(bigInt: bigint): Address4` — Converts a BigInt to a v4 address object. The value must be in the range `[0, 2**32 - 1]`; otherwise `AddressError` is thrown. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L367)
129
- - `static fromByteArray(bytes: number[]): Address4` — Convert a byte array to an Address4 object. To convert from a Node.js `Buffer`, spread it: `Address4.fromByteArray([...buf])`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L382)
130
- - `static fromUnsignedByteArray(bytes: number[]): Address4` — Convert an unsigned byte array to an Address4 object [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L402)
114
+ - `static fromWildcard(input: string): Address4` — Construct an `Address4` from a wildcard pattern with trailing `*` octets. The number of trailing wildcards determines the prefix length: each `*` represents 8 bits. Only trailing whole-octet wildcards are supported. Partial-octet wildcards (e.g. `192.168.0.1*`) and interior wildcards (e.g. `192.*.0.1`) throw `AddressError`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L145)
115
+ - `static fromHex(hex: string): Address4` — Converts a hex string to an IPv4 address object. Accepts 8 hex digits with optional `:` separators (e.g. `'7f000001'` or `'7f:00:00:01'`). Throws `AddressError` for any other length or for non-hex characters. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L180)
116
+ - `static fromInteger(integer: number): Address4` — Converts an integer into a IPv4 address object. The integer must be a non-negative safe integer in the range `[0, 2**32 - 1]`; otherwise `AddressError` is thrown. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L203)
117
+ - `static fromArpa(arpaFormAddress: string): Address4` — Return an address from in-addr.arpa form [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L219)
118
+ - `static fromBigInt(bigInt: bigint): Address4` — Converts a BigInt to a v4 address object. The value must be in the range `[0, 2**32 - 1]`; otherwise `AddressError` is thrown. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L366)
119
+ - `static fromByteArray(bytes: number[]): Address4` — Convert a byte array to an Address4 object. To convert from a Node.js `Buffer`, spread it: `Address4.fromByteArray([...buf])`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L381)
120
+ - `static fromUnsignedByteArray(bytes: number[]): Address4` — Convert an unsigned byte array to an Address4 object [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L392)
131
121
 
132
122
  **Instance methods**
133
123
 
134
124
  - `parse(address: string): string[]` — Parses an IPv4 address string into its four octet groups and stores the result on `this.parsedAddress`. Called automatically by the constructor; you typically don't need to call it directly. Throws `AddressError` if the input is not a valid IPv4 address. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L70)
135
125
  - `correctForm(): string` — Returns the address in correct form: octets joined with `.` and any leading zeros stripped (e.g. `192.168.1.1`). For IPv4 this matches the canonical dotted-decimal representation. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L91)
136
- - `toHex(): string` — Converts an IPv4 address object to a hex string [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L233)
137
- - `toArray(): number[]` — Converts an IPv4 address object to an array of bytes. To get a Node.js `Buffer`, wrap the result: `Buffer.from(address.toArray())`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L243)
138
- - `toGroup6(): string` — Converts an IPv4 address object to an IPv6 address group [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L251)
139
- - `bigInt(): bigint` — Returns the address as a `bigint` [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L270)
140
- - `startAddress(): Address4` — The first address in the range given by this address' subnet. Often referred to as the Network Address. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L287)
141
- - `startAddressExclusive(): Address4` — The first host address in the range given by this address's subnet ie the first address after the Network Address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L296)
142
- - `endAddress(): Address4` — The last address in the range given by this address' subnet Often referred to as the Broadcast [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L314)
143
- - `endAddressExclusive(): Address4` — The last host address in the range given by this address's subnet ie the last address prior to the Broadcast Address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L323)
144
- - `subnetMaskAddress(): Address4` — The dotted-decimal form of the subnet mask, e.g. `255.255.240.0` for a `/20`. Returns an `Address4`; call `.correctForm()` for the string. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L333)
145
- - `wildcardMask(): Address4` — The Cisco-style wildcard mask, e.g. `0.0.0.255` for a `/24`. This is the bitwise inverse of `subnetMaskAddress()`. Returns an `Address4`; call `.correctForm()` for the string. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L345)
146
- - `networkForm(): string` — The network address in CIDR string form, e.g. `192.168.1.0/24` for `192.168.1.5/24`. For an address with no explicit subnet the prefix is `/32`, e.g. `networkForm()` on `192.168.1.5` returns `192.168.1.5/32`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L357)
147
- - `mask(mask?: number): string` — Returns the first n bits of the address, defaulting to the subnet mask [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L416)
148
- - `getBitsBase2(start: number, end: number): string` — Returns the bits in the given range as a base-2 string [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L428)
149
- - `reverseForm(options?: ReverseFormOptions): string` — Return the reversed ip6.arpa form of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L438)
150
- - `isMulticast(): boolean` — Returns true if the given address is a multicast address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L470)
151
- - `isPrivate(): boolean` — 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`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L478)
152
- - `isLoopback(): boolean` — Returns true if the address is in the loopback range `127.0.0.0/8` ([RFC 1122](https://datatracker.ietf.org/doc/html/rfc1122)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L486)
153
- - `isLinkLocal(): boolean` — 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)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L494)
154
- - `isUnspecified(): boolean` — Returns true if the address is the unspecified address `0.0.0.0`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L502)
155
- - `isBroadcast(): boolean` — Returns true if the address is the limited broadcast address `255.255.255.255` ([RFC 919](https://datatracker.ietf.org/doc/html/rfc919)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L510)
156
- - `isCGNAT(): boolean` — 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)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L518)
157
- - `binaryZeroPad(): string` — Returns a zero-padded base-2 string representation of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L526)
158
- - `groupForV6(): string` — Groups an IPv4 address for inclusion at the end of an IPv6 address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L537)
126
+ - `toHex(): string` — Converts an IPv4 address object to a hex string [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L232)
127
+ - `toArray(): number[]` — Converts an IPv4 address object to an array of bytes. To get a Node.js `Buffer`, wrap the result: `Buffer.from(address.toArray())`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L242)
128
+ - `toGroup6(): string` — Converts an IPv4 address object to an IPv6 address group [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L250)
129
+ - `bigInt(): bigint` — Returns the address as a `bigint` [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L269)
130
+ - `startAddress(): Address4` — The first address in the range given by this address' subnet. Often referred to as the Network Address. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L286)
131
+ - `startAddressExclusive(): Address4` — The first host address in the range given by this address's subnet ie the first address after the Network Address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L295)
132
+ - `endAddress(): Address4` — The last address in the range given by this address' subnet Often referred to as the Broadcast [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L313)
133
+ - `endAddressExclusive(): Address4` — The last host address in the range given by this address's subnet ie the last address prior to the Broadcast Address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L322)
134
+ - `subnetMaskAddress(): Address4` — The dotted-decimal form of the subnet mask, e.g. `255.255.240.0` for a `/20`. Returns an `Address4`; call `.correctForm()` for the string. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L332)
135
+ - `wildcardMask(): Address4` — The Cisco-style wildcard mask, e.g. `0.0.0.255` for a `/24`. This is the bitwise inverse of `subnetMaskAddress()`. Returns an `Address4`; call `.correctForm()` for the string. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L344)
136
+ - `networkForm(): string` — The network address in CIDR string form, e.g. `192.168.1.0/24` for `192.168.1.5/24`. For an address with no explicit subnet the prefix is `/32`, e.g. `networkForm()` on `192.168.1.5` returns `192.168.1.5/32`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L356)
137
+ - `mask(mask?: number): string` — Returns the first n bits of the address, defaulting to the subnet mask [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L406)
138
+ - `getBitsBase2(start: number, end: number): string` — Returns the bits in the given range as a base-2 string [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L418)
139
+ - `reverseForm(options?: ReverseFormOptions): string` — Return the reversed ip6.arpa form of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L428)
140
+ - `isMulticast(): boolean` — Returns true if the given address is a multicast address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L460)
141
+ - `isPrivate(): boolean` — 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`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L468)
142
+ - `isLoopback(): boolean` — Returns true if the address is in the loopback range `127.0.0.0/8` ([RFC 1122](https://datatracker.ietf.org/doc/html/rfc1122)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L476)
143
+ - `isLinkLocal(): boolean` — 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)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L484)
144
+ - `isUnspecified(): boolean` — Returns true if the address is the unspecified address `0.0.0.0`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L492)
145
+ - `isBroadcast(): boolean` — Returns true if the address is the limited broadcast address `255.255.255.255` ([RFC 919](https://datatracker.ietf.org/doc/html/rfc919)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L500)
146
+ - `isCGNAT(): boolean` — 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)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L508)
147
+ - `binaryZeroPad(): string` — Returns a zero-padded base-2 string representation of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L516)
148
+ - `groupForV6(): string` — Groups an IPv4 address for inclusion at the end of an IPv6 address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L527)
159
149
 
160
150
  **Properties**
161
151
 
@@ -168,12 +158,13 @@ Represents an IPv4 address
168
158
  - `subnetMask: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L20)
169
159
  - `v4: boolean` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L21)
170
160
  - `isCorrect: (this: Address4 | Address6) => boolean` — Returns true if the address is correct, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L99)
171
- - `isInSubnet: (this: Address4 | Address6, address: Address4 | Address6) => boolean` — Returns true if the given address is in the subnet of the current address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L456)
172
- - `isHostInSubnet: (this: Address4 | Address6, address: Address4 | Address6) => boolean` — Returns true if this address's host bits fall inside the given subnet, ignoring this address's own subnet mask. See common.isHostInSubnet. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L464)
161
+ - `isInSubnet: (this: Address4 | Address6, address: Address4 | Address6) => boolean` — Returns true if the given address is in the subnet of the current address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L446)
162
+ - `isHostInSubnet: (this: Address4 | Address6, address: Address4 | Address6) => boolean` — Returns true if this address's host bits fall inside the given subnet, ignoring this address's own subnet mask. See common.isHostInSubnet. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv4.ts#L454)
173
163
 
174
- #### Address6
164
+ </details>
175
165
 
176
- Represents an IPv6 address
166
+ <details>
167
+ <summary><a id="address6"></a><strong>Address6</strong> — Represents an IPv6 address</summary>
177
168
 
178
169
  **Constructor**
179
170
 
@@ -181,95 +172,118 @@ Represents an IPv6 address
181
172
 
182
173
  **Static methods**
183
174
 
184
- - `static isValid(address: string): boolean` — Returns true if the given string is a valid IPv6 address (with optional CIDR subnet and zone identifier), false otherwise. Host bits in the subnet portion are allowed (e.g. `2001:db8::1/32` is valid); for strict network-address validation compare `correctForm()` to `startAddress().correctForm()`, or use `networkForm()`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L168)
185
- - `static fromBigInt(bigInt: bigint): Address6` — Convert a BigInt to a v6 address object. The value must be in the range `[0, 2**128 - 1]`; otherwise `AddressError` is thrown. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L189)
186
- - `static fromURL(url: string): { error: string; address: null; port: null } | { error?: undefined; address: Address6; port: number | null }` — Parse a URL (with optional bracketed host and port) into an address and port. Returns either `{ address, port }` on success or `{ error, address: null, port: null }` if the URL could not be parsed. Ports are returned as numbers (or `null` if absent or out of range). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L214)
187
- - `static fromAddressAndMask(address: string, mask: string): Address6` — Construct an `Address6` from an address and a hex subnet mask given as separate strings (e.g. as returned by Node's `os.networkInterfaces()`). Throws `AddressError` if the mask is non-contiguous (e.g. `ffff::ffff`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L278)
188
- - `static fromAddressAndWildcardMask(address: string, wildcardMask: string): Address6` — Construct an `Address6` from an address and a Cisco-style wildcard mask given as separate strings (e.g. `::ffff:ffff:ffff:ffff` for a `/64`). The wildcard mask is the bitwise inverse of the subnet mask. Throws `AddressError` if the mask is non-contiguous. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L292)
189
- - `static fromWildcard(input: string): Address6` — Construct an `Address6` from a wildcard pattern with trailing `*` groups. The number of trailing wildcards determines the prefix length: each `*` represents 16 bits. `::` is expanded to zero groups (not wildcards) before evaluating trailing wildcards. Only trailing whole-group wildcards are supported. Partial-group wildcards (e.g. `2001:db8::0*`) and interior wildcards (e.g. `*::1`) throw `AddressError`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L315)
190
- - `static fromAddress4(address: string): Address6` — Create an IPv6-mapped address given an IPv4 address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L376)
191
- - `static fromArpa(arpaFormAddress: string): Address6` — Return an address from ip6.arpa form [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L392)
192
- - `static fromAddress4Nat64(address: string, prefix: string): Address6` — Embed an IPv4 address into a NAT64 IPv6 address using the encoding defined by [RFC 6052](https://datatracker.ietf.org/doc/html/rfc6052). The default prefix is the well-known prefix `64:ff9b::/96`. The prefix length must be one of 32, 40, 48, 56, 64, or 96; for prefixes shorter than /64 the IPv4 octets are split around the reserved bits 64–71. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1059)
193
- - `static fromByteArray(bytes: any[]): Address6` — Convert a byte array to an Address6 object. To convert from a Node.js `Buffer`, spread it: `Address6.fromByteArray([...buf])`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1162)
194
- - `static fromUnsignedByteArray(bytes: any[]): Address6` — Convert an unsigned byte array to an Address6 object. To convert from a Node.js `Buffer`, spread it: `Address6.fromUnsignedByteArray([...buf])`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1172)
175
+ - `static isValid(address: string): boolean` — Returns true if the given string is a valid IPv6 address (with optional CIDR subnet and zone identifier), false otherwise. Host bits in the subnet portion are allowed (e.g. `2001:db8::1/32` is valid); for strict network-address validation compare `correctForm()` to `startAddress().correctForm()`, or use `networkForm()`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L167)
176
+ - `static fromBigInt(bigInt: bigint): Address6` — Convert a BigInt to a v6 address object. The value must be in the range `[0, 2**128 - 1]`; otherwise `AddressError` is thrown. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L188)
177
+ - `static fromURL(url: string): { error: string; address: null; port: null } | { error?: undefined; address: Address6; port: number | null }` — Parse a URL (with optional bracketed host and port) into an address and port. Returns either `{ address, port }` on success or `{ error, address: null, port: null }` if the URL could not be parsed. Ports are returned as numbers (or `null` if absent or out of range). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L213)
178
+ - `static fromAddressAndMask(address: string, mask: string): Address6` — Construct an `Address6` from an address and a hex subnet mask given as separate strings (e.g. as returned by Node's `os.networkInterfaces()`). Throws `AddressError` if the mask is non-contiguous (e.g. `ffff::ffff`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L277)
179
+ - `static fromAddressAndWildcardMask(address: string, wildcardMask: string): Address6` — Construct an `Address6` from an address and a Cisco-style wildcard mask given as separate strings (e.g. `::ffff:ffff:ffff:ffff` for a `/64`). The wildcard mask is the bitwise inverse of the subnet mask. Throws `AddressError` if the mask is non-contiguous. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L291)
180
+ - `static fromWildcard(input: string): Address6` — Construct an `Address6` from a wildcard pattern with trailing `*` groups. The number of trailing wildcards determines the prefix length: each `*` represents 16 bits. `::` is expanded to zero groups (not wildcards) before evaluating trailing wildcards. Only trailing whole-group wildcards are supported. Partial-group wildcards (e.g. `2001:db8::0*`) and interior wildcards (e.g. `*::1`) throw `AddressError`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L313)
181
+ - `static fromAddress4(address: string): Address6` — Create an IPv6-mapped address given an IPv4 address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L374)
182
+ - `static fromArpa(arpaFormAddress: string): Address6` — Return an address from ip6.arpa form [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L390)
183
+ - `static fromAddress4Nat64(address: string, prefix: string): Address6` — Embed an IPv4 address into a NAT64 IPv6 address using the encoding defined by [RFC 6052](https://datatracker.ietf.org/doc/html/rfc6052). The default prefix is the well-known prefix `64:ff9b::/96`. The prefix length must be one of 32, 40, 48, 56, 64, or 96; for prefixes shorter than /64 the IPv4 octets are split around the reserved bits 64–71. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1060)
184
+ - `static fromByteArray(bytes: number[]): Address6` — Convert a byte array to an Address6 object. Accepts unsigned bytes (0 to 255) or signed bytes (-128 to 127, as an `Int8Array` or a Java `byte[]` holds them), folding signed values to their unsigned equivalent. Throws `AddressError` unless given exactly 16 integers from -128 to 255. To convert from a Node.js `Buffer`, spread it: `Address6.fromByteArray([...buf])`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1175)
185
+ - `static fromUnsignedByteArray(bytes: number[]): Address6` — Convert an unsigned byte array to an Address6 object. Throws `AddressError` unless given exactly 16 integers from 0 to 255. To convert from a Node.js `Buffer`, spread it: `Address6.fromUnsignedByteArray([...buf])`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1192)
195
186
 
196
187
  **Instance methods**
197
188
 
198
- - `microsoftTranscription(): string` — Return the Microsoft UNC transcription of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L418)
199
- - `mask(mask?: number): string` — Return the first n bits of the address, defaulting to the subnet mask [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L427)
200
- - `possibleSubnets(subnetSize?: number): string` — Return the number of possible subnets of a given size in the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L437)
201
- - `startAddress(): Address6` — The first address in the range given by this address' subnet Often referred to as the Network Address. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L462)
202
- - `startAddressExclusive(): Address6` — The first host address in the range given by this address's subnet ie the first address after the Network Address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L471)
203
- - `endAddress(): Address6` — The last address in the range given by this address' subnet Often referred to as the Broadcast [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L489)
204
- - `endAddressExclusive(): Address6` — The last host address in the range given by this address's subnet ie the last address prior to the Broadcast Address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L498)
205
- - `subnetMaskAddress(): Address6` — The hex form of the subnet mask, e.g. `ffff:ffff:ffff:ffff::` for a `/64`. Returns an `Address6`; call `.correctForm()` for the string. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L508)
206
- - `wildcardMask(): Address6` — The Cisco-style wildcard mask, e.g. `::ffff:ffff:ffff:ffff` for a `/64`. This is the bitwise inverse of `subnetMaskAddress()`. Returns an `Address6`; call `.correctForm()` for the string. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L520)
207
- - `networkForm(): string` — The network address in CIDR string form, e.g. `2001:db8::/32` for `2001:db8::1/32`. For an address with no explicit subnet the prefix is `/128`, e.g. `networkForm()` on `2001:db8::1` returns `2001:db8::1/128`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L533)
208
- - `getScope(): string` — Return the scope of the address. The 4-bit scope field ([RFC 4291 §2.7](https://datatracker.ietf.org/doc/html/rfc4291#section-2.7)) is only defined for multicast addresses; for unicast addresses the scope is derived from the address type per [RFC 4007 §6](https://datatracker.ietf.org/doc/html/rfc4007#section-6). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L545)
209
- - `getType(): string` — Return the type of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L572)
210
- - `getBits(start: number, end: number): bigint` — Return the bits in the given range as a BigInt [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L587)
211
- - `getBitsBase2(start: number, end: number): string` — Return the bits in the given range as a base-2 string [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L595)
212
- - `getBitsBase16(start: number, end: number): string` — Return the bits in the given range as a base-16 string [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L603)
213
- - `getBitsPastSubnet(): string` — Return the bits that are set past the subnet mask length [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L619)
214
- - `reverseForm(options?: ReverseFormOptions): string` — Return the reversed ip6.arpa form of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L629)
215
- - `correctForm(): string` — Returns the address in correct form, per [RFC 5952](https://datatracker.ietf.org/doc/html/rfc5952): leading zeros stripped, the longest run of zero groups collapsed to `::`, and hex digits lowercased (e.g. `2001:db8::1`). This is the recommended form for display. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L664)
216
- - `binaryZeroPad(): string` — Return a zero-padded base-2 string representation of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L726)
217
- - `parse4in6(address: string): string` — Parses a v4-in-v6 string (e.g. `::ffff:192.168.0.1`) by extracting the trailing IPv4 address into `this.address4` / `this.parsedAddress4` and returning the address with the v4 portion converted to two v6 groups. Used internally by `parse()`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L740)
218
- - `parse(address: string): string[]` — Parses an IPv6 address string into its 8 hexadecimal groups (expanding any `::` elision and any trailing v4-in-v6 portion) and stores the result on `this.parsedAddress`. Called automatically by the constructor; you typically don't need to call it directly. Throws `AddressError` if the input is malformed. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L794)
219
- - `canonicalForm(): string` — Returns the canonical (fully expanded) form of the address: all 8 groups, each padded to 4 hex digits, with no `::` collapsing (e.g. `2001:0db8:0000:0000:0000:0000:0000:0001`). Useful for sorting and byte-exact comparison. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L874)
220
- - `decimal(): string` — Return the decimal form of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L882)
221
- - `bigInt(): bigint` — Return the address as a BigInt [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L890)
222
- - `to4(): Address4` — Return the last two groups of this address as an IPv4 address string. If this address carries a CIDR prefix that covers the trailing 32 bits (i.e. `subnetMask >= 96`), the resulting `Address4` inherits the corresponding v4 prefix (`subnetMask - 96`); otherwise it defaults to `/32`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L905)
223
- - `to4in6(): string` — Return the v4-in-v6 form of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L927)
224
- - `inspectTeredo(): TeredoProperties` — Decodes the Teredo tunneling fields embedded in this address. Returns the Teredo prefix, server IPv4, client IPv4, raw flag bits, cone-NAT flag, UDP port, and Microsoft-format flag breakdown (reserved, universal/local, group/individual, nonce). Only meaningful for addresses in `2001::/32`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L948)
225
- - `inspect6to4(): SixToFourProperties` — Decodes the 6to4 tunneling fields embedded in this address. Returns the 6to4 prefix and the embedded IPv4 gateway address. Only meaningful for addresses in `2002::/16`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1013)
226
- - `to6to4(): Address6 | null` — Return a v6 6to4 address from a v6 v4inv6 address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1033)
227
- - `toAddress4Nat64(prefix: string): Address4 | null` — Extract the embedded IPv4 address from a NAT64 IPv6 address using the encoding defined by [RFC 6052](https://datatracker.ietf.org/doc/html/rfc6052). The default prefix is the well-known prefix `64:ff9b::/96`. Returns `null` if this address is not contained within the given prefix. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1100)
228
- - `toByteArray(): number[]` — Return a byte array. To get a Node.js `Buffer`, wrap the result: `Buffer.from(address.toByteArray())`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1135)
229
- - `toUnsignedByteArray(): number[]` — Return an unsigned byte array. To get a Node.js `Buffer`, wrap the result: `Buffer.from(address.toUnsignedByteArray())`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1152)
230
- - `isCanonical(): boolean` — Returns true if the address is in the canonical form, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1211)
231
- - `isLinkLocal(): boolean` — Returns true if the address is a link local address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1219)
232
- - `isMulticast(): boolean` — Returns true if the address is a multicast address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1240)
233
- - `is4(): boolean` — Returns true if the address was written in v4-in-v6 dotted-quad notation (e.g. `::ffff:127.0.0.1`), false otherwise. This is a notation-level flag and does not reflect whether the address bits lie in the IPv4-mapped (`::ffff:0:0/96`) subnet — for that, see isMapped4. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1257)
234
- - `isMapped4(): boolean` — Returns true if the address is an IPv4-mapped IPv6 address in `::ffff:0:0/96` ([RFC 4291 §2.5.5.2](https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.2)), false otherwise. Unlike is4, this checks the underlying address bits rather than the textual notation, so `::ffff:127.0.0.1` and `::ffff:7f00:1` both return true. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1269)
235
- - `embeddedIPv4(): Address4 | null` — If this address embeds a routable IPv4 address — i.e. it is IPv4-mapped (`::ffff:0:0/96`) or sits in the NAT64 well-known prefix (`64:ff9b::/96`, [RFC 6052](https://datatracker.ietf.org/doc/html/rfc6052)) — return that embedded address as an Address4; otherwise return null. The special-property checks (`isLoopback`, `isLinkLocal`, `isMulticast`, `isUnspecified`, `isPrivate`, `isCGNAT`, `isBroadcast`) call this first and delegate to the embedded Address4 when present, so a literal such as `::ffff:127.0.0.1` is classified by what it actually reaches (loopback) rather than by its IPv6 wrapper (which `getType()` reports as IPv4-mapped). This matters wherever the checks back a trust-boundary decision (e.g. an SSRF allow/deny filter): without normalization, `::ffff:10.0.0.1`, `::ffff:169.254.169.254`, `64:ff9b::7f00:1`, etc. would all read as non-internal. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1290)
236
- - `isTeredo(): boolean` — Returns true if the address is a Teredo address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1302)
237
- - `is6to4(): boolean` — Returns true if the address is a 6to4 address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1310)
238
- - `isLoopback(): boolean` — Returns true if the address is a loopback address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1318)
239
- - `isULA(): boolean` — Returns true if the address is a Unique Local Address in `fc00::/7` ([RFC 4193](https://datatracker.ietf.org/doc/html/rfc4193)). ULAs are the IPv6 equivalent of IPv4 [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918) private addresses. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1331)
240
- - `isPrivate(): boolean` — Returns true if the address is private, i.e. a Unique Local Address in `fc00::/7` ([RFC 4193](https://datatracker.ietf.org/doc/html/rfc4193)) or an IPv4-mapped / NAT64 address whose embedded IPv4 address is in one of the [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918) private ranges (e.g. `::ffff:10.0.0.1`). This is the IPv6 counterpart to Address4.isPrivate; use it instead of isULA when you need to catch mapped RFC 1918 addresses as well as native ULAs. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1345)
241
- - `isCGNAT(): boolean` — Returns true if the address is an IPv4-mapped / NAT64 address whose embedded IPv4 address is in the carrier-grade NAT range `100.64.0.0/10` ([RFC 6598](https://datatracker.ietf.org/doc/html/rfc6598)), false otherwise. There is no native IPv6 CGNAT range, so this only ever returns true for an embedded IPv4 address (e.g. `::ffff:100.64.0.1`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1362)
242
- - `isBroadcast(): boolean` — Returns true if the address is an IPv4-mapped / NAT64 address whose embedded IPv4 address is the limited broadcast address `255.255.255.255` ([RFC 919](https://datatracker.ietf.org/doc/html/rfc919)), false otherwise. There is no IPv6 broadcast, so this only ever returns true for an embedded IPv4 address (e.g. `::ffff:255.255.255.255`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1379)
243
- - `isUnspecified(): boolean` — Returns true if the address is the unspecified address `::`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1392)
244
- - `isDocumentation(): boolean` — Returns true if the address is in the documentation prefix `2001:db8::/32` ([RFC 3849](https://datatracker.ietf.org/doc/html/rfc3849)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1405)
245
- - `href(optionalPort?: string | number): string` — Returns the address as an HTTP URL with the host bracketed, e.g. `http://[2001:db8::1]/`. If `optionalPort` is provided it is appended, e.g. `http://[2001:db8::1]:8080/`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1416)
246
- - `link(options?: { className?: string; prefix?: string; v4?: boolean }): string` — Returns an HTML `<a>` element whose `href` encodes the address in a URL hash fragment (default prefix `/#address=`). Useful for linking between pages of an address-inspector UI. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1434)
247
- - `group(): string` — Groups an address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1474)
248
- - `regularExpressionString(this: Address6, substringSearch: boolean): string` — Generate a regular expression string that can be used to find or validate all variations of this address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1526)
249
- - `regularExpression(this: Address6, substringSearch: boolean): RegExp` — Generate a regular expression that can be used to find or validate all variations of this address. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1580)
189
+ - `microsoftTranscription(): string` — Return the Microsoft UNC transcription of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L416)
190
+ - `mask(mask?: number): string` — Return the first n bits of the address, defaulting to the subnet mask [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L425)
191
+ - `possibleSubnets(subnetSize?: number): string` — Return the number of possible subnets of a given size in the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L435)
192
+ - `startAddress(): Address6` — The first address in the range given by this address' subnet Often referred to as the Network Address. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L460)
193
+ - `startAddressExclusive(): Address6` — The first host address in the range given by this address's subnet ie the first address after the Network Address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L469)
194
+ - `endAddress(): Address6` — The last address in the range given by this address' subnet Often referred to as the Broadcast [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L487)
195
+ - `endAddressExclusive(): Address6` — The last host address in the range given by this address's subnet ie the last address prior to the Broadcast Address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L496)
196
+ - `subnetMaskAddress(): Address6` — The hex form of the subnet mask, e.g. `ffff:ffff:ffff:ffff::` for a `/64`. Returns an `Address6`; call `.correctForm()` for the string. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L506)
197
+ - `wildcardMask(): Address6` — The Cisco-style wildcard mask, e.g. `::ffff:ffff:ffff:ffff` for a `/64`. This is the bitwise inverse of `subnetMaskAddress()`. Returns an `Address6`; call `.correctForm()` for the string. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L518)
198
+ - `networkForm(): string` — The network address in CIDR string form, e.g. `2001:db8::/32` for `2001:db8::1/32`. For an address with no explicit subnet the prefix is `/128`, e.g. `networkForm()` on `2001:db8::1` returns `2001:db8::1/128`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L531)
199
+ - `getScope(): string` — Return the scope of the address. The 4-bit scope field ([RFC 4291 §2.7](https://datatracker.ietf.org/doc/html/rfc4291#section-2.7)) is only defined for multicast addresses; for unicast addresses the scope is derived from the address type per [RFC 4007 §6](https://datatracker.ietf.org/doc/html/rfc4007#section-6). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L543)
200
+ - `getType(): string` — Return the type of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L570)
201
+ - `getBits(start: number, end: number): bigint` — Return the bits in the given range as a BigInt [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L585)
202
+ - `getBitsBase2(start: number, end: number): string` — Return the bits in the given range as a base-2 string [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L593)
203
+ - `getBitsBase16(start: number, end: number): string` — Return the bits in the given range as a base-16 string [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L601)
204
+ - `getBitsPastSubnet(): string` — Return the bits that are set past the subnet mask length [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L617)
205
+ - `reverseForm(options?: ReverseFormOptions): string` — Return the reversed ip6.arpa form of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L627)
206
+ - `correctForm(): string` — Returns the address in correct form, per [RFC 5952](https://datatracker.ietf.org/doc/html/rfc5952): leading zeros stripped, the longest run of zero groups collapsed to `::`, and hex digits lowercased (e.g. `2001:db8::1`). This is the recommended form for display. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L662)
207
+ - `binaryZeroPad(): string` — Return a zero-padded base-2 string representation of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L724)
208
+ - `parse4in6(address: string): string` — Parses a v4-in-v6 string (e.g. `::ffff:192.168.0.1`) by extracting the trailing IPv4 address into `this.address4` / `this.parsedAddress4` and returning the address with the v4 portion converted to two v6 groups. Used internally by `parse()`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L738)
209
+ - `parse(address: string): string[]` — Parses an IPv6 address string into its 8 hexadecimal groups (expanding any `::` elision and any trailing v4-in-v6 portion) and stores the result on `this.parsedAddress`. Called automatically by the constructor; you typically don't need to call it directly. Throws `AddressError` if the input is malformed. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L795)
210
+ - `canonicalForm(): string` — Returns the canonical (fully expanded) form of the address: all 8 groups, each padded to 4 hex digits, with no `::` collapsing (e.g. `2001:0db8:0000:0000:0000:0000:0000:0001`). Useful for sorting and byte-exact comparison. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L875)
211
+ - `decimal(): string` — Return the decimal form of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L883)
212
+ - `bigInt(): bigint` — Return the address as a BigInt [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L891)
213
+ - `to4(): Address4` — Return the last two groups of this address as an IPv4 address string. If this address carries a CIDR prefix that covers the trailing 32 bits (i.e. `subnetMask >= 96`), the resulting `Address4` inherits the corresponding v4 prefix (`subnetMask - 96`); otherwise it defaults to `/32`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L906)
214
+ - `to4in6(): string` — Return the v4-in-v6 form of the address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L930)
215
+ - `inspectTeredo(): TeredoProperties` — Decodes the Teredo tunneling fields embedded in this address. Returns the Teredo prefix, server IPv4, client IPv4, raw flag bits, cone-NAT flag, UDP port, and Microsoft-format flag breakdown (reserved, universal/local, group/individual, nonce). Only meaningful for addresses in `2001::/32`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L951)
216
+ - `inspect6to4(): SixToFourProperties` — Decodes the 6to4 tunneling fields embedded in this address. Returns the 6to4 prefix and the embedded IPv4 gateway address. Only meaningful for addresses in `2002::/16`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1014)
217
+ - `to6to4(): Address6 | null` — Return a v6 6to4 address from a v6 v4inv6 address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1034)
218
+ - `toAddress4Nat64(prefix: string): Address4 | null` — Extract the embedded IPv4 address from a NAT64 IPv6 address using the encoding defined by [RFC 6052](https://datatracker.ietf.org/doc/html/rfc6052). The default prefix is the well-known prefix `64:ff9b::/96`. Returns `null` if this address is not contained within the given prefix. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1103)
219
+ - `toByteArray(): number[]` — Return a byte array. To get a Node.js `Buffer`, wrap the result: `Buffer.from(address.toByteArray())`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1138)
220
+ - `toUnsignedByteArray(): number[]` — Return an unsigned byte array. To get a Node.js `Buffer`, wrap the result: `Buffer.from(address.toUnsignedByteArray())`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1157)
221
+ - `isCanonical(): boolean` — Returns true if the address is in the canonical form, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1233)
222
+ - `isLinkLocal(): boolean` — Returns true if the address is a link local address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1241)
223
+ - `isMulticast(): boolean` — Returns true if the address is a multicast address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1262)
224
+ - `is4(): boolean` — Returns true if the address was written in v4-in-v6 dotted-quad notation (e.g. `::ffff:127.0.0.1`), false otherwise. This is a notation-level flag and does not reflect whether the address bits lie in the IPv4-mapped (`::ffff:0:0/96`) subnet — for that, see isMapped4. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1279)
225
+ - `isMapped4(): boolean` — Returns true if the address is an IPv4-mapped IPv6 address in `::ffff:0:0/96` ([RFC 4291 §2.5.5.2](https://datatracker.ietf.org/doc/html/rfc4291#section-2.5.5.2)), false otherwise. Unlike is4, this checks the underlying address bits rather than the textual notation, so `::ffff:127.0.0.1` and `::ffff:7f00:1` both return true. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1291)
226
+ - `embeddedIPv4(): Address4 | null` — If this address embeds a routable IPv4 address — i.e. it is IPv4-mapped (`::ffff:0:0/96`) or sits in the NAT64 well-known prefix (`64:ff9b::/96`, [RFC 6052](https://datatracker.ietf.org/doc/html/rfc6052)) — return that embedded address as an Address4; otherwise return null. The special-property checks (`isLoopback`, `isLinkLocal`, `isMulticast`, `isUnspecified`, `isPrivate`, `isCGNAT`, `isBroadcast`) call this first and delegate to the embedded Address4 when present, so a literal such as `::ffff:127.0.0.1` is classified by what it actually reaches (loopback) rather than by its IPv6 wrapper (which `getType()` reports as IPv4-mapped). This matters wherever the checks back a trust-boundary decision (e.g. an SSRF allow/deny filter): without normalization, `::ffff:10.0.0.1`, `::ffff:169.254.169.254`, `64:ff9b::7f00:1`, etc. would all read as non-internal. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1312)
227
+ - `isTeredo(): boolean` — Returns true if the address is a Teredo address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1324)
228
+ - `is6to4(): boolean` — Returns true if the address is a 6to4 address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1332)
229
+ - `isLoopback(): boolean` — Returns true if the address is a loopback address, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1340)
230
+ - `isULA(): boolean` — Returns true if the address is a Unique Local Address in `fc00::/7` ([RFC 4193](https://datatracker.ietf.org/doc/html/rfc4193)). ULAs are the IPv6 equivalent of IPv4 [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918) private addresses. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1353)
231
+ - `isPrivate(): boolean` — Returns true if the address is private, i.e. a Unique Local Address in `fc00::/7` ([RFC 4193](https://datatracker.ietf.org/doc/html/rfc4193)) or an IPv4-mapped / NAT64 address whose embedded IPv4 address is in one of the [RFC 1918](https://datatracker.ietf.org/doc/html/rfc1918) private ranges (e.g. `::ffff:10.0.0.1`). This is the IPv6 counterpart to Address4.isPrivate; use it instead of isULA when you need to catch mapped RFC 1918 addresses as well as native ULAs. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1367)
232
+ - `isCGNAT(): boolean` — Returns true if the address is an IPv4-mapped / NAT64 address whose embedded IPv4 address is in the carrier-grade NAT range `100.64.0.0/10` ([RFC 6598](https://datatracker.ietf.org/doc/html/rfc6598)), false otherwise. There is no native IPv6 CGNAT range, so this only ever returns true for an embedded IPv4 address (e.g. `::ffff:100.64.0.1`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1384)
233
+ - `isBroadcast(): boolean` — Returns true if the address is an IPv4-mapped / NAT64 address whose embedded IPv4 address is the limited broadcast address `255.255.255.255` ([RFC 919](https://datatracker.ietf.org/doc/html/rfc919)), false otherwise. There is no IPv6 broadcast, so this only ever returns true for an embedded IPv4 address (e.g. `::ffff:255.255.255.255`). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1401)
234
+ - `isUnspecified(): boolean` — Returns true if the address is the unspecified address `::`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1414)
235
+ - `isDocumentation(): boolean` — Returns true if the address is in the documentation prefix `2001:db8::/32` ([RFC 3849](https://datatracker.ietf.org/doc/html/rfc3849)). [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1427)
236
+ - `href(optionalPort?: string | number): string` — Returns the address as an HTTP URL with the host bracketed, e.g. `http://[2001:db8::1]/`. If `optionalPort` is provided it is appended, e.g. `http://[2001:db8::1]:8080/`. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1438)
237
+ - `link(options?: { className?: string; prefix?: string; v4?: boolean }): string` — Returns an HTML `<a>` element whose `href` encodes the address in a URL hash fragment (default prefix `/#address=`). Useful for linking between pages of an address-inspector UI. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1456)
238
+ - `group(): string` — Groups an address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1496)
239
+ - `regularExpressionString(this: Address6, substringSearch: boolean): string` — Generate a regular expression string that can be used to find or validate all variations of this address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1548)
240
+ - `regularExpression(this: Address6, substringSearch: boolean): RegExp` — Generate a regular expression that can be used to find or validate all variations of this address. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1602)
250
241
 
251
242
  **Properties**
252
243
 
253
- - `address4: Address4` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L98)
254
- - `address: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L99)
255
- - `addressMinusSuffix: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L100)
256
- - `elidedGroups: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L101)
257
- - `elisionBegin: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L102)
258
- - `elisionEnd: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L103)
259
- - `groups: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L104)
260
- - `parsedAddress4: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L105)
261
- - `parsedAddress: string[]` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L106)
262
- - `parsedSubnet: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L107)
263
- - `subnet: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L108)
264
- - `subnetMask: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L109)
265
- - `v4: boolean` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L110)
266
- - `zone: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L111)
267
- - `isInSubnet: (this: Address4 | Address6, address: Address4 | Address6) => boolean` — Returns true if the given address is in the subnet of the current address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1191)
268
- - `isHostInSubnet: (this: Address4 | Address6, address: Address4 | Address6) => boolean` — Returns true if this address's host bits fall inside the given subnet, ignoring this address's own subnet mask. See common.isHostInSubnet. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1199)
269
- - `isCorrect: (this: Address4 | Address6) => boolean` — Returns true if the address is correct, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1205)
244
+ - `address4: Address4` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L97)
245
+ - `address: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L98)
246
+ - `addressMinusSuffix: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L99)
247
+ - `elidedGroups: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L100)
248
+ - `elisionBegin: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L101)
249
+ - `elisionEnd: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L102)
250
+ - `groups: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L103)
251
+ - `parsedAddress4: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L104)
252
+ - `parsedAddress: string[]` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L105)
253
+ - `parsedSubnet: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L106)
254
+ - `subnet: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L107)
255
+ - `subnetMask: number` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L108)
256
+ - `v4: boolean` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L109)
257
+ - `zone: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L110)
258
+ - `isInSubnet: (this: Address4 | Address6, address: Address4 | Address6) => boolean` — Returns true if the given address is in the subnet of the current address [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1213)
259
+ - `isHostInSubnet: (this: Address4 | Address6, address: Address4 | Address6) => boolean` — Returns true if this address's host bits fall inside the given subnet, ignoring this address's own subnet mask. See common.isHostInSubnet. [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1221)
260
+ - `isCorrect: (this: Address4 | Address6) => boolean` — Returns true if the address is correct, false otherwise [src](https://github.com/beaugunderson/ip-address/blob/master/src/ipv6.ts#L1227)
261
+
262
+ </details>
263
+
264
+ <details>
265
+ <summary><a id="addresserror"></a><strong>AddressError</strong></summary>
266
+
267
+ **Constructor**
268
+
269
+ - `new AddressError(message: string, parseMessage?: string): AddressError`
270
+
271
+ **Properties**
272
+
273
+ - `parseMessage: string` — [src](https://github.com/beaugunderson/ip-address/blob/master/src/address-error.ts#L2)
274
+
275
+ </details>
270
276
 
271
277
  <!-- API:END -->
272
278
 
279
+ ### Security
280
+
281
+ Vulnerabilities go through [GitHub's private vulnerability reporting](https://github.com/beaugunderson/ip-address/security/advisories/new); [SECURITY.md](./SECURITY.md) has the scope and what to expect. Confirmed issues get a fix, a release, and a public [advisory](https://github.com/beaugunderson/ip-address/security/advisories) with a CVE, rather than a quiet patch.
282
+
283
+ Releases are built and published by CI through npm trusted publishing. Every version from 10.2.1 onward carries a provenance attestation tying the tarball to the commit and workflow that built it. Check it with `npm audit signatures`.
284
+
285
+ If you are using the address-property checks as a security control, read [that section of SECURITY.md](./SECURITY.md#classifiers-are-not-an-ssrf-defense) first. `isPrivate()`, `isLoopback()`, `isInSubnet()` and their siblings classify an address that has already been parsed, which makes them one layer of an SSRF guard rather than the whole of it. A hostname that resolves to an internal address, a DNS record that changes after your check, or a redirect will all sail past a guard built only on them.
286
+
273
287
  ### Used by
274
288
 
275
289
  `ip-address` is downloaded ~66 million times per week, mostly via the Node proxy/agent ecosystem. The dependency chain runs through a handful of widely-used packages:
@@ -34,6 +34,12 @@ export declare function isCorrect(defaultBits: number): (this: Address4 | Addres
34
34
  * `255.0.255.0`).
35
35
  */
36
36
  export declare function prefixLengthFromMask(value: bigint, totalBits: number): number;
37
+ /**
38
+ * Throws `AddressError` unless `bytes` holds exactly `byteCount` integers,
39
+ * each from `minimum` to 255. Pass a `minimum` of `-128` where signed bytes
40
+ * are accepted and folded to unsigned, and `0` where they are not.
41
+ */
42
+ export declare function assertByteArray(bytes: number[], byteCount: number, family: 'IPv4' | 'IPv6', minimum: number): void;
37
43
  export declare function numberToPaddedHex(number: number): string;
38
44
  export declare function stringToPaddedHex(numberString: string): string;
39
45
  /**
@@ -4,6 +4,7 @@ exports.isInSubnet = isInSubnet;
4
4
  exports.isHostInSubnet = isHostInSubnet;
5
5
  exports.isCorrect = isCorrect;
6
6
  exports.prefixLengthFromMask = prefixLengthFromMask;
7
+ exports.assertByteArray = assertByteArray;
7
8
  exports.numberToPaddedHex = numberToPaddedHex;
8
9
  exports.stringToPaddedHex = stringToPaddedHex;
9
10
  exports.testBit = testBit;
@@ -40,7 +41,7 @@ function isHostInSubnet(address) {
40
41
  return this.mask(address.subnetMask) === address.mask();
41
42
  }
42
43
  function isCorrect(defaultBits) {
43
- return function () {
44
+ return function isCorrectForm() {
44
45
  if (this.addressMinusSuffix !== this.correctForm()) {
45
46
  return false;
46
47
  }
@@ -69,6 +70,21 @@ function prefixLengthFromMask(value, totalBits) {
69
70
  }
70
71
  return firstZero;
71
72
  }
73
+ /**
74
+ * Throws `AddressError` unless `bytes` holds exactly `byteCount` integers,
75
+ * each from `minimum` to 255. Pass a `minimum` of `-128` where signed bytes
76
+ * are accepted and folded to unsigned, and `0` where they are not.
77
+ */
78
+ function assertByteArray(bytes, byteCount, family, minimum) {
79
+ if (bytes.length !== byteCount) {
80
+ throw new address_error_1.AddressError(`${family} addresses require exactly ${byteCount} bytes`);
81
+ }
82
+ for (let i = 0; i < bytes.length; i++) {
83
+ if (!Number.isInteger(bytes[i]) || bytes[i] < minimum || bytes[i] > 255) {
84
+ throw new address_error_1.AddressError(`All bytes must be integers between ${minimum} and 255`);
85
+ }
86
+ }
87
+ }
72
88
  function numberToPaddedHex(number) {
73
89
  return number.toString(16).padStart(2, '0');
74
90
  }
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;AAkBA,gCAMC;AAcD,wCAEC;AAED,8BAYC;AAOD,oDAkBC;AAED,8CAEC;AAED,8CAEC;AAMD,0BASC;AApGD,mDAA+C;AAM/C;;;;;;;;;GASG;AACH,SAAgB,UAAU,CAA4B,OAA4B;IAChF,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,cAAc,CAA4B,OAA4B;IACpF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,SAAgB,SAAS,CAAC,WAAmB;IAC3C,OAAO;QACL,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,KAAa,EAAE,SAAiB;IACnE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAE1D,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,4BAAY,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,4BAAY,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,iBAAiB,CAAC,YAAoB;IACpD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,WAAmB,EAAE,QAAgB;IAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAE/B,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,OAAO,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;AAC/E,CAAC","sourcesContent":["import { Address4 } from './ipv4';\nimport { Address6 } from './ipv6';\nimport { AddressError } from './address-error';\n\nexport interface ReverseFormOptions {\n omitSuffix?: boolean;\n}\n\n/**\n * Returns whether this address's *network* is contained within `address`,\n * i.e. whether every address this one can represent also falls inside\n * `address`. A network wider than `address` is not contained in it, so\n * `10.0.0.0/8` is not in `10.0.0.0/16`.\n *\n * To ask whether the address itself falls inside a range, ignoring any CIDR\n * suffix it was written with, use {@link isHostInSubnet} instead. That is the\n * question the special-use classifiers ask.\n */\nexport function isInSubnet(this: Address4 | Address6, address: Address4 | Address6) {\n if (this.subnetMask < address.subnetMask) {\n return false;\n }\n\n return isHostInSubnet.call(this, address);\n}\n\n/**\n * Returns whether this address's host bits fall inside `address`, ignoring\n * this address's own subnet mask.\n *\n * This is the primitive the special-use classifiers (`isLoopback`,\n * `isPrivate`, `isLinkLocal`, `getType`, …) are built on: they answer a\n * question about the address, so the answer must not change with the CIDR\n * suffix the caller happened to write. Use this rather than\n * {@link isInSubnet} when classifying a single address — notably when the\n * address came from untrusted input and the result backs a trust-boundary\n * decision such as an SSRF allow/deny filter.\n */\nexport function isHostInSubnet(this: Address4 | Address6, address: Address4 | Address6) {\n return this.mask(address.subnetMask) === address.mask();\n}\n\nexport function isCorrect(defaultBits: number) {\n return function (this: Address4 | Address6) {\n if (this.addressMinusSuffix !== this.correctForm()) {\n return false;\n }\n\n if (this.subnetMask === defaultBits && !this.parsedSubnet) {\n return true;\n }\n\n return this.parsedSubnet === String(this.subnetMask);\n };\n}\n\n/**\n * Returns the prefix length (number of leading 1 bits) of a contiguous\n * subnet mask. Throws `AddressError` if the mask is non-contiguous (e.g.\n * `255.0.255.0`).\n */\nexport function prefixLengthFromMask(value: bigint, totalBits: number): number {\n const binary = value.toString(2).padStart(totalBits, '0');\n\n if (binary.length > totalBits) {\n throw new AddressError('Invalid subnet mask.');\n }\n\n const firstZero = binary.indexOf('0');\n\n if (firstZero === -1) {\n return totalBits;\n }\n\n if (binary.slice(firstZero).includes('1')) {\n throw new AddressError('Invalid subnet mask.');\n }\n\n return firstZero;\n}\n\nexport function numberToPaddedHex(number: number) {\n return number.toString(16).padStart(2, '0');\n}\n\nexport function stringToPaddedHex(numberString: string) {\n return numberToPaddedHex(parseInt(numberString, 10));\n}\n\n/**\n * @param binaryValue Binary representation of a value (e.g. `10`)\n * @param position Byte position, where 0 is the least significant bit\n */\nexport function testBit(binaryValue: string, position: number): boolean {\n const { length } = binaryValue;\n\n if (position > length) {\n return false;\n }\n\n const positionInString = length - position;\n return binaryValue.substring(positionInString, positionInString + 1) === '1';\n}\n"]}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;AAkBA,gCAMC;AAcD,wCAEC;AAED,8BAYC;AAOD,oDAkBC;AAOD,0CAeC;AAED,8CAEC;AAED,8CAEC;AAMD,0BASC;AA1HD,mDAA+C;AAM/C;;;;;;;;;GASG;AACH,SAAgB,UAAU,CAA4B,OAA4B;IAChF,IAAI,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACzC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AAC5C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,cAAc,CAA4B,OAA4B;IACpF,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,OAAO,CAAC,IAAI,EAAE,CAAC;AAC1D,CAAC;AAED,SAAgB,SAAS,CAAC,WAAmB;IAC3C,OAAO,SAAS,aAAa;QAC3B,IAAI,IAAI,CAAC,kBAAkB,KAAK,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,IAAI,CAAC,UAAU,KAAK,WAAW,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;YAC1D,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,YAAY,KAAK,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACvD,CAAC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAgB,oBAAoB,CAAC,KAAa,EAAE,SAAiB;IACnE,MAAM,MAAM,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAE1D,IAAI,MAAM,CAAC,MAAM,GAAG,SAAS,EAAE,CAAC;QAC9B,MAAM,IAAI,4BAAY,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,MAAM,SAAS,GAAG,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAEtC,IAAI,SAAS,KAAK,CAAC,CAAC,EAAE,CAAC;QACrB,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,4BAAY,CAAC,sBAAsB,CAAC,CAAC;IACjD,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;;;GAIG;AACH,SAAgB,eAAe,CAC7B,KAAe,EACf,SAAiB,EACjB,MAAuB,EACvB,OAAe;IAEf,IAAI,KAAK,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC/B,MAAM,IAAI,4BAAY,CAAC,GAAG,MAAM,8BAA8B,SAAS,QAAQ,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAE,CAAC;YACxE,MAAM,IAAI,4BAAY,CAAC,sCAAsC,OAAO,UAAU,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAgB,iBAAiB,CAAC,MAAc;IAC9C,OAAO,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC9C,CAAC;AAED,SAAgB,iBAAiB,CAAC,YAAoB;IACpD,OAAO,iBAAiB,CAAC,QAAQ,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,CAAC;AACvD,CAAC;AAED;;;GAGG;AACH,SAAgB,OAAO,CAAC,WAAmB,EAAE,QAAgB;IAC3D,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAE/B,IAAI,QAAQ,GAAG,MAAM,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAC;IAC3C,OAAO,WAAW,CAAC,SAAS,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC;AAC/E,CAAC","sourcesContent":["import { Address4 } from './ipv4';\nimport { Address6 } from './ipv6';\nimport { AddressError } from './address-error';\n\nexport interface ReverseFormOptions {\n omitSuffix?: boolean;\n}\n\n/**\n * Returns whether this address's *network* is contained within `address`,\n * i.e. whether every address this one can represent also falls inside\n * `address`. A network wider than `address` is not contained in it, so\n * `10.0.0.0/8` is not in `10.0.0.0/16`.\n *\n * To ask whether the address itself falls inside a range, ignoring any CIDR\n * suffix it was written with, use {@link isHostInSubnet} instead. That is the\n * question the special-use classifiers ask.\n */\nexport function isInSubnet(this: Address4 | Address6, address: Address4 | Address6) {\n if (this.subnetMask < address.subnetMask) {\n return false;\n }\n\n return isHostInSubnet.call(this, address);\n}\n\n/**\n * Returns whether this address's host bits fall inside `address`, ignoring\n * this address's own subnet mask.\n *\n * This is the primitive the special-use classifiers (`isLoopback`,\n * `isPrivate`, `isLinkLocal`, `getType`, …) are built on: they answer a\n * question about the address, so the answer must not change with the CIDR\n * suffix the caller happened to write. Use this rather than\n * {@link isInSubnet} when classifying a single address — notably when the\n * address came from untrusted input and the result backs a trust-boundary\n * decision such as an SSRF allow/deny filter.\n */\nexport function isHostInSubnet(this: Address4 | Address6, address: Address4 | Address6) {\n return this.mask(address.subnetMask) === address.mask();\n}\n\nexport function isCorrect(defaultBits: number) {\n return function isCorrectForm(this: Address4 | Address6) {\n if (this.addressMinusSuffix !== this.correctForm()) {\n return false;\n }\n\n if (this.subnetMask === defaultBits && !this.parsedSubnet) {\n return true;\n }\n\n return this.parsedSubnet === String(this.subnetMask);\n };\n}\n\n/**\n * Returns the prefix length (number of leading 1 bits) of a contiguous\n * subnet mask. Throws `AddressError` if the mask is non-contiguous (e.g.\n * `255.0.255.0`).\n */\nexport function prefixLengthFromMask(value: bigint, totalBits: number): number {\n const binary = value.toString(2).padStart(totalBits, '0');\n\n if (binary.length > totalBits) {\n throw new AddressError('Invalid subnet mask.');\n }\n\n const firstZero = binary.indexOf('0');\n\n if (firstZero === -1) {\n return totalBits;\n }\n\n if (binary.slice(firstZero).includes('1')) {\n throw new AddressError('Invalid subnet mask.');\n }\n\n return firstZero;\n}\n\n/**\n * Throws `AddressError` unless `bytes` holds exactly `byteCount` integers,\n * each from `minimum` to 255. Pass a `minimum` of `-128` where signed bytes\n * are accepted and folded to unsigned, and `0` where they are not.\n */\nexport function assertByteArray(\n bytes: number[],\n byteCount: number,\n family: 'IPv4' | 'IPv6',\n minimum: number,\n): void {\n if (bytes.length !== byteCount) {\n throw new AddressError(`${family} addresses require exactly ${byteCount} bytes`);\n }\n\n for (let i = 0; i < bytes.length; i++) {\n if (!Number.isInteger(bytes[i]) || bytes[i] < minimum || bytes[i] > 255) {\n throw new AddressError(`All bytes must be integers between ${minimum} and 255`);\n }\n }\n}\n\nexport function numberToPaddedHex(number: number) {\n return number.toString(16).padStart(2, '0');\n}\n\nexport function stringToPaddedHex(numberString: string) {\n return numberToPaddedHex(parseInt(numberString, 10));\n}\n\n/**\n * @param binaryValue Binary representation of a value (e.g. `10`)\n * @param position Byte position, where 0 is the least significant bit\n */\nexport function testBit(binaryValue: string, position: number): boolean {\n const { length } = binaryValue;\n\n if (position > length) {\n return false;\n }\n\n const positionInString = length - position;\n return binaryValue.substring(positionInString, positionInString + 1) === '1';\n}\n"]}
@@ -86,7 +86,7 @@ class Address4 {
86
86
  new Address4(address);
87
87
  return true;
88
88
  }
89
- catch (e) {
89
+ catch {
90
90
  return false;
91
91
  }
92
92
  }
@@ -141,7 +141,6 @@ class Address4 {
141
141
  static fromAddressAndWildcardMask(address, wildcardMask) {
142
142
  const wildcard = new Address4(wildcardMask).bigInt();
143
143
  const allOnes = (BigInt(1) << BigInt(constants.BITS)) - BigInt(1);
144
- // eslint-disable-next-line no-bitwise
145
144
  const mask = wildcard ^ allOnes;
146
145
  const bits = common.prefixLengthFromMask(mask, constants.BITS);
147
146
  return new Address4(`${address}/${bits}`);
@@ -341,7 +340,7 @@ class Address4 {
341
340
  * @returns {Address4}
342
341
  */
343
342
  static fromBigInt(bigInt) {
344
- if (bigInt < 0n || bigInt > 0xffffffffn) {
343
+ if (bigInt < BigInt(0) || bigInt > BigInt(0xffffffff)) {
345
344
  throw new address_error_1.AddressError('IPv4 BigInt must be in the range 0 to 2**32 - 1');
346
345
  }
347
346
  return Address4.fromHex(bigInt.toString(16).padStart(8, '0'));
@@ -354,15 +353,7 @@ class Address4 {
354
353
  * @returns {Address4}
355
354
  */
356
355
  static fromByteArray(bytes) {
357
- if (bytes.length !== 4) {
358
- throw new address_error_1.AddressError('IPv4 addresses require exactly 4 bytes');
359
- }
360
- // Validate that all bytes are within valid range (0-255)
361
- for (let i = 0; i < bytes.length; i++) {
362
- if (!Number.isInteger(bytes[i]) || bytes[i] < 0 || bytes[i] > 255) {
363
- throw new address_error_1.AddressError('All bytes must be integers between 0 and 255');
364
- }
365
- }
356
+ common.assertByteArray(bytes, 4, 'IPv4', 0);
366
357
  return this.fromUnsignedByteArray(bytes);
367
358
  }
368
359
  /**