Guide to packaging Q-CTRL software
Q-CTRL has two types of packages:
All packages MUST be packaged the same way for each language to ensure consistency and auditability.
All npm packages should support ESM, CJS and UMD, this allows our package to be consumed by numerous different consumers. ESM should be the preferred method of module choice for most applications for its simple sugar syntax (imports & exports), tree-shakeability to reduce app bundle size, improved asyncronous code and progressive web support allowing apps to decide on the right level of polyfilling.