@tanstack/router-core 1.171.4 → 1.171.6

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.
Files changed (49) hide show
  1. package/dist/cjs/index.cjs +5 -1
  2. package/dist/cjs/index.d.cts +2 -2
  3. package/dist/cjs/manifest.cjs +43 -17
  4. package/dist/cjs/manifest.cjs.map +1 -1
  5. package/dist/cjs/manifest.d.cts +76 -24
  6. package/dist/cjs/router.cjs.map +1 -1
  7. package/dist/cjs/router.d.cts +2 -2
  8. package/dist/cjs/scroll-restoration-inline.cjs +1 -1
  9. package/dist/cjs/scroll-restoration-inline.cjs.map +1 -1
  10. package/dist/cjs/scroll-restoration-inline.d.cts +1 -4
  11. package/dist/cjs/scroll-restoration-script/server.cjs +5 -8
  12. package/dist/cjs/scroll-restoration-script/server.cjs.map +1 -1
  13. package/dist/cjs/scroll-restoration.cjs +32 -32
  14. package/dist/cjs/scroll-restoration.cjs.map +1 -1
  15. package/dist/cjs/ssr/createRequestHandler.cjs +2 -1
  16. package/dist/cjs/ssr/createRequestHandler.cjs.map +1 -1
  17. package/dist/cjs/ssr/createRequestHandler.d.cts +2 -2
  18. package/dist/cjs/ssr/ssr-server.cjs +132 -83
  19. package/dist/cjs/ssr/ssr-server.cjs.map +1 -1
  20. package/dist/cjs/ssr/ssr-server.d.cts +4 -5
  21. package/dist/esm/index.d.ts +2 -2
  22. package/dist/esm/index.js +2 -2
  23. package/dist/esm/manifest.d.ts +76 -24
  24. package/dist/esm/manifest.js +39 -17
  25. package/dist/esm/manifest.js.map +1 -1
  26. package/dist/esm/router.d.ts +2 -2
  27. package/dist/esm/router.js.map +1 -1
  28. package/dist/esm/scroll-restoration-inline.d.ts +1 -4
  29. package/dist/esm/scroll-restoration-inline.js +1 -1
  30. package/dist/esm/scroll-restoration-inline.js.map +1 -1
  31. package/dist/esm/scroll-restoration-script/server.js +5 -8
  32. package/dist/esm/scroll-restoration-script/server.js.map +1 -1
  33. package/dist/esm/scroll-restoration.js +32 -32
  34. package/dist/esm/scroll-restoration.js.map +1 -1
  35. package/dist/esm/ssr/createRequestHandler.d.ts +2 -2
  36. package/dist/esm/ssr/createRequestHandler.js +2 -1
  37. package/dist/esm/ssr/createRequestHandler.js.map +1 -1
  38. package/dist/esm/ssr/ssr-server.d.ts +4 -5
  39. package/dist/esm/ssr/ssr-server.js +133 -84
  40. package/dist/esm/ssr/ssr-server.js.map +1 -1
  41. package/package.json +1 -1
  42. package/src/index.ts +21 -1
  43. package/src/manifest.ts +151 -59
  44. package/src/router.ts +6 -4
  45. package/src/scroll-restoration-inline.ts +19 -38
  46. package/src/scroll-restoration-script/server.ts +5 -17
  47. package/src/scroll-restoration.ts +35 -40
  48. package/src/ssr/createRequestHandler.ts +6 -5
  49. package/src/ssr/ssr-server.ts +239 -141
@@ -25,11 +25,13 @@ exports.BaseRootRoute = require_route.BaseRootRoute;
25
25
  exports.BaseRoute = require_route.BaseRoute;
26
26
  exports.BaseRouteApi = require_route.BaseRouteApi;
27
27
  exports.DEFAULT_PROTOCOL_ALLOWLIST = require_utils.DEFAULT_PROTOCOL_ALLOWLIST;
28
+ exports.DEV_STYLES_ATTR = require_manifest.DEV_STYLES_ATTR;
28
29
  exports.PathParamError = require_router.PathParamError;
29
30
  exports.RawStream = require_RawStream.RawStream;
30
31
  exports.RouterCore = require_router.RouterCore;
