site/node_modules/lunarphase-js/dist/browser/lunarphase-js..js.map
2022-10-22 09:24:08 -05:00

1 line
15 KiB
Plaintext

{"version":3,"file":"lunarphase-js..js","sources":["../../src/enum/Hemisphere.js","../../src/enum/LunarEmoji.js","../../src/enum/LunarMonth.js","../../src/enum/LunarPhase.js","../../src/enum/Unit.js","../../src/constants/Time.js","../../src/utils/MathUtil.js","../../src/JulianDay.js","../../src/Moon.js"],"sourcesContent":["/**\n * Earth's hemispheres.\n *\n * @typedef {string} Hemisphere\n * @enum {Hemisphere}\n */\nexport const Hemisphere = {\n NORTHERN: \"Northern\",\n SOUTHERN: \"Southern\",\n};\n","/**\n * Enumeration of lunar phases as emoji\n *\n * @typedef {string} LunarEmoji\n */\nexport const LunarEmoji = {\n /**\n * Enumeration of lunar phases as emoji for the Northern Hemisphere.\n * @num {LunarPhase}\n */\n NorthernHemisphere: {\n NEW: \"🌑\",\n WAXING_CRESCENT: \"🌒\",\n FIRST_QUARTER: \"🌓\",\n WAXING_GIBBOUS: \"🌔\",\n FULL: \"🌕\",\n WANING_GIBBOUS: \"🌖\",\n LAST_QUARTER: \"🌗\",\n WANING_CRESCENT: \"🌘\",\n },\n\n /**\n * Enumeration of lunar phases as emoji for the Southern Hemisphere.\n * @num {LunarPhase}\n */\n SouthernHemisphere: {\n NEW: \"🌑\",\n WAXING_CRESCENT: \"🌘\",\n FIRST_QUARTER: \"🌗\",\n WAXING_GIBBOUS: \"🌖\",\n FULL: \"🌕\",\n WANING_GIBBOUS: \"🌔\",\n LAST_QUARTER: \"🌓\",\n WANING_CRESCENT: \"🌒\",\n },\n};\n","/**\n * Lunar month, time between two successive syzygies of the\n * same type: new moons or full moons\n *\n * @typedef {string} LunarMonth\n * @enum {LunarMonth}\n */\nexport const LunarMonth = {\n ANOMALISTIC: \"Anomalistic\",\n DRACONIC: \"Draconic\",\n SIDEREAL: \"Sidereal\",\n SYNODIC: \"Synodic\",\n TROPICAL: \"Tropical\",\n};\n","/**\n * Enumeration of lunar phases\n *\n * @typedef {string} LunarPhase\n * @enum {LunarPhase}\n */\nexport const LunarPhase = {\n NEW: \"New\",\n WAXING_CRESCENT: \"Waxing Crescent\",\n FIRST_QUARTER: \"First Quarter\",\n WAXING_GIBBOUS: \"Waxing Gibbous\",\n FULL: \"Full\",\n WANING_GIBBOUS: \"Waning Gibbous\",\n LAST_QUARTER: \"Last Quarter\",\n WANING_CRESCENT: \"Waning Crescent\",\n};\n","/**\n * Units of measure\n *\n * @typedef {string} Unit\n * @enum {Unit}\n */\nexport const Unit = {\n EARTH_RADII: \"Earth Radii\",\n KILOMETERS: \"km\",\n MILES: \"m\",\n};\n","/**\n * Timestamp epoch, January 1, 1970, in Julian Days.\n * @type {number}\n */\nexport const EPOCH = 2440587.5;\n\n/**\n * Lunation 1 as the first new moon of 1923 at approximately\n * 02:41 UTC, January 17, 1923 per Ernest William Brown's lunar theory.\n * @type {number}\n */\nexport const LUNATION_BASE_JULIAN_DAY = 2423436.6115277777;\n\n/**\n * Length of one phase (1/8 of a synodic month) in Earth days.\n * @type {number}\n */\nexport const PHASE_LENGTH = 3.69132346322;\n\n/**\n * Orbital period of the Moon from perigee to apogee and back to perigee\n * @type {number}\n */\nexport const ANOMALISTIC_MONTH = 27.55454988;\n\n/**\n * Length of one synodic month - lunation, or days for the phases to complete a cycle.\n * Time between two identical syzygies, equivalent of 29.53059 Earth days.\n *\n * Based on Mean Synodic Month, 2000 AD mean solar days.\n * @type {number}\n */\nexport const SYNODIC_MONTH = 29.53058770576;\n","/**\n * Normalization utility for percentage calculations.\n *\n * @param {number} value Percent value.\n * @returns {number} Normalized value\n */\nexport const normalize = (value) => {\n value -= Math.floor(value);\n if (value < 0) {\n value += 1;\n }\n\n return value;\n};\n","import { EPOCH } from \"./constants/Time\";\n\n/**\n * Julian day from Gregorian date.\n * @param {Date} date Gregorian date to convert to Julian day.\n * @returns {number} Julian Day\n */\nexport const fromDate = (date = new Date()) => {\n const time = date.getTime();\n return time / 86400000 - date.getTimezoneOffset() / 1440 + EPOCH;\n};\n\n/**\n * Gregorian date from Julian day\n * @param {number} julian Julian dat to convert to Gregorian date\n * @returns {Date} Gregorian date\n */\nexport const toDate = (julian) => {\n let date = new Date();\n date.setTime((julian - EPOCH + date.getTimezoneOffset() / 1440) * 86400000);\n return date;\n};\n","import { ANOMALISTIC_MONTH, LUNATION_BASE_JULIAN_DAY, SYNODIC_MONTH } from \"./constants/Time\";\nimport { Hemisphere } from \"./enum/Hemisphere\";\nimport { LunarEmoji } from \"./enum/LunarEmoji\";\nimport { LunarPhase } from \"./enum/LunarPhase\";\nimport { normalize } from \"./utils/MathUtil\";\nimport * as JulianDay from \"./JulianDay\";\n\n/**\n * Moon's age, or Earth days since the last new moon.\n *\n * @param {Date} date Date used for calculation.\n * @returns {number} Age of the moon, normalized within a 29.53059 Earth days calendar.\n */\nexport const lunarAge = (date = new Date()) => {\n const percent = lunarAgePercent(date);\n return percent * SYNODIC_MONTH;\n};\n\n/**\n * Percentage through the lunar synodic month.\n *\n * @param {Date} date Date used for calculation.\n * @returns {number} Percentage through the lunar month.\n */\nexport const lunarAgePercent = (date = new Date()) => {\n return normalize((JulianDay.fromDate(date) - 2451550.1) / SYNODIC_MONTH);\n};\n\n/**\n * Brown Lunation Number (BLN), per Ernest William Brown's lunar theory,\n * defining Lunation 1 as the first new moon of 1923 at\n * approximately 02:41 UTC, January 17, 1923.\n *\n * @param {Date} date Date used for calculation.\n * @returns {number} Lunation Number\n */\nexport const lunationNumber = (date = new Date()) => {\n return Math.round((JulianDay.fromDate(date) - LUNATION_BASE_JULIAN_DAY) / SYNODIC_MONTH) + 1;\n};\n\n/**\n * Distance to the moon measured in units of Earth radii, with\n * perigee at 56 and apogee at 63.8.\n *\n * @param {Date} date Date used for calculation\n * @returns {number} Distance to the moon in Earth radii\n */\nexport const lunarDistance = (date = new Date()) => {\n const julian = JulianDay.fromDate(date);\n const agePercent = lunarAgePercent(date);\n const radians = agePercent * 2 * Math.PI;\n const percent = 2 * Math.PI * normalize((julian - 2451562.2) / ANOMALISTIC_MONTH);\n\n return 60.4 - 3.3 * Math.cos(percent) - 0.6 * Math.cos(2 * radians - percent) - 0.5 * Math.cos(2 * radians);\n};\n\n/**\n * Name of the lunar phase per date submitted.\n *\n * @param {Date} date Date used to calculate lunar phase.\n * @returns {string} Name as string of the current lunar phase.\n */\nexport const lunarPhase = (date = new Date()) => {\n const age = lunarAge(date);\n\n if (age < 1.84566173161) return LunarPhase.NEW;\n else if (age < 5.53698519483) return LunarPhase.WAXING_CRESCENT;\n else if (age < 9.22830865805) return LunarPhase.FIRST_QUARTER;\n else if (age < 12.91963212127) return LunarPhase.WAXING_GIBBOUS;\n else if (age < 16.61095558449) return LunarPhase.FULL;\n else if (age < 20.30227904771) return LunarPhase.WANING_GIBBOUS;\n else if (age < 23.99360251093) return LunarPhase.LAST_QUARTER;\n else if (age < 27.68492597415) return LunarPhase.WANING_CRESCENT;\n\n return LunarPhase.NEW;\n};\n\n/**\n * Emoji of the lunar phase per date submitted.\n *\n * @param {Date} date Date used to calculate lunar phase.\n * @param {Hemisphere} hemisphere Northern or Southern Hemisphere.\n * @returns Emoji of the current lunar phase.\n */\nexport const lunarPhaseEmoji = (date = new Date(), hemisphere = Hemisphere.NORTHERN) => {\n const phase = lunarPhase(date);\n\n return emojiForLunarPhase(phase, hemisphere);\n};\n\n/**\n * Emoji for specified lunar phase.\n *\n * @param {LunarPhase} phase Lunar phase, per the LunarPhase enum\n * @param {Hemisphere} hemisphere Northern or Southern Hemisphere.\n * @returns {string} Emoji of the current lunar phase.\n */\nexport const emojiForLunarPhase = (phase, hemisphere = Hemisphere.NORTHERN) => {\n let emoji;\n\n if (hemisphere === Hemisphere.SOUTHERN) {\n emoji = LunarEmoji.SouthernHemisphere;\n } else {\n emoji = LunarEmoji.NorthernHemisphere;\n }\n\n switch (phase) {\n case LunarPhase.WANING_CRESCENT:\n return emoji[\"WANING_CRESCENT\"];\n case LunarPhase.LAST_QUARTER:\n return emoji[\"LAST_QUARTER\"];\n case LunarPhase.WANING_GIBBOUS:\n return emoji[\"WANING_GIBBOUS\"];\n case LunarPhase.FULL:\n return emoji[\"FULL\"];\n case LunarPhase.WAXING_GIBBOUS:\n return emoji[\"WAXING_GIBBOUS\"];\n case LunarPhase.FIRST_QUARTER:\n return emoji[\"FIRST_QUARTER\"];\n case LunarPhase.WAXING_CRESCENT:\n return emoji[\"WAXING_CRESCENT\"];\n\n default:\n case LunarPhase.NEW:\n return emoji[\"NEW\"];\n }\n};\n\n/**\n * Whether the moon is currently waxing (growing).\n *\n * @param {Date} date Date used for calculation.\n * @returns {boolean} True if moon is waxing.\n */\nexport const isWaxing = (date = new Date()) => {\n const age = lunarAge(date);\n return age <= 14.765;\n};\n\n/**\n * Whether the moon is currently waning (shrinking).\n *\n * @param {Date} date Date used for calculation.\n * @returns {boolean} True if moon is waning.\n */\nexport const isWaning = (date = new Date()) => {\n const age = lunarAge(date);\n return age > 14.765;\n};\n"],"names":["JulianDay.fromDate"],"mappings":"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"}