@azure/notification-hubs 1.0.4-alpha.20240112.1 → 1.0.4-alpha.20240116.1
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/dist/index.cjs +144 -367
- package/dist/index.cjs.map +1 -1
- package/dist-esm/src/api/beginSubmitNotificationHubJob.js +4 -3
- package/dist-esm/src/api/beginSubmitNotificationHubJob.js.map +1 -1
- package/dist-esm/src/api/clientContext.js +5 -7
- package/dist-esm/src/api/clientContext.js.map +1 -1
- package/dist-esm/src/api/internal/_client.js +4 -21
- package/dist-esm/src/api/internal/_client.js.map +1 -1
- package/dist-esm/src/api/internal/_listRegistrations.js +31 -13
- package/dist-esm/src/api/internal/_listRegistrations.js.map +1 -1
- package/dist-esm/src/api/listRegistrationsByChannel.js +1 -4
- package/dist-esm/src/api/listRegistrationsByChannel.js.map +1 -1
- package/dist-esm/src/api/listRegistrationsByTag.js +31 -13
- package/dist-esm/src/api/listRegistrationsByTag.js.map +1 -1
- package/dist-esm/src/models/installation.js +7 -28
- package/dist-esm/src/models/installation.js.map +1 -1
- package/dist-esm/src/models/notification.js +12 -59
- package/dist-esm/src/models/notification.js.map +1 -1
- package/dist-esm/src/models/registration.js +14 -56
- package/dist-esm/src/models/registration.js.map +1 -1
- package/dist-esm/src/serializers/registrationSerializer.js +36 -163
- package/dist-esm/src/serializers/registrationSerializer.js.map +1 -1
- package/package.json +1 -1
|
@@ -50,183 +50,115 @@ export const registrationDescriptionParser = {
|
|
|
50
50
|
* Creates an ADM registration description from incoming XML property bag.
|
|
51
51
|
*/
|
|
52
52
|
createAdmRegistrationDescription(rawRegistrationDescription) {
|
|
53
|
-
return {
|
|
54
|
-
admRegistrationId: getString(rawRegistrationDescription["AdmRegistrationId"], "admRegistrationId"),
|
|
55
|
-
...createRegistrationDescription(rawRegistrationDescription),
|
|
56
|
-
kind: "Adm",
|
|
57
|
-
};
|
|
53
|
+
return Object.assign(Object.assign({ admRegistrationId: getString(rawRegistrationDescription["AdmRegistrationId"], "admRegistrationId") }, createRegistrationDescription(rawRegistrationDescription)), { kind: "Adm" });
|
|
58
54
|
},
|
|
59
55
|
/**
|
|
60
56
|
* @internal
|
|
61
57
|
* Creates an ADM template registration description from incoming XML property bag.
|
|
62
58
|
*/
|
|
63
59
|
createAdmTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
64
|
-
return {
|
|
65
|
-
...this.createAdmRegistrationDescription(rawRegistrationDescription),
|
|
66
|
-
...createTemplateRegistrationDescription(rawRegistrationDescription),
|
|
67
|
-
kind: "AdmTemplate",
|
|
68
|
-
};
|
|
60
|
+
return Object.assign(Object.assign(Object.assign({}, this.createAdmRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { kind: "AdmTemplate" });
|
|
69
61
|
},
|
|
70
62
|
/**
|
|
71
63
|
* @internal
|
|
72
64
|
* Creates an Apple registration description from incoming XML property bag.
|
|
73
65
|
*/
|
|
74
66
|
createAppleRegistrationDescription(rawRegistrationDescription) {
|
|
75
|
-
return {
|
|
76
|
-
deviceToken: getString(rawRegistrationDescription["DeviceToken"], "deviceToken"),
|
|
77
|
-
...createRegistrationDescription(rawRegistrationDescription),
|
|
78
|
-
kind: "Apple",
|
|
79
|
-
};
|
|
67
|
+
return Object.assign(Object.assign({ deviceToken: getString(rawRegistrationDescription["DeviceToken"], "deviceToken") }, createRegistrationDescription(rawRegistrationDescription)), { kind: "Apple" });
|
|
80
68
|
},
|
|
81
69
|
/**
|
|
82
70
|
* @internal
|
|
83
71
|
* Creates an Apple template registration description from incoming XML property bag.
|
|
84
72
|
*/
|
|
85
73
|
createAppleTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
apnsHeaders: getHeadersOrUndefined(rawRegistrationDescription["ApnsHeaders"]?.["ApnsHeader"]),
|
|
89
|
-
...this.createAppleRegistrationDescription(rawRegistrationDescription),
|
|
90
|
-
...createTemplateRegistrationDescription(rawRegistrationDescription),
|
|
91
|
-
kind: "AppleTemplate",
|
|
92
|
-
};
|
|
74
|
+
var _a;
|
|
75
|
+
return Object.assign(Object.assign(Object.assign({ priority: getStringOrUndefined(rawRegistrationDescription["Priority"]), apnsHeaders: getHeadersOrUndefined((_a = rawRegistrationDescription["ApnsHeaders"]) === null || _a === void 0 ? void 0 : _a["ApnsHeader"]) }, this.createAppleRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { kind: "AppleTemplate" });
|
|
93
76
|
},
|
|
94
77
|
/**
|
|
95
78
|
* @internal
|
|
96
79
|
* Creates a Baidu registration description from incoming XML property bag.
|
|
97
80
|
*/
|
|
98
81
|
createBaiduRegistrationDescription(rawRegistrationDescription) {
|
|
99
|
-
return {
|
|
100
|
-
baiduChannelId: getString(rawRegistrationDescription["BaiduChannelId"], "baiduChannelId"),
|
|
101
|
-
baiduUserId: getString(rawRegistrationDescription["BaiduUserId"], "baiduUserId"),
|
|
102
|
-
...createRegistrationDescription(rawRegistrationDescription),
|
|
103
|
-
kind: "Baidu",
|
|
104
|
-
};
|
|
82
|
+
return Object.assign(Object.assign({ baiduChannelId: getString(rawRegistrationDescription["BaiduChannelId"], "baiduChannelId"), baiduUserId: getString(rawRegistrationDescription["BaiduUserId"], "baiduUserId") }, createRegistrationDescription(rawRegistrationDescription)), { kind: "Baidu" });
|
|
105
83
|
},
|
|
106
84
|
/**
|
|
107
85
|
* @internal
|
|
108
86
|
* Creates a Baidu template registration description from incoming XML property bag.
|
|
109
87
|
*/
|
|
110
88
|
createBaiduTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
111
|
-
return {
|
|
112
|
-
...this.createBaiduRegistrationDescription(rawRegistrationDescription),
|
|
113
|
-
...createTemplateRegistrationDescription(rawRegistrationDescription),
|
|
114
|
-
kind: "BaiduTemplate",
|
|
115
|
-
};
|
|
89
|
+
return Object.assign(Object.assign(Object.assign({}, this.createBaiduRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { kind: "BaiduTemplate" });
|
|
116
90
|
},
|
|
117
91
|
/**
|
|
118
92
|
* @internal
|
|
119
93
|
* Creates a Browser registration description from incoming XML property bag.
|
|
120
94
|
*/
|
|
121
95
|
createBrowserRegistrationDescription(rawRegistrationDescription) {
|
|
122
|
-
return {
|
|
123
|
-
endpoint: getString(rawRegistrationDescription["Endpoint"], "endpoint"),
|
|
124
|
-
p256dh: getString(rawRegistrationDescription["P256DH"], "p256dh"),
|
|
125
|
-
auth: getString(rawRegistrationDescription["Auth"], "auth"),
|
|
126
|
-
...createRegistrationDescription(rawRegistrationDescription),
|
|
127
|
-
kind: "Browser",
|
|
128
|
-
};
|
|
96
|
+
return Object.assign(Object.assign({ endpoint: getString(rawRegistrationDescription["Endpoint"], "endpoint"), p256dh: getString(rawRegistrationDescription["P256DH"], "p256dh"), auth: getString(rawRegistrationDescription["Auth"], "auth") }, createRegistrationDescription(rawRegistrationDescription)), { kind: "Browser" });
|
|
129
97
|
},
|
|
130
98
|
/**
|
|
131
99
|
* @internal
|
|
132
100
|
* Creates a Browser template registration description from incoming XML property bag.
|
|
133
101
|
*/
|
|
134
102
|
createBrowserTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
135
|
-
return {
|
|
136
|
-
...this.createBrowserRegistrationDescription(rawRegistrationDescription),
|
|
137
|
-
...createTemplateRegistrationDescription(rawRegistrationDescription),
|
|
138
|
-
kind: "BrowserTemplate",
|
|
139
|
-
};
|
|
103
|
+
return Object.assign(Object.assign(Object.assign({}, this.createBrowserRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { kind: "BrowserTemplate" });
|
|
140
104
|
},
|
|
141
105
|
/**
|
|
142
106
|
* @internal
|
|
143
107
|
* Creates an GCM registration description from incoming XML property bag.
|
|
144
108
|
*/
|
|
145
109
|
createGcmRegistrationDescription(rawRegistrationDescription) {
|
|
146
|
-
return {
|
|
147
|
-
gcmRegistrationId: getString(rawRegistrationDescription["GcmRegistrationId"], "gcmRegistrationId"),
|
|
148
|
-
...createRegistrationDescription(rawRegistrationDescription),
|
|
149
|
-
kind: "Gcm",
|
|
150
|
-
};
|
|
110
|
+
return Object.assign(Object.assign({ gcmRegistrationId: getString(rawRegistrationDescription["GcmRegistrationId"], "gcmRegistrationId") }, createRegistrationDescription(rawRegistrationDescription)), { kind: "Gcm" });
|
|
151
111
|
},
|
|
152
112
|
/**
|
|
153
113
|
* @internal
|
|
154
114
|
* Creates an FCM template registration description from incoming XML property bag.
|
|
155
115
|
*/
|
|
156
116
|
createGcmTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
157
|
-
return {
|
|
158
|
-
...this.createGcmRegistrationDescription(rawRegistrationDescription),
|
|
159
|
-
...createTemplateRegistrationDescription(rawRegistrationDescription),
|
|
160
|
-
kind: "GcmTemplate",
|
|
161
|
-
};
|
|
117
|
+
return Object.assign(Object.assign(Object.assign({}, this.createGcmRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { kind: "GcmTemplate" });
|
|
162
118
|
},
|
|
163
119
|
/**
|
|
164
120
|
* @internal
|
|
165
121
|
* Creates a Windows Phone registration description from incoming XML property bag.
|
|
166
122
|
*/
|
|
167
123
|
createMpnsRegistrationDescription(rawRegistrationDescription) {
|
|
168
|
-
return {
|
|
169
|
-
channelUri: getString(rawRegistrationDescription["ChannelUri"], "channelUri"),
|
|
170
|
-
...createRegistrationDescription(rawRegistrationDescription),
|
|
171
|
-
kind: "Mpns",
|
|
172
|
-
};
|
|
124
|
+
return Object.assign(Object.assign({ channelUri: getString(rawRegistrationDescription["ChannelUri"], "channelUri") }, createRegistrationDescription(rawRegistrationDescription)), { kind: "Mpns" });
|
|
173
125
|
},
|
|
174
126
|
/**
|
|
175
127
|
* @internal
|
|
176
128
|
* Creates a Windows Phone template registration description from incoming XML property bag.
|
|
177
129
|
*/
|
|
178
130
|
createMpnsTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
...this.createWindowsRegistrationDescription(rawRegistrationDescription),
|
|
182
|
-
...createTemplateRegistrationDescription(rawRegistrationDescription),
|
|
183
|
-
kind: "MpnsTemplate",
|
|
184
|
-
};
|
|
131
|
+
var _a;
|
|
132
|
+
return Object.assign(Object.assign(Object.assign({ mpnsHeaders: getHeadersOrUndefined((_a = rawRegistrationDescription["MpnsHeaders"]) === null || _a === void 0 ? void 0 : _a["MpnsHeader"]) }, this.createWindowsRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { kind: "MpnsTemplate" });
|
|
185
133
|
},
|
|
186
134
|
/**
|
|
187
135
|
* @internal
|
|
188
136
|
* Creates a Xiaomi registration description from incoming XML property bag.
|
|
189
137
|
*/
|
|
190
138
|
createXiaomiRegistrationDescription(rawRegistrationDescription) {
|
|
191
|
-
return {
|
|
192
|
-
xiaomiRegistrationId: getString(rawRegistrationDescription["XiaomiRegistrationId"], "xiaomiRegistrationId"),
|
|
193
|
-
...createRegistrationDescription(rawRegistrationDescription),
|
|
194
|
-
kind: "Xiaomi",
|
|
195
|
-
};
|
|
139
|
+
return Object.assign(Object.assign({ xiaomiRegistrationId: getString(rawRegistrationDescription["XiaomiRegistrationId"], "xiaomiRegistrationId") }, createRegistrationDescription(rawRegistrationDescription)), { kind: "Xiaomi" });
|
|
196
140
|
},
|
|
197
141
|
/**
|
|
198
142
|
* @internal
|
|
199
143
|
* Creates a Xiaomi template registration description from incoming XML property bag.
|
|
200
144
|
*/
|
|
201
145
|
createXiaomiTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
202
|
-
return {
|
|
203
|
-
...this.createXiaomiRegistrationDescription(rawRegistrationDescription),
|
|
204
|
-
...createTemplateRegistrationDescription(rawRegistrationDescription),
|
|
205
|
-
kind: "XiaomiTemplate",
|
|
206
|
-
};
|
|
146
|
+
return Object.assign(Object.assign(Object.assign({}, this.createXiaomiRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { kind: "XiaomiTemplate" });
|
|
207
147
|
},
|
|
208
148
|
/**
|
|
209
149
|
* @internal
|
|
210
150
|
* Creates a Windows registration description from incoming XML property bag.
|
|
211
151
|
*/
|
|
212
152
|
createWindowsRegistrationDescription(rawRegistrationDescription) {
|
|
213
|
-
return {
|
|
214
|
-
channelUri: getString(rawRegistrationDescription["ChannelUri"], "channelUri"),
|
|
215
|
-
...createRegistrationDescription(rawRegistrationDescription),
|
|
216
|
-
kind: "Windows",
|
|
217
|
-
};
|
|
153
|
+
return Object.assign(Object.assign({ channelUri: getString(rawRegistrationDescription["ChannelUri"], "channelUri") }, createRegistrationDescription(rawRegistrationDescription)), { kind: "Windows" });
|
|
218
154
|
},
|
|
219
155
|
/**
|
|
220
156
|
* @internal
|
|
221
157
|
* Creates a Windows template registration description from incoming XML property bag.
|
|
222
158
|
*/
|
|
223
159
|
createWindowsTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
...this.createWindowsRegistrationDescription(rawRegistrationDescription),
|
|
227
|
-
...createTemplateRegistrationDescription(rawRegistrationDescription),
|
|
228
|
-
kind: "WindowsTemplate",
|
|
229
|
-
};
|
|
160
|
+
var _a;
|
|
161
|
+
return Object.assign(Object.assign(Object.assign({ wnsHeaders: getHeadersOrUndefined((_a = rawRegistrationDescription["WnsHeaders"]) === null || _a === void 0 ? void 0 : _a["WnsHeader"]) }, this.createWindowsRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { kind: "WindowsTemplate" });
|
|
230
162
|
},
|
|
231
163
|
};
|
|
232
164
|
function getHeadersOrUndefined(value) {
|
|
@@ -254,11 +186,7 @@ function createRegistrationDescription(rawRegistrationDescription) {
|
|
|
254
186
|
};
|
|
255
187
|
}
|
|
256
188
|
function createTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
257
|
-
return {
|
|
258
|
-
bodyTemplate: getString(rawRegistrationDescription["BodyTemplate"], "bodyTemplate"),
|
|
259
|
-
templateName: getStringOrUndefined(rawRegistrationDescription["TemplateName"]),
|
|
260
|
-
...createRegistrationDescription(rawRegistrationDescription),
|
|
261
|
-
};
|
|
189
|
+
return Object.assign({ bodyTemplate: getString(rawRegistrationDescription["BodyTemplate"], "bodyTemplate"), templateName: getStringOrUndefined(rawRegistrationDescription["TemplateName"]) }, createRegistrationDescription(rawRegistrationDescription));
|
|
262
190
|
}
|
|
263
191
|
/**
|
|
264
192
|
* Represents a RegistrationDescription serializer.
|
|
@@ -280,30 +208,21 @@ export const registrationDescriptionSerializer = {
|
|
|
280
208
|
* Serializes an existing ADM registration description to an object for serialization.
|
|
281
209
|
*/
|
|
282
210
|
serializeAdmRegistrationDescription(description) {
|
|
283
|
-
return {
|
|
284
|
-
...serializeRegistrationDescription(description),
|
|
285
|
-
AdmRegistrationId: getString(description.admRegistrationId, "admRegistrationId"),
|
|
286
|
-
};
|
|
211
|
+
return Object.assign(Object.assign({}, serializeRegistrationDescription(description)), { AdmRegistrationId: getString(description.admRegistrationId, "admRegistrationId") });
|
|
287
212
|
},
|
|
288
213
|
/**
|
|
289
214
|
* @internal
|
|
290
215
|
* Serializes an existing ADM template registration description to an object for serialization.
|
|
291
216
|
*/
|
|
292
217
|
serializeAdmTemplateRegistrationDescription(description) {
|
|
293
|
-
return {
|
|
294
|
-
...this.serializeAdmRegistrationDescription(description),
|
|
295
|
-
...serializeTemplateRegistrationDescription(description),
|
|
296
|
-
};
|
|
218
|
+
return Object.assign(Object.assign({}, this.serializeAdmRegistrationDescription(description)), serializeTemplateRegistrationDescription(description));
|
|
297
219
|
},
|
|
298
220
|
/**
|
|
299
221
|
* @internal
|
|
300
222
|
* Serializes an existing Apple registration description to an object for serialization.
|
|
301
223
|
*/
|
|
302
224
|
serializeAppleRegistrationDescription(description) {
|
|
303
|
-
return {
|
|
304
|
-
...serializeRegistrationDescription(description),
|
|
305
|
-
DeviceToken: getString(description.deviceToken, "deviceToken"),
|
|
306
|
-
};
|
|
225
|
+
return Object.assign(Object.assign({}, serializeRegistrationDescription(description)), { DeviceToken: getString(description.deviceToken, "deviceToken") });
|
|
307
226
|
},
|
|
308
227
|
/**
|
|
309
228
|
* @internal
|
|
@@ -322,55 +241,35 @@ export const registrationDescriptionSerializer = {
|
|
|
322
241
|
});
|
|
323
242
|
}
|
|
324
243
|
}
|
|
325
|
-
return {
|
|
326
|
-
...this.serializeAppleRegistrationDescription(description),
|
|
327
|
-
...serializeTemplateRegistrationDescription(description),
|
|
328
|
-
Expiry: getStringOrUndefined(description.expiry),
|
|
329
|
-
ApnsHeaders: apnsHeaders,
|
|
330
|
-
};
|
|
244
|
+
return Object.assign(Object.assign(Object.assign({}, this.serializeAppleRegistrationDescription(description)), serializeTemplateRegistrationDescription(description)), { Expiry: getStringOrUndefined(description.expiry), ApnsHeaders: apnsHeaders });
|
|
331
245
|
},
|
|
332
246
|
/**
|
|
333
247
|
* @internal
|
|
334
248
|
* Serializes an existing Baidu registration description to an object for serialization.
|
|
335
249
|
*/
|
|
336
250
|
serializeBaiduRegistrationDescription(description) {
|
|
337
|
-
return {
|
|
338
|
-
...serializeRegistrationDescription(description),
|
|
339
|
-
BaiduChannelId: getString(description.baiduChannelId, "baiduChannelId"),
|
|
340
|
-
BaiduUserId: getString(description.baiduUserId, "baiduUserId"),
|
|
341
|
-
};
|
|
251
|
+
return Object.assign(Object.assign({}, serializeRegistrationDescription(description)), { BaiduChannelId: getString(description.baiduChannelId, "baiduChannelId"), BaiduUserId: getString(description.baiduUserId, "baiduUserId") });
|
|
342
252
|
},
|
|
343
253
|
/**
|
|
344
254
|
* @internal
|
|
345
255
|
* Serializes an existing Baidu template registration description to an object for serialization.
|
|
346
256
|
*/
|
|
347
257
|
serializeBaiduTemplateRegistrationDescription(description) {
|
|
348
|
-
return {
|
|
349
|
-
...this.serializeBaiduRegistrationDescription(description),
|
|
350
|
-
...serializeTemplateRegistrationDescription(description),
|
|
351
|
-
};
|
|
258
|
+
return Object.assign(Object.assign({}, this.serializeBaiduRegistrationDescription(description)), serializeTemplateRegistrationDescription(description));
|
|
352
259
|
},
|
|
353
260
|
/**
|
|
354
261
|
* @internal
|
|
355
262
|
* Serializes an existing Browser registration description to an object for serialization.
|
|
356
263
|
*/
|
|
357
264
|
serializeBrowserRegistrationDescription(description) {
|
|
358
|
-
return {
|
|
359
|
-
...serializeRegistrationDescription(description),
|
|
360
|
-
Endpoint: description.endpoint,
|
|
361
|
-
Auth: description.auth,
|
|
362
|
-
P256DH: description.p256dh,
|
|
363
|
-
};
|
|
265
|
+
return Object.assign(Object.assign({}, serializeRegistrationDescription(description)), { Endpoint: description.endpoint, Auth: description.auth, P256DH: description.p256dh });
|
|
364
266
|
},
|
|
365
267
|
/**
|
|
366
268
|
* @internal
|
|
367
269
|
* Serializes an existing Browser template registration description to an object for serialization.
|
|
368
270
|
*/
|
|
369
271
|
serializeBrowserTemplateRegistrationDescription(description) {
|
|
370
|
-
return {
|
|
371
|
-
...this.serializeBrowserRegistrationDescription(description),
|
|
372
|
-
...serializeTemplateRegistrationDescription(description),
|
|
373
|
-
};
|
|
272
|
+
return Object.assign(Object.assign({}, this.serializeBrowserRegistrationDescription(description)), serializeTemplateRegistrationDescription(description));
|
|
374
273
|
},
|
|
375
274
|
/**
|
|
376
275
|
* @internal
|
|
@@ -378,10 +277,7 @@ export const registrationDescriptionSerializer = {
|
|
|
378
277
|
* Serializes an existing GCM registration description to an object for serialization.
|
|
379
278
|
*/
|
|
380
279
|
serializeGcmRegistrationDescription(description) {
|
|
381
|
-
return {
|
|
382
|
-
...serializeRegistrationDescription(description),
|
|
383
|
-
GcmRegistrationId: getString(description.gcmRegistrationId, "gcmRegistrationId"),
|
|
384
|
-
};
|
|
280
|
+
return Object.assign(Object.assign({}, serializeRegistrationDescription(description)), { GcmRegistrationId: getString(description.gcmRegistrationId, "gcmRegistrationId") });
|
|
385
281
|
},
|
|
386
282
|
/**
|
|
387
283
|
* @internal
|
|
@@ -389,10 +285,7 @@ export const registrationDescriptionSerializer = {
|
|
|
389
285
|
* Serializes an existing GCM template registration description to an object for serialization.
|
|
390
286
|
*/
|
|
391
287
|
serializeGcmTemplateRegistrationDescription(description) {
|
|
392
|
-
return {
|
|
393
|
-
...this.serializeGcmRegistrationDescription(description),
|
|
394
|
-
...serializeTemplateRegistrationDescription(description),
|
|
395
|
-
};
|
|
288
|
+
return Object.assign(Object.assign({}, this.serializeGcmRegistrationDescription(description)), serializeTemplateRegistrationDescription(description));
|
|
396
289
|
},
|
|
397
290
|
/**
|
|
398
291
|
* @internal
|
|
@@ -400,10 +293,7 @@ export const registrationDescriptionSerializer = {
|
|
|
400
293
|
* Serializes an existing MPNS registration description to an object for serialization.
|
|
401
294
|
*/
|
|
402
295
|
serializeMpnsRegistrationDescription(description) {
|
|
403
|
-
return {
|
|
404
|
-
...serializeRegistrationDescription(description),
|
|
405
|
-
ChannelUri: description.channelUri,
|
|
406
|
-
};
|
|
296
|
+
return Object.assign(Object.assign({}, serializeRegistrationDescription(description)), { ChannelUri: description.channelUri });
|
|
407
297
|
},
|
|
408
298
|
/**
|
|
409
299
|
* @internal
|
|
@@ -423,41 +313,28 @@ export const registrationDescriptionSerializer = {
|
|
|
423
313
|
});
|
|
424
314
|
}
|
|
425
315
|
}
|
|
426
|
-
return {
|
|
427
|
-
...this.serializeMpnsRegistrationDescription(description),
|
|
428
|
-
...serializeTemplateRegistrationDescription(description),
|
|
429
|
-
MpnsHeaders: mpnsHeaders,
|
|
430
|
-
};
|
|
316
|
+
return Object.assign(Object.assign(Object.assign({}, this.serializeMpnsRegistrationDescription(description)), serializeTemplateRegistrationDescription(description)), { MpnsHeaders: mpnsHeaders });
|
|
431
317
|
},
|
|
432
318
|
/**
|
|
433
319
|
* @internal
|
|
434
320
|
* Serializes an existing Xiaomi registration description to an object for serialization.
|
|
435
321
|
*/
|
|
436
322
|
serializeXiaomiRegistrationDescription(description) {
|
|
437
|
-
return {
|
|
438
|
-
...serializeRegistrationDescription(description),
|
|
439
|
-
XiaomiRegistrationId: getString(description.xiaomiRegistrationId, "xiaomiRegistrationId"),
|
|
440
|
-
};
|
|
323
|
+
return Object.assign(Object.assign({}, serializeRegistrationDescription(description)), { XiaomiRegistrationId: getString(description.xiaomiRegistrationId, "xiaomiRegistrationId") });
|
|
441
324
|
},
|
|
442
325
|
/**
|
|
443
326
|
* @internal
|
|
444
327
|
* Serializes an existing Xiaomi template registration description to an object for serialization.
|
|
445
328
|
*/
|
|
446
329
|
serializeXiaomiTemplateRegistrationDescription(description) {
|
|
447
|
-
return {
|
|
448
|
-
...this.serializeXiaomiRegistrationDescription(description),
|
|
449
|
-
...serializeTemplateRegistrationDescription(description),
|
|
450
|
-
};
|
|
330
|
+
return Object.assign(Object.assign({}, this.serializeXiaomiRegistrationDescription(description)), serializeTemplateRegistrationDescription(description));
|
|
451
331
|
},
|
|
452
332
|
/**
|
|
453
333
|
* @internal
|
|
454
334
|
* Serializes an existing Windows registration description to an object for serialization.
|
|
455
335
|
*/
|
|
456
336
|
serializeWindowsRegistrationDescription(description) {
|
|
457
|
-
return {
|
|
458
|
-
...serializeRegistrationDescription(description),
|
|
459
|
-
ChannelUri: description.channelUri,
|
|
460
|
-
};
|
|
337
|
+
return Object.assign(Object.assign({}, serializeRegistrationDescription(description)), { ChannelUri: description.channelUri });
|
|
461
338
|
},
|
|
462
339
|
/**
|
|
463
340
|
* @internal
|
|
@@ -476,11 +353,7 @@ export const registrationDescriptionSerializer = {
|
|
|
476
353
|
});
|
|
477
354
|
}
|
|
478
355
|
}
|
|
479
|
-
return {
|
|
480
|
-
...this.serializeWindowsRegistrationDescription(description),
|
|
481
|
-
...serializeTemplateRegistrationDescription(description),
|
|
482
|
-
WnsHeaders: wnsHeaders,
|
|
483
|
-
};
|
|
356
|
+
return Object.assign(Object.assign(Object.assign({}, this.serializeWindowsRegistrationDescription(description)), serializeTemplateRegistrationDescription(description)), { WnsHeaders: wnsHeaders });
|
|
484
357
|
},
|
|
485
358
|
};
|
|
486
359
|
function serializeRegistrationDescription(description) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registrationSerializer.js","sourceRoot":"","sources":["../../../src/serializers/registrationSerializer.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n AdmRegistrationDescription,\n AdmTemplateRegistrationDescription,\n AppleRegistrationDescription,\n AppleTemplateRegistrationDescription,\n BaiduRegistrationDescription,\n BaiduTemplateRegistrationDescription,\n BrowserRegistrationDescription,\n BrowserTemplateRegistrationDescription,\n GcmRegistrationDescription,\n GcmTemplateRegistrationDescription,\n MpnsRegistrationDescription,\n MpnsTemplateRegistrationDescription,\n RegistrationDescription,\n RegistrationDescriptionCommon,\n TemplateRegistrationDescription,\n XiaomiRegistrationDescription,\n XiaomiTemplateRegistrationDescription,\n WindowsRegistrationDescription,\n WindowsTemplateRegistrationDescription,\n} from \"../models/registration.js\";\nimport {\n getDateOrUndefined,\n getString,\n getStringOrUndefined,\n getTagsOrUndefined,\n isDefined,\n} from \"../utils/utils.js\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\nimport { serializeToAtomXmlRequest } from \"../utils/xmlUtils.js\";\n\n/**\n * Represents a registration description parser from the incoming XML.\n */\nexport interface RegistrationDescriptionParser {\n /**\n * @internal\n * Creates a registration type from the incoming entry.\n */\n parseRegistrationEntry: (bodyText: string) => Promise<RegistrationDescription>;\n /**\n * @internal\n * Creates a list of registrations from an incoming ATOM XML Feed.\n */\n parseRegistrationFeed: (bodyText: string) => Promise<RegistrationDescription[]>;\n /**\n * @internal\n * Creates an Amazon Device Messaging (ADM) registration description from the incoming parsed XML.\n */\n createAdmRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => AdmRegistrationDescription;\n /**\n * @internal\n * Creates an Amazon Device Messaging (ADM) template registration description from the incoming parsed XML.\n */\n createAdmTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => AdmTemplateRegistrationDescription;\n /**\n * @internal\n * Creates an Apple Platform Notification Services (APNs) registration description from the incoming parsed XML.\n */\n createAppleRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => AppleRegistrationDescription;\n /**\n * @internal\n * Creates an Apple Platform Notification Services (APNs) template registration description from the incoming parsed XML.\n */\n createAppleTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => AppleTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Baidu registration description from the incoming parsed XML.\n */\n createBaiduRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => BaiduRegistrationDescription;\n /**\n * @internal\n * Creates a Baidu template registration description from the incoming parsed XML.\n */\n createBaiduTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => BaiduTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Web Push registration description from the incoming parsed XML.\n */\n createBrowserRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => BrowserRegistrationDescription;\n /**\n * @internal\n * Creates a Web Push template registration description from the incoming parsed XML.\n */\n createBrowserTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => BrowserTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Google Cloud Messaging (GCM) registration description from the incoming parsed XML.\n */\n createGcmRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => GcmRegistrationDescription;\n /**\n * @internal\n * Creates a Google Cloud Messaging (GCM) template registration description from the incoming parsed XML.\n */\n createGcmTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => GcmTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Microsoft Phone Notification Services (MPNS) registration description from the incoming parsed XML.\n */\n createMpnsRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => MpnsRegistrationDescription;\n /**\n * @internal\n * Creates a Microsoft Phone Notification Services (MPNS) template registration description from the incoming parsed XML.\n */\n createMpnsTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => MpnsTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Xiaomi registration description from the incoming parsed XML.\n */\n createXiaomiRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => XiaomiRegistrationDescription;\n /**\n * @internal\n * Creates a Xiaomi template registration description from the incoming parsed XML.\n */\n createXiaomiTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => XiaomiTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Windows Notification Services (WNS) registration description from the incoming parsed XML.\n */\n createWindowsRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => WindowsRegistrationDescription;\n /**\n * @internal\n * Creates a Windows Notification Services (WNS) template registration description from the incoming parsed XML.\n */\n createWindowsTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => WindowsTemplateRegistrationDescription;\n}\n\nexport const registrationDescriptionParser: RegistrationDescriptionParser = {\n /**\n * @internal\n * Creates a registration type from the incoming entry.\n */\n async parseRegistrationEntry(bodyText: string): Promise<RegistrationDescription> {\n const xml = await parseXML(bodyText, { includeRoot: true });\n delete xml.entry.content[\"$\"];\n const keyName = Object.keys(xml.entry.content)[0];\n const content = xml.entry.content[keyName];\n const methodName = `create${keyName}`;\n\n const method = this[methodName as keyof RegistrationDescriptionParser] as any;\n if (!methodName) {\n throw new RestError(`${keyName} is not a supported registration type`, { statusCode: 500 });\n }\n\n return method.call(this, content) as RegistrationDescription;\n },\n\n /**\n * @internal\n * Creates a list of registrations from an incoming ATOM XML Feed.\n */\n async parseRegistrationFeed(bodyText: string): Promise<RegistrationDescription[]> {\n const xml = await parseXML(bodyText, { includeRoot: true });\n const results: RegistrationDescription[] = [];\n if (!isDefined(xml.feed.entry)) {\n return results;\n }\n\n const entries = Array.isArray(xml.feed.entry) ? xml.feed.entry : [xml.feed.entry];\n\n for (const entry of entries) {\n delete entry.content[\"$\"];\n\n const keyName = Object.keys(entry.content)[0];\n const methodName = `create${keyName}`;\n const content = entry.content[keyName];\n const method = this[methodName as keyof RegistrationDescriptionParser] as any;\n if (!methodName) {\n throw new RestError(`${keyName} is not a supported registration type`, { statusCode: 500 });\n }\n\n results.push(method.call(this, content) as RegistrationDescription);\n }\n\n return results;\n },\n\n /**\n * @internal\n * Creates an ADM registration description from incoming XML property bag.\n */\n createAdmRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): AdmRegistrationDescription {\n return {\n admRegistrationId: getString(\n rawRegistrationDescription[\"AdmRegistrationId\"],\n \"admRegistrationId\",\n ),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Adm\",\n };\n },\n\n /**\n * @internal\n * Creates an ADM template registration description from incoming XML property bag.\n */\n createAdmTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): AdmTemplateRegistrationDescription {\n return {\n ...this.createAdmRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"AdmTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates an Apple registration description from incoming XML property bag.\n */\n createAppleRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): AppleRegistrationDescription {\n return {\n deviceToken: getString(rawRegistrationDescription[\"DeviceToken\"], \"deviceToken\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Apple\",\n };\n },\n\n /**\n * @internal\n * Creates an Apple template registration description from incoming XML property bag.\n */\n createAppleTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): AppleTemplateRegistrationDescription {\n return {\n priority: getStringOrUndefined(rawRegistrationDescription[\"Priority\"]) as \"10\" | \"5\",\n apnsHeaders: getHeadersOrUndefined(rawRegistrationDescription[\"ApnsHeaders\"]?.[\"ApnsHeader\"]),\n ...this.createAppleRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"AppleTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Baidu registration description from incoming XML property bag.\n */\n createBaiduRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): BaiduRegistrationDescription {\n return {\n baiduChannelId: getString(rawRegistrationDescription[\"BaiduChannelId\"], \"baiduChannelId\"),\n baiduUserId: getString(rawRegistrationDescription[\"BaiduUserId\"], \"baiduUserId\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Baidu\",\n };\n },\n\n /**\n * @internal\n * Creates a Baidu template registration description from incoming XML property bag.\n */\n createBaiduTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): BaiduTemplateRegistrationDescription {\n return {\n ...this.createBaiduRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"BaiduTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Browser registration description from incoming XML property bag.\n */\n createBrowserRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): BrowserRegistrationDescription {\n return {\n endpoint: getString(rawRegistrationDescription[\"Endpoint\"], \"endpoint\"),\n p256dh: getString(rawRegistrationDescription[\"P256DH\"], \"p256dh\"),\n auth: getString(rawRegistrationDescription[\"Auth\"], \"auth\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Browser\",\n };\n },\n\n /**\n * @internal\n * Creates a Browser template registration description from incoming XML property bag.\n */\n createBrowserTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): BrowserTemplateRegistrationDescription {\n return {\n ...this.createBrowserRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"BrowserTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates an GCM registration description from incoming XML property bag.\n */\n createGcmRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): GcmRegistrationDescription {\n return {\n gcmRegistrationId: getString(\n rawRegistrationDescription[\"GcmRegistrationId\"],\n \"gcmRegistrationId\",\n ),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Gcm\",\n };\n },\n\n /**\n * @internal\n * Creates an FCM template registration description from incoming XML property bag.\n */\n createGcmTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): GcmTemplateRegistrationDescription {\n return {\n ...this.createGcmRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"GcmTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Windows Phone registration description from incoming XML property bag.\n */\n createMpnsRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): MpnsRegistrationDescription {\n return {\n channelUri: getString(rawRegistrationDescription[\"ChannelUri\"], \"channelUri\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Mpns\",\n };\n },\n\n /**\n * @internal\n * Creates a Windows Phone template registration description from incoming XML property bag.\n */\n createMpnsTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): MpnsTemplateRegistrationDescription {\n return {\n mpnsHeaders: getHeadersOrUndefined(rawRegistrationDescription[\"MpnsHeaders\"]?.[\"MpnsHeader\"]),\n ...this.createWindowsRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"MpnsTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Xiaomi registration description from incoming XML property bag.\n */\n createXiaomiRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): XiaomiRegistrationDescription {\n return {\n xiaomiRegistrationId: getString(\n rawRegistrationDescription[\"XiaomiRegistrationId\"],\n \"xiaomiRegistrationId\",\n ),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Xiaomi\",\n };\n },\n\n /**\n * @internal\n * Creates a Xiaomi template registration description from incoming XML property bag.\n */\n createXiaomiTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): XiaomiTemplateRegistrationDescription {\n return {\n ...this.createXiaomiRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"XiaomiTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Windows registration description from incoming XML property bag.\n */\n createWindowsRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): WindowsRegistrationDescription {\n return {\n channelUri: getString(rawRegistrationDescription[\"ChannelUri\"], \"channelUri\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Windows\",\n };\n },\n\n /**\n * @internal\n * Creates a Windows template registration description from incoming XML property bag.\n */\n createWindowsTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): WindowsTemplateRegistrationDescription {\n return {\n wnsHeaders: getHeadersOrUndefined(rawRegistrationDescription[\"WnsHeaders\"]?.[\"WnsHeader\"]),\n ...this.createWindowsRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"WindowsTemplate\",\n };\n },\n};\n\nfunction getHeadersOrUndefined(\n value?: { Header: string; Value: string }[],\n): Record<string, string> | undefined {\n if (!isDefined(value)) {\n return undefined;\n }\n\n const headerObj: Record<string, string> = {};\n for (const { Header, Value } of value) {\n headerObj[Header] = Value;\n }\n\n return headerObj;\n}\n\nfunction createRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n): Omit<RegistrationDescriptionCommon, \"kind\"> {\n let pushVariables: Record<string, string> | undefined;\n const unparsed = getStringOrUndefined(rawRegistrationDescription[\"PushVariables\"]);\n if (unparsed) {\n pushVariables = JSON.parse(unparsed) as Record<string, string>;\n }\n\n return {\n registrationId: getStringOrUndefined(rawRegistrationDescription[\"RegistrationId\"]),\n expirationTime: getDateOrUndefined(rawRegistrationDescription[\"ExpirationTime\"]),\n etag: getStringOrUndefined(rawRegistrationDescription[\"ETag\"]),\n tags: getTagsOrUndefined(rawRegistrationDescription[\"Tags\"]),\n pushVariables: pushVariables,\n };\n}\n\nfunction createTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n): TemplateRegistrationDescription {\n return {\n bodyTemplate: getString(rawRegistrationDescription[\"BodyTemplate\"], \"bodyTemplate\"),\n templateName: getStringOrUndefined(rawRegistrationDescription[\"TemplateName\"]),\n ...createRegistrationDescription(rawRegistrationDescription),\n };\n}\n\n/**\n * @internal\n * Represents a serializer for all registration descriptions.\n */\nexport interface RegistrationDescriptionSerializer {\n /**\n * @internal\n * Serializes a registration description into an ATOM XML string.\n */\n serializeRegistrationDescription(description: RegistrationDescription): string;\n /**\n * @internal\n * Serializes an Amazon Device Messaging (ADM) registration description into an XML object for serialization.\n */\n serializeAdmRegistrationDescription(\n description: Omit<AdmRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes an Amazon Device Messaging (ADM) template registration description into an XML object for serialization.\n */\n serializeAdmTemplateRegistrationDescription(\n description: Omit<AdmTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes an Apple registration description into an XML object for serialization.\n */\n serializeAppleRegistrationDescription(\n description: Omit<AppleRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes an Apple template registration description into an XML object for serialization.\n */\n serializeAppleTemplateRegistrationDescription(\n description: Omit<AppleRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Baidu registration description into an XML object for serialization.\n */\n serializeBaiduRegistrationDescription(\n description: Omit<BaiduRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Baidu template registration description into an XML object for serialization.\n */\n serializeBaiduTemplateRegistrationDescription(\n description: Omit<BaiduTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Web Push registration description into an XML object for serialization.\n */\n serializeBrowserRegistrationDescription(\n description: Omit<BrowserRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Web Push template registration description into an XML object for serialization.\n */\n serializeBrowserTemplateRegistrationDescription(\n description: Omit<BrowserTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Google Cloud Messaging (GCM) registration description into an XML object for serialization.\n */\n serializeGcmRegistrationDescription(\n description: Omit<GcmRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Google Cloud Messaging (GCM) template registration description into an XML object for serialization.\n */\n serializeGcmTemplateRegistrationDescription(\n description: Omit<GcmTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Windows Phone registration description into an XML object for serialization.\n */\n serializeMpnsRegistrationDescription(\n description: Omit<MpnsRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Windows Phone template registration description into an XML object for serialization.\n */\n serializeMpnsTemplateRegistrationDescription(\n description: Omit<MpnsTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Xiaomi registration description into an XML object for serialization.\n */\n serializeXiaomiRegistrationDescription(\n description: Omit<XiaomiRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Xiaomi template registration description into an XML object for serialization.\n */\n serializeXiaomiTemplateRegistrationDescription(\n description: Omit<XiaomiTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Windows Notification Services (WNS) registration description into an XML object for serialization.\n */\n serializeWindowsRegistrationDescription(\n description: Omit<WindowsRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Windows Notification Services (WNS) template registration description into an XML object for serialization.\n */\n serializeWindowsTemplateRegistrationDescription(\n description: Omit<WindowsTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n}\n\n/**\n * Represents a RegistrationDescription serializer.\n */\nexport const registrationDescriptionSerializer: RegistrationDescriptionSerializer = {\n serializeRegistrationDescription(description: RegistrationDescription): string {\n const rootName = `${description.kind}RegistrationDescription`;\n const methodName = `serialize${rootName}`;\n\n const method = this[methodName as keyof RegistrationDescriptionSerializer].bind(this) as (\n description: RegistrationDescription,\n ) => Record<string, any>;\n if (!isDefined(method)) {\n throw new RestError(`Undefined platform ${description.kind}`, { statusCode: 400 });\n }\n\n const registration = method(description) as Record<string, any>;\n const requestObject = serializeToAtomXmlRequest(rootName, registration);\n\n return stringifyXML(requestObject, { rootName: \"entry\" });\n },\n\n /**\n * @internal\n * Serializes an existing ADM registration description to an object for serialization.\n */\n serializeAdmRegistrationDescription(\n description: Omit<AdmRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n AdmRegistrationId: getString(description.admRegistrationId, \"admRegistrationId\"),\n };\n },\n\n /**\n * @internal\n * Serializes an existing ADM template registration description to an object for serialization.\n */\n serializeAdmTemplateRegistrationDescription(\n description: Omit<AdmTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeAdmRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Apple registration description to an object for serialization.\n */\n serializeAppleRegistrationDescription(\n description: Omit<AppleRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n DeviceToken: getString(description.deviceToken, \"deviceToken\"),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Apple template registration description to an object for serialization.\n */\n serializeAppleTemplateRegistrationDescription(\n description: AppleTemplateRegistrationDescription,\n ): Record<string, any> {\n let apnsHeaders: Record<string, any> | undefined;\n if (description.apnsHeaders) {\n apnsHeaders = {\n ApnsHeader: [],\n };\n\n for (const header of Object.keys(description.apnsHeaders)) {\n apnsHeaders[\"ApnsHeader\"].push({\n Header: header,\n Value: description.apnsHeaders[header],\n });\n }\n }\n\n return {\n ...this.serializeAppleRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n Expiry: getStringOrUndefined(description.expiry),\n ApnsHeaders: apnsHeaders,\n };\n },\n\n /**\n * @internal\n * Serializes an existing Baidu registration description to an object for serialization.\n */\n serializeBaiduRegistrationDescription(\n description: Omit<BaiduRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n BaiduChannelId: getString(description.baiduChannelId, \"baiduChannelId\"),\n BaiduUserId: getString(description.baiduUserId, \"baiduUserId\"),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Baidu template registration description to an object for serialization.\n */\n serializeBaiduTemplateRegistrationDescription(\n description: Omit<BaiduTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeBaiduRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Browser registration description to an object for serialization.\n */\n serializeBrowserRegistrationDescription(\n description: Omit<BrowserRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n Endpoint: description.endpoint,\n Auth: description.auth,\n P256DH: description.p256dh,\n };\n },\n\n /**\n * @internal\n * Serializes an existing Browser template registration description to an object for serialization.\n */\n serializeBrowserTemplateRegistrationDescription(\n description: Omit<BrowserTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeBrowserRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * @deprecated Should use FCM registrations instead of GCM.\n * Serializes an existing GCM registration description to an object for serialization.\n */\n serializeGcmRegistrationDescription(\n description: Omit<GcmRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n GcmRegistrationId: getString(description.gcmRegistrationId, \"gcmRegistrationId\"),\n };\n },\n\n /**\n * @internal\n * @deprecated Should use FCM template registrations instead of GCM.\n * Serializes an existing GCM template registration description to an object for serialization.\n */\n serializeGcmTemplateRegistrationDescription(\n description: Omit<GcmTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeGcmRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * @deprecated Windows Phone is no longer supported.\n * Serializes an existing MPNS registration description to an object for serialization.\n */\n serializeMpnsRegistrationDescription(\n description: Omit<MpnsRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n ChannelUri: description.channelUri,\n };\n },\n\n /**\n * @internal\n * @deprecated Windows Phone is no longer supported.\n * Serializes an existing MPNS template registration description to an object for serialization.\n */\n serializeMpnsTemplateRegistrationDescription(\n description: Omit<MpnsTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n let mpnsHeaders: Record<string, any> | undefined;\n if (description.mpnsHeaders) {\n mpnsHeaders = {\n MpnsHeader: [],\n };\n\n for (const header of Object.keys(description.mpnsHeaders)) {\n mpnsHeaders[\"MpnsHeader\"].push({\n Header: header,\n Value: description.mpnsHeaders[header],\n });\n }\n }\n\n return {\n ...this.serializeMpnsRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n MpnsHeaders: mpnsHeaders,\n };\n },\n\n /**\n * @internal\n * Serializes an existing Xiaomi registration description to an object for serialization.\n */\n serializeXiaomiRegistrationDescription(\n description: Omit<XiaomiRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n XiaomiRegistrationId: getString(description.xiaomiRegistrationId, \"xiaomiRegistrationId\"),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Xiaomi template registration description to an object for serialization.\n */\n serializeXiaomiTemplateRegistrationDescription(\n description: Omit<XiaomiTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeXiaomiRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Windows registration description to an object for serialization.\n */\n serializeWindowsRegistrationDescription(\n description: Omit<WindowsRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n ChannelUri: description.channelUri,\n };\n },\n\n /**\n * @internal\n * Serializes an existing Windows template registration description to an object for serialization.\n */\n serializeWindowsTemplateRegistrationDescription(\n description: Omit<WindowsTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n let wnsHeaders: Record<string, any> | undefined;\n if (description.wnsHeaders) {\n wnsHeaders = {\n WnsHeader: [],\n };\n\n for (const header of Object.keys(description.wnsHeaders)) {\n wnsHeaders[\"WnsHeader\"].push({\n Header: header,\n Value: description.wnsHeaders[header],\n });\n }\n }\n\n return {\n ...this.serializeWindowsRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n WnsHeaders: wnsHeaders,\n };\n },\n};\n\nfunction serializeRegistrationDescription(\n description: Omit<RegistrationDescriptionCommon, \"kind\">,\n): Record<string, any> {\n let tags: string | undefined;\n if (description.tags) {\n tags = description.tags.join(\",\");\n }\n\n let pushVariables: string | undefined;\n if (description.pushVariables) {\n pushVariables = JSON.stringify(description.pushVariables);\n }\n\n return {\n RegistrationId: getStringOrUndefined(description.registrationId),\n Tags: tags,\n PushVariables: pushVariables,\n };\n}\n\nfunction serializeTemplateRegistrationDescription(\n description: TemplateRegistrationDescription,\n): Record<string, any> {\n return {\n BodyTemplate: { __cdata: description.bodyTemplate },\n TemplateName: getStringOrUndefined(description.templateName),\n };\n}\n"]}
|
|
1
|
+
{"version":3,"file":"registrationSerializer.js","sourceRoot":"","sources":["../../../src/serializers/registrationSerializer.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAuBlC,OAAO,EACL,kBAAkB,EAClB,SAAS,EACT,oBAAoB,EACpB,kBAAkB,EAClB,SAAS,GACV,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AACtD,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAkIjE,MAAM,CAAC,MAAM,6BAA6B,GAAkC;IAC1E;;;OAGG;IACH,KAAK,CAAC,sBAAsB,CAAC,QAAgB;QAC3C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,OAAO,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAC9B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC3C,MAAM,UAAU,GAAG,SAAS,OAAO,EAAE,CAAC;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAiD,CAAQ,CAAC;QAC9E,IAAI,CAAC,UAAU,EAAE;YACf,MAAM,IAAI,SAAS,CAAC,GAAG,OAAO,uCAAuC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;SAC7F;QAED,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAA4B,CAAC;IAC/D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,qBAAqB,CAAC,QAAgB;QAC1C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC;QAC5D,MAAM,OAAO,GAA8B,EAAE,CAAC;QAC9C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;YAC9B,OAAO,OAAO,CAAC;SAChB;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElF,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE;YAC3B,OAAO,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAE1B,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,MAAM,UAAU,GAAG,SAAS,OAAO,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAiD,CAAQ,CAAC;YAC9E,IAAI,CAAC,UAAU,EAAE;gBACf,MAAM,IAAI,SAAS,CAAC,GAAG,OAAO,uCAAuC,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;aAC7F;YAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAA4B,CAAC,CAAC;SACrE;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACH,gCAAgC,CAC9B,0BAA+C;QAE/C,qCACE,iBAAiB,EAAE,SAAS,CAC1B,0BAA0B,CAAC,mBAAmB,CAAC,EAC/C,mBAAmB,CACpB,IACE,6BAA6B,CAAC,0BAA0B,CAAC,KAC5D,IAAI,EAAE,KAAK,IACX;IACJ,CAAC;IAED;;;OAGG;IACH,wCAAwC,CACtC,0BAA+C;QAE/C,qDACK,IAAI,CAAC,gCAAgC,CAAC,0BAA0B,CAAC,GACjE,qCAAqC,CAAC,0BAA0B,CAAC,KACpE,IAAI,EAAE,aAAa,IACnB;IACJ,CAAC;IAED;;;OAGG;IACH,kCAAkC,CAChC,0BAA+C;QAE/C,qCACE,WAAW,EAAE,SAAS,CAAC,0BAA0B,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,IAC7E,6BAA6B,CAAC,0BAA0B,CAAC,KAC5D,IAAI,EAAE,OAAO,IACb;IACJ,CAAC;IAED;;;OAGG;IACH,0CAA0C,CACxC,0BAA+C;;QAE/C,mDACE,QAAQ,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAe,EACpF,WAAW,EAAE,qBAAqB,CAAC,MAAA,0BAA0B,CAAC,aAAa,CAAC,0CAAG,YAAY,CAAC,CAAC,IAC1F,IAAI,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,GACnE,qCAAqC,CAAC,0BAA0B,CAAC,KACpE,IAAI,EAAE,eAAe,IACrB;IACJ,CAAC;IAED;;;OAGG;IACH,kCAAkC,CAChC,0BAA+C;QAE/C,qCACE,cAAc,EAAE,SAAS,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC,EACzF,WAAW,EAAE,SAAS,CAAC,0BAA0B,CAAC,aAAa,CAAC,EAAE,aAAa,CAAC,IAC7E,6BAA6B,CAAC,0BAA0B,CAAC,KAC5D,IAAI,EAAE,OAAO,IACb;IACJ,CAAC;IAED;;;OAGG;IACH,0CAA0C,CACxC,0BAA+C;QAE/C,qDACK,IAAI,CAAC,kCAAkC,CAAC,0BAA0B,CAAC,GACnE,qCAAqC,CAAC,0BAA0B,CAAC,KACpE,IAAI,EAAE,eAAe,IACrB;IACJ,CAAC;IAED;;;OAGG;IACH,oCAAoC,CAClC,0BAA+C;QAE/C,qCACE,QAAQ,EAAE,SAAS,CAAC,0BAA0B,CAAC,UAAU,CAAC,EAAE,UAAU,CAAC,EACvE,MAAM,EAAE,SAAS,CAAC,0BAA0B,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,EACjE,IAAI,EAAE,SAAS,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC,IACxD,6BAA6B,CAAC,0BAA0B,CAAC,KAC5D,IAAI,EAAE,SAAS,IACf;IACJ,CAAC;IAED;;;OAGG;IACH,4CAA4C,CAC1C,0BAA+C;QAE/C,qDACK,IAAI,CAAC,oCAAoC,CAAC,0BAA0B,CAAC,GACrE,qCAAqC,CAAC,0BAA0B,CAAC,KACpE,IAAI,EAAE,iBAAiB,IACvB;IACJ,CAAC;IAED;;;OAGG;IACH,gCAAgC,CAC9B,0BAA+C;QAE/C,qCACE,iBAAiB,EAAE,SAAS,CAC1B,0BAA0B,CAAC,mBAAmB,CAAC,EAC/C,mBAAmB,CACpB,IACE,6BAA6B,CAAC,0BAA0B,CAAC,KAC5D,IAAI,EAAE,KAAK,IACX;IACJ,CAAC;IAED;;;OAGG;IACH,wCAAwC,CACtC,0BAA+C;QAE/C,qDACK,IAAI,CAAC,gCAAgC,CAAC,0BAA0B,CAAC,GACjE,qCAAqC,CAAC,0BAA0B,CAAC,KACpE,IAAI,EAAE,aAAa,IACnB;IACJ,CAAC;IAED;;;OAGG;IACH,iCAAiC,CAC/B,0BAA+C;QAE/C,qCACE,UAAU,EAAE,SAAS,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,IAC1E,6BAA6B,CAAC,0BAA0B,CAAC,KAC5D,IAAI,EAAE,MAAM,IACZ;IACJ,CAAC;IAED;;;OAGG;IACH,yCAAyC,CACvC,0BAA+C;;QAE/C,mDACE,WAAW,EAAE,qBAAqB,CAAC,MAAA,0BAA0B,CAAC,aAAa,CAAC,0CAAG,YAAY,CAAC,CAAC,IAC1F,IAAI,CAAC,oCAAoC,CAAC,0BAA0B,CAAC,GACrE,qCAAqC,CAAC,0BAA0B,CAAC,KACpE,IAAI,EAAE,cAAc,IACpB;IACJ,CAAC;IAED;;;OAGG;IACH,mCAAmC,CACjC,0BAA+C;QAE/C,qCACE,oBAAoB,EAAE,SAAS,CAC7B,0BAA0B,CAAC,sBAAsB,CAAC,EAClD,sBAAsB,CACvB,IACE,6BAA6B,CAAC,0BAA0B,CAAC,KAC5D,IAAI,EAAE,QAAQ,IACd;IACJ,CAAC;IAED;;;OAGG;IACH,2CAA2C,CACzC,0BAA+C;QAE/C,qDACK,IAAI,CAAC,mCAAmC,CAAC,0BAA0B,CAAC,GACpE,qCAAqC,CAAC,0BAA0B,CAAC,KACpE,IAAI,EAAE,gBAAgB,IACtB;IACJ,CAAC;IAED;;;OAGG;IACH,oCAAoC,CAClC,0BAA+C;QAE/C,qCACE,UAAU,EAAE,SAAS,CAAC,0BAA0B,CAAC,YAAY,CAAC,EAAE,YAAY,CAAC,IAC1E,6BAA6B,CAAC,0BAA0B,CAAC,KAC5D,IAAI,EAAE,SAAS,IACf;IACJ,CAAC;IAED;;;OAGG;IACH,4CAA4C,CAC1C,0BAA+C;;QAE/C,mDACE,UAAU,EAAE,qBAAqB,CAAC,MAAA,0BAA0B,CAAC,YAAY,CAAC,0CAAG,WAAW,CAAC,CAAC,IACvF,IAAI,CAAC,oCAAoC,CAAC,0BAA0B,CAAC,GACrE,qCAAqC,CAAC,0BAA0B,CAAC,KACpE,IAAI,EAAE,iBAAiB,IACvB;IACJ,CAAC;CACF,CAAC;AAEF,SAAS,qBAAqB,CAC5B,KAA2C;IAE3C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE;QACrB,OAAO,SAAS,CAAC;KAClB;IAED,MAAM,SAAS,GAA2B,EAAE,CAAC;IAC7C,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,KAAK,EAAE;QACrC,SAAS,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC;KAC3B;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,SAAS,6BAA6B,CACpC,0BAA+C;IAE/C,IAAI,aAAiD,CAAC;IACtD,MAAM,QAAQ,GAAG,oBAAoB,CAAC,0BAA0B,CAAC,eAAe,CAAC,CAAC,CAAC;IACnF,IAAI,QAAQ,EAAE;QACZ,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAA2B,CAAC;KAChE;IAED,OAAO;QACL,cAAc,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QAClF,cAAc,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;QAChF,IAAI,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC9D,IAAI,EAAE,kBAAkB,CAAC,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC5D,aAAa,EAAE,aAAa;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,qCAAqC,CAC5C,0BAA+C;IAE/C,uBACE,YAAY,EAAE,SAAS,CAAC,0BAA0B,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC,EACnF,YAAY,EAAE,oBAAoB,CAAC,0BAA0B,CAAC,cAAc,CAAC,CAAC,IAC3E,6BAA6B,CAAC,0BAA0B,CAAC,EAC5D;AACJ,CAAC;AA8HD;;GAEG;AACH,MAAM,CAAC,MAAM,iCAAiC,GAAsC;IAClF,gCAAgC,CAAC,WAAoC;QACnE,MAAM,QAAQ,GAAG,GAAG,WAAW,CAAC,IAAI,yBAAyB,CAAC;QAC9D,MAAM,UAAU,GAAG,YAAY,QAAQ,EAAE,CAAC;QAE1C,MAAM,MAAM,GAAG,IAAI,CAAC,UAAqD,CAAC,CAAC,IAAI,CAAC,IAAI,CAE5D,CAAC;QACzB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,EAAE;YACtB,MAAM,IAAI,SAAS,CAAC,sBAAsB,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC,CAAC;SACpF;QAED,MAAM,YAAY,GAAG,MAAM,CAAC,WAAW,CAAwB,CAAC;QAChE,MAAM,aAAa,GAAG,yBAAyB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAExE,OAAO,YAAY,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;IAC5D,CAAC;IAED;;;OAGG;IACH,mCAAmC,CACjC,WAAqD;QAErD,uCACK,gCAAgC,CAAC,WAAW,CAAC,KAChD,iBAAiB,EAAE,SAAS,CAAC,WAAW,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,IAChF;IACJ,CAAC;IAED;;;OAGG;IACH,2CAA2C,CACzC,WAA6D;QAE7D,uCACK,IAAI,CAAC,mCAAmC,CAAC,WAAW,CAAC,GACrD,wCAAwC,CAAC,WAAW,CAAC,EACxD;IACJ,CAAC;IAED;;;OAGG;IACH,qCAAqC,CACnC,WAAuD;QAEvD,uCACK,gCAAgC,CAAC,WAAW,CAAC,KAChD,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,IAC9D;IACJ,CAAC;IAED;;;OAGG;IACH,6CAA6C,CAC3C,WAAiD;QAEjD,IAAI,WAA4C,CAAC;QACjD,IAAI,WAAW,CAAC,WAAW,EAAE;YAC3B,WAAW,GAAG;gBACZ,UAAU,EAAE,EAAE;aACf,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;gBACzD,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;oBAC7B,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;iBACvC,CAAC,CAAC;aACJ;SACF;QAED,qDACK,IAAI,CAAC,qCAAqC,CAAC,WAAW,CAAC,GACvD,wCAAwC,CAAC,WAAW,CAAC,KACxD,MAAM,EAAE,oBAAoB,CAAC,WAAW,CAAC,MAAM,CAAC,EAChD,WAAW,EAAE,WAAW,IACxB;IACJ,CAAC;IAED;;;OAGG;IACH,qCAAqC,CACnC,WAAuD;QAEvD,uCACK,gCAAgC,CAAC,WAAW,CAAC,KAChD,cAAc,EAAE,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE,gBAAgB,CAAC,EACvE,WAAW,EAAE,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,aAAa,CAAC,IAC9D;IACJ,CAAC;IAED;;;OAGG;IACH,6CAA6C,CAC3C,WAA+D;QAE/D,uCACK,IAAI,CAAC,qCAAqC,CAAC,WAAW,CAAC,GACvD,wCAAwC,CAAC,WAAW,CAAC,EACxD;IACJ,CAAC;IAED;;;OAGG;IACH,uCAAuC,CACrC,WAAyD;QAEzD,uCACK,gCAAgC,CAAC,WAAW,CAAC,KAChD,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAC9B,IAAI,EAAE,WAAW,CAAC,IAAI,EACtB,MAAM,EAAE,WAAW,CAAC,MAAM,IAC1B;IACJ,CAAC;IAED;;;OAGG;IACH,+CAA+C,CAC7C,WAAiE;QAEjE,uCACK,IAAI,CAAC,uCAAuC,CAAC,WAAW,CAAC,GACzD,wCAAwC,CAAC,WAAW,CAAC,EACxD;IACJ,CAAC;IAED;;;;OAIG;IACH,mCAAmC,CACjC,WAAqD;QAErD,uCACK,gCAAgC,CAAC,WAAW,CAAC,KAChD,iBAAiB,EAAE,SAAS,CAAC,WAAW,CAAC,iBAAiB,EAAE,mBAAmB,CAAC,IAChF;IACJ,CAAC;IAED;;;;OAIG;IACH,2CAA2C,CACzC,WAA6D;QAE7D,uCACK,IAAI,CAAC,mCAAmC,CAAC,WAAW,CAAC,GACrD,wCAAwC,CAAC,WAAW,CAAC,EACxD;IACJ,CAAC;IAED;;;;OAIG;IACH,oCAAoC,CAClC,WAAsD;QAEtD,uCACK,gCAAgC,CAAC,WAAW,CAAC,KAChD,UAAU,EAAE,WAAW,CAAC,UAAU,IAClC;IACJ,CAAC;IAED;;;;OAIG;IACH,4CAA4C,CAC1C,WAA8D;QAE9D,IAAI,WAA4C,CAAC;QACjD,IAAI,WAAW,CAAC,WAAW,EAAE;YAC3B,WAAW,GAAG;gBACZ,UAAU,EAAE,EAAE;aACf,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,EAAE;gBACzD,WAAW,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC;oBAC7B,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC;iBACvC,CAAC,CAAC;aACJ;SACF;QAED,qDACK,IAAI,CAAC,oCAAoC,CAAC,WAAW,CAAC,GACtD,wCAAwC,CAAC,WAAW,CAAC,KACxD,WAAW,EAAE,WAAW,IACxB;IACJ,CAAC;IAED;;;OAGG;IACH,sCAAsC,CACpC,WAAwD;QAExD,uCACK,gCAAgC,CAAC,WAAW,CAAC,KAChD,oBAAoB,EAAE,SAAS,CAAC,WAAW,CAAC,oBAAoB,EAAE,sBAAsB,CAAC,IACzF;IACJ,CAAC;IAED;;;OAGG;IACH,8CAA8C,CAC5C,WAAgE;QAEhE,uCACK,IAAI,CAAC,sCAAsC,CAAC,WAAW,CAAC,GACxD,wCAAwC,CAAC,WAAW,CAAC,EACxD;IACJ,CAAC;IAED;;;OAGG;IACH,uCAAuC,CACrC,WAAyD;QAEzD,uCACK,gCAAgC,CAAC,WAAW,CAAC,KAChD,UAAU,EAAE,WAAW,CAAC,UAAU,IAClC;IACJ,CAAC;IAED;;;OAGG;IACH,+CAA+C,CAC7C,WAAiE;QAEjE,IAAI,UAA2C,CAAC;QAChD,IAAI,WAAW,CAAC,UAAU,EAAE;YAC1B,UAAU,GAAG;gBACX,SAAS,EAAE,EAAE;aACd,CAAC;YAEF,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;gBACxD,UAAU,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC;oBAC3B,MAAM,EAAE,MAAM;oBACd,KAAK,EAAE,WAAW,CAAC,UAAU,CAAC,MAAM,CAAC;iBACtC,CAAC,CAAC;aACJ;SACF;QAED,qDACK,IAAI,CAAC,uCAAuC,CAAC,WAAW,CAAC,GACzD,wCAAwC,CAAC,WAAW,CAAC,KACxD,UAAU,EAAE,UAAU,IACtB;IACJ,CAAC;CACF,CAAC;AAEF,SAAS,gCAAgC,CACvC,WAAwD;IAExD,IAAI,IAAwB,CAAC;IAC7B,IAAI,WAAW,CAAC,IAAI,EAAE;QACpB,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACnC;IAED,IAAI,aAAiC,CAAC;IACtC,IAAI,WAAW,CAAC,aAAa,EAAE;QAC7B,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;KAC3D;IAED,OAAO;QACL,cAAc,EAAE,oBAAoB,CAAC,WAAW,CAAC,cAAc,CAAC;QAChE,IAAI,EAAE,IAAI;QACV,aAAa,EAAE,aAAa;KAC7B,CAAC;AACJ,CAAC;AAED,SAAS,wCAAwC,CAC/C,WAA4C;IAE5C,OAAO;QACL,YAAY,EAAE,EAAE,OAAO,EAAE,WAAW,CAAC,YAAY,EAAE;QACnD,YAAY,EAAE,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC;KAC7D,CAAC;AACJ,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n AdmRegistrationDescription,\n AdmTemplateRegistrationDescription,\n AppleRegistrationDescription,\n AppleTemplateRegistrationDescription,\n BaiduRegistrationDescription,\n BaiduTemplateRegistrationDescription,\n BrowserRegistrationDescription,\n BrowserTemplateRegistrationDescription,\n GcmRegistrationDescription,\n GcmTemplateRegistrationDescription,\n MpnsRegistrationDescription,\n MpnsTemplateRegistrationDescription,\n RegistrationDescription,\n RegistrationDescriptionCommon,\n TemplateRegistrationDescription,\n XiaomiRegistrationDescription,\n XiaomiTemplateRegistrationDescription,\n WindowsRegistrationDescription,\n WindowsTemplateRegistrationDescription,\n} from \"../models/registration.js\";\nimport {\n getDateOrUndefined,\n getString,\n getStringOrUndefined,\n getTagsOrUndefined,\n isDefined,\n} from \"../utils/utils.js\";\nimport { parseXML, stringifyXML } from \"@azure/core-xml\";\nimport { RestError } from \"@azure/core-rest-pipeline\";\nimport { serializeToAtomXmlRequest } from \"../utils/xmlUtils.js\";\n\n/**\n * Represents a registration description parser from the incoming XML.\n */\nexport interface RegistrationDescriptionParser {\n /**\n * @internal\n * Creates a registration type from the incoming entry.\n */\n parseRegistrationEntry: (bodyText: string) => Promise<RegistrationDescription>;\n /**\n * @internal\n * Creates a list of registrations from an incoming ATOM XML Feed.\n */\n parseRegistrationFeed: (bodyText: string) => Promise<RegistrationDescription[]>;\n /**\n * @internal\n * Creates an Amazon Device Messaging (ADM) registration description from the incoming parsed XML.\n */\n createAdmRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => AdmRegistrationDescription;\n /**\n * @internal\n * Creates an Amazon Device Messaging (ADM) template registration description from the incoming parsed XML.\n */\n createAdmTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => AdmTemplateRegistrationDescription;\n /**\n * @internal\n * Creates an Apple Platform Notification Services (APNs) registration description from the incoming parsed XML.\n */\n createAppleRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => AppleRegistrationDescription;\n /**\n * @internal\n * Creates an Apple Platform Notification Services (APNs) template registration description from the incoming parsed XML.\n */\n createAppleTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => AppleTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Baidu registration description from the incoming parsed XML.\n */\n createBaiduRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => BaiduRegistrationDescription;\n /**\n * @internal\n * Creates a Baidu template registration description from the incoming parsed XML.\n */\n createBaiduTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => BaiduTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Web Push registration description from the incoming parsed XML.\n */\n createBrowserRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => BrowserRegistrationDescription;\n /**\n * @internal\n * Creates a Web Push template registration description from the incoming parsed XML.\n */\n createBrowserTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => BrowserTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Google Cloud Messaging (GCM) registration description from the incoming parsed XML.\n */\n createGcmRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => GcmRegistrationDescription;\n /**\n * @internal\n * Creates a Google Cloud Messaging (GCM) template registration description from the incoming parsed XML.\n */\n createGcmTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => GcmTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Microsoft Phone Notification Services (MPNS) registration description from the incoming parsed XML.\n */\n createMpnsRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => MpnsRegistrationDescription;\n /**\n * @internal\n * Creates a Microsoft Phone Notification Services (MPNS) template registration description from the incoming parsed XML.\n */\n createMpnsTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => MpnsTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Xiaomi registration description from the incoming parsed XML.\n */\n createXiaomiRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => XiaomiRegistrationDescription;\n /**\n * @internal\n * Creates a Xiaomi template registration description from the incoming parsed XML.\n */\n createXiaomiTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => XiaomiTemplateRegistrationDescription;\n /**\n * @internal\n * Creates a Windows Notification Services (WNS) registration description from the incoming parsed XML.\n */\n createWindowsRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => WindowsRegistrationDescription;\n /**\n * @internal\n * Creates a Windows Notification Services (WNS) template registration description from the incoming parsed XML.\n */\n createWindowsTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>,\n ) => WindowsTemplateRegistrationDescription;\n}\n\nexport const registrationDescriptionParser: RegistrationDescriptionParser = {\n /**\n * @internal\n * Creates a registration type from the incoming entry.\n */\n async parseRegistrationEntry(bodyText: string): Promise<RegistrationDescription> {\n const xml = await parseXML(bodyText, { includeRoot: true });\n delete xml.entry.content[\"$\"];\n const keyName = Object.keys(xml.entry.content)[0];\n const content = xml.entry.content[keyName];\n const methodName = `create${keyName}`;\n\n const method = this[methodName as keyof RegistrationDescriptionParser] as any;\n if (!methodName) {\n throw new RestError(`${keyName} is not a supported registration type`, { statusCode: 500 });\n }\n\n return method.call(this, content) as RegistrationDescription;\n },\n\n /**\n * @internal\n * Creates a list of registrations from an incoming ATOM XML Feed.\n */\n async parseRegistrationFeed(bodyText: string): Promise<RegistrationDescription[]> {\n const xml = await parseXML(bodyText, { includeRoot: true });\n const results: RegistrationDescription[] = [];\n if (!isDefined(xml.feed.entry)) {\n return results;\n }\n\n const entries = Array.isArray(xml.feed.entry) ? xml.feed.entry : [xml.feed.entry];\n\n for (const entry of entries) {\n delete entry.content[\"$\"];\n\n const keyName = Object.keys(entry.content)[0];\n const methodName = `create${keyName}`;\n const content = entry.content[keyName];\n const method = this[methodName as keyof RegistrationDescriptionParser] as any;\n if (!methodName) {\n throw new RestError(`${keyName} is not a supported registration type`, { statusCode: 500 });\n }\n\n results.push(method.call(this, content) as RegistrationDescription);\n }\n\n return results;\n },\n\n /**\n * @internal\n * Creates an ADM registration description from incoming XML property bag.\n */\n createAdmRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): AdmRegistrationDescription {\n return {\n admRegistrationId: getString(\n rawRegistrationDescription[\"AdmRegistrationId\"],\n \"admRegistrationId\",\n ),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Adm\",\n };\n },\n\n /**\n * @internal\n * Creates an ADM template registration description from incoming XML property bag.\n */\n createAdmTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): AdmTemplateRegistrationDescription {\n return {\n ...this.createAdmRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"AdmTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates an Apple registration description from incoming XML property bag.\n */\n createAppleRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): AppleRegistrationDescription {\n return {\n deviceToken: getString(rawRegistrationDescription[\"DeviceToken\"], \"deviceToken\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Apple\",\n };\n },\n\n /**\n * @internal\n * Creates an Apple template registration description from incoming XML property bag.\n */\n createAppleTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): AppleTemplateRegistrationDescription {\n return {\n priority: getStringOrUndefined(rawRegistrationDescription[\"Priority\"]) as \"10\" | \"5\",\n apnsHeaders: getHeadersOrUndefined(rawRegistrationDescription[\"ApnsHeaders\"]?.[\"ApnsHeader\"]),\n ...this.createAppleRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"AppleTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Baidu registration description from incoming XML property bag.\n */\n createBaiduRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): BaiduRegistrationDescription {\n return {\n baiduChannelId: getString(rawRegistrationDescription[\"BaiduChannelId\"], \"baiduChannelId\"),\n baiduUserId: getString(rawRegistrationDescription[\"BaiduUserId\"], \"baiduUserId\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Baidu\",\n };\n },\n\n /**\n * @internal\n * Creates a Baidu template registration description from incoming XML property bag.\n */\n createBaiduTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): BaiduTemplateRegistrationDescription {\n return {\n ...this.createBaiduRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"BaiduTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Browser registration description from incoming XML property bag.\n */\n createBrowserRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): BrowserRegistrationDescription {\n return {\n endpoint: getString(rawRegistrationDescription[\"Endpoint\"], \"endpoint\"),\n p256dh: getString(rawRegistrationDescription[\"P256DH\"], \"p256dh\"),\n auth: getString(rawRegistrationDescription[\"Auth\"], \"auth\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Browser\",\n };\n },\n\n /**\n * @internal\n * Creates a Browser template registration description from incoming XML property bag.\n */\n createBrowserTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): BrowserTemplateRegistrationDescription {\n return {\n ...this.createBrowserRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"BrowserTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates an GCM registration description from incoming XML property bag.\n */\n createGcmRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): GcmRegistrationDescription {\n return {\n gcmRegistrationId: getString(\n rawRegistrationDescription[\"GcmRegistrationId\"],\n \"gcmRegistrationId\",\n ),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Gcm\",\n };\n },\n\n /**\n * @internal\n * Creates an FCM template registration description from incoming XML property bag.\n */\n createGcmTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): GcmTemplateRegistrationDescription {\n return {\n ...this.createGcmRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"GcmTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Windows Phone registration description from incoming XML property bag.\n */\n createMpnsRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): MpnsRegistrationDescription {\n return {\n channelUri: getString(rawRegistrationDescription[\"ChannelUri\"], \"channelUri\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Mpns\",\n };\n },\n\n /**\n * @internal\n * Creates a Windows Phone template registration description from incoming XML property bag.\n */\n createMpnsTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): MpnsTemplateRegistrationDescription {\n return {\n mpnsHeaders: getHeadersOrUndefined(rawRegistrationDescription[\"MpnsHeaders\"]?.[\"MpnsHeader\"]),\n ...this.createWindowsRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"MpnsTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Xiaomi registration description from incoming XML property bag.\n */\n createXiaomiRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): XiaomiRegistrationDescription {\n return {\n xiaomiRegistrationId: getString(\n rawRegistrationDescription[\"XiaomiRegistrationId\"],\n \"xiaomiRegistrationId\",\n ),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Xiaomi\",\n };\n },\n\n /**\n * @internal\n * Creates a Xiaomi template registration description from incoming XML property bag.\n */\n createXiaomiTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): XiaomiTemplateRegistrationDescription {\n return {\n ...this.createXiaomiRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"XiaomiTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates a Windows registration description from incoming XML property bag.\n */\n createWindowsRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): WindowsRegistrationDescription {\n return {\n channelUri: getString(rawRegistrationDescription[\"ChannelUri\"], \"channelUri\"),\n ...createRegistrationDescription(rawRegistrationDescription),\n kind: \"Windows\",\n };\n },\n\n /**\n * @internal\n * Creates a Windows template registration description from incoming XML property bag.\n */\n createWindowsTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n ): WindowsTemplateRegistrationDescription {\n return {\n wnsHeaders: getHeadersOrUndefined(rawRegistrationDescription[\"WnsHeaders\"]?.[\"WnsHeader\"]),\n ...this.createWindowsRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n kind: \"WindowsTemplate\",\n };\n },\n};\n\nfunction getHeadersOrUndefined(\n value?: { Header: string; Value: string }[],\n): Record<string, string> | undefined {\n if (!isDefined(value)) {\n return undefined;\n }\n\n const headerObj: Record<string, string> = {};\n for (const { Header, Value } of value) {\n headerObj[Header] = Value;\n }\n\n return headerObj;\n}\n\nfunction createRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n): Omit<RegistrationDescriptionCommon, \"kind\"> {\n let pushVariables: Record<string, string> | undefined;\n const unparsed = getStringOrUndefined(rawRegistrationDescription[\"PushVariables\"]);\n if (unparsed) {\n pushVariables = JSON.parse(unparsed) as Record<string, string>;\n }\n\n return {\n registrationId: getStringOrUndefined(rawRegistrationDescription[\"RegistrationId\"]),\n expirationTime: getDateOrUndefined(rawRegistrationDescription[\"ExpirationTime\"]),\n etag: getStringOrUndefined(rawRegistrationDescription[\"ETag\"]),\n tags: getTagsOrUndefined(rawRegistrationDescription[\"Tags\"]),\n pushVariables: pushVariables,\n };\n}\n\nfunction createTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>,\n): TemplateRegistrationDescription {\n return {\n bodyTemplate: getString(rawRegistrationDescription[\"BodyTemplate\"], \"bodyTemplate\"),\n templateName: getStringOrUndefined(rawRegistrationDescription[\"TemplateName\"]),\n ...createRegistrationDescription(rawRegistrationDescription),\n };\n}\n\n/**\n * @internal\n * Represents a serializer for all registration descriptions.\n */\nexport interface RegistrationDescriptionSerializer {\n /**\n * @internal\n * Serializes a registration description into an ATOM XML string.\n */\n serializeRegistrationDescription(description: RegistrationDescription): string;\n /**\n * @internal\n * Serializes an Amazon Device Messaging (ADM) registration description into an XML object for serialization.\n */\n serializeAdmRegistrationDescription(\n description: Omit<AdmRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes an Amazon Device Messaging (ADM) template registration description into an XML object for serialization.\n */\n serializeAdmTemplateRegistrationDescription(\n description: Omit<AdmTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes an Apple registration description into an XML object for serialization.\n */\n serializeAppleRegistrationDescription(\n description: Omit<AppleRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes an Apple template registration description into an XML object for serialization.\n */\n serializeAppleTemplateRegistrationDescription(\n description: Omit<AppleRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Baidu registration description into an XML object for serialization.\n */\n serializeBaiduRegistrationDescription(\n description: Omit<BaiduRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Baidu template registration description into an XML object for serialization.\n */\n serializeBaiduTemplateRegistrationDescription(\n description: Omit<BaiduTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Web Push registration description into an XML object for serialization.\n */\n serializeBrowserRegistrationDescription(\n description: Omit<BrowserRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Web Push template registration description into an XML object for serialization.\n */\n serializeBrowserTemplateRegistrationDescription(\n description: Omit<BrowserTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Google Cloud Messaging (GCM) registration description into an XML object for serialization.\n */\n serializeGcmRegistrationDescription(\n description: Omit<GcmRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Google Cloud Messaging (GCM) template registration description into an XML object for serialization.\n */\n serializeGcmTemplateRegistrationDescription(\n description: Omit<GcmTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Windows Phone registration description into an XML object for serialization.\n */\n serializeMpnsRegistrationDescription(\n description: Omit<MpnsRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Windows Phone template registration description into an XML object for serialization.\n */\n serializeMpnsTemplateRegistrationDescription(\n description: Omit<MpnsTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Xiaomi registration description into an XML object for serialization.\n */\n serializeXiaomiRegistrationDescription(\n description: Omit<XiaomiRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Xiaomi template registration description into an XML object for serialization.\n */\n serializeXiaomiTemplateRegistrationDescription(\n description: Omit<XiaomiTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Windows Notification Services (WNS) registration description into an XML object for serialization.\n */\n serializeWindowsRegistrationDescription(\n description: Omit<WindowsRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Windows Notification Services (WNS) template registration description into an XML object for serialization.\n */\n serializeWindowsTemplateRegistrationDescription(\n description: Omit<WindowsTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any>;\n}\n\n/**\n * Represents a RegistrationDescription serializer.\n */\nexport const registrationDescriptionSerializer: RegistrationDescriptionSerializer = {\n serializeRegistrationDescription(description: RegistrationDescription): string {\n const rootName = `${description.kind}RegistrationDescription`;\n const methodName = `serialize${rootName}`;\n\n const method = this[methodName as keyof RegistrationDescriptionSerializer].bind(this) as (\n description: RegistrationDescription,\n ) => Record<string, any>;\n if (!isDefined(method)) {\n throw new RestError(`Undefined platform ${description.kind}`, { statusCode: 400 });\n }\n\n const registration = method(description) as Record<string, any>;\n const requestObject = serializeToAtomXmlRequest(rootName, registration);\n\n return stringifyXML(requestObject, { rootName: \"entry\" });\n },\n\n /**\n * @internal\n * Serializes an existing ADM registration description to an object for serialization.\n */\n serializeAdmRegistrationDescription(\n description: Omit<AdmRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n AdmRegistrationId: getString(description.admRegistrationId, \"admRegistrationId\"),\n };\n },\n\n /**\n * @internal\n * Serializes an existing ADM template registration description to an object for serialization.\n */\n serializeAdmTemplateRegistrationDescription(\n description: Omit<AdmTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeAdmRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Apple registration description to an object for serialization.\n */\n serializeAppleRegistrationDescription(\n description: Omit<AppleRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n DeviceToken: getString(description.deviceToken, \"deviceToken\"),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Apple template registration description to an object for serialization.\n */\n serializeAppleTemplateRegistrationDescription(\n description: AppleTemplateRegistrationDescription,\n ): Record<string, any> {\n let apnsHeaders: Record<string, any> | undefined;\n if (description.apnsHeaders) {\n apnsHeaders = {\n ApnsHeader: [],\n };\n\n for (const header of Object.keys(description.apnsHeaders)) {\n apnsHeaders[\"ApnsHeader\"].push({\n Header: header,\n Value: description.apnsHeaders[header],\n });\n }\n }\n\n return {\n ...this.serializeAppleRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n Expiry: getStringOrUndefined(description.expiry),\n ApnsHeaders: apnsHeaders,\n };\n },\n\n /**\n * @internal\n * Serializes an existing Baidu registration description to an object for serialization.\n */\n serializeBaiduRegistrationDescription(\n description: Omit<BaiduRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n BaiduChannelId: getString(description.baiduChannelId, \"baiduChannelId\"),\n BaiduUserId: getString(description.baiduUserId, \"baiduUserId\"),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Baidu template registration description to an object for serialization.\n */\n serializeBaiduTemplateRegistrationDescription(\n description: Omit<BaiduTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeBaiduRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Browser registration description to an object for serialization.\n */\n serializeBrowserRegistrationDescription(\n description: Omit<BrowserRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n Endpoint: description.endpoint,\n Auth: description.auth,\n P256DH: description.p256dh,\n };\n },\n\n /**\n * @internal\n * Serializes an existing Browser template registration description to an object for serialization.\n */\n serializeBrowserTemplateRegistrationDescription(\n description: Omit<BrowserTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeBrowserRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * @deprecated Should use FCM registrations instead of GCM.\n * Serializes an existing GCM registration description to an object for serialization.\n */\n serializeGcmRegistrationDescription(\n description: Omit<GcmRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n GcmRegistrationId: getString(description.gcmRegistrationId, \"gcmRegistrationId\"),\n };\n },\n\n /**\n * @internal\n * @deprecated Should use FCM template registrations instead of GCM.\n * Serializes an existing GCM template registration description to an object for serialization.\n */\n serializeGcmTemplateRegistrationDescription(\n description: Omit<GcmTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeGcmRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * @deprecated Windows Phone is no longer supported.\n * Serializes an existing MPNS registration description to an object for serialization.\n */\n serializeMpnsRegistrationDescription(\n description: Omit<MpnsRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n ChannelUri: description.channelUri,\n };\n },\n\n /**\n * @internal\n * @deprecated Windows Phone is no longer supported.\n * Serializes an existing MPNS template registration description to an object for serialization.\n */\n serializeMpnsTemplateRegistrationDescription(\n description: Omit<MpnsTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n let mpnsHeaders: Record<string, any> | undefined;\n if (description.mpnsHeaders) {\n mpnsHeaders = {\n MpnsHeader: [],\n };\n\n for (const header of Object.keys(description.mpnsHeaders)) {\n mpnsHeaders[\"MpnsHeader\"].push({\n Header: header,\n Value: description.mpnsHeaders[header],\n });\n }\n }\n\n return {\n ...this.serializeMpnsRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n MpnsHeaders: mpnsHeaders,\n };\n },\n\n /**\n * @internal\n * Serializes an existing Xiaomi registration description to an object for serialization.\n */\n serializeXiaomiRegistrationDescription(\n description: Omit<XiaomiRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n XiaomiRegistrationId: getString(description.xiaomiRegistrationId, \"xiaomiRegistrationId\"),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Xiaomi template registration description to an object for serialization.\n */\n serializeXiaomiTemplateRegistrationDescription(\n description: Omit<XiaomiTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...this.serializeXiaomiRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * Serializes an existing Windows registration description to an object for serialization.\n */\n serializeWindowsRegistrationDescription(\n description: Omit<WindowsRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n ChannelUri: description.channelUri,\n };\n },\n\n /**\n * @internal\n * Serializes an existing Windows template registration description to an object for serialization.\n */\n serializeWindowsTemplateRegistrationDescription(\n description: Omit<WindowsTemplateRegistrationDescription, \"kind\">,\n ): Record<string, any> {\n let wnsHeaders: Record<string, any> | undefined;\n if (description.wnsHeaders) {\n wnsHeaders = {\n WnsHeader: [],\n };\n\n for (const header of Object.keys(description.wnsHeaders)) {\n wnsHeaders[\"WnsHeader\"].push({\n Header: header,\n Value: description.wnsHeaders[header],\n });\n }\n }\n\n return {\n ...this.serializeWindowsRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n WnsHeaders: wnsHeaders,\n };\n },\n};\n\nfunction serializeRegistrationDescription(\n description: Omit<RegistrationDescriptionCommon, \"kind\">,\n): Record<string, any> {\n let tags: string | undefined;\n if (description.tags) {\n tags = description.tags.join(\",\");\n }\n\n let pushVariables: string | undefined;\n if (description.pushVariables) {\n pushVariables = JSON.stringify(description.pushVariables);\n }\n\n return {\n RegistrationId: getStringOrUndefined(description.registrationId),\n Tags: tags,\n PushVariables: pushVariables,\n };\n}\n\nfunction serializeTemplateRegistrationDescription(\n description: TemplateRegistrationDescription,\n): Record<string, any> {\n return {\n BodyTemplate: { __cdata: description.bodyTemplate },\n TemplateName: getStringOrUndefined(description.templateName),\n };\n}\n"]}
|