nexus-agents 14.0.0 → 14.0.2
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.
- package/dist/{ast-rule-runner-3PYXOOLH.js → ast-rule-runner-2PEUHSHO.js} +5 -5
- package/dist/{child-mcp-config-AKQYBMMC.js → child-mcp-config-AYVMLJDV.js} +4 -4
- package/dist/{chunk-YKCJJP5X.js → chunk-236T3AOZ.js} +4 -4
- package/dist/{chunk-GCD3OFFM.js → chunk-5QNWRC7B.js} +2 -2
- package/dist/{chunk-LD6QCSHT.js → chunk-B5RDZLU3.js} +4 -4
- package/dist/{chunk-UZZHLCYW.js → chunk-CZSEUZFE.js} +2 -2
- package/dist/{chunk-6FBREJER.js → chunk-DCPN7F5J.js} +2 -2
- package/dist/{chunk-XRMP4PP4.js → chunk-DXDKAVWV.js} +5 -5
- package/dist/{chunk-K5MAYIHL.js → chunk-FEAWCZ7E.js} +2 -2
- package/dist/{chunk-FLIBWADL.js → chunk-GDCIDLUF.js} +36 -25
- package/dist/chunk-GDCIDLUF.js.map +1 -0
- package/dist/{chunk-CUPOUBBN.js → chunk-GPZQVYKV.js} +2 -2
- package/dist/{chunk-IBGLJEW7.js → chunk-GR4BMQAS.js} +9 -7
- package/dist/chunk-GR4BMQAS.js.map +1 -0
- package/dist/{chunk-MB2UUFF7.js → chunk-H6SGSQJM.js} +2 -2
- package/dist/{chunk-KVFNI2UZ.js → chunk-HJJRUYNR.js} +7 -6
- package/dist/chunk-HJJRUYNR.js.map +1 -0
- package/dist/{chunk-AJBRMUGK.js → chunk-IZSJWIHK.js} +40 -9
- package/dist/chunk-IZSJWIHK.js.map +1 -0
- package/dist/{chunk-K6CUB3IV.js → chunk-JV3UBRRA.js} +2 -2
- package/dist/{chunk-6EUYMTVU.js → chunk-KXWLZDQR.js} +5 -5
- package/dist/{chunk-CQ6FAAOO.js → chunk-LBVPKHHU.js} +3 -3
- package/dist/{chunk-EFE6ORME.js → chunk-LC34UPDQ.js} +2 -2
- package/dist/{chunk-NA55VLER.js → chunk-LE6TQVXF.js} +2 -2
- package/dist/{chunk-KZ5R5HL7.js → chunk-MFUJU7RO.js} +3 -3
- package/dist/{chunk-7S6ANELD.js → chunk-MQSSTTZU.js} +4 -4
- package/dist/{chunk-CP73UYNV.js → chunk-OQR2C64M.js} +5 -5
- package/dist/{chunk-UBCGX47E.js → chunk-P3CFDAW5.js} +2 -2
- package/dist/{chunk-G2MC6WXA.js → chunk-PG6NTUTS.js} +8 -8
- package/dist/{chunk-HQMIDROO.js → chunk-PQ3V2SYP.js} +2 -2
- package/dist/{chunk-36B7J7CZ.js → chunk-Q6R3JTXH.js} +3 -3
- package/dist/{chunk-PI54VS4I.js → chunk-SNSV6GGV.js} +10 -10
- package/dist/{chunk-BSGMAUA4.js → chunk-SQPFJLCI.js} +3 -3
- package/dist/{chunk-7VMEUGNV.js → chunk-TV6RX3ZL.js} +4 -4
- package/dist/{chunk-7BKOWPKX.js → chunk-TYIIAIXA.js} +7 -7
- package/dist/{chunk-2A4P2DX3.js → chunk-VH4T4O5L.js} +2 -2
- package/dist/{chunk-ABTRD52Y.js → chunk-WWBYNWYB.js} +4 -4
- package/dist/{chunk-BELY4VU4.js → chunk-YE3T4X2U.js} +4 -4
- package/dist/{chunk-XU6N5OKA.js → chunk-YSEMHACQ.js} +36 -37
- package/dist/{chunk-XU6N5OKA.js.map → chunk-YSEMHACQ.js.map} +1 -1
- package/dist/{cli-circuit-breaker-37UQWOAA.js → cli-circuit-breaker-HWMTEEYI.js} +5 -5
- package/dist/{cli-readiness-RSBS6FN3.js → cli-readiness-6C6E2T2O.js} +9 -9
- package/dist/{cli-server-gateway-C5QPDUWS.js → cli-server-gateway-HHRF22EB.js} +14 -14
- package/dist/cli.js +505 -409
- package/dist/cli.js.map +1 -1
- package/dist/{composite-router-WERJYE7X.js → composite-router-CX2W7RVA.js} +4 -4
- package/dist/{consensus-vote-G2MKNTMW.js → consensus-vote-CQGIWMYY.js} +17 -17
- package/dist/{context-retriever-H34LHPWB.js → context-retriever-G4LMWEN5.js} +10 -10
- package/dist/{doctor-deep-XBUWYYXO.js → doctor-deep-VOX7KVGK.js} +5 -5
- package/dist/{doctor-gateway-report-JRENPRNM.js → doctor-gateway-report-GMYX62JU.js} +7 -7
- package/dist/{doctor-live-CFUUN5K4.js → doctor-live-AES3PON5.js} +14 -14
- package/dist/{expert-bridge-FPFMGB3W.js → expert-bridge-WEZXYIGA.js} +6 -6
- package/dist/{factory-RQ5Q2TMY.js → factory-L2DIM3PM.js} +7 -7
- package/dist/{factory-HYRMAIGW.js → factory-L6CLXVPW.js} +13 -13
- package/dist/{gemini-adapter-EHQUG5QP.js → gemini-adapter-CL7YW7UZ.js} +8 -8
- package/dist/{improvement-review-SMUO5UVF.js → improvement-review-EBC3I55P.js} +6 -6
- package/dist/index.d.ts +1 -1
- package/dist/index.js +27 -27
- package/dist/{init-opencode-56GNUSHL.js → init-opencode-F6FV63VR.js} +6 -6
- package/dist/{issue-triage-LPX3EU4I.js → issue-triage-3EJ5DSGG.js} +7 -7
- package/dist/{model-config-helpers-XBHRUWIC.js → model-config-helpers-27GO3OEU.js} +3 -3
- package/dist/{openai-compat-adapter-WEHE5LKH.js → openai-compat-adapter-JJD7VWZC.js} +6 -6
- package/dist/{pr-reviewer-helpers-XPT57QHF.js → pr-reviewer-helpers-KGGKESLT.js} +5 -5
- package/dist/{registry-command-D5TA6433.js → registry-command-SQQNXDGS.js} +2 -2
- package/dist/{repo-security-plan-OH7IPPQU.js → repo-security-plan-CIGD7QBY.js} +4 -4
- package/dist/{research-helpers-synthesize-UYICMMMM.js → research-helpers-synthesize-HAQSK2RL.js} +6 -6
- package/dist/{routing-memory-PKD2T674.js → routing-memory-AFHV5NDT.js} +4 -4
- package/dist/{session-memory-IRR7GLZT.js → session-memory-RBY5SHFK.js} +5 -5
- package/dist/{setup-config-N4OYZSCY.js → setup-config-47NNRD4E.js} +5 -5
- package/dist/{setup-custom-api-4VLHKKBF.js → setup-custom-api-H74QY7EM.js} +5 -5
- package/dist/{tool-memory-MSOEUVUX.js → tool-memory-QESESDGS.js} +7 -7
- package/dist/{unified-registry-W2DCYXUT.js → unified-registry-HWZRXFQ6.js} +13 -13
- package/dist/{weather-report-FANVIPXZ.js → weather-report-QZLXDT5L.js} +4 -4
- package/node_modules/@protobufjs/aspromise/LICENSE +26 -0
- package/node_modules/@protobufjs/aspromise/README.md +13 -0
- package/node_modules/{protobufjs/src/util/aspromise.d.ts → @protobufjs/aspromise/index.d.ts} +13 -13
- package/node_modules/{protobufjs/src/util/aspromise.js → @protobufjs/aspromise/index.js} +52 -52
- package/node_modules/@protobufjs/aspromise/package.json +21 -0
- package/node_modules/@protobufjs/aspromise/tests/index.js +130 -0
- package/node_modules/@protobufjs/base64/LICENSE +26 -0
- package/node_modules/@protobufjs/base64/README.md +19 -0
- package/node_modules/{protobufjs/src/util/base64.d.ts → @protobufjs/base64/index.d.ts} +32 -32
- package/node_modules/{protobufjs/src/util/base64.js → @protobufjs/base64/index.js} +139 -146
- package/node_modules/@protobufjs/base64/package.json +21 -0
- package/node_modules/@protobufjs/base64/tests/index.js +46 -0
- package/node_modules/@protobufjs/codegen/LICENSE +26 -0
- package/node_modules/@protobufjs/codegen/README.md +49 -0
- package/node_modules/{protobufjs/src/util/codegen.d.ts → @protobufjs/codegen/index.d.ts} +31 -31
- package/node_modules/{protobufjs/src/util/codegen.js → @protobufjs/codegen/index.js} +112 -120
- package/node_modules/@protobufjs/codegen/package.json +13 -0
- package/node_modules/@protobufjs/codegen/tests/index.js +13 -0
- package/node_modules/@protobufjs/eventemitter/CHANGELOG.md +8 -0
- package/node_modules/@protobufjs/eventemitter/LICENSE +26 -0
- package/node_modules/@protobufjs/eventemitter/README.md +22 -0
- package/node_modules/{protobufjs/src/util/eventemitter.d.ts → @protobufjs/eventemitter/index.d.ts} +45 -45
- package/node_modules/{protobufjs/src/util/eventemitter.js → @protobufjs/eventemitter/index.js} +86 -86
- package/node_modules/@protobufjs/eventemitter/package.json +21 -0
- package/node_modules/@protobufjs/eventemitter/tests/index.js +83 -0
- package/node_modules/@protobufjs/fetch/CHANGELOG.md +8 -0
- package/node_modules/@protobufjs/fetch/LICENSE +26 -0
- package/node_modules/@protobufjs/fetch/README.md +13 -0
- package/node_modules/{protobufjs/src/util/fetch.d.ts → @protobufjs/fetch/index.d.ts} +56 -56
- package/node_modules/{protobufjs/src/util/fetch.js → @protobufjs/fetch/index.js} +112 -112
- package/node_modules/@protobufjs/fetch/package.json +27 -0
- package/node_modules/@protobufjs/fetch/tests/data/file.txt +1 -0
- package/node_modules/@protobufjs/fetch/tests/index.js +158 -0
- package/node_modules/@protobufjs/fetch/util/fs.js +11 -0
- package/node_modules/@protobufjs/float/LICENSE +26 -0
- package/node_modules/@protobufjs/float/README.md +102 -0
- package/node_modules/@protobufjs/float/bench/index.js +87 -0
- package/node_modules/@protobufjs/float/bench/suite.js +46 -0
- package/node_modules/{protobufjs/src/util/float.js → @protobufjs/float/index.js} +335 -335
- package/node_modules/@protobufjs/float/package.json +26 -0
- package/node_modules/@protobufjs/float/tests/index.js +100 -0
- package/node_modules/@protobufjs/path/LICENSE +26 -0
- package/node_modules/@protobufjs/path/README.md +19 -0
- package/node_modules/{protobufjs/src/util/path.d.ts → @protobufjs/path/index.d.ts} +22 -22
- package/node_modules/{protobufjs/src/util/path.js → @protobufjs/path/index.js} +65 -100
- package/node_modules/@protobufjs/path/package.json +21 -0
- package/node_modules/@protobufjs/path/tests/index.js +60 -0
- package/node_modules/@protobufjs/pool/.npmignore +3 -0
- package/node_modules/@protobufjs/pool/LICENSE +26 -0
- package/node_modules/@protobufjs/pool/README.md +13 -0
- package/node_modules/{protobufjs/src/util/pool.d.ts → @protobufjs/pool/index.d.ts} +32 -32
- package/node_modules/{protobufjs/src/util/pool.js → @protobufjs/pool/index.js} +48 -48
- package/node_modules/@protobufjs/pool/package.json +21 -0
- package/node_modules/@protobufjs/pool/tests/index.js +33 -0
- package/node_modules/@protobufjs/utf8/CHANGELOG.md +8 -0
- package/node_modules/@protobufjs/utf8/LICENSE +26 -0
- package/node_modules/@protobufjs/utf8/README.md +20 -0
- package/node_modules/{protobufjs/src/util/utf8.d.ts → @protobufjs/utf8/index.d.ts} +24 -24
- package/node_modules/@protobufjs/utf8/index.js +115 -0
- package/node_modules/@protobufjs/utf8/package.json +21 -0
- package/node_modules/@protobufjs/utf8/tests/data/surrogate_pair_bug.txt +207 -0
- package/node_modules/@protobufjs/utf8/tests/data/utf8.txt +216 -0
- package/node_modules/@protobufjs/utf8/tests/index.js +79 -0
- package/node_modules/@types/node/LICENSE +21 -0
- package/node_modules/@types/node/README.md +15 -0
- package/node_modules/@types/node/assert/strict.d.ts +68 -0
- package/node_modules/@types/node/assert.d.ts +1077 -0
- package/node_modules/@types/node/async_hooks.d.ts +711 -0
- package/node_modules/@types/node/buffer.buffer.d.ts +471 -0
- package/node_modules/@types/node/buffer.d.ts +1800 -0
- package/node_modules/@types/node/child_process.d.ts +1361 -0
- package/node_modules/@types/node/cluster.d.ts +432 -0
- package/node_modules/@types/node/console.d.ts +93 -0
- package/node_modules/@types/node/constants.d.ts +14 -0
- package/node_modules/@types/node/crypto.d.ts +3964 -0
- package/node_modules/@types/node/dgram.d.ts +652 -0
- package/node_modules/@types/node/diagnostics_channel.d.ts +794 -0
- package/node_modules/@types/node/dns/promises.d.ts +497 -0
- package/node_modules/@types/node/dns.d.ts +876 -0
- package/node_modules/@types/node/domain.d.ts +150 -0
- package/node_modules/@types/node/events.d.ts +1008 -0
- package/node_modules/@types/node/ffi.d.ts +500 -0
- package/node_modules/@types/node/fs/promises.d.ts +1477 -0
- package/node_modules/@types/node/fs.d.ts +4803 -0
- package/node_modules/@types/node/globals.d.ts +150 -0
- package/node_modules/@types/node/globals.typedarray.d.ts +101 -0
- package/node_modules/@types/node/http.d.ts +2218 -0
- package/node_modules/@types/node/http2.d.ts +2498 -0
- package/node_modules/@types/node/https.d.ts +400 -0
- package/node_modules/@types/node/index.d.ts +116 -0
- package/node_modules/@types/node/inspector/promises.d.ts +35 -0
- package/node_modules/@types/node/inspector.d.ts +265 -0
- package/node_modules/@types/node/inspector.generated.d.ts +4406 -0
- package/node_modules/@types/node/module.d.ts +726 -0
- package/node_modules/@types/node/net.d.ts +1074 -0
- package/node_modules/@types/node/os.d.ts +498 -0
- package/node_modules/@types/node/package.json +140 -0
- package/node_modules/@types/node/path/posix.d.ts +8 -0
- package/node_modules/@types/node/path/win32.d.ts +8 -0
- package/node_modules/@types/node/path.d.ts +178 -0
- package/node_modules/@types/node/perf_hooks.d.ts +617 -0
- package/node_modules/@types/node/process.d.ts +2269 -0
- package/node_modules/@types/node/punycode.d.ts +89 -0
- package/node_modules/@types/node/querystring.d.ts +139 -0
- package/node_modules/@types/node/quic.d.ts +2191 -0
- package/node_modules/@types/node/readline/promises.d.ts +158 -0
- package/node_modules/@types/node/readline.d.ts +508 -0
- package/node_modules/@types/node/repl.d.ts +420 -0
- package/node_modules/@types/node/sea.d.ts +47 -0
- package/node_modules/@types/node/sqlite.d.ts +1140 -0
- package/node_modules/@types/node/stream/consumers.d.ts +114 -0
- package/node_modules/@types/node/stream/iter.d.ts +449 -0
- package/node_modules/@types/node/stream/promises.d.ts +211 -0
- package/node_modules/@types/node/stream/web.d.ts +320 -0
- package/node_modules/@types/node/stream.d.ts +1806 -0
- package/node_modules/@types/node/string_decoder.d.ts +27 -0
- package/node_modules/@types/node/test/reporters.d.ts +60 -0
- package/node_modules/@types/node/test.d.ts +2558 -0
- package/node_modules/@types/node/timers/promises.d.ts +93 -0
- package/node_modules/@types/node/timers.d.ts +149 -0
- package/node_modules/@types/node/tls.d.ts +1232 -0
- package/node_modules/@types/node/trace_events.d.ts +103 -0
- package/node_modules/@types/node/ts5.6/buffer.buffer.d.ts +467 -0
- package/node_modules/@types/node/ts5.6/compatibility/float16array.d.ts +71 -0
- package/node_modules/@types/node/ts5.6/globals.typedarray.d.ts +36 -0
- package/node_modules/@types/node/ts5.6/index.d.ts +118 -0
- package/node_modules/@types/node/ts5.7/compatibility/float16array.d.ts +72 -0
- package/node_modules/@types/node/ts5.7/index.d.ts +118 -0
- package/node_modules/@types/node/tty.d.ts +226 -0
- package/node_modules/@types/node/url.d.ts +556 -0
- package/node_modules/@types/node/util/types.d.ts +558 -0
- package/node_modules/@types/node/util.d.ts +1680 -0
- package/node_modules/@types/node/v8.d.ts +1059 -0
- package/node_modules/@types/node/vfs.d.ts +211 -0
- package/node_modules/@types/node/vm.d.ts +1137 -0
- package/node_modules/@types/node/wasi.d.ts +131 -0
- package/node_modules/@types/node/web-globals/abortcontroller.d.ts +59 -0
- package/node_modules/@types/node/web-globals/blob.d.ts +23 -0
- package/node_modules/@types/node/web-globals/console.d.ts +9 -0
- package/node_modules/@types/node/web-globals/crypto.d.ts +39 -0
- package/node_modules/@types/node/web-globals/domexception.d.ts +83 -0
- package/node_modules/@types/node/web-globals/encoding.d.ts +11 -0
- package/node_modules/@types/node/web-globals/events.d.ts +106 -0
- package/node_modules/@types/node/web-globals/fetch.d.ts +69 -0
- package/node_modules/@types/node/web-globals/importmeta.d.ts +13 -0
- package/node_modules/@types/node/web-globals/messaging.d.ts +23 -0
- package/node_modules/@types/node/web-globals/navigator.d.ts +25 -0
- package/node_modules/@types/node/web-globals/performance.d.ts +45 -0
- package/node_modules/@types/node/web-globals/storage.d.ts +24 -0
- package/node_modules/@types/node/web-globals/streams.d.ts +119 -0
- package/node_modules/@types/node/web-globals/timers.d.ts +44 -0
- package/node_modules/@types/node/web-globals/url.d.ts +24 -0
- package/node_modules/@types/node/worker_threads.d.ts +672 -0
- package/node_modules/@types/node/zlib/iter.d.ts +131 -0
- package/node_modules/@types/node/zlib.d.ts +612 -0
- package/node_modules/fast-uri/.github/dependabot.yml +2 -42
- package/node_modules/fast-uri/.github/workflows/ci.yml +6 -54
- package/node_modules/fast-uri/.github/workflows/lock-threads.yml +1 -1
- package/node_modules/fast-uri/.github/workflows/package-manager-ci.yml +24 -0
- package/node_modules/fast-uri/.github/workflows/release.yml +2 -1
- package/node_modules/fast-uri/README.md +10 -12
- package/node_modules/fast-uri/benchmark/benchmark.mjs +0 -71
- package/node_modules/fast-uri/index.js +20 -94
- package/node_modules/fast-uri/lib/schemes.js +4 -439
- package/node_modules/fast-uri/lib/utils.js +113 -230
- package/node_modules/fast-uri/package.json +5 -5
- package/node_modules/fast-uri/test/equal.test.js +0 -63
- package/node_modules/fast-uri/test/fixtures/uri-js-parse.json +1 -23
- package/node_modules/fast-uri/test/fixtures/uri-js-serialize.json +1 -23
- package/node_modules/fast-uri/test/ipv6-validation.test.js +0 -160
- package/node_modules/fast-uri/test/parse.test.js +5 -150
- package/node_modules/fast-uri/test/relative-normalization-security.test.js +4 -0
- package/node_modules/fast-uri/test/scheme-validation.test.js +5 -3
- package/node_modules/fast-uri/test/security.test.js +2 -2
- package/node_modules/fast-uri/test/serialize.test.js +0 -144
- package/node_modules/fast-uri/test/uri-js-compatibility.test.js +3 -0
- package/node_modules/fast-uri/test/uri-js.test.js +9 -11
- package/node_modules/fast-uri/test/urn-full-input.test.js +0 -18
- package/node_modules/fast-uri/test/util.test.js +0 -9
- package/node_modules/fast-uri/tsconfig.json +7 -8
- package/node_modules/fast-uri/types/index.d.ts +9 -20
- package/node_modules/fast-uri/types/index.test-d.ts +17 -0
- package/node_modules/hono/README.md +2 -3
- package/node_modules/hono/dist/cjs/helper/css/common.js +8 -3
- package/node_modules/hono/dist/cjs/helper/css/index.js +1 -1
- package/node_modules/hono/dist/cjs/helper/route/index.js +3 -1
- package/node_modules/hono/dist/cjs/jsx/base.js +1 -1
- package/node_modules/hono/dist/cjs/middleware/bearer-auth/index.js +8 -0
- package/node_modules/hono/dist/cjs/middleware/serve-static/index.js +3 -1
- package/node_modules/hono/dist/cjs/router/trie-router/node.js +2 -2
- package/node_modules/hono/dist/cjs/utils/url.js +11 -6
- package/node_modules/hono/dist/helper/css/common.js +8 -3
- package/node_modules/hono/dist/helper/css/index.js +1 -1
- package/node_modules/hono/dist/helper/route/index.js +3 -1
- package/node_modules/hono/dist/jsx/base.js +1 -1
- package/node_modules/hono/dist/middleware/bearer-auth/index.js +8 -0
- package/node_modules/hono/dist/middleware/serve-static/index.js +3 -1
- package/node_modules/hono/dist/router/trie-router/node.js +2 -2
- package/node_modules/hono/dist/types/adapter/aws-lambda/conninfo.d.ts +1 -1
- package/node_modules/hono/dist/types/adapter/bun/conninfo.d.ts +1 -1
- package/node_modules/hono/dist/types/adapter/bun/ssg.d.ts +1 -1
- package/node_modules/hono/dist/types/adapter/cloudflare-pages/conninfo.d.ts +1 -1
- package/node_modules/hono/dist/types/adapter/cloudflare-workers/conninfo.d.ts +1 -1
- package/node_modules/hono/dist/types/adapter/deno/conninfo.d.ts +1 -1
- package/node_modules/hono/dist/types/adapter/deno/ssg.d.ts +1 -1
- package/node_modules/hono/dist/types/adapter/lambda-edge/conninfo.d.ts +1 -1
- package/node_modules/hono/dist/types/adapter/netlify/conninfo.d.ts +1 -1
- package/node_modules/hono/dist/types/adapter/vercel/conninfo.d.ts +1 -1
- package/node_modules/hono/dist/types/helper/testing/index.d.ts +2 -1
- package/node_modules/hono/dist/types/hono-base.d.ts +21 -9
- package/node_modules/hono/dist/types/index.d.ts +1 -1
- package/node_modules/hono/dist/types/jsx/components.d.ts +2 -2
- package/node_modules/hono/dist/types/jsx/context.d.ts +2 -2
- package/node_modules/hono/dist/types/jsx/dom/components.d.ts +2 -2
- package/node_modules/hono/dist/types/jsx/dom/css.d.ts +2 -2
- package/node_modules/hono/dist/types/jsx/streaming.d.ts +4 -3
- package/node_modules/hono/dist/types/middleware/bearer-auth/index.d.ts +2 -1
- package/node_modules/hono/dist/types/middleware/ip-restriction/index.d.ts +3 -3
- package/node_modules/hono/dist/types/middleware/jsx-renderer/index.d.ts +3 -3
- package/node_modules/hono/dist/types/utils/ipaddr.d.ts +1 -1
- package/node_modules/hono/dist/utils/url.js +11 -6
- package/node_modules/hono/package.json +1 -1
- package/node_modules/ip-address/dist/common.js +2 -2
- package/node_modules/ip-address/dist/common.js.map +1 -1
- package/node_modules/ip-address/package.json +2 -2
- package/node_modules/path-to-regexp/Readme.md +7 -1
- package/node_modules/path-to-regexp/dist/index.d.ts +12 -7
- package/node_modules/path-to-regexp/dist/index.js +99 -99
- package/node_modules/path-to-regexp/dist/index.js.map +1 -1
- package/node_modules/path-to-regexp/package.json +8 -9
- package/node_modules/protobufjs/README.md +562 -259
- package/node_modules/protobufjs/dist/light/protobuf.js +1915 -3267
- package/node_modules/protobufjs/dist/light/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/light/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/light/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.js +1173 -2018
- package/node_modules/protobufjs/dist/minimal/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/minimal/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/dist/protobuf.js +1982 -3483
- package/node_modules/protobufjs/dist/protobuf.js.map +1 -1
- package/node_modules/protobufjs/dist/protobuf.min.js +3 -3
- package/node_modules/protobufjs/dist/protobuf.min.js.map +1 -1
- package/node_modules/protobufjs/ext/descriptor/README.md +70 -3
- package/node_modules/protobufjs/ext/descriptor/index.d.ts +193 -0
- package/node_modules/protobufjs/ext/descriptor/index.js +1185 -1
- package/node_modules/protobufjs/ext/descriptor/test.js +54 -0
- package/node_modules/protobufjs/google/api/annotations.json +1 -3
- package/node_modules/protobufjs/google/api/http.json +1 -2
- package/node_modules/protobufjs/google/protobuf/api.json +6 -12
- package/node_modules/protobufjs/google/protobuf/descriptor.json +88 -194
- package/node_modules/protobufjs/google/protobuf/descriptor.proto +9 -15
- package/node_modules/protobufjs/google/protobuf/source_context.json +1 -2
- package/node_modules/protobufjs/google/protobuf/type.json +7 -14
- package/node_modules/protobufjs/index.d.ts +685 -1077
- package/node_modules/protobufjs/package.json +51 -25
- package/node_modules/protobufjs/scripts/postinstall.js +32 -0
- package/node_modules/protobufjs/src/common.js +8 -14
- package/node_modules/protobufjs/src/converter.js +52 -90
- package/node_modules/protobufjs/src/decoder.js +67 -211
- package/node_modules/protobufjs/src/encoder.js +7 -27
- package/node_modules/protobufjs/src/enum.js +7 -33
- package/node_modules/protobufjs/src/field.js +20 -77
- package/node_modules/protobufjs/src/index-light.js +29 -29
- package/node_modules/protobufjs/src/index-minimal.js +13 -12
- package/node_modules/protobufjs/src/index.js +6 -6
- package/node_modules/protobufjs/src/mapfield.js +8 -26
- package/node_modules/protobufjs/src/message.js +11 -5
- package/node_modules/protobufjs/src/method.js +7 -30
- package/node_modules/protobufjs/src/namespace.js +10 -26
- package/node_modules/protobufjs/src/object.js +31 -44
- package/node_modules/protobufjs/src/oneof.js +1 -12
- package/node_modules/protobufjs/src/parse.js +67 -194
- package/node_modules/protobufjs/src/reader.js +58 -520
- package/node_modules/protobufjs/src/reader_buffer.js +5 -31
- package/node_modules/protobufjs/src/root.js +4 -16
- package/node_modules/protobufjs/src/rpc/service.js +5 -18
- package/node_modules/protobufjs/src/service.js +2 -15
- package/node_modules/protobufjs/src/tokenize.js +4 -20
- package/node_modules/protobufjs/src/type.js +37 -91
- package/node_modules/protobufjs/src/typescript.jsdoc +15 -0
- package/node_modules/protobufjs/src/util/longbits.js +6 -10
- package/node_modules/protobufjs/src/util/minimal.js +51 -71
- package/node_modules/protobufjs/src/util.js +17 -51
- package/node_modules/protobufjs/src/verifier.js +14 -19
- package/node_modules/protobufjs/src/wrappers.js +3 -2
- package/node_modules/protobufjs/src/writer.js +189 -428
- package/node_modules/protobufjs/src/writer_buffer.js +26 -41
- package/node_modules/protobufjs/tsconfig.json +5 -3
- package/node_modules/undici-types/LICENSE +21 -0
- package/node_modules/undici-types/README.md +6 -0
- package/node_modules/undici-types/agent.d.ts +30 -0
- package/node_modules/undici-types/api.d.ts +43 -0
- package/node_modules/undici-types/balanced-pool.d.ts +30 -0
- package/node_modules/undici-types/cache-interceptor.d.ts +179 -0
- package/node_modules/undici-types/cache.d.ts +36 -0
- package/node_modules/undici-types/client-stats.d.ts +15 -0
- package/node_modules/undici-types/client.d.ts +134 -0
- package/node_modules/undici-types/connector.d.ts +37 -0
- package/node_modules/undici-types/content-type.d.ts +21 -0
- package/node_modules/undici-types/cookies.d.ts +30 -0
- package/node_modules/undici-types/diagnostics-channel.d.ts +74 -0
- package/node_modules/undici-types/dispatcher.d.ts +253 -0
- package/node_modules/undici-types/dispatcher1-wrapper.d.ts +7 -0
- package/node_modules/undici-types/env-http-proxy-agent.d.ts +22 -0
- package/node_modules/undici-types/errors.d.ts +187 -0
- package/node_modules/undici-types/eventsource.d.ts +66 -0
- package/node_modules/undici-types/fetch.d.ts +235 -0
- package/node_modules/undici-types/formdata.d.ts +108 -0
- package/node_modules/undici-types/global-dispatcher.d.ts +9 -0
- package/node_modules/undici-types/global-origin.d.ts +7 -0
- package/node_modules/undici-types/h2c-client.d.ts +73 -0
- package/node_modules/undici-types/handlers.d.ts +16 -0
- package/node_modules/undici-types/header.d.ts +165 -0
- package/node_modules/undici-types/index.d.ts +93 -0
- package/node_modules/undici-types/interceptors.d.ts +80 -0
- package/node_modules/undici-types/mock-agent.d.ts +68 -0
- package/node_modules/undici-types/mock-call-history.d.ts +111 -0
- package/node_modules/undici-types/mock-client.d.ts +27 -0
- package/node_modules/undici-types/mock-errors.d.ts +12 -0
- package/node_modules/undici-types/mock-interceptor.d.ts +98 -0
- package/node_modules/undici-types/mock-pool.d.ts +27 -0
- package/node_modules/undici-types/package.json +55 -0
- package/node_modules/undici-types/patch.d.ts +29 -0
- package/node_modules/undici-types/pool-stats.d.ts +19 -0
- package/node_modules/undici-types/pool.d.ts +39 -0
- package/node_modules/undici-types/proxy-agent.d.ts +36 -0
- package/node_modules/undici-types/readable.d.ts +68 -0
- package/node_modules/undici-types/retry-agent.d.ts +8 -0
- package/node_modules/undici-types/retry-handler.d.ts +125 -0
- package/node_modules/undici-types/round-robin-pool.d.ts +39 -0
- package/node_modules/undici-types/snapshot-agent.d.ts +113 -0
- package/node_modules/undici-types/socks5-proxy-agent.d.ts +25 -0
- package/node_modules/undici-types/util.d.ts +18 -0
- package/node_modules/undici-types/utility.d.ts +7 -0
- package/node_modules/undici-types/webidl.d.ts +346 -0
- package/node_modules/undici-types/websocket.d.ts +188 -0
- package/package.json +19 -7
- package/dist/chunk-AJBRMUGK.js.map +0 -1
- package/dist/chunk-FLIBWADL.js.map +0 -1
- package/dist/chunk-IBGLJEW7.js.map +0 -1
- package/dist/chunk-KVFNI2UZ.js.map +0 -1
- package/node_modules/fast-uri/.github/workflows/ossf-scorecard.yml +0 -45
- package/node_modules/fast-uri/SECURITY.md +0 -222
- package/node_modules/fast-uri/benchmark/encoder.mjs +0 -54
- package/node_modules/fast-uri/test/c0-reference-security.test.js +0 -137
- package/node_modules/fast-uri/test/host-encoding.test.js +0 -60
- package/node_modules/fast-uri/test/mailto-authority-security.test.js +0 -125
- package/node_modules/fast-uri/test/mailto-field-name-security.test.js +0 -151
- package/node_modules/fast-uri/test/scheme-normalization.test.js +0 -16
- package/node_modules/fast-uri/test/security-utf8-encoding.test.js +0 -0
- package/node_modules/fast-uri/types/index.tst.ts +0 -31
- package/node_modules/protobufjs/ext/README.md +0 -70
- package/node_modules/protobufjs/ext/descriptor.d.ts +0 -87
- package/node_modules/protobufjs/ext/descriptor.generated.d.ts +0 -424
- package/node_modules/protobufjs/ext/descriptor.js +0 -1405
- package/node_modules/protobufjs/ext/protojson.LICENSE +0 -201
- package/node_modules/protobufjs/ext/protojson.d.ts +0 -20
- package/node_modules/protobufjs/ext/protojson.generated.d.ts +0 -49
- package/node_modules/protobufjs/ext/protojson.js +0 -972
- package/node_modules/protobufjs/ext/textformat.d.ts +0 -19
- package/node_modules/protobufjs/ext/textformat.generated.d.ts +0 -33
- package/node_modules/protobufjs/ext/textformat.js +0 -1280
- package/node_modules/protobufjs/google/protobuf/compiler/plugin.json +0 -126
- package/node_modules/protobufjs/google/protobuf/compiler/plugin.proto +0 -47
- package/node_modules/protobufjs/google/protobuf/json_enumvalue_options.json +0 -56
- package/node_modules/protobufjs/google/protobuf/json_enumvalue_options.proto +0 -31
- package/node_modules/protobufjs/src/typescript.js +0 -25
- package/node_modules/protobufjs/src/util/utf8.js +0 -164
- /package/dist/{ast-rule-runner-3PYXOOLH.js.map → ast-rule-runner-2PEUHSHO.js.map} +0 -0
- /package/dist/{child-mcp-config-AKQYBMMC.js.map → child-mcp-config-AYVMLJDV.js.map} +0 -0
- /package/dist/{chunk-YKCJJP5X.js.map → chunk-236T3AOZ.js.map} +0 -0
- /package/dist/{chunk-GCD3OFFM.js.map → chunk-5QNWRC7B.js.map} +0 -0
- /package/dist/{chunk-LD6QCSHT.js.map → chunk-B5RDZLU3.js.map} +0 -0
- /package/dist/{chunk-UZZHLCYW.js.map → chunk-CZSEUZFE.js.map} +0 -0
- /package/dist/{chunk-6FBREJER.js.map → chunk-DCPN7F5J.js.map} +0 -0
- /package/dist/{chunk-XRMP4PP4.js.map → chunk-DXDKAVWV.js.map} +0 -0
- /package/dist/{chunk-K5MAYIHL.js.map → chunk-FEAWCZ7E.js.map} +0 -0
- /package/dist/{chunk-CUPOUBBN.js.map → chunk-GPZQVYKV.js.map} +0 -0
- /package/dist/{chunk-MB2UUFF7.js.map → chunk-H6SGSQJM.js.map} +0 -0
- /package/dist/{chunk-K6CUB3IV.js.map → chunk-JV3UBRRA.js.map} +0 -0
- /package/dist/{chunk-6EUYMTVU.js.map → chunk-KXWLZDQR.js.map} +0 -0
- /package/dist/{chunk-CQ6FAAOO.js.map → chunk-LBVPKHHU.js.map} +0 -0
- /package/dist/{chunk-EFE6ORME.js.map → chunk-LC34UPDQ.js.map} +0 -0
- /package/dist/{chunk-NA55VLER.js.map → chunk-LE6TQVXF.js.map} +0 -0
- /package/dist/{chunk-KZ5R5HL7.js.map → chunk-MFUJU7RO.js.map} +0 -0
- /package/dist/{chunk-7S6ANELD.js.map → chunk-MQSSTTZU.js.map} +0 -0
- /package/dist/{chunk-CP73UYNV.js.map → chunk-OQR2C64M.js.map} +0 -0
- /package/dist/{chunk-UBCGX47E.js.map → chunk-P3CFDAW5.js.map} +0 -0
- /package/dist/{chunk-G2MC6WXA.js.map → chunk-PG6NTUTS.js.map} +0 -0
- /package/dist/{chunk-HQMIDROO.js.map → chunk-PQ3V2SYP.js.map} +0 -0
- /package/dist/{chunk-36B7J7CZ.js.map → chunk-Q6R3JTXH.js.map} +0 -0
- /package/dist/{chunk-PI54VS4I.js.map → chunk-SNSV6GGV.js.map} +0 -0
- /package/dist/{chunk-BSGMAUA4.js.map → chunk-SQPFJLCI.js.map} +0 -0
- /package/dist/{chunk-7VMEUGNV.js.map → chunk-TV6RX3ZL.js.map} +0 -0
- /package/dist/{chunk-7BKOWPKX.js.map → chunk-TYIIAIXA.js.map} +0 -0
- /package/dist/{chunk-2A4P2DX3.js.map → chunk-VH4T4O5L.js.map} +0 -0
- /package/dist/{chunk-ABTRD52Y.js.map → chunk-WWBYNWYB.js.map} +0 -0
- /package/dist/{chunk-BELY4VU4.js.map → chunk-YE3T4X2U.js.map} +0 -0
- /package/dist/{cli-circuit-breaker-37UQWOAA.js.map → cli-circuit-breaker-HWMTEEYI.js.map} +0 -0
- /package/dist/{cli-readiness-RSBS6FN3.js.map → cli-readiness-6C6E2T2O.js.map} +0 -0
- /package/dist/{cli-server-gateway-C5QPDUWS.js.map → cli-server-gateway-HHRF22EB.js.map} +0 -0
- /package/dist/{composite-router-WERJYE7X.js.map → composite-router-CX2W7RVA.js.map} +0 -0
- /package/dist/{consensus-vote-G2MKNTMW.js.map → consensus-vote-CQGIWMYY.js.map} +0 -0
- /package/dist/{context-retriever-H34LHPWB.js.map → context-retriever-G4LMWEN5.js.map} +0 -0
- /package/dist/{doctor-deep-XBUWYYXO.js.map → doctor-deep-VOX7KVGK.js.map} +0 -0
- /package/dist/{doctor-gateway-report-JRENPRNM.js.map → doctor-gateway-report-GMYX62JU.js.map} +0 -0
- /package/dist/{doctor-live-CFUUN5K4.js.map → doctor-live-AES3PON5.js.map} +0 -0
- /package/dist/{expert-bridge-FPFMGB3W.js.map → expert-bridge-WEZXYIGA.js.map} +0 -0
- /package/dist/{factory-HYRMAIGW.js.map → factory-L2DIM3PM.js.map} +0 -0
- /package/dist/{factory-RQ5Q2TMY.js.map → factory-L6CLXVPW.js.map} +0 -0
- /package/dist/{gemini-adapter-EHQUG5QP.js.map → gemini-adapter-CL7YW7UZ.js.map} +0 -0
- /package/dist/{improvement-review-SMUO5UVF.js.map → improvement-review-EBC3I55P.js.map} +0 -0
- /package/dist/{init-opencode-56GNUSHL.js.map → init-opencode-F6FV63VR.js.map} +0 -0
- /package/dist/{issue-triage-LPX3EU4I.js.map → issue-triage-3EJ5DSGG.js.map} +0 -0
- /package/dist/{model-config-helpers-XBHRUWIC.js.map → model-config-helpers-27GO3OEU.js.map} +0 -0
- /package/dist/{openai-compat-adapter-WEHE5LKH.js.map → openai-compat-adapter-JJD7VWZC.js.map} +0 -0
- /package/dist/{pr-reviewer-helpers-XPT57QHF.js.map → pr-reviewer-helpers-KGGKESLT.js.map} +0 -0
- /package/dist/{registry-command-D5TA6433.js.map → registry-command-SQQNXDGS.js.map} +0 -0
- /package/dist/{repo-security-plan-OH7IPPQU.js.map → repo-security-plan-CIGD7QBY.js.map} +0 -0
- /package/dist/{research-helpers-synthesize-UYICMMMM.js.map → research-helpers-synthesize-HAQSK2RL.js.map} +0 -0
- /package/dist/{routing-memory-PKD2T674.js.map → routing-memory-AFHV5NDT.js.map} +0 -0
- /package/dist/{session-memory-IRR7GLZT.js.map → session-memory-RBY5SHFK.js.map} +0 -0
- /package/dist/{setup-config-N4OYZSCY.js.map → setup-config-47NNRD4E.js.map} +0 -0
- /package/dist/{setup-custom-api-4VLHKKBF.js.map → setup-custom-api-H74QY7EM.js.map} +0 -0
- /package/dist/{tool-memory-MSOEUVUX.js.map → tool-memory-QESESDGS.js.map} +0 -0
- /package/dist/{unified-registry-W2DCYXUT.js.map → unified-registry-HWZRXFQ6.js.map} +0 -0
- /package/dist/{weather-report-FANVIPXZ.js.map → weather-report-QZLXDT5L.js.map} +0 -0
- /package/node_modules/{protobufjs/src/util/float.d.ts → @protobufjs/float/index.d.ts} +0 -0
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use strict'
|
|
2
2
|
|
|
3
|
-
const { isUUID
|
|
3
|
+
const { isUUID } = require('./utils')
|
|
4
4
|
const URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu
|
|
5
5
|
|
|
6
6
|
const supportedSchemeNames = /** @type {const} */ (['http', 'https', 'ws',
|
|
7
|
-
'wss', 'urn', 'urn:uuid'
|
|
7
|
+
'wss', 'urn', 'urn:uuid'])
|
|
8
8
|
|
|
9
9
|
/** @typedef {supportedSchemeNames[number]} SchemeName */
|
|
10
10
|
|
|
@@ -230,10 +230,7 @@ const urn = /** @type {SchemeHandler} */ ({
|
|
|
230
230
|
scheme: 'urn',
|
|
231
231
|
parse: urnParse,
|
|
232
232
|
serialize: urnSerialize,
|
|
233
|
-
skipNormalize: true
|
|
234
|
-
// The NSS is opaque to generic URI path processing. In particular, RFC 2141
|
|
235
|
-
// and RFC 8141 do not treat slash-delimited dot segments as equivalent.
|
|
236
|
-
absolutePath: true
|
|
233
|
+
skipNormalize: true
|
|
237
234
|
})
|
|
238
235
|
|
|
239
236
|
const urnuuid = /** @type {SchemeHandler} */ ({
|
|
@@ -243,445 +240,13 @@ const urnuuid = /** @type {SchemeHandler} */ ({
|
|
|
243
240
|
skipNormalize: true
|
|
244
241
|
})
|
|
245
242
|
|
|
246
|
-
/**
|
|
247
|
-
* Allow-sets for `encodeWithAllow`, each a `{ all, table, allowNonAscii }`
|
|
248
|
-
* descriptor built by `allowSet`:
|
|
249
|
-
*
|
|
250
|
-
* - `LOCAL_PART` is the intersection of upstream uri-js's VCHAR and
|
|
251
|
-
* NOT_PATH_NOSCHEME, minus ",": the serializer joins recipients with "," and
|
|
252
|
-
* `mailtoParse` splits the path on it, so a comma left literal inside a local
|
|
253
|
-
* part would silently become a recipient delimiter.
|
|
254
|
-
* - `HFNAME` is the qchar allow-set used for header names/values.
|
|
255
|
-
* - `DTEXT` is RFC 6068 dtext-no-obs restricted to characters that are also
|
|
256
|
-
* safe in a URI path; `DTEXT_IRI` additionally permits non-ASCII for
|
|
257
|
-
* `unicodeSupport`.
|
|
258
|
-
*/
|
|
259
|
-
const LOCAL_PART_ALLOWED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+="
|
|
260
|
-
const HFNAME_ALLOWED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+,;:@"
|
|
261
|
-
const DTEXT_ALLOWED = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$'()*+;:"
|
|
262
|
-
|
|
263
|
-
/**
|
|
264
|
-
* @typedef {Object} AllowSet
|
|
265
|
-
* @property {RegExp} all - matches a whole string needing no encoding at all.
|
|
266
|
-
* @property {Uint8Array} table - per-ASCII-code allow lookup for the slow path.
|
|
267
|
-
* @property {boolean} allowNonAscii - pass non-ASCII code points through (IRI).
|
|
268
|
-
*/
|
|
269
|
-
|
|
270
|
-
/**
|
|
271
|
-
* `all` deliberately excludes "%" and (for the IRI variant) surrogates, so any
|
|
272
|
-
* input needing escape normalization or surrogate repair falls to the slow path.
|
|
273
|
-
*
|
|
274
|
-
* @param {string} chars
|
|
275
|
-
* @param {boolean} [allowNonAscii=false]
|
|
276
|
-
* @returns {AllowSet}
|
|
277
|
-
*/
|
|
278
|
-
function allowSet (chars, allowNonAscii = false) {
|
|
279
|
-
const table = new Uint8Array(128)
|
|
280
|
-
for (let i = 0; i < chars.length; i++) {
|
|
281
|
-
table[chars.charCodeAt(i)] = 1
|
|
282
|
-
}
|
|
283
|
-
const escaped = chars.replace(/[\\\]^-]/gu, '\\$&')
|
|
284
|
-
const cls = allowNonAscii ? `[${escaped}]|[^\\0-\\x7F\\uD800-\\uDFFF]` : `[${escaped}]`
|
|
285
|
-
return { all: new RegExp(`^(?:${cls})*$`, 'u'), table, allowNonAscii }
|
|
286
|
-
}
|
|
287
|
-
|
|
288
|
-
const LOCAL_PART = allowSet(LOCAL_PART_ALLOWED)
|
|
289
|
-
const HFNAME = allowSet(HFNAME_ALLOWED)
|
|
290
|
-
const DTEXT = allowSet(DTEXT_ALLOWED)
|
|
291
|
-
const DTEXT_IRI = allowSet(DTEXT_ALLOWED, true)
|
|
292
|
-
|
|
293
|
-
const HEX_PAIR = /^[\da-f]{2}$/iu
|
|
294
|
-
const MAILTO_DOMAIN_LITERAL = /^\[[\x21-\x5A\x5E-\x7E]*\]$/u
|
|
295
|
-
const MAILTO_DOMAIN_ERROR = 'URI mailto has an invalid recipient domain.'
|
|
296
|
-
const MAILTO_AUTHORITY_ERROR = 'URI mailto must not have an authority component.'
|
|
297
|
-
const HAS_SURROGATE = /[\uD800-\uDFFF]/u
|
|
298
|
-
|
|
299
|
-
/**
|
|
300
|
-
* @param {string} str
|
|
301
|
-
* @returns {string}
|
|
302
|
-
*/
|
|
303
|
-
function decodeHex (str) {
|
|
304
|
-
if (typeof str !== 'string' || str.indexOf('%') === -1) {
|
|
305
|
-
return str
|
|
306
|
-
}
|
|
307
|
-
try {
|
|
308
|
-
return decodeURIComponent(str)
|
|
309
|
-
} catch {
|
|
310
|
-
return str
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
/**
|
|
315
|
-
* Replaces lone surrogates with U+FFFD, leaving valid pairs intact. Only called
|
|
316
|
-
* when `HAS_SURROGATE` matched, so the scan cost is not on the common path.
|
|
317
|
-
* (`String.prototype.toWellFormed` would do this natively but is Node 20+.)
|
|
318
|
-
*
|
|
319
|
-
* @param {string} input
|
|
320
|
-
* @returns {string}
|
|
321
|
-
*/
|
|
322
|
-
function replaceLoneSurrogates (input) {
|
|
323
|
-
let result = ''
|
|
324
|
-
for (let i = 0; i < input.length; i++) {
|
|
325
|
-
const code = input.charCodeAt(i)
|
|
326
|
-
if (code >= 0xD800 && code <= 0xDBFF && i + 1 < input.length) {
|
|
327
|
-
const low = input.charCodeAt(i + 1)
|
|
328
|
-
if (low >= 0xDC00 && low <= 0xDFFF) {
|
|
329
|
-
result += input[i] + input[i + 1]
|
|
330
|
-
i++
|
|
331
|
-
continue
|
|
332
|
-
}
|
|
333
|
-
}
|
|
334
|
-
result += (code >= 0xD800 && code <= 0xDFFF) ? '\uFFFD' : input[i]
|
|
335
|
-
}
|
|
336
|
-
return result
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
/**
|
|
340
|
-
* Percent-encodes everything outside `set`, preserving existing valid escapes
|
|
341
|
-
* (uppercased) and repairing lone surrogates.
|
|
342
|
-
*
|
|
343
|
-
* ASCII uses `BYTE_HEX` rather than `encodeURIComponent`. That is equivalent
|
|
344
|
-
* only because every character `encodeURIComponent` leaves unescaped
|
|
345
|
-
* (`A-Za-z0-9-_.!~*'()`) is present in all of the allow-sets above, so no such
|
|
346
|
-
* character ever reaches the encode branch. Re-check if a set is narrowed.
|
|
347
|
-
*
|
|
348
|
-
* @param {string} input
|
|
349
|
-
* @param {AllowSet} set
|
|
350
|
-
* @returns {string}
|
|
351
|
-
*/
|
|
352
|
-
function encodeWithAllow (input, set) {
|
|
353
|
-
if (set.all.test(input)) {
|
|
354
|
-
return input
|
|
355
|
-
}
|
|
356
|
-
|
|
357
|
-
const table = set.table
|
|
358
|
-
let result = ''
|
|
359
|
-
for (let i = 0; i < input.length; i++) {
|
|
360
|
-
const code = input.charCodeAt(i)
|
|
361
|
-
|
|
362
|
-
if (code < 0x80) {
|
|
363
|
-
if (table[code] === 1) {
|
|
364
|
-
result += input[i]
|
|
365
|
-
} else if (code === 0x25 && i + 2 < input.length && HEX_PAIR.test(input.slice(i + 1, i + 3))) {
|
|
366
|
-
result += '%' + input.slice(i + 1, i + 3).toUpperCase()
|
|
367
|
-
i += 2
|
|
368
|
-
} else {
|
|
369
|
-
result += BYTE_HEX[code]
|
|
370
|
-
}
|
|
371
|
-
continue
|
|
372
|
-
}
|
|
373
|
-
|
|
374
|
-
if (code < 0xD800 || code > 0xDFFF) {
|
|
375
|
-
result += set.allowNonAscii ? input[i] : percentEncodeNonAscii(code)
|
|
376
|
-
continue
|
|
377
|
-
}
|
|
378
|
-
|
|
379
|
-
if (code <= 0xDBFF && i + 1 < input.length) {
|
|
380
|
-
const low = input.charCodeAt(i + 1)
|
|
381
|
-
if (low >= 0xDC00 && low <= 0xDFFF) {
|
|
382
|
-
result += set.allowNonAscii
|
|
383
|
-
? input[i] + input[i + 1]
|
|
384
|
-
: percentEncodeNonAscii(0x10000 + ((code - 0xD800) << 10) + (low - 0xDC00))
|
|
385
|
-
i++
|
|
386
|
-
continue
|
|
387
|
-
}
|
|
388
|
-
}
|
|
389
|
-
|
|
390
|
-
result += set.allowNonAscii ? '\uFFFD' : percentEncodeNonAscii(0xFFFD)
|
|
391
|
-
}
|
|
392
|
-
return result
|
|
393
|
-
}
|
|
394
|
-
|
|
395
|
-
/**
|
|
396
|
-
* @param {string} domain
|
|
397
|
-
* @param {import('../types/index').Options} [options]
|
|
398
|
-
* @param {{error?:string}} [component]
|
|
399
|
-
* @returns {string}
|
|
400
|
-
*/
|
|
401
|
-
function mailtoNormalizeDomain (domain, options, component) {
|
|
402
|
-
const normalizedDomain = String(domain).toLowerCase()
|
|
403
|
-
|
|
404
|
-
if (MAILTO_DOMAIN_LITERAL.test(normalizedDomain)) {
|
|
405
|
-
return normalizedDomain
|
|
406
|
-
}
|
|
407
|
-
|
|
408
|
-
// `hostname` is the identity for these, so skip constructing a WHATWG URL.
|
|
409
|
-
if (normalizedDomain !== '' && !nonSimpleMailtoDomain(normalizedDomain)) {
|
|
410
|
-
return normalizedDomain
|
|
411
|
-
}
|
|
412
|
-
|
|
413
|
-
try {
|
|
414
|
-
const parsedDomain = new URL('http://' + normalizedDomain)
|
|
415
|
-
if (
|
|
416
|
-
parsedDomain.username ||
|
|
417
|
-
parsedDomain.password ||
|
|
418
|
-
parsedDomain.port ||
|
|
419
|
-
parsedDomain.pathname !== '/' ||
|
|
420
|
-
parsedDomain.search ||
|
|
421
|
-
parsedDomain.hash ||
|
|
422
|
-
!parsedDomain.hostname
|
|
423
|
-
) {
|
|
424
|
-
throw new Error(MAILTO_DOMAIN_ERROR)
|
|
425
|
-
}
|
|
426
|
-
|
|
427
|
-
return options && options.unicodeSupport
|
|
428
|
-
? normalizedDomain
|
|
429
|
-
: parsedDomain.hostname
|
|
430
|
-
} catch {
|
|
431
|
-
if (component) {
|
|
432
|
-
component.error = component.error || MAILTO_DOMAIN_ERROR
|
|
433
|
-
}
|
|
434
|
-
return normalizedDomain
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
|
|
438
|
-
/**
|
|
439
|
-
* Percent-encodes everything in a recipient domain that is not `dtext-no-obs`
|
|
440
|
-
* (RFC 6068). Serialize-only: `mailtoNormalizeDomain` returns the domain
|
|
441
|
-
* verbatim when validation fails, and `MAILTO_DOMAIN_LITERAL` accepts the full
|
|
442
|
-
* RFC 5321 dcontent range (which includes "?", "#", "&" and "/"), so without
|
|
443
|
-
* this an attacker-supplied recipient could inject header fields or a fragment
|
|
444
|
-
* into the serialized URI. `mailtoParse` deliberately reports the raw domain
|
|
445
|
-
* instead, so it must not use this.
|
|
446
|
-
* @param {string} domain
|
|
447
|
-
* @param {import('../types/index').Options} [options]
|
|
448
|
-
* @returns {string}
|
|
449
|
-
*/
|
|
450
|
-
function mailtoEncodeDomain (domain, options) {
|
|
451
|
-
const set = options && options.unicodeSupport ? DTEXT_IRI : DTEXT
|
|
452
|
-
|
|
453
|
-
// Keep the delimiters of a domain literal, encode its contents.
|
|
454
|
-
if (domain.length > 1 && domain[0] === '[' && domain[domain.length - 1] === ']') {
|
|
455
|
-
return '[' + encodeWithAllow(domain.slice(1, -1), set) + ']'
|
|
456
|
-
}
|
|
457
|
-
|
|
458
|
-
return encodeWithAllow(domain, set)
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
/**
|
|
462
|
-
* @param {import('../types/index').URIComponent} component
|
|
463
|
-
* @param {import('../types/index').Options} options
|
|
464
|
-
* @returns {import('../types/index').URIComponent}
|
|
465
|
-
*/
|
|
466
|
-
function mailtoParse (component, options) {
|
|
467
|
-
const mailtoComponent = component
|
|
468
|
-
|
|
469
|
-
// The handler sets `skipNormalize`, so path and query arrive raw. Everything
|
|
470
|
-
// here goes through `decodeHex`, which subsumes the generic normalizers --
|
|
471
|
-
// except that they also fold lone surrogates to U+FFFD, so do that here.
|
|
472
|
-
let rawPath = mailtoComponent.path
|
|
473
|
-
let rawQuery = mailtoComponent.query
|
|
474
|
-
if (rawPath && HAS_SURROGATE.test(rawPath)) rawPath = replaceLoneSurrogates(rawPath)
|
|
475
|
-
if (rawQuery && HAS_SURROGATE.test(rawQuery)) rawQuery = replaceLoneSurrogates(rawQuery)
|
|
476
|
-
|
|
477
|
-
const to = rawPath
|
|
478
|
-
? (rawPath.indexOf(',') === -1 ? [rawPath] : rawPath.split(','))
|
|
479
|
-
: []
|
|
480
|
-
mailtoComponent.path = undefined
|
|
481
|
-
|
|
482
|
-
if (rawQuery) {
|
|
483
|
-
// Null prototype: header names come from untrusted input, so `headers[name]`
|
|
484
|
-
// must not resolve to inherited members ("constructor", "toString", ...),
|
|
485
|
-
// and "__proto__" has to land as a plain own property instead of hitting
|
|
486
|
-
// Object.prototype's setter and being silently dropped. Allocated lazily so
|
|
487
|
-
// the common subject/body-only URI does not pay for it.
|
|
488
|
-
/** @type {Record<string,string>|null} */
|
|
489
|
-
let headers = null
|
|
490
|
-
let start = 0
|
|
491
|
-
while (start <= rawQuery.length) {
|
|
492
|
-
let end = rawQuery.indexOf('&', start)
|
|
493
|
-
if (end === -1) end = rawQuery.length
|
|
494
|
-
const token = rawQuery.slice(start, end)
|
|
495
|
-
start = end + 1
|
|
496
|
-
|
|
497
|
-
const eqIdx = token.indexOf('=')
|
|
498
|
-
if (eqIdx !== token.lastIndexOf('=')) {
|
|
499
|
-
mailtoComponent.error = mailtoComponent.error || 'URI mailto has malformed header fields.'
|
|
500
|
-
continue
|
|
501
|
-
}
|
|
502
|
-
const name = decodeHex(eqIdx === -1 ? token : token.slice(0, eqIdx))
|
|
503
|
-
const normalizedName = name.toLowerCase()
|
|
504
|
-
const value = eqIdx === -1 ? '' : token.slice(eqIdx + 1)
|
|
505
|
-
if (normalizedName === 'to') {
|
|
506
|
-
const addrs = value.split(',')
|
|
507
|
-
for (let j = 0; j < addrs.length; j++) to.push(addrs[j])
|
|
508
|
-
continue
|
|
509
|
-
}
|
|
510
|
-
if (normalizedName === 'subject') {
|
|
511
|
-
mailtoComponent.subject = decodeHex(value)
|
|
512
|
-
continue
|
|
513
|
-
}
|
|
514
|
-
if (normalizedName === 'body') {
|
|
515
|
-
mailtoComponent.body = decodeHex(value)
|
|
516
|
-
continue
|
|
517
|
-
}
|
|
518
|
-
if (headers === null) headers = /** @type {Record<string,string>} */ (Object.create(null))
|
|
519
|
-
headers[name] = decodeHex(value)
|
|
520
|
-
}
|
|
521
|
-
if (headers !== null) mailtoComponent.headers = headers
|
|
522
|
-
}
|
|
523
|
-
|
|
524
|
-
mailtoComponent.query = undefined
|
|
525
|
-
|
|
526
|
-
// RFC 6068 defines no authority for the `mailto` scheme. A `mailto://` input
|
|
527
|
-
// that retains an authority and also carries recipients (from the path or a
|
|
528
|
-
// `to=` hfield) folds a leading "/" into the recipient local part on the
|
|
529
|
-
// next parse; the generic serializer then reinserts a "/" before that path
|
|
530
|
-
// on every pass, so serialize(parse(x)) is not a fixpoint and a
|
|
531
|
-
// renormalize-to-fixpoint loop accretes one "%2F" per pass. Drop the
|
|
532
|
-
// retained authority so the parse -> serialize round trip is stable. A bare
|
|
533
|
-
// `mailto://host` with no recipients is left as-is: it is idempotent and host
|
|
534
|
-
// normalization for skip-normalize schemes stays intact.
|
|
535
|
-
if (
|
|
536
|
-
to.length > 0 &&
|
|
537
|
-
(mailtoComponent.userinfo !== undefined ||
|
|
538
|
-
mailtoComponent.host !== undefined ||
|
|
539
|
-
mailtoComponent.port !== undefined)
|
|
540
|
-
) {
|
|
541
|
-
mailtoComponent.userinfo = undefined
|
|
542
|
-
mailtoComponent.host = undefined
|
|
543
|
-
mailtoComponent.port = undefined
|
|
544
|
-
mailtoComponent.error = mailtoComponent.error || MAILTO_AUTHORITY_ERROR
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
for (let i = 0; i < to.length; i++) {
|
|
548
|
-
const rawAddr = to[i]
|
|
549
|
-
const atIdx = rawAddr.lastIndexOf('@')
|
|
550
|
-
if (atIdx < 0) {
|
|
551
|
-
mailtoComponent.error = mailtoComponent.error || MAILTO_DOMAIN_ERROR
|
|
552
|
-
to[i] = decodeHex(rawAddr)
|
|
553
|
-
continue
|
|
554
|
-
}
|
|
555
|
-
const local = decodeHex(rawAddr.slice(0, atIdx))
|
|
556
|
-
const domain = mailtoNormalizeDomain(decodeHex(rawAddr.slice(atIdx + 1)), options, mailtoComponent)
|
|
557
|
-
to[i] = local + '@' + domain
|
|
558
|
-
}
|
|
559
|
-
|
|
560
|
-
if (to.length) mailtoComponent.to = to
|
|
561
|
-
|
|
562
|
-
return mailtoComponent
|
|
563
|
-
}
|
|
564
|
-
|
|
565
|
-
/**
|
|
566
|
-
* Encodes a decoded mailto header name. Unlike `encodeWithAllow`, a percent
|
|
567
|
-
* sign is always data here, even when followed by two hex digits. Preserving
|
|
568
|
-
* such a sequence as an existing escape would decode the name again on the
|
|
569
|
-
* next parse and could turn a generic header into `to`, `subject`, or `body`.
|
|
570
|
-
* @param {string} name
|
|
571
|
-
* @returns {string}
|
|
572
|
-
*/
|
|
573
|
-
function mailtoEncodeHeaderName (name) {
|
|
574
|
-
return encodeWithAllow(name.replace(/%/gu, '%25'), HFNAME)
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
/**
|
|
578
|
-
* @param {import('../types/index').URIComponent} component
|
|
579
|
-
* @param {import('../types/index').Options} options
|
|
580
|
-
* @returns {import('../types/index').URIComponent}
|
|
581
|
-
*/
|
|
582
|
-
function mailtoSerialize (component, options) {
|
|
583
|
-
const mailtoComponent = component
|
|
584
|
-
const to = Array.isArray(mailtoComponent.to) ? mailtoComponent.to.slice() : []
|
|
585
|
-
const sourceHeaders = mailtoComponent.headers && typeof mailtoComponent.headers === 'object'
|
|
586
|
-
? Object.assign(Object.create(null), mailtoComponent.headers)
|
|
587
|
-
: Object.create(null)
|
|
588
|
-
const headers = Object.create(null)
|
|
589
|
-
|
|
590
|
-
// Header field names are case-insensitive. Canonicalize the fields with
|
|
591
|
-
// dedicated component properties so callers cannot smuggle a second spelling
|
|
592
|
-
// through `headers`. As during parsing, all `to` fields are accumulated;
|
|
593
|
-
// repeated subject/body fields use the last value.
|
|
594
|
-
for (const name in sourceHeaders) {
|
|
595
|
-
const normalizedName = name.toLowerCase()
|
|
596
|
-
if (normalizedName === 'to') {
|
|
597
|
-
const addrs = String(sourceHeaders[name]).split(',')
|
|
598
|
-
for (let i = 0; i < addrs.length; i++) to.push(addrs[i])
|
|
599
|
-
} else if (normalizedName === 'subject' || normalizedName === 'body') {
|
|
600
|
-
headers[normalizedName] = sourceHeaders[name]
|
|
601
|
-
} else {
|
|
602
|
-
headers[name] = sourceHeaders[name]
|
|
603
|
-
}
|
|
604
|
-
}
|
|
605
|
-
|
|
606
|
-
if (mailtoComponent.subject !== undefined) headers.subject = mailtoComponent.subject
|
|
607
|
-
if (mailtoComponent.body !== undefined) headers.body = mailtoComponent.body
|
|
608
|
-
mailtoComponent.headers = headers
|
|
609
|
-
|
|
610
|
-
if (to.length) {
|
|
611
|
-
// RFC 6068 defines no authority for the `mailto` scheme. If an
|
|
612
|
-
// application constructs a component with both an authority and recipients,
|
|
613
|
-
// drop the authority before the generic serializer can insert a "/" path
|
|
614
|
-
// separator that becomes part of the first recipient on the next parse.
|
|
615
|
-
mailtoComponent.userinfo = undefined
|
|
616
|
-
mailtoComponent.host = undefined
|
|
617
|
-
mailtoComponent.port = undefined
|
|
618
|
-
|
|
619
|
-
for (let i = 0; i < to.length; i++) {
|
|
620
|
-
const addr = String(to[i])
|
|
621
|
-
const atIdx = addr.lastIndexOf('@')
|
|
622
|
-
const rawLocal = atIdx >= 0 ? addr.slice(0, atIdx) : addr
|
|
623
|
-
const rawDomain = atIdx >= 0 ? addr.slice(atIdx + 1) : ''
|
|
624
|
-
const local = encodeWithAllow(rawLocal, LOCAL_PART)
|
|
625
|
-
const decodedDomain = decodeHex(rawDomain)
|
|
626
|
-
// `component` is intentionally not passed: index.js's `serialize` writes
|
|
627
|
-
// the error onto a private copy and returns only a string, so an error
|
|
628
|
-
// recorded here would be unreachable. Safety comes from encoding instead.
|
|
629
|
-
const normalizedDomain = mailtoNormalizeDomain(decodedDomain, options)
|
|
630
|
-
to[i] = local + '@' + mailtoEncodeDomain(normalizedDomain, options)
|
|
631
|
-
}
|
|
632
|
-
// Every recipient is now fully encoded and only the joining commas are
|
|
633
|
-
// literal, so bypass index.js's generic encoder, whose allow-set is
|
|
634
|
-
// narrower than upstream's and would over-encode.
|
|
635
|
-
mailtoComponent.path = to.join(',')
|
|
636
|
-
options.skipEscape = true
|
|
637
|
-
} else {
|
|
638
|
-
// No recipients: drop any caller-supplied path, matching upstream uri-js.
|
|
639
|
-
// `to` is the only recipient source, and `mailtoParse` always moves the
|
|
640
|
-
// path into it, so a mailto component never legitimately carries one.
|
|
641
|
-
mailtoComponent.path = undefined
|
|
642
|
-
}
|
|
643
|
-
|
|
644
|
-
// `headers` has a null prototype, so every enumerable key is an own property
|
|
645
|
-
// and no hasOwnProperty guard is needed.
|
|
646
|
-
let query = ''
|
|
647
|
-
let count = 0
|
|
648
|
-
for (const name in headers) {
|
|
649
|
-
if (count++ !== 0) query += '&'
|
|
650
|
-
query += mailtoEncodeHeaderName(name) + '=' + encodeWithAllow(String(headers[name]), HFNAME)
|
|
651
|
-
}
|
|
652
|
-
|
|
653
|
-
if (count !== 0) {
|
|
654
|
-
mailtoComponent.query = query
|
|
655
|
-
} else {
|
|
656
|
-
mailtoComponent.headers = undefined
|
|
657
|
-
}
|
|
658
|
-
|
|
659
|
-
return mailtoComponent
|
|
660
|
-
}
|
|
661
|
-
|
|
662
|
-
const mailto = /** @type {SchemeHandler} */ ({
|
|
663
|
-
scheme: 'mailto',
|
|
664
|
-
parse: mailtoParse,
|
|
665
|
-
serialize: mailtoSerialize,
|
|
666
|
-
domainHost: false,
|
|
667
|
-
unicodeSupport: true,
|
|
668
|
-
// `mailtoParse` re-derives every component from the raw path/query via
|
|
669
|
-
// `decodeHex`, which subsumes the generic normalizers, so running them first
|
|
670
|
-
// is wasted work (~28% of parsing a URI with header fields).
|
|
671
|
-
skipNormalize: true,
|
|
672
|
-
// A recipient list has no dot segments to remove, and `removeDotSegments`
|
|
673
|
-
// would rewrite a "./"-prefixed local part.
|
|
674
|
-
absolutePath: true
|
|
675
|
-
})
|
|
676
|
-
|
|
677
243
|
const SCHEMES = /** @type {Record<SchemeName, SchemeHandler>} */ ({
|
|
678
244
|
http,
|
|
679
245
|
https,
|
|
680
246
|
ws,
|
|
681
247
|
wss,
|
|
682
248
|
urn,
|
|
683
|
-
'urn:uuid': urnuuid
|
|
684
|
-
mailto
|
|
249
|
+
'urn:uuid': urnuuid
|
|
685
250
|
})
|
|
686
251
|
|
|
687
252
|
Object.setPrototypeOf(SCHEMES, null)
|