expo-router 6.0.22 → 6.0.24
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/build/head/ExpoHead.d.ts.map +1 -1
- package/build/head/ExpoHead.js +9 -1
- package/build/head/ExpoHead.js.map +1 -1
- package/build/link/href.d.ts.map +1 -1
- package/build/link/href.js +4 -1
- package/build/link/href.js.map +1 -1
- package/package.json +6 -6
- package/plugin/tsconfig.tsbuildinfo +1 -0
- package/vendor/react-helmet-async/lib/index.esm.js +1 -1
- package/vendor/react-helmet-async/lib/index.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoHead.d.ts","sourceRoot":"","sources":["../../src/head/ExpoHead.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ExpoHead.d.ts","sourceRoot":"","sources":["../../src/head/ExpoHead.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAU,cAAc,EAAE,MAAM,qCAAqC,CAAC;AAM7E,eAAO,MAAM,IAAI,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,CAAC,GAAG;IAC5D,QAAQ,EAAE,OAAO,cAAc,CAAC;CAOjC,CAAC"}
|
package/build/head/ExpoHead.js
CHANGED
|
@@ -4,10 +4,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.Head = void 0;
|
|
7
|
+
const native_1 = require("@react-navigation/native");
|
|
7
8
|
const react_1 = __importDefault(require("react"));
|
|
8
9
|
const lib_1 = require("../../vendor/react-helmet-async/lib");
|
|
9
|
-
|
|
10
|
+
function FocusedHelmet({ children }) {
|
|
10
11
|
return <lib_1.Helmet>{children}</lib_1.Helmet>;
|
|
12
|
+
}
|
|
13
|
+
const Head = ({ children }) => {
|
|
14
|
+
const isFocused = (0, native_1.useIsFocused)();
|
|
15
|
+
if (!isFocused) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
return <FocusedHelmet>{children}</FocusedHelmet>;
|
|
11
19
|
};
|
|
12
20
|
exports.Head = Head;
|
|
13
21
|
exports.Head.Provider = lib_1.HelmetProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpoHead.js","sourceRoot":"","sources":["../../src/head/ExpoHead.tsx"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,6DAA6E;
|
|
1
|
+
{"version":3,"file":"ExpoHead.js","sourceRoot":"","sources":["../../src/head/ExpoHead.tsx"],"names":[],"mappings":";;;;;;AAAA,qDAAwD;AACxD,kDAA0B;AAE1B,6DAA6E;AAE7E,SAAS,aAAa,CAAC,EAAE,QAAQ,EAAkC;IACjE,OAAO,CAAC,YAAM,CAAC,CAAC,QAAQ,CAAC,EAAE,YAAM,CAAC,CAAC;AACrC,CAAC;AAEM,MAAM,IAAI,GAEb,CAAC,EAAE,QAAQ,EAAkC,EAAE,EAAE;IACnD,MAAM,SAAS,GAAG,IAAA,qBAAY,GAAE,CAAC;IACjC,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,IAAI,CAAC;IACd,CAAC;IACD,OAAO,CAAC,aAAa,CAAC,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,CAAC;AACnD,CAAC,CAAC;AARW,QAAA,IAAI,QAQf;AAEF,YAAI,CAAC,QAAQ,GAAG,oBAAc,CAAC","sourcesContent":["import { useIsFocused } from '@react-navigation/native';\nimport React from 'react';\n\nimport { Helmet, HelmetProvider } from '../../vendor/react-helmet-async/lib';\n\nfunction FocusedHelmet({ children }: { children?: React.ReactNode }) {\n return <Helmet>{children}</Helmet>;\n}\n\nexport const Head: React.FC<{ children?: React.ReactNode }> & {\n Provider: typeof HelmetProvider;\n} = ({ children }: { children?: React.ReactNode }) => {\n const isFocused = useIsFocused();\n if (!isFocused) {\n return null;\n }\n return <FocusedHelmet>{children}</FocusedHelmet>;\n};\n\nHead.Provider = HelmetProvider;\n"]}
|
package/build/link/href.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"href.d.ts","sourceRoot":"","sources":["../../src/link/href.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,oEAAoE;AACpE,eAAO,MAAM,WAAW,GAAI,MAAM,IAAI,KAAG,MAaxC,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,EAAE,QAAa,EAAE,MAAW,EAAE,GAAE,OAAO,CAAC,SAAS,CAAM,EACvD,EAAE,mBAAmB,EAAE,GAAE,aAAkB,
|
|
1
|
+
{"version":3,"file":"href.d.ts","sourceRoot":"","sources":["../../src/link/href.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAEhC,oEAAoE;AACpE,eAAO,MAAM,WAAW,GAAI,MAAM,IAAI,KAAG,MAaxC,CAAC;AAEF,wBAAgB,6BAA6B,CAC3C,IAAI,EAAE,MAAM,EACZ,EAAE,QAAa,EAAE,MAAW,EAAE,GAAE,OAAO,CAAC,SAAS,CAAM,EACvD,EAAE,mBAAmB,EAAE,GAAE,aAAkB,UAqC5C"}
|
package/build/link/href.js
CHANGED
|
@@ -48,7 +48,10 @@ function resolveHrefStringWithSegments(href, { segments = [], params = {} } = {}
|
|
|
48
48
|
const url = new URL(href, `http://hostname/${base}`);
|
|
49
49
|
href = `${url.pathname}${url.search}`;
|
|
50
50
|
}
|
|
51
|
-
|
|
51
|
+
// Collapse leading slashes so a scheme-relative `//host/...` href — whether
|
|
52
|
+
// smuggled in directly or produced by URL resolution above — cannot route
|
|
53
|
+
// navigation cross-origin.
|
|
54
|
+
return href.replace(/^\/+/, '/');
|
|
52
55
|
}
|
|
53
56
|
function createQualifiedPathname(pathname, params) {
|
|
54
57
|
for (const [key, value = ''] of Object.entries(params)) {
|
package/build/link/href.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"href.js","sourceRoot":"","sources":["../../src/link/href.ts"],"names":[],"mappings":";;;AAoBA,
|
|
1
|
+
{"version":3,"file":"href.js","sourceRoot":"","sources":["../../src/link/href.ts"],"names":[],"mappings":"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","sourcesContent":["import { UrlObject } from '../LocationProvider';\nimport { LinkToOptions } from '../global-state/routing';\nimport { Href } from '../types';\n\n/** Resolve an href object into a fully qualified, relative href. */\nexport const resolveHref = (href: Href): string => {\n if (typeof href === 'string') {\n return resolveHref({ pathname: href });\n }\n const path = href.pathname ?? '';\n if (!href?.params) {\n return path;\n }\n const { pathname, params } = createQualifiedPathname(path, {\n ...href.params,\n });\n const paramsString = createQueryParams(params);\n return pathname + (paramsString ? `?${paramsString}` : '');\n};\n\nexport function resolveHrefStringWithSegments(\n href: string,\n { segments = [], params = {} }: Partial<UrlObject> = {},\n { relativeToDirectory }: LinkToOptions = {}\n) {\n if (href.startsWith('.')) {\n // Resolve base path by merging the current segments with the params\n let base =\n segments\n ?.map((segment) => {\n if (!segment.startsWith('[')) return segment;\n\n if (segment.startsWith('[...')) {\n segment = segment.slice(4, -1);\n const param = params[segment];\n if (Array.isArray(param)) {\n return param.join('/');\n } else {\n return param?.split(',')?.join('/') ?? '';\n }\n } else {\n segment = segment.slice(1, -1);\n return params[segment];\n }\n })\n .filter(Boolean)\n .join('/') ?? '/';\n\n if (relativeToDirectory) {\n base = `${base}/`;\n }\n\n const url = new URL(href, `http://hostname/${base}`);\n href = `${url.pathname}${url.search}`;\n }\n\n // Collapse leading slashes so a scheme-relative `//host/...` href — whether\n // smuggled in directly or produced by URL resolution above — cannot route\n // navigation cross-origin.\n return href.replace(/^\\/+/, '/');\n}\n\nfunction createQualifiedPathname(\n pathname: string,\n params: Record<string, any>\n): { pathname: string; params: any } {\n for (const [key, value = ''] of Object.entries(params)) {\n const dynamicKey = `[${key}]`;\n const deepDynamicKey = `[...${key}]`;\n if (pathname.includes(dynamicKey)) {\n pathname = pathname.replace(dynamicKey, encodeParam(value));\n } else if (pathname.includes(deepDynamicKey)) {\n pathname = pathname.replace(deepDynamicKey, encodeParam(value));\n } else {\n continue;\n }\n\n delete params[key];\n }\n return { pathname, params };\n}\n\nfunction encodeParam(param: any): string {\n if (Array.isArray(param)) {\n return param.map((p) => encodeParam(p)).join('/');\n }\n\n return encodeURIComponent(param.toString());\n}\n\nfunction createQueryParams(params: Record<string, any>): string {\n return (\n Object.entries(params)\n // Allow nullish params\n .filter(([, value]) => value != null)\n .map(([key, value]) => `${key}=${encodeURIComponent(value.toString())}`)\n .join('&')\n );\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "expo-router",
|
|
3
|
-
"version": "6.0.
|
|
3
|
+
"version": "6.0.24",
|
|
4
4
|
"description": "Expo Router is a file-based router for React Native and web applications.",
|
|
5
5
|
"author": "650 Industries, Inc.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -82,7 +82,7 @@
|
|
|
82
82
|
"@testing-library/react-native": ">= 12.0.0",
|
|
83
83
|
"expo": "*",
|
|
84
84
|
"expo-constants": "^18.0.13",
|
|
85
|
-
"expo-linking": "^8.0.
|
|
85
|
+
"expo-linking": "^8.0.12",
|
|
86
86
|
"react": "*",
|
|
87
87
|
"react-dom": "*",
|
|
88
88
|
"react-native": "*",
|
|
@@ -91,7 +91,7 @@
|
|
|
91
91
|
"react-native-safe-area-context": ">= 5.4.0",
|
|
92
92
|
"react-native-screens": "*",
|
|
93
93
|
"react-native-web": "*",
|
|
94
|
-
"react-server-dom-webpack": "~19.0.
|
|
94
|
+
"react-server-dom-webpack": "~19.0.4 || ~19.1.5 || ~19.2.4"
|
|
95
95
|
},
|
|
96
96
|
"peerDependenciesMeta": {
|
|
97
97
|
"@testing-library/react-native": {
|
|
@@ -124,7 +124,7 @@
|
|
|
124
124
|
"@types/react-dom": "^19.1.7",
|
|
125
125
|
"@types/semver": "^7.7.0",
|
|
126
126
|
"immer": "^10.1.1",
|
|
127
|
-
"react-server-dom-webpack": "~19.0.
|
|
127
|
+
"react-server-dom-webpack": "~19.0.4",
|
|
128
128
|
"tsd": "^0.28.1"
|
|
129
129
|
},
|
|
130
130
|
"dependencies": {
|
|
@@ -138,7 +138,7 @@
|
|
|
138
138
|
"client-only": "^0.0.1",
|
|
139
139
|
"debug": "^4.3.4",
|
|
140
140
|
"escape-string-regexp": "^4.0.0",
|
|
141
|
-
"expo-server": "^1.0.
|
|
141
|
+
"expo-server": "^1.0.7",
|
|
142
142
|
"fast-deep-equal": "^3.1.3",
|
|
143
143
|
"invariant": "^2.2.4",
|
|
144
144
|
"nanoid": "^3.3.8",
|
|
@@ -152,5 +152,5 @@
|
|
|
152
152
|
"use-latest-callback": "^0.2.1",
|
|
153
153
|
"vaul": "^1.1.2"
|
|
154
154
|
},
|
|
155
|
-
"gitHead": "
|
|
155
|
+
"gitHead": "45c60e10956764bbac6c62454890eeb25c74bbd6"
|
|
156
156
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./src/index.ts","./src/withrouter.ts"],"version":"5.9.3"}
|
|
@@ -256,7 +256,7 @@ var encodeSpecialCharacters = (str, encode = true) => {
|
|
|
256
256
|
return String(str).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
257
257
|
};
|
|
258
258
|
var generateElementAttributesAsString = (attributes) => Object.keys(attributes).reduce((str, key) => {
|
|
259
|
-
const attr = typeof attributes[key] !== "undefined" ? `${key}="${attributes[key]}"` : `${key}`;
|
|
259
|
+
const attr = typeof attributes[key] !== "undefined" ? `${key}="${encodeSpecialCharacters(attributes[key])}"` : `${key}`;
|
|
260
260
|
return str ? `${str} ${attr}` : attr;
|
|
261
261
|
}, "");
|
|
262
262
|
var generateTitleAsString = (type, title, attributes, encode) => {
|
|
@@ -292,7 +292,7 @@ var encodeSpecialCharacters = (str, encode = true) => {
|
|
|
292
292
|
return String(str).replace(/&/g, "&").replace(/</g, "<").replace(/>/g, ">").replace(/"/g, """).replace(/'/g, "'");
|
|
293
293
|
};
|
|
294
294
|
var generateElementAttributesAsString = (attributes) => Object.keys(attributes).reduce((str, key) => {
|
|
295
|
-
const attr = typeof attributes[key] !== "undefined" ? `${key}="${attributes[key]}"` : `${key}`;
|
|
295
|
+
const attr = typeof attributes[key] !== "undefined" ? `${key}="${encodeSpecialCharacters(attributes[key])}"` : `${key}`;
|
|
296
296
|
return str ? `${str} ${attr}` : attr;
|
|
297
297
|
}, "");
|
|
298
298
|
var generateTitleAsString = (type, title, attributes, encode) => {
|