@bigbinary/neeto-webhooks-frontend 3.0.11 → 3.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -1
- package/dist/.ready +1 -0
- package/dist/NeetoWebhooks.js +40 -294
- package/dist/NeetoWebhooks.js.map +1 -1
- package/dist/cjs/NeetoWebhooks.js +26 -280
- package/dist/cjs/NeetoWebhooks.js.map +1 -1
- package/dist/cjs/index.js +5 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/v2/NeetoWebhooks.js +1205 -0
- package/dist/cjs/v2/NeetoWebhooks.js.map +1 -0
- package/dist/cjs/v2/index.js +42 -0
- package/dist/cjs/v2/index.js.map +1 -0
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/main-B8V9tERH.js +279 -0
- package/dist/main-B8V9tERH.js.map +1 -0
- package/dist/main-CfvmjDDj.js +264 -0
- package/dist/main-CfvmjDDj.js.map +1 -0
- package/dist/v2/NeetoWebhooks.js +1184 -0
- package/dist/v2/NeetoWebhooks.js.map +1 -0
- package/dist/v2/index.js +36 -0
- package/dist/v2/index.js.map +1 -0
- package/package.json +43 -32
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-B8V9tERH.js","sources":["../app/javascript/src/constants/urls.js","../app/javascript/src/utils/paths.js","../app/javascript/src/utils/queryClient.js","../app/javascript/src/apis/deliveries.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/useDeliveriesApi.js","../app/javascript/src/apis/webhooks.js","../app/javascript/src/hooks/reactQuery/useWebhooksApi.js","../app/javascript/src/apis/events.js","../app/javascript/src/hooks/reactQuery/useEventsApi.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nexport const HELP_LINK_URLS = {\n webhooks: `https://help.${globalProps.appName}.com/articles/creating-a-webhook`,\n secrets: `https://help.${globalProps.appName}.com/articles/securing-webhook-requests`,\n deliveries: `https://help.${globalProps.appName}.com/articles/managing-webhook-deliveries`,\n};\n","export const getConfigurePath = path => path.split(\"/webhooks\")?.[0];\n\nexport const getDeliveriesPath = webhooksPath =>\n `${webhooksPath}/:webhookId/deliveries`;\n\nexport const getDeliveryDetailsPath = deliveriesPath =>\n `${deliveriesPath}/:deliveryId/`;\n","import { QueryCache, QueryClient } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nconst queryClient = new QueryClient({\n queryCache: new QueryCache(),\n defaultOptions: { queries: { staleTime: DEFAULT_STALE_TIME } },\n});\n\nexport default queryClient;\n","import axios from \"axios\";\n\nconst baseUrl = \"/neeto_webhooks\";\n\nconst fetch = (webhookId, params) =>\n axios.get(`${baseUrl}/webhooks/${webhookId}/deliveries`, { params });\n\nconst show = (id, webhookId) =>\n axios.get(`${baseUrl}/webhooks/${webhookId}/deliveries/${id}`);\n\nconst redeliver = (delivery_id, webhookId) =>\n axios.post(\n `${baseUrl}/webhooks/${webhookId}/deliveries/${delivery_id}/redeliver`\n );\n\nconst deliveriesApi = { fetch, show, redeliver };\n\nexport default deliveriesApi;\n","export const QUERY_KEYS = {\n DELIVERY_LIST: \"delivery-list\",\n DELIVERY_DETAILS: \"delivery-details\",\n WEBHOOK_LIST: \"webhook-list\",\n WEBHOOK_DETAILS: \"webhook-details\",\n EVENTS_LIST: \"events-list\",\n};\n\nexport const DELIVERY_STALE_TIME = 3_200_000; // 1 hour\nexport const WEBHOOK_STALE_TIME = 3_200_000; // 1 hour\nexport const POST_REDELIVERY_ON_SUCCESS_TIMEOUT = 5000; // 5 seconds\n","import { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\n\nimport deliveriesApi from \"apis/deliveries\";\nimport {\n QUERY_KEYS,\n DELIVERY_STALE_TIME,\n POST_REDELIVERY_ON_SUCCESS_TIMEOUT,\n} from \"src/constants/query\";\n\nexport const useFetchDeliveries = (webhookId, params) =>\n useQuery({\n queryKey: [QUERY_KEYS.DELIVERY_LIST, webhookId, params],\n queryFn: () => deliveriesApi.fetch(webhookId, params),\n staleTime: DELIVERY_STALE_TIME,\n });\n\nexport const useShowDelivery = (id, webhookId) =>\n useQuery({\n queryKey: [QUERY_KEYS.DELIVERY_DETAILS, id, webhookId],\n queryFn: () => deliveriesApi.show(id, webhookId),\n staleTime: DELIVERY_STALE_TIME,\n enabled: !!id,\n });\n\nexport const useRedeliverWebhook = (deliveryId, webhookSid) => {\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: () => deliveriesApi.redeliver(deliveryId, webhookSid),\n onSuccess: () => {\n setTimeout(\n () =>\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.DELIVERY_LIST],\n }),\n POST_REDELIVERY_ON_SUCCESS_TIMEOUT\n );\n },\n });\n};\n","import axios from \"axios\";\n\nconst baseUrl = \"/neeto_webhooks/webhooks\";\n\nconst fetch = params => axios.get(baseUrl, { params });\n\nconst create = payload => axios.post(baseUrl, { webhook: payload });\n\nconst show = id => axios.get(`${baseUrl}/${id}`);\n\nconst update = (id, payload) =>\n axios.put(`${baseUrl}/${id}`, { webhook: payload });\n\nconst destroy = id => axios.delete(`${baseUrl}/${id}`);\n\nconst webhooksApi = { fetch, create, show, update, destroy };\n\nexport default webhooksApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport webhooksApi from \"apis/webhooks\";\nimport { QUERY_KEYS, WEBHOOK_STALE_TIME } from \"src/constants/query\";\n\nexport const useFetchWebhooks = params =>\n useQuery({\n queryKey: [QUERY_KEYS.WEBHOOK_LIST, params],\n queryFn: () => webhooksApi.fetch(params),\n staleTime: WEBHOOK_STALE_TIME,\n });\n\nexport const useCreateWebhook = options =>\n useMutationWithInvalidation(webhooksApi.create, {\n keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],\n onSuccess: () => {\n options?.onSuccess?.();\n },\n });\n\nexport const useShowWebhook = id =>\n useQuery({\n queryKey: [QUERY_KEYS.WEBHOOK_DETAILS, id],\n queryFn: () => webhooksApi.show(id),\n enabled: !!id,\n staleTime: WEBHOOK_STALE_TIME,\n });\n\nexport const useUpdateWebhook = (id, options) =>\n useMutationWithInvalidation(\n ({ id, payload }) => webhooksApi.update(id, payload),\n {\n keysToInvalidate: [\n [QUERY_KEYS.WEBHOOK_LIST],\n [QUERY_KEYS.WEBHOOK_DETAILS, id],\n [QUERY_KEYS.DELIVERY_LIST, id],\n ],\n onSuccess: () => {\n options?.onSuccess?.();\n },\n onError: error => {\n options?.onError?.(error);\n },\n }\n );\n\nexport const useDestroyWebhook = options =>\n useMutationWithInvalidation(webhooksApi.destroy, {\n keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],\n onSuccess: () => {\n options?.onSuccess?.();\n },\n });\n","import axios from \"axios\";\n\nconst baseUrl = \"/neeto_webhooks/events/all\";\n\nconst all = () => axios.get(baseUrl);\n\nconst eventsApi = { all };\n\nexport default eventsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport eventsApi from \"apis/events\";\nimport { QUERY_KEYS, WEBHOOK_STALE_TIME } from \"src/constants/query\";\n\nexport const useFetchEvents = () =>\n useQuery({\n queryKey: [QUERY_KEYS.EVENTS_LIST],\n queryFn: eventsApi.all,\n staleTime: WEBHOOK_STALE_TIME,\n });\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n"],"names":["HELP_LINK_URLS","webhooks","concat","globalProps","appName","secrets","deliveries","getDeliveriesPath","webhooksPath","getDeliveryDetailsPath","deliveriesPath","queryClient","QueryClient","queryCache","QueryCache","defaultOptions","queries","staleTime","DEFAULT_STALE_TIME","baseUrl","fetch","webhookId","params","axios","get","show","id","redeliver","delivery_id","post","deliveriesApi","QUERY_KEYS","DELIVERY_LIST","DELIVERY_DETAILS","WEBHOOK_LIST","WEBHOOK_DETAILS","EVENTS_LIST","DELIVERY_STALE_TIME","WEBHOOK_STALE_TIME","POST_REDELIVERY_ON_SUCCESS_TIMEOUT","useFetchDeliveries","useQuery","queryKey","queryFn","useShowDelivery","enabled","useRedeliverWebhook","deliveryId","webhookSid","useQueryClient","useMutation","mutationFn","onSuccess","setTimeout","invalidateQueries","create","payload","webhook","update","put","destroy","webhooksApi","useFetchWebhooks","useCreateWebhook","options","useMutationWithInvalidation","keysToInvalidate","_options$onSuccess","call","useShowWebhook","useUpdateWebhook","_ref","_options$onSuccess2","onError","error","_options$onError","useDestroyWebhook","_options$onSuccess3","all","eventsApi","useFetchEvents"],"mappings":"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","x_google_ignoreList":[10,11,12,13,14,15]}
|
|
@@ -0,0 +1,264 @@
|
|
|
1
|
+
import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
|
|
2
|
+
import { QueryClient, QueryCache, useQuery, useQueryClient, useMutation } from '@tanstack/react-query';
|
|
3
|
+
import { DEFAULT_STALE_TIME } from '@bigbinary/neeto-commons-frontend/constants';
|
|
4
|
+
import axios from 'axios';
|
|
5
|
+
import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
6
|
+
|
|
7
|
+
var HELP_LINK_URLS = {
|
|
8
|
+
webhooks: "https://help.".concat(globalProps.appName, ".com/articles/creating-a-webhook"),
|
|
9
|
+
secrets: "https://help.".concat(globalProps.appName, ".com/articles/securing-webhook-requests"),
|
|
10
|
+
deliveries: "https://help.".concat(globalProps.appName, ".com/articles/managing-webhook-deliveries")
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
var getDeliveriesPath = function getDeliveriesPath(webhooksPath) {
|
|
14
|
+
return "".concat(webhooksPath, "/:webhookId/deliveries");
|
|
15
|
+
};
|
|
16
|
+
var getDeliveryDetailsPath = function getDeliveryDetailsPath(deliveriesPath) {
|
|
17
|
+
return "".concat(deliveriesPath, "/:deliveryId/");
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
var queryClient = new QueryClient({
|
|
21
|
+
queryCache: new QueryCache(),
|
|
22
|
+
defaultOptions: {
|
|
23
|
+
queries: {
|
|
24
|
+
staleTime: DEFAULT_STALE_TIME
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
var baseUrl$2 = "/neeto_webhooks";
|
|
30
|
+
var fetch$1 = function fetch(webhookId, params) {
|
|
31
|
+
return axios.get("".concat(baseUrl$2, "/webhooks/").concat(webhookId, "/deliveries"), {
|
|
32
|
+
params: params
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var show$1 = function show(id, webhookId) {
|
|
36
|
+
return axios.get("".concat(baseUrl$2, "/webhooks/").concat(webhookId, "/deliveries/").concat(id));
|
|
37
|
+
};
|
|
38
|
+
var redeliver = function redeliver(delivery_id, webhookId) {
|
|
39
|
+
return axios.post("".concat(baseUrl$2, "/webhooks/").concat(webhookId, "/deliveries/").concat(delivery_id, "/redeliver"));
|
|
40
|
+
};
|
|
41
|
+
var deliveriesApi = {
|
|
42
|
+
fetch: fetch$1,
|
|
43
|
+
show: show$1,
|
|
44
|
+
redeliver: redeliver
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
var QUERY_KEYS = {
|
|
48
|
+
DELIVERY_LIST: "delivery-list",
|
|
49
|
+
DELIVERY_DETAILS: "delivery-details",
|
|
50
|
+
WEBHOOK_LIST: "webhook-list",
|
|
51
|
+
WEBHOOK_DETAILS: "webhook-details",
|
|
52
|
+
EVENTS_LIST: "events-list"
|
|
53
|
+
};
|
|
54
|
+
var DELIVERY_STALE_TIME = 3200000; // 1 hour
|
|
55
|
+
var WEBHOOK_STALE_TIME = 3200000; // 1 hour
|
|
56
|
+
var POST_REDELIVERY_ON_SUCCESS_TIMEOUT = 5000; // 5 seconds
|
|
57
|
+
|
|
58
|
+
var useFetchDeliveries = function useFetchDeliveries(webhookId, params) {
|
|
59
|
+
return useQuery({
|
|
60
|
+
queryKey: [QUERY_KEYS.DELIVERY_LIST, webhookId, params],
|
|
61
|
+
queryFn: function queryFn() {
|
|
62
|
+
return deliveriesApi.fetch(webhookId, params);
|
|
63
|
+
},
|
|
64
|
+
staleTime: DELIVERY_STALE_TIME
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
var useShowDelivery = function useShowDelivery(id, webhookId) {
|
|
68
|
+
return useQuery({
|
|
69
|
+
queryKey: [QUERY_KEYS.DELIVERY_DETAILS, id, webhookId],
|
|
70
|
+
queryFn: function queryFn() {
|
|
71
|
+
return deliveriesApi.show(id, webhookId);
|
|
72
|
+
},
|
|
73
|
+
staleTime: DELIVERY_STALE_TIME,
|
|
74
|
+
enabled: !!id
|
|
75
|
+
});
|
|
76
|
+
};
|
|
77
|
+
var useRedeliverWebhook = function useRedeliverWebhook(deliveryId, webhookSid) {
|
|
78
|
+
var queryClient = useQueryClient();
|
|
79
|
+
return useMutation({
|
|
80
|
+
mutationFn: function mutationFn() {
|
|
81
|
+
return deliveriesApi.redeliver(deliveryId, webhookSid);
|
|
82
|
+
},
|
|
83
|
+
onSuccess: function onSuccess() {
|
|
84
|
+
setTimeout(function () {
|
|
85
|
+
return queryClient.invalidateQueries({
|
|
86
|
+
queryKey: [QUERY_KEYS.DELIVERY_LIST]
|
|
87
|
+
});
|
|
88
|
+
}, POST_REDELIVERY_ON_SUCCESS_TIMEOUT);
|
|
89
|
+
}
|
|
90
|
+
});
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
var baseUrl$1 = "/neeto_webhooks/webhooks";
|
|
94
|
+
var fetch = function fetch(params) {
|
|
95
|
+
return axios.get(baseUrl$1, {
|
|
96
|
+
params: params
|
|
97
|
+
});
|
|
98
|
+
};
|
|
99
|
+
var create = function create(payload) {
|
|
100
|
+
return axios.post(baseUrl$1, {
|
|
101
|
+
webhook: payload
|
|
102
|
+
});
|
|
103
|
+
};
|
|
104
|
+
var show = function show(id) {
|
|
105
|
+
return axios.get("".concat(baseUrl$1, "/").concat(id));
|
|
106
|
+
};
|
|
107
|
+
var update = function update(id, payload) {
|
|
108
|
+
return axios.put("".concat(baseUrl$1, "/").concat(id), {
|
|
109
|
+
webhook: payload
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
var destroy = function destroy(id) {
|
|
113
|
+
return axios["delete"]("".concat(baseUrl$1, "/").concat(id));
|
|
114
|
+
};
|
|
115
|
+
var webhooksApi = {
|
|
116
|
+
fetch: fetch,
|
|
117
|
+
create: create,
|
|
118
|
+
show: show,
|
|
119
|
+
update: update,
|
|
120
|
+
destroy: destroy
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
var useFetchWebhooks = function useFetchWebhooks(params) {
|
|
124
|
+
return useQuery({
|
|
125
|
+
queryKey: [QUERY_KEYS.WEBHOOK_LIST, params],
|
|
126
|
+
queryFn: function queryFn() {
|
|
127
|
+
return webhooksApi.fetch(params);
|
|
128
|
+
},
|
|
129
|
+
staleTime: WEBHOOK_STALE_TIME
|
|
130
|
+
});
|
|
131
|
+
};
|
|
132
|
+
var useCreateWebhook = function useCreateWebhook(options) {
|
|
133
|
+
return useMutationWithInvalidation(webhooksApi.create, {
|
|
134
|
+
keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],
|
|
135
|
+
onSuccess: function onSuccess() {
|
|
136
|
+
var _options$onSuccess;
|
|
137
|
+
options === null || options === void 0 || (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 || _options$onSuccess.call(options);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
};
|
|
141
|
+
var useShowWebhook = function useShowWebhook(id) {
|
|
142
|
+
return useQuery({
|
|
143
|
+
queryKey: [QUERY_KEYS.WEBHOOK_DETAILS, id],
|
|
144
|
+
queryFn: function queryFn() {
|
|
145
|
+
return webhooksApi.show(id);
|
|
146
|
+
},
|
|
147
|
+
enabled: !!id,
|
|
148
|
+
staleTime: WEBHOOK_STALE_TIME
|
|
149
|
+
});
|
|
150
|
+
};
|
|
151
|
+
var useUpdateWebhook = function useUpdateWebhook(id, options) {
|
|
152
|
+
return useMutationWithInvalidation(function (_ref) {
|
|
153
|
+
var id = _ref.id,
|
|
154
|
+
payload = _ref.payload;
|
|
155
|
+
return webhooksApi.update(id, payload);
|
|
156
|
+
}, {
|
|
157
|
+
keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST], [QUERY_KEYS.WEBHOOK_DETAILS, id], [QUERY_KEYS.DELIVERY_LIST, id]],
|
|
158
|
+
onSuccess: function onSuccess() {
|
|
159
|
+
var _options$onSuccess2;
|
|
160
|
+
options === null || options === void 0 || (_options$onSuccess2 = options.onSuccess) === null || _options$onSuccess2 === void 0 || _options$onSuccess2.call(options);
|
|
161
|
+
},
|
|
162
|
+
onError: function onError(error) {
|
|
163
|
+
var _options$onError;
|
|
164
|
+
options === null || options === void 0 || (_options$onError = options.onError) === null || _options$onError === void 0 || _options$onError.call(options, error);
|
|
165
|
+
}
|
|
166
|
+
});
|
|
167
|
+
};
|
|
168
|
+
var useDestroyWebhook = function useDestroyWebhook(options) {
|
|
169
|
+
return useMutationWithInvalidation(webhooksApi.destroy, {
|
|
170
|
+
keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],
|
|
171
|
+
onSuccess: function onSuccess() {
|
|
172
|
+
var _options$onSuccess3;
|
|
173
|
+
options === null || options === void 0 || (_options$onSuccess3 = options.onSuccess) === null || _options$onSuccess3 === void 0 || _options$onSuccess3.call(options);
|
|
174
|
+
}
|
|
175
|
+
});
|
|
176
|
+
};
|
|
177
|
+
|
|
178
|
+
var baseUrl = "/neeto_webhooks/events/all";
|
|
179
|
+
var all = function all() {
|
|
180
|
+
return axios.get(baseUrl);
|
|
181
|
+
};
|
|
182
|
+
var eventsApi = {
|
|
183
|
+
all: all
|
|
184
|
+
};
|
|
185
|
+
|
|
186
|
+
var useFetchEvents = function useFetchEvents() {
|
|
187
|
+
return useQuery({
|
|
188
|
+
queryKey: [QUERY_KEYS.EVENTS_LIST],
|
|
189
|
+
queryFn: eventsApi.all,
|
|
190
|
+
staleTime: WEBHOOK_STALE_TIME
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
// Unique ID creation requires a high quality random # generator. In the browser we therefore
|
|
195
|
+
// require the crypto API and do not support built-in fallback to lower quality random number
|
|
196
|
+
// generators (like Math.random()).
|
|
197
|
+
var getRandomValues;
|
|
198
|
+
var rnds8 = new Uint8Array(16);
|
|
199
|
+
function rng() {
|
|
200
|
+
// lazy load so that environments that need to polyfill have a chance to do so
|
|
201
|
+
if (!getRandomValues) {
|
|
202
|
+
// getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also,
|
|
203
|
+
// find the complete implementation of crypto (msCrypto) on IE11.
|
|
204
|
+
getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);
|
|
205
|
+
|
|
206
|
+
if (!getRandomValues) {
|
|
207
|
+
throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
return getRandomValues(rnds8);
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
var REGEX = /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;
|
|
215
|
+
|
|
216
|
+
function validate(uuid) {
|
|
217
|
+
return typeof uuid === 'string' && REGEX.test(uuid);
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
/**
|
|
221
|
+
* Convert array of 16 byte values to UUID string format of the form:
|
|
222
|
+
* XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX
|
|
223
|
+
*/
|
|
224
|
+
|
|
225
|
+
var byteToHex = [];
|
|
226
|
+
|
|
227
|
+
for (var i = 0; i < 256; ++i) {
|
|
228
|
+
byteToHex.push((i + 0x100).toString(16).substr(1));
|
|
229
|
+
}
|
|
230
|
+
|
|
231
|
+
function stringify(arr) {
|
|
232
|
+
var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
|
|
233
|
+
// Note: Be careful editing this code! It's been tuned for performance
|
|
234
|
+
// and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434
|
|
235
|
+
var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one
|
|
236
|
+
// of the following:
|
|
237
|
+
// - One or more input array values don't map to a hex octet (leading to
|
|
238
|
+
// "undefined" in the uuid)
|
|
239
|
+
// - Invalid input values for the RFC `version` or `variant` fields
|
|
240
|
+
|
|
241
|
+
if (!validate(uuid)) {
|
|
242
|
+
throw TypeError('Stringified UUID is invalid');
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
return uuid;
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
function v4(options, buf, offset) {
|
|
249
|
+
options = options || {};
|
|
250
|
+
var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`
|
|
251
|
+
|
|
252
|
+
rnds[6] = rnds[6] & 0x0f | 0x40;
|
|
253
|
+
rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided
|
|
254
|
+
|
|
255
|
+
return stringify(rnds);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
var e=[],t=[];function n(n,r){if(n&&"undefined"!=typeof document){var a,s=true===r.prepend?"prepend":"append",d=true===r.singleTag,i="string"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName("head")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c();}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n));}function c(){var e=document.createElement("style");if(e.setAttribute("type","text/css"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a="prepend"===s?"afterbegin":"beforeend";return i.insertAdjacentElement(a,e),e}}
|
|
259
|
+
|
|
260
|
+
var css = ".neeto-molecules-header .neeto-molecules-header__breadcrumbs-wrap{flex-wrap:wrap}\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImFwcC9qYXZhc2NyaXB0L3NyYy9zdHlsZXNoZWV0cy9tYWluLmNzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxrRUFDRSxjQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLm5lZXRvLW1vbGVjdWxlcy1oZWFkZXIgLm5lZXRvLW1vbGVjdWxlcy1oZWFkZXJfX2JyZWFkY3J1bWJzLXdyYXAge1xuICBmbGV4LXdyYXA6IHdyYXA7XG59XG4iXX0= */";
|
|
261
|
+
n(css,{});
|
|
262
|
+
|
|
263
|
+
export { HELP_LINK_URLS as H, useShowDelivery as a, useFetchDeliveries as b, getDeliveryDetailsPath as c, useUpdateWebhook as d, useCreateWebhook as e, useShowWebhook as f, getDeliveriesPath as g, useFetchEvents as h, useFetchWebhooks as i, useDestroyWebhook as j, queryClient as q, useRedeliverWebhook as u, v4 as v };
|
|
264
|
+
//# sourceMappingURL=main-CfvmjDDj.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"main-CfvmjDDj.js","sources":["../app/javascript/src/constants/urls.js","../app/javascript/src/utils/paths.js","../app/javascript/src/utils/queryClient.js","../app/javascript/src/apis/deliveries.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/useDeliveriesApi.js","../app/javascript/src/apis/webhooks.js","../app/javascript/src/hooks/reactQuery/useWebhooksApi.js","../app/javascript/src/apis/events.js","../app/javascript/src/hooks/reactQuery/useEventsApi.js","../node_modules/uuid/dist/esm-browser/rng.js","../node_modules/uuid/dist/esm-browser/regex.js","../node_modules/uuid/dist/esm-browser/validate.js","../node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/uuid/dist/esm-browser/v4.js","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nexport const HELP_LINK_URLS = {\n webhooks: `https://help.${globalProps.appName}.com/articles/creating-a-webhook`,\n secrets: `https://help.${globalProps.appName}.com/articles/securing-webhook-requests`,\n deliveries: `https://help.${globalProps.appName}.com/articles/managing-webhook-deliveries`,\n};\n","export const getConfigurePath = path => path.split(\"/webhooks\")?.[0];\n\nexport const getDeliveriesPath = webhooksPath =>\n `${webhooksPath}/:webhookId/deliveries`;\n\nexport const getDeliveryDetailsPath = deliveriesPath =>\n `${deliveriesPath}/:deliveryId/`;\n","import { QueryCache, QueryClient } from \"@tanstack/react-query\";\nimport { DEFAULT_STALE_TIME } from \"neetocommons/constants\";\n\nconst queryClient = new QueryClient({\n queryCache: new QueryCache(),\n defaultOptions: { queries: { staleTime: DEFAULT_STALE_TIME } },\n});\n\nexport default queryClient;\n","import axios from \"axios\";\n\nconst baseUrl = \"/neeto_webhooks\";\n\nconst fetch = (webhookId, params) =>\n axios.get(`${baseUrl}/webhooks/${webhookId}/deliveries`, { params });\n\nconst show = (id, webhookId) =>\n axios.get(`${baseUrl}/webhooks/${webhookId}/deliveries/${id}`);\n\nconst redeliver = (delivery_id, webhookId) =>\n axios.post(\n `${baseUrl}/webhooks/${webhookId}/deliveries/${delivery_id}/redeliver`\n );\n\nconst deliveriesApi = { fetch, show, redeliver };\n\nexport default deliveriesApi;\n","export const QUERY_KEYS = {\n DELIVERY_LIST: \"delivery-list\",\n DELIVERY_DETAILS: \"delivery-details\",\n WEBHOOK_LIST: \"webhook-list\",\n WEBHOOK_DETAILS: \"webhook-details\",\n EVENTS_LIST: \"events-list\",\n};\n\nexport const DELIVERY_STALE_TIME = 3_200_000; // 1 hour\nexport const WEBHOOK_STALE_TIME = 3_200_000; // 1 hour\nexport const POST_REDELIVERY_ON_SUCCESS_TIMEOUT = 5000; // 5 seconds\n","import { useQuery, useMutation, useQueryClient } from \"@tanstack/react-query\";\n\nimport deliveriesApi from \"apis/deliveries\";\nimport {\n QUERY_KEYS,\n DELIVERY_STALE_TIME,\n POST_REDELIVERY_ON_SUCCESS_TIMEOUT,\n} from \"src/constants/query\";\n\nexport const useFetchDeliveries = (webhookId, params) =>\n useQuery({\n queryKey: [QUERY_KEYS.DELIVERY_LIST, webhookId, params],\n queryFn: () => deliveriesApi.fetch(webhookId, params),\n staleTime: DELIVERY_STALE_TIME,\n });\n\nexport const useShowDelivery = (id, webhookId) =>\n useQuery({\n queryKey: [QUERY_KEYS.DELIVERY_DETAILS, id, webhookId],\n queryFn: () => deliveriesApi.show(id, webhookId),\n staleTime: DELIVERY_STALE_TIME,\n enabled: !!id,\n });\n\nexport const useRedeliverWebhook = (deliveryId, webhookSid) => {\n const queryClient = useQueryClient();\n\n return useMutation({\n mutationFn: () => deliveriesApi.redeliver(deliveryId, webhookSid),\n onSuccess: () => {\n setTimeout(\n () =>\n queryClient.invalidateQueries({\n queryKey: [QUERY_KEYS.DELIVERY_LIST],\n }),\n POST_REDELIVERY_ON_SUCCESS_TIMEOUT\n );\n },\n });\n};\n","import axios from \"axios\";\n\nconst baseUrl = \"/neeto_webhooks/webhooks\";\n\nconst fetch = params => axios.get(baseUrl, { params });\n\nconst create = payload => axios.post(baseUrl, { webhook: payload });\n\nconst show = id => axios.get(`${baseUrl}/${id}`);\n\nconst update = (id, payload) =>\n axios.put(`${baseUrl}/${id}`, { webhook: payload });\n\nconst destroy = id => axios.delete(`${baseUrl}/${id}`);\n\nconst webhooksApi = { fetch, create, show, update, destroy };\n\nexport default webhooksApi;\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport webhooksApi from \"apis/webhooks\";\nimport { QUERY_KEYS, WEBHOOK_STALE_TIME } from \"src/constants/query\";\n\nexport const useFetchWebhooks = params =>\n useQuery({\n queryKey: [QUERY_KEYS.WEBHOOK_LIST, params],\n queryFn: () => webhooksApi.fetch(params),\n staleTime: WEBHOOK_STALE_TIME,\n });\n\nexport const useCreateWebhook = options =>\n useMutationWithInvalidation(webhooksApi.create, {\n keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],\n onSuccess: () => {\n options?.onSuccess?.();\n },\n });\n\nexport const useShowWebhook = id =>\n useQuery({\n queryKey: [QUERY_KEYS.WEBHOOK_DETAILS, id],\n queryFn: () => webhooksApi.show(id),\n enabled: !!id,\n staleTime: WEBHOOK_STALE_TIME,\n });\n\nexport const useUpdateWebhook = (id, options) =>\n useMutationWithInvalidation(\n ({ id, payload }) => webhooksApi.update(id, payload),\n {\n keysToInvalidate: [\n [QUERY_KEYS.WEBHOOK_LIST],\n [QUERY_KEYS.WEBHOOK_DETAILS, id],\n [QUERY_KEYS.DELIVERY_LIST, id],\n ],\n onSuccess: () => {\n options?.onSuccess?.();\n },\n onError: error => {\n options?.onError?.(error);\n },\n }\n );\n\nexport const useDestroyWebhook = options =>\n useMutationWithInvalidation(webhooksApi.destroy, {\n keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],\n onSuccess: () => {\n options?.onSuccess?.();\n },\n });\n","import axios from \"axios\";\n\nconst baseUrl = \"/neeto_webhooks/events/all\";\n\nconst all = () => axios.get(baseUrl);\n\nconst eventsApi = { all };\n\nexport default eventsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport eventsApi from \"apis/events\";\nimport { QUERY_KEYS, WEBHOOK_STALE_TIME } from \"src/constants/query\";\n\nexport const useFetchEvents = () =>\n useQuery({\n queryKey: [QUERY_KEYS.EVENTS_LIST],\n queryFn: eventsApi.all,\n staleTime: WEBHOOK_STALE_TIME,\n });\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n"],"names":["HELP_LINK_URLS","webhooks","concat","globalProps","appName","secrets","deliveries","getDeliveriesPath","webhooksPath","getDeliveryDetailsPath","deliveriesPath","queryClient","QueryClient","queryCache","QueryCache","defaultOptions","queries","staleTime","DEFAULT_STALE_TIME","baseUrl","fetch","webhookId","params","axios","get","show","id","redeliver","delivery_id","post","deliveriesApi","QUERY_KEYS","DELIVERY_LIST","DELIVERY_DETAILS","WEBHOOK_LIST","WEBHOOK_DETAILS","EVENTS_LIST","DELIVERY_STALE_TIME","WEBHOOK_STALE_TIME","POST_REDELIVERY_ON_SUCCESS_TIMEOUT","useFetchDeliveries","useQuery","queryKey","queryFn","useShowDelivery","enabled","useRedeliverWebhook","deliveryId","webhookSid","useQueryClient","useMutation","mutationFn","onSuccess","setTimeout","invalidateQueries","create","payload","webhook","update","put","destroy","webhooksApi","useFetchWebhooks","useCreateWebhook","options","useMutationWithInvalidation","keysToInvalidate","_options$onSuccess","call","useShowWebhook","useUpdateWebhook","_ref","_options$onSuccess2","onError","error","_options$onError","useDestroyWebhook","_options$onSuccess3","all","eventsApi","useFetchEvents"],"mappings":"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","x_google_ignoreList":[10,11,12,13,14,15]}
|