@shopify/shopify-api 6.0.0-rc6 → 6.0.0-rc7

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.
Files changed (43) hide show
  1. package/CHANGELOG.md +2 -2
  2. package/adapters/cf-worker/adapter.d.ts.map +1 -1
  3. package/adapters/cf-worker/adapter.js +3 -2
  4. package/adapters/cf-worker/adapter.js.map +1 -1
  5. package/adapters/mock/adapter.d.ts.map +1 -1
  6. package/adapters/mock/adapter.js +3 -0
  7. package/adapters/mock/adapter.js.map +1 -1
  8. package/adapters/node/adapter.d.ts.map +1 -1
  9. package/adapters/node/adapter.js +2 -1
  10. package/adapters/node/adapter.js.map +1 -1
  11. package/docs/migrating-to-v6.md +72 -77
  12. package/docs/usage/webhooks.md +113 -103
  13. package/lib/error.d.ts +2 -0
  14. package/lib/error.d.ts.map +1 -1
  15. package/lib/error.js +9 -1
  16. package/lib/error.js.map +1 -1
  17. package/lib/version.d.ts +1 -1
  18. package/lib/version.js +1 -1
  19. package/lib/webhooks/index.d.ts +3 -5
  20. package/lib/webhooks/index.d.ts.map +1 -1
  21. package/lib/webhooks/index.js +8 -8
  22. package/lib/webhooks/index.js.map +1 -1
  23. package/lib/webhooks/process.d.ts +5 -0
  24. package/lib/webhooks/process.d.ts.map +1 -0
  25. package/lib/webhooks/process.js +171 -0
  26. package/lib/webhooks/process.js.map +1 -0
  27. package/lib/webhooks/query-template.d.ts +4 -0
  28. package/lib/webhooks/query-template.d.ts.map +1 -0
  29. package/lib/webhooks/query-template.js +14 -0
  30. package/lib/webhooks/query-template.js.map +1 -0
  31. package/lib/webhooks/register.d.ts +6 -0
  32. package/lib/webhooks/register.d.ts.map +1 -0
  33. package/lib/webhooks/register.js +391 -0
  34. package/lib/webhooks/register.js.map +1 -0
  35. package/lib/webhooks/registry.d.ts +8 -11
  36. package/lib/webhooks/registry.d.ts.map +1 -1
  37. package/lib/webhooks/registry.js +85 -340
  38. package/lib/webhooks/registry.js.map +1 -1
  39. package/lib/webhooks/types.d.ts +45 -24
  40. package/lib/webhooks/types.d.ts.map +1 -1
  41. package/lib/webhooks/types.js +7 -1
  42. package/lib/webhooks/types.js.map +1 -1
  43. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"process.js","sourceRoot":"","sources":["process.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare function queryTemplate(template: string, params: {
2
+ [key: string]: any;
3
+ }): string;
4
+ //# sourceMappingURL=query-template.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-template.d.ts","sourceRoot":"","sources":["query-template.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAC,UAQ3E"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.queryTemplate = void 0;
4
+ var tslib_1 = require("tslib");
5
+ function queryTemplate(template, params) {
6
+ var query = template;
7
+ Object.entries(params).forEach(function (_a) {
8
+ var _b = tslib_1.__read(_a, 2), key = _b[0], value = _b[1];
9
+ query = query.replace("{{".concat(key, "}}"), value);
10
+ });
11
+ return query;
12
+ }
13
+ exports.queryTemplate = queryTemplate;
14
+ //# sourceMappingURL=query-template.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-template.js","sourceRoot":"","sources":["query-template.ts"],"names":[],"mappings":";;;;AAAA,SAAgB,aAAa,CAAC,QAAgB,EAAE,MAA4B;IAC1E,IAAI,KAAK,GAAG,QAAQ,CAAC;IAErB,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAC,EAAY;YAAZ,KAAA,qBAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;QACzC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAK,GAAG,OAAI,EAAE,KAAK,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC;AARD,sCAQC"}
@@ -0,0 +1,6 @@
1
+ import { ConfigInterface } from '../base-types';
2
+ import { WebhookRegistry, RegisterParams, RegisterReturn } from './types';
3
+ export declare function createRegister(config: ConfigInterface, webhookRegistry: WebhookRegistry): ({ accessToken, shop, }: RegisterParams) => Promise<RegisterReturn>;
4
+ export declare const TEMPLATE_GET_HANDLERS = "{\n webhookSubscriptions(\n first: 250,\n after: {{END_CURSOR}},\n ) {\n edges {\n node {\n id\n topic\n includeFields\n metafieldNamespaces\n privateMetafieldNamespaces\n endpoint {\n __typename\n ... on WebhookHttpEndpoint {\n callbackUrl\n }\n ... on WebhookEventBridgeEndpoint {\n arn\n }\n ... on WebhookPubSubEndpoint {\n pubSubProject\n pubSubTopic\n }\n }\n }\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}";
5
+ export declare const TEMPLATE_MUTATION = "\n mutation webhookSubscription {\n {{MUTATION_NAME}}(\n {{IDENTIFIER}},\n {{MUTATION_PARAMS}}\n ) {\n userErrors {\n field\n message\n }\n }\n }\n";
6
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["register.ts"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAa,MAAM,eAAe,CAAC;AAQ1D,OAAO,EACL,eAAe,EACf,cAAc,EACd,cAAc,EAOf,MAAM,SAAS,CAAC;AA2BjB,wBAAgB,cAAc,CAC5B,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,eAAe,4BAK7B,cAAc,KAAG,QAAQ,cAAc,CAAC,CAoC5C;AA+XD,eAAO,MAAM,qBAAqB,+mBAgChC,CAAC;AAEH,eAAO,MAAM,iBAAiB,qMAY7B,CAAC"}
@@ -0,0 +1,391 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TEMPLATE_MUTATION = exports.TEMPLATE_GET_HANDLERS = exports.createRegister = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var graphql_client_1 = require("../clients/graphql/graphql_client");
6
+ var error_1 = require("../error");
7
+ var base_types_1 = require("../base-types");
8
+ var registry_1 = require("./registry");
9
+ var query_template_1 = require("./query-template");
10
+ var types_1 = require("./types");
11
+ function createRegister(config, webhookRegistry) {
12
+ return function register(_a) {
13
+ var accessToken = _a.accessToken, shop = _a.shop;
14
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
15
+ var registerReturn, existingHandlers, _b, _c, _i, topic, _d, _e;
16
+ return tslib_1.__generator(this, function (_f) {
17
+ switch (_f.label) {
18
+ case 0:
19
+ registerReturn = Object.keys(webhookRegistry).reduce(function (acc, topic) {
20
+ acc[topic] = [];
21
+ return acc;
22
+ }, {});
23
+ return [4 /*yield*/, getExistingHandlers(config, shop, accessToken)];
24
+ case 1:
25
+ existingHandlers = _f.sent();
26
+ _b = [];
27
+ for (_c in webhookRegistry)
28
+ _b.push(_c);
29
+ _i = 0;
30
+ _f.label = 2;
31
+ case 2:
32
+ if (!(_i < _b.length)) return [3 /*break*/, 5];
33
+ topic = _b[_i];
34
+ if (!Object.prototype.hasOwnProperty.call(webhookRegistry, topic)) {
35
+ return [3 /*break*/, 4];
36
+ }
37
+ if (base_types_1.gdprTopics.includes(topic)) {
38
+ return [3 /*break*/, 4];
39
+ }
40
+ _d = registerReturn;
41
+ _e = topic;
42
+ return [4 /*yield*/, registerTopic({
43
+ config: config,
44
+ topic: topic,
45
+ shop: shop,
46
+ accessToken: accessToken,
47
+ existingHandlers: existingHandlers[topic] || [],
48
+ handlers: (0, registry_1.createGetHandlers)(webhookRegistry)(topic),
49
+ })];
50
+ case 3:
51
+ _d[_e] = _f.sent();
52
+ _f.label = 4;
53
+ case 4:
54
+ _i++;
55
+ return [3 /*break*/, 2];
56
+ case 5: return [2 /*return*/, registerReturn];
57
+ }
58
+ });
59
+ });
60
+ };
61
+ }
62
+ exports.createRegister = createRegister;
63
+ function getExistingHandlers(config, shop, accessToken) {
64
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
65
+ var GraphqlClient, client, existingHandlers, hasNextPage, endCursor, query, response;
66
+ return tslib_1.__generator(this, function (_a) {
67
+ switch (_a.label) {
68
+ case 0:
69
+ GraphqlClient = (0, graphql_client_1.createGraphqlClientClass)({ config: config });
70
+ client = new GraphqlClient({ domain: shop, accessToken: accessToken });
71
+ existingHandlers = {};
72
+ endCursor = null;
73
+ _a.label = 1;
74
+ case 1:
75
+ query = buildCheckQuery(endCursor);
76
+ return [4 /*yield*/, client.query({
77
+ data: query,
78
+ })];
79
+ case 2:
80
+ response = _a.sent();
81
+ response.body.data.webhookSubscriptions.edges.forEach(function (edge) {
82
+ var handler = buildHandlerFromNode(edge);
83
+ if (!existingHandlers[edge.node.topic]) {
84
+ existingHandlers[edge.node.topic] = [];
85
+ }
86
+ existingHandlers[edge.node.topic].push(handler);
87
+ });
88
+ endCursor = response.body.data.webhookSubscriptions.pageInfo.endCursor;
89
+ hasNextPage = response.body.data.webhookSubscriptions.pageInfo.hasNextPage;
90
+ _a.label = 3;
91
+ case 3:
92
+ if (hasNextPage) return [3 /*break*/, 1];
93
+ _a.label = 4;
94
+ case 4: return [2 /*return*/, existingHandlers];
95
+ }
96
+ });
97
+ });
98
+ }
99
+ function buildCheckQuery(endCursor) {
100
+ return (0, query_template_1.queryTemplate)(exports.TEMPLATE_GET_HANDLERS, {
101
+ END_CURSOR: JSON.stringify(endCursor),
102
+ });
103
+ }
104
+ function buildHandlerFromNode(edge) {
105
+ var _this = this;
106
+ var _a, _b, _c;
107
+ var endpoint = edge.node.endpoint;
108
+ var handler;
109
+ switch (endpoint.__typename) {
110
+ case 'WebhookHttpEndpoint':
111
+ handler = {
112
+ deliveryMethod: types_1.DeliveryMethod.Http,
113
+ privateMetafieldNamespaces: edge.node.privateMetafieldNamespaces,
114
+ callbackUrl: endpoint.callbackUrl,
115
+ // This is a dummy for now because we don't really care about it
116
+ callback: function () { return tslib_1.__awaiter(_this, void 0, void 0, function () { return tslib_1.__generator(this, function (_a) {
117
+ return [2 /*return*/];
118
+ }); }); },
119
+ };
120
+ // This field only applies to HTTP webhooks
121
+ (_a = handler.privateMetafieldNamespaces) === null || _a === void 0 ? void 0 : _a.sort();
122
+ break;
123
+ case 'WebhookEventBridgeEndpoint':
124
+ handler = {
125
+ deliveryMethod: types_1.DeliveryMethod.EventBridge,
126
+ arn: endpoint.arn,
127
+ };
128
+ break;
129
+ case 'WebhookPubSubEndpoint':
130
+ handler = {
131
+ deliveryMethod: types_1.DeliveryMethod.PubSub,
132
+ pubSubProject: endpoint.pubSubProject,
133
+ pubSubTopic: endpoint.pubSubTopic,
134
+ };
135
+ break;
136
+ }
137
+ // Set common fields
138
+ handler.id = edge.node.id;
139
+ handler.includeFields = edge.node.includeFields;
140
+ handler.metafieldNamespaces = edge.node.metafieldNamespaces;
141
+ // Sort the array fields to make them cheaper to compare later on
142
+ (_b = handler.includeFields) === null || _b === void 0 ? void 0 : _b.sort();
143
+ (_c = handler.metafieldNamespaces) === null || _c === void 0 ? void 0 : _c.sort();
144
+ return handler;
145
+ }
146
+ function registerTopic(_a) {
147
+ var config = _a.config, shop = _a.shop, accessToken = _a.accessToken, topic = _a.topic, existingHandlers = _a.existingHandlers, handlers = _a.handlers;
148
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
149
+ var registerResults, _b, toCreate, toUpdate, toDelete, GraphqlClient, client, operation, _c, _d, _e, _f, _g, _h;
150
+ return tslib_1.__generator(this, function (_j) {
151
+ switch (_j.label) {
152
+ case 0:
153
+ registerResults = [];
154
+ _b = categorizeHandlers(config, existingHandlers, handlers), toCreate = _b.toCreate, toUpdate = _b.toUpdate, toDelete = _b.toDelete;
155
+ GraphqlClient = (0, graphql_client_1.createGraphqlClientClass)({ config: config });
156
+ client = new GraphqlClient({ domain: shop, accessToken: accessToken });
157
+ operation = types_1.WebhookOperation.Create;
158
+ _d = (_c = registerResults).concat;
159
+ return [4 /*yield*/, runMutations({ config: config, client: client, topic: topic, operation: operation, handlers: toCreate })];
160
+ case 1:
161
+ registerResults = _d.apply(_c, [_j.sent()]);
162
+ operation = types_1.WebhookOperation.Update;
163
+ _f = (_e = registerResults).concat;
164
+ return [4 /*yield*/, runMutations({ config: config, client: client, topic: topic, operation: operation, handlers: toUpdate })];
165
+ case 2:
166
+ registerResults = _f.apply(_e, [_j.sent()]);
167
+ operation = types_1.WebhookOperation.Delete;
168
+ _h = (_g = registerResults).concat;
169
+ return [4 /*yield*/, runMutations({ config: config, client: client, topic: topic, operation: operation, handlers: toDelete })];
170
+ case 3:
171
+ registerResults = _h.apply(_g, [_j.sent()]);
172
+ return [2 /*return*/, registerResults];
173
+ }
174
+ });
175
+ });
176
+ }
177
+ function categorizeHandlers(config, existingHandlers, handlers) {
178
+ var handlersByKey = handlers.reduce(function (acc, value) {
179
+ acc[(0, registry_1.handlerIdentifier)(config, value)] = value;
180
+ return acc;
181
+ }, {});
182
+ var existingHandlersByKey = existingHandlers.reduce(function (acc, value) {
183
+ acc[(0, registry_1.handlerIdentifier)(config, value)] = value;
184
+ return acc;
185
+ }, {});
186
+ var toCreate = tslib_1.__assign({}, handlersByKey);
187
+ var toUpdate = {};
188
+ var toDelete = {};
189
+ for (var existingKey in existingHandlersByKey) {
190
+ if (!Object.prototype.hasOwnProperty.call(existingHandlersByKey, existingKey)) {
191
+ continue;
192
+ }
193
+ var existingHandler = existingHandlersByKey[existingKey];
194
+ var handler = handlersByKey[existingKey];
195
+ if (existingKey in handlersByKey) {
196
+ delete toCreate[existingKey];
197
+ if (!areHandlerFieldsEqual(existingHandler, handler)) {
198
+ toUpdate[existingKey] = handler;
199
+ toUpdate[existingKey].id = existingHandler.id;
200
+ }
201
+ }
202
+ else {
203
+ toDelete[existingKey] = existingHandler;
204
+ }
205
+ }
206
+ return {
207
+ toCreate: Object.values(toCreate),
208
+ toUpdate: Object.values(toUpdate),
209
+ toDelete: Object.values(toDelete),
210
+ };
211
+ }
212
+ function areHandlerFieldsEqual(arr1, arr2) {
213
+ var includeFieldsEqual = arraysEqual(arr1.includeFields || [], arr2.includeFields || []);
214
+ var metafieldNamespacesEqual = arraysEqual(arr1.metafieldNamespaces || [], arr2.metafieldNamespaces || []);
215
+ var privateMetafieldNamespacesEqual = arr1.deliveryMethod !== types_1.DeliveryMethod.Http ||
216
+ arr2.deliveryMethod !== types_1.DeliveryMethod.Http ||
217
+ arraysEqual(arr1.privateMetafieldNamespaces || [], arr2.privateMetafieldNamespaces || []);
218
+ return (includeFieldsEqual &&
219
+ metafieldNamespacesEqual &&
220
+ privateMetafieldNamespacesEqual);
221
+ }
222
+ function arraysEqual(arr1, arr2) {
223
+ if (arr1.length !== arr2.length) {
224
+ return false;
225
+ }
226
+ for (var i = 0; i < arr1.length; i++) {
227
+ if (arr1[i] !== arr2[i]) {
228
+ return false;
229
+ }
230
+ }
231
+ return true;
232
+ }
233
+ function runMutations(_a) {
234
+ var config = _a.config, client = _a.client, topic = _a.topic, handlers = _a.handlers, operation = _a.operation;
235
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
236
+ var registerResults, handlers_1, handlers_1_1, handler, _b, _c, e_1_1;
237
+ var e_1, _d;
238
+ return tslib_1.__generator(this, function (_e) {
239
+ switch (_e.label) {
240
+ case 0:
241
+ registerResults = [];
242
+ _e.label = 1;
243
+ case 1:
244
+ _e.trys.push([1, 6, 7, 8]);
245
+ handlers_1 = tslib_1.__values(handlers), handlers_1_1 = handlers_1.next();
246
+ _e.label = 2;
247
+ case 2:
248
+ if (!!handlers_1_1.done) return [3 /*break*/, 5];
249
+ handler = handlers_1_1.value;
250
+ _c = (_b = registerResults).push;
251
+ return [4 /*yield*/, runMutation({ config: config, client: client, topic: topic, handler: handler, operation: operation })];
252
+ case 3:
253
+ _c.apply(_b, [_e.sent()]);
254
+ _e.label = 4;
255
+ case 4:
256
+ handlers_1_1 = handlers_1.next();
257
+ return [3 /*break*/, 2];
258
+ case 5: return [3 /*break*/, 8];
259
+ case 6:
260
+ e_1_1 = _e.sent();
261
+ e_1 = { error: e_1_1 };
262
+ return [3 /*break*/, 8];
263
+ case 7:
264
+ try {
265
+ if (handlers_1_1 && !handlers_1_1.done && (_d = handlers_1.return)) _d.call(handlers_1);
266
+ }
267
+ finally { if (e_1) throw e_1.error; }
268
+ return [7 /*endfinally*/];
269
+ case 8: return [2 /*return*/, registerResults];
270
+ }
271
+ });
272
+ });
273
+ }
274
+ function runMutation(_a) {
275
+ var config = _a.config, client = _a.client, topic = _a.topic, handler = _a.handler, operation = _a.operation;
276
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
277
+ var registerResult, query, result, error_2;
278
+ return tslib_1.__generator(this, function (_b) {
279
+ switch (_b.label) {
280
+ case 0:
281
+ _b.trys.push([0, 2, , 3]);
282
+ query = buildMutation(config, topic, handler, operation);
283
+ return [4 /*yield*/, client.query({ data: query })];
284
+ case 1:
285
+ result = _b.sent();
286
+ registerResult = {
287
+ deliveryMethod: handler.deliveryMethod,
288
+ success: isSuccess(result.body, handler, operation),
289
+ result: result.body,
290
+ };
291
+ return [3 /*break*/, 3];
292
+ case 2:
293
+ error_2 = _b.sent();
294
+ if (error_2 instanceof error_1.InvalidDeliveryMethodError) {
295
+ registerResult = {
296
+ deliveryMethod: handler.deliveryMethod,
297
+ success: false,
298
+ result: { message: error_2.message },
299
+ };
300
+ }
301
+ else {
302
+ throw error_2;
303
+ }
304
+ return [3 /*break*/, 3];
305
+ case 3: return [2 /*return*/, registerResult];
306
+ }
307
+ });
308
+ });
309
+ }
310
+ function buildMutation(config, topic, handler, operation) {
311
+ var params = {};
312
+ var identifier;
313
+ if (handler.id) {
314
+ identifier = "id: \"".concat(handler.id, "\"");
315
+ }
316
+ else {
317
+ identifier = "topic: ".concat(topic);
318
+ }
319
+ var mutationArguments = {
320
+ MUTATION_NAME: getMutationName(handler, operation),
321
+ IDENTIFIER: identifier,
322
+ MUTATION_PARAMS: '',
323
+ };
324
+ if (operation !== types_1.WebhookOperation.Delete) {
325
+ switch (handler.deliveryMethod) {
326
+ case types_1.DeliveryMethod.Http:
327
+ params.callbackUrl = "\"".concat((0, registry_1.addHostToCallbackUrl)(config, handler.callbackUrl), "\"");
328
+ break;
329
+ case types_1.DeliveryMethod.EventBridge:
330
+ params.arn = "\"".concat(handler.arn, "\"");
331
+ break;
332
+ case types_1.DeliveryMethod.PubSub:
333
+ params.pubSubProject = "\"".concat(handler.pubSubProject, "\"");
334
+ params.pubSubTopic = "\"".concat(handler.pubSubTopic, "\"");
335
+ break;
336
+ default:
337
+ throw new error_1.InvalidDeliveryMethodError("Unrecognized delivery method '".concat(handler.deliveryMethod, "'"));
338
+ }
339
+ if (handler.includeFields) {
340
+ params.includeFields = JSON.stringify(handler.includeFields);
341
+ }
342
+ if (handler.metafieldNamespaces) {
343
+ params.metafieldNamespaces = JSON.stringify(handler.metafieldNamespaces);
344
+ }
345
+ if (handler.deliveryMethod === types_1.DeliveryMethod.Http &&
346
+ handler.privateMetafieldNamespaces) {
347
+ params.privateMetafieldNamespaces = JSON.stringify(handler.privateMetafieldNamespaces);
348
+ }
349
+ var paramsString = Object.entries(params)
350
+ .map(function (_a) {
351
+ var _b = tslib_1.__read(_a, 2), key = _b[0], value = _b[1];
352
+ return "".concat(key, ": ").concat(value);
353
+ })
354
+ .join(', ');
355
+ mutationArguments.MUTATION_PARAMS = "webhookSubscription: {".concat(paramsString, "}");
356
+ }
357
+ return (0, query_template_1.queryTemplate)(exports.TEMPLATE_MUTATION, mutationArguments);
358
+ }
359
+ function getMutationName(handler, operation) {
360
+ switch (operation) {
361
+ case types_1.WebhookOperation.Create:
362
+ return "".concat(getEndpoint(handler), "Create");
363
+ case types_1.WebhookOperation.Update:
364
+ return "".concat(getEndpoint(handler), "Update");
365
+ case types_1.WebhookOperation.Delete:
366
+ return 'webhookSubscriptionDelete';
367
+ default:
368
+ throw new error_1.ShopifyError("Unrecognized operation '".concat(operation, "'"));
369
+ }
370
+ }
371
+ function getEndpoint(handler) {
372
+ switch (handler.deliveryMethod) {
373
+ case types_1.DeliveryMethod.Http:
374
+ return 'webhookSubscription';
375
+ case types_1.DeliveryMethod.EventBridge:
376
+ return 'eventBridgeWebhookSubscription';
377
+ case types_1.DeliveryMethod.PubSub:
378
+ return 'pubSubWebhookSubscription';
379
+ default:
380
+ throw new error_1.ShopifyError("Unrecognized delivery method '".concat(handler.deliveryMethod, "'"));
381
+ }
382
+ }
383
+ function isSuccess(result, handler, operation) {
384
+ var mutationName = getMutationName(handler, operation);
385
+ return Boolean(result.data &&
386
+ result.data[mutationName] &&
387
+ result.data[mutationName].userErrors.length === 0);
388
+ }
389
+ exports.TEMPLATE_GET_HANDLERS = "{\n webhookSubscriptions(\n first: 250,\n after: {{END_CURSOR}},\n ) {\n edges {\n node {\n id\n topic\n includeFields\n metafieldNamespaces\n privateMetafieldNamespaces\n endpoint {\n __typename\n ... on WebhookHttpEndpoint {\n callbackUrl\n }\n ... on WebhookEventBridgeEndpoint {\n arn\n }\n ... on WebhookPubSubEndpoint {\n pubSubProject\n pubSubTopic\n }\n }\n }\n }\n pageInfo {\n endCursor\n hasNextPage\n }\n }\n}";
390
+ exports.TEMPLATE_MUTATION = "\n mutation webhookSubscription {\n {{MUTATION_NAME}}(\n {{IDENTIFIER}},\n {{MUTATION_PARAMS}}\n ) {\n userErrors {\n field\n message\n }\n }\n }\n";
391
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["register.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,10 @@
1
- import { AdapterResponse } from '../../runtime/http';
2
1
  import { ConfigInterface } from '../base-types';
3
- import { AddHandlerParams, BuildCheckQueryParams, BuildQueryParams, HttpWebhookRegistry, RegisterParams, RegisterReturn, ShortenedRegisterParams, WebhookHandlerFunction, WebhookProcessParams } from './types';
4
- export declare function buildCheckQuery({ topic }: BuildCheckQueryParams): string;
5
- export declare function buildQuery({ topic, address, deliveryMethod, webhookId, }: BuildQueryParams): string;
6
- export declare function createAddHttpHandler(httpWebhookRegistry: HttpWebhookRegistry): (params: AddHandlerParams) => void;
7
- export declare function createAddHttpHandlers(httpWebhookRegistry: HttpWebhookRegistry): (handlers: AddHandlerParams[]) => void;
8
- export declare function createGetHttpHandler(httpWebhookRegistry: HttpWebhookRegistry): (topic: string) => WebhookHandlerFunction | null;
9
- export declare function createGetTopicsAdded(httpWebhookRegistry: HttpWebhookRegistry): () => string[];
10
- export declare function createRegister(config: ConfigInterface): ({ path, topic, accessToken, shop, deliveryMethod, }: RegisterParams) => Promise<RegisterReturn>;
11
- export declare function createRegisterAllHttp(config: ConfigInterface, httpWebhookRegistry: HttpWebhookRegistry): ({ path, accessToken, shop, }: ShortenedRegisterParams) => Promise<RegisterReturn>;
12
- export declare function createProcess(config: ConfigInterface, httpWebhookRegistry: HttpWebhookRegistry): ({ rawBody, ...adapterArgs }: WebhookProcessParams) => Promise<AdapterResponse>;
2
+ import { AddHandlersParams, WebhookHandler, WebhookRegistry } from './types';
3
+ export declare function createRegistry(): WebhookRegistry;
4
+ export declare function topicForStorage(topic: string): string;
5
+ export declare function createAddHandlers(config: ConfigInterface, webhookRegistry: WebhookRegistry): (handlersToAdd: AddHandlersParams) => void;
6
+ export declare function createGetTopicsAdded(webhookRegistry: WebhookRegistry): () => string[];
7
+ export declare function createGetHandlers(webhookRegistry: WebhookRegistry): (topic: string) => WebhookHandler[];
8
+ export declare function handlerIdentifier(config: ConfigInterface, handler: WebhookHandler): string;
9
+ export declare function addHostToCallbackUrl(config: ConfigInterface, callbackUrl: string): string;
13
10
  //# sourceMappingURL=registry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["registry.ts"],"names":[],"mappings":"AAEA,OAAO,EAGL,eAAe,EAMhB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EAAC,eAAe,EAA4B,MAAM,eAAe,CAAC;AAIzE,OAAO,EACL,gBAAgB,EAChB,qBAAqB,EACrB,gBAAgB,EAEhB,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,uBAAuB,EAEvB,sBAAsB,EACtB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AA6BjB,wBAAgB,eAAe,CAAC,EAAC,KAAK,EAAC,EAAE,qBAAqB,GAAG,MAAM,CAuBtE;AAED,wBAAgB,UAAU,CAAC,EACzB,KAAK,EACL,OAAO,EACP,cAAoC,EACpC,SAAS,GACV,EAAE,gBAAgB,GAAG,MAAM,CAkD3B;AAMD,wBAAgB,oBAAoB,CAAC,mBAAmB,EAAE,mBAAmB,YACpC,gBAAgB,UAIxD;AAED,wBAAgB,qBAAqB,CACnC,mBAAmB,EAAE,mBAAmB,cAGE,gBAAgB,EAAE,KAAG,IAAI,CAGpE;AAED,wBAAgB,oBAAoB,CAAC,mBAAmB,EAAE,mBAAmB,WACrC,MAAM,KAAG,sBAAsB,GAAG,IAAI,CAG7E;AAED,wBAAgB,oBAAoB,CAAC,mBAAmB,EAAE,mBAAmB,SACzC,MAAM,EAAE,CAG3C;AAED,wBAAgB,cAAc,CAAC,MAAM,EAAE,eAAe,yDASjD,cAAc,KAAG,QAAQ,cAAc,CAAC,CAsE5C;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,mBAAmB,kCAUrC,uBAAuB,KAAG,QAAQ,cAAc,CAAC,CAoBrD;AA6DD,wBAAgB,aAAa,CAC3B,MAAM,EAAE,eAAe,EACvB,mBAAmB,EAAE,mBAAmB,iCAOrC,oBAAoB,KAAG,QAAQ,eAAe,CAAC,CAwDnD"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAc,MAAM,eAAe,CAAC;AAE3D,OAAO,EACL,iBAAiB,EAEjB,cAAc,EACd,eAAe,EAChB,MAAM,SAAS,CAAC;AAEjB,wBAAgB,cAAc,IAAI,eAAe,CAEhD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAErD;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,eAAe,EAAE,eAAe,mBAEW,iBAAiB,UAa7D;AAED,wBAAgB,oBAAoB,CAAC,eAAe,EAAE,eAAe,SACjC,MAAM,EAAE,CAG3C;AAED,wBAAgB,iBAAiB,CAAC,eAAe,EAAE,eAAe,WAC7B,MAAM,KAAG,cAAc,EAAE,CAG7D;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,cAAc,GACtB,MAAM,CAeR;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,eAAe,EACvB,WAAW,EAAE,MAAM,GAClB,MAAM,CAMR"}