UNPKG

@burglekitt/gmt

Version:

Temporal-based date and time utilities with timezone support and polyfill integration

278 lines (260 loc) 15.1 kB
# skills/_artifacts/skill_tree.yaml # Generated by skill-tree-generator # Library: @burglekitt/gmt # Version: 1.14.0 library: name: '@burglekitt/gmt' version: 1.14.0 repository: https://github.com/burglekitt/gmt.git description: Temporal-based date and time utilities with timezone support and polyfill integration generated_from: domain_map: 'skills/_artifacts/domain_map.yaml' skill_spec: 'skills/_artifacts/skill_spec.md' generated_at: '2026-08-23' skills: # Consumer-facing core skills - name: Get Current Date/Time slug: get-current type: core domain: core-date-operations path: 'skills/get-current/SKILL.md' package: 'packages/gmt' description: Get the current date, time, or timestamp as ISO 8601 strings sources: - 'burglekitt/gmt:packages/gmt/src/plain/get/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/get/index.ts' - 'burglekitt/gmt:packages/gmt/src/utc/get/index.ts' - 'burglekitt/gmt:packages/gmt/src/unix/get/index.ts' - name: Parse Date/Time slug: parse-date-time type: core domain: core-date-operations path: 'skills/parse-date-time/SKILL.md' package: 'packages/gmt' description: Parse individual components from date/time strings; also parseRfc2822, parseHttp, parseSql, parseRfc3339 for decoding fixed interchange grammars (email Date headers, HTTP headers, SQL datetime literals, RFC 3339) sources: - 'burglekitt/gmt:packages/gmt/src/plain/parse/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/parse/parseRfc2822.ts' - 'burglekitt/gmt:packages/gmt/src/utc/parse/parseHttp.ts' - 'burglekitt/gmt:packages/gmt/src/plain/parse/parseSql.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/parse/parseRfc3339.ts' - name: Format Date/Time slug: format-date-time type: core domain: core-date-operations path: 'skills/format-date-time/SKILL.md' package: 'packages/gmt' description: Format date/time values for display with locale support; includes plain absolute (formatDate/Time/DateTime), plain relative (formatRelativeDate/Time/DateTime), standalone locale calendar-name lookups (getLocaleEraNames, getLocaleMonthNames, getLocaleWeekdayNames, getLocaleMeridiems), and fixed-grammar named machine formats (formatRfc2822, formatHttp, formatSql, formatRfc3339) sources: - 'burglekitt/gmt:packages/gmt/src/plain/format/index.ts' - 'burglekitt/gmt:packages/gmt/src/plain/locale/index.ts' - 'burglekitt/gmt:packages/gmt/src/plain/locale/getLocaleEraNames.ts' - 'burglekitt/gmt:packages/gmt/src/plain/locale/getLocaleMonthNames.ts' - 'burglekitt/gmt:packages/gmt/src/plain/locale/getLocaleWeekdayNames.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/format/formatRfc2822.ts' - 'burglekitt/gmt:packages/gmt/src/utc/format/formatHttp.ts' - 'burglekitt/gmt:packages/gmt/src/plain/format/formatSql.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/format/formatRfc3339.ts' - 'burglekitt/gmt:packages/gmt/src/plain/locale/getLocaleMeridiems.ts' - name: Format Relative Time slug: format-relative-time type: core domain: core-date-operations path: 'skills/format-relative-time/SKILL.md' package: 'packages/gmt' description: Produce human-friendly relative strings ("yesterday", "in 2 hours") across plain, zoned, unix, and utc values requires: - format-date-time sources: - 'burglekitt/gmt:packages/gmt/src/plain/format/formatRelativeDate.ts' - 'burglekitt/gmt:packages/gmt/src/plain/format/formatRelativeTime.ts' - 'burglekitt/gmt:packages/gmt/src/plain/format/formatRelativeDateTime.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/format/formatRelativeZoned.ts' - 'burglekitt/gmt:packages/gmt/src/unix/format/formatRelativeUnix.ts' - 'burglekitt/gmt:packages/gmt/src/utc/format/formatRelativeUtc.ts' - name: Calculate Dates slug: calculate-dates type: core domain: core-date-operations path: 'skills/calculate-dates/SKILL.md' package: 'packages/gmt' description: Add or subtract time from dates; add*/subtract* accept an optional overflow ("constrain" | "reject") option, diff* accept optional smallestUnit/roundingIncrement/roundingMode rounding options, addBusinessDays/subtractBusinessDays skip weekends for Mon–Fri arithmetic, clampDate restricts a date to a range, closestDateTo finds the nearest candidate by calendar distance, getLocaleStartOfWeek/getLocaleEndOfWeek compute locale-driven week boundaries sources: - 'burglekitt/gmt:packages/gmt/src/plain/calculate/index.ts' - 'burglekitt/gmt:packages/gmt/src/plain/calculate/clampDate.ts' - 'burglekitt/gmt:packages/gmt/src/plain/calculate/closestDateTo.ts' - name: Durations slug: durations type: core domain: core-date-operations path: 'skills/durations/SKILL.md' package: 'packages/gmt' description: Parse, validate, combine, rebalance, and format ISO 8601 duration strings via isValidDuration, parseDuration, addDuration/subtractDuration, normalizeDuration, and formatDuration; bridge diff* functions to duration strings via diffDateAsDuration/diffDateTimeAsDuration/diffZonedAsDuration/diffUnixAsDuration/diffUtcAsDuration requires: - calculate-dates sources: - 'burglekitt/gmt:packages/gmt/src/duration/index.ts' - 'burglekitt/gmt:packages/gmt/src/plain/calculate/diffDateAsDuration.ts' - 'burglekitt/gmt:packages/gmt/src/plain/calculate/diffDateTimeAsDuration.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/diffZonedAsDuration.ts' - 'burglekitt/gmt:packages/gmt/src/unix/calculate/diffUnixAsDuration.ts' - 'burglekitt/gmt:packages/gmt/src/utc/calculate/diffUtcAsDuration.ts' - name: Compare Dates slug: compare-dates type: core domain: core-date-operations path: 'skills/compare-dates/SKILL.md' package: 'packages/gmt' description: Compare date values for ordering; use isWeekend/isZonedWeekend for locale-aware weekend checks, isBusinessDay for fixed ISO Mon–Fri business-day checks, and getLocaleDayOfWeek/getLocaleZonedDayOfWeek for locale-relative day-of-week indices sources: - 'burglekitt/gmt:packages/gmt/src/plain/compare/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/compare/index.ts' - 'burglekitt/gmt:packages/gmt/src/plain/get/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/get/index.ts' - name: Validate Dates slug: validate-dates type: core domain: core-date-operations path: 'skills/validate-dates/SKILL.md' package: 'packages/gmt' description: Validate date/time strings, timezone identifiers, intervals, and ranges; check whether a timezone observes daylight saving time (hasDaylightSaving); list DST transition instants for a timezone in a given year (getDstTransitions); check point-in-interval and interval-in-interval containment; merge overlapping or adjacent intervals; split intervals into sub-intervals by duration unit sources: - 'burglekitt/gmt:packages/gmt/src/plain/validate/index.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/validate/index.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalContainsDate.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalContainsTime.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalContainsDateTime.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalUnionDate.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalUnionTime.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/intervalUnionDateTime.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/splitIntervalByUnitDate.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/splitIntervalByUnitTime.ts' - 'burglekitt/gmt:packages/gmt/src/plain/interval/splitIntervalByUnitDateTime.ts' - 'burglekitt/gmt:packages/gmt/src/utc/validate/index.ts' - 'burglekitt/gmt:packages/gmt/src/utc/interval/validate/index.ts' - 'burglekitt/gmt:packages/gmt/src/utc/interval/intervalContainsUtc.ts' - 'burglekitt/gmt:packages/gmt/src/utc/interval/intervalUnionUtc.ts' - 'burglekitt/gmt:packages/gmt/src/utc/interval/splitIntervalByUnitUtc.ts' - 'burglekitt/gmt:packages/gmt/src/unix/validate/index.ts' - 'burglekitt/gmt:packages/gmt/src/unix/interval/validate/index.ts' - 'burglekitt/gmt:packages/gmt/src/unix/interval/intervalContainsUnix.ts' - 'burglekitt/gmt:packages/gmt/src/unix/interval/intervalUnionUnix.ts' - 'burglekitt/gmt:packages/gmt/src/unix/interval/splitIntervalByUnitUnix.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/validate/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/validate/hasDaylightSaving.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/get/getDstTransitions.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/interval/validate/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/interval/intervalContainsZoned.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/interval/intervalUnionZoned.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/interval/splitIntervalByUnitZoned.ts' - name: Zoned Date Operations slug: zoned-date-ops type: core domain: zoned-date-operations path: 'skills/zoned-date-ops/SKILL.md' package: 'packages/gmt' description: Work with timezone-aware dates and times; includes formatZonedDateTime, formatZonedRange, formatRelativeZoned, convertPlainDateTimeToZoned with full DST disambiguation control, addZoned/subtractZoned with overlap-only DST disambiguation control, clampZoned/closestZonedTo for range restriction and nearest-candidate selection, and the startOfZoned/endOfZoned/startOfQuarterForZoned/endOfQuarterForZoned/mapZonedHoursInDay/getLocaleZonedStartOfWeek/getLocaleZonedEndOfWeek/getLocaleZonedDayOfWeek family (plus unix/ counterparts) with full disambiguation + offset control sources: - 'burglekitt/gmt:packages/gmt/src/zoned/get/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/format/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/validate/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/convert/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/addZoned.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/subtractZoned.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/startOfZoned.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/endOfZoned.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/startOfQuarterForZoned.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/endOfQuarterForZoned.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/getLocaleZonedStartOfWeek.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/getLocaleZonedEndOfWeek.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/clampZoned.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/calculate/closestZonedTo.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/map/mapZonedHoursInDay.ts' - 'burglekitt/gmt:packages/gmt/src/unix/calculate/startOfUnix.ts' - 'burglekitt/gmt:packages/gmt/src/unix/calculate/endOfUnix.ts' - 'burglekitt/gmt:packages/gmt/src/unix/calculate/startOfQuarterForUnix.ts' - 'burglekitt/gmt:packages/gmt/src/unix/calculate/endOfQuarterForUnix.ts' - name: Convert Temporal Types slug: convert-types type: core domain: conversion path: 'skills/convert-types/SKILL.md' package: 'packages/gmt' description: Convert between plain and zoned (with DST disambiguation control), or unix/utc representations; convertDateToCalendar expresses a date in a non-Gregorian CalendarSystem (gregorian, hebrew, islamic-civil, islamic-tabular, islamic-umalqura, japanese, buddhist, taiwan, persian, indian, ethiopic, ethiopic-amete-alem, coptic) sources: - 'burglekitt/gmt:packages/gmt/src/plain/convert/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/convert/index.ts' - 'burglekitt/gmt:packages/gmt/src/unix/convert/index.ts' - 'burglekitt/gmt:packages/gmt/src/utc/convert/index.ts' - 'burglekitt/gmt:packages/gmt/src/types/calendar-system.ts' - 'burglekitt/gmt:packages/gmt/src/internal/ethiopicFamilyCalendar.ts' # Consumer-facing interval skills - name: Interval Operations slug: interval-ops type: core domain: interval-operations path: 'skills/interval-ops/SKILL.md' package: 'packages/gmt' description: Range math over two-point intervals — validate, contain, overlap, intersect, union, difference, xor, abut, engulf, construct from a point + duration, split by duration unit, and count calendar-unit boundaries across plain, zoned, unix, and utc requires: [] sources: - 'burglekitt/gmt:packages/gmt/src/plain/interval/index.ts' - 'burglekitt/gmt:packages/gmt/src/zoned/interval/index.ts' - 'burglekitt/gmt:packages/gmt/src/unix/interval/index.ts' - 'burglekitt/gmt:packages/gmt/src/utc/interval/index.ts' - 'burglekitt/gmt:packages/gmt/src/duration/validate/isValidDuration.ts' # Consumer-facing composition skills - name: App Integration slug: app-integration type: composition domain: integration path: 'skills/app-integration/SKILL.md' package: 'packages/gmt' description: Integrate gmt with application frameworks - name: Lint Package Suggestion slug: lint-package-suggestion type: composition domain: integration path: 'skills/lint-package-suggestion/SKILL.md' package: 'packages/gmt' description: Recommend appropriate lint packages from @burglekitt toolchain requires: [] # Lifecycle skills - name: Issue Creation slug: issue-creation type: lifecycle domain: core-date-operations path: 'skills/issue-creation/SKILL.md' package: 'packages/gmt' description: Create feature requests with proper details for maintainers - name: PR Contribution slug: pr-contribution type: lifecycle domain: integration path: 'skills/pr-contribution/SKILL.md' package: 'packages/gmt' description: Contribute improvements via pull requests # Maintainer skills (document how to work on gmt itself) - name: New Method Implementation slug: new-method-implementation type: core domain: core-date-operations path: 'skills/new-method-implementation/SKILL.md' package: 'packages/gmt' description: Implement or extend a gmt API in packages/gmt/src - name: Unit Test Generation slug: unit-test-generation type: core domain: core-date-operations path: 'skills/unit-test-generation/SKILL.md' package: 'packages/gmt' description: Write or update gmt unit tests with deterministic Temporal-safe patterns requires: - new-method-implementation - name: API Expansion Workflow slug: api-expansion-workflow type: lifecycle domain: core-date-operations path: 'skills/api-expansion-workflow/SKILL.md' package: 'packages/gmt' description: Handle feature requests for missing gmt functionality