create-absolutejs 0.5.1 → 0.6.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/data.d.ts +1 -1
- package/dist/data.js +2 -2
- package/dist/generators/configurations/generatePackageJson.d.ts +2 -2
- package/dist/generators/configurations/generatePackageJson.js +6 -2
- package/dist/generators/configurations/initializeRoot.js +2 -2
- package/dist/generators/db/generateDatabaseTypes.d.ts +3 -3
- package/dist/generators/db/generateDatabaseTypes.js +6 -6
- package/dist/generators/db/generateDrizzleSchema.d.ts +3 -3
- package/dist/generators/db/generateDrizzleSchema.js +4 -6
- package/dist/generators/db/generateSqliteSchema.d.ts +2 -2
- package/dist/generators/db/generateSqliteSchema.js +1 -1
- package/dist/generators/db/handlerTemplates.d.ts +27 -27
- package/dist/generators/db/handlerTemplates.js +59 -92
- package/dist/generators/db/scaffoldDatabase.d.ts +2 -2
- package/dist/generators/db/scaffoldDatabase.js +6 -6
- package/dist/generators/db/scaffoldDocker.d.ts +3 -3
- package/dist/generators/db/scaffoldDocker.js +2 -2
- package/dist/generators/html/scaffoldHTML.js +2 -2
- package/dist/generators/project/collectDependencies.d.ts +2 -2
- package/dist/generators/project/collectDependencies.js +2 -2
- package/dist/generators/project/generateAbsoluteAuthConfig.d.ts +2 -0
- package/dist/generators/project/generateAbsoluteAuthConfig.js +128 -0
- package/dist/generators/project/generateDBBlock.js +8 -2
- package/dist/generators/project/generateImportsBlock.d.ts +2 -2
- package/dist/generators/project/generateImportsBlock.js +8 -15
- package/dist/generators/project/generateRoutesBlock.d.ts +3 -3
- package/dist/generators/project/generateRoutesBlock.js +57 -46
- package/dist/generators/project/generateServer.d.ts +2 -2
- package/dist/generators/project/generateServer.js +28 -12
- package/dist/generators/project/scaffoldBackend.d.ts +6 -0
- package/dist/generators/project/scaffoldBackend.js +23 -0
- package/dist/generators/project/scaffoldFrontends.d.ts +2 -2
- package/dist/generators/project/scaffoldFrontends.js +18 -3
- package/dist/generators/react/generateReactComponents.d.ts +5 -0
- package/dist/generators/react/generateReactComponents.js +126 -0
- package/dist/generators/react/scaffoldReact.d.ts +1 -1
- package/dist/generators/react/scaffoldReact.js +11 -2
- package/dist/index.js +1 -1
- package/dist/messages.d.ts +1 -1
- package/dist/messages.js +4 -3
- package/dist/prompt.js +4 -3
- package/dist/questions/authOption.d.ts +1 -0
- package/dist/questions/{authProvider.js → authOption.js} +5 -5
- package/dist/scaffold.d.ts +1 -1
- package/dist/scaffold.js +13 -9
- package/dist/templates/assets/svg/google-logo.svg +7 -0
- package/dist/templates/react/components/OAuthLink.tsx +39 -0
- package/dist/templates/react/components/ProfilePicture.tsx +56 -0
- package/dist/typeGuards.d.ts +2 -2
- package/dist/typeGuards.js +1 -1
- package/dist/types.d.ts +7 -2
- package/dist/utils/abort.js +1 -1
- package/dist/utils/parseCommandLineOptions.js +29 -8
- package/dist/utils/t3-utils.js +1 -1
- package/package.json +3 -2
- package/dist/generators/project/generateUseBlock.d.ts +0 -6
- package/dist/generators/project/generateUseBlock.js +0 -32
- package/dist/generators/react/generateReactPage.d.ts +0 -2
- package/dist/generators/react/generateReactPage.js +0 -23
- package/dist/questions/authProvider.d.ts +0 -1
- package/dist/templates/react/pages/ReactExample.tsx +0 -18
package/package.json
CHANGED
|
@@ -5,7 +5,8 @@
|
|
|
5
5
|
},
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@clack/prompts": "0.11.0",
|
|
8
|
-
"picocolors": "1.1.1"
|
|
8
|
+
"picocolors": "1.1.1",
|
|
9
|
+
"@absolutejs/auth": "0.21.1"
|
|
9
10
|
},
|
|
10
11
|
"description": "A CLI tool to create a new AbsoluteJS project",
|
|
11
12
|
"devDependencies": {
|
|
@@ -47,5 +48,5 @@
|
|
|
47
48
|
"typecheck": "bun run tsc --noEmit"
|
|
48
49
|
},
|
|
49
50
|
"type": "module",
|
|
50
|
-
"version": "0.
|
|
51
|
+
"version": "0.6.1"
|
|
51
52
|
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
export const generateUseBlock = ({ deps, databaseEngine, orm }) => deps
|
|
2
|
-
.flatMap((dependency) => dependency.imports ?? [])
|
|
3
|
-
.filter((pluginImport) => pluginImport.isPlugin)
|
|
4
|
-
.map((pluginImport) => {
|
|
5
|
-
const isAuth = pluginImport.packageName === 'absoluteAuth';
|
|
6
|
-
if (isAuth) {
|
|
7
|
-
const baseConfigString = pluginImport.config !== null
|
|
8
|
-
? JSON.stringify(pluginImport.config).slice(1, -1)
|
|
9
|
-
: '';
|
|
10
|
-
const hasDatabase = databaseEngine !== undefined && databaseEngine !== 'none';
|
|
11
|
-
const hasOrm = orm !== undefined && orm !== 'none';
|
|
12
|
-
const instantiate = 'instantiateUserSession';
|
|
13
|
-
const pluginGeneric = hasOrm ? '<User>' : '';
|
|
14
|
-
const callback = hasDatabase
|
|
15
|
-
? `async ({ authProvider, providerInstance, tokenResponse, unregisteredSession, cookie: { user_session_id }, session }) => ${instantiate}(
|
|
16
|
-
{ authProvider, providerInstance, session, tokenResponse, unregisteredSession, user_session_id,
|
|
17
|
-
getUser: async (userIdentity) => getUser({ authProvider, db, userIdentity }),
|
|
18
|
-
onNewUser: async (userIdentity) => createUser({ authProvider, db, userIdentity })
|
|
19
|
-
})`
|
|
20
|
-
: `({ authProvider, tokenResponse, userSessionId }) => { console.log(\`Successfully authorized OAuth2 with \${authProvider} (session: \${userSessionId})\`, tokenResponse); }`;
|
|
21
|
-
const mergedConfig = `{ ${baseConfigString}${baseConfigString ? ',' : ''} onCallbackSuccess: ${callback} }`;
|
|
22
|
-
return `.use(absoluteAuth${pluginGeneric}(${mergedConfig}))`;
|
|
23
|
-
}
|
|
24
|
-
if (pluginImport.config === undefined) {
|
|
25
|
-
return `.use(${pluginImport.packageName})`;
|
|
26
|
-
}
|
|
27
|
-
if (pluginImport.config === null) {
|
|
28
|
-
return `.use(${pluginImport.packageName}())`;
|
|
29
|
-
}
|
|
30
|
-
return `.use(${pluginImport.packageName}(${JSON.stringify(pluginImport.config)}))`;
|
|
31
|
-
})
|
|
32
|
-
.join('\n');
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { formatNavLink } from '../../utils/formatNavLink';
|
|
2
|
-
export const generateDropdownComponent = (frontends) => {
|
|
3
|
-
const navLinks = frontends.map(formatNavLink).join('\n\t\t\t');
|
|
4
|
-
return `import { useState } from 'react';
|
|
5
|
-
|
|
6
|
-
export const Dropdown = () => {
|
|
7
|
-
const [isOpen, setIsOpen] = useState(false);
|
|
8
|
-
|
|
9
|
-
return (
|
|
10
|
-
<details
|
|
11
|
-
onPointerEnter={() => setIsOpen(true)}
|
|
12
|
-
onPointerLeave={() => setIsOpen(false)}
|
|
13
|
-
open={isOpen}
|
|
14
|
-
>
|
|
15
|
-
<summary>Pages</summary>
|
|
16
|
-
<nav>
|
|
17
|
-
${navLinks}
|
|
18
|
-
</nav>
|
|
19
|
-
</details>
|
|
20
|
-
);
|
|
21
|
-
};
|
|
22
|
-
`;
|
|
23
|
-
};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare const getAuthProvider: () => Promise<"absoluteAuth" | undefined>;
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { App } from '../components/App';
|
|
2
|
-
import { Dropdown } from '../components/Dropdown';
|
|
3
|
-
import { Head } from '../components/Head';
|
|
4
|
-
|
|
5
|
-
type ReactExampleProps = { initialCount: number; cssPath: string };
|
|
6
|
-
|
|
7
|
-
export const ReactExample = ({ initialCount, cssPath }: ReactExampleProps) => (
|
|
8
|
-
<html>
|
|
9
|
-
<Head cssPath={cssPath} />
|
|
10
|
-
<body>
|
|
11
|
-
<header>
|
|
12
|
-
<a href="/">AbsoluteJS</a>
|
|
13
|
-
<Dropdown />
|
|
14
|
-
</header>
|
|
15
|
-
<App initialCount={initialCount} />
|
|
16
|
-
</body>
|
|
17
|
-
</html>
|
|
18
|
-
);
|