lucy-cli 2.0.0-beta.10 → 2.0.0-beta.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/commands/copy.js.map +1 -1
- package/dist/commands/git.d.ts +3 -2
- package/dist/commands/git.js +34 -0
- package/dist/commands/git.js.map +1 -1
- package/dist/commands/home.d.ts +1 -1
- package/dist/commands/home.js +2 -25
- package/dist/commands/home.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/init/cargo.d.ts +1 -1
- package/dist/init/git.d.ts +2 -0
- package/dist/init/git.js +13 -0
- package/dist/init/git.js.map +1 -0
- package/dist/init/gitModules.d.ts +1 -1
- package/dist/init/index.d.ts +2 -1
- package/dist/init/index.js +0 -1
- package/dist/init/index.js.map +1 -1
- package/dist/init/monorepo.d.ts +1 -1
- package/dist/init/prepareVelo.d.ts +1 -1
- package/dist/init/tauri.d.ts +1 -1
- package/dist/init/templates.d.ts +1 -1
- package/dist/init/templates.js +1 -1
- package/dist/init/templates.js.map +1 -1
- package/dist/init/velo.d.ts +1 -1
- package/package.json +1 -1
- package/src/commands/copy.ts +1 -0
- package/src/commands/git.ts +39 -0
- package/src/commands/home.ts +2 -38
- package/src/index.ts +1 -1
- package/src/init/index.ts +0 -1
- package/src/init/templates.ts +1 -1
- package/files/templates/block[D]/files/.cursorignore +0 -4
- package/files/templates/block[D]/files/.stylelintrc.js +0 -8
- package/files/templates/block[D]/lucy.json +0 -9
- package/files/templates/cargo[D]/files/.cursorignore +0 -4
- package/files/templates/cargo[D]/files/.env +0 -1
- package/files/templates/cargo[D]/files/Cargo.toml +0 -238
- package/files/templates/cargo[D]/files/Makefile.toml +0 -4
- package/files/templates/cargo[D]/files/build/main.rs +0 -35
- package/files/templates/cargo[D]/files/config/beta.json +0 -19
- package/files/templates/cargo[D]/files/config/ci.json +0 -15
- package/files/templates/cargo[D]/files/config/default.json +0 -71
- package/files/templates/cargo[D]/files/config/development.json +0 -10
- package/files/templates/cargo[D]/files/config/produktion.json +0 -5
- package/files/templates/cargo[D]/files/config/stage.json +0 -4
- package/files/templates/cargo[D]/files/locales/todo.yml +0 -3
- package/files/templates/cargo[D]/files/public/index.html +0 -1
- package/files/templates/cargo[D]/lucy.json +0 -15
- package/files/templates/expo verse[D]/files/.nvmrc +0 -1
- package/files/templates/expo verse[D]/files/.prettierignore +0 -23
- package/files/templates/expo verse[D]/files/.prettierrc.js +0 -16
- package/files/templates/expo verse[D]/files/.stylelintrc.json +0 -8
- package/files/templates/expo verse[D]/files/.vscode/extensions.json +0 -10
- package/files/templates/expo verse[D]/files/.vscode/launch.json +0 -54
- package/files/templates/expo verse[D]/files/.vscode/settings.json +0 -30
- package/files/templates/expo verse[D]/files/.vscode/tasks.json +0 -0
- package/files/templates/expo verse[D]/files/.yarnrc +0 -1
- package/files/templates/expo verse[D]/files/.yarnrc.yml +0 -8
- package/files/templates/expo verse[D]/files/App.tsx +0 -63
- package/files/templates/expo verse[D]/files/DEBUGGING.md +0 -126
- package/files/templates/expo verse[D]/files/README.md +0 -45
- package/files/templates/expo verse[D]/files/android/app/build.gradle +0 -177
- package/files/templates/expo verse[D]/files/android/app/debug.keystore +0 -0
- package/files/templates/expo verse[D]/files/android/app/proguard-rules.pro +0 -14
- package/files/templates/expo verse[D]/files/android/app/src/debug/AndroidManifest.xml +0 -7
- package/files/templates/expo verse[D]/files/android/app/src/main/AndroidManifest.xml +0 -33
- package/files/templates/expo verse[D]/files/android/app/src/main/java/so/sunnysideup/daily_verse/MainActivity.kt +0 -65
- package/files/templates/expo verse[D]/files/android/app/src/main/java/so/sunnysideup/daily_verse/MainApplication.kt +0 -57
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable/ic_launcher_background.xml +0 -6
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable/rn_edit_text_material.xml +0 -37
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-hdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-mdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-night-hdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-night-mdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-night-xhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-night-xxhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-night-xxxhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-xhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-xxhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable-xxxhdpi/splashscreen_logo.png +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -6
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -6
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-hdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-hdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-hdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-mdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-mdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-mdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xhdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xhdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xhdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_monochrome.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp +0 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/values/colors.xml +0 -6
- package/files/templates/expo verse[D]/files/android/app/src/main/res/values/strings.xml +0 -7
- package/files/templates/expo verse[D]/files/android/app/src/main/res/values/styles.xml +0 -12
- package/files/templates/expo verse[D]/files/android/app/src/main/res/values-night/colors.xml +0 -3
- package/files/templates/expo verse[D]/files/android/build.gradle +0 -37
- package/files/templates/expo verse[D]/files/android/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/files/templates/expo verse[D]/files/android/gradle/wrapper/gradle-wrapper.properties +0 -7
- package/files/templates/expo verse[D]/files/android/gradle.properties +0 -59
- package/files/templates/expo verse[D]/files/android/gradlew +0 -251
- package/files/templates/expo verse[D]/files/android/gradlew.bat +0 -94
- package/files/templates/expo verse[D]/files/android/settings.gradle +0 -39
- package/files/templates/expo verse[D]/files/app.config.ts +0 -77
- package/files/templates/expo verse[D]/files/assets/data/de.csv +0 -949
- package/files/templates/expo verse[D]/files/assets/data/en.csv +0 -949
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-Black.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-BlackItalic.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-Bold.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-BoldItalic.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-ExtraBold.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-ExtraBoldItalic.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-Italic.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-Medium.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-MediumItalic.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-Regular.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-SemiBold.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/PlayfairDisplay-SemiBoldItalic.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/fonts/SpaceMono-Regular.ttf +0 -0
- package/files/templates/expo verse[D]/files/assets/images/andorid/background.png +0 -0
- package/files/templates/expo verse[D]/files/assets/images/android-dark.png +0 -0
- package/files/templates/expo verse[D]/files/assets/images/android-light.png +0 -0
- package/files/templates/expo verse[D]/files/assets/images/background.png +0 -0
- package/files/templates/expo verse[D]/files/assets/images/ios-dark.png +0 -0
- package/files/templates/expo verse[D]/files/assets/images/ios-light.png +0 -0
- package/files/templates/expo verse[D]/files/assets/images/ios-tinted.png +0 -0
- package/files/templates/expo verse[D]/files/assets/images/splash-icon-dark.png +0 -0
- package/files/templates/expo verse[D]/files/assets/images/splash-icon-light.png +0 -0
- package/files/templates/expo verse[D]/files/babel.config.js +0 -10
- package/files/templates/expo verse[D]/files/components/.gitkeep +0 -0
- package/files/templates/expo verse[D]/files/components/MainScreen.tsx +0 -299
- package/files/templates/expo verse[D]/files/components/Share.tsx +0 -132
- package/files/templates/expo verse[D]/files/components/ui/.gitkeep +0 -0
- package/files/templates/expo verse[D]/files/components/ui/dev.tsx +0 -48
- package/files/templates/expo verse[D]/files/constants/config.ts +0 -30
- package/files/templates/expo verse[D]/files/constants/theme.ts +0 -18
- package/files/templates/expo verse[D]/files/data/de.csv +0 -219
- package/files/templates/expo verse[D]/files/data/en.csv +0 -219
- package/files/templates/expo verse[D]/files/data/version.json +0 -4
- package/files/templates/expo verse[D]/files/eas.json +0 -47
- package/files/templates/expo verse[D]/files/eslint.config.mjs +0 -185
- package/files/templates/expo verse[D]/files/global.css +0 -47
- package/files/templates/expo verse[D]/files/hooks/useColorScheme.ts +0 -17
- package/files/templates/expo verse[D]/files/index.ts +0 -28
- package/files/templates/expo verse[D]/files/lib/content.ts +0 -31
- package/files/templates/expo verse[D]/files/lib/data.ts +0 -180
- package/files/templates/expo verse[D]/files/lib/helper.ts +0 -54
- package/files/templates/expo verse[D]/files/lib/index.ts +0 -21
- package/files/templates/expo verse[D]/files/lib/state.ts +0 -128
- package/files/templates/expo verse[D]/files/lib/storage.ts +0 -17
- package/files/templates/expo verse[D]/files/lib/taskManager/index.ts +0 -38
- package/files/templates/expo verse[D]/files/lib/taskManager/loadData.ts +0 -14
- package/files/templates/expo verse[D]/files/lib/utils/index.ts +0 -11
- package/files/templates/expo verse[D]/files/lib/utils/polyfills.ts +0 -29
- package/files/templates/expo verse[D]/files/lib/utils/screenshot.ts +0 -77
- package/files/templates/expo verse[D]/files/lucy.json +0 -8
- package/files/templates/expo verse[D]/files/metro.config.js +0 -81
- package/files/templates/expo verse[D]/files/models/index.ts +0 -28
- package/files/templates/expo verse[D]/files/nativewind-env.d.ts +0 -1
- package/files/templates/expo verse[D]/files/package.json +0 -102
- package/files/templates/expo verse[D]/files/pnpm-workspace.yaml +0 -3
- package/files/templates/expo verse[D]/files/scripts/convert-verses.ts +0 -309
- package/files/templates/expo verse[D]/files/scripts/move-artifacts.ts +0 -83
- package/files/templates/expo verse[D]/files/scripts/reset-project.ts +0 -116
- package/files/templates/expo verse[D]/files/tailwind.config.js +0 -63
- package/files/templates/expo verse[D]/files/tsconfig.json +0 -45
- package/files/templates/expo verse[D]/files/types/index.ts +0 -4
- package/files/templates/expo verse[D]/files/types/reset.d.ts +0 -1
- package/files/templates/expo verse[D]/lucy.json +0 -86
- package/files/templates/expo[D]/files/.cursorignore +0 -4
- package/files/templates/expo[D]/files/.nvmrc +0 -1
- package/files/templates/expo[D]/files/.prettierignore +0 -23
- package/files/templates/expo[D]/files/.prettierrc.js +0 -16
- package/files/templates/expo[D]/files/.stylelintrc.js +0 -8
- package/files/templates/expo[D]/files/.yarnrc +0 -1
- package/files/templates/expo[D]/files/.yarnrc.yml +0 -3
- package/files/templates/expo[D]/files/README.md +0 -45
- package/files/templates/expo[D]/files/app.config.ts +0 -69
- package/files/templates/expo[D]/files/assets/fonts/SpaceMono-Regular.ttf +0 -0
- package/files/templates/expo[D]/files/assets/images/adaptive-icon.png +0 -0
- package/files/templates/expo[D]/files/assets/images/favicon.png +0 -0
- package/files/templates/expo[D]/files/assets/images/icon.png +0 -0
- package/files/templates/expo[D]/files/assets/images/splash-icon.png +0 -0
- package/files/templates/expo[D]/files/babel.config.js +0 -10
- package/files/templates/expo[D]/files/components/.gitkeep +0 -0
- package/files/templates/expo[D]/files/components/ui/.gitkeep +0 -0
- package/files/templates/expo[D]/files/constants/theme.ts +0 -18
- package/files/templates/expo[D]/files/eas.json +0 -32
- package/files/templates/expo[D]/files/eslint.config.mjs +0 -181
- package/files/templates/expo[D]/files/global.css +0 -47
- package/files/templates/expo[D]/files/hooks/useColorScheme.ts +0 -17
- package/files/templates/expo[D]/files/index.ts +0 -11
- package/files/templates/expo[D]/files/lib/data.ts +0 -197
- package/files/templates/expo[D]/files/lib/utils/index.ts +0 -11
- package/files/templates/expo[D]/files/lib/utils/polyfills.ts +0 -29
- package/files/templates/expo[D]/files/lib/wix/client.ts +0 -12
- package/files/templates/expo[D]/files/lib/wix/error.ts +0 -3
- package/files/templates/expo[D]/files/lib/wix/index.ts +0 -2
- package/files/templates/expo[D]/files/metro.config.js +0 -63
- package/files/templates/expo[D]/files/nativewind-env.d.ts +0 -1
- package/files/templates/expo[D]/files/pnpm-workspace.yaml +0 -3
- package/files/templates/expo[D]/files/scripts/reset-project.ts +0 -116
- package/files/templates/expo[D]/files/tailwind.config.js +0 -63
- package/files/templates/expo[D]/files/tsconfig.json +0 -46
- package/files/templates/expo[D]/files/types/reset.d.ts +0 -1
- package/files/templates/expo[D]/lucy.json +0 -86
- package/files/templates/monorepo[D]/files/.cursorignore +0 -4
- package/files/templates/monorepo[D]/files/.editorconfig +0 -10
- package/files/templates/monorepo[D]/files/.nvmrc +0 -1
- package/files/templates/monorepo[D]/files/.prettierignore +0 -23
- package/files/templates/monorepo[D]/files/.prettierrc.json +0 -15
- package/files/templates/monorepo[D]/files/.stylelintrc.js +0 -8
- package/files/templates/monorepo[D]/files/.yarnrc +0 -1
- package/files/templates/monorepo[D]/files/.yarnrc.yml +0 -3
- package/files/templates/monorepo[D]/files/README.md +0 -109
- package/files/templates/monorepo[D]/files/currents.config.ts +0 -5
- package/files/templates/monorepo[D]/files/nx.json +0 -25
- package/files/templates/monorepo[D]/files/pnpm-workspace.yaml +0 -11
- package/files/templates/monorepo[D]/files/tsconfig.json +0 -6
- package/files/templates/monorepo[D]/files/typedoc.json +0 -25
- package/files/templates/monorepo[D]/files/vitest.config.ts +0 -27
- package/files/templates/monorepo[D]/lucy.json +0 -69
- package/files/templates/tauri[D]/files/.cursorignore +0 -4
- package/files/templates/tauri[D]/lucy.json +0 -9
- package/files/templates/velo[D]/files/.cursorignore +0 -4
- package/files/templates/velo[D]/files/.gitmodules +0 -0
- package/files/templates/velo[D]/files/.madgerc +0 -8
- package/files/templates/velo[D]/files/.nvmrc +0 -1
- package/files/templates/velo[D]/files/.prettierignore +0 -23
- package/files/templates/velo[D]/files/.prettierrc.js +0 -16
- package/files/templates/velo[D]/files/.stylelintrc.js +0 -9
- package/files/templates/velo[D]/files/.yarnrc.yml +0 -2
- package/files/templates/velo[D]/files/currents.config.js +0 -5
- package/files/templates/velo[D]/files/cypress/e2e/base/base.cy.ts +0 -14
- package/files/templates/velo[D]/files/cypress/fixtures/example.json +0 -5
- package/files/templates/velo[D]/files/cypress/support/commands.ts +0 -37
- package/files/templates/velo[D]/files/cypress/support/e2e.ts +0 -24
- package/files/templates/velo[D]/files/cypress/tsconfig.json +0 -9
- package/files/templates/velo[D]/files/cypress.config.mjs +0 -19
- package/files/templates/velo[D]/files/eslint.config.mjs +0 -186
- package/files/templates/velo[D]/files/local.tsconfig.json +0 -61
- package/files/templates/velo[D]/files/typedoc.json +0 -25
- package/files/templates/velo[D]/files/typescript/__mocks__/.gitkeep +0 -0
- package/files/templates/velo[D]/files/typescript/backend/config/authz.ts +0 -47
- package/files/templates/velo[D]/files/typescript/backend/config/env.ts +0 -8
- package/files/templates/velo[D]/files/typescript/backend/config/index.ts +0 -26
- package/files/templates/velo[D]/files/typescript/backend/config/mail.ts +0 -10
- package/files/templates/velo[D]/files/typescript/backend/config/nats.ts +0 -6
- package/files/templates/velo[D]/files/typescript/backend/data.ts +0 -0
- package/files/templates/velo[D]/files/typescript/backend/events.ts +0 -0
- package/files/templates/velo[D]/files/typescript/backend/http-functions.ts +0 -81
- package/files/templates/velo[D]/files/typescript/backend/lib/http-functions/sync.ts +0 -270
- package/files/templates/velo[D]/files/typescript/backend/permissions.json +0 -17
- package/files/templates/velo[D]/files/typescript/pages/.gitkeep +0 -0
- package/files/templates/velo[D]/files/typescript/public/.gitkeep +0 -0
- package/files/templates/velo[D]/files/typescript/public/config/env.ts +0 -9
- package/files/templates/velo[D]/files/typescript/public/config/index.ts +0 -76
- package/files/templates/velo[D]/files/typescript/public/config/locales.ts +0 -30
- package/files/templates/velo[D]/files/typescript/public/config/theme.ts +0 -110
- package/files/templates/velo[D]/files/typescript/public/i18n/default.ts +0 -123
- package/files/templates/velo[D]/files/typescript/public/i18n/en.ts +0 -117
- package/files/templates/velo[D]/files/typescript/public/models/collections/member_roles.mode.ts +0 -21
- package/files/templates/velo[D]/files/typescript/public/models/collections/organization.model.ts +0 -38
- package/files/templates/velo[D]/files/typescript/public/models/collections/plan.model.ts +0 -94
- package/files/templates/velo[D]/files/typescript/public/models/collections/stage.model.ts +0 -14
- package/files/templates/velo[D]/files/typescript/public/models/collections/subscriptions.model.ts +0 -80
- package/files/templates/velo[D]/files/typescript/public/models/collections/tag.model.ts +0 -15
- package/files/templates/velo[D]/files/typescript/public/models/collections/translations.model.ts +0 -16
- package/files/templates/velo[D]/files/typescript/public/models/modules/authz.model.ts +0 -31
- package/files/templates/velo[D]/files/typescript/public/models/modules/organization.ts +0 -20
- package/files/templates/velo[D]/files/typescript/public/models/splitwise.model.ts +0 -18
- package/files/templates/velo[D]/files/typescript/public/models/store/local.model.ts +0 -10
- package/files/templates/velo[D]/files/typescript/public/models/store/memory.model.ts +0 -10
- package/files/templates/velo[D]/files/typescript/public/models/store/session.model.ts +0 -10
- package/files/templates/velo[D]/files/typescript/public/models/wix/ecom/payment.ts +0 -236
- package/files/templates/velo[D]/files/typescript/public/scss/app.scss +0 -0
- package/files/templates/velo[D]/files/typescript/styles/.gitkeep +0 -0
- package/files/templates/velo[D]/files/typescript/styles/global.scss +0 -0
- package/files/templates/velo[D]/files/typescript/tsconfig.json +0 -72
- package/files/templates/velo[D]/files/vitest.config.ts +0 -45
- package/files/templates/velo[D]/lucy.json +0 -137
|
@@ -1,270 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
2
|
-
/* eslint-disable @typescript-eslint/no-unsafe-argument */
|
|
3
|
-
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
4
|
-
/* eslint-disable @typescript-eslint/naming-convention */
|
|
5
|
-
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
6
|
-
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
7
|
-
/* eslint-disable @typescript-eslint/no-unsafe-assignment */
|
|
8
|
-
|
|
9
|
-
import crypto from 'crypto';
|
|
10
|
-
import wixData from 'wix-data';
|
|
11
|
-
import { forbidden, ok, serverError, WixHttpFunctionRequest, WixHttpFunctionResponse } from 'wix-http-functions';
|
|
12
|
-
import { mediaManager } from 'wix-media-backend';
|
|
13
|
-
import wixSecretsBackend from 'wix-secrets-backend';
|
|
14
|
-
|
|
15
|
-
/**----------------------------------------------
|
|
16
|
-
* * INFO
|
|
17
|
-
* URL to call this HTTP function from your published site looks like:
|
|
18
|
-
* Premium site - https://mysite.com/_functions/example/multiply?leftOperand=3&rightOperand=4
|
|
19
|
-
* Free site - https://username.wixsite.com/mysite/_functions/example/multiply?leftOperand=3&rightOperand=4
|
|
20
|
-
*
|
|
21
|
-
* URL to test this HTTP function from your saved site looks like:
|
|
22
|
-
* Premium site - https://mysite.com/_functions-dev/example/multiply?leftOperand=3&rightOperand=4
|
|
23
|
-
* Free site - https://username.wixsite.com/mysite/_functions-dev/example/multiply?leftOperand=3&rightOperand=4
|
|
24
|
-
*---------------------------------------------**/
|
|
25
|
-
|
|
26
|
-
//! WARNING: The following code is taken out of velo-sync package.
|
|
27
|
-
//! WARNING: This serves as example and is not tested.
|
|
28
|
-
|
|
29
|
-
class ForbiddenError extends Error {
|
|
30
|
-
constructor(message: string) {
|
|
31
|
-
super(message);
|
|
32
|
-
this.type = FORBIDDEN;
|
|
33
|
-
}
|
|
34
|
-
type: string;
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
const FORBIDDEN = 'forbidden';
|
|
38
|
-
|
|
39
|
-
/**
|
|
40
|
-
* Validates the request and parses the payload
|
|
41
|
-
* @param request - the request object
|
|
42
|
-
* @returns the parsed payload
|
|
43
|
-
*/
|
|
44
|
-
export async function validateAndParseRequest(request: WixHttpFunctionRequest) {
|
|
45
|
-
const payload = await request.body.text();
|
|
46
|
-
const payloadJson = JSON.parse(payload, dateReviver) as any;
|
|
47
|
-
const secret = await wixSecretsBackend.getSecret('velo-sync');
|
|
48
|
-
const hmac = crypto.createHmac('sha256', secret);
|
|
49
|
-
hmac.update(JSON.stringify(payloadJson.data, dateReplacer));
|
|
50
|
-
const digest = hmac.digest('hex');
|
|
51
|
-
if (digest !== payloadJson.signature){
|
|
52
|
-
const forbiddenError = new ForbiddenError('invalid signature check');
|
|
53
|
-
forbiddenError.type = FORBIDDEN;
|
|
54
|
-
throw forbiddenError;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
return payloadJson.data;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
/**
|
|
61
|
-
* Logs the request and handles the response
|
|
62
|
-
* @param name - the name of the request
|
|
63
|
-
* @param handler - the handler function
|
|
64
|
-
* @returns the response object
|
|
65
|
-
*/
|
|
66
|
-
export async function logRequest(name:string, handler: () => Promise<any>) {
|
|
67
|
-
console.log(name, 'start');
|
|
68
|
-
const start = new Date().getTime();
|
|
69
|
-
try {
|
|
70
|
-
const response = await handler();
|
|
71
|
-
const now = new Date().getTime();
|
|
72
|
-
console.log(name, 'completed ok, time:', now - start);
|
|
73
|
-
|
|
74
|
-
return ok({ body: response });
|
|
75
|
-
}
|
|
76
|
-
catch (e: any){
|
|
77
|
-
const now = new Date().getTime();
|
|
78
|
-
if (e.type === FORBIDDEN){
|
|
79
|
-
console.log(name, 'forbidden:', e.message, ', time:', now - start);
|
|
80
|
-
|
|
81
|
-
return forbidden({ body: e.message });
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
console.log(name, 'failed with error:', e.message, ', time:', now - start);
|
|
85
|
-
|
|
86
|
-
return serverError({ body: e.message });
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
/**
|
|
92
|
-
* Checks if the service is alive
|
|
93
|
-
* @param request - the request object
|
|
94
|
-
* @returns the response object
|
|
95
|
-
*/
|
|
96
|
-
export async function isAlive(request: WixHttpFunctionRequest): Promise<WixHttpFunctionResponse> {
|
|
97
|
-
return await logRequest('isAlive', async () => {
|
|
98
|
-
const data = await validateAndParseRequest(request);
|
|
99
|
-
if (data.isAlive === '?')
|
|
100
|
-
{return 'ok';}
|
|
101
|
-
else
|
|
102
|
-
{throw new Error('protocol error - the isAlive API expects isAlive member in the data payload');}
|
|
103
|
-
});
|
|
104
|
-
}
|
|
105
|
-
|
|
106
|
-
/**
|
|
107
|
-
* Inserts a batch of items
|
|
108
|
-
* @param request - the request object
|
|
109
|
-
* @returns the response object
|
|
110
|
-
*/
|
|
111
|
-
export async function insertItemBatch(request: WixHttpFunctionRequest): Promise<WixHttpFunctionResponse> {
|
|
112
|
-
return await logRequest('insertItemBatch', async () => {
|
|
113
|
-
const data = await validateAndParseRequest(request);
|
|
114
|
-
const itemsToInsert = data.items;
|
|
115
|
-
const collection = data.collection;
|
|
116
|
-
|
|
117
|
-
return await wixData.bulkInsert(collection, itemsToInsert, { suppressAuth: true });
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Saves a batch of items
|
|
123
|
-
* @param request - the request object
|
|
124
|
-
* @returns the response object
|
|
125
|
-
*/
|
|
126
|
-
export async function saveItemBatch(request: WixHttpFunctionRequest): Promise<WixHttpFunctionResponse> {
|
|
127
|
-
return await logRequest('saveItemBatch', async () => {
|
|
128
|
-
const data = await validateAndParseRequest(request);
|
|
129
|
-
const items = data.items;
|
|
130
|
-
const collection = data.collection;
|
|
131
|
-
|
|
132
|
-
return await wixData.bulkSave(collection, items, { suppressAuth: true });
|
|
133
|
-
});
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
/**
|
|
137
|
-
* Clears stale items
|
|
138
|
-
* @param request - the request object
|
|
139
|
-
* @returns the response object
|
|
140
|
-
*/
|
|
141
|
-
export async function clearStale(request: WixHttpFunctionRequest): Promise<WixHttpFunctionResponse> {
|
|
142
|
-
return await logRequest('clearStale', async () => {
|
|
143
|
-
const data = await validateAndParseRequest(request);
|
|
144
|
-
const collection = data.collection;
|
|
145
|
-
|
|
146
|
-
const date = new Date();
|
|
147
|
-
date.setDate(date.getDate() - 3);
|
|
148
|
-
|
|
149
|
-
const res = await wixData.query(collection)
|
|
150
|
-
.lt('_updatedDate', date)
|
|
151
|
-
.find({ suppressAuth: true });
|
|
152
|
-
console.log(`clearStale - found ${res.totalCount} items to remove, current page ${res.length}`);
|
|
153
|
-
const itemsToDelete = res.items;
|
|
154
|
-
const ids = itemsToDelete.map((_: any )=> _._id);
|
|
155
|
-
const removeResult = await wixData.bulkRemove(collection, ids, { suppressAuth: true });
|
|
156
|
-
|
|
157
|
-
return { itemsRemoved: removeResult.removed, staleItems: res.totalCount - removeResult.removed, errors: removeResult.errors };
|
|
158
|
-
});
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
/**
|
|
162
|
-
* Batch checks the update state of items
|
|
163
|
-
* @param request - the request object
|
|
164
|
-
* @returns the response object
|
|
165
|
-
*/
|
|
166
|
-
export async function batchCheckUpdateState(request: WixHttpFunctionRequest): Promise<WixHttpFunctionResponse> {
|
|
167
|
-
return await logRequest('batchCheckUpdateState', async () => {
|
|
168
|
-
const data = await validateAndParseRequest(request);
|
|
169
|
-
|
|
170
|
-
const collection = data.collection;
|
|
171
|
-
const items = data.items;
|
|
172
|
-
const dryrun = data.dryrun;
|
|
173
|
-
|
|
174
|
-
const queries = items.map((item: any) => wixData.query(collection).eq('_id', item._id));
|
|
175
|
-
|
|
176
|
-
const query = queries.reduce((accuQuery: any, query: any) => (accuQuery)?accuQuery.or(query): query);
|
|
177
|
-
const result:any[] = [];
|
|
178
|
-
const itemsToUpdate: any[] = [];
|
|
179
|
-
const res = await query.find({ suppressAuth: true });
|
|
180
|
-
items.forEach((item: any) => {
|
|
181
|
-
const foundItem = res.items.find((_: any) => _._id === item._id);
|
|
182
|
-
if (foundItem && foundItem._hash === item._hash){
|
|
183
|
-
itemsToUpdate.push(foundItem);
|
|
184
|
-
result.push({ status: 'ok', _id: item._id });
|
|
185
|
-
}
|
|
186
|
-
else if (foundItem){
|
|
187
|
-
result.push({ status: 'need-update', _id: item._id });
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
result.push({ status: 'not-found', _id: item._id });
|
|
191
|
-
}
|
|
192
|
-
});
|
|
193
|
-
if (!dryrun)
|
|
194
|
-
{await wixData.bulkUpdate(collection, itemsToUpdate, { suppressAuth: true });}
|
|
195
|
-
|
|
196
|
-
return JSON.stringify(result);
|
|
197
|
-
});
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
/**
|
|
201
|
-
* Gets an image upload URL
|
|
202
|
-
* @param request - the request object
|
|
203
|
-
* @returns the response object
|
|
204
|
-
*/
|
|
205
|
-
export async function getImageUploadUrl(request: WixHttpFunctionRequest): Promise<WixHttpFunctionResponse> {
|
|
206
|
-
return await logRequest('getImageUploadUrl', async () => {
|
|
207
|
-
const data = await validateAndParseRequest(request);
|
|
208
|
-
|
|
209
|
-
const mimeType = data.mimeTypes;
|
|
210
|
-
const _id = data._id;
|
|
211
|
-
const fieldName = data.fieldName;
|
|
212
|
-
const collection = data.collection;
|
|
213
|
-
const mediaType = data.mediaType;
|
|
214
|
-
|
|
215
|
-
const uploadUrlObj = await mediaManager.getUploadUrl('/synced-images',
|
|
216
|
-
{
|
|
217
|
-
'mediaOptions': {
|
|
218
|
-
mimeType,
|
|
219
|
-
mediaType
|
|
220
|
-
},
|
|
221
|
-
'metadataOptions': {
|
|
222
|
-
'isPrivate': false,
|
|
223
|
-
'isVisitorUpload': false,
|
|
224
|
-
'context': {
|
|
225
|
-
_id,
|
|
226
|
-
fieldName,
|
|
227
|
-
collection
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
});
|
|
231
|
-
|
|
232
|
-
return uploadUrlObj;
|
|
233
|
-
});
|
|
234
|
-
}
|
|
235
|
-
|
|
236
|
-
const dateRegex = /^Date\((\d+)\)$/;
|
|
237
|
-
/**
|
|
238
|
-
*
|
|
239
|
-
* @param key
|
|
240
|
-
* @param value
|
|
241
|
-
*/
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Reviver function for JSON.parse that converts string representations of Date objects to Date objects
|
|
245
|
-
* @param key The key of the value
|
|
246
|
-
* @param value The value to convert
|
|
247
|
-
* @returns The converted Date object
|
|
248
|
-
*/
|
|
249
|
-
export function dateReviver(key: string, value: string) {
|
|
250
|
-
const match = dateRegex.exec(value);
|
|
251
|
-
if (match){
|
|
252
|
-
return new Date(Number(match[1]));
|
|
253
|
-
}
|
|
254
|
-
|
|
255
|
-
return value;
|
|
256
|
-
}
|
|
257
|
-
|
|
258
|
-
/**
|
|
259
|
-
* Replacer function for JSON.stringify that converts Date objects to a string representation
|
|
260
|
-
* @param key The key of the value
|
|
261
|
-
* @param value The value to convert
|
|
262
|
-
* @returns The converted value
|
|
263
|
-
*/
|
|
264
|
-
export function dateReplacer(this: any, key: string, value: string) {
|
|
265
|
-
const v = this[key];
|
|
266
|
-
if (v instanceof Date)
|
|
267
|
-
{return 'Date('+v.getTime()+')';}
|
|
268
|
-
else
|
|
269
|
-
{return value;}
|
|
270
|
-
}
|
|
File without changes
|
|
File without changes
|
|
@@ -1,9 +0,0 @@
|
|
|
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;
|
|
@@ -1,76 +0,0 @@
|
|
|
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;
|
|
@@ -1,30 +0,0 @@
|
|
|
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);
|
|
@@ -1,110 +0,0 @@
|
|
|
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
|
-
};
|
|
@@ -1,123 +0,0 @@
|
|
|
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 };
|