#!/bin/sh
set -e

node <<'EOF'
'use strict';

const dayjs = require('dayjs');

// Basic parse
const d = dayjs('2024-01-02T03:04:05Z');
if (!d.isValid()) {
  throw new Error('Day.js: invalid date parsing');
}

// Basic formatting (local timezone)
const formatted = d.format('YYYY-MM-DDTHH:mm:ss[Z]');
const d2 = d.add(1, 'day');
d.format('YYYY-MM-DD');
console.log('Day.js OK');
EOF

node <<'EOF'
'use strict';

const dayjs = require('dayjs');
const utc = require('dayjs/plugin/utc');
dayjs.extend(utc);

const d = dayjs.utc('2024-01-02T03:04:05Z');
if (!d.isValid()) {
  throw new Error('Day.js: invalid UTC parsing');
}

// Format UTC
const formatted = d.format('YYYY-MM-DD HH:mm');

console.log('Day.js UTC: OK');
EOF

node --input-type=module <<'EOF'
import dayjs from 'dayjs';

const d = dayjs('2024-01-02T03:04:05Z');
if (!d.isValid()) {
  throw new Error('Day.js: invalid date parsing');
}

// Basic formatting (no plugins)
const formatted = d.format('YYYY-MM-DDTHH:mm:ss[Z]');
const d2 = d.add(1, 'day');

console.log('Day.js esm (core): OK');
EOF

node --input-type=module <<'EOF'
import dayjs from 'dayjs';
import utc from 'dayjs/plugin/utc.js';

dayjs.extend(utc);

const d = dayjs.utc('2024-01-02T03:04:05Z');
if (!d.isValid()) {
  throw new Error('Day.js: invalid UTC parsing');
}

// Format UTC
const formatted = d.format('YYYY-MM-DD HH:mm');

console.log('Day.js esm (UTC plugin): OK');
EOF
