{
	"name": "@alessiofrittoli/crypto-otp",
	"version": "3.0.1",
	"description": "Lightweight TypeScript HOTP/TOTP library",
	"author": {
		"name": "Alessio Frittoli",
		"email": "info@alessiofrittoli.it",
		"url": "https://alessiofrittoli.it"
	},
	"license": "MIT",
	"keywords": [
		"crypto",
		"security",
		"cyber-security",
		"authorization",
		"auth-cerimony",
		"otp",
		"otpauth",
		"one-time-password",
		"one-time-passwords",
		"hotp",
		"hmac-one-time-passwords",
		"time-based-one-time-passwords",
		"totp"
	],
	"homepage": "https://github.com/alessiofrittoli/crypto-otp#readme",
	"bugs": {
		"url": "https://github.com/alessiofrittoli/crypto-otp/issues",
		"email": "info@alessiofrittoli.it"
	},
	"repository": {
		"type": "git",
		"url": "git+https://github.com/alessiofrittoli/crypto-otp.git"
	},
	"main": "./dist/index.js",
	"module": "./dist/index.mjs",
	"types": "./dist/index.d.ts",
	"files": [
		"dist"
	],
	"exports": {
		".": {
			"import": {
				"types": "./dist/index.d.mts",
				"default": "./dist/index.mjs"
			},
			"require": {
				"types": "./dist/index.d.ts",
				"default": "./dist/index.js"
			}
		},
		"./types": {
			"import": {
				"types": "./dist/index.d.mts"
			},
			"require": {
				"types": "./dist/index.d.ts"
			}
		}
	},
	"sideEffects": false,
	"scripts": {
		"//1a": "*********************************************************************",
		"//1b": "******************** DEV - BUILD - LINT - RELEASE *******************",
		"//1c": "*********************************************************************",
		"dev": "NODE_ENV=development tsup --watch",
		"build:prod": "NODE_ENV=production tsup",
		"build": "pnpm lint && pnpm test:ci && pnpm build:prod",
		"lint": "eslint",
		"release": "node scripts/publish.js --verbose --npm",
		"//2a": "*********************************************************************",
		"//2b": "***************************** UNIT TESTS ****************************",
		"//2c": "*********************************************************************",
		"test": "jest --verbose",
		"test:watch": "jest --watchAll --verbose",
		"test:ci": "jest --ci --verbose",
		"//3a": "*********************************************************************",
		"//3b": "************************ UNIT TESTS COVERAGE ************************",
		"//3c": "*********************************************************************",
		"test:coverage": "pnpm test:watch --coverage",
		"test:coverage:ci": "pnpm test:ci --coverage",
		"test:serve-coverage": "http-server ./coverage/lcov-report --gzip true -p 0 -o --silent",
		"test:coverage:serve": "concurrently --prefix none --kill-others \"pnpm test:coverage\" \"pnpm test:serve-coverage\"",
		"//4a": "*********************************************************************",
		"//4b": "************************ TARGETED UNIT TESTS ************************",
		"//4c": "*********************************************************************",
		"test:otp": "pnpm test:watch otp.test.ts",
		"test:hotp": "pnpm test:watch hotp.test.ts",
		"test:totp": "pnpm test:watch totp.test.ts"
	},
	"devDependencies": {
		"@alessiofrittoli/node-scripts": "^2.6.0",
		"@eslint/js": "^9.27.0",
		"@jest/globals": "^29.7.0",
		"@types/jest": "^29.5.14",
		"@types/node": "^22.15.21",
		"concurrently": "^9.1.2",
		"dotenv": "^16.5.0",
		"eslint": "^9.27.0",
		"globals": "^16.2.0",
		"http-server": "^14.1.1",
		"jest": "^29.7.0",
		"ts-jest": "^29.3.4",
		"ts-node": "^10.9.2",
		"tsup": "^8.5.0",
		"typescript": "^5.8.3",
		"typescript-eslint": "^8.32.1"
	},
	"dependencies": {
		"@alessiofrittoli/crypto-algorithm": "^2.3.0",
		"@alessiofrittoli/crypto-encoder": "^2.4.0",
		"@alessiofrittoli/crypto-key": "^3.2.0",
		"@alessiofrittoli/exception": "^3.2.0",
		"@alessiofrittoli/math-utils": "^1.13.0",
		"@alessiofrittoli/type-utils": "^1.8.0",
		"@alessiofrittoli/url-utils": "^3.5.0"
	},
	"pnpm": {
		"onlyBuiltDependencies": [
			"@alessiofrittoli/type-utils",
			"esbuild"
		]
	}
}
