From 713e4fca2978c135eff57219721cb12c77a32081 Mon Sep 17 00:00:00 2001 From: Michael McRae Date: Mon, 6 Jul 2026 18:13:11 +1000 Subject: [PATCH] 3.6.1 hotfix --- package-lock.json | 8 ++++---- package.json | 2 +- packages/library/package.json | 2 +- packages/tempo/CHANGELOG.md | 5 +++++ packages/tempo/package.json | 2 +- packages/tempo/src/tempo.class.ts | 21 ++++++++++++++++++--- packages/tempo/src/tempo.version.ts | 2 +- 7 files changed, 31 insertions(+), 11 deletions(-) diff --git a/package-lock.json b/package-lock.json index 056d91c..72e0f72 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "tempo-monorepo", - "version": "3.5.3", + "version": "3.6.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "tempo-monorepo", - "version": "3.5.3", + "version": "3.6.1", "workspaces": [ "packages/*" ], @@ -10149,7 +10149,7 @@ }, "packages/library": { "name": "@magmacomputing/library", - "version": "3.5.3", + "version": "3.6.1", "license": "MIT", "dependencies": { "tslib": "^2.8.1" @@ -10160,7 +10160,7 @@ }, "packages/tempo": { "name": "@magmacomputing/tempo", - "version": "3.5.3", + "version": "3.6.1", "license": "MIT", "dependencies": { "tslib": "^2.8.1" diff --git a/package.json b/package.json index 3a726e0..af674e0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "tempo-monorepo", - "version": "3.6.0", + "version": "3.6.1", "private": true, "engines": { "node": ">=20.0.0" diff --git a/packages/library/package.json b/packages/library/package.json index 9fd9593..a73c8f3 100644 --- a/packages/library/package.json +++ b/packages/library/package.json @@ -1,6 +1,6 @@ { "name": "@magmacomputing/library", - "version": "3.6.0", + "version": "3.6.1", "description": "Shared utility library for Tempo", "author": "Magma Computing Solutions", "license": "MIT", diff --git a/packages/tempo/CHANGELOG.md b/packages/tempo/CHANGELOG.md index 02d32ee..d2f3953 100644 --- a/packages/tempo/CHANGELOG.md +++ b/packages/tempo/CHANGELOG.md @@ -6,6 +6,11 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [3.6.1] - 2026-07-06 + +### Fixed +- **Constructor Shorthand Resolution**: Fixed a critical `TypeError: invalid duration-like` regression introduced in 3.6.0. The `Tempo` constructor now correctly maps shorthand duration objects (e.g., `{ mi: 5 }`) to their fully-qualified `Temporal` plural equivalents (`{ minutes: 5 }`) before evaluating them against the underlying engine. + ## [3.6.0] - 2026-07-05 ### Added diff --git a/packages/tempo/package.json b/packages/tempo/package.json index 383f30d..3a743fc 100644 --- a/packages/tempo/package.json +++ b/packages/tempo/package.json @@ -1,6 +1,6 @@ { "name": "@magmacomputing/tempo", - "version": "3.6.0", + "version": "3.6.1", "engines": { "node": ">=20.0.0" }, diff --git a/packages/tempo/src/tempo.class.ts b/packages/tempo/src/tempo.class.ts index 459c194..c39a2ff 100644 --- a/packages/tempo/src/tempo.class.ts +++ b/packages/tempo/src/tempo.class.ts @@ -1661,9 +1661,24 @@ export class Tempo { // preserve parse result history when creating new instance from an existing one return [tempo, Object.assign({ result: [...tempo.parse.result] }, options)]; - return this.#isOptions(tempo) - ? [tempo.value, Object.assign({}, tempo)] - : [tempo, options]; + let mappedTempo = tempo as t.DateTime; + if (isObject(tempo) && isDurationLike(tempo)) { + const record = { ...(tempo as unknown as Record) }; + let hasMapped = false; + for (const [k, v] of Object.entries(record)) { + const resolved = enums.ELEMENT.has(k) ? `${enums.ELEMENT[k as t.Element]}s` : undefined; + if (resolved) { + record[resolved] = v; + delete record[k]; + hasMapped = true; + } + } + if (hasMapped) mappedTempo = record as t.DateTime; + } + + return this.#isOptions(mappedTempo) + ? [mappedTempo.value, Object.assign({}, mappedTempo)] + : [mappedTempo, options]; } /** check if we've been given a Tempo Options object */ diff --git a/packages/tempo/src/tempo.version.ts b/packages/tempo/src/tempo.version.ts index 6de4343..ad555f3 100644 --- a/packages/tempo/src/tempo.version.ts +++ b/packages/tempo/src/tempo.version.ts @@ -5,4 +5,4 @@ * ⚠️ This file is auto-updated by `npm run build:version` (see `bin/update-version.mjs`). * Do NOT edit manually — your changes will be overwritten on the next build. */ -export const TEMPO_VERSION = '3.6.0'; +export const TEMPO_VERSION = '3.6.1';