Lazy-loading images with data-* attributes

Related tags

Miscellaneous echo
Overview

Echo.js Build Status

Echo is a standalone JavaScript lazy-loading image micro-library. Echo is fast, 2KB, and uses HTML5 data-* attributes for simple. Check out a demo. Echo works in IE8+.

bower install echojs
npm install echo-js

Using Echo.js is simple, to add an image directly into the page simply add a data-echo attribute to the img tag. Alternatively if you want to use Echo to lazy load background images simply add a `data-echo-background' attribute to the element with the image URL.

<body>

  <img src="img/blank.gif" alt="Photo" data-echo="img/photo.jpg">

  <script src="dist/echo.js"></script>
  <script>
  echo.init({
    offset: 100,
    throttle: 250,
    unload: false,
    callback: function (element, op) {
      console.log(element, 'has been', op + 'ed')
    }
  });

  // echo.render(); is also available for non-scroll callbacks
  </script>
</body>

.init() (options)

The init() API takes a few options

offset

Type: Number|String Default: 0

The offset option allows you to specify how far below, above, to the left, and to the right of the viewport you want Echo to begin loading your images. If you specify 0, Echo will load your image as soon as it is visible in the viewport, if you want to load 1000px below or above the viewport, use 1000.

offsetVertical

Type: Number|String Default: offset's value

The offsetVertical option allows you to specify how far above and below the viewport you want Echo to begin loading your images.

offsetHorizontal

Type: Number|String Default: offset's value

The offsetHorizontal option allows you to specify how far to the left and right of the viewport you want Echo to begin loading your images.

offsetTop

Type: Number|String Default: offsetVertical's value

The offsetTop option allows you to specify how far above the viewport you want Echo to begin loading your images.

offsetBottom

Type: Number|String Default: offsetVertical's value

The offsetBottom option allows you to specify how far below the viewport you want Echo to begin loading your images.

offsetLeft

Type: Number|String Default: offsetVertical's value

The offsetLeft option allows you to specify how far to left of the viewport you want Echo to begin loading your images.

offsetRight

Type: Number|String Default: offsetVertical's value

The offsetRight option allows you to specify how far to the right of the viewport you want Echo to begin loading your images.

throttle

Type: Number|String Default: 250

The throttle is managed by an internal function that prevents performance issues from continuous firing of window.onscroll events. Using a throttle will set a small timeout when the user scrolls and will keep throttling until the user stops. The default is 250 milliseconds.

debounce

Type: Boolean Default: true

By default the throttling function is actually a debounce function so that the checking function is only triggered after a user stops scrolling. To use traditional throttling where it will only check the images every throttle milliseconds, set debounce to false.

unload

Type: Boolean Default: false

This option will tell echo to unload loaded images once they have scrolled beyond the viewport (including the offset area).

callback

Type: Function

The callback will be passed the element that has been updated and what the update operation was (ie load or unload). This can be useful if you want to add a class like loaded to the element. Or do some logging.

echo.init({
  callback: function(element, op) {
    if(op === 'load') {
      element.classList.add('loaded');
    } else {
      element.classList.remove('loaded');
    }
  }
});

.render()

Echo's callback render() can be used to make Echo poll your images when you're not scrolling, for instance if you've got a filter layout that swaps images but does not scroll, you need to call the internal functions without scrolling. Use render() for this:

echo.render();

Using render() is also throttled, which means you can bind it to an onresize event and it will be optimised for performance in the same way onscroll is.

Manual installation

Drop your files into your required folders, make sure you're using the file(s) from the dist folder, which is the compiled production-ready code. Ensure you place the script before the closing </body> tag so the DOM tree is populated when the script runs.

Configuring Echo

Add the image that needs to load when it's visible inside the viewport in a data-echo attribute:

<img src="img/blank.gif" alt="Photo" data-echo="img/photo.jpg">

Contributing

In lieu of a formal style guide, take care to maintain the existing coding style. Add unit tests for any new or changed functionality. Lint and test your code using Gulp.

License

MIT license

Comments
  • Enhancement: Only Display images that are in or overlap the view port

    Enhancement: Only Display images that are in or overlap the view port

    Right now, it appears that the images above the fold (top of the body to the bottom of the view port will load. Even if htey are not visible.

    Say you have a very long page with 100 images. And the user is taken to the page with a link with a hash that links to the bottom most image on the page: i.e

    http://foo.bar/#bottom

    Echo currently loads all images above the ones on the bottom of the page. One fix could be to check to see if the image overlaps the view port. A change to the _inView function like this works well:

    var _inView = function (element) {
      var coords = element.getBoundingClientRect();
      var win = {
        left: 0 - offset,
        top: 0 - offset,
        bottom: (window.innerHeight || document.documentElement.clientHeight)  + offset,
        right: (window.innerWidth || document.documentElement.clientWidth)  + offset
      }
      return (coords.right >= win.left && coords.bottom >= win.top &&
              coords.left <= win.right && coords.top <= win.bottom);
    };
    

    I've created a jsfiddle with a working example: http://jsfiddle.net/VxrLe/1/

    Click the "Go To Bottom" link, then scroll up on the page to see the effect. I've used a long throttle value of 500 to make the delayed loading more evident.

    opened by tmorehouse 20
  • Fallback without Javascript

    Fallback without Javascript

    The big problem with this is that the images won't show if there is no javascript. It would be better to leave the original img src and change it with javascript to the loading image...

    opened by pixmin 9
  • Unload on scrollout

    Unload on scrollout

    This pull requests add 2 configurations option unload and placeholder unload is a boolean option placeholder is a string When unload is true, now when the image scrolls out off the screen it will change the image back to the placeholder image. This is valuable for devices with limited memory (mobile devices). Images that are not on display don't need to be kept in memory.

    In order to make this work I had to fix a bug where every image above the screen was automatically loaded. If you scroll to the bottom of a echo.js enabled page and refresh, when the page loads you will be at the bottom of the page but all the images above the screen are loaded immediately instead of lazily.

    I added two other options for flexibility, but they aren't really needed, offsetBot and offsetTop. They allow you to individually set the padding above and below the window. They fallback to use the offset option if one of them is not provided.

    opened by raphaeleidus 8
  • load when in viewport #45

    load when in viewport #45

    implementation for #45

    I moved the viewport calculation into the _pollImages function so that it will only calculate once per debounced scroll event trigger, rather than once for every single image.

    opened by raphaeleidus 7
  • Fix throttle behaviour

    Fix throttle behaviour

    Before, the default behaviour was for _pollImages to be only be called 250ms (assuming default throttle value) after you stopped scrolling. Essentially, you couldn't scroll over (or near) unloaded images and have them load in without stopping.

    I modified how throttle works slightly, so now instead of calling _pollImages after you have stopped scrolling, it will now only call _pollImages immediately, and then is limited to being called every 250ms (again depending on default value there). This allows images to be loaded while you are scrolling while still ensuring you can control how often it is called.

    opened by rbhalla 7
  • data-echo-background?

    data-echo-background?

    How to do the data-echo-background? I'm at version 1.6.0.

    <style>
    div{ background: url('/bg/1pixel.gif') center center no-repeat; height: 300px; width: 100%; } 
    </style>
     <div data-echo-background="/bg/photo.jpg">foobar</div>
    

    Does not work. Still shows the 1pixel image. All my 's are working.

    opened by renege 6
  • Fix Image Removal

    Fix Image Removal

    [].slice.call(foo) returns an array that is a copy of the array-like foo, so when you splice it in this code, you're splicing (and then throwing away) a copy of store. I have edited the code to go ahead and slice the nodeList straight off (which saves cycles and code) and then do the splicing on that directly, so your elements actually do get removed.

    Also, every time you splice an element out, all of the elements in the array after it get renumbered, so the next iteration ends up skipping an element. An easy remedy to this is to run the loop in reverse, so only previously-iterated elements get renumbered. This also removes the need to check indexOf, as the element in question will never be out of bounds.

    opened by mcordingley 6
  • Using echo.js with Angular.js

    Using echo.js with Angular.js

    <img src="css/img/preloader.gif" alt data-echo="{{item.image}}">
    

    I want to output a javascript object property which points to an img to be loaded by echo.js data-echo but it is failing. I am not exprienced enough to understand how to output the actual string instead of the javascript expression.

    Is there any direction you could point me to in order to make this work with angular? I would appreciate it because I like the library a lot.

    Thanks for your time.

    opened by elemenofi 5
  • Add a umd wrapper for commonjs and amd support

    Add a umd wrapper for commonjs and amd support

    So it will work with cjs bundlers like browserify and amd loaders like requirejs. Tested myself with browserify and it works great! Will need to do another grunt build but after that it can be published to npm!

    opened by wbinnssmith 5
  • Prevent processing same image twice that caused image flickr.

    Prevent processing same image twice that caused image flickr.

    In some use cases, Echo.init may be called more than once. Since it doesn't accept any selector to confine the scope of the images yet, I'm adding a data attribute to the image to prevent setting the src attribute more than once. I noticed at least in Chrome, setting the src attribute more than once in short intervals caused the images to flickr.

    opened by onlyurei 5
  • try... catch on getBoundingClientRect()

    try... catch on getBoundingClientRect()

    When the element is removed from the DOM, in IE 8 and 9, the call getBoundingClientRect() break the code.

    I did this:

    var inView = function (element, view) {
      // needs `try catch` because in IE < 10, when the element
      // was removed from DOM the getBoundingClientRect() call 
      // break execution
      try {
        var box = element.getBoundingClientRect();
        return (box.right >= view.l && box.bottom >= view.t && box.left <= view.r && box.top <= view.b);
      } catch(e) {
        return false;
      }
    };
    
    opened by gustavopaes 4
  • [Snyk] Fix for 1 vulnerabilities

    [Snyk] Fix for 1 vulnerabilities

    This PR was automatically created by Snyk using the credentials of a real user.


    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • package.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-JS-MINIMATCH-3050818 | Yes | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: gulp The new version differs by 250 commits.
    • 55eb23a Release: 4.0.0
    • 173a532 Docs: Fix the installation instructions
    • ec54d09 Docs: Improve note about out-of-date docs
    • 03b7c98 Docs: Update recipes to install gulp@next
    • 2eba29e Docs: Remove run-sequence from recipes
    • 76eb4d6 Docs: Add installation instructions & update badges
    • fbc162f Docs: Remove references to gulp-util
    • 3011cf9 Scaffold: Normalize repository
    • f27be05 Update: Remove graceful-fs from test suite
    • 361ab63 Upgrade: Update glob-watcher
    • 064d100 Build: Avoid broken node 9
    • 057df59 Release: 4.0.0-alpha.3
    • c1ba80c Breaking: Upgrade major versions of glob-watcher, gulp-cli & vinyl-fs
    • 89acc5c Docs: Improve ES2015 task exporting examples (#1999)
    • 0ac9e04 Docs: Add "Project structure" section to CONTRIBUTING.md (#1859)
    • 723cbc4 Docs: Fix syntax in recipe example (#1715)
    • d420a6a Docs: Have gulp.lastRun take a function to avoid task registration (#1828)
    • 29ece6f Upgrade: Update undertaker
    • e931cb0 Docs: Fix changelog typos (#1696)
    • 477db84 Docs: Add a "BrowserSync with Gulp 4" recipe (#1659)
    • d4ed3c7 Docs: Add options.cwd for gulp.src API (#1645)
    • 5dc3b07 Docs: Update gulp.watch API to align with glob-watcher
    • 0c66069 Breaking: Replace chokidar as gulp.watch with glob-watcher wrapper
    • c3dbc10 Docs: Clarify incremental builds example (#1609)

    See the full diff

    Package name: gulp-jshint The new version differs by 16 commits.
    • 2cb429b 2.0.2
    • f1f3fc2 Merge pull request #150 from VictorVation/master
    • 4f1f1cb update minimatch
    • 6c9cadd Merge pull request #140 from rtack/patch-1
    • 6532823 fix typo
    • 4a7f304 2.0.1
    • 5c1d63f move to explicitly imported lodash functions
    • 81c7498 Merge pull request #139 from rkurbatov/upgrade-lodash
    • 631e7ed Update .gitignore
    • 368f267 Upgrade lodash version, fix 'repository' field to correct form
    • 0d91672 Create CHANGELOG.md
    • d7cc9ea version 2.0.0
    • 02c4053 added note about jshint peerDependency
    • 226ea3b Merge pull request #120 from spalger/jshintAsPeer
    • a1c0be4 [npm] install jshint on travis, for old npm and future npm
    • 3e7ad84 [npm] move jshint to peerDependencies

    See the full diff

    Package name: karma The new version differs by 227 commits.
    • e780c9d chore: release v0.13.12
    • 383c754 chore: update contributors
    • 2077fd8 Merge pull request #1644 from mstock/docs-jenkins
    • f5781db Merge pull request #1639 from karma-runner/greenkeeper-eslint-plugin-react-3.6.2
    • 7ddbe69 Merge pull request #1645 from karma-runner/greenkeeper-sinon-1.17.2
    • e1e1fb6 Merge pull request #1646 from Dignifiedquire/concurrent
    • ad18ce3 Merge pull request #1648 from FuzzySockets/page-reload-error
    • 033caad fix (client/karma): Set reloading context flag appropriately to avoid full page reload error
    • 1741deb feat(launcher): Add concurrency limit
    • 4ef0c64 chore(package): update sinon to version 1.17.2
    • e906797 docs(jenkins): Update Jenkins documentation
    • b138619 Merge pull request #1642 from nfl/bugfix/https-protocol
    • 142db90 fix(proxy): Pass protocol in target object to enable https requests
    • 935c63f chore(package): update eslint-plugin-react to version 3.6.2
    • 9aceea1 Merge pull request #1638 from karma-runner/greenkeeper-core-js-1.2.2
    • 731cfae chore(package): update core-js to version 1.2.2
    • 3c1369b Merge pull request #1629 from karma-runner/greenkeeper-update-all
    • 21054ab chore(package): update dependencies
    • 6443964 Merge pull request #1626 from DarthCharles/docs-public-api-spelling
    • bbc2c87 chore: Remove reverted commit from changelog
    • a8bcb90 docs: fix typos
    • fff0ed2 chore: release v0.13.11
    • 9508077 chore: update contributors
    • 40b7de6 Merge pull request #1592 from drgould/feature-restartOnFileChange

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    πŸ›  Adjust project settings

    πŸ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    πŸ¦‰ Regular Expression Denial of Service (ReDoS)

    opened by jonathan-fielding 0
  • [Snyk] Fix for 1 vulnerabilities

    [Snyk] Fix for 1 vulnerabilities

    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • package.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- low severity | 471/1000
    Why? Recently disclosed, Has a fix available, CVSS 3.7 | Prototype Pollution
    SNYK-JS-MINIMIST-2429795 | No | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: gulp The new version differs by 216 commits.
    • 84df40b 3.8.11
    • c46bf1a update liftoff and v8flags to deal with new node versions and iojs
    • 0b7967f Fixed minor JS syntax error in docs
    • 98b1cb6 Update .travis.yml
    • e8c6bf6 Add node.js 0.12 and io.js to travis.yml
    • 54684fe Adding gulp-util to the npm install line
    • e9f8991 Update gulp core team GitHub link
    • af17d96 Update gulp-ruby-sass syntax (1.0.0)
    • 0cc972c add gitter badge and rearrange badge line
    • 3cb110b Removed syntax highlighting from file structure
    • 17d77cb update MIT License to year range
    • 51e5a24 Merge pull request #834 from danielbayerlein/gulp-watch-v3
    • f66bbb4 Merge pull request #836 from yousefcisco/patch-1
    • 7f25230 Update dealing-with-streams.md
    • c9563c7 gulp-watch v3.0.0 API
    • 994f872 Merge pull request #820 from pertrai1/patch-1
    • d530c08 article on optimizing web code
    • e463249 sourcemaps with watchify
    • 6a3b85f clean up watchify recipe
    • 20774cc Merge pull request #596 from stevelacy/patch-1
    • 03df8c9 Merge pull request #818 from CaryLandholt/master
    • 742dce6 pluralized Book(s) section
    • 305500f Add "Developing a gulp Edge" book reference
    • ae98edf Merge pull request #809 from svetlyak40wt/patch-1

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    πŸ›  Adjust project settings

    πŸ“š Read more about Snyk's upgrade and patch logic


    Learn how to fix vulnerabilities with free interactive lessons:

    πŸ¦‰ Prototype Pollution

    opened by snyk-bot 0
  • [Snyk] Security upgrade karma from 0.12.37 to 6.3.16

    [Snyk] Security upgrade karma from 0.12.37 to 6.3.16

    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    merge advice

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • package.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 556/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.4 | Open Redirect
    SNYK-JS-KARMA-2396325 | Yes | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: karma The new version differs by 250 commits.
    • ab4b328 chore(release): 6.3.16 [skip ci]
    • ff7edbb fix(security): mitigate the "Open Redirect Vulnerability"
    • c1befa0 chore(release): 6.3.15 [skip ci]
    • d9dade2 fix(helper): make mkdirIfNotExists helper resilient to concurrent calls
    • 653c762 ci: prevent duplicate CI tasks on creating a PR
    • c97e562 chore(release): 6.3.14 [skip ci]
    • 91d5acd fix: remove string template from client code
    • 69cfc76 fix: warn when `singleRun` and `autoWatch` are `false`
    • 839578c fix(security): remove XSS vulnerability in `returnUrl` query param
    • db53785 chore(release): 6.3.13 [skip ci]
    • 5bf2df3 fix(deps): bump log4js to resolve security issue
    • 36ad678 chore(release): 6.3.12 [skip ci]
    • 41bed33 fix: remove depreciation warning from log4js
    • c985155 docs: create security.md
    • c96f0c5 chore(release): 6.3.11 [skip ci]
    • a5219c5 fix(deps): pin colors package to 1.4.0 due to security vulnerability
    • de0df2f test: fix version regex in the CLI test case
    • eddb2e8 chore(release): 6.3.10 [skip ci]
    • 0d24bd9 fix(logger): create parent folders if they are missing
    • b8eafe9 chore(release): 6.3.9 [skip ci]
    • cf318e5 test: add test case for restarting test run on file change
    • 92ffe60 fix: restartOnFileChange option not restarting the test run
    • b153355 style: fix grammar error in browser capture log message
    • 8f798d5 chore(release): 6.3.8 [skip ci]

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    πŸ›  Adjust project settings

    πŸ“š Read more about Snyk's upgrade and patch logic

    opened by snyk-bot 0
  • [Snyk] Security upgrade karma from 0.12.37 to 6.3.14

    [Snyk] Security upgrade karma from 0.12.37 to 6.3.14

    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    merge advice

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • package.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 663/1000
    Why? Proof of Concept exploit, Recently disclosed, Has a fix available, CVSS 5.4 | Cross-site Scripting (XSS)
    SNYK-JS-KARMA-2395349 | Yes | Proof of Concept

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: karma The new version differs by 250 commits.
    • c97e562 chore(release): 6.3.14 [skip ci]
    • 91d5acd fix: remove string template from client code
    • 69cfc76 fix: warn when `singleRun` and `autoWatch` are `false`
    • 839578c fix(security): remove XSS vulnerability in `returnUrl` query param
    • db53785 chore(release): 6.3.13 [skip ci]
    • 5bf2df3 fix(deps): bump log4js to resolve security issue
    • 36ad678 chore(release): 6.3.12 [skip ci]
    • 41bed33 fix: remove depreciation warning from log4js
    • c985155 docs: create security.md
    • c96f0c5 chore(release): 6.3.11 [skip ci]
    • a5219c5 fix(deps): pin colors package to 1.4.0 due to security vulnerability
    • de0df2f test: fix version regex in the CLI test case
    • eddb2e8 chore(release): 6.3.10 [skip ci]
    • 0d24bd9 fix(logger): create parent folders if they are missing
    • b8eafe9 chore(release): 6.3.9 [skip ci]
    • cf318e5 test: add test case for restarting test run on file change
    • 92ffe60 fix: restartOnFileChange option not restarting the test run
    • b153355 style: fix grammar error in browser capture log message
    • 8f798d5 chore(release): 6.3.8 [skip ci]
    • 4f23b14 fix(reporter): warning if stack trace contains generated code invocation
    • 4c6f681 build: remove husky and validation hooks
    • a2261bb build: use matching commitlint config
    • 920fa33 chore(release): 6.3.7 [skip ci]
    • f1aeaec fix(middleware): replace %X_UA_COMPATIBLE% marker anywhere in the file

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    πŸ›  Adjust project settings

    πŸ“š Read more about Snyk's upgrade and patch logic

    opened by snyk-bot 0
  • [Snyk] Security upgrade karma from 0.12.37 to 5.0.8

    [Snyk] Security upgrade karma from 0.12.37 to 5.0.8

    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    merge advice

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • package.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 561/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.5 | Information Exposure
    SNYK-JS-LOG4JS-2348757 | Yes | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: karma The new version differs by 250 commits.
    • 16010eb chore(release): 5.0.8 [skip ci]
    • a409696 chore: remove unused `grunt lint` command (#3515)
    • 47f1cb2 fix(dependencies): update to latest log4js major (#3514)
    • b60391f fix(dependencies): update and unlock socket.io dependency (#3513)
    • 4d49948 chore(release): 5.0.7 [skip ci]
    • f399063 fix: detect type for URLs with query parameter or fragment identifier (#3509)
    • 17b50bc chore(release): 5.0.6 [skip ci]
    • 0cd696f fix(dependencies): update production dependencies (#3512)
    • 7c24a03 chore: fix broken HTML markup in the changelog file (#3507)
    • fdc4f9d refactor(test): remove no debug matching option (#3504)
    • 35d57e9 chore(release): 5.0.5 [skip ci]
    • e99da31 fix(cli): restore command line help contents (#3502)
    • 4f2fe56 chore: add Node 14 to the build matrix (#3501)
    • 100b227 refactor(test): move execKarma into the World (#3500)
    • f375884 refactor(test): reduce execKarma to a reasonable size (#3496)
    • a3d1f11 refactor(test): add common method to start server in background (#3495)
    • e4a5126 refactor(test): write config file in its own steps (#3494)
    • 0bd5c2b refactor(test): adjust sandbox folder location and simplify config logic (#3493)
    • b788f94 refactor(test): extract proxy into a separate Given claim (#3492)
    • 633f833 chore(release): 5.0.4 [skip ci]
    • 810489d refactor(test): migrate Proxy to ES2015 (#3490)
    • fa95fa3 fix(browser): make sure that empty results array is still recognized (#3486)
    • 255bf67 refactor(test): migrate World to ES2015 (#3489)
    • be5db67 chore(test): remove usage of deprecated defineSupportCode (#3488)

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    ?? Adjust project settings

    πŸ“š Read more about Snyk's upgrade and patch logic

    opened by snyk-bot 0
  • [Snyk] Security upgrade gulp-uglify from 0.3.2 to 3.0.0

    [Snyk] Security upgrade gulp-uglify from 0.3.2 to 3.0.0

    Snyk has created this PR to fix one or more vulnerable packages in the `npm` dependencies of this project.

    merge advice

    Changes included in this PR

    • Changes to the following files to upgrade the vulnerable dependencies to a fixed version:
      • package.json

    Vulnerabilities that will be fixed

    With an upgrade:

    Severity | Priority Score (*) | Issue | Breaking Change | Exploit Maturity :-------------------------:|-------------------------|:-------------------------|:-------------------------|:------------------------- medium severity | 551/1000
    Why? Recently disclosed, Has a fix available, CVSS 5.3 | Regular Expression Denial of Service (ReDoS)
    SNYK-JS-UGLIFYJS-1727251 | Yes | No Known Exploit

    (*) Note that the real score may have changed since the PR was raised.

    Commit messages
    Package name: gulp-uglify The new version differs by 126 commits.
    • 76b5b3a fix(package): update files array
    • 5d4c4c6 chore(all): refactor unit tests
    • f2b779b feat(composer): implement new API for composing deps
    • dbbba30 fix(minify): log warnings to gulplog
    • 4cc8751 feat(uglify): add support for UglifyJS3
    • ad73ab8 chore(pkg): update dependencies, run lint
    • 4656fe5 2.1.2
    • ba83a45 fix(package): move eslint dependencies to dev
    • 3d0f155 2.1.1
    • c722ab9 fix(errors): restore file and line info
    • da3e18f chore(prettier): setup prettier
    • ec8ba54 fix(tests): UglifyJS errors use "message" property
    • 6c336ec v2.1.0
    • 35c33f1 chore(uglifyjs): loosen uglify-js pin
    • 74b6eff 2.0.1
    • 832b427 chore(package): update uglify-js to version 2.7.5
    • 1bf0f72 docs(README): link to Why Use Pump?
    • ccdc482 docs(pump): fix typo
    • 5ddafd2 chore(package): update uglify-js to version 2.7.4
    • d5801ca chore(greenkeeper): ignore "gulp-sourcemaps" dependency
    • 129df84 chore(package.json): update repository field
    • 533ee01 fix(package): update uglify-js to version 2.7.3
    • 1f2c508 docs(why-use-pump): fix plugin name
    • 2829956 docs(README): fix typo

    See the full diff

    Check the changes in this PR to ensure they won't cause issues with your project.


    Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open fix PRs.

    For more information: 🧐 View latest project report

    πŸ›  Adjust project settings

    πŸ“š Read more about Snyk's upgrade and patch logic

    opened by snyk-bot 0
Releases(v1.7.2)
Owner
Todd Motto
πŸš€ UltimateCourses.com πŸ› Google Developer Expert ⚑
Todd Motto
Gmail-like client-side drafts and bit more. Plugin developed to save html forms data to LocalStorage to restore them after browser crashes, tabs closings and other disasters.

Sisyphus Plugin developed to save html forms data to LocalStorage to restore them after browser crashes, tabs closings and other disasters. Descriptio

Alexander Kaupanin 2k Dec 8, 2022
Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Free, open-source crypto trading bot, automated bitcoin / cryptocurrency trading software, algorithmic trading bots. Visually design your crypto trading bot, leveraging an integrated charting system, data-mining, backtesting, paper trading, and multi-server crypto bot deployments.

Superalgos 3.1k Jan 1, 2023
API routes are great for APIs, but for small projects where you have to access server data or hide application logic, you can just call a server function from the client.

API routes are great for APIs, but for small projects where you have to access server data or hide application logic, you can just call a server function from the client.

null 3 Mar 6, 2022
This web application retrieves real live data from the SpaceX API

This web application retrieves real live data from the SpaceX API. It provides commercial and scientific space travel services, by allowing users to book rockets and join selected space missions.

Sahar Abdel Samad 12 Aug 9, 2022
Fast and lightweight dependency-free vanilla JavaScript polyfill for native lazy loading / the awesome loading='lazy'-attribute.

loading="lazy" attribute polyfill Fast and lightweight vanilla JavaScript polyfill for native lazy loading, meaning the behaviour to load elements rig

Maximilian Franzke 571 Dec 30, 2022
Storybook Addon Root Attributes to switch html, body or some element attributes (multiple) at runtime for you story

Storybook Addon Root Attributes What is this This project was inspired by le0pard/storybook-addon-root-attribute The existing library received only on

μ •ν˜„μˆ˜ 5 Sep 6, 2022
A modern lazy loading library for images.

Layzr.js A modern lazy loading library for images. Demo Page Getting Started Follow these steps: Install Setup Images Instantiate Review Options Revie

Michael Cavalea 5.6k Dec 25, 2022
Fancytree - JavaScript tree view / tree grid plugin with support for keyboard, inline editing, filtering, checkboxes, drag'n'drop, and lazy loading

Fancytree Fancytree (sequel of DynaTree 1.x) is a JavaScript tree view / tree grid plugin with support for keyboard, inline editing, filtering, checkb

Martin Wendt 2.6k Jan 9, 2023
A table component for your Mantine data-rich applications, supporting asynchronous data loading, column sorting, custom cell data rendering, row context menus, dark theme, and more.

Mantine DataTable A "dark-theme aware" table component for your Mantine UI data-rich applications, featuring asynchronous data loading support, pagina

Ionut-Cristian Florescu 331 Jan 4, 2023
High performance and SEO friendly lazy loader for images (responsive and normal), iframes and more, that detects any visibility changes triggered through user interaction, CSS or JavaScript without configuration.

lazysizes lazysizes is a fast (jank-free), SEO-friendly and self-initializing lazyloader for images (including responsive images picture/srcset), ifra

Alexander Farkas 16.6k Jan 1, 2023
Clean up user-submitted HTML, preserving whitelisted elements and whitelisted attributes on a per-element basis. Built on htmlparser2 for speed and tolerance

sanitize-html sanitize-html provides a simple HTML sanitizer with a clear API. sanitize-html is tolerant. It is well suited for cleaning up HTML fragm

Apostrophe Technologies 3.2k Dec 26, 2022
Show multiple entity states, attributes and icons in a single card in Home Assistant's Lovelace UI

room-card Show multiple entity states, attributes and icons in a single card in Home Assistant's Lovelace UI NOTE: This card is base on the multiple-e

Marco Kreeft 79 Dec 16, 2022
WordPress Gutenberg plugin to display the attributes for the currently selected block in the Document sidebar.

Block X-ray Attributes Stable Tag: 1.2.0 Requires at least: 5.5 Tested up to: 5.9 Requires PHP: 7.2 License: GPL v2 or later Tags: block attributes, g

Sal Ferrarello 38 Mar 18, 2022
A jQuery plugin to make your form controls look how you want them to. Now with HTML-5 attributes!

(jQuery) Uniform A jQuery plugin to make your form controls look how you want them to. Now with HTML-5 attributes! Works well with jQuery 1.6+, but we

Audith Softworks 2.2k Jan 2, 2023
Serialize an HTML Form to a JavaScript Object, supporting nested attributes and arrays.

jquery.serializeJSON Adds the method .serializeJSON() to jQuery to serializes a form into a JavaScript Object. Supports the same format for nested par

Mario Izquierdo 1.7k Dec 12, 2022
Group together Tailwind CSS modifiers like focus, peer-checked, dark:hover and more with HTML attributes πŸ‘©β€πŸš€

Tailwind CSS Group Classes Group together Tailwind CSS modifiers like focus, peer-checked, dark:hover and more with HTML attributes ??‍?? Using with a

Mark Mead 5 Sep 15, 2022
Prop-Proxy allows you to intercept getters and setters of class attributes through decorators

Prop-Proxy Proxy for class properties Prop-Proxy allows you to intercept getters and setters of class attributes through decorators Installation This

Leonardo Kaynan 6 Dec 15, 2022
Lazy minting of ERC721 NFTs using EIP712 standard for typed, structured data. ✨

ERC721 - Signature minting Lazy minting of ERC721 NFTs using EIP712 standard for typed, structured data. ✨ How it works Lazy minting or Signature mint

Sunrit Jana 21 Oct 20, 2022