workos 0.4.5 → 0.5.1

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 (147) hide show
  1. package/dist/bin.js +32 -3
  2. package/dist/bin.js.map +1 -1
  3. package/dist/commands/doctor.d.ts +10 -0
  4. package/dist/commands/doctor.js +30 -0
  5. package/dist/commands/doctor.js.map +1 -0
  6. package/dist/doctor/checks/connectivity.d.ts +2 -0
  7. package/dist/doctor/checks/connectivity.js +35 -0
  8. package/dist/doctor/checks/connectivity.js.map +1 -0
  9. package/dist/doctor/checks/dashboard.d.ts +3 -0
  10. package/dist/doctor/checks/dashboard.js +123 -0
  11. package/dist/doctor/checks/dashboard.js.map +1 -0
  12. package/dist/doctor/checks/environment.d.ts +2 -0
  13. package/dist/doctor/checks/environment.js +68 -0
  14. package/dist/doctor/checks/environment.js.map +1 -0
  15. package/dist/doctor/checks/framework.d.ts +2 -0
  16. package/dist/doctor/checks/framework.js +75 -0
  17. package/dist/doctor/checks/framework.js.map +1 -0
  18. package/dist/doctor/checks/runtime.d.ts +2 -0
  19. package/dist/doctor/checks/runtime.js +20 -0
  20. package/dist/doctor/checks/runtime.js.map +1 -0
  21. package/dist/doctor/checks/sdk.d.ts +2 -0
  22. package/dist/doctor/checks/sdk.js +111 -0
  23. package/dist/doctor/checks/sdk.js.map +1 -0
  24. package/dist/doctor/clipboard.d.ts +1 -0
  25. package/dist/doctor/clipboard.js +43 -0
  26. package/dist/doctor/clipboard.js.map +1 -0
  27. package/dist/doctor/index.d.ts +6 -0
  28. package/dist/doctor/index.js +94 -0
  29. package/dist/doctor/index.js.map +1 -0
  30. package/dist/doctor/issues.d.ts +58 -0
  31. package/dist/doctor/issues.js +134 -0
  32. package/dist/doctor/issues.js.map +1 -0
  33. package/dist/doctor/json-output.d.ts +2 -0
  34. package/dist/doctor/json-output.js +4 -0
  35. package/dist/doctor/json-output.js.map +1 -0
  36. package/dist/doctor/output.d.ts +5 -0
  37. package/dist/doctor/output.js +149 -0
  38. package/dist/doctor/output.js.map +1 -0
  39. package/dist/doctor/types.d.ts +105 -0
  40. package/dist/doctor/types.js +2 -0
  41. package/dist/doctor/types.js.map +1 -0
  42. package/dist/integrations/dotnet/index.d.ts +8 -0
  43. package/dist/integrations/dotnet/index.js +163 -0
  44. package/dist/integrations/dotnet/index.js.map +1 -0
  45. package/dist/integrations/elixir/index.d.ts +8 -0
  46. package/dist/integrations/elixir/index.js +152 -0
  47. package/dist/integrations/elixir/index.js.map +1 -0
  48. package/dist/integrations/go/index.d.ts +11 -0
  49. package/dist/integrations/go/index.js +220 -0
  50. package/dist/integrations/go/index.js.map +1 -0
  51. package/dist/integrations/kotlin/index.d.ts +4 -0
  52. package/dist/integrations/kotlin/index.js +53 -0
  53. package/dist/integrations/kotlin/index.js.map +1 -0
  54. package/dist/integrations/nextjs/index.d.ts +4 -0
  55. package/dist/integrations/nextjs/index.js +90 -0
  56. package/dist/integrations/nextjs/index.js.map +1 -0
  57. package/dist/integrations/nextjs/utils.d.ts +8 -0
  58. package/dist/integrations/nextjs/utils.js +53 -0
  59. package/dist/integrations/nextjs/utils.js.map +1 -0
  60. package/dist/integrations/node/index.d.ts +4 -0
  61. package/dist/integrations/node/index.js +52 -0
  62. package/dist/integrations/node/index.js.map +1 -0
  63. package/dist/integrations/php/index.d.ts +4 -0
  64. package/dist/integrations/php/index.js +51 -0
  65. package/dist/integrations/php/index.js.map +1 -0
  66. package/dist/integrations/php-laravel/index.d.ts +4 -0
  67. package/dist/integrations/php-laravel/index.js +51 -0
  68. package/dist/integrations/php-laravel/index.js.map +1 -0
  69. package/dist/integrations/python/index.d.ts +9 -0
  70. package/dist/integrations/python/index.js +254 -0
  71. package/dist/integrations/python/index.js.map +1 -0
  72. package/dist/integrations/react/index.d.ts +4 -0
  73. package/dist/integrations/react/index.js +49 -0
  74. package/dist/integrations/react/index.js.map +1 -0
  75. package/dist/integrations/react-router/index.d.ts +4 -0
  76. package/dist/integrations/react-router/index.js +94 -0
  77. package/dist/integrations/react-router/index.js.map +1 -0
  78. package/dist/integrations/react-router/utils.d.ts +10 -0
  79. package/dist/integrations/react-router/utils.js +146 -0
  80. package/dist/integrations/react-router/utils.js.map +1 -0
  81. package/dist/integrations/ruby/index.d.ts +8 -0
  82. package/dist/integrations/ruby/index.js +142 -0
  83. package/dist/integrations/ruby/index.js.map +1 -0
  84. package/dist/integrations/sveltekit/index.d.ts +4 -0
  85. package/dist/integrations/sveltekit/index.js +50 -0
  86. package/dist/integrations/sveltekit/index.js.map +1 -0
  87. package/dist/integrations/tanstack-start/index.d.ts +4 -0
  88. package/dist/integrations/tanstack-start/index.js +51 -0
  89. package/dist/integrations/tanstack-start/index.js.map +1 -0
  90. package/dist/integrations/vanilla-js/index.d.ts +4 -0
  91. package/dist/integrations/vanilla-js/index.js +49 -0
  92. package/dist/integrations/vanilla-js/index.js.map +1 -0
  93. package/dist/lib/agent-interface.js +66 -1
  94. package/dist/lib/agent-interface.js.map +1 -1
  95. package/dist/lib/config.d.ts +32 -58
  96. package/dist/lib/config.js +19 -70
  97. package/dist/lib/config.js.map +1 -1
  98. package/dist/lib/constants.d.ts +17 -14
  99. package/dist/lib/constants.js +12 -31
  100. package/dist/lib/constants.js.map +1 -1
  101. package/dist/lib/framework-config.d.ts +13 -4
  102. package/dist/lib/framework-config.js.map +1 -1
  103. package/dist/lib/language-detection.d.ts +20 -0
  104. package/dist/lib/language-detection.js +96 -0
  105. package/dist/lib/language-detection.js.map +1 -0
  106. package/dist/lib/port-detection.js +4 -2
  107. package/dist/lib/port-detection.js.map +1 -1
  108. package/dist/lib/registry.d.ts +43 -0
  109. package/dist/lib/registry.js +96 -0
  110. package/dist/lib/registry.js.map +1 -0
  111. package/dist/lib/run-with-core.js +70 -26
  112. package/dist/lib/run-with-core.js.map +1 -1
  113. package/dist/lib/validation/validator.js +43 -13
  114. package/dist/lib/validation/validator.js.map +1 -1
  115. package/dist/nextjs/nextjs-installer-agent.d.ts +3 -4
  116. package/dist/nextjs/nextjs-installer-agent.js +3 -94
  117. package/dist/nextjs/nextjs-installer-agent.js.map +1 -1
  118. package/dist/nextjs/utils.d.ts +4 -8
  119. package/dist/nextjs/utils.js +4 -52
  120. package/dist/nextjs/utils.js.map +1 -1
  121. package/dist/react/react-installer-agent.d.ts +4 -2
  122. package/dist/react/react-installer-agent.js +4 -46
  123. package/dist/react/react-installer-agent.js.map +1 -1
  124. package/dist/react-router/react-router-installer-agent.d.ts +2 -4
  125. package/dist/react-router/react-router-installer-agent.js +2 -100
  126. package/dist/react-router/react-router-installer-agent.js.map +1 -1
  127. package/dist/react-router/utils.d.ts +2 -17
  128. package/dist/react-router/utils.js +2 -207
  129. package/dist/react-router/utils.js.map +1 -1
  130. package/dist/tanstack-start/tanstack-start-installer-agent.d.ts +4 -2
  131. package/dist/tanstack-start/tanstack-start-installer-agent.js +4 -48
  132. package/dist/tanstack-start/tanstack-start-installer-agent.js.map +1 -1
  133. package/dist/vanilla-js/vanilla-js-installer-agent.d.ts +4 -2
  134. package/dist/vanilla-js/vanilla-js-installer-agent.js +4 -46
  135. package/dist/vanilla-js/vanilla-js-installer-agent.js.map +1 -1
  136. package/package.json +6 -5
  137. package/skills/workos-authkit-nextjs/SKILL.md +41 -11
  138. package/skills/workos-authkit-sveltekit/SKILL.md +160 -0
  139. package/skills/workos-dotnet/SKILL.md +163 -0
  140. package/skills/workos-elixir/SKILL.md +194 -0
  141. package/skills/workos-go/SKILL.md +191 -0
  142. package/skills/workos-kotlin/SKILL.md +161 -0
  143. package/skills/workos-node/SKILL.md +164 -0
  144. package/skills/workos-php/SKILL.md +127 -0
  145. package/skills/workos-php-laravel/SKILL.md +147 -0
  146. package/skills/workos-python/SKILL.md +159 -0
  147. package/skills/workos-ruby/SKILL.md +163 -0
