* feat: add nextjs middleware handling split
* fix: eslint errors
* fix: filter boolean from csp list
* fix: feature flag nextjs server start
* feat: add prettier rules for ts,tsx files
* fix: remove unnecessary async from next middleware
* fix: next middleware name
* Update tsconfig.json
Co-authored-by: James M. Greene <JamesMGreene@github.com>
* Update next-env.d.ts
Co-authored-by: James M. Greene <JamesMGreene@github.com>
* fix: add typescript linting to lint command
* add comment for unsafe-eval, update webpack to use eval in development
* fix: feature flag typo
Co-authored-by: James M. Greene <JamesMGreene@github.com>
* Use existing 'github' script helper to get Octokit instance
* Move @octokit/rest to devDeps
We only use it in scripts, currently
* Removed outdated delete-unused-staging-apps script
* Upgrade primer to 16
* Upgrade colors in scss
* Get SCSS to build
* Initial dark mode support
* trashcan -> trash
* More specific search browser test
* Fix link color on homepage
* Update overrides.scss
* Upgrade some colors to primer variables
* Hide dark mode support for now
* Apply suggestions from code review
* Update overrides.scss
* Use [node-]redis as a direct dependency
* Extract Redis client creation to its own module
* Attach extensive logging in the Redis client creation module
* Allow the rate limiter to pass requests when Redis is disconnected
* Update rate-limit-redis
* Default error input to empty object for formatRedisError method
* Provide a name for the rate limiter's Redis client
* Include redis-mock, exclude ioredis/ioredis-mock
* Remove unused RedisAccessor#exists method
* Switch RedisAccessor to use redis/redis-mock
* Provide a name for logging on the Redis page cache
* Remove extraneous trailing space from Redis logging prefix
Our updated use of console.* will already be adding a space after the prefix
* Replace ioredis-mock with redis-mock in tests
* Revert removal of ioredis dependency
* Bind Redis client to async promisified methods
* Extract former RedisAccessor constructor tests to new create-client tests
* Update RedisAccessor tests to work with the callback-based redis client
* Handle formatting Redis errors (or not) with more resiliency
* Remove ioredis as a dependency
* Update Redis soft-purging script to use node-redis
* Do more promisifying for less ugly code
* Add comment explaining TTL of -1
* Make the script executable
* Use [node-]redis as a direct dependency
* Extract Redis client creation to its own module
* Attach extensive logging in the Redis client creation module
* Allow the rate limiter to pass requests when Redis is disconnected
* Update rate-limit-redis
* Default error input to empty object for formatRedisError method
* Provide a name for the rate limiter's Redis client
* Include redis-mock, exclude ioredis/ioredis-mock
* Remove unused RedisAccessor#exists method
* Switch RedisAccessor to use redis/redis-mock
* Provide a name for logging on the Redis page cache
* Remove extraneous trailing space from Redis logging prefix
Our updated use of console.* will already be adding a space after the prefix
* Replace ioredis-mock with redis-mock in tests
* Revert removal of ioredis dependency
* Bind Redis client to async promisified methods
* Extract former RedisAccessor constructor tests to new create-client tests
* Update RedisAccessor tests to work with the callback-based redis client
* Handle formatting Redis errors (or not) with more resiliency
- add `script/test-render-translation.js` to render all translated content to catch malformed liquid that would cause render errors
- improve test output for `script/fix-translation-errors.js` and `tests/content/lint-files.js`
- make it so `script/reset-translated-file.js` can handle files that have been renamed
* Use [node-]redis as a direct dependency
* Extract Redis client creation to its own module
* Attach extensive logging in the Redis client creation module
* Allow the rate limiter to pass requests when Redis is disconnected
* Update rate-limit-redis
* Default error input to empty object for formatRedisError method
* Provide a name for the rate limiter's Redis client
Co-authored-by: Kevin Heis <heiskr@users.noreply.github.com>
Co-authored-by: Rachael Sewell <rachmari@github.com>
* Install throng for easy cluster management
* Extract the Express app construction into its own file
* Switch server.js to use app clustering for deployed environments
* Worker count is based on the lesser of process.env.WEB_CONCURRENCY and the count of CPUs
* Reading clustered output is difficult, let's prefix the std{out,err} streams
Co-authored-by: Jason Etcovitch <jasonetco@github.com>
* Add middleware to timeout requests after a period
* Add halt-on-dropped-connection middleware to stop the middleware processing stack if the connection was already dropped
* Add a few strategic bail-out spots for dropped connections during the render-page middleware
* Handle 404s and HEAD requests earlier in the page rendering flow
* Add a few more strategic bail-out spots for dropped connections during the render-page middleware
* Add middleware to notice aborted requests
* Add a check for aborted requests into the isConnectionDropped logic
* Reformat comment for consistency
* Handle aborted requests correctly in the error handler
* Explicit returns for consistency
* Install liquidjs, uninstall liquid
* Comment a bunch of stuff out to get going
* Fix invalid includes
* Fix all includes (path => 'path')
* Get the homepage to render
* Do link-in-list kinda
* Revert "Fix all includes (path => 'path')"
This reverts commit d6fead646353aa5041d9229470a62a1d487456b9.
* Support non-dynamic partials
* Extract getTemplate helper
* Do remaining custom Liquid tags
* Fix some custom tag bugs
* Moar bugs
* Re-add link tag
* Cleaner diff
* Actually fix extended markdown tags
* Fully comment out version matchers
* Smaller diff
* Rely only on Liquid internals for conditionals
* Use new operators option in Liquid engine
* Fix link.js
* Don't need options
* Updoot to the right doot
* Fix some bugs
* Fix another bug
* Pass a test
* Fix the translate bits
* Adjust a test
* Fix another invalid Liquid bug
* Two more borked translations
* Found some more
* Don't need this change
* Revert "Don't need this change"
This reverts commit a916d619747f0492865a69c3e237c97c4d4e7fad.
* This should fix the broken links
* Missed one
* Revert "This should fix the broken links"
This reverts commit e6c2cc0d9055d958706260d57edbe293281c150e.
* Revert "Missed one"
This reverts commit bbe1f23baf16e020f6f7931589decb1afc75dfbd.
* Updoot liquidjs
* Write our plugin
* Include it
* Move the RegEx
* Don't rewriteLocalLinks with cheerio anymore
* Process after HTML ast is generated
* Use the same logic as before, just to see if it'll pass
* Don't require languageCode/version
* Only work on local links
* Needs an href
* Only update href if there's a new one to use
* Check for node.properties
* Some links are just mean
* Move use-english-headings to be a plugin
* Bail if no englishHeadings were passed
* Install rehype-wrap
* Wrap ol > li img in div.procedural-image-wrapper
* Test for platform without cheerio
* Use a plugin for rewriteAssetPathsToS3
* Remove cheerio from page.render
* Fix require paths
* SImplify
* Fix some 🐛s
* Use our own rehype-wrap
* Move rewriteAssetPathsToS3 after HTML AST
* Remove some console logs
* Fix check for includesPlatformSpecificContent
* Rename ast => tree
* Uninstall hubdown, install unified deps
* Create create-processor
* Use it
* Update a doc
* Tweak the language
* Use the same versions that hubdown used