@noodleseed/one 0.93.0 → 0.94.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (439) hide show
  1. package/dist/bin.js +0 -0
  2. package/dist/deploy.js +1 -1
  3. package/dist/deploy.js.map +1 -1
  4. package/dist/index.d.ts +1 -1
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +1 -1
  7. package/dist/index.js.map +1 -1
  8. package/dist/platform-support.js +2 -2
  9. package/dist/platform-support.js.map +1 -1
  10. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.d.ts.map +1 -1
  11. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js +8 -0
  12. package/node_modules/@noodle-borg/agent-kit/dist/curated/error-fixes.js.map +1 -1
  13. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js +3 -3
  14. package/node_modules/@noodle-borg/agent-kit/dist/generated/example-files.js.map +1 -1
  15. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.d.ts.map +1 -1
  16. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js +9 -0
  17. package/node_modules/@noodle-borg/agent-kit/dist/generated/surface.js.map +1 -1
  18. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.d.ts.map +1 -1
  19. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.js +8 -0
  20. package/node_modules/@noodle-borg/agent-kit/dist/plugin-bundle.js.map +1 -1
  21. package/node_modules/@noodle-borg/agent-kit/dist/plugin-launcher.d.ts.map +1 -1
  22. package/node_modules/@noodle-borg/agent-kit/dist/plugin-launcher.js +24 -1
  23. package/node_modules/@noodle-borg/agent-kit/dist/plugin-launcher.js.map +1 -1
  24. package/node_modules/@noodle-borg/agent-kit/dist/plugin-manifests.js +30 -22
  25. package/node_modules/@noodle-borg/agent-kit/dist/plugin-manifests.js.map +1 -1
  26. package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.d.ts.map +1 -1
  27. package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.js +15 -0
  28. package/node_modules/@noodle-borg/agent-kit/dist/plugin-marketplace-docs.js.map +1 -1
  29. package/node_modules/@noodle-borg/agent-kit/dist/plugin-platform-support.d.ts +13 -0
  30. package/node_modules/@noodle-borg/agent-kit/dist/plugin-platform-support.d.ts.map +1 -0
  31. package/node_modules/@noodle-borg/agent-kit/dist/plugin-platform-support.js +13 -0
  32. package/node_modules/@noodle-borg/agent-kit/dist/plugin-platform-support.js.map +1 -0
  33. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-auth-ref.d.ts +2 -0
  34. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-auth-ref.d.ts.map +1 -0
  35. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-auth-ref.js +171 -0
  36. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-auth-ref.js.map +1 -0
  37. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.d.ts.map +1 -1
  38. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js +3 -97
  39. package/node_modules/@noodle-borg/agent-kit/dist/skill-authoring-refs.js.map +1 -1
  40. package/node_modules/@noodle-borg/auth/dist/claims.d.ts +2 -0
  41. package/node_modules/@noodle-borg/auth/dist/claims.d.ts.map +1 -1
  42. package/node_modules/@noodle-borg/auth/dist/claims.js +15 -0
  43. package/node_modules/@noodle-borg/auth/dist/claims.js.map +1 -1
  44. package/node_modules/@noodle-borg/auth/dist/index.d.ts +2 -2
  45. package/node_modules/@noodle-borg/auth/dist/index.d.ts.map +1 -1
  46. package/node_modules/@noodle-borg/auth/dist/index.js +1 -1
  47. package/node_modules/@noodle-borg/auth/dist/index.js.map +1 -1
  48. package/node_modules/@noodle-borg/auth/dist/verify.d.ts +10 -1
  49. package/node_modules/@noodle-borg/auth/dist/verify.d.ts.map +1 -1
  50. package/node_modules/@noodle-borg/auth/dist/verify.js +9 -2
  51. package/node_modules/@noodle-borg/auth/dist/verify.js.map +1 -1
  52. package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts +2 -2
  53. package/node_modules/@noodle-borg/authoring/dist/connectors.d.ts.map +1 -1
  54. package/node_modules/@noodle-borg/authoring/dist/connectors.js +4 -1
  55. package/node_modules/@noodle-borg/authoring/dist/connectors.js.map +1 -1
  56. package/node_modules/@noodle-borg/authoring/dist/customer-auth.d.ts +13 -0
  57. package/node_modules/@noodle-borg/authoring/dist/customer-auth.d.ts.map +1 -1
  58. package/node_modules/@noodle-borg/authoring/dist/customer-auth.js +31 -2
  59. package/node_modules/@noodle-borg/authoring/dist/customer-auth.js.map +1 -1
  60. package/node_modules/@noodle-borg/authoring/dist/customer-endpoint.d.ts +10 -0
  61. package/node_modules/@noodle-borg/authoring/dist/customer-endpoint.d.ts.map +1 -0
  62. package/node_modules/@noodle-borg/authoring/dist/customer-endpoint.js +18 -0
  63. package/node_modules/@noodle-borg/authoring/dist/customer-endpoint.js.map +1 -0
  64. package/node_modules/@noodle-borg/authoring/dist/index.d.ts +2 -1
  65. package/node_modules/@noodle-borg/authoring/dist/index.d.ts.map +1 -1
  66. package/node_modules/@noodle-borg/authoring/dist/index.js +1 -0
  67. package/node_modules/@noodle-borg/authoring/dist/index.js.map +1 -1
  68. package/node_modules/@noodle-borg/authoring/dist/server.d.ts +1 -1
  69. package/node_modules/@noodle-borg/authoring/dist/server.d.ts.map +1 -1
  70. package/node_modules/@noodle-borg/authoring/dist/server.js +1 -13
  71. package/node_modules/@noodle-borg/authoring/dist/server.js.map +1 -1
  72. package/node_modules/@noodle-borg/compiler/dist/artifact/assemble.d.ts +27 -0
  73. package/node_modules/@noodle-borg/compiler/dist/artifact/assemble.d.ts.map +1 -0
  74. package/node_modules/@noodle-borg/compiler/dist/artifact/assemble.js +73 -0
  75. package/node_modules/@noodle-borg/compiler/dist/artifact/assemble.js.map +1 -0
  76. package/node_modules/@noodle-borg/compiler/dist/artifact/catalog-emission.d.ts +50 -0
  77. package/node_modules/@noodle-borg/compiler/dist/artifact/catalog-emission.d.ts.map +1 -0
  78. package/node_modules/@noodle-borg/compiler/dist/artifact/catalog-emission.js +119 -0
  79. package/node_modules/@noodle-borg/compiler/dist/artifact/catalog-emission.js.map +1 -0
  80. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts +22 -1
  81. package/node_modules/@noodle-borg/compiler/dist/artifact/types.d.ts.map +1 -1
  82. package/node_modules/@noodle-borg/compiler/dist/artifact/types.js +5 -1
  83. package/node_modules/@noodle-borg/compiler/dist/artifact/types.js.map +1 -1
  84. package/node_modules/@noodle-borg/compiler/dist/catalog/in-memory.js +1 -1
  85. package/node_modules/@noodle-borg/compiler/dist/catalog/in-memory.js.map +1 -1
  86. package/node_modules/@noodle-borg/compiler/dist/catalog/types.d.ts +8 -0
  87. package/node_modules/@noodle-borg/compiler/dist/catalog/types.d.ts.map +1 -1
  88. package/node_modules/@noodle-borg/compiler/dist/catalog/types.js +0 -9
  89. package/node_modules/@noodle-borg/compiler/dist/catalog/types.js.map +1 -1
  90. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts +1 -11
  91. package/node_modules/@noodle-borg/compiler/dist/compile.d.ts.map +1 -1
  92. package/node_modules/@noodle-borg/compiler/dist/compile.js +29 -163
  93. package/node_modules/@noodle-borg/compiler/dist/compile.js.map +1 -1
  94. package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts +2 -1
  95. package/node_modules/@noodle-borg/compiler/dist/context-compile.d.ts.map +1 -1
  96. package/node_modules/@noodle-borg/compiler/dist/context-compile.js +3 -1
  97. package/node_modules/@noodle-borg/compiler/dist/context-compile.js.map +1 -1
  98. package/node_modules/@noodle-borg/compiler/dist/customer-endpoint.d.ts +34 -0
  99. package/node_modules/@noodle-borg/compiler/dist/customer-endpoint.d.ts.map +1 -0
  100. package/node_modules/@noodle-borg/compiler/dist/customer-endpoint.js +240 -0
  101. package/node_modules/@noodle-borg/compiler/dist/customer-endpoint.js.map +1 -0
  102. package/node_modules/@noodle-borg/compiler/dist/customer-routing.d.ts +24 -0
  103. package/node_modules/@noodle-borg/compiler/dist/customer-routing.d.ts.map +1 -0
  104. package/node_modules/@noodle-borg/compiler/dist/customer-routing.js +136 -0
  105. package/node_modules/@noodle-borg/compiler/dist/customer-routing.js.map +1 -0
  106. package/node_modules/@noodle-borg/compiler/dist/errors.d.ts +1 -1
  107. package/node_modules/@noodle-borg/compiler/dist/errors.d.ts.map +1 -1
  108. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts +7 -3
  109. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.d.ts.map +1 -1
  110. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js +7 -1
  111. package/node_modules/@noodle-borg/compiler/dist/fulfilment-emit.js.map +1 -1
  112. package/node_modules/@noodle-borg/compiler/dist/index.d.ts +3 -2
  113. package/node_modules/@noodle-borg/compiler/dist/index.d.ts.map +1 -1
  114. package/node_modules/@noodle-borg/compiler/dist/index.js +1 -0
  115. package/node_modules/@noodle-borg/compiler/dist/index.js.map +1 -1
  116. package/node_modules/@noodle-borg/compiler/dist/manifest/auth-schema.d.ts +110 -0
  117. package/node_modules/@noodle-borg/compiler/dist/manifest/auth-schema.d.ts.map +1 -0
  118. package/node_modules/@noodle-borg/compiler/dist/manifest/auth-schema.js +191 -0
  119. package/node_modules/@noodle-borg/compiler/dist/manifest/auth-schema.js.map +1 -0
  120. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts +12 -0
  121. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.d.ts.map +1 -1
  122. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js +1 -73
  123. package/node_modules/@noodle-borg/compiler/dist/manifest/schema.js.map +1 -1
  124. package/node_modules/@noodle-borg/compiler/package.json +1 -0
  125. package/node_modules/@noodle-borg/compute/dist/code-connector.d.ts +1 -0
  126. package/node_modules/@noodle-borg/compute/dist/code-connector.d.ts.map +1 -1
  127. package/node_modules/@noodle-borg/compute/dist/code-connector.js.map +1 -1
  128. package/node_modules/@noodle-borg/connector-defs/dist/call-graph.d.ts.map +1 -1
  129. package/node_modules/@noodle-borg/connector-defs/dist/call-graph.js +6 -6
  130. package/node_modules/@noodle-borg/connector-defs/dist/call-graph.js.map +1 -1
  131. package/node_modules/@noodle-borg/connector-defs/dist/compile-auth.d.ts +2 -0
  132. package/node_modules/@noodle-borg/connector-defs/dist/compile-auth.d.ts.map +1 -1
  133. package/node_modules/@noodle-borg/connector-defs/dist/compile-auth.js +12 -9
  134. package/node_modules/@noodle-borg/connector-defs/dist/compile-auth.js.map +1 -1
  135. package/node_modules/@noodle-borg/connector-defs/dist/compile-http.d.ts +14 -0
  136. package/node_modules/@noodle-borg/connector-defs/dist/compile-http.d.ts.map +1 -0
  137. package/node_modules/@noodle-borg/connector-defs/dist/compile-http.js +347 -0
  138. package/node_modules/@noodle-borg/connector-defs/dist/compile-http.js.map +1 -0
  139. package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts +4 -2
  140. package/node_modules/@noodle-borg/connector-defs/dist/compile.d.ts.map +1 -1
  141. package/node_modules/@noodle-borg/connector-defs/dist/compile.js +17 -333
  142. package/node_modules/@noodle-borg/connector-defs/dist/compile.js.map +1 -1
  143. package/node_modules/@noodle-borg/connector-defs/dist/customer-routing.d.ts +11 -0
  144. package/node_modules/@noodle-borg/connector-defs/dist/customer-routing.d.ts.map +1 -0
  145. package/node_modules/@noodle-borg/connector-defs/dist/customer-routing.js +124 -0
  146. package/node_modules/@noodle-borg/connector-defs/dist/customer-routing.js.map +1 -0
  147. package/node_modules/@noodle-borg/connector-defs/dist/http-headers.d.ts +4 -0
  148. package/node_modules/@noodle-borg/connector-defs/dist/http-headers.d.ts.map +1 -0
  149. package/node_modules/@noodle-borg/connector-defs/dist/http-headers.js +52 -0
  150. package/node_modules/@noodle-borg/connector-defs/dist/http-headers.js.map +1 -0
  151. package/node_modules/@noodle-borg/connector-defs/dist/identity-key.d.ts +5 -0
  152. package/node_modules/@noodle-borg/connector-defs/dist/identity-key.d.ts.map +1 -0
  153. package/node_modules/@noodle-borg/connector-defs/dist/identity-key.js +9 -0
  154. package/node_modules/@noodle-borg/connector-defs/dist/identity-key.js.map +1 -0
  155. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts +33 -3
  156. package/node_modules/@noodle-borg/connector-defs/dist/schema.d.ts.map +1 -1
  157. package/node_modules/@noodle-borg/connector-defs/dist/schema.js +22 -3
  158. package/node_modules/@noodle-borg/connector-defs/dist/schema.js.map +1 -1
  159. package/node_modules/@noodle-borg/connector-http/dist/customer-route.d.ts +17 -0
  160. package/node_modules/@noodle-borg/connector-http/dist/customer-route.d.ts.map +1 -0
  161. package/node_modules/@noodle-borg/connector-http/dist/customer-route.js +77 -0
  162. package/node_modules/@noodle-borg/connector-http/dist/customer-route.js.map +1 -0
  163. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts +2 -2
  164. package/node_modules/@noodle-borg/connector-http/dist/http-connector.d.ts.map +1 -1
  165. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js +64 -67
  166. package/node_modules/@noodle-borg/connector-http/dist/http-connector.js.map +1 -1
  167. package/node_modules/@noodle-borg/connector-http/dist/http-response.d.ts.map +1 -1
  168. package/node_modules/@noodle-borg/connector-http/dist/http-response.js +23 -21
  169. package/node_modules/@noodle-borg/connector-http/dist/http-response.js.map +1 -1
  170. package/node_modules/@noodle-borg/connector-http/dist/ssrf.d.ts.map +1 -1
  171. package/node_modules/@noodle-borg/connector-http/dist/ssrf.js +17 -2
  172. package/node_modules/@noodle-borg/connector-http/dist/ssrf.js.map +1 -1
  173. package/node_modules/@noodle-borg/connector-http/dist/url-resolution.d.ts +4 -0
  174. package/node_modules/@noodle-borg/connector-http/dist/url-resolution.d.ts.map +1 -0
  175. package/node_modules/@noodle-borg/connector-http/dist/url-resolution.js +31 -0
  176. package/node_modules/@noodle-borg/connector-http/dist/url-resolution.js.map +1 -0
  177. package/node_modules/@noodle-borg/module/dist/contract.d.ts +14 -2
  178. package/node_modules/@noodle-borg/module/dist/contract.d.ts.map +1 -1
  179. package/node_modules/@noodle-borg/module/dist/contract.js.map +1 -1
  180. package/node_modules/@noodle-borg/protocol/dist/mapping.d.ts.map +1 -1
  181. package/node_modules/@noodle-borg/protocol/dist/mapping.js +17 -0
  182. package/node_modules/@noodle-borg/protocol/dist/mapping.js.map +1 -1
  183. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts +4 -0
  184. package/node_modules/@noodle-borg/protocol/dist/sdk-server.d.ts.map +1 -1
  185. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js +7 -1
  186. package/node_modules/@noodle-borg/protocol/dist/sdk-server.js.map +1 -1
  187. package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts +24 -3
  188. package/node_modules/@noodle-borg/runtime/dist/broker/types.d.ts.map +1 -1
  189. package/node_modules/@noodle-borg/runtime/dist/broker/types.js +21 -0
  190. package/node_modules/@noodle-borg/runtime/dist/broker/types.js.map +1 -1
  191. package/node_modules/@noodle-borg/runtime/dist/confirmation.d.ts.map +1 -1
  192. package/node_modules/@noodle-borg/runtime/dist/confirmation.js +10 -0
  193. package/node_modules/@noodle-borg/runtime/dist/confirmation.js.map +1 -1
  194. package/node_modules/@noodle-borg/runtime/dist/connector/failure-details.d.ts +8 -0
  195. package/node_modules/@noodle-borg/runtime/dist/connector/failure-details.d.ts.map +1 -0
  196. package/node_modules/@noodle-borg/runtime/dist/connector/failure-details.js +53 -0
  197. package/node_modules/@noodle-borg/runtime/dist/connector/failure-details.js.map +1 -0
  198. package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts +7 -0
  199. package/node_modules/@noodle-borg/runtime/dist/connector/types.d.ts.map +1 -1
  200. package/node_modules/@noodle-borg/runtime/dist/connector/types.js +15 -0
  201. package/node_modules/@noodle-borg/runtime/dist/connector/types.js.map +1 -1
  202. package/node_modules/@noodle-borg/runtime/dist/customer-routing.d.ts +45 -0
  203. package/node_modules/@noodle-borg/runtime/dist/customer-routing.d.ts.map +1 -0
  204. package/node_modules/@noodle-borg/runtime/dist/customer-routing.js +135 -0
  205. package/node_modules/@noodle-borg/runtime/dist/customer-routing.js.map +1 -0
  206. package/node_modules/@noodle-borg/runtime/dist/execute.d.ts +10 -49
  207. package/node_modules/@noodle-borg/runtime/dist/execute.d.ts.map +1 -1
  208. package/node_modules/@noodle-borg/runtime/dist/execute.js +14 -363
  209. package/node_modules/@noodle-borg/runtime/dist/execute.js.map +1 -1
  210. package/node_modules/@noodle-borg/runtime/dist/index.d.ts +4 -2
  211. package/node_modules/@noodle-borg/runtime/dist/index.d.ts.map +1 -1
  212. package/node_modules/@noodle-borg/runtime/dist/index.js +4 -2
  213. package/node_modules/@noodle-borg/runtime/dist/index.js.map +1 -1
  214. package/node_modules/@noodle-borg/runtime/dist/interactive.d.ts.map +1 -1
  215. package/node_modules/@noodle-borg/runtime/dist/interactive.js +7 -0
  216. package/node_modules/@noodle-borg/runtime/dist/interactive.js.map +1 -1
  217. package/node_modules/@noodle-borg/runtime/dist/operation-credential.d.ts +16 -0
  218. package/node_modules/@noodle-borg/runtime/dist/operation-credential.d.ts.map +1 -0
  219. package/node_modules/@noodle-borg/runtime/dist/operation-credential.js +58 -0
  220. package/node_modules/@noodle-borg/runtime/dist/operation-credential.js.map +1 -0
  221. package/node_modules/@noodle-borg/runtime/dist/operation-execution.d.ts +48 -0
  222. package/node_modules/@noodle-borg/runtime/dist/operation-execution.d.ts.map +1 -0
  223. package/node_modules/@noodle-borg/runtime/dist/operation-execution.js +328 -0
  224. package/node_modules/@noodle-borg/runtime/dist/operation-execution.js.map +1 -0
  225. package/node_modules/@noodle-borg/runtime/dist/prepared-action-match.d.ts +3 -0
  226. package/node_modules/@noodle-borg/runtime/dist/prepared-action-match.d.ts.map +1 -0
  227. package/node_modules/@noodle-borg/runtime/dist/prepared-action-match.js +48 -0
  228. package/node_modules/@noodle-borg/runtime/dist/prepared-action-match.js.map +1 -0
  229. package/node_modules/@noodle-borg/runtime/dist/result.d.ts +1 -1
  230. package/node_modules/@noodle-borg/runtime/dist/result.d.ts.map +1 -1
  231. package/node_modules/@noodle-borg/runtime/dist/result.js.map +1 -1
  232. package/node_modules/@noodle-borg/runtime/dist/routed-output-guard.d.ts +15 -0
  233. package/node_modules/@noodle-borg/runtime/dist/routed-output-guard.d.ts.map +1 -0
  234. package/node_modules/@noodle-borg/runtime/dist/routed-output-guard.js +163 -0
  235. package/node_modules/@noodle-borg/runtime/dist/routed-output-guard.js.map +1 -0
  236. package/node_modules/@noodle-borg/service/dist/assistant-customer-issuer.d.ts +8 -0
  237. package/node_modules/@noodle-borg/service/dist/assistant-customer-issuer.d.ts.map +1 -0
  238. package/node_modules/@noodle-borg/service/dist/assistant-customer-issuer.js +13 -0
  239. package/node_modules/@noodle-borg/service/dist/assistant-customer-issuer.js.map +1 -0
  240. package/node_modules/@noodle-borg/service/dist/assistant-interactive.d.ts.map +1 -1
  241. package/node_modules/@noodle-borg/service/dist/assistant-interactive.js +2 -1
  242. package/node_modules/@noodle-borg/service/dist/assistant-interactive.js.map +1 -1
  243. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.d.ts.map +1 -1
  244. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.js +1 -1
  245. package/node_modules/@noodle-borg/service/dist/control-plane-auth-bootstrap.js.map +1 -1
  246. package/node_modules/@noodle-borg/service/dist/credential-binding-index.d.ts +2 -0
  247. package/node_modules/@noodle-borg/service/dist/credential-binding-index.d.ts.map +1 -1
  248. package/node_modules/@noodle-borg/service/dist/credential-binding-index.js +5 -1
  249. package/node_modules/@noodle-borg/service/dist/credential-binding-index.js.map +1 -1
  250. package/node_modules/@noodle-borg/service/dist/credential-broker-delegated-refresh.d.ts +47 -0
  251. package/node_modules/@noodle-borg/service/dist/credential-broker-delegated-refresh.d.ts.map +1 -0
  252. package/node_modules/@noodle-borg/service/dist/credential-broker-delegated-refresh.js +165 -0
  253. package/node_modules/@noodle-borg/service/dist/credential-broker-delegated-refresh.js.map +1 -0
  254. package/node_modules/@noodle-borg/service/dist/credential-broker-delegated-token-exchange.d.ts +18 -0
  255. package/node_modules/@noodle-borg/service/dist/credential-broker-delegated-token-exchange.d.ts.map +1 -0
  256. package/node_modules/@noodle-borg/service/dist/credential-broker-delegated-token-exchange.js +112 -0
  257. package/node_modules/@noodle-borg/service/dist/credential-broker-delegated-token-exchange.js.map +1 -0
  258. package/node_modules/@noodle-borg/service/dist/credential-broker.d.ts +6 -24
  259. package/node_modules/@noodle-borg/service/dist/credential-broker.d.ts.map +1 -1
  260. package/node_modules/@noodle-borg/service/dist/credential-broker.js +23 -271
  261. package/node_modules/@noodle-borg/service/dist/credential-broker.js.map +1 -1
  262. package/node_modules/@noodle-borg/service/dist/credential-probe-route.d.ts +20 -0
  263. package/node_modules/@noodle-borg/service/dist/credential-probe-route.d.ts.map +1 -0
  264. package/node_modules/@noodle-borg/service/dist/credential-probe-route.js +28 -0
  265. package/node_modules/@noodle-borg/service/dist/credential-probe-route.js.map +1 -0
  266. package/node_modules/@noodle-borg/service/dist/credential-probes.d.ts +3 -1
  267. package/node_modules/@noodle-borg/service/dist/credential-probes.d.ts.map +1 -1
  268. package/node_modules/@noodle-borg/service/dist/credential-probes.js +54 -13
  269. package/node_modules/@noodle-borg/service/dist/credential-probes.js.map +1 -1
  270. package/node_modules/@noodle-borg/service/dist/credential-route-guard.d.ts +9 -0
  271. package/node_modules/@noodle-borg/service/dist/credential-route-guard.d.ts.map +1 -0
  272. package/node_modules/@noodle-borg/service/dist/credential-route-guard.js +34 -0
  273. package/node_modules/@noodle-borg/service/dist/credential-route-guard.js.map +1 -0
  274. package/node_modules/@noodle-borg/service/dist/credential-route-key.d.ts +12 -0
  275. package/node_modules/@noodle-borg/service/dist/credential-route-key.d.ts.map +1 -0
  276. package/node_modules/@noodle-borg/service/dist/credential-route-key.js +17 -0
  277. package/node_modules/@noodle-borg/service/dist/credential-route-key.js.map +1 -0
  278. package/node_modules/@noodle-borg/service/dist/customer-verifier.d.ts.map +1 -1
  279. package/node_modules/@noodle-borg/service/dist/customer-verifier.js +72 -21
  280. package/node_modules/@noodle-borg/service/dist/customer-verifier.js.map +1 -1
  281. package/node_modules/@noodle-borg/service/dist/delegated-token-exchange.d.ts +3 -1
  282. package/node_modules/@noodle-borg/service/dist/delegated-token-exchange.d.ts.map +1 -1
  283. package/node_modules/@noodle-borg/service/dist/delegated-token-exchange.js +24 -2
  284. package/node_modules/@noodle-borg/service/dist/delegated-token-exchange.js.map +1 -1
  285. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js +6 -5
  286. package/node_modules/@noodle-borg/service/dist/developer-mcp/mount.js.map +1 -1
  287. package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.d.ts.map +1 -1
  288. package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.js +4 -3
  289. package/node_modules/@noodle-borg/service/dist/external-credential-binding-broker.js.map +1 -1
  290. package/node_modules/@noodle-borg/service/dist/google-workload-identity-probe.d.ts +2 -1
  291. package/node_modules/@noodle-borg/service/dist/google-workload-identity-probe.d.ts.map +1 -1
  292. package/node_modules/@noodle-borg/service/dist/google-workload-identity-probe.js +23 -7
  293. package/node_modules/@noodle-borg/service/dist/google-workload-identity-probe.js.map +1 -1
  294. package/node_modules/@noodle-borg/service/dist/google-workload-identity.d.ts.map +1 -1
  295. package/node_modules/@noodle-borg/service/dist/google-workload-identity.js +6 -5
  296. package/node_modules/@noodle-borg/service/dist/google-workload-identity.js.map +1 -1
  297. package/node_modules/@noodle-borg/service/dist/managed-config-broker-options.d.ts +18 -0
  298. package/node_modules/@noodle-borg/service/dist/managed-config-broker-options.d.ts.map +1 -0
  299. package/node_modules/@noodle-borg/service/dist/managed-config-broker-options.js +2 -0
  300. package/node_modules/@noodle-borg/service/dist/managed-config-broker-options.js.map +1 -0
  301. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.d.ts.map +1 -1
  302. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.js +6 -5
  303. package/node_modules/@noodle-borg/service/dist/oauth/platform-principal-guard.js.map +1 -1
  304. package/node_modules/@noodle-borg/service/dist/oauth/provider.d.ts.map +1 -1
  305. package/node_modules/@noodle-borg/service/dist/oauth/provider.js +10 -8
  306. package/node_modules/@noodle-borg/service/dist/oauth/provider.js.map +1 -1
  307. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js +5 -5
  308. package/node_modules/@noodle-borg/service/dist/oauth/service-bootstrap.js.map +1 -1
  309. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.d.ts.map +1 -1
  310. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js +3 -2
  311. package/node_modules/@noodle-borg/service/dist/routes/assistant-agent.js.map +1 -1
  312. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.d.ts.map +1 -1
  313. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.js +2 -1
  314. package/node_modules/@noodle-borg/service/dist/routes/assistant-interaction-resolution.js.map +1 -1
  315. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.d.ts.map +1 -1
  316. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js +3 -2
  317. package/node_modules/@noodle-borg/service/dist/routes/assistant-interactions.js.map +1 -1
  318. package/node_modules/@noodle-borg/service/dist/routes/assistant.d.ts.map +1 -1
  319. package/node_modules/@noodle-borg/service/dist/routes/assistant.js +8 -7
  320. package/node_modules/@noodle-borg/service/dist/routes/assistant.js.map +1 -1
  321. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.d.ts.map +1 -1
  322. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js +6 -3
  323. package/node_modules/@noodle-borg/service/dist/routes/auth-doctor-live.js.map +1 -1
  324. package/node_modules/@noodle-borg/service/dist/store.d.ts +3 -1
  325. package/node_modules/@noodle-borg/service/dist/store.d.ts.map +1 -1
  326. package/node_modules/@noodle-borg/transport-http/dist/handler.js +18 -2
  327. package/node_modules/@noodle-borg/transport-http/dist/handler.js.map +1 -1
  328. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts +2 -0
  329. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.d.ts.map +1 -1
  330. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.js +27 -9
  331. package/node_modules/@noodle-borg/transport-http/dist/identity-authorization.js.map +1 -1
  332. package/node_modules/tldts/LICENSE +13 -0
  333. package/node_modules/tldts/README.md +368 -0
  334. package/node_modules/tldts/bin/cli.js +21 -0
  335. package/node_modules/tldts/dist/cjs/index.js +1170 -0
  336. package/node_modules/tldts/dist/cjs/index.js.map +1 -0
  337. package/node_modules/tldts/dist/cjs/src/data/trie.js +12 -0
  338. package/node_modules/tldts/dist/cjs/src/data/trie.js.map +1 -0
  339. package/node_modules/tldts/dist/cjs/src/suffix-trie.js +170 -0
  340. package/node_modules/tldts/dist/cjs/src/suffix-trie.js.map +1 -0
  341. package/node_modules/tldts/dist/cjs/tsconfig.tsbuildinfo +1 -0
  342. package/node_modules/tldts/dist/es6/index.js +41 -0
  343. package/node_modules/tldts/dist/es6/index.js.map +1 -0
  344. package/node_modules/tldts/dist/es6/src/data/trie.js +9 -0
  345. package/node_modules/tldts/dist/es6/src/data/trie.js.map +1 -0
  346. package/node_modules/tldts/dist/es6/src/suffix-trie.js +167 -0
  347. package/node_modules/tldts/dist/es6/src/suffix-trie.js.map +1 -0
  348. package/node_modules/tldts/dist/es6/tsconfig.bundle.tsbuildinfo +1 -0
  349. package/node_modules/tldts/dist/index.cjs.min.js +2 -0
  350. package/node_modules/tldts/dist/index.cjs.min.js.map +1 -0
  351. package/node_modules/tldts/dist/index.esm.min.js +2 -0
  352. package/node_modules/tldts/dist/index.esm.min.js.map +1 -0
  353. package/node_modules/tldts/dist/index.umd.min.js +2 -0
  354. package/node_modules/tldts/dist/index.umd.min.js.map +1 -0
  355. package/node_modules/tldts/dist/types/index.d.ts +8 -0
  356. package/node_modules/tldts/dist/types/src/data/trie.d.ts +7 -0
  357. package/node_modules/tldts/dist/types/src/suffix-trie.d.ts +5 -0
  358. package/node_modules/tldts/index.ts +74 -0
  359. package/node_modules/tldts/package.json +89 -0
  360. package/node_modules/tldts/src/data/trie.ts +8 -0
  361. package/node_modules/tldts/src/suffix-trie.ts +207 -0
  362. package/node_modules/tldts-core/LICENSE +13 -0
  363. package/node_modules/tldts-core/README.md +3 -0
  364. package/node_modules/tldts-core/dist/cjs/index.js +955 -0
  365. package/node_modules/tldts-core/dist/cjs/index.js.map +1 -0
  366. package/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js +15 -0
  367. package/node_modules/tldts-core/dist/cjs/src/domain-without-suffix.js.map +1 -0
  368. package/node_modules/tldts-core/dist/cjs/src/domain.js +83 -0
  369. package/node_modules/tldts-core/dist/cjs/src/domain.js.map +1 -0
  370. package/node_modules/tldts-core/dist/cjs/src/extract-hostname.js +439 -0
  371. package/node_modules/tldts-core/dist/cjs/src/extract-hostname.js.map +1 -0
  372. package/node_modules/tldts-core/dist/cjs/src/factory.js +128 -0
  373. package/node_modules/tldts-core/dist/cjs/src/factory.js.map +1 -0
  374. package/node_modules/tldts-core/dist/cjs/src/is-ip.js +72 -0
  375. package/node_modules/tldts-core/dist/cjs/src/is-ip.js.map +1 -0
  376. package/node_modules/tldts-core/dist/cjs/src/is-special-use.js +65 -0
  377. package/node_modules/tldts-core/dist/cjs/src/is-special-use.js.map +1 -0
  378. package/node_modules/tldts-core/dist/cjs/src/is-valid.js +80 -0
  379. package/node_modules/tldts-core/dist/cjs/src/is-valid.js.map +1 -0
  380. package/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js +69 -0
  381. package/node_modules/tldts-core/dist/cjs/src/lookup/fast-path.js.map +1 -0
  382. package/node_modules/tldts-core/dist/cjs/src/lookup/interface.js +3 -0
  383. package/node_modules/tldts-core/dist/cjs/src/lookup/interface.js.map +1 -0
  384. package/node_modules/tldts-core/dist/cjs/src/options.js +23 -0
  385. package/node_modules/tldts-core/dist/cjs/src/options.js.map +1 -0
  386. package/node_modules/tldts-core/dist/cjs/src/subdomain.js +14 -0
  387. package/node_modules/tldts-core/dist/cjs/src/subdomain.js.map +1 -0
  388. package/node_modules/tldts-core/dist/cjs/tsconfig.tsbuildinfo +1 -0
  389. package/node_modules/tldts-core/dist/es6/index.js +4 -0
  390. package/node_modules/tldts-core/dist/es6/index.js.map +1 -0
  391. package/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js +12 -0
  392. package/node_modules/tldts-core/dist/es6/src/domain-without-suffix.js.map +1 -0
  393. package/node_modules/tldts-core/dist/es6/src/domain.js +80 -0
  394. package/node_modules/tldts-core/dist/es6/src/domain.js.map +1 -0
  395. package/node_modules/tldts-core/dist/es6/src/extract-hostname.js +435 -0
  396. package/node_modules/tldts-core/dist/es6/src/extract-hostname.js.map +1 -0
  397. package/node_modules/tldts-core/dist/es6/src/factory.js +123 -0
  398. package/node_modules/tldts-core/dist/es6/src/factory.js.map +1 -0
  399. package/node_modules/tldts-core/dist/es6/src/is-ip.js +69 -0
  400. package/node_modules/tldts-core/dist/es6/src/is-ip.js.map +1 -0
  401. package/node_modules/tldts-core/dist/es6/src/is-special-use.js +62 -0
  402. package/node_modules/tldts-core/dist/es6/src/is-special-use.js.map +1 -0
  403. package/node_modules/tldts-core/dist/es6/src/is-valid.js +77 -0
  404. package/node_modules/tldts-core/dist/es6/src/is-valid.js.map +1 -0
  405. package/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js +66 -0
  406. package/node_modules/tldts-core/dist/es6/src/lookup/fast-path.js.map +1 -0
  407. package/node_modules/tldts-core/dist/es6/src/lookup/interface.js +2 -0
  408. package/node_modules/tldts-core/dist/es6/src/lookup/interface.js.map +1 -0
  409. package/node_modules/tldts-core/dist/es6/src/options.js +20 -0
  410. package/node_modules/tldts-core/dist/es6/src/options.js.map +1 -0
  411. package/node_modules/tldts-core/dist/es6/src/subdomain.js +11 -0
  412. package/node_modules/tldts-core/dist/es6/src/subdomain.js.map +1 -0
  413. package/node_modules/tldts-core/dist/es6/tsconfig.bundle.tsbuildinfo +1 -0
  414. package/node_modules/tldts-core/dist/types/index.d.ts +4 -0
  415. package/node_modules/tldts-core/dist/types/src/domain-without-suffix.d.ts +6 -0
  416. package/node_modules/tldts-core/dist/types/src/domain.d.ts +5 -0
  417. package/node_modules/tldts-core/dist/types/src/extract-hostname.d.ts +17 -0
  418. package/node_modules/tldts-core/dist/types/src/factory.d.ts +29 -0
  419. package/node_modules/tldts-core/dist/types/src/is-ip.d.ts +6 -0
  420. package/node_modules/tldts-core/dist/types/src/is-special-use.d.ts +5 -0
  421. package/node_modules/tldts-core/dist/types/src/is-valid.d.ts +15 -0
  422. package/node_modules/tldts-core/dist/types/src/lookup/fast-path.d.ts +2 -0
  423. package/node_modules/tldts-core/dist/types/src/lookup/interface.d.ts +9 -0
  424. package/node_modules/tldts-core/dist/types/src/options.d.ts +11 -0
  425. package/node_modules/tldts-core/dist/types/src/subdomain.d.ts +4 -0
  426. package/node_modules/tldts-core/index.ts +10 -0
  427. package/node_modules/tldts-core/package.json +68 -0
  428. package/node_modules/tldts-core/src/domain-without-suffix.ts +14 -0
  429. package/node_modules/tldts-core/src/domain.ts +100 -0
  430. package/node_modules/tldts-core/src/extract-hostname.ts +480 -0
  431. package/node_modules/tldts-core/src/factory.ts +199 -0
  432. package/node_modules/tldts-core/src/is-ip.ts +87 -0
  433. package/node_modules/tldts-core/src/is-special-use.ts +65 -0
  434. package/node_modules/tldts-core/src/is-valid.ts +89 -0
  435. package/node_modules/tldts-core/src/lookup/fast-path.ts +80 -0
  436. package/node_modules/tldts-core/src/lookup/interface.ts +10 -0
  437. package/node_modules/tldts-core/src/options.ts +45 -0
  438. package/node_modules/tldts-core/src/subdomain.ts +11 -0
  439. package/package.json +3 -1
