@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
|
@@ -1318,7 +1318,7 @@ function toStandardSchema$4(schema) {
|
|
|
1318
1318
|
return new AiSdkSchemaWrapper(schema);
|
|
1319
1319
|
}
|
|
1320
1320
|
//#endregion
|
|
1321
|
-
//#region ../schema-compat/dist/json-schema-
|
|
1321
|
+
//#region ../schema-compat/dist/json-schema-BKit3LVN.js
|
|
1322
1322
|
var require_code$1 = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
1323
1323
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
1324
1324
|
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;
|
|
@@ -3924,11 +3924,27 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
3924
3924
|
/** @type {(value: string) => boolean} */
|
|
3925
3925
|
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);
|
|
3926
3926
|
/** @type {(value: string) => boolean} */
|
|
3927
|
+
const isPort = RegExp.prototype.test.bind(/^\d*$/u);
|
|
3928
|
+
/** @type {(value: string) => boolean} */
|
|
3927
3929
|
const isHexPair = RegExp.prototype.test.bind(/^[\da-f]{2}$/iu);
|
|
3928
3930
|
/** @type {(value: string) => boolean} */
|
|
3929
3931
|
const isUnreserved = RegExp.prototype.test.bind(/^[\da-z\-._~]$/iu);
|
|
3930
3932
|
/** @type {(value: string) => boolean} */
|
|
3931
|
-
const isPathCharacter = RegExp.prototype.test.bind(/^[
|
|
3933
|
+
const isPathCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/]$/u);
|
|
3934
|
+
/** @type {(value: string) => boolean} */
|
|
3935
|
+
const isQueryFragmentCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:@/?]$/u);
|
|
3936
|
+
/** @type {(value: string) => boolean} */
|
|
3937
|
+
const isUserinfoCharacter = RegExp.prototype.test.bind(/^[A-Za-z0-9\-._~!$&'()*+,;=:]$/u);
|
|
3938
|
+
const BYTE_HEX = new Array(256);
|
|
3939
|
+
{
|
|
3940
|
+
const HEX_DIGITS = "0123456789ABCDEF";
|
|
3941
|
+
for (let i = 0; i < 256; i++) BYTE_HEX[i] = "%" + HEX_DIGITS[i >> 4] + HEX_DIGITS[i & 15];
|
|
3942
|
+
}
|
|
3943
|
+
function percentEncodeNonAscii(cp) {
|
|
3944
|
+
if (cp < 2048) return BYTE_HEX[192 | cp >> 6] + BYTE_HEX[128 | cp & 63];
|
|
3945
|
+
if (cp < 65536) return BYTE_HEX[224 | cp >> 12] + BYTE_HEX[128 | cp >> 6 & 63] + BYTE_HEX[128 | cp & 63];
|
|
3946
|
+
return BYTE_HEX[240 | cp >> 18] + BYTE_HEX[128 | cp >> 12 & 63] + BYTE_HEX[128 | cp >> 6 & 63] + BYTE_HEX[128 | cp & 63];
|
|
3947
|
+
}
|
|
3932
3948
|
/**
|
|
3933
3949
|
* @param {Array<string>} input
|
|
3934
3950
|
* @returns {string}
|
|
@@ -3951,119 +3967,162 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
3951
3967
|
}
|
|
3952
3968
|
return acc;
|
|
3953
3969
|
}
|
|
3954
|
-
/**
|
|
3955
|
-
|
|
3956
|
-
|
|
3957
|
-
|
|
3958
|
-
|
|
3959
|
-
|
|
3970
|
+
/** @type {(value: string) => boolean} */
|
|
3971
|
+
const isHextet = RegExp.prototype.test.bind(/^[\dA-Fa-f]{1,4}$/);
|
|
3972
|
+
/** @type {(value: string) => boolean} */
|
|
3973
|
+
const isIPvFuture = RegExp.prototype.test.bind(/^[vV][\dA-Fa-f]+\.[A-Za-z\d\-._~!$&'()*+,;=:]+$/);
|
|
3974
|
+
/** @type {(value: string) => boolean} */
|
|
3975
|
+
const isZoneCharacter = RegExp.prototype.test.bind(/^[A-Za-z\d\-._~]$/);
|
|
3960
3976
|
/**
|
|
3961
3977
|
* @param {string} value
|
|
3962
3978
|
* @returns {boolean}
|
|
3963
3979
|
*/
|
|
3964
3980
|
const nonSimpleDomain = RegExp.prototype.test.bind(/[^!"$&'()*+,\-.;=_`a-z{}~]/u);
|
|
3965
3981
|
/**
|
|
3966
|
-
* @param {
|
|
3982
|
+
* @param {string} zone
|
|
3967
3983
|
* @returns {boolean}
|
|
3968
3984
|
*/
|
|
3969
|
-
function
|
|
3970
|
-
|
|
3985
|
+
function isZoneIdentifier(zone) {
|
|
3986
|
+
if (zone.length === 0) return false;
|
|
3987
|
+
for (let i = 0; i < zone.length; i++) {
|
|
3988
|
+
if (isZoneCharacter(zone[i])) continue;
|
|
3989
|
+
if (zone[i] === "%" && i + 2 < zone.length && isHexPair(zone.slice(i + 1, i + 3))) {
|
|
3990
|
+
i += 2;
|
|
3991
|
+
continue;
|
|
3992
|
+
}
|
|
3993
|
+
return false;
|
|
3994
|
+
}
|
|
3971
3995
|
return true;
|
|
3972
3996
|
}
|
|
3973
3997
|
/**
|
|
3974
|
-
*
|
|
3975
|
-
*
|
|
3976
|
-
*
|
|
3977
|
-
* @
|
|
3998
|
+
* Compresses the longest run of zero hextets to "::" per RFC 5952. A run of a
|
|
3999
|
+
* single zero hextet is left uncompressed. On ties the leftmost run wins.
|
|
4000
|
+
*
|
|
4001
|
+
* @param {string[]} hextets
|
|
4002
|
+
* @returns {string}
|
|
3978
4003
|
*/
|
|
3979
|
-
function
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
|
|
3984
|
-
|
|
3985
|
-
|
|
4004
|
+
function compressIPv6ZeroRun(hextets) {
|
|
4005
|
+
let bestStart = -1;
|
|
4006
|
+
let bestLength = 0;
|
|
4007
|
+
let runStart = -1;
|
|
4008
|
+
let runLength = 0;
|
|
4009
|
+
for (let i = 0; i < hextets.length; i++) if (hextets[i] === "0") {
|
|
4010
|
+
if (runStart === -1) runStart = i;
|
|
4011
|
+
runLength++;
|
|
4012
|
+
if (runLength > bestLength) {
|
|
4013
|
+
bestLength = runLength;
|
|
4014
|
+
bestStart = runStart;
|
|
3986
4015
|
}
|
|
3987
|
-
|
|
4016
|
+
} else {
|
|
4017
|
+
runStart = -1;
|
|
4018
|
+
runLength = 0;
|
|
3988
4019
|
}
|
|
3989
|
-
return
|
|
4020
|
+
if (bestLength < 2) return hextets.join(":");
|
|
4021
|
+
const head = hextets.slice(0, bestStart).join(":");
|
|
4022
|
+
const tail = hextets.slice(bestStart + bestLength).join(":");
|
|
4023
|
+
return head + "::" + tail;
|
|
3990
4024
|
}
|
|
3991
4025
|
/**
|
|
4026
|
+
* Validates an IPv6 address against the alternatives in RFC 3986 section
|
|
4027
|
+
* 3.2.2 and returns the same address with leading hextet zeroes removed.
|
|
4028
|
+
* An embedded IPv4 address counts as two hextets and is only valid at the end.
|
|
4029
|
+
*
|
|
3992
4030
|
* @param {string} input
|
|
3993
|
-
* @returns {
|
|
4031
|
+
* @returns {string|undefined}
|
|
3994
4032
|
*/
|
|
3995
|
-
function
|
|
3996
|
-
|
|
3997
|
-
|
|
3998
|
-
|
|
3999
|
-
|
|
4000
|
-
|
|
4001
|
-
|
|
4002
|
-
|
|
4003
|
-
|
|
4004
|
-
|
|
4005
|
-
|
|
4006
|
-
let
|
|
4007
|
-
|
|
4008
|
-
|
|
4009
|
-
|
|
4010
|
-
|
|
4011
|
-
|
|
4012
|
-
if (cursor === ":") {
|
|
4013
|
-
if (endipv6Encountered === true) endIpv6 = true;
|
|
4014
|
-
if (!consume(buffer, address, output)) break;
|
|
4015
|
-
if (++tokenCount > 7) {
|
|
4016
|
-
output.error = true;
|
|
4017
|
-
break;
|
|
4018
|
-
}
|
|
4019
|
-
if (i > 0 && input[i - 1] === ":") endipv6Encountered = true;
|
|
4020
|
-
address.push(":");
|
|
4021
|
-
continue;
|
|
4022
|
-
} else if (cursor === "%") {
|
|
4023
|
-
if (!consume(buffer, address, output)) break;
|
|
4024
|
-
consume = consumeIsZone;
|
|
4025
|
-
} else {
|
|
4026
|
-
buffer.push(cursor);
|
|
4033
|
+
function normalizeIPv6Address(input) {
|
|
4034
|
+
const compression = input.indexOf("::");
|
|
4035
|
+
if (compression !== -1 && input.indexOf("::", compression + 1) !== -1) return void 0;
|
|
4036
|
+
const left = compression === -1 ? input.split(":") : input.slice(0, compression).split(":");
|
|
4037
|
+
const right = compression === -1 ? [] : input.slice(compression + 2).split(":");
|
|
4038
|
+
if (compression !== -1) {
|
|
4039
|
+
if (left.length === 1 && left[0] === "") left.length = 0;
|
|
4040
|
+
if (right.length === 1 && right[0] === "") right.length = 0;
|
|
4041
|
+
}
|
|
4042
|
+
const parts = left.concat(right);
|
|
4043
|
+
let hextetCount = 0;
|
|
4044
|
+
for (let i = 0; i < parts.length; i++) {
|
|
4045
|
+
const part = parts[i];
|
|
4046
|
+
if (part === "") return void 0;
|
|
4047
|
+
if (part.indexOf(".") !== -1) {
|
|
4048
|
+
if (i !== parts.length - 1 || compression !== -1 && right.length === 0 || !isIPv4(part)) return void 0;
|
|
4049
|
+
hextetCount += 2;
|
|
4027
4050
|
continue;
|
|
4028
4051
|
}
|
|
4052
|
+
if (!isHextet(part)) return void 0;
|
|
4053
|
+
parts[i] = parseInt(part, 16).toString(16);
|
|
4054
|
+
hextetCount++;
|
|
4029
4055
|
}
|
|
4030
|
-
if (
|
|
4031
|
-
|
|
4032
|
-
|
|
4033
|
-
|
|
4034
|
-
return
|
|
4056
|
+
if (compression === -1) {
|
|
4057
|
+
if (hextetCount !== 8) return void 0;
|
|
4058
|
+
return compressIPv6ZeroRun(parts);
|
|
4059
|
+
}
|
|
4060
|
+
if (hextetCount >= 8) return void 0;
|
|
4061
|
+
const expanded = parts.slice(0, left.length);
|
|
4062
|
+
for (let i = hextetCount; i < 8; i++) expanded.push("0");
|
|
4063
|
+
for (let i = left.length; i < parts.length; i++) expanded.push(parts[i]);
|
|
4064
|
+
return compressIPv6ZeroRun(expanded);
|
|
4035
4065
|
}
|
|
4036
4066
|
/**
|
|
4037
4067
|
* @typedef {Object} NormalizeIPv6Result
|
|
4038
4068
|
* @property {string} host - The normalized host.
|
|
4039
4069
|
* @property {string} [escapedHost] - The escaped host.
|
|
4040
4070
|
* @property {boolean} isIPV6 - Indicates if the host is an IPv6 address.
|
|
4071
|
+
* @property {boolean} [isIPVFuture] - Indicates if the host is an IPvFuture literal.
|
|
4072
|
+
* @property {boolean} [error] - Indicates if a bracketed IP literal is malformed.
|
|
4041
4073
|
*/
|
|
4042
4074
|
/**
|
|
4075
|
+
* Validates and normalizes a bracketed IP literal. Raw zone separators remain
|
|
4076
|
+
* accepted for backwards compatibility, while encoded separators and zone
|
|
4077
|
+
* contents follow RFC 6874.
|
|
4078
|
+
*
|
|
4043
4079
|
* @param {string} host
|
|
4044
4080
|
* @returns {NormalizeIPv6Result}
|
|
4045
4081
|
*/
|
|
4046
4082
|
function normalizeIPv6(host) {
|
|
4047
|
-
|
|
4083
|
+
const bracketed = host[0] === "[" && host[host.length - 1] === "]";
|
|
4084
|
+
if ((host[0] === "[" || host[host.length - 1] === "]") && !bracketed) return {
|
|
4048
4085
|
host,
|
|
4049
|
-
isIPV6: false
|
|
4086
|
+
isIPV6: false,
|
|
4087
|
+
error: true
|
|
4050
4088
|
};
|
|
4051
|
-
|
|
4052
|
-
if (
|
|
4053
|
-
|
|
4054
|
-
let escapedHost = ipv6.address;
|
|
4055
|
-
if (ipv6.zone) {
|
|
4056
|
-
newHost += "%" + ipv6.zone;
|
|
4057
|
-
escapedHost += "%25" + ipv6.zone;
|
|
4058
|
-
}
|
|
4089
|
+
let input = bracketed ? host.slice(1, -1) : host;
|
|
4090
|
+
if (bracketed && isIPvFuture(input)) {
|
|
4091
|
+
input = input.toLowerCase();
|
|
4059
4092
|
return {
|
|
4060
|
-
host:
|
|
4061
|
-
|
|
4062
|
-
|
|
4093
|
+
host: `[${input}]`,
|
|
4094
|
+
escapedHost: input,
|
|
4095
|
+
isIPV6: false,
|
|
4096
|
+
isIPVFuture: true
|
|
4063
4097
|
};
|
|
4064
|
-
}
|
|
4098
|
+
}
|
|
4099
|
+
if (findToken(input, ":") < 2) return {
|
|
4100
|
+
host,
|
|
4101
|
+
isIPV6: false,
|
|
4102
|
+
error: bracketed
|
|
4103
|
+
};
|
|
4104
|
+
let zoneIdentifier = "";
|
|
4105
|
+
const zoneSeparator = input.indexOf("%");
|
|
4106
|
+
if (zoneSeparator !== -1) {
|
|
4107
|
+
const separatorLength = input.slice(zoneSeparator, zoneSeparator + 3).toLowerCase() === "%25" ? 3 : 1;
|
|
4108
|
+
zoneIdentifier = input.slice(zoneSeparator + separatorLength);
|
|
4109
|
+
if (!isZoneIdentifier(zoneIdentifier)) return {
|
|
4110
|
+
host,
|
|
4111
|
+
isIPV6: false,
|
|
4112
|
+
error: true
|
|
4113
|
+
};
|
|
4114
|
+
input = input.slice(0, zoneSeparator);
|
|
4115
|
+
}
|
|
4116
|
+
const address = normalizeIPv6Address(input);
|
|
4117
|
+
if (address === void 0) return {
|
|
4065
4118
|
host,
|
|
4066
|
-
isIPV6: false
|
|
4119
|
+
isIPV6: false,
|
|
4120
|
+
error: true
|
|
4121
|
+
};
|
|
4122
|
+
return {
|
|
4123
|
+
host: address + (zoneIdentifier ? "%" + zoneIdentifier : ""),
|
|
4124
|
+
escapedHost: address + (zoneIdentifier ? "%25" + zoneIdentifier : ""),
|
|
4125
|
+
isIPV6: true
|
|
4067
4126
|
};
|
|
4068
4127
|
}
|
|
4069
4128
|
/**
|
|
@@ -4176,7 +4235,7 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4176
4235
|
}
|
|
4177
4236
|
/**
|
|
4178
4237
|
* Normalizes percent escapes and optionally decodes only unreserved ASCII bytes.
|
|
4179
|
-
* Reserved delimiters such as `%2F`
|
|
4238
|
+
* Reserved delimiters such as `%2F` stay escaped; `%2E` is unreserved.
|
|
4180
4239
|
*
|
|
4181
4240
|
* @param {string} input
|
|
4182
4241
|
* @param {boolean} [decodeUnreserved=false]
|
|
@@ -4212,7 +4271,8 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4212
4271
|
function normalizePathEncoding(input) {
|
|
4213
4272
|
let output = "";
|
|
4214
4273
|
for (let i = 0; i < input.length; i++) {
|
|
4215
|
-
|
|
4274
|
+
const ch = input[i];
|
|
4275
|
+
if (ch === "%" && i + 2 < input.length) {
|
|
4216
4276
|
const hex = input.slice(i + 1, i + 3);
|
|
4217
4277
|
if (isHexPair(hex)) {
|
|
4218
4278
|
const normalizedHex = hex.toUpperCase();
|
|
@@ -4223,8 +4283,168 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4223
4283
|
continue;
|
|
4224
4284
|
}
|
|
4225
4285
|
}
|
|
4226
|
-
if (isPathCharacter(
|
|
4227
|
-
else
|
|
4286
|
+
if (isPathCharacter(ch)) output += ch;
|
|
4287
|
+
else {
|
|
4288
|
+
const code = input.charCodeAt(i);
|
|
4289
|
+
if (code < 128) output += isEscapeSafe(code) ? ch : BYTE_HEX[code];
|
|
4290
|
+
else if (code < 55296 || code > 57343) output += percentEncodeNonAscii(code);
|
|
4291
|
+
else if (code <= 56319 && i + 1 < input.length) {
|
|
4292
|
+
const low = input.charCodeAt(i + 1);
|
|
4293
|
+
if (low >= 56320 && low <= 57343) {
|
|
4294
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
4295
|
+
i++;
|
|
4296
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4297
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4298
|
+
}
|
|
4299
|
+
}
|
|
4300
|
+
return output;
|
|
4301
|
+
}
|
|
4302
|
+
/**
|
|
4303
|
+
* Serializes a path without rewriting reserved data. Raw RFC 3986 path
|
|
4304
|
+
* characters remain literal, valid escapes are preserved and uppercased, and
|
|
4305
|
+
* everything else is UTF-8 percent-encoded. In a path-noscheme, a colon in the
|
|
4306
|
+
* first segment must be escaped so the result cannot be parsed as a scheme.
|
|
4307
|
+
*
|
|
4308
|
+
* @param {string} input
|
|
4309
|
+
* @param {boolean} [pathNoScheme=false]
|
|
4310
|
+
* @returns {string}
|
|
4311
|
+
*/
|
|
4312
|
+
function serializePathEncoding(input, pathNoScheme = false) {
|
|
4313
|
+
let output = "";
|
|
4314
|
+
let firstSegment = pathNoScheme && input[0] !== "/";
|
|
4315
|
+
for (let i = 0; i < input.length; i++) {
|
|
4316
|
+
const ch = input[i];
|
|
4317
|
+
if (ch === "%" && i + 2 < input.length) {
|
|
4318
|
+
const hex = input.slice(i + 1, i + 3);
|
|
4319
|
+
if (isHexPair(hex)) {
|
|
4320
|
+
output += "%" + hex.toUpperCase();
|
|
4321
|
+
i += 2;
|
|
4322
|
+
continue;
|
|
4323
|
+
}
|
|
4324
|
+
}
|
|
4325
|
+
if (ch === "/") firstSegment = false;
|
|
4326
|
+
if (isPathCharacter(ch) && (ch !== ":" || !firstSegment)) output += ch;
|
|
4327
|
+
else {
|
|
4328
|
+
const code = input.charCodeAt(i);
|
|
4329
|
+
if (code < 128) output += BYTE_HEX[code];
|
|
4330
|
+
else if (code < 55296 || code > 57343) output += percentEncodeNonAscii(code);
|
|
4331
|
+
else if (code <= 56319 && i + 1 < input.length) {
|
|
4332
|
+
const low = input.charCodeAt(i + 1);
|
|
4333
|
+
if (low >= 56320 && low <= 57343) {
|
|
4334
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
4335
|
+
i++;
|
|
4336
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4337
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4338
|
+
}
|
|
4339
|
+
}
|
|
4340
|
+
return output;
|
|
4341
|
+
}
|
|
4342
|
+
/**
|
|
4343
|
+
* Percent-encodes a URI component using its RFC 3986 literal character set.
|
|
4344
|
+
* Existing valid escapes are preserved and normalized to uppercase hex.
|
|
4345
|
+
*
|
|
4346
|
+
* @param {string} input
|
|
4347
|
+
* @param {(value: string) => boolean} isAllowed
|
|
4348
|
+
* @returns {string}
|
|
4349
|
+
*/
|
|
4350
|
+
function encodeComponent(input, isAllowed) {
|
|
4351
|
+
let output = "";
|
|
4352
|
+
for (let i = 0; i < input.length; i++) {
|
|
4353
|
+
const ch = input[i];
|
|
4354
|
+
if (ch === "%" && i + 2 < input.length) {
|
|
4355
|
+
const hex = input.slice(i + 1, i + 3);
|
|
4356
|
+
if (isHexPair(hex)) {
|
|
4357
|
+
output += "%" + hex.toUpperCase();
|
|
4358
|
+
i += 2;
|
|
4359
|
+
continue;
|
|
4360
|
+
}
|
|
4361
|
+
}
|
|
4362
|
+
if (isAllowed(ch)) output += ch;
|
|
4363
|
+
else {
|
|
4364
|
+
const code = input.charCodeAt(i);
|
|
4365
|
+
if (code < 128) output += BYTE_HEX[code];
|
|
4366
|
+
else if (code < 55296 || code > 57343) output += percentEncodeNonAscii(code);
|
|
4367
|
+
else if (code <= 56319 && i + 1 < input.length) {
|
|
4368
|
+
const low = input.charCodeAt(i + 1);
|
|
4369
|
+
if (low >= 56320 && low <= 57343) {
|
|
4370
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
4371
|
+
i++;
|
|
4372
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4373
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4374
|
+
}
|
|
4375
|
+
}
|
|
4376
|
+
return output;
|
|
4377
|
+
}
|
|
4378
|
+
/**
|
|
4379
|
+
* Encodes userinfo while preserving its RFC 3986 §3.2.1 literal characters.
|
|
4380
|
+
* In particular, authority delimiters such as `@`, `/`, `?`, and `#` are data.
|
|
4381
|
+
*
|
|
4382
|
+
* @param {string} input
|
|
4383
|
+
* @returns {string}
|
|
4384
|
+
*/
|
|
4385
|
+
function encodeUserinfo(input) {
|
|
4386
|
+
return encodeComponent(input, isUserinfoCharacter);
|
|
4387
|
+
}
|
|
4388
|
+
/**
|
|
4389
|
+
* Encodes query data using the RFC 3986 §3.4 grammar. A literal `#` must be
|
|
4390
|
+
* escaped because it would otherwise begin the fragment component.
|
|
4391
|
+
*
|
|
4392
|
+
* @param {string} input
|
|
4393
|
+
* @returns {string}
|
|
4394
|
+
*/
|
|
4395
|
+
function encodeQuery(input) {
|
|
4396
|
+
return encodeComponent(input, isQueryFragmentCharacter);
|
|
4397
|
+
}
|
|
4398
|
+
/**
|
|
4399
|
+
* Encodes fragment data using the RFC 3986 §3.5 grammar.
|
|
4400
|
+
*
|
|
4401
|
+
* @param {string} input
|
|
4402
|
+
* @returns {string}
|
|
4403
|
+
*/
|
|
4404
|
+
function encodeFragment(input) {
|
|
4405
|
+
return encodeComponent(input, isQueryFragmentCharacter);
|
|
4406
|
+
}
|
|
4407
|
+
function isEscapeSafe(cp) {
|
|
4408
|
+
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;
|
|
4409
|
+
}
|
|
4410
|
+
/**
|
|
4411
|
+
* Normalizes the percent-encoding of a query or fragment component.
|
|
4412
|
+
*
|
|
4413
|
+
* Like `normalizePathEncoding`, but uses the query/fragment character set
|
|
4414
|
+
* (which additionally allows `?`) and decodes `.` since it has no dot-segment
|
|
4415
|
+
* meaning outside of a path.
|
|
4416
|
+
*
|
|
4417
|
+
* @param {string} input
|
|
4418
|
+
* @returns {string}
|
|
4419
|
+
*/
|
|
4420
|
+
function normalizeQueryFragmentEncoding(input) {
|
|
4421
|
+
let output = "";
|
|
4422
|
+
for (let i = 0; i < input.length; i++) {
|
|
4423
|
+
const ch = input[i];
|
|
4424
|
+
if (ch === "%" && i + 2 < input.length) {
|
|
4425
|
+
const hex = input.slice(i + 1, i + 3);
|
|
4426
|
+
if (isHexPair(hex)) {
|
|
4427
|
+
const normalizedHex = hex.toUpperCase();
|
|
4428
|
+
const decoded = String.fromCharCode(parseInt(normalizedHex, 16));
|
|
4429
|
+
if (isUnreserved(decoded)) output += decoded;
|
|
4430
|
+
else output += "%" + normalizedHex;
|
|
4431
|
+
i += 2;
|
|
4432
|
+
continue;
|
|
4433
|
+
}
|
|
4434
|
+
}
|
|
4435
|
+
if (isQueryFragmentCharacter(ch)) output += ch;
|
|
4436
|
+
else {
|
|
4437
|
+
const code = input.charCodeAt(i);
|
|
4438
|
+
if (code < 128) output += isEscapeSafe(code) ? ch : BYTE_HEX[code];
|
|
4439
|
+
else if (code < 55296 || code > 57343) output += percentEncodeNonAscii(code);
|
|
4440
|
+
else if (code <= 56319 && i + 1 < input.length) {
|
|
4441
|
+
const low = input.charCodeAt(i + 1);
|
|
4442
|
+
if (low >= 56320 && low <= 57343) {
|
|
4443
|
+
output += percentEncodeNonAscii(65536 + (code - 55296 << 10) + (low - 56320));
|
|
4444
|
+
i++;
|
|
4445
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4446
|
+
} else output += percentEncodeNonAscii(65533);
|
|
4447
|
+
}
|
|
4228
4448
|
}
|
|
4229
4449
|
return output;
|
|
4230
4450
|
}
|
|
@@ -4256,21 +4476,27 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4256
4476
|
function recomposeAuthority(component) {
|
|
4257
4477
|
const uriTokens = [];
|
|
4258
4478
|
if (component.userinfo !== void 0) {
|
|
4259
|
-
uriTokens.push(component.userinfo);
|
|
4479
|
+
uriTokens.push(encodeUserinfo(component.userinfo));
|
|
4260
4480
|
uriTokens.push("@");
|
|
4261
4481
|
}
|
|
4262
4482
|
if (component.host !== void 0) {
|
|
4263
|
-
let host =
|
|
4483
|
+
let host = component.host;
|
|
4264
4484
|
if (!isIPv4(host)) {
|
|
4265
|
-
|
|
4266
|
-
if (ipV6res.isIPV6
|
|
4485
|
+
let ipV6res = normalizeIPv6(host);
|
|
4486
|
+
if (ipV6res.isIPV6 !== true && ipV6res.isIPVFuture !== true) {
|
|
4487
|
+
host = normalizePercentEncoding(host, true);
|
|
4488
|
+
ipV6res = normalizeIPv6(host);
|
|
4489
|
+
}
|
|
4490
|
+
if (ipV6res.isIPV6 === true || ipV6res.isIPVFuture === true) host = `[${ipV6res.escapedHost}]`;
|
|
4267
4491
|
else host = reescapeHostDelimiters(host, false);
|
|
4268
4492
|
}
|
|
4269
4493
|
uriTokens.push(host);
|
|
4270
4494
|
}
|
|
4271
4495
|
if (typeof component.port === "number" || typeof component.port === "string") {
|
|
4496
|
+
const port = String(component.port);
|
|
4497
|
+
if (!isPort(port)) throw new TypeError("URI port is malformed.");
|
|
4272
4498
|
uriTokens.push(":");
|
|
4273
|
-
uriTokens.push(
|
|
4499
|
+
uriTokens.push(port);
|
|
4274
4500
|
}
|
|
4275
4501
|
return uriTokens.length ? uriTokens.join("") : void 0;
|
|
4276
4502
|
}
|
|
@@ -4280,6 +4506,11 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4280
4506
|
reescapeHostDelimiters,
|
|
4281
4507
|
normalizePercentEncoding,
|
|
4282
4508
|
normalizePathEncoding,
|
|
4509
|
+
serializePathEncoding,
|
|
4510
|
+
normalizeQueryFragmentEncoding,
|
|
4511
|
+
encodeUserinfo,
|
|
4512
|
+
encodeQuery,
|
|
4513
|
+
encodeFragment,
|
|
4283
4514
|
escapePreservingEscapes,
|
|
4284
4515
|
removeDotSegments,
|
|
4285
4516
|
isIPv4,
|
|
@@ -4290,7 +4521,7 @@ var require_utils = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4290
4521
|
}));
|
|
4291
4522
|
var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
4292
4523
|
const { isUUID } = require_utils();
|
|
4293
|
-
const URN_REG =
|
|
4524
|
+
const URN_REG = /^([\da-z][\d\-a-z]{0,31}):((?:[\w!$'()*+,\-./:;=@]|%[\da-f]{2})+)$/iu;
|
|
4294
4525
|
const supportedSchemeNames = [
|
|
4295
4526
|
"http",
|
|
4296
4527
|
"https",
|
|
@@ -4361,9 +4592,10 @@ var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4361
4592
|
wsComponent.secure = void 0;
|
|
4362
4593
|
}
|
|
4363
4594
|
if (wsComponent.resourceName) {
|
|
4364
|
-
const
|
|
4595
|
+
const queryIndex = wsComponent.resourceName.indexOf("?");
|
|
4596
|
+
const path = queryIndex === -1 ? wsComponent.resourceName : wsComponent.resourceName.slice(0, queryIndex);
|
|
4365
4597
|
wsComponent.path = path && path !== "/" ? path : void 0;
|
|
4366
|
-
wsComponent.query =
|
|
4598
|
+
wsComponent.query = queryIndex === -1 ? void 0 : wsComponent.resourceName.slice(queryIndex + 1);
|
|
4367
4599
|
wsComponent.resourceName = void 0;
|
|
4368
4600
|
}
|
|
4369
4601
|
wsComponent.fragment = void 0;
|
|
@@ -4376,7 +4608,7 @@ var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4376
4608
|
return urnComponent;
|
|
4377
4609
|
}
|
|
4378
4610
|
const matches = urnComponent.path.match(URN_REG);
|
|
4379
|
-
if (matches) {
|
|
4611
|
+
if (matches && matches[0] === urnComponent.path) {
|
|
4380
4612
|
const scheme = options.scheme || urnComponent.scheme || "urn";
|
|
4381
4613
|
urnComponent.nid = matches[1].toLowerCase();
|
|
4382
4614
|
urnComponent.nss = matches[2];
|
|
@@ -4470,8 +4702,19 @@ var require_schemes = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4470
4702
|
};
|
|
4471
4703
|
}));
|
|
4472
4704
|
var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
4473
|
-
const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding,
|
|
4705
|
+
const { normalizeIPv6, removeDotSegments, recomposeAuthority, normalizePercentEncoding, normalizePathEncoding, serializePathEncoding, normalizeQueryFragmentEncoding, encodeQuery, encodeFragment, reescapeHostDelimiters, isIPv4, nonSimpleDomain } = require_utils();
|
|
4474
4706
|
const { SCHEMES, getSchemeHandler } = require_schemes();
|
|
4707
|
+
const VALID_SCHEME = /^[A-Za-z][A-Za-z0-9+.-]*$/u;
|
|
4708
|
+
const MALFORMED_SCHEME_ERROR = "URI scheme is malformed.";
|
|
4709
|
+
/**
|
|
4710
|
+
* @param {string} scheme
|
|
4711
|
+
* @returns {string}
|
|
4712
|
+
*/
|
|
4713
|
+
function decodeValidScheme(scheme) {
|
|
4714
|
+
const decodedScheme = unescape(String(scheme));
|
|
4715
|
+
if (!VALID_SCHEME.test(decodedScheme)) throw new TypeError(MALFORMED_SCHEME_ERROR);
|
|
4716
|
+
return decodedScheme;
|
|
4717
|
+
}
|
|
4475
4718
|
/**
|
|
4476
4719
|
* @template {import('./types/index').URIComponent|string} T
|
|
4477
4720
|
* @param {T} uri
|
|
@@ -4491,10 +4734,16 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4491
4734
|
*/
|
|
4492
4735
|
function resolve(baseURI, relativeURI, options) {
|
|
4493
4736
|
const schemelessOptions = options ? Object.assign({ scheme: "null" }, options) : { scheme: "null" };
|
|
4494
|
-
const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed } = parseWithStatus(baseURI, schemelessOptions);
|
|
4495
|
-
const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed } = parseWithStatus(relativeURI, schemelessOptions);
|
|
4496
|
-
if (baseMalformed || relativeMalformed) throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
|
|
4737
|
+
const { parsed: baseParsed, malformedAuthorityOrPort: baseMalformed, malformedPercentEncoding: baseMalformedPercentEncoding, malformedSchemeSpecific: baseMalformedSchemeSpecific, malformedHost: baseMalformedHost, malformedScheme: baseMalformedScheme } = parseWithStatus(baseURI, schemelessOptions);
|
|
4738
|
+
const { parsed: relativeParsed, malformedAuthorityOrPort: relativeMalformed, malformedPercentEncoding: relativeMalformedPercentEncoding, malformedSchemeSpecific: relativeMalformedSchemeSpecific, malformedHost: relativeMalformedHost, malformedScheme: relativeMalformedScheme } = parseWithStatus(relativeURI, schemelessOptions);
|
|
4739
|
+
if (baseMalformed || relativeMalformed || baseMalformedPercentEncoding || relativeMalformedPercentEncoding || baseMalformedSchemeSpecific || relativeMalformedSchemeSpecific || baseMalformedHost || relativeMalformedHost || baseMalformedScheme || relativeMalformedScheme) throw new Error(baseParsed.error || relativeParsed.error || "URI is malformed.");
|
|
4497
4740
|
const resolved = resolveComponent(baseParsed, relativeParsed, schemelessOptions, true);
|
|
4741
|
+
const resolvedSchemeHandler = getSchemeHandler(options && options.scheme || resolved.scheme);
|
|
4742
|
+
const resolvedHost = resolved.host;
|
|
4743
|
+
const resolvedHostIsIP = resolvedHost !== void 0 && resolvedHost !== "" && (isIPv4(resolvedHost) || normalizeIPv6(resolvedHost).isIPV6);
|
|
4744
|
+
canonicalizeHost(resolved, options || {}, resolvedSchemeHandler, resolvedHostIsIP);
|
|
4745
|
+
const encodedASCIIHost = resolvedHost && resolvedHost.indexOf("%") !== -1 && !/\P{ASCII}/u.test(resolvedHost);
|
|
4746
|
+
if (resolved.error && !encodedASCIIHost) throw new Error(resolved.error);
|
|
4498
4747
|
schemelessOptions.skipEscape = true;
|
|
4499
4748
|
return serialize(resolved, schemelessOptions);
|
|
4500
4749
|
}
|
|
@@ -4560,7 +4809,7 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4560
4809
|
function equal(uriA, uriB, options) {
|
|
4561
4810
|
const normalizedA = normalizeComparableURI(uriA, options);
|
|
4562
4811
|
const normalizedB = normalizeComparableURI(uriB, options);
|
|
4563
|
-
return normalizedA !== void 0 && normalizedB !== void 0 && normalizedA
|
|
4812
|
+
return normalizedA !== void 0 && normalizedB !== void 0 && normalizedA === normalizedB;
|
|
4564
4813
|
}
|
|
4565
4814
|
/**
|
|
4566
4815
|
* @param {Readonly<import('./types/index').URIComponent>} cmpts
|
|
@@ -4586,13 +4835,17 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4586
4835
|
};
|
|
4587
4836
|
const options = Object.assign({}, opts);
|
|
4588
4837
|
const uriTokens = [];
|
|
4838
|
+
if (component.scheme) component.scheme = decodeValidScheme(component.scheme);
|
|
4589
4839
|
const schemeHandler = getSchemeHandler(options.scheme || component.scheme);
|
|
4590
4840
|
if (schemeHandler && schemeHandler.serialize) schemeHandler.serialize(component, options);
|
|
4591
|
-
|
|
4592
|
-
|
|
4593
|
-
|
|
4594
|
-
|
|
4595
|
-
if (options.reference !== "suffix" && component.scheme)
|
|
4841
|
+
const hasAuthority = component.userinfo !== void 0 || component.host !== void 0 || component.port !== void 0;
|
|
4842
|
+
const pathNoScheme = !options.skipEscape && component.scheme === void 0 && !hasAuthority;
|
|
4843
|
+
if (component.path !== void 0) if (!options.skipEscape) component.path = serializePathEncoding(component.path, pathNoScheme);
|
|
4844
|
+
else component.path = normalizePercentEncoding(component.path);
|
|
4845
|
+
if (options.reference !== "suffix" && component.scheme) {
|
|
4846
|
+
component.scheme = decodeValidScheme(component.scheme);
|
|
4847
|
+
uriTokens.push(component.scheme, ":");
|
|
4848
|
+
}
|
|
4596
4849
|
const authority = recomposeAuthority(component);
|
|
4597
4850
|
if (authority !== void 0) {
|
|
4598
4851
|
if (options.reference !== "suffix") uriTokens.push("//");
|
|
@@ -4602,11 +4855,12 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4602
4855
|
if (component.path !== void 0) {
|
|
4603
4856
|
let s = component.path;
|
|
4604
4857
|
if (!options.absolutePath && (!schemeHandler || !schemeHandler.absolutePath)) s = removeDotSegments(s);
|
|
4858
|
+
if (pathNoScheme) s = serializePathEncoding(s, true);
|
|
4605
4859
|
if (authority === void 0 && s[0] === "/" && s[1] === "/") s = "/%2F" + s.slice(2);
|
|
4606
4860
|
uriTokens.push(s);
|
|
4607
4861
|
}
|
|
4608
|
-
if (component.query !== void 0) uriTokens.push("?", component.query);
|
|
4609
|
-
if (component.fragment !== void 0) uriTokens.push("#", component.fragment);
|
|
4862
|
+
if (component.query !== void 0) uriTokens.push("?", encodeQuery(component.query));
|
|
4863
|
+
if (component.fragment !== void 0) uriTokens.push("#", encodeFragment(component.fragment));
|
|
4610
4864
|
return uriTokens.join("");
|
|
4611
4865
|
}
|
|
4612
4866
|
const URI_PARSE = /^(?:([^#/:?]+):)?(?:\/\/((?:([^#/?@]*)@)?(\[[^#/?\]]+\]|[^#/:?]*)(?::(\d*))?))?([^#?]*)(?:\?([^#]*))?(?:#((?:.|[\n\r])*))?/u;
|
|
@@ -4622,9 +4876,61 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4622
4876
|
if (typeof parsed.port === "number" && (parsed.port < 0 || parsed.port > 65535)) return "URI port is malformed.";
|
|
4623
4877
|
}
|
|
4624
4878
|
/**
|
|
4879
|
+
* Checks percent syntax without decoding the represented octets. RFC 3986
|
|
4880
|
+
* percent-encoding is byte-oriented, so sequences such as `%FF` are valid even
|
|
4881
|
+
* though they are not independently valid UTF-8.
|
|
4882
|
+
*
|
|
4883
|
+
* @param {string|undefined} component
|
|
4884
|
+
* @returns {boolean}
|
|
4885
|
+
*/
|
|
4886
|
+
function hasMalformedPercentEncoding(component) {
|
|
4887
|
+
if (component === void 0) return false;
|
|
4888
|
+
let percent = component.indexOf("%");
|
|
4889
|
+
while (percent !== -1) {
|
|
4890
|
+
if (percent + 2 >= component.length || !/^[\da-f]{2}$/iu.test(component.slice(percent + 1, percent + 3))) return true;
|
|
4891
|
+
percent = component.indexOf("%", percent + 3);
|
|
4892
|
+
}
|
|
4893
|
+
return false;
|
|
4894
|
+
}
|
|
4895
|
+
/**
|
|
4896
|
+
* Whether the host is a bracketed IP literal (RFC 3986 `IP-literal`).
|
|
4897
|
+
* An unterminated `[` is not a literal, so it must still be validated as a
|
|
4898
|
+
* reg-name instead of being waved through as an IP.
|
|
4899
|
+
*
|
|
4900
|
+
* @param {string} host
|
|
4901
|
+
* @returns {boolean}
|
|
4902
|
+
*/
|
|
4903
|
+
function isIPLiteral(host) {
|
|
4904
|
+
return host[0] === "[" && host[host.length - 1] === "]";
|
|
4905
|
+
}
|
|
4906
|
+
/**
|
|
4907
|
+
* @param {RegExpMatchArray} matches
|
|
4908
|
+
* @returns {boolean}
|
|
4909
|
+
*/
|
|
4910
|
+
function hasMalformedComponentPercentEncoding(matches) {
|
|
4911
|
+
const host = matches[4];
|
|
4912
|
+
return hasMalformedPercentEncoding(matches[3]) || host !== void 0 && !isIPLiteral(host) && hasMalformedPercentEncoding(host) || hasMalformedPercentEncoding(matches[6]) || hasMalformedPercentEncoding(matches[7]) || hasMalformedPercentEncoding(matches[8]);
|
|
4913
|
+
}
|
|
4914
|
+
/**
|
|
4915
|
+
* @param {import('./types/index').URIComponent} parsed
|
|
4916
|
+
* @param {import('./types/index').Options} options
|
|
4917
|
+
* @param {{ domainHost?: boolean, unicodeSupport?: boolean }|undefined} schemeHandler
|
|
4918
|
+
* @param {boolean} isIP
|
|
4919
|
+
* @returns {boolean} whether host conversion failed
|
|
4920
|
+
*/
|
|
4921
|
+
function canonicalizeHost(parsed, options, schemeHandler, isIP) {
|
|
4922
|
+
if (!options.unicodeSupport && (!schemeHandler || !schemeHandler.unicodeSupport) && parsed.host && !isIPLiteral(parsed.host) && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) try {
|
|
4923
|
+
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
4924
|
+
} catch (e) {
|
|
4925
|
+
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
4926
|
+
return true;
|
|
4927
|
+
}
|
|
4928
|
+
return false;
|
|
4929
|
+
}
|
|
4930
|
+
/**
|
|
4625
4931
|
* @param {string} uri
|
|
4626
4932
|
* @param {import('./types/index').Options} [opts]
|
|
4627
|
-
* @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean }}
|
|
4933
|
+
* @returns {{ parsed: import('./types/index').URIComponent, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}
|
|
4628
4934
|
*/
|
|
4629
4935
|
function parseWithStatus(uri, opts) {
|
|
4630
4936
|
const options = Object.assign({}, opts);
|
|
@@ -4639,6 +4945,11 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4639
4945
|
fragment: void 0
|
|
4640
4946
|
};
|
|
4641
4947
|
let malformedAuthorityOrPort = false;
|
|
4948
|
+
let malformedPercentEncoding = false;
|
|
4949
|
+
let malformedSchemeSpecific = false;
|
|
4950
|
+
let malformedHost = false;
|
|
4951
|
+
let malformedIPLiteral = false;
|
|
4952
|
+
let malformedScheme = false;
|
|
4642
4953
|
let isIP = false;
|
|
4643
4954
|
if (options.reference === "suffix") if (options.scheme) uri = options.scheme + ":" + uri;
|
|
4644
4955
|
else uri = "//" + uri;
|
|
@@ -4670,6 +4981,16 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4670
4981
|
parsed.path = matches[6] || "";
|
|
4671
4982
|
parsed.query = matches[7];
|
|
4672
4983
|
parsed.fragment = matches[8];
|
|
4984
|
+
if (parsed.scheme !== void 0) {
|
|
4985
|
+
const decodedScheme = unescape(parsed.scheme);
|
|
4986
|
+
if (VALID_SCHEME.test(decodedScheme)) parsed.scheme = decodedScheme.toLowerCase();
|
|
4987
|
+
else {
|
|
4988
|
+
parsed.error = parsed.error || MALFORMED_SCHEME_ERROR;
|
|
4989
|
+
malformedScheme = true;
|
|
4990
|
+
}
|
|
4991
|
+
}
|
|
4992
|
+
malformedPercentEncoding = hasMalformedComponentPercentEncoding(matches);
|
|
4993
|
+
if (malformedPercentEncoding) parsed.error = parsed.error || "URI contains malformed percent-encoding.";
|
|
4673
4994
|
if (isNaN(parsed.port)) parsed.port = matches[5];
|
|
4674
4995
|
const parseError = getParseError(parsed, matches);
|
|
4675
4996
|
if (parseError !== void 0) {
|
|
@@ -4677,9 +4998,16 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4677
4998
|
malformedAuthorityOrPort = true;
|
|
4678
4999
|
}
|
|
4679
5000
|
if (parsed.host) if (isIPv4(parsed.host) === false) {
|
|
5001
|
+
const bracketedIPLiteral = isIPLiteral(parsed.host);
|
|
5002
|
+
const hasIPLiteralBracket = parsed.host.indexOf("[") !== -1 || parsed.host.indexOf("]") !== -1;
|
|
4680
5003
|
const ipv6result = normalizeIPv6(parsed.host);
|
|
4681
|
-
|
|
4682
|
-
|
|
5004
|
+
isIP = ipv6result.isIPV6 || ipv6result.isIPVFuture === true;
|
|
5005
|
+
malformedIPLiteral = hasIPLiteralBracket && (!bracketedIPLiteral || ipv6result.error === true);
|
|
5006
|
+
parsed.host = isIP ? ipv6result.host : ipv6result.host.toLowerCase();
|
|
5007
|
+
if (malformedIPLiteral) {
|
|
5008
|
+
parsed.error = parsed.error || "URI host is malformed.";
|
|
5009
|
+
malformedAuthorityOrPort = true;
|
|
5010
|
+
}
|
|
4683
5011
|
} else isIP = true;
|
|
4684
5012
|
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";
|
|
4685
5013
|
else if (parsed.scheme === void 0) parsed.reference = "relative";
|
|
@@ -4687,30 +5015,30 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4687
5015
|
else parsed.reference = "uri";
|
|
4688
5016
|
if (options.reference && options.reference !== "suffix" && options.reference !== parsed.reference) parsed.error = parsed.error || "URI is not a " + options.reference + " reference.";
|
|
4689
5017
|
const schemeHandler = getSchemeHandler(options.scheme || parsed.scheme);
|
|
4690
|
-
if (!
|
|
4691
|
-
if (parsed.host && (options.domainHost || schemeHandler && schemeHandler.domainHost) && isIP === false && nonSimpleDomain(parsed.host)) try {
|
|
4692
|
-
parsed.host = new URL("http://" + parsed.host).hostname;
|
|
4693
|
-
} catch (e) {
|
|
4694
|
-
parsed.error = parsed.error || "Host's domain name can not be converted to ASCII: " + e;
|
|
4695
|
-
}
|
|
4696
|
-
}
|
|
5018
|
+
if (!malformedIPLiteral) malformedHost = canonicalizeHost(parsed, options, schemeHandler, isIP);
|
|
4697
5019
|
if (!schemeHandler || schemeHandler && !schemeHandler.skipNormalize) {
|
|
4698
5020
|
if (uri.indexOf("%") !== -1) {
|
|
4699
|
-
if (parsed.
|
|
4700
|
-
|
|
5021
|
+
if (parsed.host !== void 0 && !malformedIPLiteral) {
|
|
5022
|
+
const host = isIP ? parsed.host : normalizePercentEncoding(parsed.host, true);
|
|
5023
|
+
parsed.host = reescapeHostDelimiters(host, isIP);
|
|
5024
|
+
}
|
|
4701
5025
|
}
|
|
4702
5026
|
if (parsed.path) parsed.path = normalizePathEncoding(parsed.path);
|
|
4703
|
-
if (parsed.
|
|
4704
|
-
|
|
4705
|
-
|
|
4706
|
-
|
|
4707
|
-
|
|
5027
|
+
if (parsed.query) parsed.query = normalizeQueryFragmentEncoding(parsed.query);
|
|
5028
|
+
if (parsed.fragment) parsed.fragment = normalizeQueryFragmentEncoding(parsed.fragment);
|
|
5029
|
+
}
|
|
5030
|
+
if (schemeHandler && schemeHandler.parse) {
|
|
5031
|
+
schemeHandler.parse(parsed, options);
|
|
5032
|
+
if (schemeHandler === SCHEMES.urn && parsed.nid === void 0) malformedSchemeSpecific = true;
|
|
4708
5033
|
}
|
|
4709
|
-
if (schemeHandler && schemeHandler.parse) schemeHandler.parse(parsed, options);
|
|
4710
5034
|
} else parsed.error = parsed.error || "URI can not be parsed.";
|
|
4711
5035
|
return {
|
|
4712
5036
|
parsed,
|
|
4713
|
-
malformedAuthorityOrPort
|
|
5037
|
+
malformedAuthorityOrPort,
|
|
5038
|
+
malformedPercentEncoding,
|
|
5039
|
+
malformedSchemeSpecific,
|
|
5040
|
+
malformedHost,
|
|
5041
|
+
malformedScheme
|
|
4714
5042
|
};
|
|
4715
5043
|
}
|
|
4716
5044
|
/**
|
|
@@ -4732,13 +5060,17 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4732
5060
|
/**
|
|
4733
5061
|
* @param {string} uri
|
|
4734
5062
|
* @param {import('./types/index').Options} [opts]
|
|
4735
|
-
* @returns {{ normalized: string, malformedAuthorityOrPort: boolean }}
|
|
5063
|
+
* @returns {{ normalized: string, malformedAuthorityOrPort: boolean, malformedPercentEncoding: boolean, malformedSchemeSpecific: boolean, malformedHost: boolean, malformedScheme: boolean }}
|
|
4736
5064
|
*/
|
|
4737
5065
|
function normalizeStringWithStatus(uri, opts) {
|
|
4738
|
-
const { parsed, malformedAuthorityOrPort } = parseWithStatus(uri, opts);
|
|
5066
|
+
const { parsed, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = parseWithStatus(uri, opts);
|
|
4739
5067
|
return {
|
|
4740
|
-
normalized: malformedAuthorityOrPort ? uri : serialize(parsed, opts),
|
|
4741
|
-
malformedAuthorityOrPort
|
|
5068
|
+
normalized: malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? uri : serialize(parsed, opts),
|
|
5069
|
+
malformedAuthorityOrPort,
|
|
5070
|
+
malformedPercentEncoding,
|
|
5071
|
+
malformedSchemeSpecific,
|
|
5072
|
+
malformedHost,
|
|
5073
|
+
malformedScheme
|
|
4742
5074
|
};
|
|
4743
5075
|
}
|
|
4744
5076
|
/**
|
|
@@ -4747,11 +5079,15 @@ var require_fast_uri = /* @__PURE__ */ __commonJSMin(((exports, module) => {
|
|
|
4747
5079
|
* @returns {string|undefined}
|
|
4748
5080
|
*/
|
|
4749
5081
|
function normalizeComparableURI(uri, opts) {
|
|
4750
|
-
if (typeof uri
|
|
4751
|
-
|
|
4752
|
-
|
|
5082
|
+
if (typeof uri !== "string" && typeof uri !== "object") return;
|
|
5083
|
+
let value;
|
|
5084
|
+
try {
|
|
5085
|
+
value = typeof uri === "string" ? uri : serialize(uri, opts);
|
|
5086
|
+
} catch {
|
|
5087
|
+
return;
|
|
4753
5088
|
}
|
|
4754
|
-
|
|
5089
|
+
const { normalized, malformedAuthorityOrPort, malformedPercentEncoding, malformedSchemeSpecific, malformedHost, malformedScheme } = normalizeStringWithStatus(value, opts);
|
|
5090
|
+
return malformedAuthorityOrPort || malformedPercentEncoding || malformedSchemeSpecific || malformedHost || malformedScheme ? void 0 : normalized;
|
|
4755
5091
|
}
|
|
4756
5092
|
const fastUri = {
|
|
4757
5093
|
SCHEMES,
|
|
@@ -8026,7 +8362,7 @@ function toStandardSchema$2(zodSchema) {
|
|
|
8026
8362
|
return wrapper;
|
|
8027
8363
|
}
|
|
8028
8364
|
//#endregion
|
|
8029
|
-
//#region ../schema-compat/dist/schema-
|
|
8365
|
+
//#region ../schema-compat/dist/schema-D_ikovK6.js
|
|
8030
8366
|
/**
|
|
8031
8367
|
* Supported JSON Schema targets for z.toJSONSchema().
|
|
8032
8368
|
* Works with both real Zod v4 and Zod 3.25's v4 compat layer.
|
|
@@ -8275,4 +8611,4 @@ function standardSchemaToJSONSchema(schema, options = {}) {
|
|
|
8275
8611
|
//#endregion
|
|
8276
8612
|
export { require_json_schema_traverse as a, __toESM as i, standardSchemaToJSONSchema as n, toStandardSchema as r, isStandardSchemaWithJSON as t };
|
|
8277
8613
|
|
|
8278
|
-
//# sourceMappingURL=schema-
|
|
8614
|
+
//# sourceMappingURL=schema-D_ikovK6-BzTeMhWf.js.map
|