345bb18575
Rather than including all of this external code in the PDF.js repository, we should be using the npm package instead. Unfortunately this is slightly more complicated than you'd hope, since the `fit-curve` package (which is older) isn't directly compatible with modern JavaScript modules. In particular, the following cases needed to be considered: - For the development viewer (i.e. `gulp server`) and the unit-tests, we thus need to build a fitCurve-bundle that can be directly `import`ed. - For the actual PDF.js build-targets, we can slightly reduce the sizes by depending on the "raw" `fit-curve` source-code. - For the Node.js unit-tests, the `fit-curve` package can be used as-is.
243 lines
7.4 KiB
Plaintext
243 lines
7.4 KiB
Plaintext
{
|
|
"parserOptions": {
|
|
"ecmaVersion": 2022,
|
|
"sourceType": "module",
|
|
},
|
|
|
|
"plugins": [
|
|
"import",
|
|
"json",
|
|
"mozilla",
|
|
"no-unsanitized",
|
|
"sort-exports",
|
|
"unicorn",
|
|
],
|
|
|
|
"extends": [
|
|
"plugin:json/recommended",
|
|
"plugin:prettier/recommended"
|
|
],
|
|
|
|
"env": {
|
|
"browser": true,
|
|
"es2022": true,
|
|
"worker": true,
|
|
"amd": true,
|
|
},
|
|
|
|
"globals": {
|
|
"PDFJSDev": false,
|
|
"exports": false,
|
|
"SystemJS": false,
|
|
},
|
|
|
|
"rules": {
|
|
// Plugins
|
|
"import/extensions": ["error", "always", { "ignorePackages": true, }],
|
|
"import/no-unresolved": ["error", {
|
|
"ignore": ["pdfjs", "pdfjs-lib", "pdfjs-web", "pdfjs-fitCurve"]
|
|
}],
|
|
"mozilla/avoid-removeChild": "error",
|
|
"mozilla/use-includes-instead-of-indexOf": "error",
|
|
"no-unsanitized/method": "error",
|
|
"no-unsanitized/property": "error",
|
|
"sort-exports/sort-exports": ["error", {
|
|
"ignoreCase": true,
|
|
}],
|
|
"unicorn/no-abusive-eslint-disable": "error",
|
|
"unicorn/no-array-push-push": "error",
|
|
"unicorn/no-new-buffer": "error",
|
|
"unicorn/no-instanceof-array": "error",
|
|
"unicorn/no-useless-spread": "error",
|
|
"unicorn/prefer-array-flat": "error",
|
|
"unicorn/prefer-array-flat-map": "error",
|
|
"unicorn/prefer-array-index-of": "error",
|
|
"unicorn/prefer-at": "error",
|
|
"unicorn/prefer-date-now": "error",
|
|
"unicorn/prefer-dom-node-append": "error",
|
|
"unicorn/prefer-dom-node-remove": "error",
|
|
"unicorn/prefer-modern-dom-apis": "error",
|
|
"unicorn/prefer-string-starts-ends-with": "error",
|
|
|
|
// Possible errors
|
|
"for-direction": "error",
|
|
"getter-return": "error",
|
|
"no-async-promise-executor": "error",
|
|
"no-cond-assign": ["error", "except-parens"],
|
|
"no-constant-condition": ["error", { "checkLoops": false, }],
|
|
"no-debugger": "error",
|
|
"no-dupe-args": "error",
|
|
"no-dupe-else-if": "error",
|
|
"no-dupe-keys": "error",
|
|
"no-duplicate-case": "error",
|
|
"no-empty": ["error", { "allowEmptyCatch": true, }],
|
|
"no-empty-character-class": "error",
|
|
"no-ex-assign": "error",
|
|
"no-extra-boolean-cast": "error",
|
|
"no-func-assign": "error",
|
|
"no-inner-declarations": ["error", "functions"],
|
|
"no-invalid-regexp": "error",
|
|
"no-irregular-whitespace": "error",
|
|
"no-loss-of-precision": "error",
|
|
"no-obj-calls": "error",
|
|
"no-promise-executor-return": "error",
|
|
"no-regex-spaces": "error",
|
|
"no-setter-return": "error",
|
|
"no-sparse-arrays": "error",
|
|
"no-template-curly-in-string": "error",
|
|
"no-unexpected-multiline": "error",
|
|
"no-unreachable": "error",
|
|
"no-unsafe-finally": "error",
|
|
"no-unsafe-negation": "error",
|
|
"no-unsafe-optional-chaining": ["error", { "disallowArithmeticOperators": true }],
|
|
"no-unused-private-class-members": "error",
|
|
"use-isnan": ["error", { "enforceForIndexOf": true, }],
|
|
"valid-typeof": ["error", { "requireStringLiterals": true, }],
|
|
|
|
// Best Practices
|
|
"accessor-pairs": ["error", {
|
|
"setWithoutGet": true,
|
|
"enforceForClassMembers": true,
|
|
}],
|
|
"consistent-return": "error",
|
|
"curly": ["error", "all"],
|
|
"default-case-last": "error",
|
|
"dot-notation": "error",
|
|
"eqeqeq": ["error", "always"],
|
|
"grouped-accessor-pairs": ["error", "getBeforeSet"],
|
|
"no-alert": "error",
|
|
"no-caller": "error",
|
|
"no-else-return": "error",
|
|
"no-empty-pattern": "error",
|
|
"no-eval": "error",
|
|
"no-extend-native": "error",
|
|
"no-extra-bind": "error",
|
|
"no-extra-label": "error",
|
|
"no-fallthrough": "error",
|
|
"no-floating-decimal": "error",
|
|
"no-global-assign": "error",
|
|
"no-implied-eval": "error",
|
|
"no-iterator": "error",
|
|
"no-lone-blocks": "error",
|
|
"no-multi-str": "error",
|
|
"no-new-func": "error",
|
|
"no-new-wrappers": "error",
|
|
"no-new": "error",
|
|
"no-octal-escape": "error",
|
|
"no-octal": "error",
|
|
"no-redeclare": "error",
|
|
"no-return-await": "error",
|
|
"no-self-assign": "error",
|
|
"no-self-compare": "error",
|
|
"no-throw-literal": "error",
|
|
"no-unused-expressions": "error",
|
|
"no-unused-labels": "error",
|
|
"no-useless-call": "error",
|
|
"no-useless-catch": "error",
|
|
"no-useless-concat": "error",
|
|
"no-useless-escape": "error",
|
|
"no-useless-return": "error",
|
|
"prefer-promise-reject-errors": "error",
|
|
"wrap-iife": ["error", "any"],
|
|
"yoda": ["error", "never", {
|
|
"exceptRange": true,
|
|
}],
|
|
|
|
// Strict Mode
|
|
"strict": ["off", "global"],
|
|
|
|
// Variables
|
|
"no-delete-var": "error",
|
|
"no-label-var": "error",
|
|
"no-shadow": "error",
|
|
"no-shadow-restricted-names": "error",
|
|
"no-undef-init": "error",
|
|
"no-undef": ["error", { "typeof": true, }],
|
|
"no-unused-vars": ["error", {
|
|
"vars": "local",
|
|
"args": "none",
|
|
}],
|
|
"no-use-before-define": ["error", {
|
|
"functions": false,
|
|
"classes": false,
|
|
"variables": false,
|
|
}],
|
|
|
|
// Stylistic Issues
|
|
"lines-between-class-members": ["error", "always"],
|
|
"max-len": ["error", {
|
|
"code": 1000,
|
|
"comments": 80,
|
|
"ignoreUrls": true
|
|
}],
|
|
"new-cap": ["error", { "newIsCap": true, "capIsNew": false, }],
|
|
"no-array-constructor": "error",
|
|
"no-multiple-empty-lines": ["error", { "max": 1, "maxEOF": 0, "maxBOF": 1, }],
|
|
"no-nested-ternary": "error",
|
|
"no-new-object": "error",
|
|
"no-restricted-syntax": ["error",
|
|
{
|
|
"selector": "BinaryExpression[operator='instanceof'][right.name='Object']",
|
|
"message": "Use `typeof` rather than `instanceof Object`.",
|
|
},
|
|
{
|
|
"selector": "CallExpression[callee.name='assert'][arguments.length!=2]",
|
|
"message": "`assert()` must always be invoked with two arguments.",
|
|
},
|
|
{
|
|
"selector": "CallExpression[callee.name='isCmd'][arguments.length<2]",
|
|
"message": "Use `instanceof Cmd` rather than `isCmd()` with one argument.",
|
|
},
|
|
{
|
|
"selector": "CallExpression[callee.name='isDict'][arguments.length<2]",
|
|
"message": "Use `instanceof Dict` rather than `isDict()` with one argument.",
|
|
},
|
|
{
|
|
"selector": "CallExpression[callee.name='isName'][arguments.length<2]",
|
|
"message": "Use `instanceof Name` rather than `isName()` with one argument.",
|
|
},
|
|
{
|
|
"selector": "NewExpression[callee.name='Cmd']",
|
|
"message": "Use `Cmd.get()` rather than `new Cmd()`.",
|
|
},
|
|
{
|
|
"selector": "NewExpression[callee.name='Name']",
|
|
"message": "Use `Name.get()` rather than `new Name()`.",
|
|
},
|
|
{
|
|
"selector": "NewExpression[callee.name='Ref']",
|
|
"message": "Use `Ref.get()` rather than `new Ref()`.",
|
|
},
|
|
],
|
|
"no-unneeded-ternary": "error",
|
|
"operator-assignment": "error",
|
|
"prefer-exponentiation-operator": "error",
|
|
"spaced-comment": ["error", "always", {
|
|
"block": {
|
|
"balanced": true,
|
|
}
|
|
}],
|
|
|
|
// ECMAScript 6
|
|
"constructor-super": "error",
|
|
"no-class-assign": "error",
|
|
"no-confusing-arrow": "error",
|
|
"no-const-assign": "error",
|
|
"no-dupe-class-members": "error",
|
|
"no-duplicate-imports": "error",
|
|
"no-this-before-super": "error",
|
|
"no-useless-computed-key": "error",
|
|
"no-useless-constructor": "error",
|
|
"no-useless-rename": "error",
|
|
"no-var": "error",
|
|
"object-shorthand": ["error", "always", {
|
|
"avoidQuotes": true,
|
|
}],
|
|
"prefer-const": "error",
|
|
"sort-imports": ["error", {
|
|
"ignoreCase": true,
|
|
}],
|
|
"template-curly-spacing": ["error", "never"],
|
|
},
|
|
}
|