31
32
  exports.SearchParamError = require_router.SearchParamError;
32
33
  exports.TSR_DEFERRED_PROMISE = require_defer.TSR_DEFERRED_PROMISE;
34
+ exports.appendUniqueUserTags = require_manifest.appendUniqueUserTags;
33
35
  exports.buildDevStylesUrl = require_utils.buildDevStylesUrl;
34
36
  exports.cleanPath = require_path.cleanPath;
35
37
  exports.composeRewrites = require_rewrite.composeRewrites;
@@ -58,13 +60,14 @@ exports.getAssetCrossOrigin = require_manifest.getAssetCrossOrigin;
58
60
  exports.getElementScrollRestorationEntry = require_scroll_restoration.getElementScrollRestorationEntry;
59
61
  exports.getInitialRouterState = require_router.getInitialRouterState;
60
62
  exports.getLocationChangeInfo = require_router.getLocationChangeInfo;
63
+ exports.getManifestScriptFormat = require_manifest.getManifestScriptFormat;
61
64
  exports.getMatchedRoutes = require_router.getMatchedRoutes;
65
+ exports.getScriptPreloadAttrs = require_manifest.getScriptPreloadAttrs;
62
66
  exports.getStylesheetHref = require_manifest.getStylesheetHref;
63
67
  exports.hasKeys = require_utils.hasKeys;
64
68
  exports.interpolatePath = require_path.interpolatePath;
65
69
  exports.invariant = require_invariant.invariant;
66
70
  exports.isDangerousProtocol = require_utils.isDangerousProtocol;
67
- exports.isInlinableStylesheet = require_manifest.isInlinableStylesheet;
68
71
  exports.isMatch = require_Matches.isMatch;
69
72
  exports.isModuleNotFoundError = require_utils.isModuleNotFoundError;
70
73
  exports.isNotFound = require_not_found.isNotFound;
@@ -84,6 +87,7 @@ exports.redirect = require_redirect.redirect;
84
87
  exports.removeTrailingSlash = require_path.removeTrailingSlash;
85
88
  exports.replaceEqualDeep = require_utils.replaceEqualDeep;
86
89
  exports.resolveManifestAssetLink = require_manifest.resolveManifestAssetLink;
90
+ exports.resolveManifestCssLink = require_manifest.resolveManifestCssLink;
87
91
  exports.resolvePath = require_path.resolvePath;
88
92
  exports.retainSearchParams = require_searchMiddleware.retainSearchParams;
89
93
  exports.rootRouteId = require_root.rootRouteId;
