@tanstack/cli 0.0.1 → 0.0.3

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/dist/index.d.cts CHANGED
@@ -217,7 +217,7 @@ declare const IntegrationInfoSchema: z.ZodObject<{
217
217
  requiresTailwind: z.ZodOptional<z.ZodBoolean>;
218
218
  demoRequiresTailwind: z.ZodOptional<z.ZodBoolean>;
219
219
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
220
- conflicts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
220
+ exclusive: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
221
221
  partnerId: z.ZodOptional<z.ZodString>;
222
222
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
223
223
  type: z.ZodLiteral<"select">;
@@ -392,7 +392,7 @@ declare const IntegrationInfoSchema: z.ZodObject<{
392
392
  requiresTailwind?: boolean | undefined;
393
393
  demoRequiresTailwind?: boolean | undefined;
394
394
  dependsOn?: string[] | undefined;
395
- conflicts?: string[] | undefined;
395
+ exclusive?: string[] | undefined;
396
396
  partnerId?: string | undefined;
397
397
  hooks?: {
398
398
  type?: "header-user" | "provider" | "root-provider" | "layout" | "vite-plugin" | "devtools" | "entry-client" | undefined;
@@ -463,7 +463,7 @@ declare const IntegrationInfoSchema: z.ZodObject<{
463
463
  requiresTailwind?: boolean | undefined;
464
464
  demoRequiresTailwind?: boolean | undefined;
465
465
  dependsOn?: string[] | undefined;
466
- conflicts?: string[] | undefined;
466
+ exclusive?: string[] | undefined;
467
467
  partnerId?: string | undefined;
468
468
  hooks?: {
469
469
  type?: "header-user" | "provider" | "root-provider" | "layout" | "vite-plugin" | "devtools" | "entry-client" | undefined;
@@ -511,7 +511,7 @@ declare const IntegrationCompiledSchema: z.ZodObject<{
511
511
  requiresTailwind: z.ZodOptional<z.ZodBoolean>;
512
512
  demoRequiresTailwind: z.ZodOptional<z.ZodBoolean>;
513
513
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
514
- conflicts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
514
+ exclusive: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
515
515
  partnerId: z.ZodOptional<z.ZodString>;
516
516
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
517
517
  type: z.ZodLiteral<"select">;
@@ -691,7 +691,7 @@ declare const IntegrationCompiledSchema: z.ZodObject<{
691
691
  requiresTailwind?: boolean | undefined;
692
692
  demoRequiresTailwind?: boolean | undefined;
693
693
  dependsOn?: string[] | undefined;
694
- conflicts?: string[] | undefined;
694
+ exclusive?: string[] | undefined;
695
695
  partnerId?: string | undefined;
696
696
  hooks?: {
697
697
  type?: "header-user" | "provider" | "root-provider" | "layout" | "vite-plugin" | "devtools" | "entry-client" | undefined;
@@ -764,7 +764,7 @@ declare const IntegrationCompiledSchema: z.ZodObject<{
764
764
  requiresTailwind?: boolean | undefined;
765
765
  demoRequiresTailwind?: boolean | undefined;
766
766
  dependsOn?: string[] | undefined;
767
- conflicts?: string[] | undefined;
767
+ exclusive?: string[] | undefined;
768
768
  partnerId?: string | undefined;
769
769
  hooks?: {
770
770
  type?: "header-user" | "provider" | "root-provider" | "layout" | "vite-plugin" | "devtools" | "entry-client" | undefined;
@@ -875,7 +875,7 @@ declare const ManifestIntegrationSchema: z.ZodObject<{
875
875
  category: z.ZodOptional<z.ZodEnum<["tanstack", "database", "orm", "auth", "deploy", "tooling", "monitoring", "api", "i18n", "cms", "other"]>>;
876
876
  modes: z.ZodArray<z.ZodEnum<["file-router", "code-router"]>, "many">;
877
877
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
878
- conflicts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
878
+ exclusive: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
879
879
  partnerId: z.ZodOptional<z.ZodString>;
880
880
  hasOptions: z.ZodOptional<z.ZodBoolean>;
881
881
  link: z.ZodOptional<z.ZodString>;
@@ -893,7 +893,7 @@ declare const ManifestIntegrationSchema: z.ZodObject<{
893
893
  requiresTailwind?: boolean | undefined;
894
894
  demoRequiresTailwind?: boolean | undefined;
895
895
  dependsOn?: string[] | undefined;
896
- conflicts?: string[] | undefined;
896
+ exclusive?: string[] | undefined;
897
897
  partnerId?: string | undefined;
898
898
  hasOptions?: boolean | undefined;
899
899
  color?: string | undefined;
@@ -908,7 +908,7 @@ declare const ManifestIntegrationSchema: z.ZodObject<{
908
908
  requiresTailwind?: boolean | undefined;
909
909
  demoRequiresTailwind?: boolean | undefined;
910
910
  dependsOn?: string[] | undefined;
911
- conflicts?: string[] | undefined;
911
+ exclusive?: string[] | undefined;
912
912
  partnerId?: string | undefined;
913
913
  hasOptions?: boolean | undefined;
914
914
  color?: string | undefined;
@@ -925,7 +925,7 @@ declare const ManifestSchema: z.ZodObject<{
925
925
  category: z.ZodOptional<z.ZodEnum<["tanstack", "database", "orm", "auth", "deploy", "tooling", "monitoring", "api", "i18n", "cms", "other"]>>;
926
926
  modes: z.ZodArray<z.ZodEnum<["file-router", "code-router"]>, "many">;
927
927
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
928
- conflicts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
928
+ exclusive: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
929
929
  partnerId: z.ZodOptional<z.ZodString>;
930
930
  hasOptions: z.ZodOptional<z.ZodBoolean>;
931
931
  link: z.ZodOptional<z.ZodString>;
@@ -943,7 +943,7 @@ declare const ManifestSchema: z.ZodObject<{
943
943
  requiresTailwind?: boolean | undefined;
944
944
  demoRequiresTailwind?: boolean | undefined;
945
945
  dependsOn?: string[] | undefined;
946
- conflicts?: string[] | undefined;
946
+ exclusive?: string[] | undefined;
947
947
  partnerId?: string | undefined;
948
948
  hasOptions?: boolean | undefined;
949
949
  color?: string | undefined;
@@ -958,7 +958,7 @@ declare const ManifestSchema: z.ZodObject<{
958
958
  requiresTailwind?: boolean | undefined;
959
959
  demoRequiresTailwind?: boolean | undefined;
960
960
  dependsOn?: string[] | undefined;
961
- conflicts?: string[] | undefined;
961
+ exclusive?: string[] | undefined;
962
962
  partnerId?: string | undefined;
963
963
  hasOptions?: boolean | undefined;
964
964
  color?: string | undefined;
@@ -998,7 +998,7 @@ declare const ManifestSchema: z.ZodObject<{
998
998
  requiresTailwind?: boolean | undefined;
999
999
  demoRequiresTailwind?: boolean | undefined;
1000
1000
  dependsOn?: string[] | undefined;
1001
- conflicts?: string[] | undefined;
1001
+ exclusive?: string[] | undefined;
1002
1002
  partnerId?: string | undefined;
1003
1003
  hasOptions?: boolean | undefined;
1004
1004
  color?: string | undefined;
@@ -1025,7 +1025,7 @@ declare const ManifestSchema: z.ZodObject<{
1025
1025
  requiresTailwind?: boolean | undefined;
1026
1026
  demoRequiresTailwind?: boolean | undefined;
1027
1027
  dependsOn?: string[] | undefined;
1028
- conflicts?: string[] | undefined;
1028
+ exclusive?: string[] | undefined;
1029
1029
  partnerId?: string | undefined;
1030
1030
  hasOptions?: boolean | undefined;
1031
1031
  color?: string | undefined;
@@ -1149,15 +1149,15 @@ declare function loadTemplate(url: string): Promise<CustomTemplateCompiled>;
1149
1149
  //#endregion
1150
1150
  //#region src/api/fetch.d.ts
1151
1151
  /**
1152
- * Fetch the integration manifest from GitHub or local path
1152
+ * Fetch the integration manifest from GitHub or local path (with caching for remote)
1153
1153
  */
1154
1154
  declare function fetchManifest(baseUrl?: string): Promise<Manifest>;
1155
1155
  /**
1156
- * Fetch integration info.json from GitHub or local path
1156
+ * Fetch integration info.json from GitHub or local path (with caching for remote)
1157
1157
  */
1158
1158
  declare function fetchIntegrationInfo(integrationId: string, baseUrl?: string): Promise<IntegrationInfo>;
1159
1159
  /**
1160
- * Fetch all files for an integration from GitHub or local path
1160
+ * Fetch all files for an integration from GitHub or local path (with caching for remote)
1161
1161
  */
1162
1162
  declare function fetchIntegrationFiles(integrationId: string, baseUrl?: string): Promise<Record<string, string>>;
1163
1163
  /**
package/dist/index.d.mts CHANGED
@@ -217,7 +217,7 @@ declare const IntegrationInfoSchema: z.ZodObject<{
217
217
  requiresTailwind: z.ZodOptional<z.ZodBoolean>;
218
218
  demoRequiresTailwind: z.ZodOptional<z.ZodBoolean>;
219
219
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
220
- conflicts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
220
+ exclusive: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
221
221
  partnerId: z.ZodOptional<z.ZodString>;
222
222
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
223
223
  type: z.ZodLiteral<"select">;
@@ -392,7 +392,7 @@ declare const IntegrationInfoSchema: z.ZodObject<{
392
392
  requiresTailwind?: boolean | undefined;
393
393
  demoRequiresTailwind?: boolean | undefined;
394
394
  dependsOn?: string[] | undefined;
395
- conflicts?: string[] | undefined;
395
+ exclusive?: string[] | undefined;
396
396
  partnerId?: string | undefined;
397
397
  hooks?: {
398
398
  type?: "header-user" | "provider" | "root-provider" | "layout" | "vite-plugin" | "devtools" | "entry-client" | undefined;
@@ -463,7 +463,7 @@ declare const IntegrationInfoSchema: z.ZodObject<{
463
463
  requiresTailwind?: boolean | undefined;
464
464
  demoRequiresTailwind?: boolean | undefined;
465
465
  dependsOn?: string[] | undefined;
466
- conflicts?: string[] | undefined;
466
+ exclusive?: string[] | undefined;
467
467
  partnerId?: string | undefined;
468
468
  hooks?: {
469
469
  type?: "header-user" | "provider" | "root-provider" | "layout" | "vite-plugin" | "devtools" | "entry-client" | undefined;
@@ -511,7 +511,7 @@ declare const IntegrationCompiledSchema: z.ZodObject<{
511
511
  requiresTailwind: z.ZodOptional<z.ZodBoolean>;
512
512
  demoRequiresTailwind: z.ZodOptional<z.ZodBoolean>;
513
513
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
514
- conflicts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
514
+ exclusive: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
515
515
  partnerId: z.ZodOptional<z.ZodString>;
516
516
  options: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodDiscriminatedUnion<"type", [z.ZodObject<{
517
517
  type: z.ZodLiteral<"select">;
@@ -691,7 +691,7 @@ declare const IntegrationCompiledSchema: z.ZodObject<{
691
691
  requiresTailwind?: boolean | undefined;
692
692
  demoRequiresTailwind?: boolean | undefined;
693
693
  dependsOn?: string[] | undefined;
694
- conflicts?: string[] | undefined;
694
+ exclusive?: string[] | undefined;
695
695
  partnerId?: string | undefined;
696
696
  hooks?: {
697
697
  type?: "header-user" | "provider" | "root-provider" | "layout" | "vite-plugin" | "devtools" | "entry-client" | undefined;
@@ -764,7 +764,7 @@ declare const IntegrationCompiledSchema: z.ZodObject<{
764
764
  requiresTailwind?: boolean | undefined;
765
765
  demoRequiresTailwind?: boolean | undefined;
766
766
  dependsOn?: string[] | undefined;
767
- conflicts?: string[] | undefined;
767
+ exclusive?: string[] | undefined;
768
768
  partnerId?: string | undefined;
769
769
  hooks?: {
770
770
  type?: "header-user" | "provider" | "root-provider" | "layout" | "vite-plugin" | "devtools" | "entry-client" | undefined;
@@ -875,7 +875,7 @@ declare const ManifestIntegrationSchema: z.ZodObject<{
875
875
  category: z.ZodOptional<z.ZodEnum<["tanstack", "database", "orm", "auth", "deploy", "tooling", "monitoring", "api", "i18n", "cms", "other"]>>;
876
876
  modes: z.ZodArray<z.ZodEnum<["file-router", "code-router"]>, "many">;
877
877
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
878
- conflicts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
878
+ exclusive: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
879
879
  partnerId: z.ZodOptional<z.ZodString>;
880
880
  hasOptions: z.ZodOptional<z.ZodBoolean>;
881
881
  link: z.ZodOptional<z.ZodString>;
@@ -893,7 +893,7 @@ declare const ManifestIntegrationSchema: z.ZodObject<{
893
893
  requiresTailwind?: boolean | undefined;
894
894
  demoRequiresTailwind?: boolean | undefined;
895
895
  dependsOn?: string[] | undefined;
896
- conflicts?: string[] | undefined;
896
+ exclusive?: string[] | undefined;
897
897
  partnerId?: string | undefined;
898
898
  hasOptions?: boolean | undefined;
899
899
  color?: string | undefined;
@@ -908,7 +908,7 @@ declare const ManifestIntegrationSchema: z.ZodObject<{
908
908
  requiresTailwind?: boolean | undefined;
909
909
  demoRequiresTailwind?: boolean | undefined;
910
910
  dependsOn?: string[] | undefined;
911
- conflicts?: string[] | undefined;
911
+ exclusive?: string[] | undefined;
912
912
  partnerId?: string | undefined;
913
913
  hasOptions?: boolean | undefined;
914
914
  color?: string | undefined;
@@ -925,7 +925,7 @@ declare const ManifestSchema: z.ZodObject<{
925
925
  category: z.ZodOptional<z.ZodEnum<["tanstack", "database", "orm", "auth", "deploy", "tooling", "monitoring", "api", "i18n", "cms", "other"]>>;
926
926
  modes: z.ZodArray<z.ZodEnum<["file-router", "code-router"]>, "many">;
927
927
  dependsOn: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
928
- conflicts: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
928
+ exclusive: z.ZodOptional<z.ZodArray<z.ZodString, "many">>;
929
929
  partnerId: z.ZodOptional<z.ZodString>;
930
930
  hasOptions: z.ZodOptional<z.ZodBoolean>;
931
931
  link: z.ZodOptional<z.ZodString>;
@@ -943,7 +943,7 @@ declare const ManifestSchema: z.ZodObject<{
943
943
  requiresTailwind?: boolean | undefined;
944
944
  demoRequiresTailwind?: boolean | undefined;
945
945
  dependsOn?: string[] | undefined;
946
- conflicts?: string[] | undefined;
946
+ exclusive?: string[] | undefined;
947
947
  partnerId?: string | undefined;
948
948
  hasOptions?: boolean | undefined;
949
949
  color?: string | undefined;
@@ -958,7 +958,7 @@ declare const ManifestSchema: z.ZodObject<{
958
958
  requiresTailwind?: boolean | undefined;
959
959
  demoRequiresTailwind?: boolean | undefined;
960
960
  dependsOn?: string[] | undefined;
961
- conflicts?: string[] | undefined;
961
+ exclusive?: string[] | undefined;
962
962
  partnerId?: string | undefined;
963
963
  hasOptions?: boolean | undefined;
964
964
  color?: string | undefined;
@@ -998,7 +998,7 @@ declare const ManifestSchema: z.ZodObject<{
998
998
  requiresTailwind?: boolean | undefined;
999
999
  demoRequiresTailwind?: boolean | undefined;
1000
1000
  dependsOn?: string[] | undefined;
1001
- conflicts?: string[] | undefined;
1001
+ exclusive?: string[] | undefined;
1002
1002
  partnerId?: string | undefined;
1003
1003
  hasOptions?: boolean | undefined;
1004
1004
  color?: string | undefined;
@@ -1025,7 +1025,7 @@ declare const ManifestSchema: z.ZodObject<{
1025
1025
  requiresTailwind?: boolean | undefined;
1026
1026
  demoRequiresTailwind?: boolean | undefined;
1027
1027
  dependsOn?: string[] | undefined;
1028
- conflicts?: string[] | undefined;
1028
+ exclusive?: string[] | undefined;
1029
1029
  partnerId?: string | undefined;
1030
1030
  hasOptions?: boolean | undefined;
1031
1031
  color?: string | undefined;
@@ -1149,15 +1149,15 @@ declare function loadTemplate(url: string): Promise<CustomTemplateCompiled>;
1149
1149
  //#endregion
1150
1150
  //#region src/api/fetch.d.ts
1151
1151
  /**
1152
- * Fetch the integration manifest from GitHub or local path
1152
+ * Fetch the integration manifest from GitHub or local path (with caching for remote)
1153
1153
  */
1154
1154
  declare function fetchManifest(baseUrl?: string): Promise<Manifest>;
1155
1155
  /**
1156
- * Fetch integration info.json from GitHub or local path
1156
+ * Fetch integration info.json from GitHub or local path (with caching for remote)
1157
1157
  */
1158
1158
  declare function fetchIntegrationInfo(integrationId: string, baseUrl?: string): Promise<IntegrationInfo>;
1159
1159
  /**
1160
- * Fetch all files for an integration from GitHub or local path
1160
+ * Fetch all files for an integration from GitHub or local path (with caching for remote)
1161
1161
  */
1162
1162
  declare function fetchIntegrationFiles(integrationId: string, baseUrl?: string): Promise<Record<string, string>>;
1163
1163
  /**
package/dist/index.mjs CHANGED
@@ -1,3 +1,3 @@
1
- import { A as writeConfigFile, C as IntegrationTypeSchema, D as RouterModeSchema, E as RouteSchema, M as compileWithAttribution, N as processTemplateFile, O as CONFIG_FILE, P as relativePath, S as IntegrationPhaseSchema, T as ManifestSchema, _ as HookSchema, a as initIntegration, b as IntegrationOptionSchema, c as fetchIntegrationFiles, d as fetchManifest, f as CategorySchema, g as EnvVarSchema, h as CustomTemplateInfoSchema, i as compileIntegration, j as compile, k as readConfigFile, l as fetchIntegrationInfo, m as CustomTemplateCompiledSchema, n as initTemplate, o as loadRemoteIntegration, p as CommandSchema, r as loadTemplate, s as fetchIntegration, t as compileTemplate, u as fetchIntegrations, v as IntegrationCompiledSchema, w as ManifestIntegrationSchema, x as IntegrationOptionsSchema, y as IntegrationInfoSchema } from "./template-2SxOxCJc.mjs";
1
+ import { A as writeConfigFile, C as IntegrationTypeSchema, D as RouterModeSchema, E as RouteSchema, M as compileWithAttribution, N as processTemplateFile, O as CONFIG_FILE, P as relativePath, S as IntegrationPhaseSchema, T as ManifestSchema, _ as HookSchema, a as initIntegration, b as IntegrationOptionSchema, c as fetchIntegrationFiles, d as fetchManifest, f as CategorySchema, g as EnvVarSchema, h as CustomTemplateInfoSchema, i as compileIntegration, j as compile, k as readConfigFile, l as fetchIntegrationInfo, m as CustomTemplateCompiledSchema, n as initTemplate, o as loadRemoteIntegration, p as CommandSchema, r as loadTemplate, s as fetchIntegration, t as compileTemplate, u as fetchIntegrations, v as IntegrationCompiledSchema, w as ManifestIntegrationSchema, x as IntegrationOptionsSchema, y as IntegrationInfoSchema } from "./template-BgEATWaG.mjs";
2
2
 
3
3
  export { CONFIG_FILE, CategorySchema, CommandSchema, CustomTemplateCompiledSchema, CustomTemplateInfoSchema, EnvVarSchema, HookSchema, IntegrationCompiledSchema, IntegrationInfoSchema, IntegrationOptionSchema, IntegrationOptionsSchema, IntegrationPhaseSchema, IntegrationTypeSchema, ManifestIntegrationSchema, ManifestSchema, RouteSchema, RouterModeSchema, compile, compileIntegration, compileTemplate, compileWithAttribution, fetchIntegration, fetchIntegrationFiles, fetchIntegrationInfo, fetchIntegrations, fetchManifest, initIntegration, initTemplate, loadRemoteIntegration, loadTemplate, processTemplateFile, readConfigFile, relativePath, writeConfigFile };
@@ -34,6 +34,7 @@ let ignore = require("ignore");
34
34
  ignore = __toESM(ignore);
35
35
  let parse_gitignore = require("parse-gitignore");
36
36
  parse_gitignore = __toESM(parse_gitignore);
37
+ let node_os = require("node:os");
37
38
 
38
39
  //#region src/engine/template.ts
39
40
  /**
@@ -1383,6 +1384,7 @@ ${packageManager}${packageManager === "npm" ? " run" : ""} dev
1383
1384
  - [TanStack Start Documentation](https://tanstack.com/start)
1384
1385
  - [TanStack Router Documentation](https://tanstack.com/router)
1385
1386
  `;
1387
+ files[".nvmrc"] = "23";
1386
1388
  return files;
1387
1389
  }
1388
1390
  /**
@@ -1490,8 +1492,8 @@ function buildPackageJson(options, packages) {
1490
1492
  "@tanstack/react-router": "^1.132.0",
1491
1493
  "@tanstack/react-router-devtools": "^1.132.0",
1492
1494
  "@tanstack/react-start": "^1.132.0",
1493
- react: "^19.0.0",
1494
- "react-dom": "^19.0.0",
1495
+ react: "^19.2.0",
1496
+ "react-dom": "^19.2.0",
1495
1497
  "vite-tsconfig-paths": "^5.1.4",
1496
1498
  ...hasHeader ? { "lucide-react": "^0.468.0" } : {},
1497
1499
  ...packages.dependencies
@@ -1500,8 +1502,8 @@ function buildPackageJson(options, packages) {
1500
1502
  "@vitejs/plugin-react": "^4.4.1",
1501
1503
  vite: "^7.0.0",
1502
1504
  ...options.typescript ? {
1503
- "@types/react": "^19.0.0",
1504
- "@types/react-dom": "^19.0.0",
1505
+ "@types/react": "^19.2.0",
1506
+ "@types/react-dom": "^19.2.0",
1505
1507
  typescript: "^5.7.0"
1506
1508
  } : {},
1507
1509
  ...options.tailwind ? {
@@ -1925,7 +1927,7 @@ const IntegrationInfoSchema = zod.z.object({
1925
1927
  requiresTailwind: zod.z.boolean().optional(),
1926
1928
  demoRequiresTailwind: zod.z.boolean().optional(),
1927
1929
  dependsOn: zod.z.array(zod.z.string()).optional(),
1928
- conflicts: zod.z.array(zod.z.string()).optional(),
1930
+ exclusive: zod.z.array(zod.z.string()).optional(),
1929
1931
  partnerId: zod.z.string().optional(),
1930
1932
  options: IntegrationOptionsSchema.optional(),
1931
1933
  hooks: zod.z.array(HookSchema).optional(),
@@ -1972,7 +1974,7 @@ const ManifestIntegrationSchema = zod.z.object({
1972
1974
  category: CategorySchema.optional(),
1973
1975
  modes: zod.z.array(RouterModeSchema),
1974
1976
  dependsOn: zod.z.array(zod.z.string()).optional(),
1975
- conflicts: zod.z.array(zod.z.string()).optional(),
1977
+ exclusive: zod.z.array(zod.z.string()).optional(),
1976
1978
  partnerId: zod.z.string().optional(),
1977
1979
  hasOptions: zod.z.boolean().optional(),
1978
1980
  link: zod.z.string().optional(),
@@ -1995,9 +1997,50 @@ const ManifestSchema = zod.z.object({
1995
1997
  customTemplates: zod.z.array(ManifestCustomTemplateSchema).optional()
1996
1998
  });
1997
1999
 
2000
+ //#endregion
2001
+ //#region src/cache/index.ts
2002
+ const CACHE_DIR = (0, node_path.join)((0, node_os.homedir)(), ".tanstack", "cache");
2003
+ const DEFAULT_TTL_MS = 1440 * 60 * 1e3;
2004
+ function ensureCacheDir() {
2005
+ if (!(0, node_fs.existsSync)(CACHE_DIR)) (0, node_fs.mkdirSync)(CACHE_DIR, { recursive: true });
2006
+ }
2007
+ function getCachePath(key) {
2008
+ return (0, node_path.join)(CACHE_DIR, `${key.replace(/[^a-zA-Z0-9-_]/g, "_")}.json`);
2009
+ }
2010
+ function getCached(key) {
2011
+ const cachePath = getCachePath(key);
2012
+ if (!(0, node_fs.existsSync)(cachePath)) return null;
2013
+ try {
2014
+ const raw = (0, node_fs.readFileSync)(cachePath, "utf-8");
2015
+ const entry = JSON.parse(raw);
2016
+ if (Date.now() - entry.timestamp > entry.ttl) return null;
2017
+ return entry.data;
2018
+ } catch {
2019
+ return null;
2020
+ }
2021
+ }
2022
+ function setCache(key, data, ttlMs = DEFAULT_TTL_MS) {
2023
+ ensureCacheDir();
2024
+ const cachePath = getCachePath(key);
2025
+ const entry = {
2026
+ data,
2027
+ timestamp: Date.now(),
2028
+ ttl: ttlMs
2029
+ };
2030
+ (0, node_fs.writeFileSync)(cachePath, JSON.stringify(entry, null, 2), "utf-8");
2031
+ }
2032
+ async function fetchWithCache(key, fetcher, ttlMs = DEFAULT_TTL_MS) {
2033
+ const cached = getCached(key);
2034
+ if (cached !== null) return cached;
2035
+ const data = await fetcher();
2036
+ setCache(key, data, ttlMs);
2037
+ return data;
2038
+ }
2039
+
1998
2040
  //#endregion
1999
2041
  //#region src/api/fetch.ts
2000
2042
  const GITHUB_RAW_BASE = "https://raw.githubusercontent.com/TanStack/cli/main/integrations";
2043
+ const CACHE_TTL_MS = 3600 * 1e3;
2001
2044
  /**
2002
2045
  * Check if a path is a local directory
2003
2046
  */
@@ -2005,36 +2048,40 @@ function isLocalPath(path) {
2005
2048
  return path.startsWith("/") || path.startsWith("./") || path.startsWith("..");
2006
2049
  }
2007
2050
  /**
2008
- * Fetch the integration manifest from GitHub or local path
2051
+ * Fetch the integration manifest from GitHub or local path (with caching for remote)
2009
2052
  */
2010
2053
  async function fetchManifest(baseUrl = GITHUB_RAW_BASE) {
2011
2054
  if (isLocalPath(baseUrl)) {
2012
2055
  const manifestPath = (0, node_path.join)(baseUrl, "manifest.json");
2013
2056
  if (!(0, node_fs.existsSync)(manifestPath)) throw new Error(`Manifest not found at ${manifestPath}`);
2014
- const data$1 = JSON.parse((0, node_fs.readFileSync)(manifestPath, "utf-8"));
2015
- return ManifestSchema.parse(data$1);
2057
+ const data = JSON.parse((0, node_fs.readFileSync)(manifestPath, "utf-8"));
2058
+ return ManifestSchema.parse(data);
2016
2059
  }
2017
- const url = `${baseUrl}/manifest.json`;
2018
- const response = await fetch(url);
2019
- if (!response.ok) throw new Error(`Failed to fetch manifest: ${response.statusText}`);
2020
- const data = await response.json();
2021
- return ManifestSchema.parse(data);
2060
+ return fetchWithCache(`manifest_${baseUrl.replace(/[^a-zA-Z0-9]/g, "_")}`, async () => {
2061
+ const url = `${baseUrl}/manifest.json`;
2062
+ const response = await fetch(url);
2063
+ if (!response.ok) throw new Error(`Failed to fetch manifest: ${response.statusText}`);
2064
+ const data = await response.json();
2065
+ return ManifestSchema.parse(data);
2066
+ }, CACHE_TTL_MS);
2022
2067
  }
2023
2068
  /**
2024
- * Fetch integration info.json from GitHub or local path
2069
+ * Fetch integration info.json from GitHub or local path (with caching for remote)
2025
2070
  */
2026
2071
  async function fetchIntegrationInfo(integrationId, baseUrl = GITHUB_RAW_BASE) {
2027
2072
  if (isLocalPath(baseUrl)) {
2028
2073
  const infoPath = (0, node_path.join)(baseUrl, integrationId, "info.json");
2029
2074
  if (!(0, node_fs.existsSync)(infoPath)) throw new Error(`Integration info not found at ${infoPath}`);
2030
- const data$1 = JSON.parse((0, node_fs.readFileSync)(infoPath, "utf-8"));
2031
- return IntegrationInfoSchema.parse(data$1);
2075
+ const data = JSON.parse((0, node_fs.readFileSync)(infoPath, "utf-8"));
2076
+ return IntegrationInfoSchema.parse(data);
2032
2077
  }
2033
- const url = `${baseUrl}/${integrationId}/info.json`;
2034
- const response = await fetch(url);
2035
- if (!response.ok) throw new Error(`Failed to fetch integration ${integrationId}: ${response.statusText}`);
2036
- const data = await response.json();
2037
- return IntegrationInfoSchema.parse(data);
2078
+ return fetchWithCache(`integration_info_${integrationId}_${baseUrl.replace(/[^a-zA-Z0-9]/g, "_")}`, async () => {
2079
+ const url = `${baseUrl}/${integrationId}/info.json`;
2080
+ const response = await fetch(url);
2081
+ if (!response.ok) throw new Error(`Failed to fetch integration ${integrationId}: ${response.statusText}`);
2082
+ const data = await response.json();
2083
+ return IntegrationInfoSchema.parse(data);
2084
+ }, CACHE_TTL_MS);
2038
2085
  }
2039
2086
  /**
2040
2087
  * Recursively read all files from a directory
@@ -2051,21 +2098,23 @@ function readDirRecursive(dir, basePath = "") {
2051
2098
  return files;
2052
2099
  }
2053
2100
  /**
2054
- * Fetch all files for an integration from GitHub or local path
2101
+ * Fetch all files for an integration from GitHub or local path (with caching for remote)
2055
2102
  */
2056
2103
  async function fetchIntegrationFiles(integrationId, baseUrl = GITHUB_RAW_BASE) {
2057
2104
  if (isLocalPath(baseUrl)) return readDirRecursive((0, node_path.join)(baseUrl, integrationId, "assets"));
2058
- const filesUrl = `${baseUrl}/${integrationId}/files.json`;
2059
- const response = await fetch(filesUrl);
2060
- if (!response.ok) return {};
2061
- const fileList = await response.json();
2062
- const files = {};
2063
- await Promise.all(fileList.map(async (filePath) => {
2064
- const fileUrl = `${baseUrl}/${integrationId}/assets/${filePath}`;
2065
- const fileResponse = await fetch(fileUrl);
2066
- if (fileResponse.ok) files[filePath] = await fileResponse.text();
2067
- }));
2068
- return files;
2105
+ return fetchWithCache(`integration_files_${integrationId}_${baseUrl.replace(/[^a-zA-Z0-9]/g, "_")}`, async () => {
2106
+ const filesUrl = `${baseUrl}/${integrationId}/files.json`;
2107
+ const response = await fetch(filesUrl);
2108
+ if (!response.ok) return {};
2109
+ const fileList = await response.json();
2110
+ const files = {};
2111
+ await Promise.all(fileList.map(async (filePath) => {
2112
+ const fileUrl = `${baseUrl}/${integrationId}/assets/${filePath}`;
2113
+ const fileResponse = await fetch(fileUrl);
2114
+ if (fileResponse.ok) files[filePath] = await fileResponse.text();
2115
+ }));
2116
+ return files;
2117
+ }, CACHE_TTL_MS);
2069
2118
  }
2070
2119
  /**
2071
2120
  * Fetch integration package.json if it exists