diff --git a/llm-fe/package-lock.json b/llm-fe/package-lock.json index f79d753..b3b6483 100644 --- a/llm-fe/package-lock.json +++ b/llm-fe/package-lock.json @@ -19,6 +19,7 @@ "@emotion/cache": "^11.14.0", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", + "@heycatch/sdk": "^0.8.3", "@mui/icons-material": "^5.16.11", "@mui/material": "^5.16.11", "@testing-library/jest-dom": "^6.6.3", @@ -3083,6 +3084,103 @@ "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } }, + "node_modules/@heycatch/sdk": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/@heycatch/sdk/-/sdk-0.8.3.tgz", + "integrity": "sha512-7knqXfptgctAIHu5IXwd/WnivY+wwYAws2Xr0ZuARottBnbQteFbxZP7TyEDWCyz6A5+PcGlzlPxeTdq5uyGoA==", + "license": "MIT", + "dependencies": { + "posthog-react-native": "^4.61.1" + }, + "engines": { + "node": ">=22" + }, + "peerDependencies": { + "expo-router": "*", + "react": "^18.2.0 || ^19.0.0" + }, + "peerDependenciesMeta": { + "expo-router": { + "optional": true + }, + "react": { + "optional": true + } + } + }, + "node_modules/@heycatch/sdk/node_modules/posthog-react-native": { + "version": "4.81.2", + "resolved": "https://registry.npmjs.org/posthog-react-native/-/posthog-react-native-4.81.2.tgz", + "integrity": "sha512-w9UUocpnS9u+CO+37Q32W/zSgL8/fSFhIB9tUZfSDc1D4rE7XShyfCwwXD6efjmP19Gu941kuXdRgTbuV8Mkig==", + "license": "MIT", + "dependencies": { + "@posthog/core": "^1.59.1", + "@posthog/types": "^1.416.0" + }, + "bin": { + "posthog-react-native-xcode": "tooling/posthog-xcode.sh" + }, + "peerDependencies": { + "@posthog/react-native-plugin": ">= 2.9.3", + "@react-native-async-storage/async-storage": ">=1.0.0", + "@react-navigation/native": ">= 5.0.0", + "expo-application": ">= 4.0.0", + "expo-device": ">= 4.0.0", + "expo-file-system": ">= 13.0.0", + "expo-localization": ">= 11.0.0", + "expo-updates": ">= 0.25.0", + "posthog-react-native-session-replay": ">= 1.6.0", + "react-native-device-info": ">= 10.0.0", + "react-native-localize": ">= 3.0.0", + "react-native-navigation": ">= 6.0.0", + "react-native-safe-area-context": ">= 4.0.0", + "react-native-svg": ">= 15.0.0" + }, + "peerDependenciesMeta": { + "@posthog/react-native-plugin": { + "optional": true + }, + "@react-native-async-storage/async-storage": { + "optional": true + }, + "@react-navigation/native": { + "optional": true + }, + "expo-application": { + "optional": true + }, + "expo-device": { + "optional": true + }, + "expo-file-system": { + "optional": true + }, + "expo-localization": { + "optional": true + }, + "expo-updates": { + "optional": true + }, + "posthog-react-native-session-replay": { + "optional": true + }, + "react-native-device-info": { + "optional": true + }, + "react-native-localize": { + "optional": true + }, + "react-native-navigation": { + "optional": true + }, + "react-native-safe-area-context": { + "optional": true + }, + "react-native-svg": { + "optional": true + } + } + }, "node_modules/@humanwhocodes/config-array": { "version": "0.13.0", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.13.0.tgz", @@ -5155,6 +5253,21 @@ "url": "https://opencollective.com/popperjs" } }, + "node_modules/@posthog/core": { + "version": "1.59.1", + "resolved": "https://registry.npmjs.org/@posthog/core/-/core-1.59.1.tgz", + "integrity": "sha512-P39YgzQVDh6oz6wAzQXEnoHgTYpM7gifonmVKq1scAJco79h31XmmNVurRq9tTmmyIrr1uX8FHT0riCsyfV9AQ==", + "license": "MIT", + "dependencies": { + "@posthog/types": "^1.416.0" + } + }, + "node_modules/@posthog/types": { + "version": "1.416.0", + "resolved": "https://registry.npmjs.org/@posthog/types/-/types-1.416.0.tgz", + "integrity": "sha512-0/9+02s/0uDyrH4G/qUg1yyl6gXUg8Uuxw/PlDad3KLzo9FFS9zS/kAQaEshx/saVGupj1aAy/4EUBxWisBogw==", + "license": "MIT" + }, "node_modules/@prettier/plugin-xml": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/@prettier/plugin-xml/-/plugin-xml-2.2.0.tgz", diff --git a/llm-fe/package.json b/llm-fe/package.json index 97b159d..079e545 100644 --- a/llm-fe/package.json +++ b/llm-fe/package.json @@ -11,10 +11,10 @@ "@capacitor/keyboard": "^7.0.6", "@capacitor/preferences": "^7.0.4", "@capacitor/status-bar": "^7.0.6", - "native-store-billing": "file:plugins/native-store-billing", "@emotion/cache": "^11.14.0", "@emotion/react": "^11.14.0", "@emotion/styled": "^11.14.0", + "@heycatch/sdk": "^0.8.3", "@mui/icons-material": "^5.16.11", "@mui/material": "^5.16.11", "@testing-library/jest-dom": "^6.6.3", @@ -34,6 +34,7 @@ "lodash": "^4.17.21", "markdown-to-jsx": "^7.7.2", "mini.css": "^3.0.1", + "native-store-billing": "file:plugins/native-store-billing", "papaparse": "^5.5.4", "pdfmake": "^0.3.11", "react-bootstrap": "^2.10.6", @@ -53,9 +54,9 @@ }, "scripts": { "start": "NODE_ENV=development react-scripts start", - "build": "NODE_ENV=production react-scripts build", - "build:prod": "NODE_ENV=production react-scripts build && mkdir -p /var/www/prod.chat.aimloperations/html && cp -r ./build/* /var/www/prod.chat.aimloperations/html/", - "build:beta": "bash -c 'set -a; source .env.beta; set +a; NODE_ENV=production react-scripts build' && mkdir -p /var/www/beta.chat.aimloperations/html && cp -r ./build/* /var/www/beta.chat.aimloperations/html/", + "build": "node scripts/writeSitemap.js && NODE_ENV=production react-scripts build && node scripts/stampCanonicals.js", + "build:prod": "node scripts/writeSitemap.js && NODE_ENV=production react-scripts build && node scripts/stampCanonicals.js && mkdir -p /var/www/prod.chat.aimloperations/html && cp -r ./build/* /var/www/prod.chat.aimloperations/html/ && node scripts/pingIndexNow.js", + "build:beta": "node scripts/writeSitemap.js && bash -c 'set -a; source .env.beta; set +a; NODE_ENV=production react-scripts build' && node scripts/stampCanonicals.js && mkdir -p /var/www/beta.chat.aimloperations/html && cp -r ./build/* /var/www/beta.chat.aimloperations/html/", "build:mobile": "bash -c 'set -a; source .env.mobile; set +a; NODE_ENV=production react-scripts build' && npx cap sync", "android:open": "npx cap open android", "android:sync": "npx cap sync android", @@ -63,7 +64,7 @@ "ios:sync": "npx cap sync ios", "assets:generate": "npx capacitor-assets generate --ios --android", "test": "NODE_ENV=development react-scripts test", - "test:ci": "CI=true NODE_ENV=development react-scripts test --watchAll=false --coverage=false", + "test:ci": "CI=true NODE_ENV=development react-scripts test --watchAll=false --coverage=false && node --test scripts/stampCanonicals.test.js scripts/sitemap.test.js", "eject": "react-scripts eject" }, "eslintConfig": { diff --git a/llm-fe/public/404.html b/llm-fe/public/404.html new file mode 100644 index 0000000..63bb614 --- /dev/null +++ b/llm-fe/public/404.html @@ -0,0 +1,48 @@ + + +
+ +The page is not found, and this address is not a Hesychia page.
+Open the home page to read what the product does, what it costs, and how to start an account.
+ + + diff --git a/llm-fe/public/8d1667dd71c6ef137171989c26eeb632.txt b/llm-fe/public/8d1667dd71c6ef137171989c26eeb632.txt new file mode 100644 index 0000000..5348545 --- /dev/null +++ b/llm-fe/public/8d1667dd71c6ef137171989c26eeb632.txt @@ -0,0 +1 @@ +8d1667dd71c6ef137171989c26eeb632 diff --git a/llm-fe/public/index.html b/llm-fe/public/index.html index 375975a..626311c 100644 --- a/llm-fe/public/index.html +++ b/llm-fe/public/index.html @@ -8,36 +8,48 @@ - + - + + + + + + + + - + ] +} +