{
    "name": "universal-common",
    "version": "2.2.0",
    "description": "Library that provides useful missing base class library functionality.",
    "main": "index.js",
    "type": "module",
    "license": "CC0-1.0",
    "author": {
        "name": "Andrew Ong",
        "email": "ong.andrew@gmail.com"
    },
    "scripts": {
        "check-typescript": "node -e \"try { require.resolve('typescript'); } catch { console.log('Installing TypeScript...'); require('child_process').execSync('npm install --no-save typescript'); }\"",
        "create-tsconfig": "node -e \"const fs = require('fs'); const tsconfig = { compilerOptions: { allowJs: true, declaration: true, emitDeclarationOnly: true, target: 'es2020', module: 'es2020', moduleResolution: 'node' }, include: ['index.js'] }; fs.writeFileSync('tsconfig.json', JSON.stringify(tsconfig, null, 2));\"",
        "generate-types": "npm run check-typescript && npm run create-tsconfig && npx tsc && node -e \"const fs = require('fs'); fs.rmSync('tsconfig.json');\"",
        "backup-readme": "node -e \"const fs = require('fs'); if (fs.existsSync('ReadMe.md')) { fs.renameSync('ReadMe.md', 'ReadMe.md.bak'); }\"",
        "use-package-readme": "node -e \"const fs = require('fs'); fs.renameSync('Package.md', 'ReadMe.md');\"",
        "restore-readme": "node -e \"const fs = require('fs'); fs.renameSync('ReadMe.md', 'Package.md'); if (fs.existsSync('ReadMe.md.bak')) { fs.renameSync('ReadMe.md.bak', 'ReadMe.md'); }\"",
        "cleanup-types": "node -e \"const fs = require('fs'); const path = require('path'); function deleteTypesRecursively(dir) { if (!fs.existsSync(dir)) return; const files = fs.readdirSync(dir); for (const file of files) { const filePath = path.join(dir, file); const stat = fs.statSync(filePath); if (stat.isDirectory()) { deleteTypesRecursively(filePath); } else if (file.endsWith('.d.ts')) { fs.rmSync(filePath); } } }; deleteTypesRecursively('.');\"",
        "prepublishOnly": "npm run generate-types && npm run backup-readme && npm run use-package-readme",
        "postpublish": "npm run restore-readme && npm run cleanup-types"
    },
    "keywords": [
        "universal",
        "common",
        "date",
        "dateonly",
        "datetime",
        "datetimeoffset",
        "datetimeformat",
        "guid",
        "mediatype",
        "time",
        "timeonly",
        "timespan",
        "uribuilder"
    ]
}