@@ -1,53 +1,5 @@
1
- import fg from 'fast-glob';
2
- import { abortIfCancelled } from '../utils/clack-utils.js';
3
- import clack from '../utils/clack.js';
4
- import { getVersionBucket } from '../utils/semver.js';
5
- import { IGNORE_PATTERNS, Integration } from '../lib/constants.js';
6
- export function getNextJsVersionBucket(version) {
7
- return getVersionBucket(version, 11);
8
- }
9
- export var NextJsRouter;
10
- (function (NextJsRouter) {
11
- NextJsRouter["APP_ROUTER"] = "app-router";
12
- NextJsRouter["PAGES_ROUTER"] = "pages-router";
13
- })(NextJsRouter || (NextJsRouter = {}));
14
- export async function getNextJsRouter({ installDir }) {
15
- const pagesMatches = await fg('**/pages/_app.@(ts|tsx|js|jsx)', {
16
- dot: true,
17
- cwd: installDir,
18
- ignore: IGNORE_PATTERNS,
19
- });
20
- const hasPagesDir = pagesMatches.length > 0;
21
- const appMatches = await fg('**/app/**/layout.@(ts|tsx|js|jsx)', {
22
- dot: true,
23
- cwd: installDir,
24
- ignore: IGNORE_PATTERNS,
25
- });
26
- const hasAppDir = appMatches.length > 0;
27
- if (hasPagesDir && !hasAppDir) {
28
- clack.log.info(`Detected ${getNextJsRouterName(NextJsRouter.PAGES_ROUTER)} 📃`);
29
- return NextJsRouter.PAGES_ROUTER;
30
- }
31
- if (hasAppDir && !hasPagesDir) {
32
- clack.log.info(`Detected ${getNextJsRouterName(NextJsRouter.APP_ROUTER)} 📱`);
33
- return NextJsRouter.APP_ROUTER;
34
- }
35
- const result = await abortIfCancelled(clack.select({
36
- message: 'What router are you using?',
37
- options: [
38
- {
39
- label: getNextJsRouterName(NextJsRouter.APP_ROUTER),
40
- value: NextJsRouter.APP_ROUTER,
41
- },
42
- {
43
- label: getNextJsRouterName(NextJsRouter.PAGES_ROUTER),
44
- value: NextJsRouter.PAGES_ROUTER,
45
- },
46
- ],
47
- }), Integration.nextjs);
48
- return result;
49
- }
50
- export const getNextJsRouterName = (router) => {
51
- return router === NextJsRouter.APP_ROUTER ? 'app router' : 'pages router';
52
- };
1
+ /**
2
+ * @deprecated Import from 'src/integrations/nextjs/utils.js' instead.
3
+ */
4
+ export { getNextJsVersionBucket, NextJsRouter, getNextJsRouter, getNextJsRouterName, } from '../integrations/nextjs/utils.js';
53
5
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/nextjs/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,WAAW,CAAC;AAC3B,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,MAAM,mBAAmB,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEnE,MAAM,UAAU,sBAAsB,CAAC,OAA2B;IAChE,OAAO,gBAAgB,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAN,IAAY,YAGX;AAHD,WAAY,YAAY;IACtB,yCAAyB,CAAA;IACzB,6CAA6B,CAAA;AAC/B,CAAC,EAHW,YAAY,KAAZ,YAAY,QAGvB;AAED,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,EAAE,UAAU,EAAwC;IACxF,MAAM,YAAY,GAAG,MAAM,EAAE,CAAC,gCAAgC,EAAE;QAC9D,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,UAAU;QACf,MAAM,EAAE,eAAe;KACxB,CAAC,CAAC;IAEH,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC;IAE5C,MAAM,UAAU,GAAG,MAAM,EAAE,CAAC,mCAAmC,EAAE;QAC/D,GAAG,EAAE,IAAI;QACT,GAAG,EAAE,UAAU;QACf,MAAM,EAAE,eAAe;KACxB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;IAExC,IAAI,WAAW,IAAI,CAAC,SAAS,EAAE,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,mBAAmB,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAChF,OAAO,YAAY,CAAC,YAAY,CAAC;IACnC,CAAC;IAED,IAAI,SAAS,IAAI,CAAC,WAAW,EAAE,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,YAAY,mBAAmB,CAAC,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9E,OAAO,YAAY,CAAC,UAAU,CAAC;IACjC,CAAC;IAED,MAAM,MAAM,GAAiB,MAAM,gBAAgB,CACjD,KAAK,CAAC,MAAM,CAAC;QACX,OAAO,EAAE,4BAA4B;QACrC,OAAO,EAAE;YACP;gBACE,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,UAAU,CAAC;gBACnD,KAAK,EAAE,YAAY,CAAC,UAAU;aAC/B;YACD;gBACE,KAAK,EAAE,mBAAmB,CAAC,YAAY,CAAC,YAAY,CAAC;gBACrD,KAAK,EAAE,YAAY,CAAC,YAAY;aACjC;SACF;KACF,CAAC,EACF,WAAW,CAAC,MAAM,CACnB,CAAC;IAEF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CAAC,MAAoB,EAAE,EAAE;IAC1D,OAAO,MAAM,KAAK,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC;AAC5E,CAAC,CAAC","sourcesContent":["import fg from 'fast-glob';\nimport { abortIfCancelled } from '../utils/clack-utils.js';\nimport clack from '../utils/clack.js';\nimport { getVersionBucket } from '../utils/semver.js';\nimport type { InstallerOptions } from '../utils/types.js';\nimport { IGNORE_PATTERNS, Integration } from '../lib/constants.js';\n\nexport function getNextJsVersionBucket(version: string | undefined): string {\n return getVersionBucket(version, 11);\n}\n\nexport enum NextJsRouter {\n APP_ROUTER = 'app-router',\n PAGES_ROUTER = 'pages-router',\n}\n\nexport async function getNextJsRouter({ installDir }: Pick<InstallerOptions, 'installDir'>): Promise<NextJsRouter> {\n const pagesMatches = await fg('**/pages/_app.@(ts|tsx|js|jsx)', {\n dot: true,\n cwd: installDir,\n ignore: IGNORE_PATTERNS,\n });\n\n const hasPagesDir = pagesMatches.length > 0;\n\n const appMatches = await fg('**/app/**/layout.@(ts|tsx|js|jsx)', {\n dot: true,\n cwd: installDir,\n ignore: IGNORE_PATTERNS,\n });\n\n const hasAppDir = appMatches.length > 0;\n\n if (hasPagesDir && !hasAppDir) {\n clack.log.info(`Detected ${getNextJsRouterName(NextJsRouter.PAGES_ROUTER)} 📃`);\n return NextJsRouter.PAGES_ROUTER;\n }\n\n if (hasAppDir && !hasPagesDir) {\n clack.log.info(`Detected ${getNextJsRouterName(NextJsRouter.APP_ROUTER)} 📱`);\n return NextJsRouter.APP_ROUTER;\n }\n\n const result: NextJsRouter = await abortIfCancelled(\n clack.select({\n message: 'What router are you using?',\n options: [\n {\n label: getNextJsRouterName(NextJsRouter.APP_ROUTER),\n value: NextJsRouter.APP_ROUTER,\n },\n {\n label: getNextJsRouterName(NextJsRouter.PAGES_ROUTER),\n value: NextJsRouter.PAGES_ROUTER,\n },\n ],\n }),\n Integration.nextjs,\n );\n\n return result;\n}\n\nexport const getNextJsRouterName = (router: NextJsRouter) => {\n return router === NextJsRouter.APP_ROUTER ? 'app router' : 'pages router';\n};\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/nextjs/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,eAAe,EACf,mBAAmB,GACpB,MAAM,iCAAiC,CAAC","sourcesContent":["/**\n * @deprecated Import from 'src/integrations/nextjs/utils.js' instead.\n */\nexport {\n getNextJsVersionBucket,\n NextJsRouter,\n getNextJsRouter,\n getNextJsRouterName,\n} from '../integrations/nextjs/utils.js';\n"]}
@@ -1,2 +1,4 @@
1
- import type { InstallerOptions } from '../utils/types.js';
2
- export declare function runReactInstallerAgent(options: InstallerOptions): Promise<string>;
1
+ /**
2
+ * @deprecated Import from 'src/integrations/react/index.js' instead.
3
+ */
4
+ export { run as runReactInstallerAgent, config as REACT_AGENT_CONFIG } from '../integrations/react/index.js';
@@ -1,47 +1,5 @@
1
- import { enableDebugLogs } from '../utils/debug.js';
2
- import { runAgentInstaller } from '../lib/agent-runner.js';
3
- import { Integration } from '../lib/constants.js';
4
- const REACT_AGENT_CONFIG = {
5
- metadata: {
6
- name: 'React',
7
- integration: Integration.react,
8
- docsUrl: 'https://workos.com/docs/user-management/authkit/react',
9
- unsupportedVersionDocsUrl: 'https://workos.com/docs/user-management/authkit/react',
10
- skillName: 'workos-authkit-react',
11
- },
12
- detection: {
13
- packageName: 'react',
14
- packageDisplayName: 'React',
15
- getVersion: (packageJson) => packageJson.dependencies?.react || packageJson.devDependencies?.react,
16
- },
17
- environment: {
18
- uploadToHosting: false,
19
- requiresApiKey: false, // Client-only SPA
20
- getEnvVars: (_apiKey, clientId) => ({
21
- WORKOS_CLIENT_ID: clientId, // Only client ID needed
22
- }),
23
- },
24
- analytics: {
25
- getTags: () => ({}),
26
- },
27
- prompts: {},
28
- ui: {
29
- successMessage: 'WorkOS AuthKit integration complete',
30
- getOutroChanges: () => [
31
- 'Analyzed your React project structure',
32
- 'Created and configured WorkOS AuthKit',
33
- 'Integrated authentication into your application',
34
- ],
35
- getOutroNextSteps: () => [
36
- 'Start your development server to test authentication',
37
- 'Visit the WorkOS Dashboard to manage users and settings',
38
- ],
39
- },
40
- };
41
- export async function runReactInstallerAgent(options) {
42
- if (options.debug) {
43
- enableDebugLogs();
44
- }
45
- return runAgentInstaller(REACT_AGENT_CONFIG, options);
46
- }
1
+ /**
2
+ * @deprecated Import from 'src/integrations/react/index.js' instead.
3
+ */
4
+ export { run as runReactInstallerAgent, config as REACT_AGENT_CONFIG } from '../integrations/react/index.js';
47
5
  //# sourceMappingURL=react-installer-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-installer-agent.js","sourceRoot":"","sources":["../../src/react/react-installer-agent.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAElD,MAAM,kBAAkB,GAAoB;IAC1C,QAAQ,EAAE;QACR,IAAI,EAAE,OAAO;QACb,WAAW,EAAE,WAAW,CAAC,KAAK;QAC9B,OAAO,EAAE,uDAAuD;QAChE,yBAAyB,EAAE,uDAAuD;QAClF,SAAS,EAAE,sBAAsB;KAClC;IAED,SAAS,EAAE;QACT,WAAW,EAAE,OAAO;QACpB,kBAAkB,EAAE,OAAO;QAC3B,UAAU,EAAE,CAAC,WAAgB,EAAE,EAAE,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,IAAI,WAAW,CAAC,eAAe,EAAE,KAAK;KACxG;IAED,WAAW,EAAE;QACX,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,KAAK,EAAE,kBAAkB;QACzC,UAAU,EAAE,CAAC,OAAe,EAAE,QAAgB,EAAE,EAAE,CAAC,CAAC;YAClD,gBAAgB,EAAE,QAAQ,EAAE,wBAAwB;SACrD,CAAC;KACH;IAED,SAAS,EAAE;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;KACpB;IAED,OAAO,EAAE,EAAE;IAEX,EAAE,EAAE;QACF,cAAc,EAAE,qCAAqC;QACrD,eAAe,EAAE,GAAG,EAAE,CAAC;YACrB,uCAAuC;YACvC,uCAAuC;YACvC,iDAAiD;SAClD;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC;YACvB,sDAAsD;YACtD,yDAAyD;SAC1D;KACF;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,OAAyB;IACpE,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,eAAe,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,iBAAiB,CAAC,kBAAkB,EAAE,OAAO,CAAC,CAAC;AACxD,CAAC","sourcesContent":["/* React SPA wizard using Claude Agent SDK */\nimport type { InstallerOptions } from '../utils/types.js';\nimport type { FrameworkConfig } from '../lib/framework-config.js';\nimport { enableDebugLogs } from '../utils/debug.js';\nimport { runAgentInstaller } from '../lib/agent-runner.js';\nimport { Integration } from '../lib/constants.js';\n\nconst REACT_AGENT_CONFIG: FrameworkConfig = {\n metadata: {\n name: 'React',\n integration: Integration.react,\n docsUrl: 'https://workos.com/docs/user-management/authkit/react',\n unsupportedVersionDocsUrl: 'https://workos.com/docs/user-management/authkit/react',\n skillName: 'workos-authkit-react',\n },\n\n detection: {\n packageName: 'react',\n packageDisplayName: 'React',\n getVersion: (packageJson: any) => packageJson.dependencies?.react || packageJson.devDependencies?.react,\n },\n\n environment: {\n uploadToHosting: false,\n requiresApiKey: false, // Client-only SPA\n getEnvVars: (_apiKey: string, clientId: string) => ({\n WORKOS_CLIENT_ID: clientId, // Only client ID needed\n }),\n },\n\n analytics: {\n getTags: () => ({}),\n },\n\n prompts: {},\n\n ui: {\n successMessage: 'WorkOS AuthKit integration complete',\n getOutroChanges: () => [\n 'Analyzed your React project structure',\n 'Created and configured WorkOS AuthKit',\n 'Integrated authentication into your application',\n ],\n getOutroNextSteps: () => [\n 'Start your development server to test authentication',\n 'Visit the WorkOS Dashboard to manage users and settings',\n ],\n },\n};\n\nexport async function runReactInstallerAgent(options: InstallerOptions): Promise<string> {\n if (options.debug) {\n enableDebugLogs();\n }\n\n return runAgentInstaller(REACT_AGENT_CONFIG, options);\n}\n"]}
