+
+ try {
+ const res = await login(url, client, user)
+ return res.body.access_token
+ } catch (err) {
+ exitError('Cannot authenticate. Please check your username/password.')
+ }
+}
+
+function parseDate (dateAsStr: string): Date {
+ if (!/\d{4}-\d{2}-\d{2}/.test(dateAsStr)) {
+ exitError(`Invalid date passed: ${dateAsStr}. Expected format: YYYY-MM-DD. See help for usage.`)
+ }
+ const date = new Date(dateAsStr)
+ date.setHours(0, 0, 0)
+ if (isNaN(date.getTime())) {
+ exitError(`Invalid date passed: ${dateAsStr}. See help for usage.`)
+ }
+ return date
+}
+
+function formatDate (date: Date): string {
+ return date.toISOString().split('T')[ 0 ]
+}
+
+function exitError (message: string, ...meta: any[]) {
+ // use console.error instead of log.error here
+ console.error(message, ...meta)
+ process.exit(-1)