From afb5f3a287d996dbb8d4a27e7464a0c3d6576723 Mon Sep 17 00:00:00 2001 From: Patrick Alvin Alcala Date: Thu, 20 Nov 2025 13:03:40 +0800 Subject: [PATCH] Updated --- .env.dev | 6 - .prettierrc.yml | 6 - app.config.ts | 3 - .editorconfig => frontend/.editorconfig | 0 .gitignore => frontend/.gitignore | 0 README.md => frontend/README.md | 0 frontend/app.config.ts | 11 ++ frontend/biome.json | 42 ++++ frontend/configs/config.api.ts | 3 + frontend/configs/config.security.ts | 20 ++ frontend/configs/config.site.ts | 8 + package.json => frontend/package.json | 8 +- pnpm-lock.yaml => frontend/pnpm-lock.yaml | 180 +++++++++++++++++- {public => frontend/public}/favicon.ico | Bin frontend/src/@dasig/api/functions/getApi.ts | 23 +++ frontend/src/@dasig/api/functions/postApi.ts | 35 ++++ frontend/src/@dasig/api/index.ts | 2 + frontend/src/@dasig/components/Background.tsx | 50 +++++ frontend/src/@dasig/components/Box.tsx | 19 ++ frontend/src/@dasig/components/Button.tsx | 83 ++++++++ .../src/@dasig}/components/Column.tsx | 0 .../src/@dasig}/components/HTML.tsx | 8 +- .../src/@dasig}/components/Page.tsx | 6 +- .../src/@dasig}/images/background.avif | Bin .../src/@dasig}/images/background.webp | Bin .../src/@dasig}/images/logo.avif | Bin .../src/@dasig}/images/logo.webp | Bin .../src/@dasig}/images/no-background.webp | Bin .../src/@dasig}/images/pat-alcala.avif | Bin .../src/@dasig}/images/pat-alcala.webp | Bin .../src/@dasig}/images/sample.avif | Bin .../src/@dasig}/images/sample.webp | Bin {src/_dasig => frontend/src/@dasig}/index.ts | 0 .../@dasig/scripts/functions/encryptRsa.ts | 13 ++ frontend/src/@dasig/scripts/index.ts | 1 + .../src/@dasig}/styles/Background.sass | 0 .../src/@dasig}/styles/Box.sass | 0 .../src/@dasig}/styles/Button.sass | 0 .../src/@dasig}/styles/Column.sass | 0 .../src/@dasig}/styles/Footer.sass | 0 .../src/@dasig}/styles/Form.sass | 0 .../src/@dasig}/styles/HTML.sass | 0 .../src/@dasig}/styles/Input.sass | 0 .../src/@dasig}/styles/Link.sass | 0 .../src/@dasig}/styles/Modal.sass | 0 .../src/@dasig}/styles/Navbar.sass | 0 .../src/@dasig}/styles/Page.sass | 0 .../src/@dasig}/styles/Row.sass | 0 .../src/@dasig}/styles/Viewport.sass | 0 {src => frontend/src}/app.tsx | 17 +- .../src}/components/Counter/Counter.sass | 0 .../src}/components/Counter/Counter.tsx | 0 {src => frontend/src}/entry-client.tsx | 0 frontend/src/entry-server.tsx | 23 +++ {src => frontend/src}/global.d.ts | 0 {src => frontend/src}/routes/[...404].tsx | 0 {src => frontend/src}/routes/about.tsx | 0 frontend/src/routes/index.sass | 4 + {src => frontend/src}/routes/index.tsx | 9 +- {src => frontend/src/styles}/app.sass | 7 +- {src => frontend/src}/styles/breakpoint.sass | 4 +- {src => frontend/src}/styles/fonts.sass | 0 .../src/styles/global.sass | 2 +- {src => frontend/src}/styles/variables.sass | 2 +- tsconfig.json => frontend/tsconfig.json | 0 src/entry-server.tsx | 12 -- 66 files changed, 550 insertions(+), 57 deletions(-) delete mode 100644 .env.dev delete mode 100644 .prettierrc.yml delete mode 100644 app.config.ts rename .editorconfig => frontend/.editorconfig (100%) rename .gitignore => frontend/.gitignore (100%) rename README.md => frontend/README.md (100%) create mode 100644 frontend/app.config.ts create mode 100644 frontend/biome.json create mode 100644 frontend/configs/config.api.ts create mode 100644 frontend/configs/config.security.ts create mode 100644 frontend/configs/config.site.ts rename package.json => frontend/package.json (72%) rename pnpm-lock.yaml => frontend/pnpm-lock.yaml (96%) rename {public => frontend/public}/favicon.ico (100%) create mode 100644 frontend/src/@dasig/api/functions/getApi.ts create mode 100644 frontend/src/@dasig/api/functions/postApi.ts create mode 100644 frontend/src/@dasig/api/index.ts create mode 100644 frontend/src/@dasig/components/Background.tsx create mode 100644 frontend/src/@dasig/components/Box.tsx create mode 100644 frontend/src/@dasig/components/Button.tsx rename {src/_dasig => frontend/src/@dasig}/components/Column.tsx (100%) rename {src/_dasig => frontend/src/@dasig}/components/HTML.tsx (87%) rename {src/_dasig => frontend/src/@dasig}/components/Page.tsx (57%) rename {src/_dasig => frontend/src/@dasig}/images/background.avif (100%) rename {src/_dasig => frontend/src/@dasig}/images/background.webp (100%) rename {src/_dasig => frontend/src/@dasig}/images/logo.avif (100%) rename {src/_dasig => frontend/src/@dasig}/images/logo.webp (100%) rename {src/_dasig => frontend/src/@dasig}/images/no-background.webp (100%) rename {src/_dasig => frontend/src/@dasig}/images/pat-alcala.avif (100%) rename {src/_dasig => frontend/src/@dasig}/images/pat-alcala.webp (100%) rename {src/_dasig => frontend/src/@dasig}/images/sample.avif (100%) rename {src/_dasig => frontend/src/@dasig}/images/sample.webp (100%) rename {src/_dasig => frontend/src/@dasig}/index.ts (100%) create mode 100644 frontend/src/@dasig/scripts/functions/encryptRsa.ts create mode 100644 frontend/src/@dasig/scripts/index.ts rename {src/_dasig => frontend/src/@dasig}/styles/Background.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Box.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Button.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Column.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Footer.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Form.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/HTML.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Input.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Link.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Modal.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Navbar.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Page.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Row.sass (100%) rename {src/_dasig => frontend/src/@dasig}/styles/Viewport.sass (100%) rename {src => frontend/src}/app.tsx (51%) rename {src => frontend/src}/components/Counter/Counter.sass (100%) rename {src => frontend/src}/components/Counter/Counter.tsx (100%) rename {src => frontend/src}/entry-client.tsx (100%) create mode 100644 frontend/src/entry-server.tsx rename {src => frontend/src}/global.d.ts (100%) rename {src => frontend/src}/routes/[...404].tsx (100%) rename {src => frontend/src}/routes/about.tsx (100%) create mode 100644 frontend/src/routes/index.sass rename {src => frontend/src}/routes/index.tsx (57%) rename {src => frontend/src/styles}/app.sass (80%) rename {src => frontend/src}/styles/breakpoint.sass (94%) rename {src => frontend/src}/styles/fonts.sass (100%) rename src/styles/classes.sass => frontend/src/styles/global.sass (90%) rename {src => frontend/src}/styles/variables.sass (91%) rename tsconfig.json => frontend/tsconfig.json (100%) delete mode 100644 src/entry-server.tsx diff --git a/.env.dev b/.env.dev deleted file mode 100644 index c0b15f6..0000000 --- a/.env.dev +++ /dev/null @@ -1,6 +0,0 @@ -WEBSITE_NAME="Dasig Solid" -WEBSITE_DESCRIPTION="A template for next level speed (Solid Version)" -AUTHOR="Patrick Alvin Alcala" - -FONT="inter" - diff --git a/.prettierrc.yml b/.prettierrc.yml deleted file mode 100644 index 9f7e97c..0000000 --- a/.prettierrc.yml +++ /dev/null @@ -1,6 +0,0 @@ -semi: false -singleQuote: true -trailingComma: 'es5' -bracketSpacing: true -printWidth: 500 -proseWrap: 'preserve' diff --git a/app.config.ts b/app.config.ts deleted file mode 100644 index de7f831..0000000 --- a/app.config.ts +++ /dev/null @@ -1,3 +0,0 @@ -import { defineConfig } from "@solidjs/start/config"; - -export default defineConfig({}); diff --git a/.editorconfig b/frontend/.editorconfig similarity index 100% rename from .editorconfig rename to frontend/.editorconfig diff --git a/.gitignore b/frontend/.gitignore similarity index 100% rename from .gitignore rename to frontend/.gitignore diff --git a/README.md b/frontend/README.md similarity index 100% rename from README.md rename to frontend/README.md diff --git a/frontend/app.config.ts b/frontend/app.config.ts new file mode 100644 index 0000000..da0289f --- /dev/null +++ b/frontend/app.config.ts @@ -0,0 +1,11 @@ +import { defineConfig } from '@solidjs/start/config' + +export default defineConfig({ + ssr: false, + server: { + static: true, + prerender: { + crawlLinks: true, + }, + }, +}) diff --git a/frontend/biome.json b/frontend/biome.json new file mode 100644 index 0000000..e6174f5 --- /dev/null +++ b/frontend/biome.json @@ -0,0 +1,42 @@ +{ + "$schema": "https://biomejs.dev/schemas/2.3.6/schema.json", + "vcs": { "enabled": true, "clientKind": "git", "useIgnoreFile": true }, + "files": { "ignoreUnknown": false }, + "formatter": { + "enabled": true, + "formatWithErrors": false, + "indentStyle": "space", + "indentWidth": 2, + "lineEnding": "lf", + "lineWidth": 320, + "attributePosition": "auto", + "bracketSameLine": false, + "bracketSpacing": true, + "expand": "auto", + "useEditorconfig": true + }, + "linter": { "enabled": true, "rules": { "recommended": true } }, + "javascript": { + "formatter": { + "jsxQuoteStyle": "double", + "quoteProperties": "asNeeded", + "trailingCommas": "es5", + "semicolons": "asNeeded", + "arrowParentheses": "always", + "bracketSameLine": false, + "quoteStyle": "single", + "attributePosition": "auto", + "bracketSpacing": true + } + }, + "html": { + "formatter": { + "indentScriptAndStyle": false, + "selfCloseVoidElements": "always" + } + }, + "assist": { + "enabled": true, + "actions": { "source": { "organizeImports": "on" } } + } +} diff --git a/frontend/configs/config.api.ts b/frontend/configs/config.api.ts new file mode 100644 index 0000000..b8d8861 --- /dev/null +++ b/frontend/configs/config.api.ts @@ -0,0 +1,3 @@ +import { atom } from 'nanostores' + +export const $backendUrl = atom('http://localhost:8080') diff --git a/frontend/configs/config.security.ts b/frontend/configs/config.security.ts new file mode 100644 index 0000000..2e5e577 --- /dev/null +++ b/frontend/configs/config.security.ts @@ -0,0 +1,20 @@ +import { atom } from 'nanostores' + +export const $tokenName = atom('dasig') // output: dasig-token +export const $tokenEncryption = atom<'rsa'>('rsa') +export const $tokenExpiration = atom(9) // expires in 9 seconds + +export const $rsaPublicKey = atom(`-----BEGIN PUBLIC KEY----- +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA9Aw5Zasdanf2biS69qoQ +/YZbyIM+LS7LOLNN3ot6nZH1FiTqTNy61ffUA2Y/s3hGz9L0+k6gRu7uGBza6XPU ++iuGdXxZd2mc3lrnPfR6SSllMwGlAVkYpQhmkB19igd8aLUbFiJ3pPKkNocv/yQa +ERQ2tXtSxAoEQ9hg4wPgXkuW5PF+yEk9/+eN6tB36lHu9Im44GG18xKkU+VcdsXc +DJVgEpcr1FtJL6uLI+VXc4peZmOdsBN7/MS3Rjb2Ib9TrOADE5qodSc+T8D6GoGH +MOWQGKY6dmfo9cnY3tJ23FfKy9jFOIIrTIdz2ncRaOfxX1oIiTVy4pGG+GxZn5aQ +z+IW8hmSj/oOcrGKr6T6lmKxxxYqBWgvQWef0O0anGfa2y5CTpqdPQ8KEoF2zxPD +EnvcIQiCUmXwML4x18XItY/d60nEn/pxn7a9J9hb3Lxjy94ZXuOgHvqL3XRC9xg+ +HvEuAHzUBr+GJM9w4/LF1mQSsmblB8q5S7qNaminYAw6wm35lRy7ZlIbJQlj/EyL +lCKWBbUEHkjzRFCoun9VVUc0guQTsTbchPD7Rgzg3SBK3Gws39n12WQPc7jKto0H +N39sJnNzllXw41gKRy9b2uYuaVYaQ0sjrFJ8ITuyO9NDDaEdeBqBBTtbRp2i0O4K +tvT2kItEEnVzjNutUatVOWcCAwEAAQ== +-----END PUBLIC KEY-----`) diff --git a/frontend/configs/config.site.ts b/frontend/configs/config.site.ts new file mode 100644 index 0000000..d6386fe --- /dev/null +++ b/frontend/configs/config.site.ts @@ -0,0 +1,8 @@ +import { atom } from 'nanostores' + +export const $websiteName = atom('Dasig Solid') +export const $websiteDescription = atom('A template for next level speed (Solid Version)') +export const $font = atom('inter') + +export const $yourName = atom('Pat Alcala') +export const $copyRightYear = atom(2025) diff --git a/package.json b/frontend/package.json similarity index 72% rename from package.json rename to frontend/package.json index 5c3465d..37f5b8b 100644 --- a/package.json +++ b/frontend/package.json @@ -1,5 +1,5 @@ { - "name": "example-basic", + "name": "dasig-solid", "type": "module", "scripts": { "dev": "vinxi dev", @@ -8,10 +8,16 @@ "version": "vinxi version" }, "dependencies": { + "@dotenvx/dotenvx": "^1.51.1", "@solidjs/meta": "^0.29.4", "@solidjs/router": "^0.15.0", "@solidjs/start": "^1.1.0", + "dayjs": "^1.11.19", "dotenv": "^17.2.3", + "eciesjs": "^0.4.16", + "jsencrypt": "^3.5.4", + "nanostores": "^1.1.0", + "ofetch": "^1.5.1", "solid-icons": "^1.1.0", "solid-js": "^1.9.5", "vinxi": "^0.5.7" diff --git a/pnpm-lock.yaml b/frontend/pnpm-lock.yaml similarity index 96% rename from pnpm-lock.yaml rename to frontend/pnpm-lock.yaml index 5d785ba..f2c1bb9 100644 --- a/pnpm-lock.yaml +++ b/frontend/pnpm-lock.yaml @@ -8,6 +8,9 @@ importers: .: dependencies: + '@dotenvx/dotenvx': + specifier: ^1.51.1 + version: 1.51.1 '@solidjs/meta': specifier: ^0.29.4 version: 0.29.4(solid-js@1.9.9) @@ -17,9 +20,24 @@ importers: '@solidjs/start': specifier: ^1.1.0 version: 1.2.0(solid-js@1.9.9)(vinxi@0.5.8(@types/node@24.7.2)(db0@0.3.4)(ioredis@5.8.1)(jiti@2.6.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0))(vite@6.4.0(@types/node@24.7.2)(jiti@2.6.1)(sass-embedded@1.93.2)(sass@1.93.2)(terser@5.44.0)) + dayjs: + specifier: ^1.11.19 + version: 1.11.19 dotenv: specifier: ^17.2.3 version: 17.2.3 + eciesjs: + specifier: ^0.4.16 + version: 0.4.16 + jsencrypt: + specifier: ^3.5.4 + version: 3.5.4 + nanostores: + specifier: ^1.1.0 + version: 1.1.0 + ofetch: + specifier: ^1.5.1 + version: 1.5.1 solid-icons: specifier: ^1.1.0 version: 1.1.0(solid-js@1.9.9) @@ -189,6 +207,16 @@ packages: '@deno/shim-deno@0.19.2': resolution: {integrity: sha512-q3VTHl44ad8T2Tw2SpeAvghdGOjlnLPDNO2cpOxwMrBE/PVas6geWpbpIgrM+czOCH0yejp0yi8OaTuB+NU40Q==} + '@dotenvx/dotenvx@1.51.1': + resolution: {integrity: sha512-fqcQxcxC4LOaUlW8IkyWw8x0yirlLUkbxohz9OnWvVWjf73J5yyw7jxWnkOJaUKXZotcGEScDox9MU6rSkcDgg==} + hasBin: true + + '@ecies/ciphers@0.2.5': + resolution: {integrity: sha512-GalEZH4JgOMHYYcYmVqnFirFsjZHeoGMDt9IxEnM9F7GRUUyUksJ7Ou53L83WHJq3RWKD3AcBpo0iQh0oMpf8A==} + engines: {bun: '>=1', deno: '>=2', node: '>=16'} + peerDependencies: + '@noble/ciphers': ^1.0.0 + '@esbuild/aix-ppc64@0.25.11': resolution: {integrity: sha512-Xt1dOL13m8u0WE8iplx9Ibbm+hFAO0GsU2P34UNoDGvZYkY8ifSiy6Zuc1lYxfG7svWE2fzqCUmFp5HCn51gJg==} engines: {node: '>=18'} @@ -380,6 +408,18 @@ packages: engines: {node: '>=18'} hasBin: true + '@noble/ciphers@1.3.0': + resolution: {integrity: sha512-2I0gnIVPtfnMw9ee9h1dJG7tp81+8Ob3OJb3Mv37rx5L40/b0i7djjCVvGOVqc9AEIQyvyu1i6ypKdFw8R8gQw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/curves@1.9.7': + resolution: {integrity: sha512-gbKGcRUYIjA3/zCCNaWDciTMFI0dCkvou3TL8Zmy5Nc7sJ47a0jtOeZoTaMxkuqRo9cRhjOdZJXegxYE5FN/xw==} + engines: {node: ^14.21.3 || >=16} + + '@noble/hashes@1.8.0': + resolution: {integrity: sha512-jCs9ldd7NwzpgXDIf6P3+NrHh9/sD6CQdxHyjQI+h/6rDNo88ypBxxz45UDuZHz9r3tNz7N/VInSVoVdtXEI4A==} + engines: {node: ^14.21.3 || >=16} + '@nodelib/fs.scandir@2.1.5': resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} @@ -1028,6 +1068,10 @@ packages: comma-separated-tokens@2.0.3: resolution: {integrity: sha512-Fu4hJdvzeylCfQPp9SGWidpzrMs7tTrlu6Vb8XGaRGck8QSNZJJp538Wrb60Lax4fPwR64ViY468OIUTbRlGZg==} + commander@11.1.0: + resolution: {integrity: sha512-yPVavfyCcRhmorC7rWlkHn15b4wDVgVmBA7kV4QVBsF7kv/9TKJAbAXVTxvTnwP8HHKjRCJDClKbciiYS7p0DQ==} + engines: {node: '>=16'} + commander@2.20.3: resolution: {integrity: sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==} @@ -1093,6 +1137,9 @@ packages: dax-sh@0.43.2: resolution: {integrity: sha512-uULa1sSIHgXKGCqJ/pA0zsnzbHlVnuq7g8O2fkHokWFNwEGIhh5lAJlxZa1POG5En5ba7AU4KcBAvGQWMMf8rg==} + dayjs@1.11.19: + resolution: {integrity: sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw==} + db0@0.3.4: resolution: {integrity: sha512-RiXXi4WaNzPTHEOu8UPQKMooIbqOEyqA1t7Z6MsdxSCeb8iUC9ko3LcmsLmeUt2SM5bctfArZKkRQggKZz7JNw==} peerDependencies: @@ -1193,6 +1240,10 @@ packages: eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} + eciesjs@0.4.16: + resolution: {integrity: sha512-dS5cbA9rA2VR4Ybuvhg6jvdmp46ubLn3E+px8cG/35aEDNclrqoCjg6mt0HYZ/M+OoESS3jSkCrqk1kWAEhWAw==} + engines: {bun: '>=1', deno: '>=2', node: '>=16'} + ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} @@ -1277,6 +1328,10 @@ packages: resolution: {integrity: sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==} engines: {node: '>=0.8.x'} + execa@5.1.1: + resolution: {integrity: sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==} + engines: {node: '>=10'} + execa@8.0.1: resolution: {integrity: sha512-VyhnebXciFV2DESc+p6B+y0LjSm0krU4OgJN44qFAhBY0TJ+1V61tYD2+wHusZ6F9n5K+vl8k0sTy7PEfV4qpg==} engines: {node: '>=16.17'} @@ -1354,6 +1409,10 @@ packages: get-port-please@3.2.0: resolution: {integrity: sha512-I9QVvBw5U/hw3RmWpYKRumUeaDgxTPd401x364rLmWBJcOQ753eov1eTgzDqRG9bqFIfDc7gfzcQEWrUri3o1A==} + get-stream@6.0.1: + resolution: {integrity: sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==} + engines: {node: '>=10'} + get-stream@8.0.1: resolution: {integrity: sha512-VaUJspBffn/LMCJVoMvSAdmscJyS1auj5Zulnn5UoYcY531UWmdwhRWkcGKnGU93m5HSXP9LP2usOryrBtQowA==} engines: {node: '>=16'} @@ -1432,6 +1491,10 @@ packages: httpxy@0.1.7: resolution: {integrity: sha512-pXNx8gnANKAndgga5ahefxc++tJvNL87CXoRwxn1cJE2ZkWEojF3tNfQIEhZX/vfpt+wzeAzpUI4qkediX1MLQ==} + human-signals@2.1.0: + resolution: {integrity: sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==} + engines: {node: '>=10.17.0'} + human-signals@5.0.0: resolution: {integrity: sha512-AXcZb6vzzrFAUE61HnN4mpLqd/cSIwNQjtNWR0euPm6y0iqx3G4gOXaIDdtdDwZmhwe82LA6+zinmW4UBWVePQ==} engines: {node: '>=16.17.0'} @@ -1439,6 +1502,10 @@ packages: ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} + ignore@5.3.2: + resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} + engines: {node: '>= 4'} + ignore@7.0.5: resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} engines: {node: '>= 4'} @@ -1548,6 +1615,9 @@ packages: js-tokens@9.0.1: resolution: {integrity: sha512-mxa9E9ITFOt0ban3j6L5MpjwegGz6lBQmM1IJkWeBZGcMxto50+eWdjC/52xDbS2vy0k7vIMK0Fe2wfL9OQSpQ==} + jsencrypt@3.5.4: + resolution: {integrity: sha512-kNjfYEMNASxrDGsmcSQh/rUTmcoRfSUkxnAz+MMywM8jtGu+fFEZ3nJjHM58zscVnwR0fYmG9sGkTDjqUdpiwA==} + jsesc@3.1.0: resolution: {integrity: sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==} engines: {node: '>=6'} @@ -1661,6 +1731,10 @@ packages: engines: {node: '>=16'} hasBin: true + mimic-fn@2.1.0: + resolution: {integrity: sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==} + engines: {node: '>=6'} + mimic-fn@4.0.0: resolution: {integrity: sha512-vqiC06CuhBTUdZH+RYl8sFrL096vA45Ok5ISO6sE/Mr1jRbGH4Csnhi8f3wKVl7x8mO4Au7Ir9D3Oyv1VYMFJw==} engines: {node: '>=12'} @@ -1695,6 +1769,10 @@ packages: engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true + nanostores@1.1.0: + resolution: {integrity: sha512-yJBmDJr18xy47dbNVlHcgdPrulSn1nhSE6Ns9vTG+Nx9VPT6iV1MD6aQFp/t52zpf82FhLLTXAXr30NuCnxvwA==} + engines: {node: ^20.0.0 || >=22.0.0} + nitropack@2.12.7: resolution: {integrity: sha512-HWyzMBj2d8b14J6Cfnxv97ztnuHIgXNcrGiWCruLfb2ZfKsp6OCbZYJm5T9sv/ZKl8LedhatrMKG66HWJux9Rg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -1743,6 +1821,10 @@ packages: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + npm-run-path@4.0.1: + resolution: {integrity: sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==} + engines: {node: '>=8'} + npm-run-path@5.3.0: resolution: {integrity: sha512-ppwTtiJZq0O/ai0z7yfudtBpWIoxM8yE6nHi1X47eFR2EWORqfbu6CnPlNsjeN683eT0qG6H/Pyf9fCcvjnnnQ==} engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} @@ -1752,8 +1834,12 @@ packages: engines: {node: ^14.16.0 || >=16.10.0} hasBin: true - ofetch@1.4.1: - resolution: {integrity: sha512-QZj2DfGplQAr2oj9KzceK9Hwz6Whxazmn85yYeVuS3u9XTMOGMRx0kO95MQ+vLsj/S/NwBDMMLU5hpxvI6Tklw==} + object-treeify@1.1.33: + resolution: {integrity: sha512-EFVjAYfzWqWsBMRHPMAXLCDIJnpMhdWAqR7xG6M6a2cs6PMFpl/+Z20w9zDW4vkxOFfddegBKq9Rehd0bxWE7A==} + engines: {node: '>= 10'} + + ofetch@1.5.1: + resolution: {integrity: sha512-2W4oUZlVaqAPAil6FUg/difl6YhqhUR7x2eZY4bQCko22UXg3hptq9KLQdqFClV+Wu85UX7hNtdGTngi/1BxcA==} ohash@2.0.11: resolution: {integrity: sha512-RdR9FQrFwNBNXAr4GixM8YaRZRJ5PUWbKYbE5eOsrwAjJW0q2REGcf79oYPsLyskQCZG1PLN+S/K1V00joZAoQ==} @@ -1762,6 +1848,10 @@ packages: resolution: {integrity: sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==} engines: {node: '>= 0.8'} + onetime@5.1.2: + resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==} + engines: {node: '>=6'} + onetime@6.0.0: resolution: {integrity: sha512-1FlR+gjXK7X+AsAHso35MnyN5KqGwJRi/31ft6x0M194ht7S+rWAvd7PHss9xSKMzE0asv1pyIHaJYq+BbacAQ==} engines: {node: '>=12'} @@ -2125,6 +2215,9 @@ packages: shiki@1.29.2: resolution: {integrity: sha512-njXuliz/cP+67jU2hukkxCNuH1yUi4QfdZZY+sMr5PPrIyXSu5iTb/qYC4BiWWB0vZ+7TbdvYUCeL23zpwCfbg==} + signal-exit@3.0.7: + resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} + signal-exit@4.1.0: resolution: {integrity: sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==} engines: {node: '>=14'} @@ -2222,6 +2315,10 @@ packages: resolution: {integrity: sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==} engines: {node: '>=12'} + strip-final-newline@2.0.0: + resolution: {integrity: sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==} + engines: {node: '>=6'} + strip-final-newline@3.0.0: resolution: {integrity: sha512-dOESqjYr96iWYylGObzd39EuNTa5VJxyvVAEm5Jnh7KGo75V43Hk1odPQkNDyXNmUR6k+gEiDVXnjB8HJ3crXw==} engines: {node: '>=12'} @@ -2808,6 +2905,22 @@ snapshots: '@deno/shim-deno-test': 0.5.0 which: 4.0.0 + '@dotenvx/dotenvx@1.51.1': + dependencies: + commander: 11.1.0 + dotenv: 17.2.3 + eciesjs: 0.4.16 + execa: 5.1.1 + fdir: 6.5.0(picomatch@4.0.3) + ignore: 5.3.2 + object-treeify: 1.1.33 + picomatch: 4.0.3 + which: 4.0.0 + + '@ecies/ciphers@0.2.5(@noble/ciphers@1.3.0)': + dependencies: + '@noble/ciphers': 1.3.0 + '@esbuild/aix-ppc64@0.25.11': optional: true @@ -2938,6 +3051,14 @@ snapshots: - encoding - supports-color + '@noble/ciphers@1.3.0': {} + + '@noble/curves@1.9.7': + dependencies: + '@noble/hashes': 1.8.0 + + '@noble/hashes@1.8.0': {} + '@nodelib/fs.scandir@2.1.5': dependencies: '@nodelib/fs.stat': 2.0.5 @@ -3612,6 +3733,8 @@ snapshots: comma-separated-tokens@2.0.3: {} + commander@11.1.0: {} + commander@2.20.3: {} commondir@1.0.1: {} @@ -3668,6 +3791,8 @@ snapshots: '@deno/shim-deno': 0.19.2 undici-types: 5.28.4 + dayjs@1.11.19: {} + db0@0.3.4: {} debug@2.6.9: @@ -3714,6 +3839,13 @@ snapshots: eastasianwidth@0.2.0: {} + eciesjs@0.4.16: + dependencies: + '@ecies/ciphers': 0.2.5(@noble/ciphers@1.3.0) + '@noble/ciphers': 1.3.0 + '@noble/curves': 1.9.7 + '@noble/hashes': 1.8.0 + ee-first@1.1.1: {} electron-to-chromium@1.5.237: {} @@ -3797,6 +3929,18 @@ snapshots: events@3.3.0: {} + execa@5.1.1: + dependencies: + cross-spawn: 7.0.6 + get-stream: 6.0.1 + human-signals: 2.1.0 + is-stream: 2.0.1 + merge-stream: 2.0.0 + npm-run-path: 4.0.1 + onetime: 5.1.2 + signal-exit: 3.0.7 + strip-final-newline: 2.0.0 + execa@8.0.1: dependencies: cross-spawn: 7.0.6 @@ -3859,6 +4003,8 @@ snapshots: get-port-please@3.2.0: {} + get-stream@6.0.1: {} + get-stream@8.0.1: {} giget@2.0.0: @@ -3981,10 +4127,14 @@ snapshots: httpxy@0.1.7: {} + human-signals@2.1.0: {} + human-signals@5.0.0: {} ieee754@1.2.1: {} + ignore@5.3.2: {} + ignore@7.0.5: {} immutable@5.1.4: {} @@ -4073,6 +4223,8 @@ snapshots: js-tokens@9.0.1: {} + jsencrypt@3.5.4: {} + jsesc@3.1.0: {} json5@2.2.3: {} @@ -4196,6 +4348,8 @@ snapshots: mime@4.1.0: {} + mimic-fn@2.1.0: {} + mimic-fn@4.0.0: {} minimatch@5.1.6: @@ -4225,6 +4379,8 @@ snapshots: nanoid@3.3.11: {} + nanostores@1.1.0: {} + nitropack@2.12.7: dependencies: '@cloudflare/kv-asset-handler': 0.4.0 @@ -4270,7 +4426,7 @@ snapshots: mlly: 1.8.0 node-fetch-native: 1.6.7 node-mock-http: 1.0.3 - ofetch: 1.4.1 + ofetch: 1.5.1 ohash: 2.0.11 pathe: 2.0.3 perfect-debounce: 2.0.0 @@ -4349,6 +4505,10 @@ snapshots: normalize-path@3.0.0: {} + npm-run-path@4.0.1: + dependencies: + path-key: 3.1.1 + npm-run-path@5.3.0: dependencies: path-key: 4.0.0 @@ -4361,7 +4521,9 @@ snapshots: pkg-types: 2.3.0 tinyexec: 1.0.1 - ofetch@1.4.1: + object-treeify@1.1.33: {} + + ofetch@1.5.1: dependencies: destr: 2.0.5 node-fetch-native: 1.6.7 @@ -4373,6 +4535,10 @@ snapshots: dependencies: ee-first: 1.1.1 + onetime@5.1.2: + dependencies: + mimic-fn: 2.1.0 + onetime@6.0.0: dependencies: mimic-fn: 4.0.0 @@ -4767,6 +4933,8 @@ snapshots: '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 + signal-exit@3.0.7: {} + signal-exit@4.1.0: {} slash@5.1.0: {} @@ -4867,6 +5035,8 @@ snapshots: dependencies: ansi-regex: 6.2.2 + strip-final-newline@2.0.0: {} + strip-final-newline@3.0.0: {} strip-literal@3.1.0: @@ -5048,7 +5218,7 @@ snapshots: h3: 1.15.4 lru-cache: 10.4.3 node-fetch-native: 1.6.7 - ofetch: 1.4.1 + ofetch: 1.5.1 ufo: 1.6.1 optionalDependencies: db0: 0.3.4 diff --git a/public/favicon.ico b/frontend/public/favicon.ico similarity index 100% rename from public/favicon.ico rename to frontend/public/favicon.ico diff --git a/frontend/src/@dasig/api/functions/getApi.ts b/frontend/src/@dasig/api/functions/getApi.ts new file mode 100644 index 0000000..e79ce5e --- /dev/null +++ b/frontend/src/@dasig/api/functions/getApi.ts @@ -0,0 +1,23 @@ +import { ofetch } from 'ofetch' +import { $backendUrl } from '../../../../configs/config.api' + +const URL = $backendUrl.get() + +export default async (api: string, value?: any, value2?: any) => { + try { + let fetch + if (!value2) { + if (!value) { + fetch = await ofetch(URL + api, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] }) + } else { + fetch = await ofetch(URL + `${api}/${value}/fetch-data`, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] }) + } + } else { + fetch = await ofetch(URL + `${api}/${value}/${value2}/fetch-data`, { parseResponse: JSON.parse, retry: 3, retryDelay: 500, retryStatusCodes: [400, 404, 405, 500, 502] }) + } + const result = fetch + return [result, null] + } catch (error) { + return [[], error] + } +} diff --git a/frontend/src/@dasig/api/functions/postApi.ts b/frontend/src/@dasig/api/functions/postApi.ts new file mode 100644 index 0000000..3108eba --- /dev/null +++ b/frontend/src/@dasig/api/functions/postApi.ts @@ -0,0 +1,35 @@ +import { ofetch } from 'ofetch' +import { $backendUrl } from '../../../../configs/config.api' +import { $tokenName, $tokenExpiration } from '../../../../configs/config.security' +import dayjs from 'dayjs' +import encryptRsa from '../../scripts/functions/encryptRsa' + +const URL = $backendUrl.get() +const TOKEN_NAME = $tokenName.get() +const TOKEN_EXPIRATION = $tokenExpiration.get() + +export default async (api: string, body: Object) => { + const today = new Date() + const todayUnix = dayjs(today).unix() + const expiration = todayUnix + TOKEN_EXPIRATION + const aes = await encryptRsa(`${api.toString()}-${todayUnix.toString()}-${expiration.toString()}`) + + const hash = `${TOKEN_NAME}=${aes}token` + try { + await ofetch(URL + api, { + headers: { + Accept: 'application/json', + 'Cache-Control': 'no-cache', + 'Dasig-Token': hash, + }, + retry: 3, + retryDelay: 500, + retryStatusCodes: [400, 404, 405, 500, 502], + method: 'POST', + body: body, + }) + return true + } catch { + return false + } +} diff --git a/frontend/src/@dasig/api/index.ts b/frontend/src/@dasig/api/index.ts new file mode 100644 index 0000000..9a38519 --- /dev/null +++ b/frontend/src/@dasig/api/index.ts @@ -0,0 +1,2 @@ +export { default as getApi } from './functions/getApi' +export { default as postApi } from './functions/postApi' diff --git a/frontend/src/@dasig/components/Background.tsx b/frontend/src/@dasig/components/Background.tsx new file mode 100644 index 0000000..76313d3 --- /dev/null +++ b/frontend/src/@dasig/components/Background.tsx @@ -0,0 +1,50 @@ +// import '../styles/Background.sass' +// import { Show, createSignal } from 'solid-js' +// import fs from 'fs' +// import webpPath from '../images/background.webp' +// import avifPath from '../images/background.avif' +// import noBackground from '../images/no-background.webp' + +// interface Props { +// image?: boolean +// color?: string +// } + +// let [imageLoaded, setImageLoaded] = createSignal(false) + +// const checkBackground = () => { +// if (!fs.existsSync(avifPath.src) && !fs.existsSync(webpPath.src)) { +// setImageLoaded(true) +// } else { +// setImageLoaded(false) +// } +// } + +// export default (props: Props) => { +// checkBackground() + +// return ( +// <> +// +// +// +// +// +// +// An image background +// +// +// +// +// +// An alternative background if found no image background +// +// +// + +// +//
+// +// +// ) +// } diff --git a/frontend/src/@dasig/components/Box.tsx b/frontend/src/@dasig/components/Box.tsx new file mode 100644 index 0000000..d27815f --- /dev/null +++ b/frontend/src/@dasig/components/Box.tsx @@ -0,0 +1,19 @@ +import '../styles/Box.sass' +import { type JSXElement, createMemo } from 'solid-js' + +interface Props { + thickness: number + color?: string + children: JSXElement + curved?: boolean +} + +export default (props: Props) => { + const boxClass = createMemo(() => (props.curved ? 'curvedbox' : 'box')) + + return ( +
+ {props.children} +
+ ) +} diff --git a/frontend/src/@dasig/components/Button.tsx b/frontend/src/@dasig/components/Button.tsx new file mode 100644 index 0000000..0ac4e8c --- /dev/null +++ b/frontend/src/@dasig/components/Button.tsx @@ -0,0 +1,83 @@ +import '../styles/Button.sass' +import { Show, Switch, Match } from 'solid-js' + +interface Props { + label?: string + to?: string + onClick?: () => void + edges?: 'curved' | 'rounded' | 'flat' + design?: 'bu-primary' | 'bu-link' | 'bu-info' | 'bu-success' | 'bu-warning' | 'bu-danger' | 'bu-dark' | 'bu-light' | 'bu-text' | 'bu-ghost' | 'bo-primary' | 'bo-secondary' | 'bo-success' | 'bo-danger' | 'bo-warning' | 'bo-info' | 'bo-light' | 'bo-dark' | 'bo-link' + submit?: boolean + newtab?: boolean +} + +const getBorderRadius = (edge: Props['edges']) => { + switch (edge) { + case 'curved': + return 'border-radius: 6px' + case 'rounded': + return 'border-radius: 32px' + case 'flat': + return 'border-radius: 0' + default: + return 'border-radius: 0' + } +} + +export default (props: Props) => { + const borderRadius = getBorderRadius(props.edges) + + return ( + <> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ) +} diff --git a/src/_dasig/components/Column.tsx b/frontend/src/@dasig/components/Column.tsx similarity index 100% rename from src/_dasig/components/Column.tsx rename to frontend/src/@dasig/components/Column.tsx diff --git a/src/_dasig/components/HTML.tsx b/frontend/src/@dasig/components/HTML.tsx similarity index 87% rename from src/_dasig/components/HTML.tsx rename to frontend/src/@dasig/components/HTML.tsx index 461f9e9..ffae9cc 100644 --- a/src/_dasig/components/HTML.tsx +++ b/frontend/src/@dasig/components/HTML.tsx @@ -26,10 +26,10 @@ export default (props: Props) => { - + - + @@ -41,7 +41,9 @@ export default (props: Props) => { -
{props.children}
+
+ {props.children} +
{props.scripts} diff --git a/src/_dasig/components/Page.tsx b/frontend/src/@dasig/components/Page.tsx similarity index 57% rename from src/_dasig/components/Page.tsx rename to frontend/src/@dasig/components/Page.tsx index de14c7d..dbe79d5 100644 --- a/src/_dasig/components/Page.tsx +++ b/frontend/src/@dasig/components/Page.tsx @@ -1,19 +1,21 @@ import '../styles/Page.sass' import { Show } from 'solid-js' +import { Title } from '@solidjs/meta' interface Props { children?: any alignment?: 'row' | 'column' + title: string } export default (props: Props) => { return ( <> -
{props.children}
+
{props.title}{props.children}
-
{props.children}
+
{props.title}{props.children}
) diff --git a/src/_dasig/images/background.avif b/frontend/src/@dasig/images/background.avif similarity index 100% rename from src/_dasig/images/background.avif rename to frontend/src/@dasig/images/background.avif diff --git a/src/_dasig/images/background.webp b/frontend/src/@dasig/images/background.webp similarity index 100% rename from src/_dasig/images/background.webp rename to frontend/src/@dasig/images/background.webp diff --git a/src/_dasig/images/logo.avif b/frontend/src/@dasig/images/logo.avif similarity index 100% rename from src/_dasig/images/logo.avif rename to frontend/src/@dasig/images/logo.avif diff --git a/src/_dasig/images/logo.webp b/frontend/src/@dasig/images/logo.webp similarity index 100% rename from src/_dasig/images/logo.webp rename to frontend/src/@dasig/images/logo.webp diff --git a/src/_dasig/images/no-background.webp b/frontend/src/@dasig/images/no-background.webp similarity index 100% rename from src/_dasig/images/no-background.webp rename to frontend/src/@dasig/images/no-background.webp diff --git a/src/_dasig/images/pat-alcala.avif b/frontend/src/@dasig/images/pat-alcala.avif similarity index 100% rename from src/_dasig/images/pat-alcala.avif rename to frontend/src/@dasig/images/pat-alcala.avif diff --git a/src/_dasig/images/pat-alcala.webp b/frontend/src/@dasig/images/pat-alcala.webp similarity index 100% rename from src/_dasig/images/pat-alcala.webp rename to frontend/src/@dasig/images/pat-alcala.webp diff --git a/src/_dasig/images/sample.avif b/frontend/src/@dasig/images/sample.avif similarity index 100% rename from src/_dasig/images/sample.avif rename to frontend/src/@dasig/images/sample.avif diff --git a/src/_dasig/images/sample.webp b/frontend/src/@dasig/images/sample.webp similarity index 100% rename from src/_dasig/images/sample.webp rename to frontend/src/@dasig/images/sample.webp diff --git a/src/_dasig/index.ts b/frontend/src/@dasig/index.ts similarity index 100% rename from src/_dasig/index.ts rename to frontend/src/@dasig/index.ts diff --git a/frontend/src/@dasig/scripts/functions/encryptRsa.ts b/frontend/src/@dasig/scripts/functions/encryptRsa.ts new file mode 100644 index 0000000..2437358 --- /dev/null +++ b/frontend/src/@dasig/scripts/functions/encryptRsa.ts @@ -0,0 +1,13 @@ +import { JSEncrypt } from 'jsencrypt' +import { $rsaPublicKey } from '../../../../configs/config.security' + +const enc = new JSEncrypt() +const PUBLIC_KEY = $rsaPublicKey.get() + +export default async (message: string) => { + enc.setPublicKey(PUBLIC_KEY) + const encrypted = enc.encrypt(message).toString() + const fixedEncrypted = encrypted.replace(/\//g, '~') + + return fixedEncrypted +} diff --git a/frontend/src/@dasig/scripts/index.ts b/frontend/src/@dasig/scripts/index.ts new file mode 100644 index 0000000..eac4a47 --- /dev/null +++ b/frontend/src/@dasig/scripts/index.ts @@ -0,0 +1 @@ +export { default as encryptRsa } from './functions/encryptRsa' diff --git a/src/_dasig/styles/Background.sass b/frontend/src/@dasig/styles/Background.sass similarity index 100% rename from src/_dasig/styles/Background.sass rename to frontend/src/@dasig/styles/Background.sass diff --git a/src/_dasig/styles/Box.sass b/frontend/src/@dasig/styles/Box.sass similarity index 100% rename from src/_dasig/styles/Box.sass rename to frontend/src/@dasig/styles/Box.sass diff --git a/src/_dasig/styles/Button.sass b/frontend/src/@dasig/styles/Button.sass similarity index 100% rename from src/_dasig/styles/Button.sass rename to frontend/src/@dasig/styles/Button.sass diff --git a/src/_dasig/styles/Column.sass b/frontend/src/@dasig/styles/Column.sass similarity index 100% rename from src/_dasig/styles/Column.sass rename to frontend/src/@dasig/styles/Column.sass diff --git a/src/_dasig/styles/Footer.sass b/frontend/src/@dasig/styles/Footer.sass similarity index 100% rename from src/_dasig/styles/Footer.sass rename to frontend/src/@dasig/styles/Footer.sass diff --git a/src/_dasig/styles/Form.sass b/frontend/src/@dasig/styles/Form.sass similarity index 100% rename from src/_dasig/styles/Form.sass rename to frontend/src/@dasig/styles/Form.sass diff --git a/src/_dasig/styles/HTML.sass b/frontend/src/@dasig/styles/HTML.sass similarity index 100% rename from src/_dasig/styles/HTML.sass rename to frontend/src/@dasig/styles/HTML.sass diff --git a/src/_dasig/styles/Input.sass b/frontend/src/@dasig/styles/Input.sass similarity index 100% rename from src/_dasig/styles/Input.sass rename to frontend/src/@dasig/styles/Input.sass diff --git a/src/_dasig/styles/Link.sass b/frontend/src/@dasig/styles/Link.sass similarity index 100% rename from src/_dasig/styles/Link.sass rename to frontend/src/@dasig/styles/Link.sass diff --git a/src/_dasig/styles/Modal.sass b/frontend/src/@dasig/styles/Modal.sass similarity index 100% rename from src/_dasig/styles/Modal.sass rename to frontend/src/@dasig/styles/Modal.sass diff --git a/src/_dasig/styles/Navbar.sass b/frontend/src/@dasig/styles/Navbar.sass similarity index 100% rename from src/_dasig/styles/Navbar.sass rename to frontend/src/@dasig/styles/Navbar.sass diff --git a/src/_dasig/styles/Page.sass b/frontend/src/@dasig/styles/Page.sass similarity index 100% rename from src/_dasig/styles/Page.sass rename to frontend/src/@dasig/styles/Page.sass diff --git a/src/_dasig/styles/Row.sass b/frontend/src/@dasig/styles/Row.sass similarity index 100% rename from src/_dasig/styles/Row.sass rename to frontend/src/@dasig/styles/Row.sass diff --git a/src/_dasig/styles/Viewport.sass b/frontend/src/@dasig/styles/Viewport.sass similarity index 100% rename from src/_dasig/styles/Viewport.sass rename to frontend/src/@dasig/styles/Viewport.sass diff --git a/src/app.tsx b/frontend/src/app.tsx similarity index 51% rename from src/app.tsx rename to frontend/src/app.tsx index 47f71bf..687a891 100644 --- a/src/app.tsx +++ b/frontend/src/app.tsx @@ -1,15 +1,16 @@ -import { MetaProvider, Title } from "@solidjs/meta"; -import { Router } from "@solidjs/router"; -import { FileRoutes } from "@solidjs/start/router"; -import { Suspense } from "solid-js"; -import "./app.sass"; +import { MetaProvider, Title } from '@solidjs/meta' +import { Router } from '@solidjs/router' +import { FileRoutes } from '@solidjs/start/router' +import { Suspense } from 'solid-js' +import './styles/app.sass' -export default function App() { +export default () => { return ( ( + root={(props) => ( Dasig - Solid + {/* Index About */} {props.children} @@ -18,5 +19,5 @@ export default function App() { > - ); + ) } diff --git a/src/components/Counter/Counter.sass b/frontend/src/components/Counter/Counter.sass similarity index 100% rename from src/components/Counter/Counter.sass rename to frontend/src/components/Counter/Counter.sass diff --git a/src/components/Counter/Counter.tsx b/frontend/src/components/Counter/Counter.tsx similarity index 100% rename from src/components/Counter/Counter.tsx rename to frontend/src/components/Counter/Counter.tsx diff --git a/src/entry-client.tsx b/frontend/src/entry-client.tsx similarity index 100% rename from src/entry-client.tsx rename to frontend/src/entry-client.tsx diff --git a/frontend/src/entry-server.tsx b/frontend/src/entry-server.tsx new file mode 100644 index 0000000..cf9f909 --- /dev/null +++ b/frontend/src/entry-server.tsx @@ -0,0 +1,23 @@ +// // src/entry-server.tsx +// import { createHandler, StartServer } from '@solidjs/start/server' +// import dotenv from 'dotenv' +// dotenv.config({ path: 'env/.env.site' }) +// import { HTML } from './_dasig' + +// const websiteName = process.env.WEBSITE_NAME || 'Dasig - Solid' +// const websiteDescription = process.env.WEBSITE_DESCRIPTION || 'A template for fast development (Solid Version)' +// const author = process.env.AUTHOR || 'Patrick Alvin Alcala' +// const font = process.env.FONT + +// export default createHandler(() => } />) + +import { createHandler, StartServer } from '@solidjs/start/server' +import { $websiteName, $websiteDescription, $yourName, $font } from '../configs/config.site' +import { HTML } from '~/@dasig' + +const websiteName = $websiteName.get() || 'Dasig - Solid' +const websiteDescription = $websiteDescription.get() || 'A template for fast development (Solid Version)' +const author = $yourName.get() || 'Patrick Alvin Alcala' +const font = $font.get() + +export default createHandler(() => } />) diff --git a/src/global.d.ts b/frontend/src/global.d.ts similarity index 100% rename from src/global.d.ts rename to frontend/src/global.d.ts diff --git a/src/routes/[...404].tsx b/frontend/src/routes/[...404].tsx similarity index 100% rename from src/routes/[...404].tsx rename to frontend/src/routes/[...404].tsx diff --git a/src/routes/about.tsx b/frontend/src/routes/about.tsx similarity index 100% rename from src/routes/about.tsx rename to frontend/src/routes/about.tsx diff --git a/frontend/src/routes/index.sass b/frontend/src/routes/index.sass new file mode 100644 index 0000000..5fa47c8 --- /dev/null +++ b/frontend/src/routes/index.sass @@ -0,0 +1,4 @@ +@use '../styles/variables' as vars + +.h1 + color: vars.$accentColor diff --git a/src/routes/index.tsx b/frontend/src/routes/index.tsx similarity index 57% rename from src/routes/index.tsx rename to frontend/src/routes/index.tsx index 206f45b..a77417f 100644 --- a/src/routes/index.tsx +++ b/frontend/src/routes/index.tsx @@ -1,12 +1,11 @@ -import { Title } from '@solidjs/meta' +import './index.sass' import Counter from '~/components/Counter/Counter' -import { Page, Column } from '~/_dasig' +import { Page, Column } from '~/@dasig' -export default function Home() { +export default () => { return ( - + - Dasig - Index

DASIG

A next level development for pure speed

diff --git a/src/app.sass b/frontend/src/styles/app.sass similarity index 80% rename from src/app.sass rename to frontend/src/styles/app.sass index 792435c..a05f218 100644 --- a/src/app.sass +++ b/frontend/src/styles/app.sass @@ -1,5 +1,8 @@ -@use './styles/classes' -@use './styles/variables' +@use './global' +@use './variables' + +:root + background-color: variables.$background a margin-right: 1rem diff --git a/src/styles/breakpoint.sass b/frontend/src/styles/breakpoint.sass similarity index 94% rename from src/styles/breakpoint.sass rename to frontend/src/styles/breakpoint.sass index 7ccdc2b..738c1a2 100644 --- a/src/styles/breakpoint.sass +++ b/frontend/src/styles/breakpoint.sass @@ -1,4 +1,4 @@ -$mobile: 375px +$mobile: 575.98px $tablet: 768px $desktop: 1440px @@ -20,7 +20,7 @@ $desktop: 1440px display: none .on-mobile-only - @media only screen and (min-width: $mobile) + @media only screen and (max-width: $mobile) display: block @media only screen and (min-width: $tablet) diff --git a/src/styles/fonts.sass b/frontend/src/styles/fonts.sass similarity index 100% rename from src/styles/fonts.sass rename to frontend/src/styles/fonts.sass diff --git a/src/styles/classes.sass b/frontend/src/styles/global.sass similarity index 90% rename from src/styles/classes.sass rename to frontend/src/styles/global.sass index 4e8b0e5..f635ee6 100644 --- a/src/styles/classes.sass +++ b/frontend/src/styles/global.sass @@ -1,4 +1,4 @@ -.fullscreen +.background position: absolute top: 0 left: 0 diff --git a/src/styles/variables.sass b/frontend/src/styles/variables.sass similarity index 91% rename from src/styles/variables.sass rename to frontend/src/styles/variables.sass index cb81aaa..236300a 100644 --- a/src/styles/variables.sass +++ b/frontend/src/styles/variables.sass @@ -1,6 +1,6 @@ @use 'sass:color' -$background: #0c1b31 +$background: #09111f $textColor: #f0f8ff $fontSize: 1rem diff --git a/tsconfig.json b/frontend/tsconfig.json similarity index 100% rename from tsconfig.json rename to frontend/tsconfig.json diff --git a/src/entry-server.tsx b/src/entry-server.tsx deleted file mode 100644 index 8f3b879..0000000 --- a/src/entry-server.tsx +++ /dev/null @@ -1,12 +0,0 @@ -// src/entry-server.tsx -import { createHandler, StartServer } from '@solidjs/start/server' -import dotenv from 'dotenv' -dotenv.config({ path: '.env.dev' }) -import { HTML } from './_dasig' - -const websiteName = process.env.WEBSITE_NAME || 'Dasig - Solid' -const websiteDescription = process.env.WEBSITE_DESCRIPTION || 'A template for fast development (Solid Version)' -const author = process.env.AUTHOR || 'Patrick Alvin Alcala' -const font = process.env.FONT - -export default createHandler(() => } />)