1
+ {"version":3,"file":"react-installer-agent.js","sourceRoot":"","sources":["../../src/react/react-installer-agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAAE,GAAG,IAAI,sBAAsB,EAAE,MAAM,IAAI,kBAAkB,EAAE,MAAM,gCAAgC,CAAC","sourcesContent":["/**\n * @deprecated Import from 'src/integrations/react/index.js' instead.\n */\nexport { run as runReactInstallerAgent, config as REACT_AGENT_CONFIG } from '../integrations/react/index.js';\n"]}
@@ -1,6 +1,4 @@
1
- import type { InstallerOptions } from '../utils/types.js';
2
1
  /**
3
- * React Router wizard powered by the universal agent runner.
4
- * @returns Summary of what was done, or empty string if version check fails
2
+ * @deprecated Import from 'src/integrations/react-router/index.js' instead.
5
3
  */
6
- export declare function runReactRouterInstallerAgent(options: InstallerOptions): Promise<string>;
4
+ export { run as runReactRouterInstallerAgent, config as REACT_ROUTER_AGENT_CONFIG, } from '../integrations/react-router/index.js';
@@ -1,103 +1,5 @@
1
- import { enableDebugLogs } from '../utils/debug.js';
2
- import { runAgentInstaller } from '../lib/agent-runner.js';
3
- import { Integration } from '../lib/constants.js';
4
- import { getPackageVersion } from '../utils/package-json.js';
5
- import { getPackageDotJson } from '../utils/clack-utils.js';
6
- import clack from '../utils/clack.js';
7
- import chalk from 'chalk';
8
- import * as semver from 'semver';
9
- import { getReactRouterMode, getReactRouterModeName, getReactRouterVersionBucket, ReactRouterMode } from './utils.js';
10
1
  /**
11
- * React Router framework configuration for the universal agent runner.
2
+ * @deprecated Import from 'src/integrations/react-router/index.js' instead.
12
3
  */
13
- const MINIMUM_REACT_ROUTER_VERSION = '6.0.0';
14
- const REACT_ROUTER_AGENT_CONFIG = {
15
- metadata: {
16
- name: 'React Router',
17
- integration: Integration.reactRouter,
18
- docsUrl: 'https://workos.com/docs/user-management/authkit/react-router',
19
- unsupportedVersionDocsUrl: 'https://workos.com/docs/user-management/authkit/react-router',
20
- skillName: 'workos-authkit-react-router',
21
- gatherContext: async (options) => {
22
- const routerMode = await getReactRouterMode(options);
23
- return { routerMode };
24
- },
25
- },
26
- detection: {
27
- packageName: 'react-router',
28
- packageDisplayName: 'React Router',
29
- getVersion: (packageJson) => getPackageVersion('react-router', packageJson),
30
- getVersionBucket: getReactRouterVersionBucket,
31
- },
32
- environment: {
33
- uploadToHosting: false,
34
- requiresApiKey: true, // Can do SSR
35
- getEnvVars: (apiKey, clientId) => ({
36
- WORKOS_API_KEY: apiKey,
37
- WORKOS_CLIENT_ID: clientId,
38
- }),
39
- },
40
- analytics: {
41
- getTags: (context) => {
42
- const routerMode = context.routerMode;
43
- return {
44
- routerMode: routerMode || 'unknown',
45
- };
46
- },
47
- },
48
- prompts: {
49
- getAdditionalContextLines: (context) => {
50
- const routerMode = context.routerMode;
51
- const modeName = routerMode ? getReactRouterModeName(routerMode) : 'unknown';
52
- // Map router mode to framework ID for MCP docs resource
53
- const frameworkIdMap = {
54
- [ReactRouterMode.V6]: 'react-react-router-6',
55
- [ReactRouterMode.V7_FRAMEWORK]: 'react-react-router-7-framework',
56
- [ReactRouterMode.V7_DATA]: 'react-react-router-7-data',
57
- [ReactRouterMode.V7_DECLARATIVE]: 'react-react-router-7-declarative',
58
- };
59
- const frameworkId = routerMode ? frameworkIdMap[routerMode] : ReactRouterMode.V7_FRAMEWORK;
60
- return [`Router mode: ${modeName}`, `Framework docs ID: ${frameworkId}`];
61
- },
62
- },
63
- ui: {
64
- successMessage: 'WorkOS AuthKit integration complete',
65
- getOutroChanges: (context) => {
66
- const routerMode = context.routerMode;
67
- const modeName = routerMode ? getReactRouterModeName(routerMode) : 'React Router';
68
- return [
69
- `Analyzed your React Router project structure (${modeName})`,
70
- `Created and configured WorkOS AuthKit`,
71
- `Integrated authentication into your application`,
72
- ];
73
- },
74
- getOutroNextSteps: () => [
75
- 'Start your development server to test authentication',
76
- 'Visit the WorkOS Dashboard to manage users and settings',
77
- ],
78
- },
79
- };
80
- /**
81
- * React Router wizard powered by the universal agent runner.
82
- * @returns Summary of what was done, or empty string if version check fails
83
- */
84
- export async function runReactRouterInstallerAgent(options) {
85
- if (options.debug) {
86
- enableDebugLogs();
87
- }
88
- // Check React Router version - agent wizard requires >= 6.0.0
89
- const packageJson = await getPackageDotJson(options);
90
- const reactRouterVersion = getPackageVersion('react-router', packageJson);
91
- if (reactRouterVersion) {
92
- const coercedVersion = semver.coerce(reactRouterVersion);
93
- if (coercedVersion && semver.lt(coercedVersion, MINIMUM_REACT_ROUTER_VERSION)) {
94
- const docsUrl = REACT_ROUTER_AGENT_CONFIG.metadata.unsupportedVersionDocsUrl ?? REACT_ROUTER_AGENT_CONFIG.metadata.docsUrl;
95
- clack.log.warn(`Sorry: the installer can't help you with React Router ${reactRouterVersion}. Upgrade to React Router ${MINIMUM_REACT_ROUTER_VERSION} or later, or check out the manual setup guide.`);
96
- clack.log.info(`Setup React Router manually: ${chalk.cyan(docsUrl)}`);
97
- clack.outro('WorkOS AuthKit installer will see you next time!');
98
- return '';
99
- }
100
- }
101
- return runAgentInstaller(REACT_ROUTER_AGENT_CONFIG, options);
102
- }
4
+ export { run as runReactRouterInstallerAgent, config as REACT_ROUTER_AGENT_CONFIG, } from '../integrations/react-router/index.js';
103
5
  //# sourceMappingURL=react-router-installer-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"react-router-installer-agent.js","sourceRoot":"","sources":["../../src/react-router/react-router-installer-agent.ts"],"names":[],"mappings":"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","sourcesContent":["/* React Router wizard using Claude Agent SDK with WorkOS MCP */\nimport type { InstallerOptions } from '../utils/types.js';\nimport type { FrameworkConfig } from '../lib/framework-config.js';\nimport { enableDebugLogs } from '../utils/debug.js';\nimport { runAgentInstaller } from '../lib/agent-runner.js';\nimport { Integration } from '../lib/constants.js';\nimport { getPackageVersion } from '../utils/package-json.js';\nimport { getPackageDotJson } from '../utils/clack-utils.js';\nimport clack from '../utils/clack.js';\nimport chalk from 'chalk';\nimport * as semver from 'semver';\nimport { getReactRouterMode, getReactRouterModeName, getReactRouterVersionBucket, ReactRouterMode } from './utils.js';\n\n/**\n * React Router framework configuration for the universal agent runner.\n */\nconst MINIMUM_REACT_ROUTER_VERSION = '6.0.0';\n\nconst REACT_ROUTER_AGENT_CONFIG: FrameworkConfig = {\n metadata: {\n name: 'React Router',\n integration: Integration.reactRouter,\n docsUrl: 'https://workos.com/docs/user-management/authkit/react-router',\n unsupportedVersionDocsUrl: 'https://workos.com/docs/user-management/authkit/react-router',\n skillName: 'workos-authkit-react-router',\n gatherContext: async (options: InstallerOptions) => {\n const routerMode = await getReactRouterMode(options);\n return { routerMode };\n },\n },\n\n detection: {\n packageName: 'react-router',\n packageDisplayName: 'React Router',\n getVersion: (packageJson: any) => getPackageVersion('react-router', packageJson),\n getVersionBucket: getReactRouterVersionBucket,\n },\n\n environment: {\n uploadToHosting: false,\n requiresApiKey: true, // Can do SSR\n getEnvVars: (apiKey: string, clientId: string) => ({\n WORKOS_API_KEY: apiKey,\n WORKOS_CLIENT_ID: clientId,\n }),\n },\n\n analytics: {\n getTags: (context: any) => {\n const routerMode = context.routerMode as ReactRouterMode;\n return {\n routerMode: routerMode || 'unknown',\n };\n },\n },\n\n prompts: {\n getAdditionalContextLines: (context: any) => {\n const routerMode = context.routerMode as ReactRouterMode;\n const modeName = routerMode ? getReactRouterModeName(routerMode) : 'unknown';\n\n // Map router mode to framework ID for MCP docs resource\n const frameworkIdMap: Record<ReactRouterMode, string> = {\n [ReactRouterMode.V6]: 'react-react-router-6',\n [ReactRouterMode.V7_FRAMEWORK]: 'react-react-router-7-framework',\n [ReactRouterMode.V7_DATA]: 'react-react-router-7-data',\n [ReactRouterMode.V7_DECLARATIVE]: 'react-react-router-7-declarative',\n };\n\n const frameworkId = routerMode ? frameworkIdMap[routerMode] : ReactRouterMode.V7_FRAMEWORK;\n\n return [`Router mode: ${modeName}`, `Framework docs ID: ${frameworkId}`];\n },\n },\n\n ui: {\n successMessage: 'WorkOS AuthKit integration complete',\n getOutroChanges: (context: any) => {\n const routerMode = context.routerMode as ReactRouterMode;\n const modeName = routerMode ? getReactRouterModeName(routerMode) : 'React Router';\n return [\n `Analyzed your React Router project structure (${modeName})`,\n `Created and configured WorkOS AuthKit`,\n `Integrated authentication into your application`,\n ];\n },\n getOutroNextSteps: () => [\n 'Start your development server to test authentication',\n 'Visit the WorkOS Dashboard to manage users and settings',\n ],\n },\n};\n\n/**\n * React Router wizard powered by the universal agent runner.\n * @returns Summary of what was done, or empty string if version check fails\n */\nexport async function runReactRouterInstallerAgent(options: InstallerOptions): Promise<string> {\n if (options.debug) {\n enableDebugLogs();\n }\n\n // Check React Router version - agent wizard requires >= 6.0.0\n const packageJson = await getPackageDotJson(options);\n const reactRouterVersion = getPackageVersion('react-router', packageJson);\n\n if (reactRouterVersion) {\n const coercedVersion = semver.coerce(reactRouterVersion);\n if (coercedVersion && semver.lt(coercedVersion, MINIMUM_REACT_ROUTER_VERSION)) {\n const docsUrl =\n REACT_ROUTER_AGENT_CONFIG.metadata.unsupportedVersionDocsUrl ?? REACT_ROUTER_AGENT_CONFIG.metadata.docsUrl;\n\n clack.log.warn(\n `Sorry: the installer can't help you with React Router ${reactRouterVersion}. Upgrade to React Router ${MINIMUM_REACT_ROUTER_VERSION} or later, or check out the manual setup guide.`,\n );\n clack.log.info(`Setup React Router manually: ${chalk.cyan(docsUrl)}`);\n clack.outro('WorkOS AuthKit installer will see you next time!');\n return '';\n }\n }\n\n return runAgentInstaller(REACT_ROUTER_AGENT_CONFIG, options);\n}\n"]}
1
+ {"version":3,"file":"react-router-installer-agent.js","sourceRoot":"","sources":["../../src/react-router/react-router-installer-agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,GAAG,IAAI,4BAA4B,EACnC,MAAM,IAAI,yBAAyB,GACpC,MAAM,uCAAuC,CAAC","sourcesContent":["/**\n * @deprecated Import from 'src/integrations/react-router/index.js' instead.\n */\nexport {\n run as runReactRouterInstallerAgent,\n config as REACT_ROUTER_AGENT_CONFIG,\n} from '../integrations/react-router/index.js';\n"]}
@@ -1,19 +1,4 @@
1
- import type { InstallerOptions } from '../utils/types.js';
2
- export declare enum ReactRouterMode {
3
- V6 = "v6",// React Router v6
4
- V7_FRAMEWORK = "v7-framework",// React Router v7 with react-router.config.ts
5
- V7_DATA = "v7-data",// React Router v7 with createBrowserRouter
6
- V7_DECLARATIVE = "v7-declarative"
7
- }
8
1
  /**
9
- * Get React Router version bucket for analytics
2
+ * @deprecated Import from 'src/integrations/react-router/utils.js' instead.
10
3
  */
11
- export declare function getReactRouterVersionBucket(version: string | undefined): string;
12
- /**
13
- * Detect React Router mode
14
- */
15
- export declare function getReactRouterMode(options: InstallerOptions): Promise<ReactRouterMode>;
16
- /**
17
- * Get human-readable name for React Router mode
18
- */
19
- export declare function getReactRouterModeName(mode: ReactRouterMode): string;
4
+ export { ReactRouterMode, getReactRouterVersionBucket, getReactRouterMode, getReactRouterModeName, } from '../integrations/react-router/utils.js';
@@ -1,210 +1,5 @@
1
- import { major } from 'semver';
2
- import fg from 'fast-glob';
3
- import { abortIfCancelled, getPackageDotJson } from '../utils/clack-utils.js';
4
- import clack from '../utils/clack.js';
5
- import { getVersionBucket } from '../utils/semver.js';
6
- import { IGNORE_PATTERNS, Integration } from '../lib/constants.js';
7
- import { getPackageVersion } from '../utils/package-json.js';
8
- import chalk from 'chalk';
9
- import * as fs from 'node:fs';
10
- import * as path from 'node:path';
11
- import * as semver from 'semver';
12
- export var ReactRouterMode;
13
- (function (ReactRouterMode) {
14
- ReactRouterMode["V6"] = "v6";
15
- ReactRouterMode["V7_FRAMEWORK"] = "v7-framework";
16
- ReactRouterMode["V7_DATA"] = "v7-data";
17
- ReactRouterMode["V7_DECLARATIVE"] = "v7-declarative";
18
- })(ReactRouterMode || (ReactRouterMode = {}));
19
1
  /**
20
- * Get React Router version bucket for analytics
2
+ * @deprecated Import from 'src/integrations/react-router/utils.js' instead.
21
3
  */
22
- export function getReactRouterVersionBucket(version) {
23
- return getVersionBucket(version, 6);
24
- }
25
- /**
26
- * Check if react-router.config.ts exists (indicates framework mode - React Router v7)
27
- */
28
- async function hasReactRouterConfig({ installDir }) {
29
- const configMatches = await fg('**/react-router.config.@(ts|js|tsx|jsx)', {
30
- dot: true,
31
- cwd: installDir,
32
- ignore: IGNORE_PATTERNS,
33
- });
34
- return configMatches.length > 0;
35
- }
36
- /**
37
- * Search for createBrowserRouter usage in source files
38
- */
39
- async function hasCreateBrowserRouter({ installDir }) {
40
- const sourceFiles = await fg('**/*.@(ts|tsx|js|jsx)', {
41
- dot: true,
42
- cwd: installDir,
43
- ignore: IGNORE_PATTERNS,
44
- });
45
- for (const file of sourceFiles) {
46
- try {
47
- const filePath = path.join(installDir, file);
48
- const content = fs.readFileSync(filePath, 'utf-8');
49
- // Check for createBrowserRouter import or usage
50
- if (content.includes('createBrowserRouter')) {
51
- return true;
52
- }
53
- }
54
- catch {
55
- // Skip files that can't be read
56
- continue;
57
- }
58
- }
59
- return false;
60
- }
61
- /**
62
- * Search for declarative BrowserRouter usage
63
- */
64
- async function hasDeclarativeRouter({ installDir }) {
65
- const sourceFiles = await fg('**/*.@(ts|tsx|js|jsx)', {
66
- dot: true,
67
- cwd: installDir,
68
- ignore: IGNORE_PATTERNS,
69
- });
70
- for (const file of sourceFiles) {
71
- try {
72
- const filePath = path.join(installDir, file);
73
- const content = fs.readFileSync(filePath, 'utf-8');
74
- // Check for BrowserRouter usage (JSX or import)
75
- if (content.includes('<BrowserRouter') ||
76
- (content.includes('BrowserRouter') &&
77
- (content.includes('from "react-router-dom"') || content.includes("from 'react-router-dom'")))) {
78
- return true;
79
- }
80
- }
81
- catch {
82
- // Skip files that can't be read
83
- continue;
84
- }
85
- }
86
- return false;
87
- }
88
- /**
89
- * Detect React Router mode
90
- */
91
- export async function getReactRouterMode(options) {
92
- const { installDir } = options;
93
- // First, get the React Router version
94
- const packageJson = await getPackageDotJson(options);
95
- const reactRouterVersion = getPackageVersion('react-router-dom', packageJson) || getPackageVersion('react-router', packageJson);
96
- if (!reactRouterVersion) {
97
- // If we can't detect version, ask the user
98
- clack.log.info(`Learn more about React Router modes: ${chalk.cyan('https://reactrouter.com/start/modes')}`);
99
- const result = await abortIfCancelled(clack.select({
100
- message: 'What React Router version and mode are you using?',
101
- options: [
102
- {
103
- label: 'React Router v6',
104
- value: ReactRouterMode.V6,
105
- },
106
- {
107
- label: 'React Router v7 - Framework mode',
108
- value: ReactRouterMode.V7_FRAMEWORK,
109
- },
110
- {
111
- label: 'React Router v7 - Data mode',
112
- value: ReactRouterMode.V7_DATA,
113
- },
114
- {
115
- label: 'React Router v7 - Declarative mode',
116
- value: ReactRouterMode.V7_DECLARATIVE,
117
- },
118
- ],
119
- }), Integration.reactRouter);
120
- return result;
121
- }
122
- const coercedVersion = semver.coerce(reactRouterVersion);
123
- const majorVersion = coercedVersion ? major(coercedVersion) : null;
124
- // If v6, return V6
125
- if (majorVersion === 6) {
126
- clack.log.info('Detected React Router v6');
127
- return ReactRouterMode.V6;
128
- }
129
- // If v7, detect the mode
130
- if (majorVersion === 7) {
131
- // First check for framework mode (react-router.config.ts)
132
- const hasConfig = await hasReactRouterConfig({ installDir });
133
- if (hasConfig) {
134
- clack.log.info('Detected React Router v7 - Framework mode');
135
- return ReactRouterMode.V7_FRAMEWORK;
136
- }
137
- // Check for data mode (createBrowserRouter)
138
- const hasDataMode = await hasCreateBrowserRouter({ installDir });
139
- if (hasDataMode) {
140
- clack.log.info('Detected React Router v7 - Data mode');
141
- return ReactRouterMode.V7_DATA;
142
- }
143
- // Check for declarative mode (BrowserRouter)
144
- const hasDeclarative = await hasDeclarativeRouter({ installDir });
145
- if (hasDeclarative) {
146
- clack.log.info('Detected React Router v7 - Declarative mode');
147
- return ReactRouterMode.V7_DECLARATIVE;
148
- }
149
- // If v7 but can't detect mode, ask the user
150
- clack.log.info(`Learn more about React Router modes: ${chalk.cyan('https://reactrouter.com/start/modes')}`);
151
- const result = await abortIfCancelled(clack.select({
152
- message: 'What React Router v7 mode are you using?',
153
- options: [
154
- {
155
- label: 'Framework mode',
156
- value: ReactRouterMode.V7_FRAMEWORK,
157
- },
158
- {
159
- label: 'Data mode',
160
- value: ReactRouterMode.V7_DATA,
161
- },
162
- {
163
- label: 'Declarative mode',
164
- value: ReactRouterMode.V7_DECLARATIVE,
165
- },
166
- ],
167
- }), Integration.reactRouter);
168
- return result;
169
- }
170
- // If version is not 6 or 7, default to asking
171
- clack.log.info(`Learn more about React Router modes: ${chalk.cyan('https://reactrouter.com/start/modes')}`);
172
- const result = await abortIfCancelled(clack.select({
173
- message: 'What React Router version and mode are you using?',
174
- options: [
175
- {
176
- label: 'React Router v6',
177
- value: ReactRouterMode.V6,
178
- },
179
- {
180
- label: 'React Router v7 - Framework mode',
181
- value: ReactRouterMode.V7_FRAMEWORK,
182
- },
183
- {
184
- label: 'React Router v7 - Data mode',
185
- value: ReactRouterMode.V7_DATA,
186
- },
187
- {
188
- label: 'React Router v7 - Declarative mode',
189
- value: ReactRouterMode.V7_DECLARATIVE,
190
- },
191
- ],
192
- }), Integration.reactRouter);
193
- return result;
194
- }
195
- /**
196
- * Get human-readable name for React Router mode
197
- */
198
- export function getReactRouterModeName(mode) {
199
- switch (mode) {
200
- case ReactRouterMode.V6:
201
- return 'v6';
202
- case ReactRouterMode.V7_FRAMEWORK:
203
- return 'v7 Framework mode';
204
- case ReactRouterMode.V7_DATA:
205
- return 'v7 Data mode';
206
- case ReactRouterMode.V7_DECLARATIVE:
207
- return 'v7 Declarative mode';
208
- }
209
- }
4
+ export { ReactRouterMode, getReactRouterVersionBucket, getReactRouterMode, getReactRouterModeName, } from '../integrations/react-router/utils.js';
210
5
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/react-router/utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { major } from 'semver';\nimport fg from 'fast-glob';\nimport { abortIfCancelled, getPackageDotJson } from '../utils/clack-utils.js';\nimport clack from '../utils/clack.js';\nimport { getVersionBucket } from '../utils/semver.js';\nimport type { InstallerOptions } from '../utils/types.js';\nimport { IGNORE_PATTERNS, Integration } from '../lib/constants.js';\nimport { getPackageVersion } from '../utils/package-json.js';\nimport chalk from 'chalk';\nimport * as fs from 'node:fs';\nimport * as path from 'node:path';\nimport * as semver from 'semver';\n\nexport enum ReactRouterMode {\n V6 = 'v6', // React Router v6\n V7_FRAMEWORK = 'v7-framework', // React Router v7 with react-router.config.ts\n V7_DATA = 'v7-data', // React Router v7 with createBrowserRouter\n V7_DECLARATIVE = 'v7-declarative', // React Router v7 with BrowserRouter\n}\n\n/**\n * Get React Router version bucket for analytics\n */\nexport function getReactRouterVersionBucket(version: string | undefined): string {\n return getVersionBucket(version, 6);\n}\n\n/**\n * Check if react-router.config.ts exists (indicates framework mode - React Router v7)\n */\nasync function hasReactRouterConfig({ installDir }: Pick<InstallerOptions, 'installDir'>): Promise<boolean> {\n const configMatches = await fg('**/react-router.config.@(ts|js|tsx|jsx)', {\n dot: true,\n cwd: installDir,\n ignore: IGNORE_PATTERNS,\n });\n\n return configMatches.length > 0;\n}\n\n/**\n * Search for createBrowserRouter usage in source files\n */\nasync function hasCreateBrowserRouter({ installDir }: Pick<InstallerOptions, 'installDir'>): Promise<boolean> {\n const sourceFiles = await fg('**/*.@(ts|tsx|js|jsx)', {\n dot: true,\n cwd: installDir,\n ignore: IGNORE_PATTERNS,\n });\n\n for (const file of sourceFiles) {\n try {\n const filePath = path.join(installDir, file);\n const content = fs.readFileSync(filePath, 'utf-8');\n\n // Check for createBrowserRouter import or usage\n if (content.includes('createBrowserRouter')) {\n return true;\n }\n } catch {\n // Skip files that can't be read\n continue;\n }\n }\n\n return false;\n}\n\n/**\n * Search for declarative BrowserRouter usage\n */\nasync function hasDeclarativeRouter({ installDir }: Pick<InstallerOptions, 'installDir'>): Promise<boolean> {\n const sourceFiles = await fg('**/*.@(ts|tsx|js|jsx)', {\n dot: true,\n cwd: installDir,\n ignore: IGNORE_PATTERNS,\n });\n\n for (const file of sourceFiles) {\n try {\n const filePath = path.join(installDir, file);\n const content = fs.readFileSync(filePath, 'utf-8');\n\n // Check for BrowserRouter usage (JSX or import)\n if (\n content.includes('<BrowserRouter') ||\n (content.includes('BrowserRouter') &&\n (content.includes('from \"react-router-dom\"') || content.includes(\"from 'react-router-dom'\")))\n ) {\n return true;\n }\n } catch {\n // Skip files that can't be read\n continue;\n }\n }\n\n return false;\n}\n\n/**\n * Detect React Router mode\n */\nexport async function getReactRouterMode(options: InstallerOptions): Promise<ReactRouterMode> {\n const { installDir } = options;\n\n // First, get the React Router version\n const packageJson = await getPackageDotJson(options);\n const reactRouterVersion =\n getPackageVersion('react-router-dom', packageJson) || getPackageVersion('react-router', packageJson);\n\n if (!reactRouterVersion) {\n // If we can't detect version, ask the user\n clack.log.info(`Learn more about React Router modes: ${chalk.cyan('https://reactrouter.com/start/modes')}`);\n const result: ReactRouterMode = await abortIfCancelled(\n clack.select({\n message: 'What React Router version and mode are you using?',\n options: [\n {\n label: 'React Router v6',\n value: ReactRouterMode.V6,\n },\n {\n label: 'React Router v7 - Framework mode',\n value: ReactRouterMode.V7_FRAMEWORK,\n },\n {\n label: 'React Router v7 - Data mode',\n value: ReactRouterMode.V7_DATA,\n },\n {\n label: 'React Router v7 - Declarative mode',\n value: ReactRouterMode.V7_DECLARATIVE,\n },\n ],\n }),\n Integration.reactRouter,\n );\n return result;\n }\n\n const coercedVersion = semver.coerce(reactRouterVersion);\n const majorVersion = coercedVersion ? major(coercedVersion) : null;\n\n // If v6, return V6\n if (majorVersion === 6) {\n clack.log.info('Detected React Router v6');\n return ReactRouterMode.V6;\n }\n\n // If v7, detect the mode\n if (majorVersion === 7) {\n // First check for framework mode (react-router.config.ts)\n const hasConfig = await hasReactRouterConfig({ installDir });\n if (hasConfig) {\n clack.log.info('Detected React Router v7 - Framework mode');\n return ReactRouterMode.V7_FRAMEWORK;\n }\n\n // Check for data mode (createBrowserRouter)\n const hasDataMode = await hasCreateBrowserRouter({ installDir });\n if (hasDataMode) {\n clack.log.info('Detected React Router v7 - Data mode');\n return ReactRouterMode.V7_DATA;\n }\n\n // Check for declarative mode (BrowserRouter)\n const hasDeclarative = await hasDeclarativeRouter({ installDir });\n if (hasDeclarative) {\n clack.log.info('Detected React Router v7 - Declarative mode');\n return ReactRouterMode.V7_DECLARATIVE;\n }\n\n // If v7 but can't detect mode, ask the user\n clack.log.info(`Learn more about React Router modes: ${chalk.cyan('https://reactrouter.com/start/modes')}`);\n const result: ReactRouterMode = await abortIfCancelled(\n clack.select({\n message: 'What React Router v7 mode are you using?',\n options: [\n {\n label: 'Framework mode',\n value: ReactRouterMode.V7_FRAMEWORK,\n },\n {\n label: 'Data mode',\n value: ReactRouterMode.V7_DATA,\n },\n {\n label: 'Declarative mode',\n value: ReactRouterMode.V7_DECLARATIVE,\n },\n ],\n }),\n Integration.reactRouter,\n );\n return result;\n }\n\n // If version is not 6 or 7, default to asking\n clack.log.info(`Learn more about React Router modes: ${chalk.cyan('https://reactrouter.com/start/modes')}`);\n const result: ReactRouterMode = await abortIfCancelled(\n clack.select({\n message: 'What React Router version and mode are you using?',\n options: [\n {\n label: 'React Router v6',\n value: ReactRouterMode.V6,\n },\n {\n label: 'React Router v7 - Framework mode',\n value: ReactRouterMode.V7_FRAMEWORK,\n },\n {\n label: 'React Router v7 - Data mode',\n value: ReactRouterMode.V7_DATA,\n },\n {\n label: 'React Router v7 - Declarative mode',\n value: ReactRouterMode.V7_DECLARATIVE,\n },\n ],\n }),\n Integration.reactRouter,\n );\n return result;\n}\n\n/**\n * Get human-readable name for React Router mode\n */\nexport function getReactRouterModeName(mode: ReactRouterMode): string {\n switch (mode) {\n case ReactRouterMode.V6:\n return 'v6';\n case ReactRouterMode.V7_FRAMEWORK:\n return 'v7 Framework mode';\n case ReactRouterMode.V7_DATA:\n return 'v7 Data mode';\n case ReactRouterMode.V7_DECLARATIVE:\n return 'v7 Declarative mode';\n }\n}\n"]}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/react-router/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,eAAe,EACf,2BAA2B,EAC3B,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,uCAAuC,CAAC","sourcesContent":["/**\n * @deprecated Import from 'src/integrations/react-router/utils.js' instead.\n */\nexport {\n ReactRouterMode,\n getReactRouterVersionBucket,\n getReactRouterMode,\n getReactRouterModeName,\n} from '../integrations/react-router/utils.js';\n"]}
@@ -1,2 +1,4 @@
1
- import type { InstallerOptions } from '../utils/types.js';
2
- export declare function runTanstackStartInstallerAgent(options: InstallerOptions): Promise<string>;
1
+ /**
2
+ * @deprecated Import from 'src/integrations/tanstack-start/index.js' instead.
3
+ */
4
+ export { run as runTanstackStartInstallerAgent, config as TANSTACK_START_AGENT_CONFIG, } from '../integrations/tanstack-start/index.js';
@@ -1,49 +1,5 @@
1
- import { enableDebugLogs } from '../utils/debug.js';
2
- import { runAgentInstaller } from '../lib/agent-runner.js';
3
- import { Integration } from '../lib/constants.js';
4
- import { getPackageVersion } from '../utils/package-json.js';
5
- const TANSTACK_START_AGENT_CONFIG = {
6
- metadata: {
7
- name: 'TanStack Start',
8
- integration: Integration.tanstackStart,
9
- docsUrl: 'https://workos.com/docs/user-management/authkit/tanstack-start',
10
- unsupportedVersionDocsUrl: 'https://workos.com/docs/user-management/authkit/tanstack-start',
11
- skillName: 'workos-authkit-tanstack-start',
12
- },
13
- detection: {
14
- packageName: '@tanstack/react-start',
15
- packageDisplayName: 'TanStack Start',
16
- getVersion: (packageJson) => getPackageVersion('@tanstack/react-start', packageJson),
17
- },
18
- environment: {
19
- uploadToHosting: false,
20
- requiresApiKey: true, // Server-side framework
21
- getEnvVars: (apiKey, clientId) => ({
22
- WORKOS_API_KEY: apiKey,
23
- WORKOS_CLIENT_ID: clientId,
24
- }),
25
- },
26
- analytics: {
27
- getTags: () => ({}),
28
- },
29
- prompts: {},
30
- ui: {
31
- successMessage: 'WorkOS AuthKit integration complete',
32
- getOutroChanges: () => [
33
- 'Analyzed your TanStack Start project structure',
34
- 'Created and configured WorkOS AuthKit',
35
- 'Integrated authentication into your application',
36
- ],
37
- getOutroNextSteps: () => [
38
- 'Start your development server to test authentication',
39
- 'Visit the WorkOS Dashboard to manage users and settings',
40
- ],
41
- },
42
- };
43
- export async function runTanstackStartInstallerAgent(options) {
44
- if (options.debug) {
45
- enableDebugLogs();
46
- }
47
- return runAgentInstaller(TANSTACK_START_AGENT_CONFIG, options);
48
- }
1
+ /**
2
+ * @deprecated Import from 'src/integrations/tanstack-start/index.js' instead.
3
+ */
4
+ export { run as runTanstackStartInstallerAgent, config as TANSTACK_START_AGENT_CONFIG, } from '../integrations/tanstack-start/index.js';
49
5
  //# sourceMappingURL=tanstack-start-installer-agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tanstack-start-installer-agent.js","sourceRoot":"","sources":["../../src/tanstack-start/tanstack-start-installer-agent.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,2BAA2B,GAAoB;IACnD,QAAQ,EAAE;QACR,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,WAAW,CAAC,aAAa;QACtC,OAAO,EAAE,gEAAgE;QACzE,yBAAyB,EAAE,gEAAgE;QAC3F,SAAS,EAAE,+BAA+B;KAC3C;IAED,SAAS,EAAE;QACT,WAAW,EAAE,uBAAuB;QACpC,kBAAkB,EAAE,gBAAgB;QACpC,UAAU,EAAE,CAAC,WAAgB,EAAE,EAAE,CAAC,iBAAiB,CAAC,uBAAuB,EAAE,WAAW,CAAC;KAC1F;IAED,WAAW,EAAE;QACX,eAAe,EAAE,KAAK;QACtB,cAAc,EAAE,IAAI,EAAE,wBAAwB;QAC9C,UAAU,EAAE,CAAC,MAAc,EAAE,QAAgB,EAAE,EAAE,CAAC,CAAC;YACjD,cAAc,EAAE,MAAM;YACtB,gBAAgB,EAAE,QAAQ;SAC3B,CAAC;KACH;IAED,SAAS,EAAE;QACT,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC;KACpB;IAED,OAAO,EAAE,EAAE;IAEX,EAAE,EAAE;QACF,cAAc,EAAE,qCAAqC;QACrD,eAAe,EAAE,GAAG,EAAE,CAAC;YACrB,gDAAgD;YAChD,uCAAuC;YACvC,iDAAiD;SAClD;QACD,iBAAiB,EAAE,GAAG,EAAE,CAAC;YACvB,sDAAsD;YACtD,yDAAyD;SAC1D;KACF;CACF,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,8BAA8B,CAAC,OAAyB;IAC5E,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,eAAe,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,iBAAiB,CAAC,2BAA2B,EAAE,OAAO,CAAC,CAAC;AACjE,CAAC","sourcesContent":["/* TanStack Start wizard using Claude Agent SDK */\nimport type { InstallerOptions } from '../utils/types.js';\nimport type { FrameworkConfig } from '../lib/framework-config.js';\nimport { enableDebugLogs } from '../utils/debug.js';\nimport { runAgentInstaller } from '../lib/agent-runner.js';\nimport { Integration } from '../lib/constants.js';\nimport { getPackageVersion } from '../utils/package-json.js';\n\nconst TANSTACK_START_AGENT_CONFIG: FrameworkConfig = {\n metadata: {\n name: 'TanStack Start',\n integration: Integration.tanstackStart,\n docsUrl: 'https://workos.com/docs/user-management/authkit/tanstack-start',\n unsupportedVersionDocsUrl: 'https://workos.com/docs/user-management/authkit/tanstack-start',\n skillName: 'workos-authkit-tanstack-start',\n },\n\n detection: {\n packageName: '@tanstack/react-start',\n packageDisplayName: 'TanStack Start',\n getVersion: (packageJson: any) => getPackageVersion('@tanstack/react-start', packageJson),\n },\n\n environment: {\n uploadToHosting: false,\n requiresApiKey: true, // Server-side framework\n getEnvVars: (apiKey: string, clientId: string) => ({\n WORKOS_API_KEY: apiKey,\n WORKOS_CLIENT_ID: clientId,\n }),\n },\n\n analytics: {\n getTags: () => ({}),\n },\n\n prompts: {},\n\n ui: {\n successMessage: 'WorkOS AuthKit integration complete',\n getOutroChanges: () => [\n 'Analyzed your TanStack Start project structure',\n 'Created and configured WorkOS AuthKit',\n 'Integrated authentication into your application',\n ],\n getOutroNextSteps: () => [\n 'Start your development server to test authentication',\n 'Visit the WorkOS Dashboard to manage users and settings',\n ],\n },\n};\n\nexport async function runTanstackStartInstallerAgent(options: InstallerOptions): Promise<string> {\n if (options.debug) {\n enableDebugLogs();\n }\n\n return runAgentInstaller(TANSTACK_START_AGENT_CONFIG, options);\n}\n"]}
1
+ {"version":3,"file":"tanstack-start-installer-agent.js","sourceRoot":"","sources":["../../src/tanstack-start/tanstack-start-installer-agent.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EACL,GAAG,IAAI,8BAA8B,EACrC,MAAM,IAAI,2BAA2B,GACtC,MAAM,yCAAyC,CAAC","sourcesContent":["/**\n * @deprecated Import from 'src/integrations/tanstack-start/index.js' instead.\n */\nexport {\n run as runTanstackStartInstallerAgent,\n config as TANSTACK_START_AGENT_CONFIG,\n} from '../integrations/tanstack-start/index.js';\n"]}
@@ -1,2 +1,4 @@
1
- import type { InstallerOptions } from '../utils/types.js';
2
- export declare function runVanillaJsInstallerAgent(options: InstallerOptions): Promise<string>;
1
+ /**
2
+ * @deprecated Import from 'src/integrations/vanilla-js/index.js' instead.
3
+ */
4
+ export { run as runVanillaJsInstallerAgent, config as VANILLA_JS_AGENT_CONFIG, } from '../integrations/vanilla-js/index.js';