@tanstack/start-client-core 1.166.8 → 1.166.10

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 (39) hide show
  1. package/dist/esm/client/ServerFunctionSerializationAdapter.js +15 -14
  2. package/dist/esm/client/ServerFunctionSerializationAdapter.js.map +1 -1
  3. package/dist/esm/client/hydrateStart.js +26 -31
  4. package/dist/esm/client/hydrateStart.js.map +1 -1
  5. package/dist/esm/client/index.js +1 -4
  6. package/dist/esm/client-rpc/createClientRpc.js +16 -15
  7. package/dist/esm/client-rpc/createClientRpc.js.map +1 -1
  8. package/dist/esm/client-rpc/frame-decoder.js +229 -241
  9. package/dist/esm/client-rpc/frame-decoder.js.map +1 -1
  10. package/dist/esm/client-rpc/index.js +1 -4
  11. package/dist/esm/client-rpc/serverFnFetcher.js +210 -259
  12. package/dist/esm/client-rpc/serverFnFetcher.js.map +1 -1
  13. package/dist/esm/constants.js +41 -49
  14. package/dist/esm/constants.js.map +1 -1
  15. package/dist/esm/createMiddleware.js +25 -36
  16. package/dist/esm/createMiddleware.js.map +1 -1
  17. package/dist/esm/createServerFn.js +187 -261
  18. package/dist/esm/createServerFn.js.map +1 -1
  19. package/dist/esm/createStart.js +25 -29
  20. package/dist/esm/createStart.js.map +1 -1
  21. package/dist/esm/fake-start-entry.js +7 -8
  22. package/dist/esm/fake-start-entry.js.map +1 -1
  23. package/dist/esm/getDefaultSerovalPlugins.js +7 -11
  24. package/dist/esm/getDefaultSerovalPlugins.js.map +1 -1
  25. package/dist/esm/getGlobalStartContext.js +10 -13
  26. package/dist/esm/getGlobalStartContext.js.map +1 -1
  27. package/dist/esm/getRouterInstance.js +7 -6
  28. package/dist/esm/getRouterInstance.js.map +1 -1
  29. package/dist/esm/getStartContextServerOnly.js +7 -6
  30. package/dist/esm/getStartContextServerOnly.js.map +1 -1
  31. package/dist/esm/getStartOptions.js +7 -6
  32. package/dist/esm/getStartOptions.js.map +1 -1
  33. package/dist/esm/index.js +6 -37
  34. package/dist/esm/safeObjectMerge.js +24 -24
  35. package/dist/esm/safeObjectMerge.js.map +1 -1
  36. package/package.json +4 -4
  37. package/dist/esm/client/index.js.map +0 -1
  38. package/dist/esm/client-rpc/index.js.map +0 -1
  39. package/dist/esm/index.js.map +0 -1
@@ -1,33 +1,29 @@
1
1
  import { createMiddleware } from "./createMiddleware.js";
2
+ //#region src/createStart.ts
2
3
  function dedupeSerializationAdapters(deduped, serializationAdapters) {
3
- for (let i = 0, len = serializationAdapters.length; i < len; i++) {
4
- const current = serializationAdapters[i];
5
- if (!deduped.has(current)) {
6
- deduped.add(current);
7
- if (current.extends) {
8
- dedupeSerializationAdapters(deduped, current.extends);
9
- }
10
- }
11
- }
4
+ for (let i = 0, len = serializationAdapters.length; i < len; i++) {
5
+ const current = serializationAdapters[i];
6
+ if (!deduped.has(current)) {
7
+ deduped.add(current);
8
+ if (current.extends) dedupeSerializationAdapters(deduped, current.extends);
9
+ }
10
+ }
12
11
  }
