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.
Files changed (61) hide show
  1. package/dist/data.d.ts +1 -1
  2. package/dist/data.js +2 -2
  3. package/dist/generators/configurations/generatePackageJson.d.ts +2 -2
  4. package/dist/generators/configurations/generatePackageJson.js +6 -2
  5. package/dist/generators/configurations/initializeRoot.js +2 -2
  6. package/dist/generators/db/generateDatabaseTypes.d.ts +3 -3
  7. package/dist/generators/db/generateDatabaseTypes.js +6 -6
  8. package/dist/generators/db/generateDrizzleSchema.d.ts +3 -3
  9. package/dist/generators/db/generateDrizzleSchema.js +4 -6
  10. package/dist/generators/db/generateSqliteSchema.d.ts +2 -2
  11. package/dist/generators/db/generateSqliteSchema.js +1 -1
  12. package/dist/generators/db/handlerTemplates.d.ts +27 -27
  13. package/dist/generators/db/handlerTemplates.js +59 -92
  14. package/dist/generators/db/scaffoldDatabase.d.ts +2 -2
  15. package/dist/generators/db/scaffoldDatabase.js +6 -6
  16. package/dist/generators/db/scaffoldDocker.d.ts +3 -3
  17. package/dist/generators/db/scaffoldDocker.js +2 -2
  18. package/dist/generators/html/scaffoldHTML.js +2 -2
  19. package/dist/generators/project/collectDependencies.d.ts +2 -2
  20. package/dist/generators/project/collectDependencies.js +2 -2
  21. package/dist/generators/project/generateAbsoluteAuthConfig.d.ts +2 -0
  22. package/dist/generators/project/generateAbsoluteAuthConfig.js +128 -0
  23. package/dist/generators/project/generateDBBlock.js +8 -2
  24. package/dist/generators/project/generateImportsBlock.d.ts +2 -2
  25. package/dist/generators/project/generateImportsBlock.js +8 -15
  26. package/dist/generators/project/generateRoutesBlock.d.ts +3 -3
  27. package/dist/generators/project/generateRoutesBlock.js +57 -46
  28. package/dist/generators/project/generateServer.d.ts +2 -2
  29. package/dist/generators/project/generateServer.js +28 -12
  30. package/dist/generators/project/scaffoldBackend.d.ts +6 -0
  31. package/dist/generators/project/scaffoldBackend.js +23 -0
  32. package/dist/generators/project/scaffoldFrontends.d.ts +2 -2
  33. package/dist/generators/project/scaffoldFrontends.js +18 -3
  34. package/dist/generators/react/generateReactComponents.d.ts +5 -0
  35. package/dist/generators/react/generateReactComponents.js +126 -0
  36. package/dist/generators/react/scaffoldReact.d.ts +1 -1
  37. package/dist/generators/react/scaffoldReact.js +11 -2
  38. package/dist/index.js +1 -1
  39. package/dist/messages.d.ts +1 -1
  40. package/dist/messages.js +4 -3
  41. package/dist/prompt.js +4 -3
  42. package/dist/questions/authOption.d.ts +1 -0
  43. package/dist/questions/{authProvider.js → authOption.js} +5 -5
  44. package/dist/scaffold.d.ts +1 -1
  45. package/dist/scaffold.js +13 -9
  46. package/dist/templates/assets/svg/google-logo.svg +7 -0
  47. package/dist/templates/react/components/OAuthLink.tsx +39 -0
  48. package/dist/templates/react/components/ProfilePicture.tsx +56 -0
  49. package/dist/typeGuards.d.ts +2 -2
  50. package/dist/typeGuards.js +1 -1
  51. package/dist/types.d.ts +7 -2
  52. package/dist/utils/abort.js +1 -1
  53. package/dist/utils/parseCommandLineOptions.js +29 -8
  54. package/dist/utils/t3-utils.js +1 -1
  55. package/package.json +3 -2
  56. package/dist/generators/project/generateUseBlock.d.ts +0 -6
  57. package/dist/generators/project/generateUseBlock.js +0 -32
  58. package/dist/generators/react/generateReactPage.d.ts +0 -2
  59. package/dist/generators/react/generateReactPage.js +0 -23
  60. package/dist/questions/authProvider.d.ts +0 -1
  61. 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.5.1"
51
+ "version": "0.6.1"
51
52
  }
@@ -1,6 +0,0 @@
1
- import type { AvailableDependency, DatabaseEngine, ORM } from '../../types';
2
- export declare const generateUseBlock: ({ deps, databaseEngine, orm }: {
3
- deps: AvailableDependency[];
4
- databaseEngine: DatabaseEngine;
5
- orm: ORM;
6
- }) => string;
@@ -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,2 +0,0 @@
1
- import { Frontend } from '../../types';
2
- export declare const generateDropdownComponent: (frontends: Frontend[]) => string;
@@ -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
- );