{
  "_args": [
    [
      {
        "raw": "loader.js@^4.2.3",
        "scope": null,
        "escapedName": "loader.js",
        "name": "loader.js",
        "rawSpec": "^4.2.3",
        "spec": ">=4.2.3 <5.0.0",
        "type": "range"
      },
      "/home/travis/build/lukesargeant/ember-sparkline"
    ]
  ],
  "_from": "loader.js@>=4.2.3 <5.0.0",
  "_id": "loader.js@4.6.0",
  "_inCache": true,
  "_location": "/loader.js",
  "_nodeVersion": "8.1.3",
  "_npmOperationalInternal": {
    "host": "s3://npm-registry-packages",
    "tmp": "tmp/loader.js-4.6.0.tgz_1501108282687_0.816488841548562"
  },
  "_npmUser": {
    "name": "stefanpenner",
    "email": "stefan.penner@gmail.com"
  },
  "_npmVersion": "5.1.0",
  "_phantomChildren": {},
  "_requested": {
    "raw": "loader.js@^4.2.3",
    "scope": null,
    "escapedName": "loader.js",
    "name": "loader.js",
    "rawSpec": "^4.2.3",
    "spec": ">=4.2.3 <5.0.0",
    "type": "range"
  },
  "_requiredBy": [
    "#DEV:/"
  ],
  "_resolved": "https://registry.npmjs.org/loader.js/-/loader.js-4.6.0.tgz",
  "_shasum": "b965663ddbe2d80da482454cb865efe496e93e22",
  "_shrinkwrap": null,
  "_spec": "loader.js@^4.2.3",
  "_where": "/home/travis/build/lukesargeant/ember-sparkline",
  "author": "",
  "bugs": {
    "url": "https://github.com/ember-cli/loader.js/issues"
  },
  "dependencies": {},
  "description": "loader.js =========",
  "devDependencies": {
    "ara": "0.0.3",
    "babel-core": "^6.25.0",
    "babel-plugin-transform-es2015-destructuring": "^6.23.0",
    "babel6-plugin-strip-heimdall": "^6.0.1",
    "heimdalljs": "^0.3.2",
    "jscs": "^2.11.0",
    "jshint": "^2.9.2",
    "mkdirp": "^0.5.1",
    "ora": "^0.2.1",
    "promise-map-series": "^0.2.2",
    "qunitjs": "^1.20.0",
    "testem": "^1.0.0"
  },
  "directories": {
    "test": "tests"
  },
  "dist": {
    "integrity": "sha512-NjAnzMq/BM2VlXA9er0Nx1Runocgi+hEU53ENhCtTx82GX6/l9NXwfIqg81om6QvmhUlv2zH+4R+N+wOoeXytQ==",
    "shasum": "b965663ddbe2d80da482454cb865efe496e93e22",
    "tarball": "https://registry.npmjs.org/loader.js/-/loader.js-4.6.0.tgz"
  },
  "ember-addon": {
    "main": "index.js"
  },
  "files": [
    "dist",
    "index.js",
    "utils.js"
  ],
  "gitHead": "1268caa12975528b5c0ad776474d72de77998539",
  "homepage": "https://github.com/ember-cli/loader.js",
  "keywords": [
    "ember-addon"
  ],
  "license": "MIT",
  "main": "dist/loader/loader.js",
  "maintainers": [
    {
      "name": "ember-cli",
      "email": "stefan.penner+ember-cli@gmail.com"
    },
    {
      "name": "kratiahuja",
      "email": "kratiahuja@gmail.com"
    },
    {
      "name": "krisselden",
      "email": "kris.selden@gmail.com"
    },
    {
      "name": "mmun",
      "email": "im.mmun@gmail.com"
    },
    {
      "name": "rwjblue",
      "email": "me@rwjblue.com"
    },
    {
      "name": "stefanpenner",
      "email": "stefan.penner@gmail.com"
    }
  ],
  "name": "loader.js",
  "optionalDependencies": {},
  "readme": "loader.js [![Build Status](https://travis-ci.org/ember-cli/loader.js.svg?branch=master)](https://travis-ci.org/ember-cli/loader.js)\n=========\n\nMinimal AMD loader mostly stolen from [@wycats](https://github.com/wycats).\n\n## No Conflict\n\nTo prevent the loader from overriding `require`, `define`, or `requirejs` you can instruct the loader\nto use no conflict mode by providing it an alternative name for the various globals that are normally used.\n\nExample:\n\n```js\nloader.noConflict({\n  define: 'newDefine',\n  require: 'newRequire'\n});\n```\n\n## Extra stuff\n\n### `define.alias('new-name', 'old/path')`\n\n`define.alias` allows creation of a symlink from one module to another, for example:\n\n```js\ndefine('foo/bar/baz', [], () => 'hi');\ndefine.alias('foo', 'foo/bar/baz');\n\nrequire('foo') // => 'hi';\nrequire('foo') === require('foo/bar/baz');\n```\n\n### `require('require')`\n\nWhen within a module, one can require `require`. This provides a `require` scoped to the current module. Enabling dynamic, relatively path requires.\n\n```js\n\ndefine('foo/apple', ['require'], function() { return 'apple'; });\ndefine('foo/bar', ['require'], function(require){ return require('./apple'););\n\nrequire('foo/bar'); // 'apple';\n```\n\nThis scoped `require` also enables a module some reflection, in this case the ability for a module to see its own `moduleId`;\n\n```js\n\ndefine('my/name/is', ['require'], function(require) {\n  require.moduleId // => 'my/name/is';\n});\n```\n\n### `define.exports('foo', {})`\n\n`define.exports` enables a fastpath for non-lazy dependency-less modules, for example:\n\nRather then:\n\n```js\ndefine(\"my-foo-app/templates/application\", [\"exports\"], function (exports) {\n  \"use strict\";\n\n  Object.defineProperty(exports, \"__esModule\", {\n    value: true\n  });\n\n  exports.default = Ember.HTMLBars.template({ \"id\": \"VVZNWoRm\", \"block\": \"{\\\"statements\\\":[[1,[26,[\\\"welcome-page\\\"]],false],[0,\\\"\\\\n\\\"],[0,\\\"\\\\n\\\"],[1,[26,[\\\"outlet\\\"]],false]],\\\"locals\\\":[],\\\"named\\\":[],\\\"yields\\\":[],\\\"hasPartials\\\":false}\", \"meta\": { \"moduleName\": \"my-foo-app/templates/application.hbs\" } });\n});\n```\n\nWe can author:\n\n```js\ndefine.exports('my-app/template/apple', { hbs: true, \"id\": \"VVZNWoRm\", \"block\": \"{\\\"statements\\\":[[1,[26,[\\\"welcome-page\\\"]],false],[0,\\\"\\\\n\\\"],[0,\\\"\\\\n\\\"],[1,[26,[\\\"outlet\\\"]],false]],\\\"locals\\\":[],\\\"named\\\":[],\\\"yields\\\":[],\\\"hasPartials\\\":false}\", \"meta\": { \"moduleName\": \"my-foo-app/templates/application.hbs\" }});\n```\n\nbenefits:\n\n* less bytes\n* no reification step\n* no need to juggle pre-parse voodoo.\n\n### `require.unsee('foo');`\n\n`require.unsee` allows one to unload a given module. *note* The side-effects of that module cannot be unloaded.\nThis is quite useful, especially for test suites. Being able to unload run tests, mitigates many common memory leaks:\n\nexample:\n\n```js\ndefine('my-app/tests/foo-test.js', ['qunit'], function(qunit) {\n  let app;\n\n  qunit.module('my module', {\n    beforeEach() {\n      app = new App();\n    }\n\n    // forgot to `null` out app in the afterEach\n  });\n\n  test('my app exists', function(assert) {\n    assert.ok(app);\n  })\n})\n```\n\n---\n\nNote: To be able to take advantage of alternate `define` method name, you will also need to ensure that your\nbuild tooling generates using the alternate.  An example of this is done in the [emberjs-build](https://github.com/emberjs/emberjs-build)\nproject in the [babel-enifed-module-formatter plugin](https://github.com/emberjs/emberjs-build/blob/v0.4.2/lib/utils/babel-enifed-module-formatter.js).\n\n## wrapModules\n\nIt is possible to hook loader to augment or transform the loaded code.  `wrapModules` is an optional method on the loader that is called as each module is originally loaded.  `wrapModules` must be a function of the form `wrapModules(name, callback)`. The `callback` is the original AMD callback.  The return value of `wrapModules` is then used in subsequent requests for `name`\n\nThis functionality is useful for instrumenting code, for instance in code coverage libraries.\n\n```js\nloader.wrapModules = function(name, callback) {\n            if (shouldTransform(name) {\n                    return myTransformer(name, callback);\n                }\n            }\n            return callback;\n    };\n```\n\n## makeDefaultExport\n\nloader.js creates default exports for ember-cli `amdStrict` mode. If you do not need this behavior you can disable it like so:\n\n```js\nloader.makeDefaultExport = false;\n```\n\n## Tests\n\nWe use [testem](https://github.com/airportyh/testem) for running our test suite.\n\nYou may run them with:\n```sh\nnpm test\n```\n\nYou can also launch testem development mode with:\n```sh\nnpm run test:dev\n```\n\n## License\n\nloader.js is [MIT Licensed](https://github.com/ember-cli/loader.js/blob/master/LICENSE.md).\n",
  "readmeFilename": "README.md",
  "repository": {
    "type": "git",
    "url": "git+https://github.com/ember-cli/loader.js.git"
  },
  "scripts": {
    "build": "node build",
    "prepublish": "./build.js",
    "test": "testem ci && jshint lib tests && jscs lib tests",
    "test:dev": "testem"
  },
  "version": "4.6.0"
}
