diff --git a/srcANGULAR/.ci/build_unix-any.sh b/Angular/.ci/build_unix-any.sh
similarity index 84%
rename from srcANGULAR/.ci/build_unix-any.sh
rename to Angular/.ci/build_unix-any.sh
index da40b822..0e5571ef 100644
--- a/srcANGULAR/.ci/build_unix-any.sh
+++ b/Angular/.ci/build_unix-any.sh
@@ -33,6 +33,7 @@ ${PROJECT_SKU}-docs_any-any
"
+FS_Remake_Directory "${PROJECT_PATH_ROOT}/${PROJECT_PATH_BUILD}"
I18N_Activate_Environment
@@ -56,6 +57,19 @@ fi
+___source="${PROJECT_PATH_ROOT}/${PROJECT_ANGULAR}/dist/browser"
+___dest="${PROJECT_PATH_ROOT}/${PROJECT_PATH_DOCS}"
+I18N_Export "$___dest"
+FS_Make_Directory "$___dest"
+FS_Copy_All "${___source}/" "$___dest"
+if [ $? -ne 0 ]; then
+ I18N_Export_Failed
+ return 1
+fi
+
+
+
+
# placeholding flag files
old_IFS="$IFS"
while IFS="" read -r __line || [ -n "$__line" ]; do
diff --git a/srcANGULAR/.ci/build_windows-any.ps1 b/Angular/.ci/build_windows-any.ps1
similarity index 82%
rename from srcANGULAR/.ci/build_windows-any.ps1
rename to Angular/.ci/build_windows-any.ps1
index 75494779..34318d58 100644
--- a/srcANGULAR/.ci/build_windows-any.ps1
+++ b/Angular/.ci/build_windows-any.ps1
@@ -32,6 +32,7 @@ $__placeholders = @(
)
+$null = FS-Remake-Directory "${env:PROJECT_PATH_ROOT}\${env:PROJECT_PATH_BUILD}"
$null = I18N-Activate-Environment
@@ -56,6 +57,19 @@ if ($___process -ne 0) {
+$___source = "${env:PROJECT_PATH_ROOT}\${env:PROJECT_ANGULAR}\dist\browser"
+$___dest = "${env:PROJECT_PATH_ROOT}\${env:PROJECT_PATH_DOCS}"
+$null = I18N-Export "${___dest}"
+$null = FS-Make-Directory "${___dest}"
+$___process = FS-Copy-All "${___source}\" "${___dest}"
+if ($___process -ne 0) {
+ $null = I18N-Export-Failed
+ return 1
+}
+
+
+
+
# placeholding flag files
foreach ($__line in $__placeholders) {
if ($(STRINGS-Is-Empty "${__line}") -eq 0) {
diff --git a/srcANGULAR/.ci/materialize_unix-any.sh b/Angular/.ci/materialize_unix-any.sh
similarity index 100%
rename from srcANGULAR/.ci/materialize_unix-any.sh
rename to Angular/.ci/materialize_unix-any.sh
diff --git a/srcANGULAR/.ci/materialize_windows-any.ps1 b/Angular/.ci/materialize_windows-any.ps1
similarity index 100%
rename from srcANGULAR/.ci/materialize_windows-any.ps1
rename to Angular/.ci/materialize_windows-any.ps1
diff --git a/srcANGULAR/.ci/prepare_unix-any.sh b/Angular/.ci/prepare_unix-any.sh
similarity index 100%
rename from srcANGULAR/.ci/prepare_unix-any.sh
rename to Angular/.ci/prepare_unix-any.sh
diff --git a/srcANGULAR/.ci/prepare_windows-any.ps1 b/Angular/.ci/prepare_windows-any.ps1
similarity index 100%
rename from srcANGULAR/.ci/prepare_windows-any.ps1
rename to Angular/.ci/prepare_windows-any.ps1
diff --git a/srcANGULAR/.ci/test_unix-any.sh b/Angular/.ci/test_unix-any.sh
similarity index 100%
rename from srcANGULAR/.ci/test_unix-any.sh
rename to Angular/.ci/test_unix-any.sh
diff --git a/srcANGULAR/.ci/test_windows-any.ps1 b/Angular/.ci/test_windows-any.ps1
similarity index 100%
rename from srcANGULAR/.ci/test_windows-any.ps1
rename to Angular/.ci/test_windows-any.ps1
diff --git a/Angular/README.md b/Angular/README.md
new file mode 100644
index 00000000..42442fc9
--- /dev/null
+++ b/Angular/README.md
@@ -0,0 +1,79 @@
+# AutomataCI Static Site Generator Angular Setup
+
+This document is mainly for Angular developer to understand what is going on
+with the organization here. Most of the resources are the same.
+
+
+
+
+## Directory Structures
+
+Unlike what was recommended by Angular, AutomataCI prepares 2 separate
+components directories:
+
+1. `contents/` - organize the pages
+2. `services/` - where your libraries and components stays
+
+The `contents/` structures the website page hirarchy and imports the `services/`
+libraries to construct the page.
+
+
+
+
+## Server-Side Rendering (SSR) or Static Site Generation (SSG) First
+
+There is a high chance this project is likely being used to generate JAM Stack.
+Hence, AutomataCI prioritizes the SSR and SSG (pre-rendering) facilities.
+
+
+
+
+## Setting website Base URL
+
+To set the Base URL, make sure you update the `baseHref` and `deployUrl` data
+inside `angular.json`:
+
+```
+diff --git a/angular/angular.json b/angular/angular.json
+index 5379d9e..fb2e8fa 100644
+--- a/angular/angular.json
++++ b/angular/angular.json
+@@ -46,6 +46,8 @@
+ },
+ "configurations": {
+ "production": {
++ "baseHref": "https://www.example.com/",
++ "deployUrl": "https://www.example.com/",
+ "budgets": [
+ {
+ "type": "initial",
+```
+
+Then make sure you edit `assets/CNAME` and add only the domain name inside. This
+is for GitHub or GitLab authentication use.
+
+Then update the `assets/manifest.webmanifest` for PWA settings. Specifically,
+look for `start_url` and etc.
+
+
+
+
+## For development
+
+Everything is the same as Angular: `$ ng serve`
+
+
+
+
+## For Tests
+
+Everything is the same as Angular: `$ ng test` OR `$ ng e2e`
+
+
+
+
+## For Production
+
+Everything is the same as Angular: `$ ng build`
+
+For full automation, use: `$ ./automataCI/ci.sh.ps1 build`
diff --git a/srcANGULAR/angular.json b/Angular/angular.json
similarity index 68%
rename from srcANGULAR/angular.json
rename to Angular/angular.json
index e02099b6..fb2e8fa6 100644
--- a/srcANGULAR/angular.json
+++ b/Angular/angular.json
@@ -7,32 +7,47 @@
"projectType": "application",
"schematics": {},
"root": "",
- "sourceRoot": "src",
+ "sourceRoot": ".",
"prefix": "app",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:application",
"options": {
+ "crossOrigin": "anonymous",
"outputPath": {
- "base": "../public"
+ "base": "dist",
+ "browser": "browser",
+ "server": "server"
},
- "index": "src/index.html",
+ "index": "app.html",
"polyfills": [
"zone.js"
],
"tsConfig": "tsconfig.app.json",
- "assets": [
- "src/favicon.ico",
- "src/assets"
- ],
+ "assets": [{
+ "glob": "**/*",
+ "input": "assets",
+ "output": "."
+ }],
"styles": [
- "src/styles.css"
+ "app.css"
+ ],
+ "scripts": [
+ "app.js"
],
- "scripts": [],
- "browser": "src/main.ts"
+ "browser": "main.ts",
+ "server": "main.server.ts",
+ "prerender": {
+ "routesFile": "prerender-routes.txt"
+ },
+ "ssr": {
+ "entry": "server.ts"
+ }
},
"configurations": {
"production": {
+ "baseHref": "https://www.example.com/",
+ "deployUrl": "https://www.example.com/",
"budgets": [
{
"type": "initial",
@@ -45,7 +60,8 @@
"maximumError": "4kb"
}
],
- "outputHashing": "all"
+ "outputHashing": "all",
+ "serviceWorker": "ngsw-config.json"
},
"development": {
"optimization": false,
@@ -83,14 +99,17 @@
"zone.js/testing"
],
"tsConfig": "tsconfig.spec.json",
- "assets": [
- "src/favicon.ico",
- "src/assets"
- ],
+ "assets": [{
+ "glob": "**/*",
+ "input": "assets",
+ "output": "."
+ }],
"styles": [
- "src/styles.css"
+ "app.css"
],
- "scripts": []
+ "scripts": [
+ "app.js"
+ ]
}
}
}
diff --git a/Angular/app.config.server.ts b/Angular/app.config.server.ts
new file mode 100644
index 00000000..1420c354
--- /dev/null
+++ b/Angular/app.config.server.ts
@@ -0,0 +1,16 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { mergeApplicationConfig, ApplicationConfig } from '@angular/core';
+import { provideServerRendering } from '@angular/platform-server';
+import { appConfig } from './app.config';
+
+
+
+
+const serverConfig: ApplicationConfig = {
+ providers: [
+ provideServerRendering()
+ ]
+};
+export const config = mergeApplicationConfig(appConfig, serverConfig);
diff --git a/Angular/app.config.ts b/Angular/app.config.ts
new file mode 100644
index 00000000..05dad157
--- /dev/null
+++ b/Angular/app.config.ts
@@ -0,0 +1,23 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { ApplicationConfig, isDevMode } from '@angular/core';
+import { provideRouter } from '@angular/router';
+
+import { routes } from './app.routes';
+import { provideClientHydration } from '@angular/platform-browser';
+import { provideServiceWorker } from '@angular/service-worker';
+
+
+
+
+export const appConfig: ApplicationConfig = {
+ providers: [
+ provideRouter(routes),
+ provideClientHydration(),
+ provideServiceWorker('ngsw-worker.js', {
+ enabled: !isDevMode(),
+ registrationStrategy: 'registerWhenStable:30000'
+ })
+ ]
+};
diff --git a/Angular/app.css b/Angular/app.css
new file mode 100644
index 00000000..0e6b958a
--- /dev/null
+++ b/Angular/app.css
@@ -0,0 +1,3 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
diff --git a/Angular/app.html b/Angular/app.html
new file mode 100644
index 00000000..44f7ea9b
--- /dev/null
+++ b/Angular/app.html
@@ -0,0 +1,122 @@
+
+
+
+
+ Website
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Angular/app.js b/Angular/app.js
new file mode 100644
index 00000000..0e6b958a
--- /dev/null
+++ b/Angular/app.js
@@ -0,0 +1,3 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
diff --git a/Angular/app.routes.ts b/Angular/app.routes.ts
new file mode 100644
index 00000000..88719dd8
--- /dev/null
+++ b/Angular/app.routes.ts
@@ -0,0 +1,20 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { Routes } from '@angular/router';
+
+import { Page_Root } from "./contents/page";
+import { Page_404 } from "./contents/404/page";
+import { Page_Lang } from "./contents/lang/page";
+
+
+
+
+export const routes: Routes = [
+ { path: '', component: Page_Root },
+ { path: 'en', component: Page_Lang, data: { lang: 'en' } },
+
+
+ // catch all
+ { path: '**', component: Page_404 },
+];
diff --git a/Angular/app.ts b/Angular/app.ts
new file mode 100644
index 00000000..9b9bcf16
--- /dev/null
+++ b/Angular/app.ts
@@ -0,0 +1,22 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { Component } from '@angular/core';
+import { RouterOutlet } from '@angular/router';
+
+
+
+
+/* Overall Application Component
+ * (1) Required placeholder for everything to work properly.
+ * (2) Leave this as it is and only work on contents/ (Pages) and
+ * services/ (Components).
+ */
+@Component({
+ selector: 'app-root',
+ standalone: true,
+ imports: [RouterOutlet],
+ template: '',
+ styles: []
+})
+export class App {}
diff --git a/Angular/assets/.nojekyll b/Angular/assets/.nojekyll
new file mode 100644
index 00000000..8f38b297
--- /dev/null
+++ b/Angular/assets/.nojekyll
@@ -0,0 +1 @@
+No Jekyll
\ No newline at end of file
diff --git a/Angular/assets/CNAME b/Angular/assets/CNAME
new file mode 100644
index 00000000..396d471f
--- /dev/null
+++ b/Angular/assets/CNAME
@@ -0,0 +1 @@
+www.example.com
diff --git a/Angular/assets/browserconfig.xml b/Angular/assets/browserconfig.xml
new file mode 100644
index 00000000..9c8fceb5
--- /dev/null
+++ b/Angular/assets/browserconfig.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+
+
+ #021B79
+
+
+
diff --git a/Angular/assets/logos/icon-monochrome_1200x1200.svg b/Angular/assets/logos/icon-monochrome_1200x1200.svg
new file mode 100644
index 00000000..2fe762eb
--- /dev/null
+++ b/Angular/assets/logos/icon-monochrome_1200x1200.svg
@@ -0,0 +1,28 @@
+
+
+
+
diff --git a/Angular/assets/logos/icon.ico b/Angular/assets/logos/icon.ico
new file mode 100644
index 00000000..5cd4e7aa
Binary files /dev/null and b/Angular/assets/logos/icon.ico differ
diff --git a/Angular/assets/logos/icon_1024x1024.png b/Angular/assets/logos/icon_1024x1024.png
new file mode 100644
index 00000000..bf714524
Binary files /dev/null and b/Angular/assets/logos/icon_1024x1024.png differ
diff --git a/Angular/assets/logos/icon_114x114.png b/Angular/assets/logos/icon_114x114.png
new file mode 100644
index 00000000..fb8e676b
Binary files /dev/null and b/Angular/assets/logos/icon_114x114.png differ
diff --git a/Angular/assets/logos/icon_1200x1200.png b/Angular/assets/logos/icon_1200x1200.png
new file mode 100644
index 00000000..7658b31e
Binary files /dev/null and b/Angular/assets/logos/icon_1200x1200.png differ
diff --git a/Angular/assets/logos/icon_1200x1200.svg b/Angular/assets/logos/icon_1200x1200.svg
new file mode 100644
index 00000000..9eafd6f7
--- /dev/null
+++ b/Angular/assets/logos/icon_1200x1200.svg
@@ -0,0 +1,44 @@
+
+
+
+
diff --git a/Angular/assets/logos/icon_1200x200.svg b/Angular/assets/logos/icon_1200x200.svg
new file mode 100644
index 00000000..3c631115
--- /dev/null
+++ b/Angular/assets/logos/icon_1200x200.svg
@@ -0,0 +1,43 @@
+
+
diff --git a/Angular/assets/logos/icon_120x120.png b/Angular/assets/logos/icon_120x120.png
new file mode 100644
index 00000000..bd18c529
Binary files /dev/null and b/Angular/assets/logos/icon_120x120.png differ
diff --git a/Angular/assets/logos/icon_128x128.png b/Angular/assets/logos/icon_128x128.png
new file mode 100644
index 00000000..903e9c41
Binary files /dev/null and b/Angular/assets/logos/icon_128x128.png differ
diff --git a/Angular/assets/logos/icon_144x144.png b/Angular/assets/logos/icon_144x144.png
new file mode 100644
index 00000000..9ce6eca1
Binary files /dev/null and b/Angular/assets/logos/icon_144x144.png differ
diff --git a/Angular/assets/logos/icon_150x150.png b/Angular/assets/logos/icon_150x150.png
new file mode 100644
index 00000000..cc9592a8
Binary files /dev/null and b/Angular/assets/logos/icon_150x150.png differ
diff --git a/Angular/assets/logos/icon_152x152.png b/Angular/assets/logos/icon_152x152.png
new file mode 100644
index 00000000..a9328c86
Binary files /dev/null and b/Angular/assets/logos/icon_152x152.png differ
diff --git a/Angular/assets/logos/icon_192x192.png b/Angular/assets/logos/icon_192x192.png
new file mode 100644
index 00000000..cb84826c
Binary files /dev/null and b/Angular/assets/logos/icon_192x192.png differ
diff --git a/Angular/assets/logos/icon_310x150.png b/Angular/assets/logos/icon_310x150.png
new file mode 100644
index 00000000..0614284d
Binary files /dev/null and b/Angular/assets/logos/icon_310x150.png differ
diff --git a/Angular/assets/logos/icon_310x310.png b/Angular/assets/logos/icon_310x310.png
new file mode 100644
index 00000000..f9d5cd48
Binary files /dev/null and b/Angular/assets/logos/icon_310x310.png differ
diff --git a/Angular/assets/logos/icon_384x384.png b/Angular/assets/logos/icon_384x384.png
new file mode 100644
index 00000000..6d43fb5b
Binary files /dev/null and b/Angular/assets/logos/icon_384x384.png differ
diff --git a/Angular/assets/logos/icon_480x480.png b/Angular/assets/logos/icon_480x480.png
new file mode 100644
index 00000000..85402154
Binary files /dev/null and b/Angular/assets/logos/icon_480x480.png differ
diff --git a/Angular/assets/logos/icon_512x512.png b/Angular/assets/logos/icon_512x512.png
new file mode 100644
index 00000000..e573888b
Binary files /dev/null and b/Angular/assets/logos/icon_512x512.png differ
diff --git a/Angular/assets/logos/icon_57x57.png b/Angular/assets/logos/icon_57x57.png
new file mode 100644
index 00000000..4179f675
Binary files /dev/null and b/Angular/assets/logos/icon_57x57.png differ
diff --git a/Angular/assets/logos/icon_60x60.png b/Angular/assets/logos/icon_60x60.png
new file mode 100644
index 00000000..176f678c
Binary files /dev/null and b/Angular/assets/logos/icon_60x60.png differ
diff --git a/Angular/assets/logos/icon_70x70.png b/Angular/assets/logos/icon_70x70.png
new file mode 100644
index 00000000..226df7a6
Binary files /dev/null and b/Angular/assets/logos/icon_70x70.png differ
diff --git a/Angular/assets/logos/icon_72x72.png b/Angular/assets/logos/icon_72x72.png
new file mode 100644
index 00000000..11ba20f1
Binary files /dev/null and b/Angular/assets/logos/icon_72x72.png differ
diff --git a/Angular/assets/logos/icon_96x96.png b/Angular/assets/logos/icon_96x96.png
new file mode 100644
index 00000000..c9d170a1
Binary files /dev/null and b/Angular/assets/logos/icon_96x96.png differ
diff --git a/Angular/assets/manifest.webmanifest b/Angular/assets/manifest.webmanifest
new file mode 100644
index 00000000..0c451c8f
--- /dev/null
+++ b/Angular/assets/manifest.webmanifest
@@ -0,0 +1,175 @@
+{
+ "name": "Brand Name",
+ "short_name": "brand",
+ "lang": "en",
+ "description": "description here",
+ "categories": [
+ "CAT 1",
+ "CAT 2",
+ "CAT 3"
+ ],
+ "id": "#0000FF",
+ "theme_color": "#0000FF",
+ "background_color": "#021B79",
+ "display": "standalone",
+ "display_override": [
+ "standalone",
+ "minimal-ui",
+ "browser"
+ ],
+ "scope": "./",
+ "start_url": "./",
+ "orientation": "any",
+ "prefer_related_applications": false,
+ "protocol_handlers": [
+ {
+ "protocol": "web+brand",
+ "url": "/?query=%s"
+ }
+ ],
+ "related_applications": [
+ {
+ "id": "/",
+ "platform": "webapp",
+ "url": "/"
+ }
+ ],
+ "screenshots": [
+ {
+ "label": "Brand Name",
+ "platform": "wide",
+ "sizes": "1200x630",
+ "src": "/logos/icon_512x512.png",
+ "type": "image/png"
+ }
+ ],
+ "shortcuts": [
+ {
+ "description": "To Main Dashboard",
+ "icons": [
+ {
+ "purpose": "any",
+ "sizes": "1200x1200",
+ "src": "/logos/icon_1200x1200.png",
+ "type": "image/png"
+ }
+ ],
+ "name": "Home \\u0026 Dashboard",
+ "short_name": "Dashboard",
+ "url": "/"
+ }
+ ],
+ "icons": [
+ {
+ "src": "/logos/icon_57x57.png",
+ "sizes": "57x57",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_60x60.png",
+ "sizes": "60x60",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_70x70.png",
+ "sizes": "70x70",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_72x72.png",
+ "sizes": "72x72",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_76x76.png",
+ "sizes": "76x76",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_96x96.png",
+ "sizes": "96x96",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_114x114.png",
+ "sizes": "114x114",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_120x120.png",
+ "sizes": "96x96",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_128x128.png",
+ "sizes": "128x128",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_144x144.png",
+ "sizes": "144x144",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_150x150.png",
+ "sizes": "150x150",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_152x152.png",
+ "sizes": "152x152",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_180x180.png",
+ "sizes": "152x152",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_192x192.png",
+ "sizes": "192x192",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_310x310.png",
+ "sizes": "310x310",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_384x384.png",
+ "sizes": "384x384",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_480x480.png",
+ "sizes": "480x480",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_512x512.png",
+ "sizes": "512x512",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_1024x1024.png",
+ "sizes": "1024x1024",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_1200x1200.svg",
+ "sizes": "1200x1200",
+ "type": "image/svg+xml",
+ "purpose": "any"
+ }, {
+ "src": "/logos/icon_1200x1200.png",
+ "sizes": "1200x1200",
+ "type": "image/png",
+ "purpose": "any"
+ }, {
+ "purpose": "maskable any",
+ "sizes": "1200x1200",
+ "src": "/logos/icon-monochrome_1200x1200.svg",
+ "type": "image/svg+xml"
+ }
+ ]
+}
diff --git a/Angular/assets/robots.txt b/Angular/assets/robots.txt
new file mode 100644
index 00000000..c2a49f4f
--- /dev/null
+++ b/Angular/assets/robots.txt
@@ -0,0 +1,2 @@
+User-agent: *
+Allow: /
diff --git a/Angular/contents/404/page.css b/Angular/contents/404/page.css
new file mode 100644
index 00000000..0e6b958a
--- /dev/null
+++ b/Angular/contents/404/page.css
@@ -0,0 +1,3 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
diff --git a/Angular/contents/404/page.html b/Angular/contents/404/page.html
new file mode 100644
index 00000000..a201fdca
--- /dev/null
+++ b/Angular/contents/404/page.html
@@ -0,0 +1,8 @@
+
+
+ Hello, {{ title }}
+ Just for extra testing
+
+
diff --git a/Angular/contents/404/page.spec.ts b/Angular/contents/404/page.spec.ts
new file mode 100644
index 00000000..2939fa99
--- /dev/null
+++ b/Angular/contents/404/page.spec.ts
@@ -0,0 +1,22 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { TestBed } from '@angular/core/testing';
+import { Page_404 } from './page';
+
+
+
+
+describe('Page_404', () => {
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [Page_404],
+ }).compileComponents();
+ });
+
+ it('should create the app', () => {
+ const fixture = TestBed.createComponent(Page_404);
+ const app = fixture.componentInstance;
+ expect(app).toBeTruthy();
+ });
+});
diff --git a/Angular/contents/404/page.ts b/Angular/contents/404/page.ts
new file mode 100644
index 00000000..1393728b
--- /dev/null
+++ b/Angular/contents/404/page.ts
@@ -0,0 +1,19 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { Component } from '@angular/core';
+import { RouterOutlet } from '@angular/router';
+
+
+
+
+@Component({
+ selector: 'page-404',
+ standalone: true,
+ imports: [RouterOutlet],
+ templateUrl: './page.html',
+ styleUrl: './page.css'
+})
+export class Page_404 {
+ public title: string = "404";
+}
diff --git a/Angular/contents/lang/page.css b/Angular/contents/lang/page.css
new file mode 100644
index 00000000..0e6b958a
--- /dev/null
+++ b/Angular/contents/lang/page.css
@@ -0,0 +1,3 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
diff --git a/Angular/contents/lang/page.html b/Angular/contents/lang/page.html
new file mode 100644
index 00000000..a201fdca
--- /dev/null
+++ b/Angular/contents/lang/page.html
@@ -0,0 +1,8 @@
+
+
+ Hello, {{ title }}
+ Just for extra testing
+
+
diff --git a/Angular/contents/lang/page.spec.ts b/Angular/contents/lang/page.spec.ts
new file mode 100644
index 00000000..15acb952
--- /dev/null
+++ b/Angular/contents/lang/page.spec.ts
@@ -0,0 +1,23 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { TestBed } from '@angular/core/testing';
+import { Page_Lang } from './page';
+
+
+
+
+describe('Page_Lang', () => {
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [Page_Lang],
+ }).compileComponents();
+ });
+
+
+ it('should create the app', () => {
+ const fixture = TestBed.createComponent(Page_Lang);
+ const app = fixture.componentInstance;
+ expect(app).toBeTruthy();
+ });
+});
diff --git a/Angular/contents/lang/page.ts b/Angular/contents/lang/page.ts
new file mode 100644
index 00000000..7b09de41
--- /dev/null
+++ b/Angular/contents/lang/page.ts
@@ -0,0 +1,19 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { Component } from '@angular/core';
+import { RouterOutlet } from '@angular/router';
+
+
+
+
+@Component({
+ selector: 'page-lang',
+ standalone: true,
+ imports: [RouterOutlet],
+ templateUrl: './page.html',
+ styleUrl: './page.css'
+})
+export class Page_Lang {
+ public title: string = "Lang";
+}
diff --git a/Angular/contents/page.css b/Angular/contents/page.css
new file mode 100644
index 00000000..0e6b958a
--- /dev/null
+++ b/Angular/contents/page.css
@@ -0,0 +1,3 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
diff --git a/Angular/contents/page.html b/Angular/contents/page.html
new file mode 100644
index 00000000..a201fdca
--- /dev/null
+++ b/Angular/contents/page.html
@@ -0,0 +1,8 @@
+
+
+ Hello, {{ title }}
+ Just for extra testing
+
+
diff --git a/Angular/contents/page.spec.ts b/Angular/contents/page.spec.ts
new file mode 100644
index 00000000..464c4e4e
--- /dev/null
+++ b/Angular/contents/page.spec.ts
@@ -0,0 +1,22 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { TestBed } from '@angular/core/testing';
+import { Page_Root } from './page';
+
+
+
+
+describe('Page_Root', () => {
+ beforeEach(async () => {
+ await TestBed.configureTestingModule({
+ imports: [Page_Root],
+ }).compileComponents();
+ });
+
+ it('should create the app', () => {
+ const fixture = TestBed.createComponent(Page_Root);
+ const app = fixture.componentInstance;
+ expect(app).toBeTruthy();
+ });
+});
diff --git a/Angular/contents/page.ts b/Angular/contents/page.ts
new file mode 100644
index 00000000..39800d7b
--- /dev/null
+++ b/Angular/contents/page.ts
@@ -0,0 +1,19 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { Component } from '@angular/core';
+import { RouterOutlet } from '@angular/router';
+
+
+
+
+@Component({
+ selector: 'page-root',
+ standalone: true,
+ imports: [RouterOutlet],
+ templateUrl: './page.html',
+ styleUrl: './page.css'
+})
+export class Page_Root {
+ public title: string = "Root";
+}
diff --git a/Angular/main.server.ts b/Angular/main.server.ts
new file mode 100644
index 00000000..2d9c2a45
--- /dev/null
+++ b/Angular/main.server.ts
@@ -0,0 +1,16 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { bootstrapApplication } from '@angular/platform-browser';
+import { config } from './app.config.server';
+import { App } from './app';
+
+
+
+
+const bootstrap = () => bootstrapApplication(App, config);
+
+
+
+
+export default bootstrap;
diff --git a/Angular/main.ts b/Angular/main.ts
new file mode 100644
index 00000000..7ea9e48d
--- /dev/null
+++ b/Angular/main.ts
@@ -0,0 +1,12 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { bootstrapApplication } from '@angular/platform-browser';
+import { appConfig } from './app.config';
+import { App } from './app';
+
+
+
+
+bootstrapApplication(App, appConfig)
+ .catch((err) => console.error(err));
diff --git a/Angular/ngsw-config.json b/Angular/ngsw-config.json
new file mode 100644
index 00000000..4d80eea7
--- /dev/null
+++ b/Angular/ngsw-config.json
@@ -0,0 +1,30 @@
+{
+ "$schema": "./node_modules/@angular/service-worker/config/schema.json",
+ "index": "/index.html",
+ "assetGroups": [
+ {
+ "name": "app",
+ "installMode": "prefetch",
+ "resources": {
+ "files": [
+ "/favicon.ico",
+ "/index.html",
+ "/manifest.webmanifest",
+ "/*.css",
+ "/*.js"
+ ]
+ }
+ },
+ {
+ "name": "assets",
+ "installMode": "lazy",
+ "updateMode": "prefetch",
+ "resources": {
+ "files": [
+ "/assets/**",
+ "/media/*.(svg|cur|jpg|jpeg|png|apng|webp|avif|gif|otf|ttf|woff|woff2)"
+ ]
+ }
+ }
+ ]
+}
diff --git a/srcANGULAR/package-lock.json b/Angular/package-lock.json
similarity index 99%
rename from srcANGULAR/package-lock.json
rename to Angular/package-lock.json
index d5f2a27c..15934ccf 100644
--- a/srcANGULAR/package-lock.json
+++ b/Angular/package-lock.json
@@ -15,7 +15,11 @@
"@angular/forms": "^18.2.9",
"@angular/platform-browser": "^18.2.9",
"@angular/platform-browser-dynamic": "^18.2.9",
+ "@angular/platform-server": "^18.2.9",
"@angular/router": "^18.2.9",
+ "@angular/service-worker": "^18.2.9",
+ "@angular/ssr": "^18.2.10",
+ "express": "^4.18.2",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.14.10"
@@ -24,7 +28,9 @@
"@angular-devkit/build-angular": "^18.2.10",
"@angular/cli": "^18.2.10",
"@angular/compiler-cli": "^18.2.9",
+ "@types/express": "^4.17.17",
"@types/jasmine": "~4.3.0",
+ "@types/node": "^18.18.0",
"jasmine-core": "~4.6.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
@@ -659,6 +665,26 @@
"@angular/platform-browser": "18.2.9"
}
},
+ "node_modules/@angular/platform-server": {
+ "version": "18.2.9",
+ "resolved": "https://registry.npmjs.org/@angular/platform-server/-/platform-server-18.2.9.tgz",
+ "integrity": "sha512-lKCFngM/xDH1et5vt5eYDCIpB9p+C1lGGcbAfrsDLnQmMxou506kOoLxW+a6KB1By8yonNFL18MsEPTDxRLtqw==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.3.0",
+ "xhr2": "^0.2.0"
+ },
+ "engines": {
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
+ },
+ "peerDependencies": {
+ "@angular/animations": "18.2.9",
+ "@angular/common": "18.2.9",
+ "@angular/compiler": "18.2.9",
+ "@angular/core": "18.2.9",
+ "@angular/platform-browser": "18.2.9"
+ }
+ },
"node_modules/@angular/router": {
"version": "18.2.9",
"resolved": "https://registry.npmjs.org/@angular/router/-/router-18.2.9.tgz",
@@ -677,6 +703,39 @@
"rxjs": "^6.5.3 || ^7.4.0"
}
},
+ "node_modules/@angular/service-worker": {
+ "version": "18.2.9",
+ "resolved": "https://registry.npmjs.org/@angular/service-worker/-/service-worker-18.2.9.tgz",
+ "integrity": "sha512-AIXp5D1zcRjUxZjJhWRjQFP5ZkCCjqOe53diiOuI0gHu8cwdGUUKeY2fwGb3XWOOgglwH0zKIk1Pqq/8dKAylQ==",
+ "license": "MIT",
+ "dependencies": {
+ "tslib": "^2.3.0"
+ },
+ "bin": {
+ "ngsw-config": "ngsw-config.js"
+ },
+ "engines": {
+ "node": "^18.19.1 || ^20.11.1 || >=22.0.0"
+ },
+ "peerDependencies": {
+ "@angular/common": "18.2.9",
+ "@angular/core": "18.2.9"
+ }
+ },
+ "node_modules/@angular/ssr": {
+ "version": "18.2.10",
+ "resolved": "https://registry.npmjs.org/@angular/ssr/-/ssr-18.2.10.tgz",
+ "integrity": "sha512-iCplUCLpOnEjMpcStNsH3LovYdGwR7qbTB5FnYwCUGk0VY8nwukB2oUO3h3jFRHtbA6BSbr5NIxdORKGhGhhoQ==",
+ "license": "MIT",
+ "dependencies": {
+ "critters": "0.0.24",
+ "tslib": "^2.3.0"
+ },
+ "peerDependencies": {
+ "@angular/common": "^18.0.0",
+ "@angular/core": "^18.0.0"
+ }
+ },
"node_modules/@babel/code-frame": {
"version": "7.26.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.26.0.tgz",
@@ -3094,6 +3153,16 @@
"node": ">=18"
}
},
+ "node_modules/@inquirer/core/node_modules/@types/node": {
+ "version": "22.8.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.1.tgz",
+ "integrity": "sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~6.19.8"
+ }
+ },
"node_modules/@inquirer/core/node_modules/signal-exit": {
"version": "4.1.0",
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
@@ -3107,6 +3176,13 @@
"url": "https://github.com/sponsors/isaacs"
}
},
+ "node_modules/@inquirer/core/node_modules/undici-types": {
+ "version": "6.19.8",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
+ "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "dev": true,
+ "license": "MIT"
+ },
"node_modules/@inquirer/core/node_modules/wrap-ansi": {
"version": "6.2.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz",
@@ -4600,13 +4676,13 @@
}
},
"node_modules/@types/node": {
- "version": "22.8.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-22.8.1.tgz",
- "integrity": "sha512-k6Gi8Yyo8EtrNtkHXutUu2corfDf9su95VYVP10aGYMMROM6SAItZi0w1XszA6RtWTHSVp5OeFof37w0IEqCQg==",
+ "version": "18.19.59",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-18.19.59.tgz",
+ "integrity": "sha512-vizm2EqwV/7Zay+A6J3tGl9Lhr7CjZe2HmWS988sefiEmsyP9CeXEleho6i4hJk/8UtZAo0bWN4QPZZr83RxvQ==",
"dev": true,
"license": "MIT",
"dependencies": {
- "undici-types": "~6.19.8"
+ "undici-types": "~5.26.4"
}
},
"node_modules/@types/node-forge": {
@@ -4907,7 +4983,6 @@
"version": "1.3.8",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz",
"integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==",
- "dev": true,
"dependencies": {
"mime-types": "~2.1.34",
"negotiator": "0.6.3"
@@ -5089,7 +5164,6 @@
"version": "4.3.0",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"color-convert": "^2.0.1"
@@ -5118,7 +5192,6 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==",
- "dev": true,
"license": "MIT"
},
"node_modules/autoprefixer": {
@@ -5303,7 +5376,6 @@
"version": "1.20.3",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.3.tgz",
"integrity": "sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g==",
- "dev": true,
"license": "MIT",
"dependencies": {
"bytes": "3.1.2",
@@ -5328,7 +5400,6 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
"dependencies": {
"ms": "2.0.0"
}
@@ -5336,8 +5407,7 @@
"node_modules/body-parser/node_modules/ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
- "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true
+ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A=="
},
"node_modules/bonjour-service": {
"version": "1.2.1",
@@ -5354,7 +5424,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==",
- "dev": true,
"license": "ISC"
},
"node_modules/brace-expansion": {
@@ -5463,7 +5532,6 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz",
"integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -5550,7 +5618,6 @@
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz",
"integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==",
- "dev": true,
"license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
@@ -5600,7 +5667,6 @@
"version": "4.1.2",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ansi-styles": "^4.1.0",
@@ -5834,7 +5900,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"color-name": "~1.1.4"
@@ -5847,7 +5912,6 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
- "dev": true,
"license": "MIT"
},
"node_modules/colorette": {
@@ -5985,7 +6049,6 @@
"version": "0.5.4",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz",
"integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"safe-buffer": "5.2.1"
@@ -5998,7 +6061,6 @@
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.5.tgz",
"integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==",
- "dev": true,
"engines": {
"node": ">= 0.6"
}
@@ -6022,7 +6084,6 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==",
- "dev": true,
"license": "MIT"
},
"node_modules/copy-anything": {
@@ -6157,7 +6218,6 @@
"version": "0.0.24",
"resolved": "https://registry.npmjs.org/critters/-/critters-0.0.24.tgz",
"integrity": "sha512-Oyqew0FGM0wYUSNqR0L6AteO5MpMoUU0rhKRieXeiKs+PmRTxiJMyaunYB2KF6fQ3dzChXKCpbFOEJx3OQ1v/Q==",
- "dev": true,
"license": "Apache-2.0",
"dependencies": {
"chalk": "^4.1.0",
@@ -6240,7 +6300,6 @@
"version": "5.1.0",
"resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz",
"integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==",
- "dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"boolbase": "^1.0.0",
@@ -6257,7 +6316,6 @@
"version": "6.1.0",
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
- "dev": true,
"license": "BSD-2-Clause",
"engines": {
"node": ">= 6"
@@ -6371,7 +6429,6 @@
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
"integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==",
- "dev": true,
"license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0",
@@ -6402,7 +6459,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz",
"integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -6411,7 +6467,6 @@
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz",
"integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==",
- "dev": true,
"engines": {
"node": ">= 0.8",
"npm": "1.2.8000 || >= 1.4.16"
@@ -6469,7 +6524,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz",
"integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"domelementtype": "^2.3.0",
@@ -6484,7 +6538,6 @@
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz",
"integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -6497,7 +6550,6 @@
"version": "5.0.3",
"resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz",
"integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==",
- "dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"domelementtype": "^2.3.0"
@@ -6513,7 +6565,6 @@
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz",
"integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==",
- "dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"dom-serializer": "^2.0.0",
@@ -6534,8 +6585,7 @@
"node_modules/ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
- "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==",
- "dev": true
+ "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow=="
},
"node_modules/electron-to-chromium": {
"version": "1.5.47",
@@ -6563,7 +6613,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -6668,7 +6717,6 @@
"version": "4.5.0",
"resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz",
"integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==",
- "dev": true,
"engines": {
"node": ">=0.12"
},
@@ -6731,7 +6779,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz",
"integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"get-intrinsic": "^1.2.4"
@@ -6744,7 +6791,6 @@
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz",
"integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -6822,8 +6868,7 @@
"node_modules/escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
- "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==",
- "dev": true
+ "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow=="
},
"node_modules/eslint-scope": {
"version": "5.1.1",
@@ -6882,7 +6927,6 @@
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -6938,7 +6982,6 @@
"version": "4.21.1",
"resolved": "https://registry.npmjs.org/express/-/express-4.21.1.tgz",
"integrity": "sha512-YSFlK1Ee0/GC8QaO91tHcDxJiE/X4FbpAyQWkxAvG6AXCuR65YzK8ua6D9hvi/TzUfZMpc+BwuM1IPw8fmQBiQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"accepts": "~1.3.8",
@@ -6981,7 +7024,6 @@
"version": "0.7.1",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.1.tgz",
"integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -6991,7 +7033,6 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -7001,7 +7042,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -7011,7 +7051,6 @@
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.3.1.tgz",
"integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
@@ -7030,14 +7069,12 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
"license": "MIT"
},
"node_modules/express/node_modules/statuses": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -7267,7 +7304,6 @@
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz",
"integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -7291,7 +7327,6 @@
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -7348,7 +7383,6 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
"integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
- "dev": true,
"funding": {
"url": "https://github.com/sponsors/ljharb"
}
@@ -7388,7 +7422,6 @@
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz",
"integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==",
- "dev": true,
"license": "MIT",
"dependencies": {
"es-errors": "^1.3.0",
@@ -7490,7 +7523,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz",
"integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"get-intrinsic": "^1.1.3"
@@ -7516,7 +7548,6 @@
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">=8"
@@ -7526,7 +7557,6 @@
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
"integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"es-define-property": "^1.0.0"
@@ -7539,7 +7569,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz",
"integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -7552,7 +7581,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz",
"integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -7565,7 +7593,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz",
"integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==",
- "dev": true,
"dependencies": {
"function-bind": "^1.1.2"
},
@@ -7666,7 +7693,6 @@
"version": "8.0.2",
"resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-8.0.2.tgz",
"integrity": "sha512-GYdjWKDkbRLkZ5geuHs5NY1puJ+PXwP7+fHPRz06Eirsb9ugf6d8kkXav6ADhcODhFFPMIXyxkxSuMf3D6NCFA==",
- "dev": true,
"funding": [
"https://github.com/fb55/htmlparser2?sponsor=1",
{
@@ -7700,7 +7726,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz",
"integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==",
- "dev": true,
"dependencies": {
"depd": "2.0.0",
"inherits": "2.0.4",
@@ -7716,7 +7741,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -7812,7 +7836,6 @@
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
- "dev": true,
"dependencies": {
"safer-buffer": ">= 2.1.2 < 3"
},
@@ -7979,8 +8002,7 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
- "dev": true
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
},
"node_modules/ini": {
"version": "4.1.3",
@@ -9257,7 +9279,6 @@
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==",
- "dev": true,
"engines": {
"node": ">= 0.6"
}
@@ -9286,7 +9307,6 @@
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.3.tgz",
"integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==",
- "dev": true,
"license": "MIT",
"funding": {
"url": "https://github.com/sponsors/sindresorhus"
@@ -9312,7 +9332,6 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.6"
@@ -9348,7 +9367,6 @@
"version": "1.52.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz",
"integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==",
- "dev": true,
"engines": {
"node": ">= 0.6"
}
@@ -9357,7 +9375,6 @@
"version": "2.1.35",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz",
"integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==",
- "dev": true,
"dependencies": {
"mime-db": "1.52.0"
},
@@ -9635,7 +9652,6 @@
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
"integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
- "dev": true,
"license": "MIT"
},
"node_modules/msgpackr": {
@@ -9699,7 +9715,6 @@
"version": "3.3.7",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -9758,7 +9773,6 @@
"version": "0.6.3",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz",
"integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==",
- "dev": true,
"engines": {
"node": ">= 0.6"
}
@@ -10111,7 +10125,6 @@
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz",
"integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==",
- "dev": true,
"license": "BSD-2-Clause",
"dependencies": {
"boolbase": "^1.0.0"
@@ -10133,7 +10146,6 @@
"version": "1.13.2",
"resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.2.tgz",
"integrity": "sha512-IRZSRuzJiynemAXPYtPe5BoI/RESNYR7TYm50MC5Mqbd3Jmw5y790sErYw3V6SryFJD64b74qQQs9wn5Bg/k3g==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.4"
@@ -10153,7 +10165,6 @@
"version": "2.4.1",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz",
"integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==",
- "dev": true,
"dependencies": {
"ee-first": "1.1.1"
},
@@ -10430,7 +10441,6 @@
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -10488,7 +10498,6 @@
"version": "0.1.10",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.10.tgz",
"integrity": "sha512-7lf7qcQidTku0Gu3YDPc8DJ1q7OOucfa/BSsIwjuh56VU7katFvuM8hULfkwB3Fns/rsVF7PwPKVw1sl5KQS9w==",
- "dev": true,
"license": "MIT"
},
"node_modules/path-type": {
@@ -10508,7 +10517,6 @@
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
- "dev": true,
"license": "ISC"
},
"node_modules/picomatch": {
@@ -10632,7 +10640,6 @@
"version": "8.4.41",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.41.tgz",
"integrity": "sha512-TesUflQ0WKZqAvg52PWL6kHgLKP6xB6heTOdoYM0Wt2UHyxNa4K25EZZMgKns3BH1RLVbZCREPpLY0rhnNoHVQ==",
- "dev": true,
"funding": [
{
"type": "opencollective",
@@ -10692,7 +10699,6 @@
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz",
"integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==",
- "dev": true,
"license": "MIT"
},
"node_modules/postcss-modules-extract-imports": {
@@ -10821,7 +10827,6 @@
"version": "2.0.7",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz",
"integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"forwarded": "0.2.0",
@@ -10835,7 +10840,6 @@
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.10"
@@ -10870,7 +10874,6 @@
"version": "6.13.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.13.0.tgz",
"integrity": "sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==",
- "dev": true,
"license": "BSD-3-Clause",
"dependencies": {
"side-channel": "^1.0.6"
@@ -10916,7 +10919,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==",
- "dev": true,
"engines": {
"node": ">= 0.6"
}
@@ -10925,7 +10927,6 @@
"version": "2.5.2",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz",
"integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==",
- "dev": true,
"dependencies": {
"bytes": "3.1.2",
"http-errors": "2.0.0",
@@ -11284,7 +11285,6 @@
"version": "5.2.1",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
"integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
- "dev": true,
"funding": [
{
"type": "github",
@@ -11303,8 +11303,7 @@
"node_modules/safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
- "dev": true
+ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"node_modules/sass": {
"version": "1.77.6",
@@ -11449,7 +11448,6 @@
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz",
"integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"debug": "2.6.9",
@@ -11474,7 +11472,6 @@
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"ms": "2.0.0"
@@ -11484,14 +11481,12 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==",
- "dev": true,
"license": "MIT"
},
"node_modules/send/node_modules/mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==",
- "dev": true,
"license": "MIT",
"bin": {
"mime": "cli.js"
@@ -11504,7 +11499,6 @@
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz",
"integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -11600,7 +11594,6 @@
"version": "1.16.2",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz",
"integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"encodeurl": "~2.0.0",
@@ -11616,7 +11609,6 @@
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz",
"integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==",
- "dev": true,
"license": "MIT",
"engines": {
"node": ">= 0.8"
@@ -11626,7 +11618,6 @@
"version": "1.2.2",
"resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.2.tgz",
"integrity": "sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==",
- "dev": true,
"license": "MIT",
"dependencies": {
"define-data-property": "^1.1.4",
@@ -11643,8 +11634,7 @@
"node_modules/setprototypeof": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz",
- "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==",
- "dev": true
+ "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw=="
},
"node_modules/shallow-clone": {
"version": "3.0.1",
@@ -11696,7 +11686,6 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz",
"integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==",
- "dev": true,
"license": "MIT",
"dependencies": {
"call-bind": "^1.0.7",
@@ -11920,7 +11909,6 @@
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
- "dev": true,
"license": "BSD-3-Clause",
"engines": {
"node": ">=0.10.0"
@@ -12167,7 +12155,6 @@
"version": "7.2.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
- "dev": true,
"license": "MIT",
"dependencies": {
"has-flag": "^4.0.0"
@@ -12432,7 +12419,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz",
"integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==",
- "dev": true,
"engines": {
"node": ">=0.6"
}
@@ -12501,7 +12487,6 @@
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
- "dev": true,
"dependencies": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
@@ -12553,9 +12538,9 @@
}
},
"node_modules/undici-types": {
- "version": "6.19.8",
- "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz",
- "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==",
+ "version": "5.26.5",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-5.26.5.tgz",
+ "integrity": "sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==",
"dev": true,
"license": "MIT"
},
@@ -12655,7 +12640,6 @@
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -12710,7 +12694,6 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==",
- "dev": true,
"engines": {
"node": ">= 0.4.0"
}
@@ -12750,7 +12733,6 @@
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==",
- "dev": true,
"engines": {
"node": ">= 0.8"
}
@@ -13750,6 +13732,15 @@
}
}
},
+ "node_modules/xhr2": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.2.1.tgz",
+ "integrity": "sha512-sID0rrVCqkVNUn8t6xuv9+6FViXjUVXq8H5rWOH2rz9fDNQEd4g0EA2XlcEdJXRz5BMEn4O1pJFdT+z4YHhoWw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
"node_modules/y18n": {
"version": "5.0.8",
"resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
diff --git a/srcANGULAR/package.json b/Angular/package.json
similarity index 64%
rename from srcANGULAR/package.json
rename to Angular/package.json
index 80b4d604..c92a0195 100644
--- a/srcANGULAR/package.json
+++ b/Angular/package.json
@@ -3,10 +3,11 @@
"version": "0.0.0",
"scripts": {
"ng": "ng",
- "start": "ng serve",
- "build": "ng build",
- "watch": "ng build --watch --configuration development",
- "test": "ng test"
+ "start": "clear && ng serve",
+ "build": "clear && ng build",
+ "watch": "clear && ng build --watch --configuration development",
+ "test": "clear && ng test --no-watch --code-coverage --browsers ChromeHeadless",
+ "serve:ssr:app": "node dist/app/server/server.mjs"
},
"private": true,
"dependencies": {
@@ -17,7 +18,11 @@
"@angular/forms": "^18.2.9",
"@angular/platform-browser": "^18.2.9",
"@angular/platform-browser-dynamic": "^18.2.9",
+ "@angular/platform-server": "^18.2.9",
"@angular/router": "^18.2.9",
+ "@angular/service-worker": "^18.2.9",
+ "@angular/ssr": "^18.2.10",
+ "express": "^4.18.2",
"rxjs": "~7.8.0",
"tslib": "^2.3.0",
"zone.js": "~0.14.10"
@@ -26,7 +31,9 @@
"@angular-devkit/build-angular": "^18.2.10",
"@angular/cli": "^18.2.10",
"@angular/compiler-cli": "^18.2.9",
+ "@types/express": "^4.17.17",
"@types/jasmine": "~4.3.0",
+ "@types/node": "^18.18.0",
"jasmine-core": "~4.6.0",
"karma": "~6.4.0",
"karma-chrome-launcher": "~3.2.0",
@@ -35,4 +42,4 @@
"karma-jasmine-html-reporter": "~2.1.0",
"typescript": "~5.4.2"
}
-}
\ No newline at end of file
+}
diff --git a/Angular/prerender-routes.txt b/Angular/prerender-routes.txt
new file mode 100644
index 00000000..96f392d2
--- /dev/null
+++ b/Angular/prerender-routes.txt
@@ -0,0 +1,3 @@
+/
+/en
+/404
diff --git a/Angular/server.ts b/Angular/server.ts
new file mode 100644
index 00000000..544b283d
--- /dev/null
+++ b/Angular/server.ts
@@ -0,0 +1,65 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
+import { APP_BASE_HREF } from '@angular/common';
+import { CommonEngine } from '@angular/ssr';
+import express from 'express';
+import { fileURLToPath } from 'node:url';
+import { dirname, join, resolve } from 'node:path';
+import AppServerModule from './main.server';
+
+
+
+
+// The Express app is exported so that it can be used by serverless Functions.
+export function app(): express.Express {
+ const server = express();
+ const serverDistFolder = dirname(fileURLToPath(import.meta.url));
+ const browserDistFolder = resolve(serverDistFolder, '../browser');
+ const indexHtml = join(serverDistFolder, 'index.server.html');
+ const commonEngine = new CommonEngine();
+
+
+ server.set('view engine', 'html');
+ server.set('views', browserDistFolder);
+ // Example Express Rest API endpoints
+ // server.get('/api/**', (req, res) => { });
+ // Serve static files from /browser
+ server.get('**', express.static(browserDistFolder, {
+ maxAge: '1y',
+ index: 'index.html',
+ }));
+
+
+ // All regular routes use the Angular engine
+ server.get('**', (req, res, next) => {
+ const { protocol, originalUrl, baseUrl, headers } = req;
+
+ commonEngine
+ .render({
+ bootstrap: AppServerModule,
+ documentFilePath: indexHtml,
+ url: `${protocol}://${headers.host}${originalUrl}`,
+ publicPath: browserDistFolder,
+ providers: [{ provide: APP_BASE_HREF, useValue: baseUrl }],
+ })
+ .then((html) => res.send(html))
+ .catch((err) => next(err));
+ });
+
+ return server;
+}
+
+
+
+
+function run(): void {
+ const port = process.env['PORT'] || 4000;
+
+ // Start up the Node server
+ const server = app();
+ server.listen(port, () => {
+ console.log(`Node Express server listening on http://localhost:${port}`);
+ });
+}
+run();
diff --git a/srcANGULAR/src/services/sample/Entity.ts b/Angular/services/Entity/Entity.ts
similarity index 76%
rename from srcANGULAR/src/services/sample/Entity.ts
rename to Angular/services/Entity/Entity.ts
index 1cde3fe0..f9af7d25 100644
--- a/srcANGULAR/src/services/sample/Entity.ts
+++ b/Angular/services/Entity/Entity.ts
@@ -1,4 +1,6 @@
-// [ COPYRIGHT CLASE HERE ]
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
import { Injectable } from '@angular/core';
diff --git a/srcANGULAR/src/services/sample/Greeter.spec.ts b/Angular/services/Greeter/Greeter.spec.ts
similarity index 92%
rename from srcANGULAR/src/services/sample/Greeter.spec.ts
rename to Angular/services/Greeter/Greeter.spec.ts
index c32f5d26..c4334658 100644
--- a/srcANGULAR/src/services/sample/Greeter.spec.ts
+++ b/Angular/services/Greeter/Greeter.spec.ts
@@ -1,6 +1,9 @@
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
import { TestBed } from '@angular/core/testing';
-import { Greeter } from 'src/services/sample/Greeter';
+import { Greeter } from './Greeter';
diff --git a/srcANGULAR/src/services/sample/Greeter.ts b/Angular/services/Greeter/Greeter.ts
similarity index 91%
rename from srcANGULAR/src/services/sample/Greeter.ts
rename to Angular/services/Greeter/Greeter.ts
index 281deedc..3dcf3106 100644
--- a/srcANGULAR/src/services/sample/Greeter.ts
+++ b/Angular/services/Greeter/Greeter.ts
@@ -1,4 +1,6 @@
-// [ COPYRIGHT CLASE HERE ]
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
import { Injectable } from '@angular/core';
diff --git a/srcANGULAR/src/services/sample/Location.ts b/Angular/services/Location/Location.ts
similarity index 81%
rename from srcANGULAR/src/services/sample/Location.ts
rename to Angular/services/Location/Location.ts
index 1bc24c3a..344620d8 100644
--- a/srcANGULAR/src/services/sample/Location.ts
+++ b/Angular/services/Location/Location.ts
@@ -1,4 +1,6 @@
-// [ COPYRIGHT CLASE HERE ]
+/*
+ * COPYRIGHT LICENSE NOTICE HERE
+ */
import { Injectable } from '@angular/core';
diff --git a/srcANGULAR/tsconfig.app.json b/Angular/tsconfig.app.json
similarity index 60%
rename from srcANGULAR/tsconfig.app.json
rename to Angular/tsconfig.app.json
index 374cc9d2..ad3b0093 100644
--- a/srcANGULAR/tsconfig.app.json
+++ b/Angular/tsconfig.app.json
@@ -3,12 +3,17 @@
"extends": "./tsconfig.json",
"compilerOptions": {
"outDir": "./out-tsc/app",
- "types": []
+ "types": [
+ "node"
+ ]
},
"files": [
- "src/main.ts"
+ "main.ts",
+ "main.server.ts",
+ "server.ts"
],
"include": [
- "src/**/*.d.ts"
+ "contents/**/*.d.ts",
+ "services/**/*.d.ts"
]
}
diff --git a/srcANGULAR/tsconfig.json b/Angular/tsconfig.json
similarity index 100%
rename from srcANGULAR/tsconfig.json
rename to Angular/tsconfig.json
diff --git a/srcANGULAR/tsconfig.spec.json b/Angular/tsconfig.spec.json
similarity index 67%
rename from srcANGULAR/tsconfig.spec.json
rename to Angular/tsconfig.spec.json
index c939db86..51af0741 100644
--- a/srcANGULAR/tsconfig.spec.json
+++ b/Angular/tsconfig.spec.json
@@ -8,7 +8,9 @@
]
},
"include": [
- "**/**/*.spec.ts",
- "**/**/*.d.ts"
+ "contents/**/*.spec.ts",
+ "contents/**/*.d.ts",
+ "services/**/*.spec.ts",
+ "services/**/*.d.ts"
]
}
diff --git a/CONFIG.toml b/CONFIG.toml
index db20562f..a74fb409 100644
--- a/CONFIG.toml
+++ b/CONFIG.toml
@@ -230,7 +230,7 @@ AUTOMATACI_LANG = ''
# shall notify the CI provider to setup a localized virtual environment for
# development automatically.
#
-# To enable it: simply supply the path (e.g. default is 'srcANGULAR').
+# To enable it: simply supply the path (e.g. 'Angular' for 'Angular/').
# To disable it: simply supply an empty path (e.g. default is '').
PROJECT_ANGULAR = ''
diff --git a/srcANGULAR/README.md b/srcANGULAR/README.md
deleted file mode 100644
index c3675866..00000000
--- a/srcANGULAR/README.md
+++ /dev/null
@@ -1,27 +0,0 @@
-# App
-
-This project was generated with [Angular CLI](https://github.com/angular/angular-cli) version 16.2.6.
-
-## Development server
-
-Run `ng serve` for a dev server. Navigate to `http://localhost:4200/`. The application will automatically reload if you change any of the source files.
-
-## Code scaffolding
-
-Run `ng generate component component-name` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module`.
-
-## Build
-
-Run `ng build` to build the project. The build artifacts will be stored in the `dist/` directory.
-
-## Running unit tests
-
-Run `ng test` to execute the unit tests via [Karma](https://karma-runner.github.io).
-
-## Running end-to-end tests
-
-Run `ng e2e` to execute the end-to-end tests via a platform of your choice. To use this command, you need to first add a package that implements end-to-end testing capabilities.
-
-## Further help
-
-To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
diff --git a/srcANGULAR/src/assets/.gitkeep b/srcANGULAR/src/assets/.gitkeep
deleted file mode 100644
index e69de29b..00000000
diff --git a/srcANGULAR/src/favicon.ico b/srcANGULAR/src/favicon.ico
deleted file mode 100644
index 997406ad..00000000
Binary files a/srcANGULAR/src/favicon.ico and /dev/null differ
diff --git a/srcANGULAR/src/index.html b/srcANGULAR/src/index.html
deleted file mode 100644
index 822ed94b..00000000
--- a/srcANGULAR/src/index.html
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- App
-
-
-
-
-
-
-
-
diff --git a/srcANGULAR/src/main.ts b/srcANGULAR/src/main.ts
deleted file mode 100644
index cd9c9133..00000000
--- a/srcANGULAR/src/main.ts
+++ /dev/null
@@ -1,9 +0,0 @@
-import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
-
-import { AppModule } from './module';
-
-
-
-
-platformBrowserDynamic().bootstrapModule(AppModule)
- .catch(err => console.error(err));
diff --git a/srcANGULAR/src/module.ts b/srcANGULAR/src/module.ts
deleted file mode 100644
index 2102197c..00000000
--- a/srcANGULAR/src/module.ts
+++ /dev/null
@@ -1,18 +0,0 @@
-import { NgModule } from '@angular/core';
-import { BrowserModule } from '@angular/platform-browser';
-
-import { AppRoutingModule } from './routing';
-import { LandingPageComponent } from './pages/landing/content.component';
-
-@NgModule({
- declarations: [
- LandingPageComponent
- ],
- imports: [
- BrowserModule,
- AppRoutingModule
- ],
- providers: [],
- bootstrap: [LandingPageComponent]
-})
-export class AppModule { }
diff --git a/srcANGULAR/src/pages/landing/content.component.css b/srcANGULAR/src/pages/landing/content.component.css
deleted file mode 100644
index e69de29b..00000000
diff --git a/srcANGULAR/src/pages/landing/content.component.html b/srcANGULAR/src/pages/landing/content.component.html
deleted file mode 100644
index e1c9e749..00000000
--- a/srcANGULAR/src/pages/landing/content.component.html
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
diff --git a/srcANGULAR/src/pages/landing/content.component.spec.ts b/srcANGULAR/src/pages/landing/content.component.spec.ts
deleted file mode 100644
index 0c777cc5..00000000
--- a/srcANGULAR/src/pages/landing/content.component.spec.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-import { TestBed } from '@angular/core/testing';
-import { RouterTestingModule } from '@angular/router/testing';
-import { LandingPageComponent } from './content.component';
-
-
-
-
-describe('LandingPageComponent', () => {
- beforeEach(() => TestBed.configureTestingModule({
- imports: [RouterTestingModule],
- declarations: [LandingPageComponent]
- }));
-
- it('should create the app', () => {
- const fixture = TestBed.createComponent(LandingPageComponent);
- const app = fixture.componentInstance;
- expect(app).toBeTruthy();
- });
-});
diff --git a/srcANGULAR/src/pages/landing/content.component.ts b/srcANGULAR/src/pages/landing/content.component.ts
deleted file mode 100644
index 465ed448..00000000
--- a/srcANGULAR/src/pages/landing/content.component.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Component } from '@angular/core';
-
-import { Greeter } from 'src/services/sample/Greeter';
-import { Entity } from 'src/services/sample/Entity';
-import { Location } from 'src/services/sample/Location';
-
-
-
-
-@Component({
- selector: 'app-root',
- templateUrl: './content.component.html',
- styleUrls: ['./content.component.css']
-})
-export class LandingPageComponent {
- statement: string = '';
-
-
- constructor() {
- let greeter = new Greeter();
- let location = new Location();
- let entity = new Entity();
-
- this.statement = greeter.Process(entity.Name, location.Name);
- }
-}
diff --git a/srcANGULAR/src/routing.ts b/srcANGULAR/src/routing.ts
deleted file mode 100644
index 346b2b3b..00000000
--- a/srcANGULAR/src/routing.ts
+++ /dev/null
@@ -1,11 +0,0 @@
-import { NgModule } from '@angular/core';
-import { RouterModule, Routes } from '@angular/router';
-
-const routes: Routes = [];
-
-@NgModule({
- imports: [RouterModule.forRoot(routes)],
- exports: [RouterModule]
-})
-
-export class AppRoutingModule { }
diff --git a/srcANGULAR/src/styles.css b/srcANGULAR/src/styles.css
deleted file mode 100644
index 90d4ee00..00000000
--- a/srcANGULAR/src/styles.css
+++ /dev/null
@@ -1 +0,0 @@
-/* You can add global styles to this file, and also import other style files */