@@ -7,8 +7,8 @@ export type { IsRequiredParams, AddTrailingSlash, RemoveTrailingSlashes, AddLead
7
7
  export type { RouteToPath, TrailingSlashOptionByRouter, ParseRoute, CodeRouteToPath, RouteIds, FullSearchSchema, FullSearchSchemaInput, AllParams, RouteById, AllContext, RoutePaths, RoutesById, RoutesByPath, AllLoaderData, RouteByPath, } from './routeInfo.cjs';
8
8
  export type { InferFileRouteTypes, FileRouteTypes, FileRoutesByPath, CreateFileRoute, LazyRoute, LazyRouteOptions, CreateLazyFileRoute, } from './fileRoute.cjs';
9
9
  export type { ParsedLocation } from './location.cjs';
10
- export type { Manifest, RouterManagedTag, AssetCrossOrigin, AssetCrossOriginConfig, ManifestAssetLink, } from './manifest.cjs';
11
- export { createInlineCssStyleAsset, getAssetCrossOrigin, getStylesheetHref, isInlinableStylesheet, resolveManifestAssetLink, } from './manifest.cjs';
10
+ export type { Manifest, ServerManifest, ManifestRoute, ManifestRouteAssets, ServerManifestRoute, ManifestCssLink, ManifestInlineCss, ServerManifestInlineCss, InlineCssTemplate, ManifestScript, RouterManagedTag, RouterManagedTitleTag, RouterManagedMetaTag, RouterManagedInlineCssTag, RouterManagedScriptTag, RouterManagedLinkTag, RouterManagedStyleTag, AssetCrossOrigin, AssetCrossOriginConfig, ManifestAssetLink, ScriptFormat, } from './manifest.cjs';
11
+ export { DEV_STYLES_ATTR, appendUniqueUserTags, createInlineCssStyleAsset, getAssetCrossOrigin, getManifestScriptFormat, getScriptPreloadAttrs, getStylesheetHref, resolveManifestAssetLink, resolveManifestCssLink, } from './manifest.cjs';
12
12
  export { isMatch } from './Matches.cjs';
13
13
  export type { AnyMatchAndValue, FindValueByIndex, FindValueByKey, CreateMatchAndValue, NextMatchAndValue, IsMatchKeyOf, IsMatchPath, IsMatchResult, IsMatchParse, IsMatch, RouteMatch, RouteMatchExtensions, MakeRouteMatchUnion, MakeRouteMatch, AnyRouteMatch, MakeRouteMatchFromRoute, MatchRouteOptions, } from './Matches.cjs';
14
14
  export { joinPaths, cleanPath, trimPathLeft, trimPathRight, trimPath, removeTrailingSlash, exactPathTest, resolvePath, interpolatePath, } from './path.cjs';
@@ -1,9 +1,25 @@
1
1
  //#region src/manifest.ts
2
+ const DEV_STYLES_ATTR = "data-tanstack-router-dev-styles";
2
3
  function getAssetCrossOrigin(assetCrossOrigin, kind) {
3
4
  if (!assetCrossOrigin) return;
4
5
  if (typeof assetCrossOrigin === "string") return assetCrossOrigin;
5
6
  return assetCrossOrigin[kind];
6
7
  }
8
+ function getManifestScriptFormat(manifest) {
9
+ return manifest?.scriptFormat ?? "module";
10
+ }
11
+ function getScriptPreloadAttrs(manifest, link, assetCrossOrigin) {
12
+ const preloadLink = resolveManifestAssetLink(link);
13
+ const crossOrigin = getAssetCrossOrigin(assetCrossOrigin, "script") ?? preloadLink.crossOrigin;
14
+ return {
15
+ ...getManifestScriptFormat(manifest) === "iife" ? {
16
+ rel: "preload",
17
+ as: "script"
18
+ } : { rel: "modulepreload" },
19
+ href: preloadLink.href,
20
+ ...crossOrigin ? { crossOrigin } : {}
21
+ };
22
+ }
7
23
  function resolveManifestAssetLink(link) {
8
24
  if (typeof link === "string") return {
9
25
  href: link,
@@ -11,39 +27,49 @@ function resolveManifestAssetLink(link) {
11
27
  };
12
28
  return link;
13
29
  }
30
+ function appendUniqueUserTags(target, tags) {
31
+ if (tags.length === 0) return;
32
+ if (tags.length === 1) {
33
+ target.push(tags[0]);
34
+ return;
35
+ }
36
+ const seen = /* @__PURE__ */ new Set();
37
+ for (const tag of tags) {
38
+ const key = JSON.stringify(tag);
39
+ if (seen.has(key)) continue;
40
+ seen.add(key);
41
+ target.push(tag);
42
+ }
43
+ }
14
44
  function getStylesheetHref(asset) {
15
- if (asset.tag !== "link") return void 0;
16
- const rel = asset.attrs?.rel;
17
- const href = asset.attrs?.href;
18
- if (typeof href !== "string") return void 0;
19
- if (!(typeof rel === "string" ? rel.split(/\s+/) : []).includes("stylesheet")) return void 0;
20
- return href;
45
+ return resolveManifestCssLink(asset).href;
21
46
  }
22
- function isInlinableStylesheet(manifest, asset) {
23
- const href = getStylesheetHref(asset);
24
- return !!href && manifest?.inlineCss?.styles[href] !== void 0;
47
+ function resolveManifestCssLink(link) {
48
+ if (typeof link === "string") return {
49
+ href: link,
50
+ crossOrigin: void 0
51
+ };
52
+ return link;
25
53
  }
26
54
  function createInlineCssStyleAsset(css) {
27
55
  return {
28
- tag: "style",
29
56
  attrs: { suppressHydrationWarning: true },
30
- inlineCss: true,
31
57
  children: css
32
58
  };
33
59
  }
34
60
  function createInlineCssPlaceholderAsset() {
35
- return {
36
- tag: "style",
37
- attrs: { suppressHydrationWarning: true },
38
- inlineCss: true
39
- };
61
+ return { attrs: { suppressHydrationWarning: true } };
40
62
  }
41
63
  //#endregion
64
+ exports.DEV_STYLES_ATTR = DEV_STYLES_ATTR;
65
+ exports.appendUniqueUserTags = appendUniqueUserTags;
42
66
  exports.createInlineCssPlaceholderAsset = createInlineCssPlaceholderAsset;
43
67
  exports.createInlineCssStyleAsset = createInlineCssStyleAsset;
44
68
  exports.getAssetCrossOrigin = getAssetCrossOrigin;
69
+ exports.getManifestScriptFormat = getManifestScriptFormat;
70
+ exports.getScriptPreloadAttrs = getScriptPreloadAttrs;
45
71
  exports.getStylesheetHref = getStylesheetHref;
46
- exports.isInlinableStylesheet = isInlinableStylesheet;
47
72
  exports.resolveManifestAssetLink = resolveManifestAssetLink;
73
+ exports.resolveManifestCssLink = resolveManifestCssLink;
48
74
 
49
75
  //# sourceMappingURL=manifest.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"manifest.cjs","names":[],"sources":["../../src/manifest.ts"],"sourcesContent":["export type AssetCrossOrigin = 'anonymous' | 'use-credentials'\n\nexport type AssetCrossOriginConfig =\n | AssetCrossOrigin\n | Partial<Record<'modulepreload' | 'stylesheet', AssetCrossOrigin>>\n\nexport type ManifestAssetLink =\n | string\n | {\n href: string\n crossOrigin?: AssetCrossOrigin\n }\n\nexport function getAssetCrossOrigin(\n assetCrossOrigin: AssetCrossOriginConfig | undefined,\n kind: 'modulepreload' | 'stylesheet',\n): AssetCrossOrigin | undefined {\n if (!assetCrossOrigin) {\n return undefined\n }\n\n if (typeof assetCrossOrigin === 'string') {\n return assetCrossOrigin\n }\n\n return assetCrossOrigin[kind]\n}\n\nexport function resolveManifestAssetLink(link: ManifestAssetLink) {\n if (typeof link === 'string') {\n return { href: link, crossOrigin: undefined }\n }\n\n return link\n}\n\nexport type Manifest = {\n inlineCss?: {\n styles: Record<string, string>\n templates?: Record<\n string,\n {\n strings: Array<string>\n urls: Array<string>\n }\n >\n }\n routes: Record<\n string,\n {\n filePath?: string\n preloads?: Array<ManifestAssetLink>\n assets?: Array<RouterManagedTag>\n }\n >\n}\n\nexport type RouterManagedTag =\n | {\n tag: 'title'\n attrs?: Record<string, any>\n children: string\n }\n | {\n tag: 'meta' | 'link'\n attrs?: Record<string, any>\n children?: never\n }\n | {\n tag: 'script'\n attrs?: Record<string, any>\n children?: string\n }\n | {\n tag: 'style'\n attrs?: Record<string, any>\n children?: string\n inlineCss?: true\n }\n\nexport function getStylesheetHref(asset: RouterManagedTag) {\n if (asset.tag !== 'link') return undefined\n\n const rel = asset.attrs?.rel\n const href = asset.attrs?.href\n if (typeof href !== 'string') return undefined\n\n const relTokens = typeof rel === 'string' ? rel.split(/\\s+/) : []\n if (!relTokens.includes('stylesheet')) return undefined\n\n return href\n}\n\nexport function isInlinableStylesheet(\n manifest: Manifest | undefined,\n asset: RouterManagedTag,\n) {\n const href = getStylesheetHref(asset)\n return !!href && manifest?.inlineCss?.styles[href] !== undefined\n}\n\nexport function createInlineCssStyleAsset(css: string): RouterManagedTag {\n return {\n tag: 'style',\n attrs: {\n suppressHydrationWarning: true,\n },\n inlineCss: true,\n children: css,\n }\n}\n\nexport function createInlineCssPlaceholderAsset(): RouterManagedTag {\n return {\n tag: 'style',\n attrs: {\n suppressHydrationWarning: true,\n },\n inlineCss: true,\n }\n}\n"],"mappings":";AAaA,SAAgB,oBACd,kBACA,MAC8B;AAC9B,KAAI,CAAC,iBACH;AAGF,KAAI,OAAO,qBAAqB,SAC9B,QAAO;AAGT,QAAO,iBAAiB;;AAG1B,SAAgB,yBAAyB,MAAyB;AAChE,KAAI,OAAO,SAAS,SAClB,QAAO;EAAE,MAAM;EAAM,aAAa,KAAA;EAAW;AAG/C,QAAO;;AA+CT,SAAgB,kBAAkB,OAAyB;AACzD,KAAI,MAAM,QAAQ,OAAQ,QAAO,KAAA;CAEjC,MAAM,MAAM,MAAM,OAAO;CACzB,MAAM,OAAO,MAAM,OAAO;AAC1B,KAAI,OAAO,SAAS,SAAU,QAAO,KAAA;AAGrC,KAAI,EADc,OAAO,QAAQ,WAAW,IAAI,MAAM,MAAM,GAAG,EAAE,EAClD,SAAS,aAAa,CAAE,QAAO,KAAA;AAE9C,QAAO;;AAGT,SAAgB,sBACd,UACA,OACA;CACA,MAAM,OAAO,kBAAkB,MAAM;AACrC,QAAO,CAAC,CAAC,QAAQ,UAAU,WAAW,OAAO,UAAU,KAAA;;AAGzD,SAAgB,0BAA0B,KAA+B;AACvE,QAAO;EACL,KAAK;EACL,OAAO,EACL,0BAA0B,MAC3B;EACD,WAAW;EACX,UAAU;EACX;;AAGH,SAAgB,kCAAoD;AAClE,QAAO;EACL,KAAK;EACL,OAAO,EACL,0BAA0B,MAC3B;EACD,WAAW;EACZ"}
1
+ {"version":3,"file":"manifest.cjs","names":[],"sources":["../../src/manifest.ts"],"sourcesContent":["export type AssetCrossOrigin = 'anonymous' | 'use-credentials'\nexport type ScriptFormat = 'module' | 'iife'\n\nexport const DEV_STYLES_ATTR = 'data-tanstack-router-dev-styles'\n\nexport type AssetCrossOriginConfig =\n | AssetCrossOrigin\n | Partial<Record<'script' | 'stylesheet', AssetCrossOrigin>>\n\nexport type ManifestAssetLink =\n | string\n | {\n href: string\n crossOrigin?: AssetCrossOrigin\n }\n\nexport function getAssetCrossOrigin(\n assetCrossOrigin: AssetCrossOriginConfig | undefined,\n kind: 'script' | 'stylesheet',\n): AssetCrossOrigin | undefined {\n if (!assetCrossOrigin) {\n return undefined\n }\n\n if (typeof assetCrossOrigin === 'string') {\n return assetCrossOrigin\n }\n\n return assetCrossOrigin[kind]\n}\n\nexport function getManifestScriptFormat(\n manifest: { scriptFormat?: ScriptFormat } | undefined,\n): ScriptFormat {\n return manifest?.scriptFormat ?? 'module'\n}\n\nexport function getScriptPreloadAttrs(\n manifest: { scriptFormat?: ScriptFormat } | undefined,\n link: ManifestAssetLink,\n assetCrossOrigin?: AssetCrossOriginConfig,\n): {\n rel: 'modulepreload' | 'preload'\n as?: 'script'\n href: string\n crossOrigin?: AssetCrossOrigin\n} {\n const preloadLink = resolveManifestAssetLink(link)\n const crossOrigin =\n getAssetCrossOrigin(assetCrossOrigin, 'script') ?? preloadLink.crossOrigin\n\n return {\n ...(getManifestScriptFormat(manifest) === 'iife'\n ? { rel: 'preload', as: 'script' }\n : { rel: 'modulepreload' }),\n href: preloadLink.href,\n ...(crossOrigin ? { crossOrigin } : {}),\n }\n}\n\nexport function resolveManifestAssetLink(link: ManifestAssetLink) {\n if (typeof link === 'string') {\n return { href: link, crossOrigin: undefined }\n }\n\n return link\n}\n\nexport type Manifest = {\n scriptFormat?: ScriptFormat\n inlineStyle?: ManifestInlineCss\n routes: Record<string, ManifestRoute>\n}\n\nexport type ServerManifest = {\n scriptFormat?: ScriptFormat\n inlineCss?: ServerManifestInlineCss\n routes: Record<string, ServerManifestRoute>\n}\n\nexport type ServerManifestInlineCss = {\n styles: Record<string, string>\n templates?: Record<string, InlineCssTemplate>\n}\n\nexport type InlineCssTemplate = {\n strings: Array<string>\n urls: Array<string>\n}\n\nexport type ManifestRoute = {\n filePath?: string\n preloads?: Array<ManifestAssetLink>\n scripts?: Array<ManifestScript>\n css?: Array<ManifestCssLink>\n}\n\nexport type ServerManifestRoute = ManifestRoute\n\nexport type ManifestRouteAssets = Pick<\n ManifestRoute,\n 'preloads' | 'scripts' | 'css'\n>\n\nexport type RouterManagedTitleTag = {\n tag: 'title'\n attrs?: Record<string, any>\n children: string\n}\n\nexport type RouterManagedMetaTag = {\n tag: 'meta'\n attrs?: Record<string, any>\n children?: never\n}\n\nexport type RouterManagedLinkTag = {\n tag: 'link'\n attrs?: Record<string, any>\n children?: never\n}\n\nexport type RouterManagedScriptTag = {\n tag: 'script'\n attrs?: Record<string, any>\n children?: string\n}\n\nexport type ManifestScript = Omit<RouterManagedScriptTag, 'tag'>\n\nexport type RouterManagedStyleTag = {\n tag: 'style'\n attrs?: Record<string, any>\n children?: string\n inlineCss?: true\n}\n\nexport type RouterManagedTag =\n | RouterManagedTitleTag\n | RouterManagedMetaTag\n | RouterManagedLinkTag\n | RouterManagedScriptTag\n | RouterManagedStyleTag\n\nexport function appendUniqueUserTags(\n target: Array<RouterManagedTag>,\n tags: Array<RouterManagedTag>,\n) {\n if (tags.length === 0) {\n return\n }\n\n if (tags.length === 1) {\n target.push(tags[0]!)\n return\n }\n\n const seen = new Set<string>()\n for (const tag of tags) {\n const key = JSON.stringify(tag)\n if (seen.has(key)) {\n continue\n }\n seen.add(key)\n target.push(tag)\n }\n}\n\nexport type ManifestCssLink =\n | string\n | {\n href: string\n crossOrigin?: AssetCrossOrigin\n [DEV_STYLES_ATTR]?: true\n }\n\nexport type ManifestInlineCss = {\n attrs?: Record<string, any>\n children?: string\n}\n\nexport type RouterManagedInlineCssTag = RouterManagedStyleTag & {\n inlineCss: true\n}\n\nexport function getStylesheetHref(asset: ManifestCssLink) {\n return resolveManifestCssLink(asset).href\n}\n\nexport function resolveManifestCssLink(link: ManifestCssLink) {\n if (typeof link === 'string') {\n return { href: link, crossOrigin: undefined }\n }\n\n return link\n}\n\nexport function createInlineCssStyleAsset(css: string): ManifestInlineCss {\n return {\n attrs: {\n suppressHydrationWarning: true,\n },\n children: css,\n }\n}\n\nexport function createInlineCssPlaceholderAsset(): ManifestInlineCss {\n return {\n attrs: {\n suppressHydrationWarning: true,\n },\n }\n}\n"],"mappings":";AAGA,MAAa,kBAAkB;AAa/B,SAAgB,oBACd,kBACA,MAC8B;AAC9B,KAAI,CAAC,iBACH;AAGF,KAAI,OAAO,qBAAqB,SAC9B,QAAO;AAGT,QAAO,iBAAiB;;AAG1B,SAAgB,wBACd,UACc;AACd,QAAO,UAAU,gBAAgB;;AAGnC,SAAgB,sBACd,UACA,MACA,kBAMA;CACA,MAAM,cAAc,yBAAyB,KAAK;CAClD,MAAM,cACJ,oBAAoB,kBAAkB,SAAS,IAAI,YAAY;AAEjE,QAAO;EACL,GAAI,wBAAwB,SAAS,KAAK,SACtC;GAAE,KAAK;GAAW,IAAI;GAAU,GAChC,EAAE,KAAK,iBAAiB;EAC5B,MAAM,YAAY;EAClB,GAAI,cAAc,EAAE,aAAa,GAAG,EAAE;EACvC;;AAGH,SAAgB,yBAAyB,MAAyB;AAChE,KAAI,OAAO,SAAS,SAClB,QAAO;EAAE,MAAM;EAAM,aAAa,KAAA;EAAW;AAG/C,QAAO;;AA+ET,SAAgB,qBACd,QACA,MACA;AACA,KAAI,KAAK,WAAW,EAClB;AAGF,KAAI,KAAK,WAAW,GAAG;AACrB,SAAO,KAAK,KAAK,GAAI;AACrB;;CAGF,MAAM,uBAAO,IAAI,KAAa;AAC9B,MAAK,MAAM,OAAO,MAAM;EACtB,MAAM,MAAM,KAAK,UAAU,IAAI;AAC/B,MAAI,KAAK,IAAI,IAAI,CACf;AAEF,OAAK,IAAI,IAAI;AACb,SAAO,KAAK,IAAI;;;AAqBpB,SAAgB,kBAAkB,OAAwB;AACxD,QAAO,uBAAuB,MAAM,CAAC;;AAGvC,SAAgB,uBAAuB,MAAuB;AAC5D,KAAI,OAAO,SAAS,SAClB,QAAO;EAAE,MAAM;EAAM,aAAa,KAAA;EAAW;AAG/C,QAAO;;AAGT,SAAgB,0BAA0B,KAAgC;AACxE,QAAO;EACL,OAAO,EACL,0BAA0B,MAC3B;EACD,UAAU;EACX;;AAGH,SAAgB,kCAAqD;AACnE,QAAO,EACL,OAAO,EACL,0BAA0B,MAC3B,EACF"}
@@ -1,47 +1,99 @@
1
1
  export type AssetCrossOrigin = 'anonymous' | 'use-credentials';
2
- export type AssetCrossOriginConfig = AssetCrossOrigin | Partial<Record<'modulepreload' | 'stylesheet', AssetCrossOrigin>>;
2
+ export type ScriptFormat = 'module' | 'iife';
3
+ export declare const DEV_STYLES_ATTR = "data-tanstack-router-dev-styles";
4
+ export type AssetCrossOriginConfig = AssetCrossOrigin | Partial<Record<'script' | 'stylesheet', AssetCrossOrigin>>;
3
5
  export type ManifestAssetLink = string | {
4
6
  href: string;
5
7
  crossOrigin?: AssetCrossOrigin;
6
8
  };
7
- export declare function getAssetCrossOrigin(assetCrossOrigin: AssetCrossOriginConfig | undefined, kind: 'modulepreload' | 'stylesheet'): AssetCrossOrigin | undefined;
9
+ export declare function getAssetCrossOrigin(assetCrossOrigin: AssetCrossOriginConfig | undefined, kind: 'script' | 'stylesheet'): AssetCrossOrigin | undefined;
10
+ export declare function getManifestScriptFormat(manifest: {
11
+ scriptFormat?: ScriptFormat;
12
+ } | undefined): ScriptFormat;
13
+ export declare function getScriptPreloadAttrs(manifest: {
14
+ scriptFormat?: ScriptFormat;
15
+ } | undefined, link: ManifestAssetLink, assetCrossOrigin?: AssetCrossOriginConfig): {
16
+ rel: 'modulepreload' | 'preload';
17
+ as?: 'script';
18
+ href: string;
19
+ crossOrigin?: AssetCrossOrigin;
20
+ };
8
21
  export declare function resolveManifestAssetLink(link: ManifestAssetLink): {
9
22
  href: string;
10
23
  crossOrigin?: AssetCrossOrigin;
11
24
  };
12
25
  export type Manifest = {
13
- inlineCss?: {
14
- styles: Record<string, string>;
15
- templates?: Record<string, {
16
- strings: Array<string>;
17
- urls: Array<string>;
18
- }>;
19
- };
20
- routes: Record<string, {
21
- filePath?: string;
22
- preloads?: Array<ManifestAssetLink>;
23
- assets?: Array<RouterManagedTag>;
24
- }>;
25
- };
26
- export type RouterManagedTag = {
26
+ scriptFormat?: ScriptFormat;
27
+ inlineStyle?: ManifestInlineCss;
28
+ routes: Record<string, ManifestRoute>;
29
+ };
30
+ export type ServerManifest = {
31
+ scriptFormat?: ScriptFormat;
32
+ inlineCss?: ServerManifestInlineCss;
33
+ routes: Record<string, ServerManifestRoute>;
34
+ };
35
+ export type ServerManifestInlineCss = {
36
+ styles: Record<string, string>;
37
+ templates?: Record<string, InlineCssTemplate>;
38
+ };
39
+ export type InlineCssTemplate = {
40
+ strings: Array<string>;
41
+ urls: Array<string>;
42
+ };
43
+ export type ManifestRoute = {
44
+ filePath?: string;
45
+ preloads?: Array<ManifestAssetLink>;
46
+ scripts?: Array<ManifestScript>;
47
+ css?: Array<ManifestCssLink>;
48
+ };
49
+ export type ServerManifestRoute = ManifestRoute;
50
+ export type ManifestRouteAssets = Pick<ManifestRoute, 'preloads' | 'scripts' | 'css'>;
51
+ export type RouterManagedTitleTag = {
27
52
  tag: 'title';
28
53
  attrs?: Record<string, any>;
29
54
  children: string;
30
- } | {
31
- tag: 'meta' | 'link';
55
+ };
56
+ export type RouterManagedMetaTag = {
57
+ tag: 'meta';
58
+ attrs?: Record<string, any>;
59
+ children?: never;
60
+ };
61
+ export type RouterManagedLinkTag = {
62
+ tag: 'link';
32
63
  attrs?: Record<string, any>;
33
64
  children?: never;
34
- } | {
65
+ };
66
+ export type RouterManagedScriptTag = {
35
67
  tag: 'script';
36
68
  attrs?: Record<string, any>;
37
69
  children?: string;
38
- } | {
70
+ };
71
+ export type ManifestScript = Omit<RouterManagedScriptTag, 'tag'>;
72
+ export type RouterManagedStyleTag = {
39
73
  tag: 'style';
40
74
  attrs?: Record<string, any>;
41
75
  children?: string;
42
76
  inlineCss?: true;
43
77
  };
44
- export declare function getStylesheetHref(asset: RouterManagedTag): string | undefined;
45
- export declare function isInlinableStylesheet(manifest: Manifest | undefined, asset: RouterManagedTag): boolean;
46
- export declare function createInlineCssStyleAsset(css: string): RouterManagedTag;
47
- export declare function createInlineCssPlaceholderAsset(): RouterManagedTag;
78
+ export type RouterManagedTag = RouterManagedTitleTag | RouterManagedMetaTag | RouterManagedLinkTag | RouterManagedScriptTag | RouterManagedStyleTag;
79
+ export declare function appendUniqueUserTags(target: Array<RouterManagedTag>, tags: Array<RouterManagedTag>): void;
80
+ export type ManifestCssLink = string | {
81
+ href: string;
82
+ crossOrigin?: AssetCrossOrigin;
83
+ [DEV_STYLES_ATTR]?: true;
84
+ };
85
+ export type ManifestInlineCss = {
86
+ attrs?: Record<string, any>;
87
+ children?: string;
88
+ };
89
+ export type RouterManagedInlineCssTag = RouterManagedStyleTag & {
90
+ inlineCss: true;
91
+ };
92
+ export declare function getStylesheetHref(asset: ManifestCssLink): string;
93
+ export declare function resolveManifestCssLink(link: ManifestCssLink): {
94
+ href: string;
95
+ crossOrigin?: AssetCrossOrigin;
96
+ "data-tanstack-router-dev-styles"?: true;
97
+ };
98
+ export declare function createInlineCssStyleAsset(css: string): ManifestInlineCss;
99
+ export declare function createInlineCssPlaceholderAsset(): ManifestInlineCss;