diff --git a/templates/node-angular/.vscode/extensions.json b/templates/node-angular/.vscode/extensions.json
deleted file mode 100644
index 77b3745..0000000
--- a/templates/node-angular/.vscode/extensions.json
+++ /dev/null
@@ -1,4 +0,0 @@
-{
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=827846
- "recommendations": ["angular.ng-template"]
-}
diff --git a/templates/node-angular/.vscode/launch.json b/templates/node-angular/.vscode/launch.json
deleted file mode 100644
index 925af83..0000000
--- a/templates/node-angular/.vscode/launch.json
+++ /dev/null
@@ -1,20 +0,0 @@
-{
- // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
- "version": "0.2.0",
- "configurations": [
- {
- "name": "ng serve",
- "type": "chrome",
- "request": "launch",
- "preLaunchTask": "npm: start",
- "url": "http://localhost:4200/"
- },
- {
- "name": "ng test",
- "type": "chrome",
- "request": "launch",
- "preLaunchTask": "npm: test",
- "url": "http://localhost:9876/debug.html"
- }
- ]
-}
diff --git a/templates/node-angular/.vscode/tasks.json b/templates/node-angular/.vscode/tasks.json
deleted file mode 100644
index a298b5b..0000000
--- a/templates/node-angular/.vscode/tasks.json
+++ /dev/null
@@ -1,42 +0,0 @@
-{
- // For more information, visit: https://go.microsoft.com/fwlink/?LinkId=733558
- "version": "2.0.0",
- "tasks": [
- {
- "type": "npm",
- "script": "start",
- "isBackground": true,
- "problemMatcher": {
- "owner": "typescript",
- "pattern": "$tsc",
- "background": {
- "activeOnStart": true,
- "beginsPattern": {
- "regexp": "(.*?)"
- },
- "endsPattern": {
- "regexp": "bundle generation complete"
- }
- }
- }
- },
- {
- "type": "npm",
- "script": "test",
- "isBackground": true,
- "problemMatcher": {
- "owner": "typescript",
- "pattern": "$tsc",
- "background": {
- "activeOnStart": true,
- "beginsPattern": {
- "regexp": "(.*?)"
- },
- "endsPattern": {
- "regexp": "bundle generation complete"
- }
- }
- }
- }
- ]
-}
diff --git a/templates/node-angular/angular.json b/templates/node-angular/angular.json
index fc6d088..21047dd 100644
--- a/templates/node-angular/angular.json
+++ b/templates/node-angular/angular.json
@@ -11,10 +11,8 @@
"prefix": "app",
"architect": {
"build": {
- "builder": "@angular-devkit/build-angular:application",
+ "builder": "@angular/build:application",
"options": {
- "outputPath": "dist/node-angular",
- "index": "src/index.html",
"browser": "src/main.ts",
"polyfills": [
"zone.js"
@@ -28,8 +26,7 @@
],
"styles": [
"src/styles.css"
- ],
- "scripts": []
+ ]
},
"configurations": {
"production": {
@@ -56,7 +53,7 @@
"defaultConfiguration": "production"
},
"serve": {
- "builder": "@angular-devkit/build-angular:dev-server",
+ "builder": "@angular/build:dev-server",
"configurations": {
"production": {
"buildTarget": "node-angular:build:production"
@@ -68,10 +65,10 @@
"defaultConfiguration": "development"
},
"extract-i18n": {
- "builder": "@angular-devkit/build-angular:extract-i18n"
+ "builder": "@angular/build:extract-i18n"
},
"test": {
- "builder": "@angular-devkit/build-angular:karma",
+ "builder": "@angular/build:karma",
"options": {
"polyfills": [
"zone.js",
@@ -86,8 +83,7 @@
],
"styles": [
"src/styles.css"
- ],
- "scripts": []
+ ]
}
}
}
diff --git a/templates/node-angular/eslint.config.mjs b/templates/node-angular/eslint.config.mjs
index c569dfd..e07d716 100644
--- a/templates/node-angular/eslint.config.mjs
+++ b/templates/node-angular/eslint.config.mjs
@@ -1,43 +1,62 @@
-import globals from "globals";
-import js from "@eslint/js";
-import nodePlugin from "eslint-plugin-n";
-import tseslintPlugin from "@typescript-eslint/eslint-plugin";
-import tseslintParser from "@typescript-eslint/parser";
+/*
+**
+** Copyright (c) 2024, Oracle and/or its affiliates.
+** All rights reserved
+** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
+*/
+import js from '@eslint/js'
+import globals from 'globals'
+import nodePlugin from 'eslint-plugin-n'
+import reactPlugin from 'eslint-plugin-react'
+import reactHooks from 'eslint-plugin-react-hooks'
+import reactRefresh from 'eslint-plugin-react-refresh'
+import { defineConfig, globalIgnores } from 'eslint/config'
-export default [
+export default defineConfig([
+ // Ignore dist folder globally
+ globalIgnores(['dist']),
+
+ // Frontend (React)
{
- files: ["src/**/*.js","src/**/*.ts"],
+ files: ['src/**/*.js', 'src/**/*.jsx'],
languageOptions: {
ecmaVersion: 2022,
- sourceType: "module",
- parser: tseslintParser,
+ sourceType: 'module',
parserOptions: {
ecmaFeatures: {
- modules: true
- },
- ecmaVersion: "2022",
- project: "./tsconfig.json",
+ jsx: true
+ }
},
globals: {
- ...globals.browser,
+ ...globals.browser
}
},
plugins: {
- "@typescript-eslint": tseslintPlugin
+ react: reactPlugin,
+ 'react-hooks': reactHooks,
+ 'react-refresh': reactRefresh
+ },
+ settings: {
+ react: { version: 'detect' }
},
rules: {
...js.configs.recommended.rules,
- ...tseslintPlugin.configs["eslint-recommended"].overrides[0].rules,
- ...tseslintPlugin.configs["recommended"].rules,
+ ...reactPlugin.configs.flat.recommended.rules,
+ ...reactPlugin.configs.flat['jsx-runtime'].rules,
+ ...reactHooks.configs['recommended-latest'].rules,
+ ...reactRefresh.configs.vite.rules,
+ 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }]
}
},
+
+ // Backend (Node.js)
{
- files: ["server/**/*.js", "server/**/*.cjs"],
+ files: ['server/**/*.js', 'server/**/*.cjs'],
languageOptions: {
ecmaVersion: 2022,
- sourceType: "module",
+ sourceType: 'module',
globals: {
- ...globals.node,
+ ...globals.node
}
},
plugins: {
@@ -45,7 +64,7 @@ export default [
},
rules: {
...js.configs.recommended.rules,
- ...nodePlugin.configs["flat/recommended-script"].rules
+ ...nodePlugin.configs['flat/recommended-script'].rules
}
}
-];
+])
diff --git a/templates/node-angular/package.json b/templates/node-angular/package.json
index 981d3cd..6fc32fb 100644
--- a/templates/node-angular/package.json
+++ b/templates/node-angular/package.json
@@ -10,43 +10,50 @@
"watch": "ng build --watch --configuration development",
"test": "ng test"
},
+ "prettier": {
+ "overrides": [
+ {
+ "files": "*.html",
+ "options": {
+ "parser": "angular"
+ }
+ }
+ ]
+ },
"private": true,
"dependencies": {
- "@angular/common": "^19.2.0",
- "@angular/compiler": "^19.2.0",
- "@angular/core": "^19.2.0",
- "@angular/forms": "^19.2.0",
- "@angular/platform-browser": "^19.2.0",
- "@angular/platform-browser-dynamic": "^19.2.0",
- "@angular/router": "^19.2.0",
+ "@angular/common": "^20.0.0",
+ "@angular/compiler": "^20.0.0",
+ "@angular/core": "^20.0.0",
+ "@angular/forms": "^20.0.0",
+ "@angular/platform-browser": "^20.0.0",
+ "@angular/router": "^20.0.0",
+ "rxjs": "~7.8.0",
+ "tslib": "^2.3.0",
+ "zone.js": "~0.15.0",
"body-parser": "^2.2.0",
"cors": "^2.8.5",
- "dotenv": "^16.5.0",
+ "dotenv": "^17.1.0",
"express": "^5.1.0",
"morgan": "^1.10.0",
- "oracledb": "^6.8.0",
- "rxjs": "~7.8.0",
- "tslib": "^2.3.0",
- "zone.js": "~0.15.0"
+ "oracledb": "^6.7.1"
},
"devDependencies": {
- "@angular-devkit/build-angular": "^19.2.8",
- "@angular/cli": "^19.2.8",
- "@angular/compiler-cli": "^19.2.0",
- "@eslint/js": "^9.25.1",
+ "@angular/build": "^20.0.6",
+ "@angular/cli": "^20.0.6",
+ "@angular/compiler-cli": "^20.0.0",
"@types/jasmine": "~5.1.0",
- "@typescript-eslint/eslint-plugin": "^8.31.0",
- "@typescript-eslint/parser": "^8.31.0",
- "concurrently": "^9.1.2",
- "eslint": "^9.25.1",
- "eslint-plugin-n": "^17.17.0",
- "globals": "^16.0.0",
- "jasmine-core": "~5.6.0",
+ "jasmine-core": "~5.7.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
"karma-coverage": "~2.2.0",
"karma-jasmine": "~5.1.0",
"karma-jasmine-html-reporter": "~2.1.0",
- "typescript": "~5.7.2"
+ "typescript": "~5.8.2",
+ "@eslint/js": "^9.18.0",
+ "concurrently": "^9.1.2",
+ "eslint": "^9.18.0",
+ "eslint-plugin-n": "^17.15.1",
+ "globals": "^16.3.0"
}
}
diff --git a/templates/node-angular/src/app/app.config.ts b/templates/node-angular/src/app/app.config.ts
index a1e7d6f..d953f4c 100644
--- a/templates/node-angular/src/app/app.config.ts
+++ b/templates/node-angular/src/app/app.config.ts
@@ -1,8 +1,12 @@
-import { ApplicationConfig, provideZoneChangeDetection } from '@angular/core';
+import { ApplicationConfig, provideBrowserGlobalErrorListeners, provideZoneChangeDetection } from '@angular/core';
import { provideRouter } from '@angular/router';
import { routes } from './app.routes';
export const appConfig: ApplicationConfig = {
- providers: [provideZoneChangeDetection({ eventCoalescing: true }), provideRouter(routes)]
+ providers: [
+ provideBrowserGlobalErrorListeners(),
+ provideZoneChangeDetection({ eventCoalescing: true }),
+ provideRouter(routes)
+ ]
};
diff --git a/templates/node-angular/src/app/app.component.css b/templates/node-angular/src/app/app.css
similarity index 100%
rename from templates/node-angular/src/app/app.component.css
rename to templates/node-angular/src/app/app.css
diff --git a/templates/node-angular/src/app/app.component.html b/templates/node-angular/src/app/app.html
similarity index 85%
rename from templates/node-angular/src/app/app.component.html
rename to templates/node-angular/src/app/app.html
index da421af..fde2947 100644
--- a/templates/node-angular/src/app/app.component.html
+++ b/templates/node-angular/src/app/app.html
@@ -1,7 +1,7 @@
+
+
diff --git a/templates/node-angular/src/app/app.component.spec.ts b/templates/node-angular/src/app/app.spec.ts
similarity index 52%
rename from templates/node-angular/src/app/app.component.spec.ts
rename to templates/node-angular/src/app/app.spec.ts
index 2b51b84..7bf5f35 100644
--- a/templates/node-angular/src/app/app.component.spec.ts
+++ b/templates/node-angular/src/app/app.spec.ts
@@ -1,27 +1,21 @@
import { TestBed } from '@angular/core/testing';
-import { AppComponent } from './app.component';
+import { App } from './app';
-describe('AppComponent', () => {
+describe('App', () => {
beforeEach(async () => {
await TestBed.configureTestingModule({
- imports: [AppComponent],
+ imports: [App],
}).compileComponents();
});
it('should create the app', () => {
- const fixture = TestBed.createComponent(AppComponent);
+ const fixture = TestBed.createComponent(App);
const app = fixture.componentInstance;
expect(app).toBeTruthy();
});
- it(`should have the 'node-angular' title`, () => {
- const fixture = TestBed.createComponent(AppComponent);
- const app = fixture.componentInstance;
- expect(app.title).toEqual('node-angular');
- });
-
it('should render title', () => {
- const fixture = TestBed.createComponent(AppComponent);
+ const fixture = TestBed.createComponent(App);
fixture.detectChanges();
const compiled = fixture.nativeElement as HTMLElement;
expect(compiled.querySelector('h1')?.textContent).toContain('Hello, node-angular');
diff --git a/templates/node-angular/src/app/app.component.ts b/templates/node-angular/src/app/app.ts
similarity index 75%
rename from templates/node-angular/src/app/app.component.ts
rename to templates/node-angular/src/app/app.ts
index 5c85568..618c6cf 100644
--- a/templates/node-angular/src/app/app.component.ts
+++ b/templates/node-angular/src/app/app.ts
@@ -1,19 +1,19 @@
import { Component, OnInit } from '@angular/core';
+import { RouterOutlet } from '@angular/router';
@Component({
selector: 'app-root',
- templateUrl: './app.component.html',
- styleUrls: ['./app.component.css'],
- standalone: true,
+ imports: [RouterOutlet],
+ templateUrl: './app.html',
+ styleUrl: './app.css'
})
-export class AppComponent implements OnInit {
- oracleLogo = '/assets/oracle.svg'
- angularLogo = '/assets/angular.svg'
+export class App implements OnInit {
title: string = 'node-angular';
+ oracleLogo = 'assets/oracle.svg'
+ angularLogo = 'assets/angular.svg'
isConnected?: boolean;
-
- async ngOnInit() {
+ async ngOnInit() {
try {
const response = await fetch('http://localhost:3000/api/connection/status');
const data = await response.json();
@@ -37,4 +37,4 @@ export class AppComponent implements OnInit {
return 'Something is wrong with the database!';
}
}
-}
\ No newline at end of file
+}
diff --git a/templates/node-angular/src/index.html b/templates/node-angular/src/index.html
index 6885ee2..b02fb99 100644
--- a/templates/node-angular/src/index.html
+++ b/templates/node-angular/src/index.html
@@ -2,7 +2,7 @@
-
Sample Database App
+
NodeAngular
@@ -10,4 +10,4 @@
-
\ No newline at end of file
+
diff --git a/templates/node-angular/src/main.ts b/templates/node-angular/src/main.ts
index 35b00f3..5df75f9 100644
--- a/templates/node-angular/src/main.ts
+++ b/templates/node-angular/src/main.ts
@@ -1,6 +1,6 @@
import { bootstrapApplication } from '@angular/platform-browser';
import { appConfig } from './app/app.config';
-import { AppComponent } from './app/app.component';
+import { App } from './app/app';
-bootstrapApplication(AppComponent, appConfig)
+bootstrapApplication(App, appConfig)
.catch((err) => console.error(err));
diff --git a/templates/node-angular/src/styles.css b/templates/node-angular/src/styles.css
index fd886d3..1d56175 100644
--- a/templates/node-angular/src/styles.css
+++ b/templates/node-angular/src/styles.css
@@ -1,3 +1,4 @@
+/* You can add global styles to this file, and also import other style files */
:root {
font-family: Inter, system-ui, Avenir, Helvetica, Arial, sans-serif;
line-height: 1.5;
diff --git a/templates/node-angular/tsconfig.app.json b/templates/node-angular/tsconfig.app.json
index 3775b37..264f459 100644
--- a/templates/node-angular/tsconfig.app.json
+++ b/templates/node-angular/tsconfig.app.json
@@ -6,10 +6,10 @@
"outDir": "./out-tsc/app",
"types": []
},
- "files": [
- "src/main.ts"
- ],
"include": [
- "src/**/*.d.ts"
+ "src/**/*.ts"
+ ],
+ "exclude": [
+ "src/**/*.spec.ts"
]
}
diff --git a/templates/node-angular/tsconfig.json b/templates/node-angular/tsconfig.json
index 5525117..e4955f2 100644
--- a/templates/node-angular/tsconfig.json
+++ b/templates/node-angular/tsconfig.json
@@ -3,7 +3,6 @@
{
"compileOnSave": false,
"compilerOptions": {
- "outDir": "./dist/out-tsc",
"strict": true,
"noImplicitOverride": true,
"noPropertyAccessFromIndexSignature": true,
@@ -11,17 +10,25 @@
"noFallthroughCasesInSwitch": true,
"skipLibCheck": true,
"isolatedModules": true,
- "esModuleInterop": true,
"experimentalDecorators": true,
- "moduleResolution": "bundler",
"importHelpers": true,
"target": "ES2022",
- "module": "ES2022"
+ "module": "preserve"
},
"angularCompilerOptions": {
"enableI18nLegacyMessageIdFormat": false,
"strictInjectionParameters": true,
"strictInputAccessModifiers": true,
+ "typeCheckHostBindings": true,
"strictTemplates": true
- }
+ },
+ "files": [],
+ "references": [
+ {
+ "path": "./tsconfig.app.json"
+ },
+ {
+ "path": "./tsconfig.spec.json"
+ }
+ ]
}
diff --git a/templates/node-angular/tsconfig.spec.json b/templates/node-angular/tsconfig.spec.json
index 5fb748d..04df34c 100644
--- a/templates/node-angular/tsconfig.spec.json
+++ b/templates/node-angular/tsconfig.spec.json
@@ -9,7 +9,6 @@
]
},
"include": [
- "src/**/*.spec.ts",
- "src/**/*.d.ts"
+ "src/**/*.ts"
]
}
diff --git a/templates/node-jet/package.json b/templates/node-jet/package.json
index c324a7c..fc26149 100644
--- a/templates/node-jet/package.json
+++ b/templates/node-jet/package.json
@@ -7,8 +7,8 @@
"lint": "eslint src/ --max-warnings 0"
},
"dependencies": {
- "@oracle/oraclejet": "~18.0.0",
- "@oracle/oraclejet-core-pack": "~18.0.0",
+ "@oracle/oraclejet": "~18.1.0",
+ "@oracle/oraclejet-core-pack": "~18.1.0",
"body-parser": "^2.2.0",
"cors": "^2.8.5",
"dotenv": "^16.5.0",
@@ -19,7 +19,7 @@
},
"devDependencies": {
"@eslint/js": "^9.24.0",
- "@oracle/ojet-cli": "~18.0.0",
+ "@oracle/ojet-cli": "~18.1.0",
"concurrently": "^9.1.2",
"eslint": "^9.24.0",
"extract-zip": "^1.7.0",
diff --git a/templates/node-react-todo/package.json b/templates/node-react-todo/package.json
index ec04f2a..84bc8f4 100644
--- a/templates/node-react-todo/package.json
+++ b/templates/node-react-todo/package.json
@@ -9,28 +9,28 @@
"preview": "vite preview"
},
"dependencies": {
- "body-parser": "^1.20.3",
+ "body-parser": "^2.2.0",
"cors": "^2.8.5",
- "dotenv": "^16.4.7",
- "express": "^4.21.2",
+ "dotenv": "^17.1.0",
+ "express": "^5.1.0",
"morgan": "^1.10.0",
"oracledb": "^6.7.1",
- "react": "^19.0.0",
- "react-dom": "^19.0.0",
+ "react": "^19.1.0",
+ "react-dom": "^19.1.0",
"react-toastify": "^11.0.3"
},
"devDependencies": {
- "@types/react": "^19.0.7",
- "@types/react-dom": "^19.0.3",
- "@vitejs/plugin-react": "^4.3.4",
+ "@types/react": "^19.1.8",
+ "@types/react-dom": "^19.1.6",
+ "@vitejs/plugin-react": "^4.6.0",
"concurrently": "^9.1.2",
- "eslint": "^9.18.0",
+ "eslint": "^9.30.1",
"@eslint/js": "^9.18.0",
"eslint-plugin-n": "^17.15.1",
"eslint-plugin-react": "^7.37.4",
- "eslint-plugin-react-hooks": "^5.1.0",
- "eslint-plugin-react-refresh": "^0.4.18",
- "globals": "15.14.0",
- "vite": "^6.0.7"
+ "eslint-plugin-react-hooks": "^5.2.0",
+ "eslint-plugin-react-refresh": "^0.4.20",
+ "globals": "^16.3.0",
+ "vite": "^7.0.3"
}
}
diff --git a/templates/node-react/eslint.config.mjs b/templates/node-react/eslint.config.mjs
index 614ae52..e07d716 100644
--- a/templates/node-react/eslint.config.mjs
+++ b/templates/node-react/eslint.config.mjs
@@ -4,32 +4,37 @@
** All rights reserved
** Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl/
*/
-import globals from "globals";
-import js from "@eslint/js";
-import nodePlugin from "eslint-plugin-n";
-import reactPlugin from "eslint-plugin-react";
-import reactHooksPlugin from "eslint-plugin-react-hooks";
-import reactRefreshPlugin from "eslint-plugin-react-refresh";
+import js from '@eslint/js'
+import globals from 'globals'
+import nodePlugin from 'eslint-plugin-n'
+import reactPlugin from 'eslint-plugin-react'
+import reactHooks from 'eslint-plugin-react-hooks'
+import reactRefresh from 'eslint-plugin-react-refresh'
+import { defineConfig, globalIgnores } from 'eslint/config'
-export default [
+export default defineConfig([
+ // Ignore dist folder globally
+ globalIgnores(['dist']),
+
+ // Frontend (React)
{
- files: ["src/**/*.js","src/**/*.jsx"],
+ files: ['src/**/*.js', 'src/**/*.jsx'],
languageOptions: {
ecmaVersion: 2022,
- sourceType: "module",
+ sourceType: 'module',
parserOptions: {
ecmaFeatures: {
jsx: true
}
},
globals: {
- ...globals.browser,
+ ...globals.browser
}
},
plugins: {
react: reactPlugin,
- "react-hooks": reactHooksPlugin,
- "react-refresh": reactRefreshPlugin
+ 'react-hooks': reactHooks,
+ 'react-refresh': reactRefresh
},
settings: {
react: { version: 'detect' }
@@ -37,18 +42,21 @@ export default [
rules: {
...js.configs.recommended.rules,
...reactPlugin.configs.flat.recommended.rules,
- ...reactPlugin.configs.flat["jsx-runtime"].rules,
- ...reactHooksPlugin.configs.recommended.rules,
- ...reactRefreshPlugin.configs.vite.rules
+ ...reactPlugin.configs.flat['jsx-runtime'].rules,
+ ...reactHooks.configs['recommended-latest'].rules,
+ ...reactRefresh.configs.vite.rules,
+ 'no-unused-vars': ['error', { varsIgnorePattern: '^[A-Z_]' }]
}
},
+
+ // Backend (Node.js)
{
- files: ["server/**/*.js", "server/**/*.cjs"],
+ files: ['server/**/*.js', 'server/**/*.cjs'],
languageOptions: {
ecmaVersion: 2022,
- sourceType: "module",
+ sourceType: 'module',
globals: {
- ...globals.node,
+ ...globals.node
}
},
plugins: {
@@ -56,7 +64,7 @@ export default [
},
rules: {
...js.configs.recommended.rules,
- ...nodePlugin.configs["flat/recommended-script"].rules
+ ...nodePlugin.configs['flat/recommended-script'].rules
}
}
-];
+])
diff --git a/templates/node-react/package.json b/templates/node-react/package.json
index bf17647..15e0821 100644
--- a/templates/node-react/package.json
+++ b/templates/node-react/package.json
@@ -6,31 +6,29 @@
"scripts": {
"dev": "concurrently --names server,client --prefix-colors blue,yellow --success all --kill-others 'node ./server/index.cjs' 'vite'",
"build": "vite build",
- "lint": "eslint --report-unused-disable-directives",
+ "lint": "eslint .",
"preview": "vite preview"
},
"dependencies": {
- "body-parser": "^1.20.3",
+ "body-parser": "^2.2.0",
"cors": "^2.8.5",
- "dotenv": "^16.4.7",
- "express": "^4.21.2",
+ "dotenv": "^17.1.0",
+ "express": "^5.1.0",
"morgan": "^1.10.0",
"oracledb": "^6.7.1",
- "react": "^19.0.0",
- "react-dom": "^19.0.0"
+ "react": "^19.1.0",
+ "react-dom": "^19.1.0"
},
"devDependencies": {
- "@types/react": "^19.0.7",
- "@types/react-dom": "^19.0.3",
- "@vitejs/plugin-react": "^4.3.4",
+ "@eslint/js": "^9.30.1",
+ "@types/react": "^19.1.8",
+ "@types/react-dom": "^19.1.6",
+ "@vitejs/plugin-react": "^4.6.0",
"concurrently": "^9.1.2",
- "eslint": "^9.18.0",
- "@eslint/js": "^9.18.0",
- "eslint-plugin-n": "^17.15.1",
- "eslint-plugin-react": "^7.37.4",
- "eslint-plugin-react-hooks": "^5.1.0",
- "eslint-plugin-react-refresh": "^0.4.18",
- "globals": "15.14.0",
- "vite": "^6.0.7"
+ "eslint": "^9.30.1",
+ "eslint-plugin-react-hooks": "^5.2.0",
+ "eslint-plugin-react-refresh": "^0.4.20",
+ "globals": "^16.3.0",
+ "vite": "^7.0.3"
}
}
diff --git a/templates/node-vanilla/package.json b/templates/node-vanilla/package.json
index 0448a2c..74efeea 100644
--- a/templates/node-vanilla/package.json
+++ b/templates/node-vanilla/package.json
@@ -11,19 +11,19 @@
"preview": "vite preview"
},
"dependencies": {
- "body-parser": "^1.20.3",
+ "body-parser": "^2.2.0",
"cors": "^2.8.5",
- "dotenv": "^16.4.7",
- "express": "^4.21.2",
+ "dotenv": "^17.1.0",
+ "express": "^5.1.0",
"morgan": "^1.10.0",
"oracledb": "^6.7.1"
},
"devDependencies": {
+ "@eslint/js": "^9.18.0",
"concurrently": "^9.1.2",
"eslint": "^9.18.0",
- "@eslint/js": "^9.18.0",
"eslint-plugin-n": "^17.15.1",
- "globals": "15.14.0",
- "vite": "^6.0.7"
+ "globals": "^16.3.0",
+ "vite": "^7.0.3"
}
}
diff --git a/templates/node-vue/package.json b/templates/node-vue/package.json
index a093730..1ea3744 100644
--- a/templates/node-vue/package.json
+++ b/templates/node-vue/package.json
@@ -10,22 +10,22 @@
"preview": "vite preview"
},
"dependencies": {
- "body-parser": "^1.20.3",
+ "body-parser": "^2.2.0",
"cors": "^2.8.5",
- "dotenv": "^16.4.7",
- "express": "^4.21.2",
+ "dotenv": "^17.1.0",
+ "express": "^5.1.0",
"morgan": "^1.10.0",
"oracledb": "^6.7.1",
- "vue": "^3.5.13"
+ "vue": "^3.5.17"
},
"devDependencies": {
- "@vitejs/plugin-vue": "^5.2.1",
+ "@vitejs/plugin-vue": "^6.0.0",
"concurrently": "^9.1.2",
- "eslint": "^9.18.0",
- "@eslint/js": "^9.18.0",
+ "eslint": "^9.30.1",
+ "@eslint/js": "^9.30.1",
"eslint-plugin-n": "^17.15.1",
"eslint-plugin-vue": "^9.32.0",
- "globals": "15.14.0",
- "vite": "^6.0.11"
+ "globals": "^16.3.0",
+ "vite": "^7.0.3"
}
}