openuispec 0.2.10 → 0.2.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -1
- package/cli/index.ts +4 -2
- package/cli/init.ts +23 -8
- package/docs/cli.md +13 -8
- package/drift/index.ts +41 -15
- package/mcp-server/index.ts +155 -116
- package/mcp-server/screenshot.ts +19 -4
- package/package.json +5 -2
- package/prepare/index.ts +16 -0
- package/scripts/take-all-screenshots.ts +507 -0
- package/status/index.ts +2 -2
- package/examples/social-app/.mcp.json +0 -10
- package/examples/social-app/AGENTS.md +0 -124
- package/examples/social-app/CLAUDE.md +0 -124
- package/examples/social-app/backend/.gitkeep +0 -1
- package/examples/social-app/generated/android/social-app/app/.paparazzi-hashes.json +0 -3
- package/examples/social-app/generated/android/social-app/app/build.gradle.kts +0 -94
- package/examples/social-app/generated/android/social-app/app/src/main/AndroidManifest.xml +0 -26
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/AppContainer.kt +0 -20
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/MainActivity.kt +0 -35
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/SocialAppApplication.kt +0 -13
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/MockData.kt +0 -98
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/preferences/AppPreferences.kt +0 -19
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/preferences/DataStorePreferencesRepository.kt +0 -68
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/data/preferences/PreferencesRepository.kt +0 -15
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/model/Models.kt +0 -34
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/MainShell.kt +0 -390
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/components/Components.kt +0 -234
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/components/ContractPrimitives.kt +0 -641
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/navigation/RootComponent.kt +0 -113
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/ChatDetailScreen.kt +0 -212
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/CreatePostScreen.kt +0 -113
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/DiscoverScreen.kt +0 -137
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/EditProfileScreen.kt +0 -180
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/HomeFeedScreen.kt +0 -169
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/MessagesInboxScreen.kt +0 -85
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/NotificationsScreen.kt +0 -74
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/PostDetailScreen.kt +0 -293
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/ProfileSelfScreen.kt +0 -116
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/SearchResultsScreen.kt +0 -161
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/SettingsScreen.kt +0 -164
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/SettingsStore.kt +0 -95
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/screens/UserProfileScreen.kt +0 -123
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Color.kt +0 -33
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Shape.kt +0 -41
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Spacing.kt +0 -20
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Theme.kt +0 -82
- package/examples/social-app/generated/android/social-app/app/src/main/java/com/social/app/ui/theme/Type.kt +0 -60
- package/examples/social-app/generated/android/social-app/app/src/main/res/drawable/ic_launcher_foreground.xml +0 -9
- package/examples/social-app/generated/android/social-app/app/src/main/res/mipmap-anydpi-v26/ic_launcher.xml +0 -5
- package/examples/social-app/generated/android/social-app/app/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml +0 -5
- package/examples/social-app/generated/android/social-app/app/src/main/res/values/strings.xml +0 -91
- package/examples/social-app/generated/android/social-app/app/src/main/res/values/themes.xml +0 -10
- package/examples/social-app/generated/android/social-app/app/src/main/res/values-ru/strings.xml +0 -79
- package/examples/social-app/generated/android/social-app/app/src/main/res/values-uz/strings.xml +0 -79
- package/examples/social-app/generated/android/social-app/app/src/main/xml/AndroidManifest.xml +0 -23
- package/examples/social-app/generated/android/social-app/app/src/test/kotlin/com/social/app/screenshots/HomeFeedScreenshotTest.kt +0 -34
- package/examples/social-app/generated/android/social-app/build.gradle.kts +0 -7
- package/examples/social-app/generated/android/social-app/gradle/libs.versions.toml +0 -50
- package/examples/social-app/generated/android/social-app/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/examples/social-app/generated/android/social-app/gradle/wrapper/gradle-wrapper.properties +0 -8
- package/examples/social-app/generated/android/social-app/gradle.properties +0 -11
- package/examples/social-app/generated/android/social-app/gradlew +0 -248
- package/examples/social-app/generated/android/social-app/settings.gradle.kts +0 -27
- package/examples/social-app/generated/web/social-app/index.html +0 -12
- package/examples/social-app/generated/web/social-app/package-lock.json +0 -2517
- package/examples/social-app/generated/web/social-app/package.json +0 -27
- package/examples/social-app/generated/web/social-app/src/app/App.tsx +0 -58
- package/examples/social-app/generated/web/social-app/src/components/Shell.tsx +0 -259
- package/examples/social-app/generated/web/social-app/src/components/cards.tsx +0 -317
- package/examples/social-app/generated/web/social-app/src/components/ui.tsx +0 -340
- package/examples/social-app/generated/web/social-app/src/flows/CreatePostFlow.tsx +0 -86
- package/examples/social-app/generated/web/social-app/src/i18n.tsx +0 -59
- package/examples/social-app/generated/web/social-app/src/lib/icons.tsx +0 -85
- package/examples/social-app/generated/web/social-app/src/lib/tokens.ts +0 -70
- package/examples/social-app/generated/web/social-app/src/lib/utils.ts +0 -97
- package/examples/social-app/generated/web/social-app/src/locales/en.json +0 -67
- package/examples/social-app/generated/web/social-app/src/locales/ru.json +0 -67
- package/examples/social-app/generated/web/social-app/src/locales/uz.json +0 -67
- package/examples/social-app/generated/web/social-app/src/main.tsx +0 -16
- package/examples/social-app/generated/web/social-app/src/screens/ChatDetailScreen.tsx +0 -90
- package/examples/social-app/generated/web/social-app/src/screens/DiscoverScreen.tsx +0 -86
- package/examples/social-app/generated/web/social-app/src/screens/EditProfileScreen.tsx +0 -57
- package/examples/social-app/generated/web/social-app/src/screens/HomeFeedScreen.tsx +0 -103
- package/examples/social-app/generated/web/social-app/src/screens/MessagesInboxScreen.tsx +0 -52
- package/examples/social-app/generated/web/social-app/src/screens/NotificationsScreen.tsx +0 -41
- package/examples/social-app/generated/web/social-app/src/screens/PostDetailScreen.tsx +0 -115
- package/examples/social-app/generated/web/social-app/src/screens/ProfileSelfScreen.tsx +0 -57
- package/examples/social-app/generated/web/social-app/src/screens/ProfileUserScreen.tsx +0 -76
- package/examples/social-app/generated/web/social-app/src/screens/SearchResultsScreen.tsx +0 -96
- package/examples/social-app/generated/web/social-app/src/screens/SettingsScreen.tsx +0 -79
- package/examples/social-app/generated/web/social-app/src/state/store.ts +0 -592
- package/examples/social-app/generated/web/social-app/src/styles.css +0 -125
- package/examples/social-app/generated/web/social-app/src/vite-env.d.ts +0 -1
- package/examples/social-app/generated/web/social-app/tsconfig.json +0 -22
- package/examples/social-app/generated/web/social-app/tsconfig.node.json +0 -13
- package/examples/social-app/generated/web/social-app/tsconfig.node.tsbuildinfo +0 -1
- package/examples/social-app/generated/web/social-app/tsconfig.tsbuildinfo +0 -1
- package/examples/social-app/generated/web/social-app/vite.config.d.ts +0 -2
- package/examples/social-app/generated/web/social-app/vite.config.js +0 -6
- package/examples/social-app/generated/web/social-app/vite.config.ts +0 -7
- package/examples/social-app/package.json +0 -13
- package/examples/social-app/take-web-screenshots.ts +0 -97
- package/examples/taskflow/.codex/config.toml +0 -4
- package/examples/taskflow/.mcp.json +0 -10
- package/examples/taskflow/AGENTS.md +0 -124
- package/examples/taskflow/CLAUDE.md +0 -124
- package/examples/taskflow/backend/.gitkeep +0 -1
- package/examples/taskflow/generated/android/TaskFlow/README.md +0 -43
- package/examples/taskflow/generated/android/TaskFlow/app/build.gradle.kts +0 -76
- package/examples/taskflow/generated/android/TaskFlow/app/proguard-rules.pro +0 -1
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/AndroidManifest.xml +0 -21
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/MainActivity.kt +0 -19
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/TaskFlowApp.kt +0 -283
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/model/DomainModels.kt +0 -106
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/model/SampleData.kt +0 -57
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/components/Common.kt +0 -109
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/HomeScreen.kt +0 -112
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/ProjectsScreen.kt +0 -61
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/SettingsScreen.kt +0 -82
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/screens/TaskDetailScreen.kt +0 -111
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/sheets/Sheets.kt +0 -77
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/theme/Color.kt +0 -30
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/theme/Theme.kt +0 -86
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/java/uz/rsteam/taskflow/ui/theme/Type.kt +0 -57
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/res/values/strings.xml +0 -155
- package/examples/taskflow/generated/android/TaskFlow/app/src/main/res/values/themes.xml +0 -4
- package/examples/taskflow/generated/android/TaskFlow/build.gradle.kts +0 -5
- package/examples/taskflow/generated/android/TaskFlow/gradle/gradle-daemon-jvm.properties +0 -12
- package/examples/taskflow/generated/android/TaskFlow/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/examples/taskflow/generated/android/TaskFlow/gradle/wrapper/gradle-wrapper.properties +0 -7
- package/examples/taskflow/generated/android/TaskFlow/gradle.properties +0 -4
- package/examples/taskflow/generated/android/TaskFlow/gradlew +0 -18
- package/examples/taskflow/generated/android/TaskFlow/gradlew.bat +0 -12
- package/examples/taskflow/generated/android/TaskFlow/settings.gradle.kts +0 -18
- package/examples/taskflow/generated/ios/TaskFlow/README.md +0 -21
- package/examples/taskflow/generated/ios/TaskFlow/Resources/en.lproj/Localizable.strings +0 -115
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/App/TaskFlowApp.swift +0 -24
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Components/AppChrome.swift +0 -150
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Flows/TaskEditorSheet.swift +0 -220
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Models/DomainModels.swift +0 -122
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/CalendarView.swift +0 -21
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/HomeView.swift +0 -201
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/ProfileEditView.swift +0 -48
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/ProjectDetailView.swift +0 -59
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/ProjectsView.swift +0 -63
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/SettingsView.swift +0 -85
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Screens/TaskDetailView.swift +0 -219
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Support/AppModel.swift +0 -320
- package/examples/taskflow/generated/ios/TaskFlow/Sources/TaskFlow/Support/AppSupport.swift +0 -41
- package/examples/taskflow/generated/ios/TaskFlow/project.yml +0 -31
- package/examples/taskflow/generated/web/TaskFlow/README.md +0 -19
- package/examples/taskflow/generated/web/TaskFlow/index.html +0 -12
- package/examples/taskflow/generated/web/TaskFlow/package-lock.json +0 -1908
- package/examples/taskflow/generated/web/TaskFlow/package.json +0 -24
- package/examples/taskflow/generated/web/TaskFlow/src/App.tsx +0 -58
- package/examples/taskflow/generated/web/TaskFlow/src/AppShell.tsx +0 -55
- package/examples/taskflow/generated/web/TaskFlow/src/components/Common.tsx +0 -82
- package/examples/taskflow/generated/web/TaskFlow/src/components/Modals.tsx +0 -191
- package/examples/taskflow/generated/web/TaskFlow/src/components/Nav.tsx +0 -41
- package/examples/taskflow/generated/web/TaskFlow/src/generated/messages.ts +0 -131
- package/examples/taskflow/generated/web/TaskFlow/src/hooks.ts +0 -25
- package/examples/taskflow/generated/web/TaskFlow/src/i18n.ts +0 -39
- package/examples/taskflow/generated/web/TaskFlow/src/locales.en.json +0 -111
- package/examples/taskflow/generated/web/TaskFlow/src/main.tsx +0 -13
- package/examples/taskflow/generated/web/TaskFlow/src/screens/HomeScreen.tsx +0 -111
- package/examples/taskflow/generated/web/TaskFlow/src/screens/ProjectsScreen.tsx +0 -82
- package/examples/taskflow/generated/web/TaskFlow/src/screens/SettingsScreens.tsx +0 -132
- package/examples/taskflow/generated/web/TaskFlow/src/screens/TaskDetail.tsx +0 -105
- package/examples/taskflow/generated/web/TaskFlow/src/store.ts +0 -216
- package/examples/taskflow/generated/web/TaskFlow/src/styles.css +0 -617
- package/examples/taskflow/generated/web/TaskFlow/src/types.ts +0 -64
- package/examples/taskflow/generated/web/TaskFlow/src/utils.ts +0 -78
- package/examples/taskflow/generated/web/TaskFlow/tsconfig.json +0 -21
- package/examples/taskflow/generated/web/TaskFlow/vite.config.ts +0 -6
- package/examples/todo-orbit/.codex/config.toml +0 -4
- package/examples/todo-orbit/.mcp.json +0 -10
- package/examples/todo-orbit/AGENTS.md +0 -124
- package/examples/todo-orbit/CLAUDE.md +0 -124
- package/examples/todo-orbit/backend/.gitkeep +0 -1
- package/examples/todo-orbit/generated/android/Todo Orbit/README.md +0 -14
- package/examples/todo-orbit/generated/android/Todo Orbit/app/build.gradle.kts +0 -58
- package/examples/todo-orbit/generated/android/Todo Orbit/app/proguard-rules.pro +0 -1
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/AndroidManifest.xml +0 -20
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/MainActivity.kt +0 -14
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/TodoOrbitApp.kt +0 -345
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/support/AppLogic.kt +0 -231
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/support/Models.kt +0 -169
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/support/Strings.kt +0 -8
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/components/CommonComponents.kt +0 -236
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/screens/AnalyticsScreen.kt +0 -193
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/screens/SettingsScreen.kt +0 -102
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/screens/TasksScreen.kt +0 -347
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/sheets/EditorSheets.kt +0 -347
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/java/uz/rsteam/todoorbit/ui/theme/TodoOrbitTheme.kt +0 -59
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/res/values/strings.xml +0 -149
- package/examples/todo-orbit/generated/android/Todo Orbit/app/src/main/res/values-ru/strings.xml +0 -155
- package/examples/todo-orbit/generated/android/Todo Orbit/build.gradle.kts +0 -4
- package/examples/todo-orbit/generated/android/Todo Orbit/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/examples/todo-orbit/generated/android/Todo Orbit/gradle/wrapper/gradle-wrapper.properties +0 -7
- package/examples/todo-orbit/generated/android/Todo Orbit/gradle.properties +0 -4
- package/examples/todo-orbit/generated/android/Todo Orbit/gradlew +0 -248
- package/examples/todo-orbit/generated/android/Todo Orbit/gradlew.bat +0 -93
- package/examples/todo-orbit/generated/android/Todo Orbit/settings.gradle.kts +0 -18
- package/examples/todo-orbit/generated/ios/Todo Orbit/.screenshot-uitest/Sources/ScreenshotUITest.swift +0 -36
- package/examples/todo-orbit/generated/ios/Todo Orbit/README.md +0 -29
- package/examples/todo-orbit/generated/ios/Todo Orbit/Resources/en.lproj/Localizable.strings +0 -119
- package/examples/todo-orbit/generated/ios/Todo Orbit/Resources/ru.lproj/Localizable.strings +0 -119
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/App/TodoOrbitApp.swift +0 -50
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Components/OrbitChrome.swift +0 -204
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Components/SchedulePreviewView.swift +0 -126
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Components/TrendChartView.swift +0 -70
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Flows/RecurringRuleSheet.swift +0 -126
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Flows/TaskEditorSheet.swift +0 -61
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Models/DomainModels.swift +0 -238
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Screens/AnalyticsView.swift +0 -94
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Screens/SettingsView.swift +0 -76
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Screens/TasksHomeView.swift +0 -364
- package/examples/todo-orbit/generated/ios/Todo Orbit/Sources/TodoOrbit/Support/AppModel.swift +0 -324
- package/examples/todo-orbit/generated/ios/Todo Orbit/TodoOrbit.xcodeproj/project.pbxproj +0 -439
- package/examples/todo-orbit/generated/ios/Todo Orbit/TodoOrbit.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/examples/todo-orbit/generated/ios/Todo Orbit/TodoOrbit.xcodeproj/xcshareddata/xcschemes/TodoOrbit.xcscheme +0 -89
- package/examples/todo-orbit/generated/ios/Todo Orbit/project.yml +0 -32
- package/examples/todo-orbit/generated/web/Todo Orbit/index.html +0 -16
- package/examples/todo-orbit/generated/web/Todo Orbit/package-lock.json +0 -1087
- package/examples/todo-orbit/generated/web/Todo Orbit/package.json +0 -24
- package/examples/todo-orbit/generated/web/Todo Orbit/src/App.tsx +0 -2167
- package/examples/todo-orbit/generated/web/Todo Orbit/src/main.tsx +0 -13
- package/examples/todo-orbit/generated/web/Todo Orbit/src/styles.css +0 -926
- package/examples/todo-orbit/generated/web/Todo Orbit/tsconfig.json +0 -19
- package/examples/todo-orbit/generated/web/Todo Orbit/vite.config.ts +0 -6
|
@@ -1 +0,0 @@
|
|
|
1
|
-
/// <reference types="vite/client" />
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2022",
|
|
4
|
-
"useDefineForClassFields": true,
|
|
5
|
-
"lib": ["DOM", "DOM.Iterable", "ES2022"],
|
|
6
|
-
"allowJs": false,
|
|
7
|
-
"skipLibCheck": true,
|
|
8
|
-
"esModuleInterop": true,
|
|
9
|
-
"allowSyntheticDefaultImports": true,
|
|
10
|
-
"strict": true,
|
|
11
|
-
"forceConsistentCasingInFileNames": true,
|
|
12
|
-
"module": "ESNext",
|
|
13
|
-
"moduleResolution": "Bundler",
|
|
14
|
-
"resolveJsonModule": true,
|
|
15
|
-
"isolatedModules": true,
|
|
16
|
-
"noEmit": true,
|
|
17
|
-
"jsx": "react-jsx",
|
|
18
|
-
"types": ["vite/client"]
|
|
19
|
-
},
|
|
20
|
-
"include": ["src"],
|
|
21
|
-
"references": [{ "path": "./tsconfig.node.json" }]
|
|
22
|
-
}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"composite": true,
|
|
4
|
-
"target": "ES2022",
|
|
5
|
-
"lib": ["ES2022"],
|
|
6
|
-
"module": "ESNext",
|
|
7
|
-
"moduleResolution": "Bundler",
|
|
8
|
-
"allowSyntheticDefaultImports": true,
|
|
9
|
-
"skipLibCheck": true,
|
|
10
|
-
"types": ["node"]
|
|
11
|
-
},
|
|
12
|
-
"include": ["vite.config.ts"]
|
|
13
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"fileNames":["./node_modules/typescript/lib/lib.es5.d.ts","./node_modules/typescript/lib/lib.es2015.d.ts","./node_modules/typescript/lib/lib.es2016.d.ts","./node_modules/typescript/lib/lib.es2017.d.ts","./node_modules/typescript/lib/lib.es2018.d.ts","./node_modules/typescript/lib/lib.es2019.d.ts","./node_modules/typescript/lib/lib.es2020.d.ts","./node_modules/typescript/lib/lib.es2021.d.ts","./node_modules/typescript/lib/lib.es2022.d.ts","./node_modules/typescript/lib/lib.es2015.core.d.ts","./node_modules/typescript/lib/lib.es2015.collection.d.ts","./node_modules/typescript/lib/lib.es2015.generator.d.ts","./node_modules/typescript/lib/lib.es2015.iterable.d.ts","./node_modules/typescript/lib/lib.es2015.promise.d.ts","./node_modules/typescript/lib/lib.es2015.proxy.d.ts","./node_modules/typescript/lib/lib.es2015.reflect.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.d.ts","./node_modules/typescript/lib/lib.es2015.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2016.array.include.d.ts","./node_modules/typescript/lib/lib.es2016.intl.d.ts","./node_modules/typescript/lib/lib.es2017.arraybuffer.d.ts","./node_modules/typescript/lib/lib.es2017.date.d.ts","./node_modules/typescript/lib/lib.es2017.object.d.ts","./node_modules/typescript/lib/lib.es2017.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2017.string.d.ts","./node_modules/typescript/lib/lib.es2017.intl.d.ts","./node_modules/typescript/lib/lib.es2017.typedarrays.d.ts","./node_modules/typescript/lib/lib.es2018.asyncgenerator.d.ts","./node_modules/typescript/lib/lib.es2018.asynciterable.d.ts","./node_modules/typescript/lib/lib.es2018.intl.d.ts","./node_modules/typescript/lib/lib.es2018.promise.d.ts","./node_modules/typescript/lib/lib.es2018.regexp.d.ts","./node_modules/typescript/lib/lib.es2019.array.d.ts","./node_modules/typescript/lib/lib.es2019.object.d.ts","./node_modules/typescript/lib/lib.es2019.string.d.ts","./node_modules/typescript/lib/lib.es2019.symbol.d.ts","./node_modules/typescript/lib/lib.es2019.intl.d.ts","./node_modules/typescript/lib/lib.es2020.bigint.d.ts","./node_modules/typescript/lib/lib.es2020.date.d.ts","./node_modules/typescript/lib/lib.es2020.promise.d.ts","./node_modules/typescript/lib/lib.es2020.sharedmemory.d.ts","./node_modules/typescript/lib/lib.es2020.string.d.ts","./node_modules/typescript/lib/lib.es2020.symbol.wellknown.d.ts","./node_modules/typescript/lib/lib.es2020.intl.d.ts","./node_modules/typescript/lib/lib.es2020.number.d.ts","./node_modules/typescript/lib/lib.es2021.promise.d.ts","./node_modules/typescript/lib/lib.es2021.string.d.ts","./node_modules/typescript/lib/lib.es2021.weakref.d.ts","./node_modules/typescript/lib/lib.es2021.intl.d.ts","./node_modules/typescript/lib/lib.es2022.array.d.ts","./node_modules/typescript/lib/lib.es2022.error.d.ts","./node_modules/typescript/lib/lib.es2022.intl.d.ts","./node_modules/typescript/lib/lib.es2022.object.d.ts","./node_modules/typescript/lib/lib.es2022.string.d.ts","./node_modules/typescript/lib/lib.es2022.regexp.d.ts","./node_modules/typescript/lib/lib.esnext.disposable.d.ts","./node_modules/typescript/lib/lib.esnext.float16.d.ts","./node_modules/typescript/lib/lib.decorators.d.ts","./node_modules/typescript/lib/lib.decorators.legacy.d.ts","./node_modules/@types/node/compatibility/iterators.d.ts","./node_modules/@types/node/globals.typedarray.d.ts","./node_modules/@types/node/buffer.buffer.d.ts","./node_modules/@types/node/globals.d.ts","./node_modules/@types/node/web-globals/abortcontroller.d.ts","./node_modules/@types/node/web-globals/blob.d.ts","./node_modules/@types/node/web-globals/console.d.ts","./node_modules/@types/node/web-globals/crypto.d.ts","./node_modules/@types/node/web-globals/domexception.d.ts","./node_modules/@types/node/web-globals/encoding.d.ts","./node_modules/@types/node/web-globals/events.d.ts","./node_modules/undici-types/utility.d.ts","./node_modules/undici-types/header.d.ts","./node_modules/undici-types/readable.d.ts","./node_modules/undici-types/fetch.d.ts","./node_modules/undici-types/formdata.d.ts","./node_modules/undici-types/connector.d.ts","./node_modules/undici-types/client-stats.d.ts","./node_modules/undici-types/client.d.ts","./node_modules/undici-types/errors.d.ts","./node_modules/undici-types/dispatcher.d.ts","./node_modules/undici-types/global-dispatcher.d.ts","./node_modules/undici-types/global-origin.d.ts","./node_modules/undici-types/pool-stats.d.ts","./node_modules/undici-types/pool.d.ts","./node_modules/undici-types/handlers.d.ts","./node_modules/undici-types/balanced-pool.d.ts","./node_modules/undici-types/round-robin-pool.d.ts","./node_modules/undici-types/h2c-client.d.ts","./node_modules/undici-types/agent.d.ts","./node_modules/undici-types/mock-interceptor.d.ts","./node_modules/undici-types/mock-call-history.d.ts","./node_modules/undici-types/mock-agent.d.ts","./node_modules/undici-types/mock-client.d.ts","./node_modules/undici-types/mock-pool.d.ts","./node_modules/undici-types/snapshot-agent.d.ts","./node_modules/undici-types/mock-errors.d.ts","./node_modules/undici-types/proxy-agent.d.ts","./node_modules/undici-types/env-http-proxy-agent.d.ts","./node_modules/undici-types/retry-handler.d.ts","./node_modules/undici-types/retry-agent.d.ts","./node_modules/undici-types/api.d.ts","./node_modules/undici-types/cache-interceptor.d.ts","./node_modules/undici-types/interceptors.d.ts","./node_modules/undici-types/util.d.ts","./node_modules/undici-types/cookies.d.ts","./node_modules/undici-types/patch.d.ts","./node_modules/undici-types/websocket.d.ts","./node_modules/undici-types/eventsource.d.ts","./node_modules/undici-types/diagnostics-channel.d.ts","./node_modules/undici-types/content-type.d.ts","./node_modules/undici-types/cache.d.ts","./node_modules/undici-types/index.d.ts","./node_modules/@types/node/web-globals/fetch.d.ts","./node_modules/@types/node/web-globals/importmeta.d.ts","./node_modules/@types/node/web-globals/messaging.d.ts","./node_modules/@types/node/web-globals/navigator.d.ts","./node_modules/@types/node/web-globals/performance.d.ts","./node_modules/@types/node/web-globals/storage.d.ts","./node_modules/@types/node/web-globals/streams.d.ts","./node_modules/@types/node/web-globals/timers.d.ts","./node_modules/@types/node/web-globals/url.d.ts","./node_modules/@types/node/assert.d.ts","./node_modules/@types/node/assert/strict.d.ts","./node_modules/@types/node/async_hooks.d.ts","./node_modules/@types/node/buffer.d.ts","./node_modules/@types/node/child_process.d.ts","./node_modules/@types/node/cluster.d.ts","./node_modules/@types/node/console.d.ts","./node_modules/@types/node/constants.d.ts","./node_modules/@types/node/crypto.d.ts","./node_modules/@types/node/dgram.d.ts","./node_modules/@types/node/diagnostics_channel.d.ts","./node_modules/@types/node/dns.d.ts","./node_modules/@types/node/dns/promises.d.ts","./node_modules/@types/node/domain.d.ts","./node_modules/@types/node/events.d.ts","./node_modules/@types/node/fs.d.ts","./node_modules/@types/node/fs/promises.d.ts","./node_modules/@types/node/http.d.ts","./node_modules/@types/node/http2.d.ts","./node_modules/@types/node/https.d.ts","./node_modules/@types/node/inspector.d.ts","./node_modules/@types/node/inspector.generated.d.ts","./node_modules/@types/node/inspector/promises.d.ts","./node_modules/@types/node/module.d.ts","./node_modules/@types/node/net.d.ts","./node_modules/@types/node/os.d.ts","./node_modules/@types/node/path.d.ts","./node_modules/@types/node/path/posix.d.ts","./node_modules/@types/node/path/win32.d.ts","./node_modules/@types/node/perf_hooks.d.ts","./node_modules/@types/node/process.d.ts","./node_modules/@types/node/punycode.d.ts","./node_modules/@types/node/querystring.d.ts","./node_modules/@types/node/quic.d.ts","./node_modules/@types/node/readline.d.ts","./node_modules/@types/node/readline/promises.d.ts","./node_modules/@types/node/repl.d.ts","./node_modules/@types/node/sea.d.ts","./node_modules/@types/node/sqlite.d.ts","./node_modules/@types/node/stream.d.ts","./node_modules/@types/node/stream/consumers.d.ts","./node_modules/@types/node/stream/promises.d.ts","./node_modules/@types/node/stream/web.d.ts","./node_modules/@types/node/string_decoder.d.ts","./node_modules/@types/node/test.d.ts","./node_modules/@types/node/test/reporters.d.ts","./node_modules/@types/node/timers.d.ts","./node_modules/@types/node/timers/promises.d.ts","./node_modules/@types/node/tls.d.ts","./node_modules/@types/node/trace_events.d.ts","./node_modules/@types/node/tty.d.ts","./node_modules/@types/node/url.d.ts","./node_modules/@types/node/util.d.ts","./node_modules/@types/node/util/types.d.ts","./node_modules/@types/node/v8.d.ts","./node_modules/@types/node/vm.d.ts","./node_modules/@types/node/wasi.d.ts","./node_modules/@types/node/worker_threads.d.ts","./node_modules/@types/node/zlib.d.ts","./node_modules/@types/node/index.d.ts","./node_modules/vite/types/hmrpayload.d.ts","./node_modules/vite/dist/node/chunks/modulerunnertransport.d.ts","./node_modules/vite/types/customevent.d.ts","./node_modules/@types/estree/index.d.ts","./node_modules/rollup/dist/rollup.d.ts","./node_modules/rollup/dist/parseast.d.ts","./node_modules/vite/types/hot.d.ts","./node_modules/vite/dist/node/module-runner.d.ts","./node_modules/esbuild/lib/main.d.ts","./node_modules/vite/types/internal/terseroptions.d.ts","./node_modules/source-map-js/source-map.d.ts","./node_modules/postcss/lib/previous-map.d.ts","./node_modules/postcss/lib/input.d.ts","./node_modules/postcss/lib/css-syntax-error.d.ts","./node_modules/postcss/lib/declaration.d.ts","./node_modules/postcss/lib/root.d.ts","./node_modules/postcss/lib/warning.d.ts","./node_modules/postcss/lib/lazy-result.d.ts","./node_modules/postcss/lib/no-work-result.d.ts","./node_modules/postcss/lib/processor.d.ts","./node_modules/postcss/lib/result.d.ts","./node_modules/postcss/lib/document.d.ts","./node_modules/postcss/lib/rule.d.ts","./node_modules/postcss/lib/node.d.ts","./node_modules/postcss/lib/comment.d.ts","./node_modules/postcss/lib/container.d.ts","./node_modules/postcss/lib/at-rule.d.ts","./node_modules/postcss/lib/list.d.ts","./node_modules/postcss/lib/postcss.d.ts","./node_modules/postcss/lib/postcss.d.mts","./node_modules/vite/types/internal/csspreprocessoroptions.d.ts","./node_modules/lightningcss/node/ast.d.ts","./node_modules/lightningcss/node/targets.d.ts","./node_modules/lightningcss/node/index.d.ts","./node_modules/vite/types/internal/lightningcssoptions.d.ts","./node_modules/vite/types/importglob.d.ts","./node_modules/vite/types/metadata.d.ts","./node_modules/vite/dist/node/index.d.ts","./node_modules/@babel/types/lib/index.d.ts","./node_modules/@types/babel__generator/index.d.ts","./node_modules/@babel/parser/typings/babel-parser.d.ts","./node_modules/@types/babel__template/index.d.ts","./node_modules/@types/babel__traverse/index.d.ts","./node_modules/@types/babel__core/index.d.ts","./node_modules/@vitejs/plugin-react/dist/index.d.ts","./node_modules/@tailwindcss/vite/dist/index.d.mts","./vite.config.ts"],"fileIdsList":[[62,125,133,137,140,142,143,144,156,220],[62,125,133,137,140,142,143,144,156],[62,125,133,137,140,142,143,144,156,219],[62,125,133,137,140,142,143,144,156,220,221,222,223,224],[62,125,133,137,140,142,143,144,156,220,222],[62,122,123,125,133,137,140,142,143,144,156],[62,124,125,133,137,140,142,143,144,156],[125,133,137,140,142,143,144,156],[62,125,133,137,140,142,143,144,156,164],[62,125,126,131,133,136,137,140,142,143,144,146,156,161,173],[62,125,126,127,133,136,137,140,142,143,144,156],[62,125,128,133,137,140,142,143,144,156,174],[62,125,129,130,133,137,140,142,143,144,147,156],[62,125,130,133,137,140,142,143,144,156,161,170],[62,125,131,133,136,137,140,142,143,144,146,156],[62,124,125,132,133,137,140,142,143,144,156],[62,125,133,134,137,140,142,143,144,156],[62,125,133,135,136,137,140,142,143,144,156],[62,124,125,133,136,137,140,142,143,144,156],[62,125,133,136,137,138,140,142,143,144,156,161,173],[62,125,133,136,137,138,140,142,143,144,156,161,164],[62,112,125,133,136,137,139,140,142,143,144,146,156,161,173],[62,125,133,136,137,139,140,142,143,144,146,156,161,170,173],[62,125,133,137,139,140,141,142,143,144,156,161,170,173],[60,61,62,63,64,65,66,67,68,69,70,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180],[62,125,133,136,137,140,142,143,144,156],[62,125,133,137,140,142,144,156],[62,125,133,137,140,142,143,144,145,156,173],[62,125,133,136,137,140,142,143,144,146,156,161],[62,125,133,137,140,142,143,144,147,156],[62,125,133,137,140,142,143,144,148,156],[62,125,133,136,137,140,142,143,144,151,156],[62,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180],[62,125,133,137,140,142,143,144,153,156],[62,125,133,137,140,142,143,144,154,156],[62,125,130,133,137,140,142,143,144,146,156,164],[62,125,133,136,137,140,142,143,144,156,157],[62,125,133,137,140,142,143,144,156,158,174,177],[62,125,133,136,137,140,142,143,144,156,161,163,164],[62,125,133,137,140,142,143,144,156,162,164],[62,125,133,137,140,142,143,144,156,164,174],[62,125,133,137,140,142,143,144,156,165],[62,122,125,133,137,140,142,143,144,156,161,167,173],[62,125,133,137,140,142,143,144,156,161,166],[62,125,133,136,137,140,142,143,144,156,168,169],[62,125,133,137,140,142,143,144,156,168,169],[62,125,130,133,137,140,142,143,144,146,156,161,170],[62,125,133,137,140,142,143,144,156,171],[62,125,133,137,140,142,143,144,146,156,172],[62,125,133,137,139,140,142,143,144,154,156,173],[62,125,133,137,140,142,143,144,156,174,175],[62,125,130,133,137,140,142,143,144,156,175],[62,125,133,137,140,142,143,144,156,161,176],[62,125,133,137,140,142,143,144,145,156,177],[62,125,133,137,140,142,143,144,156,178],[62,125,128,133,137,140,142,143,144,156],[62,125,130,133,137,140,142,143,144,156],[62,125,133,137,140,142,143,144,156,174],[62,112,125,133,137,140,142,143,144,156],[62,125,133,137,140,142,143,144,156,173],[62,125,133,137,140,142,143,144,156,179],[62,125,133,137,140,142,143,144,151,156],[62,125,133,137,140,142,143,144,156,169],[62,112,125,133,136,137,138,140,142,143,144,151,156,161,164,173,176,177,179],[62,125,133,137,140,142,143,144,156,161,180],[62,125,133,137,140,142,143,144,156,219,225],[62,125,133,137,140,142,143,144,156,213,214],[62,125,133,137,140,142,143,144,156,207],[62,125,133,137,140,142,143,144,156,205,207],[62,125,133,137,140,142,143,144,156,196,204,205,206,208,210],[62,125,133,137,140,142,143,144,156,194],[62,125,133,137,140,142,143,144,156,197,202,207,210],[62,125,133,137,140,142,143,144,156,193,210],[62,125,133,137,140,142,143,144,156,197,198,201,202,203,210],[62,125,133,137,140,142,143,144,156,197,198,199,201,202,210],[62,125,133,137,140,142,143,144,156,194,195,196,197,198,202,203,204,206,207,208,210],[62,125,133,137,140,142,143,144,156,210],[62,125,133,137,140,142,143,144,156,192,194,195,196,197,198,199,201,202,203,204,205,206,207,208,209],[62,125,133,137,140,142,143,144,156,192,210],[62,125,133,137,140,142,143,144,156,197,199,200,202,203,210],[62,125,133,137,140,142,143,144,156,201,210],[62,125,133,137,140,142,143,144,156,202,203,207,210],[62,125,133,137,140,142,143,144,156,195,205],[62,125,133,137,140,142,143,144,156,186,218,219],[62,125,133,137,140,142,143,144,156,185,186],[62,77,80,83,84,125,133,137,140,142,143,144,156,173],[62,80,125,133,137,140,142,143,144,156,161,173],[62,80,84,125,133,137,140,142,143,144,156,173],[62,125,133,137,140,142,143,144,156,161],[62,74,125,133,137,140,142,143,144,156],[62,78,125,133,137,140,142,143,144,156],[62,76,77,80,125,133,137,140,142,143,144,156,173],[62,125,133,137,140,142,143,144,146,156,170],[62,125,133,137,140,142,143,144,156,181],[62,74,125,133,137,140,142,143,144,156,181],[62,76,80,125,133,137,140,142,143,144,146,156,173],[62,71,72,73,75,79,125,133,136,137,140,142,143,144,156,161,173],[62,80,89,97,125,133,137,140,142,143,144,156],[62,72,78,125,133,137,140,142,143,144,156],[62,80,106,107,125,133,137,140,142,143,144,156],[62,72,75,80,125,133,137,140,142,143,144,156,164,173,181],[62,80,125,133,137,140,142,143,144,156],[62,76,80,125,133,137,140,142,143,144,156,173],[62,71,125,133,137,140,142,143,144,156],[62,74,75,76,78,79,80,81,82,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,107,108,109,110,111,125,133,137,140,142,143,144,156],[62,80,99,102,125,133,137,140,142,143,144,156],[62,80,89,90,91,125,133,137,140,142,143,144,156],[62,78,80,90,92,125,133,137,140,142,143,144,156],[62,79,125,133,137,140,142,143,144,156],[62,72,74,80,125,133,137,140,142,143,144,156],[62,80,84,90,92,125,133,137,140,142,143,144,156],[62,84,125,133,137,140,142,143,144,156],[62,78,80,83,125,133,137,140,142,143,144,156,173],[62,72,76,80,89,125,133,137,140,142,143,144,156],[62,80,99,125,133,137,140,142,143,144,156],[62,92,125,133,137,140,142,143,144,156],[62,74,80,106,125,133,137,140,142,143,144,156,164,179,181],[62,125,133,137,140,142,143,144,156,182],[62,125,133,136,137,139,140,141,142,143,144,146,156,161,170,173,180,181,182,183,184,186,187,189,190,191,211,212,216,217,218,219],[62,125,133,137,140,142,143,144,156,182,183,184,188],[62,125,133,137,140,142,143,144,156,184],[62,125,133,137,140,142,143,144,156,215],[62,125,133,137,140,142,143,144,156,186,219],[62,125,133,137,140,142,143,144,156,219,226,227]],"fileInfos":[{"version":"c430d44666289dae81f30fa7b2edebf186ecc91a2d4c71266ea6ae76388792e1","affectsGlobalScope":true,"impliedFormat":1},{"version":"45b7ab580deca34ae9729e97c13cfd999df04416a79116c3bfb483804f85ded4","impliedFormat":1},{"version":"3facaf05f0c5fc569c5649dd359892c98a85557e3e0c847964caeb67076f4d75","impliedFormat":1},{"version":"e44bb8bbac7f10ecc786703fe0a6a4b952189f908707980ba8f3c8975a760962","impliedFormat":1},{"version":"5e1c4c362065a6b95ff952c0eab010f04dcd2c3494e813b493ecfd4fcb9fc0d8","impliedFormat":1},{"version":"68d73b4a11549f9c0b7d352d10e91e5dca8faa3322bfb77b661839c42b1ddec7","impliedFormat":1},{"version":"5efce4fc3c29ea84e8928f97adec086e3dc876365e0982cc8479a07954a3efd4","impliedFormat":1},{"version":"feecb1be483ed332fad555aff858affd90a48ab19ba7272ee084704eb7167569","impliedFormat":1},{"version":"ee7bad0c15b58988daa84371e0b89d313b762ab83cb5b31b8a2d1162e8eb41c2","impliedFormat":1},{"version":"c57796738e7f83dbc4b8e65132f11a377649c00dd3eee333f672b8f0a6bea671","affectsGlobalScope":true,"impliedFormat":1},{"version":"dc2df20b1bcdc8c2d34af4926e2c3ab15ffe1160a63e58b7e09833f616efff44","affectsGlobalScope":true,"impliedFormat":1},{"version":"515d0b7b9bea2e31ea4ec968e9edd2c39d3eebf4a2d5cbd04e88639819ae3b71","affectsGlobalScope":true,"impliedFormat":1},{"version":"0559b1f683ac7505ae451f9a96ce4c3c92bdc71411651ca6ddb0e88baaaad6a3","affectsGlobalScope":true,"impliedFormat":1},{"version":"0dc1e7ceda9b8b9b455c3a2d67b0412feab00bd2f66656cd8850e8831b08b537","affectsGlobalScope":true,"impliedFormat":1},{"version":"ce691fb9e5c64efb9547083e4a34091bcbe5bdb41027e310ebba8f7d96a98671","affectsGlobalScope":true,"impliedFormat":1},{"version":"8d697a2a929a5fcb38b7a65594020fcef05ec1630804a33748829c5ff53640d0","affectsGlobalScope":true,"impliedFormat":1},{"version":"4ff2a353abf8a80ee399af572debb8faab2d33ad38c4b4474cff7f26e7653b8d","affectsGlobalScope":true,"impliedFormat":1},{"version":"fb0f136d372979348d59b3f5020b4cdb81b5504192b1cacff5d1fbba29378aa1","affectsGlobalScope":true,"impliedFormat":1},{"version":"d15bea3d62cbbdb9797079416b8ac375ae99162a7fba5de2c6c505446486ac0a","affectsGlobalScope":true,"impliedFormat":1},{"version":"68d18b664c9d32a7336a70235958b8997ebc1c3b8505f4f1ae2b7e7753b87618","affectsGlobalScope":true,"impliedFormat":1},{"version":"eb3d66c8327153d8fa7dd03f9c58d351107fe824c79e9b56b462935176cdf12a","affectsGlobalScope":true,"impliedFormat":1},{"version":"38f0219c9e23c915ef9790ab1d680440d95419ad264816fa15009a8851e79119","affectsGlobalScope":true,"impliedFormat":1},{"version":"69ab18c3b76cd9b1be3d188eaf8bba06112ebbe2f47f6c322b5105a6fbc45a2e","affectsGlobalScope":true,"impliedFormat":1},{"version":"a680117f487a4d2f30ea46f1b4b7f58bef1480456e18ba53ee85c2746eeca012","affectsGlobalScope":true,"impliedFormat":1},{"version":"2f11ff796926e0832f9ae148008138ad583bd181899ab7dd768a2666700b1893","affectsGlobalScope":true,"impliedFormat":1},{"version":"4de680d5bb41c17f7f68e0419412ca23c98d5749dcaaea1896172f06435891fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"954296b30da6d508a104a3a0b5d96b76495c709785c1d11610908e63481ee667","affectsGlobalScope":true,"impliedFormat":1},{"version":"ac9538681b19688c8eae65811b329d3744af679e0bdfa5d842d0e32524c73e1c","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a969edff4bd52585473d24995c5ef223f6652d6ef46193309b3921d65dd4376","affectsGlobalScope":true,"impliedFormat":1},{"version":"9e9fbd7030c440b33d021da145d3232984c8bb7916f277e8ffd3dc2e3eae2bdb","affectsGlobalScope":true,"impliedFormat":1},{"version":"811ec78f7fefcabbda4bfa93b3eb67d9ae166ef95f9bff989d964061cbf81a0c","affectsGlobalScope":true,"impliedFormat":1},{"version":"717937616a17072082152a2ef351cb51f98802fb4b2fdabd32399843875974ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"d7e7d9b7b50e5f22c915b525acc5a49a7a6584cf8f62d0569e557c5cfc4b2ac2","affectsGlobalScope":true,"impliedFormat":1},{"version":"71c37f4c9543f31dfced6c7840e068c5a5aacb7b89111a4364b1d5276b852557","affectsGlobalScope":true,"impliedFormat":1},{"version":"576711e016cf4f1804676043e6a0a5414252560eb57de9faceee34d79798c850","affectsGlobalScope":true,"impliedFormat":1},{"version":"89c1b1281ba7b8a96efc676b11b264de7a8374c5ea1e6617f11880a13fc56dc6","affectsGlobalScope":true,"impliedFormat":1},{"version":"74f7fa2d027d5b33eb0471c8e82a6c87216223181ec31247c357a3e8e2fddc5b","affectsGlobalScope":true,"impliedFormat":1},{"version":"d6d7ae4d1f1f3772e2a3cde568ed08991a8ae34a080ff1151af28b7f798e22ca","affectsGlobalScope":true,"impliedFormat":1},{"version":"063600664504610fe3e99b717a1223f8b1900087fab0b4cad1496a114744f8df","affectsGlobalScope":true,"impliedFormat":1},{"version":"934019d7e3c81950f9a8426d093458b65d5aff2c7c1511233c0fd5b941e608ab","affectsGlobalScope":true,"impliedFormat":1},{"version":"52ada8e0b6e0482b728070b7639ee42e83a9b1c22d205992756fe020fd9f4a47","affectsGlobalScope":true,"impliedFormat":1},{"version":"3bdefe1bfd4d6dee0e26f928f93ccc128f1b64d5d501ff4a8cf3c6371200e5e6","affectsGlobalScope":true,"impliedFormat":1},{"version":"59fb2c069260b4ba00b5643b907ef5d5341b167e7d1dbf58dfd895658bda2867","affectsGlobalScope":true,"impliedFormat":1},{"version":"639e512c0dfc3fad96a84caad71b8834d66329a1f28dc95e3946c9b58176c73a","affectsGlobalScope":true,"impliedFormat":1},{"version":"368af93f74c9c932edd84c58883e736c9e3d53cec1fe24c0b0ff451f529ceab1","affectsGlobalScope":true,"impliedFormat":1},{"version":"af3dd424cf267428f30ccfc376f47a2c0114546b55c44d8c0f1d57d841e28d74","affectsGlobalScope":true,"impliedFormat":1},{"version":"995c005ab91a498455ea8dfb63aa9f83fa2ea793c3d8aa344be4a1678d06d399","affectsGlobalScope":true,"impliedFormat":1},{"version":"959d36cddf5e7d572a65045b876f2956c973a586da58e5d26cde519184fd9b8a","affectsGlobalScope":true,"impliedFormat":1},{"version":"965f36eae237dd74e6cca203a43e9ca801ce38824ead814728a2807b1910117d","affectsGlobalScope":true,"impliedFormat":1},{"version":"3925a6c820dcb1a06506c90b1577db1fdbf7705d65b62b99dce4be75c637e26b","affectsGlobalScope":true,"impliedFormat":1},{"version":"0a3d63ef2b853447ec4f749d3f368ce642264246e02911fcb1590d8c161b8005","affectsGlobalScope":true,"impliedFormat":1},{"version":"8cdf8847677ac7d20486e54dd3fcf09eda95812ac8ace44b4418da1bbbab6eb8","affectsGlobalScope":true,"impliedFormat":1},{"version":"8444af78980e3b20b49324f4a16ba35024fef3ee069a0eb67616ea6ca821c47a","affectsGlobalScope":true,"impliedFormat":1},{"version":"3287d9d085fbd618c3971944b65b4be57859f5415f495b33a6adc994edd2f004","affectsGlobalScope":true,"impliedFormat":1},{"version":"b4b67b1a91182421f5df999988c690f14d813b9850b40acd06ed44691f6727ad","affectsGlobalScope":true,"impliedFormat":1},{"version":"51ad4c928303041605b4d7ae32e0c1ee387d43a24cd6f1ebf4a2699e1076d4fa","affectsGlobalScope":true,"impliedFormat":1},{"version":"196cb558a13d4533a5163286f30b0509ce0210e4b316c56c38d4c0fd2fb38405","affectsGlobalScope":true,"impliedFormat":1},{"version":"8e7f8264d0fb4c5339605a15daadb037bf238c10b654bb3eee14208f860a32ea","affectsGlobalScope":true,"impliedFormat":1},{"version":"782dec38049b92d4e85c1585fbea5474a219c6984a35b004963b00beb1aab538","affectsGlobalScope":true,"impliedFormat":1},{"version":"d153a11543fd884b596587ccd97aebbeed950b26933ee000f94009f1ab142848","affectsGlobalScope":true,"impliedFormat":1},{"version":"0ccdaa19852d25ecd84eec365c3bfa16e7859cadecf6e9ca6d0dbbbee439743f","affectsGlobalScope":true,"impliedFormat":1},{"version":"438b41419b1df9f1fbe33b5e1b18f5853432be205991d1b19f5b7f351675541e","affectsGlobalScope":true,"impliedFormat":1},{"version":"096116f8fedc1765d5bd6ef360c257b4a9048e5415054b3bf3c41b07f8951b0b","affectsGlobalScope":true,"impliedFormat":1},{"version":"e5e01375c9e124a83b52ee4b3244ed1a4d214a6cfb54ac73e164a823a4a7860a","affectsGlobalScope":true,"impliedFormat":1},{"version":"f90ae2bbce1505e67f2f6502392e318f5714bae82d2d969185c4a6cecc8af2fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"4b58e207b93a8f1c88bbf2a95ddc686ac83962b13830fe8ad3f404ffc7051fb4","affectsGlobalScope":true,"impliedFormat":1},{"version":"1fefabcb2b06736a66d2904074d56268753654805e829989a46a0161cd8412c5","affectsGlobalScope":true,"impliedFormat":1},{"version":"9798340ffb0d067d69b1ae5b32faa17ab31b82466a3fc00d8f2f2df0c8554aaa","affectsGlobalScope":true,"impliedFormat":1},{"version":"c18a99f01eb788d849ad032b31cafd49de0b19e083fe775370834c5675d7df8e","affectsGlobalScope":true,"impliedFormat":1},{"version":"5247874c2a23b9a62d178ae84f2db6a1d54e6c9a2e7e057e178cc5eea13757fc","affectsGlobalScope":true,"impliedFormat":1},{"version":"cdcf9ea426ad970f96ac930cd176d5c69c6c24eebd9fc580e1572d6c6a88f62c","impliedFormat":1},{"version":"23cd712e2ce083d68afe69224587438e5914b457b8acf87073c22494d706a3d0","impliedFormat":1},{"version":"156a859e21ef3244d13afeeba4e49760a6afa035c149dda52f0c45ea8903b338","impliedFormat":1},{"version":"10ec5e82144dfac6f04fa5d1d6c11763b3e4dbbac6d99101427219ab3e2ae887","impliedFormat":1},{"version":"615754924717c0b1e293e083b83503c0a872717ad5aa60ed7f1a699eb1b4ea5c","impliedFormat":1},{"version":"074de5b2fdead0165a2757e3aaef20f27a6347b1c36adea27d51456795b37682","impliedFormat":1},{"version":"68834d631c8838c715f225509cfc3927913b9cc7a4870460b5b60c8dbdb99baf","impliedFormat":1},{"version":"24371e69a38fc33e268d4a8716dbcda430d6c2c414a99ff9669239c4b8f40dea","impliedFormat":1},{"version":"ccab02f3920fc75c01174c47fcf67882a11daf16baf9e81701d0a94636e94556","impliedFormat":1},{"version":"3e11fce78ad8c0e1d1db4ba5f0652285509be3acdd519529bc8fcef85f7dafd9","impliedFormat":1},{"version":"ea6bc8de8b59f90a7a3960005fd01988f98fd0784e14bc6922dde2e93305ec7d","impliedFormat":1},{"version":"36107995674b29284a115e21a0618c4c2751b32a8766dd4cb3ba740308b16d59","impliedFormat":1},{"version":"914a0ae30d96d71915fc519ccb4efbf2b62c0ddfb3a3fc6129151076bc01dc60","impliedFormat":1},{"version":"9c32412007b5662fd34a8eb04292fb5314ec370d7016d1c2fb8aa193c807fe22","impliedFormat":1},{"version":"7fd1b31fd35876b0aa650811c25ec2c97a3c6387e5473eb18004bed86cdd76b6","impliedFormat":1},{"version":"4d327f7d72ad0918275cea3eee49a6a8dc8114ae1d5b7f3f5d0774de75f7439a","impliedFormat":1},{"version":"6ebe8ebb8659aaa9d1acbf3710d7dae3e923e97610238b9511c25dc39023a166","impliedFormat":1},{"version":"e85d7f8068f6a26710bff0cc8c0fc5e47f71089c3780fbede05857331d2ddec9","impliedFormat":1},{"version":"7befaf0e76b5671be1d47b77fcc65f2b0aad91cc26529df1904f4a7c46d216e9","impliedFormat":1},{"version":"0a60a292b89ca7218b8616f78e5bbd1c96b87e048849469cccb4355e98af959a","impliedFormat":1},{"version":"0b6e25234b4eec6ed96ab138d96eb70b135690d7dd01f3dd8a8ab291c35a683a","impliedFormat":1},{"version":"9666f2f84b985b62400d2e5ab0adae9ff44de9b2a34803c2c5bd3c8325b17dc0","impliedFormat":1},{"version":"40cd35c95e9cf22cfa5bd84e96408b6fcbca55295f4ff822390abb11afbc3dca","impliedFormat":1},{"version":"b1616b8959bf557feb16369c6124a97a0e74ed6f49d1df73bb4b9ddf68acf3f3","impliedFormat":1},{"version":"5b03a034c72146b61573aab280f295b015b9168470f2df05f6080a2122f9b4df","impliedFormat":1},{"version":"40b463c6766ca1b689bfcc46d26b5e295954f32ad43e37ee6953c0a677e4ae2b","impliedFormat":1},{"version":"249b9cab7f5d628b71308c7d9bb0a808b50b091e640ba3ed6e2d0516f4a8d91d","impliedFormat":1},{"version":"80aae6afc67faa5ac0b32b5b8bc8cc9f7fa299cff15cf09cc2e11fd28c6ae29e","impliedFormat":1},{"version":"f473cd2288991ff3221165dcf73cd5d24da30391f87e85b3dd4d0450c787a391","impliedFormat":1},{"version":"499e5b055a5aba1e1998f7311a6c441a369831c70905cc565ceac93c28083d53","impliedFormat":1},{"version":"8aee8b6d4f9f62cf3776cda1305fb18763e2aade7e13cea5bbe699112df85214","impliedFormat":1},{"version":"c63b9ada8c72f95aac5db92aea07e5e87ec810353cdf63b2d78f49a58662cf6c","impliedFormat":1},{"version":"1cc2a09e1a61a5222d4174ab358a9f9de5e906afe79dbf7363d871a7edda3955","impliedFormat":1},{"version":"5d0375ca7310efb77e3ef18d068d53784faf62705e0ad04569597ae0e755c401","impliedFormat":1},{"version":"59af37caec41ecf7b2e76059c9672a49e682c1a2aa6f9d7dc78878f53aa284d6","impliedFormat":1},{"version":"addf417b9eb3f938fddf8d81e96393a165e4be0d4a8b6402292f9c634b1cb00d","impliedFormat":1},{"version":"b64d4d1c5f877f9c666e98e833f0205edb9384acc46e98a1fef344f64d6aba44","impliedFormat":1},{"version":"adf27937dba6af9f08a68c5b1d3fce0ca7d4b960c57e6d6c844e7d1a8e53adae","impliedFormat":1},{"version":"12950411eeab8563b349cb7959543d92d8d02c289ed893d78499a19becb5a8cc","impliedFormat":1},{"version":"2e85db9e6fd73cfa3d7f28e0ab6b55417ea18931423bd47b409a96e4a169e8e6","impliedFormat":1},{"version":"c46e079fe54c76f95c67fb89081b3e399da2c7d109e7dca8e4b58d83e332e605","impliedFormat":1},{"version":"c9381908473a1c92cb8c516b184e75f4d226dad95c3a85a5af35f670064d9a2f","impliedFormat":1},{"version":"c3f5289820990ab66b70c7fb5b63cb674001009ff84b13de40619619a9c8175f","affectsGlobalScope":true,"impliedFormat":1},{"version":"b3275d55fac10b799c9546804126239baf020d220136163f763b55a74e50e750","affectsGlobalScope":true,"impliedFormat":1},{"version":"fa68a0a3b7cb32c00e39ee3cd31f8f15b80cac97dce51b6ee7fc14a1e8deb30b","affectsGlobalScope":true,"impliedFormat":1},{"version":"1cf059eaf468efcc649f8cf6075d3cb98e9a35a0fe9c44419ec3d2f5428d7123","affectsGlobalScope":true,"impliedFormat":1},{"version":"6c36e755bced82df7fb6ce8169265d0a7bb046ab4e2cb6d0da0cb72b22033e89","affectsGlobalScope":true,"impliedFormat":1},{"version":"e7721c4f69f93c91360c26a0a84ee885997d748237ef78ef665b153e622b36c1","affectsGlobalScope":true,"impliedFormat":1},{"version":"7a93de4ff8a63bafe62ba86b89af1df0ccb5e40bb85b0c67d6bbcfdcf96bf3d4","affectsGlobalScope":true,"impliedFormat":1},{"version":"90e85f9bc549dfe2b5749b45fe734144e96cd5d04b38eae244028794e142a77e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e0a5deeb610b2a50a6350bd23df6490036a1773a8a71d70f2f9549ab009e67ee","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fad5618174d74a34ee006406d4eb37e8d07dd62eb1315dbf52f48d31a337547","impliedFormat":1},{"version":"7e49f52a159435fc8df4de9dc377ef5860732ca2dc9efec1640531d3cf5da7a3","impliedFormat":1},{"version":"dd4bde4bdc2e5394aed6855e98cf135dfdf5dd6468cad842e03116d31bbcc9bc","impliedFormat":1},{"version":"4d4e879009a84a47c05350b8dca823036ba3a29a3038efed1be76c9f81e45edf","affectsGlobalScope":true,"impliedFormat":1},{"version":"8b50a819485ffe0d237bf0d131e92178d14d11e2aa873d73615a9ec578b341f5","impliedFormat":1},{"version":"9ba13b47cb450a438e3076c4a3f6afb9dc85e17eae50f26d4b2d72c0688c9251","impliedFormat":1},{"version":"b64cd4401633ea4ecadfd700ddc8323a13b63b106ac7127c1d2726f32424622c","impliedFormat":1},{"version":"37c6e5fe5715814412b43cc9b50b24c67a63c4e04e753e0d1305970d65417a60","impliedFormat":1},{"version":"1d024184fb57c58c5c91823f9d10b4915a4867b7934e89115fd0d861a9df27c8","impliedFormat":1},{"version":"ee0e4946247f842c6dd483cbb60a5e6b484fee07996e3a7bc7343dfb68a04c5d","impliedFormat":1},{"version":"ef051f42b7e0ef5ca04552f54c4552eac84099d64b6c5ad0ef4033574b6035b8","impliedFormat":1},{"version":"853a43154f1d01b0173d9cbd74063507ece57170bad7a3b68f3fa1229ad0a92f","impliedFormat":1},{"version":"56231e3c39a031bfb0afb797690b20ed4537670c93c0318b72d5180833d98b72","impliedFormat":1},{"version":"5cc7c39031bfd8b00ad58f32143d59eb6ffc24f5d41a20931269011dccd36c5e","impliedFormat":1},{"version":"12d602a8fe4c2f2ba4f7804f5eda8ba07e0c83bf5cf0cda8baffa2e9967bfb77","affectsGlobalScope":true,"impliedFormat":1},{"version":"a856ab781967b62b288dfd85b860bef0e62f005ed4b1b8fa25c53ce17856acaf","impliedFormat":1},{"version":"cc25940cfb27aa538e60d465f98bb5068d4d7d33131861ace43f04fe6947d68f","impliedFormat":1},{"version":"8db46b61a690f15b245cf16270db044dc047dce9f93b103a59f50262f677ea1f","impliedFormat":1},{"version":"01ff95aa1443e3f7248974e5a771f513cb2ac158c8898f470a1792f817bee497","impliedFormat":1},{"version":"757227c8b345c57d76f7f0e3bbad7a91ffca23f1b2547cbed9e10025816c9cb7","impliedFormat":1},{"version":"959d0327c96dd9bb5521f3ed6af0c435996504cc8dd46baa8e12cb3b3518cef1","impliedFormat":1},{"version":"e1c1a0b4d1ead0de9eca52203aeb1f771f21e6238d6fcd15aa56ac2a02f1b7bf","impliedFormat":1},{"version":"101f482fd48cb4c7c0468dcc6d62c843d842977aea6235644b1edd05e81fbf22","impliedFormat":1},{"version":"266bee0a41e9c3ba335583e21e9277ae03822402cf5e8e1d99f5196853613b98","affectsGlobalScope":true,"impliedFormat":1},{"version":"386606f8a297988535cb1401959041cfa7f59d54b8a9ed09738e65c98684c976","impliedFormat":1},{"version":"3ef397f12387eff17f550bc484ea7c27d21d43816bbe609d495107f44b97e933","impliedFormat":1},{"version":"1023282e2ba810bc07905d3668349fbd37a26411f0c8f94a70ef3c05fe523fcf","impliedFormat":1},{"version":"b214ebcf76c51b115453f69729ee8aa7b7f8eccdae2a922b568a45c2d7ff52f7","impliedFormat":1},{"version":"429c9cdfa7d126255779efd7e6d9057ced2d69c81859bbab32073bad52e9ba76","impliedFormat":1},{"version":"e236b5eba291f51bdf32c231673e6cab81b5410850e61f51a7a524dddadc0f95","impliedFormat":1},{"version":"ce8653341224f8b45ff46d2a06f2cacb96f841f768a886c9d8dd8ec0878b11bd","affectsGlobalScope":true,"impliedFormat":1},{"version":"7f2c62938251b45715fd2a9887060ec4fbc8724727029d1cbce373747252bdd7","impliedFormat":1},{"version":"e3ace08b6bbd84655d41e244677b474fd995923ffef7149ddb68af8848b60b05","impliedFormat":1},{"version":"132580b0e86c48fab152bab850fc57a4b74fe915c8958d2ccb052b809a44b61c","impliedFormat":1},{"version":"90a278f5fab7557e69e97056c0841adf269c42697194f0bd5c5e69152637d4b3","impliedFormat":1},{"version":"69c9a5a9392e8564bd81116e1ed93b13205201fb44cb35a7fde8c9f9e21c4b23","impliedFormat":1},{"version":"5f8fc37f8434691ffac1bfd8fc2634647da2c0e84253ab5d2dd19a7718915b35","impliedFormat":1},{"version":"5981c2340fd8b076cae8efbae818d42c11ffc615994cb060b1cd390795f1be2b","impliedFormat":1},{"version":"f263485c9ca90df9fe7bb3a906db9701997dc6cae86ace1f8106ac8d2f7f677b","impliedFormat":1},{"version":"1edcf2f36fc332615846bde6dcc71a8fe526065505bc5e3dcfd65a14becdf698","affectsGlobalScope":true,"impliedFormat":1},{"version":"0250da3eb85c99624f974e77ef355cdf86f43980251bc371475c2b397ba55bcd","impliedFormat":1},{"version":"f1c93e046fb3d9b7f8249629f4b63dc068dd839b824dd0aa39a5e68476dc9420","impliedFormat":1},{"version":"3d3a5f27ffbc06c885dd4d5f9ee20de61faf877fe2c3a7051c4825903d9a7fdc","impliedFormat":1},{"version":"12806f9f085598ef930edaf2467a5fa1789a878fba077cd27e85dc5851e11834","impliedFormat":1},{"version":"1dbca38aa4b0db1f4f9e6edacc2780af7e028b733d2a98dd3598cd235ca0c97d","impliedFormat":1},{"version":"a43fe41c33d0a192a0ecaf9b92e87bef3709c9972e6d53c42c49251ccb962d69","impliedFormat":1},{"version":"a177959203c017fad3ecc4f3d96c8757a840957a4959a3ae00dab9d35961ca6c","affectsGlobalScope":true,"impliedFormat":1},{"version":"6fc727ccf9b36e257ff982ea0badeffbfc2c151802f741bddff00c6af3b784cf","impliedFormat":1},{"version":"19143c930aef7ccf248549f3e78992f2f1049118ec5d4622e95025057d8e392b","impliedFormat":1},{"version":"4844a4c9b4b1e812b257676ed8a80b3f3be0e29bf05e742cc2ea9c3c6865e6c6","impliedFormat":1},{"version":"064878a60367e0407c42fb7ba02a2ea4d83257357dc20088e549bd4d89433e9c","impliedFormat":1},{"version":"cca8917838a876e2d7016c9b6af57cbf11fdf903c5fdd8e613fa31840b2957bf","impliedFormat":1},{"version":"d91ae55e4282c22b9c21bc26bd3ef637d3fe132507b10529ae68bf76f5de785b","impliedFormat":1},{"version":"b484ec11ba00e3a2235562a41898d55372ccabe607986c6fa4f4aba72093749f","impliedFormat":1},{"version":"7e8a671604329e178bb479c8f387715ebd40a091fc4a7552a0a75c2f3a21c65c","impliedFormat":1},{"version":"41ef7992c555671a8fe54db302788adefa191ded810a50329b79d20a6772d14c","impliedFormat":1},{"version":"041a7781b9127ab568d2cdcce62c58fdea7c7407f40b8c50045d7866a2727130","impliedFormat":1},{"version":"4c5e90ddbcd177ad3f2ffc909ae217c87820f1e968f6959e4b6ba38a8cec935e","impliedFormat":1},{"version":"b70dd9a44e1ac42f030bb12e7d79117eac7cb74170d72d381a1e7913320af23a","impliedFormat":1},{"version":"55cdbeebe76a1fa18bbd7e7bf73350a2173926bd3085bb050cf5a5397025ee4e","impliedFormat":1},{"version":"a7ca8df4f2931bef2aa4118078584d84a0b16539598eaadf7dce9104dfaa381c","impliedFormat":1},{"version":"10073cdcf56982064c5337787cc59b79586131e1b28c106ede5bff362f912b70","impliedFormat":99},{"version":"72950913f4900b680f44d8cab6dd1ea0311698fc1eefb014eb9cdfc37ac4a734","impliedFormat":1},{"version":"151ff381ef9ff8da2da9b9663ebf657eac35c4c9a19183420c05728f31a6761d","impliedFormat":1},{"version":"ee70b8037ecdf0de6c04f35277f253663a536d7e38f1539d270e4e916d225a3f","affectsGlobalScope":true,"impliedFormat":1},{"version":"a660aa95476042d3fdcc1343cf6bb8fdf24772d31712b1db321c5a4dcc325434","impliedFormat":1},{"version":"36977c14a7f7bfc8c0426ae4343875689949fb699f3f84ecbe5b300ebf9a2c55","impliedFormat":1},{"version":"ff0a83c9a0489a627e264ffcb63f2264b935b20a502afa3a018848139e3d8575","impliedFormat":99},{"version":"161c8e0690c46021506e32fda85956d785b70f309ae97011fd27374c065cac9b","affectsGlobalScope":true,"impliedFormat":1},{"version":"f582b0fcbf1eea9b318ab92fb89ea9ab2ebb84f9b60af89328a91155e1afce72","impliedFormat":1},{"version":"402e5c534fb2b85fa771170595db3ac0dd532112c8fa44fc23f233bc6967488b","impliedFormat":1},{"version":"7965dc3c7648e2a7a586d11781cabb43d4859920716bc2fdc523da912b06570d","impliedFormat":1},{"version":"90c2bd9a3e72fe08b8fa5982e78cb8dc855a1157b26e11e37a793283c52bf64b","impliedFormat":1},{"version":"a8122fe390a2a987079e06c573b1471296114677923c1c094c24a53ddd7344a2","impliedFormat":1},{"version":"70c2cb19c0c42061a39351156653aa0cf5ba1ecdc8a07424dd38e3a1f1e3c7f4","impliedFormat":1},{"version":"a8fb10fd8c7bc7d9b8f546d4d186d1027f8a9002a639bec689b5000dab68e35c","impliedFormat":1},{"version":"c9b467ea59b86bd27714a879b9ad43c16f186012a26d0f7110b1322025ceaa83","impliedFormat":1},{"version":"57ea19c2e6ba094d8087c721bac30ff1c681081dbd8b167ac068590ef633e7a5","impliedFormat":1},{"version":"cba81ec9ae7bc31a4dc56f33c054131e037649d6b9a2cfa245124c67e23e4721","impliedFormat":1},{"version":"ad193f61ba708e01218496f093c23626aa3808c296844a99189be7108a9c8343","impliedFormat":1},{"version":"a0544b3c8b70b2f319a99ea380b55ab5394ede9188cdee452a5d0ce264f258b2","impliedFormat":1},{"version":"8c654c17c334c7c168c1c36e5336896dc2c892de940886c1639bebd9fc7b9be4","impliedFormat":1},{"version":"6a4da742485d5c2eb6bcb322ae96993999ffecbd5660b0219a5f5678d8225bb0","impliedFormat":1},{"version":"c65ca21d7002bdb431f9ab3c7a6e765a489aa5196e7e0ef00aed55b1294df599","impliedFormat":1},{"version":"c8fc655c2c4bafc155ceee01c84ab3d6c03192ced5d3f2de82e20f3d1bd7f9fa","impliedFormat":1},{"version":"be5a7ff3b47f7e553565e9483bdcadb0ca2040ac9e5ec7b81c7e115a81059882","impliedFormat":1},{"version":"1a93f36ecdb60a95e3a3621b561763e2952da81962fae217ab5441ac1d77ffc5","impliedFormat":1},{"version":"2a771d907aebf9391ac1f50e4ad37952943515eeea0dcc7e78aa08f508294668","impliedFormat":1},{"version":"0146fd6262c3fd3da51cb0254bb6b9a4e42931eb2f56329edd4c199cb9aaf804","impliedFormat":1},{"version":"183f480885db5caa5a8acb833c2be04f98056bdcc5fb29e969ff86e07efe57ab","impliedFormat":99},{"version":"960bd764c62ac43edc24eaa2af958a4b4f1fa5d27df5237e176d0143b36a39c6","affectsGlobalScope":true,"impliedFormat":1},{"version":"3fd8a5aefd8c3feb3936ca66f5aa89dff7bf6e6537b4158dbd0f6e0d65ed3b9e","impliedFormat":1},{"version":"a18642ddf216f162052a16cba0944892c4c4c977d3306a87cb673d46abbb0cbf","impliedFormat":1},{"version":"509f8efdfc5f9f6b52284170e8d7413552f02d79518d1db691ee15acc0088676","impliedFormat":1},{"version":"4ec16d7a4e366c06a4573d299e15fe6207fc080f41beac5da06f4af33ea9761e","impliedFormat":1},{"version":"59f8dc89b9e724a6a667f52cdf4b90b6816ae6c9842ce176d38fcc973669009e","affectsGlobalScope":true,"impliedFormat":1},{"version":"e4af494f7a14b226bbe732e9c130d8811f8c7025911d7c58dd97121a85519715","impliedFormat":1},{"version":"47416e41b1af81e53e8c3cc5bf909d47ff632a7b6eddfe7ff43d187b4dcca047","impliedFormat":99},{"version":"556ccd493ec36c7d7cb130d51be66e147b91cc1415be383d71da0f1e49f742a9","impliedFormat":1},{"version":"b6d03c9cfe2cf0ba4c673c209fcd7c46c815b2619fd2aad59fc4229aaef2ed43","impliedFormat":1},{"version":"95aba78013d782537cc5e23868e736bec5d377b918990e28ed56110e3ae8b958","impliedFormat":1},{"version":"670a76db379b27c8ff42f1ba927828a22862e2ab0b0908e38b671f0e912cc5ed","impliedFormat":1},{"version":"13b77ab19ef7aadd86a1e54f2f08ea23a6d74e102909e3c00d31f231ed040f62","impliedFormat":1},{"version":"069bebfee29864e3955378107e243508b163e77ab10de6a5ee03ae06939f0bb9","impliedFormat":1},{"version":"ef94438f848be3a3b0033013bf64753f771f983c1e205e4a06675eb253ca7cd2","impliedFormat":99},{"version":"7757c6ca7a8ad1992401c6aff33633d6a088515be5a39d7ee188b35bfc8e5f8e","impliedFormat":99},{"version":"02c284cc3df0a055e4d14b5ac1c8de59e674125bcc28639db803de3a4933fae8","signature":"4b96dd19fd2949d28ce80e913412b0026dc421e5bf6c31d87c7b5eb11b5753b4"}],"root":[228],"options":{"allowSyntheticDefaultImports":true,"composite":true,"module":99,"skipLibCheck":true,"target":9},"referencedMap":[[222,1],[220,2],[227,3],[225,4],[221,1],[223,5],[224,1],[185,2],[122,6],[123,6],[124,7],[62,8],[125,9],[126,10],[127,11],[60,2],[128,12],[129,13],[130,14],[131,15],[132,16],[133,17],[134,17],[135,18],[136,19],[137,20],[138,21],[63,2],[61,2],[139,22],[140,23],[141,24],[181,25],[142,26],[143,27],[144,26],[145,28],[146,29],[147,30],[148,31],[149,31],[150,31],[151,32],[152,33],[153,34],[154,35],[155,36],[156,37],[157,37],[158,38],[159,2],[160,2],[161,39],[162,40],[163,39],[164,41],[165,42],[166,43],[167,44],[168,45],[169,46],[170,47],[171,48],[172,49],[173,50],[174,51],[175,52],[176,53],[177,54],[178,55],[64,26],[65,2],[66,56],[67,57],[68,2],[69,58],[70,2],[113,59],[114,60],[115,61],[116,61],[117,62],[118,2],[119,9],[120,63],[121,60],[179,64],[180,65],[226,66],[190,2],[213,2],[215,67],[214,2],[208,68],[206,69],[207,70],[195,71],[196,69],[203,72],[194,73],[199,74],[209,2],[200,75],[205,76],[211,77],[210,78],[193,79],[201,80],[202,81],[197,82],[204,68],[198,83],[187,84],[186,85],[192,2],[58,2],[59,2],[11,2],[10,2],[2,2],[12,2],[13,2],[14,2],[15,2],[16,2],[17,2],[18,2],[19,2],[3,2],[20,2],[21,2],[4,2],[22,2],[26,2],[23,2],[24,2],[25,2],[27,2],[28,2],[29,2],[5,2],[30,2],[31,2],[32,2],[33,2],[6,2],[37,2],[34,2],[35,2],[36,2],[38,2],[7,2],[39,2],[44,2],[45,2],[40,2],[41,2],[42,2],[43,2],[8,2],[49,2],[46,2],[47,2],[48,2],[50,2],[9,2],[51,2],[52,2],[53,2],[55,2],[54,2],[1,2],[56,2],[57,2],[89,86],[101,87],[86,88],[102,89],[111,90],[77,91],[78,92],[76,93],[110,94],[105,95],[109,96],[80,97],[98,98],[79,99],[108,100],[74,101],[75,95],[81,102],[82,2],[88,103],[85,102],[72,104],[112,105],[103,106],[92,107],[91,102],[93,108],[96,109],[90,110],[94,111],[106,94],[83,112],[84,113],[97,114],[73,89],[100,115],[99,102],[87,113],[95,116],[104,2],[71,2],[107,117],[183,118],[219,119],[189,120],[184,118],[182,2],[188,121],[217,2],[212,2],[216,122],[191,2],[218,123],[228,124]],"latestChangedDtsFile":"./vite.config.d.ts","version":"5.9.3"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"root":["./src/i18n.tsx","./src/main.tsx","./src/vite-env.d.ts","./src/app/app.tsx","./src/components/shell.tsx","./src/components/cards.tsx","./src/components/ui.tsx","./src/flows/createpostflow.tsx","./src/lib/icons.tsx","./src/lib/tokens.ts","./src/lib/utils.ts","./src/screens/chatdetailscreen.tsx","./src/screens/discoverscreen.tsx","./src/screens/editprofilescreen.tsx","./src/screens/homefeedscreen.tsx","./src/screens/messagesinboxscreen.tsx","./src/screens/notificationsscreen.tsx","./src/screens/postdetailscreen.tsx","./src/screens/profileselfscreen.tsx","./src/screens/profileuserscreen.tsx","./src/screens/searchresultsscreen.tsx","./src/screens/settingsscreen.tsx","./src/state/store.ts"],"version":"5.9.3"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "social-app",
|
|
3
|
-
"private": true,
|
|
4
|
-
"version": "0.0.0",
|
|
5
|
-
"description": "OpenUISpec test project wired to the local ../openuispec checkout",
|
|
6
|
-
"scripts": {
|
|
7
|
-
"openuispec": "node --import ./../../node_modules/tsx/dist/loader.mjs ./../../cli/index.ts",
|
|
8
|
-
"validate": "node --import ./../../node_modules/tsx/dist/loader.mjs ./../../cli/index.ts validate",
|
|
9
|
-
"validate:semantic": "node --import ./../../node_modules/tsx/dist/loader.mjs ./../../cli/index.ts validate semantic",
|
|
10
|
-
"status": "node --import ./../../node_modules/tsx/dist/loader.mjs ./../../cli/index.ts status",
|
|
11
|
-
"screenshots:web": "node --import ./../../node_modules/tsx/dist/loader.mjs ./take-web-screenshots.ts"
|
|
12
|
-
}
|
|
13
|
-
}
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import { mkdirSync, writeFileSync } from "node:fs";
|
|
2
|
-
import { join, resolve } from "node:path";
|
|
3
|
-
import { Client } from "@modelcontextprotocol/sdk/client";
|
|
4
|
-
import { StdioClientTransport } from "@modelcontextprotocol/sdk/client/stdio.js";
|
|
5
|
-
|
|
6
|
-
type ImageContent = {
|
|
7
|
-
type: "image";
|
|
8
|
-
data: string;
|
|
9
|
-
mimeType: string;
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
type TextContent = {
|
|
13
|
-
type: "text";
|
|
14
|
-
text: string;
|
|
15
|
-
};
|
|
16
|
-
|
|
17
|
-
type WebCapture = {
|
|
18
|
-
name: string;
|
|
19
|
-
route: string;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const OUTPUT_DIR = resolve("generated/web/social-app/screenshots");
|
|
23
|
-
const VIEWPORT = { width: 1366, height: 900 };
|
|
24
|
-
const captures: WebCapture[] = [
|
|
25
|
-
{ name: "home", route: "/home" },
|
|
26
|
-
{ name: "discover", route: "/discover" },
|
|
27
|
-
{ name: "notifications", route: "/notifications" },
|
|
28
|
-
{ name: "messages", route: "/messages" },
|
|
29
|
-
{ name: "profile", route: "/profile" },
|
|
30
|
-
{ name: "profile-edit", route: "/profile/edit" },
|
|
31
|
-
{ name: "settings", route: "/settings" },
|
|
32
|
-
{ name: "create", route: "/create" },
|
|
33
|
-
{ name: "search-editorial-ui-posts", route: "/search?query=Editorial%20UI&tab=posts" },
|
|
34
|
-
{ name: "post-post-1", route: "/posts/post-1" },
|
|
35
|
-
{ name: "user-lina", route: "/u/user-lina" },
|
|
36
|
-
{ name: "chat-conversation-1", route: "/chat/conversation-1" },
|
|
37
|
-
];
|
|
38
|
-
|
|
39
|
-
function getImageData(content: Array<ImageContent | TextContent>): string {
|
|
40
|
-
const image = content.find((item): item is ImageContent => item.type === "image");
|
|
41
|
-
if (!image) {
|
|
42
|
-
throw new Error("Screenshot tool did not return image data.");
|
|
43
|
-
}
|
|
44
|
-
return image.data;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
function getText(content: Array<ImageContent | TextContent>): string | null {
|
|
48
|
-
const text = content.find((item): item is TextContent => item.type === "text");
|
|
49
|
-
return text?.text ?? null;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
async function main() {
|
|
53
|
-
mkdirSync(OUTPUT_DIR, { recursive: true });
|
|
54
|
-
|
|
55
|
-
const transport = new StdioClientTransport({
|
|
56
|
-
command: "npm",
|
|
57
|
-
args: ["run", "openuispec", "--", "mcp"],
|
|
58
|
-
cwd: process.cwd(),
|
|
59
|
-
stderr: "inherit",
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
const client = new Client(
|
|
63
|
-
{ name: "social-app-screenshot-runner", version: "0.1.0" },
|
|
64
|
-
{ capabilities: {} },
|
|
65
|
-
);
|
|
66
|
-
|
|
67
|
-
await client.connect(transport);
|
|
68
|
-
|
|
69
|
-
try {
|
|
70
|
-
for (const capture of captures) {
|
|
71
|
-
const result = await client.callTool({
|
|
72
|
-
name: "openuispec_screenshot",
|
|
73
|
-
arguments: {
|
|
74
|
-
route: capture.route,
|
|
75
|
-
viewport: VIEWPORT,
|
|
76
|
-
wait_for: 1200,
|
|
77
|
-
full_page: true,
|
|
78
|
-
},
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
if (result.isError) {
|
|
82
|
-
throw new Error(`Failed to capture ${capture.route}: ${getText(result.content as Array<ImageContent | TextContent>) ?? "Unknown tool error"}`);
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
const outputPath = join(OUTPUT_DIR, `${capture.name}.png`);
|
|
86
|
-
writeFileSync(outputPath, Buffer.from(getImageData(result.content as Array<ImageContent | TextContent>), "base64"));
|
|
87
|
-
console.log(`saved ${outputPath}`);
|
|
88
|
-
}
|
|
89
|
-
} finally {
|
|
90
|
-
await transport.close();
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
main().catch((error) => {
|
|
95
|
-
console.error(error instanceof Error ? error.message : error);
|
|
96
|
-
process.exitCode = 1;
|
|
97
|
-
});
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
<!-- openuispec-rules-start -->
|
|
2
|
-
<!-- openuispec-rules-version: 0.2.4 -->
|
|
3
|
-
# OpenUISpec — AI Assistant Rules
|
|
4
|
-
# ================================
|
|
5
|
-
# This project uses OpenUISpec to define UI as a semantic spec.
|
|
6
|
-
# Spec files are the single source of truth for all UI across platforms.
|
|
7
|
-
# Targets: "ios", "android", "web"
|
|
8
|
-
|
|
9
|
-
## MANDATORY — UI work requires OpenUISpec tools
|
|
10
|
-
|
|
11
|
-
When the user's request involves UI — screens, navigation, layout, tokens, flows, localization,
|
|
12
|
-
or any visual/structural change — you MUST use the OpenUISpec tools before writing any code.
|
|
13
|
-
|
|
14
|
-
### MCP Tools (use these when available)
|
|
15
|
-
|
|
16
|
-
Call these MCP tools directly. They return structured JSON with everything you need.
|
|
17
|
-
|
|
18
|
-
**Pre-generation:**
|
|
19
|
-
1. Call `openuispec_prepare` with the target platform — returns spec context, platform config, constraints.
|
|
20
|
-
2. Call `openuispec_read_specs` to load spec file contents. Use these as the AUTHORITATIVE source.
|
|
21
|
-
3. If spec changes are needed, update spec files FIRST, then call `openuispec_check`.
|
|
22
|
-
4. Generate or update the platform UI code based on the spec contents.
|
|
23
|
-
|
|
24
|
-
**Post-generation (EVERY TIME after writing UI code):**
|
|
25
|
-
5. Call `openuispec_check` to validate spec integrity.
|
|
26
|
-
6. Call `openuispec_read_specs` for the screens/contracts you just generated code for.
|
|
27
|
-
7. Audit your generated code against the spec. For each screen, verify:
|
|
28
|
-
- Every field/action in the spec has a corresponding UI element
|
|
29
|
-
- Token values (colors, spacing, radii) match exactly — no approximations
|
|
30
|
-
- Contract `must_handle` states are all implemented (loading, error, empty, etc.)
|
|
31
|
-
- Adaptive breakpoints match the spec's `size_classes`
|
|
32
|
-
- Locale keys match `$t:` references
|
|
33
|
-
- Navigation targets match flow definitions
|
|
34
|
-
8. Report any real gaps found and fix them before finishing.
|
|
35
|
-
|
|
36
|
-
**Creating new spec files:**
|
|
37
|
-
- Call `openuispec_spec_types` to discover available spec types.
|
|
38
|
-
- Call `openuispec_spec_schema` with the specific type to get the full JSON schema.
|
|
39
|
-
- Write the spec file following the schema exactly.
|
|
40
|
-
|
|
41
|
-
**Focused getters (prefer these for incremental edits over `read_specs`):**
|
|
42
|
-
- `openuispec_get_screen(name)` — single screen spec
|
|
43
|
-
- `openuispec_get_contract(name, variant?)` — single contract, optionally one variant
|
|
44
|
-
- `openuispec_get_tokens(category)` — single token category (color, typography, spacing, etc.)
|
|
45
|
-
- `openuispec_get_locale(locale, keys?)` — single locale file, optionally filtered keys
|
|
46
|
-
- `openuispec_check(target, screens?, contracts?)` — scoped audit for specific screens/contracts
|
|
47
|
-
|
|
48
|
-
Use `read_specs` for full-project generation; use focused getters when editing one screen or contract.
|
|
49
|
-
|
|
50
|
-
**Other tools:**
|
|
51
|
-
- `openuispec_status` — cross-target summary, good starting point
|
|
52
|
-
- `openuispec_drift` with `explain: true` — property-level spec changes
|
|
53
|
-
- `openuispec_validate` — schema-only validation by group
|
|
54
|
-
|
|
55
|
-
### CLI fallback (when MCP is not available)
|
|
56
|
-
|
|
57
|
-
If MCP tools are not available, use these CLI commands with `--json` flag:
|
|
58
|
-
- `openuispec prepare --target <t> --json` — build AI-ready work bundle
|
|
59
|
-
- `openuispec check --target <t> --json` — composite validation
|
|
60
|
-
- `openuispec status --json` — cross-target status
|
|
61
|
-
- `openuispec drift --target <t> --explain --json` — semantic drift
|
|
62
|
-
- `openuispec validate [group...] --json` — schema validation
|
|
63
|
-
- `openuispec read-specs [paths...]` — read spec file contents
|
|
64
|
-
- `openuispec get-screen <name>` — get a single screen spec
|
|
65
|
-
- `openuispec get-contract <name> [--variant v]` — get a contract spec
|
|
66
|
-
- `openuispec get-tokens <category>` — get tokens for a category
|
|
67
|
-
- `openuispec get-locale <locale> [--keys k1,k2]` — get a locale file
|
|
68
|
-
- `openuispec spec-types` — list available spec types
|
|
69
|
-
- `openuispec spec-schema <type>` — get JSON schema for a spec type
|
|
70
|
-
- `openuispec screenshot --route /path` — screenshot the web app
|
|
71
|
-
- `openuispec screenshot-android [--project-dir path]` — screenshot Android app
|
|
72
|
-
- `openuispec screenshot-ios [--project-dir path]` — screenshot iOS app
|
|
73
|
-
|
|
74
|
-
### Other CLI commands
|
|
75
|
-
- `openuispec init` — scaffold a new spec project
|
|
76
|
-
- `openuispec drift --snapshot --target <t>` — snapshot current state (only after UI code is updated)
|
|
77
|
-
- `openuispec configure-target <t>` — configure target platform stack
|
|
78
|
-
- `openuispec update-rules` — update AI rules to match installed package version
|
|
79
|
-
|
|
80
|
-
## Spec format reference
|
|
81
|
-
|
|
82
|
-
The spec format, schemas, and generation rules are in the installed `openuispec` package.
|
|
83
|
-
You MUST read the reference files before creating or editing spec files — do NOT guess the format.
|
|
84
|
-
|
|
85
|
-
**Find the package:** `node_modules/openuispec/` or run `npm root -g` → `<prefix>/openuispec/`.
|
|
86
|
-
**Online fallback:** `https://openuispec.rsteam.uz/llms-full.txt`
|
|
87
|
-
|
|
88
|
-
**Reference files (read in order):**
|
|
89
|
-
1. `README.md` — schema tables, file format, root wrapper keys
|
|
90
|
-
2. `spec/openuispec-v0.1.md` — full specification
|
|
91
|
-
3. `examples/taskflow/openuispec/` — complete working example
|
|
92
|
-
4. `schema/` — JSON Schemas for every file type
|
|
93
|
-
|
|
94
|
-
## Spec location
|
|
95
|
-
- Spec root: `openuispec/` — read `openuispec/openuispec.yaml` first for actual paths.
|
|
96
|
-
- Default dirs: tokens/, screens/, flows/, contracts/, platform/, locales/
|
|
97
|
-
|
|
98
|
-
## When to start from spec vs platform code
|
|
99
|
-
|
|
100
|
-
**Spec-first** (use `openuispec_prepare` or `openuispec prepare`):
|
|
101
|
-
- Screen structure, navigation, fields, actions, validation, data binding changes
|
|
102
|
-
- Token, variant, contract, flow, or localization changes
|
|
103
|
-
- Changes affecting multiple platforms
|
|
104
|
-
- Requests in product/UI terms
|
|
105
|
-
|
|
106
|
-
**Platform-first** (skip spec tools):
|
|
107
|
-
- Platform-specific polish (iOS-only, Android-only, web-only)
|
|
108
|
-
- Local bug fixes that don't alter shared semantic behavior
|
|
109
|
-
|
|
110
|
-
## If spec directories are empty (first-time setup)
|
|
111
|
-
|
|
112
|
-
Read `spec/openuispec-v0.1.md` from the package first, then:
|
|
113
|
-
1. Scan codebase for UI screens → create `openuispec/screens/<name>.yaml` as `status: stub`
|
|
114
|
-
2. Extract tokens (colors, fonts, spacing) → `openuispec/tokens/`
|
|
115
|
-
3. Create contract extensions → `openuispec/contracts/`
|
|
116
|
-
4. Create locale files → `openuispec/locales/<locale>.json`
|
|
117
|
-
5. Fill in `data_model`, `api.endpoints` in `openuispec/openuispec.yaml`
|
|
118
|
-
|
|
119
|
-
## Rules
|
|
120
|
-
- Do not snapshot drift unless the UI code has also been updated.
|
|
121
|
-
- Do not modify generated UI without checking whether the spec must change first.
|
|
122
|
-
- Do not use `configure-target --defaults` as silent approval — ask the user to confirm.
|
|
123
|
-
- Always read spec format from the installed package, not from cached/memorized content.
|
|
124
|
-
<!-- openuispec-rules-end -->
|
|
@@ -1,124 +0,0 @@
|
|
|
1
|
-
<!-- openuispec-rules-start -->
|
|
2
|
-
<!-- openuispec-rules-version: 0.2.4 -->
|
|
3
|
-
# OpenUISpec — AI Assistant Rules
|
|
4
|
-
# ================================
|
|
5
|
-
# This project uses OpenUISpec to define UI as a semantic spec.
|
|
6
|
-
# Spec files are the single source of truth for all UI across platforms.
|
|
7
|
-
# Targets: "ios", "android", "web"
|
|
8
|
-
|
|
9
|
-
## MANDATORY — UI work requires OpenUISpec tools
|
|
10
|
-
|
|
11
|
-
When the user's request involves UI — screens, navigation, layout, tokens, flows, localization,
|
|
12
|
-
or any visual/structural change — you MUST use the OpenUISpec tools before writing any code.
|
|
13
|
-
|
|
14
|
-
### MCP Tools (use these when available)
|
|
15
|
-
|
|
16
|
-
Call these MCP tools directly. They return structured JSON with everything you need.
|
|
17
|
-
|
|
18
|
-
**Pre-generation:**
|
|
19
|
-
1. Call `openuispec_prepare` with the target platform — returns spec context, platform config, constraints.
|
|
20
|
-
2. Call `openuispec_read_specs` to load spec file contents. Use these as the AUTHORITATIVE source.
|
|
21
|
-
3. If spec changes are needed, update spec files FIRST, then call `openuispec_check`.
|
|
22
|
-
4. Generate or update the platform UI code based on the spec contents.
|
|
23
|
-
|
|
24
|
-
**Post-generation (EVERY TIME after writing UI code):**
|
|
25
|
-
5. Call `openuispec_check` to validate spec integrity.
|
|
26
|
-
6. Call `openuispec_read_specs` for the screens/contracts you just generated code for.
|
|
27
|
-
7. Audit your generated code against the spec. For each screen, verify:
|
|
28
|
-
- Every field/action in the spec has a corresponding UI element
|
|
29
|
-
- Token values (colors, spacing, radii) match exactly — no approximations
|
|
30
|
-
- Contract `must_handle` states are all implemented (loading, error, empty, etc.)
|
|
31
|
-
- Adaptive breakpoints match the spec's `size_classes`
|
|
32
|
-
- Locale keys match `$t:` references
|
|
33
|
-
- Navigation targets match flow definitions
|
|
34
|
-
8. Report any real gaps found and fix them before finishing.
|
|
35
|
-
|
|
36
|
-
**Creating new spec files:**
|
|
37
|
-
- Call `openuispec_spec_types` to discover available spec types.
|
|
38
|
-
- Call `openuispec_spec_schema` with the specific type to get the full JSON schema.
|
|
39
|
-
- Write the spec file following the schema exactly.
|
|
40
|
-
|
|
41
|
-
**Focused getters (prefer these for incremental edits over `read_specs`):**
|
|
42
|
-
- `openuispec_get_screen(name)` — single screen spec
|
|
43
|
-
- `openuispec_get_contract(name, variant?)` — single contract, optionally one variant
|
|
44
|
-
- `openuispec_get_tokens(category)` — single token category (color, typography, spacing, etc.)
|
|
45
|
-
- `openuispec_get_locale(locale, keys?)` — single locale file, optionally filtered keys
|
|
46
|
-
- `openuispec_check(target, screens?, contracts?)` — scoped audit for specific screens/contracts
|
|
47
|
-
|
|
48
|
-
Use `read_specs` for full-project generation; use focused getters when editing one screen or contract.
|
|
49
|
-
|
|
50
|
-
**Other tools:**
|
|
51
|
-
- `openuispec_status` — cross-target summary, good starting point
|
|
52
|
-
- `openuispec_drift` with `explain: true` — property-level spec changes
|
|
53
|
-
- `openuispec_validate` — schema-only validation by group
|
|
54
|
-
|
|
55
|
-
### CLI fallback (when MCP is not available)
|
|
56
|
-
|
|
57
|
-
If MCP tools are not available, use these CLI commands with `--json` flag:
|
|
58
|
-
- `openuispec prepare --target <t> --json` — build AI-ready work bundle
|
|
59
|
-
- `openuispec check --target <t> --json` — composite validation
|
|
60
|
-
- `openuispec status --json` — cross-target status
|
|
61
|
-
- `openuispec drift --target <t> --explain --json` — semantic drift
|
|
62
|
-
- `openuispec validate [group...] --json` — schema validation
|
|
63
|
-
- `openuispec read-specs [paths...]` — read spec file contents
|
|
64
|
-
- `openuispec get-screen <name>` — get a single screen spec
|
|
65
|
-
- `openuispec get-contract <name> [--variant v]` — get a contract spec
|
|
66
|
-
- `openuispec get-tokens <category>` — get tokens for a category
|
|
67
|
-
- `openuispec get-locale <locale> [--keys k1,k2]` — get a locale file
|
|
68
|
-
- `openuispec spec-types` — list available spec types
|
|
69
|
-
- `openuispec spec-schema <type>` — get JSON schema for a spec type
|
|
70
|
-
- `openuispec screenshot --route /path` — screenshot the web app
|
|
71
|
-
- `openuispec screenshot-android [--project-dir path]` — screenshot Android app
|
|
72
|
-
- `openuispec screenshot-ios [--project-dir path]` — screenshot iOS app
|
|
73
|
-
|
|
74
|
-
### Other CLI commands
|
|
75
|
-
- `openuispec init` — scaffold a new spec project
|
|
76
|
-
- `openuispec drift --snapshot --target <t>` — snapshot current state (only after UI code is updated)
|
|
77
|
-
- `openuispec configure-target <t>` — configure target platform stack
|
|
78
|
-
- `openuispec update-rules` — update AI rules to match installed package version
|
|
79
|
-
|
|
80
|
-
## Spec format reference
|
|
81
|
-
|
|
82
|
-
The spec format, schemas, and generation rules are in the installed `openuispec` package.
|
|
83
|
-
You MUST read the reference files before creating or editing spec files — do NOT guess the format.
|
|
84
|
-
|
|
85
|
-
**Find the package:** `node_modules/openuispec/` or run `npm root -g` → `<prefix>/openuispec/`.
|
|
86
|
-
**Online fallback:** `https://openuispec.rsteam.uz/llms-full.txt`
|
|
87
|
-
|
|
88
|
-
**Reference files (read in order):**
|
|
89
|
-
1. `README.md` — schema tables, file format, root wrapper keys
|
|
90
|
-
2. `spec/openuispec-v0.1.md` — full specification
|
|
91
|
-
3. `examples/taskflow/openuispec/` — complete working example
|
|
92
|
-
4. `schema/` — JSON Schemas for every file type
|
|
93
|
-
|
|
94
|
-
## Spec location
|
|
95
|
-
- Spec root: `openuispec/` — read `openuispec/openuispec.yaml` first for actual paths.
|
|
96
|
-
- Default dirs: tokens/, screens/, flows/, contracts/, platform/, locales/
|
|
97
|
-
|
|
98
|
-
## When to start from spec vs platform code
|
|
99
|
-
|
|
100
|
-
**Spec-first** (use `openuispec_prepare` or `openuispec prepare`):
|
|
101
|
-
- Screen structure, navigation, fields, actions, validation, data binding changes
|
|
102
|
-
- Token, variant, contract, flow, or localization changes
|
|
103
|
-
- Changes affecting multiple platforms
|
|
104
|
-
- Requests in product/UI terms
|
|
105
|
-
|
|
106
|
-
**Platform-first** (skip spec tools):
|
|
107
|
-
- Platform-specific polish (iOS-only, Android-only, web-only)
|
|
108
|
-
- Local bug fixes that don't alter shared semantic behavior
|
|
109
|
-
|
|
110
|
-
## If spec directories are empty (first-time setup)
|
|
111
|
-
|
|
112
|
-
Read `spec/openuispec-v0.1.md` from the package first, then:
|
|
113
|
-
1. Scan codebase for UI screens → create `openuispec/screens/<name>.yaml` as `status: stub`
|
|
114
|
-
2. Extract tokens (colors, fonts, spacing) → `openuispec/tokens/`
|
|
115
|
-
3. Create contract extensions → `openuispec/contracts/`
|
|
116
|
-
4. Create locale files → `openuispec/locales/<locale>.json`
|
|
117
|
-
5. Fill in `data_model`, `api.endpoints` in `openuispec/openuispec.yaml`
|
|
118
|
-
|
|
119
|
-
## Rules
|
|
120
|
-
- Do not snapshot drift unless the UI code has also been updated.
|
|
121
|
-
- Do not modify generated UI without checking whether the spec must change first.
|
|
122
|
-
- Do not use `configure-target --defaults` as silent approval — ask the user to confirm.
|
|
123
|
-
- Always read spec format from the installed package, not from cached/memorized content.
|
|
124
|
-
<!-- openuispec-rules-end -->
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# TaskFlow Android Target
|
|
2
|
-
|
|
3
|
-
This Android target was generated directly from the local `openuispec/` TaskFlow specification, without copying another sample project's output.
|
|
4
|
-
|
|
5
|
-
## What is included
|
|
6
|
-
|
|
7
|
-
- A lean Jetpack Compose app scaffold under `app/`
|
|
8
|
-
- Adaptive navigation using spec breakpoints:
|
|
9
|
-
- `compact`: bottom navigation
|
|
10
|
-
- `regular` and `expanded`: navigation rail
|
|
11
|
-
- Spec-derived screens:
|
|
12
|
-
- Home
|
|
13
|
-
- Task detail
|
|
14
|
-
- Projects
|
|
15
|
-
- Project detail
|
|
16
|
-
- Calendar stub
|
|
17
|
-
- Settings
|
|
18
|
-
- Profile edit
|
|
19
|
-
- Spec-derived flows:
|
|
20
|
-
- Create task
|
|
21
|
-
- Edit task
|
|
22
|
-
- Assign task
|
|
23
|
-
- New project
|
|
24
|
-
- Local sample data matching the spec's data model
|
|
25
|
-
- English string resources derived from `openuispec/locales/en.json`
|
|
26
|
-
- Theme colors based on `openuispec/tokens/color.yaml` and `themes.yaml`
|
|
27
|
-
|
|
28
|
-
## Project notes
|
|
29
|
-
|
|
30
|
-
- This is intentionally lean. It favors clear generated structure over a fully productionized architecture.
|
|
31
|
-
- The app uses local Compose state instead of wiring real API clients.
|
|
32
|
-
- The media-player custom contract is acknowledged in the spec but not implemented here because no screen in this minimal target renders a concrete media attachment asset.
|
|
33
|
-
- No Gradle wrapper is checked in. Use a local Gradle installation or import the project into Android Studio and let it create the wrapper if needed.
|
|
34
|
-
|
|
35
|
-
## Suggested verification
|
|
36
|
-
|
|
37
|
-
From this directory:
|
|
38
|
-
|
|
39
|
-
```bash
|
|
40
|
-
gradle :app:assembleDebug
|
|
41
|
-
```
|
|
42
|
-
|
|
43
|
-
Or open `generated/android/TaskFlow` in Android Studio and run the app on an emulator.
|