@microsoft/power-apps-cli 0.5.3 → 0.5.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/lib/Verbs/AddDataSource.js +19 -13
  2. package/lib/Verbs/AddDataSource.js.map +1 -1
  3. package/lib/Verbs/DeleteDataSource.js +3 -3
  4. package/lib/Verbs/DeleteDataSource.js.map +1 -1
  5. package/lib/Verbs/Init.d.ts.map +1 -1
  6. package/lib/Verbs/Init.js +20 -0
  7. package/lib/Verbs/Init.js.map +1 -1
  8. package/lib-cjs/Verbs/AddDataSource.js +38 -43
  9. package/lib-cjs/Verbs/AddDataSource.js.map +1 -1
  10. package/lib-cjs/Verbs/DeleteDataSource.js +11 -19
  11. package/lib-cjs/Verbs/DeleteDataSource.js.map +1 -1
  12. package/lib-cjs/Verbs/Init.d.ts.map +1 -1
  13. package/lib-cjs/Verbs/Init.js +39 -8
  14. package/lib-cjs/Verbs/Init.js.map +1 -1
  15. package/node_modules/@microsoft/1ds-properties-js/README.md +193 -0
  16. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties-4.3.9.gbl.js +4844 -0
  17. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties-4.3.9.gbl.js.map +1 -0
  18. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties-4.3.9.gbl.min.js +7 -0
  19. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties-4.3.9.gbl.min.js.map +1 -0
  20. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties-4.3.9.integrity.json +46 -0
  21. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties-4.3.9.js +4848 -0
  22. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties-4.3.9.js.map +1 -0
  23. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties-4.3.9.min.js +7 -0
  24. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties-4.3.9.min.js.map +1 -0
  25. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties.gbl.js +4844 -0
  26. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties.gbl.js.map +1 -0
  27. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties.gbl.min.js +7 -0
  28. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties.gbl.min.js.map +1 -0
  29. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties.integrity.json +46 -0
  30. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties.js +4848 -0
  31. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties.js.map +1 -0
  32. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties.min.js +7 -0
  33. package/node_modules/@microsoft/1ds-properties-js/bundle/es5/ms.properties.min.js.map +1 -0
  34. package/node_modules/@microsoft/1ds-properties-js/dist/es5/ms.properties.js +4827 -0
  35. package/node_modules/@microsoft/1ds-properties-js/dist/es5/ms.properties.js.map +1 -0
  36. package/node_modules/@microsoft/1ds-properties-js/dist/es5/ms.properties.min.js +7 -0
  37. package/node_modules/@microsoft/1ds-properties-js/dist/es5/ms.properties.min.js.map +1 -0
  38. package/node_modules/@microsoft/1ds-properties-js/dist-es5/DataModels.js +13 -0
  39. package/node_modules/@microsoft/1ds-properties-js/dist-es5/DataModels.js.map +1 -0
  40. package/node_modules/@microsoft/1ds-properties-js/dist-es5/ExtensionKeys.js +95 -0
  41. package/node_modules/@microsoft/1ds-properties-js/dist-es5/ExtensionKeys.js.map +1 -0
  42. package/node_modules/@microsoft/1ds-properties-js/dist-es5/Index.js +16 -0
  43. package/node_modules/@microsoft/1ds-properties-js/dist-es5/Index.js.map +1 -0
  44. package/node_modules/@microsoft/1ds-properties-js/dist-es5/InternalConstants.js +30 -0
  45. package/node_modules/@microsoft/1ds-properties-js/dist-es5/InternalConstants.js.map +1 -0
  46. package/node_modules/@microsoft/1ds-properties-js/dist-es5/PropertiesPlugin.js +200 -0
  47. package/node_modules/@microsoft/1ds-properties-js/dist-es5/PropertiesPlugin.js.map +1 -0
  48. package/node_modules/@microsoft/1ds-properties-js/dist-es5/SessionManager.js +168 -0
  49. package/node_modules/@microsoft/1ds-properties-js/dist-es5/SessionManager.js.map +1 -0
  50. package/node_modules/@microsoft/1ds-properties-js/dist-es5/TelemetryContext.js +286 -0
  51. package/node_modules/@microsoft/1ds-properties-js/dist-es5/TelemetryContext.js.map +1 -0
  52. package/node_modules/@microsoft/1ds-properties-js/dist-es5/Utils.js +106 -0
  53. package/node_modules/@microsoft/1ds-properties-js/dist-es5/Utils.js.map +1 -0
  54. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Application.js +178 -0
  55. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Application.js.map +1 -0
  56. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Cloud.js +17 -0
  57. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Cloud.js.map +1 -0
  58. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Device.js +17 -0
  59. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Device.js.map +1 -0
  60. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/IntWeb.js +58 -0
  61. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/IntWeb.js.map +1 -0
  62. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Loc.js +29 -0
  63. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Loc.js.map +1 -0
  64. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/OperatingSystem.js +176 -0
  65. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/OperatingSystem.js.map +1 -0
  66. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Sdk.js +71 -0
  67. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Sdk.js.map +1 -0
  68. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Session.js +47 -0
  69. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Session.js.map +1 -0
  70. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Trace.js +36 -0
  71. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Trace.js.map +1 -0
  72. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/User.js +102 -0
  73. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/User.js.map +1 -0
  74. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Utc.js +64 -0
  75. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Utc.js.map +1 -0
  76. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Web.js +274 -0
  77. package/node_modules/@microsoft/1ds-properties-js/dist-es5/context/Web.js.map +1 -0
  78. package/node_modules/@microsoft/1ds-properties-js/package.json +65 -0
  79. package/node_modules/@microsoft/1ds-properties-js/tsconfig.json +27 -0
  80. package/node_modules/@microsoft/1ds-properties-js/types/1ds-properties-js.d.ts +706 -0
  81. package/node_modules/@microsoft/1ds-properties-js/types/1ds-properties-js.namespaced.d.ts +2908 -0
  82. package/node_modules/@microsoft/powerapps-data/package.json +1 -1
  83. package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/AddDataSource.js +31 -25
  84. package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/AddDataSource.js.map +1 -1
  85. package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/DataUtils.d.ts +6 -4
  86. package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/DataUtils.d.ts.map +1 -1
  87. package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/DataUtils.js +11 -5
  88. package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/DataUtils.js.map +1 -1
  89. package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/DeleteDataSource.js +3 -3
  90. package/node_modules/@microsoft/powerapps-player-actions/lib/Actions/DeleteDataSource.js.map +1 -1
  91. package/node_modules/@microsoft/powerapps-player-actions/lib/Types/ActionTypes.d.ts +16 -11
  92. package/node_modules/@microsoft/powerapps-player-actions/lib/Types/ActionTypes.d.ts.map +1 -1
  93. package/node_modules/@microsoft/powerapps-player-actions/lib/__tests__/AddDataSource.spec.js +1 -1
  94. package/node_modules/@microsoft/powerapps-player-actions/lib/__tests__/AddDataSource.spec.js.map +1 -1
  95. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/AddDataSource.js +104 -86
  96. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/AddDataSource.js.map +1 -1
  97. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/DataUtils.d.ts +6 -4
  98. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/DataUtils.d.ts.map +1 -1
  99. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/DataUtils.js +26 -4
  100. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/DataUtils.js.map +1 -1
  101. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/DeleteDataSource.js +52 -46
  102. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Actions/DeleteDataSource.js.map +1 -1
  103. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Types/ActionTypes.d.ts +16 -11
  104. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/Types/ActionTypes.d.ts.map +1 -1
  105. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/__tests__/AddDataSource.spec.js +1 -1
  106. package/node_modules/@microsoft/powerapps-player-actions/lib-cjs/__tests__/AddDataSource.spec.js.map +1 -1
  107. package/node_modules/@microsoft/powerapps-player-actions/package.json +1 -1
  108. package/node_modules/@pa-client/powerapps-player-services/package.json +69 -69
  109. package/package.json +5 -3
