**What**
- add support for specifying sales channel with import strategy
- additional:
- refactor SC service to use `retrieve_` pattern
- fix: pass arguments from `startServerWithEnvironment` to setup server
- fix: minio undefined resolve/reject calls
- fix: csv parser - detect missing columns from schema only if the column is required
**How**
- extending schema to expect sales channels columns in an import CSV file
RESOLVES CORE-304
* init: copy PI files
* feat: add subscribers, refactor strategies folder
* wip: strategies integration tests package
* fix: rename
* wip: use redis
* wip: use redis deps, redis setup in local tests
* fix: naming collision, medusa config
* fix: typing, update apply changes for new event ordering and reimplement interface
* feat: make redis container run in integration tests
* fix: missing yarn lock
* feat: redis setup v2
* fix: setup server imports
* fix: a lot of integration issues
* fix: a lot of integration issues v2, transform tags, fix `ops` object parsing
* wip: parsing product options
* feat: ✨creating product and variants works, processing product/variant options, update schema
* fix: query keys, logic for finding existing variant
* fix: types
* feat: update product variant's options
* feat: parse MA records
* feat: creating/updating MA records, region detection, error handling
* feat: throw an error when creating an MA for nonexistent region
* refactor: remove unused methods
* refactor: use provided ids to track records, extract a couple of methods
* refactor: remove unused method
* refactor/wip: add initial comment for main methods
* refactor: replace usage of RedisJSON functionality with basic k/v api
* feat: async progress report
* types: define more precise types, cleanup
* feat: error handling
* feat: unit testing preprocessing
* feat: integration testing for CI, fix legacy bug where user is unable to create a variant if regional price is also sent as payload, add csv for integration tests
* fix: error throw for logs
* feat: add product endpoint snap
* refactor: remove log
* feat: add snaps, rebase
* refactor: add comments
* feat: snap update
* refactor: typo
* refactor: change error handler
* feat: Redis cleanup after the job is done
* testing :fix product unit test, remove integration snap, add inline object matcher
* testing: fix obsolete snaps
* refactor: update comments
* fix: rebase issue
* fix: rebase issue v2, remove log form an integration test
* fix: try reverting setup server
* fix: insert variants test
* refactor: don't pass tx manager, refactor methods
* refactor: don't use regionRepo, add `retrieveByName` to region repo
* refactor: don't use productRepo
* refactor: don't use `productVariantRepo`
* refactor: remove repo mocks from unit tests
* fix: product import unit tests
* feat: file cleanup on finalize, kill test logs
* wip: use files to persist ops instead of redis, move strategy class into `batch-job` folder
* fix: minio delete method, add file cleanup method to import, fix promise coordination
* fix: replace redis methods
* feat: store import ops as a file instead of Redis
* feat: test cleanup
* fix: change unit tests after Redis logic removal
* feat: use `results` for progress reporting, add `stat_descriptors` info after preprocessing, remove redis mentions
* feat: extract to other files, use directory from property, fix strategy loader to allow other files in `strategies` directory
* feat: fix instance progress counter
* fix: mock services types
* fix: update snaps
* fix: error handling stream, fix test file service name generation
* fix: remove dir with tmp files after testing
* fix: new yarn.lock after rebase
* fix: remove log, change object shape
* fix: add DI types
* refactor: remove container as a csv parser dep
* fix: remove seeder, change typings
* refactor: reimplement `retrieveByName` in the region service
* fix: unit tests typings
* fix: remove ts-ignore, complete typings for csv parser validators
* fix: don't keep track of progress since it is redundant and only keep track of `advancement_count`
* fix: return of the batch job seeder
* fix: update find region by name method
* fix: update types for service typings
* fix: update redis type usage
* fix: update unit tests file
* fix: unit tests
* fix: remove redis from integration test
* feat: refactor region retrieval by name
* feat: refactor product option update
* fix: remove repo import
* fix: return redis in test
* fix: handle stream error
* fix: tmp data cleanup
Co-authored-by: fPolic <frane@medusajs.com>
**What**
- Add `transformQuery` to get endpoints for product, order and cart
- ensure that the default relations (when getting a singular entity) includes sales channels when enabled
- Add `EmptyQueryParams` class in common types to prevent query parameters while using `transformQuery`
- update product-, order- and cartFactory to include sales channels if provided
- remove `packages/medusa/src/controllers/products/admin-list-products.ts`
**Testing**
- expands sales channel for single order
- expands sales channels for orders with expand parameter
- returns single product with sales channel
- expands sales channels for products with expand parameter
- returns cart with sales channel for single cart
Fixes CORE-293
Co-authored-by: Sebastian Rindom <7554214+srindom@users.noreply.github.com>
Co-authored-by: Adrien de Peretti <25098370+adrien2p@users.noreply.github.com>
* feat: add feature flag loading in projects
* fix: make feature flag consume itself
* fix: rename container registration to featureFlagRouter
* fix: refactor
* behavioral feature flags
* add environment to server
* limit "useTemplateDb" to non feature flagged migrations
* filter migrations and entities according to those which are enabled in the environment
* run only migrations that are enabled when running 'medusa migrations run'
* add logging to the featureflag loader
* initial implementation of featureFlagEntity
* column descriptors
* initial startServerWithEnv (to be refactored)
* update commands
* final touches
* update loaders to fix unit tests
* enable all batch job tests
* update seed method
* add api test capabilities
* revert batch job test
* revert formatting changes
* pr feedback
* pr feedback
* remove unused imports
* rename feature flag decorators
* pr feedback
Co-authored-by: Sebastian Rindom <skrindom@gmail.com>
* Modifies schema to allow SQLite as a DB driver. SQLite is preinstalled in most OSes allowing for minimal prerequisites in the installation process.
* Removes Redis dependency and replaces "real" redis instance with ioredis-mock this is not feature complete and errors are expected.
* Updates medusa new command to only ask for Postgres credentials if the starter template has database_type === "postgres" in medusa-config.js
* Small improvements to bin resolution
* Improvements to endpoint stability
- Adds a context field to Cart
- context is automatically populated with ip + user agent
- context can be updated via POST /store/cart/:id or set when creating via POST /store/cart