@azure/notification-hubs 1.0.0-beta.3 → 1.0.0-beta.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -20
- package/dist/index.cjs +128 -136
- package/dist/index.cjs.map +1 -1
- package/dist-esm/src/auth/hmacSha256.browser.js +1 -0
- package/dist-esm/src/auth/hmacSha256.browser.js.map +1 -1
- package/dist-esm/src/auth/sasTokenProvider.js +2 -23
- package/dist-esm/src/auth/sasTokenProvider.js.map +1 -1
- package/dist-esm/src/client/cancelScheduledNotification.js.map +1 -1
- package/dist-esm/src/client/createOrUpdateInstallation.js.map +1 -1
- package/dist-esm/src/client/deleteInstallation.js.map +1 -1
- package/dist-esm/src/client/deleteRegistration.js.map +1 -1
- package/dist-esm/src/client/internal/_client.js +23 -7
- package/dist-esm/src/client/internal/_client.js.map +1 -1
- package/dist-esm/src/client/internal/_scheduleNotificationPayload.js.map +1 -1
- package/dist-esm/src/client/internal/_sendNotificationPayload.js +1 -1
- package/dist-esm/src/client/internal/_sendNotificationPayload.js.map +1 -1
- package/dist-esm/src/client/scheduleBroadcastNotification.js.map +1 -1
- package/dist-esm/src/client/scheduleNotification.js.map +1 -1
- package/dist-esm/src/client/sendBroadcastNotification.js.map +1 -1
- package/dist-esm/src/client/sendDirectNotification.js +1 -2
- package/dist-esm/src/client/sendDirectNotification.js.map +1 -1
- package/dist-esm/src/client/sendNotification.js.map +1 -1
- package/dist-esm/src/client/updateInstallation.js.map +1 -1
- package/dist-esm/src/models/installation.js +1 -1
- package/dist-esm/src/models/installation.js.map +1 -1
- package/dist-esm/src/models/notification.js +1 -1
- package/dist-esm/src/models/notification.js.map +1 -1
- package/dist-esm/src/models/notificationBuilder.js +6 -6
- package/dist-esm/src/models/notificationBuilder.js.map +1 -1
- package/dist-esm/src/models/notificationDetails.js.map +1 -1
- package/dist-esm/src/models/registration.js +3 -39
- package/dist-esm/src/models/registration.js.map +1 -1
- package/dist-esm/src/models/response.js.map +1 -1
- package/dist-esm/src/notificationHubsClient.js +12 -2
- package/dist-esm/src/notificationHubsClient.js.map +1 -1
- package/dist-esm/src/serializers/notificationHubJobSerializer.js +5 -1
- package/dist-esm/src/serializers/notificationHubJobSerializer.js.map +1 -1
- package/dist-esm/src/serializers/notificationOutcomeSerializer.js +31 -0
- package/dist-esm/src/serializers/notificationOutcomeSerializer.js.map +1 -0
- package/dist-esm/src/serializers/registrationSerializer.js +5 -29
- package/dist-esm/src/serializers/registrationSerializer.js.map +1 -1
- package/dist-esm/src/utils/constants.js +1 -1
- package/dist-esm/src/utils/constants.js.map +1 -1
- package/package.json +4 -4
- package/types/3.1/notification-hubs.d.ts +68 -77
- package/types/latest/notification-hubs.d.ts +69 -83
- package/types/latest/tsdoc-metadata.json +1 -1
- package/types/src/auth/hmacSha256.browser.d.ts +1 -0
- package/types/src/auth/hmacSha256.browser.d.ts.map +1 -1
- package/types/src/auth/sasTokenProvider.d.ts +28 -8
- package/types/src/auth/sasTokenProvider.d.ts.map +1 -1
- package/types/src/client/cancelScheduledNotification.d.ts +1 -1
- package/types/src/client/cancelScheduledNotification.d.ts.map +1 -1
- package/types/src/client/createOrUpdateInstallation.d.ts +1 -1
- package/types/src/client/createOrUpdateInstallation.d.ts.map +1 -1
- package/types/src/client/deleteInstallation.d.ts +1 -1
- package/types/src/client/deleteInstallation.d.ts.map +1 -1
- package/types/src/client/deleteRegistration.d.ts +1 -1
- package/types/src/client/deleteRegistration.d.ts.map +1 -1
- package/types/src/client/index.d.ts +0 -1
- package/types/src/client/index.d.ts.map +1 -1
- package/types/src/client/internal/_client.d.ts +8 -8
- package/types/src/client/internal/_client.d.ts.map +1 -1
- package/types/src/client/internal/_scheduleNotificationPayload.d.ts +1 -1
- package/types/src/client/internal/_scheduleNotificationPayload.d.ts.map +1 -1
- package/types/src/client/internal/_sendNotificationPayload.d.ts +1 -1
- package/types/src/client/internal/_sendNotificationPayload.d.ts.map +1 -1
- package/types/src/client/scheduleBroadcastNotification.d.ts +1 -1
- package/types/src/client/scheduleBroadcastNotification.d.ts.map +1 -1
- package/types/src/client/scheduleNotification.d.ts +1 -1
- package/types/src/client/scheduleNotification.d.ts.map +1 -1
- package/types/src/client/sendBroadcastNotification.d.ts +1 -1
- package/types/src/client/sendBroadcastNotification.d.ts.map +1 -1
- package/types/src/client/sendDirectNotification.d.ts +4 -5
- package/types/src/client/sendDirectNotification.d.ts.map +1 -1
- package/types/src/client/sendNotification.d.ts +1 -1
- package/types/src/client/sendNotification.d.ts.map +1 -1
- package/types/src/client/updateInstallation.d.ts +1 -1
- package/types/src/client/updateInstallation.d.ts.map +1 -1
- package/types/src/models/installation.d.ts +3 -3
- package/types/src/models/installation.d.ts.map +1 -1
- package/types/src/models/notification.d.ts +3 -3
- package/types/src/models/notification.d.ts.map +1 -1
- package/types/src/models/notificationBuilder.d.ts +4 -4
- package/types/src/models/notificationBuilder.d.ts.map +1 -1
- package/types/src/models/notificationDetails.d.ts +63 -0
- package/types/src/models/notificationDetails.d.ts.map +1 -1
- package/types/src/models/registration.d.ts +6 -59
- package/types/src/models/registration.d.ts.map +1 -1
- package/types/src/models/response.d.ts +0 -26
- package/types/src/models/response.d.ts.map +1 -1
- package/types/src/notificationHubsClient.d.ts +12 -6
- package/types/src/notificationHubsClient.d.ts.map +1 -1
- package/types/src/serializers/notificationHubJobSerializer.d.ts.map +1 -1
- package/types/src/serializers/notificationOutcomeSerializer.d.ts +3 -0
- package/types/src/serializers/notificationOutcomeSerializer.d.ts.map +1 -0
- package/types/src/serializers/registrationSerializer.d.ts +1 -21
- package/types/src/serializers/registrationSerializer.d.ts.map +1 -1
|
@@ -27,7 +27,11 @@ export const registrationDescriptionParser = {
|
|
|
27
27
|
async parseRegistrationFeed(bodyText) {
|
|
28
28
|
const xml = await parseXML(bodyText, { includeRoot: true });
|
|
29
29
|
const results = [];
|
|
30
|
-
|
|
30
|
+
if (!isDefined(xml.feed.entry)) {
|
|
31
|
+
return results;
|
|
32
|
+
}
|
|
33
|
+
const entries = Array.isArray(xml.feed.entry) ? xml.feed.entry : [xml.feed.entry];
|
|
34
|
+
for (const entry of entries) {
|
|
31
35
|
delete entry.content["$"];
|
|
32
36
|
const keyName = Object.keys(entry.content)[0];
|
|
33
37
|
const methodName = `create${keyName}`;
|
|
@@ -111,20 +115,6 @@ export const registrationDescriptionParser = {
|
|
|
111
115
|
createGcmTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
112
116
|
return Object.assign(Object.assign(Object.assign({}, this.createGcmRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { type: "GcmTemplate" });
|
|
113
117
|
},
|
|
114
|
-
/**
|
|
115
|
-
* @internal
|
|
116
|
-
* Creates an FCM registration description from incoming XML property bag.
|
|
117
|
-
*/
|
|
118
|
-
createFcmRegistrationDescription(rawRegistrationDescription) {
|
|
119
|
-
return Object.assign(Object.assign({ fcmRegistrationId: getString(rawRegistrationDescription["FcmRegistrationId"], "fcmRegistrationId") }, createRegistrationDescription(rawRegistrationDescription)), { type: "Fcm" });
|
|
120
|
-
},
|
|
121
|
-
/**
|
|
122
|
-
* @internal
|
|
123
|
-
* Creates an FCM template registration description from incoming XML property bag.
|
|
124
|
-
*/
|
|
125
|
-
createFcmTemplateRegistrationDescription(rawRegistrationDescription) {
|
|
126
|
-
return Object.assign(Object.assign(Object.assign({}, this.createFcmRegistrationDescription(rawRegistrationDescription)), createTemplateRegistrationDescription(rawRegistrationDescription)), { type: "FcmTemplate" });
|
|
127
|
-
},
|
|
128
118
|
/**
|
|
129
119
|
* @internal
|
|
130
120
|
* Creates a Windows Phone registration description from incoming XML property bag.
|
|
@@ -282,20 +272,6 @@ export const registrationDescriptionSerializer = {
|
|
|
282
272
|
serializeGcmTemplateRegistrationDescription(description) {
|
|
283
273
|
return Object.assign(Object.assign({}, this.serializeGcmRegistrationDescription(description)), serializeTemplateRegistrationDescription(description));
|
|
284
274
|
},
|
|
285
|
-
/**
|
|
286
|
-
* @internal
|
|
287
|
-
* Serializes an existing FCM registration description to an object for serialization.
|
|
288
|
-
*/
|
|
289
|
-
serializeFcmRegistrationDescription(description) {
|
|
290
|
-
return Object.assign(Object.assign({}, serializeRegistrationDescription(description)), { FcmRegistrationId: description.fcmRegistrationId });
|
|
291
|
-
},
|
|
292
|
-
/**
|
|
293
|
-
* @internal
|
|
294
|
-
* Serializes an existing FCM template registration description to an object for serialization.
|
|
295
|
-
*/
|
|
296
|
-
serializeFcmTemplateRegistrationDescription(description) {
|
|
297
|
-
return Object.assign(Object.assign({}, this.serializeFcmRegistrationDescription(description)), serializeTemplateRegistrationDescription(description));
|
|
298
|
-
},
|
|
299
275
|
/**
|
|
300
276
|
* @internal
|
|
301
277
|
* @deprecated Windows Phone is no longer supported.
|
|
@@ -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 ApplePriority,\n AppleRegistrationDescription,\n AppleTemplateRegistrationDescription,\n BaiduRegistrationDescription,\n BaiduTemplateRegistrationDescription,\n BrowserRegistrationDescription,\n BrowserTemplateRegistrationDescription,\n FcmRegistrationDescription,\n FcmTemplateRegistrationDescription,\n GcmRegistrationDescription,\n GcmTemplateRegistrationDescription,\n MpnsRegistrationDescription,\n MpnsTemplateRegistrationDescription,\n RegistrationDescription,\n RegistrationDescriptionCommon,\n TemplateRegistrationDescription,\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 Firebase Cloud Messaging (GCM) registration description from the incoming parsed XML.\n */\n createFcmRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>\n ) => FcmRegistrationDescription;\n /**\n * @internal\n * Creates a Firebase Cloud Messaging (GCM) template registration description from the incoming parsed XML.\n */\n createFcmTemplateRegistrationDescription: (\n rawRegistrationDescription: Record<string, any>\n ) => FcmTemplateRegistrationDescription;\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 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 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 = [];\n for (const entry of xml.feed.entry) {\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 type: \"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 type: \"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 type: \"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 ApplePriority,\n apnsHeaders: getHeadersOrUndefined(rawRegistrationDescription[\"ApnsHeaders\"]?.[\"ApnsHeader\"]),\n ...this.createAppleRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n type: \"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 type: \"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 type: \"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 type: \"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 type: \"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 type: \"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 type: \"GcmTemplate\",\n };\n },\n\n /**\n * @internal\n * Creates an FCM registration description from incoming XML property bag.\n */\n createFcmRegistrationDescription(\n rawRegistrationDescription: Record<string, any>\n ): FcmRegistrationDescription {\n return {\n fcmRegistrationId: getString(\n rawRegistrationDescription[\"FcmRegistrationId\"],\n \"fcmRegistrationId\"\n ),\n ...createRegistrationDescription(rawRegistrationDescription),\n type: \"Fcm\",\n };\n },\n\n /**\n * @internal\n * Creates an FCM template registration description from incoming XML property bag.\n */\n createFcmTemplateRegistrationDescription(\n rawRegistrationDescription: Record<string, any>\n ): FcmTemplateRegistrationDescription {\n return {\n ...this.createFcmRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n type: \"FcmTemplate\",\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 type: \"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 type: \"MpnsTemplate\",\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 type: \"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 type: \"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, \"type\"> {\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Firebase registration description into an XML object for serialization.\n */\n serializeFcmRegistrationDescription(\n description: Omit<FcmRegistrationDescription, \"type\">\n ): Record<string, any>;\n /**\n * @internal\n * Serializes a Firebase template registration description into an XML object for serialization.\n */\n serializeFcmTemplateRegistrationDescription(\n description: Omit<FcmRegistrationDescription, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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.type}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.type}`, { 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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\n ): Record<string, any> {\n return {\n ...this.serializeGcmRegistrationDescription(description),\n ...serializeTemplateRegistrationDescription(description),\n };\n },\n\n /**\n * @internal\n * Serializes an existing FCM registration description to an object for serialization.\n */\n serializeFcmRegistrationDescription(\n description: Omit<FcmRegistrationDescription, \"type\">\n ): Record<string, any> {\n return {\n ...serializeRegistrationDescription(description),\n FcmRegistrationId: description.fcmRegistrationId,\n };\n },\n\n /**\n * @internal\n * Serializes an existing FCM template registration description to an object for serialization.\n */\n serializeFcmTemplateRegistrationDescription(\n description: Omit<FcmTemplateRegistrationDescription, \"type\">\n ): Record<string, any> {\n return {\n ...this.serializeFcmRegistrationDescription(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, \"type\">\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, \"type\">\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 Windows registration description to an object for serialization.\n */\n serializeWindowsRegistrationDescription(\n description: Omit<WindowsRegistrationDescription, \"type\">\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, \"type\">\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, \"type\">\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":"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","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nimport {\n AdmRegistrationDescription,\n AdmTemplateRegistrationDescription,\n ApplePriority,\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 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 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 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 type: \"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 type: \"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 type: \"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 ApplePriority,\n apnsHeaders: getHeadersOrUndefined(rawRegistrationDescription[\"ApnsHeaders\"]?.[\"ApnsHeader\"]),\n ...this.createAppleRegistrationDescription(rawRegistrationDescription),\n ...createTemplateRegistrationDescription(rawRegistrationDescription),\n type: \"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 type: \"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 type: \"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 type: \"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 type: \"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 type: \"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 type: \"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 type: \"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 type: \"MpnsTemplate\",\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 type: \"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 type: \"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, \"type\"> {\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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.type}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.type}`, { 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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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, \"type\">\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 Windows registration description to an object for serialization.\n */\n serializeWindowsRegistrationDescription(\n description: Omit<WindowsRegistrationDescription, \"type\">\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, \"type\">\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, \"type\">\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,6 +1,6 @@
|
|
|
1
1
|
// Copyright (c) Microsoft Corporation.
|
|
2
2
|
// Licensed under the MIT license.
|
|
3
|
-
export const SDK_VERSION = "1.0.0-beta.
|
|
3
|
+
export const SDK_VERSION = "1.0.0-beta.5";
|
|
4
4
|
export const JSON_CONTENT_TYPE = "application/json;charset=utf-8";
|
|
5
5
|
export const XML_CONTENT_TYPE = "application/xml";
|
|
6
6
|
export const STREAM_CONTENT_TYPE = "application/octet-stream";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,CAAC,MAAM,WAAW,GAAW,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,gCAAgC,CAAC;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE9D,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport const SDK_VERSION: string = \"1.0.0-beta.
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,uCAAuC;AACvC,kCAAkC;AAElC,MAAM,CAAC,MAAM,WAAW,GAAW,cAAc,CAAC;AAElD,MAAM,CAAC,MAAM,iBAAiB,GAAG,gCAAgC,CAAC;AAClE,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC;AAClD,MAAM,CAAC,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAE9D,MAAM,CAAC,MAAM,aAAa,GAAG,YAAY,CAAC;AAC1C,MAAM,CAAC,MAAM,OAAO,GAAG,SAAS,CAAC;AACjC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC;AACrC,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;AACpC,MAAM,CAAC,MAAM,SAAS,GAAG,WAAW,CAAC","sourcesContent":["// Copyright (c) Microsoft Corporation.\n// Licensed under the MIT license.\n\nexport const SDK_VERSION: string = \"1.0.0-beta.5\";\n\nexport const JSON_CONTENT_TYPE = \"application/json;charset=utf-8\";\nexport const XML_CONTENT_TYPE = \"application/xml\";\nexport const STREAM_CONTENT_TYPE = \"application/octet-stream\";\n\nexport const WNS_TYPE_NAME = \"X-WNS-Type\";\nexport const WNS_RAW = \"wns/raw\";\nexport const WNS_BADGE = \"wns/badge\";\nexport const WNS_TITLE = \"wns/tile\";\nexport const WNS_TOAST = \"wns/toast\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@azure/notification-hubs",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.5",
|
|
4
4
|
"description": "Azure Notification Hubs SDK for JavaScript",
|
|
5
5
|
"sdk-type": "client",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -124,24 +124,24 @@
|
|
|
124
124
|
"karma-junit-reporter": "^2.0.1",
|
|
125
125
|
"karma-mocha": "^2.0.1",
|
|
126
126
|
"karma-mocha-reporter": "^2.2.5",
|
|
127
|
+
"karma-sourcemap-loader": "^0.3.8",
|
|
127
128
|
"mocha": "^10.0.0",
|
|
128
129
|
"mocha-junit-reporter": "^2.0.2",
|
|
129
130
|
"nyc": "^15.1.0",
|
|
130
131
|
"prettier": "^2.6.2",
|
|
131
132
|
"rimraf": "^3.0.2",
|
|
132
133
|
"ts-node": "^10.8.1",
|
|
133
|
-
"typescript": "^4.
|
|
134
|
+
"typescript": "^4.8.3",
|
|
134
135
|
"util": "^0.12.4",
|
|
135
136
|
"uuid": "^8.3.2"
|
|
136
137
|
},
|
|
137
138
|
"dependencies": {
|
|
138
139
|
"@azure/abort-controller": "^1.1.0",
|
|
139
|
-
"@azure/core-auth": "^1.4.0",
|
|
140
140
|
"@azure/core-client": "^1.6.1",
|
|
141
141
|
"@azure/core-paging": "^1.3.0",
|
|
142
142
|
"@azure/core-rest-pipeline": "^1.8.1",
|
|
143
143
|
"@azure/core-tracing": "^1.0.1",
|
|
144
|
-
"@azure/core-util": "^1.
|
|
144
|
+
"@azure/core-util": "^1.1.0",
|
|
145
145
|
"@azure/core-xml": "^1.3.0",
|
|
146
146
|
"@azure/logger": "^1.0.3",
|
|
147
147
|
"tslib": "^2.4.0"
|
|
@@ -556,11 +556,11 @@ export declare function buildAppleNativeMessage(nativeMessage: AppleNativeMessag
|
|
|
556
556
|
*/
|
|
557
557
|
export declare function buildBaiduNativeMessage(nativeMessage: BaiduNativeMessage, additionalProperties?: Record<string, any>): BaiduNotification;
|
|
558
558
|
/**
|
|
559
|
-
* Creates a
|
|
559
|
+
* Creates a FcmLegacyNotification from a native Firebase payload.
|
|
560
560
|
* @param nativeMessage - The native message payload to send to Notification Hubs.
|
|
561
|
-
* @returns The
|
|
561
|
+
* @returns The FcmLegacyNotification to send to Notification Hubs.
|
|
562
562
|
*/
|
|
563
|
-
export declare function buildFirebaseLegacyNativeMessage(nativeMessage: FirebaseLegacyNativeMessage):
|
|
563
|
+
export declare function buildFirebaseLegacyNativeMessage(nativeMessage: FirebaseLegacyNativeMessage): FcmLegacyNotification;
|
|
564
564
|
/**
|
|
565
565
|
* Builds a WindowsNotification from a Windows Badge.
|
|
566
566
|
* @param nativeMessage - The Windows Badge Message to build.
|
|
@@ -663,58 +663,30 @@ export declare function createBrowserRegistrationDescription(description: Pick<B
|
|
|
663
663
|
* @returns A created Web Push template registration description.
|
|
664
664
|
*/
|
|
665
665
|
export declare function createBrowserTemplateRegistrationDescription(description: Pick<BrowserTemplateRegistrationDescription, Exclude<keyof BrowserTemplateRegistrationDescription, "type">>): BrowserTemplateRegistrationDescription;
|
|
666
|
-
/**
|
|
667
|
-
* Creates an FCM registration description.
|
|
668
|
-
* @param description - A partial FCM registration description.
|
|
669
|
-
* @returns A created FCM registration description.
|
|
670
|
-
*/
|
|
671
|
-
export declare function createFcmRegistrationDescription(description: Pick<FcmRegistrationDescription, Exclude<keyof FcmRegistrationDescription, "type">>): FcmRegistrationDescription;
|
|
672
|
-
/**
|
|
673
|
-
* Creates an FCM template registration description.
|
|
674
|
-
* @param description - A partial FCM template registration description.
|
|
675
|
-
* @returns A created FCM template registration description.
|
|
676
|
-
*/
|
|
677
|
-
export declare function createFcmTemplateRegistrationDescription(description: Pick<FcmTemplateRegistrationDescription, Exclude<keyof FcmTemplateRegistrationDescription, "type">>): FcmTemplateRegistrationDescription;
|
|
678
666
|
/**
|
|
679
667
|
* Creates a Firebase legacy HTTP based installation.
|
|
680
668
|
* @param installation - A partial installation used to create the Firebase Legacy HTTP installation.
|
|
681
669
|
* @returns The newly created Baidu installation.
|
|
682
670
|
*/
|
|
683
|
-
export declare function
|
|
671
|
+
export declare function createFcmLegacyInstallation(installation: Pick<FcmLegacyInstallation, Exclude<keyof FcmLegacyInstallation, "platform">>): FcmLegacyInstallation;
|
|
684
672
|
/**
|
|
685
673
|
* Creates a notification to send to Firebase.
|
|
686
674
|
* @param notification - A partial message used to create a message for Firebase.
|
|
687
675
|
* @returns A newly created Firebase.
|
|
688
676
|
*/
|
|
689
|
-
export declare function
|
|
677
|
+
export declare function createFcmLegacyNotification(notification: Pick<FcmLegacyNotification, Exclude<keyof FcmLegacyNotification, "platform" | "contentType">>): FcmLegacyNotification;
|
|
690
678
|
/**
|
|
691
|
-
*
|
|
692
|
-
* Creates a GCM registration description.
|
|
679
|
+
* Creates a Firebase Legacy registration description.
|
|
693
680
|
* @param description - A partial GCM registration description.
|
|
694
681
|
* @returns A created GCM registration description.
|
|
695
682
|
*/
|
|
696
|
-
export declare function
|
|
683
|
+
export declare function createFcmLegacyRegistrationDescription(description: Pick<GcmRegistrationDescription, Exclude<keyof GcmRegistrationDescription, "type">>): GcmRegistrationDescription;
|
|
697
684
|
/**
|
|
698
|
-
* @deprecated Use createFcmTemplateRegistrationDescription instead.
|
|
699
685
|
* Creates a GCM template registration description.
|
|
700
686
|
* @param description - A partial GCM template registration description.
|
|
701
687
|
* @returns A created GCM template registration description.
|
|
702
688
|
*/
|
|
703
|
-
export declare function
|
|
704
|
-
/**
|
|
705
|
-
* @deprecated Windows Phone is no longer supported.
|
|
706
|
-
* Creates an MPNS registration description.
|
|
707
|
-
* @param description - A partial MPNS registration description.
|
|
708
|
-
* @returns A created MPNS registration description.
|
|
709
|
-
*/
|
|
710
|
-
export declare function createMpnsRegistrationDescription(description: Pick<MpnsRegistrationDescription, Exclude<keyof MpnsRegistrationDescription, "type">>): MpnsRegistrationDescription;
|
|
711
|
-
/**
|
|
712
|
-
* @deprecated Windows Phone is no longer supported.
|
|
713
|
-
* Creates an MPNS template registration description.
|
|
714
|
-
* @param description - A partial MPNS template registration description.
|
|
715
|
-
* @returns A created MPNS template registration description.
|
|
716
|
-
*/
|
|
717
|
-
export declare function createMpnsTemplateRegistrationDescription(description: Pick<MpnsTemplateRegistrationDescription, Exclude<keyof MpnsTemplateRegistrationDescription, "type">>): MpnsTemplateRegistrationDescription;
|
|
689
|
+
export declare function createFcmLegacyTemplateRegistrationDescription(description: Pick<GcmTemplateRegistrationDescription, Exclude<keyof GcmTemplateRegistrationDescription, "type">>): GcmTemplateRegistrationDescription;
|
|
718
690
|
/**
|
|
719
691
|
* Creates a notification to send to Firebase.
|
|
720
692
|
* @param notification - A partial message used to create a message for Firebase.
|
|
@@ -782,26 +754,22 @@ export declare interface EntityOperationOptions extends OperationOptions {
|
|
|
782
754
|
etag?: string;
|
|
783
755
|
}
|
|
784
756
|
/**
|
|
785
|
-
* Represents
|
|
757
|
+
* Represents a Firebase Legacy HTTP installation.
|
|
786
758
|
*/
|
|
787
|
-
export declare interface
|
|
788
|
-
/**
|
|
789
|
-
* Registration id obtained from the Google Cloud Messaging service.
|
|
790
|
-
*/
|
|
791
|
-
fcmRegistrationId: string;
|
|
759
|
+
export declare interface FcmLegacyInstallation extends DeviceTokenInstallation {
|
|
792
760
|
/**
|
|
793
|
-
* The
|
|
761
|
+
* The platform for the installation.
|
|
794
762
|
*/
|
|
795
|
-
|
|
763
|
+
platform: "gcm";
|
|
796
764
|
}
|
|
797
765
|
/**
|
|
798
|
-
* Represents
|
|
766
|
+
* Represents a Firebase legacy HTTP push notification.
|
|
799
767
|
*/
|
|
800
|
-
export declare interface
|
|
768
|
+
export declare interface FcmLegacyNotification extends JsonNotification {
|
|
801
769
|
/**
|
|
802
|
-
* The
|
|
770
|
+
* The platform for the push notification.
|
|
803
771
|
*/
|
|
804
|
-
|
|
772
|
+
platform: "gcm";
|
|
805
773
|
}
|
|
806
774
|
/**
|
|
807
775
|
* Represents an Android native payload for the Firebase Legacy HTTP interface.
|
|
@@ -901,15 +869,6 @@ export declare interface FirebaseLegacyAppleNativePayload {
|
|
|
901
869
|
*/
|
|
902
870
|
titleLocArgs?: string[];
|
|
903
871
|
}
|
|
904
|
-
/**
|
|
905
|
-
* Represents a Firebase Legacy HTTP installation.
|
|
906
|
-
*/
|
|
907
|
-
export declare interface FirebaseLegacyInstallation extends DeviceTokenInstallation {
|
|
908
|
-
/**
|
|
909
|
-
* The platform for the installation.
|
|
910
|
-
*/
|
|
911
|
-
platform: "gcm";
|
|
912
|
-
}
|
|
913
872
|
/**
|
|
914
873
|
* Represents the targets, options, and payload for HTTP JSON messages for the Firebase Legacy HTTP interface.
|
|
915
874
|
*/
|
|
@@ -965,15 +924,6 @@ export declare interface FirebaseLegacyNativeMessage {
|
|
|
965
924
|
*/
|
|
966
925
|
notification?: FirebaseLegacyAppleNativePayload | FirebaseLegacyAndroidNativePayload | FirebaseLegacyWebNativePayload;
|
|
967
926
|
}
|
|
968
|
-
/**
|
|
969
|
-
* Represents a Firebase legacy HTTP push notification.
|
|
970
|
-
*/
|
|
971
|
-
export declare interface FirebaseLegacyNotification extends JsonNotification {
|
|
972
|
-
/**
|
|
973
|
-
* The platform for the push notification.
|
|
974
|
-
*/
|
|
975
|
-
platform: "gcm";
|
|
976
|
-
}
|
|
977
927
|
/**
|
|
978
928
|
* Represents an Web Push native payload for the Firebase Legacy HTTP interface.
|
|
979
929
|
*/
|
|
@@ -997,7 +947,6 @@ export declare interface FirebaseLegacyWebNativePayload {
|
|
|
997
947
|
}
|
|
998
948
|
/**
|
|
999
949
|
* Represents Notification Hub registration description for Google Cloud Messaging.
|
|
1000
|
-
* @deprecated Use FcmRegistrationDescription instead.
|
|
1001
950
|
*/
|
|
1002
951
|
export declare interface GcmRegistrationDescription extends RegistrationDescriptionCommon {
|
|
1003
952
|
/**
|
|
@@ -1010,9 +959,7 @@ export declare interface GcmRegistrationDescription extends RegistrationDescript
|
|
|
1010
959
|
type: "Gcm";
|
|
1011
960
|
}
|
|
1012
961
|
/**
|
|
1013
|
-
*
|
|
1014
|
-
* Represents Notification Hub template registration description for Google Cloud Messaging.
|
|
1015
|
-
* @deprecated Use FcmTemplateRegistrationDescription instead
|
|
962
|
+
* Represents Notification Hub template registration description for Firebase Legacy Cloud Messaging.
|
|
1016
963
|
*/
|
|
1017
964
|
export declare interface GcmTemplateRegistrationDescription extends Pick<GcmRegistrationDescription, Exclude<keyof GcmRegistrationDescription, "type">>, TemplateRegistrationDescription {
|
|
1018
965
|
/**
|
|
@@ -1023,7 +970,7 @@ export declare interface GcmTemplateRegistrationDescription extends Pick<GcmRegi
|
|
|
1023
970
|
/**
|
|
1024
971
|
* Represents the types of installations available in Notification Hubs.
|
|
1025
972
|
*/
|
|
1026
|
-
export declare type Installation = AppleInstallation | AdmInstallation | BaiduInstallation | BrowserInstallation |
|
|
973
|
+
export declare type Installation = AppleInstallation | AdmInstallation | BaiduInstallation | BrowserInstallation | FcmLegacyInstallation | WindowsInstallation;
|
|
1027
974
|
/**
|
|
1028
975
|
* Represents an installation for a device for Notification Hubs.
|
|
1029
976
|
*/
|
|
@@ -1135,7 +1082,7 @@ export declare interface MpnsTemplateRegistrationDescription extends Pick<MpnsRe
|
|
|
1135
1082
|
/**
|
|
1136
1083
|
* Represents the possible push notification messages types.
|
|
1137
1084
|
*/
|
|
1138
|
-
export declare type Notification = AppleNotification | AdmNotification | BaiduNotification | BrowserNotification |
|
|
1085
|
+
export declare type Notification = AppleNotification | AdmNotification | BaiduNotification | BrowserNotification | FcmLegacyNotification | WindowsNotification | TemplateNotification;
|
|
1139
1086
|
/**
|
|
1140
1087
|
* Represents a notification hub.
|
|
1141
1088
|
*/
|
|
@@ -1342,6 +1289,22 @@ export declare interface NotificationHubsMessageResponse extends NotificationHub
|
|
|
1342
1289
|
* The notification ID from the operation. Note this is only available in Standard SKU and above.
|
|
1343
1290
|
*/
|
|
1344
1291
|
notificationId?: string;
|
|
1292
|
+
/**
|
|
1293
|
+
* The number of devices that successfully received the notification.
|
|
1294
|
+
*/
|
|
1295
|
+
success: number;
|
|
1296
|
+
/**
|
|
1297
|
+
* The number of devices that failed to receive a notification.
|
|
1298
|
+
*/
|
|
1299
|
+
failure: number;
|
|
1300
|
+
/**
|
|
1301
|
+
* The list of notification outcome results for each device registered with the hub, to which this notification was sent.
|
|
1302
|
+
*/
|
|
1303
|
+
results: RegistrationResult[];
|
|
1304
|
+
/**
|
|
1305
|
+
* The state of this notification outcome.
|
|
1306
|
+
*/
|
|
1307
|
+
state: NotificationOutcomeState;
|
|
1345
1308
|
}
|
|
1346
1309
|
/**
|
|
1347
1310
|
* Describes a response from the Notification Hubs which includes a tracking ID, correlation ID and location.
|
|
@@ -1430,6 +1393,14 @@ export declare class NotificationHubsServiceClient {
|
|
|
1430
1393
|
* @returns The updated registration description.
|
|
1431
1394
|
*/
|
|
1432
1395
|
updateRegistration(registration: RegistrationDescription, options?: OperationOptions): Promise<RegistrationDescription>;
|
|
1396
|
+
/**
|
|
1397
|
+
* Deletes a registration with the given registration ID.
|
|
1398
|
+
* @param context - The Notification Hubs client.
|
|
1399
|
+
* @param registrationId - The registration ID of the registration to delete.
|
|
1400
|
+
* @param options - The options for delete operations including the ETag
|
|
1401
|
+
* @returns A NotificationHubResponse with the tracking ID, correlation ID and location.
|
|
1402
|
+
*/
|
|
1403
|
+
deleteRegistration(registrationId: string, options?: EntityOperationOptions): Promise<NotificationHubsResponse>;
|
|
1433
1404
|
/**
|
|
1434
1405
|
* Gets a registration by the given registration ID.
|
|
1435
1406
|
* @param registrationId - The ID of the registration to get.
|
|
@@ -1454,11 +1425,10 @@ export declare class NotificationHubsServiceClient {
|
|
|
1454
1425
|
* Sends a direct push notification to a device with the given push handle.
|
|
1455
1426
|
* @param pushHandle - The push handle which is the unique identifier for the device.
|
|
1456
1427
|
* @param notification - The notification to send to the device.
|
|
1457
|
-
* @param options -
|
|
1458
|
-
* which may include APNs specific such as apns-topic or for WNS, X-WNS-TYPE.
|
|
1428
|
+
* @param options - The options for sending a direct notification.
|
|
1459
1429
|
* @returns A NotificationHubResponse with the tracking ID, correlation ID and location.
|
|
1460
1430
|
*/
|
|
1461
|
-
sendDirectNotification(pushHandle: PushHandle, notification: Notification, options?:
|
|
1431
|
+
sendDirectNotification(pushHandle: PushHandle, notification: Notification, options?: OperationOptions): Promise<NotificationHubsMessageResponse>;
|
|
1462
1432
|
/**
|
|
1463
1433
|
* Sends push notifications to devices that match the given tags or tag expression.
|
|
1464
1434
|
* @param tags - The tags used to target the device for push notifications in either an array or tag expression.
|
|
@@ -1564,7 +1534,7 @@ export declare type PushHandle = BrowserPushChannel | string;
|
|
|
1564
1534
|
/**
|
|
1565
1535
|
* Describes the types of registration descriptions.
|
|
1566
1536
|
*/
|
|
1567
|
-
export declare type RegistrationDescription = AdmRegistrationDescription | AdmTemplateRegistrationDescription | AppleRegistrationDescription | AppleTemplateRegistrationDescription | BaiduRegistrationDescription | BaiduTemplateRegistrationDescription | BrowserRegistrationDescription | BrowserTemplateRegistrationDescription | GcmRegistrationDescription | GcmTemplateRegistrationDescription |
|
|
1537
|
+
export declare type RegistrationDescription = AdmRegistrationDescription | AdmTemplateRegistrationDescription | AppleRegistrationDescription | AppleTemplateRegistrationDescription | BaiduRegistrationDescription | BaiduTemplateRegistrationDescription | BrowserRegistrationDescription | BrowserTemplateRegistrationDescription | GcmRegistrationDescription | GcmTemplateRegistrationDescription | MpnsRegistrationDescription | MpnsTemplateRegistrationDescription | WindowsRegistrationDescription | WindowsTemplateRegistrationDescription;
|
|
1568
1538
|
/**
|
|
1569
1539
|
* Represents a registration description.
|
|
1570
1540
|
*/
|
|
@@ -1625,10 +1595,31 @@ export declare interface RegistrationQueryResponse {
|
|
|
1625
1595
|
*/
|
|
1626
1596
|
continuationToken?: string;
|
|
1627
1597
|
}
|
|
1598
|
+
/**
|
|
1599
|
+
* Represents the result of the registration.
|
|
1600
|
+
*/
|
|
1601
|
+
export declare interface RegistrationResult {
|
|
1602
|
+
/**
|
|
1603
|
+
* The application platform.
|
|
1604
|
+
*/
|
|
1605
|
+
applicationPlatform: string;
|
|
1606
|
+
/**
|
|
1607
|
+
* The PNS handle.
|
|
1608
|
+
*/
|
|
1609
|
+
pnsHandle: string;
|
|
1610
|
+
/**
|
|
1611
|
+
* The registration ID.
|
|
1612
|
+
*/
|
|
1613
|
+
registrationId: string;
|
|
1614
|
+
/**
|
|
1615
|
+
* The outcome of the registration.
|
|
1616
|
+
*/
|
|
1617
|
+
outcome: string;
|
|
1618
|
+
}
|
|
1628
1619
|
/**
|
|
1629
1620
|
* Represents the types of registration descriptions.
|
|
1630
1621
|
*/
|
|
1631
|
-
export declare type RegistrationType = "Adm" | "AdmTemplate" | "Apple" | "AppleTemplate" | "Baidu" | "BaiduTemplate" | "Browser" | "BrowserTemplate" | "Gcm" | "GcmTemplate" | "
|
|
1622
|
+
export declare type RegistrationType = "Adm" | "AdmTemplate" | "Apple" | "AppleTemplate" | "Baidu" | "BaiduTemplate" | "Browser" | "BrowserTemplate" | "Gcm" | "GcmTemplate" | "Mpns" | "MpnsTemplate" | "Windows" | "WindowsTemplate";
|
|
1632
1623
|
/**
|
|
1633
1624
|
* Represents the send operation options that can be set.
|
|
1634
1625
|
*/
|