create-absolutejs 0.5.1 → 0.6.0
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 +2 -1
- 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
|
@@ -9,6 +9,7 @@
|
|
|
9
9
|
},
|
|
10
10
|
"description": "A CLI tool to create a new AbsoluteJS project",
|
|
11
11
|
"devDependencies": {
|
|
12
|
+
"@absolutejs/auth": "0.21.1",
|
|
12
13
|
"@stylistic/eslint-plugin-ts": "4.2.0",
|
|
13
14
|
"@types/bun": "latest",
|
|
14
15
|
"@types/react": "19.1.4",
|
|
@@ -47,5 +48,5 @@
|
|
|
47
48
|
"typecheck": "bun run tsc --noEmit"
|
|
48
49
|
},
|
|
49
50
|
"type": "module",
|
|
50
|
-
"version": "0.
|
|
51
|
+
"version": "0.6.0"
|
|
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
|
-
);
|