* fix: circular dependency in formHelpers
* fix: circular dependency in Flash
* fix: circular dependency in helpers
* fix: circular dependency in current-challenge-saga (1/2)
* fix: circular dependency in code-lock-epic
* feat: eslint rule for circular dependencies
* fix: circular dependency in tools
* fix: import error and more circular dependencies in formHelpers
* fix prettier error
* fix: circular dependency in danger-zone-saga
* fix: circular dependency in update-email-saga
* fix: circular dependency in settings-saga
* fix: circular dependency in accept-terms-saga
* fix: circular dependency in codeally-saga
TODO: make a separate file for selectors
* fix: ci lint error
* fix: ci lint:prettier error
* fix: circular dependency in current-challenge-saga
* fix: cricular dependency in Challenges/redux
* fix: circular dependency in redux/settings
* fix: circular dependency in root redux
* fix: lint errors
* chore: remove unecessary comment
* chore: remove unused export
* fix: clear out actions and selectors
* revert changes to package.json
* test ci with maxDepth of 1
* fix: fallback to empty object
* test action if it will run for maxDepth of 2
* refactor: light tweaks for readability
* refactor: simplify metadata functions
* fix: most tests
* test: fix utils tests
* test: simplify mocks
* WIP: update get-last-step-file-content
* feat: finish create-next-step
* fix: type error
* test: provide mock meta.json for test
* refactor: get meta path from project path
* refactor: get project name from path
* refactor: simplify getProjectMetaPath further
Also removes some excessive mocking
* refactor: remove more mocks, always clear .env
* feat: update create-next-step
* feat: update create-empty steps
Also refactors slightly, so it's easier to insert steps into the meta
* docs: update challenge-helper-script docs
* feat: create-step-between
* refactor: allow metadata parse errors to propagate
* fix: convert reorderSteps to renameSteps
* refactor: create-step-between -> insert-step
* feat: update delete-step
* refactor: consolidate commands into commands.ts
* refactor: clean up and consolidation
* refactor: more cleanup
* fix: make cli args consistent
Everything accepts a single integer and nothing else
* refactor: renameSteps -> updateStepTitles
* docs: update with the names and args
* feat: add step validating meta + files are synced
* feat: allow more 1000 steps to be created at once
* refactor: start migrating to typescript
* refactor: delete-step to ts
* refactor: migrated some helpers
* refactor: migrate create-empty-steps
* refactor: migrate create-step-between
* refactor: finish migrating to TS
* refactor: migrate tests
* fix: ensure mock.restore is done after each test
* fix: prevent double-tscing
* fix: repair the tests
* chore: use ts-node for scripts
We don't need the performance boost of incremental compilation and
ts-node is easier to work with
* refactor: consolidate tsconfigs
* refactor: replace gulp
* fix: use ts-node for build-curriculum
* fix: allow ts compilation of config
* feat: create and use create:config script
* fix: add /config to eslint projects
* fix: remove gulp script