From dc7f2fa6e7518e4f0e91e65fe0c9241f23d0ff31 Mon Sep 17 00:00:00 2001 From: Tiago Porto Date: Mon, 6 Jan 2025 17:46:55 -0300 Subject: [PATCH] Add eslint/config --- .eslintrc | 254 -- .github/workflows/checks.yml | 48 + .gitignore | 1 + .nvmrc | 1 + config.json | 18 +- dist/apple-touch-icon.png | Bin 15862 -> 0 bytes dist/css/accessibility-buttons.css | 38 - dist/css/accessibility-buttons.min.css | 7 - dist/css/demo.css | 413 ---- dist/css/demo.min.css | 7 - dist/favicon.ico | Bin 99678 -> 0 bytes dist/fonts/.gitkeep | 0 dist/img/logos/accessibility-buttons-logo.eps | Bin 390862 -> 0 bytes dist/img/logos/accessibility-buttons-logo.png | Bin 16457 -> 0 bytes dist/img/logos/accessibility-buttons-logo.svg | 35 - dist/img/touch/chrome-touch-icon-192x192.png | Bin 833 -> 0 bytes dist/img/touch/icon-128x128.png | Bin 646 -> 0 bytes dist/img/touch/tile-wide.png | Bin 927 -> 0 bytes dist/img/touch/tile.png | Bin 1586 -> 0 bytes dist/index.html | 178 -- dist/js/accessibility-buttons.js | 168 -- dist/js/scripts.js | 71 - dist/js/scripts.min.js | 1 - dist/js/vendors.js | 40 - dist/js/vendors.min.js | 1 - dist/service-worker.js | 45 - dist/site.webmanifest | 21 - eslint.config.mjs | 8 + gulpfile.js | 847 ++++--- karma.conf.js | 146 +- package-lock.json | 2039 ++++++++++++----- package.json | 8 +- spec/buttons.js | 82 +- spec/init.js | 76 +- src/scripts/accessibility-buttons_SEPARATE.js | 284 +-- src/scripts/demo.js | 113 +- src/scripts/settings/google_analytics.js | 23 +- 37 files changed, 2386 insertions(+), 2587 deletions(-) delete mode 100644 .eslintrc create mode 100644 .github/workflows/checks.yml create mode 100644 .nvmrc delete mode 100644 dist/apple-touch-icon.png delete mode 100644 dist/css/accessibility-buttons.css delete mode 100644 dist/css/accessibility-buttons.min.css delete mode 100644 dist/css/demo.css delete mode 100644 dist/css/demo.min.css delete mode 100644 dist/favicon.ico delete mode 100644 dist/fonts/.gitkeep delete mode 100644 dist/img/logos/accessibility-buttons-logo.eps delete mode 100644 dist/img/logos/accessibility-buttons-logo.png delete mode 100644 dist/img/logos/accessibility-buttons-logo.svg delete mode 100644 dist/img/touch/chrome-touch-icon-192x192.png delete mode 100644 dist/img/touch/icon-128x128.png delete mode 100644 dist/img/touch/tile-wide.png delete mode 100644 dist/img/touch/tile.png delete mode 100644 dist/index.html delete mode 100644 dist/js/accessibility-buttons.js delete mode 100644 dist/js/scripts.js delete mode 100644 dist/js/scripts.min.js delete mode 100644 dist/js/vendors.js delete mode 100644 dist/js/vendors.min.js delete mode 100644 dist/service-worker.js delete mode 100644 dist/site.webmanifest create mode 100644 eslint.config.mjs diff --git a/.eslintrc b/.eslintrc deleted file mode 100644 index 0d74231..0000000 --- a/.eslintrc +++ /dev/null @@ -1,254 +0,0 @@ -{ - // http://eslint.org/docs/rules/ - - "ecmaFeatures": { - "arrowFunctions": false, // enable arrow functions - "binaryLiterals": false, // enable binary literals - "blockBindings": false, // enable let and const (aka block bindings) - "classes": false, // enable classes - "defaultParams": false, // enable default function parameters - "destructuring": false, // enable destructuring - "forOf": false, // enable for-of loops - "generators": false, // enable generators - "modules": false, // enable modules and global strict mode - "objectLiteralComputedProperties": false, // enable computed object literal property names - "objectLiteralDuplicateProperties": false, // enable duplicate object literal properties in strict mode - "objectLiteralShorthandMethods": false, // enable object literal shorthand methods - "objectLiteralShorthandProperties": false, // enable object literal shorthand properties - "octalLiterals": false, // enable octal literals - "regexUFlag": false, // enable the regular expression u flag - "regexYFlag": false, // enable the regular expression y flag - "restParams": false, // enable the rest parameters - "spread": false, // enable the spread operator - "superInFunctions": false, // enable super references inside of functions - "templateStrings": false, // enable template strings - "unicodeCodePointEscapes": false, // enable code point escapes - "globalReturn": false, // allow return statements in the global scope - "jsx": false // enable JSX - }, - - "env": { - "amd": false, // defines require() and define() as global variables as per the amd spec - "applescript": false, // AppleScript global variables. - "browser": true, // browser global variables - "commonjs": false, // CommonJS global variables and CommonJS scoping - // (use this for browser-only code that uses Browserify/WebPack). - "embertest": false, // Ember test helper globals. - "es6": true, // enable all ECMAScript 6 features except for modules. - "jasmine": false, // adds all of the Jasmine testing global variables for version 1.3 and 2.0 - "jest": false, // Jest global variables. - "jquery": true, // jquery global variables - "meteor": false, // Meteor global variables. - "mocha": false, // adds all of the Mocha testing global variables - "mongo": false, // MongoDB global variables. - "nashorn": false, // Java 8 Nashorn global variables. - "node": false, // Node.js global variables and Node.js-specific rules - "phantomjs": false, // phantomjs global variables - "prototypejs": false, // Prototype.js global variables. - "protractor": false, // Protractor global variables. - "qunit": false, // QUnit global variables. - "serviceworker": false, // Service Worker global variables. - "shelljs": false, // shelljs global variables - "webextensions": false, // WebExtensions globals. - "worker": false, // web workers global variables. - }, - - "globals": { - // additional predefined global variables - "ga": true - }, - - "plugins": [ - // e.g. "react" (must run `npm install eslint-plugin-react` first) - ], - - "rules": { - ////////// Possible Errors ////////// - - "comma-dangle": ["error", "never"], // disallow trailing commas in object literals - "no-cond-assign": "error", // disallow assignment in conditional expressions - "no-console": "error", // disallow use of console (off by default in the node environment) - "no-constant-condition": "error", // disallow use of constant expressions in conditions - "no-control-regex": "off", // disallow control characters in regular expressions - "no-debugger": "warn", // disallow use of debugger - "no-dupe-args": "error", // disallow duplicate arguments in functions - "no-dupe-keys": "error", // disallow duplicate keys when creating object literals - "no-duplicate-case": "error", // disallow a duplicate case label - "no-empty-character-class": "error", // disallow the use of empty character classes in regular expressions - "no-empty": "error", // disallow empty statements - "no-ex-assign": "error", // disallow assigning to the exception in a catch block - "no-extra-boolean-cast": "error", // disallow double-negation boolean casts in a boolean context - "no-extra-parens": "off", // disallow unnecessary parentheses (off by default) - "no-extra-semi": "error", // disallow unnecessary semicolons - "no-func-assign": "error", // disallow overwriting functions written as function declarations - "no-inner-declarations": ["error", "functions"], // disallow function or variable declarations in nested blocks - "no-invalid-regexp": "error", // disallow invalid regular expression strings in the RegExp constructor - "no-irregular-whitespace": "error", // disallow irregular whitespace outside of strings and comments - "no-negated-in-lhs": "error", // disallow negation of the left operand of an in expression - "no-obj-calls": "error", // disallow the use of object properties of the global object (Math and JSON) as functions - "no-regex-spaces": "error", // disallow multiple spaces in a regular expression literal - "no-reserved-keys": "off", // disallow reserved words being used as object literal keys (off by default) - "no-sparse-arrays": "error", // disallow sparse arrays - "no-unreachable": "error", // disallow unreachable statements after a return, throw, continue, or break statement - "use-isnan": "error", // disallow comparisons with the value NaN - "valid-jsdoc": "off", // Ensure JSDoc comments are valid (off by default) - "valid-typeof": "error", // Ensure that the results of typeof are compared against a valid string - "no-unexpected-multiline": "off", // Avoid code that looks like two expressions but is actually one (off by default) - - - ////////// Best Practices ////////// - - "accessor-pairs": "off", // enforces getter/setter pairs in objects (off by default) - "block-scoped-var": "off", // treat var statements as if they were block scoped (off by default) - "complexity": ["off", 11], // specify the maximum cyclomatic complexity allowed in a program (off by default) - "consistent-return": "off", // require return statements to either always or never specify values - "curly": ["error", "all"], // specify curly brace conventions for all control statements - "default-case": "off", // require default case in switch statements (off by default) - "dot-notation": ["warn", { "allowKeywords": true }], // encourages use of dot notation whenever possible - "dot-location": "off", // enforces consistent newlines before or after dots (off by default) - "eqeqeq": "error", // require the use of === and !== - "guard-for-in": "error", // make sure for-in loops have an if statement (off by default) - "no-alert": "off", // disallow the use of alert, confirm, and prompt - "no-caller": "error", // disallow use of arguments.caller or arguments.callee - "no-div-regex": "off", // disallow division operators explicitly at beginning of regular expression (off by default) - "no-else-return": "off", // disallow else after a return in an if (off by default) - "no-empty-label": "off", // disallow use of labels for anything other than loops and switches - "no-eq-null": "error", // disallow comparisons to null without a type-checking operator (off by default) - "no-eval": "error", // disallow use of eval() - "no-extend-native": "off", // disallow adding to native types - "no-extra-bind": "off", // disallow unnecessary function binding - "no-fallthrough": "error", // disallow fallthrough of case statements - "no-floating-decimal": "off", // disallow the use of leading or trailing decimal points in numeric literals (off by default) - "no-implied-eval": "off", // disallow use of eval()-like methods - "no-iterator": "error", // disallow usage of __iterator__ property - "no-labels": "off", // disallow use of labeled statements - "no-lone-blocks": "off", // disallow unnecessary nested blocks - "no-loop-func": "error", // disallow creation of functions within loops - "no-multi-spaces": "warn", // disallow use of multiple spaces - "no-multi-str": "off", // disallow use of multiline strings - "no-native-reassign": "off", // disallow reassignments of native objects - "no-new-func": "warn", // disallow use of new operator for Function object - "no-new-wrappers": "off", // disallows creating new instances of String, Number, and Boolean - "no-new": "error", // disallow use of new operator when not part of the assignment or comparison - "no-octal-escape": "off", // disallow use of octal escape sequences in string literals, such as var foo = "Copyright \251"; - "no-octal": "error", // disallow use of octal literals - "no-param-reassign": "off", // disallow reassignment of function parameters (off by default) - "no-process-env": "off", // disallow use of process.env (off by default) - "no-proto": "error", // disallow usage of __proto__ property - "no-redeclare": "error", // disallow declaring the same variable more than once - "no-return-assign": "off", // disallow use of assignment in return statement - "no-script-url": "error", // disallow use of javascript: urls - "no-self-compare": "off", // disallow comparisons where both sides are exactly the same (off by default) - "no-sequences": "off", // disallow use of comma operator - "no-throw-literal": "off", // restrict what can be thrown as an exception (off by default) - "no-unused-expressions": "off", // disallow usage of expressions in statement position - "no-void": "off", // disallow use of void operator (off by default) - "no-warning-comments": ["off", { "terms": ["todo", "fixme", "xxx"], "location": "start" }], // disallow usage of configurable warning terms in comments, e.g. TODO or FIXME (off by default) - "no-with": "off", // disallow use of the with statement - "radix": "off", // require use of the second argument for parseInt() (off by default) - "vars-on-top": "off", // requires to declare all vars on top of their containing scope (off by default) - "wrap-iife": "off", // require immediate function invocation to be wrapped in parentheses (off by default) - "yoda": ["off", "never"], // require or disallow Yoda conditions - - - ////////// Strict Mode ////////// - - "strict": ["error", "function"], // controls location of Use Strict Directives - - - ////////// Variables ////////// - - "no-catch-shadow": "off", // disallow the catch clause parameter name being the same as a variable in the outer scope (off by default in the node environment) - "no-delete-var": "off", // disallow deletion of variables - "no-label-var": "off", // disallow labels that share a name with a variable - "no-shadow": "off", // disallow declaration of variables already declared in the outer scope - "no-shadow-restricted-names": "off", // disallow shadowing of names such as arguments - "no-undef": "error", // disallow use of undeclared variables unless mentioned in a /*global */ block - "no-undef-init": "off", // disallow use of undefined when initializing variables - "no-undefined": "off", // disallow use of undefined variable (off by default) - "no-unused-vars": "error", // disallow declaration of variables that are not used in the code - "no-use-before-define": "off", // disallow use of variables before they are defined - - - ////////// Node.js ////////// - - "handle-callback-err": "off", // enforces error handling in callbacks (off by default) (on by default in the node environment) - "no-mixed-requires": ["off", false], // disallow mixing regular variable and require declarations (off by default) (on by default in the node environment) - "no-new-require": "off", // disallow use of new operator with the require function (off by default) (on by default in the node environment) - "no-path-concat": "off", // disallow string concatenation with __dirname and __filename (off by default) (on by default in the node environment) - "no-process-exit": "off", // disallow process.exit() (on by default in the node environment) - "no-restricted-modules": "off", // restrict usage of specified node modules (off by default) - "no-sync": "off", // disallow use of synchronous methods (off by default) - - - ////////// Stylistic Issues ////////// - - "array-bracket-spacing": ["warn", "never"], // enforce spacing inside array brackets (off by default) - "brace-style": ["error", "1tbs"], // enforce one true brace style (off by default) - "camelcase": "warn", // require camel case names - "comma-spacing": ["warn", { "before": false, "after": true }], // enforce spacing before and after comma - "comma-style": ["error", "last"], // enforce one true comma style (off by default) - "computed-property-spacing": ["warn", "never"], // require or disallow padding inside computed properties (off by default) - "consistent-this": ["warn", "context"], // enforces consistent naming when capturing the current execution context (off by default) - "eol-last": "warn", // enforce newline at the end of file, with no multiple empty lines - "func-names": "off", // require function expressions to have a name (off by default) - "func-style": ["error", "declaration", { "allowArrowFunctions": true }], // enforces use of function declarations or expressions (off by default) - "indent": ["error", 4, { "VariableDeclarator": { "var": 1, "let": 1, "const": 2 }, "SwitchCase": 1 }], // this option sets a specific tab width for your code (off by default) - "key-spacing": ["warn", { "beforeColon": false, "afterColon": true }], // enforces spacing between keys and values in object literal properties - "keyword-spacing": "error", // enforce consistent spacing before and after keywords - "lines-around-comment": "warn", // enforces empty lines around comments (off by default) - "linebreak-style": ["error", "unix"], // disallow mixed 'LF' and 'CRLF' as linebreaks (off by default) - "max-nested-callbacks": ["warn", 5], // specify the maximum depth callbacks can be nested (off by default) - "new-cap": ["error", { "capIsNew": false }], // require a capital letter for constructors - "new-parens": "error", // disallow the omission of parentheses when invoking a constructor with no arguments - "newline-after-var": "off", // allow/disallow an empty newline after var statement (off by default) - "no-array-constructor": "warn", // disallow use of the Array constructor - "no-continue": "warn", // disallow use of the continue statement (off by default) - "no-inline-comments": "warn", // disallow comments inline after code (off by default) - "no-lonely-if": "error", // disallow if as the only statement in an else block (off by default) - "no-mixed-spaces-and-tabs": ["error", false], // disallow mixed spaces and tabs for indentation - "no-multiple-empty-lines": ["warn", {"max": 3, "maxEOF": 1}], // disallow multiple empty lines (off by default) - "no-nested-ternary": "error", // disallow nested ternary expressions (off by default) - "no-new-object": "warn", // disallow use of the Object constructor - "no-spaced-func": "error", // disallow space between function identifier and application - "no-ternary": "off", // disallow the use of ternary operators (off by default) - "no-trailing-spaces": "error", // disallow trailing whitespace at the end of lines - "no-underscore-dangle": "off", // disallow dangling underscores in identifiers - "one-var": ["off", "always"], // allow just one var statement per function (off by default) - "operator-assignment": ["off", "always"], // require assignment operator shorthand where possible or prohibit it entirely (off by default) - "operator-linebreak": ["error", "before"], // enforce operators to be placed before or after line breaks (off by default) - "padded-blocks": ["warn", "never"], // enforce padding within blocks (off by default) - "quote-props": ["warn", "consistent"], // require quotes around object literal property names (off by default) - "quotes": ["error", "single", {"avoidEscape": true, "allowTemplateLiterals": true}], // specify whether double or single quotes should be used - "semi-spacing": ["error", {"before": false, "after": true}], // enforce spacing before and after semicolons - "semi": ["error", "always", { "omitLastInOneLineBlock": true}], // require or disallow use of semicolons instead of ASI - "sort-vars": "off", // sort variables within the same declaration block (off by default) - "space-before-blocks": ["error", "always"], // require or disallow space before blocks (off by default) - "space-before-function-paren": ["error", "never"], // require or disallow space before function opening parenthesis (off by default) - "space-in-parens": ["warn", "never"], // require or disallow spaces inside parentheses (off by default) - "space-infix-ops": "error", // require spaces around operators - "space-unary-ops": ["error", { "words": true, "nonwords": false }], // require or disallow spaces before/after unary operators (words on by default, nonwords off by default) - "spaced-comment": ["warn", "always", { "line": { "exceptions": ["="] } }], // require or disallow a space immediately following the // or /* in a comment (off by default) - "wrap-regex": "off", // require regex literals to be wrapped in parentheses (off by default) - - - ////////// ECMAScript 6 ////////// - - "constructor-super": "off", // verify super() callings in constructors (off by default) - "generator-star-spacing": "off", // enforce the spacing around the * in generator functions (off by default) - "no-this-before-super": "off", // disallow to use this/super before super() calling in constructors (off by default) - "no-var": "off", // require let or const instead of var (off by default) - "object-shorthand": "off", // require method and property shorthand syntax for object literals (off by default) - "prefer-const": "off", // suggest using of const declaration for variables that are never modified after declared (off by default) - - - ////////// Legacy ////////// - - "max-depth": ["warn", 4], // specify the maximum depth that blocks can be nested (off by default) - "max-len": ["off", 80, 4], // specify the maximum length of a line in your program (off by default) - "max-params": ["off", 3], // limits the number of parameters that can be used in the function declaration. (off by default) - "max-statements": ["off", 10], // specify the maximum number of statement allowed in a function (off by default) - "no-bitwise": "error", // disallow use of bitwise operators (off by default) - "no-plusplus": ["error", { allowForLoopAfterthoughts: true }] // disallow use of unary operators, ++ and -- (off by default) - } -} diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 0000000..213dcc6 --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,48 @@ +name: Checks + +on: + workflow_call: + push: + branches: [main] + pull_request: + types: [synchronize, opened, reopened, ready_for_review, converted_to_draft] + +concurrency: + group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} + cancel-in-progress: true + +jobs: + checks: + name: Run Checks + runs-on: ubuntu-latest + + steps: + - name: Checkout + uses: actions/checkout@v4 + + - name: Setup node + uses: actions/setup-node@v4 + with: + node-version-file: ".nvmrc" + cache: "npm" + + - name: Install Dependencies + run: npm ci --ignore-scripts + + # - name: Check Docs + # run: npm run check-docs + + # - name: Check Formatting + # run: npm run formatting:check + + # - name: Check Typing + # run: pnpm typecheck + + # - name: Lint Styles + # run: pnpm lint:styles + + - name: Lint + run: npm run lint + + # - name: Lint styles + # run: npm run lint:styles diff --git a/.gitignore b/.gitignore index ff77fe6..bafccca 100644 --- a/.gitignore +++ b/.gitignore @@ -52,6 +52,7 @@ bower_components/ ## Swill boilerplate ################# +dist/ build/ app/templates/src/stylesheets/stylus/helpers/_functions.styl app/templates/src/stylesheets/stylus/helpers/_mixins.styl diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..f2401f4 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v23.4.0 diff --git a/config.json b/config.json index 52e4e45..53d514b 100644 --- a/config.json +++ b/config.json @@ -5,10 +5,10 @@ "build": "build/", "handlebars": { - "src": "handlebars/", - "partials": { - "src": "includes/" - } + "src": "handlebars/", + "partials": { + "src": "includes/" + } }, "images": { @@ -35,9 +35,7 @@ }, "clean": { - "ignore": [ - "!dist/img/{copyright,logos}{,**/*{,**/*}}" - ] + "ignore": ["!dist/img/{copyright,logos}{,**/*{,**/*}}"] } }, @@ -47,8 +45,6 @@ "lintCSS": false, - "lintJS": true, - "inlineSVG": true, "handlebars": true, @@ -72,8 +68,8 @@ "baseDir": ["dist/", "./"] }, "routes": { - "/bower_components": "bower_components", - "/node_modules": "node_modules" + "/bower_components": "bower_components", + "/node_modules": "node_modules" } }, diff --git a/dist/apple-touch-icon.png b/dist/apple-touch-icon.png deleted file mode 100644 index 75ce2294df91cd48d15226f8d84ee3ca6ec5aa78..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15862 zcmeI3e{dA#8OIkeQ3BCXOUZz==LuM(d%JtTv%Q?9IYLr$NhZ0##fc<)yL-t_?rtx4 zo7^Q#OeE79EKq7|gY9&xQ?X?_gmI=!gI1F$se%Ox)MBLyg*pO}u~rE;@(UkhXV8;)NA0h}=CwaVz*Imu>a?rpDvQIR`gJGa12*-o*FvoX@iq0pt zNue_RhcAxlb&^n~-)eEw?r^!-E>-qM#D?A)58vCtmkRm^okfl~3jzd1h111@fl!o< zm+7^*EU?vTO0Ux-N=KP~gPKt1b=T?2<%p=W7_1~uTWva9se!TBY-Zaxbw--8P_&6M z(WKGDnrYT-)FnT9XA!U*5y8*ayDF0DK&edMt|(!aqGGX_A!ahjkv57cEiI*JBV{y_ zKtV=(LJAirL(%&ZK~iyCVw8_aVMUTdIyElmle?5Myc3u^S*rBF*U;_4I^As$PuBT@hZ~*bRnqU#`(Bl0P#!vm&W2dHXKLr95tGOTtZC z3W*tVfU&aW5s_2mh)0$K&crIKOCi*imuss^_YF74OCgo(ItP{Ql$r5NJkiA|qElUw zByA@d#>14dwEFiDc%PBe0Jz<-`<&1&neS4! z3J9GzRRoy_;WOQ$1;3TIn=GV-v58=gY#eDfaYoWE&^Fp?wAw_`no0x(o0F(EB7sAX z3qTrmECNVowsAI}-DoAPHXl!#t+bi6o9zr~@s}EnjL}H@#PnElgqf47Qi_75+5;_N zu#mN5twHRZU7KnMNZRof<|0v1-F#*G)b2~4XX)cg_0cvl%kk>L=8SUPqTrxr)nz)B z_DecRb0>3t021*b_xw3x?P5sXSNS$ZB9x}eA0#UKl^7QhH?)EEF~3cph&$Uce*(Up z3$=-YlS;8mRb;z3DD~M9kp3U%ZhjjP&)w{~OU&r(?U*`6=5Aky`Z#03)&~ob)3zMr zpyt$NR!u_hRkv`UOVisJ8hj}2JLw8HXS+6iu`Ar1?V9my3`vU9n9P<{4SA{0+{81X z0lXfHPOHUYvN)*h>THiXDJ}-QE(sjoQS}gFEFhKUl--ikvnj79)ROc}OcwMir_E)e z7Q85ecT_6XVQ5y1kC3#NgzF)kz`Sb%ZCG>|sN zg+v4kFfNz|(#E)uh+qN61=B#<7#9)|EWo&68b}-CLL!0%7#Bj0>iLv@tFuB3OWN!8DLI#)U)#3otI22GYj3kceOb#s$+r z+87rS5iG#CU>Zmp<3b{W1sE4h18HMiNJOvz|eYoB5W-1UrsOPvRw_Iv~`gzEUpdN)Dz zt|5qlL4x>n2K-(nh%TBSuC;=@q~ONsa`}mt$qIs4R9EHN;EBKe!8=T#y7Qj#k1ll7 z?!Uf&gMQi0qpjwloh3t$o)+laCI%k8^6eLxy)_lPTwZqXTVA?}^q;O={pNEAo-vP{ z@;%{s``NLVKfloT^0AdI(-if~&u0urVzEZoU+xWt8<%z7obVoPX}$fm@2_fH_Q^|+ z@t;(eZM!3Wa2@|XyS>M**AopZ4C6m}dzm7y*svT&+w`K?&6X4woNO?_B0l(Ds_J4{+i(R#jWSNmma+u{q)d3C%^Z?`T=*% z;mg+!o*o&!Ss~o9XEHQVP|`ebpc$ku*mry~Pobna(UXfs?`A24ix|7Z5GlC!lxz0y?v*q+-bZ=ApWl1aaNwC1c zPu{Ago>xK5^VH^7JOA_6SMU1kpHDtKIOV+my&p;68a`98y7{|{3Wv{t?wVV}>xxVM gr{eJsP7y0#U$XgMukT&0-psDrSmPS`PV0{U0^vTZjQ{`u diff --git a/dist/css/accessibility-buttons.css b/dist/css/accessibility-buttons.css deleted file mode 100644 index cf47283..0000000 --- a/dist/css/accessibility-buttons.css +++ /dev/null @@ -1,38 +0,0 @@ -/*! -* Accessibility Buttons v4.0.0 -* http://tiagoporto.github.io/accessibility-buttons -* Copyright (c) 2014-present Tiago Porto (http://tiagoporto.com) -* Released under the MIT license -*/ - -html { - font-size: 100%; -} -body { - -webkit-transition: background 1s ease, font-size 0.7s linear; - transition: background 1s ease, font-size 0.7s linear; -} -input, -textarea, -select, -button { - -webkit-transition: all 0.6s linear; - transition: all 0.6s linear; -} -.accessibility-font { -/* First font-size fallback to older browsers*/ - font-size: 1.25em; - font-size: 1.25rem; -} -.accessibility-font input, -.accessibility-font textarea, -.accessibility-font select, -.accessibility-font button { -/* The default font-size of these elements is approximately 20% less than the body */ - font-size: 1.041625em; - font-size: 1.04163rem; -} -.accessibility-contrast { - color: #fff; - background: #000; -} diff --git a/dist/css/accessibility-buttons.min.css b/dist/css/accessibility-buttons.min.css deleted file mode 100644 index 6f660dd..0000000 --- a/dist/css/accessibility-buttons.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! -* Accessibility Buttons v4.0.0 -* http://tiagoporto.github.io/accessibility-buttons -* Copyright (c) 2014-present Tiago Porto (http://tiagoporto.com) -* Released under the MIT license -*/ -html{font-size:100%}body{-webkit-transition:background 1s ease,font-size .7s linear;transition:background 1s ease,font-size .7s linear}button,input,select,textarea{-webkit-transition:all .6s linear;transition:all .6s linear}.accessibility-font{font-size:1.25em;font-size:1.25rem}.accessibility-font button,.accessibility-font input,.accessibility-font select,.accessibility-font textarea{font-size:1.041625em;font-size:1.04163rem}.accessibility-contrast{color:#fff;background:#000} \ No newline at end of file diff --git a/dist/css/demo.css b/dist/css/demo.css deleted file mode 100644 index eac3b22..0000000 --- a/dist/css/demo.css +++ /dev/null @@ -1,413 +0,0 @@ -/*! -* Accessibility Buttons v4.0.0 -* http://tiagoporto.github.io/accessibility-buttons -* Copyright (c) 2014-present Tiago Porto (http://tiagoporto.com) -* Released under the MIT license -*/ - -/* ================================================================== - Main Styles - ================================================================== */ -/* -* -* Box model reset -* http://css-tricks.com/inheriting-box-sizing-probably-slightly-better-best-practice/ -* -*/ -html { - font-size: 100%; - -moz-box-sizing: border-box; - box-sizing: border-box; -} -*, -*:before, -*:after { - -moz-box-sizing: inherit; - box-sizing: inherit; -} -body { - font: normal normal 16px/1.5em Lora, "Times New Roman", Times, Georgia, Serif; - background-color: #fff; - color: #000; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; - font-smoothing: auto; - -webkit-font-feature-settings: "liga", "kern"; - -moz-font-feature-settings: "liga", "kern"; - font-feature-settings: "liga", "kern"; -} -/* -* -* Better Font Smoothing in Chrome & Safari -* http://www.intridea.com/blog/2014/5/8/better-font-smoothing-in-chrome-on-mac-os-x -* -*/ -@media only screen and (-webkit-min-device-pixel-ratio: 1.25), only screen and (min-device-pixel-ratio: 1.25), only screen and (-webkit-min-device-pixel-ratio: 2.0833333333333335), only screen and (min-resolution: 200dpi), only screen and (min-resolution: 1.25dppx) { - body { - -webkit-font-smoothing: subpixel-antialiased; - } -} -h1, -h2, -h3, -h4, -h5, -h6 { - font-weight: bold; -} -h1 { - font-size: 2.25em; - line-height: 1.333333333333333em; - margin-top: 0.666666666666667em; - margin-bottom: 0.666666666666667em; -} -h2 { - font-size: 2em; - line-height: 1.5em; - margin-top: 0.75em; - margin-bottom: 0.75em; -} -h3 { - font-size: 1.875em; - line-height: 1.6em; - margin-top: 0.8em; - margin-bottom: 0.8em; -} -h4 { - font-size: 1.75em; - line-height: 1.714285714285714em; - margin-top: 0.857142857142857em; - margin-bottom: 0.857142857142857em; -} -h5 { - font-size: 1.5em; - line-height: 2em; - margin-top: 1em; - margin-bottom: 1em; -} -h6 { - font-size: 1.25em; - line-height: 1.2em; - margin-top: 1.2em; - margin-bottom: 1.2em; -} -p { - font-size: 1em; - line-height: 1.5em; - margin-top: 1.5em; - margin-bottom: 1.5em; - -webkit-hyphens: auto; - -moz-hyphens: auto; - -ms-hyphens: auto; - hyphens: auto; -} -a { - color: #1878cc; -} -a:visited, -a:active, -a:hover { - color: #4a148c; -} -blockquote { - font-style: italic; - padding-left: 0.625em; - border-left: 0.3125em solid #999; - margin-top: 1.5em; - margin-bottom: 1.5em; -} -kbd { - color: #fff; - font-weight: bold; - font-family: "Courier New", Courier, monospace; - background-color: rgba(0,0,0,0.4); - border-radius: 3px; - padding: 0.2em; -} -code { - color: #0f0; - background: #242424; - padding: 0 0.75em; - padding-top: 0.75em; - padding-bottom: 0.75em; - width: 100%; - display: inline-block; - border-radius: 6px; - overflow: auto; - margin-top: 1.5em; - margin-bottom: 1.5em; -} -fieldset { - margin: 0; - border-color: #999; - border-style: solid; - border-width: 0.0625em; - padding: 1.4375em; - margin-bottom: 1.5em; -} -input[type="text"], -input[type="search"], -input[type="email"], -input[type="number"], -input[type="password"], -select, -textarea { - font-size: 1em; - line-height: 1.5em; - border-color: #999; - border-style: solid; - border-width: 0.0625em; - padding: 0.3125em; - border-radius: 5px; - color: #595959; - width: 100%; - margin-bottom: 0.75em; -} -input[type="text"]:focus, -input[type="search"]:focus, -input[type="email"]:focus, -input[type="number"]:focus, -input[type="password"]:focus, -select:focus, -textarea:focus { - border-color: #66afe9; - outline: 0; - box-shadow: inset 0 1px 1px rgba(0,0,0,0.075), 0 0 8px rgba(102,175,233,0.6); -} -input[type="text"], -input[type="search"], -input[type="email"], -input[type="number"], -input[type="password"], -select { - height: 2.25em; -} -select { - width: auto; -} -::-webkit-input-placeholder { - color: #8c8c8c; - font-size: 0.875em; -} -::-moz-placeholder { - color: #8c8c8c; - font-size: 0.875em; -} -:-ms-input-placeholder { - color: #8c8c8c; - font-size: 0.875em; -} -::-ms-input-placeholder { - color: #8c8c8c; - font-size: 0.875em; -} -::placeholder { - color: #8c8c8c; - font-size: 0.875em; -} -button { - border: 2px solid #000; - display: block; - width: 100%; - font-size: 0.875em; - padding: 0.625em 1.25em; - overflow: hidden; - margin: 0; - text-align: center; - text-decoration: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-tap-highlight-color: transparent; - color: #000; - background: transparent; - -webkit-transition: 0.15s ease-out; - transition: 0.15s ease-out; - cursor: pointer; - background-color: none; -} -button:hover { - background: #000; - color: #fff; -} -button:focus { - box-shadow: 0 0 0 0.2rem rgba(0,0,0,0.5); - outline: none; -} -.accessibility-contrast button { - border-color: #e3ff17; - color: #e3ff17; -} -.accessibility-contrast button:hover { - background: #e3ff17; - color: #000; -} -.accessibility-contrast button:focus { - box-shadow: 0 0 0 0.2rem rgba(255,255,255,0.5); - outline: none; -} -i[class^="icon-"] { - display: block; -} -.github-corner:hover .octo-arm { - -webkit-animation: octocat-wave 560ms ease-in-out; - animation: octocat-wave 560ms ease-in-out; -} -.github-corner .octo-arm { - -webkit-transform-origin: 130px 106px; - -ms-transform-origin: 130px 106px; - transform-origin: 130px 106px; -} -.github-corner svg { - fill: #f22613; - color: #fff; - position: absolute; - top: 0; - border: 0; - right: 0; -} -@media (max-width: 500px) { - .github-corner:hover .octo-arm { - -webkit-animation: none; - animation: none; - } - .github-corner .octo-arm { - -webkit-animation: octocat-wave 560ms ease-in-out; - animation: octocat-wave 560ms ease-in-out; - } -} -@-webkit-keyframes octocat-wave { - 0%, 100% { - -webkit-transform: rotate(0); - transform: rotate(0); - } - 20%, 60% { - -webkit-transform: rotate(-25deg); - transform: rotate(-25deg); - } - 40%, 80% { - -webkit-transform: rotate(10deg); - transform: rotate(10deg); - } -} -@keyframes octocat-wave { - 0%, 100% { - -webkit-transform: rotate(0); - transform: rotate(0); - } - 20%, 60% { - -webkit-transform: rotate(-25deg); - transform: rotate(-25deg); - } - 40%, 80% { - -webkit-transform: rotate(10deg); - transform: rotate(10deg); - } -} -.header { - width: auto; - max-width: 900px; - float: none; - display: block; - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; - margin-bottom: 3em; -} -.header::after { - content: ''; - display: table; - clear: both; -} -.footer { - width: auto; - max-width: 900px; - float: none; - display: block; - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; - text-align: center; - font-size: 1.2em; - margin-bottom: 1.5em; -} -.footer::after { - content: ''; - display: table; - clear: both; -} -.accessibility-contrast .accessibility-buttons-logo__background, -.accessibility-contrast .accessibility-buttons-logo__minus { - fill: #fff; -} -.accessibility-contrast .accessibility-buttons-logo__lettering, -.accessibility-contrast .accessibility-buttons-logo__plus, -.accessibility-contrast .accessibility-buttons-logo__box { - fill: #000; -} -.main { - width: auto; - max-width: 900px; - float: none; - display: block; - margin-right: auto; - margin-left: auto; - padding-left: 15px; - padding-right: 15px; -} -.main::after { - content: ''; - display: table; - clear: both; -} -.row { - padding-bottom: 3rem; -} -.column { - float: left; - clear: none; - text-align: inherit; - width: 49.5%; - margin-left: 0%; - margin-right: 1%; -} -.column::after { - content: ''; - display: table; - clear: both; -} -.column:nth-child(n) { - margin-right: 1%; - float: left; - clear: none; -} -.column:nth-child(2n) { - margin-right: 0%; - float: right; -} -.column:nth-child(2n + 1) { - clear: both; -} -@media (max-width: 480px) { - .column { - float: left; - clear: none; - text-align: inherit; - width: 100%; - margin-left: 0%; - margin-right: 3%; - margin-bottom: 1rem; - } - .column::after { - content: ''; - display: table; - clear: both; - } - .column:last-child { - margin-right: 0%; - } -} diff --git a/dist/css/demo.min.css b/dist/css/demo.min.css deleted file mode 100644 index c0082de..0000000 --- a/dist/css/demo.min.css +++ /dev/null @@ -1,7 +0,0 @@ -/*! -* Accessibility Buttons v4.0.0 -* http://tiagoporto.github.io/accessibility-buttons -* Copyright (c) 2014-present Tiago Porto (http://tiagoporto.com) -* Released under the MIT license -*/ -@-webkit-keyframes octocat-wave{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}@keyframes octocat-wave{0%,to{-webkit-transform:rotate(0);transform:rotate(0)}20%,60%{-webkit-transform:rotate(-25deg);transform:rotate(-25deg)}40%,80%{-webkit-transform:rotate(10deg);transform:rotate(10deg)}}html{font-size:100%;-moz-box-sizing:border-box;box-sizing:border-box}*,:after,:before{-moz-box-sizing:inherit;box-sizing:inherit}body{font:16px/1.5em Lora,"Times New Roman",Times,Georgia,Serif;background-color:#fff;color:#000;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-smoothing:auto;-webkit-font-feature-settings:"liga","kern";-moz-font-feature-settings:"liga","kern";font-feature-settings:"liga","kern"}@media only screen and (-webkit-min-device-pixel-ratio:1.25),only screen and (min-device-pixel-ratio:1.25),only screen and (-webkit-min-device-pixel-ratio:2.0833333333333335),only screen and (min-resolution:200dpi),only screen and (min-resolution:1.25dppx){body{-webkit-font-smoothing:subpixel-antialiased}}h1,h2,h3,h4,h5,h6,kbd{font-weight:700}h1{font-size:2.25em;line-height:1.333333333333333em;margin-top:.666666666666667em;margin-bottom:.666666666666667em}h2,p{line-height:1.5em}h2{margin-top:.75em;margin-bottom:.75em;font-size:2em}h3{font-size:1.875em;line-height:1.6em;margin-top:.8em;margin-bottom:.8em}h4{font-size:1.75em;line-height:1.714285714285714em;margin-top:.857142857142857em;margin-bottom:.857142857142857em}h5{font-size:1.5em;line-height:2em;margin-top:1em;margin-bottom:1em}h6{font-size:1.25em;line-height:1.2em;margin-top:1.2em;margin-bottom:1.2em}p{font-size:1em;-webkit-hyphens:auto;-moz-hyphens:auto;-ms-hyphens:auto;hyphens:auto}a{color:#1878cc}a:active,a:hover,a:visited{color:#4a148c}blockquote,code,p{margin-top:1.5em;margin-bottom:1.5em}blockquote{font-style:italic;padding-left:.625em;border-left:.3125em solid #999}kbd{color:#fff;font-family:"Courier New",Courier,monospace;background-color:rgba(0,0,0,.4);border-radius:3px;padding:.2em}code{color:#0f0;background:#242424;padding:.75em;display:inline-block;border-radius:6px;overflow:auto}fieldset{border-color:#999;border-style:solid;border-width:.0625em;padding:1.4375em;margin:0 0 1.5em}code,input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],textarea{width:100%}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],select,textarea{font-size:1em;line-height:1.5em;border-color:#999;border-style:solid;border-width:.0625em;padding:.3125em;border-radius:5px;color:#595959;margin-bottom:.75em}input[type=email]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:#66afe9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}input[type=email],input[type=number],input[type=password],input[type=search],input[type=text],select{height:2.25em}select{width:auto}::-webkit-input-placeholder{color:#8c8c8c;font-size:.875em}::-moz-placeholder{color:#8c8c8c;font-size:.875em}:-ms-input-placeholder,::-ms-input-placeholder{color:#8c8c8c;font-size:.875em}::placeholder{color:#8c8c8c;font-size:.875em}button{border:2px solid #000;display:block;width:100%;font-size:.875em;padding:.625em 1.25em;overflow:hidden;margin:0;text-align:center;text-decoration:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;color:#000;background:0 0;-webkit-transition:.15s ease-out;transition:.15s ease-out;cursor:pointer;background-color:none}button:hover{background:#000;color:#fff}button:focus{box-shadow:0 0 0 .2rem rgba(0,0,0,.5);outline:0}.accessibility-contrast button{border-color:#e3ff17;color:#e3ff17}.accessibility-contrast button:hover{background:#e3ff17;color:#000}.accessibility-contrast button:focus{box-shadow:0 0 0 .2rem rgba(255,255,255,.5);outline:0}.header,i[class^=icon-]{display:block}.github-corner:hover .octo-arm{-webkit-animation:octocat-wave 560ms ease-in-out;animation:octocat-wave 560ms ease-in-out}.github-corner .octo-arm{-webkit-transform-origin:130px 106px;-ms-transform-origin:130px 106px;transform-origin:130px 106px}.github-corner svg{fill:#f22613;color:#fff;position:absolute;top:0;border:0;right:0}@media (max-width:500px){.github-corner:hover .octo-arm{-webkit-animation:none;animation:none}.github-corner .octo-arm{-webkit-animation:octocat-wave 560ms ease-in-out;animation:octocat-wave 560ms ease-in-out}}.header{width:auto;max-width:900px;float:none;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px;margin-bottom:3em}.column::after,.footer::after,.header::after,.main::after{content:'';display:table;clear:both}.footer{text-align:center;font-size:1.2em;margin-bottom:1.5em}.accessibility-contrast .accessibility-buttons-logo__background,.accessibility-contrast .accessibility-buttons-logo__minus{fill:#fff}.accessibility-contrast .accessibility-buttons-logo__box,.accessibility-contrast .accessibility-buttons-logo__lettering,.accessibility-contrast .accessibility-buttons-logo__plus{fill:#000}.footer,.main{width:auto;max-width:900px;float:none;display:block;margin-right:auto;margin-left:auto;padding-left:15px;padding-right:15px}.row{padding-bottom:3rem}.column{float:left;clear:none;text-align:inherit;width:49.5%;margin-left:0;margin-right:1%}.column:nth-child(n){margin-right:1%;float:left;clear:none}.column:nth-child(2n){margin-right:0;float:right}.column:nth-child(2n+1){clear:both}@media (max-width:480px){.column{float:left;clear:none;text-align:inherit;width:100%;margin-left:0;margin-right:3%;margin-bottom:1rem}.column::after{content:'';display:table;clear:both}.column:last-child{margin-right:0}} \ No newline at end of file diff --git a/dist/favicon.ico b/dist/favicon.ico deleted file mode 100644 index dd6cd80671ccc980251bf9224ecd75463aee10ed..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 99678 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 diff --git a/dist/fonts/.gitkeep b/dist/fonts/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/dist/img/logos/accessibility-buttons-logo.eps b/dist/img/logos/accessibility-buttons-logo.eps deleted file mode 100644 index b6e8496e0c01dd8eea1b804d6dbcfeebc2f80ca8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 390862 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 diff --git a/dist/img/logos/accessibility-buttons-logo.png b/dist/img/logos/accessibility-buttons-logo.png deleted file mode 100644 index d146e1a9f5614e6434cd10f40e17a37b3f089734..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16457 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 K!^>W - -
-
-
- -
-
- -
-
- - -

Install

- -
npm install accessibility-buttons --save
- -

Usage

- -

Import

-
    -
  • accessibility-buttons/dist/css/accessibility-buttons.css
  • -
  • accessibility-buttons/dist/js/accessibility-buttons.js
  • -
- -

Add buttons

- - -
<button type="button" data-accessibility="font">+A</button>
-<button type="button" data-accessibility="contrast">Add Contrast</button>
-
- -

Initialize after DOM ready

- - -
accessibilityButtons()
-
- - -

Note: Font size works only with "em" or "rem" units.

- -

Settings

- -

Check github.com/tiagoporto/accessibility-buttons for more details

-
- -
- Copyright © 2014 - Tiago Porto -
- - - - - - - - - - - - - diff --git a/dist/js/accessibility-buttons.js b/dist/js/accessibility-buttons.js deleted file mode 100644 index 053a2c6..0000000 --- a/dist/js/accessibility-buttons.js +++ /dev/null @@ -1,168 +0,0 @@ -/*! -* Accessibility Buttons v4.0.0 -* http://tiagoporto.github.io/accessibility-buttons -* Copyright (c) 2014-present Tiago Porto (http://tiagoporto.com) -* Released under the MIT license -*/ - -"use strict"; - -function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); } - -function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } - -function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); } - -function _iterableToArray(iter) { if (typeof Symbol !== "undefined" && Symbol.iterator in Object(iter)) return Array.from(iter); } - -function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); } - -function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; } - -/** - * accessibilityButtons - * @param {Array} - - * @return - */ - -/* exported accessibilityButtons */ -var accessibilityButtons = function accessibilityButtons(options) { - 'use strict'; - /** - * hasClass - * @param {string} element - DOM element - * @param {string} clazz - Class Name - * @return {Boolean} - */ - - function hasClass(element, clazz) { - return " ".concat(element.className, " ").indexOf(" ".concat(clazz, " ")) > -1; - } - - var setting = { - font: { - nameButtonIncrease: '+A', - ariaLabelButtonIncrease: 'Increase Font', - nameButtonDecrease: '-A', - ariaLabelButtonDecrease: 'Decrease Font' - }, - contrast: { - nameButtonAdd: 'Add Contrast', - ariaLabelButtonAdd: 'Add Contrast', - nameButtonRemove: 'Remove Contrast', - ariaLabelButtonRemove: 'Remove Contrast' - } - }; // Set buttons name and aria label - - if (options) { - for (var key in options) { - if (options.hasOwnProperty(key)) { - var obj = options[key]; - - for (var prop in obj) { - if (obj.hasOwnProperty(prop)) { - setting[key][prop] = obj[prop]; - } - } - } - } - } - - var $body = document.body, - $accessibilityButtons = _toConsumableArray(document.querySelectorAll('[data-accessibility]')), - $fontButton = $accessibilityButtons.filter(function (button) { - return button.getAttribute('data-accessibility') === 'font'; - }), - $contrastButton = $accessibilityButtons.filter(function (button) { - return button.getAttribute('data-accessibility') === 'contrast'; - }), - storageFont = localStorage.accessibility_font, - storageContrast = localStorage.accessibility_contrast; // Check if exist storage and set the correct button names and aria attributes - - - if (storageFont && $fontButton) { - $body.classList.add('accessibility-font'); - $fontButton.forEach(function (button) { - button.innerHTML = setting.font.nameButtonDecrease; - button.setAttribute('aria-label', setting.font.ariaLabelButtonDecrease); - }); - } else if ($fontButton) { - $fontButton.forEach(function (button) { - button.innerHTML = setting.font.nameButtonIncrease; - button.setAttribute('aria-label', setting.font.ariaLabelButtonIncrease); - }); - } - - if (storageContrast && $contrastButton) { - $body.classList.add('accessibility-contrast'); - $contrastButton.forEach(function (button) { - button.innerHTML = setting.contrast.nameButtonRemove; - button.setAttribute('aria-label', setting.contrast.ariaLabelButtonRemove); - }); - } else if ($contrastButton) { - $contrastButton.forEach(function (button) { - button.innerHTML = setting.contrast.nameButtonAdd; - button.setAttribute('aria-label', setting.contrast.ariaLabelButtonAdd); - }); - } - /** - * Get the click event - * Rename the buttons - * Apply/Remove Contrast or Font Size - * Manage storage - */ - - - function accessibility() { - return function () { - var $this = this; - var type = $this.getAttribute('data-accessibility'); - var classname = "accessibility-".concat(type); - - if (hasClass($body, classname)) { - $body.classList.remove(classname); - - if (type === 'font') { - $fontButton.forEach(function (button) { - button.innerHTML = setting.font.nameButtonIncrease; - button.setAttribute('aria-label', setting.font.ariaLabelButtonIncrease); - }); - localStorage.removeItem('accessibility_font'); - } else if (type === 'contrast') { - $contrastButton.forEach(function (button) { - button.innerHTML = setting.contrast.nameButtonAdd; - button.setAttribute('aria-label', setting.contrast.ariaLabelButtonAdd); - }); - localStorage.removeItem('accessibility_contrast'); - } - } else { - $body.classList.add(classname); - - if (type === 'font') { - if (!storageFont) { - localStorage.setItem('accessibility_font', true); - } - - $fontButton.forEach(function (button) { - button.innerHTML = setting.font.nameButtonDecrease; - button.setAttribute('aria-label', setting.font.ariaLabelButtonDecrease); - }); - } else if (type === 'contrast') { - if (!storageContrast) { - localStorage.setItem('accessibility_contrast', true); - } - - $contrastButton.forEach(function (button) { - button.innerHTML = setting.contrast.nameButtonRemove; - button.setAttribute('aria-label', setting.contrast.ariaLabelButtonRemove); - }); - } - } - }; - } // Listening Click Event - - - for (var i = 0; i < $accessibilityButtons.length; i++) { - $accessibilityButtons[i].addEventListener('click', accessibility()); - } -}; \ No newline at end of file diff --git a/dist/js/scripts.js b/dist/js/scripts.js deleted file mode 100644 index 99b301f..0000000 --- a/dist/js/scripts.js +++ /dev/null @@ -1,71 +0,0 @@ -/*! -* Accessibility Buttons v4.0.0 -* http://tiagoporto.github.io/accessibility-buttons -* Copyright (c) 2014-present Tiago Porto (http://tiagoporto.com) -* Released under the MIT license -*/ - -jQuery(document).ready(function($) { - -"use strict"; - -/* global accessibilityButtons */ -var ready = function ready(fn) { - 'use strict'; - - if (document.readyState !== 'loading') { - fn(); - } else { - document.addEventListener('DOMContentLoaded', fn); - } -}; - -ready(function () { - 'use strict'; - - accessibilityButtons({ - font: { - nameButtonIncrease: 'Click me and things will be big', - nameButtonDecrease: 'Click me and things will be back to normal' - }, - contrast: { - nameButtonAdd: 'Click me and things will be darken', - nameButtonRemove: 'Click me and things will be lighten again' - } - }); - document.getElementById('year').innerHTML = new Date().getFullYear(); - - function hasClass(element, clazz) { - return " ".concat(element.className, " ").indexOf(" ".concat(clazz, " ")) > -1; - } - - function analytics() { - return function () { - var $this = this; - var $body = document.body; - - if ($this.getAttribute('id') === 'accessibility-contrast') { - if (hasClass($body, $this.getAttribute('id'))) { - typeof ga === 'function' && ga('send', 'event', 'accessibility', 'click', 'Add Contrast'); - } else { - typeof ga === 'function' && ga('send', 'event', 'accessibility', 'click', 'Remove Contrast'); - } - } - - if ($this.getAttribute('id') === 'accessibility-font') { - if (hasClass($body, $this.getAttribute('id'))) { - typeof ga === 'function' && ga('send', 'event', 'accessibility', 'click', 'Increase Font'); - } else { - typeof ga === 'function' && ga('send', 'event', 'accessibility', 'click', 'Decrease Font'); - } - } - }; - } - - var $accessibilityButtons = document.getElementsByClassName('js-acessibility'); - - for (var i = 0; i < $accessibilityButtons.length; i++) { - $accessibilityButtons[i].addEventListener('click', analytics()); - } -}); -}); \ No newline at end of file diff --git a/dist/js/scripts.min.js b/dist/js/scripts.min.js deleted file mode 100644 index c903fa6..0000000 --- a/dist/js/scripts.min.js +++ /dev/null @@ -1 +0,0 @@ -jQuery(document).ready(function(e){"use strict";var t;t=function(){function n(e,t){return-1<" ".concat(e.className," ").indexOf(" ".concat(t," "))}accessibilityButtons({font:{nameButtonIncrease:"Click me and things will be big",nameButtonDecrease:"Click me and things will be back to normal"},contrast:{nameButtonAdd:"Click me and things will be darken",nameButtonRemove:"Click me and things will be lighten again"}}),document.getElementById("year").innerHTML=(new Date).getFullYear();for(var e=document.getElementsByClassName("js-acessibility"),t=0;t { - const indexPage = new Request('index.html') - - event.waitUntil( - fetch(indexPage).then(response => { - return caches.open('pwabuilder-offline').then(cache => { - // console.log(`[PWA Builder] Cached index page during Install ${response.url}`) - return cache.put(indexPage, response) - }) - }) - ) -}) - -// If any fetch fails, it will look for the request in the cache and serve it from there first -self.addEventListener('fetch', event => { - const updateCache = request => { - return caches.open('pwabuilder-offline').then(cache => { - return fetch(request.clone()).then(response => { - // console.log(`[PWA Builder] add page to offline ${response.url}`) - return cache.put(request, response) - }) - }) - } - - event.waitUntil(updateCache(event.request)) - - event.respondWith( - fetch(event.request).catch(error => { - // console.log(`[PWA Builder] Network request Failed. Serving content from cache: ${error}`) - - // Check to see if you have it in the cache - // Return response - // If not in the cache, then return error page - return caches.open('pwabuilder-offline').then(cache => { - return cache.match(event.request).then(matching => { - const report = !matching || matching.status === 404 ? Promise.reject('no-match') : matching - return report - }) - }) - }) - ) -}) diff --git a/dist/site.webmanifest b/dist/site.webmanifest deleted file mode 100644 index 77d557d..0000000 --- a/dist/site.webmanifest +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "Accessibility Buttons", - "short_name": "A11y Btns", - "theme_color": "#FFFFFF", - "background_color": "#FFFFFF", - "icons": [{ - "src": "img/touch/icon-128x128.png", - "sizes": "128x128" - }, { - "src": "apple-touch-icon.png", - "sizes": "152x152" - }, { - "src": "img/touch/chrome-touch-icon-192x192.png", - "sizes": "192x192" - }, { - "src": "img/touch/icon-512x512.png", - "sizes": "512x512" - }], - "start_url": "https://tiagoporto.github.io/accessibility-buttons/", - "display": "standalone" -} diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..ceff185 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,8 @@ +import globals from "globals"; +import tpConfig from "@tiagoporto/eslint-config"; + +/** @type {import('eslint').Linter.Config[]} */ +export default [ + { languageOptions: { globals: globals.browser } }, + ...tpConfig.configs.default, +]; diff --git a/gulpfile.js b/gulpfile.js index f028a0b..f85e127 100644 --- a/gulpfile.js +++ b/gulpfile.js @@ -1,440 +1,551 @@ -/* -* Swill Boilerplate v0.5.0beta -* https://github.com/tiagoporto/swill-boilerplate -* Copyright (c) 2014-2016 Tiago Porto (http://tiagoporto.com) -* Released under the MIT license -*/ - -/* eslint-env node */ -/* eslint strict: ["error", "global"]*/ -'use strict'; - -var args = require('yargs').argv, - browserSync = require('browser-sync'), - buffer = require('vinyl-buffer'), - config = require('./config.json'), - del = require('del'), - fs = require('fs'), - gulp = require('gulp'), - handlebars = require('gulp-hb'), - Karma = require('karma').Server, - merge = require('merge-stream'), - plugins = require('gulp-load-plugins')(), - sequence = require('run-sequence'), - spritesmith = require('gulp.spritesmith'), - svgSprite = require('gulp-svg-sprite'), - - // ***************************** Path configs ***************************** // - - basePaths = config.basePaths, - - paths = { - html: { - src: basePaths.src + basePaths.handlebars.src - }, +/* eslint-disable */ - images: { - src: basePaths.src + basePaths.images.src, - dest: basePaths.dest + basePaths.images.dest, - build: basePaths.build + basePaths.images.src - }, +/* + * Swill Boilerplate v0.5.0beta + * https://github.com/tiagoporto/swill-boilerplate + * Copyright (c) 2014-2016 Tiago Porto (http://tiagoporto.com) + * Released under the MIT license + */ + +"use strict"; + +var args = require("yargs").argv, + browserSync = require("browser-sync"), + buffer = require("vinyl-buffer"), + config = require("./config.json"), + del = require("del"), + fs = require("fs"), + gulp = require("gulp"), + handlebars = require("gulp-hb"), + Karma = require("karma").Server, + merge = require("merge-stream"), + plugins = require("gulp-load-plugins")(), + sequence = require("run-sequence"), + spritesmith = require("gulp.spritesmith"), + svgSprite = require("gulp-svg-sprite"), + // ***************************** Path configs ***************************** // + + basePaths = config.basePaths, + paths = { + html: { + src: basePaths.src + basePaths.handlebars.src, + }, - sprite: { - src: basePaths.src + basePaths.images.src + basePaths.sprite.src - }, + images: { + src: basePaths.src + basePaths.images.src, + dest: basePaths.dest + basePaths.images.dest, + build: basePaths.build + basePaths.images.src, + }, - scripts: { - src: basePaths.src + basePaths.scripts.src, - dest: basePaths.dest + basePaths.scripts.dest, - build: basePaths.build + basePaths.scripts.dest - }, + sprite: { + src: basePaths.src + basePaths.images.src + basePaths.sprite.src, + }, - styles: { - src: basePaths.src + basePaths.styles.src, - dest: basePaths.dest + basePaths.styles.dest, - build: basePaths.build + basePaths.styles.dest - } + scripts: { + src: basePaths.src + basePaths.scripts.src, + dest: basePaths.dest + basePaths.scripts.dest, + build: basePaths.build + basePaths.scripts.dest, }, - // ******************************* Settings ******************************* // - env = (args.prod) ? 'prod' : 'dev', - extensionStyle = 'styl', - headerProject = fs.readFileSync(basePaths.src + 'header-comments.txt', 'utf8'); + styles: { + src: basePaths.src + basePaths.styles.src, + dest: basePaths.dest + basePaths.styles.dest, + build: basePaths.build + basePaths.styles.dest, + }, + }, + // ******************************* Settings ******************************* // + env = args.prod ? "prod" : "dev", + extensionStyle = "styl", + headerProject = fs.readFileSync( + basePaths.src + "header-comments.txt", + "utf8" + ); // ******************************** Tasks ********************************* // -gulp.task('coverall', function () { - gulp.src('coverage/**/lcov.info') - .pipe(plugins.coveralls()); +gulp.task("coverall", function () { + gulp.src("coverage/**/lcov.info").pipe(plugins.coveralls()); }); -gulp.task('karma', function (done) { - new Karma({ - configFile: __dirname + '/karma.conf.js' - }, done).start(); +gulp.task("karma", function (done) { + new Karma( + { + configFile: __dirname + "/karma.conf.js", + }, + done + ).start(); }); -gulp.task('test', function () { - sequence('karma', 'coverall'); +gulp.task("test", function () { + sequence("karma", "coverall"); }); -gulp.task('handlebars', function () { - if (config.handlebars) { - return gulp - .src(paths.html.src + '**/*.html') - .pipe(handlebars({ - partials: paths.html.src + basePaths.handlebars.partials.src + '**/*.hbs' - })) - .pipe(gulp.dest(basePaths.dest)); - } +gulp.task("handlebars", function () { + if (config.handlebars) { + return gulp + .src(paths.html.src + "**/*.html") + .pipe( + handlebars({ + partials: + paths.html.src + basePaths.handlebars.partials.src + "**/*.hbs", + }) + ) + .pipe(gulp.dest(basePaths.dest)); + } }); -gulp.task('svg-inline', function () { - if (config.inlineSVG) { - return gulp.src(basePaths.dest + '**/*.html') - .pipe(plugins.inline({ - base: './', - disabledTypes: ['css', 'js'] - })) - .pipe(gulp.dest(basePaths.dest)); - } +gulp.task("svg-inline", function () { + if (config.inlineSVG) { + return gulp + .src(basePaths.dest + "**/*.html") + .pipe( + plugins.inline({ + base: "./", + disabledTypes: ["css", "js"], + }) + ) + .pipe(gulp.dest(basePaths.dest)); + } }); -gulp.task('styles-helpers', function () { - var mixins = gulp.src(paths.styles.src + 'helpers/mixins/*.{styl,scss}') - .pipe(plugins.concat('_mixins.' + extensionStyle)) - .pipe(gulp.dest(paths.styles.src + 'helpers')); +gulp.task("styles-helpers", function () { + var mixins = gulp + .src(paths.styles.src + "helpers/mixins/*.{styl,scss}") + .pipe(plugins.concat("_mixins." + extensionStyle)) + .pipe(gulp.dest(paths.styles.src + "helpers")); - var functions = gulp.src(paths.styles.src + 'helpers/functions/*.{styl,scss}') - .pipe(plugins.concat('_functions.' + extensionStyle)) - .pipe(gulp.dest(paths.styles.src + 'helpers')); + var functions = gulp + .src(paths.styles.src + "helpers/functions/*.{styl,scss}") + .pipe(plugins.concat("_functions." + extensionStyle)) + .pipe(gulp.dest(paths.styles.src + "helpers")); - return merge(mixins, functions); + return merge(mixins, functions); }); -gulp.task('styles', function () { - return gulp.src( - [ - paths.styles.src + '*.styl', - '!' + paths.styles.src + '_*.styl' - ]) - .pipe(plugins.plumber()) - .pipe( - plugins.stylus({ - 'include css': true//,use:[koutoSwiss(), rupture()] - }) - .on('error', function (err) { - console.log(err.message); - - // If rename the stylus file change here - plugins.file('styles.css', 'body:before{white-space: pre; font-family: monospace; content: "' + err.message + '";}', { src: true }) - .pipe(plugins.replace('\\', '/')) - .pipe(plugins.replace(/\n/gm, '\\A ')) - .pipe(plugins.replace('\"', '\'')) - .pipe(plugins.replace("content: '", 'content: "')) - .pipe(plugins.replace('\';}', '";}')) - .pipe(gulp.dest(paths.styles.dest)) - .pipe(plugins.rename({ suffix: '.min' })) - .pipe(gulp.dest(paths.styles.dest)); - }) - ) - .pipe(plugins.autoprefixer({ - browsers: config.autoprefixerBrowsers - })) - .pipe(plugins.wrapper({ - header: headerProject + '\n' - })) - .pipe(gulp.dest(paths.styles.dest)) - .pipe(plugins.csso()) - .pipe(plugins.rename({ suffix: '.min' })) - .pipe(gulp.dest(paths.styles.dest)) - .pipe(plugins.notify({ message: 'Styles task complete', onLast: true })); +gulp.task("styles", function () { + return gulp + .src([paths.styles.src + "*.styl", "!" + paths.styles.src + "_*.styl"]) + .pipe(plugins.plumber()) + .pipe( + plugins + .stylus({ + "include css": true, //,use:[koutoSwiss(), rupture()] + }) + .on("error", function (err) { + console.log(err.message); + + // If rename the stylus file change here + plugins + .file( + "styles.css", + 'body:before{white-space: pre; font-family: monospace; content: "' + + err.message + + '";}', + { src: true } + ) + .pipe(plugins.replace("\\", "/")) + .pipe(plugins.replace(/\n/gm, "\\A ")) + .pipe(plugins.replace('"', "'")) + .pipe(plugins.replace("content: '", 'content: "')) + .pipe(plugins.replace("';}", '";}')) + .pipe(gulp.dest(paths.styles.dest)) + .pipe(plugins.rename({ suffix: ".min" })) + .pipe(gulp.dest(paths.styles.dest)); + }) + ) + .pipe( + plugins.autoprefixer({ + browsers: config.autoprefixerBrowsers, + }) + ) + .pipe( + plugins.wrapper({ + header: headerProject + "\n", + }) + ) + .pipe(gulp.dest(paths.styles.dest)) + .pipe(plugins.csso()) + .pipe(plugins.rename({ suffix: ".min" })) + .pipe(gulp.dest(paths.styles.dest)) + .pipe(plugins.notify({ message: "Styles task complete", onLast: true })); }); // Generate Bitmap Sprite -gulp.task('bitmap-sprite', function () { - var sprite = gulp.src(paths.sprite.src + '**/*.png') - .pipe(plugins.plumber()) - .pipe( - spritesmith({ - imgName: 'bitmap-sprite.png', - cssName: '_bitmap-sprite.' + extensionStyle, - cssOpts: { - cssSelector: function (item) { - if (item.name.indexOf('~hover') !== -1) { - return '.icon-' + item.name.replace('~hover', ':hover'); - } else { - return '.icon-' + item.name; - } - } - }, - imgPath: '../' + basePaths.images.dest + 'bitmap-sprite.png', - padding: 2, - algorithm: 'top-down' - }) - ); - - sprite.img - .pipe(buffer()) - .pipe(plugins.imagemin()) - .pipe(gulp.dest(paths.images.dest)); - sprite.css - .pipe(gulp.dest(paths.styles.src + 'helpers')) - .pipe(plugins.notify({ message: 'Bitmap sprite task complete', onLast: true })); - - return sprite; +gulp.task("bitmap-sprite", function () { + var sprite = gulp + .src(paths.sprite.src + "**/*.png") + .pipe(plugins.plumber()) + .pipe( + spritesmith({ + imgName: "bitmap-sprite.png", + cssName: "_bitmap-sprite." + extensionStyle, + cssOpts: { + cssSelector: function (item) { + if (item.name.indexOf("~hover") !== -1) { + return ".icon-" + item.name.replace("~hover", ":hover"); + } else { + return ".icon-" + item.name; + } + }, + }, + imgPath: "../" + basePaths.images.dest + "bitmap-sprite.png", + padding: 2, + algorithm: "top-down", + }) + ); + + sprite.img + .pipe(buffer()) + .pipe(plugins.imagemin()) + .pipe(gulp.dest(paths.images.dest)); + sprite.css + .pipe(gulp.dest(paths.styles.src + "helpers")) + .pipe( + plugins.notify({ message: "Bitmap sprite task complete", onLast: true }) + ); + + return sprite; }); // Generate SVG Sprite -gulp.task('vetor-sprite', function () { - var spriteOptions = { - shape: { - spacing: { padding: 2 } - }, - mode: { - css: { - prefix: '.icon-%s', - dest: './', - sprite: '../' + basePaths.images.dest + 'vetor-sprite.svg', - layout: 'vertical', - bust: false, - render: {} - } - } - }; +gulp.task("vetor-sprite", function () { + var spriteOptions = { + shape: { + spacing: { padding: 2 }, + }, + mode: { + css: { + prefix: ".icon-%s", + dest: "./", + sprite: "../" + basePaths.images.dest + "vetor-sprite.svg", + layout: "vertical", + bust: false, + render: {}, + }, + }, + }; - spriteOptions.mode.css.render[extensionStyle] = {}; + spriteOptions.mode.css.render[extensionStyle] = {}; - spriteOptions.mode.css.render[extensionStyle].dest = '../../' + paths.styles.src + 'helpers/_vetor-sprite.' + extensionStyle; + spriteOptions.mode.css.render[extensionStyle].dest = + "../../" + paths.styles.src + "helpers/_vetor-sprite." + extensionStyle; - return gulp.src(paths.sprite.src + '*.svg') - .pipe(plugins.plumber()) - .pipe(svgSprite(spriteOptions)) - .pipe(gulp.dest(paths.images.dest)) - .pipe(plugins.notify({ message: 'SVG sprite task complete', onLast: true })); + return gulp + .src(paths.sprite.src + "*.svg") + .pipe(plugins.plumber()) + .pipe(svgSprite(spriteOptions)) + .pipe(gulp.dest(paths.images.dest)) + .pipe( + plugins.notify({ message: "SVG sprite task complete", onLast: true }) + ); }); // Fallback convert SVG to PNG -gulp.task('svg2png', function () { - return gulp.src(paths.images.dest + 'vetor-sprite.svg') - .pipe(plugins.plumber()) - .pipe(plugins.svg2png()) - .pipe(gulp.dest(paths.images.dest)); +gulp.task("svg2png", function () { + return gulp + .src(paths.images.dest + "vetor-sprite.svg") + .pipe(plugins.plumber()) + .pipe(plugins.svg2png()) + .pipe(gulp.dest(paths.images.dest)); }); // Optimize Images -gulp.task('images', function () { - var images = gulp.src( - [ - paths.images.src + '**/*.{bmp,gif,jpg,jpeg,png,svg}', - '!' + paths.sprite.src + '**/*' - ]) - .pipe(plugins.plumber()) - .pipe(plugins.newer(paths.images.dest)) - .pipe(plugins.imagemin({ optimizationLevel: 5, progressive: true })) - .pipe(gulp.dest(paths.images.dest)); - - var svg = gulp.src( - [ - paths.images.src + '**/*.svg', - '!' + paths.sprite.src + '**/*' - ]) - .pipe(plugins.plumber()) - .pipe(plugins.newer(paths.images.dest)) - .pipe(plugins.svg2png()) - .pipe(gulp.dest(paths.images.dest)) - .pipe(plugins.notify({ message: 'Images task complete', onLast: true })); - - return merge(images, svg); +gulp.task("images", function () { + var images = gulp + .src([ + paths.images.src + "**/*.{bmp,gif,jpg,jpeg,png,svg}", + "!" + paths.sprite.src + "**/*", + ]) + .pipe(plugins.plumber()) + .pipe(plugins.newer(paths.images.dest)) + .pipe(plugins.imagemin({ optimizationLevel: 5, progressive: true })) + .pipe(gulp.dest(paths.images.dest)); + + var svg = gulp + .src([paths.images.src + "**/*.svg", "!" + paths.sprite.src + "**/*"]) + .pipe(plugins.plumber()) + .pipe(plugins.newer(paths.images.dest)) + .pipe(plugins.svg2png()) + .pipe(gulp.dest(paths.images.dest)) + .pipe(plugins.notify({ message: "Images task complete", onLast: true })); + + return merge(images, svg); }); - // Concatenate vendor scripts and Minify -gulp.task('vendor-scripts', function () { - var envProd = (env === 'prod') ? '' : '!'; - - return gulp.src( - [ - '!' + paths.scripts.src + '**/*{_SEPARATE,_IGNORE}.js', - paths.scripts.src + 'settings/*.js', - envProd + paths.scripts.src + 'settings/google_analytics.js' - ]) - .pipe(plugins.plumber()) - .pipe(plugins.concat('vendors.js')) - .pipe(gulp.dest(paths.scripts.dest)) - .pipe(plugins.rename('vendors.min.js')) - .pipe(plugins.uglify()) - .pipe(gulp.dest(paths.scripts.dest)); +gulp.task("vendor-scripts", function () { + var envProd = env === "prod" ? "" : "!"; + + return gulp + .src([ + "!" + paths.scripts.src + "**/*{_SEPARATE,_IGNORE}.js", + paths.scripts.src + "settings/*.js", + envProd + paths.scripts.src + "settings/google_analytics.js", + ]) + .pipe(plugins.plumber()) + .pipe(plugins.concat("vendors.js")) + .pipe(gulp.dest(paths.scripts.dest)) + .pipe(plugins.rename("vendors.min.js")) + .pipe(plugins.uglify()) + .pipe(gulp.dest(paths.scripts.dest)); }); // Concatenate and Minify Main Scripts -gulp.task('scripts', function () { - var babelOption = { presets: ['@babel/env'] }; - var headerWrapper = { header: headerProject + '\n' }; - var jQueryWrapper = { - header: 'jQuery(document).ready(function($) {\n\n', - footer: '\n});' - }; - - var concatenate = gulp.src( - [ - '!' + paths.scripts.src + '**/*{_SEPARATE,_IGNORE}.js', - paths.scripts.src + '*.js' - ]) - .pipe(plugins.plumber()) - .pipe(plugins.cached('scripts')) - .pipe(plugins.remember('scripts')) - .pipe(plugins.plumber()) - .pipe(plugins.if(config.lintJS, plugins.eslint())) - .pipe(plugins.if(config.lintJS, plugins.eslint.format())) - .pipe(plugins.concat('scripts.js')) - .pipe(plugins.babel(babelOption)) - .pipe(plugins.if(config.jQuery, plugins.wrapper(jQueryWrapper))) - .pipe(plugins.wrapper(headerWrapper)) - .pipe(gulp.dest(paths.scripts.dest)) - .pipe(plugins.rename({ suffix: '.min' })) - .pipe(plugins.uglify()) - .pipe(gulp.dest(paths.scripts.dest)); - - var copy = gulp.src(paths.scripts.src + '/**/*_SEPARATE.js') - .pipe(plugins.plumber()) - .pipe(plugins.newer(paths.scripts.dest)) - .pipe(plugins.plumber()) - .pipe(plugins.if(config.lintJS, plugins.eslint())) - .pipe(plugins.if(config.lintJS, plugins.eslint.format())) - .pipe(plugins.rename(function (path) { - path.basename = path.basename.substring(0, path.basename.length - 9); - })) - .pipe(plugins.babel(babelOption)) - .pipe(plugins.wrapper(headerWrapper)) - .pipe(gulp.dest(paths.scripts.dest)) - .pipe(plugins.rename({ suffix: '.min' })) - .pipe(plugins.uglify({ preserveComments: 'some' })) - .pipe(gulp.dest(paths.scripts.dest)) - .pipe(plugins.notify({ message: 'Scripts task complete', onLast: true })); - - return merge(concatenate, copy); +gulp.task("scripts", function () { + var babelOption = { presets: ["@babel/env"] }; + var headerWrapper = { header: headerProject + "\n" }; + var jQueryWrapper = { + header: "jQuery(document).ready(function($) {\n\n", + footer: "\n});", + }; + + var concatenate = gulp + .src([ + "!" + paths.scripts.src + "**/*{_SEPARATE,_IGNORE}.js", + paths.scripts.src + "*.js", + ]) + .pipe(plugins.plumber()) + .pipe(plugins.cached("scripts")) + .pipe(plugins.remember("scripts")) + .pipe(plugins.plumber()) + .pipe(plugins.concat("scripts.js")) + .pipe(plugins.babel(babelOption)) + .pipe(plugins.if(config.jQuery, plugins.wrapper(jQueryWrapper))) + .pipe(plugins.wrapper(headerWrapper)) + .pipe(gulp.dest(paths.scripts.dest)) + .pipe(plugins.rename({ suffix: ".min" })) + .pipe(plugins.uglify()) + .pipe(gulp.dest(paths.scripts.dest)); + + var copy = gulp + .src(paths.scripts.src + "/**/*_SEPARATE.js") + .pipe(plugins.plumber()) + .pipe(plugins.newer(paths.scripts.dest)) + .pipe(plugins.plumber()) + .pipe( + plugins.rename(function (path) { + path.basename = path.basename.substring(0, path.basename.length - 9); + }) + ) + .pipe(plugins.babel(babelOption)) + .pipe(plugins.wrapper(headerWrapper)) + .pipe(gulp.dest(paths.scripts.dest)) + .pipe(plugins.rename({ suffix: ".min" })) + .pipe(plugins.uglify({ preserveComments: "some" })) + .pipe(gulp.dest(paths.scripts.dest)) + .pipe(plugins.notify({ message: "Scripts task complete", onLast: true })); + + return merge(concatenate, copy); }); // Copy Files to Build -gulp.task('copy', function () { - var assets = { searchPath: basePaths.dest }; - - // Minify and Copy HTML - var html = gulp.src( - [ - basePaths.dest + '**/*.{html,php}' - ]) - .pipe(plugins.useref(assets)) - .pipe(plugins.if('*.js', plugins.uglify())) - .pipe(plugins.if('*.css', plugins.csso())) - .pipe(plugins.if('*.html', plugins.htmlmin({ collapseWhitespace: true, spare: true, empty: true, conditionals: true }))) - .pipe(plugins.if('*.php', plugins.htmlmin({ collapseWhitespace: true, spare: true, empty: true, conditionals: true }))) - .pipe(gulp.dest(basePaths.build)); - - // Copy All Other files except HTML, PHP, CSS e JS Files - var allFiles = gulp.src( - [ - basePaths.dest + '**/*', - '!' + paths.styles.dest + '**/*', - '!' + paths.scripts.dest + '**/*', - '!' + basePaths.dest + '**/*.{html,php}' - ], { dot: true }) - .pipe(gulp.dest(basePaths.build)); - - return merge(html, allFiles); +gulp.task("copy", function () { + var assets = { searchPath: basePaths.dest }; + + // Minify and Copy HTML + var html = gulp + .src([basePaths.dest + "**/*.{html,php}"]) + .pipe(plugins.useref(assets)) + .pipe(plugins.if("*.js", plugins.uglify())) + .pipe(plugins.if("*.css", plugins.csso())) + .pipe( + plugins.if( + "*.html", + plugins.htmlmin({ + collapseWhitespace: true, + spare: true, + empty: true, + conditionals: true, + }) + ) + ) + .pipe( + plugins.if( + "*.php", + plugins.htmlmin({ + collapseWhitespace: true, + spare: true, + empty: true, + conditionals: true, + }) + ) + ) + .pipe(gulp.dest(basePaths.build)); + + // Copy All Other files except HTML, PHP, CSS e JS Files + var allFiles = gulp + .src( + [ + basePaths.dest + "**/*", + "!" + paths.styles.dest + "**/*", + "!" + paths.scripts.dest + "**/*", + "!" + basePaths.dest + "**/*.{html,php}", + ], + { dot: true } + ) + .pipe(gulp.dest(basePaths.build)); + + return merge(html, allFiles); }); -gulp.task('outdatedbrowser', function () { - return gulp.src('node_modules/outdated-browser/outdatedbrowser/lang/*') - .pipe(gulp.dest(basePaths.dest + 'lang/outdated_browser')); +gulp.task("outdatedbrowser", function () { + return gulp + .src("node_modules/outdated-browser/outdatedbrowser/lang/*") + .pipe(gulp.dest(basePaths.dest + "lang/outdated_browser")); }); // *************************** Utility Tasks ****************************** // -gulp.task('combine-assets', function () { - var assets = { searchPath: basePaths.dest }; +gulp.task("combine-assets", function () { + var assets = { searchPath: basePaths.dest }; - // Minify and Copy HTML - return gulp.src(basePaths.dest + '**/*.{html,php}') - .pipe(plugins.useref(assets)) - .pipe(plugins.if('*.js', plugins.uglify())) - .pipe(plugins.if('*.css', plugins.csso())) - .pipe(gulp.dest(basePaths.dest)); + // Minify and Copy HTML + return gulp + .src(basePaths.dest + "**/*.{html,php}") + .pipe(plugins.useref(assets)) + .pipe(plugins.if("*.js", plugins.uglify())) + .pipe(plugins.if("*.css", plugins.csso())) + .pipe(gulp.dest(basePaths.dest)); }); // Clean Directories -gulp.task('clean', function (cb) { - var cleanPaths = [ - basePaths.build, - paths.styles.dest, - paths.scripts.dest, - paths.styles.src + 'helpers/{_bitmap-sprite,_vetor-sprite}.{styl,scss}', - paths.images.dest + '**/*' - ]; - - return del(cleanPaths.concat(basePaths.clean.ignore), cb); +gulp.task("clean", function (cb) { + var cleanPaths = [ + basePaths.build, + paths.styles.dest, + paths.scripts.dest, + paths.styles.src + "helpers/{_bitmap-sprite,_vetor-sprite}.{styl,scss}", + paths.images.dest + "**/*", + ]; + + return del(cleanPaths.concat(basePaths.clean.ignore), cb); }); // ***************************** Main Tasks ******************************* // // Serve the project and watch -gulp.task('serve', function () { - browserSync(config.browserSync); - - gulp.watch( - [ - paths.images.src + '**/*.{bmp,gif,jpg,jpeg,png,svg}', - '!' + paths.sprite.src + '**/*' - ], - ['images', browserSync.reload] - ); - - gulp.watch(paths.sprite.src + '**/*.{png,gif}', ['bitmap-sprite', browserSync.reload]); - - gulp.watch(paths.sprite.src + '**/*.svg', ['vetor-sprite', 'styles', browserSync.reload]); - - - gulp.watch(paths.images.dest + '**/*.svg', ['svg2png', 'handlebars', browserSync.reload]); - - gulp.watch(paths.scripts.src + '*.js', ['scripts', browserSync.reload]); - - gulp.watch(paths.scripts.src + 'settings/**/*.js', ['vendor-scripts', browserSync.reload]); - - gulp.watch( - [ - paths.styles.src + '**/*.{styl,scss,sass}', - '!' + paths.styles.src + 'helpers/{mixins,functions}/*.{styl,scss,sass}' - ], - - ['styles', browserSync.reload] - ); - - gulp.watch(paths.styles.src + 'helpers/{mixins,functions}/*.{styl,scss,sass}', ['styles-helpers']); - - gulp.watch(paths.html.src + '**/*.{html,hbs}', ['handlebars']); - - - gulp.watch(basePaths.dest + '**/*.{html,php,json}', ['svg-inline', browserSync.reload]); +gulp.task("serve", function () { + browserSync(config.browserSync); + + gulp.watch( + [ + paths.images.src + "**/*.{bmp,gif,jpg,jpeg,png,svg}", + "!" + paths.sprite.src + "**/*", + ], + ["images", browserSync.reload] + ); + + gulp.watch(paths.sprite.src + "**/*.{png,gif}", [ + "bitmap-sprite", + browserSync.reload, + ]); + + gulp.watch(paths.sprite.src + "**/*.svg", [ + "vetor-sprite", + "styles", + browserSync.reload, + ]); + + gulp.watch(paths.images.dest + "**/*.svg", [ + "svg2png", + "handlebars", + browserSync.reload, + ]); + + gulp.watch(paths.scripts.src + "*.js", ["scripts", browserSync.reload]); + + gulp.watch(paths.scripts.src + "settings/**/*.js", [ + "vendor-scripts", + browserSync.reload, + ]); + + gulp.watch( + [ + paths.styles.src + "**/*.{styl,scss,sass}", + "!" + paths.styles.src + "helpers/{mixins,functions}/*.{styl,scss,sass}", + ], + + ["styles", browserSync.reload] + ); + + gulp.watch( + paths.styles.src + "helpers/{mixins,functions}/*.{styl,scss,sass}", + ["styles-helpers"] + ); + + gulp.watch(paths.html.src + "**/*.{html,hbs}", ["handlebars"]); + + gulp.watch(basePaths.dest + "**/*.{html,php,json}", [ + "svg-inline", + browserSync.reload, + ]); }); // Serve project and clean, compile and watch if pass the parameter --compile -gulp.task('default', function () { - if (args.compile) { - sequence('clean', ['outdatedbrowser', 'handlebars', 'images', 'bitmap-sprite', 'vetor-sprite', 'styles-helpers', 'vendor-scripts'], 'svg2png', 'svg-inline', 'styles', 'scripts', 'serve'); - } else { - sequence('handlebars', 'serve'); - } +gulp.task("default", function () { + if (args.compile) { + sequence( + "clean", + [ + "outdatedbrowser", + "handlebars", + "images", + "bitmap-sprite", + "vetor-sprite", + "styles-helpers", + "vendor-scripts", + ], + "svg2png", + "svg-inline", + "styles", + "scripts", + "serve" + ); + } else { + sequence("handlebars", "serve"); + } }); // Clean and compile the project -gulp.task('compile', function () { - sequence('clean', ['outdatedbrowser', 'handlebars', 'images', 'bitmap-sprite', 'vetor-sprite', 'styles-helpers', 'vendor-scripts'], 'svg2png', 'svg-inline', 'styles', 'scripts'); +gulp.task("compile", function () { + sequence( + "clean", + [ + "outdatedbrowser", + "handlebars", + "images", + "bitmap-sprite", + "vetor-sprite", + "styles-helpers", + "vendor-scripts", + ], + "svg2png", + "svg-inline", + "styles", + "scripts" + ); }); // Build Project and serve if pass the parameter --serve -gulp.task('build', ['clean'], function () { - env = 'prod'; - sequence(['outdatedbrowser', 'handlebars', 'images', 'bitmap-sprite', 'vetor-sprite', 'styles-helpers', 'vendor-scripts'], 'svg2png', 'svg-inline', 'styles', 'scripts', 'copy', function () { args.serve && browserSync(config.browserSyncBuild) } - ); +gulp.task("build", ["clean"], function () { + env = "prod"; + sequence( + [ + "outdatedbrowser", + "handlebars", + "images", + "bitmap-sprite", + "vetor-sprite", + "styles-helpers", + "vendor-scripts", + ], + "svg2png", + "svg-inline", + "styles", + "scripts", + "copy", + function () { + args.serve && browserSync(config.browserSyncBuild); + } + ); }); diff --git a/karma.conf.js b/karma.conf.js index e888a77..0aa4cd0 100644 --- a/karma.conf.js +++ b/karma.conf.js @@ -1,78 +1,74 @@ +/* eslint-disable */ // Karma configuration -/* eslint-env node */ -/* eslint strict: ["error", "global"] */ -'use strict'; -module.exports = function(config) { - var configuration = { - // base path that will be used to resolve all patterns (eg. files, exclude) - basePath: '', - - // frameworks to use - // available frameworks: https://npmjs.org/browse/keyword/karma-adapter - frameworks: ['jasmine'], - - // list of files / patterns to load in the browser - files: [ - 'node_modules/jquery/dist/jquery.js', - 'node_modules/jasmine-jquery/lib/jasmine-jquery.js', - 'dist/js/accessibility-buttons.js', - 'spec/fixtures/example.html', - 'spec/init.js', - 'spec/buttons.js' - ], - - // list of files to exclude - exclude: [ - ], - - // preprocess matching files before serving them to the browser - // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor - preprocessors: { - 'dist/js/accessibility-buttons.js': ['coverage'] - }, - - // configure the reporter - coverageReporter: { - type: 'html', - dir: 'coverage/' - }, - - // test results reporter to use - // possible values: 'dots', 'progress' - // available reporters: https://npmjs.org/browse/keyword/karma-reporter - reporters: ['progress', 'coverage'], - - // web server port - port: 9876, - - - // enable / disable colors in the output (reporters and logs) - colors: true, - - // level of logging - // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG - logLevel: config.LOG_INFO, - - // enable / disable watching file and executing tests whenever any file changes - autoWatch: true, - - // start these browsers - // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher - browsers: ['PhantomJS'], - - // Continuous Integration mode - // if true, Karma captures browsers, runs the tests and exits - singleRun: false - }; - - if (process.env.TRAVIS) { - configuration.coverageReporter = { - type: 'lcov', - dir: 'coverage/' - }, - configuration.singleRun = true; - } - - config.set(configuration); +module.exports = function (config) { + var configuration = { + // base path that will be used to resolve all patterns (eg. files, exclude) + basePath: "", + + // frameworks to use + // available frameworks: https://npmjs.org/browse/keyword/karma-adapter + frameworks: ["jasmine"], + + // list of files / patterns to load in the browser + files: [ + "node_modules/jquery/dist/jquery.js", + "node_modules/jasmine-jquery/lib/jasmine-jquery.js", + "dist/js/accessibility-buttons.js", + "spec/fixtures/example.html", + "spec/init.js", + "spec/buttons.js", + ], + + // list of files to exclude + exclude: [], + + // preprocess matching files before serving them to the browser + // available preprocessors: https://npmjs.org/browse/keyword/karma-preprocessor + preprocessors: { + "dist/js/accessibility-buttons.js": ["coverage"], + }, + + // configure the reporter + coverageReporter: { + type: "html", + dir: "coverage/", + }, + + // test results reporter to use + // possible values: 'dots', 'progress' + // available reporters: https://npmjs.org/browse/keyword/karma-reporter + reporters: ["progress", "coverage"], + + // web server port + port: 9876, + + // enable / disable colors in the output (reporters and logs) + colors: true, + + // level of logging + // possible values: config.LOG_DISABLE || config.LOG_ERROR || config.LOG_WARN || config.LOG_INFO || config.LOG_DEBUG + logLevel: config.LOG_INFO, + + // enable / disable watching file and executing tests whenever any file changes + autoWatch: true, + + // start these browsers + // available browser launchers: https://npmjs.org/browse/keyword/karma-launcher + browsers: ["PhantomJS"], + + // Continuous Integration mode + // if true, Karma captures browsers, runs the tests and exits + singleRun: false, + }; + + if (process.env.TRAVIS) { + (configuration.coverageReporter = { + type: "lcov", + dir: "coverage/", + }), + (configuration.singleRun = true); + } + + config.set(configuration); }; diff --git a/package-lock.json b/package-lock.json index 36a6917..90c42f4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -13,9 +13,12 @@ "@babel/preset-env": "^7.1.0", "@tiagoporto/dependabot-config": "^1.0.0", "@tiagoporto/editor-config": "^1.0.0", + "@tiagoporto/eslint-config": "^1.0.0", "browser-sync": "2.26.3", "del": "3.0.0", + "eslint": "^9.17.0", "gh-pages": "^2.0.1", + "globals": "^15.14.0", "gulp": "3.9.1", "gulp-autoprefixer": "6.0.0", "gulp-babel": "8.0.0", @@ -24,7 +27,6 @@ "gulp-coveralls": "0.1.4", "gulp-csslint": "1.0.1", "gulp-csso": "3.0.1", - "gulp-eslint": "5.0.0", "gulp-file": "0.4.0", "gulp-hb": "7.0.1", "gulp-htmlmin": "5.0.1", @@ -803,6 +805,16 @@ "@babel/core": "^7.0.0-0" } }, + "node_modules/@babel/plugin-transform-classes/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/plugin-transform-computed-properties": { "version": "7.10.4", "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.10.4.tgz", @@ -1277,6 +1289,16 @@ "lodash": "^4.17.19" } }, + "node_modules/@babel/traverse/node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=4" + } + }, "node_modules/@babel/types": { "version": "7.11.0", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.11.0.tgz", @@ -1299,6 +1321,382 @@ "kuler": "^2.0.0" } }, + "node_modules/@eslint-community/eslint-utils": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz", + "integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==", + "dev": true, + "license": "MIT", + "dependencies": { + "eslint-visitor-keys": "^3.4.3" + }, + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + }, + "peerDependencies": { + "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" + } + }, + "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { + "version": "3.4.3", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", + "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^12.22.0 || ^14.17.0 || >=16.0.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint-community/regexpp": { + "version": "4.12.1", + "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", + "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^12.0.0 || ^14.0.0 || >=16.0.0" + } + }, + "node_modules/@eslint/config-array": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.19.1.tgz", + "integrity": "sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@eslint/object-schema": "^2.1.5", + "debug": "^4.3.1", + "minimatch": "^3.1.2" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/config-array/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/config-array/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/core": { + "version": "0.9.1", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.9.1.tgz", + "integrity": "sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@types/json-schema": "^7.0.15" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/eslintrc": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.2.0.tgz", + "integrity": "sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==", + "dev": true, + "license": "MIT", + "dependencies": { + "ajv": "^6.12.4", + "debug": "^4.3.2", + "espree": "^10.0.1", + "globals": "^14.0.0", + "ignore": "^5.2.0", + "import-fresh": "^3.2.1", + "js-yaml": "^4.1.0", + "minimatch": "^3.1.2", + "strip-json-comments": "^3.1.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/@eslint/eslintrc/node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true, + "license": "Python-2.0" + }, + "node_modules/@eslint/eslintrc/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@eslint/eslintrc/node_modules/globals": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", + "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/eslintrc/node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dev": true, + "license": "MIT", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/@eslint/eslintrc/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/@eslint/eslintrc/node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@eslint/js": { + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.17.0.tgz", + "integrity": "sha512-Sxc4hqcs1kTu0iID3kcZDW3JHq2a77HO9P8CP6YEA/FpH3Ll8UXE2r/86Rz9YJLKme39S9vU5OWNjC6Xl0Cr3w==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/object-schema": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.5.tgz", + "integrity": "sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.4.tgz", + "integrity": "sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "levn": "^0.4.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@eslint/plugin-kit/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/@humanfs/core": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", + "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node": { + "version": "0.16.6", + "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", + "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", + "dev": true, + "license": "Apache-2.0", + "dependencies": { + "@humanfs/core": "^0.19.1", + "@humanwhocodes/retry": "^0.3.0" + }, + "engines": { + "node": ">=18.18.0" + } + }, + "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", + "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/module-importer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", + "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=12.22" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@humanwhocodes/retry": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.1.tgz", + "integrity": "sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": ">=18.18" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/nzakas" + } + }, + "node_modules/@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, + "node_modules/@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + }, + "engines": { + "node": ">= 8" + } + }, "node_modules/@tiagoporto/dependabot-config": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@tiagoporto/dependabot-config/-/dependabot-config-1.0.0.tgz", @@ -1321,12 +1719,316 @@ "node": ">=18" } }, + "node_modules/@tiagoporto/eslint-config": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@tiagoporto/eslint-config/-/eslint-config-1.0.0.tgz", + "integrity": "sha512-oh+ag4Hf5Qz09oJHFBNSg5l6mpVNCWtCv1qX30Qr9P7mB24pR2+nXLWJbaqvH5bj4zRTwUsTjrwR5yz2FvINXw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint/js": "^9.17.0", + "typescript-eslint": "^8.19.1" + }, + "engines": { + "node": ">=18" + }, + "peerDependencies": { + "eslint": ">= 9" + } + }, + "node_modules/@types/estree": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", + "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", + "dev": true, + "license": "MIT" + }, + "node_modules/@types/json-schema": { + "version": "7.0.15", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", + "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", + "dev": true, + "license": "MIT" + }, "node_modules/@types/q": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", "dev": true }, + "node_modules/@typescript-eslint/eslint-plugin": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.19.1.tgz", + "integrity": "sha512-tJzcVyvvb9h/PB96g30MpxACd9IrunT7GF9wfA9/0TJ1LxGOJx1TdPzSbBBnNED7K9Ka8ybJsnEpiXPktolTLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/regexpp": "^4.10.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/type-utils": "8.19.1", + "@typescript-eslint/utils": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", + "graphemer": "^1.4.0", + "ignore": "^5.3.1", + "natural-compare": "^1.4.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/parser": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.19.1.tgz", + "integrity": "sha512-67gbfv8rAwawjYx3fYArwldTQKoYfezNUT4D5ioWetr/xCrxXxvleo3uuiFuKfejipvq+og7mjz3b0G2bVyUCw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", + "debug": "^4.3.4" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/parser/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/scope-manager": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.19.1.tgz", + "integrity": "sha512-60L9KIuN/xgmsINzonOcMDSB8p82h95hoBfSBtXuO4jlR1R9L1xSkmVZKgCPVfavDlXihh4ARNjXhh1gGnLC7Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/type-utils": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.19.1.tgz", + "integrity": "sha512-Rp7k9lhDKBMRJB/nM9Ksp1zs4796wVNyihG9/TU9R6KCJDNkQbc2EOKjrBtLYh3396ZdpXLtr/MkaSEmNMtykw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/typescript-estree": "8.19.1", + "@typescript-eslint/utils": "8.19.1", + "debug": "^4.3.4", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/type-utils/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/types": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.19.1.tgz", + "integrity": "sha512-JBVHMLj7B1K1v1051ZaMMgLW4Q/jre5qGK0Ew6UgXz1Rqh+/xPzV1aW581OM00X6iOfyr1be+QyW8LOUf19BbA==", + "dev": true, + "license": "MIT", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, + "node_modules/@typescript-eslint/typescript-estree": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.19.1.tgz", + "integrity": "sha512-jk/TZwSMJlxlNnqhy0Eod1PNEvCkpY6MXOXE/WLlblZ6ibb32i2We4uByoKPv1d0OD2xebDv4hbs3fm11SMw8Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/visitor-keys": "8.19.1", + "debug": "^4.3.4", + "fast-glob": "^3.3.2", + "is-glob": "^4.0.3", + "minimatch": "^9.0.4", + "semver": "^7.6.0", + "ts-api-utils": "^2.0.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { + "version": "9.0.5", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", + "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=16 || 14 >=14.17" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/@typescript-eslint/typescript-estree/node_modules/semver": { + "version": "7.6.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.3.tgz", + "integrity": "sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==", + "dev": true, + "license": "ISC", + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/@typescript-eslint/utils": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.19.1.tgz", + "integrity": "sha512-IxG5gLO0Ne+KaUc8iW1A+XuKLd63o4wlbI1Zp692n1xojCl/THvgIKXJXBZixTh5dd5+yTJ/VXH7GJaaw21qXA==", + "dev": true, + "license": "MIT", + "dependencies": { + "@eslint-community/eslint-utils": "^4.4.0", + "@typescript-eslint/scope-manager": "8.19.1", + "@typescript-eslint/types": "8.19.1", + "@typescript-eslint/typescript-estree": "8.19.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, + "node_modules/@typescript-eslint/visitor-keys": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.19.1.tgz", + "integrity": "sha512-fzmjU8CHK853V/avYZAvuVut3ZTfwN5YtMaoi+X9Y9MA9keaWNHC3zEQ9zvyX/7Hj+5JkNyK1l7TOR2hevHB6Q==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/types": "8.19.1", + "eslint-visitor-keys": "^4.2.0" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + } + }, "node_modules/abbrev": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", @@ -1438,10 +2140,11 @@ } }, "node_modules/acorn": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz", - "integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==", + "version": "8.14.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.14.0.tgz", + "integrity": "sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==", "dev": true, + "license": "MIT", "bin": { "acorn": "bin/acorn" }, @@ -1450,12 +2153,13 @@ } }, "node_modules/acorn-jsx": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.2.0.tgz", - "integrity": "sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", + "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", "dev": true, + "license": "MIT", "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0" + "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "node_modules/after": { @@ -1465,10 +2169,11 @@ "dev": true }, "node_modules/ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "version": "6.12.6", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", + "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, + "license": "MIT", "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -1540,15 +2245,6 @@ "node": ">=0.10.0" } }, - "node_modules/ansi-escapes": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz", - "integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/ansi-gray": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz", @@ -1837,15 +2533,6 @@ "node": ">=0.10.0" } }, - "node_modules/astral-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", - "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", @@ -2694,6 +3381,7 @@ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", "dev": true, + "license": "MIT", "engines": { "node": ">=6" } @@ -2814,12 +3502,6 @@ "node": ">=4" } }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, "node_modules/cheerio": { "version": "0.22.0", "resolved": "https://registry.npmjs.org/cheerio/-/cheerio-0.22.0.tgz", @@ -3020,24 +3702,6 @@ "node": ">=4" } }, - "node_modules/cli-cursor": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz", - "integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=", - "dev": true, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cli-width": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz", - "integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==", - "dev": true - }, "node_modules/cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", @@ -4489,18 +5153,6 @@ "node": ">=0.3.1" } }, - "node_modules/doctrine": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", - "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, - "dependencies": { - "esutils": "^2.0.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, "node_modules/dom-serialize": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", @@ -4879,12 +5531,6 @@ "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==", "dev": true }, - "node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, "node_modules/enabled": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", @@ -5168,149 +5814,438 @@ } }, "node_modules/eslint": { - "version": "5.16.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.16.0.tgz", - "integrity": "sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg==", - "deprecated": "This version is no longer supported. Please see https://eslint.org/version-support for other options.", + "version": "9.17.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.17.0.tgz", + "integrity": "sha512-evtlNcpJg+cZLcnVKwsai8fExnqjGPicK7gnUtlNuzu+Fv9bI0aLpND5T44VLQtoMEnI57LoXO9XAkIXwohKrA==", "dev": true, + "license": "MIT", "dependencies": { - "@babel/code-frame": "^7.0.0", - "ajv": "^6.9.1", - "chalk": "^2.1.0", - "cross-spawn": "^6.0.5", - "debug": "^4.0.1", - "doctrine": "^3.0.0", - "eslint-scope": "^4.0.3", - "eslint-utils": "^1.3.1", - "eslint-visitor-keys": "^1.0.0", - "espree": "^5.0.1", - "esquery": "^1.0.1", + "@eslint-community/eslint-utils": "^4.2.0", + "@eslint-community/regexpp": "^4.12.1", + "@eslint/config-array": "^0.19.0", + "@eslint/core": "^0.9.0", + "@eslint/eslintrc": "^3.2.0", + "@eslint/js": "9.17.0", + "@eslint/plugin-kit": "^0.2.3", + "@humanfs/node": "^0.16.6", + "@humanwhocodes/module-importer": "^1.0.1", + "@humanwhocodes/retry": "^0.4.1", + "@types/estree": "^1.0.6", + "@types/json-schema": "^7.0.15", + "ajv": "^6.12.4", + "chalk": "^4.0.0", + "cross-spawn": "^7.0.6", + "debug": "^4.3.2", + "escape-string-regexp": "^4.0.0", + "eslint-scope": "^8.2.0", + "eslint-visitor-keys": "^4.2.0", + "espree": "^10.3.0", + "esquery": "^1.5.0", "esutils": "^2.0.2", - "file-entry-cache": "^5.0.1", - "functional-red-black-tree": "^1.0.1", - "glob": "^7.1.2", - "globals": "^11.7.0", - "ignore": "^4.0.6", - "import-fresh": "^3.0.0", + "fast-deep-equal": "^3.1.3", + "file-entry-cache": "^8.0.0", + "find-up": "^5.0.0", + "glob-parent": "^6.0.2", + "ignore": "^5.2.0", "imurmurhash": "^0.1.4", - "inquirer": "^6.2.2", - "js-yaml": "^3.13.0", + "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", - "levn": "^0.3.0", - "lodash": "^4.17.11", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", + "lodash.merge": "^4.6.2", + "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.8.2", - "path-is-inside": "^1.0.2", - "progress": "^2.0.0", - "regexpp": "^2.0.1", - "semver": "^5.5.1", - "strip-ansi": "^4.0.0", - "strip-json-comments": "^2.0.1", - "table": "^5.2.3", - "text-table": "^0.2.0" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" }, "engines": { - "node": "^6.14.0 || ^8.10.0 || >=9.10.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" + }, + "peerDependencies": { + "jiti": "*" + }, + "peerDependenciesMeta": { + "jiti": { + "optional": true + } } }, "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.2.0.tgz", + "integrity": "sha512-PHlWUfG6lvPc3yvP5A4PNyBL1W8fkDUccmI21JUu/+GKZBoH/W5u6usENXUrWFRsyoW5ACUjFGgAFQp5gUlb/A==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "esrecurse": "^4.3.0", + "estraverse": "^5.2.0" }, "engines": { - "node": ">=4.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, - "node_modules/eslint-utils": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz", - "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==", + "node_modules/eslint-visitor-keys": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz", + "integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==", + "dev": true, + "license": "Apache-2.0", + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" + } + }, + "node_modules/eslint/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, + "license": "MIT", "dependencies": { - "eslint-visitor-keys": "^1.1.0" + "color-convert": "^2.0.1" }, "engines": { - "node": ">=6" + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" } }, - "node_modules/eslint-visitor-keys": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz", - "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==", + "node_modules/eslint/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, + "license": "MIT", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, "engines": { - "node": ">=4" + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/eslint/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/eslint/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true, + "license": "MIT" + }, + "node_modules/eslint/node_modules/cross-spawn": { + "version": "7.0.6", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", + "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", + "dev": true, + "license": "MIT", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/eslint/node_modules/debug": { + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.0.tgz", + "integrity": "sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==", + "dev": true, + "license": "MIT", + "dependencies": { + "ms": "^2.1.3" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/eslint/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dev": true, + "license": "MIT", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.3" + }, + "engines": { + "node": ">=10.13.0" + } + }, + "node_modules/eslint/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/levn": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", + "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "prelude-ls": "^1.2.1", + "type-check": "~0.4.0" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "license": "ISC", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/eslint/node_modules/optionator": { + "version": "0.9.4", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", + "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", + "dev": true, + "license": "MIT", + "dependencies": { + "deep-is": "^0.1.3", + "fast-levenshtein": "^2.0.6", + "levn": "^0.4.1", + "prelude-ls": "^1.2.1", + "type-check": "^0.4.0", + "word-wrap": "^1.2.5" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dev": true, + "license": "MIT", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/eslint/node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8" + } + }, + "node_modules/eslint/node_modules/prelude-ls": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", + "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/eslint/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "license": "MIT", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" } }, - "node_modules/eslint/node_modules/ansi-regex": { + "node_modules/eslint/node_modules/shebang-regex": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/eslint/node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "node_modules/eslint/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" + "license": "MIT", + "dependencies": { + "has-flag": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=8" } }, - "node_modules/eslint/node_modules/js-yaml": { - "version": "3.14.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", - "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", + "node_modules/eslint/node_modules/type-check": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", + "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", "dev": true, + "license": "MIT", "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "prelude-ls": "^1.2.1" }, - "bin": { - "js-yaml": "bin/js-yaml.js" + "engines": { + "node": ">= 0.8.0" } }, - "node_modules/eslint/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "node_modules/eslint/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", "dev": true, + "license": "ISC", "dependencies": { - "ansi-regex": "^3.0.0" + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" }, "engines": { - "node": ">=4" + "node": ">= 8" } }, "node_modules/espree": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/espree/-/espree-5.0.1.tgz", - "integrity": "sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A==", + "version": "10.3.0", + "resolved": "https://registry.npmjs.org/espree/-/espree-10.3.0.tgz", + "integrity": "sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "acorn": "^6.0.7", - "acorn-jsx": "^5.0.0", - "eslint-visitor-keys": "^1.0.0" + "acorn": "^8.14.0", + "acorn-jsx": "^5.3.2", + "eslint-visitor-keys": "^4.2.0" }, "engines": { - "node": ">=6.0.0" + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://opencollective.com/eslint" } }, "node_modules/esprima": { @@ -5327,10 +6262,11 @@ } }, "node_modules/esquery": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.3.1.tgz", - "integrity": "sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", + "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", "dev": true, + "license": "BSD-3-Clause", "dependencies": { "estraverse": "^5.1.0" }, @@ -5338,32 +6274,25 @@ "node": ">=0.10" } }, - "node_modules/esquery/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, "node_modules/esrecurse": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.1.tgz", - "integrity": "sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ==", + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, + "license": "BSD-2-Clause", "dependencies": { - "estraverse": "^4.1.0" + "estraverse": "^5.2.0" }, "engines": { "node": ">=4.0" } }, "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true, + "license": "BSD-2-Clause", "engines": { "node": ">=4.0" } @@ -5758,20 +6687,6 @@ "node": ">=0.10.0" } }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/extglob": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", @@ -5942,6 +6857,99 @@ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", "dev": true }, + "node_modules/fast-glob": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", + "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", + "dev": true, + "license": "MIT", + "dependencies": { + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.8" + }, + "engines": { + "node": ">=8.6.0" + } + }, + "node_modules/fast-glob/node_modules/braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "license": "MIT", + "dependencies": { + "fill-range": "^7.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "license": "MIT", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/fast-glob/node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dev": true, + "license": "ISC", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fast-glob/node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/fast-glob/node_modules/micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "license": "MIT", + "dependencies": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/fast-glob/node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "license": "MIT", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, "node_modules/fast-json-stable-stringify": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", @@ -5960,6 +6968,16 @@ "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", "dev": true }, + "node_modules/fastq": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.18.0.tgz", + "integrity": "sha512-QKHXPW0hD8g4UET03SdOdunzSouc9N4AuHdsX8XNcTsuz+yYFILVNIX4l9yHABMhiEI9Db0JTTIpu0wB+Y1QQw==", + "dev": true, + "license": "ISC", + "dependencies": { + "reusify": "^1.0.4" + } + }, "node_modules/fd-slicer": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", @@ -5975,28 +6993,17 @@ "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==", "dev": true }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/file-entry-cache": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz", - "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==", + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", + "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", "dev": true, + "license": "MIT", "dependencies": { - "flat-cache": "^2.0.1" + "flat-cache": "^4.0.0" }, "engines": { - "node": ">=4" + "node": ">=16.0.0" } }, "node_modules/file-type": { @@ -6259,37 +7266,25 @@ } }, "node_modules/flat-cache": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz", - "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", + "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", "dev": true, + "license": "MIT", "dependencies": { - "flatted": "^2.0.0", - "rimraf": "2.6.3", - "write": "1.0.3" + "flatted": "^3.2.9", + "keyv": "^4.5.4" }, "engines": { - "node": ">=4" - } - }, - "node_modules/flat-cache/node_modules/rimraf": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", - "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", - "deprecated": "Rimraf versions prior to v4 are no longer supported", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" + "node": ">=16" } }, "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.2.tgz", + "integrity": "sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==", + "dev": true, + "license": "ISC" }, "node_modules/flush-write-stream": { "version": "1.1.1", @@ -6476,12 +7471,6 @@ "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", "dev": true }, - "node_modules/functional-red-black-tree": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", - "dev": true - }, "node_modules/gaze": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/gaze/-/gaze-0.5.2.tgz", @@ -6934,12 +7923,16 @@ } }, "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "version": "15.14.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-15.14.0.tgz", + "integrity": "sha512-OkToC372DtlQeje9/zHIo5CT8lRP/FUgEOKBEhU4e0abL7J7CD24fD9ohiLN5hagG/kWCYj4K5oaxxtj2Z0Dig==", "dev": true, + "license": "MIT", "engines": { - "node": ">=4" + "node": ">=18" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/globby": { @@ -7082,6 +8075,13 @@ "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, + "node_modules/graphemer": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", + "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", + "dev": true, + "license": "MIT" + }, "node_modules/growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", @@ -7438,17 +8438,6 @@ "node": ">=0.10.0" } }, - "node_modules/gulp-eslint": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/gulp-eslint/-/gulp-eslint-5.0.0.tgz", - "integrity": "sha512-9GUqCqh85C7rP9120cpxXuZz2ayq3BZc85pCTuPJS03VQYxne0aWPIXWx6LSvsGPa3uRqtSO537vaugOh+5cXg==", - "dev": true, - "dependencies": { - "eslint": "^5.0.1", - "fancy-log": "^1.3.2", - "plugin-error": "^1.0.1" - } - }, "node_modules/gulp-file": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/gulp-file/-/gulp-file-0.4.0.tgz", @@ -9430,10 +10419,11 @@ } }, "node_modules/ignore": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz", - "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", + "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", "dev": true, + "license": "MIT", "engines": { "node": ">= 4" } @@ -9541,16 +10531,20 @@ } }, "node_modules/import-fresh": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.2.1.tgz", - "integrity": "sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ==", + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, + "license": "MIT", "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" }, "engines": { "node": ">=6" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/imurmurhash": { @@ -9559,158 +10553,58 @@ "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true, "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", - "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", - "dev": true, - "dependencies": { - "repeating": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "node_modules/indx": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/indx/-/indx-0.2.3.tgz", - "integrity": "sha1-Fdz1bunPZcAjTFE8J/vVgOcPvFA=", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.2.0", - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^2.0.0", - "lodash": "^4.17.12", - "mute-stream": "0.0.7", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^2.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/inquirer/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/rxjs": { - "version": "6.6.2", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", - "integrity": "sha512-BHdBMVoWC2sL26w//BCu3YzKT4s2jip/WhwsGEDmeKYBhKDZeYezVUnHatYB7L85v5xs0BAQmg6BEYJEKxBabg==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/inquirer/node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" + "node": ">=0.8.19" } }, - "node_modules/inquirer/node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "node_modules/indent-string": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz", + "integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=", "dev": true, "dependencies": { - "ansi-regex": "^3.0.0" + "repeating": "^2.0.0" }, "engines": { - "node": ">=4" + "node": ">=0.10.0" } }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "node_modules/indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true + }, + "node_modules/indx": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/indx/-/indx-0.2.3.tgz", + "integrity": "sha1-Fdz1bunPZcAjTFE8J/vVgOcPvFA=", + "dev": true + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.", "dev": true, "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" + "once": "^1.3.0", + "wrappy": "1" } }, - "node_modules/inquirer/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "dev": true + }, + "node_modules/ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "deprecated": "Please update to ini >=1.3.6 to avoid a prototype pollution issue", "dev": true, "engines": { - "node": ">=6" + "node": "*" } }, "node_modules/interpret": { @@ -10001,10 +10895,11 @@ } }, "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", "dev": true, + "license": "MIT", "dependencies": { "is-extglob": "^2.1.1" }, @@ -10636,6 +11531,13 @@ "node": ">=4" } }, + "node_modules/json-buffer": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", + "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", + "dev": true, + "license": "MIT" + }, "node_modules/json-content-demux": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/json-content-demux/-/json-content-demux-0.1.4.tgz", @@ -11223,6 +12125,16 @@ "integrity": "sha1-edk9LTM2PW/dKXCzNdkUGtWR15s=", "dev": true }, + "node_modules/keyv": { + "version": "4.5.4", + "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", + "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", + "dev": true, + "license": "MIT", + "dependencies": { + "json-buffer": "3.0.1" + } + }, "node_modules/kind-of": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", @@ -12192,6 +13104,16 @@ "readable-stream": "^2.0.1" } }, + "node_modules/merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 8" + } + }, "node_modules/micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", @@ -12350,15 +13272,6 @@ "node": ">= 0.6" } }, - "node_modules/mimic-fn": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", - "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", @@ -12526,10 +13439,11 @@ } }, "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true, + "license": "MIT" }, "node_modules/multipipe": { "version": "0.1.2", @@ -12552,12 +13466,6 @@ "npm": ">=1.4.0" } }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, "node_modules/nan": { "version": "2.14.1", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", @@ -13102,18 +14010,6 @@ "fn.name": "1.x.x" } }, - "node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/openurl": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", @@ -13354,6 +14250,7 @@ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, + "license": "MIT", "dependencies": { "callsites": "^3.0.0" }, @@ -13807,6 +14704,19 @@ "node": "*" } }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, "node_modules/pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", @@ -14086,15 +14996,6 @@ "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", "dev": true }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, "node_modules/pseudomap": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", @@ -14204,6 +15105,27 @@ "node": ">=0.10.0" } }, + "node_modules/queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", + "dev": true, + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT" + }, "node_modules/quote-stream": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/quote-stream/-/quote-stream-0.0.0.tgz", @@ -14546,15 +15468,6 @@ "node": ">=0.10.0" } }, - "node_modules/regexpp": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz", - "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==", - "dev": true, - "engines": { - "node": ">=6.5.0" - } - }, "node_modules/regexpu-core": { "version": "4.7.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.0.tgz", @@ -14827,6 +15740,7 @@ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true, + "license": "MIT", "engines": { "node": ">=4" } @@ -14878,19 +15792,6 @@ "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, - "node_modules/restore-cursor": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", - "integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=", - "dev": true, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/ret": { "version": "0.1.15", "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", @@ -14900,6 +15801,17 @@ "node": ">=0.12" } }, + "node_modules/reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true, + "license": "MIT", + "engines": { + "iojs": ">=1.0.0", + "node": ">=0.10.0" + } + }, "node_modules/rf": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/rf/-/rf-0.0.1.tgz", @@ -14931,13 +15843,28 @@ "rimraf": "bin.js" } }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", + "node_modules/run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, - "engines": { - "node": ">=0.12.0" + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "license": "MIT", + "dependencies": { + "queue-microtask": "^1.2.2" } }, "node_modules/run-sequence": { @@ -15402,29 +16329,6 @@ "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", "dev": true }, - "node_modules/slice-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz", - "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.0", - "astral-regex": "^1.0.0", - "is-fullwidth-code-point": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/slice-ansi/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, "node_modules/snapdragon": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", @@ -16527,6 +17431,7 @@ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", "dev": true, + "optional": true, "engines": { "node": ">=0.10.0" } @@ -17143,65 +18048,6 @@ "node": ">=0.10.0" } }, - "node_modules/table": { - "version": "5.4.6", - "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz", - "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==", - "dev": true, - "dependencies": { - "ajv": "^6.10.2", - "lodash": "^4.17.14", - "slice-ansi": "^2.1.0", - "string-width": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/table/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/table/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/table/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, "node_modules/tar-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", @@ -17276,12 +18122,6 @@ "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", "dev": true }, - "node_modules/text-table": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", - "integrity": "sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=", - "dev": true - }, "node_modules/textextensions": { "version": "2.6.0", "resolved": "https://registry.npmjs.org/textextensions/-/textextensions-2.6.0.tgz", @@ -17583,11 +18423,18 @@ "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", "dev": true }, - "node_modules/tslib": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz", - "integrity": "sha512-i/6DQjL8Xf3be4K/E6Wgpekn5Qasl1usyw++dAA35Ue5orEn65VIxOA+YvNNl9HV3qv70T7CNwjODHZrLwvd1Q==", - "dev": true + "node_modules/ts-api-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.0.tgz", + "integrity": "sha512-xCt/TOAc+EOHS1XPnijD3/yzpH6qg2xppZO1YDqGoVsNXfQfzHpOdNuXwrwOU8u4ITXJyDCTyt8w5g1sZv9ynQ==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=18.12" + }, + "peerDependencies": { + "typescript": ">=4.8.4" + } }, "node_modules/tunnel-agent": { "version": "0.4.3", @@ -17635,6 +18482,44 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "node_modules/typescript": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.7.2.tgz", + "integrity": "sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==", + "dev": true, + "license": "Apache-2.0", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=14.17" + } + }, + "node_modules/typescript-eslint": { + "version": "8.19.1", + "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.19.1.tgz", + "integrity": "sha512-LKPUQpdEMVOeKluHi8md7rwLcoXHhwvWp3x+sJkMuq3gGm9yaYJtPo8sRZSblMFJ5pcOGCAak/scKf1mvZDlQw==", + "dev": true, + "license": "MIT", + "dependencies": { + "@typescript-eslint/eslint-plugin": "8.19.1", + "@typescript-eslint/parser": "8.19.1", + "@typescript-eslint/utils": "8.19.1" + }, + "engines": { + "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/typescript-eslint" + }, + "peerDependencies": { + "eslint": "^8.57.0 || ^9.0.0", + "typescript": ">=4.8.4 <5.8.0" + } + }, "node_modules/ua-parser-js": { "version": "0.7.17", "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.17.tgz", @@ -18514,10 +19399,11 @@ } }, "node_modules/word-wrap": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", - "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", + "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", "dev": true, + "license": "MIT", "engines": { "node": ">=0.10.0" } @@ -18557,18 +19443,6 @@ "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, - "node_modules/write": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz", - "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==", - "dev": true, - "dependencies": { - "mkdirp": "^0.5.1" - }, - "engines": { - "node": ">=4" - } - }, "node_modules/ws": { "version": "6.1.4", "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.4.tgz", @@ -18672,6 +19546,19 @@ "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", "dev": true + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } } } } diff --git a/package.json b/package.json index ba4c025..735f8d2 100644 --- a/package.json +++ b/package.json @@ -29,16 +29,21 @@ "deploy": "npm run build && gh-pages -d build", "test": "gulp test", "tag": "git tag v$npm_package_version", - "postpublish": "npm run tag && git push --tags" + "postpublish": "npm run tag && git push --tags", + "lint": "eslint --max-warnings 0", + "lint:fix": "npm run lint -- --write" }, "devDependencies": { "@babel/core": "^7.1.2", "@babel/preset-env": "^7.1.0", "@tiagoporto/dependabot-config": "^1.0.0", "@tiagoporto/editor-config": "^1.0.0", + "@tiagoporto/eslint-config": "^1.0.0", "browser-sync": "2.26.3", "del": "3.0.0", + "eslint": "^9.17.0", "gh-pages": "^2.0.1", + "globals": "^15.14.0", "gulp": "3.9.1", "gulp-autoprefixer": "6.0.0", "gulp-babel": "8.0.0", @@ -47,7 +52,6 @@ "gulp-coveralls": "0.1.4", "gulp-csslint": "1.0.1", "gulp-csso": "3.0.1", - "gulp-eslint": "5.0.0", "gulp-file": "0.4.0", "gulp-hb": "7.0.1", "gulp-htmlmin": "5.0.1", diff --git a/spec/buttons.js b/spec/buttons.js index ef2c4b9..2690770 100644 --- a/spec/buttons.js +++ b/spec/buttons.js @@ -1,64 +1,62 @@ // jasmine.getFixtures().fixturesPath = 'accessibility-buttons/spec/fixtures'; describe("Functions events", function () { - var fixture; + var fixture; - beforeEach(function() { - // loadFixtures('example.html'); - fixture = setFixtures(''); + beforeEach(function () { + // loadFixtures('example.html'); + fixture = setFixtures( + '' + ); - body = $('body'); + body = $("body"); - $_fontButton = $('#accessibility-font'); + $_fontButton = $("#accessibility-font"); - $_contrastButton = $('#accessibility-contrast'); + $_contrastButton = $("#accessibility-contrast"); - accessibilityButtons(); - }); + accessibilityButtons(); + }); + it("Clicked font button", function () { + body.removeClass("accessibility-font"); - it("Clicked font button", function () { + $("#accessibility-font").click(); - body.removeClass('accessibility-font'); + expect($("#accessibility-font")).toHaveText("-A"); - $('#accessibility-font').click(); + expect(body).toHaveClass("accessibility-font"); + expect($_fontButton).toHaveText("-A"); + expect($_fontButton).toHaveAttr("aria-label", "Decrease Font"); + }); - expect($('#accessibility-font')).toHaveText('-A'); + it("Clicked font button twice", function () { + body.removeClass("accessibility-font"); - expect(body).toHaveClass('accessibility-font'); - expect($_fontButton).toHaveText('-A'); - expect($_fontButton).toHaveAttr('aria-label', 'Decrease Font'); - }) + $("#accessibility-font").click().click(); - it("Clicked font button twice", function () { - body.removeClass('accessibility-font'); + expect(body).not.toHaveClass("accessibility-font"); + expect($_fontButton).toHaveText("+A"); + expect($_fontButton).toHaveAttr("aria-label", "Increase Font"); + }); - $('#accessibility-font').click().click(); + it("Clicked font contrast", function () { + body.removeClass("accessibility-contrast"); - expect(body).not.toHaveClass('accessibility-font'); - expect($_fontButton).toHaveText('+A'); - expect($_fontButton).toHaveAttr('aria-label', 'Increase Font'); - }) + $("#accessibility-contrast").click(); - it("Clicked font contrast", function () { - body.removeClass('accessibility-contrast'); + expect(body).toHaveClass("accessibility-contrast"); + expect($_contrastButton).toHaveText("Remove Contrast"); + expect($_contrastButton).toHaveAttr("aria-label", "Remove Contrast"); + }); - $('#accessibility-contrast').click(); + it("Clicked font contrast twice", function () { + body.removeClass("accessibility-contrast"); - expect(body).toHaveClass('accessibility-contrast'); - expect($_contrastButton).toHaveText('Remove Contrast'); - expect($_contrastButton).toHaveAttr('aria-label', 'Remove Contrast'); - }) - - - it("Clicked font contrast twice", function () { - body.removeClass('accessibility-contrast'); - - $('#accessibility-contrast').click().click(); - - expect(body).not.toHaveClass('accessibility-contrast'); - expect($_contrastButton).toHaveText('Add Contrast'); - expect($_contrastButton).toHaveAttr('aria-label', 'Add Contrast'); - }) + $("#accessibility-contrast").click().click(); + expect(body).not.toHaveClass("accessibility-contrast"); + expect($_contrastButton).toHaveText("Add Contrast"); + expect($_contrastButton).toHaveAttr("aria-label", "Add Contrast"); + }); }); diff --git a/spec/init.js b/spec/init.js index 8e7b9bb..3ab09c4 100644 --- a/spec/init.js +++ b/spec/init.js @@ -1,54 +1,54 @@ // jasmine.getFixtures().fixturesPath = 'accessibility-buttons/spec/fixtures'; describe("Init Acessibilit Buttons", function () { - var fixture; + var fixture; - beforeEach(function() { - // loadFixtures('example.html'); - fixture = setFixtures(''); + beforeEach(function () { + // loadFixtures('example.html'); + fixture = setFixtures( + '' + ); - $_fontButton = $('#accessibility-font'); + $_fontButton = $("#accessibility-font"); - $_contrastButton = $('#accessibility-contrast'); + $_contrastButton = $("#accessibility-contrast"); + }); - }); + it("Button Font", function () { + accessibilityButtons({ + font: { + nameButtonIncrease: "A+", + ariaLabelButtonIncrease: "Plus Font", + nameButtonDecrease: "A-", + ariaLabelButtonDecrease: "Minus Font", + }, + }); + expect($_fontButton).toHaveText("A+"); - it("Button Font", function () { - accessibilityButtons({ - font: { - nameButtonIncrease: 'A+', - ariaLabelButtonIncrease: 'Plus Font', - nameButtonDecrease: 'A-', - ariaLabelButtonDecrease: 'Minus Font' - } - }); + expect($_fontButton).toHaveAttr("aria-label", "Plus Font"); + }); - expect($_fontButton).toHaveText('A+'); + it("Contratast Font", function () { + accessibilityButtons({ + contrast: { + nameButtonAdd: "Add Contrast", + ariaLabelButtonAdd: "Add Contrast", + nameButtonRemove: "Remove Contrast", + ariaLabelButtonRemove: "Remove Contrast", + }, + }); - expect($_fontButton).toHaveAttr('aria-label', 'Plus Font'); - }) + expect($_contrastButton).toHaveText("Add Contrast"); - it("Contratast Font", function () { - accessibilityButtons({ - contrast: { - nameButtonAdd: 'Add Contrast', - ariaLabelButtonAdd: 'Add Contrast', - nameButtonRemove: 'Remove Contrast', - ariaLabelButtonRemove: 'Remove Contrast' - } - }); + expect($_contrastButton).toHaveAttr("aria-label", "Add Contrast"); + }); - expect($_contrastButton).toHaveText('Add Contrast'); + // it("Clicked font button twice", function () { + // body.removeClass('accessibility-font'); - expect($_contrastButton).toHaveAttr('aria-label', 'Add Contrast'); - }) + // $('#accessibility-font').click().click(); - // it("Clicked font button twice", function () { - // body.removeClass('accessibility-font'); - - // $('#accessibility-font').click().click(); - - // expect(body).not.toHaveClass('accessibility-font'); - // }) + // expect(body).not.toHaveClass('accessibility-font'); + // }) }); diff --git a/src/scripts/accessibility-buttons_SEPARATE.js b/src/scripts/accessibility-buttons_SEPARATE.js index a2a8bfa..10674f0 100644 --- a/src/scripts/accessibility-buttons_SEPARATE.js +++ b/src/scripts/accessibility-buttons_SEPARATE.js @@ -4,144 +4,160 @@ * @return */ -/* exported accessibilityButtons */ -const accessibilityButtons = options => { - 'use strict'; - - /** - * hasClass - * @param {string} element - DOM element - * @param {string} clazz - Class Name - * @return {Boolean} - */ - function hasClass(element, clazz) { - return (` ${element.className} `).indexOf(` ${clazz} `) > -1; - } - - var setting = { - font: { - nameButtonIncrease: '+A', - ariaLabelButtonIncrease: 'Increase Font', - nameButtonDecrease: '-A', - ariaLabelButtonDecrease: 'Decrease Font' - }, - - contrast: { - nameButtonAdd: 'Add Contrast', - ariaLabelButtonAdd: 'Add Contrast', - nameButtonRemove: 'Remove Contrast', - ariaLabelButtonRemove: 'Remove Contrast' - } - }; - - // Set buttons name and aria label - if (options) { - for (var key in options) { - if (options.hasOwnProperty(key)) { - var obj = options[key]; - - for (var prop in obj) { - if (obj.hasOwnProperty(prop)) { - setting[key][prop] = obj[prop]; - } - } - } +export const accessibilityButtons = (options) => { + "use strict"; + + /** + * hasClass + * @param {string} element - DOM element + * @param {string} clazz - Class Name + * @return {Boolean} + */ + function hasClass(element, clazz) { + return ` ${element.className} `.indexOf(` ${clazz} `) > -1; + } + + var setting = { + font: { + nameButtonIncrease: "+A", + ariaLabelButtonIncrease: "Increase Font", + nameButtonDecrease: "-A", + ariaLabelButtonDecrease: "Decrease Font", + }, + + contrast: { + nameButtonAdd: "Add Contrast", + ariaLabelButtonAdd: "Add Contrast", + nameButtonRemove: "Remove Contrast", + ariaLabelButtonRemove: "Remove Contrast", + }, + }; + + // Set buttons name and aria label + if (options) { + for (var key in options) { + if (options.hasOwnProperty(key)) { + var obj = options[key]; + + for (var prop in obj) { + if (obj.hasOwnProperty(prop)) { + setting[key][prop] = obj[prop]; + } } + } } - - var $body = document.body, - $accessibilityButtons = [...document.querySelectorAll('[data-accessibility]')], - $fontButton = $accessibilityButtons.filter(button => { return button.getAttribute('data-accessibility') === 'font' }), - $contrastButton = $accessibilityButtons.filter(button => { return button.getAttribute('data-accessibility') === 'contrast' }), - storageFont = localStorage.accessibility_font, - storageContrast = localStorage.accessibility_contrast; - - // Check if exist storage and set the correct button names and aria attributes - if (storageFont && $fontButton) { - $body.classList.add('accessibility-font'); - - $fontButton.forEach(button => { - button.innerHTML = setting.font.nameButtonDecrease; - button.setAttribute('aria-label', setting.font.ariaLabelButtonDecrease); - }) - } else if ($fontButton) { - $fontButton.forEach(button => { + } + + var $body = document.body, + $accessibilityButtons = [ + ...document.querySelectorAll("[data-accessibility]"), + ], + $fontButton = $accessibilityButtons.filter((button) => { + return button.getAttribute("data-accessibility") === "font"; + }), + $contrastButton = $accessibilityButtons.filter((button) => { + return button.getAttribute("data-accessibility") === "contrast"; + }), + storageFont = localStorage.accessibility_font, + storageContrast = localStorage.accessibility_contrast; + + // Check if exist storage and set the correct button names and aria attributes + if (storageFont && $fontButton) { + $body.classList.add("accessibility-font"); + + $fontButton.forEach((button) => { + button.innerHTML = setting.font.nameButtonDecrease; + button.setAttribute("aria-label", setting.font.ariaLabelButtonDecrease); + }); + } else if ($fontButton) { + $fontButton.forEach((button) => { + button.innerHTML = setting.font.nameButtonIncrease; + button.setAttribute("aria-label", setting.font.ariaLabelButtonIncrease); + }); + } + + if (storageContrast && $contrastButton) { + $body.classList.add("accessibility-contrast"); + + $contrastButton.forEach((button) => { + button.innerHTML = setting.contrast.nameButtonRemove; + button.setAttribute("aria-label", setting.contrast.ariaLabelButtonRemove); + }); + } else if ($contrastButton) { + $contrastButton.forEach((button) => { + button.innerHTML = setting.contrast.nameButtonAdd; + button.setAttribute("aria-label", setting.contrast.ariaLabelButtonAdd); + }); + } + + /** + * Get the click event + * Rename the buttons + * Apply/Remove Contrast or Font Size + * Manage storage + */ + function accessibility() { + return function () { + const $this = this; + const type = $this.getAttribute("data-accessibility"); + const classname = `accessibility-${type}`; + + if (hasClass($body, classname)) { + $body.classList.remove(classname); + + if (type === "font") { + $fontButton.forEach((button) => { button.innerHTML = setting.font.nameButtonIncrease; - button.setAttribute('aria-label', setting.font.ariaLabelButtonIncrease); - }) - } - - if (storageContrast && $contrastButton) { - $body.classList.add('accessibility-contrast'); - - $contrastButton.forEach(button => { - button.innerHTML = setting.contrast.nameButtonRemove; - button.setAttribute('aria-label', setting.contrast.ariaLabelButtonRemove); - }) - } else if ($contrastButton) { - $contrastButton.forEach(button => { + button.setAttribute( + "aria-label", + setting.font.ariaLabelButtonIncrease + ); + }); + + localStorage.removeItem("accessibility_font"); + } else if (type === "contrast") { + $contrastButton.forEach((button) => { button.innerHTML = setting.contrast.nameButtonAdd; - button.setAttribute('aria-label', setting.contrast.ariaLabelButtonAdd); - }) - } + button.setAttribute( + "aria-label", + setting.contrast.ariaLabelButtonAdd + ); + }); - /** - * Get the click event - * Rename the buttons - * Apply/Remove Contrast or Font Size - * Manage storage - */ - function accessibility() { - return function () { - const $this = this; - const type = $this.getAttribute('data-accessibility') - const classname = `accessibility-${type}` - - - if (hasClass($body, classname)) { - $body.classList.remove(classname); - - if (type === 'font') { - $fontButton.forEach(button => { - button.innerHTML = setting.font.nameButtonIncrease; - button.setAttribute('aria-label', setting.font.ariaLabelButtonIncrease); - }) - - localStorage.removeItem('accessibility_font'); - } else if (type === 'contrast') { - $contrastButton.forEach(button => { - button.innerHTML = setting.contrast.nameButtonAdd; - button.setAttribute('aria-label', setting.contrast.ariaLabelButtonAdd); - }) - - localStorage.removeItem('accessibility_contrast'); - } - } else { - $body.classList.add(classname); - - if (type === 'font') { - if (!storageFont) { - localStorage.setItem('accessibility_font', true); - } - $fontButton.forEach(button => { - button.innerHTML = setting.font.nameButtonDecrease; - button.setAttribute('aria-label', setting.font.ariaLabelButtonDecrease); - }) - } else if (type === 'contrast') { - if (!storageContrast) { - localStorage.setItem('accessibility_contrast', true); - } - $contrastButton.forEach(button => { - button.innerHTML = setting.contrast.nameButtonRemove; - button.setAttribute('aria-label', setting.contrast.ariaLabelButtonRemove); - }) - } - } - }; - } + localStorage.removeItem("accessibility_contrast"); + } + } else { + $body.classList.add(classname); + + if (type === "font") { + if (!storageFont) { + localStorage.setItem("accessibility_font", true); + } + $fontButton.forEach((button) => { + button.innerHTML = setting.font.nameButtonDecrease; + button.setAttribute( + "aria-label", + setting.font.ariaLabelButtonDecrease + ); + }); + } else if (type === "contrast") { + if (!storageContrast) { + localStorage.setItem("accessibility_contrast", true); + } + $contrastButton.forEach((button) => { + button.innerHTML = setting.contrast.nameButtonRemove; + button.setAttribute( + "aria-label", + setting.contrast.ariaLabelButtonRemove + ); + }); + } + } + }; + } - // Listening Click Event - for (var i = 0; i < $accessibilityButtons.length; i++) { - $accessibilityButtons[i].addEventListener('click', accessibility()); - } + // Listening Click Event + for (var i = 0; i < $accessibilityButtons.length; i++) { + $accessibilityButtons[i].addEventListener("click", accessibility()); + } }; diff --git a/src/scripts/demo.js b/src/scripts/demo.js index 8f85ba0..e0b956c 100644 --- a/src/scripts/demo.js +++ b/src/scripts/demo.js @@ -1,63 +1,68 @@ -/* global accessibilityButtons */ +import { accessibilityButtons } from "./accessibility-buttons.js"; -const ready = fn => { - 'use strict'; +const ready = (fn) => { + "use strict"; - if (document.readyState !== 'loading') { - fn(); - } else { - document.addEventListener('DOMContentLoaded', fn); - } + if (document.readyState !== "loading") { + fn(); + } else { + document.addEventListener("DOMContentLoaded", fn); + } }; ready(() => { - 'use strict'; + "use strict"; - accessibilityButtons({ - font: { - nameButtonIncrease: 'Click me and things will be big', - nameButtonDecrease: 'Click me and things will be back to normal' - }, + accessibilityButtons({ + font: { + nameButtonIncrease: "Click me and things will be big", + nameButtonDecrease: "Click me and things will be back to normal", + }, - contrast: { - nameButtonAdd: 'Click me and things will be darken', - nameButtonRemove: 'Click me and things will be lighten again' + contrast: { + nameButtonAdd: "Click me and things will be darken", + nameButtonRemove: "Click me and things will be lighten again", + }, + }); + + document.getElementById("year").innerHTML = new Date().getFullYear(); + + function hasClass(element, clazz) { + return ` ${element.className} `.indexOf(` ${clazz} `) > -1; + } + + function analytics() { + return function () { + var $this = this; + var $body = document.body; + + if ($this.getAttribute("id") === "accessibility-contrast") { + if ( + hasClass($body, $this.getAttribute("id") && typeof ga === "function") + ) { + ga("send", "event", "accessibility", "click", "Add Contrast"); + } else { + ga("send", "event", "accessibility", "click", "Remove Contrast"); } - }); - - - document.getElementById('year').innerHTML = new Date().getFullYear(); - - function hasClass(element, clazz) { - return (` ${element.className} `).indexOf(` ${clazz} `) > -1; - } - - function analytics() { - return function () { - var $this = this; - var $body = document.body; - - if ($this.getAttribute('id') === 'accessibility-contrast') { - if (hasClass($body, $this.getAttribute('id'))) { - typeof ga === 'function' && ga('send', 'event', 'accessibility', 'click', 'Add Contrast'); - } else { - typeof ga === 'function' && ga('send', 'event', 'accessibility', 'click', 'Remove Contrast'); - } - } - - if ($this.getAttribute('id') === 'accessibility-font') { - if (hasClass($body, $this.getAttribute('id'))) { - typeof ga === 'function' && ga('send', 'event', 'accessibility', 'click', 'Increase Font'); - } else { - typeof ga === 'function' && ga('send', 'event', 'accessibility', 'click', 'Decrease Font'); - } - } - }; - } - - var $accessibilityButtons = document.getElementsByClassName('js-acessibility'); - - for (var i = 0; i < $accessibilityButtons.length; i++) { - $accessibilityButtons[i].addEventListener('click', analytics()); - } + } + + if ($this.getAttribute("id") === "accessibility-font") { + if ( + hasClass($body, $this.getAttribute("id")) && + typeof ga === "function" + ) { + ga("send", "event", "accessibility", "click", "Increase Font"); + } else { + ga("send", "event", "accessibility", "click", "Decrease Font"); + } + } + }; + } + + var $accessibilityButtons = + document.getElementsByClassName("js-acessibility"); + + for (var i = 0; i < $accessibilityButtons.length; i++) { + $accessibilityButtons[i].addEventListener("click", analytics()); + } }); diff --git a/src/scripts/settings/google_analytics.js b/src/scripts/settings/google_analytics.js index 603dd68..af8eeac 100644 --- a/src/scripts/settings/google_analytics.js +++ b/src/scripts/settings/google_analytics.js @@ -1,10 +1,17 @@ -/* eslint-disable */ - // Google Analytics: change UA-XXXXX-X to be your site's ID. -(function(i,s,o,g,r,a,m){i.GoogleAnalyticsObject=r;i[r]=i[r] -||function(){(i[r].q=i[r].q||[]).push(arguments);},i[r].l=1*new Date();a=s.createElement(o), -m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m); -})(window,document,'script','//www.google-analytics.com/analytics.js','ga'); +(function (i, s, o, g, r, a, m) { + i.GoogleAnalyticsObject = r; + (i[r] = + i[r] || + function () { + (i[r].q = i[r].q || []).push(arguments); + }), + (i[r].l = 1 * new Date()); + (a = s.createElement(o)), (m = s.getElementsByTagName(o)[0]); + a.async = 1; + a.src = g; + m.parentNode.insertBefore(a, m); +})(window, document, "script", "//www.google-analytics.com/analytics.js", "ga"); -ga('create', 'UA-32351360-4', 'auto'); -ga('send', 'pageview'); +ga("create", "UA-32351360-4", "auto"); +ga("send", "pageview");
-

- -

- - -

Buttons to add/remove contrast and increase/decrease font size.

- - - - Accessibility Buttons Repository - - - - - - - - - - Follow @tiagoporto - - - - Fork - - - - Issue - - - - Star - - -