"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); 0 && (module.exports = { extractPathFromFlightRouterState: null, computeChangedPath: null }); function _export(target, all) { for(var name in all)Object.defineProperty(target, name, { enumerable: true, get: all[name] }); } _export(exports, { extractPathFromFlightRouterState: function() { return extractPathFromFlightRouterState; }, computeChangedPath: function() { return computeChangedPath; } }); const _interceptionroutes = require("../../../server/future/helpers/interception-routes"); const _segment = require("../../../shared/lib/segment"); const _matchsegments = require("../match-segments"); const removeLeadingSlash = (segment)=>{ return segment[0] === "/" ? segment.slice(1) : segment; }; const segmentToPathname = (segment)=>{ if (typeof segment === "string") { return segment; } return segment[1]; }; function normalizeSegments(segments) { return segments.reduce((acc, segment)=>{ segment = removeLeadingSlash(segment); if (segment === "" || (0, _segment.isGroupSegment)(segment)) { return acc; } return acc + "/" + segment; }, "") || "/"; } function extractPathFromFlightRouterState(flightRouterState) { const segment = Array.isArray(flightRouterState[0]) ? flightRouterState[0][1] : flightRouterState[0]; if (segment === "__DEFAULT__" || _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m))) return undefined; if (segment.startsWith("__PAGE__")) return ""; const segments = [ segment ]; var _flightRouterState_; const parallelRoutes = (_flightRouterState_ = flightRouterState[1]) != null ? _flightRouterState_ : {}; const childrenPath = parallelRoutes.children ? extractPathFromFlightRouterState(parallelRoutes.children) : undefined; if (childrenPath !== undefined) { segments.push(childrenPath); } else { for (const [key, value] of Object.entries(parallelRoutes)){ if (key === "children") continue; const childPath = extractPathFromFlightRouterState(value); if (childPath !== undefined) { segments.push(childPath); } } } return normalizeSegments(segments); } function computeChangedPathImpl(treeA, treeB) { const [segmentA, parallelRoutesA] = treeA; const [segmentB, parallelRoutesB] = treeB; const normalizedSegmentA = segmentToPathname(segmentA); const normalizedSegmentB = segmentToPathname(segmentB); if (_interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>normalizedSegmentA.startsWith(m) || normalizedSegmentB.startsWith(m))) { return ""; } if (!(0, _matchsegments.matchSegment)(segmentA, segmentB)) { var _extractPathFromFlightRouterState; // once we find where the tree changed, we compute the rest of the path by traversing the tree return (_extractPathFromFlightRouterState = extractPathFromFlightRouterState(treeB)) != null ? _extractPathFromFlightRouterState : ""; } for(const parallelRouterKey in parallelRoutesA){ if (parallelRoutesB[parallelRouterKey]) { const changedPath = computeChangedPathImpl(parallelRoutesA[parallelRouterKey], parallelRoutesB[parallelRouterKey]); if (changedPath !== null) { return segmentToPathname(segmentB) + "/" + changedPath; } } } return null; } function computeChangedPath(treeA, treeB) { const changedPath = computeChangedPathImpl(treeA, treeB); if (changedPath == null || changedPath === "/") { return changedPath; } // lightweight normalization to remove route groups return normalizeSegments(changedPath.split("/")); } if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { Object.defineProperty(exports.default, '__esModule', { value: true }); Object.assign(exports.default, exports); module.exports = exports.default; } //# sourceMappingURL=compute-changed-path.js.map