{"_id":"@blueeast/proxy-polyfill","_rev":"7-f2cf387bcedd9984edbece7d94ac3b9a","name":"@blueeast/proxy-polyfill","dist-tags":{"latest":"0.1.10"},"versions":{"0.1.8":{"name":"@blueeast/proxy-polyfill","version":"0.1.8","description":"Polyfill for the Proxy object","main":"proxy.js","repository":{"type":"git","url":"git+https://github.com/GoogleChrome/proxy-polyfill.git"},"keywords":["polyfill","html5","proxy","es6"],"author":{"name":"The Chromium Authors"},"license":"Apache-2.0","bugs":{"url":"https://github.com/GoogleChrome/proxy-polyfill/issues"},"homepage":"https://github.com/GoogleChrome/proxy-polyfill#readme","devDependencies":{"chai":"^4.1.2","mocha":"^3.5.3"},"scripts":{"test":"mocha"},"gitHead":"a60e48a9060e1897794b55949131593f0c68f360","_id":"@blueeast/proxy-polyfill@0.1.8","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"bjavaid","email":"javaidbabar@gmail.com"},"dist":{"integrity":"sha512-zKVcivSBc7YBpQFw6ulzwcnyON3h2hG7VS15Wrx4RxIlwzwAuWgBgXlSOtepox+fM+C0+j7Qk7CssKrwmcpbMg==","shasum":"d625fcd53df060fc2b22bda5906f6be551b17c94","tarball":"https://registry.npmjs.org/@blueeast/proxy-polyfill/-/proxy-polyfill-0.1.8.tgz","fileCount":12,"unpackedSize":46687,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDUGs26jwS/LDYBP5Dni9XfrZZycAwhTFgFPc9/3yAoiQIhANNh3vytN6C0HZ+z5lKHubTemS/ZtSdA5lwIhKniHOf1"}]},"maintainers":[{"name":"artalat","email":"rehman.talat@gmail.com"},{"name":"bjavaid","email":"javaidbabar@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/proxy-polyfill_0.1.8_1519041276857_0.5787730670783453"},"_hasShrinkwrap":false},"0.1.9":{"name":"@blueeast/proxy-polyfill","version":"0.1.9","description":"Polyfill for the Proxy object","main":"proxy.js","repository":{"type":"git","url":"git+https://github.com/GoogleChrome/proxy-polyfill.git"},"keywords":["polyfill","html5","proxy","es6"],"author":{"name":"The Chromium Authors"},"license":"Apache-2.0","bugs":{"url":"https://github.com/GoogleChrome/proxy-polyfill/issues"},"homepage":"https://github.com/GoogleChrome/proxy-polyfill#readme","devDependencies":{"chai":"^4.1.2","mocha":"^3.5.3"},"scripts":{"test":"mocha"},"gitHead":"3b37a48d190be0dfee328792f58336cce8875544","_id":"@blueeast/proxy-polyfill@0.1.9","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"bjavaid","email":"javaidbabar@gmail.com"},"dist":{"integrity":"sha512-7kSliKhyU2AIHd/YlozlIvmpHelMZ9rlodJKr/FnHjh+VYor3ICD53vR7NSrXbrhr+5N/YRIzqkAUbTHPyeqsw==","shasum":"186e63a59bc558be99563597c07afffb42218126","tarball":"https://registry.npmjs.org/@blueeast/proxy-polyfill/-/proxy-polyfill-0.1.9.tgz","fileCount":12,"unpackedSize":46687,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBGETFfiCRqe83OuTVE9cSIt4eTTJ+xbjioXnhfXETV+AiEAg3mQPaYdipVHY15qkpr2jV4kJKgFLnLw4GcdYkY+1+8="}]},"maintainers":[{"name":"artalat","email":"rehman.talat@gmail.com"},{"name":"bjavaid","email":"javaidbabar@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/proxy-polyfill_0.1.9_1519121904806_0.4850501206690174"},"_hasShrinkwrap":false},"0.1.10":{"name":"@blueeast/proxy-polyfill","version":"0.1.10","description":"Polyfill for the Proxy object","main":"index.js","repository":{"type":"git","url":"git+https://github.com/GoogleChrome/proxy-polyfill.git"},"keywords":["polyfill","html5","proxy","es6"],"author":{"name":"The Chromium Authors"},"license":"Apache-2.0","bugs":{"url":"https://github.com/GoogleChrome/proxy-polyfill/issues"},"homepage":"https://github.com/GoogleChrome/proxy-polyfill#readme","devDependencies":{"chai":"^4.1.2","mocha":"^3.5.3"},"scripts":{"test":"mocha"},"gitHead":"a52f1be0240fe1b2814e52587b6ae6f7bf0048ce","_id":"@blueeast/proxy-polyfill@0.1.10","_npmVersion":"5.6.0","_nodeVersion":"8.9.4","_npmUser":{"name":"bjavaid","email":"javaidbabar@gmail.com"},"dist":{"integrity":"sha512-44QisZ+qC9BFY+fywf35HXL0KTiKugAeJL7d3YZiiHE/RixAWQdC4Jtv89OU4AQFlJOpe9zLoa+FJcyTrdj2iQ==","shasum":"19dab15e66fd730c0cddc8c30318b0e9e68389f0","tarball":"https://registry.npmjs.org/@blueeast/proxy-polyfill/-/proxy-polyfill-0.1.10.tgz","fileCount":12,"unpackedSize":46688,"signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBSA9G16D43d4ckhFByaKiuYg96a9aPHbyIwSEBHQzrYAiEAr5bgNDr+xKiG7AYajgNwdxPdQpGsOltCdZllD2tQ3J4="}]},"maintainers":[{"name":"artalat","email":"rehman.talat@gmail.com"},{"name":"bjavaid","email":"javaidbabar@gmail.com"}],"directories":{},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/proxy-polyfill_0.1.10_1519127766175_0.10894860381519011"},"_hasShrinkwrap":false}},"time":{"created":"2018-02-19T11:54:36.772Z","0.1.8":"2018-02-19T11:54:36.922Z","modified":"2022-04-04T19:47:22.807Z","0.1.9":"2018-02-20T10:18:24.897Z","0.1.10":"2018-02-20T11:56:06.248Z"},"maintainers":[{"email":"bluebase-release-bot@blueeast.com","name":"bluebase-release-bot"},{"email":"abubakar.mani1@gmail.com","name":"abubakarsaddique"},{"email":"rehman.talat@gmail.com","name":"artalat"}],"description":"Polyfill for the Proxy object","homepage":"https://github.com/GoogleChrome/proxy-polyfill#readme","keywords":["polyfill","html5","proxy","es6"],"repository":{"type":"git","url":"git+https://github.com/GoogleChrome/proxy-polyfill.git"},"author":{"name":"The Chromium Authors"},"bugs":{"url":"https://github.com/GoogleChrome/proxy-polyfill/issues"},"license":"Apache-2.0","readme":"<img src=\"https://api.travis-ci.org/GoogleChrome/proxy-polyfill.svg?branch=master\" />\n\nThis is a polyfill for the `Proxy` object, part of ES6.\nSee the [MDN docs](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Proxy) or [Introducing ES2015 Proxies](https://developers.google.com/web/updates/2016/02/es2015-proxies) for more information on `Proxy` itself.\nUnlike other polyfills, this does not require `Object.observe`, [which is deprecated](https://www.google.com/search?q=object.observe+deprecated).\n\nThe polyfill supports just a limited number of proxy 'traps'.\nIt also works by calling [seal](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/seal) on the object passed to `Proxy`.\nThis means that the properties you want to proxy **must be known at creation time**.\n\nAdditionally, your objects' prototypes will be snapshotted at the time a proxy is created.\nThe properties of your objects can still change - you're just unable to define new ones.\nFor example, proxying unrestricted dictionaries is not a good use-case for this polyfill.\n\nCurrently, the following traps are supported-\n\n* get\n* set\n* apply\n* construct\n\nThe `Proxy.revocable` [method](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/revocable) is also supported, but only for calls to the above traps.\n\nThis has no external dependencies.\nSkip down to [usage](#usage) to get started.\n\n# Example\n\nThe most compelling use case for `Proxy` is to provide change notifications.\n\n```js\nfunction observe(o, callback) {\n  return new Proxy(o, {\n    set(target, property, value) {\n      callback(property, value);\n      target[property] = value;\n    },\n  });\n}\n\nconst x = {'name': 'BB-8'};\nconst p = observe(x, (property, value) => console.info(property, value));\np.name = 'BB-9';\n// name BB-9\n```\n\nYou can extend this to generate change notifications for anywhere in an object tree-\n\n```js\nfunction observe(o, callback) {\n  function buildProxy(prefix, o) {\n    return new Proxy(o, {\n      set(target, property, value) {\n        // same as above, but add prefix\n        callback(prefix + property, value);\n        target[property] = value;\n      },\n      get(target, property) {\n        // return a new proxy if possible, add to prefix\n        const out = target[property];\n        if (out instanceof Object) {\n          return buildProxy(prefix + property + '.', out);\n        }\n        return out;  // primitive, ignore\n      },\n    });\n  }\n\n  return buildProxy('', o);\n}\n\nconst x = {'model': {name: 'Falcon'}};\nconst p = observe(x, (property, value) => console.info(property, value));\np.model.name = 'Commodore';\n// model.name Commodore\n```\n\n## Adding new properties\n\nThe following line will fail (with a `TypeError` in strict mode) with the polyfill, as it's unable to intercept _new_ properties-\n\n```js\np.model.year = 2016;  // error in polyfill\n```\n\nHowever, you can replace the entire object at once - once you access it again, your code will see the proxied version.\n\n```js\np.model = {name: 'Falcon', year: 2016};\n// model Object {name: \"Falcon\", year: 2016}\n```\n\nFor a similar reason, this polyfill can't proxy `Array` objects very well - but you can replace them all at once.\n\n# Usage\n\nInclude the JavaScript at the start of your page, as an ES6 module (although browsers that support ES6 modules support `Proxy` natively) or include it as a dependency to your build steps.\nThe source is in ES6, but the included, minified version is ES5.\n\n## Installation\n\nAvailable via NPM or Bower-\n\n```bash\n$ npm install proxy-polyfill\n$ bower install proxy-polyfill\n```\n\nIf this is imported as a Node module, it will polyfill the global namespace rather than returning the `Proxy` object.\n\n## Supports\n\nThe polyfill supports browsers that implement the full [ES5 spec](http://kangax.github.io/compat-table/es5/), such as IE9+ and Safari 6+.\nIt may work in other non-browser environments too.\n\nNote that Firefox, Chrome, Safari 10+ and Edge support `Proxy` natively.\n\n# Release\n\nCompile code with [Closure Compiler](https://closure-compiler.appspot.com/home).\n\n```\n// ==ClosureCompiler==\n// @compilation_level ADVANCED_OPTIMIZATIONS\n// @output_file_name proxy.min.js\n// ==/ClosureCompiler==\n\n// code here\n```\n","readmeFilename":"README.md"}