@maka/maka-cli 5.1.45 → 5.1.47
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/.claude/settings.local.json +3 -1
- package/bundle/typescript/package.json +1 -1
- package/bundle/typescript/src/commands/ai/mcp.sub.cmd.js +118 -5
- package/bundle/typescript/src/commands/ai/mcp.sub.cmd.js.map +1 -1
- package/bundle/typescript/src/commands/create.js +2 -2
- package/bundle/typescript/src/commands/create.js.map +1 -1
- package/bundle/typescript/src/commands/run/run.command.js +0 -5
- package/bundle/typescript/src/commands/run/run.command.js.map +1 -1
- package/bundle/typescript/src/generators/kits/auth/_index.d.ts +1 -0
- package/bundle/typescript/src/generators/kits/auth/_index.js +1 -0
- package/bundle/typescript/src/generators/kits/auth/_index.js.map +1 -1
- package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.d.ts +1 -0
- package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js +745 -0
- package/bundle/typescript/src/generators/kits/auth/auth0-meteor.auth.gen.js.map +1 -0
- package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js +2 -2
- package/bundle/typescript/src/generators/kits/auth/basic-meteor.auth.gen.js.map +1 -1
- package/bundle/typescript/src/generators/kits/mui/_index.d.ts +1 -0
- package/bundle/typescript/src/generators/kits/mui/_index.js +1 -0
- package/bundle/typescript/src/generators/kits/mui/_index.js.map +1 -1
- package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.d.ts +2 -0
- package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js +158 -0
- package/bundle/typescript/src/generators/kits/mui/auth0.mui.gen.js.map +1 -0
- package/bundle/typescript/src/generators/publish.js +2 -6
- package/bundle/typescript/src/generators/publish.js.map +1 -1
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.jsx +163 -0
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-client.js.tsx +163 -0
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.jsx +59 -0
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-config.js.tsx +67 -0
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.jsx +271 -0
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-methods.js.tsx +271 -0
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.jsx +179 -0
- package/bundle/typescript/src/templates/react/kit/auth/service/auth0-validator.js.tsx +194 -0
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.jsx +71 -0
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth-callback.js.tsx +71 -0
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.jsx +123 -0
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-account-settings.js.tsx +123 -0
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.jsx +56 -0
- package/bundle/typescript/src/templates/react/kit/mui/auth0/auth0-login-button.js.tsx +74 -0
- package/bundle/typescript/src/tools/scaffold/scaffold.class.d.ts +2 -1
- package/bundle/typescript/src/tools/scaffold/scaffold.class.js +12 -6
- package/bundle/typescript/src/tools/scaffold/scaffold.class.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth0-meteor.auth.gen.js","sourceRoot":"","sources":["../../../../../../src/generators/kits/auth/auth0-meteor.auth.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,9 +33,10 @@ Generator.create({
|
|
|
33
33
|
const projectDirectory = fsi.findProjectDirectory();
|
|
34
34
|
const appPath = fsi.findAppDirectory();
|
|
35
35
|
const isSsr = projectConfig.engines.ssr === 'meteor';
|
|
36
|
+
const jsEngine = projectConfig.engines.js;
|
|
36
37
|
await MakaGen.processAndRunGenerator('kit:auth:provider', [], { force: shouldForce, cwd: projectDirectory, config: projectConfig });
|
|
37
38
|
await MakaGen.processAndRunGenerator('publish', ['auth/roles'], { force: shouldForce, globalPublish: true, cwd: projectDirectory, config: projectConfig });
|
|
38
|
-
const publishFilePath = appPath + path.normalize(
|
|
39
|
+
const publishFilePath = appPath + path.normalize(`/imports/startup/server/publications/auth/roles.${jsEngine}`);
|
|
39
40
|
const resourceTopLevelPath = (isSsr) ? `/imports/startup/lib` : '/imports/startup/client';
|
|
40
41
|
const pathToMeteorAuthFile = scaffold.pathFromApp({
|
|
41
42
|
pathParts: [
|
|
@@ -62,7 +63,6 @@ Generator.create({
|
|
|
62
63
|
'authentication-provider' // file name
|
|
63
64
|
]
|
|
64
65
|
});
|
|
65
|
-
const jsEngine = projectConfig.engines.js;
|
|
66
66
|
// import auth provider into main index
|
|
67
67
|
await scaffold.injectImport({
|
|
68
68
|
filePath: `${pathToAuthFile}.${jsEngine}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"basic-meteor.auth.gen.js","sourceRoot":"","sources":["../../../../../../src/generators/kits/auth/basic-meteor.auth.gen.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,iCAAiC,CAAC;AACtD,oEAAoE;AACpE,OAAO,OAAO,MAAM,qBAAqB,CAAC;AAC1C,OAAO,OAAO,MAAM,iCAAiC,CAAA;AAErD,OAAO,EACL,aAAa,GACd,MAAM,sCAAsC,CAAA;AAE7C,SAAS,CAAC,MAAM,CAAC;IACf,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,KAAK,EAAE,mDAAmD;IAC1D,SAAS,EAAE,6FAA6F;IACxG,SAAS,EAAE,CAAC;YACV,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,0BAA0B;SACxC,CAAC;IACF,KAAK,EAAE,IAAI;IACX,oBAAoB,EAAE,KAAK;IAC3B,mBAAmB,EAAE,IAAI;IACzB,eAAe,EAAE;QACf,MAAM,EAAE,aAAa,CAAC,KAAK;KAC5B;IACD,WAAW,EAAE;;;GAGZ;CACF,EAAE,KAAK,WAAU,IAAQ,EAAE,IAAwB;IAClD,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC;IACnD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;QACxC,MAAM,GAAG,CAAC,kBAAkB,CAAC,CAAC,mBAAmB,CAAC,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAE7E,MAAM,gBAAgB,GAAG,GAAG,CAAC,oBAAoB,EAAE,CAAC;QACpD,MAAM,OAAO,GAAG,GAAG,CAAC,gBAAgB,EAAE,CAAC;QACvC,MAAM,KAAK,GAAG,aAAa,CAAC,OAAO,CAAC,GAAG,KAAK,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"basic-meteor.auth.gen.js","sourceRoot":"","sources":["../../../../../../src/generators/kits/auth/basic-meteor.auth.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../../../../../src/generators/kits/mui/_index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"_index.js","sourceRoot":"","sources":["../../../../../../src/generators/kits/mui/_index.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,CAAC;AAC5B,OAAO,oBAAoB,CAAC;AAC5B,OAAO,mBAAmB,CAAC;AAC3B,OAAO,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { Generator } from '../../../generator.js';
|
|
2
|
+
import { Log } from '../../../tools/log/log.class.js';
|
|
3
|
+
import MakaGen from '../../../generators/maka.gen.js';
|
|
4
|
+
import MuiGen from './mui.generator.js';
|
|
5
|
+
import { kebabCase } from "change-case";
|
|
6
|
+
import { ThemeEngines, ClientEngines } from '../../../tools/fsi/fsi.interfaces.js';
|
|
7
|
+
Generator.create({
|
|
8
|
+
name: 'auth0',
|
|
9
|
+
aliases: ['a0'],
|
|
10
|
+
usage: 'maka {generate, g}:{kit}:{mui, m}:{auth0, a0}',
|
|
11
|
+
shortDesc: 'Generate MUI Auth0 UI components (login button, account settings, callback page)',
|
|
12
|
+
validOpts: [{
|
|
13
|
+
name: 'force',
|
|
14
|
+
boolFlag: true,
|
|
15
|
+
description: 'Overwrite existing files'
|
|
16
|
+
}, {
|
|
17
|
+
name: 'componentsDir',
|
|
18
|
+
description: 'Base directory for generated components (default: components)'
|
|
19
|
+
}, {
|
|
20
|
+
name: 'pagesDir',
|
|
21
|
+
description: 'Base directory for generated pages (default: pages)'
|
|
22
|
+
}],
|
|
23
|
+
isPro: true,
|
|
24
|
+
mustBeInMakaProject: true,
|
|
25
|
+
resourceNameRequired: false,
|
|
26
|
+
requiredEngines: {
|
|
27
|
+
theme: ThemeEngines.MATERIAL,
|
|
28
|
+
client: ClientEngines.REACT,
|
|
29
|
+
},
|
|
30
|
+
examples: [
|
|
31
|
+
'maka generate:kit:mui:auth0',
|
|
32
|
+
'maka g:k:m:a0',
|
|
33
|
+
'maka g:k:m:auth0 --componentsDir=ui/components'
|
|
34
|
+
],
|
|
35
|
+
description: `
|
|
36
|
+
Generates MUI-based Auth0 UI components including:
|
|
37
|
+
- Auth0 login button component
|
|
38
|
+
- Auth0 account settings component
|
|
39
|
+
- Auth callback page for OAuth redirect handling
|
|
40
|
+
`
|
|
41
|
+
}, async function (args, opts) {
|
|
42
|
+
try {
|
|
43
|
+
const { projectConfig, fsi, scaffold } = this;
|
|
44
|
+
const shouldForce = opts.force || false;
|
|
45
|
+
const projectDirectory = fsi.findProjectDirectory();
|
|
46
|
+
Log.info('Generating Auth0 MUI components...');
|
|
47
|
+
const isSsr = projectConfig.engines.ssr === 'meteor';
|
|
48
|
+
const jsEngine = projectConfig.engines.js;
|
|
49
|
+
// Component names
|
|
50
|
+
const AUTH0_LOGIN_BUTTON = 'auth0-login-button';
|
|
51
|
+
const AUTH0_ACCOUNT_SETTINGS = 'auth0-account-settings';
|
|
52
|
+
const AUTH_CALLBACK_PAGE = 'auth-callback';
|
|
53
|
+
// Base paths
|
|
54
|
+
const componentsBasePath = opts.componentsDir ? `/imports/ui/${opts.componentsDir}` : '/imports/ui/components';
|
|
55
|
+
const pagesBasePath = opts.pagesDir ? `/imports/ui/${opts.pagesDir}` : '/imports/ui/pages';
|
|
56
|
+
const context = {
|
|
57
|
+
isSsr,
|
|
58
|
+
authContextPath: isSsr ? '/imports/startup/lib/authentication-provider' : '/imports/startup/client/authentication-provider',
|
|
59
|
+
authServicePath: isSsr ? '/imports/startup/lib/authentication-service' : '/imports/startup/client/authentication-service'
|
|
60
|
+
};
|
|
61
|
+
// ===================================================================================
|
|
62
|
+
// 1. Generate Auth0 Login Button Component
|
|
63
|
+
// ===================================================================================
|
|
64
|
+
const pathToLoginButton = scaffold.pathFromApp({
|
|
65
|
+
pathParts: [
|
|
66
|
+
componentsBasePath,
|
|
67
|
+
kebabCase(AUTH0_LOGIN_BUTTON),
|
|
68
|
+
kebabCase(AUTH0_LOGIN_BUTTON)
|
|
69
|
+
]
|
|
70
|
+
});
|
|
71
|
+
await scaffold.template({
|
|
72
|
+
srcPath: `kit/mui/auth0/${AUTH0_LOGIN_BUTTON}.js`,
|
|
73
|
+
destPath: `${pathToLoginButton}.${jsEngine}`,
|
|
74
|
+
framework: 'react',
|
|
75
|
+
context,
|
|
76
|
+
config: projectConfig,
|
|
77
|
+
force: shouldForce,
|
|
78
|
+
ignore: false
|
|
79
|
+
});
|
|
80
|
+
Log.success(`✓ Generated ${AUTH0_LOGIN_BUTTON} component`);
|
|
81
|
+
// ===================================================================================
|
|
82
|
+
// 2. Generate Auth0 Account Settings Component
|
|
83
|
+
// ===================================================================================
|
|
84
|
+
const pathToAccountSettings = scaffold.pathFromApp({
|
|
85
|
+
pathParts: [
|
|
86
|
+
componentsBasePath,
|
|
87
|
+
kebabCase(AUTH0_ACCOUNT_SETTINGS),
|
|
88
|
+
kebabCase(AUTH0_ACCOUNT_SETTINGS)
|
|
89
|
+
]
|
|
90
|
+
});
|
|
91
|
+
await scaffold.template({
|
|
92
|
+
srcPath: `kit/mui/auth0/${AUTH0_ACCOUNT_SETTINGS}.js`,
|
|
93
|
+
destPath: `${pathToAccountSettings}.${jsEngine}`,
|
|
94
|
+
framework: 'react',
|
|
95
|
+
context,
|
|
96
|
+
config: projectConfig,
|
|
97
|
+
force: shouldForce,
|
|
98
|
+
ignore: false
|
|
99
|
+
});
|
|
100
|
+
Log.success(`✓ Generated ${AUTH0_ACCOUNT_SETTINGS} component`);
|
|
101
|
+
// ===================================================================================
|
|
102
|
+
// 3. Generate Auth Callback Page
|
|
103
|
+
// ===================================================================================
|
|
104
|
+
const pathToCallbackPage = scaffold.pathFromApp({
|
|
105
|
+
pathParts: [
|
|
106
|
+
pagesBasePath,
|
|
107
|
+
kebabCase(AUTH_CALLBACK_PAGE),
|
|
108
|
+
kebabCase(AUTH_CALLBACK_PAGE)
|
|
109
|
+
]
|
|
110
|
+
});
|
|
111
|
+
await scaffold.template({
|
|
112
|
+
srcPath: `kit/mui/auth0/${AUTH_CALLBACK_PAGE}.js`,
|
|
113
|
+
destPath: `${pathToCallbackPage}.${jsEngine}`,
|
|
114
|
+
framework: 'react',
|
|
115
|
+
context,
|
|
116
|
+
config: projectConfig,
|
|
117
|
+
force: shouldForce,
|
|
118
|
+
ignore: false
|
|
119
|
+
});
|
|
120
|
+
Log.success(`✓ Generated ${AUTH_CALLBACK_PAGE} page`);
|
|
121
|
+
// ===================================================================================
|
|
122
|
+
// 4. Register auth-callback page with templates
|
|
123
|
+
// ===================================================================================
|
|
124
|
+
const callbackPageModulePath = `${pagesBasePath}/${AUTH_CALLBACK_PAGE}/${AUTH_CALLBACK_PAGE}`;
|
|
125
|
+
await scaffold.injectTemplateModule(AUTH_CALLBACK_PAGE, projectConfig, callbackPageModulePath);
|
|
126
|
+
Log.success(`✓ Registered ${AUTH_CALLBACK_PAGE} page with templates`);
|
|
127
|
+
// ===================================================================================
|
|
128
|
+
// 5. Create route for auth/callback
|
|
129
|
+
// ===================================================================================
|
|
130
|
+
await MakaGen.processAndRunGenerator('route', [AUTH_CALLBACK_PAGE], {
|
|
131
|
+
route: 'auth/callback',
|
|
132
|
+
cwd: projectDirectory,
|
|
133
|
+
config: projectConfig
|
|
134
|
+
});
|
|
135
|
+
Log.success(`✓ Created route for /auth/callback`);
|
|
136
|
+
// ===================================================================================
|
|
137
|
+
// Success message
|
|
138
|
+
// ===================================================================================
|
|
139
|
+
Log.success('\n✓ Auth0 MUI components generated successfully!');
|
|
140
|
+
Log.info('\nGenerated components:');
|
|
141
|
+
Log.info(` • ${AUTH0_LOGIN_BUTTON} - Reusable login button with redirect/popup support`);
|
|
142
|
+
Log.info(` • ${AUTH0_ACCOUNT_SETTINGS} - Account linking/unlinking UI`);
|
|
143
|
+
Log.info(` • ${AUTH_CALLBACK_PAGE} - OAuth callback handler page`);
|
|
144
|
+
Log.info('\nUsage:');
|
|
145
|
+
Log.info(` import { Auth0LoginButton } from '${componentsBasePath}/${AUTH0_LOGIN_BUTTON}/${AUTH0_LOGIN_BUTTON}';`);
|
|
146
|
+
Log.info(` import { Auth0AccountSettings } from '${componentsBasePath}/${AUTH0_ACCOUNT_SETTINGS}/${AUTH0_ACCOUNT_SETTINGS}';`);
|
|
147
|
+
Log.info('\nNext steps:');
|
|
148
|
+
Log.info(' 1. Add <Auth0LoginButton /> to your login page');
|
|
149
|
+
Log.info(' 2. Add <Auth0AccountSettings /> to your user profile page');
|
|
150
|
+
Log.info(' 3. Configure your Auth0 callback URL to: http://localhost:3000/auth/callback');
|
|
151
|
+
}
|
|
152
|
+
catch (e) {
|
|
153
|
+
Log.error(e);
|
|
154
|
+
process.exit(1);
|
|
155
|
+
}
|
|
156
|
+
}, async function () { }, MuiGen);
|
|
157
|
+
export default MuiGen;
|
|
158
|
+
//# sourceMappingURL=auth0.mui.gen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth0.mui.gen.js","sourceRoot":"","sources":["../../../../../../src/generators/kits/mui/auth0.mui.gen.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,6 +21,7 @@ Generator.create({
|
|
|
21
21
|
const { projectConfig, scaffold } = this;
|
|
22
22
|
const shouldForce = opts.force || false;
|
|
23
23
|
const projectPath = '/imports/startup/server/publications';
|
|
24
|
+
const jsEngine = projectConfig.engines.js;
|
|
24
25
|
const resourceFileName = kebabCase(opts.resourceName);
|
|
25
26
|
const pathToPublishFile = scaffold.pathFromApp({
|
|
26
27
|
pathParts: [
|
|
@@ -30,11 +31,6 @@ Generator.create({
|
|
|
30
31
|
resourceFileName
|
|
31
32
|
]
|
|
32
33
|
});
|
|
33
|
-
// we don't need the jsx or tsx extensions
|
|
34
|
-
let engineConfig = 'js';
|
|
35
|
-
if (projectConfig.engines.js === 'tsx') {
|
|
36
|
-
engineConfig = 'ts';
|
|
37
|
-
}
|
|
38
34
|
const context = {
|
|
39
35
|
name: opts.resourceName,
|
|
40
36
|
collection: pascalCase(opts.resourceName),
|
|
@@ -43,7 +39,7 @@ Generator.create({
|
|
|
43
39
|
};
|
|
44
40
|
await scaffold.template({
|
|
45
41
|
srcPath: `publish/publish.js`,
|
|
46
|
-
destPath: `${pathToPublishFile}.${
|
|
42
|
+
destPath: `${pathToPublishFile}.${jsEngine}`,
|
|
47
43
|
context,
|
|
48
44
|
config: projectConfig,
|
|
49
45
|
force: shouldForce
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../src/generators/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAUhD,SAAS,CAAC,MAAM,CAAC;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,KAAK,EAAE,wCAAwC;IAC/C,SAAS,EAAE,8EAA8E;IACzF,SAAS,EAAE,CAAC;YACV,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,0BAA0B;SACxC,CAAC;IACF,YAAY,EAAE,CAAC,eAAe,CAAC;IAC/B,mBAAmB,EAAE,IAAI;IACzB,QAAQ,EAAE;QACR,sBAAsB;KACvB;CACF,EAAE,KAAK,WAAW,IAAc,EAAE,IAAkB;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;QACxC,MAAM,WAAW,GAAG,sCAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"publish.js","sourceRoot":"","sources":["../../../../src/generators/publish.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAUhD,SAAS,CAAC,MAAM,CAAC;IACf,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,CAAC,GAAG,CAAC;IACd,KAAK,EAAE,wCAAwC;IAC/C,SAAS,EAAE,8EAA8E;IACzF,SAAS,EAAE,CAAC;YACV,IAAI,EAAE,OAAO;YACb,QAAQ,EAAE,IAAI;YACd,WAAW,EAAE,0BAA0B;SACxC,CAAC;IACF,YAAY,EAAE,CAAC,eAAe,CAAC;IAC/B,mBAAmB,EAAE,IAAI;IACzB,QAAQ,EAAE;QACR,sBAAsB;KACvB;CACF,EAAE,KAAK,WAAW,IAAc,EAAE,IAAkB;IACnD,IAAI,CAAC;QACH,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QACzC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;QACxC,MAAM,WAAW,GAAG,sCAAsC,CAAC;QAC3D,MAAM,QAAQ,GAAG,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAE1C,MAAM,gBAAgB,GAAG,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QAEtD,MAAM,iBAAiB,GAAG,QAAQ,CAAC,WAAW,CAAC;YAC7C,SAAS,EAAE;gBACT,WAAW;gBACX,IAAI,CAAC,GAAG;gBACR,EAAE;gBACF,gBAAgB;aACjB;SACF,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG;YACd,IAAI,EAAE,IAAI,CAAC,YAAY;YACvB,UAAU,EAAE,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC;YACzC,QAAQ,EAAE,IAAI;YACd,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC;QAEF,MAAM,QAAQ,CAAC,QAAQ,CAAC;YACtB,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,GAAG,iBAAiB,IAAI,QAAQ,EAAE;YAC5C,OAAO;YACP,MAAM,EAAE,aAAa;YACrB,KAAK,EAAE,WAAW;SACnB,CAAC,CAAC;QAEH,2CAA2C;QAC3C,8DAA8D;QAC9D,wFAAwF;QACxF,MAAM;QACN,6CAA6C;QAC7C,gDAAgD;QAChD,aAAa;QACb,WAAW;QACX,MAAM;QACN,EAAE;QACF,qCAAqC;QACrC,wBAAwB;QACxB,4BAA4B;QAC5B,MAAM;QAEN,MAAM,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;YACpC,SAAS,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,CAAC,aAAa,EAAE,SAAS,aAAa,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC;SACrG,CAAC,CAAC;QACH,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC;QACnD,MAAM,QAAQ,CAAC,iBAAiB,CAAC;YAC/B,QAAQ,EAAE,QAAQ;YAClB,OAAO,EAAE,yBAAyB,OAAO,GAAG,gBAAgB,IAAI;SACjE,CAAC,CAAC;IACL,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACb,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { Meteor } from 'meteor/meteor';
|
|
2
|
+
import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
3
|
+
import { getAuth0Config } from '../lib/auth0-config';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Auth0 Client Service
|
|
7
|
+
*
|
|
8
|
+
* This service manages Auth0 authentication on the client side,
|
|
9
|
+
* including login, logout, and token management.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
let auth0Client = null;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Initialize Auth0 client
|
|
16
|
+
*/
|
|
17
|
+
export const getAuth0Client = async () => {
|
|
18
|
+
if (auth0Client) {
|
|
19
|
+
return auth0Client;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const config = getAuth0Config();
|
|
23
|
+
|
|
24
|
+
auth0Client = new Auth0Client({
|
|
25
|
+
domain: config.domain,
|
|
26
|
+
clientId: config.clientId,
|
|
27
|
+
authorizationParams: {
|
|
28
|
+
redirect_uri: config.redirectUri,
|
|
29
|
+
audience: config.audience,
|
|
30
|
+
scope: config.scope,
|
|
31
|
+
},
|
|
32
|
+
cacheLocation: 'localstorage',
|
|
33
|
+
useRefreshTokens: true,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
return auth0Client;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Login with Auth0 using redirect
|
|
41
|
+
*/
|
|
42
|
+
export const loginWithAuth0Redirect = async () => {
|
|
43
|
+
const client = await getAuth0Client();
|
|
44
|
+
|
|
45
|
+
await client.loginWithRedirect({
|
|
46
|
+
authorizationParams: {
|
|
47
|
+
redirect_uri: getAuth0Config().redirectUri,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Login with Auth0 using popup
|
|
54
|
+
*/
|
|
55
|
+
export const loginWithAuth0Popup = async () => {
|
|
56
|
+
const client = await getAuth0Client();
|
|
57
|
+
|
|
58
|
+
await client.loginWithPopup();
|
|
59
|
+
|
|
60
|
+
// Get the ID token
|
|
61
|
+
const token = await client.getIdTokenClaims();
|
|
62
|
+
|
|
63
|
+
if (!token?.__raw) {
|
|
64
|
+
throw new Error('Failed to get Auth0 token');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return token.__raw;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Handle Auth0 redirect callback
|
|
72
|
+
* Call this on your callback page
|
|
73
|
+
*/
|
|
74
|
+
export const handleAuth0Callback = async () => {
|
|
75
|
+
const client = await getAuth0Client();
|
|
76
|
+
|
|
77
|
+
// Handle the redirect callback
|
|
78
|
+
await client.handleRedirectCallback();
|
|
79
|
+
|
|
80
|
+
// Get the ID token
|
|
81
|
+
const token = await client.getIdTokenClaims();
|
|
82
|
+
|
|
83
|
+
if (!token?.__raw) {
|
|
84
|
+
throw new Error('Failed to get Auth0 token after callback');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return token.__raw;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Get current Auth0 user
|
|
92
|
+
*/
|
|
93
|
+
export const getAuth0User = async () => {
|
|
94
|
+
const client = await getAuth0Client();
|
|
95
|
+
return await client.getUser();
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Check if user is authenticated with Auth0
|
|
100
|
+
*/
|
|
101
|
+
export const isAuth0Authenticated = async () => {
|
|
102
|
+
const client = await getAuth0Client();
|
|
103
|
+
return await client.isAuthenticated();
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Logout from Auth0
|
|
108
|
+
*/
|
|
109
|
+
export const logoutAuth0 = async () => {
|
|
110
|
+
const client = await getAuth0Client();
|
|
111
|
+
|
|
112
|
+
await client.logout({
|
|
113
|
+
logoutParams: {
|
|
114
|
+
returnTo: window.location.origin,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Get Auth0 access token
|
|
121
|
+
*/
|
|
122
|
+
export const getAuth0AccessToken = async () => {
|
|
123
|
+
const client = await getAuth0Client();
|
|
124
|
+
|
|
125
|
+
return await client.getTokenSilently();
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Get Auth0 ID token
|
|
130
|
+
*/
|
|
131
|
+
export const getAuth0IdToken = async () => {
|
|
132
|
+
const client = await getAuth0Client();
|
|
133
|
+
|
|
134
|
+
const token = await client.getIdTokenClaims();
|
|
135
|
+
|
|
136
|
+
if (!token?.__raw) {
|
|
137
|
+
throw new Error('No Auth0 token available');
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return token.__raw;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Silently refresh the Auth0 token and update Meteor session
|
|
145
|
+
* This is called automatically when the token is about to expire
|
|
146
|
+
*/
|
|
147
|
+
export const refreshAuth0Token = async () => {
|
|
148
|
+
const client = await getAuth0Client();
|
|
149
|
+
|
|
150
|
+
// Get a fresh token silently (using refresh token)
|
|
151
|
+
await client.getTokenSilently({
|
|
152
|
+
cacheMode: 'off', // Force refresh
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// Get the new ID token
|
|
156
|
+
const token = await client.getIdTokenClaims();
|
|
157
|
+
|
|
158
|
+
if (!token?.__raw) {
|
|
159
|
+
throw new Error('Failed to refresh Auth0 token');
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return token.__raw;
|
|
163
|
+
};
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import { Meteor } from 'meteor/meteor';
|
|
2
|
+
import { Auth0Client } from '@auth0/auth0-spa-js';
|
|
3
|
+
import { getAuth0Config } from '../lib/auth0-config';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Auth0 Client Service
|
|
7
|
+
*
|
|
8
|
+
* This service manages Auth0 authentication on the client side,
|
|
9
|
+
* including login, logout, and token management.
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
let auth0Client: Auth0Client | null = null;
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Initialize Auth0 client
|
|
16
|
+
*/
|
|
17
|
+
export const getAuth0Client = async (): Promise<Auth0Client> => {
|
|
18
|
+
if (auth0Client) {
|
|
19
|
+
return auth0Client;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const config = getAuth0Config();
|
|
23
|
+
|
|
24
|
+
auth0Client = new Auth0Client({
|
|
25
|
+
domain: config.domain,
|
|
26
|
+
clientId: config.clientId,
|
|
27
|
+
authorizationParams: {
|
|
28
|
+
redirect_uri: config.redirectUri,
|
|
29
|
+
audience: config.audience,
|
|
30
|
+
scope: config.scope,
|
|
31
|
+
},
|
|
32
|
+
cacheLocation: 'localstorage',
|
|
33
|
+
useRefreshTokens: true,
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
return auth0Client;
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* Login with Auth0 using redirect
|
|
41
|
+
*/
|
|
42
|
+
export const loginWithAuth0Redirect = async () => {
|
|
43
|
+
const client = await getAuth0Client();
|
|
44
|
+
|
|
45
|
+
await client.loginWithRedirect({
|
|
46
|
+
authorizationParams: {
|
|
47
|
+
redirect_uri: getAuth0Config().redirectUri,
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Login with Auth0 using popup
|
|
54
|
+
*/
|
|
55
|
+
export const loginWithAuth0Popup = async () => {
|
|
56
|
+
const client = await getAuth0Client();
|
|
57
|
+
|
|
58
|
+
await client.loginWithPopup();
|
|
59
|
+
|
|
60
|
+
// Get the ID token
|
|
61
|
+
const token = await client.getIdTokenClaims();
|
|
62
|
+
|
|
63
|
+
if (!token?.__raw) {
|
|
64
|
+
throw new Error('Failed to get Auth0 token');
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
return token.__raw;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Handle Auth0 redirect callback
|
|
72
|
+
* Call this on your callback page
|
|
73
|
+
*/
|
|
74
|
+
export const handleAuth0Callback = async (): Promise<string> => {
|
|
75
|
+
const client = await getAuth0Client();
|
|
76
|
+
|
|
77
|
+
// Handle the redirect callback
|
|
78
|
+
await client.handleRedirectCallback();
|
|
79
|
+
|
|
80
|
+
// Get the ID token
|
|
81
|
+
const token = await client.getIdTokenClaims();
|
|
82
|
+
|
|
83
|
+
if (!token?.__raw) {
|
|
84
|
+
throw new Error('Failed to get Auth0 token after callback');
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return token.__raw;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* Get current Auth0 user
|
|
92
|
+
*/
|
|
93
|
+
export const getAuth0User = async () => {
|
|
94
|
+
const client = await getAuth0Client();
|
|
95
|
+
return await client.getUser();
|
|
96
|
+
};
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Check if user is authenticated with Auth0
|
|
100
|
+
*/
|
|
101
|
+
export const isAuth0Authenticated = async (): Promise<boolean> => {
|
|
102
|
+
const client = await getAuth0Client();
|
|
103
|
+
return await client.isAuthenticated();
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
/**
|
|
107
|
+
* Logout from Auth0
|
|
108
|
+
*/
|
|
109
|
+
export const logoutAuth0 = async () => {
|
|
110
|
+
const client = await getAuth0Client();
|
|
111
|
+
|
|
112
|
+
await client.logout({
|
|
113
|
+
logoutParams: {
|
|
114
|
+
returnTo: window.location.origin,
|
|
115
|
+
},
|
|
116
|
+
});
|
|
117
|
+
};
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* Get Auth0 access token
|
|
121
|
+
*/
|
|
122
|
+
export const getAuth0AccessToken = async (): Promise<string> => {
|
|
123
|
+
const client = await getAuth0Client();
|
|
124
|
+
|
|
125
|
+
return await client.getTokenSilently();
|
|
126
|
+
};
|
|
127
|
+
|
|
128
|
+
/**
|
|
129
|
+
* Get Auth0 ID token
|
|
130
|
+
*/
|
|
131
|
+
export const getAuth0IdToken = async (): Promise<string> => {
|
|
132
|
+
const client = await getAuth0Client();
|
|
133
|
+
|
|
134
|
+
const token = await client.getIdTokenClaims();
|
|
135
|
+
|
|
136
|
+
if (!token?.__raw) {
|
|
137
|
+
throw new Error('No Auth0 token available');
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
return token.__raw;
|
|
141
|
+
};
|
|
142
|
+
|
|
143
|
+
/**
|
|
144
|
+
* Silently refresh the Auth0 token and update Meteor session
|
|
145
|
+
* This is called automatically when the token is about to expire
|
|
146
|
+
*/
|
|
147
|
+
export const refreshAuth0Token = async (): Promise<string> => {
|
|
148
|
+
const client = await getAuth0Client();
|
|
149
|
+
|
|
150
|
+
// Get a fresh token silently (using refresh token)
|
|
151
|
+
await client.getTokenSilently({
|
|
152
|
+
cacheMode: 'off', // Force refresh
|
|
153
|
+
});
|
|
154
|
+
|
|
155
|
+
// Get the new ID token
|
|
156
|
+
const token = await client.getIdTokenClaims();
|
|
157
|
+
|
|
158
|
+
if (!token?.__raw) {
|
|
159
|
+
throw new Error('Failed to refresh Auth0 token');
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return token.__raw;
|
|
163
|
+
};
|