repoweaver
Version:
A GitHub App that skillfully weaves multiple templates together to create and update repositories with intelligent merge strategies
1 lines • 37.6 kB
JSON
{"ast":null,"code":"\"use strict\";\n\nimport _asyncToGenerator from \"@babel/runtime/helpers/asyncToGenerator\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport { findFocusedRoute, getActionFromState as getActionFromStateDefault, getPathFromState as getPathFromStateDefault, getStateFromPath as getStateFromPathDefault, useNavigationIndependentTree } from '@react-navigation/core';\nimport isEqual from 'fast-deep-equal';\nimport * as React from 'react';\nimport { createMemoryHistory } from \"./createMemoryHistory.js\";\nimport { ServerContext } from \"./ServerContext.js\";\nvar _findMatchingState = function findMatchingState(a, b) {\n if (a === undefined || b === undefined || a.key !== b.key) {\n return [undefined, undefined];\n }\n var aHistoryLength = a.history ? a.history.length : a.routes.length;\n var bHistoryLength = b.history ? b.history.length : b.routes.length;\n var aRoute = a.routes[a.index];\n var bRoute = b.routes[b.index];\n var aChildState = aRoute.state;\n var bChildState = bRoute.state;\n if (aHistoryLength !== bHistoryLength || aRoute.key !== bRoute.key || aChildState === undefined || bChildState === undefined || aChildState.key !== bChildState.key) {\n return [a, b];\n }\n return _findMatchingState(aChildState, bChildState);\n};\nexport var series = function series(cb) {\n var queue = Promise.resolve();\n var callback = function callback() {\n queue = queue.then(cb);\n };\n return callback;\n};\nvar linkingHandlers = [];\nexport function useLinking(ref, _ref, onUnhandledLinking) {\n var _ref$enabled = _ref.enabled,\n enabled = _ref$enabled === void 0 ? true : _ref$enabled,\n config = _ref.config,\n _ref$getStateFromPath = _ref.getStateFromPath,\n getStateFromPath = _ref$getStateFromPath === void 0 ? getStateFromPathDefault : _ref$getStateFromPath,\n _ref$getPathFromState = _ref.getPathFromState,\n getPathFromState = _ref$getPathFromState === void 0 ? getPathFromStateDefault : _ref$getPathFromState,\n _ref$getActionFromSta = _ref.getActionFromState,\n getActionFromState = _ref$getActionFromSta === void 0 ? getActionFromStateDefault : _ref$getActionFromSta;\n var independent = useNavigationIndependentTree();\n React.useEffect(function () {\n if (process.env.NODE_ENV === 'production') {\n return undefined;\n }\n if (independent) {\n return undefined;\n }\n if (enabled !== false && linkingHandlers.length) {\n console.error(['Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:', \"- You don't have multiple NavigationContainers in the app each with 'linking' enabled\", '- Only a single instance of the root component is rendered'].join('\\n').trim());\n }\n var handler = Symbol();\n if (enabled !== false) {\n linkingHandlers.push(handler);\n }\n return function () {\n var index = linkingHandlers.indexOf(handler);\n if (index > -1) {\n linkingHandlers.splice(index, 1);\n }\n };\n }, [enabled, independent]);\n var _React$useState = React.useState(createMemoryHistory),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n history = _React$useState2[0];\n var enabledRef = React.useRef(enabled);\n var configRef = React.useRef(config);\n var getStateFromPathRef = React.useRef(getStateFromPath);\n var getPathFromStateRef = React.useRef(getPathFromState);\n var getActionFromStateRef = React.useRef(getActionFromState);\n React.useEffect(function () {\n enabledRef.current = enabled;\n configRef.current = config;\n getStateFromPathRef.current = getStateFromPath;\n getPathFromStateRef.current = getPathFromState;\n getActionFromStateRef.current = getActionFromState;\n });\n var validateRoutesNotExistInRootState = React.useCallback(function (state) {\n var navigation = ref.current;\n var rootState = navigation == null ? void 0 : navigation.getRootState();\n return state == null ? void 0 : state.routes.some(function (r) {\n return !(rootState != null && rootState.routeNames.includes(r.name));\n });\n }, [ref]);\n var server = React.useContext(ServerContext);\n var getInitialState = React.useCallback(function () {\n var value;\n if (enabledRef.current) {\n var _server$location;\n var _location = (_server$location = server == null ? void 0 : server.location) != null ? _server$location : typeof window !== 'undefined' ? window.location : undefined;\n var path = _location ? _location.pathname + _location.search : undefined;\n if (path) {\n value = getStateFromPathRef.current(path, configRef.current);\n }\n onUnhandledLinking(path);\n }\n var thenable = {\n then: function then(onfulfilled) {\n return Promise.resolve(onfulfilled ? onfulfilled(value) : value);\n },\n catch: function _catch() {\n return thenable;\n }\n };\n return thenable;\n }, []);\n var previousIndexRef = React.useRef(undefined);\n var previousStateRef = React.useRef(undefined);\n var pendingPopStatePathRef = React.useRef(undefined);\n React.useEffect(function () {\n previousIndexRef.current = history.index;\n return history.listen(function () {\n var _previousIndexRef$cur;\n var navigation = ref.current;\n if (!navigation || !enabled) {\n return;\n }\n var _window = window,\n location = _window.location;\n var path = location.pathname + location.search;\n var index = history.index;\n var previousIndex = (_previousIndexRef$cur = previousIndexRef.current) != null ? _previousIndexRef$cur : 0;\n previousIndexRef.current = index;\n pendingPopStatePathRef.current = path;\n var record = history.get(index);\n if ((record == null ? void 0 : record.path) === path && record != null && record.state) {\n navigation.resetRoot(record.state);\n return;\n }\n var state = getStateFromPathRef.current(path, configRef.current);\n if (state) {\n onUnhandledLinking(path);\n if (validateRoutesNotExistInRootState(state)) {\n return;\n }\n if (index > previousIndex) {\n var action = getActionFromStateRef.current(state, configRef.current);\n if (action !== undefined) {\n try {\n navigation.dispatch(action);\n } catch (e) {\n console.warn(`An error occurred when trying to handle the link '${path}': ${typeof e === 'object' && e != null && 'message' in e ? e.message : e}`);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n navigation.resetRoot(state);\n }\n });\n }, [enabled, history, onUnhandledLinking, ref, validateRoutesNotExistInRootState]);\n React.useEffect(function () {\n var _ref$current;\n if (!enabled) {\n return;\n }\n var getPathForRoute = function getPathForRoute(route, state) {\n var path;\n if (route != null && route.path) {\n var stateForPath = getStateFromPathRef.current(route.path, configRef.current);\n if (stateForPath) {\n var focusedRoute = findFocusedRoute(stateForPath);\n if (focusedRoute && focusedRoute.name === route.name && isEqual(focusedRoute.params, route.params)) {\n path = route.path;\n }\n }\n }\n if (path == null) {\n path = getPathFromStateRef.current(state, configRef.current);\n }\n var previousRoute = previousStateRef.current ? findFocusedRoute(previousStateRef.current) : undefined;\n if (previousRoute && route && 'key' in previousRoute && 'key' in route && previousRoute.key === route.key) {\n path = path + location.hash;\n }\n return path;\n };\n if (ref.current) {\n var state = ref.current.getRootState();\n if (state) {\n var route = findFocusedRoute(state);\n var path = getPathForRoute(route, state);\n if (previousStateRef.current === undefined) {\n previousStateRef.current = state;\n }\n history.replace({\n path: path,\n state: state\n });\n }\n }\n var onStateChange = function () {\n var _ref2 = _asyncToGenerator(function* () {\n var navigation = ref.current;\n if (!navigation || !enabled) {\n return;\n }\n var previousState = previousStateRef.current;\n var state = navigation.getRootState();\n if (!state) {\n return;\n }\n var pendingPath = pendingPopStatePathRef.current;\n var route = findFocusedRoute(state);\n var path = getPathForRoute(route, state);\n previousStateRef.current = state;\n pendingPopStatePathRef.current = undefined;\n var _findMatchingState2 = _findMatchingState(previousState, state),\n _findMatchingState3 = _slicedToArray(_findMatchingState2, 2),\n previousFocusedState = _findMatchingState3[0],\n focusedState = _findMatchingState3[1];\n if (previousFocusedState && focusedState && path !== pendingPath) {\n var historyDelta = (focusedState.history ? focusedState.history.length : focusedState.routes.length) - (previousFocusedState.history ? previousFocusedState.history.length : previousFocusedState.routes.length);\n if (historyDelta > 0) {\n history.push({\n path: path,\n state: state\n });\n } else if (historyDelta < 0) {\n var nextIndex = history.backIndex({\n path: path\n });\n var currentIndex = history.index;\n try {\n if (nextIndex !== -1 && nextIndex < currentIndex && history.get(nextIndex)) {\n yield history.go(nextIndex - currentIndex);\n } else {\n yield history.go(historyDelta);\n }\n history.replace({\n path: path,\n state: state\n });\n } catch (e) {}\n } else {\n history.replace({\n path: path,\n state: state\n });\n }\n } else {\n history.replace({\n path: path,\n state: state\n });\n }\n });\n return function onStateChange() {\n return _ref2.apply(this, arguments);\n };\n }();\n return (_ref$current = ref.current) == null ? void 0 : _ref$current.addListener('state', series(onStateChange));\n }, [enabled, history, ref]);\n return {\n getInitialState: getInitialState\n };\n}","map":{"version":3,"names":["findFocusedRoute","getActionFromState","getActionFromStateDefault","getPathFromState","getPathFromStateDefault","getStateFromPath","getStateFromPathDefault","useNavigationIndependentTree","isEqual","React","createMemoryHistory","ServerContext","findMatchingState","a","b","undefined","key","aHistoryLength","history","length","routes","bHistoryLength","aRoute","index","bRoute","aChildState","state","bChildState","series","cb","queue","Promise","resolve","callback","then","linkingHandlers","useLinking","ref","_ref","onUnhandledLinking","_ref$enabled","enabled","config","_ref$getStateFromPath","_ref$getPathFromState","_ref$getActionFromSta","independent","useEffect","process","env","NODE_ENV","console","error","join","trim","handler","Symbol","push","indexOf","splice","_React$useState","useState","_React$useState2","_slicedToArray","enabledRef","useRef","configRef","getStateFromPathRef","getPathFromStateRef","getActionFromStateRef","current","validateRoutesNotExistInRootState","useCallback","navigation","rootState","getRootState","some","r","routeNames","includes","name","server","useContext","getInitialState","value","_server$location","location","window","path","pathname","search","thenable","onfulfilled","catch","previousIndexRef","previousStateRef","pendingPopStatePathRef","listen","_previousIndexRef$cur","_window","previousIndex","record","get","resetRoot","action","dispatch","e","warn","message","_ref$current","getPathForRoute","route","stateForPath","focusedRoute","params","previousRoute","hash","replace","onStateChange","_ref2","_asyncToGenerator","previousState","pendingPath","_findMatchingState2","_findMatchingState3","previousFocusedState","focusedState","historyDelta","nextIndex","backIndex","currentIndex","go","apply","arguments","addListener"],"sources":["/Users/pmouli/Documents/GitHub.nosync/boots-strapper/mobile/node_modules/@react-navigation/native/src/useLinking.tsx"],"sourcesContent":["import {\n findFocusedRoute,\n getActionFromState as getActionFromStateDefault,\n getPathFromState as getPathFromStateDefault,\n getStateFromPath as getStateFromPathDefault,\n type NavigationContainerRef,\n type NavigationState,\n type ParamListBase,\n useNavigationIndependentTree,\n} from '@react-navigation/core';\nimport isEqual from 'fast-deep-equal';\nimport * as React from 'react';\n\nimport { createMemoryHistory } from './createMemoryHistory';\nimport { ServerContext } from './ServerContext';\nimport type { LinkingOptions } from './types';\n\ntype ResultState = ReturnType<typeof getStateFromPathDefault>;\n\n/**\n * Find the matching navigation state that changed between 2 navigation states\n * e.g.: a -> b -> c -> d and a -> b -> c -> e -> f, if history in b changed, b is the matching state\n */\nconst findMatchingState = <T extends NavigationState>(\n a: T | undefined,\n b: T | undefined\n): [T | undefined, T | undefined] => {\n if (a === undefined || b === undefined || a.key !== b.key) {\n return [undefined, undefined];\n }\n\n // Tab and drawer will have `history` property, but stack will have history in `routes`\n const aHistoryLength = a.history ? a.history.length : a.routes.length;\n const bHistoryLength = b.history ? b.history.length : b.routes.length;\n\n const aRoute = a.routes[a.index];\n const bRoute = b.routes[b.index];\n\n const aChildState = aRoute.state as T | undefined;\n const bChildState = bRoute.state as T | undefined;\n\n // Stop here if this is the state object that changed:\n // - history length is different\n // - focused routes are different\n // - one of them doesn't have child state\n // - child state keys are different\n if (\n aHistoryLength !== bHistoryLength ||\n aRoute.key !== bRoute.key ||\n aChildState === undefined ||\n bChildState === undefined ||\n aChildState.key !== bChildState.key\n ) {\n return [a, b];\n }\n\n return findMatchingState(aChildState, bChildState);\n};\n\n/**\n * Run async function in series as it's called.\n */\nexport const series = (cb: () => Promise<void>) => {\n let queue = Promise.resolve();\n const callback = () => {\n // eslint-disable-next-line promise/no-callback-in-promise\n queue = queue.then(cb);\n };\n return callback;\n};\n\nconst linkingHandlers: symbol[] = [];\n\ntype Options = LinkingOptions<ParamListBase>;\n\nexport function useLinking(\n ref: React.RefObject<NavigationContainerRef<ParamListBase> | null>,\n {\n enabled = true,\n config,\n getStateFromPath = getStateFromPathDefault,\n getPathFromState = getPathFromStateDefault,\n getActionFromState = getActionFromStateDefault,\n }: Options,\n onUnhandledLinking: (lastUnhandledLining: string | undefined) => void\n) {\n const independent = useNavigationIndependentTree();\n\n React.useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return undefined;\n }\n\n if (independent) {\n return undefined;\n }\n\n if (enabled !== false && linkingHandlers.length) {\n console.error(\n [\n 'Looks like you have configured linking in multiple places. This is likely an error since deep links should only be handled in one place to avoid conflicts. Make sure that:',\n \"- You don't have multiple NavigationContainers in the app each with 'linking' enabled\",\n '- Only a single instance of the root component is rendered',\n ]\n .join('\\n')\n .trim()\n );\n }\n\n const handler = Symbol();\n\n if (enabled !== false) {\n linkingHandlers.push(handler);\n }\n\n return () => {\n const index = linkingHandlers.indexOf(handler);\n\n if (index > -1) {\n linkingHandlers.splice(index, 1);\n }\n };\n }, [enabled, independent]);\n\n const [history] = React.useState(createMemoryHistory);\n\n // We store these options in ref to avoid re-creating getInitialState and re-subscribing listeners\n // This lets user avoid wrapping the items in `React.useCallback` or `React.useMemo`\n // Not re-creating `getInitialState` is important coz it makes it easier for the user to use in an effect\n const enabledRef = React.useRef(enabled);\n const configRef = React.useRef(config);\n const getStateFromPathRef = React.useRef(getStateFromPath);\n const getPathFromStateRef = React.useRef(getPathFromState);\n const getActionFromStateRef = React.useRef(getActionFromState);\n\n React.useEffect(() => {\n enabledRef.current = enabled;\n configRef.current = config;\n getStateFromPathRef.current = getStateFromPath;\n getPathFromStateRef.current = getPathFromState;\n getActionFromStateRef.current = getActionFromState;\n });\n\n const validateRoutesNotExistInRootState = React.useCallback(\n (state: ResultState) => {\n const navigation = ref.current;\n const rootState = navigation?.getRootState();\n // Make sure that the routes in the state exist in the root navigator\n // Otherwise there's an error in the linking configuration\n return state?.routes.some((r) => !rootState?.routeNames.includes(r.name));\n },\n [ref]\n );\n\n const server = React.useContext(ServerContext);\n\n const getInitialState = React.useCallback(() => {\n let value: ResultState | undefined;\n\n if (enabledRef.current) {\n const location =\n server?.location ??\n (typeof window !== 'undefined' ? window.location : undefined);\n\n const path = location ? location.pathname + location.search : undefined;\n\n if (path) {\n value = getStateFromPathRef.current(path, configRef.current);\n }\n\n // If the link were handled, it gets cleared in NavigationContainer\n onUnhandledLinking(path);\n }\n\n const thenable = {\n then(onfulfilled?: (state: ResultState | undefined) => void) {\n return Promise.resolve(onfulfilled ? onfulfilled(value) : value);\n },\n catch() {\n return thenable;\n },\n };\n\n return thenable as PromiseLike<ResultState | undefined>;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const previousIndexRef = React.useRef<number | undefined>(undefined);\n const previousStateRef = React.useRef<NavigationState | undefined>(undefined);\n const pendingPopStatePathRef = React.useRef<string | undefined>(undefined);\n\n React.useEffect(() => {\n previousIndexRef.current = history.index;\n\n return history.listen(() => {\n const navigation = ref.current;\n\n if (!navigation || !enabled) {\n return;\n }\n\n const { location } = window;\n\n const path = location.pathname + location.search;\n const index = history.index;\n\n const previousIndex = previousIndexRef.current ?? 0;\n\n previousIndexRef.current = index;\n pendingPopStatePathRef.current = path;\n\n // When browser back/forward is clicked, we first need to check if state object for this index exists\n // If it does we'll reset to that state object\n // Otherwise, we'll handle it like a regular deep link\n const record = history.get(index);\n\n if (record?.path === path && record?.state) {\n navigation.resetRoot(record.state);\n return;\n }\n\n const state = getStateFromPathRef.current(path, configRef.current);\n\n // We should only dispatch an action when going forward\n // Otherwise the action will likely add items to history, which would mess things up\n if (state) {\n // If the link were handled, it gets cleared in NavigationContainer\n onUnhandledLinking(path);\n // Make sure that the routes in the state exist in the root navigator\n // Otherwise there's an error in the linking configuration\n if (validateRoutesNotExistInRootState(state)) {\n return;\n }\n\n if (index > previousIndex) {\n const action = getActionFromStateRef.current(\n state,\n configRef.current\n );\n\n if (action !== undefined) {\n try {\n navigation.dispatch(action);\n } catch (e) {\n // Ignore any errors from deep linking.\n // This could happen in case of malformed links, navigation object not being initialized etc.\n console.warn(\n `An error occurred when trying to handle the link '${path}': ${\n typeof e === 'object' && e != null && 'message' in e\n ? e.message\n : e\n }`\n );\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n navigation.resetRoot(state);\n }\n } else {\n // if current path didn't return any state, we should revert to initial state\n navigation.resetRoot(state);\n }\n });\n }, [\n enabled,\n history,\n onUnhandledLinking,\n ref,\n validateRoutesNotExistInRootState,\n ]);\n\n React.useEffect(() => {\n if (!enabled) {\n return;\n }\n\n const getPathForRoute = (\n route: ReturnType<typeof findFocusedRoute>,\n state: NavigationState\n ): string => {\n let path;\n\n // If the `route` object contains a `path`, use that path as long as `route.name` and `params` still match\n // This makes sure that we preserve the original URL for wildcard routes\n if (route?.path) {\n const stateForPath = getStateFromPathRef.current(\n route.path,\n configRef.current\n );\n\n if (stateForPath) {\n const focusedRoute = findFocusedRoute(stateForPath);\n\n if (\n focusedRoute &&\n focusedRoute.name === route.name &&\n isEqual(focusedRoute.params, route.params)\n ) {\n path = route.path;\n }\n }\n }\n\n if (path == null) {\n path = getPathFromStateRef.current(state, configRef.current);\n }\n\n const previousRoute = previousStateRef.current\n ? findFocusedRoute(previousStateRef.current)\n : undefined;\n\n // Preserve the hash if the route didn't change\n if (\n previousRoute &&\n route &&\n 'key' in previousRoute &&\n 'key' in route &&\n previousRoute.key === route.key\n ) {\n path = path + location.hash;\n }\n\n return path;\n };\n\n if (ref.current) {\n // We need to record the current metadata on the first render if they aren't set\n // This will allow the initial state to be in the history entry\n const state = ref.current.getRootState();\n\n if (state) {\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n\n if (previousStateRef.current === undefined) {\n previousStateRef.current = state;\n }\n\n history.replace({ path, state });\n }\n }\n\n const onStateChange = async () => {\n const navigation = ref.current;\n\n if (!navigation || !enabled) {\n return;\n }\n\n const previousState = previousStateRef.current;\n const state = navigation.getRootState();\n\n // root state may not available, for example when root navigators switch inside the container\n if (!state) {\n return;\n }\n\n const pendingPath = pendingPopStatePathRef.current;\n const route = findFocusedRoute(state);\n const path = getPathForRoute(route, state);\n\n previousStateRef.current = state;\n pendingPopStatePathRef.current = undefined;\n\n // To detect the kind of state change, we need to:\n // - Find the common focused navigation state in previous and current state\n // - If only the route keys changed, compare history/routes.length to check if we go back/forward/replace\n // - If no common focused navigation state found, it's a replace\n const [previousFocusedState, focusedState] = findMatchingState(\n previousState,\n state\n );\n\n if (\n previousFocusedState &&\n focusedState &&\n // We should only handle push/pop if path changed from what was in last `popstate`\n // Otherwise it's likely a change triggered by `popstate`\n path !== pendingPath\n ) {\n const historyDelta =\n (focusedState.history\n ? focusedState.history.length\n : focusedState.routes.length) -\n (previousFocusedState.history\n ? previousFocusedState.history.length\n : previousFocusedState.routes.length);\n\n if (historyDelta > 0) {\n // If history length is increased, we should pushState\n // Note that path might not actually change here, for example, drawer open should pushState\n history.push({ path, state });\n } else if (historyDelta < 0) {\n // If history length is decreased, i.e. entries were removed, we want to go back\n\n const nextIndex = history.backIndex({ path });\n const currentIndex = history.index;\n\n try {\n if (\n nextIndex !== -1 &&\n nextIndex < currentIndex &&\n // We should only go back if the entry exists and it's less than current index\n history.get(nextIndex)\n ) {\n // An existing entry for this path exists and it's less than current index, go back to that\n await history.go(nextIndex - currentIndex);\n } else {\n // We couldn't find an existing entry to go back to, so we'll go back by the delta\n // This won't be correct if multiple routes were pushed in one go before\n // Usually this shouldn't happen and this is a fallback for that\n await history.go(historyDelta);\n }\n\n // Store the updated state as well as fix the path if incorrect\n history.replace({ path, state });\n } catch (e) {\n // The navigation was interrupted\n }\n } else {\n // If history length is unchanged, we want to replaceState\n history.replace({ path, state });\n }\n } else {\n // If no common navigation state was found, assume it's a replace\n // This would happen if the user did a reset/conditionally changed navigators\n history.replace({ path, state });\n }\n };\n\n // We debounce onStateChange coz we don't want multiple state changes to be handled at one time\n // This could happen since `history.go(n)` is asynchronous\n // If `pushState` or `replaceState` were called before `history.go(n)` completes, it'll mess stuff up\n return ref.current?.addListener('state', series(onStateChange));\n }, [enabled, history, ref]);\n\n return {\n getInitialState,\n };\n}\n"],"mappings":"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","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}