create-absolutejs 0.10.3 → 0.11.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/constants.d.ts +2 -2
- package/dist/constants.js +2 -2
- package/dist/data.d.ts +10 -10
- package/dist/data.js +88 -95
- package/dist/generators/angular/generateAngularPage.d.ts +7 -0
- package/dist/generators/angular/generateAngularPage.js +175 -0
- package/dist/generators/angular/scaffoldAngular.d.ts +2 -0
- package/dist/generators/angular/scaffoldAngular.js +34 -0
- package/dist/generators/configurations/generatePackageJson.js +26 -3
- package/dist/generators/configurations/scaffoldConfigurationFiles.js +26 -2
- package/dist/generators/db/dockerInitTemplates.d.ts +9 -9
- package/dist/generators/db/dockerInitTemplates.js +9 -9
- package/dist/generators/db/generateDatabaseTypes.js +5 -0
- package/dist/generators/db/generateDockerContainer.js +4 -2
- package/dist/generators/db/generateDrizzleSchema.js +16 -6
- package/dist/generators/db/handlerTemplates.d.ts +5 -0
- package/dist/generators/db/handlerTemplates.js +6 -0
- package/dist/generators/db/scaffoldDocker.js +42 -30
- package/dist/generators/html/generateHTMLPage.d.ts +1 -1
- package/dist/generators/html/generateHTMLPage.js +2 -2
- package/dist/generators/html/scaffoldHTML.d.ts +1 -1
- package/dist/generators/html/scaffoldHTML.js +2 -2
- package/dist/generators/htmx/generateHTMXPage.d.ts +1 -1
- package/dist/generators/htmx/generateHTMXPage.js +2 -2
- package/dist/generators/htmx/scaffoldHTMX.d.ts +1 -1
- package/dist/generators/htmx/scaffoldHTMX.js +2 -2
- package/dist/generators/project/computeFlags.d.ts +1 -0
- package/dist/generators/project/computeFlags.js +1 -0
- package/dist/generators/project/generateBuildBlock.d.ts +2 -1
- package/dist/generators/project/generateBuildBlock.js +11 -7
- package/dist/generators/project/generateDBBlock.js +6 -0
- package/dist/generators/project/generateImportsBlock.js +39 -27
- package/dist/generators/project/generateMarkupCSS.js +4 -0
- package/dist/generators/project/generateRoutesBlock.d.ts +1 -2
- package/dist/generators/project/generateRoutesBlock.js +28 -17
- package/dist/generators/project/generateServer.js +5 -10
- package/dist/generators/project/scaffoldFrontends.js +20 -1
- package/dist/generators/react/generateReactComponents.d.ts +2 -2
- package/dist/generators/react/generateReactComponents.js +33 -33
- package/dist/generators/react/scaffoldReact.d.ts +1 -1
- package/dist/generators/react/scaffoldReact.js +2 -2
- package/dist/generators/svelte/generateSveltePage.d.ts +1 -1
- package/dist/generators/svelte/generateSveltePage.js +20 -2
- package/dist/generators/svelte/scaffoldSvelte.d.ts +1 -1
- package/dist/generators/svelte/scaffoldSvelte.js +2 -2
- package/dist/generators/vue/generateVuePage.d.ts +1 -1
- package/dist/generators/vue/generateVuePage.js +20 -2
- package/dist/generators/vue/scaffoldVue.d.ts +1 -1
- package/dist/generators/vue/scaffoldVue.js +2 -2
- package/dist/questions/databaseEngine.d.ts +1 -1
- package/dist/questions/frontendDirectoryConfigurations.d.ts +1 -1
- package/dist/questions/frontends.d.ts +1 -1
- package/dist/questions/frontends.js +3 -3
- package/dist/scaffold.js +14 -2
- package/dist/templates/assets/svg/angular.svg +18 -0
- package/dist/templates/configurations/tsconfig.example.json +12 -12
- package/dist/templates/react/components/App.tsx +2 -2
- package/dist/templates/react/components/Head.tsx +7 -7
- package/dist/templates/react/components/OAuthLink.tsx +2 -2
- package/dist/templates/styles/colors.ts +6 -8
- package/dist/templates/styles/reset.css +15 -0
- package/dist/templates/svelte/components/Counter.svelte +4 -0
- package/dist/templates/vue/components/CountButton.vue +1 -1
- package/dist/typeGuards.d.ts +6 -6
- package/dist/typeGuards.js +6 -6
- package/dist/types.d.ts +1 -0
- package/dist/utils/checkDockerInstalled.d.ts +4 -4
- package/dist/utils/checkDockerInstalled.js +78 -71
- package/dist/utils/parseCommandLineOptions.js +13 -16
- package/dist/versions.d.ts +37 -29
- package/dist/versions.js +48 -39
- package/package.json +10 -9
- /package/dist/templates/configurations/{eslint.config.mjs → eslint.config.example.mjs} +0 -0
package/dist/typeGuards.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { AuthOption, AvailableDrizzleDialect, CodeQualityTool, DatabaseEngine, DatabaseHost, Frontend, ORM } from './types';
|
|
2
|
-
export declare const
|
|
3
|
-
export declare const isDirectoryConfig: (value: string) => value is "default" | "custom";
|
|
4
|
-
export declare const isDrizzleDialect: (value: string | undefined) => value is AvailableDrizzleDialect;
|
|
5
|
-
export declare const isPrismaDialect: (value: string | undefined) => value is string;
|
|
2
|
+
export declare const isCodeQualityTool: (value: string | undefined) => value is CodeQualityTool;
|
|
6
3
|
export declare const isDatabaseEngine: (value: string | undefined) => value is DatabaseEngine;
|
|
7
4
|
export declare const isDatabaseHost: (value: string | undefined) => value is DatabaseHost;
|
|
8
|
-
export declare const
|
|
9
|
-
export declare const
|
|
5
|
+
export declare const isDirectoryConfig: (value: string) => value is "default" | "custom";
|
|
6
|
+
export declare const isDrizzleDialect: (value: string | undefined) => value is AvailableDrizzleDialect;
|
|
10
7
|
export declare const isFrontend: (value: string | undefined) => value is Frontend;
|
|
8
|
+
export declare const isORM: (value: string | undefined) => value is ORM;
|
|
9
|
+
export declare const isPrismaDialect: (value: string | undefined) => value is string;
|
|
10
|
+
export declare const isValidAuthOption: (value: string | undefined) => value is AuthOption;
|
package/dist/typeGuards.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { availableDatabaseEngines, availableDatabaseHosts, availableDrizzleDialects, availablePrismaDialects, frontendLabels } from './data';
|
|
2
|
-
export const
|
|
3
|
-
export const isDirectoryConfig = (value) => value === 'default' || value === 'custom';
|
|
4
|
-
export const isDrizzleDialect = (value) => availableDrizzleDialects.some((dialect) => dialect === value);
|
|
5
|
-
export const isPrismaDialect = (value) => availablePrismaDialects.some((dialect) => dialect === value);
|
|
2
|
+
export const isCodeQualityTool = (value) => value === 'eslint+prettier' || value === 'biome' || value === undefined;
|
|
6
3
|
export const isDatabaseEngine = (value) => availableDatabaseEngines.some((engine) => engine === value);
|
|
7
4
|
export const isDatabaseHost = (value) => availableDatabaseHosts.some((host) => host === value);
|
|
8
|
-
export const
|
|
9
|
-
export const
|
|
5
|
+
export const isDirectoryConfig = (value) => value === 'default' || value === 'custom';
|
|
6
|
+
export const isDrizzleDialect = (value) => availableDrizzleDialects.some((dialect) => dialect === value);
|
|
10
7
|
export const isFrontend = (value) => value !== undefined && Object.keys(frontendLabels).includes(value);
|
|
8
|
+
export const isORM = (value) => value === 'drizzle' || value === 'prisma' || value === undefined;
|
|
9
|
+
export const isPrismaDialect = (value) => availablePrismaDialects.some((dialect) => dialect === value);
|
|
10
|
+
export const isValidAuthOption = (value) => value === 'abs' || value === 'none' || value === undefined;
|
package/dist/types.d.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
export declare const resolveDockerExe: () => string;
|
|
2
1
|
export declare const hasDocker: () => Promise<boolean>;
|
|
3
2
|
export declare const isDockerDaemonRunning: () => Promise<boolean>;
|
|
3
|
+
export declare const resolveDockerExe: () => "C:\\Program Files\\Docker\\Docker\\resources\\bin\\docker.exe" | "docker";
|
|
4
|
+
export declare const checkDockerInstalled: (databaseEngine?: string) => Promise<{
|
|
5
|
+
freshInstall: boolean;
|
|
6
|
+
}>;
|
|
4
7
|
export declare const ensureDockerDaemonRunning: () => Promise<{
|
|
5
8
|
daemonWasStarted: boolean;
|
|
6
9
|
}>;
|
|
7
10
|
export declare const shutdownDockerDaemon: () => Promise<void>;
|
|
8
|
-
export declare const checkDockerInstalled: (databaseEngine?: string) => Promise<{
|
|
9
|
-
freshInstall: boolean;
|
|
10
|
-
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { existsSync } from 'fs';
|
|
1
|
+
import { existsSync, writeFileSync } from 'fs';
|
|
2
2
|
import os from 'os';
|
|
3
3
|
import { env, platform } from 'process';
|
|
4
4
|
import { confirm, spinner } from '@clack/prompts';
|
|
@@ -65,14 +65,14 @@ const configureDocker = async () => {
|
|
|
65
65
|
const installWindowsDirectDownload = async () => {
|
|
66
66
|
const spin = spinner();
|
|
67
67
|
spin.start('Downloading Docker Desktop installer…');
|
|
68
|
-
const tmpDir =
|
|
68
|
+
const tmpDir = os.tmpdir();
|
|
69
69
|
const installerPath = `${tmpDir}\\DockerDesktopInstaller.exe`;
|
|
70
70
|
try {
|
|
71
|
-
const res = await
|
|
71
|
+
const res = await fetch(DOCKER_WIN_INSTALLER_URL);
|
|
72
72
|
if (!res.ok)
|
|
73
73
|
return false;
|
|
74
74
|
const buffer = await res.arrayBuffer();
|
|
75
|
-
|
|
75
|
+
writeFileSync(installerPath, new Uint8Array(buffer));
|
|
76
76
|
spin.stop('Docker Desktop installer downloaded');
|
|
77
77
|
spin.start('Running Docker Desktop installer…');
|
|
78
78
|
const runRes = await $ `powershell.exe -NoProfile -Command "Start-Process -FilePath '${installerPath}' -ArgumentList 'install','--quiet','--accept-license' -Wait -Verb RunAs"`
|
|
@@ -156,8 +156,26 @@ const installLinux = async () => {
|
|
|
156
156
|
console.log(`Automatic Linux install failed. See ${DOCKER_URL}`);
|
|
157
157
|
return false;
|
|
158
158
|
};
|
|
159
|
+
const installDockerForHost = async (host) => {
|
|
160
|
+
if (host === 'windows')
|
|
161
|
+
return installWindows();
|
|
162
|
+
if (host === 'wsl')
|
|
163
|
+
return installWSL();
|
|
164
|
+
if (host === 'linux')
|
|
165
|
+
return installLinux();
|
|
166
|
+
return false;
|
|
167
|
+
};
|
|
159
168
|
const DAEMON_WAIT_ATTEMPTS = 30;
|
|
160
169
|
const DAEMON_WAIT_INTERVAL_MS = 2000;
|
|
170
|
+
export const hasDocker = async () => {
|
|
171
|
+
const docker = resolveDockerExe();
|
|
172
|
+
return ((await $ `${docker} --version`.quiet().nothrow()).exitCode === 0 &&
|
|
173
|
+
(await $ `${docker} compose version`.quiet().nothrow()).exitCode === 0);
|
|
174
|
+
};
|
|
175
|
+
export const isDockerDaemonRunning = async () => {
|
|
176
|
+
const docker = resolveDockerExe();
|
|
177
|
+
return (await $ `${docker} info`.quiet().nothrow()).exitCode === 0;
|
|
178
|
+
};
|
|
161
179
|
export const resolveDockerExe = () => {
|
|
162
180
|
if (platform === 'win32') {
|
|
163
181
|
const fullPath = `${DOCKER_WIN_BIN_PATH}\\docker.exe`;
|
|
@@ -166,22 +184,41 @@ export const resolveDockerExe = () => {
|
|
|
166
184
|
}
|
|
167
185
|
return 'docker';
|
|
168
186
|
};
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
187
|
+
const sleep = (milliseconds) => new Promise((resolve) => setTimeout(resolve, milliseconds));
|
|
188
|
+
const waitForDaemonReady = async (attempt = 0) => {
|
|
189
|
+
if (attempt >= DAEMON_WAIT_ATTEMPTS)
|
|
190
|
+
return false;
|
|
191
|
+
if (await isDockerDaemonRunning())
|
|
192
|
+
return true;
|
|
193
|
+
await sleep(DAEMON_WAIT_INTERVAL_MS);
|
|
194
|
+
return waitForDaemonReady(attempt + 1);
|
|
173
195
|
};
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
196
|
+
const startDarwinDockerDesktop = async (spin) => {
|
|
197
|
+
await $ `open -a Docker`.quiet().nothrow();
|
|
198
|
+
if (await waitForDaemonReady()) {
|
|
199
|
+
spin.stop('Docker Desktop started');
|
|
200
|
+
return true;
|
|
201
|
+
}
|
|
202
|
+
spin.stop('Docker daemon did not start');
|
|
203
|
+
throw new Error('Docker daemon did not start. Please start Docker Desktop manually.');
|
|
177
204
|
};
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
205
|
+
const startWin32DockerDesktop = async (spin) => {
|
|
206
|
+
const started = await startWindowsDockerDesktop();
|
|
207
|
+
if (started) {
|
|
208
|
+
spin.stop('Docker Desktop started');
|
|
209
|
+
return true;
|
|
183
210
|
}
|
|
184
|
-
|
|
211
|
+
spin.stop('Docker Desktop start failed');
|
|
212
|
+
throw new Error('Docker Desktop failed to start. Please start it manually.');
|
|
213
|
+
};
|
|
214
|
+
const startWindowsDockerDesktop = async () => {
|
|
215
|
+
const dockerDesktopExe = 'C:\\Program Files\\Docker\\Docker\\Docker Desktop.exe';
|
|
216
|
+
if (!existsSync(dockerDesktopExe))
|
|
217
|
+
return false;
|
|
218
|
+
await $ `powershell.exe -NoProfile -Command "Start-Process '${dockerDesktopExe}'"`
|
|
219
|
+
.quiet()
|
|
220
|
+
.nothrow();
|
|
221
|
+
return waitForDaemonReady();
|
|
185
222
|
};
|
|
186
223
|
const startDockerDaemon = async () => {
|
|
187
224
|
const spin = spinner();
|
|
@@ -192,29 +229,10 @@ const startDockerDaemon = async () => {
|
|
|
192
229
|
spin.stop('Docker Desktop started');
|
|
193
230
|
return true;
|
|
194
231
|
}
|
|
195
|
-
if (platform === 'darwin')
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
return true;
|
|
200
|
-
}
|
|
201
|
-
spin.stop('Docker daemon did not start');
|
|
202
|
-
throw new Error('Docker daemon did not start. Please start Docker Desktop manually.');
|
|
203
|
-
}
|
|
204
|
-
if (platform === 'win32') {
|
|
205
|
-
const dockerDesktopExe = 'C:\\Program Files\\Docker\\Docker\\Docker Desktop.exe';
|
|
206
|
-
if (existsSync(dockerDesktopExe)) {
|
|
207
|
-
await $ `powershell.exe -NoProfile -Command "Start-Process '${dockerDesktopExe}'"`
|
|
208
|
-
.quiet()
|
|
209
|
-
.nothrow();
|
|
210
|
-
if (await waitForDaemonReady()) {
|
|
211
|
-
spin.stop('Docker Desktop started');
|
|
212
|
-
return true;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
spin.stop('Docker Desktop start failed');
|
|
216
|
-
throw new Error('Docker Desktop failed to start. Please start it manually.');
|
|
217
|
-
}
|
|
232
|
+
if (platform === 'darwin')
|
|
233
|
+
return startDarwinDockerDesktop(spin);
|
|
234
|
+
if (platform === 'win32')
|
|
235
|
+
return startWin32DockerDesktop(spin);
|
|
218
236
|
await ensureSudo();
|
|
219
237
|
const systemctlRes = await $ `sudo systemctl start docker`.quiet().nothrow();
|
|
220
238
|
if (systemctlRes.exitCode !== 0) {
|
|
@@ -227,6 +245,26 @@ const startDockerDaemon = async () => {
|
|
|
227
245
|
spin.stop('Docker daemon did not start');
|
|
228
246
|
throw new Error('Docker daemon did not start. Please start it manually.');
|
|
229
247
|
};
|
|
248
|
+
export const checkDockerInstalled = async (databaseEngine) => {
|
|
249
|
+
if (await hasDocker())
|
|
250
|
+
return { freshInstall: false };
|
|
251
|
+
const dbLabel = databaseEngine ?? 'database';
|
|
252
|
+
const proceed = await confirm({
|
|
253
|
+
initialValue: true,
|
|
254
|
+
message: `Docker Engine and Compose plugin are required for your local ${dbLabel}. Install them now?`
|
|
255
|
+
});
|
|
256
|
+
if (!proceed)
|
|
257
|
+
return { freshInstall: false };
|
|
258
|
+
const installed = await installDockerForHost(hostEnv);
|
|
259
|
+
if (!installed) {
|
|
260
|
+
console.log(`Couldn't install Docker automatically. Download it from ${DOCKER_URL}`);
|
|
261
|
+
return { freshInstall: false };
|
|
262
|
+
}
|
|
263
|
+
if (hostEnv === 'windows' && !env.PATH?.includes(DOCKER_WIN_BIN_PATH)) {
|
|
264
|
+
env.PATH = `${DOCKER_WIN_BIN_PATH};${env.PATH}`;
|
|
265
|
+
}
|
|
266
|
+
return { freshInstall: true };
|
|
267
|
+
};
|
|
230
268
|
export const ensureDockerDaemonRunning = async () => {
|
|
231
269
|
if (await isDockerDaemonRunning()) {
|
|
232
270
|
return { daemonWasStarted: false };
|
|
@@ -244,34 +282,3 @@ export const shutdownDockerDaemon = async () => {
|
|
|
244
282
|
await $ `sudo systemctl stop docker`.quiet().nothrow();
|
|
245
283
|
}
|
|
246
284
|
};
|
|
247
|
-
export const checkDockerInstalled = async (databaseEngine) => {
|
|
248
|
-
if (await hasDocker())
|
|
249
|
-
return { freshInstall: false };
|
|
250
|
-
const dbLabel = databaseEngine ?? 'database';
|
|
251
|
-
const proceed = await confirm({
|
|
252
|
-
initialValue: true,
|
|
253
|
-
message: `Docker Engine and Compose plugin are required for your local ${dbLabel}. Install them now?`
|
|
254
|
-
});
|
|
255
|
-
if (!proceed)
|
|
256
|
-
return { freshInstall: false };
|
|
257
|
-
switch (hostEnv) {
|
|
258
|
-
case 'windows':
|
|
259
|
-
if (await installWindows()) {
|
|
260
|
-
if (!env.PATH?.includes(DOCKER_WIN_BIN_PATH)) {
|
|
261
|
-
env.PATH = `${DOCKER_WIN_BIN_PATH};${env.PATH}`;
|
|
262
|
-
}
|
|
263
|
-
return { freshInstall: true };
|
|
264
|
-
}
|
|
265
|
-
break;
|
|
266
|
-
case 'wsl':
|
|
267
|
-
if (await installWSL())
|
|
268
|
-
return { freshInstall: true };
|
|
269
|
-
break;
|
|
270
|
-
case 'linux':
|
|
271
|
-
if (await installLinux())
|
|
272
|
-
return { freshInstall: true };
|
|
273
|
-
break;
|
|
274
|
-
}
|
|
275
|
-
console.log(`Couldn't install Docker automatically. Download it from ${DOCKER_URL}`);
|
|
276
|
-
return { freshInstall: false };
|
|
277
|
-
};
|
|
@@ -60,23 +60,20 @@ export const parseCommandLineOptions = () => {
|
|
|
60
60
|
authOption = 'none';
|
|
61
61
|
}
|
|
62
62
|
const absProviders = [];
|
|
63
|
-
if (values['abs-provider'] !== undefined
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
else {
|
|
76
|
-
absProviders.push(provider);
|
|
77
|
-
}
|
|
78
|
-
}
|
|
63
|
+
if (values['abs-provider'] !== undefined &&
|
|
64
|
+
(authOption === undefined || authOption === 'none')) {
|
|
65
|
+
authOption = 'abs';
|
|
66
|
+
}
|
|
67
|
+
else if (values['abs-provider'] !== undefined && authOption !== 'abs') {
|
|
68
|
+
errors.push(`Invalid auth configuration: "--abs-provider" specified but auth provider is set to "${authOption}". "--abs-provider" can only be used with "abs" auth provider.`);
|
|
69
|
+
}
|
|
70
|
+
const rawProviders = values['abs-provider'] ?? [];
|
|
71
|
+
const validProviders = rawProviders.filter(isValidProviderOption);
|
|
72
|
+
const invalidProviders = rawProviders.filter((provider) => !isValidProviderOption(provider));
|
|
73
|
+
for (const provider of invalidProviders) {
|
|
74
|
+
errors.push(`Invalid Absolute-Auth provider: "${provider}". Expected: ${Object.keys(providers).join(', ')}`);
|
|
79
75
|
}
|
|
76
|
+
absProviders.push(...validProviders);
|
|
80
77
|
let databaseEngine;
|
|
81
78
|
if (values.db !== undefined && !isDatabaseEngine(values.db)) {
|
|
82
79
|
errors.push(`Invalid database engine: "${values.db}". Expected: [ ${availableDatabaseEngines.join(', ')} ]`);
|
package/dist/versions.d.ts
CHANGED
|
@@ -4,51 +4,59 @@
|
|
|
4
4
|
* Run `bun run check-versions` to compare against latest npm versions.
|
|
5
5
|
*/
|
|
6
6
|
export declare const versions: {
|
|
7
|
-
readonly '@absolutejs/absolute': "0.
|
|
8
|
-
readonly '@absolutejs/auth': "0.22.
|
|
9
|
-
readonly '@
|
|
10
|
-
readonly
|
|
11
|
-
readonly '
|
|
7
|
+
readonly '@absolutejs/absolute': "0.17.12";
|
|
8
|
+
readonly '@absolutejs/auth': "0.22.4";
|
|
9
|
+
readonly '@angular/common': "21.0.0";
|
|
10
|
+
readonly '@angular/compiler': "21.0.0";
|
|
11
|
+
readonly '@angular/compiler-cli': "21.0.0";
|
|
12
|
+
readonly '@angular/core': "21.0.0";
|
|
13
|
+
readonly '@angular/platform-browser': "21.0.0";
|
|
14
|
+
readonly '@angular/platform-server': "21.0.0";
|
|
15
|
+
readonly '@angular/ssr': "21.0.0";
|
|
12
16
|
readonly '@elysiajs/cors': "1.4.1";
|
|
17
|
+
readonly '@elysiajs/eden': "1.4.8";
|
|
18
|
+
readonly '@elysiajs/static': "1.4.7";
|
|
13
19
|
readonly '@elysiajs/swagger': "1.3.1";
|
|
14
|
-
readonly 'elysia-rate-limit': "4.5.0";
|
|
15
|
-
readonly typescript: "5.9.3";
|
|
16
|
-
readonly '@tailwindcss/cli': "4.2.0";
|
|
17
|
-
readonly autoprefixer: "10.4.24";
|
|
18
|
-
readonly postcss: "8.5.6";
|
|
19
|
-
readonly tailwindcss: "4.2.0";
|
|
20
|
-
readonly '@types/react': "19.2.14";
|
|
21
|
-
readonly react: "19.2.4";
|
|
22
|
-
readonly 'react-dom': "19.2.4";
|
|
23
|
-
readonly 'prettier-plugin-svelte': "3.5.0";
|
|
24
|
-
readonly svelte: "5.53.0";
|
|
25
|
-
readonly vue: "3.5.28";
|
|
26
20
|
readonly '@eslint/compat': "2.0.2";
|
|
27
21
|
readonly '@eslint/js': "10.0.1";
|
|
28
|
-
readonly
|
|
22
|
+
readonly '@libsql/client': "0.17.0";
|
|
23
|
+
readonly '@neondatabase/serverless': "1.0.2";
|
|
24
|
+
readonly '@planetscale/database': "1.19.0";
|
|
29
25
|
readonly '@stylistic/eslint-plugin': "5.9.0";
|
|
26
|
+
readonly '@tailwindcss/cli': "4.2.0";
|
|
27
|
+
readonly '@types/mssql': "9.1.9";
|
|
28
|
+
readonly '@types/pg': "8.16.0";
|
|
29
|
+
readonly '@types/react': "19.2.14";
|
|
30
30
|
readonly '@typescript-eslint/parser': "8.56.0";
|
|
31
|
+
readonly autoprefixer: "10.4.24";
|
|
32
|
+
readonly 'drizzle-orm': "0.45.1";
|
|
33
|
+
readonly elysia: "1.4.25";
|
|
34
|
+
readonly 'elysia-rate-limit': "4.5.0";
|
|
35
|
+
readonly 'elysia-scoped-state': "0.1.1";
|
|
31
36
|
readonly eslint: "10.0.0";
|
|
32
37
|
readonly 'eslint-plugin-absolute': "0.2.0";
|
|
33
38
|
readonly 'eslint-plugin-import': "2.32.0";
|
|
34
|
-
readonly 'eslint-plugin-promise': "7.2.1";
|
|
35
|
-
readonly 'eslint-plugin-security': "4.0.0";
|
|
36
|
-
readonly prettier: "3.8.1";
|
|
37
|
-
readonly 'typescript-eslint': "8.56.0";
|
|
38
|
-
readonly 'zod-validation-error': "4.0.2";
|
|
39
39
|
readonly 'eslint-plugin-jsx-a11y': "6.10.2";
|
|
40
|
+
readonly 'eslint-plugin-promise': "7.2.1";
|
|
40
41
|
readonly 'eslint-plugin-react': "7.37.5";
|
|
41
42
|
readonly 'eslint-plugin-react-compiler': "19.1.0-rc.2";
|
|
42
43
|
readonly 'eslint-plugin-react-hooks': "7.1.0-canary-e8c63626-20260213";
|
|
43
|
-
readonly '
|
|
44
|
-
readonly '@libsql/client': "0.17.0";
|
|
45
|
-
readonly '@neondatabase/serverless': "1.0.2";
|
|
46
|
-
readonly '@planetscale/database': "1.19.0";
|
|
47
|
-
readonly '@types/mssql': "9.1.9";
|
|
48
|
-
readonly '@types/pg': "8.16.0";
|
|
44
|
+
readonly 'eslint-plugin-security': "4.0.0";
|
|
49
45
|
readonly gel: "2.2.0";
|
|
46
|
+
readonly globals: "17.3.0";
|
|
50
47
|
readonly mongodb: "7.1.0";
|
|
51
48
|
readonly mssql: "12.2.0";
|
|
52
49
|
readonly mysql2: "3.17.3";
|
|
53
50
|
readonly pg: "8.18.0";
|
|
51
|
+
readonly postcss: "8.5.6";
|
|
52
|
+
readonly prettier: "3.8.1";
|
|
53
|
+
readonly 'prettier-plugin-svelte': "3.5.0";
|
|
54
|
+
readonly react: "19.2.4";
|
|
55
|
+
readonly 'react-dom': "19.2.4";
|
|
56
|
+
readonly svelte: "5.53.0";
|
|
57
|
+
readonly tailwindcss: "4.2.0";
|
|
58
|
+
readonly typescript: "5.9.3";
|
|
59
|
+
readonly 'typescript-eslint': "8.56.0";
|
|
60
|
+
readonly vue: "3.5.28";
|
|
61
|
+
readonly 'zod-validation-error': "4.0.2";
|
|
54
62
|
};
|
package/dist/versions.js
CHANGED
|
@@ -5,62 +5,71 @@
|
|
|
5
5
|
*/
|
|
6
6
|
export const versions = {
|
|
7
7
|
/* ── Core ─────────────────────────────────────────────── */
|
|
8
|
-
'@absolutejs/absolute': '0.
|
|
9
|
-
'@absolutejs/auth': '0.22.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
'
|
|
13
|
-
|
|
8
|
+
'@absolutejs/absolute': '0.17.12',
|
|
9
|
+
'@absolutejs/auth': '0.22.4',
|
|
10
|
+
/* ── Angular ─────────────────────────────────────────── */
|
|
11
|
+
'@angular/common': '21.0.0',
|
|
12
|
+
'@angular/compiler': '21.0.0',
|
|
13
|
+
'@angular/compiler-cli': '21.0.0',
|
|
14
|
+
'@angular/core': '21.0.0',
|
|
15
|
+
'@angular/platform-browser': '21.0.0',
|
|
16
|
+
'@angular/platform-server': '21.0.0',
|
|
17
|
+
'@angular/ssr': '21.0.0',
|
|
14
18
|
'@elysiajs/cors': '1.4.1',
|
|
19
|
+
/* ── Plugins ──────────────────────────────────────────── */
|
|
20
|
+
'@elysiajs/eden': '1.4.8',
|
|
21
|
+
'@elysiajs/static': '1.4.7',
|
|
15
22
|
'@elysiajs/swagger': '1.3.1',
|
|
16
|
-
'elysia-rate-limit': '4.5.0',
|
|
17
|
-
/* ── Build / TypeScript ───────────────────────────────── */
|
|
18
|
-
typescript: '5.9.3',
|
|
19
|
-
/* ── Tailwind CSS ─────────────────────────────────────── */
|
|
20
|
-
'@tailwindcss/cli': '4.2.0',
|
|
21
|
-
autoprefixer: '10.4.24',
|
|
22
|
-
postcss: '8.5.6',
|
|
23
|
-
tailwindcss: '4.2.0',
|
|
24
|
-
/* ── React ────────────────────────────────────────────── */
|
|
25
|
-
'@types/react': '19.2.14',
|
|
26
|
-
react: '19.2.4',
|
|
27
|
-
'react-dom': '19.2.4',
|
|
28
|
-
/* ── Svelte ───────────────────────────────────────────── */
|
|
29
|
-
'prettier-plugin-svelte': '3.5.0',
|
|
30
|
-
svelte: '5.53.0',
|
|
31
|
-
/* ── Vue ──────────────────────────────────────────────── */
|
|
32
|
-
vue: '3.5.28',
|
|
33
23
|
/* ── ESLint + Prettier ────────────────────────────────── */
|
|
34
24
|
'@eslint/compat': '2.0.2',
|
|
35
25
|
'@eslint/js': '10.0.1',
|
|
36
|
-
|
|
26
|
+
/* ── Database Hosts ───────────────────────────────────── */
|
|
27
|
+
'@libsql/client': '0.17.0',
|
|
28
|
+
'@neondatabase/serverless': '1.0.2',
|
|
29
|
+
'@planetscale/database': '1.19.0',
|
|
37
30
|
'@stylistic/eslint-plugin': '5.9.0',
|
|
31
|
+
/* ── Tailwind CSS ─────────────────────────────────────── */
|
|
32
|
+
'@tailwindcss/cli': '4.2.0',
|
|
33
|
+
/* ── Database Drivers ─────────────────────────────────── */
|
|
34
|
+
'@types/mssql': '9.1.9',
|
|
35
|
+
'@types/pg': '8.16.0',
|
|
36
|
+
/* ── React ────────────────────────────────────────────── */
|
|
37
|
+
'@types/react': '19.2.14',
|
|
38
38
|
'@typescript-eslint/parser': '8.56.0',
|
|
39
|
+
autoprefixer: '10.4.24',
|
|
40
|
+
/* ── ORM ──────────────────────────────────────────────── */
|
|
41
|
+
'drizzle-orm': '0.45.1',
|
|
42
|
+
elysia: '1.4.25',
|
|
43
|
+
'elysia-rate-limit': '4.5.0',
|
|
44
|
+
'elysia-scoped-state': '0.1.1',
|
|
39
45
|
eslint: '10.0.0',
|
|
40
46
|
'eslint-plugin-absolute': '0.2.0',
|
|
41
47
|
'eslint-plugin-import': '2.32.0',
|
|
42
|
-
'eslint-plugin-promise': '7.2.1',
|
|
43
|
-
'eslint-plugin-security': '4.0.0',
|
|
44
|
-
prettier: '3.8.1',
|
|
45
|
-
'typescript-eslint': '8.56.0',
|
|
46
|
-
'zod-validation-error': '4.0.2',
|
|
47
48
|
/* ── ESLint React ─────────────────────────────────────── */
|
|
48
49
|
'eslint-plugin-jsx-a11y': '6.10.2',
|
|
50
|
+
'eslint-plugin-promise': '7.2.1',
|
|
49
51
|
'eslint-plugin-react': '7.37.5',
|
|
50
52
|
'eslint-plugin-react-compiler': '19.1.0-rc.2',
|
|
51
53
|
'eslint-plugin-react-hooks': '7.1.0-canary-e8c63626-20260213',
|
|
52
|
-
|
|
53
|
-
'drizzle-orm': '0.45.1',
|
|
54
|
-
/* ── Database Hosts ───────────────────────────────────── */
|
|
55
|
-
'@libsql/client': '0.17.0',
|
|
56
|
-
'@neondatabase/serverless': '1.0.2',
|
|
57
|
-
'@planetscale/database': '1.19.0',
|
|
58
|
-
/* ── Database Drivers ─────────────────────────────────── */
|
|
59
|
-
'@types/mssql': '9.1.9',
|
|
60
|
-
'@types/pg': '8.16.0',
|
|
54
|
+
'eslint-plugin-security': '4.0.0',
|
|
61
55
|
gel: '2.2.0',
|
|
56
|
+
globals: '17.3.0',
|
|
62
57
|
mongodb: '7.1.0',
|
|
63
58
|
mssql: '12.2.0',
|
|
64
59
|
mysql2: '3.17.3',
|
|
65
|
-
pg: '8.18.0'
|
|
60
|
+
pg: '8.18.0',
|
|
61
|
+
postcss: '8.5.6',
|
|
62
|
+
prettier: '3.8.1',
|
|
63
|
+
/* ── Svelte ───────────────────────────────────────────── */
|
|
64
|
+
'prettier-plugin-svelte': '3.5.0',
|
|
65
|
+
react: '19.2.4',
|
|
66
|
+
'react-dom': '19.2.4',
|
|
67
|
+
svelte: '5.53.0',
|
|
68
|
+
tailwindcss: '4.2.0',
|
|
69
|
+
/* ── Build / TypeScript ───────────────────────────────── */
|
|
70
|
+
typescript: '5.9.3',
|
|
71
|
+
'typescript-eslint': '8.56.0',
|
|
72
|
+
/* ── Vue ──────────────────────────────────────────────── */
|
|
73
|
+
vue: '3.5.28',
|
|
74
|
+
'zod-validation-error': '4.0.2'
|
|
66
75
|
};
|
package/package.json
CHANGED
|
@@ -10,23 +10,24 @@
|
|
|
10
10
|
},
|
|
11
11
|
"description": "A CLI tool to create a new AbsoluteJS project",
|
|
12
12
|
"devDependencies": {
|
|
13
|
-
"@absolutejs/absolute": "0.
|
|
14
|
-
"@
|
|
13
|
+
"@absolutejs/absolute": "0.17.12",
|
|
14
|
+
"@eslint/compat": "2.0.2",
|
|
15
|
+
"@stylistic/eslint-plugin": "5.9.0",
|
|
15
16
|
"@types/bun": "1.3.8",
|
|
16
17
|
"@types/react": "19.2.13",
|
|
17
18
|
"autoprefixer": "10.4.24",
|
|
18
19
|
"drizzle-kit": "0.31.8",
|
|
19
20
|
"drizzle-orm": "0.45.1",
|
|
20
|
-
"eslint": "
|
|
21
|
-
"eslint-plugin-absolute": "0.1
|
|
21
|
+
"eslint": "10.0.1",
|
|
22
|
+
"eslint-plugin-absolute": "0.2.1",
|
|
22
23
|
"eslint-plugin-import": "2.32.0",
|
|
23
24
|
"eslint-plugin-promise": "7.2.1",
|
|
24
|
-
"eslint-plugin-security": "
|
|
25
|
+
"eslint-plugin-security": "4.0.0",
|
|
25
26
|
"prettier": "3.8.1",
|
|
26
27
|
"prettier-plugin-svelte": "3.4.1",
|
|
27
28
|
"svelte": "5.49.2",
|
|
28
29
|
"tailwindcss": "4.1.18",
|
|
29
|
-
"typescript-eslint": "8.
|
|
30
|
+
"typescript-eslint": "8.56.0",
|
|
30
31
|
"vue": "3.5.27"
|
|
31
32
|
},
|
|
32
33
|
"files": [
|
|
@@ -43,12 +44,12 @@
|
|
|
43
44
|
"build": "rm -rf dist && tsc --project tsconfig.build.json && cp -R src/templates dist/templates",
|
|
44
45
|
"check-versions": "bun scripts/check-versions.ts",
|
|
45
46
|
"dev": "bun scripts/dev.ts",
|
|
46
|
-
"format": "prettier --write
|
|
47
|
-
"lint": "eslint
|
|
47
|
+
"format": "absolute prettier --write",
|
|
48
|
+
"lint": "absolute eslint --ignore-pattern 'absolutejs-project/**'",
|
|
48
49
|
"release": "bun run format && bun run build && bun publish",
|
|
49
50
|
"test": "cd absolutejs-project && bun dev",
|
|
50
51
|
"typecheck": "bun run tsc --noEmit"
|
|
51
52
|
},
|
|
52
53
|
"type": "module",
|
|
53
|
-
"version": "0.
|
|
54
|
+
"version": "0.11.0"
|
|
54
55
|
}
|
|
File without changes
|