@@ -0,0 +1,13 @@
1
+ /*
2
+ * 1DS JS SDK Properties plugin, 4.3.9
3
+ * Copyright (c) Microsoft and contributors. All rights reserved.
4
+ * (Microsoft Internal Only)
5
+ */
6
+ /**
7
+ * DataModels.ts
8
+ * @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)
9
+ * @copyright Microsoft 2018
10
+ * File containing the interfaces for Part A module.
11
+ */
12
+ export {};
13
+ //# sourceMappingURL=DataModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataModels.js.map","sources":["DataModels.js"],"sourcesContent":["/**\r\n* DataModels.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n* File containing the interfaces for Part A module.\r\n*/\r\nexport {};\r\n//# sourceMappingURL=DataModels.js.map"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -0,0 +1,95 @@
1
+ /*
2
+ * 1DS JS SDK Properties plugin, 4.3.9
3
+ * Copyright (c) Microsoft and contributors. All rights reserved.
4
+ * (Microsoft Internal Only)
5
+ */
6
+ /**
7
+ * TelemetryContext.ts
8
+ * @author Hector Hernandez (hectorh)
9
+ * @copyright Microsoft 2019
10
+ */
11
+ // @skip-file-minify - Skip attempting to minify this file
12
+ import { createValueMap } from "@microsoft/applicationinsights-core-js";
13
+ import { STR_BROWSER, STR_BROWSER_VER, STR_DEVICE, STR_EVENT_FLAGS, STR_LOCALE, STR_NAME, STR_POP_SAMPLE, STR_SERVICE_NAME, STR_VER } from "./InternalConstants";
14
+ export var Extensions = createValueMap({
15
+ UserExt: [0 /* eExtensions.UserExt */, "user"],
16
+ DeviceExt: [1 /* eExtensions.DeviceExt */, STR_DEVICE],
17
+ TraceExt: [2 /* eExtensions.TraceExt */, "trace"],
18
+ WebExt: [3 /* eExtensions.WebExt */, "web"],
19
+ AppExt: [4 /* eExtensions.AppExt */, "app"],
20
+ OSExt: [5 /* eExtensions.OSExt */, "os"],
21
+ SdkExt: [6 /* eExtensions.SdkExt */, "sdk"],
22
+ IntWebExt: [7 /* eExtensions.IntWebExt */, "intweb"],
23
+ UtcExt: [8 /* eExtensions.UtcExt */, "utc"],
24
+ LocExt: [9 /* eExtensions.LocExt */, "loc"],
25
+ CloudExt: [10 /* eExtensions.CloudExt */, "cloud"],
26
+ DtExt: [11 /* eExtensions.DtExt */, "dt"]
27
+ });
28
+ export var AppExtensionKeys = createValueMap({
29
+ id: [0 /* eAppExtensionKeys.id */, "id"],
30
+ ver: [1 /* eAppExtensionKeys.ver */, STR_VER],
31
+ appName: [2 /* eAppExtensionKeys.appName */, STR_NAME],
32
+ locale: [3 /* eAppExtensionKeys.locale */, STR_LOCALE],
33
+ expId: [4 /* eAppExtensionKeys.expId */, "expId"],
34
+ env: [5 /* eAppExtensionKeys.env */, "env"]
35
+ });
36
+ export var WebExtensionKeys = createValueMap({
37
+ domain: [0 /* eWebExtensionKeys.domain */, "domain"],
38
+ browser: [1 /* eWebExtensionKeys.browser */, STR_BROWSER],
39
+ browserVer: [2 /* eWebExtensionKeys.browserVer */, STR_BROWSER_VER],
40
+ screenRes: [3 /* eWebExtensionKeys.screenRes */, "screenRes"],
41
+ userConsent: [4 /* eWebExtensionKeys.userConsent */, "userConsent"],
42
+ consentDetails: [5 /* eWebExtensionKeys.consentDetails */, "consentDetails"]
43
+ });
44
+ export var UserExtensionKeys = createValueMap({
45
+ locale: [0 /* eUserExtensionKeys.locale */, STR_LOCALE],
46
+ localId: [1 /* eUserExtensionKeys.localId */, "localId"],
47
+ id: [2 /* eUserExtensionKeys.id */, "id"]
48
+ });
49
+ export var OSExtKeys = createValueMap({
50
+ osName: [0 /* eOSExtKeys.osName */, STR_NAME],
51
+ ver: [1 /* eOSExtKeys.ver */, STR_VER]
52
+ });
53
+ export var SDKExtKeys = createValueMap({
54
+ ver: [0 /* eSDKExtKeys.ver */, STR_VER],
55
+ seq: [1 /* eSDKExtKeys.seq */, "seq"],
56
+ installId: [2 /* eSDKExtKeys.installId */, "installId"],
57
+ epoch: [3 /* eSDKExtKeys.epoch */, "epoch"]
58
+ });
59
+ export var IntWebExtKeys = createValueMap({
60
+ msfpc: [0 /* eIntWebExtKeys.msfpc */, "msfpc"],
61
+ anid: [1 /* eIntWebExtKeys.anid */, "anid"],
62
+ serviceName: [2 /* eIntWebExtKeys.serviceName */, STR_SERVICE_NAME]
63
+ });
64
+ export var UtcExtKeys = createValueMap({
65
+ popSample: [0 /* eUtcExtKeys.popSample */, STR_POP_SAMPLE],
66
+ eventFlags: [1 /* eUtcExtKeys.eventFlags */, STR_EVENT_FLAGS]
67
+ });
68
+ export var LocExtKeys = createValueMap({
69
+ tz: [0 /* eLocExtKeys.tz */, "tz"]
70
+ });
71
+ export var SessionExtKeys = createValueMap({
72
+ sessionId: [0 /* eSessionExtKeys.sessionId */, "sesId"]
73
+ });
74
+ export var DeviceExtKeys = createValueMap({
75
+ localId: [0 /* eDeviceExtKeys.localId */, "localId"],
76
+ deviceClass: [1 /* eDeviceExtKeys.deviceClass */, "deviceClass"],
77
+ make: [2 /* eDeviceExtKeys.make */, "make"],
78
+ model: [3 /* eDeviceExtKeys.model */, "model"]
79
+ });
80
+ export var CloudExtKeys = createValueMap({
81
+ role: [0 /* eCloudExtKeys.role */, "role"],
82
+ roleInstance: [1 /* eCloudExtKeys.roleInstance */, "roleInstance"],
83
+ roleVer: [2 /* eCloudExtKeys.roleVer */, "roleVer"]
84
+ });
85
+ export var TraceExtKeys = createValueMap({
86
+ traceId: [0 /* eTraceExtKeys.traceId */, "traceID"],
87
+ traceName: [1 /* eTraceExtKeys.traceName */, STR_NAME],
88
+ parentId: [2 /* eTraceExtKeys.parentId */, "parentID"]
89
+ });
90
+ export var DistributedTraceExtKeys = createValueMap({
91
+ traceId: [0 /* eDistributedTraceExtKeys.traceId */, "traceId"],
92
+ spanId: [1 /* eDistributedTraceExtKeys.spanId */, "spanId"],
93
+ traceFlags: [2 /* eDistributedTraceExtKeys.traceFlags */, "traceFlags"]
94
+ });
95
+ //# sourceMappingURL=ExtensionKeys.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExtensionKeys.js.map","sources":["ExtensionKeys.js"],"sourcesContent":["/**\r\n* TelemetryContext.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\n// @skip-file-minify - Skip attempting to minify this file\r\nimport { createValueMap } from \"@microsoft/applicationinsights-core-js\";\r\nimport { STR_BROWSER, STR_BROWSER_VER, STR_DEVICE, STR_EVENT_FLAGS, STR_LOCALE, STR_NAME, STR_POP_SAMPLE, STR_SERVICE_NAME, STR_VER } from \"./InternalConstants\";\r\nexport var Extensions = createValueMap({\r\n UserExt: [0 /* eExtensions.UserExt */, \"user\"],\r\n DeviceExt: [1 /* eExtensions.DeviceExt */, STR_DEVICE],\r\n TraceExt: [2 /* eExtensions.TraceExt */, \"trace\"],\r\n WebExt: [3 /* eExtensions.WebExt */, \"web\"],\r\n AppExt: [4 /* eExtensions.AppExt */, \"app\"],\r\n OSExt: [5 /* eExtensions.OSExt */, \"os\"],\r\n SdkExt: [6 /* eExtensions.SdkExt */, \"sdk\"],\r\n IntWebExt: [7 /* eExtensions.IntWebExt */, \"intweb\"],\r\n UtcExt: [8 /* eExtensions.UtcExt */, \"utc\"],\r\n LocExt: [9 /* eExtensions.LocExt */, \"loc\"],\r\n CloudExt: [10 /* eExtensions.CloudExt */, \"cloud\"],\r\n DtExt: [11 /* eExtensions.DtExt */, \"dt\"]\r\n});\r\nexport var AppExtensionKeys = createValueMap({\r\n id: [0 /* eAppExtensionKeys.id */, \"id\"],\r\n ver: [1 /* eAppExtensionKeys.ver */, STR_VER],\r\n appName: [2 /* eAppExtensionKeys.appName */, STR_NAME],\r\n locale: [3 /* eAppExtensionKeys.locale */, STR_LOCALE],\r\n expId: [4 /* eAppExtensionKeys.expId */, \"expId\"],\r\n env: [5 /* eAppExtensionKeys.env */, \"env\"]\r\n});\r\nexport var WebExtensionKeys = createValueMap({\r\n domain: [0 /* eWebExtensionKeys.domain */, \"domain\"],\r\n browser: [1 /* eWebExtensionKeys.browser */, STR_BROWSER],\r\n browserVer: [2 /* eWebExtensionKeys.browserVer */, STR_BROWSER_VER],\r\n screenRes: [3 /* eWebExtensionKeys.screenRes */, \"screenRes\"],\r\n userConsent: [4 /* eWebExtensionKeys.userConsent */, \"userConsent\"],\r\n consentDetails: [5 /* eWebExtensionKeys.consentDetails */, \"consentDetails\"]\r\n});\r\nexport var UserExtensionKeys = createValueMap({\r\n locale: [0 /* eUserExtensionKeys.locale */, STR_LOCALE],\r\n localId: [1 /* eUserExtensionKeys.localId */, \"localId\"],\r\n id: [2 /* eUserExtensionKeys.id */, \"id\"]\r\n});\r\nexport var OSExtKeys = createValueMap({\r\n osName: [0 /* eOSExtKeys.osName */, STR_NAME],\r\n ver: [1 /* eOSExtKeys.ver */, STR_VER]\r\n});\r\nexport var SDKExtKeys = createValueMap({\r\n ver: [0 /* eSDKExtKeys.ver */, STR_VER],\r\n seq: [1 /* eSDKExtKeys.seq */, \"seq\"],\r\n installId: [2 /* eSDKExtKeys.installId */, \"installId\"],\r\n epoch: [3 /* eSDKExtKeys.epoch */, \"epoch\"]\r\n});\r\nexport var IntWebExtKeys = createValueMap({\r\n msfpc: [0 /* eIntWebExtKeys.msfpc */, \"msfpc\"],\r\n anid: [1 /* eIntWebExtKeys.anid */, \"anid\"],\r\n serviceName: [2 /* eIntWebExtKeys.serviceName */, STR_SERVICE_NAME]\r\n});\r\nexport var UtcExtKeys = createValueMap({\r\n popSample: [0 /* eUtcExtKeys.popSample */, STR_POP_SAMPLE],\r\n eventFlags: [1 /* eUtcExtKeys.eventFlags */, STR_EVENT_FLAGS]\r\n});\r\nexport var LocExtKeys = createValueMap({\r\n tz: [0 /* eLocExtKeys.tz */, \"tz\"]\r\n});\r\nexport var SessionExtKeys = createValueMap({\r\n sessionId: [0 /* eSessionExtKeys.sessionId */, \"sesId\"]\r\n});\r\nexport var DeviceExtKeys = createValueMap({\r\n localId: [0 /* eDeviceExtKeys.localId */, \"localId\"],\r\n deviceClass: [1 /* eDeviceExtKeys.deviceClass */, \"deviceClass\"],\r\n make: [2 /* eDeviceExtKeys.make */, \"make\"],\r\n model: [3 /* eDeviceExtKeys.model */, \"model\"]\r\n});\r\nexport var CloudExtKeys = createValueMap({\r\n role: [0 /* eCloudExtKeys.role */, \"role\"],\r\n roleInstance: [1 /* eCloudExtKeys.roleInstance */, \"roleInstance\"],\r\n roleVer: [2 /* eCloudExtKeys.roleVer */, \"roleVer\"]\r\n});\r\nexport var TraceExtKeys = createValueMap({\r\n traceId: [0 /* eTraceExtKeys.traceId */, \"traceID\"],\r\n traceName: [1 /* eTraceExtKeys.traceName */, STR_NAME],\r\n parentId: [2 /* eTraceExtKeys.parentId */, \"parentID\"]\r\n});\r\nexport var DistributedTraceExtKeys = createValueMap({\r\n traceId: [0 /* eDistributedTraceExtKeys.traceId */, \"traceId\"],\r\n spanId: [1 /* eDistributedTraceExtKeys.spanId */, \"spanId\"],\r\n traceFlags: [2 /* eDistributedTraceExtKeys.traceFlags */, \"traceFlags\"]\r\n});\r\n//# sourceMappingURL=ExtensionKeys.js.map"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -0,0 +1,16 @@
1
+ /*
2
+ * 1DS JS SDK Properties plugin, 4.3.9
3
+ * Copyright (c) Microsoft and contributors. All rights reserved.
4
+ * (Microsoft Internal Only)
5
+ */
6
+ import { AppExtensionKeys, CloudExtKeys, DeviceExtKeys, Extensions, LocExtKeys, OSExtKeys, UserExtensionKeys, WebExtensionKeys } from "./ExtensionKeys";
7
+ import { PropertiesPlugin } from "./PropertiesPlugin";
8
+ import { TelemetryContext } from "./TelemetryContext";
9
+ import { Application, defaultFlightIdNameSpaces } from "./context/Application";
10
+ import { Cloud } from "./context/Cloud";
11
+ import { Device } from "./context/Device";
12
+ import { Loc } from "./context/Loc";
13
+ import { OperatingSystem } from "./context/OperatingSystem";
14
+ import { Session } from "./context/Session";
15
+ export { PropertiesPlugin, Extensions, AppExtensionKeys, WebExtensionKeys, UserExtensionKeys, OSExtKeys, DeviceExtKeys, CloudExtKeys, LocExtKeys, Cloud, Loc, OperatingSystem, Application, Device, Session, defaultFlightIdNameSpaces, TelemetryContext };
16
+ //# sourceMappingURL=Index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Index.js.map","sources":["Index.js"],"sourcesContent":["import { AppExtensionKeys, CloudExtKeys, DeviceExtKeys, Extensions, LocExtKeys, OSExtKeys, UserExtensionKeys, WebExtensionKeys } from \"./ExtensionKeys\";\r\nimport { PropertiesPlugin } from \"./PropertiesPlugin\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nimport { Application, defaultFlightIdNameSpaces } from \"./context/Application\";\r\nimport { Cloud } from \"./context/Cloud\";\r\nimport { Device } from \"./context/Device\";\r\nimport { Loc } from \"./context/Loc\";\r\nimport { OperatingSystem } from \"./context/OperatingSystem\";\r\nimport { Session } from \"./context/Session\";\r\nexport { PropertiesPlugin, Extensions, AppExtensionKeys, WebExtensionKeys, UserExtensionKeys, OSExtKeys, DeviceExtKeys, CloudExtKeys, LocExtKeys, Cloud, Loc, OperatingSystem, Application, Device, Session, defaultFlightIdNameSpaces, TelemetryContext };\r\n//# sourceMappingURL=Index.js.map"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -0,0 +1,30 @@
1
+ /*
2
+ * 1DS JS SDK Properties plugin, 4.3.9
3
+ * Copyright (c) Microsoft and contributors. All rights reserved.
4
+ * (Microsoft Internal Only)
5
+ */
6
+
7
+ // Licensed under the MIT License.
8
+ import { strShimPrototype } from "@microsoft/applicationinsights-shims";
9
+ // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
10
+ // Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!
11
+ // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
12
+ // Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)
13
+ // as when using "short" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.
14
+ export var STR_DEVICE = "device";
15
+ export var STR_LOCALE = "locale";
16
+ export var STR_VER = "ver";
17
+ export var STR_BROWSER = "browser";
18
+ export var STR_BROWSER_VER = "browserVer";
19
+ export var STR_POP_SAMPLE = "popSample";
20
+ export var STR_EVENT_FLAGS = "eventFlags";
21
+ export var STR_NAME = "name";
22
+ export var STR_SERVICE_NAME = "serviceName";
23
+ export var STR_LENGTH = "length";
24
+ export var STR_SESSION_EXPIRATION_MS = "sessionExpirationMs";
25
+ export var STR_SESSION_RENEWAL_MS = "sessionRenewalMs";
26
+ export var STR_USER_AGENT = "userAgent";
27
+ export var STR_USER_AGENT_DATA = "userAgentData";
28
+ export var STR_NAME_PREFIX = "namePrefix";
29
+ export var STR_PROTOTYPE = strShimPrototype;
30
+ //# sourceMappingURL=InternalConstants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InternalConstants.js.map","sources":["InternalConstants.js"],"sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\r\n// Licensed under the MIT License.\r\nimport { strShimPrototype } from \"@microsoft/applicationinsights-shims\";\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Note: DON'T Export these const from the package as we are still targeting ES3 this will export a mutable variables that someone could change!!!\r\n// !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!\r\n// Generally you should only put values that are used more than 2 times and then only if not already exposed as a constant (such as SdkCoreNames)\r\n// as when using \"short\" named values from here they will be will be minified smaller than the SdkCoreNames[eSdkCoreNames.xxxx] value.\r\nexport var STR_DEVICE = \"device\";\r\nexport var STR_LOCALE = \"locale\";\r\nexport var STR_VER = \"ver\";\r\nexport var STR_BROWSER = \"browser\";\r\nexport var STR_BROWSER_VER = \"browserVer\";\r\nexport var STR_POP_SAMPLE = \"popSample\";\r\nexport var STR_EVENT_FLAGS = \"eventFlags\";\r\nexport var STR_NAME = \"name\";\r\nexport var STR_SERVICE_NAME = \"serviceName\";\r\nexport var STR_LENGTH = \"length\";\r\nexport var STR_SESSION_EXPIRATION_MS = \"sessionExpirationMs\";\r\nexport var STR_SESSION_RENEWAL_MS = \"sessionRenewalMs\";\r\nexport var STR_USER_AGENT = \"userAgent\";\r\nexport var STR_USER_AGENT_DATA = \"userAgentData\";\r\nexport var STR_NAME_PREFIX = \"namePrefix\";\r\nexport var STR_PROTOTYPE = strShimPrototype;\r\n//# sourceMappingURL=InternalConstants.js.map"],"names":[],"mappings":";;;;;AAA4D;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -0,0 +1,200 @@
1
+ /*
2
+ * 1DS JS SDK Properties plugin, 4.3.9
3
+ * Copyright (c) Microsoft and contributors. All rights reserved.
4
+ * (Microsoft Internal Only)
5
+ */
6
+ import { __extendsFn as __extends } from "@microsoft/applicationinsights-shims";
7
+ /**
8
+ * PropertiesPlugin.ts
9
+ * @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)
10
+ * @copyright Microsoft 2018
11
+ */
12
+ import dynamicProto from "@microsoft/dynamicproto-js";
13
+ import { BaseTelemetryPlugin, arrForEach, createProcessTelemetryContext, objForEachKey, objKeys, onConfigChange, setProcessTelemetryTimings } from "@microsoft/1ds-core-js";
14
+ import { cfgDfMerge, cfgDfString } from "@microsoft/applicationinsights-core-js";
15
+ import { objDeepFreeze } from "@nevware21/ts-utils";
16
+ import { Extensions } from "./ExtensionKeys";
17
+ import { TelemetryContext } from "./TelemetryContext";
18
+ var undefValue;
19
+ var extensions = [
20
+ Extensions[4 /* eExtensions.AppExt */],
21
+ Extensions[0 /* eExtensions.UserExt */],
22
+ Extensions[3 /* eExtensions.WebExt */],
23
+ Extensions[5 /* eExtensions.OSExt */],
24
+ Extensions[6 /* eExtensions.SdkExt */],
25
+ Extensions[7 /* eExtensions.IntWebExt */],
26
+ Extensions[8 /* eExtensions.UtcExt */],
27
+ Extensions[9 /* eExtensions.LocExt */],
28
+ Extensions[1 /* eExtensions.DeviceExt */],
29
+ Extensions[2 /* eExtensions.TraceExt */],
30
+ Extensions[11 /* eExtensions.DtExt */],
31
+ Extensions[10 /* eExtensions.CloudExt */]
32
+ ];
33
+ var defaultPropertyConfig = objDeepFreeze({
34
+ populateBrowserInfo: false,
35
+ populateOperatingSystemInfo: false,
36
+ userAgent: cfgDfString(),
37
+ userAgentData: cfgDfMerge({
38
+ brands: undefValue,
39
+ mobile: undefValue,
40
+ platform: undefValue
41
+ }),
42
+ userConsentCookieName: cfgDfString(),
43
+ userConsented: false,
44
+ serviceName: cfgDfString(),
45
+ env: cfgDfString(),
46
+ expId: cfgDfString(),
47
+ sessionRenewalMs: 1800000,
48
+ sessionExpirationMs: 86400000,
49
+ sessionAsGuid: null,
50
+ cookieDomain: cfgDfString(),
51
+ namePrefix: cfgDfString(),
52
+ enableApplicationInsightsTrace: false,
53
+ enableApplicationInsightsUser: false,
54
+ hashIdentifiers: false,
55
+ dropIdentifiers: false,
56
+ scrubIpOnly: false,
57
+ callback: cfgDfMerge({
58
+ userConsentDetails: null
59
+ }),
60
+ gpcDataSharingOptIn: undefValue,
61
+ idLength: 22,
62
+ enableDistributedTracing: false,
63
+ eventContainExtFields: false // Added in v3.2.5
64
+ });
65
+ var PropertiesPlugin = /** @class */ (function (_super) {
66
+ __extends(PropertiesPlugin, _super);
67
+ function PropertiesPlugin() {
68
+ var _this = _super.call(this) || this;
69
+ _this.identifier = "SystemPropertiesCollector";
70
+ _this.priority = 3;
71
+ _this.version = '4.3.9';
72
+ // Do not set default values here, set them in the _initDefaults() which is also called during teardown()
73
+ var _context;
74
+ var _properties;
75
+ var _config;
76
+ dynamicProto(PropertiesPlugin, _this, function (_self, _base) {
77
+ _initDefaults();
78
+ _self.initialize = function (coreConfig, core, extensions) {
79
+ _base.initialize(coreConfig, core, extensions);
80
+ _populateDefaults(coreConfig);
81
+ };
82
+ /**
83
+ * Process the event and add part A fields to it.
84
+ * @param event - The event that needs to be stored.
85
+ * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances
86
+ * can optionally use this to access the current core instance or define / pass additional information
87
+ * to later plugins (vs appending items to the telemetry item)
88
+ */
89
+ _self.processTelemetry = function (event, itemCtx) {
90
+ setProcessTelemetryTimings(event, _self.identifier);
91
+ itemCtx = _self._getTelCtx(itemCtx);
92
+ var evtExt = event.ext = event.ext ? event.ext : {};
93
+ event.data = event.data ? event.data : {};
94
+ arrForEach(extensions, function (value) {
95
+ evtExt[value] = evtExt[value] || {};
96
+ });
97
+ if (_context) {
98
+ // Always apply the utc properties first as this sets the `ext.utc.eventFlags` which is required to tell
99
+ // the collector to mask some fields
100
+ _context.applyUtcContext(event);
101
+ _context.applyApplicationContext(event);
102
+ _context.applyUserContext(event);
103
+ _context.applyWebContext(event);
104
+ _context.applyOsContext(event);
105
+ _context.applySdkContext(event);
106
+ _context.applyIntWebContext(event);
107
+ _context.applyLocContext(event);
108
+ _context.applySessionContext(event);
109
+ _context.applyDeviceContext(event);
110
+ if (_config.enableApplicationInsightsTrace) {
111
+ _context.applyAITraceContext(event);
112
+ }
113
+ if (_config.enableDistributedTracing) {
114
+ _context.applyDistributedTraceContext(event);
115
+ }
116
+ _context.applyCloudContext(event);
117
+ }
118
+ // Delete empty ext fields
119
+ arrForEach(objKeys(evtExt), function (key) {
120
+ if (objKeys(evtExt[key]).length === 0) {
121
+ delete evtExt[key];
122
+ }
123
+ });
124
+ // Add custom properties
125
+ _addPropertiesIfAbsent(_properties, event.data);
126
+ _self.processNext(event, itemCtx);
127
+ };
128
+ /**
129
+ * Get properties context to override or specify specific part A properties
130
+ * @returns the Context
131
+ */
132
+ _self.getPropertiesContext = function () {
133
+ return _context;
134
+ };
135
+ /**
136
+ * Sets a custom property to be sent with every event. IEventProperty can be used to tag the property as
137
+ * pii or customer content.
138
+ * @param name - The name of the property.
139
+ * @param value - The context property's value.
140
+ */
141
+ _self.setProperty = function (name, value) {
142
+ _properties[name] = value;
143
+ };
144
+ _self._doTeardown = function (unloadCtx, unloadState) {
145
+ var core = (unloadCtx || {}).core();
146
+ if (core && core.getTraceCtx && _context) {
147
+ var traceCtx = core.getTraceCtx(false);
148
+ if (traceCtx && traceCtx === _context.getTraceCtx()) {
149
+ core.setTraceCtx(null);
150
+ }
151
+ }
152
+ _initDefaults();
153
+ };
154
+ _self["_getDbgPlgTargets"] = function () {
155
+ return [_config];
156
+ };
157
+ function _initDefaults() {
158
+ _context = null;
159
+ _properties = {};
160
+ }
161
+ function _populateDefaults(config) {
162
+ var identifier = _self.identifier;
163
+ var core = _self.core;
164
+ // This function will be re-called whenever any referenced configuration is changed
165
+ _self._addHook(onConfigChange(config, function () {
166
+ var ctx = createProcessTelemetryContext(null, config, core);
167
+ // Apply and re-apply defaults
168
+ _config = ctx.getExtCfg(identifier, defaultPropertyConfig);
169
+ }));
170
+ // _context should be outside onConfigChange to avoid creating new instance every time
171
+ _context = new TelemetryContext(config, _config, core, _self._unloadHooks);
172
+ if (core && core.setTraceCtx) {
173
+ core.setTraceCtx(_context.getTraceCtx());
174
+ }
175
+ }
176
+ function _addPropertiesIfAbsent(inputMap, outputMap) {
177
+ if (inputMap) {
178
+ objForEachKey(inputMap, function (name, inputValue) {
179
+ if (!outputMap[name]) {
180
+ outputMap[name] = inputValue;
181
+ }
182
+ });
183
+ }
184
+ }
185
+ });
186
+ return _this;
187
+ }
188
+ // Removed Stub for PropertiesPlugin.prototype.initialize.
189
+ // Removed Stub for PropertiesPlugin.prototype.processTelemetry.
190
+ // Removed Stub for PropertiesPlugin.prototype.getPropertiesContext.
191
+ // Removed Stub for PropertiesPlugin.prototype.setProperty.
192
+ // This is a workaround for an IE8 bug when using dynamicProto() with classes that don't have any
193
+ // non-dynamic functions or static properties/functions when using uglify-js to minify the resulting code.
194
+ // this will be removed when ES3 support is dropped.
195
+ PropertiesPlugin.__ieDyn=1;
196
+
197
+ return PropertiesPlugin;
198
+ }(BaseTelemetryPlugin));
199
+ export { PropertiesPlugin };
200
+ //# sourceMappingURL=PropertiesPlugin.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PropertiesPlugin.js.map","sources":["PropertiesPlugin.js"],"sourcesContent":["import { __extends } from \"tslib\";\r\n/**\r\n* PropertiesPlugin.ts\r\n* @author Abhilash Panwar (abpanwar) Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2018\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { BaseTelemetryPlugin, arrForEach, createProcessTelemetryContext, objForEachKey, objKeys, onConfigChange, setProcessTelemetryTimings } from \"@microsoft/1ds-core-js\";\r\nimport { cfgDfMerge, cfgDfString } from \"@microsoft/applicationinsights-core-js\";\r\nimport { objDeepFreeze } from \"@nevware21/ts-utils\";\r\nimport { Extensions } from \"./ExtensionKeys\";\r\nimport { TelemetryContext } from \"./TelemetryContext\";\r\nvar undefValue;\r\nvar extensions = [\r\n Extensions[4 /* eExtensions.AppExt */],\r\n Extensions[0 /* eExtensions.UserExt */],\r\n Extensions[3 /* eExtensions.WebExt */],\r\n Extensions[5 /* eExtensions.OSExt */],\r\n Extensions[6 /* eExtensions.SdkExt */],\r\n Extensions[7 /* eExtensions.IntWebExt */],\r\n Extensions[8 /* eExtensions.UtcExt */],\r\n Extensions[9 /* eExtensions.LocExt */],\r\n Extensions[1 /* eExtensions.DeviceExt */],\r\n Extensions[2 /* eExtensions.TraceExt */],\r\n Extensions[11 /* eExtensions.DtExt */],\r\n Extensions[10 /* eExtensions.CloudExt */]\r\n];\r\nvar defaultPropertyConfig = objDeepFreeze({\r\n populateBrowserInfo: false,\r\n populateOperatingSystemInfo: false,\r\n userAgent: cfgDfString(),\r\n userAgentData: cfgDfMerge({\r\n brands: undefValue,\r\n mobile: undefValue,\r\n platform: undefValue\r\n }),\r\n userConsentCookieName: cfgDfString(),\r\n userConsented: false,\r\n serviceName: cfgDfString(),\r\n env: cfgDfString(),\r\n expId: cfgDfString(),\r\n sessionRenewalMs: 1800000,\r\n sessionExpirationMs: 86400000,\r\n sessionAsGuid: null,\r\n cookieDomain: cfgDfString(),\r\n namePrefix: cfgDfString(),\r\n enableApplicationInsightsTrace: false,\r\n enableApplicationInsightsUser: false,\r\n hashIdentifiers: false,\r\n dropIdentifiers: false,\r\n scrubIpOnly: false,\r\n callback: cfgDfMerge({\r\n userConsentDetails: null\r\n }),\r\n gpcDataSharingOptIn: undefValue,\r\n idLength: 22,\r\n enableDistributedTracing: false,\r\n eventContainExtFields: false // Added in v3.2.5\r\n});\r\nvar PropertiesPlugin = /** @class */ (function (_super) {\r\n __extends(PropertiesPlugin, _super);\r\n function PropertiesPlugin() {\r\n var _this = _super.call(this) || this;\r\n _this.identifier = \"SystemPropertiesCollector\";\r\n _this.priority = 3;\r\n _this.version = '4.3.9';\r\n // Do not set default values here, set them in the _initDefaults() which is also called during teardown()\r\n var _context;\r\n var _properties;\r\n var _config;\r\n dynamicProto(PropertiesPlugin, _this, function (_self, _base) {\r\n _initDefaults();\r\n _self.initialize = function (coreConfig, core, extensions) {\r\n _base.initialize(coreConfig, core, extensions);\r\n _populateDefaults(coreConfig);\r\n };\r\n /**\r\n * Process the event and add part A fields to it.\r\n * @param event - The event that needs to be stored.\r\n * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances\r\n * can optionally use this to access the current core instance or define / pass additional information\r\n * to later plugins (vs appending items to the telemetry item)\r\n */\r\n _self.processTelemetry = function (event, itemCtx) {\r\n setProcessTelemetryTimings(event, _self.identifier);\r\n itemCtx = _self._getTelCtx(itemCtx);\r\n var evtExt = event.ext = event.ext ? event.ext : {};\r\n event.data = event.data ? event.data : {};\r\n arrForEach(extensions, function (value) {\r\n evtExt[value] = evtExt[value] || {};\r\n });\r\n if (_context) {\r\n // Always apply the utc properties first as this sets the `ext.utc.eventFlags` which is required to tell\r\n // the collector to mask some fields\r\n _context.applyUtcContext(event);\r\n _context.applyApplicationContext(event);\r\n _context.applyUserContext(event);\r\n _context.applyWebContext(event);\r\n _context.applyOsContext(event);\r\n _context.applySdkContext(event);\r\n _context.applyIntWebContext(event);\r\n _context.applyLocContext(event);\r\n _context.applySessionContext(event);\r\n _context.applyDeviceContext(event);\r\n if (_config.enableApplicationInsightsTrace) {\r\n _context.applyAITraceContext(event);\r\n }\r\n if (_config.enableDistributedTracing) {\r\n _context.applyDistributedTraceContext(event);\r\n }\r\n _context.applyCloudContext(event);\r\n }\r\n // Delete empty ext fields\r\n arrForEach(objKeys(evtExt), function (key) {\r\n if (objKeys(evtExt[key]).length === 0) {\r\n delete evtExt[key];\r\n }\r\n });\r\n // Add custom properties\r\n _addPropertiesIfAbsent(_properties, event.data);\r\n _self.processNext(event, itemCtx);\r\n };\r\n /**\r\n * Get properties context to override or specify specific part A properties\r\n * @returns the Context\r\n */\r\n _self.getPropertiesContext = function () {\r\n return _context;\r\n };\r\n /**\r\n * Sets a custom property to be sent with every event. IEventProperty can be used to tag the property as\r\n * pii or customer content.\r\n * @param name - The name of the property.\r\n * @param value - The context property's value.\r\n */\r\n _self.setProperty = function (name, value) {\r\n _properties[name] = value;\r\n };\r\n _self._doTeardown = function (unloadCtx, unloadState) {\r\n var core = (unloadCtx || {}).core();\r\n if (core && core.getTraceCtx && _context) {\r\n var traceCtx = core.getTraceCtx(false);\r\n if (traceCtx && traceCtx === _context.getTraceCtx()) {\r\n core.setTraceCtx(null);\r\n }\r\n }\r\n _initDefaults();\r\n };\r\n _self[\"_getDbgPlgTargets\"] = function () {\r\n return [_config];\r\n };\r\n function _initDefaults() {\r\n _context = null;\r\n _properties = {};\r\n }\r\n function _populateDefaults(config) {\r\n var identifier = _self.identifier;\r\n var core = _self.core;\r\n // This function will be re-called whenever any referenced configuration is changed\r\n _self._addHook(onConfigChange(config, function () {\r\n var ctx = createProcessTelemetryContext(null, config, core);\r\n // Apply and re-apply defaults\r\n _config = ctx.getExtCfg(identifier, defaultPropertyConfig);\r\n }));\r\n // _context should be outside onConfigChange to avoid creating new instance every time\r\n _context = new TelemetryContext(config, _config, core, _self._unloadHooks);\r\n if (core && core.setTraceCtx) {\r\n core.setTraceCtx(_context.getTraceCtx());\r\n }\r\n }\r\n function _addPropertiesIfAbsent(inputMap, outputMap) {\r\n if (inputMap) {\r\n objForEachKey(inputMap, function (name, inputValue) {\r\n if (!outputMap[name]) {\r\n outputMap[name] = inputValue;\r\n }\r\n });\r\n }\r\n }\r\n });\r\n return _this;\r\n }\r\n PropertiesPlugin.prototype.initialize = function (coreConfig, core, extensions) {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Process the event and add part A fields to it.\r\n * @param event - The event that needs to be stored.\r\n * @param itemCtx - This is the context for the current request, ITelemetryPlugin instances\r\n * can optionally use this to access the current core instance or define / pass additional information\r\n * to later plugins (vs appending items to the telemetry item)\r\n */\r\n PropertiesPlugin.prototype.processTelemetry = function (event, itemCtx) {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Get properties context to override or specify specific part A properties\r\n * @returns the Context\r\n */\r\n PropertiesPlugin.prototype.getPropertiesContext = function () {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n return null;\r\n };\r\n /**\r\n * Sets a custom property to be sent with every event. IEventProperty can be used to tag the property as\r\n * pii or customer content.\r\n * @param name - The name of the property.\r\n * @param value - The context property's value.\r\n */\r\n PropertiesPlugin.prototype.setProperty = function (name, value) {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n };\r\n return PropertiesPlugin;\r\n}(BaseTelemetryPlugin));\r\nexport { PropertiesPlugin };\r\n//# sourceMappingURL=PropertiesPlugin.js.map"],"names":[],"mappings":";;;;;AAAA,gFAAkC;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;2DA6BM,CAAC;;;;;;4BACqB;AAC5B;AACA;AACA"}
@@ -0,0 +1,168 @@
1
+ /*
2
+ * 1DS JS SDK Properties plugin, 4.3.9
3
+ * Copyright (c) Microsoft and contributors. All rights reserved.
4
+ * (Microsoft Internal Only)
5
+ */
6
+ /**
7
+ * SessionManager.ts
8
+ * @author Hector Hernandez (hectorh)
9
+ * @copyright Microsoft 2019
10
+ */
11
+ import dynamicProto from "@microsoft/dynamicproto-js";
12
+ import { _throwInternal, createGuid, isBoolean, isFunction, isUndefined, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from "@microsoft/1ds-core-js";
13
+ import { canUseLocalStorage, getStorage, setStorage } from "./Utils";
14
+ import { Session } from "./context/Session";
15
+ var cookieNameConst = "ai_session";
16
+ var SessionManager = /** @class */ (function () {
17
+ function SessionManager(core, propConfig, unloadHookContainer) {
18
+ var _cookieUpdatedTimestamp;
19
+ var _logger = safeGetLogger(core);
20
+ var cookieMgr = safeGetCookieMgr(core);
21
+ var _storageNamePrefix;
22
+ var _config;
23
+ dynamicProto(SessionManager, this, function (_self) {
24
+ var unloadHook = onConfigChange(propConfig, function () {
25
+ _config = propConfig;
26
+ _self.config = _config;
27
+ });
28
+ unloadHookContainer && unloadHookContainer.add(unloadHook);
29
+ _storageNamePrefix = function () { return _self.config.namePrefix ? cookieNameConst + _self.config.namePrefix : cookieNameConst; };
30
+ _self.automaticSession = new Session();
31
+ _self.update = function () {
32
+ if (!_self.automaticSession.getId()) {
33
+ _initializeAutomaticSession();
34
+ }
35
+ var autoSession = _self.automaticSession;
36
+ var config = _self.config;
37
+ var now = new Date().getTime();
38
+ var acquisitionExpired = now - autoSession.acquisitionDate > config.sessionExpirationMs;
39
+ var renewalExpired = now - autoSession.renewalDate > config.sessionRenewalMs;
40
+ // renew if acquisitionSpan or renewalSpan has ellapsed
41
+ if (acquisitionExpired || renewalExpired) {
42
+ // update automaticSession so session state has correct id
43
+ _renew();
44
+ }
45
+ else {
46
+ // do not update the cookie more often than cookieUpdateInterval
47
+ var cookieUpdatedTimestamp = _cookieUpdatedTimestamp;
48
+ if (!cookieUpdatedTimestamp || now - cookieUpdatedTimestamp > SessionManager.cookieUpdateInterval) {
49
+ autoSession.renewalDate = now;
50
+ _setCookie(autoSession.getId(), autoSession.acquisitionDate, autoSession.renewalDate);
51
+ }
52
+ }
53
+ };
54
+ _self.backup = function () {
55
+ var automaticSession = _self.automaticSession;
56
+ _setStorage(automaticSession.getId(), automaticSession.acquisitionDate, automaticSession.renewalDate);
57
+ };
58
+ /**
59
+ * @ignore
60
+ * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to
61
+ * initialize the automatic session.
62
+ */
63
+ function _initializeAutomaticSession() {
64
+ var cookie = cookieMgr.get(_storageNamePrefix());
65
+ if (cookie && isFunction(cookie.split)) {
66
+ _initializeAutomaticSessionWithData(cookie);
67
+ }
68
+ else {
69
+ // There's no cookie, but we might have session data in local storage
70
+ // This can happen if the session expired or the user actively deleted the cookie
71
+ // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.
72
+ // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.
73
+ var storage = getStorage(_logger, _storageNamePrefix());
74
+ if (storage) {
75
+ _initializeAutomaticSessionWithData(storage);
76
+ }
77
+ }
78
+ if (!_self.automaticSession.getId()) {
79
+ _renew();
80
+ }
81
+ }
82
+ /**
83
+ * @ignore
84
+ * Extract id, aquisitionDate, and renewalDate from an ai_session payload string and
85
+ * use this data to initialize automaticSession.
86
+ *
87
+ * @param sessionData - The string stored in an ai_session cookie or local storage backup
88
+ */
89
+ function _initializeAutomaticSessionWithData(sessionData) {
90
+ var automaticSession = _self.automaticSession;
91
+ var params = sessionData.split("|");
92
+ if (params.length > 0) {
93
+ automaticSession.setId(params[0]);
94
+ }
95
+ try {
96
+ if (params.length > 1) {
97
+ var acq = +params[1];
98
+ automaticSession.acquisitionDate = +new Date(acq);
99
+ automaticSession.acquisitionDate = automaticSession.acquisitionDate > 0 ? automaticSession.acquisitionDate : 0;
100
+ }
101
+ if (params.length > 2) {
102
+ var renewal = +params[2];
103
+ automaticSession.renewalDate = +new Date(renewal);
104
+ automaticSession.renewalDate = automaticSession.renewalDate > 0 ? automaticSession.renewalDate : 0;
105
+ }
106
+ }
107
+ catch (e) {
108
+ _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 510 /* _eExtendedInternalMessageId.ErrorParsingAISessionCookie */, "Error parsing ai_session cookie, session will be reset: " + e);
109
+ }
110
+ if (automaticSession.renewalDate === 0) {
111
+ _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 517 /* _eExtendedInternalMessageId.SessionRenewalDateIsZero */, "AI session renewal date is 0, session will be reset.");
112
+ }
113
+ }
114
+ function _renew() {
115
+ var automaticSession = _self.automaticSession;
116
+ var now = new Date().getTime();
117
+ var sessionAsGuid = _self.config.sessionAsGuid;
118
+ if (!isUndefined(sessionAsGuid) && sessionAsGuid) {
119
+ if (!isBoolean(sessionAsGuid)) {
120
+ automaticSession.setId(createGuid(sessionAsGuid));
121
+ }
122
+ else {
123
+ automaticSession.setId(createGuid());
124
+ }
125
+ }
126
+ else {
127
+ automaticSession.setId(newId(_config.idLength || 22));
128
+ }
129
+ automaticSession.acquisitionDate = now;
130
+ automaticSession.renewalDate = now;
131
+ _setCookie(automaticSession.getId(), automaticSession.acquisitionDate, automaticSession.renewalDate);
132
+ // If this browser does not support local storage, fire an internal log to keep track of it at this point
133
+ if (!canUseLocalStorage()) {
134
+ _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 505 /* _eExtendedInternalMessageId.BrowserDoesNotSupportLocalStorage */, "Browser does not support local storage. Session durations will be inaccurate.");
135
+ }
136
+ }
137
+ function _setCookie(guid, acq, renewal) {
138
+ // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner
139
+ // Expiring the cookie will cause the session to expire even if the user isn't on the page
140
+ var acquisitionExpiry = acq + _self.config.sessionExpirationMs;
141
+ var renewalExpiry = renewal + _self.config.sessionRenewalMs;
142
+ var cookieExpiry = new Date();
143
+ var cookie = [guid, acq, renewal];
144
+ if (acquisitionExpiry < renewalExpiry) {
145
+ cookieExpiry.setTime(acquisitionExpiry);
146
+ }
147
+ else {
148
+ cookieExpiry.setTime(renewalExpiry);
149
+ }
150
+ var cookieDomain = _self.config.cookieDomain || null;
151
+ cookieMgr.set(_storageNamePrefix(), cookie.join("|") + ";expires=" + cookieExpiry.toUTCString(), null, cookieDomain);
152
+ _cookieUpdatedTimestamp = new Date().getTime();
153
+ }
154
+ function _setStorage(guid, acq, renewal) {
155
+ // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires
156
+ // Browsers that don't support local storage won't be able to end sessions cleanly from the client
157
+ // The server will notice this and end the sessions itself, with loss of accurate session duration
158
+ setStorage(_logger, _storageNamePrefix(), [guid, acq, renewal].join("|"));
159
+ }
160
+ });
161
+ }
162
+ // Removed Stub for SessionManager.prototype.update.
163
+ // Removed Stub for SessionManager.prototype.backup.
164
+ SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms
165
+ return SessionManager;
166
+ }());
167
+ export { SessionManager };
168
+ //# sourceMappingURL=SessionManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SessionManager.js.map","sources":["SessionManager.js"],"sourcesContent":["/**\r\n* SessionManager.ts\r\n* @author Hector Hernandez (hectorh)\r\n* @copyright Microsoft 2019\r\n*/\r\nimport dynamicProto from \"@microsoft/dynamicproto-js\";\r\nimport { _throwInternal, createGuid, isBoolean, isFunction, isUndefined, newId, onConfigChange, safeGetCookieMgr, safeGetLogger } from \"@microsoft/1ds-core-js\";\r\nimport { canUseLocalStorage, getStorage, setStorage } from \"./Utils\";\r\nimport { Session } from \"./context/Session\";\r\nvar cookieNameConst = \"ai_session\";\r\nvar SessionManager = /** @class */ (function () {\r\n function SessionManager(core, propConfig, unloadHookContainer) {\r\n var _cookieUpdatedTimestamp;\r\n var _logger = safeGetLogger(core);\r\n var cookieMgr = safeGetCookieMgr(core);\r\n var _storageNamePrefix;\r\n var _config;\r\n dynamicProto(SessionManager, this, function (_self) {\r\n var unloadHook = onConfigChange(propConfig, function () {\r\n _config = propConfig;\r\n _self.config = _config;\r\n });\r\n unloadHookContainer && unloadHookContainer.add(unloadHook);\r\n _storageNamePrefix = function () { return _self.config.namePrefix ? cookieNameConst + _self.config.namePrefix : cookieNameConst; };\r\n _self.automaticSession = new Session();\r\n _self.update = function () {\r\n if (!_self.automaticSession.getId()) {\r\n _initializeAutomaticSession();\r\n }\r\n var autoSession = _self.automaticSession;\r\n var config = _self.config;\r\n var now = new Date().getTime();\r\n var acquisitionExpired = now - autoSession.acquisitionDate > config.sessionExpirationMs;\r\n var renewalExpired = now - autoSession.renewalDate > config.sessionRenewalMs;\r\n // renew if acquisitionSpan or renewalSpan has ellapsed\r\n if (acquisitionExpired || renewalExpired) {\r\n // update automaticSession so session state has correct id\r\n _renew();\r\n }\r\n else {\r\n // do not update the cookie more often than cookieUpdateInterval\r\n var cookieUpdatedTimestamp = _cookieUpdatedTimestamp;\r\n if (!cookieUpdatedTimestamp || now - cookieUpdatedTimestamp > SessionManager.cookieUpdateInterval) {\r\n autoSession.renewalDate = now;\r\n _setCookie(autoSession.getId(), autoSession.acquisitionDate, autoSession.renewalDate);\r\n }\r\n }\r\n };\r\n _self.backup = function () {\r\n var automaticSession = _self.automaticSession;\r\n _setStorage(automaticSession.getId(), automaticSession.acquisitionDate, automaticSession.renewalDate);\r\n };\r\n /**\r\n * @ignore\r\n * Use config.namePrefix + ai_session cookie data or local storage data (when the cookie is unavailable) to\r\n * initialize the automatic session.\r\n */\r\n function _initializeAutomaticSession() {\r\n var cookie = cookieMgr.get(_storageNamePrefix());\r\n if (cookie && isFunction(cookie.split)) {\r\n _initializeAutomaticSessionWithData(cookie);\r\n }\r\n else {\r\n // There's no cookie, but we might have session data in local storage\r\n // This can happen if the session expired or the user actively deleted the cookie\r\n // We only want to recover data if the cookie is missing from expiry. We should respect the user's wishes if the cookie was deleted actively.\r\n // The User class handles this for us and deletes our local storage object if the persistent user cookie was removed.\r\n var storage = getStorage(_logger, _storageNamePrefix());\r\n if (storage) {\r\n _initializeAutomaticSessionWithData(storage);\r\n }\r\n }\r\n if (!_self.automaticSession.getId()) {\r\n _renew();\r\n }\r\n }\r\n /**\r\n * @ignore\r\n * Extract id, aquisitionDate, and renewalDate from an ai_session payload string and\r\n * use this data to initialize automaticSession.\r\n *\r\n * @param sessionData - The string stored in an ai_session cookie or local storage backup\r\n */\r\n function _initializeAutomaticSessionWithData(sessionData) {\r\n var automaticSession = _self.automaticSession;\r\n var params = sessionData.split(\"|\");\r\n if (params.length > 0) {\r\n automaticSession.setId(params[0]);\r\n }\r\n try {\r\n if (params.length > 1) {\r\n var acq = +params[1];\r\n automaticSession.acquisitionDate = +new Date(acq);\r\n automaticSession.acquisitionDate = automaticSession.acquisitionDate > 0 ? automaticSession.acquisitionDate : 0;\r\n }\r\n if (params.length > 2) {\r\n var renewal = +params[2];\r\n automaticSession.renewalDate = +new Date(renewal);\r\n automaticSession.renewalDate = automaticSession.renewalDate > 0 ? automaticSession.renewalDate : 0;\r\n }\r\n }\r\n catch (e) {\r\n _throwInternal(_logger, 1 /* eLoggingSeverity.CRITICAL */, 510 /* _eExtendedInternalMessageId.ErrorParsingAISessionCookie */, \"Error parsing ai_session cookie, session will be reset: \" + e);\r\n }\r\n if (automaticSession.renewalDate === 0) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 517 /* _eExtendedInternalMessageId.SessionRenewalDateIsZero */, \"AI session renewal date is 0, session will be reset.\");\r\n }\r\n }\r\n function _renew() {\r\n var automaticSession = _self.automaticSession;\r\n var now = new Date().getTime();\r\n var sessionAsGuid = _self.config.sessionAsGuid;\r\n if (!isUndefined(sessionAsGuid) && sessionAsGuid) {\r\n if (!isBoolean(sessionAsGuid)) {\r\n automaticSession.setId(createGuid(sessionAsGuid));\r\n }\r\n else {\r\n automaticSession.setId(createGuid());\r\n }\r\n }\r\n else {\r\n automaticSession.setId(newId(_config.idLength || 22));\r\n }\r\n automaticSession.acquisitionDate = now;\r\n automaticSession.renewalDate = now;\r\n _setCookie(automaticSession.getId(), automaticSession.acquisitionDate, automaticSession.renewalDate);\r\n // If this browser does not support local storage, fire an internal log to keep track of it at this point\r\n if (!canUseLocalStorage()) {\r\n _throwInternal(_logger, 2 /* eLoggingSeverity.WARNING */, 505 /* _eExtendedInternalMessageId.BrowserDoesNotSupportLocalStorage */, \"Browser does not support local storage. Session durations will be inaccurate.\");\r\n }\r\n }\r\n function _setCookie(guid, acq, renewal) {\r\n // Set cookie to expire after the session expiry time passes or the session renewal deadline, whichever is sooner\r\n // Expiring the cookie will cause the session to expire even if the user isn't on the page\r\n var acquisitionExpiry = acq + _self.config.sessionExpirationMs;\r\n var renewalExpiry = renewal + _self.config.sessionRenewalMs;\r\n var cookieExpiry = new Date();\r\n var cookie = [guid, acq, renewal];\r\n if (acquisitionExpiry < renewalExpiry) {\r\n cookieExpiry.setTime(acquisitionExpiry);\r\n }\r\n else {\r\n cookieExpiry.setTime(renewalExpiry);\r\n }\r\n var cookieDomain = _self.config.cookieDomain || null;\r\n cookieMgr.set(_storageNamePrefix(), cookie.join(\"|\") + \";expires=\" + cookieExpiry.toUTCString(), null, cookieDomain);\r\n _cookieUpdatedTimestamp = new Date().getTime();\r\n }\r\n function _setStorage(guid, acq, renewal) {\r\n // Keep data in local storage to retain the last session id, allowing us to cleanly end the session when it expires\r\n // Browsers that don't support local storage won't be able to end sessions cleanly from the client\r\n // The server will notice this and end the sessions itself, with loss of accurate session duration\r\n setStorage(_logger, _storageNamePrefix(), [guid, acq, renewal].join(\"|\"));\r\n }\r\n });\r\n }\r\n SessionManager.prototype.update = function () {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n };\r\n /**\r\n * Record the current state of the automatic session and store it in our cookie string format\r\n * into the browser's local storage. This is used to restore the session data when the cookie\r\n * expires.\r\n */\r\n SessionManager.prototype.backup = function () {\r\n // @DynamicProtoStub - DO NOT add any code as this will be removed during packaging\r\n };\r\n SessionManager.cookieUpdateInterval = 60000; // 1 minute in ms\r\n return SessionManager;\r\n}());\r\nexport { SessionManager };\r\n//# sourceMappingURL=SessionManager.js.map"],"names":[],"mappings":";;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;oDAUM;AACN;AACA;AACA;AACA;AACA"}