@mastra/server 1.67.0-alpha.1 → 1.67.0-alpha.4
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/_types/@internal_voice/dist/_types/@internal_core/dist/request-context/index.d.ts +21 -0
- package/dist/_types/@mastra_schema-compat/dist/schema.types.d.ts +20 -1
- package/dist/{a2a-CW4FVjHx.cjs → a2a-DQ8GeDz4.cjs} +3 -3
- package/dist/{a2a-CW4FVjHx.cjs.map → a2a-DQ8GeDz4.cjs.map} +1 -1
- package/dist/{a2a-Di7S6YaM.js → a2a-DUBjstWk.js} +3 -3
- package/dist/{a2a-Di7S6YaM.js.map → a2a-DUBjstWk.js.map} +1 -1
- package/dist/{api-schema-manifest-BkKHbFJi.js → api-schema-manifest-B8uyCfJp.js} +3 -3
- package/dist/{api-schema-manifest-BkKHbFJi.js.map → api-schema-manifest-B8uyCfJp.js.map} +1 -1
- package/dist/{api-schema-manifest-Cpw4nIVv.cjs → api-schema-manifest-nIt4xi1r.cjs} +3 -3
- package/dist/{api-schema-manifest-Cpw4nIVv.cjs.map → api-schema-manifest-nIt4xi1r.cjs.map} +1 -1
- package/dist/{background-tasks-Bl7Hn8h9.js → background-tasks-B4yoNDY_.js} +2 -2
- package/dist/{background-tasks-Bl7Hn8h9.js.map → background-tasks-B4yoNDY_.js.map} +1 -1
- package/dist/{background-tasks-BJhziawt.cjs → background-tasks-BarPeyNJ.cjs} +2 -2
- package/dist/{background-tasks-BJhziawt.cjs.map → background-tasks-BarPeyNJ.cjs.map} +1 -1
- package/dist/{builder-registry-Bcpr74BB.js → builder-registry-DI3Ysclf.js} +3 -3
- package/dist/{builder-registry-Bcpr74BB.js.map → builder-registry-DI3Ysclf.js.map} +1 -1
- package/dist/{builder-registry-BINitddV.cjs → builder-registry-r71f11_E.cjs} +3 -3
- package/dist/{builder-registry-BINitddV.cjs.map → builder-registry-r71f11_E.cjs.map} +1 -1
- package/dist/{channels-CnEljW9e.js → channels-B_K1oJ7S.js} +2 -2
- package/dist/{channels-CnEljW9e.js.map → channels-B_K1oJ7S.js.map} +1 -1
- package/dist/{channels-D8e5YDTn.cjs → channels-CGDo0Prv.cjs} +2 -2
- package/dist/{channels-D8e5YDTn.cjs.map → channels-CGDo0Prv.cjs.map} +1 -1
- package/dist/{conversations-D89Io31L.js → conversations-Bs-k9f9N.js} +2 -2
- package/dist/{conversations-D89Io31L.js.map → conversations-Bs-k9f9N.js.map} +1 -1
- package/dist/{conversations-DJybpnE5.cjs → conversations-o3AEJjRo.cjs} +2 -2
- package/dist/{conversations-DJybpnE5.cjs.map → conversations-o3AEJjRo.cjs.map} +1 -1
- package/dist/{datasets-C-_ZWnxR.cjs → datasets-BqCRJLYH.cjs} +25 -2
- package/dist/datasets-BqCRJLYH.cjs.map +1 -0
- package/dist/{datasets-B4qPHzEy.js → datasets-Dhk4CUat.js} +20 -3
- package/dist/datasets-Dhk4CUat.js.map +1 -0
- package/dist/{dist-B8gYiHIX.js → dist-8iDh9UbP.js} +185 -30
- package/dist/dist-8iDh9UbP.js.map +1 -0
- package/dist/{dist-CaVro31X.cjs → dist-CBDJtAr5.cjs} +189 -34
- package/dist/dist-CBDJtAr5.cjs.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{dynamic-workflows-Cn9MXevC.js → dynamic-workflows-C3DXgmSP.js} +2 -2
- package/dist/{dynamic-workflows-Cn9MXevC.js.map → dynamic-workflows-C3DXgmSP.js.map} +1 -1
- package/dist/{dynamic-workflows-DSg9_yec.cjs → dynamic-workflows-DeUG3lA2.cjs} +2 -2
- package/dist/{dynamic-workflows-DSg9_yec.cjs.map → dynamic-workflows-DeUG3lA2.cjs.map} +1 -1
- package/dist/{editor-builder-DeFo8Kl5.cjs → editor-builder-DFh_-7Id.cjs} +2 -2
- package/dist/{editor-builder-DeFo8Kl5.cjs.map → editor-builder-DFh_-7Id.cjs.map} +1 -1
- package/dist/{editor-builder-DzpPA6dp.js → editor-builder-QRcP8-SQ.js} +2 -2
- package/dist/{editor-builder-DzpPA6dp.js.map → editor-builder-QRcP8-SQ.js.map} +1 -1
- package/dist/{memory-CVODqy7m.cjs → memory-CE6rUGmo.cjs} +22 -1
- package/dist/memory-CE6rUGmo.cjs.map +1 -0
- package/dist/{memory-CjWJYFVI.js → memory-Cp3Yo-OX.js} +11 -2
- package/dist/{memory-CjWJYFVI.js.map → memory-Cp3Yo-OX.js.map} +1 -1
- package/dist/{observability-new-endpoints-BNPjbEXf.cjs → observability-new-endpoints-I2OxQzfY.cjs} +2 -2
- package/dist/{observability-new-endpoints-BNPjbEXf.cjs.map → observability-new-endpoints-I2OxQzfY.cjs.map} +1 -1
- package/dist/{observability-new-endpoints-CSiMF_Kf.js → observability-new-endpoints-pIq_OWa8.js} +2 -2
- package/dist/{observability-new-endpoints-CSiMF_Kf.js.map → observability-new-endpoints-pIq_OWa8.js.map} +1 -1
- package/dist/{route-builder-BveLN9LU.js → route-builder-BukcT_Kp.js} +2 -2
- package/dist/{route-builder-BveLN9LU.js.map → route-builder-BukcT_Kp.js.map} +1 -1
- package/dist/{route-builder-C8n4ugUf.cjs → route-builder-DupY8fkI.cjs} +4 -4
- package/dist/{route-builder-C8n4ugUf.cjs.map → route-builder-DupY8fkI.cjs.map} +1 -1
- package/dist/{routes-DCwOOz84.js → routes-BSAA4PVg.js} +15 -11
- package/dist/routes-BSAA4PVg.js.map +1 -0
- package/dist/{routes-Dgd2S9av.cjs → routes-D5r7qWgZ.cjs} +14 -10
- package/dist/routes-D5r7qWgZ.cjs.map +1 -0
- package/dist/{schedules-BcEUUuX_.js → schedules-BzymFGR_.js} +2 -2
- package/dist/{schedules-BcEUUuX_.js.map → schedules-BzymFGR_.js.map} +1 -1
- package/dist/{schedules-fj9U0_tA.cjs → schedules-DaEv0Usj.cjs} +2 -2
- package/dist/{schedules-fj9U0_tA.cjs.map → schedules-DaEv0Usj.cjs.map} +1 -1
- package/dist/schema-BF_cZG0Y.js +2 -0
- package/dist/schema-C7CvwM1d.cjs +1 -0
- package/dist/{schema-Bv9OdW1f-DLSJSqQv.js → schema-D_ikovK6-BzTeMhWf.js} +467 -131
- package/dist/schema-D_ikovK6-BzTeMhWf.js.map +1 -0
- package/dist/{schema-Bv9OdW1f-CxTiW8RD.cjs → schema-D_ikovK6-DQrOVw5N.cjs} +467 -131
- package/dist/schema-D_ikovK6-DQrOVw5N.cjs.map +1 -0
- package/dist/server/handlers/a2a.cjs +1 -1
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +3 -3
- package/dist/server/handlers/agent-builder.js +3 -3
- package/dist/server/handlers/agent-controller.cjs +3 -3
- package/dist/server/handlers/agent-controller.js +3 -3
- package/dist/server/handlers/agent-versions.cjs +2 -2
- package/dist/server/handlers/agent-versions.js +2 -2
- package/dist/server/handlers/agents.cjs +14 -21
- package/dist/server/handlers/agents.cjs.map +1 -1
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +6 -13
- package/dist/server/handlers/agents.js.map +1 -1
- package/dist/server/handlers/auth.cjs +1 -1
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/background-tasks.cjs +1 -1
- package/dist/server/handlers/background-tasks.js +1 -1
- package/dist/server/handlers/builder-registry.cjs +1 -1
- package/dist/server/handlers/builder-registry.js +1 -1
- package/dist/server/handlers/channels.cjs +1 -1
- package/dist/server/handlers/channels.js +1 -1
- package/dist/server/handlers/conversations.cjs +3 -3
- package/dist/server/handlers/conversations.js +3 -3
- package/dist/server/handlers/datasets.cjs +18 -9
- package/dist/server/handlers/datasets.cjs.map +1 -1
- package/dist/server/handlers/datasets.d.ts +27 -0
- package/dist/server/handlers/datasets.d.ts.map +1 -1
- package/dist/server/handlers/datasets.js +18 -9
- package/dist/server/handlers/datasets.js.map +1 -1
- package/dist/server/handlers/dynamic-workflows.cjs +1 -1
- package/dist/server/handlers/dynamic-workflows.js +1 -1
- package/dist/server/handlers/editor-builder.cjs +1 -1
- package/dist/server/handlers/editor-builder.js +1 -1
- package/dist/server/handlers/favorites-enrichment.cjs +1 -1
- package/dist/server/handlers/favorites-enrichment.js +1 -1
- package/dist/server/handlers/logs.cjs +2 -2
- package/dist/server/handlers/logs.js +2 -2
- package/dist/server/handlers/mcp-client-versions.cjs +2 -2
- package/dist/server/handlers/mcp-client-versions.js +2 -2
- package/dist/server/handlers/mcp.cjs +1 -1
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +64 -3
- package/dist/server/handlers/memory.cjs.map +1 -1
- package/dist/server/handlers/memory.d.ts +47 -0
- package/dist/server/handlers/memory.d.ts.map +1 -1
- package/dist/server/handlers/memory.js +64 -4
- package/dist/server/handlers/memory.js.map +1 -1
- package/dist/server/handlers/observability-new-endpoints.cjs +1 -1
- package/dist/server/handlers/observability-new-endpoints.js +1 -1
- package/dist/server/handlers/observability-shared.cjs +1 -1
- package/dist/server/handlers/observability-shared.js +1 -1
- package/dist/server/handlers/observability.cjs +2 -2
- package/dist/server/handlers/observability.js +2 -2
- package/dist/server/handlers/plans.cjs +2 -2
- package/dist/server/handlers/plans.js +2 -2
- package/dist/server/handlers/processor-providers.cjs +1 -1
- package/dist/server/handlers/processor-providers.js +1 -1
- package/dist/server/handlers/processors.cjs +1 -1
- package/dist/server/handlers/processors.js +1 -1
- package/dist/server/handlers/prompt-block-versions.cjs +2 -2
- package/dist/server/handlers/prompt-block-versions.js +2 -2
- package/dist/server/handlers/responses.cjs +2 -2
- package/dist/server/handlers/responses.d.ts +11 -11
- package/dist/server/handlers/responses.js +2 -2
- package/dist/server/handlers/responses.storage.cjs +1 -1
- package/dist/server/handlers/responses.storage.js +1 -1
- package/dist/server/handlers/schedules.cjs +1 -1
- package/dist/server/handlers/schedules.js +1 -1
- package/dist/server/handlers/scorer-versions.cjs +2 -2
- package/dist/server/handlers/scorer-versions.js +2 -2
- package/dist/server/handlers/scores.cjs +1 -1
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agent-favorites.cjs +3 -3
- package/dist/server/handlers/stored-agent-favorites.js +3 -3
- package/dist/server/handlers/stored-agents.cjs +3 -3
- package/dist/server/handlers/stored-agents.js +3 -3
- package/dist/server/handlers/stored-mcp-clients.cjs +2 -2
- package/dist/server/handlers/stored-mcp-clients.js +2 -2
- package/dist/server/handlers/stored-prompt-blocks.cjs +2 -2
- package/dist/server/handlers/stored-prompt-blocks.js +2 -2
- package/dist/server/handlers/stored-scorers.cjs +2 -2
- package/dist/server/handlers/stored-scorers.js +2 -2
- package/dist/server/handlers/stored-skill-favorites.cjs +3 -3
- package/dist/server/handlers/stored-skill-favorites.js +3 -3
- package/dist/server/handlers/stored-skills.cjs +3 -3
- package/dist/server/handlers/stored-skills.js +3 -3
- package/dist/server/handlers/stored-workspaces.cjs +2 -2
- package/dist/server/handlers/stored-workspaces.js +2 -2
- package/dist/server/handlers/system.cjs +2 -2
- package/dist/server/handlers/system.js +2 -2
- package/dist/server/handlers/tool-providers.cjs +1 -1
- package/dist/server/handlers/tool-providers.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +5 -5
- package/dist/server/handlers/utils.cjs +3 -1
- package/dist/server/handlers/utils.d.ts +13 -0
- package/dist/server/handlers/utils.d.ts.map +1 -1
- package/dist/server/handlers/utils.js +2 -2
- package/dist/server/handlers/validate-agent-instructions.cjs +1 -1
- package/dist/server/handlers/validate-agent-instructions.js +1 -1
- package/dist/server/handlers/vector.cjs +1 -1
- package/dist/server/handlers/vector.js +1 -1
- package/dist/server/handlers/workflow-builder.cjs +5 -0
- package/dist/server/handlers/workflow-builder.d.ts +322 -0
- package/dist/server/handlers/workflow-builder.d.ts.map +1 -0
- package/dist/server/handlers/workflow-builder.js +2 -0
- package/dist/server/handlers/workflows.cjs +3 -3
- package/dist/server/handlers/workflows.js +3 -3
- package/dist/server/handlers/workspace.cjs +1 -1
- package/dist/server/handlers/workspace.js +1 -1
- package/dist/server/handlers.cjs +2 -2
- package/dist/server/handlers.js +2 -2
- package/dist/server/schemas/datasets.d.ts +18 -0
- package/dist/server/schemas/datasets.d.ts.map +1 -1
- package/dist/server/schemas/index.cjs +6 -3
- package/dist/server/schemas/index.js +4 -4
- package/dist/server/schemas/memory.d.ts +18 -0
- package/dist/server/schemas/memory.d.ts.map +1 -1
- package/dist/server/schemas/workflow-builder.d.ts +26 -0
- package/dist/server/schemas/workflow-builder.d.ts.map +1 -0
- package/dist/server/server-adapter/index.cjs +13 -3
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +13 -3
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/routes/conversations.d.ts +3 -3
- package/dist/server/server-adapter/routes/datasets.d.ts +27 -0
- package/dist/server/server-adapter/routes/datasets.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/editor-builder.d.ts +319 -0
- package/dist/server/server-adapter/routes/editor-builder.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/memory.d.ts +46 -0
- package/dist/server/server-adapter/routes/memory.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/workspace.d.ts +23 -23
- package/dist/{utils-B2vd77Fi.js → utils-Duk4hfT_.js} +3 -3
- package/dist/{utils-B2vd77Fi.js.map → utils-Duk4hfT_.js.map} +1 -1
- package/dist/{utils-Hz8Hc2cd.js → utils-KsERfbhc.js} +24 -3
- package/dist/utils-KsERfbhc.js.map +1 -0
- package/dist/{utils-CmYnjLcY.cjs → utils-WcR0QSUB.cjs} +5 -5
- package/dist/{utils-CmYnjLcY.cjs.map → utils-WcR0QSUB.cjs.map} +1 -1
- package/dist/{utils-DJMUhfvY.cjs → utils-aIu3gkhJ.cjs} +35 -2
- package/dist/utils-aIu3gkhJ.cjs.map +1 -0
- package/dist/workflow-builder-C9DVk9Tw.js +102 -0
- package/dist/workflow-builder-C9DVk9Tw.js.map +1 -0
- package/dist/workflow-builder-_rQWs1B6.cjs +115 -0
- package/dist/workflow-builder-_rQWs1B6.cjs.map +1 -0
- package/package.json +6 -6
- package/dist/datasets-B4qPHzEy.js.map +0 -1
- package/dist/datasets-C-_ZWnxR.cjs.map +0 -1
- package/dist/dist-B8gYiHIX.js.map +0 -1
- package/dist/dist-CaVro31X.cjs.map +0 -1
- package/dist/memory-CVODqy7m.cjs.map +0 -1
- package/dist/routes-DCwOOz84.js.map +0 -1
- package/dist/routes-Dgd2S9av.cjs.map +0 -1
- package/dist/schema-Bv9OdW1f-CxTiW8RD.cjs.map +0 -1
- package/dist/schema-Bv9OdW1f-DLSJSqQv.js.map +0 -1
- package/dist/schema-CGeYTFwm.js +0 -2
- package/dist/schema-CNKnRmv1.cjs +0 -1
- package/dist/utils-DJMUhfvY.cjs.map +0 -1
- package/dist/utils-Hz8Hc2cd.js.map +0 -1
|
@@ -1320,7 +1320,7 @@ function toStandardSchema$4(schema) {
|
|
|
1320
1320
|
return new AiSdkSchemaWrapper(schema);
|
|
1321
1321
|
}
|
|
1322
1322
|
//#endregion
|
|
1323
|
-
//#region ../schema-compat/dist/json-schema-
|
|
1323
|
+
//#region ../schema-compat/dist/json-schema-BKit3LVN.js
|
|
1324
1324
|
var require_code$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
1325
1325
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1326
1326
|
exports.regexpCode = exports.getEsmExportName = exports.getProperty = exports.safeStringify = exports.stringify = exports.strConcat = exports.addCodeArg = exports.str = exports._ = exports.nil = exports._Code = exports.Name = exports.IDENTIFIER = exports._CodeOrName = void 0;
|
|
@@ -3926,11 +3926,27 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
3926
3926
|
/** @type {(value: string) => boolean} */
|
|
3927
3927
|
const isIPv4 = RegExp.prototype.test.bind(/^(?:(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)\.){3}(?:25[0-5]|2[0-4]\d|1\d{2}|[1-9]\d|\d)$/u);
|
|
3928
3928
|
/** @type {(value: string) => boolean} */
|
|
3929
|
+
const isPort = RegExp.prototype.test.bind(/^\d*$/u);
|
|
3930
|
+
/** @type {(value: string) => boolean} */
|
|
3929
3931
|
const isHexPair = RegExp.prototype.test.bind(/^[\da-f]{2}$/iu);
|
|
3930
3932
|
/** @type {(value: string) => boolean} */
|
|
3931
3933
|
const isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
|
|
3932
3934
|
/** @type {(value: string) => boolean} */
|
|
3933
|
-
const isPathCharacter = RegExp.prototype.test.bind(/^[
|
|
3935
|
+
const isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u);
|
|
3936
|
+
/** @type {(value: string) => boolean} */
|
|
3937
|
+
const isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u);
|
|
3938
|
+
/** @type {(value: string) => boolean} */
|
|
3939
|
+
const isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u);
|
|
3940
|
+
const BYTE_HEX = new Array(256);
|
|
3941
|
+
{
|
|
3942
|
+
const HEX_DIGITS = "0123456789ABCDEF";
|
|
3943
|
+
for (let i = 0; i < 256; i++) BYTE_HEX[i] = "%" + HEX_DIGITS[i >> 4] + HEX_DIGITS[i & 15];
|
|
3944
|
+
}
|
|
3945
|
+
function percentEncodeNonAscii(cp) {
|
|
3946
|
+
if (cp < 2048) return BYTE_HEX[192 | cp >> 6] + BYTE_HEX[128 | cp & 63];
|
|
3947
|
+
if (cp < 65536) return BYTE_HEX[224 | cp >> 12] + BYTE_HEX[128 | cp >> 6 & 63] + BYTE_HEX[128 | cp & 63];
|
|
3948
|
+
return BYTE_HEX[240 | cp >> 18] + BYTE_HEX[128 | cp >> 12 & 63] + BYTE_HEX[128 | cp >> 6 & 63] + BYTE_HEX[128 | cp & 63];
|
|
3949
|
+
}
|
|
3934
3950
|
/**
|
|
3935
3951
|
* @param {Array<string>} input
|
|
3936
3952
|
* @returns {string}
|
|
@@ -3953,119 +3969,162 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
3953
3969
|
}
|
|
3954
3970
|
return acc;
|
|
3955
3971
|
}
|
|
3956
|
-
/**
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3960
|
-
|
|
3961
|
-
|
|
3972
|
+
/** @type {(value: string) => boolean} */
|
|
3973
|
+
const isHextet = RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/);
|
|
3974
|
+
/** @type {(value: string) => boolean} */
|
|
3975
|
+
const isIPvFuture = RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/);
|
|
3976
|
+
/** @type {(value: string) => boolean} */
|
|
3977
|
+
const isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/);
|
|
3962
3978
|
/**
|
|
3963
3979
|
* @param {string} value
|
|
3964
3980
|
* @returns {boolean}
|
|
3965
3981
|
*/
|
|
3966
3982
|
const nonSimpleDomain = RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);
|
|
3967
3983
|
/**
|
|
3968
|
-
* @param {
|
|
3984
|
+
* @param {string} zone
|
|
3969
3985
|
* @returns {boolean}
|
|
3970
3986
|
*/
|
|
3971
|
-
function
|
|
3972
|
-
|
|
3987
|
+
function isZoneIdentifier(zone) {
|
|
3988
|
+
if (zone.length === 0) return false;
|
|
3989
|
+
for (let i = 0; i < zone.length; i++) {
|
|
3990
|
+
if (isZoneCharacter(zone[i])) continue;
|
|
3991
|
+
if (zone[i] === "%" && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {
|
|
3992
|
+
i += 2;
|
|
3993
|
+
continue;
|
|
3994
|
+
}
|
|
3995
|
+
return false;
|
|
3996
|
+
}
|
|
3973
3997
|
return true;
|
|
3974
3998
|
}
|
|
3975
3999
|
/**
|
|
3976
|
-
*
|
|
3977
|
-
*
|
|
3978
|
-
*
|
|
3979
|
-
* @
|
|
4000
|
+
* Compresses the longest run of zero hextets to "::" per RFC 5952. A run of a
|
|
4001
|
+
* single zero hextet is left uncompressed. On ties the leftmost run wins.
|
|
4002
|
+
*
|
|
4003
|
+
* @param {string[]} hextets
|
|
4004
|
+
* @returns {string}
|
|
3980
4005
|
*/
|
|
3981
|
-
function
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
3986
|
-
|
|
3987
|
-
|
|
4006
|
+
function compressIPv6ZeroRun(hextets) {
|
|
4007
|
+
let bestStart = -1;
|
|
4008
|
+
let bestLength = 0;
|
|
4009
|
+
let runStart = -1;
|
|
4010
|
+
let runLength = 0;
|
|
4011
|
+
for (let i = 0; i < hextets.length; i++) if (hextets[i] === "0") {
|
|
4012
|
+
if (runStart === -1) runStart = i;
|
|
4013
|
+
runLength++;
|
|
4014
|
+
if (runLength > bestLength) {
|
|
4015
|
+
bestLength = runLength;
|
|
4016
|
+
bestStart = runStart;
|
|
3988
4017
|
}
|
|
3989
|
-
|
|
4018
|
+
} else {
|
|
4019
|
+
runStart = -1;
|
|
4020
|
+
runLength = 0;
|
|
3990
4021
|
}
|
|
3991
|
-
return
|
|
4022
|
+
if (bestLength < 2) return hextets.join(":");
|
|
4023
|
+
const head = hextets.slice(0, bestStart).join(":");
|
|
4024
|
+
const tail = hextets.slice(bestStart + bestLength).join(":");
|
|
4025
|
+
return head + "::" + tail;
|
|
3992
4026
|
}
|
|
3993
4027
|
/**
|
|
4028
|
+
* Validates an IPv6 address against the alternatives in RFC 3986 section
|
|
4029
|
+
* 3.2.2 and returns the same address with leading hextet zeroes removed.
|
|
4030
|
+
* An embedded IPv4 address counts as two hextets and is only valid at the end.
|
|
4031
|
+
*
|
|
3994
4032
|
* @param {string} input
|
|
3995
|
-
* @returns {
|
|
4033
|
+
* @returns {string|undefined}
|
|
3996
4034
|
*/
|
|
3997
|
-
function
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
|
|
4007
|
-
|
|
4008
|
-
let
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
|
|
4013
|
-
|
|
4014
|
-
if (cursor === ":") {
|
|
4015
|
-
if (endipv6Encountered === true) endIpv6 = true;
|
|
4016
|
-
if (!consume(buffer, address, output)) break;
|
|
4017
|
-
if (++tokenCount > 7) {
|
|
4018
|
-
output.error = true;
|
|
4019
|
-
break;
|
|
4020
|
-
}
|
|
4021
|
-
if (i > 0 && input[i - 1] === ":") endipv6Encountered = true;
|
|
4022
|
-
address.push(":");
|
|
4023
|
-
continue;
|
|
4024
|
-
} else if (cursor === "%") {
|
|
4025
|
-
if (!consume(buffer, address, output)) break;
|
|
4026
|
-
consume = consumeIsZone;
|
|
4027
|
-
} else {
|
|
4028
|
-
buffer.push(cursor);
|
|
4035
|
+
function normalizeIPv6Address(input) {
|
|
4036
|
+
const compression = input.indexOf("::");
|
|
4037
|
+
if (compression !== -1 && input.indexOf("::", compression + 1) !== -1) return void 0;
|
|
4038
|
+
const left = compression === -1 ? input.split(":") : input.slice(0, compression).split(":");
|
|
4039
|
+
const right = compression === -1 ? [] : input.slice(compression + 2).split(":");
|
|
4040
|
+
if (compression !== -1) {
|
|
4041
|
+
if (left.length === 1 && left[0] === "") left.length = 0;
|
|
4042
|
+
if (right.length === 1 && right[0] === "") right.length = 0;
|
|
4043
|
+
}
|
|
4044
|
+
const parts = left.concat(right);
|
|
4045
|
+
let hextetCount = 0;
|
|
4046
|
+
for (let i = 0; i < parts.length; i++) {
|
|
4047
|
+
const part = parts[i];
|
|
4048
|
+
if (part === "") return void 0;
|
|
4049
|
+
if (part.indexOf(".") !== -1) {
|
|
4050
|
+
if (i !== parts.length - 1 || compression !== -1 && right.length === 0 || !isIPv4(part)) return void 0;
|
|
4051
|
+
hextetCount += 2;
|
|
4029
4052
|
continue;
|
|
4030
4053
|
}
|
|
4054
|
+
if (!isHextet(part)) return void 0;
|
|
4055
|
+
parts[i] = parseInt(part, 16).toString(16);
|
|
4056
|
+
hextetCount++;
|
|
4031
4057
|
}
|
|
4032
|
-
if (
|
|
4033
|
-
|
|
4034
|
-
|
|
4035
|
-
|
|
4036
|
-
return
|
|
4058
|
+
if (compression === -1) {
|
|
4059
|
+
if (hextetCount !== 8) return void 0;
|
|
4060
|
+
return compressIPv6ZeroRun(parts);
|
|
4061
|
+
}
|
|
4062
|
+
if (hextetCount >= 8) return void 0;
|
|
4063
|
+
const expanded = parts.slice(0, left.length);
|
|
4064
|
+
for (let i = hextetCount; i < 8; i++) expanded.push("0");
|
|
4065
|
+
for (let i = left.length; i < parts.length; i++) expanded.push(parts[i]);
|
|
4066
|
+
return compressIPv6ZeroRun(expanded);
|
|
4037
4067
|
}
|
|
4038
4068
|
/**
|
|
4039
4069
|
* @typedef {Object} NormalizeIPv6Result
|
|
4040
4070
|
* @property {string} host - The normalized host.
|
|
4041
4071
|
* @property {string} [escapedHost] - The escaped host.
|
|
4042
4072
|
* @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.
|
|
4073
|
+
* @property {boolean} [isIPVFuture] - Indicates if the host is an IPvFuture literal.
|
|
4074
|
+
* @property {boolean} [error] - Indicates if a bracketed IP literal is malformed.
|
|
4043
4075
|
*/
|
|
4044
4076
|
/**
|
|
4077
|
+
* Validates and normalizes a bracketed IP literal. Raw zone separators remain
|
|
4078
|
+
* accepted for backwards compatibility, while encoded separators and zone
|
|
4079
|
+
* contents follow RFC 6874.
|
|
4080
|
+
*
|
|
4045
4081
|
* @param {string} host
|
|
4046
4082
|
* @returns {NormalizeIPv6Result}
|
|
4047
4083
|
*/
|
|
4048
4084
|
function normalizeIPv6(host) {
|
|
4049
|
-
|
|
4085
|
+
const bracketed = host[0] === "[" && host[host.length - 1] === "]";
|
|
4086
|
+
if ((host[0] === "[" || host[host.length - 1] === "]") && !bracketed) return {
|
|
4050
4087
|
host,
|
|
4051
|
-
isIPV6: false
|
|
4088
|
+
isIPV6: false,
|
|
4089
|
+
error: true
|
|
4052
4090
|
};
|
|
4053
|
-
|
|
4054
|
-
if (
|
|
4055
|
-
|
|
4056
|
-
let escapedHost = ipv6.address;
|
|
4057
|
-
if (ipv6.zone) {
|
|
4058
|
-
newHost += "%" + ipv6.zone;
|
|
4059
|
-
escapedHost += "%25" + ipv6.zone;
|
|
4060
|
-
}
|
|
4091
|
+
let input = bracketed ? host.slice(1, -1) : host;
|
|
4092
|
+
if (bracketed && isIPvFuture(input)) {
|
|
4093
|
+
input = input.toLowerCase();
|
|
4061
4094
|
return {
|
|
4062
|
-
host:
|
|
4063
|
-
|
|
4064
|
-
|
|
4095
|
+
host: `[${input}]`,
|
|
4096
|
+
escapedHost: input,
|
|
4097
|
+
isIPV6: false,
|
|
4098
|
+
isIPVFuture: true
|
|
4065
4099
|
};
|
|
4066
|
-
}
|
|
4100
|
+
}
|
|
4101
|
+
if (findToken(input, ":") < 2) return {
|
|
4102
|
+
host,
|
|
4103
|
+
isIPV6: false,
|
|
4104
|
+
error: bracketed
|
|
4105
|
+
};
|
|
4106
|
+
let zoneIdentifier = "";
|
|
4107
|
+
const zoneSeparator = input.indexOf("%");
|
|
4108
|
+
if (zoneSeparator !== -1) {
|
|
4109
|
+
const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === "%25" ? 3 : 1;
|
|
4110
|
+
zoneIdentifier = input.slice(zoneSeparator + separatorLength);
|
|
4111
|
+
if (!isZoneIdentifier(zoneIdentifier)) return {
|
|
4112
|
+
host,
|
|
4113
|
+
isIPV6: false,
|
|
4114
|
+
error: true
|
|
4115
|
+
};
|
|
4116
|
+
input = input.slice(0, zoneSeparator);
|
|
4117
|
+
}
|
|
4118
|
+
const address = normalizeIPv6Address(input);
|
|
4119
|
+
if (address === void 0) return {
|
|
4067
4120
|
host,
|
|
4068
|
-
isIPV6: false
|
|
4121
|
+
isIPV6: false,
|
|
4122
|
+
error: true
|
|
4123
|
+
};
|
|
4124
|
+
return {
|
|
4125
|
+
host: address + (zoneIdentifier ? "%" + zoneIdentifier : ""),
|
|
4126
|
+
escapedHost: address + (zoneIdentifier ? "%25" + zoneIdentifier : ""),
|
|
4127
|
+
isIPV6: true
|
|
4069
4128
|
};
|
|
4070
4129
|
}
|
|
4071
4130
|
/**
|
|
@@ -4178,7 +4237,7 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4178
4237
|
}
|
|
4179
4238
|
/**
|
|
4180
4239
|
* Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.
|
|
4181
|
-
* Reserved delimiters such as `%2F`
|
|
4240
|
+
* Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.
|
|
4182
4241
|
*
|
|
4183
4242
|
* @param {string} input
|
|
4184
4243
|
* @param {boolean} [decodeUnreserved=false]
|
|
@@ -4214,7 +4273,8 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4214
4273
|
function normalizePathEncoding(input) {
|
|
4215
4274
|
let output = "";
|
|
4216
4275
|
for (let i = 0; i < input.length; i++) {
|
|
4217
|
-
|
|
4276
|
+
const ch = input[i];
|
|
4277
|
+
if (ch === "%" && i + 2 < input.length) {
|
|
4218
4278
|
const hex = input.slice(i + 1, i + 3);
|
|
4219
4279
|
if (isHexPair(hex)) {
|
|
4220
4280
|
const normalizedHex = hex.toUpperCase();
|
|
@@ -4225,8 +4285,168 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4225
4285
|
continue;
|
|
4226
4286
|
}
|
|
4227
4287
|
}
|
|
4228
|
-
if (isPathCharacter(
|
|
4229
|
-
else
|
|
4288
|
+
if (isPathCharacter(ch)) output += ch;
|
|
4289
|
+
else {
|
|
4290
|
+
const code = input.charCodeAt(i);
|
|
4291
|
+
if (code < 128) output += isEscapeSafe(code) ? ch : BYTE_HEX[code];
|
|
4292
|
+
else if (code < 55296 || code > 57343) output += percentEncodeNonAscii(code);
|
|
4293
|
+
else if (code <= 56319 && i + 1 < input.length) {
|
|
4294
|
+
const low = input.charCodeAt(i + 1);
|
|
4295
|
+
if (low >= 56320 && low <= 57343) {
|
|
4296
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
4297
|
+
i++;
|
|
4298
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4299
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4300
|
+
}
|
|
4301
|
+
}
|
|
4302
|
+
return output;
|
|
4303
|
+
}
|
|
4304
|
+
/**
|
|
4305
|
+
* Serializes a path without rewriting reserved data. Raw RFC 3986 path
|
|
4306
|
+
* characters remain literal, valid escapes are preserved and uppercased, and
|
|
4307
|
+
* everything else is UTF-8 percent-encoded. In a path-noscheme, a colon in the
|
|
4308
|
+
* first segment must be escaped so the result cannot be parsed as a scheme.
|
|
4309
|
+
*
|
|
4310
|
+
* @param {string} input
|
|
4311
|
+
* @param {boolean} [pathNoScheme=false]
|
|
4312
|
+
* @returns {string}
|
|
4313
|
+
*/
|
|
4314
|
+
function serializePathEncoding(input, pathNoScheme = false) {
|
|
4315
|
+
let output = "";
|
|
4316
|
+
let firstSegment = pathNoScheme && input[0] !== "/";
|
|
4317
|
+
for (let i = 0; i < input.length; i++) {
|
|
4318
|
+
const ch = input[i];
|
|
4319
|
+
if (ch === "%" && i + 2 < input.length) {
|
|
4320
|
+
const hex = input.slice(i + 1, i + 3);
|
|
4321
|
+
if (isHexPair(hex)) {
|
|
4322
|
+
output += "%" + hex.toUpperCase();
|
|
4323
|
+
i += 2;
|
|
4324
|
+
continue;
|
|
4325
|
+
}
|
|
4326
|
+
}
|
|
4327
|
+
if (ch === "/") firstSegment = false;
|
|
4328
|
+
if (isPathCharacter(ch) && (ch !== ":" || !firstSegment)) output += ch;
|
|
4329
|
+
else {
|
|
4330
|
+
const code = input.charCodeAt(i);
|
|
4331
|
+
if (code < 128) output += BYTE_HEX[code];
|
|
4332
|
+
else if (code < 55296 || code > 57343) output += percentEncodeNonAscii(code);
|
|
4333
|
+
else if (code <= 56319 && i + 1 < input.length) {
|
|
4334
|
+
const low = input.charCodeAt(i + 1);
|
|
4335
|
+
if (low >= 56320 && low <= 57343) {
|
|
4336
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
4337
|
+
i++;
|
|
4338
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4339
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4340
|
+
}
|
|
4341
|
+
}
|
|
4342
|
+
return output;
|
|
4343
|
+
}
|
|
4344
|
+
/**
|
|
4345
|
+
* Percent-encodes a URI component using its RFC 3986 literal character set.
|
|
4346
|
+
* Existing valid escapes are preserved and normalized to uppercase hex.
|
|
4347
|
+
*
|
|
4348
|
+
* @param {string} input
|
|
4349
|
+
* @param {(value: string) => boolean} isAllowed
|
|
4350
|
+
* @returns {string}
|
|
4351
|
+
*/
|
|
4352
|
+
function encodeComponent(input, isAllowed) {
|
|
4353
|
+
let output = "";
|
|
4354
|
+
for (let i = 0; i < input.length; i++) {
|
|
4355
|
+
const ch = input[i];
|
|
4356
|
+
if (ch === "%" && i + 2 < input.length) {
|
|
4357
|
+
const hex = input.slice(i + 1, i + 3);
|
|
4358
|
+
if (isHexPair(hex)) {
|
|
4359
|
+
output += "%" + hex.toUpperCase();
|
|
4360
|
+
i += 2;
|
|
4361
|
+
continue;
|
|
4362
|
+
}
|
|
4363
|
+
}
|
|
4364
|
+
if (isAllowed(ch)) output += ch;
|
|
4365
|
+
else {
|
|
4366
|
+
const code = input.charCodeAt(i);
|
|
4367
|
+
if (code < 128) output += BYTE_HEX[code];
|
|
4368
|
+
else if (code < 55296 || code > 57343) output += percentEncodeNonAscii(code);
|
|
4369
|
+
else if (code <= 56319 && i + 1 < input.length) {
|
|
4370
|
+
const low = input.charCodeAt(i + 1);
|
|
4371
|
+
if (low >= 56320 && low <= 57343) {
|
|
4372
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
4373
|
+
i++;
|
|
4374
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4375
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4376
|
+
}
|
|
4377
|
+
}
|
|
4378
|
+
return output;
|
|
4379
|
+
}
|
|
4380
|
+
/**
|
|
4381
|
+
* Encodes userinfo while preserving its RFC 3986 §3.2.1 literal characters.
|
|
4382
|
+
* In particular, authority delimiters such as `@`, `/`, `?`, and `#` are data.
|
|
4383
|
+
*
|
|
4384
|
+
* @param {string} input
|
|
4385
|
+
* @returns {string}
|
|
4386
|
+
*/
|
|
4387
|
+
function encodeUserinfo(input) {
|
|
4388
|
+
return encodeComponent(input, isUserinfoCharacter);
|
|
4389
|
+
}
|
|
4390
|
+
/**
|
|
4391
|
+
* Encodes query data using the RFC 3986 §3.4 grammar. A literal `#` must be
|
|
4392
|
+
* escaped because it would otherwise begin the fragment component.
|
|
4393
|
+
*
|
|
4394
|
+
* @param {string} input
|
|
4395
|
+
* @returns {string}
|
|
4396
|
+
*/
|
|
4397
|
+
function encodeQuery(input) {
|
|
4398
|
+
return encodeComponent(input, isQueryFragmentCharacter);
|
|
4399
|
+
}
|
|
4400
|
+
/**
|
|
4401
|
+
* Encodes fragment data using the RFC 3986 §3.5 grammar.
|
|
4402
|
+
*
|
|
4403
|
+
* @param {string} input
|
|
4404
|
+
* @returns {string}
|
|
4405
|
+
*/
|
|
4406
|
+
function encodeFragment(input) {
|
|
4407
|
+
return encodeComponent(input, isQueryFragmentCharacter);
|
|
4408
|
+
}
|
|
4409
|
+
function isEscapeSafe(cp) {
|
|
4410
|
+
return cp >= 48 && cp <= 57 || cp >= 65 && cp <= 90 || cp >= 97 && cp <= 122 || cp === 42 || cp === 43 || cp === 45 || cp === 46 || cp === 47 || cp === 64 || cp === 95;
|
|
4411
|
+
}
|
|
4412
|
+
/**
|
|
4413
|
+
* Normalizes the percent-encoding of a query or fragment component.
|
|
4414
|
+
*
|
|
4415
|
+
* Like `normalizePathEncoding`, but uses the query/fragment character set
|
|
4416
|
+
* (which additionally allows `?`) and decodes `.` since it has no dot-segment
|
|
4417
|
+
* meaning outside of a path.
|
|
4418
|
+
*
|
|
4419
|
+
* @param {string} input
|
|
4420
|
+
* @returns {string}
|
|
4421
|
+
*/
|
|
4422
|
+
function normalizeQueryFragmentEncoding(input) {
|
|
4423
|
+
let output = "";
|
|
4424
|
+
for (let i = 0; i < input.length; i++) {
|
|
4425
|
+
const ch = input[i];
|
|
4426
|
+
if (ch === "%" && i + 2 < input.length) {
|
|
4427
|
+
const hex = input.slice(i + 1, i + 3);
|
|
4428
|
+
if (isHexPair(hex)) {
|
|
4429
|
+
const normalizedHex = hex.toUpperCase();
|
|
4430
|
+
const decoded = String.fromCharCode(parseInt(normalizedHex, 16));
|
|
4431
|
+
if (isUnreserved(decoded)) output += decoded;
|
|
4432
|
+
else output += "%" + normalizedHex;
|
|
4433
|
+
i += 2;
|
|
4434
|
+
continue;
|
|
4435
|
+
}
|
|
4436
|
+
}
|
|
4437
|
+
if (isQueryFragmentCharacter(ch)) output += ch;
|
|
4438
|
+
else {
|
|
4439
|
+
const code = input.charCodeAt(i);
|
|
4440
|
+
if (code < 128) output += isEscapeSafe(code) ? ch : BYTE_HEX[code];
|
|
4441
|
+
else if (code < 55296 || code > 57343) output += percentEncodeNonAscii(code);
|
|
4442
|
+
else if (code <= 56319 && i + 1 < input.length) {
|
|
4443
|
+
const low = input.charCodeAt(i + 1);
|
|
4444
|
+
if (low >= 56320 && low <= 57343) {
|
|
4445
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
4446
|
+
i++;
|
|
4447
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4448
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4449
|
+
}
|
|
4230
4450
|
}
|
|
4231
4451
|
return output;
|
|
4232
4452
|
}
|
|
@@ -4258,21 +4478,27 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4258
4478
|
function recomposeAuthority(component) {
|
|
4259
4479
|
const uriTokens = [];
|
|
4260
4480
|
if (component.userinfo !== void 0) {
|
|
4261
|
-
uriTokens.push(component.userinfo);
|
|
4481
|
+
uriTokens.push(encodeUserinfo(component.userinfo));
|
|
4262
4482
|
uriTokens.push("@");
|
|
4263
4483
|
}
|
|
4264
4484
|
if (component.host !== void 0) {
|
|
4265
|
-
let host =
|
|
4485
|
+
let host = component.host;
|
|
4266
4486
|
if (!isIPv4(host)) {
|
|
4267
|
-
|
|
4268
|
-
if (ipV6res.isIPV6
|
|
4487
|
+
let ipV6res = normalizeIPv6(host);
|
|
4488
|
+
if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {
|
|
4489
|
+
host = normalizePercentEncoding(host, true);
|
|
4490
|
+
ipV6res = normalizeIPv6(host);
|
|
4491
|
+
}
|
|
4492
|
+
if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) host = `[${ipV6res.escapedHost}]`;
|
|
4269
4493
|
else host = reescapeHostDelimiters(host, false);
|
|
4270
4494
|
}
|
|
4271
4495
|
uriTokens.push(host);
|
|
4272
4496
|
}
|
|
4273
4497
|
if (typeof component.port === "number" || typeof component.port === "string") {
|
|
4498
|
+
const port = String(component.port);
|
|
4499
|
+
if (!isPort(port)) throw new TypeError("URI port is malformed.");
|
|
4274
4500
|
uriTokens.push(":");
|
|
4275
|
-
uriTokens.push(
|
|
4501
|
+
uriTokens.push(port);
|
|
4276
4502
|
}
|
|
4277
4503
|
return uriTokens.length ? uriTokens.join("") : void 0;
|
|
4278
4504
|
}
|
|
@@ -4282,6 +4508,11 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4282
4508
|
reescapeHostDelimiters,
|
|
4283
4509
|
normalizePercentEncoding,
|
|
4284
4510
|
normalizePathEncoding,
|
|
4511
|
+
serializePathEncoding,
|
|
4512
|
+
normalizeQueryFragmentEncoding,
|
|
4513
|
+
encodeUserinfo,
|
|
4514
|
+
encodeQuery,
|
|
4515
|
+
encodeFragment,
|
|
4285
4516
|
escapePreservingEscapes,
|
|
4286
4517
|
removeDotSegments,
|
|
4287
4518
|
isIPv4,
|
|
@@ -4292,7 +4523,7 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4292
4523
|
}));
|
|
4293
4524
|
var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
4294
4525
|
const { isUUID } = require_utils();
|
|
4295
|
-
const URN_REG =
|
|
4526
|
+
const URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
|
|
4296
4527
|
const supportedSchemeNames = [
|
|
4297
4528
|
"http",
|
|
4298
4529
|
"https",
|
|
@@ -4363,9 +4594,10 @@ var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4363
4594
|
wsComponent.secure = void 0;
|
|
4364
4595
|
}
|
|
4365
4596
|
if (wsComponent.resourceName) {
|
|
4366
|
-
const
|
|
4597
|
+
const queryIndex = wsComponent.resourceName.indexOf("?");
|
|
4598
|
+
const path = queryIndex === -1 ? wsComponent.resourceName : wsComponent.resourceName.slice(0, queryIndex);
|
|
4367
4599
|
wsComponent.path = path && path !== "/" ? path : void 0;
|
|
4368
|
-
wsComponent.query =
|
|
4600
|
+
wsComponent.query = queryIndex === -1 ? void 0 : wsComponent.resourceName.slice(queryIndex + 1);
|
|
4369
4601
|
wsComponent.resourceName = void 0;
|
|
4370
4602
|
}
|
|
4371
4603
|
wsComponent.fragment = void 0;
|
|
@@ -4378,7 +4610,7 @@ var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4378
4610
|
return urnComponent;
|
|
4379
4611
|
}
|
|
4380
4612
|
const matches = urnComponent.path.match(URN_REG);
|
|
4381
|
-
if (matches) {
|
|
4613
|
+
if (matches && matches[0] === urnComponent.path) {
|
|
4382
4614
|
const scheme = options.scheme || urnComponent.scheme || "urn";
|
|
4383
4615
|
urnComponent.nid = matches[1].toLowerCase();
|
|
4384
4616
|
urnComponent.nss = matches[2];
|
|
@@ -4472,8 +4704,19 @@ var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4472
4704
|
};
|
|
4473
4705
|
}));
|
|
4474
4706
|
var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
4475
|
-
const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding,
|
|
4707
|
+
const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
4476
4708
|
const { SCHEMES, getSchemeHandler } = require_schemes();
|
|
4709
|
+
const VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u;
|
|
4710
|
+
const MALFORMED_SCHEME_ERROR = "URI scheme is malformed.";
|
|
4711
|
+
/**
|
|
4712
|
+
* @param {string} scheme
|
|
4713
|
+
* @returns {string}
|
|
4714
|
+
*/
|
|
4715
|
+
function decodeValidScheme(scheme) {
|
|
4716
|
+
const decodedScheme = unescape(String(scheme));
|
|
4717
|
+
if (!VALID_SCHEME.test(decodedScheme)) throw new TypeError(MALFORMED_SCHEME_ERROR);
|
|
4718
|
+
return decodedScheme;
|
|
4719
|
+
}
|
|
4477
4720
|
/**
|
|
4478
4721
|
* @template {import('./types/index').URIComponent|string} T
|
|
4479
4722
|
* @param {T} uri
|
|
@@ -4493,10 +4736,16 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4493
4736
|
*/
|
|
4494
4737
|
function resolve(baseURI, relativeURI, options) {
|
|
4495
4738
|
const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
|
|
4496
|
-
const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed } = parseWithStatus(baseURI, schemelessOptions);
|
|
4497
|
-
const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed } = parseWithStatus(relativeURI, schemelessOptions);
|
|
4498
|
-
if (baseMalformed || relativeMalformed) throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
|
|
4739
|
+
const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed, malformedPercentEncoding: baseMalformedPercentEncoding, malformedSchemeSpecific: baseMalformedSchemeSpecific, malformedHost: baseMalformedHost, malformedScheme: baseMalformedScheme } = parseWithStatus(baseURI, schemelessOptions);
|
|
4740
|
+
const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed, malformedPercentEncoding: relativeMalformedPercentEncoding, malformedSchemeSpecific: relativeMalformedSchemeSpecific, malformedHost: relativeMalformedHost, malformedScheme: relativeMalformedScheme } = parseWithStatus(relativeURI, schemelessOptions);
|
|
4741
|
+
if (baseMalformed || relativeMalformed || baseMalformedPercentEncoding || relativeMalformedPercentEncoding || baseMalformedSchemeSpecific || relativeMalformedSchemeSpecific || baseMalformedHost || relativeMalformedHost || baseMalformedScheme || relativeMalformedScheme) throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
|
|
4499
4742
|
const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
|
|
4743
|
+
const resolvedSchemeHandler = getSchemeHandler(options && options.scheme || resolved.scheme);
|
|
4744
|
+
const resolvedHost = resolved.host;
|
|
4745
|
+
const resolvedHostIsIP = resolvedHost !== void 0 && resolvedHost !== "" && (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6);
|
|
4746
|
+
canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP);
|
|
4747
|
+
const encodedASCIIHost = resolvedHost && resolvedHost.indexOf("%") !== -1 && !/\P{ASCII}/u.test(resolvedHost);
|
|
4748
|
+
if (resolved.error && !encodedASCIIHost) throw new Error(resolved.error);
|
|
4500
4749
|
schemelessOptions.skipEscape = true;
|
|
4501
4750
|
return serialize(resolved, schemelessOptions);
|
|
4502
4751
|
}
|
|
@@ -4562,7 +4811,7 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4562
4811
|
function equal(uriA, uriB, options) {
|
|
4563
4812
|
const normalizedA = normalizeComparableURI(uriA, options);
|
|
4564
4813
|
const normalizedB = normalizeComparableURI(uriB, options);
|
|
4565
|
-
return normalizedA !== void 0 && normalizedB !== void 0 && normalizedA
|
|
4814
|
+
return normalizedA !== void 0 && normalizedB !== void 0 && normalizedA === normalizedB;
|
|
4566
4815
|
}
|
|
4567
4816
|
/**
|
|
4568
4817
|
* @param {Readonly<import('./types/index').URIComponent>} cmpts
|
|
@@ -4588,13 +4837,17 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4588
4837
|
};
|
|
4589
4838
|
const options = Object.assign({}, opts);
|
|
4590
4839
|
const uriTokens = [];
|
|
4840
|
+
if (component.scheme) component.scheme = decodeValidScheme(component.scheme);
|
|
4591
4841
|
const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
|
|
4592
4842
|
if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options);
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
|
|
4596
|
-
|
|
4597
|
-
if (options.reference !== "suffix" && component.scheme)
|
|
4843
|
+
const hasAuthority = component.userinfo !== void 0 || component.host !== void 0 || component.port !== void 0;
|
|
4844
|
+
const pathNoScheme = !options.skipEscape && component.scheme === void 0 && !hasAuthority;
|
|
4845
|
+
if (component.path !== void 0) if (!options.skipEscape) component.path = serializePathEncoding(component.path, pathNoScheme);
|
|
4846
|
+
else component.path = normalizePercentEncoding(component.path);
|
|
4847
|
+
if (options.reference !== "suffix" && component.scheme) {
|
|
4848
|
+
component.scheme = decodeValidScheme(component.scheme);
|
|
4849
|
+
uriTokens.push(component.scheme, ":");
|
|
4850
|
+
}
|
|
4598
4851
|
const authority = recomposeAuthority(component);
|
|
4599
4852
|
if (authority !== void 0) {
|
|
4600
4853
|
if (options.reference !== "suffix") uriTokens.push("//");
|
|
@@ -4604,11 +4857,12 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4604
4857
|
if (component.path !== void 0) {
|
|
4605
4858
|
let s = component.path;
|
|
4606
4859
|
if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) s = removeDotSegments(s);
|
|
4860
|
+
if (pathNoScheme) s = serializePathEncoding(s, true);
|
|
4607
4861
|
if (authority === void 0 && s[0] === "/" && s[1] === "/") s = "/%2F" + s.slice(2);
|
|
4608
4862
|
uriTokens.push(s);
|
|
4609
4863
|
}
|
|
4610
|
-
if (component.query !== void 0) uriTokens.push("?", component.query);
|
|
4611
|
-
if (component.fragment !== void 0) uriTokens.push("#", component.fragment);
|
|
4864
|
+
if (component.query !== void 0) uriTokens.push("?", encodeQuery(component.query));
|
|
4865
|
+
if (component.fragment !== void 0) uriTokens.push("#", encodeFragment(component.fragment));
|
|
4612
4866
|
return uriTokens.join("");
|
|
4613
4867
|
}
|
|
4614
4868
|
const URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
|
|
@@ -4624,9 +4878,61 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4624
4878
|
if (typeof parsed.port === "number" && (parsed.port < 0 || parsed.port > 65535)) return "URI port is malformed.";
|
|
4625
4879
|
}
|
|
4626
4880
|
/**
|
|
4881
|
+
* Checks percent syntax without decoding the represented octets. RFC 3986
|
|
4882
|
+
* percent-encoding is byte-oriented, so sequences such as `%FF` are valid even
|
|
4883
|
+
* though they are not independently valid UTF-8.
|
|
4884
|
+
*
|
|
4885
|
+
* @param {string|undefined} component
|
|
4886
|
+
* @returns {boolean}
|
|
4887
|
+
*/
|
|
4888
|
+
function hasMalformedPercentEncoding(component) {
|
|
4889
|
+
if (component === void 0) return false;
|
|
4890
|
+
let percent = component.indexOf("%");
|
|
4891
|
+
while (percent !== -1) {
|
|
4892
|
+
if (percent + 2 >= component.length || !/^[\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) return true;
|
|
4893
|
+
percent = component.indexOf("%", percent + 3);
|
|
4894
|
+
}
|
|
4895
|
+
return false;
|
|
4896
|
+
}
|
|
4897
|
+
/**
|
|
4898
|
+
* Whether the host is a bracketed IP literal (RFC 3986 `IP-literal`).
|
|
4899
|
+
* An unterminated `[` is not a literal, so it must still be validated as a
|
|
4900
|
+
* reg-name instead of being waved through as an IP.
|
|
4901
|
+
*
|
|
4902
|
+
* @param {string} host
|
|
4903
|
+
* @returns {boolean}
|
|
4904
|
+
*/
|
|
4905
|
+
function isIPLiteral(host) {
|
|
4906
|
+
return host[0] === "[" && host[host.length - 1] === "]";
|
|
4907
|
+
}
|
|
4908
|
+
/**
|
|
4909
|
+
* @param {RegExpMatchArray} matches
|
|
4910
|
+
* @returns {boolean}
|
|
4911
|
+
*/
|
|
4912
|
+
function hasMalformedComponentPercentEncoding(matches) {
|
|
4913
|
+
const host = matches[4];
|
|
4914
|
+
return hasMalformedPercentEncoding(matches[3]) || host !== void 0 && !isIPLiteral(host) && hasMalformedPercentEncoding(host) || hasMalformedPercentEncoding(matches[6]) || hasMalformedPercentEncoding(matches[7]) || hasMalformedPercentEncoding(matches[8]);
|
|
4915
|
+
}
|
|
4916
|
+
/**
|
|
4917
|
+
* @param {import('./types/index').URIComponent} parsed
|
|
4918
|
+
* @param {import('./types/index').Options} options
|
|
4919
|
+
* @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler
|
|
4920
|
+
* @param {boolean} isIP
|
|
4921
|
+
* @returns {boolean} whether host conversion failed
|
|
4922
|
+
*/
|
|
4923
|
+
function canonicalizeHost(parsed, options, schemeHandler, isIP) {
|
|
4924
|
+
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && !isIPLiteral(parsed.host) && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) try {
|
|
4925
|
+
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
4926
|
+
} catch (e) {
|
|
4927
|
+
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
4928
|
+
return true;
|
|
4929
|
+
}
|
|
4930
|
+
return false;
|
|
4931
|
+
}
|
|
4932
|
+
/**
|
|
4627
4933
|
* @param {string} uri
|
|
4628
4934
|
* @param {import('./types/index').Options} [opts]
|
|
4629
|
-
* @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean }}
|
|
4935
|
+
* @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}
|
|
4630
4936
|
*/
|
|
4631
4937
|
function parseWithStatus(uri, opts) {
|
|
4632
4938
|
const options = Object.assign({}, opts);
|
|
@@ -4641,6 +4947,11 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4641
4947
|
fragment: void 0
|
|
4642
4948
|
};
|
|
4643
4949
|
let malformedAuthorityOrPort = false;
|
|
4950
|
+
let malformedPercentEncoding = false;
|
|
4951
|
+
let malformedSchemeSpecific = false;
|
|
4952
|
+
let malformedHost = false;
|
|
4953
|
+
let malformedIPLiteral = false;
|
|
4954
|
+
let malformedScheme = false;
|
|
4644
4955
|
let isIP = false;
|
|
4645
4956
|
if (options.reference === "suffix") if (options.scheme) uri = options.scheme + ":" + uri;
|
|
4646
4957
|
else uri = "//" + uri;
|
|
@@ -4672,6 +4983,16 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4672
4983
|
parsed.path = matches[6] || "";
|
|
4673
4984
|
parsed.query = matches[7];
|
|
4674
4985
|
parsed.fragment = matches[8];
|
|
4986
|
+
if (parsed.scheme !== void 0) {
|
|
4987
|
+
const decodedScheme = unescape(parsed.scheme);
|
|
4988
|
+
if (VALID_SCHEME.test(decodedScheme)) parsed.scheme = decodedScheme.toLowerCase();
|
|
4989
|
+
else {
|
|
4990
|
+
parsed.error = parsed.error || MALFORMED_SCHEME_ERROR;
|
|
4991
|
+
malformedScheme = true;
|
|
4992
|
+
}
|
|
4993
|
+
}
|
|
4994
|
+
malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches);
|
|
4995
|
+
if (malformedPercentEncoding) parsed.error = parsed.error || "URI contains malformed percent-encoding.";
|
|
4675
4996
|
if (isNaN(parsed.port)) parsed.port = matches[5];
|
|
4676
4997
|
const parseError = getParseError(parsed, matches);
|
|
4677
4998
|
if (parseError !== void 0) {
|
|
@@ -4679,9 +5000,16 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4679
5000
|
malformedAuthorityOrPort = true;
|
|
4680
5001
|
}
|
|
4681
5002
|
if (parsed.host) if (isIPv4(parsed.host) === false) {
|
|
5003
|
+
const bracketedIPLiteral = isIPLiteral(parsed.host);
|
|
5004
|
+
const hasIPLiteralBracket = parsed.host.indexOf("[") !== -1 || parsed.host.indexOf("]") !== -1;
|
|
4682
5005
|
const ipv6result = normalizeIPv6(parsed.host);
|
|
4683
|
-
|
|
4684
|
-
|
|
5006
|
+
isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true;
|
|
5007
|
+
malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true);
|
|
5008
|
+
parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase();
|
|
5009
|
+
if (malformedIPLiteral) {
|
|
5010
|
+
parsed.error = parsed.error || "URI host is malformed.";
|
|
5011
|
+
malformedAuthorityOrPort = true;
|
|
5012
|
+
}
|
|
4685
5013
|
} else isIP = true;
|
|
4686
5014
|
if (parsed.scheme === void 0 && parsed.userinfo === void 0 && parsed.host === void 0 && parsed.port === void 0 && parsed.query === void 0 && !parsed.path) parsed.reference = "same-document";
|
|
4687
5015
|
else if (parsed.scheme === void 0) parsed.reference = "relative";
|
|
@@ -4689,30 +5017,30 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4689
5017
|
else parsed.reference = "uri";
|
|
4690
5018
|
if (options.reference && options.reference !== "suffix" && options.reference !== parsed.reference) parsed.error = parsed.error || "URI is not a " + options.reference + " reference.";
|
|
4691
5019
|
const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
|
|
4692
|
-
if (!
|
|
4693
|
-
if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) try {
|
|
4694
|
-
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
4695
|
-
} catch (e) {
|
|
4696
|
-
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
4697
|
-
}
|
|
4698
|
-
}
|
|
5020
|
+
if (!malformedIPLiteral) malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
|
|
4699
5021
|
if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
|
|
4700
5022
|
if (uri.indexOf("%") !== -1) {
|
|
4701
|
-
if (parsed.
|
|
4702
|
-
|
|
5023
|
+
if (parsed.host !== void 0 && !malformedIPLiteral) {
|
|
5024
|
+
const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
|
|
5025
|
+
parsed.host = reescapeHostDelimiters(host, isIP);
|
|
5026
|
+
}
|
|
4703
5027
|
}
|
|
4704
5028
|
if (parsed.path) parsed.path = normalizePathEncoding(parsed.path);
|
|
4705
|
-
if (parsed.
|
|
4706
|
-
|
|
4707
|
-
|
|
4708
|
-
|
|
4709
|
-
|
|
5029
|
+
if (parsed.query) parsed.query = normalizeQueryFragmentEncoding(parsed.query);
|
|
5030
|
+
if (parsed.fragment) parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment);
|
|
5031
|
+
}
|
|
5032
|
+
if (schemeHandler && schemeHandler.parse) {
|
|
5033
|
+
schemeHandler.parse(parsed, options);
|
|
5034
|
+
if (schemeHandler === SCHEMES.urn && parsed.nid === void 0) malformedSchemeSpecific = true;
|
|
4710
5035
|
}
|
|
4711
|
-
if (schemeHandler && schemeHandler.parse) schemeHandler.parse(parsed, options);
|
|
4712
5036
|
} else parsed.error = parsed.error || "URI can not be parsed.";
|
|
4713
5037
|
return {
|
|
4714
5038
|
parsed,
|
|
4715
|
-
malformedAuthorityOrPort
|
|
5039
|
+
malformedAuthorityOrPort,
|
|
5040
|
+
malformedPercentEncoding,
|
|
5041
|
+
malformedSchemeSpecific,
|
|
5042
|
+
malformedHost,
|
|
5043
|
+
malformedScheme
|
|
4716
5044
|
};
|
|
4717
5045
|
}
|
|
4718
5046
|
/**
|
|
@@ -4734,13 +5062,17 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4734
5062
|
/**
|
|
4735
5063
|
* @param {string} uri
|
|
4736
5064
|
* @param {import('./types/index').Options} [opts]
|
|
4737
|
-
* @returns {{ normalized: string, malformedAuthorityOrPort: boolean }}
|
|
5065
|
+
* @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}
|
|
4738
5066
|
*/
|
|
4739
5067
|
function normalizeStringWithStatus(uri, opts) {
|
|
4740
|
-
const { parsed, malformedAuthorityOrPort } = parseWithStatus(uri, opts);
|
|
5068
|
+
const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts);
|
|
4741
5069
|
return {
|
|
4742
|
-
normalized: malformedAuthorityOrPort ? uri : serialize(parsed, opts),
|
|
4743
|
-
malformedAuthorityOrPort
|
|
5070
|
+
normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),
|
|
5071
|
+
malformedAuthorityOrPort,
|
|
5072
|
+
malformedPercentEncoding,
|
|
5073
|
+
malformedSchemeSpecific,
|
|
5074
|
+
malformedHost,
|
|
5075
|
+
malformedScheme
|
|
4744
5076
|
};
|
|
4745
5077
|
}
|
|
4746
5078
|
/**
|
|
@@ -4749,11 +5081,15 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4749
5081
|
* @returns {string|undefined}
|
|
4750
5082
|
*/
|
|
4751
5083
|
function normalizeComparableURI(uri, opts) {
|
|
4752
|
-
if (typeof uri
|
|
4753
|
-
|
|
4754
|
-
|
|
5084
|
+
if (typeof uri !== "string" && typeof uri !== "object") return;
|
|
5085
|
+
let value;
|
|
5086
|
+
try {
|
|
5087
|
+
value = typeof uri === "string" ? uri : serialize(uri, opts);
|
|
5088
|
+
} catch {
|
|
5089
|
+
return;
|
|
4755
5090
|
}
|
|
4756
|
-
|
|
5091
|
+
const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts);
|
|
5092
|
+
return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? void 0 : normalized;
|
|
4757
5093
|
}
|
|
4758
5094
|
const fastUri = {
|
|
4759
5095
|
SCHEMES,
|
|
@@ -8028,7 +8364,7 @@ function toStandardSchema$2(zodSchema) {
|
|
|
8028
8364
|
return wrapper;
|
|
8029
8365
|
}
|
|
8030
8366
|
//#endregion
|
|
8031
|
-
//#region ../schema-compat/dist/schema-
|
|
8367
|
+
//#region ../schema-compat/dist/schema-D_ikovK6.js
|
|
8032
8368
|
/**
|
|
8033
8369
|
* Supported JSON Schema targets for z.toJSONSchema().
|
|
8034
8370
|
* Works with both real Zod v4 and Zod 3.25's v4 compat layer.
|
|
@@ -8306,4 +8642,4 @@ Object.defineProperty(exports, "toStandardSchema", {
|
|
|
8306
8642
|
}
|
|
8307
8643
|
});
|
|
8308
8644
|
|
|
8309
|
-
//# sourceMappingURL=schema-
|
|
8645
|
+
//# sourceMappingURL=schema-D_ikovK6-DQrOVw5N.cjs.map
|