2020-04-21 17:49:52 -07:00
{
"name" : "impress-2020-app" ,
"version" : "0.1.0" ,
"private" : true ,
"dependencies" : {
2022-08-16 23:27:30 -07:00
"@apollo/client" : "^3.6.9" ,
2020-04-22 14:02:23 -07:00
"@apollographql/graphql-playground-html" : "^1.6.24" ,
2020-09-02 03:06:09 -07:00
"@auth0/auth0-react" : "^1.0.0" ,
2022-09-24 12:44:13 -07:00
"@aws-sdk/client-s3" : "^3.178.0" ,
2021-02-02 16:00:49 -08:00
"@chakra-ui/icons" : "^1.0.4" ,
2021-04-30 12:48:03 -07:00
"@chakra-ui/react" : "^1.6.0" ,
2021-02-02 16:00:49 -08:00
"@chakra-ui/theme-tools" : "^1.0.3" ,
2020-12-25 09:07:59 -08:00
"@emotion/react" : "^11.1.4" ,
"@emotion/styled" : "^11.0.0" ,
2020-05-18 00:11:18 -07:00
"@loadable/component" : "^5.12.0" ,
2020-10-09 08:55:03 -07:00
"@sendgrid/mail" : "^7.2.6" ,
2021-01-16 10:59:54 -08:00
"@sentry/react" : "^5.30.0" ,
"@sentry/tracing" : "^5.30.0" ,
2020-04-21 17:49:52 -07:00
"@testing-library/jest-dom" : "^4.2.4" ,
"@testing-library/react" : "^9.3.2" ,
"@testing-library/user-event" : "^7.1.2" ,
2021-02-02 21:38:57 -08:00
"@types/node" : "^14.14.22" ,
"@types/react" : "^17.0.1" ,
"@types/react-dom" : "^17.0.0" ,
2020-05-14 15:51:08 -07:00
"apollo-link-persisted-queries" : "^0.2.2" ,
2021-11-26 14:45:08 -08:00
"apollo-server" : "^2.25.3" ,
2023-08-30 15:13:33 -07:00
"apollo-server-core" : "^3.12.1" ,
2021-02-02 19:07:38 -08:00
"apollo-server-env" : "^3.0.0" ,
2021-11-26 14:47:07 -08:00
"aws-sdk" : "^2.814.0" ,
2021-01-03 20:16:48 -08:00
"canvas" : "^2.6.1" ,
2021-08-19 16:12:12 -07:00
"chrome-aws-lambda" : "^10.1.0" ,
2020-04-22 13:03:32 -07:00
"dataloader" : "^2.0.0" ,
2020-10-28 00:00:14 -07:00
"dompurify" : "^2.2.0" ,
Bundle CreateJS, instead of loading async
So I finally started looking into the race condition that makes item previews sometimes fail to load, and as expected, it was that we were trying to load the movie before CreateJS had necessarily loaded. Usually the timing worked out, esp after a reload, but not under certain circumstances!
Anyway, I've been wanting for a while to just bundle them instead. That'll help us more eagerly load them when we need them, and not depend on external CDNs, and remove a bunch of loading state!
So yeah, I had to learn how the `easeljs` and `tweenjs` NPM packages did their bundling, and how to use `imports-loader` to let them just register straight onto `window`! But we got there and it's pretty nice tbh!
2021-06-16 18:00:25 -07:00
"easeljs" : "^1.0.2" ,
2021-05-14 19:51:48 -07:00
"escape-html" : "^1.0.3" ,
2021-04-30 12:48:03 -07:00
"framer-motion" : "^4.1.11" ,
2021-11-12 23:35:05 -08:00
"generic-pool" : "^3.8.2" ,
2021-02-02 19:07:38 -08:00
"graphql" : "^15.5.0" ,
2021-08-07 23:13:52 -07:00
"honeycomb-beeline" : "^2.7.4" ,
2021-09-02 18:34:24 -07:00
"immer" : "^9.0.6" ,
2020-08-04 18:39:31 -07:00
"jimp" : "^0.14.0" ,
2020-09-02 23:00:16 -07:00
"jsonwebtoken" : "^8.5.1" ,
"jwks-rsa" : "^1.9.0" ,
LRU caches to speed up outfit layer preload
The layer preloader already takes advantage of, and primes, the HTTP cache.
But we still do duplicate work, on every OutfitPreview render, to re-execute movie clip libraries, and create a movie clip to test for animations. The former is nontrivial cost, and the latter is often large cost. This can make even basic outfit changes slow, when there's no change to the movie clip layers and the player is paused!
Here, we add an LRU cache for movie clip libraries, and for the question of "is it animated?". This should speed up a number of places where we would reload the movie (including between toggling the item), and various changes that were triggering full movie clip rebuilds unnecessarily.
We _aren't_ solving here for the fact that toggling an animated item requires rebuilding the movie clip, which could conceivably be cached—but with some state management trickiness, because ideally it should be a separate clip for each context where it's being shown. Imo not yet worth the effort! (esp because I think users understand that toggling an animated item can be slow, whereas this was affecting _other_ actions way too much)
2021-04-16 20:16:56 -07:00
"lru-cache" : "^6.0.0" ,
2020-04-22 13:03:32 -07:00
"mysql2" : "^2.1.0" ,
[WIP] Run cra-to-next codemod to be on Nextjs
I'm interested in ejecting from Vercel, so I'm trying to get off their proprietary-ish create-react-app + Vercel API thing, and onto Nextjs, which is very similar in shape, but more portable.
I had to disable `craCompat` in `next.config.js` to stop us from crashing on their webpack config, see https://github.com/vercel/next.js/discussions/25858#discussioncomment-1573822
The frontend seems to work at a basic level, but network requests fail, and images don't seem to be working. I'll work on those next!
Note that this commit was forced through despite failing lint checks. We'll need to fix that up too!
Also, after the codemod, I moved `src/pages` to the more canonical location `pages`. Lint tooling seemed surprised to not find a `pages` directory, and I didn't see a config that was making it work correctly in the other location, so I figured it's that Next is willing to check `pages` or `src/pages`? But this is more canonical so yeah!
2021-11-01 21:48:09 -07:00
"next" : "12.0.2" ,
2020-04-25 06:50:34 -07:00
"node-fetch" : "^2.6.0" ,
2021-11-13 02:16:58 -08:00
"puppeteer" : "^11.0.0" ,
2020-12-28 14:07:03 -08:00
"react" : "^17.0.1" ,
2020-09-01 17:59:04 -07:00
"react-autosuggest" : "^10.0.2" ,
2020-12-28 14:07:03 -08:00
"react-dom" : "^17.0.1" ,
2021-03-29 19:46:21 -07:00
"react-icons" : "^4.2.0" ,
2021-06-12 04:45:23 -07:00
"react-router-hash-link" : "^2.4.3" ,
2020-10-22 23:22:04 -07:00
"react-transition-group" : "^4.3.0" ,
2021-06-19 12:36:19 -07:00
"react-virtualized" : "^9.22.3" ,
2021-11-02 01:00:52 -07:00
"sharp" : "^0.29.2" ,
2020-10-28 00:00:14 -07:00
"simple-markdown" : "^0.7.2" ,
Bundle CreateJS, instead of loading async
So I finally started looking into the race condition that makes item previews sometimes fail to load, and as expected, it was that we were trying to load the movie before CreateJS had necessarily loaded. Usually the timing worked out, esp after a reload, but not under certain circumstances!
Anyway, I've been wanting for a while to just bundle them instead. That'll help us more eagerly load them when we need them, and not depend on external CDNs, and remove a bunch of loading state!
So yeah, I had to learn how the `easeljs` and `tweenjs` NPM packages did their bundling, and how to use `imports-loader` to let them just register straight onto `window`! But we got there and it's pretty nice tbh!
2021-06-16 18:00:25 -07:00
"tweenjs" : "^1.0.2" ,
2023-08-29 14:40:59 -07:00
"typescript" : "^4.4.4"
2020-04-21 17:49:52 -07:00
} ,
"scripts" : {
2021-05-04 18:46:02 -07:00
"prepare" : "husky install" ,
2021-11-03 16:46:35 -07:00
"start" : "next start" ,
2022-11-13 09:09:36 -08:00
"dev" : "DB_ENV=development yarn build-cached-data && DB_ENV=development REACT_APP_IMPRESS_LOG_IN_AS=$IMPRESS_LOG_IN_AS TS_NODE_COMPILER=typescript-cached-transpile next dev" ,
"local-prod" : "DB_ENV=production yarn build-cached-data && DB_ENV=production REACT_APP_IMPRESS_LOG_IN_AS=$IMPRESS_LOG_IN_AS TS_NODE_COMPILER=typescript-cached-transpile next dev" ,
[WIP] Run cra-to-next codemod to be on Nextjs
I'm interested in ejecting from Vercel, so I'm trying to get off their proprietary-ish create-react-app + Vercel API thing, and onto Nextjs, which is very similar in shape, but more portable.
I had to disable `craCompat` in `next.config.js` to stop us from crashing on their webpack config, see https://github.com/vercel/next.js/discussions/25858#discussioncomment-1573822
The frontend seems to work at a basic level, but network requests fail, and images don't seem to be working. I'll work on those next!
Note that this commit was forced through despite failing lint checks. We'll need to fix that up too!
Also, after the codemod, I moved `src/pages` to the more canonical location `pages`. Lint tooling seemed surprised to not find a `pages` directory, and I didn't see a config that was making it work correctly in the other location, so I figured it's that Next is willing to check `pages` or `src/pages`? But this is more canonical so yeah!
2021-11-01 21:48:09 -07:00
"build" : "yarn build-cached-data && next build" ,
2021-01-03 22:58:09 -08:00
"vercel-build" : "yum install libuuid-devel libmount-devel && cp /lib64/{libuuid,libmount,libblkid}.so.1 node_modules/canvas/build/Release/" ,
[WIP] Run cra-to-next codemod to be on Nextjs
I'm interested in ejecting from Vercel, so I'm trying to get off their proprietary-ish create-react-app + Vercel API thing, and onto Nextjs, which is very similar in shape, but more portable.
I had to disable `craCompat` in `next.config.js` to stop us from crashing on their webpack config, see https://github.com/vercel/next.js/discussions/25858#discussioncomment-1573822
The frontend seems to work at a basic level, but network requests fail, and images don't seem to be working. I'll work on those next!
Note that this commit was forced through despite failing lint checks. We'll need to fix that up too!
Also, after the codemod, I moved `src/pages` to the more canonical location `pages`. Lint tooling seemed surprised to not find a `pages` directory, and I didn't see a config that was making it work correctly in the other location, so I figured it's that Next is willing to check `pages` or `src/pages`? But this is more canonical so yeah!
2021-11-01 21:48:09 -07:00
"test" : "jest test --env=jsdom" ,
2021-11-01 22:07:38 -07:00
"lint" : "next lint --dir src --dir pages" ,
2021-11-03 23:04:25 -07:00
"deploy-setup" : "echo $'Setup requires you to become the root user. You\\'ll need to enter the password for your account on the remote web server below, and you must be part of the `sudo` user group.' && ansible-playbook -K -i deploy/inventory.cfg deploy/playbooks/setup.yml" ,
2021-11-02 16:29:52 -07:00
"deploy" : "ansible-playbook -i deploy/inventory.cfg deploy/playbooks/deploy.yml" ,
2021-11-02 18:47:13 -07:00
"deploy-skip-build" : "ansible-playbook -i deploy/inventory.cfg deploy/playbooks/deploy.yml --extra-vars='{\"skip_build\": true}'" ,
2020-08-11 22:07:56 -07:00
"mysql" : "mysql --host=impress.openneo.net --user=$(dotenv -p IMPRESS_MYSQL_USER) --password=$(dotenv -p IMPRESS_MYSQL_PASSWORD) --database=openneo_impress" ,
2022-09-13 20:39:45 -07:00
"mysql-dev" : "mysql --host=localhost --user=impress_2020_dev --password=impress_2020_dev --database=openneo_impress" ,
2020-08-17 18:23:39 -07:00
"mysql-admin" : "mysql --host=impress.openneo.net --user=matchu --password --database=openneo_impress" ,
2022-09-13 00:00:54 -07:00
"mysqldump" : "mysqldump --host=impress.openneo.net --user=$(dotenv -p IMPRESS_MYSQL_USER) --password=$(dotenv -p IMPRESS_MYSQL_PASSWORD)" ,
2020-09-18 05:24:03 -07:00
"setup-mysql" : "yarn mysql-admin < scripts/setup-mysql.sql" ,
2022-09-13 20:39:45 -07:00
"setup-mysql-dev" : "yarn mysql-dev < scripts/setup-mysql-dev-constants.sql && yarn mysql-dev < scripts/setup-mysql-dev-schema-impress.sql && yarn mysql-dev --database=openneo_id < scripts/setup-mysql-dev-schema-id.sql" ,
2022-12-22 18:44:47 -08:00
"run-script" : "ts-node --compiler=typescript-cached-transpile --transpile-only -r dotenv/config" ,
2022-09-24 10:33:16 -07:00
"build-cached-data" : "yarn run-script scripts/build-cached-data.js" ,
"cache-asset-manifests" : "yarn run-script scripts/cache-asset-manifests.js" ,
"delete-user" : "yarn run-script scripts/delete-user.js" ,
"export-users-to-auth0" : "yarn run-script scripts/export-users-to-auth0.js" ,
2022-10-11 11:13:10 -07:00
"model-needed-items" : "yarn run-script scripts/model-needed-items.js" ,
2022-09-24 10:33:16 -07:00
"validate-owls-data" : "yarn run-script scripts/validate-owls-data.js" ,
2022-09-24 13:18:40 -07:00
"aws" : "AWS_ACCESS_KEY_ID=$(dotenv -p ARCHIVE_STORAGE_READWRITE_ACCESS_KEY) AWS_SECRET_ACCESS_KEY=$(dotenv -p ARCHIVE_STORAGE_READWRITE_SECRET_KEY) aws --endpoint=https://$(dotenv -p ARCHIVE_STORAGE_HOST)" ,
2022-10-13 16:07:12 -07:00
"archive:full" : "yarn archive:prepare:full && yarn archive:create:full && yarn archive:upload:full" ,
"archive:delta" : "yarn archive:prepare:delta && yarn archive:create:delta && yarn archive:upload:delta" ,
"archive:prepare:full" : "yarn run-script scripts/archive/prepare/full.js" ,
"archive:prepare:remote" : "dotenv -- ./scripts/archive/prepare/remote.sh" ,
"archive:prepare:delta" : "dotenv -- ./scripts/archive/prepare/delta.sh" ,
"archive:create:full" : "dotenv -- ./scripts/archive/create/full.sh" ,
"archive:create:delta" : "dotenv -- ./scripts/archive/create/delta.sh" ,
"archive:upload:full" : "dotenv -- ./scripts/archive/upload/full.sh" ,
"archive:upload:delta" : "dotenv -- ./scripts/archive/upload/delta.sh" ,
2022-11-13 07:03:35 -08:00
"archive:upload:test" : "dotenv -- ./scripts/archive/upload/test.sh" ,
"db:export:schema" : "./scripts/db/export/schema.sh" ,
"db:export:public-data" : "./scripts/db/export/public-data.sh" ,
"db:setup-dev:minimal" : "./scripts/db/setup-dev/minimal.sh" ,
2022-11-13 09:09:36 -08:00
"db:setup-dev:full" : "./scripts/db/setup-dev/full.sh" ,
"hmm" : "echo $FOO" ,
"hmmm" : "yarn hmm"
2020-04-21 17:49:52 -07:00
} ,
"browserslist" : {
"production" : [
">0.2%" ,
"not dead" ,
"not op_mini all"
] ,
"development" : [
"last 1 chrome version" ,
"last 1 firefox version" ,
"last 1 safari version"
]
2020-04-21 20:32:53 -07:00
} ,
"devDependencies" : {
2021-02-02 22:25:54 -08:00
"5to6-codemod" : "^1.8.0" ,
2021-11-01 22:07:38 -07:00
"@typescript-eslint/eslint-plugin" : "^5.3.0" ,
"@typescript-eslint/parser" : "^5.3.0" ,
2020-04-22 13:03:32 -07:00
"apollo-server-testing" : "^2.12.0" ,
2020-09-02 15:26:33 -07:00
"auth0" : "^2.28.0" ,
2020-04-30 00:01:49 -07:00
"dotenv-cli" : "^3.1.0" ,
2020-08-17 18:23:39 -07:00
"es6-promise-pool" : "^2.5.0" ,
[WIP] Run cra-to-next codemod to be on Nextjs
I'm interested in ejecting from Vercel, so I'm trying to get off their proprietary-ish create-react-app + Vercel API thing, and onto Nextjs, which is very similar in shape, but more portable.
I had to disable `craCompat` in `next.config.js` to stop us from crashing on their webpack config, see https://github.com/vercel/next.js/discussions/25858#discussioncomment-1573822
The frontend seems to work at a basic level, but network requests fail, and images don't seem to be working. I'll work on those next!
Note that this commit was forced through despite failing lint checks. We'll need to fix that up too!
Also, after the codemod, I moved `src/pages` to the more canonical location `pages`. Lint tooling seemed surprised to not find a `pages` directory, and I didn't see a config that was making it work correctly in the other location, so I figured it's that Next is willing to check `pages` or `src/pages`? But this is more canonical so yeah!
2021-11-01 21:48:09 -07:00
"eslint" : "<8.0.0" ,
"eslint-config-next" : "12.0.2" ,
2021-05-04 18:46:02 -07:00
"husky" : "^6.0.0" ,
2021-06-16 18:28:40 -07:00
"imports-loader" : "^1.2.0" ,
2020-09-02 03:49:58 -07:00
"inquirer" : "^7.3.3" ,
2021-01-03 19:57:02 -08:00
"jest-image-snapshot" : "^4.3.0" ,
2021-05-04 18:46:02 -07:00
"lint-staged" : "^10.5.4" ,
2020-07-22 21:03:04 -07:00
"prettier" : "^2.0.5" ,
2021-02-02 21:38:57 -08:00
"react-is" : "^16.13.1" ,
2021-02-02 22:25:54 -08:00
"ts-node" : "^9.1.1" ,
2022-01-07 18:06:46 -08:00
"typescript-cached-transpile" : "^0.0.6" ,
"yargs" : "^17.3.1"
2020-04-21 17:49:52 -07:00
}
}