0
0
mirror of https://github.com/PostHog/posthog.git synced 2024-11-21 21:49:51 +01:00
posthog/package.json

379 lines
16 KiB
JSON
Raw Normal View History

2020-01-25 00:57:57 +01:00
{
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
"name": "posthog",
"description": "",
"version": "0.0.0",
"repository": {
"type": "git",
"url": "https://github.com/posthog/posthog.git"
},
"author": "PostHog Inc.",
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
"bugs": {
"url": "https://github.com/posthog/posthog/issues"
},
"homepage": "https://github.com/posthog/posthog#readme",
"license": "MIT",
Plugin v8 (#1946) * plugin progress * blah * add posthog config for plugins * test gitignore * new functionality for plugins * support local plugin paths * also ignore symlinks * add positional argument * fixes * small fixes * config polish * config passed to posthog plugin * ooooooops * symlink fix * cleanse dir before loading * add cache to plugins * pickle the goods * unlink symlink * pass full config * unlink even if link points to nothing * fix fix * return none if value is empty * plugin model * plugins scene * add config schema to plugins * install plugins * save descriptions * show descriptions * edit plugin * save plugin config * plugin modal * uninstall plugins * UX cleanup * add "required" to plugin config * open plugin modal after install * split to subcomponents * install custom plugins * rework backend for model plugins * Plugins on models * simple reload pubsub * fix apps not installed * fix master/main issue * fix reload command * use the github api to get the default branch * init plugins only if not running migrate/makemigrations * store plugins zip archives in postgres * tag plugins to specific versions * save plugins in pluginConfig * update pluginConfigs instead of adding new rows, remove from redux on uninstall * remove debug * run plugins from db by team * reload when deleting * remove debug * smarter handling of dynamic plugins, support local plugins again * improve typings, add some nicer warnings * yarn lock file after merge * squash migrations and add "locked" field to plugins * error if folder not found in zip * unregister plugins * skip plugin init in test mode * basic plugin test * avoid mutating the same prop hash * add pip tools to requirements.txt * fix mypy, fix manage.py script error * avoid plugins with mypy * mypy fix * abstract redis into plugin and add team_id to reload * refactor and start work on syncing with posthog.json * start testing plugin loading from json * test plugin deletion * test for syncing plugins from config * complete and then test local json plugin sync * test converting back and forward between an local and http path * remove global plugin config from plugins array in posthog.json * rename configSchema --> config_schema * fix migration after merge * rename from_cli to from_json * mypy * import pip after plugin loaded * show error details * raise exceptions visible to the frontend * sync plugins on load * access control to updating plugins from the web * access control * remove posthog.json from git * test config schema from json * if you can install via the web, you can also configure * remove separate view access * title as "Plugins" instead of "Installed Plugins" if we can't install ourselves and don't see the repository * add self.team to plugin base class * add instance_init method * refactor into files * sync global plugin config from json * make global plugins work, add test * global plugins in interface, make them take precedence over local plugins * add comments to plugin base class * reload/reset plugins before each test * add error field to plugins * add many plugin zips * add many plugin zips, fix imports * store errors on plugin object and test them * fix types * add null to error * can be with any team ID in the test * save problems running plugins in the plugin_config model * try to create redis connection pool only once * throw if no redis * mypy * get instance inside heartbeat and not top level * try caching pubsub * try pip install with -q * install pip externally * remove uuid and typing, now in stdlib * more verbosity * add pip back * catch exceptions * quiet and no input for pip * check plugin reload every 10sec on new task * fix type errors * fix requirements error message * use repository.json * only load and reload plugins on workers * rename task * support local js plugins via py-mini-racer * load js plugins from zip files * extract jsplugin class and convert to syntax that uses global functions instead of initializing a class * process events via grpc * process events with the "posthog-plugins" queue to enable plugins * remove old native python & mini racer plugin code * default to false * change env vars * fix test * remove grpc tools * skip plugins in migrate.py scripts * fix migration * change output of settings debug banner to STDERR * start posthog plugin server with worker * try to fix python 3.7 test * add fallback for the optional argument * annoying CI test debug * try to finally fix python 3.7 test * here we go again * move plugins under instance * move plugins npm start into its own folder * more console.log debugginf * and again * move plugins to separate script * more prints * fix test error * docker config * small fixes * dckerfile fix * reload plugins via pubsub, upgrade version * plugins that support team setup code * sync if made changes from config * move plugins in menu * require node 14 in heroku for better plugin support (namely ?. support) * bump node version in dockerfiles * update node versions for github actions * update the concurrency for heroku workers * update the concurrency for heroku workers (add link) * Fix migrations after merge * add ignore_result to process_event tasks * fix: docker-preview run in parallel bug * change order of commands * remove separate plugins server conf script * clarify intent * revert castaway change * add context to plugins/sync.py * change everything to ValidationError * delegate destroy to super * no request to repository url if can't install * make the if cleaner * add clarifying line * add clarifying line * fix url field type * rename get_redis_instance to get_client, move to posthog.redis * remove duplicate validation * flip if around * simplify api logic * simplify plugin_config api, fix global_plugin error * remove unnecessary field rename * mypy * Plugins UI (#2090) * base UI * more UI * load plugin image if available * toggle enabled plugin * plugin cards for available * custom plugins * change plugin configuration to drawer * asks for confirmation when enabling or disabling a plugin * loading state * separation of concerns, leave new styles for separate PR * general improvements * remove button when installation is not available * preemptively avoid merge conflict with #2114 * move papercups widget & hide bottom bar when drawer is open * allow clicking the entire plugin card * address all feedback * move plugins under "project" menu * Hide "configure" from globally enabled plugins Co-authored-by: Marius Andra <marius.andra@gmail.com> * add plugins opt in toggle to project/plugins * choose pipeline based on team setting * add "beta" * plugin opt-in opt-out pages * adjust install button * remove tasks that are never called, remove PLUGINS_ENABLED global key * fix responsive card display * fix typo and drawer width * skeleton fixes * typo * use "posthog-plugin-server" npm package * "posthog-plugin-server" doc * require the plugin server to be online before enabling plugins * remove a few needeless "?." cases * add hint for config_schema * add hint for errors * show plugin errors * stop clicks if clicking on error * show plugin errors * loading indicators * reload plugins when opting in/out * nicer beta tag * add frontend type * fix mypy error * fix test * disable plugins if MULTI_TENANCY * upgrade plugin-server version * save event with plugin error * upgrade plugin server * squashed & optimized migrations * remove unused import * updates opt-in copy & hides tech details for cloud version * fix cypress tests * compare with None * change plugins url and add redirect * remove ellipsis * use code snippet in plugin errors * change github regex * fix loading flickering on installing plugins * add comment to plugin archive * fix python style * remove pip-tools (relic from the python plugin era) * hard pin plugin server version * remove copying of posthog.json from dev dockerfile (breaks if file doesn't exist, copied later anyway) * update lockfile Co-authored-by: James Greenhill <fuziontech@gmail.com> Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
2020-11-02 15:08:30 +01:00
"engines": {
"node": ">=18 <19"
Plugin v8 (#1946) * plugin progress * blah * add posthog config for plugins * test gitignore * new functionality for plugins * support local plugin paths * also ignore symlinks * add positional argument * fixes * small fixes * config polish * config passed to posthog plugin * ooooooops * symlink fix * cleanse dir before loading * add cache to plugins * pickle the goods * unlink symlink * pass full config * unlink even if link points to nothing * fix fix * return none if value is empty * plugin model * plugins scene * add config schema to plugins * install plugins * save descriptions * show descriptions * edit plugin * save plugin config * plugin modal * uninstall plugins * UX cleanup * add "required" to plugin config * open plugin modal after install * split to subcomponents * install custom plugins * rework backend for model plugins * Plugins on models * simple reload pubsub * fix apps not installed * fix master/main issue * fix reload command * use the github api to get the default branch * init plugins only if not running migrate/makemigrations * store plugins zip archives in postgres * tag plugins to specific versions * save plugins in pluginConfig * update pluginConfigs instead of adding new rows, remove from redux on uninstall * remove debug * run plugins from db by team * reload when deleting * remove debug * smarter handling of dynamic plugins, support local plugins again * improve typings, add some nicer warnings * yarn lock file after merge * squash migrations and add "locked" field to plugins * error if folder not found in zip * unregister plugins * skip plugin init in test mode * basic plugin test * avoid mutating the same prop hash * add pip tools to requirements.txt * fix mypy, fix manage.py script error * avoid plugins with mypy * mypy fix * abstract redis into plugin and add team_id to reload * refactor and start work on syncing with posthog.json * start testing plugin loading from json * test plugin deletion * test for syncing plugins from config * complete and then test local json plugin sync * test converting back and forward between an local and http path * remove global plugin config from plugins array in posthog.json * rename configSchema --> config_schema * fix migration after merge * rename from_cli to from_json * mypy * import pip after plugin loaded * show error details * raise exceptions visible to the frontend * sync plugins on load * access control to updating plugins from the web * access control * remove posthog.json from git * test config schema from json * if you can install via the web, you can also configure * remove separate view access * title as "Plugins" instead of "Installed Plugins" if we can't install ourselves and don't see the repository * add self.team to plugin base class * add instance_init method * refactor into files * sync global plugin config from json * make global plugins work, add test * global plugins in interface, make them take precedence over local plugins * add comments to plugin base class * reload/reset plugins before each test * add error field to plugins * add many plugin zips * add many plugin zips, fix imports * store errors on plugin object and test them * fix types * add null to error * can be with any team ID in the test * save problems running plugins in the plugin_config model * try to create redis connection pool only once * throw if no redis * mypy * get instance inside heartbeat and not top level * try caching pubsub * try pip install with -q * install pip externally * remove uuid and typing, now in stdlib * more verbosity * add pip back * catch exceptions * quiet and no input for pip * check plugin reload every 10sec on new task * fix type errors * fix requirements error message * use repository.json * only load and reload plugins on workers * rename task * support local js plugins via py-mini-racer * load js plugins from zip files * extract jsplugin class and convert to syntax that uses global functions instead of initializing a class * process events via grpc * process events with the "posthog-plugins" queue to enable plugins * remove old native python & mini racer plugin code * default to false * change env vars * fix test * remove grpc tools * skip plugins in migrate.py scripts * fix migration * change output of settings debug banner to STDERR * start posthog plugin server with worker * try to fix python 3.7 test * add fallback for the optional argument * annoying CI test debug * try to finally fix python 3.7 test * here we go again * move plugins under instance * move plugins npm start into its own folder * more console.log debugginf * and again * move plugins to separate script * more prints * fix test error * docker config * small fixes * dckerfile fix * reload plugins via pubsub, upgrade version * plugins that support team setup code * sync if made changes from config * move plugins in menu * require node 14 in heroku for better plugin support (namely ?. support) * bump node version in dockerfiles * update node versions for github actions * update the concurrency for heroku workers * update the concurrency for heroku workers (add link) * Fix migrations after merge * add ignore_result to process_event tasks * fix: docker-preview run in parallel bug * change order of commands * remove separate plugins server conf script * clarify intent * revert castaway change * add context to plugins/sync.py * change everything to ValidationError * delegate destroy to super * no request to repository url if can't install * make the if cleaner * add clarifying line * add clarifying line * fix url field type * rename get_redis_instance to get_client, move to posthog.redis * remove duplicate validation * flip if around * simplify api logic * simplify plugin_config api, fix global_plugin error * remove unnecessary field rename * mypy * Plugins UI (#2090) * base UI * more UI * load plugin image if available * toggle enabled plugin * plugin cards for available * custom plugins * change plugin configuration to drawer * asks for confirmation when enabling or disabling a plugin * loading state * separation of concerns, leave new styles for separate PR * general improvements * remove button when installation is not available * preemptively avoid merge conflict with #2114 * move papercups widget & hide bottom bar when drawer is open * allow clicking the entire plugin card * address all feedback * move plugins under "project" menu * Hide "configure" from globally enabled plugins Co-authored-by: Marius Andra <marius.andra@gmail.com> * add plugins opt in toggle to project/plugins * choose pipeline based on team setting * add "beta" * plugin opt-in opt-out pages * adjust install button * remove tasks that are never called, remove PLUGINS_ENABLED global key * fix responsive card display * fix typo and drawer width * skeleton fixes * typo * use "posthog-plugin-server" npm package * "posthog-plugin-server" doc * require the plugin server to be online before enabling plugins * remove a few needeless "?." cases * add hint for config_schema * add hint for errors * show plugin errors * stop clicks if clicking on error * show plugin errors * loading indicators * reload plugins when opting in/out * nicer beta tag * add frontend type * fix mypy error * fix test * disable plugins if MULTI_TENANCY * upgrade plugin-server version * save event with plugin error * upgrade plugin server * squashed & optimized migrations * remove unused import * updates opt-in copy & hides tech details for cloud version * fix cypress tests * compare with None * change plugins url and add redirect * remove ellipsis * use code snippet in plugin errors * change github regex * fix loading flickering on installing plugins * add comment to plugin archive * fix python style * remove pip-tools (relic from the python plugin era) * hard pin plugin server version * remove copying of posthog.json from dev dockerfile (breaks if file doesn't exist, copied later anyway) * update lockfile Co-authored-by: James Greenhill <fuziontech@gmail.com> Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
2020-11-02 15:08:30 +01:00
},
"packageManager": "pnpm@8.10.5",
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
"scripts": {
"copy-scripts": "mkdir -p frontend/dist/ && ./bin/copy-posthog-js",
test(vrt): Don't clip scene snapshots (#19677) * test(vrt): Don't clip scene snapshots * Upgrade Playwright to 1.33 * Replace `excludeNavigationFromSnapshot` with `includeNavigationInSnapshot` * Tune locator * Fix `EmptyStates` flakiness * Fix `main` fallback * Try a different way of selecting `main` with fallback * Remove last `excludeNavigationFromSnapshot` * Use `.Navigation3000__scene` instead of `body` * Restore `overflow: visible` on navigation in tests * Fix top bar overlapping * More anti-clipping * Actually fix clipping * Fix `layout` parameter * Fix `.classList.add()` use * Remove empty `testOptions` * Tweak `waitForSelector` * Extend loader timeout * Update Surveys.stories.tsx * Update `UserPaths`'s `waitForSelector` * Print test errors * Revert "Print test errors" This reverts commit 71d305f8d3de872467e2a47504eb602fba2c77a3. * Capture whole scene in failure screenshot * Fix `CommandBar` snapshotting * Actually fix `CommandBar` snapshotting * Also fix modals * Force remount on snapshot retry * Actually fix modal, sidebar, and paths snapshotting * Fix observed flakiness * Remove legacy theme from visual tests * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Fix sizing of `Toolbar` stories * Fix typing * Don't render zero-width funnel bar * Attempt to fix more flakiness * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (1) * Tweak selectors * Just hide the damn bar * Don't render grid layout without `gridWrapperWidth` * Use container query instead of React hook in `LemonBanner` * Update SavedInsights.stories.tsx * Explicitly size `LemonBanner` * Update Surveys.stories.tsx * Update UI snapshots for `chromium` (1) * Include navigation in side panel snapshots * Update UI snapshots for `chromium` (1) * Dispatch resize * Force settings sections in snapshots * Re-resize * Stabilize settings * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `chromium` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-18 10:51:46 +01:00
"test": "pnpm test:unit && pnpm test:visual",
"test:unit": "jest --testPathPattern=frontend/",
"jest": "jest",
"test:visual:update": "rm -rf frontend/__snapshots__/__failures__/ && docker compose -f docker-compose.playwright.yml run --rm -it --build playwright pnpm test:visual:update:docker --url http://host.docker.internal:6006",
"test:visual:update:docker": "NODE_OPTIONS=--max-old-space-size=6144 test-storybook -u --browsers chromium webkit --no-index-json",
test(vrt): Don't clip scene snapshots (#19677) * test(vrt): Don't clip scene snapshots * Upgrade Playwright to 1.33 * Replace `excludeNavigationFromSnapshot` with `includeNavigationInSnapshot` * Tune locator * Fix `EmptyStates` flakiness * Fix `main` fallback * Try a different way of selecting `main` with fallback * Remove last `excludeNavigationFromSnapshot` * Use `.Navigation3000__scene` instead of `body` * Restore `overflow: visible` on navigation in tests * Fix top bar overlapping * More anti-clipping * Actually fix clipping * Fix `layout` parameter * Fix `.classList.add()` use * Remove empty `testOptions` * Tweak `waitForSelector` * Extend loader timeout * Update Surveys.stories.tsx * Update `UserPaths`'s `waitForSelector` * Print test errors * Revert "Print test errors" This reverts commit 71d305f8d3de872467e2a47504eb602fba2c77a3. * Capture whole scene in failure screenshot * Fix `CommandBar` snapshotting * Actually fix `CommandBar` snapshotting * Also fix modals * Force remount on snapshot retry * Actually fix modal, sidebar, and paths snapshotting * Fix observed flakiness * Remove legacy theme from visual tests * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Fix sizing of `Toolbar` stories * Fix typing * Don't render zero-width funnel bar * Attempt to fix more flakiness * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (1) * Tweak selectors * Just hide the damn bar * Don't render grid layout without `gridWrapperWidth` * Use container query instead of React hook in `LemonBanner` * Update SavedInsights.stories.tsx * Explicitly size `LemonBanner` * Update Surveys.stories.tsx * Update UI snapshots for `chromium` (1) * Include navigation in side panel snapshots * Update UI snapshots for `chromium` (1) * Dispatch resize * Force settings sections in snapshots * Re-resize * Stabilize settings * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `chromium` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-03-18 10:51:46 +01:00
"test:visual:debug": "PWDEBUG=1 NODE_OPTIONS=--max-old-space-size=6144 test-storybook --browsers chromium webkit --no-index-json",
"test:visual:ci:update": "test-storybook -u --no-index-json --maxWorkers=2",
"test:visual:ci:verify": "test-storybook --ci --no-index-json --maxWorkers=2",
chore: use pnpm to manage dependencies (closes #12635) (#13190) * chore: use pnpm to manage dependencies * Fix CI errors * Don't report Docker image size for external PRs * Fix pnpm-lock.yaml formatting * Fix module versions * Ignore pnpm-lock.yaml * Upgrade Cypress action for pnpm support * Set up node and pnpm before Cypress * Fix typescript issues * Include patches directory in Dockerfile * Fix Jest tests in CI * Update lockfile * Update lockfile * Clean up Dockerfile * Update pnpm-lock.yaml to reflect current package.json files * remove yarn-error.log from .gitignore * formatting * update data exploration readme * type jest.config.ts * fix @react-hook issues for jest * fix react-syntax-highlighter issues for jest * fix jest issues from query-selector-shadow-dom * fix transform ignore patterns and undo previous fixes * add missing storybook peer dependencies * fix nullish coalescing operator for storybook * reorder storybook plugins * update editor-update-tsd warning to new npm script * use legacy ssl for chromatic / node 18 compatibility * use pnpm for visual regression testing workflow * use node 16 for chromatic * add @babel/plugin-proposal-nullish-coalescing-operator as direct dependency * try fix for plugin-server * cleanup * fix comment and warning * update more comments * update playwright dockerfile * update plugin source types * conditional image size reporting * revert react-native instructions * less restrictive pnpm verions * use ref component name in line with style guide Co-authored-by: Jacob Gillespie <jacobwgillespie@gmail.com>
2022-12-12 10:28:06 +01:00
"start": "concurrently -n ESBUILD,TYPEGEN -c yellow,green \"pnpm start-http\" \"pnpm run typegen:watch\"",
"start-http": "pnpm clean && pnpm copy-scripts && node frontend/build.mjs --dev",
"start-docker": "pnpm start-http --host 0.0.0.0",
Bundle our frontend via esbuild (#6758) * esbuild package * almost get esbuild working * fix react-virtualized imports * add splitting * fix funny import reorder bug * fix squeakAudio referring to itself * write index.html file * fix some bad imports * update antd paths * remove raw-loader usage, it didn't work anyway * refactor and copy public * build app and toolbar * get toolbar working, but without styles * make toolbar and its styles work * shared dashboards * clean frontend build before rebuilding * add watch mode * reorder tasks * revert js url * incremental builds of app with debounced chokidar watching * common build/watch script * improve logs * watch during firrst build * fix toolbar url * fix wrongly exported scene * create sceneProxyLogic to untangle sceneLogic from all bundles * disconnect sceneLogic and refactor setPageTitle * live reloading server * rename utils file * only wait for /static * fix encoding * simplify * add missing dayjs plugins * fix pathless logics * simplify options * add jsx for webapck * slight delay to catch changes * a type is a type * fix build * esbuild in start * funnelLogic path * include all files with a "." (so .mjs, etc) in /frontend/ to docker * rename to "utils.mjs", make "build.mjs" executable * improve erroring * revert some needless changes * more reverts * change some scripts * remove setuff * clarify function * make "--host 0.0.0.0" work * fix import order issue in webpack * remove webpack css inlining for toolbar to simplify config * make toolbar with external styles work in storybook * move live server injection into django * fix undefined bug * simplify setup to work with injection directly in http://localhost:8000 (no proxying needed on :8234) * add comments * Fix `fse` usage I was getting this otherwise: $ node frontend/build.mjs file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46 fse.copySync(srcDir, destDir, { overwrite: true }, function (err) { ^ TypeError: fse.copySync is not a function at copyPublicFolder (file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46:9) at file:///Users/twixes/Developer/posthog/frontend/build.mjs:5:1 at ModuleJob.run (internal/modules/esm/module_job.js:146:23) at async Loader.import (internal/modules/esm/loader.js:165:24) at async Object.loadESM (internal/process/esm_loader.js:68:5) * Mock `process` for VFile used by ReactMarkdown I was getting this otherwise: core.js:55 Uncaught ReferenceError: process is not defined at new VFile (core.js:55) at VFile (core.js:49) at Function.parse (index.js:273) at ReactMarkdown2 (react-markdown.js:42) at renderWithHooks (react-dom.development.js:14803) at mountIndeterminateComponent (react-dom.development.js:17482) at beginWork (react-dom.development.js:18596) at HTMLUnknownElement.callCallback2 (react-dom.development.js:188) at Object.invokeGuardedCallbackDev (react-dom.development.js:237) at invokeGuardedCallback (react-dom.development.js:292) * Mock `process.env` for VFile used by ReactMarkdown I was getting this otherwise: platform.ts:73 Uncaught TypeError: Cannot read properties of undefined (reading 'ENABLE_VSCODE_BROWSER_CODE_LOADING') at platform.ts:73 at platform.ts:79 at Function.r._invokeFactory (loader.js:1118) at r.complete (loader.js:1128) at r._onModuleComplete (loader.js:1754) at r._resolve (loader.js:1714) at r.defineModule (loader.js:1357) at _ (loader.js:1804) at numbers.ts:10 at fake:1 * pass the heavy appScenes to sceneLogic through props via App.tsx * remove sceneProxyLogic * remove exported variables * fix sceneLogic test Co-authored-by: Michael Matloka <dev@twixes.com>
2021-11-03 09:50:24 +01:00
"clean": "rm -rf frontend/dist && mkdir frontend/dist",
chore: use pnpm to manage dependencies (closes #12635) (#13190) * chore: use pnpm to manage dependencies * Fix CI errors * Don't report Docker image size for external PRs * Fix pnpm-lock.yaml formatting * Fix module versions * Ignore pnpm-lock.yaml * Upgrade Cypress action for pnpm support * Set up node and pnpm before Cypress * Fix typescript issues * Include patches directory in Dockerfile * Fix Jest tests in CI * Update lockfile * Update lockfile * Clean up Dockerfile * Update pnpm-lock.yaml to reflect current package.json files * remove yarn-error.log from .gitignore * formatting * update data exploration readme * type jest.config.ts * fix @react-hook issues for jest * fix react-syntax-highlighter issues for jest * fix jest issues from query-selector-shadow-dom * fix transform ignore patterns and undo previous fixes * add missing storybook peer dependencies * fix nullish coalescing operator for storybook * reorder storybook plugins * update editor-update-tsd warning to new npm script * use legacy ssl for chromatic / node 18 compatibility * use pnpm for visual regression testing workflow * use node 16 for chromatic * add @babel/plugin-proposal-nullish-coalescing-operator as direct dependency * try fix for plugin-server * cleanup * fix comment and warning * update more comments * update playwright dockerfile * update plugin source types * conditional image size reporting * revert react-native instructions * less restrictive pnpm verions * use ref component name in line with style guide Co-authored-by: Jacob Gillespie <jacobwgillespie@gmail.com>
2022-12-12 10:28:06 +01:00
"build": "pnpm copy-scripts && pnpm build:esbuild",
Bundle our frontend via esbuild (#6758) * esbuild package * almost get esbuild working * fix react-virtualized imports * add splitting * fix funny import reorder bug * fix squeakAudio referring to itself * write index.html file * fix some bad imports * update antd paths * remove raw-loader usage, it didn't work anyway * refactor and copy public * build app and toolbar * get toolbar working, but without styles * make toolbar and its styles work * shared dashboards * clean frontend build before rebuilding * add watch mode * reorder tasks * revert js url * incremental builds of app with debounced chokidar watching * common build/watch script * improve logs * watch during firrst build * fix toolbar url * fix wrongly exported scene * create sceneProxyLogic to untangle sceneLogic from all bundles * disconnect sceneLogic and refactor setPageTitle * live reloading server * rename utils file * only wait for /static * fix encoding * simplify * add missing dayjs plugins * fix pathless logics * simplify options * add jsx for webapck * slight delay to catch changes * a type is a type * fix build * esbuild in start * funnelLogic path * include all files with a "." (so .mjs, etc) in /frontend/ to docker * rename to "utils.mjs", make "build.mjs" executable * improve erroring * revert some needless changes * more reverts * change some scripts * remove setuff * clarify function * make "--host 0.0.0.0" work * fix import order issue in webpack * remove webpack css inlining for toolbar to simplify config * make toolbar with external styles work in storybook * move live server injection into django * fix undefined bug * simplify setup to work with injection directly in http://localhost:8000 (no proxying needed on :8234) * add comments * Fix `fse` usage I was getting this otherwise: $ node frontend/build.mjs file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46 fse.copySync(srcDir, destDir, { overwrite: true }, function (err) { ^ TypeError: fse.copySync is not a function at copyPublicFolder (file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46:9) at file:///Users/twixes/Developer/posthog/frontend/build.mjs:5:1 at ModuleJob.run (internal/modules/esm/module_job.js:146:23) at async Loader.import (internal/modules/esm/loader.js:165:24) at async Object.loadESM (internal/process/esm_loader.js:68:5) * Mock `process` for VFile used by ReactMarkdown I was getting this otherwise: core.js:55 Uncaught ReferenceError: process is not defined at new VFile (core.js:55) at VFile (core.js:49) at Function.parse (index.js:273) at ReactMarkdown2 (react-markdown.js:42) at renderWithHooks (react-dom.development.js:14803) at mountIndeterminateComponent (react-dom.development.js:17482) at beginWork (react-dom.development.js:18596) at HTMLUnknownElement.callCallback2 (react-dom.development.js:188) at Object.invokeGuardedCallbackDev (react-dom.development.js:237) at invokeGuardedCallback (react-dom.development.js:292) * Mock `process.env` for VFile used by ReactMarkdown I was getting this otherwise: platform.ts:73 Uncaught TypeError: Cannot read properties of undefined (reading 'ENABLE_VSCODE_BROWSER_CODE_LOADING') at platform.ts:73 at platform.ts:79 at Function.r._invokeFactory (loader.js:1118) at r.complete (loader.js:1128) at r._onModuleComplete (loader.js:1754) at r._resolve (loader.js:1714) at r.defineModule (loader.js:1357) at _ (loader.js:1804) at numbers.ts:10 at fake:1 * pass the heavy appScenes to sceneLogic through props via App.tsx * remove sceneProxyLogic * remove exported variables * fix sceneLogic test Co-authored-by: Michael Matloka <dev@twixes.com>
2021-11-03 09:50:24 +01:00
"build:esbuild": "node frontend/build.mjs",
"schema:build": "pnpm run schema:build:json && pnpm run schema:build:python",
"schema:build:json": "ts-node bin/build-schema-json.mjs && prettier --write frontend/src/queries/schema.json",
"schema:build:python": "bash bin/build-schema-python.sh",
perf: Parse HogQL with C++ for a huge speedup (#17659) * Add partial C++ parser of HogQL * Support all the rules and add proper error handling * Use `AlignAfterOpenBracket: BlockIndent` * Reuse all the parser tests for the C++ backend * Fix relationship between headers and implementations * Add more error handling and fix minor issues * Build both Python and C++ parsers in the package.json script * Update ARRAY JOIN error assertion * Improve timeit * Move the C extension to the top level * Refactor `vector_to_list_string` * Build the parser on Linux * Build wheels for the parser * Simplify Linux build and fix macOS * Fix Homebrew paths on x86 and don't fail fast in CI * Set MACOSX_DEPLOYMENT_TARGET for C++20 * Set up QEMU for Linux ARM builds * Publish the wheels on PyPI * Avoiding Linux ARM emulation in CI for now * Build sdist too * Revert Dockerfile changes * Fix PyPI publish * Add README and optimize sdist build * Use setup.py directly instead of build * Use PyPI hogql-parser instead of local * Also revert production-unit.Dockerfile * Fix sdist upload and add Linux ARM back * No Linux ARM build in the end * Fix artifact uploading * Do try building Linux ARM We need this for prod. * Use `npm` in `grammar:build` `pnpm` is not available in that job. * Fix formatting of hogql_parser * Build everything on macOS * Revert "Build everything on macOS" Not so fast actually. * Use hogql-parser=0.1.1 * Fix dylib in macOS wheel * Bump hogql-parser version * Fix missing module error * Delete timeit.py * Make error handling robust * Format the C++ * Use `hogql-parser==0.1.1` * Fix reserved keyword error assertions * Use HEAD hogql_paresr in CI * Fix `apt` usage * Add some sudo in CI * Ensure package will be releasable before build * Bump version to 0.1.3 * Cover C++ `unquote_string` with tests * Use BuildJet ARM runners for ARM builds * Add some instructions * Add HogQL version check to backend CI * Update requirements.txt * Use `setuptools` instead of the deprecated `distutils` * Fix working dir in backend CI * Align ANTLR versions * Add test for "mismatched input" This is thrown differently than other HogQLSyntaxExceptions in C++, so might help reveal what's going on with tests failing only on Linux CI and not macOS dev * Add types and bump version * Comment instead of failing version check * Automate hogql-release version bump * Fix checkout token * Don't build hogql-parser if there were no changes * Update query snapshots * Update query snapshots * Update query snapshots * Update query snapshots * Improve documentation * Use new hogql-parser version * Fix error start and end initialization * Note `antlr4-cpp-runtime` Co-authored-by: Marius Andra <marius.andra@gmail.com> * Also remove NUL chars in C++ * Check ANTLR4 runtime archive checksum for security * Note more decrefs to add * Add vector size checks * Use new hogql-parser version * Don't support the `start` arg in C++ `parse_expr` * Use new hogql-parser version --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Marius Andra <marius.andra@gmail.com>
2023-10-13 15:58:08 +02:00
"grammar:build": "npm run grammar:build:python && npm run grammar:build:cpp",
"grammar:build:python": "cd posthog/hogql/grammar && antlr -Dlanguage=Python3 HogQLLexer.g4 && antlr -visitor -no-listener -Dlanguage=Python3 HogQLParser.g4",
"grammar:build:cpp": "cd posthog/hogql/grammar && antlr -o ../../../hogql_parser -Dlanguage=Cpp HogQLLexer.g4 && antlr -o ../../../hogql_parser -visitor -no-listener -Dlanguage=Cpp HogQLParser.g4",
chore: use pnpm to manage dependencies (closes #12635) (#13190) * chore: use pnpm to manage dependencies * Fix CI errors * Don't report Docker image size for external PRs * Fix pnpm-lock.yaml formatting * Fix module versions * Ignore pnpm-lock.yaml * Upgrade Cypress action for pnpm support * Set up node and pnpm before Cypress * Fix typescript issues * Include patches directory in Dockerfile * Fix Jest tests in CI * Update lockfile * Update lockfile * Clean up Dockerfile * Update pnpm-lock.yaml to reflect current package.json files * remove yarn-error.log from .gitignore * formatting * update data exploration readme * type jest.config.ts * fix @react-hook issues for jest * fix react-syntax-highlighter issues for jest * fix jest issues from query-selector-shadow-dom * fix transform ignore patterns and undo previous fixes * add missing storybook peer dependencies * fix nullish coalescing operator for storybook * reorder storybook plugins * update editor-update-tsd warning to new npm script * use legacy ssl for chromatic / node 18 compatibility * use pnpm for visual regression testing workflow * use node 16 for chromatic * add @babel/plugin-proposal-nullish-coalescing-operator as direct dependency * try fix for plugin-server * cleanup * fix comment and warning * update more comments * update playwright dockerfile * update plugin source types * conditional image size reporting * revert react-native instructions * less restrictive pnpm verions * use ref component name in line with style guide Co-authored-by: Jacob Gillespie <jacobwgillespie@gmail.com>
2022-12-12 10:28:06 +01:00
"packages:build": "pnpm packages:build:apps-common && pnpm packages:build:lemon-ui",
"packages:build:apps-common": "cd frontend/@posthog/apps-common && pnpm i && pnpm build",
"packages:build:lemon-ui": "cd frontend/@posthog/lemon-ui && pnpm i && pnpm build",
"editor:update-tsd": "pnpm packages:build && node frontend/editor-update-tsd.mjs",
Bundle our frontend via esbuild (#6758) * esbuild package * almost get esbuild working * fix react-virtualized imports * add splitting * fix funny import reorder bug * fix squeakAudio referring to itself * write index.html file * fix some bad imports * update antd paths * remove raw-loader usage, it didn't work anyway * refactor and copy public * build app and toolbar * get toolbar working, but without styles * make toolbar and its styles work * shared dashboards * clean frontend build before rebuilding * add watch mode * reorder tasks * revert js url * incremental builds of app with debounced chokidar watching * common build/watch script * improve logs * watch during firrst build * fix toolbar url * fix wrongly exported scene * create sceneProxyLogic to untangle sceneLogic from all bundles * disconnect sceneLogic and refactor setPageTitle * live reloading server * rename utils file * only wait for /static * fix encoding * simplify * add missing dayjs plugins * fix pathless logics * simplify options * add jsx for webapck * slight delay to catch changes * a type is a type * fix build * esbuild in start * funnelLogic path * include all files with a "." (so .mjs, etc) in /frontend/ to docker * rename to "utils.mjs", make "build.mjs" executable * improve erroring * revert some needless changes * more reverts * change some scripts * remove setuff * clarify function * make "--host 0.0.0.0" work * fix import order issue in webpack * remove webpack css inlining for toolbar to simplify config * make toolbar with external styles work in storybook * move live server injection into django * fix undefined bug * simplify setup to work with injection directly in http://localhost:8000 (no proxying needed on :8234) * add comments * Fix `fse` usage I was getting this otherwise: $ node frontend/build.mjs file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46 fse.copySync(srcDir, destDir, { overwrite: true }, function (err) { ^ TypeError: fse.copySync is not a function at copyPublicFolder (file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46:9) at file:///Users/twixes/Developer/posthog/frontend/build.mjs:5:1 at ModuleJob.run (internal/modules/esm/module_job.js:146:23) at async Loader.import (internal/modules/esm/loader.js:165:24) at async Object.loadESM (internal/process/esm_loader.js:68:5) * Mock `process` for VFile used by ReactMarkdown I was getting this otherwise: core.js:55 Uncaught ReferenceError: process is not defined at new VFile (core.js:55) at VFile (core.js:49) at Function.parse (index.js:273) at ReactMarkdown2 (react-markdown.js:42) at renderWithHooks (react-dom.development.js:14803) at mountIndeterminateComponent (react-dom.development.js:17482) at beginWork (react-dom.development.js:18596) at HTMLUnknownElement.callCallback2 (react-dom.development.js:188) at Object.invokeGuardedCallbackDev (react-dom.development.js:237) at invokeGuardedCallback (react-dom.development.js:292) * Mock `process.env` for VFile used by ReactMarkdown I was getting this otherwise: platform.ts:73 Uncaught TypeError: Cannot read properties of undefined (reading 'ENABLE_VSCODE_BROWSER_CODE_LOADING') at platform.ts:73 at platform.ts:79 at Function.r._invokeFactory (loader.js:1118) at r.complete (loader.js:1128) at r._onModuleComplete (loader.js:1754) at r._resolve (loader.js:1714) at r.defineModule (loader.js:1357) at _ (loader.js:1804) at numbers.ts:10 at fake:1 * pass the heavy appScenes to sceneLogic through props via App.tsx * remove sceneProxyLogic * remove exported variables * fix sceneLogic test Co-authored-by: Michael Matloka <dev@twixes.com>
2021-11-03 09:50:24 +01:00
"prettier": "prettier --write \"./**/*.{js,mjs,ts,tsx,json,yaml,yml,css,scss}\"",
"prettier:check": "prettier --check \"frontend/**/*.{js,mjs,ts,tsx,json,yaml,yml,css,scss}\"",
"typescript:check": "tsc --noEmit && echo \"No errors reported by tsc.\"",
"lint:js": "eslint frontend/src cypress",
"lint:css": "stylelint \"frontend/**/*.{css,scss}\"",
2024-04-19 14:19:10 +02:00
"format:backend": "ruff .",
"format:frontend": "pnpm lint:js --fix && pnpm lint:css --fix && pnpm prettier",
"format": "pnpm format:backend && pnpm format:frontend",
"typegen:write": "kea-typegen write --delete --show-ts-errors",
"typegen:check": "kea-typegen check",
"typegen:watch": "kea-typegen watch --delete --show-ts-errors",
"typegen:clean": "find frontend/src -type f -name '*Type.ts' -delete",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"dev:migrate:postgres": "export DEBUG=1 && source env/bin/activate && python manage.py migrate",
"dev:migrate:clickhouse": "export DEBUG=1 && source env/bin/activate && python manage.py migrate_clickhouse",
"prepare": "husky install",
"mobile-replay:web:schema:build:json": "ts-json-schema-generator -f tsconfig.json --path 'node_modules/@rrweb/types/dist/index.d.ts' --type 'eventWithTime' --expose all --no-top-ref --out ee/frontend/mobile-replay/schema/web/rr-web-schema.json && prettier --write ee/frontend/mobile-replay/schema/web/rr-web-schema.json",
"mobile-replay:mobile:schema:build:json": "ts-json-schema-generator -f tsconfig.json --path 'ee/frontend/mobile-replay/mobile.types.ts' --type 'mobileEventWithTime' --expose all --no-top-ref --out ee/frontend/mobile-replay/schema/mobile/rr-mobile-schema.json && prettier --write ee/frontend/mobile-replay/schema/mobile/rr-mobile-schema.json",
fix: reduce toolbar bundle size by 60% (#20122) * output analyzable build info for the toolbar * don't use code snippet it adds half a meg * Update UI snapshots for `chromium` (2) * use esbuild visualizer instead * fix * allow treeshaking and remove circular dependency from imports toolbar uses * fix * lint the mjs files at the root of frontend folder * no need to mention lemonui at all * no ned to specify metafile * don't allow posthog-js to sneak into the toolbar * simpler date picker so fewer dependencies * maybe this * like this? * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * ragE * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * too easy to break things this way * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * around the houses * Reset snapshots to master * explain why there's a plugin * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * fix * fix * Update UI snapshots for `webkit` (2) * fix * Update UI snapshots for `webkit` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-02-19 12:39:15 +01:00
"mobile-replay:schema:build:json": "pnpm mobile-replay:web:schema:build:json && pnpm mobile-replay:mobile:schema:build:json",
"visualize-toolbar-bundle": "pnpm exec esbuild-visualizer --metadata ./toolbar-esbuild-meta.json --filename=toolbar-esbuild-bundle-visualization.html",
"mypy-baseline-sync": "mypy -p posthog | mypy-baseline sync"
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
},
"dependencies": {
2024-03-18 17:14:44 +01:00
"@babel/runtime": "^7.24.0",
"@dnd-kit/core": "^6.0.8",
"@dnd-kit/modifiers": "^6.0.1",
"@dnd-kit/sortable": "^7.0.2",
"@dnd-kit/utilities": "^3.2.1",
2024-02-22 13:43:51 +01:00
"@floating-ui/react": "^0.26.9",
"@lottiefiles/react-lottie-player": "^3.4.7",
"@medv/finder": "^3.1.0",
"@microlink/react-json-view": "^1.21.3",
"@monaco-editor/react": "4.6.0",
2024-11-06 19:54:31 +01:00
"@posthog/hogvm": "^1.0.58",
"@posthog/icons": "0.8.5",
"@posthog/plugin-scaffold": "^1.4.4",
"@react-hook/size": "^2.1.2",
"@rrweb/types": "2.0.0-alpha.13",
"@sentry/react": "7.112.1",
"@stripe/react-stripe-js": "^2.8.0",
"@stripe/stripe-js": "^4.5.0",
chore(frontend): Real Tailwind + Autoprefixer (#19051) * chore(frontend): Real Tailwind + Autoprefixer * Align some non-standard utility class usage with Tailwind * Start using container queries * Update tailwind.config.js * Move PostCSS packages into prod dependencies * Add EE * Add larger spacings for properties other than width * Fix spacing backward compat * Add max-w-1/2 * Remove Tailwind normalization * Ensure JIT analysis works * Actually we don't need a container query for this * Clean up more * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update production.Dockerfile * Extend `fontSize` instead of replacing * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Fix production build * Add clarification comment * Update trends.cy.ts * Fix `scale` usage * Fix minor styling issues * Upgrade to Tailwind 3.4 * Actually use `cssnano` * Don't use `cssnano` in dev * Solve annoying Tailwind logs * Add comment explaining plugins being defined twice * Fix side panel icon rotation * Reset snapshots * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update query snapshots * Update query snapshots * Fix dockerfile * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (1) * Fix up flag wrap * Update UI snapshots for `chromium` (2) * Fix * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ben White <ben@posthog.com>
2024-01-08 13:26:12 +01:00
"@tailwindcss/container-queries": "^0.1.1",
"@testing-library/dom": ">=7.21.4",
2024-01-15 13:22:36 +01:00
"@tiptap/core": "^2.1.16",
"@tiptap/extension-document": "^2.1.16",
"@tiptap/extension-floating-menu": "^2.1.16",
"@tiptap/extension-placeholder": "^2.1.16",
"@tiptap/extension-task-item": "^2.1.16",
"@tiptap/extension-task-list": "^2.1.16",
"@tiptap/pm": "^2.1.16",
"@tiptap/react": "^2.1.16",
"@tiptap/starter-kit": "^2.1.16",
"@tiptap/suggestion": "^2.1.16",
chore: use pnpm to manage dependencies (closes #12635) (#13190) * chore: use pnpm to manage dependencies * Fix CI errors * Don't report Docker image size for external PRs * Fix pnpm-lock.yaml formatting * Fix module versions * Ignore pnpm-lock.yaml * Upgrade Cypress action for pnpm support * Set up node and pnpm before Cypress * Fix typescript issues * Include patches directory in Dockerfile * Fix Jest tests in CI * Update lockfile * Update lockfile * Clean up Dockerfile * Update pnpm-lock.yaml to reflect current package.json files * remove yarn-error.log from .gitignore * formatting * update data exploration readme * type jest.config.ts * fix @react-hook issues for jest * fix react-syntax-highlighter issues for jest * fix jest issues from query-selector-shadow-dom * fix transform ignore patterns and undo previous fixes * add missing storybook peer dependencies * fix nullish coalescing operator for storybook * reorder storybook plugins * update editor-update-tsd warning to new npm script * use legacy ssl for chromatic / node 18 compatibility * use pnpm for visual regression testing workflow * use node 16 for chromatic * add @babel/plugin-proposal-nullish-coalescing-operator as direct dependency * try fix for plugin-server * cleanup * fix comment and warning * update more comments * update playwright dockerfile * update plugin source types * conditional image size reporting * revert react-native instructions * less restrictive pnpm verions * use ref component name in line with style guide Co-authored-by: Jacob Gillespie <jacobwgillespie@gmail.com>
2022-12-12 10:28:06 +01:00
"@types/md5": "^2.3.0",
"@types/react-transition-group": "^4.4.5",
2023-11-06 14:34:20 +01:00
"@types/react-virtualized": "^9.21.23",
"ajv": "^8.12.0",
2024-03-18 17:14:44 +01:00
"algoliasearch": "^4.22.1",
chore(frontend): Real Tailwind + Autoprefixer (#19051) * chore(frontend): Real Tailwind + Autoprefixer * Align some non-standard utility class usage with Tailwind * Start using container queries * Update tailwind.config.js * Move PostCSS packages into prod dependencies * Add EE * Add larger spacings for properties other than width * Fix spacing backward compat * Add max-w-1/2 * Remove Tailwind normalization * Ensure JIT analysis works * Actually we don't need a container query for this * Clean up more * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update production.Dockerfile * Extend `fontSize` instead of replacing * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Fix production build * Add clarification comment * Update trends.cy.ts * Fix `scale` usage * Fix minor styling issues * Upgrade to Tailwind 3.4 * Actually use `cssnano` * Don't use `cssnano` in dev * Solve annoying Tailwind logs * Add comment explaining plugins being defined twice * Fix side panel icon rotation * Reset snapshots * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update query snapshots * Update query snapshots * Fix dockerfile * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (1) * Fix up flag wrap * Update UI snapshots for `chromium` (2) * Fix * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ben White <ben@posthog.com>
2024-01-08 13:26:12 +01:00
"autoprefixer": "^10.4.13",
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
"babel-preset-nano-react-app": "^0.1.0",
2024-07-30 00:14:09 +02:00
"chart.js": "^4.4.3",
"chartjs-adapter-dayjs-3": "^1.2.3",
"chartjs-plugin-annotation": "2.2.1",
"chartjs-plugin-crosshair": "^1.2.0",
"chartjs-plugin-datalabels": "^2.2.0",
"chartjs-plugin-stacked100": "^1.4.0",
"chartjs-plugin-trendline": "^2.1.2",
"chokidar": "^3.5.3",
"clsx": "^1.1.1",
"core-js": "^3.32.0",
"cors": "^2.8.5",
chore(frontend): Real Tailwind + Autoprefixer (#19051) * chore(frontend): Real Tailwind + Autoprefixer * Align some non-standard utility class usage with Tailwind * Start using container queries * Update tailwind.config.js * Move PostCSS packages into prod dependencies * Add EE * Add larger spacings for properties other than width * Fix spacing backward compat * Add max-w-1/2 * Remove Tailwind normalization * Ensure JIT analysis works * Actually we don't need a container query for this * Clean up more * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update production.Dockerfile * Extend `fontSize` instead of replacing * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Fix production build * Add clarification comment * Update trends.cy.ts * Fix `scale` usage * Fix minor styling issues * Upgrade to Tailwind 3.4 * Actually use `cssnano` * Don't use `cssnano` in dev * Solve annoying Tailwind logs * Add comment explaining plugins being defined twice * Fix side panel icon rotation * Reset snapshots * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update query snapshots * Update query snapshots * Fix dockerfile * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (1) * Fix up flag wrap * Update UI snapshots for `chromium` (2) * Fix * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ben White <ben@posthog.com>
2024-01-08 13:26:12 +01:00
"cssnano": "^6.0.3",
"cypress-network-idle": "^1.14.2",
"d3": "^7.8.2",
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
"d3-sankey": "^0.12.3",
"dayjs": "1.11.11",
"dompurify": "^3.0.6",
"esbuild": "^0.19.8",
"esbuild-plugin-less": "^1.3.1",
"esbuild-plugin-polyfill-node": "^0.3.0",
"esbuild-sass-plugin": "^3.0.0",
"eventsource-parser": "^3.0.0",
Command palette (#1819) * add hotkey base * add platform check * Rename CommandBox to CommandPalette * Add styled-components * Restructure CommandPalette and add Esc handling * Update utils.js * add search box * Add logic types * Implement base logic * Fix scroll prevention * Update logic and add goto command base with Fuse fuzzy serach * ux hotkey * Implement command (de)registration * minor fix * base UI * error message & hints * command groups UI * Add commands search * Make commands work * Prepare palette for fuzzy search and add basic labeling * ui adjustments * ui * Improve colors * switch to global command * Optimize resolution * global go to commands * abstract item selection logic to command palette * Update casing and types * Add conditional useCommands * Improve results * keyboard nav * keyboard nav fix * removed double fuse (synonyms broken) * Update style * Fix highlighting * Remove extra style * conditional go to commands * add mouse hover handling and rename functions * remove mac check * add more commands * added insights stub pages * Add command components * refactor logic * Update styling * Remove extraneous `input` * load custom dashboards to command palette * Add input styling * Add write icon * Refactor results * minor adjustments * add person search * remove papercups fully * fix input indexing * fix result executing empty * Add command grouping and improve navigation * add urls * make logic explicit * fix error with hadnler * Remove redundant border-top * add trend functions * personal api key stub * Add command palette toggle button * Fix things * fix personal api keys * copy api key to clipboard * Add toggle text * Improve palette UX and perform refactoring * Improve UX and add palette usage reporting * tests refactor * filter person list * refactor api person tests * add squeak * deprecate by_distinct_id & by_email person endpoints * Optimize squeak * fix typegen error * use new filters in frontend * Optimize squeak * key identifier refactor * fix mypy * removed unused code * Make custom command UI more coherent * Add calculator to palette * Use equal sign * Make palette button nicer * Add lodash back officially and show palette suggestions lodash is still used in a few places, but it was not in package.json. The reason this was working was that lodash is a dependency of some other depedencies, but this was fragile. It's still not ideal to use this, but at least this is now not a hack the way it was. * Remove isHint * Optimize graph time range command * Move command results grouping to Kea logic * Fix result focus autoshift * Improve palette result focusing * Adjust for window.posthog being optional * add test for third-party person filters * Remove styled-components in favor of .scss files * Remove redundant container class * Use insect (sic!) squeak instead of pig squeak * Show only unique palette results * Fix palette overlay * Add powerful command building protocol CommandFlow * Fix minor issues * Always show scope when flow active * Use custom label icon * Add feedback sharing command * block command input from being captured in screen recording at least until we can figure out how to capture this info in a privacy-preserving way * Hide palette button on narrow screens * Improve responsiveness * Fix palette feedback sending * Fix Esc handling * Add Message Sent info * Fix Message Sent info * Fix dashboard creation and null name handling * Rename Cy tests to JS convention * Add basic Cypress test * Address feedback Co-authored-by: Eric <eeoneric@gmail.com> Co-authored-by: Paolo D'Amico <paolodamico@users.noreply.github.com>
2020-10-13 15:44:56 +02:00
"expr-eval": "^2.0.2",
"express": "^4.17.1",
Sessions filtering system (#2912) * Refactor adding filtering component * Fix a type error * Rename events to entries This makes much more sense since you can select e.g. actions * Start of the session filter box * WIP: Sessions filtering * Make SelectBox more generic * Make sessions filtering visuals * Extract operator value selection code * Make action properties filterable * Make it possible to filter by cohorts * Filtering by events * Make loading sessions possible with the new logic * Make it possible to filter by actions/events via backend with new code Note that it's all relying on old 'paths' - will refactor these later. * Make it possible to filter by user properties * Update imports * Small fixes for sessions filter * Add UserFilter file * Ignore extra args to Property * Make it possile to filter by recording duration * Update how session duration filter works in the backend * Rename a few columns * Remove dead mixins * Remove duplicated logic, put code behind feature flag * Move sessions filters logic to subfolder * Don't show properties if feature flag. * Add saved filters support This will require some discussion with Paolo - probably want to show this on the side? * Add divider before sessions table * Narrower typing for recordings * Some frontend for saving filters * Small rename * Add SessionsFilter model * Save filter on backend * add missing filter * Extract const * Make ActionFilterDropdown be able to pick actions again. * Fix links from person modal to sessions * Update tests. * Fix database model * Use proper deep equal for detecting active filter * Remove unneeded field * Only return filters from correct page * Add missing data-attr * Add instrumentation * rename component * Fix analytics metadata
2021-01-13 13:55:06 +01:00
"fast-deep-equal": "^3.1.3",
2023-05-02 16:33:40 +02:00
"fflate": "^0.7.4",
"fs-extra": "^10.0.0",
"fuse.js": "^6.6.2",
2024-04-23 09:52:44 +02:00
"heatmap.js": "^2.0.5",
"hls.js": "^1.5.15",
"husky": "^7.0.4",
"image-blob-reduce": "^4.1.0",
"kea": "^3.1.5",
"kea-forms": "^3.2.0",
feat(apps): frontend apps (#9831) * create plugin source model * edit source via plugin_source model * deprecate "source" * test plugin source updates * add support for index.ts and index.js * refactor plugin loading, support plugin sources from db * fix source code in tests * remove transpilation code * reload plugin after saving * store defaults in the db instead of persisting in form * remove fields that don't exist * feat(apps): transpile frontend.tsx * update timestamp even if no local fields changed * yarn.lock * feat(apps): load apps with frontend.tsx in the frontend * fix import * reload apps, show if transpiling * remove unused fields * commit suggestion * rename to PluginSourceFile * rename to PluginSourceFile * remove dead code * cleaner types * PluginSourceFile * fix nag * fix types * one more merge conflict * transpile when adding frontend * fix test * edit app from sidebar * sneaky edit button * fix code feedback * add comments * make it safer to call * convert to upsert * convert to upsert * comment on the null * revert plugin server changes * get source from new model behind the scenes * simplify * revert accidental changes * revert accidental changes * remove defaults * sync the old source field * use the source model in the plugin server * cache the source from pluginsourcefile * test that getPluginSource gets data from the database * safer null check that doesn't override `{}` in the db with `null` * clarify origins * use enum * fix error from migration 0233 ([] is falsy in python!) * fix merge * error as null * use the explicit "source__index_ts" field * cache transpiled code * remove unused type * cleaner query * remove extra line * fix test * improved error handling and run code through prettier * new packages * loading state in source editor * kinder error * sync plugin state if pluginsLogic, retry loading * update snapshot after kea-forms update * remove "updateAppConfig" * add a query * add examples to editor * refactor sidebar * add more lemons * simplify app config * rename action and add todo * some helpful comments * create appConfig if enabling a plugin and none was yet provided in django's app context * re-enable app only if enabled * fix last bug * add back onInit and move types around * show apps section header only if any link in the list * remove dead code * fix few errors, only allow editing of source apps * stringify json * completely bail out of apps if the flag is off * Update snapshots * fix broken link * Update snapshots * use new icon for "apps" now that it's not "plugins" any longer * Update snapshots * Update snapshots Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-20 18:14:58 +02:00
"kea-loaders": "^3.0.0",
"kea-localstorage": "^3.1.0",
"kea-router": "^3.2.0",
2024-02-29 14:16:57 +01:00
"kea-subscriptions": "^3.0.1",
"kea-test-utils": "^0.2.4",
2021-10-14 19:17:42 +02:00
"kea-waitfor": "^0.2.1",
feat(apps): frontend apps (#9831) * create plugin source model * edit source via plugin_source model * deprecate "source" * test plugin source updates * add support for index.ts and index.js * refactor plugin loading, support plugin sources from db * fix source code in tests * remove transpilation code * reload plugin after saving * store defaults in the db instead of persisting in form * remove fields that don't exist * feat(apps): transpile frontend.tsx * update timestamp even if no local fields changed * yarn.lock * feat(apps): load apps with frontend.tsx in the frontend * fix import * reload apps, show if transpiling * remove unused fields * commit suggestion * rename to PluginSourceFile * rename to PluginSourceFile * remove dead code * cleaner types * PluginSourceFile * fix nag * fix types * one more merge conflict * transpile when adding frontend * fix test * edit app from sidebar * sneaky edit button * fix code feedback * add comments * make it safer to call * convert to upsert * convert to upsert * comment on the null * revert plugin server changes * get source from new model behind the scenes * simplify * revert accidental changes * revert accidental changes * remove defaults * sync the old source field * use the source model in the plugin server * cache the source from pluginsourcefile * test that getPluginSource gets data from the database * safer null check that doesn't override `{}` in the db with `null` * clarify origins * use enum * fix error from migration 0233 ([] is falsy in python!) * fix merge * error as null * use the explicit "source__index_ts" field * cache transpiled code * remove unused type * cleaner query * remove extra line * fix test * improved error handling and run code through prettier * new packages * loading state in source editor * kinder error * sync plugin state if pluginsLogic, retry loading * update snapshot after kea-forms update * remove "updateAppConfig" * add a query * add examples to editor * refactor sidebar * add more lemons * simplify app config * rename action and add todo * some helpful comments * create appConfig if enabling a plugin and none was yet provided in django's app context * re-enable app only if enabled * fix last bug * add back onInit and move types around * show apps section header only if any link in the list * remove dead code * fix few errors, only allow editing of source apps * stringify json * completely bail out of apps if the flag is off * Update snapshots * fix broken link * Update snapshots * use new icon for "apps" now that it's not "plugins" any longer * Update snapshots * Update snapshots Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2022-05-20 18:14:58 +02:00
"kea-window-values": "^3.0.0",
"lodash.merge": "^4.6.2",
"lodash.uniqby": "^4.7.0",
2023-10-26 09:20:43 +02:00
"maplibre-gl": "^3.5.1",
"md5": "^2.3.0",
"monaco-editor": "^0.49.0",
"natural-orderby": "^3.0.2",
"papaparse": "^5.4.1",
"pmtiles": "^2.11.0",
chore(frontend): Real Tailwind + Autoprefixer (#19051) * chore(frontend): Real Tailwind + Autoprefixer * Align some non-standard utility class usage with Tailwind * Start using container queries * Update tailwind.config.js * Move PostCSS packages into prod dependencies * Add EE * Add larger spacings for properties other than width * Fix spacing backward compat * Add max-w-1/2 * Remove Tailwind normalization * Ensure JIT analysis works * Actually we don't need a container query for this * Clean up more * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update production.Dockerfile * Extend `fontSize` instead of replacing * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Fix production build * Add clarification comment * Update trends.cy.ts * Fix `scale` usage * Fix minor styling issues * Upgrade to Tailwind 3.4 * Actually use `cssnano` * Don't use `cssnano` in dev * Solve annoying Tailwind logs * Add comment explaining plugins being defined twice * Fix side panel icon rotation * Reset snapshots * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update query snapshots * Update query snapshots * Fix dockerfile * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (1) * Fix up flag wrap * Update UI snapshots for `chromium` (2) * Fix * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ben White <ben@posthog.com>
2024-01-08 13:26:12 +01:00
"postcss": "^8.4.31",
"postcss-preset-env": "^9.3.0",
"posthog-js": "1.182.0",
2024-04-23 09:52:44 +02:00
"posthog-js-lite": "3.0.0",
"prettier": "^2.8.8",
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
"prop-types": "^15.7.2",
"protomaps-themes-base": "2.0.0-alpha.1",
"query-selector-shadow-dom": "^1.0.0",
"rc-trigger": "^5.2.5",
"re2js": "^0.4.1",
2023-11-06 14:34:20 +01:00
"react": "^18.2.0",
"react-color": "^2.19.3",
"react-data-grid": "7.0.0-beta.47",
2023-11-06 14:34:20 +01:00
"react-dom": "^18.2.0",
2024-03-05 11:49:38 +01:00
"react-draggable": "^4.2.0",
"react-email-editor": "^1.7.11",
"react-grid-layout": "^1.3.0",
2024-03-18 17:14:44 +01:00
"react-instantsearch": "^7.6.0",
"react-intersection-observer": "^9.5.3",
"react-markdown": "^5.0.3",
2022-08-11 09:57:24 +02:00
"react-modal": "^3.15.1",
2024-03-05 11:49:38 +01:00
"react-resizable": "^3.0.5",
2023-11-06 14:34:20 +01:00
"react-shadow": "^20.3.0",
"react-syntax-highlighter": "^15.5.0",
"react-textarea-autosize": "^8.3.3",
"react-toastify": "^8.2.0",
"react-transition-group": "^4.4.5",
"react-virtualized": "^9.22.5",
"resize-observer-polyfill": "^1.5.1",
"rrweb": "2.0.0-alpha.13",
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
"sass": "^1.26.2",
"tailwind-merge": "^2.2.2",
chore(frontend): Real Tailwind + Autoprefixer (#19051) * chore(frontend): Real Tailwind + Autoprefixer * Align some non-standard utility class usage with Tailwind * Start using container queries * Update tailwind.config.js * Move PostCSS packages into prod dependencies * Add EE * Add larger spacings for properties other than width * Fix spacing backward compat * Add max-w-1/2 * Remove Tailwind normalization * Ensure JIT analysis works * Actually we don't need a container query for this * Clean up more * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update production.Dockerfile * Extend `fontSize` instead of replacing * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Fix production build * Add clarification comment * Update trends.cy.ts * Fix `scale` usage * Fix minor styling issues * Upgrade to Tailwind 3.4 * Actually use `cssnano` * Don't use `cssnano` in dev * Solve annoying Tailwind logs * Add comment explaining plugins being defined twice * Fix side panel icon rotation * Reset snapshots * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update query snapshots * Update query snapshots * Fix dockerfile * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (1) * Fix up flag wrap * Update UI snapshots for `chromium` (2) * Fix * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com> Co-authored-by: Ben White <ben@posthog.com>
2024-01-08 13:26:12 +01:00
"tailwindcss": "^3.4.0",
"ts-pattern": "4.3",
"use-debounce": "^9.0.3",
"use-resize-observer": "^8.0.0",
"zxcvbn": "^4.4.2"
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
},
"devDependencies": {
"@babel/core": "^7.22.10",
"@babel/plugin-transform-class-properties": "^7.24.7",
"@babel/plugin-transform-nullish-coalescing-operator": "^7.24.7",
"@babel/plugin-transform-private-property-in-object": "^7.24.7",
"@babel/plugin-transform-react-jsx": "^7.22.5",
"@babel/plugin-transform-runtime": "^7.22.10",
"@babel/preset-env": "^7.22.10",
"@babel/preset-react": "^7.22.5",
"@babel/preset-typescript": "^7.22.5",
"@cypress/webpack-preprocessor": "^5.17.1",
"@playwright/test": "1.45.0",
"@sentry/types": "7.112.1",
"@storybook/addon-a11y": "^7.6.4",
"@storybook/addon-actions": "^7.6.4",
"@storybook/addon-essentials": "^7.6.4",
"@storybook/addon-links": "^7.6.4",
"@storybook/addon-storysource": "^7.6.4",
"@storybook/addons": "^7.6.4",
"@storybook/api": "^7.6.4",
"@storybook/blocks": "^7.6.4",
"@storybook/components": "^7.6.4",
"@storybook/core-events": "^7.6.4",
"@storybook/csf": "^0.1.2",
"@storybook/react": "^7.6.4",
"@storybook/react-webpack5": "^7.6.4",
"@storybook/test-runner": "^0.16.0",
"@storybook/theming": "^7.6.4",
"@storybook/types": "^7.6.4",
"@sucrase/jest-plugin": "^3.0.0",
"@testing-library/dom": ">=7.21.4",
"@testing-library/jest-dom": "^5.16.2",
2023-11-06 14:34:20 +01:00
"@testing-library/react": "^13.4.0",
"@testing-library/react-hooks": "^8.0.1",
2021-10-20 16:12:32 +02:00
"@testing-library/user-event": "^13.5.0",
"@types/chartjs-plugin-crosshair": "^1.1.1",
"@types/chartjs-plugin-trendline": "^1.0.4",
"@types/clone": "^2.1.1",
"@types/d3": "^7.4.0",
"@types/d3-sankey": "^0.12.1",
"@types/dompurify": "^3.0.3",
2024-04-23 09:52:44 +02:00
"@types/heatmap.js": "^2.0.41",
"@types/image-blob-reduce": "^4.1.1",
"@types/jest": "^29.5.12",
"@types/jest-image-snapshot": "^6.1.0",
"@types/lodash.merge": "^4.6.9",
"@types/lodash.uniqby": "^4.7.9",
"@types/md5": "^2.3.0",
chore: use pnpm to manage dependencies (closes #12635) (#13190) * chore: use pnpm to manage dependencies * Fix CI errors * Don't report Docker image size for external PRs * Fix pnpm-lock.yaml formatting * Fix module versions * Ignore pnpm-lock.yaml * Upgrade Cypress action for pnpm support * Set up node and pnpm before Cypress * Fix typescript issues * Include patches directory in Dockerfile * Fix Jest tests in CI * Update lockfile * Update lockfile * Clean up Dockerfile * Update pnpm-lock.yaml to reflect current package.json files * remove yarn-error.log from .gitignore * formatting * update data exploration readme * type jest.config.ts * fix @react-hook issues for jest * fix react-syntax-highlighter issues for jest * fix jest issues from query-selector-shadow-dom * fix transform ignore patterns and undo previous fixes * add missing storybook peer dependencies * fix nullish coalescing operator for storybook * reorder storybook plugins * update editor-update-tsd warning to new npm script * use legacy ssl for chromatic / node 18 compatibility * use pnpm for visual regression testing workflow * use node 16 for chromatic * add @babel/plugin-proposal-nullish-coalescing-operator as direct dependency * try fix for plugin-server * cleanup * fix comment and warning * update more comments * update playwright dockerfile * update plugin source types * conditional image size reporting * revert react-native instructions * less restrictive pnpm verions * use ref component name in line with style guide Co-authored-by: Jacob Gillespie <jacobwgillespie@gmail.com>
2022-12-12 10:28:06 +01:00
"@types/node": "^18.11.9",
"@types/papaparse": "^5.3.8",
"@types/pixelmatch": "^5.2.4",
"@types/pngjs": "^6.0.1",
2021-10-14 19:08:39 +02:00
"@types/query-selector-shadow-dom": "^1.0.0",
2023-11-06 14:34:20 +01:00
"@types/react": "^17.0.39",
"@types/react-color": "^3.0.12",
2023-11-06 14:34:20 +01:00
"@types/react-dom": "^18.2.8",
"@types/react-grid-layout": "^1.1.2",
2022-08-11 09:57:24 +02:00
"@types/react-modal": "^3.13.1",
"@types/react-resizable": "^3.0.4",
"@types/react-syntax-highlighter": "^15.5.7",
2023-11-06 14:34:20 +01:00
"@types/react-virtualized": "^9.21.23",
chore: use pnpm to manage dependencies (closes #12635) (#13190) * chore: use pnpm to manage dependencies * Fix CI errors * Don't report Docker image size for external PRs * Fix pnpm-lock.yaml formatting * Fix module versions * Ignore pnpm-lock.yaml * Upgrade Cypress action for pnpm support * Set up node and pnpm before Cypress * Fix typescript issues * Include patches directory in Dockerfile * Fix Jest tests in CI * Update lockfile * Update lockfile * Clean up Dockerfile * Update pnpm-lock.yaml to reflect current package.json files * remove yarn-error.log from .gitignore * formatting * update data exploration readme * type jest.config.ts * fix @react-hook issues for jest * fix react-syntax-highlighter issues for jest * fix jest issues from query-selector-shadow-dom * fix transform ignore patterns and undo previous fixes * add missing storybook peer dependencies * fix nullish coalescing operator for storybook * reorder storybook plugins * update editor-update-tsd warning to new npm script * use legacy ssl for chromatic / node 18 compatibility * use pnpm for visual regression testing workflow * use node 16 for chromatic * add @babel/plugin-proposal-nullish-coalescing-operator as direct dependency * try fix for plugin-server * cleanup * fix comment and warning * update more comments * update playwright dockerfile * update plugin source types * conditional image size reporting * revert react-native instructions * less restrictive pnpm verions * use ref component name in line with style guide Co-authored-by: Jacob Gillespie <jacobwgillespie@gmail.com>
2022-12-12 10:28:06 +01:00
"@types/testing-library__jest-dom": "^5.14.5",
"@types/zxcvbn": "^4.4.0",
"@typescript-eslint/eslint-plugin": "^7.1.1",
"@typescript-eslint/parser": "^7.1.1",
"axe-core": "^4.4.3",
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
"babel-loader": "^8.0.6",
"babel-plugin-import": "^1.13.0",
"concurrently": "^5.3.0",
"css-loader": "^3.4.2",
"cypress": "^13.11.0",
"cypress-axe": "^1.5.0",
"cypress-terminal-report": "^6.1.0",
fix: reduce toolbar bundle size by 60% (#20122) * output analyzable build info for the toolbar * don't use code snippet it adds half a meg * Update UI snapshots for `chromium` (2) * use esbuild visualizer instead * fix * allow treeshaking and remove circular dependency from imports toolbar uses * fix * lint the mjs files at the root of frontend folder * no need to mention lemonui at all * no ned to specify metafile * don't allow posthog-js to sneak into the toolbar * simpler date picker so fewer dependencies * maybe this * like this? * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * ragE * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * too easy to break things this way * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * around the houses * Reset snapshots to master * explain why there's a plugin * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * fix * fix * Update UI snapshots for `webkit` (2) * fix * Update UI snapshots for `webkit` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-02-19 12:39:15 +01:00
"esbuild-visualizer": "^0.6.0",
"eslint": "^8.57.0",
"eslint-config-prettier": "^9.1.0",
"eslint-plugin-compat": "^4.2.0",
2023-10-25 18:13:59 +02:00
"eslint-plugin-cypress": "^2.15.1",
"eslint-plugin-eslint-comments": "^3.2.0",
"eslint-plugin-import": "^2.29.0",
"eslint-plugin-jest": "^28.6.0",
2023-10-26 13:11:38 +02:00
"eslint-plugin-posthog": "link:./eslint-rules",
2023-10-25 18:13:59 +02:00
"eslint-plugin-react": "^7.33.2",
"eslint-plugin-react-hooks": "^4.6.2",
"eslint-plugin-simple-import-sort": "^10.0.0",
"eslint-plugin-storybook": "^0.6.15",
"eslint-plugin-unused-imports": "^3.1.0",
"file-loader": "^6.1.0",
"givens": "^1.3.6",
"history": "^5.0.1",
"html-webpack-harddisk-plugin": "^2.0.0",
"html-webpack-plugin": "^5.5.3",
"jest": "^29.7.0",
"jest-canvas-mock": "^2.4.0",
"jest-environment-jsdom": "^29.3.1",
"jest-image-snapshot": "^6.1.0",
"kea-typegen": "^3.3.0",
"less": "^3.12.2",
"less-loader": "^7.0.2",
"lint-staged": "~10.2.13",
"mockdate": "^3.0.5",
2023-06-12 08:53:54 +02:00
"monaco-editor-webpack-plugin": "^7.0.1",
"msw": "^0.49.0",
Bundle our frontend via esbuild (#6758) * esbuild package * almost get esbuild working * fix react-virtualized imports * add splitting * fix funny import reorder bug * fix squeakAudio referring to itself * write index.html file * fix some bad imports * update antd paths * remove raw-loader usage, it didn't work anyway * refactor and copy public * build app and toolbar * get toolbar working, but without styles * make toolbar and its styles work * shared dashboards * clean frontend build before rebuilding * add watch mode * reorder tasks * revert js url * incremental builds of app with debounced chokidar watching * common build/watch script * improve logs * watch during firrst build * fix toolbar url * fix wrongly exported scene * create sceneProxyLogic to untangle sceneLogic from all bundles * disconnect sceneLogic and refactor setPageTitle * live reloading server * rename utils file * only wait for /static * fix encoding * simplify * add missing dayjs plugins * fix pathless logics * simplify options * add jsx for webapck * slight delay to catch changes * a type is a type * fix build * esbuild in start * funnelLogic path * include all files with a "." (so .mjs, etc) in /frontend/ to docker * rename to "utils.mjs", make "build.mjs" executable * improve erroring * revert some needless changes * more reverts * change some scripts * remove setuff * clarify function * make "--host 0.0.0.0" work * fix import order issue in webpack * remove webpack css inlining for toolbar to simplify config * make toolbar with external styles work in storybook * move live server injection into django * fix undefined bug * simplify setup to work with injection directly in http://localhost:8000 (no proxying needed on :8234) * add comments * Fix `fse` usage I was getting this otherwise: $ node frontend/build.mjs file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46 fse.copySync(srcDir, destDir, { overwrite: true }, function (err) { ^ TypeError: fse.copySync is not a function at copyPublicFolder (file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46:9) at file:///Users/twixes/Developer/posthog/frontend/build.mjs:5:1 at ModuleJob.run (internal/modules/esm/module_job.js:146:23) at async Loader.import (internal/modules/esm/loader.js:165:24) at async Object.loadESM (internal/process/esm_loader.js:68:5) * Mock `process` for VFile used by ReactMarkdown I was getting this otherwise: core.js:55 Uncaught ReferenceError: process is not defined at new VFile (core.js:55) at VFile (core.js:49) at Function.parse (index.js:273) at ReactMarkdown2 (react-markdown.js:42) at renderWithHooks (react-dom.development.js:14803) at mountIndeterminateComponent (react-dom.development.js:17482) at beginWork (react-dom.development.js:18596) at HTMLUnknownElement.callCallback2 (react-dom.development.js:188) at Object.invokeGuardedCallbackDev (react-dom.development.js:237) at invokeGuardedCallback (react-dom.development.js:292) * Mock `process.env` for VFile used by ReactMarkdown I was getting this otherwise: platform.ts:73 Uncaught TypeError: Cannot read properties of undefined (reading 'ENABLE_VSCODE_BROWSER_CODE_LOADING') at platform.ts:73 at platform.ts:79 at Function.r._invokeFactory (loader.js:1118) at r.complete (loader.js:1128) at r._onModuleComplete (loader.js:1754) at r._resolve (loader.js:1714) at r.defineModule (loader.js:1357) at _ (loader.js:1804) at numbers.ts:10 at fake:1 * pass the heavy appScenes to sceneLogic through props via App.tsx * remove sceneProxyLogic * remove exported variables * fix sceneLogic test Co-authored-by: Michael Matloka <dev@twixes.com>
2021-11-03 09:50:24 +01:00
"path-browserify": "^1.0.1",
"pixelmatch": "^5.3.0",
"pngjs": "^6.0.0",
feat(frontend): build `@posthog/lemon-ui` and `@posthog/apps-common` (#10120) * fix dayjs * fix timeouts (we're not strictly speaking running in nodejs) * export unexported type * consolidate on a single FormInstance * no need to rename * fuse * forminstance 2 * locationChanged * BuiltLogic * remove Type.ts exception * fix duh * playing with common apps * playing with common apps * fix some scss deprecations :shrug: * revert * move packages/apps-common * remove compiled json file * build apps-common before other packages * mkdirp, build types before running * build types before the rest * move imports json to packages folder * mark some packages as external, saving 200kb * revert nonsense * remove ant dep * make app source editor types optional for speed * move dev server reloads to utils.mjs * remove webpack start scripts (unused) * refactor build/utils to support various dirs * apps package * revert some stuff * yarn * go back to the old location and commit packages.json in * commit it in * out of scope * fix bad imports * fix some postcss mess * move to @posthog/apps-common * add more stuff to apps * include that in packages.json * simple cjs build * export everything * simplify * make separate package for lemonade * more lemonade * fix jest imports * fix jest imports * yarn as well * src * write types before building * rename lemon-ui, part 1 * add readmes * rename to lemon-ui, part 2 * this app source editor tsd is committed into the repo, so we don't need it before a build
2022-06-10 17:03:06 +02:00
"postcss-loader": "^4.3.0",
"process": "^0.11.10",
"raw-loader": "^4.0.2",
"redis": "^4.6.13",
"safe-stable-stringify": "^2.4.3",
"sass-loader": "^10.0.1",
"storybook": "^7.6.4",
"storybook-addon-pseudo-states": "2.1.2",
"style-loader": "^2.0.0",
"stylelint": "^15.11.0",
"stylelint-config-recess-order": "^4.3.0",
"stylelint-config-standard-scss": "^11.1.0",
"stylelint-order": "^6.0.3",
"sucrase": "^3.29.0",
"timekeeper": "^2.2.0",
"ts-json-schema-generator": "^1.5.0",
chore: use pnpm to manage dependencies (closes #12635) (#13190) * chore: use pnpm to manage dependencies * Fix CI errors * Don't report Docker image size for external PRs * Fix pnpm-lock.yaml formatting * Fix module versions * Ignore pnpm-lock.yaml * Upgrade Cypress action for pnpm support * Set up node and pnpm before Cypress * Fix typescript issues * Include patches directory in Dockerfile * Fix Jest tests in CI * Update lockfile * Update lockfile * Clean up Dockerfile * Update pnpm-lock.yaml to reflect current package.json files * remove yarn-error.log from .gitignore * formatting * update data exploration readme * type jest.config.ts * fix @react-hook issues for jest * fix react-syntax-highlighter issues for jest * fix jest issues from query-selector-shadow-dom * fix transform ignore patterns and undo previous fixes * add missing storybook peer dependencies * fix nullish coalescing operator for storybook * reorder storybook plugins * update editor-update-tsd warning to new npm script * use legacy ssl for chromatic / node 18 compatibility * use pnpm for visual regression testing workflow * use node 16 for chromatic * add @babel/plugin-proposal-nullish-coalescing-operator as direct dependency * try fix for plugin-server * cleanup * fix comment and warning * update more comments * update playwright dockerfile * update plugin source types * conditional image size reporting * revert react-native instructions * less restrictive pnpm verions * use ref component name in line with style guide Co-authored-by: Jacob Gillespie <jacobwgillespie@gmail.com>
2022-12-12 10:28:06 +01:00
"ts-node": "^10.9.1",
"typescript": "~4.9.5",
"webpack": "^5.88.2",
"webpack-cli": "^5.1.4",
"whatwg-fetch": "^3.6.2"
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
},
"optionalDependencies": {
"fsevents": "^2.3.2"
},
"pnpm": {
"overrides": {
"playwright": "1.45.0"
},
"patchedDependencies": {
"rrweb@2.0.0-alpha.13": "patches/rrweb@2.0.0-alpha.13.patch",
"heatmap.js@2.0.5": "patches/heatmap.js@2.0.5.patch",
"dayjs@1.11.11": "patches/dayjs@1.11.11.patch"
}
},
Configure mypy (#562) * server/mypy: Enable no_implicit_optional no_implicit_optional Changes the treatment of arguments with a default value of None by not implicitly making their type Optional. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#none-and-optional-handling * server/mypy: Enable warn_unused_ignores warn_unused_ignores: Warns about unneeded # type: ignore comments. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings It's best to exclude packages with no typing in mypy.ini rather than in the code. This waym if tin the future these packages add types it's can easily be disabled (by removing the exclusion in mypy.ini). * api/user: Fix user password was not really validated * api/test/base: Remove unreachable code Team is created in setup, so no reason for it not to be there (unless setUp is overriden by child, which as far as I can see is currently not happening), * server/mypy: Enable check_untyped_defs check_untyped_defs: Type-checks the interior of functions without type annotations. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#untyped-definitions-and-calls * server/mypy: Enable strict_equality strict_equality: Prohibit equality checks, identity checks, and container checks between non-overlapping types. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#miscellaneous-strictness-flags * server/mypy: Enable warn_unreachable Added a fixme for a possible oversight in function that parses JSON. warn_unreachable: Shows a warning when encountering any code inferred to be unreachable or redundant after performing type analysis. Ref: https://mypy.readthedocs.io/en/stable/config_file.html#configuring-warnings * api/posthog: fix possible bug when batch is not a list Current code assumes batch is a valid list. If batch is not a list, the capture handling will cause a 500 error. * fix stricter mypy * Use response.json instead of .data Co-authored-by: Haki Benita <hakibenita@gmail.com>
2020-04-14 12:05:45 +02:00
"lint-staged": {
"*.{json,yaml,yml}": "prettier --write",
"*.{css,scss}": [
"stylelint --fix",
"prettier --write"
],
"cypress/**/*.{js,jsx,mjs,ts,tsx}": [
"eslint -c .eslintrc.js --fix",
"prettier --write"
],
"frontend/src/**/*.{js,jsx,mjs,ts,tsx}": [
"eslint -c .eslintrc.js --fix",
"prettier --write"
],
fix: reduce toolbar bundle size by 60% (#20122) * output analyzable build info for the toolbar * don't use code snippet it adds half a meg * Update UI snapshots for `chromium` (2) * use esbuild visualizer instead * fix * allow treeshaking and remove circular dependency from imports toolbar uses * fix * lint the mjs files at the root of frontend folder * no need to mention lemonui at all * no ned to specify metafile * don't allow posthog-js to sneak into the toolbar * simpler date picker so fewer dependencies * maybe this * like this? * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * ragE * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * too easy to break things this way * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * around the houses * Reset snapshots to master * explain why there's a plugin * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (1) * Update UI snapshots for `chromium` (2) * Update UI snapshots for `webkit` (2) * Update UI snapshots for `chromium` (2) * fix * fix * Update UI snapshots for `webkit` (2) * fix * Update UI snapshots for `webkit` (2) --------- Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
2024-02-19 12:39:15 +01:00
"frontend/*.mjs": [
"eslint -c .eslintrc.js --fix",
"prettier --write"
],
"ee/frontend/**/*.{js,jsx,mjs,ts,tsx}": [
"eslint -c .eslintrc.js --fix",
"prettier --write"
],
"plugin-server/**/*.{js,jsx,mjs,ts,tsx}": [
"pnpm --dir plugin-server exec eslint --fix",
"pnpm --dir plugin-server exec prettier --write"
],
2023-02-07 17:02:29 +01:00
"!(posthog/hogql/grammar/*)*.{py,pyi}": [
2024-04-19 14:19:10 +02:00
"ruff check --fix",
"ruff format"
]
},
"browserslist": {
"development": [
"last 2 chrome versions",
"last 2 firefox versions",
"last 2 edge versions"
],
"production": [
"defaults and not not op_mini all"
]
Bundle our frontend via esbuild (#6758) * esbuild package * almost get esbuild working * fix react-virtualized imports * add splitting * fix funny import reorder bug * fix squeakAudio referring to itself * write index.html file * fix some bad imports * update antd paths * remove raw-loader usage, it didn't work anyway * refactor and copy public * build app and toolbar * get toolbar working, but without styles * make toolbar and its styles work * shared dashboards * clean frontend build before rebuilding * add watch mode * reorder tasks * revert js url * incremental builds of app with debounced chokidar watching * common build/watch script * improve logs * watch during firrst build * fix toolbar url * fix wrongly exported scene * create sceneProxyLogic to untangle sceneLogic from all bundles * disconnect sceneLogic and refactor setPageTitle * live reloading server * rename utils file * only wait for /static * fix encoding * simplify * add missing dayjs plugins * fix pathless logics * simplify options * add jsx for webapck * slight delay to catch changes * a type is a type * fix build * esbuild in start * funnelLogic path * include all files with a "." (so .mjs, etc) in /frontend/ to docker * rename to "utils.mjs", make "build.mjs" executable * improve erroring * revert some needless changes * more reverts * change some scripts * remove setuff * clarify function * make "--host 0.0.0.0" work * fix import order issue in webpack * remove webpack css inlining for toolbar to simplify config * make toolbar with external styles work in storybook * move live server injection into django * fix undefined bug * simplify setup to work with injection directly in http://localhost:8000 (no proxying needed on :8234) * add comments * Fix `fse` usage I was getting this otherwise: $ node frontend/build.mjs file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46 fse.copySync(srcDir, destDir, { overwrite: true }, function (err) { ^ TypeError: fse.copySync is not a function at copyPublicFolder (file:///Users/twixes/Developer/posthog/frontend/utils.mjs:46:9) at file:///Users/twixes/Developer/posthog/frontend/build.mjs:5:1 at ModuleJob.run (internal/modules/esm/module_job.js:146:23) at async Loader.import (internal/modules/esm/loader.js:165:24) at async Object.loadESM (internal/process/esm_loader.js:68:5) * Mock `process` for VFile used by ReactMarkdown I was getting this otherwise: core.js:55 Uncaught ReferenceError: process is not defined at new VFile (core.js:55) at VFile (core.js:49) at Function.parse (index.js:273) at ReactMarkdown2 (react-markdown.js:42) at renderWithHooks (react-dom.development.js:14803) at mountIndeterminateComponent (react-dom.development.js:17482) at beginWork (react-dom.development.js:18596) at HTMLUnknownElement.callCallback2 (react-dom.development.js:188) at Object.invokeGuardedCallbackDev (react-dom.development.js:237) at invokeGuardedCallback (react-dom.development.js:292) * Mock `process.env` for VFile used by ReactMarkdown I was getting this otherwise: platform.ts:73 Uncaught TypeError: Cannot read properties of undefined (reading 'ENABLE_VSCODE_BROWSER_CODE_LOADING') at platform.ts:73 at platform.ts:79 at Function.r._invokeFactory (loader.js:1118) at r.complete (loader.js:1128) at r._onModuleComplete (loader.js:1754) at r._resolve (loader.js:1714) at r.defineModule (loader.js:1357) at _ (loader.js:1804) at numbers.ts:10 at fake:1 * pass the heavy appScenes to sceneLogic through props via App.tsx * remove sceneProxyLogic * remove exported variables * fix sceneLogic test Co-authored-by: Michael Matloka <dev@twixes.com>
2021-11-03 09:50:24 +01:00
},
"browser": {
"path": "path-browserify"
2020-03-14 15:53:14 +01:00
}
}