13
- const createStart = (getOptions) => {
14
- return {
15
- getOptions: async () => {
16
- const options = await getOptions();
17
- if (options.serializationAdapters) {
18
- const deduped = /* @__PURE__ */ new Set();
19
- dedupeSerializationAdapters(
20
- deduped,
21
- options.serializationAdapters
22
- );
23
- options.serializationAdapters = Array.from(deduped);
24
- }
25
- return options;
26
- },
27
- createMiddleware
28
- };
12
+ var createStart = (getOptions) => {
13
+ return {
14
+ getOptions: async () => {
15
+ const options = await getOptions();
16
+ if (options.serializationAdapters) {
17
+ const deduped = /* @__PURE__ */ new Set();
18
+ dedupeSerializationAdapters(deduped, options.serializationAdapters);
19
+ options.serializationAdapters = Array.from(deduped);
20
+ }
21
+ return options;
22
+ },
23
+ createMiddleware
24
+ };
29
25
  };
30
- export {
31
- createStart
32
- };
33
- //# sourceMappingURL=createStart.js.map
26
+ //#endregion
27
+ export { createStart };
28
+
29
+ //# sourceMappingURL=createStart.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"createStart.js","sources":["../../src/createStart.ts"],"sourcesContent":["import { createMiddleware } from './createMiddleware'\nimport type { TSS_SERVER_FUNCTION } from './constants'\nimport type {\n AnyFunctionMiddleware,\n AnyRequestMiddleware,\n CreateMiddlewareFn,\n} from './createMiddleware'\nimport type { CustomFetch } from './createServerFn'\nimport type {\n AnySerializationAdapter,\n Register,\n SSROption,\n} from '@tanstack/router-core'\n\nexport interface StartInstanceOptions<\n in out TSerializationAdapters,\n in out TDefaultSsr,\n in out TRequestMiddlewares,\n in out TFunctionMiddlewares,\n> {\n '~types': StartInstanceTypes<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >\n serializationAdapters?: TSerializationAdapters\n defaultSsr?: TDefaultSsr\n requestMiddleware?: TRequestMiddlewares\n functionMiddleware?: TFunctionMiddlewares\n /**\n * Configuration options for server functions.\n */\n serverFns?: {\n /**\n * A custom fetch implementation to use for all server function calls.\n * This can be overridden by middleware or at the call site.\n *\n * Precedence (highest to lowest):\n * 1. Call site: `serverFn({ fetch: customFetch })`\n * 2. Later middleware: Last middleware in chain that provides `fetch`\n * 3. Earlier middleware: First middleware in chain that provides `fetch`\n * 4. createStart: `createStart({ serverFns: { fetch: customFetch } })`\n * 5. Default: Global `fetch` function\n *\n * @note Only applies on the client side. During SSR, server functions are called directly.\n */\n fetch?: CustomFetch\n }\n}\n\nexport interface StartInstance<\n in out TSerializationAdapters,\n in out TDefaultSsr,\n in out TRequestMiddlewares,\n in out TFunctionMiddlewares,\n> {\n getOptions: () =>\n | Promise<\n StartInstanceOptions<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >\n >\n | StartInstanceOptions<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >\n createMiddleware: CreateMiddlewareFn<Register>\n}\n\nexport interface StartInstanceTypes<\n in out TSerializationAdapters,\n in out TDefaultSsr,\n in out TRequestMiddlewares,\n in out TFunctionMiddlewares,\n> {\n serializationAdapters: TSerializationAdapters\n defaultSsr: TDefaultSsr\n requestMiddleware: TRequestMiddlewares\n functionMiddleware: TFunctionMiddlewares\n}\n\nfunction dedupeSerializationAdapters(\n deduped: Set<AnySerializationAdapter>,\n serializationAdapters: Array<AnySerializationAdapter>,\n): void {\n for (let i = 0, len = serializationAdapters.length; i < len; i++) {\n const current = serializationAdapters[i]!\n if (!deduped.has(current)) {\n deduped.add(current)\n if (current.extends) {\n dedupeSerializationAdapters(deduped, current.extends)\n }\n }\n }\n}\n\nexport const createStart = <\n const TSerializationAdapters extends ReadonlyArray<AnySerializationAdapter> =\n [],\n TDefaultSsr extends SSROption = SSROption,\n const TRequestMiddlewares extends ReadonlyArray<AnyRequestMiddleware> = [],\n const TFunctionMiddlewares extends ReadonlyArray<AnyFunctionMiddleware> = [],\n>(\n getOptions: () =>\n | Promise<\n Omit<\n StartInstanceOptions<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >,\n '~types'\n >\n >\n | Omit<\n StartInstanceOptions<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >,\n '~types'\n >,\n): StartInstance<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n> => {\n return {\n getOptions: async () => {\n const options = await getOptions()\n if (options.serializationAdapters) {\n const deduped = new Set<AnySerializationAdapter>()\n dedupeSerializationAdapters(\n deduped,\n options.serializationAdapters as unknown as Array<AnySerializationAdapter>,\n )\n options.serializationAdapters = Array.from(deduped) as any\n }\n return options\n },\n createMiddleware: createMiddleware,\n } as StartInstance<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >\n}\n\nexport type AnyStartInstance = StartInstance<any, any, any, any>\nexport type AnyStartInstanceOptions = StartInstanceOptions<any, any, any, any>\n\ndeclare module '@tanstack/router-core' {\n interface SerializableExtensions {\n serverFn: { [TSS_SERVER_FUNCTION]: true }\n }\n}\n"],"names":[],"mappings":";AAuFA,SAAS,4BACP,SACA,uBACM;AACN,WAAS,IAAI,GAAG,MAAM,sBAAsB,QAAQ,IAAI,KAAK,KAAK;AAChE,UAAM,UAAU,sBAAsB,CAAC;AACvC,QAAI,CAAC,QAAQ,IAAI,OAAO,GAAG;AACzB,cAAQ,IAAI,OAAO;AACnB,UAAI,QAAQ,SAAS;AACnB,oCAA4B,SAAS,QAAQ,OAAO;AAAA,MACtD;AAAA,IACF;AAAA,EACF;AACF;AAEO,MAAM,cAAc,CAOzB,eA0BG;AACH,SAAO;AAAA,IACL,YAAY,YAAY;AACtB,YAAM,UAAU,MAAM,WAAA;AACtB,UAAI,QAAQ,uBAAuB;AACjC,cAAM,8BAAc,IAAA;AACpB;AAAA,UACE;AAAA,UACA,QAAQ;AAAA,QAAA;AAEV,gBAAQ,wBAAwB,MAAM,KAAK,OAAO;AAAA,MACpD;AACA,aAAO;AAAA,IACT;AAAA,IACA;AAAA,EAAA;AAOJ;"}
1
+ {"version":3,"file":"createStart.js","names":[],"sources":["../../src/createStart.ts"],"sourcesContent":["import { createMiddleware } from './createMiddleware'\nimport type { TSS_SERVER_FUNCTION } from './constants'\nimport type {\n AnyFunctionMiddleware,\n AnyRequestMiddleware,\n CreateMiddlewareFn,\n} from './createMiddleware'\nimport type { CustomFetch } from './createServerFn'\nimport type {\n AnySerializationAdapter,\n Register,\n SSROption,\n} from '@tanstack/router-core'\n\nexport interface StartInstanceOptions<\n in out TSerializationAdapters,\n in out TDefaultSsr,\n in out TRequestMiddlewares,\n in out TFunctionMiddlewares,\n> {\n '~types': StartInstanceTypes<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >\n serializationAdapters?: TSerializationAdapters\n defaultSsr?: TDefaultSsr\n requestMiddleware?: TRequestMiddlewares\n functionMiddleware?: TFunctionMiddlewares\n /**\n * Configuration options for server functions.\n */\n serverFns?: {\n /**\n * A custom fetch implementation to use for all server function calls.\n * This can be overridden by middleware or at the call site.\n *\n * Precedence (highest to lowest):\n * 1. Call site: `serverFn({ fetch: customFetch })`\n * 2. Later middleware: Last middleware in chain that provides `fetch`\n * 3. Earlier middleware: First middleware in chain that provides `fetch`\n * 4. createStart: `createStart({ serverFns: { fetch: customFetch } })`\n * 5. Default: Global `fetch` function\n *\n * @note Only applies on the client side. During SSR, server functions are called directly.\n */\n fetch?: CustomFetch\n }\n}\n\nexport interface StartInstance<\n in out TSerializationAdapters,\n in out TDefaultSsr,\n in out TRequestMiddlewares,\n in out TFunctionMiddlewares,\n> {\n getOptions: () =>\n | Promise<\n StartInstanceOptions<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >\n >\n | StartInstanceOptions<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >\n createMiddleware: CreateMiddlewareFn<Register>\n}\n\nexport interface StartInstanceTypes<\n in out TSerializationAdapters,\n in out TDefaultSsr,\n in out TRequestMiddlewares,\n in out TFunctionMiddlewares,\n> {\n serializationAdapters: TSerializationAdapters\n defaultSsr: TDefaultSsr\n requestMiddleware: TRequestMiddlewares\n functionMiddleware: TFunctionMiddlewares\n}\n\nfunction dedupeSerializationAdapters(\n deduped: Set<AnySerializationAdapter>,\n serializationAdapters: Array<AnySerializationAdapter>,\n): void {\n for (let i = 0, len = serializationAdapters.length; i < len; i++) {\n const current = serializationAdapters[i]!\n if (!deduped.has(current)) {\n deduped.add(current)\n if (current.extends) {\n dedupeSerializationAdapters(deduped, current.extends)\n }\n }\n }\n}\n\nexport const createStart = <\n const TSerializationAdapters extends ReadonlyArray<AnySerializationAdapter> =\n [],\n TDefaultSsr extends SSROption = SSROption,\n const TRequestMiddlewares extends ReadonlyArray<AnyRequestMiddleware> = [],\n const TFunctionMiddlewares extends ReadonlyArray<AnyFunctionMiddleware> = [],\n>(\n getOptions: () =>\n | Promise<\n Omit<\n StartInstanceOptions<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >,\n '~types'\n >\n >\n | Omit<\n StartInstanceOptions<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >,\n '~types'\n >,\n): StartInstance<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n> => {\n return {\n getOptions: async () => {\n const options = await getOptions()\n if (options.serializationAdapters) {\n const deduped = new Set<AnySerializationAdapter>()\n dedupeSerializationAdapters(\n deduped,\n options.serializationAdapters as unknown as Array<AnySerializationAdapter>,\n )\n options.serializationAdapters = Array.from(deduped) as any\n }\n return options\n },\n createMiddleware: createMiddleware,\n } as StartInstance<\n TSerializationAdapters,\n TDefaultSsr,\n TRequestMiddlewares,\n TFunctionMiddlewares\n >\n}\n\nexport type AnyStartInstance = StartInstance<any, any, any, any>\nexport type AnyStartInstanceOptions = StartInstanceOptions<any, any, any, any>\n\ndeclare module '@tanstack/router-core' {\n interface SerializableExtensions {\n serverFn: { [TSS_SERVER_FUNCTION]: true }\n }\n}\n"],"mappings":";;AAuFA,SAAS,4BACP,SACA,uBACM;AACN,MAAK,IAAI,IAAI,GAAG,MAAM,sBAAsB,QAAQ,IAAI,KAAK,KAAK;EAChE,MAAM,UAAU,sBAAsB;AACtC,MAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;AACzB,WAAQ,IAAI,QAAQ;AACpB,OAAI,QAAQ,QACV,6BAA4B,SAAS,QAAQ,QAAQ;;;;AAM7D,IAAa,eAOX,eA0BG;AACH,QAAO;EACL,YAAY,YAAY;GACtB,MAAM,UAAU,MAAM,YAAY;AAClC,OAAI,QAAQ,uBAAuB;IACjC,MAAM,0BAAU,IAAI,KAA8B;AAClD,gCACE,SACA,QAAQ,sBACT;AACD,YAAQ,wBAAwB,MAAM,KAAK,QAAQ;;AAErD,UAAO;;EAES;EACnB"}
@@ -1,8 +1,7 @@
1
- const startInstance = void 0;
2
- const getRouter = () => {
3
- };
4
- export {
5
- getRouter,
6
- startInstance
7
- };
8
- //# sourceMappingURL=fake-start-entry.js.map
1
+ //#region src/fake-start-entry.ts
2
+ var startInstance = void 0;
3
+ var getRouter = () => {};
4
+ //#endregion
5
+ export { getRouter, startInstance };
6
+
7
+ //# sourceMappingURL=fake-start-entry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"fake-start-entry.js","sources":["../../src/fake-start-entry.ts"],"sourcesContent":["export const startInstance = undefined\nexport const getRouter = () => {}\n"],"names":[],"mappings":"AAAO,MAAM,gBAAgB;AACtB,MAAM,YAAY,MAAM;AAAC;"}
1
+ {"version":3,"file":"fake-start-entry.js","names":[],"sources":["../../src/fake-start-entry.ts"],"sourcesContent":["export const startInstance = undefined\nexport const getRouter = () => {}\n"],"mappings":";AAAA,IAAa,gBAAgB,KAAA;AAC7B,IAAa,kBAAkB"}
@@ -1,14 +1,10 @@
1
- import { defaultSerovalPlugins, makeSerovalPlugin } from "@tanstack/router-core";
2
1
  import { getStartOptions } from "./getStartOptions.js";
2
+ import { defaultSerovalPlugins, makeSerovalPlugin } from "@tanstack/router-core";
3
+ //#region src/getDefaultSerovalPlugins.ts
3
4
  function getDefaultSerovalPlugins() {
4
- const start = getStartOptions();
5
- const adapters = start?.serializationAdapters;
6
- return [
7
- ...adapters?.map(makeSerovalPlugin) ?? [],
8
- ...defaultSerovalPlugins
9
- ];
5
+ return [...(getStartOptions()?.serializationAdapters)?.map(makeSerovalPlugin) ?? [], ...defaultSerovalPlugins];
10
6
  }
11
- export {
12
- getDefaultSerovalPlugins
13
- };
14
- //# sourceMappingURL=getDefaultSerovalPlugins.js.map
7
+ //#endregion
8
+ export { getDefaultSerovalPlugins };
9
+
10
+ //# sourceMappingURL=getDefaultSerovalPlugins.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getDefaultSerovalPlugins.js","sources":["../../src/getDefaultSerovalPlugins.ts"],"sourcesContent":["import {\n makeSerovalPlugin,\n defaultSerovalPlugins as routerDefaultSerovalPlugins,\n} from '@tanstack/router-core'\nimport { getStartOptions } from './getStartOptions'\nimport type { AnySerializationAdapter } from '@tanstack/router-core'\n\nexport function getDefaultSerovalPlugins() {\n const start = getStartOptions()\n const adapters = start?.serializationAdapters as\n | Array<AnySerializationAdapter>\n | undefined\n return [\n ...(adapters?.map(makeSerovalPlugin) ?? []),\n ...routerDefaultSerovalPlugins,\n ]\n}\n"],"names":["routerDefaultSerovalPlugins"],"mappings":";;AAOO,SAAS,2BAA2B;AACzC,QAAM,QAAQ,gBAAA;AACd,QAAM,WAAW,OAAO;AAGxB,SAAO;AAAA,IACL,GAAI,UAAU,IAAI,iBAAiB,KAAK,CAAA;AAAA,IACxC,GAAGA;AAAAA,EAAA;AAEP;"}
1
+ {"version":3,"file":"getDefaultSerovalPlugins.js","names":[],"sources":["../../src/getDefaultSerovalPlugins.ts"],"sourcesContent":["import {\n makeSerovalPlugin,\n defaultSerovalPlugins as routerDefaultSerovalPlugins,\n} from '@tanstack/router-core'\nimport { getStartOptions } from './getStartOptions'\nimport type { AnySerializationAdapter } from '@tanstack/router-core'\n\nexport function getDefaultSerovalPlugins() {\n const start = getStartOptions()\n const adapters = start?.serializationAdapters as\n | Array<AnySerializationAdapter>\n | undefined\n return [\n ...(adapters?.map(makeSerovalPlugin) ?? []),\n ...routerDefaultSerovalPlugins,\n ]\n}\n"],"mappings":";;;AAOA,SAAgB,2BAA2B;AAKzC,QAAO,CACL,IALY,iBAAiB,EACP,wBAIR,IAAI,kBAAkB,IAAI,EAAE,EAC1C,GAAG,sBACJ"}
@@ -1,15 +1,12 @@
1
- import { getStartContext } from "@tanstack/start-storage-context";
2
1
  import { createIsomorphicFn } from "@tanstack/start-fn-stubs";
3
- const getGlobalStartContext = createIsomorphicFn().client(() => void 0).server(() => {
4
- const context = getStartContext().contextAfterGlobalMiddlewares;
5
- if (!context) {
6
- throw new Error(
7
- `Global context not set yet, you are calling getGlobalStartContext() before the global middlewares are applied.`
8
- );
9
- }
10
- return context;
2
+ import { getStartContext } from "@tanstack/start-storage-context";
3
+ //#region src/getGlobalStartContext.ts
4
+ var getGlobalStartContext = createIsomorphicFn().client(() => void 0).server(() => {
5
+ const context = getStartContext().contextAfterGlobalMiddlewares;
6
+ if (!context) throw new Error(`Global context not set yet, you are calling getGlobalStartContext() before the global middlewares are applied.`);
7
+ return context;
11
8
  });
12
- export {
13
- getGlobalStartContext
14
- };
15
- //# sourceMappingURL=getGlobalStartContext.js.map
9
+ //#endregion
10
+ export { getGlobalStartContext };
11
+
12
+ //# sourceMappingURL=getGlobalStartContext.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getGlobalStartContext.js","sources":["../../src/getGlobalStartContext.ts"],"sourcesContent":["import { getStartContext } from '@tanstack/start-storage-context'\nimport { createIsomorphicFn } from '@tanstack/start-fn-stubs'\nimport type { AssignAllServerRequestContext } from './createMiddleware'\nimport type { Expand, Register } from '@tanstack/router-core'\n\nexport const getGlobalStartContext: () =>\n | Expand<AssignAllServerRequestContext<Register, []>>\n | undefined = createIsomorphicFn()\n .client(() => undefined)\n .server(() => {\n const context = getStartContext().contextAfterGlobalMiddlewares\n if (!context) {\n throw new Error(\n `Global context not set yet, you are calling getGlobalStartContext() before the global middlewares are applied.`,\n )\n }\n return context\n })\n"],"names":[],"mappings":";;AAKO,MAAM,wBAEG,qBACb,OAAO,MAAM,MAAS,EACtB,OAAO,MAAM;AACZ,QAAM,UAAU,kBAAkB;AAClC,MAAI,CAAC,SAAS;AACZ,UAAM,IAAI;AAAA,MACR;AAAA,IAAA;AAAA,EAEJ;AACA,SAAO;AACT,CAAC;"}
1
+ {"version":3,"file":"getGlobalStartContext.js","names":[],"sources":["../../src/getGlobalStartContext.ts"],"sourcesContent":["import { getStartContext } from '@tanstack/start-storage-context'\nimport { createIsomorphicFn } from '@tanstack/start-fn-stubs'\nimport type { AssignAllServerRequestContext } from './createMiddleware'\nimport type { Expand, Register } from '@tanstack/router-core'\n\nexport const getGlobalStartContext: () =>\n | Expand<AssignAllServerRequestContext<Register, []>>\n | undefined = createIsomorphicFn()\n .client(() => undefined)\n .server(() => {\n const context = getStartContext().contextAfterGlobalMiddlewares\n if (!context) {\n throw new Error(\n `Global context not set yet, you are calling getGlobalStartContext() before the global middlewares are applied.`,\n )\n }\n return context\n })\n"],"mappings":";;;AAKA,IAAa,wBAEG,oBAAoB,CACjC,aAAa,KAAA,EAAU,CACvB,aAAa;CACZ,MAAM,UAAU,iBAAiB,CAAC;AAClC,KAAI,CAAC,QACH,OAAM,IAAI,MACR,iHACD;AAEH,QAAO;EACP"}
@@ -1,7 +1,8 @@
1
- import { getStartContext } from "@tanstack/start-storage-context";
2
1
  import { createIsomorphicFn } from "@tanstack/start-fn-stubs";
3
- const getRouterInstance = createIsomorphicFn().client(() => window.__TSR_ROUTER__).server(() => getStartContext().getRouter());
4
- export {
5
- getRouterInstance
6
- };
7
- //# sourceMappingURL=getRouterInstance.js.map
2
+ import { getStartContext } from "@tanstack/start-storage-context";
3
+ //#region src/getRouterInstance.ts
4
+ var getRouterInstance = createIsomorphicFn().client(() => window.__TSR_ROUTER__).server(() => getStartContext().getRouter());
5
+ //#endregion
6
+ export { getRouterInstance };
7
+
8
+ //# sourceMappingURL=getRouterInstance.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getRouterInstance.js","sources":["../../src/getRouterInstance.ts"],"sourcesContent":["import { getStartContext } from '@tanstack/start-storage-context'\nimport { createIsomorphicFn } from '@tanstack/start-fn-stubs'\nimport type { Awaitable, RegisteredRouter } from '@tanstack/router-core'\n\nexport const getRouterInstance: () => Awaitable<RegisteredRouter> =\n createIsomorphicFn()\n .client(() => window.__TSR_ROUTER__!)\n .server(() => getStartContext().getRouter())\n"],"names":[],"mappings":";;AAIO,MAAM,oBACX,mBAAA,EACG,OAAO,MAAM,OAAO,cAAe,EACnC,OAAO,MAAM,gBAAA,EAAkB,WAAW;"}
1
+ {"version":3,"file":"getRouterInstance.js","names":[],"sources":["../../src/getRouterInstance.ts"],"sourcesContent":["import { getStartContext } from '@tanstack/start-storage-context'\nimport { createIsomorphicFn } from '@tanstack/start-fn-stubs'\nimport type { Awaitable, RegisteredRouter } from '@tanstack/router-core'\n\nexport const getRouterInstance: () => Awaitable<RegisteredRouter> =\n createIsomorphicFn()\n .client(() => window.__TSR_ROUTER__!)\n .server(() => getStartContext().getRouter())\n"],"mappings":";;;AAIA,IAAa,oBACX,oBAAoB,CACjB,aAAa,OAAO,eAAgB,CACpC,aAAa,iBAAiB,CAAC,WAAW,CAAC"}
@@ -1,7 +1,8 @@
1
- import { getStartContext } from "@tanstack/start-storage-context";
2
1
  import { createServerOnlyFn } from "@tanstack/start-fn-stubs";
3
- const getStartContextServerOnly = createServerOnlyFn(getStartContext);
4
- export {
5
- getStartContextServerOnly
6
- };
7
- //# sourceMappingURL=getStartContextServerOnly.js.map
2
+ import { getStartContext } from "@tanstack/start-storage-context";
3
+ //#region src/getStartContextServerOnly.ts
4
+ var getStartContextServerOnly = createServerOnlyFn(getStartContext);
5
+ //#endregion
6
+ export { getStartContextServerOnly };
7
+
8
+ //# sourceMappingURL=getStartContextServerOnly.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getStartContextServerOnly.js","sources":["../../src/getStartContextServerOnly.ts"],"sourcesContent":["import { getStartContext } from '@tanstack/start-storage-context'\nimport { createServerOnlyFn } from '@tanstack/start-fn-stubs'\n\nexport const getStartContextServerOnly = createServerOnlyFn(getStartContext)\n"],"names":[],"mappings":";;AAGO,MAAM,4BAA4B,mBAAmB,eAAe;"}
1
+ {"version":3,"file":"getStartContextServerOnly.js","names":[],"sources":["../../src/getStartContextServerOnly.ts"],"sourcesContent":["import { getStartContext } from '@tanstack/start-storage-context'\nimport { createServerOnlyFn } from '@tanstack/start-fn-stubs'\n\nexport const getStartContextServerOnly = createServerOnlyFn(getStartContext)\n"],"mappings":";;;AAGA,IAAa,4BAA4B,mBAAmB,gBAAgB"}
@@ -1,7 +1,8 @@
1
- import { getStartContext } from "@tanstack/start-storage-context";
2
1
  import { createIsomorphicFn } from "@tanstack/start-fn-stubs";
3
- const getStartOptions = createIsomorphicFn().client(() => window.__TSS_START_OPTIONS__).server(() => getStartContext().startOptions);
4
- export {
5
- getStartOptions
6
- };
7
- //# sourceMappingURL=getStartOptions.js.map
2
+ import { getStartContext } from "@tanstack/start-storage-context";
3
+ //#region src/getStartOptions.ts
4
+ var getStartOptions = createIsomorphicFn().client(() => window.__TSS_START_OPTIONS__).server(() => getStartContext().startOptions);
5
+ //#endregion
6
+ export { getStartOptions };
7
+
8
+ //# sourceMappingURL=getStartOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"getStartOptions.js","sources":["../../src/getStartOptions.ts"],"sourcesContent":["import { getStartContext } from '@tanstack/start-storage-context'\nimport { createIsomorphicFn } from '@tanstack/start-fn-stubs'\nimport type { AnyStartInstanceOptions } from './createStart'\n\nexport const getStartOptions: () => AnyStartInstanceOptions | undefined =\n createIsomorphicFn()\n .client(() => window.__TSS_START_OPTIONS__)\n .server(() => getStartContext().startOptions)\n"],"names":[],"mappings":";;AAIO,MAAM,kBACX,qBACG,OAAO,MAAM,OAAO,qBAAqB,EACzC,OAAO,MAAM,gBAAA,EAAkB,YAAY;"}
1
+ {"version":3,"file":"getStartOptions.js","names":[],"sources":["../../src/getStartOptions.ts"],"sourcesContent":["import { getStartContext } from '@tanstack/start-storage-context'\nimport { createIsomorphicFn } from '@tanstack/start-fn-stubs'\nimport type { AnyStartInstanceOptions } from './createStart'\n\nexport const getStartOptions: () => AnyStartInstanceOptions | undefined =\n createIsomorphicFn()\n .client(() => window.__TSS_START_OPTIONS__)\n .server(() => getStartContext().startOptions)\n"],"mappings":";;;AAIA,IAAa,kBACX,oBAAoB,CACjB,aAAa,OAAO,sBAAsB,CAC1C,aAAa,iBAAiB,CAAC,aAAa"}
package/dist/esm/index.js CHANGED
@@ -1,43 +1,12 @@
1
- import { hydrate, json, mergeHeaders } from "@tanstack/router-core/ssr/client";
2
- import { RawStream } from "@tanstack/router-core";
3
- import { createClientOnlyFn, createIsomorphicFn, createServerOnlyFn } from "@tanstack/start-fn-stubs";
1
+ import { FRAME_HEADER_SIZE, FrameType, TSS_CONTENT_TYPE_FRAMED, TSS_CONTENT_TYPE_FRAMED_VERSIONED, TSS_FORMDATA_CONTEXT, TSS_FRAMED_PROTOCOL_VERSION, TSS_SERVER_FUNCTION, X_TSS_CONTEXT, X_TSS_RAW_RESPONSE, X_TSS_SERIALIZED, validateFramedProtocolVersion } from "./constants.js";
2
+ import { createNullProtoObject, safeObjectMerge } from "./safeObjectMerge.js";
4
3
  import { createServerFn, execValidator, executeMiddleware, flattenMiddlewares } from "./createServerFn.js";
5
4
  import { createMiddleware } from "./createMiddleware.js";
6
- import { FRAME_HEADER_SIZE, FrameType, TSS_CONTENT_TYPE_FRAMED, TSS_CONTENT_TYPE_FRAMED_VERSIONED, TSS_FORMDATA_CONTEXT, TSS_FRAMED_PROTOCOL_VERSION, TSS_SERVER_FUNCTION, X_TSS_CONTEXT, X_TSS_RAW_RESPONSE, X_TSS_SERIALIZED, validateFramedProtocolVersion } from "./constants.js";
7
5
  import { createStart } from "./createStart.js";
8
6
  import { getRouterInstance } from "./getRouterInstance.js";
9
7
  import { getDefaultSerovalPlugins } from "./getDefaultSerovalPlugins.js";
10
8
  import { getGlobalStartContext } from "./getGlobalStartContext.js";
11
- import { createNullProtoObject, safeObjectMerge } from "./safeObjectMerge.js";
12
- export {
13
- FRAME_HEADER_SIZE,
14
- FrameType,
15
- RawStream,
16
- TSS_CONTENT_TYPE_FRAMED,
17
- TSS_CONTENT_TYPE_FRAMED_VERSIONED,
18
- TSS_FORMDATA_CONTEXT,
19
- TSS_FRAMED_PROTOCOL_VERSION,
20
- TSS_SERVER_FUNCTION,
21
- X_TSS_CONTEXT,
22
- X_TSS_RAW_RESPONSE,
23
- X_TSS_SERIALIZED,
24
- createClientOnlyFn,
25
- createIsomorphicFn,
26
- createMiddleware,
27
- createNullProtoObject,
28
- createServerFn,
29
- createServerOnlyFn,
30
- createStart,
31
- execValidator,
32
- executeMiddleware,
33
- flattenMiddlewares,
34
- getDefaultSerovalPlugins,
35
- getGlobalStartContext,
36
- getRouterInstance,
37
- hydrate,
38
- json,
39
- mergeHeaders,
40
- safeObjectMerge,
41
- validateFramedProtocolVersion
42
- };
43
- //# sourceMappingURL=index.js.map
9
+ import { hydrate, json, mergeHeaders } from "@tanstack/router-core/ssr/client";
10
+ import { RawStream } from "@tanstack/router-core";
11
+ import { createClientOnlyFn, createIsomorphicFn, createServerOnlyFn } from "@tanstack/start-fn-stubs";
12
+ export { FRAME_HEADER_SIZE, FrameType, RawStream, TSS_CONTENT_TYPE_FRAMED, TSS_CONTENT_TYPE_FRAMED_VERSIONED, TSS_FORMDATA_CONTEXT, TSS_FRAMED_PROTOCOL_VERSION, TSS_SERVER_FUNCTION, X_TSS_CONTEXT, X_TSS_RAW_RESPONSE, X_TSS_SERIALIZED, createClientOnlyFn, createIsomorphicFn, createMiddleware, createNullProtoObject, createServerFn, createServerOnlyFn, createStart, execValidator, executeMiddleware, flattenMiddlewares, getDefaultSerovalPlugins, getGlobalStartContext, getRouterInstance, hydrate, json, mergeHeaders, safeObjectMerge, validateFramedProtocolVersion };
@@ -1,30 +1,30 @@
1
+ //#region src/safeObjectMerge.ts
1
2
  function isSafeKey(key) {
2
- return key !== "__proto__" && key !== "constructor" && key !== "prototype";
3
+ return key !== "__proto__" && key !== "constructor" && key !== "prototype";
3
4
  }
5
+ /**
6
+ * Merge target and source into a new null-proto object, filtering dangerous keys.
7
+ */
4
8
  function safeObjectMerge(target, source) {
5
- const result = /* @__PURE__ */ Object.create(null);
6
- if (target) {
7
- for (const key of Object.keys(target)) {
8
- if (isSafeKey(key)) result[key] = target[key];
9
- }
10
- }
11
- if (source && typeof source === "object") {
12
- for (const key of Object.keys(source)) {
13
- if (isSafeKey(key)) result[key] = source[key];
14
- }
15
- }
16
- return result;
9
+ const result = Object.create(null);
10
+ if (target) {
11
+ for (const key of Object.keys(target)) if (isSafeKey(key)) result[key] = target[key];
12
+ }
13
+ if (source && typeof source === "object") {
14
+ for (const key of Object.keys(source)) if (isSafeKey(key)) result[key] = source[key];
15
+ }
16
+ return result;
17
17
  }
18
+ /**
19
+ * Create a null-prototype object, optionally copying from source.
20
+ */
18
21
  function createNullProtoObject(source) {
19
- if (!source) return /* @__PURE__ */ Object.create(null);
20
- const obj = /* @__PURE__ */ Object.create(null);
21
- for (const key of Object.keys(source)) {
22
- if (isSafeKey(key)) obj[key] = source[key];
23
- }
24
- return obj;
22
+ if (!source) return Object.create(null);
23
+ const obj = Object.create(null);
24
+ for (const key of Object.keys(source)) if (isSafeKey(key)) obj[key] = source[key];
25
+ return obj;
25
26
  }
26
- export {
27
- createNullProtoObject,
28
- safeObjectMerge
29
- };
30
- //# sourceMappingURL=safeObjectMerge.js.map
27
+ //#endregion
28
+ export { createNullProtoObject, safeObjectMerge };
29
+
30
+ //# sourceMappingURL=safeObjectMerge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"safeObjectMerge.js","sources":["../../src/safeObjectMerge.ts"],"sourcesContent":["function isSafeKey(key: string): boolean {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype'\n}\n\n/**\n * Merge target and source into a new null-proto object, filtering dangerous keys.\n */\nexport function safeObjectMerge<T extends Record<string, unknown>>(\n target: T | undefined,\n source: Record<string, unknown> | null | undefined,\n): T {\n const result = Object.create(null) as T\n if (target) {\n for (const key of Object.keys(target)) {\n if (isSafeKey(key)) result[key as keyof T] = target[key] as T[keyof T]\n }\n }\n if (source && typeof source === 'object') {\n for (const key of Object.keys(source)) {\n if (isSafeKey(key)) result[key as keyof T] = source[key] as T[keyof T]\n }\n }\n return result\n}\n\n/**\n * Create a null-prototype object, optionally copying from source.\n */\nexport function createNullProtoObject<T extends object>(\n source?: T,\n): { [K in keyof T]: T[K] } {\n if (!source) return Object.create(null)\n const obj = Object.create(null)\n for (const key of Object.keys(source)) {\n if (isSafeKey(key)) obj[key] = (source as Record<string, unknown>)[key]\n }\n return obj\n}\n"],"names":[],"mappings":"AAAA,SAAS,UAAU,KAAsB;AACvC,SAAO,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ;AACjE;AAKO,SAAS,gBACd,QACA,QACG;AACH,QAAM,SAAS,uBAAO,OAAO,IAAI;AACjC,MAAI,QAAQ;AACV,eAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,UAAI,UAAU,GAAG,UAAU,GAAc,IAAI,OAAO,GAAG;AAAA,IACzD;AAAA,EACF;AACA,MAAI,UAAU,OAAO,WAAW,UAAU;AACxC,eAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,UAAI,UAAU,GAAG,UAAU,GAAc,IAAI,OAAO,GAAG;AAAA,IACzD;AAAA,EACF;AACA,SAAO;AACT;AAKO,SAAS,sBACd,QAC0B;AAC1B,MAAI,CAAC,OAAQ,QAAO,uBAAO,OAAO,IAAI;AACtC,QAAM,MAAM,uBAAO,OAAO,IAAI;AAC9B,aAAW,OAAO,OAAO,KAAK,MAAM,GAAG;AACrC,QAAI,UAAU,GAAG,OAAO,GAAG,IAAK,OAAmC,GAAG;AAAA,EACxE;AACA,SAAO;AACT;"}
1
+ {"version":3,"file":"safeObjectMerge.js","names":[],"sources":["../../src/safeObjectMerge.ts"],"sourcesContent":["function isSafeKey(key: string): boolean {\n return key !== '__proto__' && key !== 'constructor' && key !== 'prototype'\n}\n\n/**\n * Merge target and source into a new null-proto object, filtering dangerous keys.\n */\nexport function safeObjectMerge<T extends Record<string, unknown>>(\n target: T | undefined,\n source: Record<string, unknown> | null | undefined,\n): T {\n const result = Object.create(null) as T\n if (target) {\n for (const key of Object.keys(target)) {\n if (isSafeKey(key)) result[key as keyof T] = target[key] as T[keyof T]\n }\n }\n if (source && typeof source === 'object') {\n for (const key of Object.keys(source)) {\n if (isSafeKey(key)) result[key as keyof T] = source[key] as T[keyof T]\n }\n }\n return result\n}\n\n/**\n * Create a null-prototype object, optionally copying from source.\n */\nexport function createNullProtoObject<T extends object>(\n source?: T,\n): { [K in keyof T]: T[K] } {\n if (!source) return Object.create(null)\n const obj = Object.create(null)\n for (const key of Object.keys(source)) {\n if (isSafeKey(key)) obj[key] = (source as Record<string, unknown>)[key]\n }\n return obj\n}\n"],"mappings":";AAAA,SAAS,UAAU,KAAsB;AACvC,QAAO,QAAQ,eAAe,QAAQ,iBAAiB,QAAQ;;;;;AAMjE,SAAgB,gBACd,QACA,QACG;CACH,MAAM,SAAS,OAAO,OAAO,KAAK;AAClC,KAAI;OACG,MAAM,OAAO,OAAO,KAAK,OAAO,CACnC,KAAI,UAAU,IAAI,CAAE,QAAO,OAAkB,OAAO;;AAGxD,KAAI,UAAU,OAAO,WAAW;OACzB,MAAM,OAAO,OAAO,KAAK,OAAO,CACnC,KAAI,UAAU,IAAI,CAAE,QAAO,OAAkB,OAAO;;AAGxD,QAAO;;;;;AAMT,SAAgB,sBACd,QAC0B;AAC1B,KAAI,CAAC,OAAQ,QAAO,OAAO,OAAO,KAAK;CACvC,MAAM,MAAM,OAAO,OAAO,KAAK;AAC/B,MAAK,MAAM,OAAO,OAAO,KAAK,OAAO,CACnC,KAAI,UAAU,IAAI,CAAE,KAAI,OAAQ,OAAmC;AAErE,QAAO"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tanstack/start-client-core",
3
- "version": "1.166.8",
3
+ "version": "1.166.10",
4
4
  "description": "Modern and scalable routing for React applications",
5
5
  "author": "Tanner Linsley",
6
6
  "license": "MIT",
@@ -66,9 +66,9 @@
66
66
  "seroval": "^1.4.2",
67
67
  "tiny-invariant": "^1.3.3",
68
68
  "tiny-warning": "^1.0.3",
69
- "@tanstack/start-fn-stubs": "1.161.4",
70
- "@tanstack/router-core": "1.167.0",
71
- "@tanstack/start-storage-context": "1.166.8"
69
+ "@tanstack/router-core": "1.167.2",
70
+ "@tanstack/start-fn-stubs": "1.161.6",
71
+ "@tanstack/start-storage-context": "1.166.10"
72
72
  },
73
73
  "devDependencies": {
74
74
  "vite": "*"
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}