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.
- package/dist/bin.js +32 -3
- package/dist/bin.js.map +1 -1
- package/dist/commands/doctor.d.ts +10 -0
- package/dist/commands/doctor.js +30 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/doctor/checks/connectivity.d.ts +2 -0
- package/dist/doctor/checks/connectivity.js +35 -0
- package/dist/doctor/checks/connectivity.js.map +1 -0
- package/dist/doctor/checks/dashboard.d.ts +3 -0
- package/dist/doctor/checks/dashboard.js +123 -0
- package/dist/doctor/checks/dashboard.js.map +1 -0
- package/dist/doctor/checks/environment.d.ts +2 -0
- package/dist/doctor/checks/environment.js +68 -0
- package/dist/doctor/checks/environment.js.map +1 -0
- package/dist/doctor/checks/framework.d.ts +2 -0
- package/dist/doctor/checks/framework.js +75 -0
- package/dist/doctor/checks/framework.js.map +1 -0
- package/dist/doctor/checks/runtime.d.ts +2 -0
- package/dist/doctor/checks/runtime.js +20 -0
- package/dist/doctor/checks/runtime.js.map +1 -0
- package/dist/doctor/checks/sdk.d.ts +2 -0
- package/dist/doctor/checks/sdk.js +111 -0
- package/dist/doctor/checks/sdk.js.map +1 -0
- package/dist/doctor/clipboard.d.ts +1 -0
- package/dist/doctor/clipboard.js +43 -0
- package/dist/doctor/clipboard.js.map +1 -0
- package/dist/doctor/index.d.ts +6 -0
- package/dist/doctor/index.js +94 -0
- package/dist/doctor/index.js.map +1 -0
- package/dist/doctor/issues.d.ts +58 -0
- package/dist/doctor/issues.js +134 -0
- package/dist/doctor/issues.js.map +1 -0
- package/dist/doctor/json-output.d.ts +2 -0
- package/dist/doctor/json-output.js +4 -0
- package/dist/doctor/json-output.js.map +1 -0
- package/dist/doctor/output.d.ts +5 -0
- package/dist/doctor/output.js +149 -0
- package/dist/doctor/output.js.map +1 -0
- package/dist/doctor/types.d.ts +105 -0
- package/dist/doctor/types.js +2 -0
- package/dist/doctor/types.js.map +1 -0
- package/dist/integrations/dotnet/index.d.ts +8 -0
- package/dist/integrations/dotnet/index.js +163 -0
- package/dist/integrations/dotnet/index.js.map +1 -0
- package/dist/integrations/elixir/index.d.ts +8 -0
- package/dist/integrations/elixir/index.js +152 -0
- package/dist/integrations/elixir/index.js.map +1 -0
- package/dist/integrations/go/index.d.ts +11 -0
- package/dist/integrations/go/index.js +220 -0
- package/dist/integrations/go/index.js.map +1 -0
- package/dist/integrations/kotlin/index.d.ts +4 -0
- package/dist/integrations/kotlin/index.js +53 -0
- package/dist/integrations/kotlin/index.js.map +1 -0
- package/dist/integrations/nextjs/index.d.ts +4 -0
- package/dist/integrations/nextjs/index.js +90 -0
- package/dist/integrations/nextjs/index.js.map +1 -0
- package/dist/integrations/nextjs/utils.d.ts +8 -0
- package/dist/integrations/nextjs/utils.js +53 -0
- package/dist/integrations/nextjs/utils.js.map +1 -0
- package/dist/integrations/node/index.d.ts +4 -0
- package/dist/integrations/node/index.js +52 -0
- package/dist/integrations/node/index.js.map +1 -0
- package/dist/integrations/php/index.d.ts +4 -0
- package/dist/integrations/php/index.js +51 -0
- package/dist/integrations/php/index.js.map +1 -0
- package/dist/integrations/php-laravel/index.d.ts +4 -0
- package/dist/integrations/php-laravel/index.js +51 -0
- package/dist/integrations/php-laravel/index.js.map +1 -0
- package/dist/integrations/python/index.d.ts +9 -0
- package/dist/integrations/python/index.js +254 -0
- package/dist/integrations/python/index.js.map +1 -0
- package/dist/integrations/react/index.d.ts +4 -0
- package/dist/integrations/react/index.js +49 -0
- package/dist/integrations/react/index.js.map +1 -0
- package/dist/integrations/react-router/index.d.ts +4 -0
- package/dist/integrations/react-router/index.js +94 -0
- package/dist/integrations/react-router/index.js.map +1 -0
- package/dist/integrations/react-router/utils.d.ts +10 -0
- package/dist/integrations/react-router/utils.js +146 -0
- package/dist/integrations/react-router/utils.js.map +1 -0
- package/dist/integrations/ruby/index.d.ts +8 -0
- package/dist/integrations/ruby/index.js +142 -0
- package/dist/integrations/ruby/index.js.map +1 -0
- package/dist/integrations/sveltekit/index.d.ts +4 -0
- package/dist/integrations/sveltekit/index.js +50 -0
- package/dist/integrations/sveltekit/index.js.map +1 -0
- package/dist/integrations/tanstack-start/index.d.ts +4 -0
- package/dist/integrations/tanstack-start/index.js +51 -0
- package/dist/integrations/tanstack-start/index.js.map +1 -0
- package/dist/integrations/vanilla-js/index.d.ts +4 -0
- package/dist/integrations/vanilla-js/index.js +49 -0
- package/dist/integrations/vanilla-js/index.js.map +1 -0
- package/dist/lib/agent-interface.js +66 -1
- package/dist/lib/agent-interface.js.map +1 -1
- package/dist/lib/config.d.ts +32 -58
- package/dist/lib/config.js +19 -70
- package/dist/lib/config.js.map +1 -1
- package/dist/lib/constants.d.ts +17 -14
- package/dist/lib/constants.js +12 -31
- package/dist/lib/constants.js.map +1 -1
- package/dist/lib/framework-config.d.ts +13 -4
- package/dist/lib/framework-config.js.map +1 -1
- package/dist/lib/language-detection.d.ts +20 -0
- package/dist/lib/language-detection.js +96 -0
- package/dist/lib/language-detection.js.map +1 -0
- package/dist/lib/port-detection.js +4 -2
- package/dist/lib/port-detection.js.map +1 -1
- package/dist/lib/registry.d.ts +43 -0
- package/dist/lib/registry.js +96 -0
- package/dist/lib/registry.js.map +1 -0
- package/dist/lib/run-with-core.js +70 -26
- package/dist/lib/run-with-core.js.map +1 -1
- package/dist/lib/validation/validator.js +43 -13
- package/dist/lib/validation/validator.js.map +1 -1
- package/dist/nextjs/nextjs-installer-agent.d.ts +3 -4
- package/dist/nextjs/nextjs-installer-agent.js +3 -94
- package/dist/nextjs/nextjs-installer-agent.js.map +1 -1
- package/dist/nextjs/utils.d.ts +4 -8
- package/dist/nextjs/utils.js +4 -52
- package/dist/nextjs/utils.js.map +1 -1
- package/dist/react/react-installer-agent.d.ts +4 -2
- package/dist/react/react-installer-agent.js +4 -46
- package/dist/react/react-installer-agent.js.map +1 -1
- package/dist/react-router/react-router-installer-agent.d.ts +2 -4
- package/dist/react-router/react-router-installer-agent.js +2 -100
- package/dist/react-router/react-router-installer-agent.js.map +1 -1
- package/dist/react-router/utils.d.ts +2 -17
- package/dist/react-router/utils.js +2 -207
- package/dist/react-router/utils.js.map +1 -1
- package/dist/tanstack-start/tanstack-start-installer-agent.d.ts +4 -2
- package/dist/tanstack-start/tanstack-start-installer-agent.js +4 -48
- package/dist/tanstack-start/tanstack-start-installer-agent.js.map +1 -1
- package/dist/vanilla-js/vanilla-js-installer-agent.d.ts +4 -2
- package/dist/vanilla-js/vanilla-js-installer-agent.js +4 -46
- package/dist/vanilla-js/vanilla-js-installer-agent.js.map +1 -1
- package/package.json +6 -5
- package/skills/workos-authkit-nextjs/SKILL.md +41 -11
- package/skills/workos-authkit-sveltekit/SKILL.md +160 -0
- package/skills/workos-dotnet/SKILL.md +163 -0
- package/skills/workos-elixir/SKILL.md +194 -0
- package/skills/workos-go/SKILL.md +191 -0
- package/skills/workos-kotlin/SKILL.md +161 -0
- package/skills/workos-node/SKILL.md +164 -0
- package/skills/workos-php/SKILL.md +127 -0
- package/skills/workos-php-laravel/SKILL.md +147 -0
- package/skills/workos-python/SKILL.md +159 -0
- package/skills/workos-ruby/SKILL.md +163 -0
package/dist/nextjs/utils.js
CHANGED
|
@@ -1,53 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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
|
package/dist/nextjs/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/nextjs/utils.ts"],"names":[],"mappings":"AAAA
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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":"
|
|
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
|
-
*
|
|
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
|
|
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
|
-
*
|
|
2
|
+
* @deprecated Import from 'src/integrations/react-router/index.js' instead.
|
|
12
3
|
*/
|
|
13
|
-
|
|
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":"
|
|
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
|
-
*
|
|
2
|
+
* @deprecated Import from 'src/integrations/react-router/utils.js' instead.
|
|
10
3
|
*/
|
|
11
|
-
export
|
|
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
|
-
*
|
|
2
|
+
* @deprecated Import from 'src/integrations/react-router/utils.js' instead.
|
|
21
3
|
*/
|
|
22
|
-
export
|
|
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
|
-
|
|
2
|
-
|
|
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
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
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":"
|
|
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
|
-
|
|
2
|
-
|
|
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';
|