Socket
Socket
Sign inDemoInstall

@urql/exchange-persisted-fetch

Package Overview
Dependencies
Maintainers
34
Versions
35
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@urql/exchange-persisted-fetch - npm Package Compare versions

Comparing version 0.1.0 to 0.1.1

6

CHANGELOG.md
# @urql/exchange-persisted-fetch
## 0.1.1
### Patch Changes
- ⚠️ Fix `persistedFetchExchange` not sending the SHA256 hash extension after a cache miss (`PersistedQueryNotFound` error), by [@kitten](https://github.com/kitten) (See [#766](https://github.com/FormidableLabs/urql/pull/766))
## 0.1.0

@@ -4,0 +10,0 @@

135

dist/urql-exchange-persisted-fetch.js

@@ -5,7 +5,7 @@ "use strict";

return (_extends = Object.assign || function(a) {
var c, b, d;
for (c = 1; c < arguments.length; c++) {
b = arguments[c];
for (d in b) {
Object.prototype.hasOwnProperty.call(b, d) && (a[d] = b[d]);
var b, c, d;
for (b = 1; b < arguments.length; b++) {
c = arguments[b];
for (d in c) {
Object.prototype.hasOwnProperty.call(c, d) && (a[d] = c[d]);
}

@@ -18,8 +18,8 @@ }

function _ref3(a) {
var c, b, d, f;
for (c = "", b = 0, d = a.length; b < d; b++) {
f = a[b].toString(16);
c += "00".slice(0, Math.max(0, 2 - f.length)) + f;
var b, c, d, e;
for (b = "", c = 0, d = a.length; c < d; c++) {
e = a[c].toString(16);
b += "00".slice(0, Math.max(0, 2 - e.length)) + e;
}
return c;
return b;
}

@@ -50,13 +50,13 @@

}
var c = cryptoSubtle.digest({
var b = cryptoSubtle.digest({
name: "SHA-256"
}, a);
return new Promise((function(a, d) {
isIE ? (c.oncomplete = function b(b) {
isIE ? (b.oncomplete = function c(b) {
a(new Uint8Array(b.target.result));
}, c.onerror = function g(a) {
}, b.onerror = function g(a) {
d(a);
}) : Promise.resolve(c).then((function e(b) {
}) : Promise.resolve(b).then((function h(b) {
a(new Uint8Array(b));
})).catch((function h(a) {
})).catch((function k(a) {
d(a);

@@ -66,3 +66,3 @@ }));

}, hash = function(a) {
var c, b, d;
var b, c, d;
try {

@@ -73,88 +73,69 @@ if ("undefined" == typeof window) {

if ("undefined" != typeof TextEncoder) {
c = (new TextEncoder).encode(a);
b = (new TextEncoder).encode(a);
} else {
c = new Uint8Array(a.length);
for (b = 0, d = a.length; b < d; b++) {
c[b] = a.charCodeAt(b);
b = new Uint8Array(a.length);
for (c = 0, d = a.length; c < d; c++) {
b[c] = a.charCodeAt(c);
}
}
return Promise.resolve(sha256(c)).then(_ref3);
} catch (f) {
return Promise.reject(f);
return Promise.resolve(sha256(b)).then(_ref3);
} catch (e) {
return Promise.reject(e);
}
}, persistedFetchExchange = function(a) {
var c = a.forward, b = a.dispatchDebug, d = !0;
var b = a.forward, c = a.dispatchDebug, d = !0;
return function(a) {
var e, g = wonka.share(a);
a = wonka.mergeMap((function(a) {
var c = a.key, e = wonka.filter((function(a) {
return "teardown" === a.operationName && a.key === c;
}))(g);
return d ? wonka.takeUntil(e)(wonka.mergeMap((function(c) {
return c.error && isPersistedUnsupported(c.error) ? (d = !1, makeNormalFetchSource(a, b)) : c.error && isPersistedMiss(c.error) ? makeNormalFetchSource(a, b) : wonka.fromValue(c);
}))(makePersistedFetchSource(a, b))) : wonka.takeUntil(e)(makeNormalFetchSource(a, b));
var h, b = a.key, e = wonka.filter((function(a) {
return "teardown" === a.operationName && a.key === b;
}))(g), f = internal.makeFetchBody(a);
if (!d) {
return wonka.takeUntil(e)(makePersistedFetchSource(a, f, c));
}
h = f.query;
return wonka.takeUntil(e)(wonka.mergeMap((function(b) {
return b.error && isPersistedUnsupported(b.error) ? (f.query = h, f.extensions = void 0,
d = !1, makePersistedFetchSource(a, f, c)) : b.error && isPersistedMiss(b.error) ? (f.query = h,
makePersistedFetchSource(a, f, c)) : wonka.fromValue(b);
}))(wonka.mergeMap((function(b) {
f.query = void 0;
f.extensions = {
persistedQuery: {
version: 1,
sha256Hash: b
}
};
return makePersistedFetchSource(a, f, c);
}))(wonka.fromPromise(hash(h)))));
}))(wonka.filter(_ref)(g));
e = c(wonka.filter(_ref2)(g));
e = b(wonka.filter(_ref2)(g));
return wonka.merge([ a, e ]);
};
}, makePersistedFetchSource = function(a, c) {
var b = internal.makeFetchBody(a), d = b.query;
return wonka.mergeMap((function(d) {
b.query = void 0;
b.extensions = {
persistedQuery: {
version: 1,
sha256Hash: d
}
};
var g = internal.makeFetchURL(a, _extends({}, b, {
query: ""
})), e = internal.makeFetchOptions(a, b);
"production" !== process.env.NODE_ENV && c({
type: "fetchRequest",
message: "A fetch request for a persisted query is being executed.",
operation: a,
data: {
url: g,
fetchOptions: e
}
});
return wonka.onPush((function(b) {
var d = b.error && (isPersistedMiss(b.error) || isPersistedUnsupported(b.error)), f = b.data ? void 0 : b.error;
"production" !== process.env.NODE_ENV && c({
type: d || f ? "fetchError" : "fetchSuccess",
message: d ? "A Persisted Query request has failed. A non-persisted GraphQL request will follow." : "A " + (f ? "failed" : "successful") + " fetch response has been returned.",
operation: a,
data: {
url: g,
fetchOptions: e,
value: d ? b.error : f || b
}
});
}))(internal.makeFetchSource(a, g, e));
}))(wonka.fromPromise(hash(d)));
}, makeNormalFetchSource = function(a, c) {
var b = internal.makeFetchBody(a), d = internal.makeFetchURL(a, b), f = internal.makeFetchOptions(a, b);
}, makePersistedFetchSource = function(a, b, c) {
var d = internal.makeFetchURL(a, b.query ? b : _extends({}, b, {
query: ""
})), e = internal.makeFetchOptions(a, b);
"production" !== process.env.NODE_ENV && c({
type: "fetchRequest",
message: "A fetch request is being executed.",
message: b.query ? "A fetch request is being executed." : "A fetch request for a persisted query is being executed.",
operation: a,
data: {
url: d,
fetchOptions: f
fetchOptions: e
}
});
return wonka.onPush((function(b) {
var e = b.data ? void 0 : b.error;
var h = b.error && (isPersistedMiss(b.error) || isPersistedUnsupported(b.error)), g = b.data ? void 0 : b.error;
"production" !== process.env.NODE_ENV && c({
type: e ? "fetchError" : "fetchSuccess",
message: "A " + (e ? "failed" : "successful") + " fetch response has been returned.",
type: h || g ? "fetchError" : "fetchSuccess",
message: h ? "A Persisted Query request has failed. A non-persisted GraphQL request will follow." : "A " + (g ? "failed" : "successful") + " fetch response has been returned.",
operation: a,
data: {
url: d,
fetchOptions: f,
value: e || b
fetchOptions: e,
value: h ? b.error : g || b
}
});
}))(internal.makeFetchSource(a, d, f));
}))(internal.makeFetchSource(a, d, e));
}, isPersistedMiss = function(a) {

@@ -161,0 +142,0 @@ return a.graphQLErrors.some(_ref3$1);

@@ -1,2 +0,2 @@

"use strict";var e,r=require("wonka"),n=require("@urql/core/internal"),t=(e=require("js-sha256"))&&"object"==typeof e&&"default"in e?e.default:e;function o(){return(o=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n,t=arguments[r];for(n in t)Object.prototype.hasOwnProperty.call(t,n)&&(e[n]=t[n])}return e}).apply(this,arguments)}var i="undefined"!=typeof window?window.crypto||window.msCrypto:void 0,u=i&&(i.subtle||i.webkitSubtle),a=!(!i||!window.msCrypto);function c(e){for(var r="",n=0,t=e.length;n<t;n++){var o=e[n].toString(16);r+="00".slice(0,Math.max(0,2-o.length))+o}return r}function s(e){return"query"===e.operationName}function f(e){return"query"!==e.operationName}var m=function(e,t){var o=n.makeFetchBody(e);return t=n.makeFetchURL(e,o),o=n.makeFetchOptions(e,o),r.onPush((function(e){}))(n.makeFetchSource(e,t,o))};function h(e){return"PersistedQueryNotFound"===e.message}var d=function(e){return e.graphQLErrors.some(h)};function l(e){return"PersistedQueryNotSupported"===e.message}var p=function(e){return e.graphQLErrors.some(l)};exports.persistedFetchExchange=function(e){var i=e.forward,h=!0;return function(e){var l=r.share(e);e=r.mergeMap((function(e){var i=e.key,s=r.filter((function(e){return"teardown"===e.operationName&&e.key===i}))(l);return h?r.takeUntil(s)(r.mergeMap((function(n){return n.error&&p(n.error)?(h=!1,m(e)):n.error&&d(n.error)?m(e):r.fromValue(n)}))(function(e,i){var s=n.makeFetchBody(e);return i=s.query,r.mergeMap((function(t){s.query=void 0,s.extensions={persistedQuery:{version:1,sha256Hash:t}},t=n.makeFetchURL(e,o({},s,{query:""}));var i=n.makeFetchOptions(e,s);return r.onPush((function(e){e.error&&(d(e.error)||p(e.error))}))(n.makeFetchSource(e,t,i))}))(r.fromPromise(function(e){try{if("undefined"==typeof window)return Promise.resolve(t.sha256(e));if("undefined"!=typeof TextEncoder)var r=(new TextEncoder).encode(e);else{r=new Uint8Array(e.length);for(var n=0,o=e.length;n<o;n++)r[n]=e.charCodeAt(n)}return Promise.resolve(function(e){if(!u)return Promise.resolve(new Uint8Array(0));var r=u.digest({name:"SHA-256"},e);return new Promise((function(e,n){a?(r.oncomplete=function(r){e(new Uint8Array(r.target.result))},r.onerror=function(e){n(e)}):Promise.resolve(r).then((function(r){e(new Uint8Array(r))})).catch((function(e){n(e)}))}))}(r)).then(c)}catch(e){return Promise.reject(e)}}(i)))}(e))):r.takeUntil(s)(m(e))}))(r.filter(s)(l));var y=i(r.filter(f)(l));return r.merge([e,y])}};
"use strict";var r,e=require("wonka"),n=require("@urql/core/internal"),t=(r=require("js-sha256"))&&"object"==typeof r&&"default"in r?r.default:r;function o(){return(o=Object.assign||function(r){for(var e=1;e<arguments.length;e++){var n,t=arguments[e];for(n in t)Object.prototype.hasOwnProperty.call(t,n)&&(r[n]=t[n])}return r}).apply(this,arguments)}var i="undefined"!=typeof window?window.crypto||window.msCrypto:void 0,u=i&&(i.subtle||i.webkitSubtle),a=!(!i||!window.msCrypto);function s(r){for(var e="",n=0,t=r.length;n<t;n++){var o=r[n].toString(16);e+="00".slice(0,Math.max(0,2-o.length))+o}return e}function c(r){return"query"===r.operationName}function f(r){return"query"!==r.operationName}var d=function(r,t,i){return i=n.makeFetchURL(r,t.query?t:o({},t,{query:""})),t=n.makeFetchOptions(r,t),e.onPush((function(r){r.error&&(y(r.error)||h(r.error))}))(n.makeFetchSource(r,i,t))};function m(r){return"PersistedQueryNotFound"===r.message}var y=function(r){return r.graphQLErrors.some(m)};function l(r){return"PersistedQueryNotSupported"===r.message}var h=function(r){return r.graphQLErrors.some(l)};exports.persistedFetchExchange=function(r){var o=r.forward,i=!0;return function(r){var m=e.share(r);r=e.mergeMap((function(r){var o=r.key,c=e.filter((function(r){return"teardown"===r.operationName&&r.key===o}))(m),f=n.makeFetchBody(r);if(!i)return e.takeUntil(c)(d(r,f));var l=f.query;return e.takeUntil(c)(e.mergeMap((function(n){return n.error&&h(n.error)?(f.query=l,f.extensions=void 0,i=!1,d(r,f)):n.error&&y(n.error)?(f.query=l,d(r,f)):e.fromValue(n)}))(e.mergeMap((function(e){return f.query=void 0,f.extensions={persistedQuery:{version:1,sha256Hash:e}},d(r,f)}))(e.fromPromise(function(r){try{if("undefined"==typeof window)return Promise.resolve(t.sha256(r));if("undefined"!=typeof TextEncoder)var e=(new TextEncoder).encode(r);else{e=new Uint8Array(r.length);for(var n=0,o=r.length;n<o;n++)e[n]=r.charCodeAt(n)}return Promise.resolve(function(r){if(!u)return Promise.resolve(new Uint8Array(0));var e=u.digest({name:"SHA-256"},r);return new Promise((function(r,n){a?(e.oncomplete=function(e){r(new Uint8Array(e.target.result))},e.onerror=function(r){n(r)}):Promise.resolve(e).then((function(e){r(new Uint8Array(e))})).catch((function(r){n(r)}))}))}(e)).then(s)}catch(r){return Promise.reject(r)}}(l)))))}))(e.filter(c)(m));var l=o(e.filter(f)(m));return e.merge([r,l])}};
//# sourceMappingURL=urql-exchange-persisted-fetch.min.js.map
{
"name": "@urql/exchange-persisted-fetch",
"version": "0.1.0",
"version": "0.1.1",
"description": "An exchange that allows for persisted queries support when fetching queries",

@@ -44,3 +44,3 @@ "sideEffects": false,

"build": "rollup -c ../../scripts/rollup/config.js",
"prepare": "../../scripts/prepare/index.js",
"prepare": "node ../../scripts/prepare/index.js",
"prepublishOnly": "run-s clean build"

@@ -47,0 +47,0 @@ },

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc