- moved to node >= 22
- moved to native node test runner
- Updated dependencies
- Updated
package.jsonengines.nodeproperty to reflect changes from v4
- Updated dependencies
- Fixed
MaxListenersExceededWarningif npm or another package manager resolves many different versions of Utils on the filesystem
- Updated
aws-lite
- Added
checkCredsmethod for manually performing basic AWS credential checks
- Initializing the Architect banner is significantly faster, as it no longer has any interactions with
aws-sdk - Breaking change: banner initialization no longer has any direct responsibility for credential checking
- Related: banner initialization no longer mutates
AWS_PROFILE, or usesARC_AWS_CREDSas a signal to other modules about credential loading - Modules relying on the banner for credential-related operations must review the changes and refactor accordingly
- Related: banner initialization no longer mutates
- Banner initialization no longer utilizes
disableRegionordisableProfileparams when printing - Transitioned from
aws-sdktoaws-lite - Added Node.js 20.x to test matrix
- Breaking change: removed support for Node.js 14.x (now EOL, and no longer available to created in AWS Lambda)
- Updated dependencies
- Fixed static asset fingerprinting in Windows
- Updated deps
- Updated deps
- Fix
toLogicalIDto ensures the passed value is coerced to a string
- Guard against invalid credentials file without default profile; thanks @stuartlangridge!
- Added
deepFrozenCopymethod
- Stop publishing to the GitHub Package registry
- Updated deps
- Ensure multi-line error messages passed to
updater.errordo not double print
- Updated deps
- Added
quietparam tobanner(instead of relying solely onARC_QUIETorQUIETenv vars)
- Updated dependencies
- Breaking change: removed support for Node.js 10.x (now EOL, and no longer available to created in AWS Lambda) and Node.js 12.x
- Removed support for Architect 5 (and lower)
- Updated dependencies
- Updated dependencies
- Accept
cwdparam inbannerinstead of solely relying onprocess.cwd()
- Fixed
updatertruncated color escape sequence, return correct log data inupdater.start()
- Added log levels to
updater:- Pass it a
logLevelparam with one ofnormal(default),verbose, ordebug verboseoutputs logs at its level andnormal;debugoutputs logs at all levels- The
quietboolean flag still suppresses writing tostdout, but all relevant log data is still collected by the updater log buffer (seeget()+reset()below)
- Pass it a
- Added
updater.get(), which returns the captured log buffer - Added
updater.reset()(andupdater.clear()alias) to clear the captured log buffer
getLambdaNamenow sanitizes backslash characters to hyphens
- Add
updater.raw(), a console.log passthrough that respects Architect quietude
- Updated
updatertests
- Fixed fingerprinter when called on an app that doesn't have
inv.static
- Updated deps
- Updated deps
- Fingerprint no longer generates a static folder (and exits early) if not found
- Refactored
fingerprintandbannerto require an Inventory object - Removed methods that are now the responsibility of Inventory:
fingerprint.configgetLayersgetRuntimeinventoryreadreadArcvalidate
- Removed methods no longer in active use by any Architect projects:
initEnvportInUse
updatererrors now include stack traces
updatererrors can no longer be quieted – errors are important!
- Updated
fingerprintglob path to be *nix normalized
- Add
@http*catchall syntax support togetLambdaName
- Fixed issue where
updatermight not get the latest state ofARC_QUIETduring a long-lived process
- Fixed issue where
updatermight occasionally interfere with certain test reporter outputs
- Fix exit condition of fingerprinter when no files are found
- Adds support for
@static fingerprint external
- Removed
mkdirpin favor of Node.js >= 10.xmkdirrecursive
- Fixes
@static fingerprint ignorewith more recent versions of Architect Parser
- Adds
dotnetcore3.1support for Lambda, fixes #794 - Instead of the scary red x,
updater.warnnow uses a warning character
- Adds
ruby2.7support for Lambda, fixes #794
- Should now restore cursor more reliably when a user quits any workflow that's using
updater
- Inventory correctly reports custom websocket routes, thanks @mawdesley!
- Updated dependencies
- Replaced
readArcmethod with@architect/parser.readArc, returns a default Architect project if one is not found in the root of the working directory
- Fixed AWS credential instantiation to ensure that
AWS_ACCESS_KEY_IDandAWS_SECRET_ACCESS_KEYenv vars are backfilled with dummy values in scenarios where valid credentials are not required
- Added support for
denoingetRuntimemethod
- Updated dependencies
- Adds better support for quiet mode in
banner+updaterwithARC_QUIETand legacyQUIETenv vars
- Updated
getRuntimedefault runtime tonodejs12.x(however, this code path is likely inactive)
- Handle credentials in the canonical way while still allowing
profileandregionoverrides in arc config; thanks @defionscode!
- Revert dependency
- Allow local cred file to be overriden by env vars by specifying
ARC_AWS_CREDS=env
- AWS credentials can now be loaded via env vars (
AWS_ACCESS_KEY_ID,AWS_SECRET_ACCESS_KEY)- Thus, Architect no longer requires a
~/.aws/credentialsfile to run - Also added AWS session token support via setting
AWS_SESSION_TOKENenv var - Fixes #26; thanks @ryan-roemer!
- Thus, Architect no longer requires a
- Credentials are now properly backfilled with dummy values for banner callers setting
needsValidCreds, ensuring that certain Architect operations (such as local Sandbox usage) won't crash without a valid~/aws.credentialsfile present
- Adds better backwards compatibility support in
inventoryfor legacysrc/ws/ws-*paths
- Added support for new Lambda runtimes!
nodejs12.x,python3.8, andjava11
initis now its own standalone project! It can be found at@architect/create- As such, init is now retired and removed from
utils - Updated dependencies
- Fixed printing of unnecessary ANSI escape characters in CI environments (
CIenv, or not TTY output)
- Fixes correct inventory paths for
src/ws/*, which should in turn fix WebSocket function hydration
- Added support for
@static foldertofingerprint
- Updated dependencies
updaternow accepts params object, including{quiet: true}, which completely disables console printingupdater.statuscan now be passed a null first param, which only outputs a multi-line supporting status update
- Better isolation of
updatermethods that require TTY, so as to prevent potential boogs
updater.statuscancels progress
updatermethods now returns whatever they're printing (should you need to capture status)- Added tests for
updater
updaternow always hides the cursor during updating- Internal changes to
updaterprinter API
- Updates boilerplate init templates for functions and static assets
- Internal change to
update.done()
- Added
@viewspragma to inventory - Added optional
updater.done()confirmation message - Calling banner in Arc 5 sets
deprecatedenv var
- Adds
updater(): an Arc-standardized console status updater and animated progress indicator - Adds credential initialization fallback routine to
initAWS()
- Massively prettifies the boilerplate static site created by
init()
- Added ability to directly access Arc and AWS initializer utils (
initArc(),initAWS()) - Added AWS credential loader to AWS initializer
populate-*utils are now nowinit-*
- Adds
globto satisfy previously inferred dependency
- Remove
QUIETenv var as predicate for disabling banner
- Adds util to normalize local file paths in Windows
- Adds issue / PR templates
- Adds lib of Windows-compatible special chars set to de-munge printing on Windows machines
- Static asset fingerprint util (and related tests)
- Responsible for managing
public/static.json - Returns static asset manifest when called
- Also has
fingerprint.config()API available for returning@static fingerprintand@static ignoreconfig
- Responsible for managing
// Needs backfilling!
- Tiny console log copy edit
- Adds
populate-arcmodule, which loads basic required Architect project config - Adds
populate-awsmodule, which fixes missing (optional) AWS env vars in banner
- Disabling banner is now
disableBanner - Banner AWS region / profile can now be disabled with
disableRegionanddisableProfile - Common banner logger added in preparation for additional banner customization
- Option to disable banner printing with
banner({disabled:true})
- Moving towards passing parameters (to things like the banner) instead of using env vars
- Added shared banner printer
- Reverted tidying of subfolder structure in service of making requiring a little nicer
- Updates readArc to error if Architect manifest isn't found
- This here library! Broken out of
@architect/architect, we will now be maintainingutilsas a standalone module, and reincorporating it back into future versions of Architect.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.