@magmacomputing/tempo-plugin-astro 1.1.5 → 1.1.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +51 -0
- package/dist/index.js +1 -1
- package/package.json +7 -3
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the `@magmacomputing/tempo-plugin-astro` project will be documented in this file.
|
|
4
|
+
|
|
5
|
+
## [1.1.6] - 2026-06-11
|
|
6
|
+
|
|
7
|
+
### Changed
|
|
8
|
+
- Renamed the metadata payload property `type` to `event` (Equinox vs. Solstice) to better reflect astronomical terminology and reduce naming collisions.
|
|
9
|
+
- Refactored internal `calculateAstroMoment` parameter from `season` to `quarter` to resolve semantic ambiguity between meteorological seasons and astronomical quarters.
|
|
10
|
+
- Augmented the `@magmacomputing/tempo/core` module to natively type the `TempoTermRegistry` for `astro` and `astronomy`, providing full strict IntelliSense autocomplete for IDEs.
|
|
11
|
+
|
|
12
|
+
### Fixed
|
|
13
|
+
- **Type Definitions**: Added missing `start: Tempo` and `end: Tempo` boundaries to the `TempoTermRegistry` augmentation, ensuring accurate typings for the dynamic range boundaries injected by the core resolver.
|
|
14
|
+
- **NPM Registry Metadata**: Explicitly added `README.md`, `CHANGELOG.md`, and `LICENSE` to the `files` array in `package.json` to ensure the npmjs.com registry correctly renders package documentation.
|
|
15
|
+
|
|
16
|
+
## [1.1.3] - 2026-06-07
|
|
17
|
+
|
|
18
|
+
### Security
|
|
19
|
+
- Migrated licensing enforcement from `jose` to the native WebCrypto Tempo Core primitives.
|
|
20
|
+
|
|
21
|
+
### Fixed
|
|
22
|
+
- Replaced all usage of the global `Date` object with the `instant()` temporal engine in the core validator to ensure timeline consistency.
|
|
23
|
+
- Corrected test environment resolution boundaries that caused unhandled asynchronous Promise verification leaks.
|
|
24
|
+
|
|
25
|
+
## [1.1.2] - 2026-06-04
|
|
26
|
+
|
|
27
|
+
### Fixed
|
|
28
|
+
- Resolved the "Ghost-Trap" architectural conflict that prevented validation when used with Tempo v3.0.0.
|
|
29
|
+
- Decoupled `definePremiumTerm` and cryptographic validation from the plugin bundle. Licensing engine state and references are now directly imported from the Tempo Core (`@magmacomputing/tempo/plugin`).
|
|
30
|
+
- Removed the `@magmacomputing/tempo-plugin-core` bundled `devDependency` to prevent duplicate initialization.
|
|
31
|
+
|
|
32
|
+
## [1.0.2] - 2026-05-25
|
|
33
|
+
|
|
34
|
+
### Security
|
|
35
|
+
- Migrated licensing enforcement to the newly decoupled `@magmacomputing/tempo-plugin-core` workspace.
|
|
36
|
+
- The proprietary license verification and string-obfuscation logic is now baked directly into the plugin bundle during the build step, decentralizing the security model and eliminating reliance on the open-source engine for validation.
|
|
37
|
+
- Updated `devDependencies` to automatically resolve the new internal `@core` monorepo symlink via `tsup`.
|
|
38
|
+
|
|
39
|
+
## [1.0.0] - 2026-05-18
|
|
40
|
+
|
|
41
|
+
### Added
|
|
42
|
+
- Initial release of the Astronomical Seasons plugin.
|
|
43
|
+
- Implements the Jean Meeus polynomial approximation algorithm for precise Equinox and Solstice moments.
|
|
44
|
+
- Returns fully scoped astronomical objects containing:
|
|
45
|
+
- Precise start/end dates for each astronomical season
|
|
46
|
+
- The astronomical `key` (Vernal, Summer, Autumnal, Winter)
|
|
47
|
+
- The colloquial traditional `season` mapping (Spring, Summer, Autumn, Winter)
|
|
48
|
+
- The `event` (Equinox vs. Solstice)
|
|
49
|
+
- Fully supports automatic label inversion for Northern vs. Southern hemisphere configurations (`sphere: 'south'`).
|
|
50
|
+
- Implements the `v2.10.0` Tempo Core Licensing API via cryptographic JSON Web Signatures (JWS).
|
|
51
|
+
- Auto-registers itself via side-effect upon import.
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
const
|
|
1
|
+
const a0_0x1edd4b=a0_0x4b4a;(function(_0x3825f2,_0x480825){const _0x1e08c0=a0_0x4b4a,_0xc67e04=_0x3825f2();while(!![]){try{const _0x3c93c4=parseInt(_0x1e08c0(0xf4))/0x1+-parseInt(_0x1e08c0(0x108))/0x2+-parseInt(_0x1e08c0(0xed))/0x3+parseInt(_0x1e08c0(0x101))/0x4+-parseInt(_0x1e08c0(0xeb))/0x5+parseInt(_0x1e08c0(0xf6))/0x6*(-parseInt(_0x1e08c0(0xf3))/0x7)+parseInt(_0x1e08c0(0xf5))/0x8;if(_0x3c93c4===_0x480825)break;else _0xc67e04['push'](_0xc67e04['shift']());}catch(_0x53eb2d){_0xc67e04['push'](_0xc67e04['shift']());}}}(a0_0x18f8,0x2f847));function a0_0x18f8(){const _0x113854=['winter','day','Summer','days','hour','toDateTime','astro','872955NLrWsz','Winter','1030221CUVIhO','month','minute','find','millisecond','UTC','7QlwbXV','363677qxovsY','5548368HaACWJ','1634790FZYOGi','add','trunc','Autumnal','push','key','vernal','config','extend','with','nanosecond','514472MFmnwa','Spring','second','timeZoneId','South','year','Autumn','401494qUeMYl','sphere','Vernal','autumnal','astronomy','summer','Equinox','microsecond'];a0_0x18f8=function(){return _0x113854;};return a0_0x18f8();}import{Tempo,enums}from'@magmacomputing/tempo/core';import{getTermRange}from'@magmacomputing/tempo/term';import{definePremiumTerm}from'@magmacomputing/tempo/plugin';import{enumify}from'@magmacomputing/tempo/library';var ASTRO=enumify({'Vernal':'vernal','Summer':'summer','Autumnal':a0_0x1edd4b(0x10b),'Winter':a0_0x1edd4b(0x110)}),{COMPASS,DURATIONS}=enums,key=a0_0x1edd4b(0xea),scope='astronomy';function calculateAstroMoment(_0x54a5f9,_0x284f3f,_0x582e96){const _0x4e8ba3=a0_0x1edd4b,_0x49361a=(_0x54a5f9-0x7d0)/0x3e8;let _0x1599bc;switch(_0x284f3f){case ASTRO[_0x4e8ba3(0x10a)]:_0x1599bc=2451623.80984+365242.37404*_0x49361a+0.05169*_0x49361a*_0x49361a;break;case ASTRO[_0x4e8ba3(0xe6)]:_0x1599bc=2451716.56767+365241.62603*_0x49361a+0.00325*_0x49361a*_0x49361a;break;case ASTRO[_0x4e8ba3(0xf9)]:_0x1599bc=2451810.21715+365242.01767*_0x49361a-0.11575*_0x49361a*_0x49361a;break;case ASTRO[_0x4e8ba3(0xec)]:_0x1599bc=2451900.05952+365242.74049*_0x49361a-0.06223*_0x49361a*_0x49361a;break;}const _0x483d7d=Math[_0x4e8ba3(0xf8)]((_0x1599bc-2440587.5)*DURATIONS[_0x4e8ba3(0xe7)]);return new Tempo(_0x483d7d,{'timeZone':_0x582e96,'timeStamp':'ms'});}function resolve(_0x2aca39,_0xc8550){const _0x462ade=a0_0x1edd4b,_0x1ed1e5=_0x2aca39[_0x462ade(0xfd)][_0x462ade(0x109)];if(!_0x1ed1e5)return[];const _0x45b218=_0xc8550?.['yy']??_0xc8550?.['year']??_0x2aca39['yy'],_0x1b8b2d=_0xc8550?.[_0x462ade(0x104)]??_0x2aca39['tz']??_0x462ade(0xf2),_0x2d70f3=[],_0x322213=_0x1ed1e5===COMPASS[_0x462ade(0x105)]?{'vernal':_0x462ade(0xf9),'summer':_0x462ade(0xec),'autumnal':_0x462ade(0x10a),'winter':'Summer'}:{'vernal':_0x462ade(0x10a),'summer':'Summer','autumnal':'Autumnal','winter':_0x462ade(0xec)},_0x24a667=_0x1ed1e5===COMPASS[_0x462ade(0x105)]?{'vernal':_0x462ade(0x107),'summer':_0x462ade(0xec),'autumnal':'Spring','winter':_0x462ade(0xe6)}:{'vernal':_0x462ade(0x102),'summer':_0x462ade(0xe6),'autumnal':_0x462ade(0x107),'winter':_0x462ade(0xec)};for(const _0x464dbd of[_0x45b218-0x1,_0x45b218,_0x45b218+0x1]){const _0x3af53b=(_0x6b17c9,_0x4b404e)=>{const _0x8498cb=_0x462ade,_0x17532c=calculateAstroMoment(_0x6b17c9,_0x4b404e,_0x1b8b2d),_0x5c32ed=_0x17532c['toDateTime']();return{'year':_0x5c32ed[_0x8498cb(0x106)],'month':_0x5c32ed['month'],'day':_0x5c32ed['day'],'hour':_0x5c32ed['hour'],'minute':_0x5c32ed[_0x8498cb(0xef)],'second':_0x5c32ed['second'],'millisecond':_0x5c32ed[_0x8498cb(0xf1)],'microsecond':_0x5c32ed['microsecond'],'nanosecond':_0x5c32ed[_0x8498cb(0x100)]};};_0x2d70f3[_0x462ade(0xfa)]({'key':_0x322213[_0x462ade(0xfc)],'season':_0x24a667[_0x462ade(0xfc)],'sphere':_0x1ed1e5,..._0x3af53b(_0x464dbd,ASTRO[_0x462ade(0x10a)]),'event':_0x462ade(0x10e),'group':_0x462ade(0x10c)}),_0x2d70f3['push']({'key':_0x322213[_0x462ade(0x10d)],'season':_0x24a667[_0x462ade(0x10d)],'sphere':_0x1ed1e5,..._0x3af53b(_0x464dbd,ASTRO[_0x462ade(0xe6)]),'event':'Solstice','group':_0x462ade(0x10c)}),_0x2d70f3['push']({'key':_0x322213[_0x462ade(0x10b)],'season':_0x24a667[_0x462ade(0x10b)],'sphere':_0x1ed1e5,..._0x3af53b(_0x464dbd,ASTRO['Autumnal']),'event':'Equinox','group':'astronomy'}),_0x2d70f3[_0x462ade(0xfa)]({'key':_0x322213[_0x462ade(0x110)],'season':_0x24a667[_0x462ade(0x110)],'sphere':_0x1ed1e5,..._0x3af53b(_0x464dbd,ASTRO[_0x462ade(0xec)]),'event':'Solstice','group':_0x462ade(0x10c)});}return _0x2d70f3;}function a0_0x4b4a(_0x2cc443,_0x1fb781){_0x2cc443=_0x2cc443-0xe6;const _0x18f8c4=a0_0x18f8();let _0x4b4a69=_0x18f8c4[_0x2cc443];return _0x4b4a69;}function resolveDateBoundary(_0x6beb,_0x2a9fc1){const _0x2f1d1f=resolve(_0x6beb,_0x2a9fc1);return _0x2f1d1f['map'](_0xf6c04d=>({..._0xf6c04d,'hour':0x0,'minute':0x0,'second':0x0,'millisecond':0x0,'microsecond':0x0,'nanosecond':0x0}));}var AstroTerm=definePremiumTerm({'key':key,'scope':scope,'resolve'(_0x4f7067){return resolve(this,_0x4f7067);},'define'(_0x28b5c8,_0x58dc6e){const _0x3fb9fe=a0_0x1edd4b,_0x19e2ad=resolve(this,_0x58dc6e),_0xb622b8=resolveDateBoundary(this,_0x58dc6e),_0x538192=_0x58dc6e??this[_0x3fb9fe(0xe9)]();if(_0x28b5c8===!![]||_0x28b5c8===void 0x0){const _0x4ade03=getTermRange(this,_0xb622b8,!![],_0x58dc6e);return _0x4ade03;}const _0x41dfa3=getTermRange(this,_0x19e2ad,![],_0x58dc6e);if(!_0x41dfa3)return _0x41dfa3;const _0x3fa024=getTermRange(this,_0xb622b8,![],_0x58dc6e);if(!_0x3fa024)return _0x41dfa3;const _0x557d15=_0x19e2ad[_0x3fb9fe(0xf0)](_0x1b808d=>_0x1b808d[_0x3fb9fe(0xfb)]===_0x3fa024['key']&&_0x1b808d[_0x3fb9fe(0x106)]===_0x3fa024[_0x3fb9fe(0x106)]&&_0x1b808d['month']===_0x3fa024[_0x3fb9fe(0xee)]&&_0x1b808d[_0x3fb9fe(0x111)]===_0x3fa024[_0x3fb9fe(0x111)]);if(!_0x557d15)return{..._0x3fa024,'strict':_0x41dfa3[_0x3fb9fe(0xfb)]};const _0x533225=_0x538192[_0x3fb9fe(0xff)]({'year':_0x557d15['year'],'month':_0x557d15['month'],'day':_0x557d15['day'],'hour':_0x557d15[_0x3fb9fe(0xe8)]??0x0,'minute':_0x557d15['minute']??0x0,'second':_0x557d15[_0x3fb9fe(0x103)]??0x0,'millisecond':_0x557d15[_0x3fb9fe(0xf1)]??0x0,'microsecond':_0x557d15[_0x3fb9fe(0x10f)]??0x0,'nanosecond':_0x557d15[_0x3fb9fe(0x100)]??0x0})[_0x3fb9fe(0xf7)]({'minutes':0x1}),_0x185d7c=getTermRange(this,_0x19e2ad,![],_0x533225);if(!_0x185d7c)return{..._0x3fa024,'strict':_0x41dfa3['key']};return{..._0x185d7c,'strict':_0x41dfa3[_0x3fb9fe(0xfb)]};}});Tempo[a0_0x1edd4b(0xfe)](AstroTerm);export{AstroTerm};
|
package/package.json
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@magmacomputing/tempo-plugin-astro",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.7",
|
|
4
4
|
"description": "Tempo plugin that calculates precise astronomical seasons (solstices & equinoxes) using the Jean Meeus algorithm — hemisphere-aware, sub-minute accuracy",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
7
7
|
"license": "Proprietary",
|
|
8
8
|
"files": [
|
|
9
|
-
"dist"
|
|
9
|
+
"dist",
|
|
10
|
+
"README.md",
|
|
11
|
+
"CHANGELOG.md",
|
|
12
|
+
"LICENSE"
|
|
10
13
|
],
|
|
11
14
|
"publishConfig": {
|
|
12
15
|
"access": "public",
|
|
@@ -20,7 +23,7 @@
|
|
|
20
23
|
"prepublishOnly": "if [ $(git rev-parse --abbrev-ref HEAD) != main ]; then echo 'ERROR: Must be on main branch to publish.'; exit 1; fi && npm run build"
|
|
21
24
|
},
|
|
22
25
|
"peerDependencies": {
|
|
23
|
-
"@magmacomputing/tempo": "
|
|
26
|
+
"@magmacomputing/tempo": "3.0.3"
|
|
24
27
|
},
|
|
25
28
|
"tempo": {
|
|
26
29
|
"vendorVariantId": "tempo-plugin-astro",
|
|
@@ -37,6 +40,7 @@
|
|
|
37
40
|
"solstice",
|
|
38
41
|
"equinox",
|
|
39
42
|
"vernal-equinox",
|
|
43
|
+
"autumnal-equinox",
|
|
40
44
|
"summer-solstice",
|
|
41
45
|
"winter-solstice",
|
|
42
46
|
"jean-meeus",
|