lucy-cli 2.0.0-alpha.9 → 2.0.0-beta.10
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/.yarnrc.yml +0 -1
- package/README.md +117 -102
- package/dist/args.d.ts +1 -6
- package/dist/args.js +102 -7
- package/dist/args.js.map +1 -0
- package/dist/commands/checks.d.ts +7 -0
- package/dist/commands/checks.js +47 -0
- package/dist/commands/checks.js.map +1 -0
- package/dist/commands/cleanup.d.ts +4 -0
- package/dist/commands/cleanup.js +10 -0
- package/dist/commands/cleanup.js.map +1 -0
- package/dist/commands/copy.d.ts +6 -0
- package/dist/commands/copy.js +20 -0
- package/dist/commands/copy.js.map +1 -0
- package/dist/commands/edit.d.ts +10 -0
- package/dist/commands/edit.js +67 -0
- package/dist/commands/edit.js.map +1 -0
- package/dist/commands/exec.d.ts +7 -0
- package/dist/commands/exec.js +69 -0
- package/dist/commands/exec.js.map +1 -0
- package/dist/commands/git.d.ts +8 -0
- package/dist/commands/git.js +104 -0
- package/dist/commands/git.js.map +1 -0
- package/dist/commands/home.d.ts +4 -0
- package/dist/commands/home.js +41 -0
- package/dist/commands/home.js.map +1 -0
- package/dist/commands/install.d.ts +9 -0
- package/dist/commands/install.js +178 -0
- package/dist/commands/install.js.map +1 -0
- package/dist/commands/read.d.ts +6 -0
- package/dist/commands/read.js +40 -0
- package/dist/commands/read.js.map +1 -0
- package/dist/commands/write.d.ts +7 -0
- package/dist/commands/write.js +28 -0
- package/dist/commands/write.js.map +1 -0
- package/dist/commands.js +1 -0
- package/dist/commands.js.map +1 -0
- package/dist/config.d.ts +29 -7
- package/dist/config.js +90 -26
- package/dist/config.js.map +1 -0
- package/dist/error.d.ts +1 -9
- package/dist/error.js +1 -2
- package/dist/error.js.map +1 -0
- package/dist/helpers.d.ts +9 -0
- package/dist/helpers.js +76 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/index.js +80 -10
- package/dist/index.js.map +1 -0
- package/dist/init/blocks.d.ts +5 -0
- package/dist/init/blocks.js +62 -0
- package/dist/init/blocks.js.map +1 -0
- package/dist/init/cargo.d.ts +2 -0
- package/dist/init/cargo.js +21 -0
- package/dist/init/cargo.js.map +1 -0
- package/dist/init/expo.d.ts +5 -0
- package/dist/init/expo.js +52 -0
- package/dist/init/expo.js.map +1 -0
- package/dist/init/gitModules.d.ts +2 -0
- package/dist/init/gitModules.js +13 -0
- package/dist/init/gitModules.js.map +1 -0
- package/dist/init/index.d.ts +3 -0
- package/dist/init/index.js +86 -0
- package/dist/init/index.js.map +1 -0
- package/dist/init/monorepo.d.ts +4 -0
- package/dist/init/monorepo.js +48 -0
- package/dist/init/monorepo.js.map +1 -0
- package/dist/init/prepareVelo.d.ts +2 -0
- package/dist/init/prepareVelo.js +16 -0
- package/dist/init/prepareVelo.js.map +1 -0
- package/dist/init/tauri.d.ts +5 -0
- package/dist/init/tauri.js +32 -0
- package/dist/init/tauri.js.map +1 -0
- package/dist/init/templates.d.ts +5 -0
- package/dist/init/templates.js +93 -0
- package/dist/init/templates.js.map +1 -0
- package/dist/init/velo.d.ts +5 -0
- package/dist/init/velo.js +61 -0
- package/dist/init/velo.js.map +1 -0
- package/dist/policy.js +1 -0
- package/dist/policy.js.map +1 -0
- package/dist/prepare.js +1 -0
- package/dist/prepare.js.map +1 -0
- package/dist/runtime.d.ts +1 -1
- package/dist/runtime.js +1 -0
- package/dist/runtime.js.map +1 -0
- package/dist/schemas/gulp.d.ts +25 -0
- package/dist/schemas/gulp.js +8 -0
- package/dist/schemas/gulp.js.map +1 -0
- package/dist/schemas/index.d.ts +11 -0
- package/dist/schemas/index.js +10 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/schemas/lucy.d.ts +29 -0
- package/dist/schemas/lucy.js +42 -0
- package/dist/schemas/lucy.js.map +1 -0
- package/dist/schemas/tsconfig.js +2 -0
- package/dist/schemas/tsconfig.js.map +1 -0
- package/dist/schemas/types.d.ts +33 -0
- package/dist/schemas/types.js +5 -1
- package/dist/schemas/types.js.map +1 -0
- package/dist/states.js +1 -0
- package/dist/states.js.map +1 -0
- package/dist/tasks/Gulpfile.d.ts +4 -0
- package/dist/tasks/Gulpfile.js +111 -0
- package/dist/tasks/Gulpfile.js.map +1 -0
- package/dist/tasks/gulp/backend.d.ts +4 -0
- package/dist/tasks/gulp/backend.js +92 -0
- package/dist/tasks/gulp/backend.js.map +1 -0
- package/dist/tasks/gulp/checks.d.ts +4 -0
- package/dist/tasks/gulp/checks.js +203 -0
- package/dist/tasks/gulp/checks.js.map +1 -0
- package/dist/tasks/gulp/clean.d.ts +3 -0
- package/dist/tasks/gulp/clean.js +33 -0
- package/dist/tasks/gulp/clean.js.map +1 -0
- package/dist/tasks/gulp/copy.d.ts +3 -0
- package/dist/tasks/gulp/copy.js +34 -0
- package/dist/tasks/gulp/copy.js.map +1 -0
- package/dist/tasks/gulp/helpers.d.ts +3 -0
- package/dist/tasks/gulp/helpers.js +19 -0
- package/dist/tasks/gulp/helpers.js.map +1 -0
- package/dist/tasks/gulp/pages.d.ts +2 -0
- package/dist/tasks/gulp/pages.js +39 -0
- package/dist/tasks/gulp/pages.js.map +1 -0
- package/dist/tasks/gulp/pipeline.d.ts +1 -0
- package/dist/tasks/gulp/pipeline.js +29 -0
- package/dist/tasks/gulp/pipeline.js.map +1 -0
- package/dist/tasks/gulp/public.d.ts +3 -0
- package/dist/tasks/gulp/public.js +50 -0
- package/dist/tasks/gulp/public.js.map +1 -0
- package/dist/tasks/gulp/styles.d.ts +3 -0
- package/dist/tasks/gulp/styles.js +40 -0
- package/dist/tasks/gulp/styles.js.map +1 -0
- package/dist/tasks/gulp/templates.d.ts +2 -0
- package/dist/tasks/gulp/templates.js +45 -0
- package/dist/tasks/gulp/templates.js.map +1 -0
- package/dist/tasks/gulp/types.d.ts +4 -0
- package/dist/tasks/gulp/types.js +293 -0
- package/dist/tasks/gulp/types.js.map +1 -0
- package/dist/tasks/gulp/watchers.d.ts +3 -0
- package/dist/tasks/gulp/watchers.js +59 -0
- package/dist/tasks/gulp/watchers.js.map +1 -0
- package/dist/tasks/index.d.ts +4 -0
- package/dist/tasks/index.js +23 -0
- package/dist/tasks/index.js.map +1 -0
- package/dist/tasks/syncSettings.d.ts +3 -0
- package/dist/tasks/syncSettings.js +18 -0
- package/dist/tasks/syncSettings.js.map +1 -0
- package/dist/utils/index.js +2 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +17 -0
- package/dist/utils/logger.js +37 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/wix-sdk/check.d.ts +4 -0
- package/dist/wix-sdk/check.js +23 -0
- package/dist/wix-sdk/check.js.map +1 -0
- package/dist/wix-sdk/client.d.ts +10 -0
- package/dist/wix-sdk/client.js +18 -0
- package/dist/wix-sdk/client.js.map +1 -0
- package/dist/wix-sdk/index.d.ts +4 -0
- package/dist/wix-sdk/index.js +15 -0
- package/dist/wix-sdk/index.js.map +1 -0
- package/dist/wix-sdk/init.d.ts +4 -0
- package/dist/wix-sdk/init.js +51 -0
- package/dist/wix-sdk/init.js.map +1 -0
- package/dist/wix-sdk/run.d.ts +4 -0
- package/dist/wix-sdk/run.js +53 -0
- package/dist/wix-sdk/run.js.map +1 -0
- package/dist/wix-sync/client.d.ts +3 -0
- package/dist/wix-sync/client.js +5 -0
- package/dist/wix-sync/client.js.map +1 -0
- package/dist/wix-sync/export.d.ts +4 -0
- package/dist/wix-sync/export.js +15 -0
- package/dist/wix-sync/export.js.map +1 -0
- package/dist/wix-sync/import.d.ts +4 -0
- package/dist/wix-sync/import.js +26 -0
- package/dist/wix-sync/import.js.map +1 -0
- package/dist/wix-sync/index.d.ts +4 -0
- package/dist/wix-sync/index.js +35 -0
- package/dist/wix-sync/index.js.map +1 -0
- package/dist/wix-sync/init.d.ts +4 -0
- package/dist/wix-sync/init.js +74 -0
- package/dist/wix-sync/init.js.map +1 -0
- package/dist/wix-sync/is-alive.d.ts +4 -0
- package/dist/wix-sync/is-alive.js +23 -0
- package/dist/wix-sync/is-alive.js.map +1 -0
- package/dist/wix-sync/migrate.d.ts +4 -0
- package/dist/wix-sync/migrate.js +21 -0
- package/dist/wix-sync/migrate.js.map +1 -0
- package/dist/wix-sync/sync.d.ts +4 -0
- package/dist/wix-sync/sync.js +26 -0
- package/dist/wix-sync/sync.js.map +1 -0
- package/files/sync-data/data/test.csv +17 -0
- package/files/sync-data/files/lucy.jpg +0 -0
- package/files/sync-data/schema/test.json +11 -0
- package/files/templates/block[D]/files/.cursorignore +4 -0
- package/files/templates/block[D]/files/.stylelintrc.js +8 -0
- package/files/templates/block[D]/lucy.json +9 -0
- package/files/templates/cargo[D]/files/.cursorignore +4 -0
- package/files/templates/cargo[D]/files/.env +1 -0
- package/files/templates/cargo[D]/files/Cargo.toml +238 -0
- package/files/templates/cargo[D]/files/Makefile.toml +4 -0
- package/files/templates/cargo[D]/files/build/main.rs +35 -0
- package/files/templates/cargo[D]/files/config/beta.json +19 -0
- package/files/templates/cargo[D]/files/config/ci.json +15 -0
- package/files/templates/cargo[D]/files/config/default.json +71 -0
- package/files/templates/cargo[D]/files/config/development.json +10 -0
- package/files/templates/cargo[D]/files/config/produktion.json +5 -0
- package/files/templates/cargo[D]/files/config/stage.json +4 -0
- package/files/templates/cargo[D]/files/locales/todo.yml +3 -0
- package/files/templates/cargo[D]/files/public/index.html +1 -0
- package/files/templates/cargo[D]/lucy.json +15 -0
- package/files/templates/expo verse[D]/files/.stylelintrc.json +8 -0
- package/files/templates/expo verse[D]/files/.vscode/extensions.json +10 -0
- package/files/templates/expo verse[D]/files/.vscode/launch.json +54 -0
- package/files/templates/expo verse[D]/files/.vscode/settings.json +30 -0
- package/files/templates/expo verse[D]/files/.yarnrc.yml +8 -0
- package/files/templates/expo verse[D]/files/App.tsx +63 -0
- package/files/templates/expo verse[D]/files/DEBUGGING.md +126 -0
- package/files/templates/expo verse[D]/files/android/app/build.gradle +177 -0
- 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 +14 -0
- package/files/templates/expo verse[D]/files/android/app/src/debug/AndroidManifest.xml +7 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/AndroidManifest.xml +33 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/java/so/sunnysideup/daily_verse/MainActivity.kt +65 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/java/so/sunnysideup/daily_verse/MainApplication.kt +57 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable/ic_launcher_background.xml +6 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/drawable/rn_edit_text_material.xml +37 -0
- 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 +6 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +6 -0
- 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 +6 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/values/strings.xml +7 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/values/styles.xml +12 -0
- package/files/templates/expo verse[D]/files/android/app/src/main/res/values-night/colors.xml +3 -0
- package/files/templates/expo verse[D]/files/android/build.gradle +37 -0
- 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 +7 -0
- package/files/templates/expo verse[D]/files/android/gradle.properties +59 -0
- package/files/templates/expo verse[D]/files/android/gradlew +251 -0
- package/files/templates/expo verse[D]/files/android/gradlew.bat +94 -0
- package/files/templates/expo verse[D]/files/android/settings.gradle +39 -0
- package/files/templates/expo verse[D]/files/app.config.ts +77 -0
- package/files/templates/expo verse[D]/files/assets/data/de.csv +949 -0
- package/files/templates/expo verse[D]/files/assets/data/en.csv +949 -0
- 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/{expo → 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/components/MainScreen.tsx +299 -0
- package/files/templates/expo verse[D]/files/components/Share.tsx +132 -0
- package/files/templates/expo verse[D]/files/components/ui/dev.tsx +48 -0
- package/files/templates/expo verse[D]/files/constants/config.ts +30 -0
- package/files/templates/expo verse[D]/files/data/de.csv +219 -0
- package/files/templates/expo verse[D]/files/data/en.csv +219 -0
- package/files/templates/expo verse[D]/files/data/version.json +4 -0
- package/files/templates/expo verse[D]/files/eas.json +47 -0
- package/files/templates/expo verse[D]/files/eslint.config.mjs +185 -0
- package/files/templates/expo verse[D]/files/index.ts +28 -0
- package/files/templates/expo verse[D]/files/lib/content.ts +31 -0
- package/files/templates/expo verse[D]/files/lib/data.ts +180 -0
- package/files/templates/expo verse[D]/files/lib/helper.ts +54 -0
- package/files/templates/expo verse[D]/files/lib/index.ts +21 -0
- package/files/templates/expo verse[D]/files/lib/state.ts +128 -0
- package/files/templates/expo verse[D]/files/lib/storage.ts +17 -0
- package/files/templates/expo verse[D]/files/lib/taskManager/index.ts +38 -0
- package/files/templates/expo verse[D]/files/lib/taskManager/loadData.ts +14 -0
- package/files/templates/expo verse[D]/files/lib/utils/screenshot.ts +77 -0
- package/files/templates/expo verse[D]/files/metro.config.js +81 -0
- package/files/templates/expo verse[D]/files/models/index.ts +28 -0
- package/files/templates/expo verse[D]/files/package.json +102 -0
- package/files/templates/expo verse[D]/files/pnpm-workspace.yaml +3 -0
- package/files/templates/expo verse[D]/files/scripts/convert-verses.ts +309 -0
- package/files/templates/expo verse[D]/files/scripts/move-artifacts.ts +83 -0
- package/files/{expo → templates/expo verse[D]/files}/scripts/reset-project.ts +0 -0
- package/files/templates/expo verse[D]/files/tsconfig.json +45 -0
- package/files/templates/expo verse[D]/files/types/index.ts +4 -0
- package/files/templates/expo verse[D]/files/types/reset.d.ts +1 -0
- package/files/templates/expo verse[D]/lucy.json +86 -0
- package/files/templates/expo[D]/files/.cursorignore +4 -0
- package/files/templates/expo[D]/files/.nvmrc +1 -0
- package/files/templates/expo[D]/files/.prettierignore +23 -0
- package/files/templates/expo[D]/files/.prettierrc.js +16 -0
- package/files/templates/expo[D]/files/.stylelintrc.js +8 -0
- package/files/templates/expo[D]/files/.yarnrc +1 -0
- package/files/templates/expo[D]/files/README.md +45 -0
- package/files/templates/expo[D]/files/app.config.ts +69 -0
- package/files/templates/expo[D]/files/assets/fonts/SpaceMono-Regular.ttf +0 -0
- package/files/templates/expo[D]/files/babel.config.js +10 -0
- package/files/templates/expo[D]/files/constants/theme.ts +18 -0
- package/files/{expo → templates/expo[D]/files}/eas.json +9 -3
- package/files/templates/expo[D]/files/global.css +47 -0
- package/files/templates/expo[D]/files/hooks/useColorScheme.ts +17 -0
- package/files/templates/expo[D]/files/lib/data.ts +197 -0
- package/files/templates/expo[D]/files/lib/utils/index.ts +11 -0
- package/files/templates/expo[D]/files/lib/utils/polyfills.ts +29 -0
- package/files/{expo → templates/expo[D]/files}/metro.config.js +6 -0
- package/files/templates/expo[D]/files/nativewind-env.d.ts +1 -0
- package/files/templates/expo[D]/files/pnpm-workspace.yaml +3 -0
- package/files/templates/expo[D]/files/scripts/reset-project.ts +116 -0
- package/files/templates/expo[D]/files/tailwind.config.js +63 -0
- package/files/templates/expo[D]/lucy.json +86 -0
- package/files/templates/monorepo[D]/files/.cursorignore +4 -0
- package/files/templates/monorepo[D]/files/.editorconfig +10 -0
- package/files/templates/monorepo[D]/files/.nvmrc +1 -0
- package/files/templates/monorepo[D]/files/.prettierignore +23 -0
- package/files/templates/monorepo[D]/files/.prettierrc.json +15 -0
- package/files/templates/monorepo[D]/files/.stylelintrc.js +8 -0
- package/files/templates/monorepo[D]/files/.yarnrc +1 -0
- package/files/{velo → templates/monorepo[D]/files}/.yarnrc.yml +1 -1
- package/files/templates/monorepo[D]/files/README.md +109 -0
- package/files/templates/monorepo[D]/files/currents.config.ts +5 -0
- package/files/templates/monorepo[D]/files/nx.json +25 -0
- package/files/templates/monorepo[D]/files/pnpm-workspace.yaml +11 -0
- package/files/templates/monorepo[D]/files/tsconfig.json +6 -0
- package/files/templates/monorepo[D]/files/typedoc.json +25 -0
- package/files/templates/monorepo[D]/files/vitest.config.ts +27 -0
- package/files/templates/monorepo[D]/lucy.json +69 -0
- package/files/templates/tauri[D]/files/.cursorignore +4 -0
- package/files/templates/tauri[D]/lucy.json +9 -0
- package/files/templates/velo[D]/files/.cursorignore +4 -0
- package/files/templates/velo[D]/files/.prettierignore +23 -0
- package/files/templates/velo[D]/files/.prettierrc.js +16 -0
- package/files/templates/velo[D]/files/.yarnrc.yml +2 -0
- package/files/{velo → 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]/files/typescript/styles/.gitkeep +0 -0
- package/files/templates/velo[D]/files/typescript/styles/global.scss +0 -0
- package/files/templates/velo[D]/lucy.json +137 -0
- package/lucy +4 -0
- package/lucy.jpg +0 -0
- package/mitarbeiter-login.html +188 -0
- package/old/Gulpfile.d.ts +34 -0
- package/old/Gulpfile.js +116 -0
- package/old/Gulpfile.js.map +1 -0
- package/old/gulp/backend.d.ts +3 -0
- package/old/gulp/backend.js +92 -0
- package/old/gulp/backend.js.map +1 -0
- package/old/gulp/checks.d.ts +3 -0
- package/old/gulp/checks.js +205 -0
- package/old/gulp/checks.js.map +1 -0
- package/old/gulp/clean.d.ts +3 -0
- package/old/gulp/clean.js +29 -0
- package/old/gulp/clean.js.map +1 -0
- package/old/gulp/copy.d.ts +2 -0
- package/old/gulp/copy.js +34 -0
- package/old/gulp/copy.js.map +1 -0
- package/old/gulp/helpers.d.ts +2 -0
- package/old/gulp/helpers.js +25 -0
- package/old/gulp/helpers.js.map +1 -0
- package/old/gulp/pages.d.ts +2 -0
- package/old/gulp/pages.js +37 -0
- package/old/gulp/pages.js.map +1 -0
- package/old/gulp/pipeline.d.ts +1 -0
- package/old/gulp/pipeline.js +29 -0
- package/old/gulp/pipeline.js.map +1 -0
- package/old/gulp/public.d.ts +2 -0
- package/old/gulp/public.js +50 -0
- package/old/gulp/public.js.map +1 -0
- package/old/gulp/styles.d.ts +2 -0
- package/old/gulp/styles.js +40 -0
- package/old/gulp/styles.js.map +1 -0
- package/old/gulp/templates.d.ts +2 -0
- package/old/gulp/templates.js +33 -0
- package/old/gulp/templates.js.map +1 -0
- package/old/gulp/types.d.ts +4 -0
- package/old/gulp/types.js +289 -0
- package/old/gulp/types.js.map +1 -0
- package/old/gulp/watchers.d.ts +9 -0
- package/old/gulp/watchers.js +59 -0
- package/old/gulp/watchers.js.map +1 -0
- package/old/helpers.d.ts +32 -0
- package/old/helpers.js +267 -0
- package/old/helpers.js.map +1 -0
- package/{src copy/helpers.ts → old/helpers.ts} +1 -1
- package/old/index.d.ts +59 -0
- package/old/index.js +288 -0
- package/old/index.js.map +1 -0
- package/{src copy → old}/index.ts +0 -0
- package/old/init.d.ts +8 -0
- package/old/init.js +165 -0
- package/old/init.js.map +1 -0
- package/old/models.d.ts +37 -0
- package/old/models.js +2 -0
- package/old/models.js.map +1 -0
- package/old/prepare.d.ts +8 -0
- package/old/prepare.js +20 -0
- package/old/prepare.js.map +1 -0
- package/old/schemas/index.d.ts +0 -0
- package/old/schemas/index.js +2 -0
- package/old/schemas/index.js.map +1 -0
- package/old/schemas/index.ts +0 -0
- package/old/schemas/types.d.ts +0 -0
- package/old/schemas/types.js +2 -0
- package/old/schemas/types.js.map +1 -0
- package/old/schemas/types.ts +0 -0
- package/old/sync.d.ts +2 -0
- package/old/sync.js +88 -0
- package/old/sync.js.map +1 -0
- package/package.json +28 -28
- package/patches/velo-sync+0.0.9.patch +13 -0
- package/pnpm-workspace.yaml +6 -0
- package/src/args.ts +102 -17
- package/src/commands/checks.ts +51 -0
- package/src/commands/cleanup.ts +11 -0
- package/src/commands/copy.ts +28 -0
- package/src/commands/edit.ts +81 -0
- package/src/commands/exec.ts +73 -0
- package/src/commands/git.ts +113 -0
- package/src/commands/home.ts +56 -0
- package/src/commands/install.ts +269 -0
- package/src/commands/read.ts +45 -0
- package/src/commands/write.ts +45 -0
- package/src/config.ts +116 -35
- package/src/error.ts +1 -2
- package/src/helpers.ts +84 -0
- package/src/index.ts +91 -14
- package/src/init/blocks.ts +85 -0
- package/src/init/cargo.ts +25 -0
- package/src/init/expo.ts +69 -0
- package/src/init/gitModules.ts +15 -0
- package/src/init/index.ts +89 -0
- package/src/init/monorepo.ts +72 -0
- package/src/init/prepareVelo.ts +19 -0
- package/src/init/tauri.ts +42 -0
- package/src/init/templates.ts +98 -0
- package/src/init/velo.ts +66 -0
- package/src/runtime.ts +1 -0
- package/src/schemas/gulp.ts +31 -0
- package/src/schemas/index.ts +15 -1
- package/src/schemas/lucy.ts +43 -0
- package/src/schemas/types.ts +40 -0
- package/src/tasks/Gulpfile.ts +207 -0
- package/src/tasks/gulp/backend.ts +113 -0
- package/src/tasks/gulp/checks.ts +219 -0
- package/src/tasks/gulp/clean.ts +38 -0
- package/src/tasks/gulp/copy.ts +38 -0
- package/src/tasks/gulp/helpers.ts +18 -0
- package/src/tasks/gulp/pages.ts +43 -0
- package/src/tasks/gulp/pipeline.ts +31 -0
- package/src/tasks/gulp/public.ts +61 -0
- package/src/tasks/gulp/styles.ts +47 -0
- package/src/tasks/gulp/templates.ts +53 -0
- package/src/tasks/gulp/types.ts +310 -0
- package/src/tasks/gulp/watchers.ts +97 -0
- package/src/tasks/index.ts +24 -0
- package/src/tasks/syncSettings.ts +21 -0
- package/src/types.d.ts +1 -1
- package/src/utils/index.ts +0 -0
- package/src/utils/logger.ts +40 -0
- package/src/wix-sdk/check.ts +24 -0
- package/src/wix-sdk/client.ts +18 -0
- package/src/wix-sdk/index.ts +17 -0
- package/src/wix-sdk/init.ts +54 -0
- package/src/wix-sdk/run.ts +56 -0
- package/src/wix-sync/client.ts +6 -0
- package/src/wix-sync/export.ts +19 -0
- package/src/wix-sync/import.ts +27 -0
- package/src/wix-sync/index.ts +36 -0
- package/src/wix-sync/init.ts +77 -0
- package/src/wix-sync/is-alive.ts +25 -0
- package/src/wix-sync/migrate.ts +23 -0
- package/src/wix-sync/sync.ts +27 -0
- package/tsconfig.json +6 -5
- package/dist/init.d.ts +0 -4
- package/dist/init.js +0 -275
- package/dist/models.js +0 -1
- package/dist/params.d.ts +0 -7
- package/dist/params.js +0 -23
- package/files/expo/lib/data.ts +0 -48
- package/src/init.ts +0 -392
- /package/dist/{models.d.ts → schemas/tsconfig.d.ts} +0 -0
- /package/{files/expo/components/.gitkeep → dist/utils/index.d.ts} +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/.nvmrc +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/.prettierignore +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/.prettierrc.js +0 -0
- /package/files/{expo/components/ui/.gitkeep → templates/expo verse[D]/files/.vscode/tasks.json} +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/.yarnrc +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/README.md +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/babel.config.js +0 -0
- /package/files/{velo/typescript/__mocks__ → templates/expo verse[D]/files/components}/.gitkeep +0 -0
- /package/files/{velo/typescript/pages → templates/expo verse[D]/files/components/ui}/.gitkeep +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/constants/theme.ts +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/global.css +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/hooks/useColorScheme.ts +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/lib/utils/index.ts +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/lib/utils/polyfills.ts +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/lucy.json +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/nativewind-env.d.ts +0 -0
- /package/files/{expo → templates/expo verse[D]/files}/tailwind.config.js +0 -0
- /package/files/{expo → templates/expo[D]/files}/.yarnrc.yml +0 -0
- /package/files/{expo → templates/expo[D]/files}/assets/images/adaptive-icon.png +0 -0
- /package/files/{expo → templates/expo[D]/files}/assets/images/favicon.png +0 -0
- /package/files/{expo → templates/expo[D]/files}/assets/images/icon.png +0 -0
- /package/files/{expo → templates/expo[D]/files}/assets/images/splash-icon.png +0 -0
- /package/files/{velo/typescript/public → templates/expo[D]/files/components}/.gitkeep +0 -0
- /package/files/{velo/typescript/styles → templates/expo[D]/files/components/ui}/.gitkeep +0 -0
- /package/files/{expo → templates/expo[D]/files}/eslint.config.mjs +0 -0
- /package/files/{expo → templates/expo[D]/files}/index.ts +0 -0
- /package/files/{expo → templates/expo[D]/files}/lib/wix/client.ts +0 -0
- /package/files/{expo → templates/expo[D]/files}/lib/wix/error.ts +0 -0
- /package/files/{expo → templates/expo[D]/files}/lib/wix/index.ts +0 -0
- /package/files/{expo → templates/expo[D]/files}/tsconfig.json +0 -0
- /package/files/{expo → templates/expo[D]/files}/types/reset.d.ts +0 -0
- /package/files/{velo → templates/velo[D]/files}/.gitmodules +0 -0
- /package/files/{velo → templates/velo[D]/files}/.madgerc +0 -0
- /package/files/{velo → templates/velo[D]/files}/.nvmrc +0 -0
- /package/files/{velo → templates/velo[D]/files}/.stylelintrc.js +0 -0
- /package/files/{velo → templates/velo[D]/files}/currents.config.js +0 -0
- /package/files/{velo → templates/velo[D]/files}/cypress/e2e/base/base.cy.ts +0 -0
- /package/files/{velo → templates/velo[D]/files}/cypress/fixtures/example.json +0 -0
- /package/files/{velo → templates/velo[D]/files}/cypress/support/commands.ts +0 -0
- /package/files/{velo → templates/velo[D]/files}/cypress/support/e2e.ts +0 -0
- /package/files/{velo → templates/velo[D]/files}/cypress/tsconfig.json +0 -0
- /package/files/{velo → templates/velo[D]/files}/cypress.config.mjs +0 -0
- /package/files/{velo → templates/velo[D]/files}/eslint.config.mjs +0 -0
- /package/files/{velo → templates/velo[D]/files}/typedoc.json +0 -0
- /package/files/{velo/typescript/backend/data.ts → templates/velo[D]/files/typescript/__mocks__/.gitkeep} +0 -0
- /package/files/{velo/typescript/backend/events.ts → templates/velo[D]/files/typescript/backend/data.ts} +0 -0
- /package/files/{velo/typescript/public/scss/app.scss → templates/velo[D]/files/typescript/backend/events.ts} +0 -0
- /package/files/{velo → templates/velo[D]/files}/typescript/backend/http-functions.ts +0 -0
- /package/files/{velo → templates/velo[D]/files}/typescript/backend/lib/http-functions/sync.ts +0 -0
- /package/files/{velo → templates/velo[D]/files}/typescript/backend/permissions.json +0 -0
- /package/files/{velo/typescript/styles/global.scss → templates/velo[D]/files/typescript/pages/.gitkeep} +0 -0
- /package/{src copy/schemas/index.ts → files/templates/velo[D]/files/typescript/public/.gitkeep} +0 -0
- /package/{src copy/schemas/types.ts → files/templates/velo[D]/files/typescript/public/scss/app.scss} +0 -0
- /package/files/{velo → templates/velo[D]/files}/typescript/tsconfig.json +0 -0
- /package/files/{velo → templates/velo[D]/files}/vitest.config.ts +0 -0
- /package/{src copy → old}/Gulpfile.ts +0 -0
- /package/{src copy → old}/gulp/backend.ts +0 -0
- /package/{src copy → old}/gulp/checks.ts +0 -0
- /package/{src copy → old}/gulp/clean.ts +0 -0
- /package/{src copy → old}/gulp/copy.ts +0 -0
- /package/{src copy → old}/gulp/helpers.ts +0 -0
- /package/{src copy → old}/gulp/pages.ts +0 -0
- /package/{src copy → old}/gulp/pipeline.ts +0 -0
- /package/{src copy → old}/gulp/public.ts +0 -0
- /package/{src copy → old}/gulp/styles.ts +0 -0
- /package/{src copy → old}/gulp/templates.ts +0 -0
- /package/{src copy → old}/gulp/types.ts +0 -0
- /package/{src copy → old}/gulp/watchers.ts +0 -0
- /package/{src copy → old}/init.ts +0 -0
- /package/{src copy → old}/models.ts +0 -0
- /package/{src copy → old}/prepare.ts +0 -0
- /package/{src copy → old}/settings.json +0 -0
- /package/{src copy → old}/sync.ts +0 -0
- /package/{src copy → old}/types.d.ts +0 -0
- /package/src/{models.ts → schemas/tsconfig.ts} +0 -0
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { Data, DateTime, Effect, pipe, Schedule, Schema } from 'effect';
|
|
2
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
3
|
+
import * as FileSystem from 'expo-file-system';
|
|
4
|
+
import { Asset } from 'expo-asset';
|
|
5
|
+
import { getLocales } from 'expo-localization';
|
|
6
|
+
import Papa from 'papaparse';
|
|
7
|
+
|
|
8
|
+
export class StorageError extends Data.TaggedError('StorageError')<{reason: string}> {}
|
|
9
|
+
export class QuoteNotFoundError extends Data.TaggedError('QuoteNotFoundError')<{reason: string}> {}
|
|
10
|
+
export class DataError extends Data.TaggedError('DataError')<{reason: string}> {}
|
|
11
|
+
|
|
12
|
+
const assets = {
|
|
13
|
+
en: require('@/assets/data/en.csv'),
|
|
14
|
+
de: require('@/assets/data/de.csv'),
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
const supportedLocales = Object.keys(assets);
|
|
18
|
+
const fallbackLocale: keyof typeof assets = 'en';
|
|
19
|
+
const fallbackQuote: Quote = { source: 'The Lord', content: 'The ways of the Lord are inscrutable.' };
|
|
20
|
+
const storage_key = 'dailySpiritQuote';
|
|
21
|
+
|
|
22
|
+
const schema = Schema.parseJson()
|
|
23
|
+
const decode = Schema.decodeUnknown(schema)
|
|
24
|
+
|
|
25
|
+
const dataSchema = Schema.Struct({
|
|
26
|
+
source: Schema.String,
|
|
27
|
+
content: Schema.String,
|
|
28
|
+
_id: Schema.String,
|
|
29
|
+
_owner: Schema.String,
|
|
30
|
+
_createdDate: Schema.Any,
|
|
31
|
+
_updatedDate: Schema.Any,
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
const storageSchema = Schema.Struct({
|
|
35
|
+
index: Schema.Number,
|
|
36
|
+
date: Schema.DateTimeUtc,
|
|
37
|
+
})
|
|
38
|
+
type StorageSchema = typeof storageSchema.Type;
|
|
39
|
+
|
|
40
|
+
type Quote = {
|
|
41
|
+
source: string;
|
|
42
|
+
content: string;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
// Type guard to check if a string is a valid locale key
|
|
46
|
+
function isSupportedLocale(locale: string): locale is keyof typeof assets {
|
|
47
|
+
return supportedLocales.includes(locale);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
const clearStorage = Effect.gen(function* () {
|
|
51
|
+
yield* Effect.tryPromise({
|
|
52
|
+
try: () => AsyncStorage.removeItem(storage_key),
|
|
53
|
+
catch: (error) => {
|
|
54
|
+
console.error('Error clearing storage:', error);
|
|
55
|
+
return new StorageError({ reason: 'Failed to clear storage' });
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
const saveToStorage = (quote: StorageSchema) => Effect.gen(function* () {
|
|
61
|
+
yield* Effect.tryPromise({
|
|
62
|
+
try: () => AsyncStorage.setItem(storage_key, JSON.stringify(quote)),
|
|
63
|
+
catch: (error) => {
|
|
64
|
+
console.error('Error saving quote to storage:', error);
|
|
65
|
+
return new StorageError({ reason: 'Failed to save quote to storage' });
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
const getFromStorage = Effect.gen(function* () {
|
|
71
|
+
const quoteRaw = yield* Effect.tryPromise({
|
|
72
|
+
try: () => AsyncStorage.getItem(storage_key),
|
|
73
|
+
catch: (error) => {
|
|
74
|
+
console.error('Error fetching quote from storage:', error);
|
|
75
|
+
AsyncStorage.removeItem(storage_key)
|
|
76
|
+
return new StorageError({ reason: 'Failed to fetch quote from storage' });
|
|
77
|
+
}
|
|
78
|
+
}).pipe(Effect.catchAll((error) => {
|
|
79
|
+
console.error('Error fetching quote from storage:', error);
|
|
80
|
+
return Effect.succeed(null);
|
|
81
|
+
}));
|
|
82
|
+
|
|
83
|
+
const QuoteJSON = yield* Schema.decodeUnknown(Schema.parseJson())(quoteRaw).pipe(Effect.catchAll((error) => {
|
|
84
|
+
console.error('Error decoding quote from storage:', error);
|
|
85
|
+
return Effect.succeed(null);
|
|
86
|
+
}));
|
|
87
|
+
const data = yield* Schema.decodeUnknown(storageSchema)(QuoteJSON).pipe(
|
|
88
|
+
Effect.catchAll((error) => {
|
|
89
|
+
console.error('Failed to decode quote from storage:', error);
|
|
90
|
+
return Effect.gen(function* () {
|
|
91
|
+
yield* clearStorage.pipe(Effect.catchAll((error) => {
|
|
92
|
+
console.error('Error clearing storage:', error);
|
|
93
|
+
return Effect.succeed(null);
|
|
94
|
+
}));
|
|
95
|
+
return yield* Effect.succeed(null);
|
|
96
|
+
})
|
|
97
|
+
}
|
|
98
|
+
)
|
|
99
|
+
);
|
|
100
|
+
return data;
|
|
101
|
+
});
|
|
102
|
+
|
|
103
|
+
const getQuoteFromCSV = (index?: number) => Effect.gen(function* () {
|
|
104
|
+
const locale = getLocales()[0].languageTag.split('-')[0];
|
|
105
|
+
const asset = isSupportedLocale(locale) ? assets[locale] : assets[fallbackLocale];
|
|
106
|
+
|
|
107
|
+
const [{ localUri }] = yield* Effect.tryPromise({
|
|
108
|
+
try: () => Asset.loadAsync(asset),
|
|
109
|
+
catch: (error) => {
|
|
110
|
+
console.error('Error loading asset:', error);
|
|
111
|
+
return new DataError({ reason: 'Failed to load asset' });
|
|
112
|
+
}
|
|
113
|
+
})
|
|
114
|
+
const csv = yield* Effect.tryPromise({
|
|
115
|
+
try: () => FileSystem.readAsStringAsync(localUri || ''),
|
|
116
|
+
catch: (error) => {
|
|
117
|
+
console.error('Error loading asset:', error);
|
|
118
|
+
return new DataError({ reason: 'Failed to read CSV file' });
|
|
119
|
+
}
|
|
120
|
+
})
|
|
121
|
+
|
|
122
|
+
const { data: quotes, errors } = Papa.parse<{Verse: string, Reference: string, Topic: string}>(csv, { header: true, skipEmptyLines: true });
|
|
123
|
+
if (errors.length > 0) {
|
|
124
|
+
console.error('Error parsing CSV:', errors);
|
|
125
|
+
return yield* Effect.succeed(null);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
if (quotes.length === 0) {
|
|
129
|
+
return yield* Effect.succeed(null);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
if(index !== undefined) {
|
|
133
|
+
if(index <= quotes.length) {
|
|
134
|
+
const randomQuote = quotes[index];
|
|
135
|
+
return { source: randomQuote.Reference, content: randomQuote.Verse, index: index };
|
|
136
|
+
}
|
|
137
|
+
if(index < 0 || index <= quotes.length) {
|
|
138
|
+
yield* clearStorage
|
|
139
|
+
return yield* Effect.succeed(null);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
const randomIndex = Math.floor(Math.random() * quotes.length);
|
|
144
|
+
const randomQuote = quotes[randomIndex];
|
|
145
|
+
|
|
146
|
+
return { source: randomQuote.Reference, content: randomQuote.Verse, index: randomIndex };
|
|
147
|
+
})
|
|
148
|
+
|
|
149
|
+
export const getData = () => Effect.gen(function* () {
|
|
150
|
+
const currentTime = yield* DateTime.now;
|
|
151
|
+
const quoteTimestamp = DateTime.setParts(currentTime, {hours: 4, minutes: 30, seconds: 0});
|
|
152
|
+
const dataFromStorage = yield* getFromStorage
|
|
153
|
+
|
|
154
|
+
if(dataFromStorage !== null) {
|
|
155
|
+
const elapsed = DateTime.distance(dataFromStorage.date, currentTime);
|
|
156
|
+
if (elapsed <= 86400000) {
|
|
157
|
+
const quoteWithIndex = yield* getQuoteFromCSV(dataFromStorage.index);
|
|
158
|
+
if (quoteWithIndex !== null) {
|
|
159
|
+
const quoteDate: Quote = { source: quoteWithIndex.source, content: quoteWithIndex.content };
|
|
160
|
+
return quoteDate;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
const quoteWithIndex = yield* getQuoteFromCSV();
|
|
166
|
+
if (quoteWithIndex === null) {
|
|
167
|
+
console.warn('No quote found, returning fallback quote');
|
|
168
|
+
return yield* Effect.fail(new QuoteNotFoundError({ reason: 'No quote found' }));
|
|
169
|
+
}
|
|
170
|
+
|
|
171
|
+
const quoteDate: Quote = { source: quoteWithIndex.source, content: quoteWithIndex.content };
|
|
172
|
+
yield* saveToStorage({
|
|
173
|
+
index: quoteWithIndex.index,
|
|
174
|
+
date: quoteTimestamp,
|
|
175
|
+
})
|
|
176
|
+
|
|
177
|
+
return quoteDate;
|
|
178
|
+
}).pipe(Effect.catchTags({
|
|
179
|
+
QuoteNotFoundError: (error) => {
|
|
180
|
+
console.warn('Quote not found in storage, returning fallback quote');
|
|
181
|
+
return Effect.succeed(fallbackQuote);
|
|
182
|
+
},
|
|
183
|
+
DataError: (error) => {
|
|
184
|
+
console.error('Data error occurred:', error);
|
|
185
|
+
return Effect.succeed(fallbackQuote);
|
|
186
|
+
},
|
|
187
|
+
StorageError: (error) => {
|
|
188
|
+
console.error('Storage error occurred:', error);
|
|
189
|
+
return Effect.gen(function* () {
|
|
190
|
+
yield* clearStorage.pipe(Effect.catchAll((error) => {
|
|
191
|
+
console.error('Error clearing storage:', error);
|
|
192
|
+
return Effect.succeed(null);
|
|
193
|
+
}));
|
|
194
|
+
return yield* Effect.succeed(fallbackQuote);
|
|
195
|
+
})
|
|
196
|
+
}
|
|
197
|
+
}))
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { type ClassValue, clsx } from 'clsx';
|
|
2
|
+
import { twMerge } from 'tailwind-merge';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Combines class names and merges Tailwind CSS classes.
|
|
6
|
+
* @param inputs - The class names to combine.
|
|
7
|
+
* @returns A string of combined class names.
|
|
8
|
+
*/
|
|
9
|
+
export function cn(...inputs: ClassValue[]) {
|
|
10
|
+
return twMerge(clsx(inputs));
|
|
11
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
|
|
2
|
+
import { polyfillWebCrypto } from 'expo-standard-web-crypto';
|
|
3
|
+
// import { Platform } from 'react-native';
|
|
4
|
+
// // import polyfill from 'react-native-polyfill-globals';
|
|
5
|
+
// import { TextDecoder, TextEncoder } from "text-encoding";
|
|
6
|
+
// // require('node-libs-react-native/globals');
|
|
7
|
+
// if (typeof TextEncoder === "undefined") {
|
|
8
|
+
// Object.defineProperty(window, "TextEncoder", {
|
|
9
|
+
// configurable: true,
|
|
10
|
+
// enumerable: true,
|
|
11
|
+
// get: () => TextEncoder,
|
|
12
|
+
// });
|
|
13
|
+
// }
|
|
14
|
+
|
|
15
|
+
// if (typeof TextDecoder === "undefined") {
|
|
16
|
+
// Object.defineProperty(window, "TextDecoder", {
|
|
17
|
+
// configurable: true,
|
|
18
|
+
// enumerable: true,
|
|
19
|
+
// get: () => TextDecoder,
|
|
20
|
+
// });
|
|
21
|
+
// }
|
|
22
|
+
// if (Platform.OS !== "web") {
|
|
23
|
+
// // require("react-native-polyfill-globals");
|
|
24
|
+
// // @ts-ignore
|
|
25
|
+
// (Symbol).asyncIterator = Symbol.asyncIterator || Symbol.for("Symbol.asyncIterator");
|
|
26
|
+
// // polyfill();
|
|
27
|
+
// }
|
|
28
|
+
|
|
29
|
+
polyfillWebCrypto();
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="nativewind/types" />
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
#!/usr/bin/env ts-node
|
|
2
|
+
/* eslint-disable no-console */
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* This script is used to reset the project to a blank state.
|
|
6
|
+
* It deletes or moves the /app, /components, /hooks, /scripts, and /constants directories to /app-example based on user input and creates a new /app directory with an index.tsx and _layout.tsx file.
|
|
7
|
+
* You can remove the `reset-project` script from package.json and safely delete this file after running it.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
import fs from 'fs';
|
|
11
|
+
import path from 'path';
|
|
12
|
+
import { createInterface } from 'readline/promises';
|
|
13
|
+
|
|
14
|
+
const root = process.cwd();
|
|
15
|
+
const oldDirs = ['app', 'components', 'hooks', 'constants', 'scripts'];
|
|
16
|
+
const exampleDir = 'app-example';
|
|
17
|
+
const newAppDir = 'app';
|
|
18
|
+
const exampleDirPath = path.join(root, exampleDir);
|
|
19
|
+
|
|
20
|
+
const indexContent = `import { Text, View } from "react-native";
|
|
21
|
+
|
|
22
|
+
export default function Index() {
|
|
23
|
+
return (
|
|
24
|
+
<View
|
|
25
|
+
style={{
|
|
26
|
+
flex: 1,
|
|
27
|
+
justifyContent: "center",
|
|
28
|
+
alignItems: "center",
|
|
29
|
+
}}
|
|
30
|
+
>
|
|
31
|
+
<Text>Edit app/index.tsx to edit this screen.</Text>
|
|
32
|
+
</View>
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
`;
|
|
36
|
+
|
|
37
|
+
const layoutContent = `import { Stack } from "expo-router";
|
|
38
|
+
|
|
39
|
+
export default function RootLayout() {
|
|
40
|
+
return <Stack />;
|
|
41
|
+
}
|
|
42
|
+
`;
|
|
43
|
+
|
|
44
|
+
const moveDirectories = async (userInput: string) => {
|
|
45
|
+
if (userInput === 'y') {
|
|
46
|
+
// Create the app-example directory
|
|
47
|
+
await fs.promises.mkdir(exampleDirPath, { recursive: true });
|
|
48
|
+
console.log(`📁 /${exampleDir} directory created.`);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Move old directories to new app-example directory or delete them
|
|
52
|
+
for (const dir of oldDirs) {
|
|
53
|
+
const oldDirPath = path.join(root, dir);
|
|
54
|
+
if (fs.existsSync(oldDirPath)) {
|
|
55
|
+
if (userInput === 'y') {
|
|
56
|
+
const newDirPath = path.join(root, exampleDir, dir);
|
|
57
|
+
await fs.promises.rename(oldDirPath, newDirPath);
|
|
58
|
+
console.log(`➡️ /${dir} moved to /${exampleDir}/${dir}.`);
|
|
59
|
+
} else {
|
|
60
|
+
await fs.promises.rm(oldDirPath, { recursive: true, force: true });
|
|
61
|
+
console.log(`❌ /${dir} deleted.`);
|
|
62
|
+
}
|
|
63
|
+
} else {
|
|
64
|
+
console.log(`➡️ /${dir} does not exist, skipping.`);
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
// Create new /app directory
|
|
69
|
+
const newAppDirPath = path.join(root, newAppDir);
|
|
70
|
+
await fs.promises.mkdir(newAppDirPath, { recursive: true });
|
|
71
|
+
console.log('\n📁 New /app directory created.');
|
|
72
|
+
|
|
73
|
+
// Create index.tsx
|
|
74
|
+
const indexPath = path.join(newAppDirPath, 'index.tsx');
|
|
75
|
+
await fs.promises.writeFile(indexPath, indexContent);
|
|
76
|
+
console.log('📄 app/index.tsx created.');
|
|
77
|
+
|
|
78
|
+
// Create _layout.tsx
|
|
79
|
+
const layoutPath = path.join(newAppDirPath, '_layout.tsx');
|
|
80
|
+
await fs.promises.writeFile(layoutPath, layoutContent);
|
|
81
|
+
console.log('📄 app/_layout.tsx created.');
|
|
82
|
+
|
|
83
|
+
console.log('\n✅ Project reset complete. Next steps:');
|
|
84
|
+
console.log(
|
|
85
|
+
`1. Run \`npx expo start\` to start a development server.\n2. Edit app/index.tsx to edit the main screen.${
|
|
86
|
+
userInput === 'y'
|
|
87
|
+
? `\n3. Delete the /${exampleDir} directory when you're done referencing it.`
|
|
88
|
+
: ''
|
|
89
|
+
}`
|
|
90
|
+
);
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
const main = async () => {
|
|
94
|
+
const rl = createInterface({ input: process.stdin, output: process.stdout });
|
|
95
|
+
try {
|
|
96
|
+
const answer = await rl.question('Do you want to move existing files to /app-example instead of deleting them? (Y/n): ');
|
|
97
|
+
const userInput = answer.trim().toLowerCase() || 'y';
|
|
98
|
+
if (userInput === 'y' || userInput === 'n') {
|
|
99
|
+
await moveDirectories(userInput);
|
|
100
|
+
} else {
|
|
101
|
+
console.log("❌ Invalid input. Please enter 'Y' or 'N'.");
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
} catch (error) {
|
|
105
|
+
if (error instanceof Error) {
|
|
106
|
+
console.error(`❌ Error during script execution: ${error.message}`);
|
|
107
|
+
} else {
|
|
108
|
+
console.error('❌ An unexpected error occurred:', error);
|
|
109
|
+
}
|
|
110
|
+
process.exit(1);
|
|
111
|
+
} finally {
|
|
112
|
+
rl.close();
|
|
113
|
+
}
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
void main();
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { hairlineWidth } from 'nativewind/theme';
|
|
2
|
+
|
|
3
|
+
export const darkMode = 'class';
|
|
4
|
+
export const content = ['./app/**/*.{ts,tsx}', './components/**/*.{ts,tsx}'];
|
|
5
|
+
export const presets = [require('nativewind/preset')];
|
|
6
|
+
|
|
7
|
+
export const theme = {
|
|
8
|
+
extend: {
|
|
9
|
+
colors: {
|
|
10
|
+
border: 'hsl(var(--border))',
|
|
11
|
+
input: 'hsl(var(--input))',
|
|
12
|
+
ring: 'hsl(var(--ring))',
|
|
13
|
+
background: 'hsl(var(--background))',
|
|
14
|
+
foreground: 'hsl(var(--foreground))',
|
|
15
|
+
primary: {
|
|
16
|
+
DEFAULT: 'hsl(var(--primary))',
|
|
17
|
+
foreground: 'hsl(var(--primary-foreground))',
|
|
18
|
+
},
|
|
19
|
+
secondary: {
|
|
20
|
+
DEFAULT: 'hsl(var(--secondary))',
|
|
21
|
+
foreground: 'hsl(var(--secondary-foreground))',
|
|
22
|
+
},
|
|
23
|
+
destructive: {
|
|
24
|
+
DEFAULT: 'hsl(var(--destructive))',
|
|
25
|
+
foreground: 'hsl(var(--destructive-foreground))',
|
|
26
|
+
},
|
|
27
|
+
muted: {
|
|
28
|
+
DEFAULT: 'hsl(var(--muted))',
|
|
29
|
+
foreground: 'hsl(var(--muted-foreground))',
|
|
30
|
+
},
|
|
31
|
+
accent: {
|
|
32
|
+
DEFAULT: 'hsl(var(--accent))',
|
|
33
|
+
foreground: 'hsl(var(--accent-foreground))',
|
|
34
|
+
},
|
|
35
|
+
popover: {
|
|
36
|
+
DEFAULT: 'hsl(var(--popover))',
|
|
37
|
+
foreground: 'hsl(var(--popover-foreground))',
|
|
38
|
+
},
|
|
39
|
+
card: {
|
|
40
|
+
DEFAULT: 'hsl(var(--card))',
|
|
41
|
+
foreground: 'hsl(var(--card-foreground))',
|
|
42
|
+
},
|
|
43
|
+
},
|
|
44
|
+
borderWidth: {
|
|
45
|
+
hairline: hairlineWidth(),
|
|
46
|
+
},
|
|
47
|
+
keyframes: {
|
|
48
|
+
'accordion-down': {
|
|
49
|
+
from: { height: '0' },
|
|
50
|
+
to: { height: 'var(--radix-accordion-content-height)' },
|
|
51
|
+
},
|
|
52
|
+
'accordion-up': {
|
|
53
|
+
from: { height: 'var(--radix-accordion-content-height)' },
|
|
54
|
+
to: { height: '0' },
|
|
55
|
+
},
|
|
56
|
+
},
|
|
57
|
+
animation: {
|
|
58
|
+
'accordion-down': 'accordion-down 0.2s ease-out',
|
|
59
|
+
'accordion-up': 'accordion-up 0.2s ease-out',
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
};
|
|
63
|
+
export const plugins = [require('tailwindcss-animate')];
|
|
@@ -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
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
22
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# Dependencies
|
|
2
|
+
node_modules/
|
|
3
|
+
|
|
4
|
+
# Build output
|
|
5
|
+
dist
|
|
6
|
+
.next/
|
|
7
|
+
.wix/
|
|
8
|
+
build
|
|
9
|
+
out
|
|
10
|
+
|
|
11
|
+
# Turbo cache
|
|
12
|
+
.turbo
|
|
13
|
+
|
|
14
|
+
# Logs
|
|
15
|
+
*.log
|
|
16
|
+
npm-debug.log*
|
|
17
|
+
yarn-debug.log*
|
|
18
|
+
yarn-error.log*
|
|
19
|
+
pnpm-debug.log*
|
|
20
|
+
|
|
21
|
+
# As per your ESLint config, JS files are not formatted.
|
|
22
|
+
**/*.js
|
|
23
|
+
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
node-options=--max-old-space-size=16384
|