package.jsons are changed because dependencies are now sorted
tsconfig.jsons are changed because all referenced monorepo packages will
be added as project references
tsconfig.esm.jsons are changed because syncEsmConfig was run
As seen in TeamService2.ts, the Contextual type will add Context as the
last argument to any method of the interface, as long as the method has
0-4 arguments.
Interfaces with more than 4 arguments cannot use this type, but they
could be converted to interfaces which use 1 argument
(object/dictionary) only.
Some long-term thinking: Maybe only methods with a single argument
should be supported, similar to the way gRPC does it.
TypeScript compiler needs to be configured to output ES6 module by
setting --module es6 or the equivalent tsconfig.json compilerOptions
parameter.
Since tsc --build does not accept compiler options flags, we need to
duplicate some of the configuration:
- specify separate output folder for ES6 module files (new
tsconfig.esm.json file)
- add "module" field for ES6 module (esm) output files to package.json
Hence, a script `scripts/sync-esm-config.js` was added to automate this
process.