@@ -0,0 +1,199 @@
1
+ /**
2
+ * Implement a factory allowing to plug different implementations of suffix
3
+ * lookup (e.g.: using a trie or the packed hashes datastructures). This is used
4
+ * and exposed in `tldts.ts` and `tldts-experimental.ts` bundle entrypoints.
5
+ */
6
+
7
+ import getDomain from './domain';
8
+ import getDomainWithoutSuffix from './domain-without-suffix';
9
+ import extractHostname, {
10
+ extractedHostnameValidated,
11
+ } from './extract-hostname';
12
+ import isIp from './is-ip';
13
+ import isSpecialUse from './is-special-use';
14
+ import isValidHostname from './is-valid';
15
+ import { IPublicSuffix, ISuffixLookupOptions } from './lookup/interface';
16
+ import { IOptions, setDefaults } from './options';
17
+ import getSubdomain from './subdomain';
18
+
19
+ export interface IResult {
20
+ // `hostname` is either a registered name (including but not limited to a
21
+ // hostname), or an IP address, directly extracted from the input URL. IPv4
22
+ // addresses are in dot-decimal notation. IPv6 is returned without its
23
+ // surrounding brackets; both bracketed (in URLs, e.g. `http://[::1]/`) and
24
+ // bare unbracketed (e.g. `2a01:e35::1`) IPv6 literals are accepted.
25
+ hostname: string | null;
26
+
27
+ // Is `hostname` an IP? (IPv4 or IPv6)
28
+ isIp: boolean | null;
29
+
30
+ // `hostname` split between subdomain, domain and its public suffix (if any)
31
+ subdomain: string | null;
32
+ domain: string | null;
33
+ publicSuffix: string | null;
34
+ domainWithoutSuffix: string | null;
35
+
36
+ // Specifies if `publicSuffix` comes from the ICANN or PRIVATE section of the list
37
+ isIcann: boolean | null;
38
+ isPrivate: boolean | null;
39
+
40
+ // Is `hostname` a special-use domain from the IANA registry (RFC 6761 et al.:
41
+ // e.g. `localhost`, `*.test`, `*.local`, `*.onion`, `home.arpa`)? `isIcann`/
42
+ // `isPrivate` do not identify these (most are not in the Public Suffix List;
43
+ // the few that are appear as ordinary ICANN suffixes). `null` unless the
44
+ // `detectSpecialUse` option is enabled (see is-special-use.ts).
45
+ isSpecialUse: boolean | null;
46
+ }
47
+
48
+ export function getEmptyResult(): IResult {
49
+ return {
50
+ domain: null,
51
+ domainWithoutSuffix: null,
52
+ hostname: null,
53
+ isIcann: null,
54
+ isIp: null,
55
+ isPrivate: null,
56
+ isSpecialUse: null,
57
+ publicSuffix: null,
58
+ subdomain: null,
59
+ };
60
+ }
61
+
62
+ export function resetResult(result: IResult): void {
63
+ result.domain = null;
64
+ result.domainWithoutSuffix = null;
65
+ result.hostname = null;
66
+ result.isIcann = null;
67
+ result.isIp = null;
68
+ result.isPrivate = null;
69
+ result.isSpecialUse = null;
70
+ result.publicSuffix = null;
71
+ result.subdomain = null;
72
+ }
73
+
74
+ // Flags representing steps in the `parse` function. They are used to implement
75
+ // an early stop mechanism (simulating some form of laziness) to avoid doing
76
+ // more work than necessary to perform a given action (e.g.: we don't need to
77
+ // extract the domain and subdomain if we are only interested in public suffix).
78
+ export const enum FLAG {
79
+ HOSTNAME,
80
+ IS_VALID,
81
+ PUBLIC_SUFFIX,
82
+ DOMAIN,
83
+ SUB_DOMAIN,
84
+ ALL,
85
+ }
86
+
87
+ export function parseImpl(
88
+ url: string,
89
+ step: FLAG,
90
+ suffixLookup: (
91
+ _1: string,
92
+ _2: ISuffixLookupOptions,
93
+ _3: IPublicSuffix,
94
+ ) => void,
95
+ partialOptions: Partial<IOptions> | undefined,
96
+ result: IResult,
97
+ ): IResult {
98
+ const options: IOptions = /*@__INLINE__*/ setDefaults(partialOptions);
99
+
100
+ // Very fast approximate check to make sure `url` is a string. This is needed
101
+ // because the library will not necessarily be used in a typed setup and
102
+ // values of arbitrary types might be given as argument.
103
+ if (typeof url !== 'string') {
104
+ return result;
105
+ }
106
+
107
+ // Extract hostname from `url` only if needed. This can be made optional
108
+ // using `options.extractHostname`. This option will typically be used
109
+ // whenever we are sure the inputs to `parse` are already hostnames and not
110
+ // arbitrary URLs.
111
+ //
112
+ // `mixedInput` allows to specify if we expect a mix of URLs and hostnames
113
+ // as input. If only hostnames are expected then `extractHostname` can be
114
+ // set to `false` to speed-up parsing. If only URLs are expected then
115
+ // `mixedInputs` can be set to `false`. The `mixedInputs` is only a hint
116
+ // and will not change the behavior of the library.
117
+ // Whether `url` itself was already a valid hostname (only computed on the
118
+ // mixedInputs path). Lets us skip the post-extraction validation below when
119
+ // extractHostname returned `url` unchanged (same reference).
120
+ let urlIsValid = false;
121
+ if (!options.extractHostname) {
122
+ result.hostname = url;
123
+ } else if (options.mixedInputs) {
124
+ urlIsValid = isValidHostname(url);
125
+ result.hostname = extractHostname(
126
+ url,
127
+ urlIsValid,
128
+ options.validateHostname,
129
+ );
130
+ } else {
131
+ result.hostname = extractHostname(url, false, options.validateHostname);
132
+ }
133
+
134
+ // Check if `hostname` is a valid ip address
135
+ if (options.detectIp && result.hostname !== null) {
136
+ result.isIp = isIp(result.hostname);
137
+ if (result.isIp) {
138
+ return result;
139
+ }
140
+ }
141
+
142
+ // Perform hostname validation if enabled. If hostname is not valid, no need to
143
+ // go further as there will be no valid domain or sub-domain. This validation
144
+ // is applied before any early returns to ensure consistent behavior across
145
+ // all API methods including getHostname().
146
+ if (
147
+ options.validateHostname &&
148
+ options.extractHostname &&
149
+ result.hostname !== null &&
150
+ // Skip the re-scan when `url` was already validated and extractHostname
151
+ // returned it unchanged (same reference => identical string, still valid).
152
+ !(urlIsValid && result.hostname === url) &&
153
+ // Skip the re-scan when extractHostname already validated the host inline
154
+ // (a confirmed-valid simple authority — see extract-hostname.ts).
155
+ !extractedHostnameValidated &&
156
+ !isValidHostname(result.hostname)
157
+ ) {
158
+ result.hostname = null;
159
+ return result;
160
+ }
161
+
162
+ if (step === FLAG.HOSTNAME || result.hostname === null) {
163
+ return result;
164
+ }
165
+
166
+ // Flag special-use domains, only when opted in (`detectSpecialUse`) and only
167
+ // for the full `parse()` result (FLAG.ALL). Computed here, before the
168
+ // public-suffix/domain early-returns below, so single-label names like
169
+ // `localhost` (which have no registrable domain) are still flagged.
170
+ if (step === FLAG.ALL && options.detectSpecialUse) {
171
+ result.isSpecialUse = isSpecialUse(result.hostname);
172
+ }
173
+
174
+ // Extract public suffix
175
+ suffixLookup(result.hostname, options, result);
176
+ if (step === FLAG.PUBLIC_SUFFIX || result.publicSuffix === null) {
177
+ return result;
178
+ }
179
+
180
+ // Extract domain
181
+ result.domain = getDomain(result.publicSuffix, result.hostname, options);
182
+ if (step === FLAG.DOMAIN || result.domain === null) {
183
+ return result;
184
+ }
185
+
186
+ // Extract subdomain
187
+ result.subdomain = getSubdomain(result.hostname, result.domain);
188
+ if (step === FLAG.SUB_DOMAIN) {
189
+ return result;
190
+ }
191
+
192
+ // Extract domain without suffix
193
+ result.domainWithoutSuffix = getDomainWithoutSuffix(
194
+ result.domain,
195
+ result.publicSuffix,
196
+ );
197
+
198
+ return result;
199
+ }
@@ -0,0 +1,87 @@
1
+ /**
2
+ * Check if a hostname is an IP. You should be aware that this only works
3
+ * because `hostname` is already garanteed to be a valid hostname!
4
+ */
5
+ function isProbablyIpv4(hostname: string): boolean {
6
+ // Cannot be shorted than 1.1.1.1
7
+ if (hostname.length < 7) {
8
+ return false;
9
+ }
10
+
11
+ // Cannot be longer than: 255.255.255.255
12
+ if (hostname.length > 15) {
13
+ return false;
14
+ }
15
+
16
+ let numberOfDots = 0;
17
+
18
+ for (let i = 0; i < hostname.length; i += 1) {
19
+ const code = hostname.charCodeAt(i);
20
+
21
+ if (code === 46 /* '.' */) {
22
+ numberOfDots += 1;
23
+ } else if (code < 48 /* '0' */ || code > 57 /* '9' */) {
24
+ return false;
25
+ }
26
+ }
27
+
28
+ return (
29
+ numberOfDots === 3 &&
30
+ hostname.charCodeAt(0) !== 46 /* '.' */ &&
31
+ hostname.charCodeAt(hostname.length - 1) !== 46 /* '.' */
32
+ );
33
+ }
34
+
35
+ /**
36
+ * Similar to isProbablyIpv4.
37
+ */
38
+ function isProbablyIpv6(hostname: string): boolean {
39
+ if (hostname.length < 3) {
40
+ return false;
41
+ }
42
+
43
+ let start = hostname.startsWith('[') ? 1 : 0;
44
+ let end = hostname.length;
45
+
46
+ if (hostname[end - 1] === ']') {
47
+ end -= 1;
48
+ }
49
+
50
+ // We only consider the maximum size of a normal IPV6. Note that this will
51
+ // fail on so-called "IPv4 mapped IPv6 addresses" but this is a corner-case
52
+ // and a proper validation library should be used for these.
53
+ if (end - start > 39) {
54
+ return false;
55
+ }
56
+
57
+ let hasColon = false;
58
+
59
+ for (; start < end; start += 1) {
60
+ const code = hostname.charCodeAt(start);
61
+
62
+ if (code === 58 /* ':' */) {
63
+ hasColon = true;
64
+ } else if (
65
+ !(
66
+ (
67
+ (code >= 48 && code <= 57) || // 0-9
68
+ (code >= 97 && code <= 102) || // a-f
69
+ (code >= 65 && code <= 70)
70
+ ) // A-F (RFC 4291 §2.2: an IPv6 hextet is hex digits only)
71
+ )
72
+ ) {
73
+ return false;
74
+ }
75
+ }
76
+
77
+ return hasColon;
78
+ }
79
+
80
+ /**
81
+ * Check if `hostname` is *probably* a valid ip addr (either ipv6 or ipv4).
82
+ * This *will not* work on any string. We need `hostname` to be a valid
83
+ * hostname.
84
+ */
85
+ export default function isIp(hostname: string): boolean {
86
+ return isProbablyIpv6(hostname) || isProbablyIpv4(hostname);
87
+ }
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Special-use domain names from the IANA "Special-Use Domain Names" registry:
3
+ * the authoritative list, created by RFC 6761 and maintained as new RFCs add to
4
+ * it: https://www.iana.org/assignments/special-use-domain-names/
5
+ * Snapshot: 2026-05-24. (RFC 6761 is not obsoleted; draft-hoffman-rfc6761bis
6
+ * proposes to retire its prose but keep this registry, so the registry is the
7
+ * source of truth; re-sync this list against it.)
8
+ *
9
+ * These names never correspond to a public registration, yet neither
10
+ * `isIcann` nor `isPrivate` marks one as special-use: most are absent from the
11
+ * Public Suffix List (so `a.test` looks like a registrable domain), and the
12
+ * few that are listed (`onion`, `home.arpa`) appear there as ordinary ICANN
13
+ * suffixes. `isSpecialUse` is the single signal that covers them all.
14
+ *
15
+ * Per the registry and RFC 6761 ("and any names falling within these domains"),
16
+ * the designation covers each listed name AND all of its sub-domains. DNS labels
17
+ * are case-insensitive (RFC 4343); `hostname` is expected to be already
18
+ * lower-cased and trailing-dot-stripped, as produced by `extractHostname`, the
19
+ * same normalization the Public-Suffix-List lookup relies on.
20
+ *
21
+ * Two groups of registry entries are intentionally excluded: the numeric
22
+ * reverse-DNS delegation zones (`10.in-addr.arpa`, the `*.ip6.arpa` ranges, …),
23
+ * which are reverse-DNS PTR zones rather than hostnames and whose parents
24
+ * (`in-addr.arpa`/`ip6.arpa`) are already in the Public Suffix List; and the
25
+ * deprecated `eap-noob.arpa` entry.
26
+ */
27
+ const SPECIAL_USE_DOMAINS: readonly string[] = [
28
+ 'test', // RFC 6761
29
+ 'localhost', // RFC 6761
30
+ 'invalid', // RFC 6761
31
+ 'example', // RFC 6761
32
+ 'example.com', // RFC 6761
33
+ 'example.net', // RFC 6761
34
+ 'example.org', // RFC 6761
35
+ 'local', // RFC 6762 (mDNS)
36
+ 'onion', // RFC 7686 (Tor)
37
+ 'alt', // RFC 9476
38
+ 'home.arpa', // RFC 8375
39
+ 'ipv4only.arpa', // RFC 8880
40
+ 'resolver.arpa', // RFC 9462
41
+ 'service.arpa', // RFC 9665
42
+ '6tisch.arpa', // RFC 9031
43
+ 'eap.arpa', // RFC 9965
44
+ ];
45
+
46
+ /**
47
+ * Return `true` if `hostname` is, or is a sub-domain of, a special-use domain
48
+ * (see the registry note above). Expects an already-normalized `hostname`.
49
+ */
50
+ export default function isSpecialUse(hostname: string): boolean {
51
+ for (const name of SPECIAL_USE_DOMAINS) {
52
+ // Match on a label boundary: `hostname` is either exactly `name` or ends
53
+ // with `.name` (so `latest` is not matched by `test`, nor `myexample.com`
54
+ // by `example.com`).
55
+ if (
56
+ hostname.endsWith(name) &&
57
+ (hostname.length === name.length ||
58
+ hostname.charCodeAt(hostname.length - name.length - 1) === 46) /* '.' */
59
+ ) {
60
+ return true;
61
+ }
62
+ }
63
+
64
+ return false;
65
+ }
@@ -0,0 +1,89 @@
1
+ /**
2
+ * Implements fast shallow verification of hostnames. This does not perform a
3
+ * struct check on the content of labels (classes of Unicode characters, etc.)
4
+ * but instead check that the structure is valid (number of labels, length of
5
+ * labels, etc.).
6
+ *
7
+ * If you need stricter validation, consider using an external library.
8
+ */
9
+
10
+ // KEEP IN SYNC with `extract-hostname.ts` `isValidHostnameChar` + its inline
11
+ // scan/verdict, which duplicate these structural rules to validate during
12
+ // extraction (a perf fusion). That copy additionally accepts A-Z (the host is
13
+ // not yet lowercased there) and folds in '-' / '_'. Any change to the accepted
14
+ // character set or the label/length rules here must be mirrored there.
15
+ function isValidAscii(code: number): boolean {
16
+ return (
17
+ (code >= 97 && code <= 122) || (code >= 48 && code <= 57) || code > 127
18
+ );
19
+ }
20
+
21
+ /**
22
+ * Check if a hostname string is valid. It's usually a preliminary check before
23
+ * trying to use getDomain or anything else.
24
+ *
25
+ * Beware: it does not check if the TLD exists.
26
+ */
27
+ export default function (hostname: string): boolean {
28
+ if (hostname.length > 255) {
29
+ return false;
30
+ }
31
+
32
+ if (hostname.length === 0) {
33
+ return false;
34
+ }
35
+
36
+ if (
37
+ /*@__INLINE__*/ !isValidAscii(hostname.charCodeAt(0)) &&
38
+ hostname.charCodeAt(0) !== 46 && // '.' (dot)
39
+ hostname.charCodeAt(0) !== 95 // '_' (underscore)
40
+ ) {
41
+ return false;
42
+ }
43
+
44
+ // Validate hostname according to RFC
45
+ let lastDotIndex = -1;
46
+ let lastCharCode = -1;
47
+ const len = hostname.length;
48
+
49
+ for (let i = 0; i < len; i += 1) {
50
+ const code = hostname.charCodeAt(i);
51
+ if (code === 46 /* '.' */) {
52
+ if (
53
+ // Check that previous label is < 63 bytes long (64 = 63 + '.')
54
+ i - lastDotIndex > 64 ||
55
+ // Check that previous character was not already a '.'
56
+ lastCharCode === 46 ||
57
+ // Check that the previous label does not end with '-' (RFC 1035 §2.3.1 LDH).
58
+ // '_' is intentionally NOT restricted: DNS allows any octet (RFC 2181 §11) and
59
+ // WHATWG URL does not treat '_' as a forbidden host code point.
60
+ lastCharCode === 45
61
+ ) {
62
+ return false;
63
+ }
64
+
65
+ lastDotIndex = i;
66
+ } else if (
67
+ // A forbidden character in the label...
68
+ !(/*@__INLINE__*/ (isValidAscii(code) || code === 45 || code === 95)) ||
69
+ // ...or a '-' starting a label (the byte right after a '.'). A label must
70
+ // not begin with a hyphen (RFC 1034 §3.5 / RFC 1035 §2.3.1 LDH, as amended
71
+ // by RFC 1123 §2.1; cf. UTS #46 CheckHyphens). The first label is covered by
72
+ // the leading-character guard above; mirrors the trailing-'-' rule below.
73
+ (code === 45 && lastCharCode === 46)
74
+ ) {
75
+ return false;
76
+ }
77
+
78
+ lastCharCode = code;
79
+ }
80
+
81
+ return (
82
+ // Check that last label is shorter than 63 chars
83
+ len - lastDotIndex - 1 <= 63 &&
84
+ // Check that the last character is an allowed trailing label character.
85
+ // Since we already checked that the char is a valid hostname character,
86
+ // we only need to check that it's different from '-'.
87
+ lastCharCode !== 45
88
+ );
89
+ }
@@ -0,0 +1,80 @@
1
+ import { IPublicSuffix, ISuffixLookupOptions } from './interface';
2
+
3
+ export default function (
4
+ hostname: string,
5
+ options: ISuffixLookupOptions,
6
+ out: IPublicSuffix,
7
+ ): boolean {
8
+ // Fast path for very popular suffixes; this allows to by-pass lookup
9
+ // completely as well as any extra allocation or string manipulation.
10
+ if (!options.allowPrivateDomains && hostname.length > 3) {
11
+ const last: number = hostname.length - 1;
12
+ const c3: number = hostname.charCodeAt(last);
13
+ const c2: number = hostname.charCodeAt(last - 1);
14
+ const c1: number = hostname.charCodeAt(last - 2);
15
+ const c0: number = hostname.charCodeAt(last - 3);
16
+
17
+ if (
18
+ c3 === 109 /* 'm' */ &&
19
+ c2 === 111 /* 'o' */ &&
20
+ c1 === 99 /* 'c' */ &&
21
+ c0 === 46 /* '.' */
22
+ ) {
23
+ out.isIcann = true;
24
+ out.isPrivate = false;
25
+ out.publicSuffix = 'com';
26
+ return true;
27
+ } else if (
28
+ c3 === 103 /* 'g' */ &&
29
+ c2 === 114 /* 'r' */ &&
30
+ c1 === 111 /* 'o' */ &&
31
+ c0 === 46 /* '.' */
32
+ ) {
33
+ out.isIcann = true;
34
+ out.isPrivate = false;
35
+ out.publicSuffix = 'org';
36
+ return true;
37
+ } else if (
38
+ c3 === 117 /* 'u' */ &&
39
+ c2 === 100 /* 'd' */ &&
40
+ c1 === 101 /* 'e' */ &&
41
+ c0 === 46 /* '.' */
42
+ ) {
43
+ out.isIcann = true;
44
+ out.isPrivate = false;
45
+ out.publicSuffix = 'edu';
46
+ return true;
47
+ } else if (
48
+ c3 === 118 /* 'v' */ &&
49
+ c2 === 111 /* 'o' */ &&
50
+ c1 === 103 /* 'g' */ &&
51
+ c0 === 46 /* '.' */
52
+ ) {
53
+ out.isIcann = true;
54
+ out.isPrivate = false;
55
+ out.publicSuffix = 'gov';
56
+ return true;
57
+ } else if (
58
+ c3 === 116 /* 't' */ &&
59
+ c2 === 101 /* 'e' */ &&
60
+ c1 === 110 /* 'n' */ &&
61
+ c0 === 46 /* '.' */
62
+ ) {
63
+ out.isIcann = true;
64
+ out.isPrivate = false;
65
+ out.publicSuffix = 'net';
66
+ return true;
67
+ } else if (
68
+ c3 === 101 /* 'e' */ &&
69
+ c2 === 100 /* 'd' */ &&
70
+ c1 === 46 /* '.' */
71
+ ) {
72
+ out.isIcann = true;
73
+ out.isPrivate = false;
74
+ out.publicSuffix = 'de';
75
+ return true;
76
+ }
77
+ }
78
+
79
+ return false;
80
+ }
@@ -0,0 +1,10 @@
1
+ export interface IPublicSuffix {
2
+ isIcann: boolean | null;
3
+ isPrivate: boolean | null;
4
+ publicSuffix: string | null;
5
+ }
6
+
7
+ export interface ISuffixLookupOptions {
8
+ allowIcannDomains: boolean;
9
+ allowPrivateDomains: boolean;
10
+ }
@@ -0,0 +1,45 @@
1
+ export interface IOptions {
2
+ allowIcannDomains: boolean;
3
+ allowPrivateDomains: boolean;
4
+ detectIp: boolean;
5
+ // Detect RFC 6761 / IANA special-use domains and expose the result as
6
+ // `isSpecialUse` on `parse()`. Off by default so the common path stays
7
+ // allocation-free with no extra work; enable it to populate the field.
8
+ detectSpecialUse: boolean;
9
+ extractHostname: boolean;
10
+ mixedInputs: boolean;
11
+ validHosts: string[] | null;
12
+ validateHostname: boolean;
13
+ }
14
+
15
+ function setDefaultsImpl({
16
+ allowIcannDomains = true,
17
+ allowPrivateDomains = false,
18
+ detectIp = true,
19
+ detectSpecialUse = false,
20
+ extractHostname = true,
21
+ mixedInputs = true,
22
+ validHosts = null,
23
+ validateHostname = true,
24
+ }: Partial<IOptions>): IOptions {
25
+ return {
26
+ allowIcannDomains,
27
+ allowPrivateDomains,
28
+ detectIp,
29
+ detectSpecialUse,
30
+ extractHostname,
31
+ mixedInputs,
32
+ validHosts,
33
+ validateHostname,
34
+ };
35
+ }
36
+
37
+ const DEFAULT_OPTIONS = /*@__INLINE__*/ setDefaultsImpl({});
38
+
39
+ export function setDefaults(options?: Partial<IOptions>): IOptions {
40
+ if (options === undefined) {
41
+ return DEFAULT_OPTIONS;
42
+ }
43
+
44
+ return /*@__INLINE__*/ setDefaultsImpl(options);
45
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Returns the subdomain of a hostname string
3
+ */
4
+ export default function getSubdomain(hostname: string, domain: string): string {
5
+ // If `hostname` and `domain` are the same, then there is no sub-domain
6
+ if (domain.length === hostname.length) {
7
+ return '';
8
+ }
9
+
10
+ return hostname.slice(0, -domain.length - 1);
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@noodleseed/one",
3
- "version": "0.93.0",
3
+ "version": "0.94.0",
4
4
  "private": false,
5
5
  "description": "Noodle CLI by Noodle Seed — author, run, and deploy declarative MCP servers. Embedding the assistant in your own web app is @noodleseed/assistant.",
6
6
  "license": "Apache-2.0",
@@ -174,6 +174,8 @@
174
174
  "statuses",
175
175
  "stripe",
176
176
  "tailwindcss",
177
+ "tldts",
178
+ "tldts-core",
177
179
  "toidentifier",
178
180
  "tslib",
179
181
  "typescript",