lucy-cli 2.0.0-beta.1 → 2.0.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.cursorignore +4 -0
- package/.wix/debug.log +10 -0
- package/README.md +117 -102
- package/dist/args.js +41 -1
- package/dist/args.js.map +1 -1
- package/dist/commands/exec.d.ts +2 -2
- package/dist/commands/exec.js +15 -13
- package/dist/commands/exec.js.map +1 -1
- package/dist/commands/home.d.ts +2 -2
- package/dist/commands/home.js +25 -2
- package/dist/commands/home.js.map +1 -1
- package/dist/commands/install.d.ts +1 -0
- package/dist/commands/install.js +29 -16
- package/dist/commands/install.js.map +1 -1
- package/dist/helpers.d.ts +1 -1
- package/dist/helpers.js +1 -8
- package/dist/helpers.js.map +1 -1
- package/dist/index.d.ts +0 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/init/blocks.d.ts +1 -1
- package/dist/init/blocks.js +2 -2
- package/dist/init/cargo.d.ts +1 -1
- package/dist/init/cargo.js +2 -2
- package/dist/init/expo.d.ts +1 -1
- package/dist/init/expo.js +2 -2
- package/dist/init/index.d.ts +1 -2
- package/dist/init/index.js +10 -1
- package/dist/init/index.js.map +1 -1
- package/dist/init/monorepo.d.ts +1 -1
- package/dist/init/monorepo.js +2 -2
- package/dist/init/tauri.d.ts +1 -1
- package/dist/init/tauri.js +2 -2
- package/dist/init/velo.d.ts +1 -1
- package/dist/init/velo.js +3 -2
- package/dist/init/velo.js.map +1 -1
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.js +1 -0
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/lucy.d.ts +2 -2
- package/dist/schemas/lucy.js +1 -1
- package/dist/schemas/lucy.js.map +1 -1
- package/dist/tasks/Gulpfile.js +3 -3
- package/dist/tasks/Gulpfile.js.map +1 -1
- package/dist/tasks/gulp/checks.js +12 -11
- package/dist/tasks/gulp/checks.js.map +1 -1
- package/dist/tasks/gulp/watchers.js +3 -3
- package/dist/tasks/gulp/watchers.js.map +1 -1
- package/dist/tasks/index.d.ts +1 -1
- package/files/templates/Default[B]/files/.cursorignore +4 -0
- package/files/templates/Default[C]/files/.cursorignore +4 -0
- package/files/templates/Default[E]/files/.cursorignore +4 -0
- package/files/templates/Default[E]/files/app.config.ts +69 -0
- package/files/templates/{expo[D] → Default[E]}/files/assets/fonts/SpaceMono-Regular.ttf +0 -0
- package/files/templates/{expo[D] → Default[E]}/files/scripts/reset-project.ts +0 -0
- package/files/templates/Default[M]/files/.cursorignore +4 -0
- package/files/templates/Default[T]/files/.cursorignore +4 -0
- package/files/templates/expo verse[E]/files/.nvmrc +1 -0
- package/files/templates/expo verse[E]/files/.prettierignore +23 -0
- package/files/templates/expo verse[E]/files/.prettierrc.js +16 -0
- package/files/templates/expo verse[E]/files/.stylelintrc.json +8 -0
- package/files/templates/expo verse[E]/files/.vscode/extensions.json +10 -0
- package/files/templates/expo verse[E]/files/.vscode/launch.json +54 -0
- package/files/templates/expo verse[E]/files/.vscode/settings.json +30 -0
- package/files/templates/expo verse[E]/files/.vscode/tasks.json +0 -0
- package/files/templates/expo verse[E]/files/.yarnrc +1 -0
- package/files/templates/expo verse[E]/files/.yarnrc.yml +8 -0
- package/files/templates/expo verse[E]/files/App.tsx +63 -0
- package/files/templates/expo verse[E]/files/DEBUGGING.md +126 -0
- package/files/templates/expo verse[E]/files/README.md +45 -0
- package/files/templates/expo verse[E]/files/android/app/build.gradle +177 -0
- package/files/templates/expo verse[E]/files/android/app/debug.keystore +0 -0
- package/files/templates/expo verse[E]/files/android/app/proguard-rules.pro +14 -0
- package/files/templates/expo verse[E]/files/android/app/src/debug/AndroidManifest.xml +7 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/AndroidManifest.xml +33 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/java/so/sunnysideup/daily_verse/MainActivity.kt +65 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/java/so/sunnysideup/daily_verse/MainApplication.kt +57 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable/ic_launcher_background.xml +6 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable/rn_edit_text_material.xml +37 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-hdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-mdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-night-hdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-night-mdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-night-xhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-night-xxhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-night-xxxhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-xhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-xxhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/drawable-xxxhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +6 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +6 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/values/colors.xml +6 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/values/strings.xml +7 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/values/styles.xml +12 -0
- package/files/templates/expo verse[E]/files/android/app/src/main/res/values-night/colors.xml +3 -0
- package/files/templates/expo verse[E]/files/android/build.gradle +37 -0
- package/files/templates/expo verse[E]/files/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/files/templates/expo verse[E]/files/android/gradle/wrapper/gradle-wrapper.properties +7 -0
- package/files/templates/expo verse[E]/files/android/gradle.properties +59 -0
- package/files/templates/expo verse[E]/files/android/gradlew +251 -0
- package/files/templates/expo verse[E]/files/android/gradlew.bat +94 -0
- package/files/templates/expo verse[E]/files/android/settings.gradle +39 -0
- package/files/templates/expo verse[E]/files/app.config.ts +77 -0
- package/files/templates/expo verse[E]/files/assets/data/de.csv +949 -0
- package/files/templates/expo verse[E]/files/assets/data/en.csv +949 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-Black.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-BlackItalic.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-Bold.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-BoldItalic.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-ExtraBold.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-ExtraBoldItalic.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-Italic.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-Medium.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-MediumItalic.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-Regular.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-SemiBold.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/PlayfairDisplay-SemiBoldItalic.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/fonts/SpaceMono-Regular.ttf +0 -0
- package/files/templates/expo verse[E]/files/assets/images/andorid/background.png +0 -0
- package/files/templates/expo verse[E]/files/assets/images/android-dark.png +0 -0
- package/files/templates/expo verse[E]/files/assets/images/android-light.png +0 -0
- package/files/templates/expo verse[E]/files/assets/images/background.png +0 -0
- package/files/templates/expo verse[E]/files/assets/images/ios-dark.png +0 -0
- package/files/templates/expo verse[E]/files/assets/images/ios-light.png +0 -0
- package/files/templates/expo verse[E]/files/assets/images/ios-tinted.png +0 -0
- package/files/templates/expo verse[E]/files/assets/images/splash-icon-dark.png +0 -0
- package/files/templates/expo verse[E]/files/assets/images/splash-icon-light.png +0 -0
- package/files/templates/expo verse[E]/files/babel.config.js +10 -0
- package/files/templates/expo verse[E]/files/components/.gitkeep +0 -0
- package/files/templates/expo verse[E]/files/components/MainScreen.tsx +299 -0
- package/files/templates/expo verse[E]/files/components/Share.tsx +132 -0
- package/files/templates/expo verse[E]/files/components/ui/.gitkeep +0 -0
- package/files/templates/expo verse[E]/files/components/ui/dev.tsx +48 -0
- package/files/templates/expo verse[E]/files/constants/config.ts +30 -0
- package/files/templates/expo verse[E]/files/constants/theme.ts +18 -0
- package/files/templates/expo verse[E]/files/data/de.csv +219 -0
- package/files/templates/expo verse[E]/files/data/en.csv +219 -0
- package/files/templates/expo verse[E]/files/data/version.json +4 -0
- package/files/templates/expo verse[E]/files/eas.json +47 -0
- package/files/templates/expo verse[E]/files/eslint.config.mjs +185 -0
- package/files/templates/expo verse[E]/files/global.css +47 -0
- package/files/templates/expo verse[E]/files/hooks/useColorScheme.ts +17 -0
- package/files/templates/expo verse[E]/files/index.ts +28 -0
- package/files/templates/expo verse[E]/files/lib/content.ts +31 -0
- package/files/templates/expo verse[E]/files/lib/data.ts +180 -0
- package/files/templates/expo verse[E]/files/lib/helper.ts +54 -0
- package/files/templates/expo verse[E]/files/lib/index.ts +21 -0
- package/files/templates/expo verse[E]/files/lib/state.ts +128 -0
- package/files/templates/expo verse[E]/files/lib/storage.ts +17 -0
- package/files/templates/expo verse[E]/files/lib/taskManager/index.ts +38 -0
- package/files/templates/expo verse[E]/files/lib/taskManager/loadData.ts +14 -0
- package/files/templates/expo verse[E]/files/lib/utils/index.ts +11 -0
- package/files/templates/expo verse[E]/files/lib/utils/polyfills.ts +29 -0
- package/files/templates/expo verse[E]/files/lib/utils/screenshot.ts +77 -0
- package/files/templates/expo verse[E]/files/lucy.json +8 -0
- package/files/templates/expo verse[E]/files/metro.config.js +81 -0
- package/files/templates/expo verse[E]/files/models/index.ts +28 -0
- package/files/templates/expo verse[E]/files/nativewind-env.d.ts +1 -0
- package/files/templates/expo verse[E]/files/package.json +102 -0
- package/files/templates/expo verse[E]/files/pnpm-workspace.yaml +3 -0
- package/files/templates/expo verse[E]/files/scripts/convert-verses.ts +309 -0
- package/files/templates/expo verse[E]/files/scripts/move-artifacts.ts +83 -0
- package/files/templates/expo verse[E]/files/scripts/reset-project.ts +116 -0
- package/files/templates/expo verse[E]/files/tailwind.config.js +63 -0
- package/files/templates/expo verse[E]/files/tsconfig.json +45 -0
- package/files/templates/expo verse[E]/files/types/index.ts +4 -0
- package/files/templates/expo verse[E]/files/types/reset.d.ts +1 -0
- package/files/templates/expo verse[E]/lucy.json +86 -0
- package/files/templates/velo[D]/files/.cursorignore +4 -0
- package/files/templates/velo[D]/files/.yarnrc.yml +1 -2
- package/files/templates/velo[D]/files/local.tsconfig.json +6 -5
- package/files/templates/velo[D]/files/typescript/backend/config/authz.ts +47 -0
- package/files/templates/velo[D]/files/typescript/backend/config/env.ts +8 -0
- package/files/templates/velo[D]/files/typescript/backend/config/index.ts +26 -0
- package/files/templates/velo[D]/files/typescript/backend/config/mail.ts +10 -0
- package/files/templates/velo[D]/files/typescript/backend/config/nats.ts +6 -0
- package/files/templates/velo[D]/files/typescript/public/config/env.ts +9 -0
- package/files/templates/velo[D]/files/typescript/public/config/index.ts +76 -0
- package/files/templates/velo[D]/files/typescript/public/config/locales.ts +30 -0
- package/files/templates/velo[D]/files/typescript/public/config/theme.ts +110 -0
- package/files/templates/velo[D]/files/typescript/public/i18n/default.ts +123 -0
- package/files/templates/velo[D]/files/typescript/public/i18n/en.ts +117 -0
- package/files/templates/velo[D]/files/typescript/public/models/collections/member_roles.mode.ts +21 -0
- package/files/templates/velo[D]/files/typescript/public/models/collections/organization.model.ts +38 -0
- package/files/templates/velo[D]/files/typescript/public/models/collections/plan.model.ts +94 -0
- package/files/templates/velo[D]/files/typescript/public/models/collections/stage.model.ts +14 -0
- package/files/templates/velo[D]/files/typescript/public/models/collections/subscriptions.model.ts +80 -0
- package/files/templates/velo[D]/files/typescript/public/models/collections/tag.model.ts +15 -0
- package/files/templates/velo[D]/files/typescript/public/models/collections/translations.model.ts +16 -0
- package/files/templates/velo[D]/files/typescript/public/models/modules/authz.model.ts +31 -0
- package/files/templates/velo[D]/files/typescript/public/models/modules/organization.ts +20 -0
- package/files/templates/velo[D]/files/typescript/public/models/splitwise.model.ts +18 -0
- package/files/templates/velo[D]/files/typescript/public/models/store/local.model.ts +10 -0
- package/files/templates/velo[D]/files/typescript/public/models/store/memory.model.ts +10 -0
- package/files/templates/velo[D]/files/typescript/public/models/store/session.model.ts +10 -0
- package/files/templates/velo[D]/files/typescript/public/models/wix/ecom/payment.ts +236 -0
- package/files/templates/velo[D]/lucy.json +36 -26
- package/lucy +4 -0
- package/lucy.jpg +0 -0
- package/mitarbeiter-login.html +188 -0
- package/old/index.ts +0 -0
- package/package.json +15 -14
- package/pnpm-workspace.yaml +6 -0
- package/src/args.ts +41 -1
- package/src/commands/exec.ts +22 -18
- package/src/commands/home.ts +36 -2
- package/src/commands/install.ts +41 -21
- package/src/helpers.ts +1 -9
- package/src/index.ts +4 -2
- package/src/init/blocks.ts +2 -2
- package/src/init/cargo.ts +2 -2
- package/src/init/expo.ts +2 -2
- package/src/init/index.ts +10 -2
- package/src/init/monorepo.ts +2 -2
- package/src/init/tauri.ts +2 -2
- package/src/init/velo.ts +4 -3
- package/src/schemas/index.ts +2 -0
- package/src/schemas/lucy.ts +1 -1
- package/src/tasks/Gulpfile.ts +3 -3
- package/src/tasks/gulp/checks.ts +15 -14
- package/src/tasks/gulp/watchers.ts +3 -3
- /package/files/templates/{block[D] → Default[B]}/files/.stylelintrc.js +0 -0
- /package/files/templates/{block[D] → Default[B]}/lucy.json +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/.env +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/Cargo.toml +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/Makefile.toml +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/build/main.rs +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/config/beta.json +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/config/ci.json +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/config/default.json +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/config/development.json +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/config/produktion.json +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/config/stage.json +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/locales/todo.yml +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/files/public/index.html +0 -0
- /package/files/templates/{cargo[D] → Default[C]}/lucy.json +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/.nvmrc +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/.prettierignore +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/.prettierrc.js +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/.stylelintrc.js +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/.yarnrc +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/.yarnrc.yml +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/README.md +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/assets/images/adaptive-icon.png +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/assets/images/favicon.png +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/assets/images/icon.png +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/assets/images/splash-icon.png +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/babel.config.js +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/components/.gitkeep +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/components/ui/.gitkeep +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/constants/theme.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/eas.json +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/eslint.config.mjs +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/global.css +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/hooks/useColorScheme.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/index.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/lib/data.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/lib/utils/index.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/lib/utils/polyfills.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/lib/wix/client.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/lib/wix/error.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/lib/wix/index.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/metro.config.js +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/nativewind-env.d.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/pnpm-workspace.yaml +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/tailwind.config.js +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/tsconfig.json +0 -0
- /package/files/templates/{expo[D] → Default[E]}/files/types/reset.d.ts +0 -0
- /package/files/templates/{expo[D] → Default[E]}/lucy.json +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/.editorconfig +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/.nvmrc +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/.prettierignore +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/.prettierrc.json +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/.stylelintrc.js +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/.yarnrc +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/.yarnrc.yml +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/README.md +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/currents.config.ts +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/nx.json +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/pnpm-workspace.yaml +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/tsconfig.json +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/typedoc.json +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/files/vitest.config.ts +0 -0
- /package/files/templates/{monorepo[D] → Default[M]}/lucy.json +0 -0
- /package/files/templates/{tauri[D] → Default[T]}/lucy.json +0 -0
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
{
|
|
2
|
+
"modules": {},
|
|
3
|
+
"devDependencies": {
|
|
4
|
+
"tailwindcss": "^3.4.17",
|
|
5
|
+
"prettier-plugin-tailwindcss": "^0.5.11",
|
|
6
|
+
"@styled/typescript-styled-plugin": "",
|
|
7
|
+
"typescript-eslint-language-service": "",
|
|
8
|
+
"eslint-config-prettier": "",
|
|
9
|
+
"eslint-plugin-jsdoc": "",
|
|
10
|
+
"eslint-plugin-named-import-spacing": "",
|
|
11
|
+
"eslint-plugin-only-warn": "",
|
|
12
|
+
"eslint-plugin-react": "",
|
|
13
|
+
"eslint-plugin-react-hooks": "",
|
|
14
|
+
"eslint-plugin-simple-import-sort": "",
|
|
15
|
+
"@next/eslint-plugin-next": "",
|
|
16
|
+
"@stylelint/postcss-css-in-js": "",
|
|
17
|
+
"@typescript-eslint/parser": "",
|
|
18
|
+
"typescript-eslint": "",
|
|
19
|
+
"@total-typescript/ts-reset": "",
|
|
20
|
+
"expo-doctor": "",
|
|
21
|
+
"tsx": ""
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"nativewind": "",
|
|
25
|
+
"react-native-reanimated": "~3.17.4",
|
|
26
|
+
"react-native-safe-area-context": "5.4.0",
|
|
27
|
+
"@wix/sdk": "1.15.24",
|
|
28
|
+
"@wix/data": "",
|
|
29
|
+
"expo-standard-web-crypto": "",
|
|
30
|
+
"effect": "",
|
|
31
|
+
"node-libs-react-native": "",
|
|
32
|
+
"util": "",
|
|
33
|
+
"events": "",
|
|
34
|
+
"tailwindcss-animate": "",
|
|
35
|
+
"papaparse": ""
|
|
36
|
+
},
|
|
37
|
+
"additionalCommands": [
|
|
38
|
+
[
|
|
39
|
+
"npx",
|
|
40
|
+
"expo",
|
|
41
|
+
"install",
|
|
42
|
+
"tailwindcss-animate",
|
|
43
|
+
"class-variance-authority",
|
|
44
|
+
"clsx",
|
|
45
|
+
"tailwind-merge",
|
|
46
|
+
"expo-crypto",
|
|
47
|
+
"react-dom",
|
|
48
|
+
"react-native-web",
|
|
49
|
+
"@expo/metro-runtime",
|
|
50
|
+
"expo-system-ui",
|
|
51
|
+
"expo-localization",
|
|
52
|
+
"expo-file-system",
|
|
53
|
+
"expo-asset"
|
|
54
|
+
]
|
|
55
|
+
],
|
|
56
|
+
"scripts": {
|
|
57
|
+
"dev": "expo start",
|
|
58
|
+
"start": "expo start",
|
|
59
|
+
"android": "expo start --android",
|
|
60
|
+
"ios": "expo start --ios",
|
|
61
|
+
"web": "expo start --web",
|
|
62
|
+
"reset": "tsx ./scripts/reset-project.ts",
|
|
63
|
+
"format": "prettier --write \"./*.json\" \"**/*.{ts,tsx,md,json,jsonc,json5}\"",
|
|
64
|
+
"prebuild": "expo prebuild",
|
|
65
|
+
"pods": "npx pod-install",
|
|
66
|
+
"build:dev": "eas build --local --profile development",
|
|
67
|
+
"build:sim": "eas build --local --profile ios-simulator",
|
|
68
|
+
"build:prev": "eas build --local --profile preview",
|
|
69
|
+
"build:prod": "eas build --local --profile production",
|
|
70
|
+
"build:web": "expo export --platform web",
|
|
71
|
+
"doctor": "expo-doctor",
|
|
72
|
+
"eas-build-pre-install": "corepack enable && yarn set version 4"
|
|
73
|
+
},
|
|
74
|
+
"initialized": false,
|
|
75
|
+
"type": "expo",
|
|
76
|
+
"packageManager": "pnpm",
|
|
77
|
+
"additionalPkgProps": {
|
|
78
|
+
"expo": {
|
|
79
|
+
"doctor": {
|
|
80
|
+
"reactNativeDirectoryCheck": {
|
|
81
|
+
"listUnknownPackages": false
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
}
|
|
36
36
|
],
|
|
37
37
|
"paths": {
|
|
38
|
-
"public/*": ["./typescript/public/*"],
|
|
39
|
-
"backend/*": ["./typescript/backend/*"],
|
|
38
|
+
"public/*": ["./typescript/public/*", "./lib/public/*"],
|
|
39
|
+
"backend/*": ["./typescript/backend/*", "./lib/backend/*"],
|
|
40
40
|
"pages/*": ["./typescript/pages/*"],
|
|
41
|
-
"types/*": ["./typescript/types/*"]
|
|
41
|
+
"types/*": ["./typescript/types/*", "./lib/types/*"]
|
|
42
42
|
},
|
|
43
43
|
"typeRoots": [
|
|
44
44
|
"./types",
|
|
@@ -54,7 +54,8 @@
|
|
|
54
54
|
"../node_modules",
|
|
55
55
|
"node_modules",
|
|
56
56
|
"./**/*.test.ts",
|
|
57
|
-
"../src/**/*"
|
|
57
|
+
"../src/**/*",
|
|
58
|
+
"./cypress.config.mjs"
|
|
58
59
|
],
|
|
59
|
-
"include": ["!*.d.ts", "public/**/*.tsx", "**/*.ts"]
|
|
60
|
+
"include": ["!*.d.ts", "**/public/**/*.tsx", "**/*.ts"]
|
|
60
61
|
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { AuthzConfig } from 'backend/lib/config/model';
|
|
2
|
+
import { Roles } from 'public/config';
|
|
3
|
+
import { Subscription } from 'public/models/modules/authz.model';
|
|
4
|
+
|
|
5
|
+
export enum Actions {
|
|
6
|
+
VIEW = 'view',
|
|
7
|
+
CREATE = 'create',
|
|
8
|
+
EDIT = 'edit',
|
|
9
|
+
DELETE = 'delete',
|
|
10
|
+
LIST = 'list',
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export enum Resources {
|
|
14
|
+
ORGANIZATION = 'organization',
|
|
15
|
+
EVENT = 'event',
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const rolesPermissions: { name: string, resource: Resources, permissions: Actions[] }[] = [
|
|
19
|
+
{ name: Roles.MEMBER, resource: Resources.ORGANIZATION, permissions: [Actions.CREATE] },
|
|
20
|
+
{ name: Roles.OWNER, resource: Resources.ORGANIZATION, permissions: [Actions.EDIT, Actions.DELETE] },
|
|
21
|
+
{ name: Roles.OWNER, resource: Resources.EVENT, permissions: [Actions.VIEW, Actions.CREATE, Actions.EDIT, Actions.DELETE] },
|
|
22
|
+
{ name: Roles.VISITOR, resource: Resources.ORGANIZATION, permissions: [Actions.VIEW] },
|
|
23
|
+
{ name: Roles.VISITOR, resource: Resources.EVENT, permissions: [Actions.VIEW] },
|
|
24
|
+
] as const;
|
|
25
|
+
|
|
26
|
+
export const authzConfig: AuthzConfig<typeof Actions, typeof Resources> = {
|
|
27
|
+
modelPath: '/user-code/backend/authz/model.conf',
|
|
28
|
+
policyPath: '/user-code/backend/authz/policy.csv',
|
|
29
|
+
policies: rolesPermissions.map(role => {
|
|
30
|
+
const roles: string[][]=[];
|
|
31
|
+
for (const permission of role.permissions) {
|
|
32
|
+
roles.push([ role.name, role.resource, permission ]);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
return roles;
|
|
36
|
+
}).flat(),
|
|
37
|
+
matchFunctions: {
|
|
38
|
+
getSubscriptionLevelValue: (subscription: Subscription, orgCount: number, action: Actions, resource: Resources) => {
|
|
39
|
+
if(subscription.limits.organizations <= orgCount && action === Actions.CREATE && resource === Resources.ORGANIZATION) return false;
|
|
40
|
+
|
|
41
|
+
return true;
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
actions: Actions,
|
|
45
|
+
resources: Resources,
|
|
46
|
+
} as const;
|
|
47
|
+
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { BackendEnvironment } from 'backend/lib/config/model';
|
|
2
|
+
import { satisfies } from 'effect/Function';
|
|
3
|
+
|
|
4
|
+
export const environment = satisfies<BackendEnvironment>()({
|
|
5
|
+
development: process.env.SEGMENT === 'dev' ? true : false,
|
|
6
|
+
} as const);
|
|
7
|
+
|
|
8
|
+
export type Environment = typeof environment;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { BackendConfig } from 'backend/lib/config/model';
|
|
2
|
+
import { satisfies } from 'effect/Function';
|
|
3
|
+
import { config as publicConfig } from 'public/config';
|
|
4
|
+
import { LooseAutocomplete } from 'public/lib/models/helpers';
|
|
5
|
+
|
|
6
|
+
import { authzConfig } from './authz';
|
|
7
|
+
import { environment } from './env';
|
|
8
|
+
import { mailConfig } from './mail';
|
|
9
|
+
import { natsConfig } from './nats';
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
export const config = satisfies<BackendConfig>()({
|
|
13
|
+
...publicConfig,
|
|
14
|
+
...environment,
|
|
15
|
+
authz: authzConfig,
|
|
16
|
+
mail: mailConfig,
|
|
17
|
+
nats: natsConfig,
|
|
18
|
+
development: process.env.SEGMENT === 'dev',
|
|
19
|
+
collections: ['organizations'],
|
|
20
|
+
secrets: [ 'jwtSecret', 'velo-sync', 'nats-creds', 'license-service-key', 'smtp-user', 'smtp-password' ],
|
|
21
|
+
|
|
22
|
+
} as const);
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
export type ConfigSchema = typeof config;
|
|
26
|
+
export type SecretNames = LooseAutocomplete<typeof config.secrets[number]>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { MailConfig } from 'backend/lib/config/model';
|
|
2
|
+
import { satisfies } from 'effect/Function';
|
|
3
|
+
|
|
4
|
+
export const mailConfig = satisfies<MailConfig>()({
|
|
5
|
+
dispatchMail: process.env.SEGMENT === 'dev'? 'gradlon@integral-systems.ch' : 'info@integrale-akademie.ch',
|
|
6
|
+
smtpServer: 'smtp.gmail.com',
|
|
7
|
+
smtpPort: 587,
|
|
8
|
+
smtpSecure: false,
|
|
9
|
+
smtpReplyTo: 'info@integrale-akademie.ch',
|
|
10
|
+
} as const);
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { satisfies } from 'effect/Function';
|
|
2
|
+
import { PublicEnvironment } from 'public/lib/config/model';
|
|
3
|
+
|
|
4
|
+
export const environment = satisfies<PublicEnvironment>()({
|
|
5
|
+
gitTag: 'development',
|
|
6
|
+
debug: true,
|
|
7
|
+
} as const);
|
|
8
|
+
|
|
9
|
+
export type Environment = typeof environment;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { satisfies } from 'effect/Function';
|
|
2
|
+
import { Effect, Schedule } from 'effect/index';
|
|
3
|
+
import { PublicConfig } from 'public/lib/config/model';
|
|
4
|
+
import { parseError } from 'public/lib/error';
|
|
5
|
+
import { isDataError } from 'public/lib/error/data';
|
|
6
|
+
|
|
7
|
+
import { environment } from './env';
|
|
8
|
+
import { defaultLocale } from './locales';
|
|
9
|
+
|
|
10
|
+
const simpleSchedule = Schedule.fromDelays(50, 100, 200, 400, 800);
|
|
11
|
+
|
|
12
|
+
const advancedSchedule = Schedule.intersect(
|
|
13
|
+
Schedule.addDelay(
|
|
14
|
+
Schedule.recurWhileEffect((e) =>
|
|
15
|
+
Effect.gen(function* () {
|
|
16
|
+
if (typeof e === 'object' && e !== null && 'cause' in e) {
|
|
17
|
+
if (isDataError(e.cause)) {
|
|
18
|
+
const errorCodes = [
|
|
19
|
+
'WDE0028',
|
|
20
|
+
'WDE0053',
|
|
21
|
+
'WDE0054',
|
|
22
|
+
'WDE0055',
|
|
23
|
+
'WDE0110',
|
|
24
|
+
'WDE0115',
|
|
25
|
+
'WDE0116',
|
|
26
|
+
'WDE0128',
|
|
27
|
+
'WDE0149',
|
|
28
|
+
'WDE0178',
|
|
29
|
+
'WDE0180',
|
|
30
|
+
];
|
|
31
|
+
if (errorCodes.includes(e.cause.code)) {
|
|
32
|
+
yield* Effect.logWarning('Retrying due to known error:', e);
|
|
33
|
+
|
|
34
|
+
return true;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
yield* Effect.logDebug('Not retrying due to error:', parseError(e));
|
|
40
|
+
|
|
41
|
+
return false;
|
|
42
|
+
}),
|
|
43
|
+
),
|
|
44
|
+
() => 50,
|
|
45
|
+
),
|
|
46
|
+
Schedule.fromDelays(100, 200, 400, 800, 1600, 2000),
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
export enum Roles {
|
|
50
|
+
SUPER_ADMIN = 'super_admin',
|
|
51
|
+
OWNER = 'owner',
|
|
52
|
+
ADMIN = 'admin',
|
|
53
|
+
MEMBER = 'member',
|
|
54
|
+
VISITOR = 'visitor',
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
export const config = satisfies<PublicConfig<typeof Roles>>()({
|
|
58
|
+
...environment,
|
|
59
|
+
defaultTimeZone: 'Europe/Zurich',
|
|
60
|
+
defaultLanguage: defaultLocale,
|
|
61
|
+
languageField: 'language_id',
|
|
62
|
+
name: 'yeva',
|
|
63
|
+
stateVersion: '0.0.1',
|
|
64
|
+
persistErrors: false,
|
|
65
|
+
frontendDevMode: true,
|
|
66
|
+
simpleRetryPolicy: simpleSchedule,
|
|
67
|
+
advancedRetryPolicy: advancedSchedule,
|
|
68
|
+
roles: Roles,
|
|
69
|
+
urlSchema: {
|
|
70
|
+
targetPos: 1,
|
|
71
|
+
actionPos: 2,
|
|
72
|
+
resource: 0,
|
|
73
|
+
},
|
|
74
|
+
} as const);
|
|
75
|
+
|
|
76
|
+
export type ConfigSchema = typeof config;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { LanguageTag } from 'public/lib/models/common/locales.model';
|
|
2
|
+
|
|
3
|
+
export const languageTags: LanguageTag[] = [
|
|
4
|
+
{ isoCode: 'de-CH', short: 'de', name: 'Deutsch', id: '8fdb66f6-4bfd-47c9-a856-fbc2f19ece85' },
|
|
5
|
+
{ isoCode: 'en-US', short: 'en', name: 'English', id: '2a4ce40c-a478-4ff3-945b-09966f18a909' },
|
|
6
|
+
{ isoCode: 'fr-FR', short: 'fr', name: 'Français', id: 'e1b0bbeb-d38b-49c1-9b7a-83139ecc9435' },
|
|
7
|
+
{ isoCode: 'es-ES', short: 'es', name: 'Espanol', id: '8ec50660-fd3e-42e2-b5eb-8dd7aa861775' },
|
|
8
|
+
{ isoCode: 'it-IT', short: 'it', name: 'Italiano', id: '6fd616fa-8a78-414c-9d52-df082f11368f' },
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
export const localeToLanguageTag = new Map<string, LanguageTag>(
|
|
12
|
+
languageTags.map(lang => [lang.short, lang])
|
|
13
|
+
);
|
|
14
|
+
|
|
15
|
+
export const langISOMap = new Map<string, LanguageTag>(
|
|
16
|
+
languageTags.map(lang => [lang.isoCode, lang])
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export const formLocalsToLocales = new Map<string, Locales[number]>([
|
|
20
|
+
['Deutsch', 'de'],
|
|
21
|
+
['Englisch', 'en'],
|
|
22
|
+
]);
|
|
23
|
+
|
|
24
|
+
export const locales = ['de', 'en', 'fr', 'es', 'it'] as const;
|
|
25
|
+
export const enabledLocales = ['de', 'en'] as const satisfies readonly Locales[number][];
|
|
26
|
+
export const defaultLocale: EnabledLocales[number] = 'en';
|
|
27
|
+
export const defaultLocalTag: LanguageTag = localeToLanguageTag.get(defaultLocale) as LanguageTag;
|
|
28
|
+
|
|
29
|
+
export type Locales = (typeof locales);
|
|
30
|
+
export type EnabledLocales = (typeof enabledLocales);
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { ThemeSchema } from 'public/lib/models/common/theme.model';
|
|
2
|
+
|
|
3
|
+
export const theme: ThemeSchema = {
|
|
4
|
+
extraFonts: [],
|
|
5
|
+
extraFontName: 'Caveat',
|
|
6
|
+
logoUrl: 'https://static.wixstatic.com/media/170496_e7f9760357224702a3865d488de6e52f~mv2.png/v1/fill/w_160,h_107,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/logo.png',
|
|
7
|
+
logoSmUrl: 'https://static.wixstatic.com/media/1collectionItemsBaseSchema70496_e7f9760357224702a3865d488de6e52f~mv2.png/v1/fill/w_160,h_107,al_c,q_85,usm_0.66_1.00_0.01,enc_auto/logo.png',
|
|
8
|
+
light: {
|
|
9
|
+
backgroundAndTextColors: {
|
|
10
|
+
color1: '#FFF',
|
|
11
|
+
color2: '#E3E3E3',
|
|
12
|
+
color3: '#979797',
|
|
13
|
+
color4: '#4F4F4F',
|
|
14
|
+
color5: '#000000',
|
|
15
|
+
},
|
|
16
|
+
actionColor: {
|
|
17
|
+
color1: '#E8EAED',
|
|
18
|
+
color2: '#959EE5',
|
|
19
|
+
color3: '#384AD3',
|
|
20
|
+
color4: '#25318D',
|
|
21
|
+
color5: '#131946',
|
|
22
|
+
},
|
|
23
|
+
moreColors1: {
|
|
24
|
+
color1: '#F0D3DE',
|
|
25
|
+
color2: '#F0BDD4',
|
|
26
|
+
color3: '#F0A0C4',
|
|
27
|
+
color4: '#D0599D',
|
|
28
|
+
color5: '#D00E74',
|
|
29
|
+
},
|
|
30
|
+
moreColors2: {
|
|
31
|
+
color1: '#B0CED1',
|
|
32
|
+
color2: '#99CDD1',
|
|
33
|
+
color3: '#70CBD2',
|
|
34
|
+
color4: '#4FC8D1',
|
|
35
|
+
color5: '#0AC4D1',
|
|
36
|
+
},
|
|
37
|
+
moreColors3: {
|
|
38
|
+
color1: '#C7D3D5',
|
|
39
|
+
color2: '#9AA9AC',
|
|
40
|
+
color3: '#677E82',
|
|
41
|
+
color4: '#455457',
|
|
42
|
+
color5: '#222A2B',
|
|
43
|
+
},
|
|
44
|
+
fonts: {
|
|
45
|
+
fontH1: {
|
|
46
|
+
fontFamily: 'Poppins Semi Bold',
|
|
47
|
+
fontSize: '88px',
|
|
48
|
+
bold: false,
|
|
49
|
+
italic: false,
|
|
50
|
+
color: '#FFFFFF',
|
|
51
|
+
},
|
|
52
|
+
fontH2: {
|
|
53
|
+
fontFamily: 'Poppins Semi Bold',
|
|
54
|
+
fontSize: '72px',
|
|
55
|
+
bold: false,
|
|
56
|
+
italic: false,
|
|
57
|
+
color: '#FFFFFF',
|
|
58
|
+
},
|
|
59
|
+
fontH3: {
|
|
60
|
+
fontFamily: 'Poppins Semi Bold',
|
|
61
|
+
fontSize: '50px',
|
|
62
|
+
bold: false,
|
|
63
|
+
italic: false,
|
|
64
|
+
color: '#FFFFFF',
|
|
65
|
+
},
|
|
66
|
+
fontH4: {
|
|
67
|
+
fontFamily: 'Poppins Semi Bold',
|
|
68
|
+
fontSize: '40px',
|
|
69
|
+
bold: false,
|
|
70
|
+
italic: false,
|
|
71
|
+
color: '#FFFFFF',
|
|
72
|
+
},
|
|
73
|
+
fontH5: {
|
|
74
|
+
fontFamily: 'Poppins Semi Bold',
|
|
75
|
+
fontSize: '28px',
|
|
76
|
+
bold: false,
|
|
77
|
+
italic: false,
|
|
78
|
+
color: '#FFFFFF',
|
|
79
|
+
},
|
|
80
|
+
fontH6: {
|
|
81
|
+
fontFamily: 'Poppins Semi Bold',
|
|
82
|
+
fontSize: '22px',
|
|
83
|
+
bold: false,
|
|
84
|
+
italic: false,
|
|
85
|
+
color: '#FFFFFF',
|
|
86
|
+
},
|
|
87
|
+
paragraph1: {
|
|
88
|
+
fontFamily: 'Avenir Light',
|
|
89
|
+
fontSize: '18px',
|
|
90
|
+
bold: false,
|
|
91
|
+
italic: false,
|
|
92
|
+
color: '#FFFFFF',
|
|
93
|
+
},
|
|
94
|
+
paragraph2: {
|
|
95
|
+
fontFamily: 'Avenir Light',
|
|
96
|
+
fontSize: '15px',
|
|
97
|
+
bold: false,
|
|
98
|
+
italic: false,
|
|
99
|
+
color: '#FFFFFF',
|
|
100
|
+
},
|
|
101
|
+
paragraph3: {
|
|
102
|
+
fontFamily: 'Avenir Light',
|
|
103
|
+
fontSize: '14px',
|
|
104
|
+
bold: false,
|
|
105
|
+
italic: false,
|
|
106
|
+
color: '#FFFFFF',
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
}
|
|
110
|
+
};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { satisfies } from 'effect/Function';
|
|
2
|
+
import { baseNotification, commonBase } from 'public/lib/i18n/de';
|
|
3
|
+
import { NotificationTranslation } from 'public/lib/models/common/translator.model';
|
|
4
|
+
|
|
5
|
+
export type AllTranslationKeys =
|
|
6
|
+
| `common:${CommonKeys}`
|
|
7
|
+
| `notification:${NotificationKeys}`;
|
|
8
|
+
;
|
|
9
|
+
type CommonKeys = keyof typeof common;
|
|
10
|
+
type NotificationKeys = keyof typeof notification;
|
|
11
|
+
|
|
12
|
+
export type Common = { [K in keyof typeof common]: unknown }
|
|
13
|
+
const common = {
|
|
14
|
+
...commonBase,
|
|
15
|
+
mail_newsletter: {
|
|
16
|
+
subject: 'Willkommen beim Newsletter',
|
|
17
|
+
body: `Herzlich Willkommen beim Newsletter der Integrale Akademie Schweiz. Wir freuen uns, dass Sie sich für unseren Newsletter angemeldet haben.{{- br}}
|
|
18
|
+
Sie erhalten in Kürze eine E-Mail mit einem Bestätigungslink. Bitte klicken Sie auf den Link um Ihre Anmeldung zu bestätigen. {{- br}}
|
|
19
|
+
Als Dankeschön erhalten Sie einen Link zum exklusiven Download unseres Plakats "Stufen des Selbst".
|
|
20
|
+
`,
|
|
21
|
+
title: 'Willkommen beim Newsletter',
|
|
22
|
+
},
|
|
23
|
+
closed: 'Geschlossen',
|
|
24
|
+
monFri: 'Mo. - Fr.',
|
|
25
|
+
all: 'Alle',
|
|
26
|
+
sat: 'Sa.',
|
|
27
|
+
sun: 'So.',
|
|
28
|
+
mon: 'Mo.',
|
|
29
|
+
tue: 'Di.',
|
|
30
|
+
wed: 'Mi.',
|
|
31
|
+
thu: 'Do.',
|
|
32
|
+
fri: 'Fr.',
|
|
33
|
+
validationErrors: {
|
|
34
|
+
required: 'Dieses Feld ist erforderlich!',
|
|
35
|
+
email: 'Bitte geben Sie eine gültige E-Mail Adresse ein!',
|
|
36
|
+
phone: 'Bitte geben Sie eine gültige Telefonnummer ein!',
|
|
37
|
+
name: 'Bitte geben Sie einen gültigen Namen mit mindesten 2 Zeichen ein!',
|
|
38
|
+
},
|
|
39
|
+
} as const;
|
|
40
|
+
|
|
41
|
+
export type Notification = { [K in keyof typeof notification]: { title: string; message: string } }
|
|
42
|
+
const notification = satisfies<NotificationTranslation>()({
|
|
43
|
+
...baseNotification,
|
|
44
|
+
shop_calender_date_reset: {
|
|
45
|
+
title: 'Datum zurückgesetzt!',
|
|
46
|
+
message: 'Die gewünschte Filiale ist für den {{date}} geschlossen. Bitte wählen Sie ein neues Datum aus.',
|
|
47
|
+
},
|
|
48
|
+
shop_added_to_cart: {
|
|
49
|
+
title: 'Produkt erfolgreich zum Warenkorb hinzugefügt!',
|
|
50
|
+
message: 'Viel Spass beim weiteren Einkauf!',
|
|
51
|
+
},
|
|
52
|
+
shop_added_to_cart_failed: {
|
|
53
|
+
title: 'Das Produkt konnte nicht zum Warenkorb hinzugefügt werden!',
|
|
54
|
+
message: 'Bitte versuchen Sie es später erneut.',
|
|
55
|
+
},
|
|
56
|
+
shop_deleted_from_cart_failed: {
|
|
57
|
+
title: 'Das Produkt konnte nicht vom Warenkorb entfernt werden!',
|
|
58
|
+
message: 'Bitte versuchen Sie es später erneut.',
|
|
59
|
+
},
|
|
60
|
+
shop_deleted_from_cart: {
|
|
61
|
+
title: 'Produkt erfolgreich vom Warenkorb entfernt!',
|
|
62
|
+
message: 'Viel Spass beim weiteren Einkauf!',
|
|
63
|
+
},
|
|
64
|
+
shop_no_product_found: {
|
|
65
|
+
title: 'Kein Produkt gefunden!',
|
|
66
|
+
message: 'Kein Produkt enspricht der Suche.',
|
|
67
|
+
},
|
|
68
|
+
shop_load_cart_error: {
|
|
69
|
+
title: 'Wir konnten den Warenkorb nicht laden!',
|
|
70
|
+
message: 'Bitte versuchen Sie es später erneut. <br /> {{error}}',
|
|
71
|
+
},
|
|
72
|
+
shop_nothing_to_add: {
|
|
73
|
+
title: 'Wir konnten kein Produkt hinzufügen!',
|
|
74
|
+
message: 'Bitte versuchen Sie es später erneut.',
|
|
75
|
+
},
|
|
76
|
+
shop_payment_error: {
|
|
77
|
+
title: 'Zahlung fehlgeschlagen!',
|
|
78
|
+
message: 'Wir konnten den Bezahlvorgang nicht abschliessen. Bitte versuchen Sie es später erneut. <br /> <b>Status:</b> {{status}}',
|
|
79
|
+
},
|
|
80
|
+
shop_order_creation_error: {
|
|
81
|
+
title: 'Wir konnten die Bestellung nicht abschliessen!',
|
|
82
|
+
message: 'Die Zahlung ist eingegangen, aber wir konnten die Bestellung nicht abschliessen. Bitte kontaktieren Sie uns.<br /> <strong>Transatkions ID</strong>: {{transactionId}} <br /> <strong>Warenkorb ID</strong>: {{cartId}} <br /> <strong>Fehler: </strong>{{error}}',
|
|
83
|
+
},
|
|
84
|
+
shop_terms_not_accepted: {
|
|
85
|
+
title: 'Sie müssen die AGB akzeptieren!',
|
|
86
|
+
message: 'Bitte akzeptieren Sie die AGB um fortzufahren.',
|
|
87
|
+
},
|
|
88
|
+
shop_no_checkout: {
|
|
89
|
+
title: 'Wir konnten keine Bestellung finden!',
|
|
90
|
+
message: 'Bitte versuchen Sie es später erneut.',
|
|
91
|
+
},
|
|
92
|
+
shop_no_propper_address: {
|
|
93
|
+
title: 'Keine Filiale ausgewählt!',
|
|
94
|
+
message: 'Es wurde keine Filiale ausgewählt. Bitte wählen Sie eine <a href="/store-and-date-picker">Filiale</a> aus.',
|
|
95
|
+
},
|
|
96
|
+
date_not_available: {
|
|
97
|
+
title: 'Das ausgewählte Abholdatum ist nicht gültig!',
|
|
98
|
+
message: 'Das ausgewählte Abholdatum {{date}} ist nicht gültig. Bitte wählen Sie ein anderes Datum aus.',
|
|
99
|
+
},
|
|
100
|
+
cart_validation_error: {
|
|
101
|
+
title: 'Ungültige Angaben!',
|
|
102
|
+
message: 'Die Angaben für {{article}} sind ungültig. Bitte überprüfen Sie Ihre Angaben.',
|
|
103
|
+
},
|
|
104
|
+
cart_min_order_value: {
|
|
105
|
+
title: 'Mindestbestellwert nicht erreicht!',
|
|
106
|
+
message: 'Der Mindestbestellwert von {{minOrderValue}}.00 CHF wurde nicht erreicht.',
|
|
107
|
+
},
|
|
108
|
+
shop_cart_invalid: {
|
|
109
|
+
title: 'Der Warekorb ist ungültig!',
|
|
110
|
+
message: 'Bitte versuchen Sie es später erneut.',
|
|
111
|
+
},
|
|
112
|
+
shop_validation_error: {
|
|
113
|
+
title: 'Der Warenkorb enthält ungültige Produkte!',
|
|
114
|
+
message: '<b>{{article}} ist ungültig</b><br>- {{- validationErrors}}',
|
|
115
|
+
},
|
|
116
|
+
shop_payment_failed: {
|
|
117
|
+
title: 'Weiterleitung zum Warenkorb',
|
|
118
|
+
message: 'Sie werden in 2 Minuten zum Warenkorb weitergeleitet. <a href="/warenkorb">Zum Warenkorb</a>',
|
|
119
|
+
}
|
|
120
|
+
} as const);
|
|
121
|
+
|
|
122
|
+
export { common, notification };
|
|
123
|
+
export default { common, notification };
|