amazon-route-53-dns-zone-file
Version:
Makes DNS Zone File easy. Parses and validates BIND zone files and can be extended for custom features. Functionality is modular. Features are made open for extension and closed for runtime mutation. Written in TypeScript.
577 lines (576 loc) • 15 kB
JSON
{
"name": "amazon-route-53-dns-zone-file",
"version": "0.1.0",
"description": "Makes DNS Zone File easy. Parses and validates BIND zone files and can be extended for custom features. Functionality is modular. Features are made open for extension and closed for runtime mutation. Written in TypeScript.",
"main": "dist/cjs/2015/index.js",
"typings": "dist/index.d.ts",
"target:rollup:iife": "dist/rollup/index.iife.js",
"target:rollup:es": "dist/rollup/index.es.js",
"target:rollup:cjs": "dist/rollup/index.cjs.js",
"files": [
"dist/**",
"src/**",
"__tests__/**",
"example/**"
],
"scripts": {
"prepublishOnly": "npm run build",
"release": "npm run test && npm run build",
"start": "node dist/index.js",
"build": "rm -rf dist && npm run build:targets && npm run build:main && npm run build:rollup",
"build:rollup": "NODE_ENV=production rollup -c rollup.config.js",
"build:targets": "npm run build:es:2020 && npm run build:es:2018 && npm run build:es:2015 && npm run build:cjs:2020 && npm run build:cjs:2018 && npm run build:cjs:2015",
"build:main": "tsc --outDir dist --project tsconfig.build.json --declaration --declarationMap --extendedDiagnostics --inlineSourceMap --inlineSources --sourceMap false",
"build:es:2020": "tsc --project tsconfig.build.json --target es2020 --module es2020 --outDir ./dist/es/2020",
"build:es:2018": "tsc --project tsconfig.build.json --target es2018 --module es2020 --outDir ./dist/es/2018",
"build:es:2015": "tsc --project tsconfig.build.json --target es2015 --module es2020 --outDir ./dist/es/2015",
"build:cjs:2020": "tsc --project tsconfig.build.json --target es2020 --module commonjs --outDir ./dist/cjs/2020",
"build:cjs:2018": "tsc --project tsconfig.build.json --target es2018 --module commonjs --outDir ./dist/cjs/2018",
"build:cjs:2015": "tsc --project tsconfig.build.json --target es2015 --module commonjs --outDir ./dist/cjs/2015",
"dev:strict": "STRICT_TYPING=true npx ts-node-dev --n src/index.ts",
"dev:watch": "NODE_ENV=development ts-node-dev --respawn --transpileOnly src/index.ts",
"dev": "NODE_ENV=development ts-node src/index.ts",
"lint": "eslint './**/*.{js,ts,tsx}' --ignore-path .gitignore --quiet",
"lint:fix": "npm run lint -- --fix",
"prettier:write": "prettier --write './**/*.{js,ts,tsx,scss}' --ignore-path .gitignore",
"prettier:check": "prettier --check './**/*.{js,ts,tsx,scss}' --ignore-path .gitignore",
"fix": "npm run prettier:write && npm run lint:fix",
"test": "npm run test:ci",
"test:ci": "CI=true jest --coverage=true",
"test:quick": "jest --coverage=false",
"test:watch": "jest --coverage=false --watch",
"clean": "npm run clean:dependencies && npm run clean:artifacts",
"clean:dependencies": "rm -rf dist && rm -rf build",
"clean:artifacts": "rm -rf dist && rm -rf build"
},
"devDependencies": {
"@commitlint/cli": "^12.0.0",
"@commitlint/config-conventional": "^12.0.1",
"@types/eslint": "7.2.6",
"@types/node": "14.14.31",
"@types/jest": "26.0.20",
"@typescript-eslint/eslint-plugin": "4.16.1",
"@typescript-eslint/parser": "4.15.1",
"eslint": "7.20.0",
"eslint-plugin-import": "2.22.1",
"eslint-plugin-prettier": "3.3.1",
"husky": "^5.1.3",
"jest": "26.6.3",
"jest-cli": "26.6.3",
"jest-runner-eslint": "0.10.0",
"jest-runner-tsc": "1.6.0",
"lint-staged": "^10.5.4",
"prettier": "2.2.1",
"ts-jest": "26.5.2",
"ts-node": "9.1.1",
"ts-node-dev": "1.1.6",
"typescript": "4.2.3",
"rollup": "2.40.0",
"@rollup/plugin-replace": "2.4.1",
"@rollup/plugin-typescript": "8.2.0",
"rollup-plugin-terser": "7.0.2",
"tslib": "2.1.0"
},
"license": "Apache-2.0",
"homepage": "https://github.com/aws/amazon-route-53-dns-zone-file",
"author": {
"name": "Amazon Web Services",
"email": "",
"url": "https://aws.amazon.com/"
},
"contributors": [
"James Wiens <jwiens@amazon.com>"
],
"repository": {
"type": "git",
"url": "git@github.com:aws/amazon-route-53-dns-zone-file.git"
},
"keywords": [
"aws",
"amazon",
"route53",
"route 53",
"export zone file",
"dns zone file",
"validate zone file",
"extend zone file",
"custom zone file",
"zonefile",
"parse zonefile",
"bind format",
"import zone file",
"zone file",
"typescript",
"js"
],
"husky": {
"hooks": {
"pre-commit": "lint-staged",
"commit-msg": "commitlint -E HUSKY_GIT_PARAMS"
}
},
"commitlint": {
"extends": [
"@commitlint/config-conventional"
]
},
"lint-staged": {
"./**/*.{js,ts,tsx}": [
"npm run lint"
],
"./**/*.{js,ts,tsx,scss}": [
"npm run prettier:write",
"git add"
]
},
"prettier": {
"jsxBracketSameLine": true,
"proseWrap": "preserve",
"printWidth": 80,
"semi": true,
"tabWidth": 2,
"singleQuote": true,
"useTabs": false,
"parser": "typescript",
"trailingComma": "es5",
"arrowParens": "avoid"
},
"jest:projects": [
{
"displayName": "unit tests",
"globals": {
"ts-jest": {
"tsconfig": "tsconfig.test.json",
"isolatedModules": true
}
}
},
{
"displayName": "lint",
"runner": "jest-runner-eslint",
"testMatch": [
"<rootDir>/**/*.{js,jsx,ts,tsx}"
],
"watchPlugins": [
"jest-runner-eslint/watch-fix"
]
},
{
"displayName": "tsc",
"runner": "jest-runner-tsc",
"testMatch": [
"<rootDir>/**/*.{js,jsx,ts,tsx}"
],
"globals": {
"ts-jest": {
"tsconfig": "tsconfig.test.json"
}
}
}
],
"jest": {
"preset": "ts-jest",
"globals": {
"ts-jest": {
"tsconfig": "tsconfig.test.json",
"isolatedModules": true
}
},
"clearMocks": true,
"collectCoverage": true,
"coverageReporters": [
"text",
"cobertura",
"json",
"clover",
"lcov"
],
"coverageThreshold": {
"global": {
"branches": 80,
"functions": 80,
"lines": 80,
"statements": 95
}
},
"collectCoverageFrom": [
"src/**/*.{js,ts,tsx}",
"!src/**/*.d.ts"
],
"coverageDirectory": "<rootDir>/dist/coverage",
"moduleFileExtensions": [
"js",
"json",
"tsx",
"ts"
],
"transform": {
"^.+\\.(ts|tsx|js)?$": "ts-jest"
},
"testMatch": [
"<rootDir>/__tests__/**/*.test.(ts|tsx)"
],
"verbose": true,
"reporters": [
"default"
]
},
"eslintConfig": {
"plugins": [
"import",
"prettier",
"@typescript-eslint"
],
"parser": "@typescript-eslint/parser",
"parserOptions": {
"project": "./tsconfig.eslint.json",
"ecmaVersion": 2021,
"sourceType": "module",
"ecmaFeatures": {
"modules": true,
"impliedStrict": true
}
},
"extends": [
"plugin:@typescript-eslint/recommended",
"prettier/@typescript-eslint",
"plugin:import/typescript"
],
"rules": {
"import/no-unresolved": "off",
"eol-last": "error",
"semi": [
"error",
"always"
],
"no-multi-spaces": "off",
"semi-spacing": "error",
"key-spacing": [
2
],
"comma-dangle": [
"error",
{
"arrays": "always-multiline",
"objects": "always-multiline",
"imports": "always-multiline",
"exports": "always-multiline",
"functions": "never"
}
],
"padded-blocks": [
"error",
"never"
],
"keyword-spacing": [
"error",
{
"before": true,
"after": true
}
],
"max-len": [
"warn",
{
"code": 80,
"ignoreComments": true,
"ignoreUrls": true,
"ignoreTemplateLiterals": true,
"ignoreRegExpLiterals": true,
"ignoreStrings": true
}
],
"object-curly-spacing": [
"error",
"always"
],
"array-bracket-spacing": [
"error",
"never"
],
"quotes": [
1,
"single",
{
"allowTemplateLiterals": true,
"avoidEscape": true
}
],
"indent": "off",
"no-trailing-spaces": [
"error",
{
"skipBlankLines": true
}
],
"space-infix-ops": "off",
"space-before-blocks": [
"error",
{
"functions": "always",
"keywords": "always",
"classes": "always"
}
],
"no-invalid-regexp": "warn",
"no-fallthrough": "warn",
"no-unreachable": "warn",
"no-shadow-restricted-names": "error",
"no-new-require": "error",
"no-mixed-spaces-and-tabs": "error",
"no-empty": "error",
"no-undef": "off",
"no-dupe-keys": "error",
"no-empty-character-class": "error",
"no-self-compare": "error",
"no-plusplus": [
"error",
{
"allowForLoopAfterthoughts": true
}
],
"valid-typeof": "error",
"handle-callback-err": "error",
"max-depth": [
"warn",
4
],
"max-statements": [
"error",
50
],
"function-paren-newline": "off",
"brace-style": [
"error",
"1tbs",
{
"allowSingleLine": false
}
],
"curly": [
"error",
"all"
],
"import/no-extraneous-dependencies": "off",
"arrow-spacing": [
"error",
{
"before": true,
"after": true
}
],
"space-in-parens": [
"error",
"never"
],
"space-before-function-paren": [
"error",
"never"
],
"func-style": [
"error",
"declaration",
{
"allowArrowFunctions": true
}
],
"arrow-body-style": "off",
"arrow-parens": [
"error",
"as-needed"
],
"no-return-assign": [
"error",
"always"
],
"func-names": "off",
"template-tag-spacing": [
"error",
"never"
],
"func-call-spacing": "error",
"no-param-reassign": "warn",
"prefer-rest-params": "warn",
"import/extensions": "off",
"import/no-named-as-default": "off",
"import/export": "error",
"no-continue": "off",
"no-loop-func": "error",
"camelcase": "error",
"new-cap": "off",
"id-length": [
"warn",
{
"min": 2,
"properties": "always",
"exceptions": [
"x",
"i",
"R",
"_"
]
}
],
"id-denylist": [
"error",
"err",
"e",
"cb",
"callback"
],
"object-shorthand": [
"warn",
"always",
{
"avoidQuotes": true
}
],
"valid-jsdoc": [
"off"
],
"no-case-declarations": "off",
"strict": "off",
"no-underscore-dangle": "off",
"no-mixed-requires": "off",
"no-process-exit": "off",
"no-warning-comments": "off",
"no-confusing-arrow": "off",
"require-jsdoc": "off",
"class-methods-use-this": "off",
"no-process-env": "off",
"prefer-reflect": "off",
"nonblock-statement-body-position": "off",
"prefer-destructuring": "off",
"prefer-template": "off",
"global-require": "off",
"no-invalid-this": "off",
"prefer-const": "error",
"no-undefined": "off",
"prefer-spread": "off",
"no-implicit-coercion": "off",
"no-bitwise": "off",
"no-use-before-define": "off",
"import/no-duplicates": "off",
"no-duplicate-imports": "off",
"import/no-namespace": "off",
"@typescript-eslint/no-namespace": "off",
"@typescript-eslint/no-empty-function": "warn",
"@typescript-eslint/no-unused-vars": "off",
"@typescript-eslint/no-inferrable-types": "off",
"@typescript-eslint/no-var-requires": "off",
"@typescript-eslint/naming-convention": [
"error",
{
"selector": "default",
"filter": "(.*)namespace(.*)",
"format": [
"StrictPascalCase"
],
"custom": {
"regex": "[A-Z]Typings$",
"match": false
}
},
{
"selector": "interface",
"format": [
"PascalCase"
],
"custom": {
"regex": "^I[A-Z]",
"match": false
}
},
{
"selector": "typeAlias",
"format": [
"PascalCase"
]
},
{
"selector": "variable",
"format": [
"strictCamelCase",
"UPPER_CASE"
],
"leadingUnderscore": "allow",
"trailingUnderscore": "allow"
},
{
"selector": [
"enumMember"
],
"format": [
"PascalCase"
]
},
{
"selector": [
"enum"
],
"format": [
"PascalCase"
],
"custom": {
"regex": "[A-Z]Kind$",
"match": false
}
},
{
"selector": [
"function"
],
"format": [
"CamelCase"
],
"leadingUnderscore": "allow"
},
{
"selector": "variable",
"types": [
"boolean"
],
"format": [
"PascalCase"
],
"prefix": [
"is",
"should",
"has",
"can",
"did",
"will"
]
}
],
"@typescript-eslint/ban-types": "warn",
"@typescript-eslint/ban-ts-comment": "warn",
"@typescript-eslint/prefer-as-const": "warn",
"@typescript-eslint/no-explicit-any": "off",
"@typescript-eslint/explicit-function-return-type": "off",
"@typescript-eslint/no-parameter-properties": "off",
"@typescript-eslint/prefer-interface": "off",
"@typescript-eslint/explicit-member-accessibility": [
"error",
{
"accessibility": "explicit",
"overrides": {
"accessors": "explicit",
"constructors": "no-public",
"methods": "explicit",
"properties": "off",
"parameterProperties": "explicit"
}
}
],
"@typescript-eslint/no-shadow": [
"error"
]
},
"env": {
"es6": true,
"node": true,
"browser": true
}
}
}