@esri/telemetry-amazon 1.0.0-beta.2 → 1.0.0

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/LICENSE +13 -0
  2. package/README.md +119 -28
  3. package/dist/esm/auth.js +47 -0
  4. package/dist/esm/auth.js.map +1 -0
  5. package/dist/esm/auth.test.js +100 -0
  6. package/dist/esm/auth.test.js.map +1 -0
  7. package/dist/esm/build-access-properties.js +16 -0
  8. package/dist/esm/build-access-properties.js.map +1 -0
  9. package/dist/esm/build-access-properties.test.js +40 -0
  10. package/dist/esm/build-access-properties.test.js.map +1 -0
  11. package/dist/esm/create-event-log.js +31 -0
  12. package/dist/esm/create-event-log.js.map +1 -0
  13. package/dist/esm/create-event-log.test.js +273 -0
  14. package/dist/esm/create-event-log.test.js.map +1 -0
  15. package/dist/esm/create-page-view-log.js +19 -0
  16. package/dist/esm/create-page-view-log.js.map +1 -0
  17. package/dist/esm/create-page-view-log.test.js +69 -0
  18. package/dist/esm/create-page-view-log.test.js.map +1 -0
  19. package/dist/esm/format-telemetry-attributes.js +32 -0
  20. package/dist/esm/format-telemetry-attributes.js.map +1 -0
  21. package/dist/esm/format-telemetry-metrics.js +27 -0
  22. package/dist/esm/format-telemetry-metrics.js.map +1 -0
  23. package/dist/esm/format-telemetry-metrics.test.js +22 -0
  24. package/dist/esm/format-telemetry-metrics.test.js.map +1 -0
  25. package/dist/esm/get-portal-item-access-permissions.js +8 -0
  26. package/dist/esm/get-portal-item-access-permissions.js.map +1 -0
  27. package/dist/esm/get-portal-item-access-permissions.test.js +55 -0
  28. package/dist/esm/get-portal-item-access-permissions.test.js.map +1 -0
  29. package/dist/esm/index.js +63 -0
  30. package/dist/esm/index.js.map +1 -0
  31. package/dist/esm/index.test.js +196 -0
  32. package/dist/esm/index.test.js.map +1 -0
  33. package/dist/esm/set-portal-item-access-permissions.js +20 -0
  34. package/dist/esm/set-portal-item-access-permissions.js.map +1 -0
  35. package/dist/esm/set-portal-item-access-permissions.test.js +177 -0
  36. package/dist/esm/set-portal-item-access-permissions.test.js.map +1 -0
  37. package/dist/esm/types.js +2 -0
  38. package/dist/esm/types.js.map +1 -0
  39. package/dist/node/auth.js +51 -0
  40. package/dist/node/auth.js.map +1 -0
  41. package/dist/node/auth.test.js +103 -0
  42. package/dist/node/auth.test.js.map +1 -0
  43. package/dist/node/build-access-properties.js +20 -0
  44. package/dist/node/build-access-properties.js.map +1 -0
  45. package/dist/node/build-access-properties.test.js +42 -0
  46. package/dist/node/build-access-properties.test.js.map +1 -0
  47. package/dist/node/create-event-log.js +35 -0
  48. package/dist/node/create-event-log.js.map +1 -0
  49. package/dist/node/create-event-log.test.js +275 -0
  50. package/dist/node/create-event-log.test.js.map +1 -0
  51. package/dist/node/create-page-view-log.js +23 -0
  52. package/dist/node/create-page-view-log.js.map +1 -0
  53. package/dist/node/create-page-view-log.test.js +71 -0
  54. package/dist/node/create-page-view-log.test.js.map +1 -0
  55. package/dist/node/format-telemetry-attributes.js +36 -0
  56. package/dist/node/format-telemetry-attributes.js.map +1 -0
  57. package/dist/node/format-telemetry-metrics.js +31 -0
  58. package/dist/node/format-telemetry-metrics.js.map +1 -0
  59. package/dist/node/format-telemetry-metrics.test.js +24 -0
  60. package/dist/node/format-telemetry-metrics.test.js.map +1 -0
  61. package/dist/node/get-portal-item-access-permissions.js +12 -0
  62. package/dist/node/get-portal-item-access-permissions.js.map +1 -0
  63. package/dist/node/get-portal-item-access-permissions.test.js +58 -0
  64. package/dist/node/get-portal-item-access-permissions.test.js.map +1 -0
  65. package/dist/node/index.js +68 -0
  66. package/dist/node/index.js.map +1 -0
  67. package/dist/node/index.test.js +199 -0
  68. package/dist/node/index.test.js.map +1 -0
  69. package/dist/node/set-portal-item-access-permissions.js +24 -0
  70. package/dist/node/set-portal-item-access-permissions.js.map +1 -0
  71. package/dist/node/set-portal-item-access-permissions.test.js +180 -0
  72. package/dist/node/set-portal-item-access-permissions.test.js.map +1 -0
  73. package/dist/node/types.js +3 -0
  74. package/dist/node/types.js.map +1 -0
  75. package/dist/types/auth.d.ts +2 -0
  76. package/dist/types/auth.test.d.ts +1 -0
  77. package/dist/types/build-access-properties.d.ts +2 -0
  78. package/dist/types/build-access-properties.test.d.ts +1 -0
  79. package/dist/types/create-event-log.d.ts +6 -0
  80. package/dist/types/create-event-log.test.d.ts +1 -0
  81. package/dist/types/create-page-view-log.d.ts +8 -0
  82. package/dist/types/create-page-view-log.test.d.ts +1 -0
  83. package/dist/types/format-telemetry-attributes.d.ts +5 -0
  84. package/dist/types/format-telemetry-metrics.d.ts +2 -0
  85. package/dist/types/format-telemetry-metrics.test.d.ts +1 -0
  86. package/dist/types/get-portal-item-access-permissions.d.ts +2 -0
  87. package/dist/types/get-portal-item-access-permissions.test.d.ts +1 -0
  88. package/dist/types/index.d.ts +16 -0
  89. package/dist/types/index.test.d.ts +1 -0
  90. package/dist/types/set-portal-item-access-permissions.d.ts +3 -0
  91. package/dist/types/set-portal-item-access-permissions.test.d.ts +1 -0
  92. package/dist/types/types.d.ts +77 -0
  93. package/dist/umd/telemetry-amazon.js +6844 -0
  94. package/dist/umd/telemetry-amazon.js.map +1 -0
  95. package/dist/umd/telemetry-amazon.min.js +6844 -0
  96. package/dist/umd/telemetry-amazon.min.js.map +1 -0
  97. package/package.json +23 -6
  98. package/dist/telemetry-amazon.js.amd.js +0 -363
  99. package/dist/telemetry-amazon.js.amd.js.map +0 -1
  100. package/dist/telemetry-amazon.js.amd.min.js +0 -2
  101. package/dist/telemetry-amazon.js.amd.min.js.map +0 -1
  102. package/dist/telemetry-amazon.js.dojo.js +0 -363
  103. package/dist/telemetry-amazon.js.dojo.js.map +0 -1
  104. package/dist/telemetry-amazon.js.dojo.min.js +0 -2
  105. package/dist/telemetry-amazon.js.dojo.min.js.map +0 -1
  106. package/dist/telemetry-amazon.js.js +0 -367
  107. package/dist/telemetry-amazon.js.js.map +0 -1
  108. package/dist/telemetry-amazon.js.min.js +0 -2
  109. package/dist/telemetry-amazon.js.min.js.map +0 -1
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Amazon = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const auth_1 = require("./auth");
6
+ const create_event_log_1 = require("./create-event-log");
7
+ const create_page_view_log_1 = require("./create-page-view-log");
8
+ const analytics_1 = tslib_1.__importDefault(require("analytics"));
9
+ const aws_pinpoint_1 = tslib_1.__importDefault(require("@analytics/aws-pinpoint"));
10
+ const set_portal_item_access_permissions_1 = require("./set-portal-item-access-permissions");
11
+ const get_portal_item_access_permissions_1 = require("./get-portal-item-access-permissions");
12
+ class Amazon {
13
+ constructor(options) {
14
+ this.name = 'amazon';
15
+ const { app = {}, fips, userPoolID } = options;
16
+ this.analytics = (0, analytics_1.default)({
17
+ app: app.name,
18
+ version: app.version,
19
+ plugins: [
20
+ (0, aws_pinpoint_1.default)({
21
+ fips,
22
+ pinpointAppId: app.id,
23
+ getCredentials: () => {
24
+ return (0, auth_1.getCredentials)(userPoolID, { fips });
25
+ },
26
+ }),
27
+ ],
28
+ });
29
+ Object.assign(this, options);
30
+ }
31
+ init() {
32
+ return Promise.resolve();
33
+ }
34
+ static async setAccessPermissions({ id, authentication, username, accessChangeset, }) {
35
+ return (0, set_portal_item_access_permissions_1.setPortalItemAccessPermissions)({
36
+ id,
37
+ authentication,
38
+ username,
39
+ accessChangeset,
40
+ });
41
+ }
42
+ static async getAccessPermissions({ id, authentication, }) {
43
+ return (0, get_portal_item_access_permissions_1.getPortalItemAccessPermissions)({ id, authentication });
44
+ }
45
+ logPageView(page, options) {
46
+ const telemetryPayload = (0, create_page_view_log_1.createPageViewLog)({
47
+ page,
48
+ previousPage: this.previousPage,
49
+ options,
50
+ dimensionLookup: this.dimensions,
51
+ metricLookup: this.metrics,
52
+ });
53
+ const { pageUrl, pageName } = telemetryPayload;
54
+ this.previousPage = { pageUrl, pageName };
55
+ this.analytics.track('pageView', telemetryPayload);
56
+ }
57
+ logEvent(event = {}) {
58
+ const telemetryPayload = (0, create_event_log_1.createEventLog)({
59
+ event,
60
+ dimensionLookup: this.dimensions,
61
+ metricLookup: this.metrics,
62
+ });
63
+ const { name } = telemetryPayload;
64
+ this.analytics.track(name, telemetryPayload);
65
+ }
66
+ }
67
+ exports.Amazon = Amazon;
68
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;AAAA,iCAAwC;AACxC,yDAAoD;AACpD,iEAA2D;AAC3D,kEAAyD;AACzD,mFAAwD;AAYxD,6FAAsF;AACtF,6FAAsF;AAEtF,MAAa,MAAM;IAQjB,YAAY,OAA+B;QAN3C,SAAI,GAAW,QAAQ,CAAC;QAOtB,MAAM,EAAE,GAAG,GAAG,EAAe,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,IAAA,mBAAS,EAAC;YACzB,GAAG,EAAE,GAAG,CAAC,IAAI;YACb,OAAO,EAAE,GAAG,CAAC,OAAO;YACpB,OAAO,EAAE;gBACP,IAAA,sBAAiB,EAAC;oBAChB,IAAI;oBACJ,aAAa,EAAE,GAAG,CAAC,EAAE;oBACrB,cAAc,EAAE,GAAG,EAAE;wBACnB,OAAO,IAAA,qBAAc,EAAC,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;oBAC9C,CAAC;iBACF,CAAC;aACH;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/B,CAAC;IAED,IAAI;QACF,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC3B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAChC,EAAE,EACF,cAAc,EACd,QAAQ,EACR,eAAe,GACa;QAC5B,OAAO,IAAA,mEAA8B,EAAC;YACpC,EAAE;YACF,cAAc;YACd,QAAQ;YACR,eAAe;SAChB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,EAChC,EAAE,EACF,cAAc,GACc;QAC5B,OAAO,IAAA,mEAA8B,EAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAChE,CAAC;IAED,WAAW,CAAC,IAAY,EAAE,OAAyB;QACjD,MAAM,gBAAgB,GAAG,IAAA,wCAAiB,EAAC;YACzC,IAAI;YACJ,YAAY,EAAE,IAAI,CAAC,YAAY;YAC/B,OAAO;YACP,eAAe,EAAE,IAAI,CAAC,UAAU;YAChC,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,gBAAgB,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;IACrD,CAAC;IAED,QAAQ,CAAC,QAAsB,EAAE;QAC/B,MAAM,gBAAgB,GAAG,IAAA,iCAAc,EAAC;YACtC,KAAK;YACL,eAAe,EAAE,IAAI,CAAC,UAAU;YAChC,YAAY,EAAE,IAAI,CAAC,OAAO;SAC3B,CAAC,CAAC;QACH,MAAM,EAAE,IAAI,EAAE,GAAG,gBAAgB,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAC;IAC/C,CAAC;CACF;AA1ED,wBA0EC"}
@@ -0,0 +1,199 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const analytics_1 = tslib_1.__importDefault(require("analytics"));
5
+ const aws_pinpoint_1 = tslib_1.__importDefault(require("@analytics/aws-pinpoint"));
6
+ const portal = tslib_1.__importStar(require("@esri/arcgis-rest-portal"));
7
+ const _1 = require(".");
8
+ const set_portal_item_access_permissions_1 = require("./set-portal-item-access-permissions");
9
+ const mockAnalyticsTrack = jest.fn();
10
+ jest.mock('./create-event-log', () => {
11
+ return {
12
+ createEventLog: jest.fn().mockImplementation(() => {
13
+ return { name: 'foo' };
14
+ })
15
+ };
16
+ });
17
+ jest.mock('./create-page-view-log', () => {
18
+ return {
19
+ createPageViewLog: jest.fn().mockImplementation(() => {
20
+ return { pageView: 'foo' };
21
+ })
22
+ };
23
+ });
24
+ jest.mock('analytics', () => {
25
+ return jest.fn().mockImplementation(() => {
26
+ return {
27
+ track: mockAnalyticsTrack,
28
+ };
29
+ });
30
+ });
31
+ jest.mock('@analytics/aws-pinpoint', () => {
32
+ return jest.fn().mockImplementation(() => {
33
+ return { plugin: 'foo' };
34
+ });
35
+ });
36
+ jest.mock('@esri/arcgis-rest-portal');
37
+ const getItemMock = portal.getItem;
38
+ const updateItemMock = portal.updateItem;
39
+ jest.mock('./set-portal-item-access-permissions');
40
+ describe('Amazon', () => {
41
+ beforeEach(() => {
42
+ analytics_1.default.mockClear();
43
+ aws_pinpoint_1.default.mockClear();
44
+ mockAnalyticsTrack.mockClear();
45
+ });
46
+ test('Amazon constructor no app object', () => {
47
+ const opts = {
48
+ userPoolID: 'pool-id',
49
+ };
50
+ const telemetry = new _1.Amazon(opts);
51
+ expect(telemetry).toEqual(expect.objectContaining({
52
+ userPoolID: 'pool-id',
53
+ name: 'amazon',
54
+ }));
55
+ expect(analytics_1.default).toHaveBeenCalledTimes(1);
56
+ expect(analytics_1.default).toBeCalledWith({ plugins: [{ plugin: 'foo' }] });
57
+ expect(aws_pinpoint_1.default).toHaveBeenCalledTimes(1);
58
+ expect(aws_pinpoint_1.default).toBeCalledWith(expect.objectContaining({
59
+ fips: undefined,
60
+ getCredentials: expect.any(Function),
61
+ pinpointAppId: undefined,
62
+ }));
63
+ });
64
+ test('Amazon constructor no fips option', () => {
65
+ const opts = {
66
+ userPoolID: 'pool-id',
67
+ app: {
68
+ name: 'test',
69
+ id: '1234',
70
+ },
71
+ };
72
+ const telemetry = new _1.Amazon(opts);
73
+ expect(telemetry).toEqual(expect.objectContaining({
74
+ app: {
75
+ id: '1234',
76
+ name: 'test',
77
+ },
78
+ userPoolID: 'pool-id',
79
+ name: 'amazon',
80
+ }));
81
+ expect(analytics_1.default).toHaveBeenCalledTimes(1);
82
+ expect(analytics_1.default).toBeCalledWith({
83
+ app: 'test',
84
+ plugins: [{ plugin: 'foo' }],
85
+ });
86
+ expect(aws_pinpoint_1.default).toHaveBeenCalledTimes(1);
87
+ expect(aws_pinpoint_1.default).toBeCalledWith(expect.objectContaining({
88
+ fips: undefined,
89
+ getCredentials: expect.any(Function),
90
+ pinpointAppId: '1234',
91
+ }));
92
+ });
93
+ test('Amazon constructor fips option', () => {
94
+ const opts = {
95
+ fips: true,
96
+ userPoolID: 'pool-id',
97
+ app: {
98
+ name: 'test',
99
+ id: '1234',
100
+ },
101
+ };
102
+ const telemetry = new _1.Amazon(opts);
103
+ expect(telemetry).toEqual(expect.objectContaining({
104
+ app: {
105
+ id: '1234',
106
+ name: 'test',
107
+ },
108
+ fips: true,
109
+ userPoolID: 'pool-id',
110
+ name: 'amazon',
111
+ }));
112
+ expect(analytics_1.default).toHaveBeenCalledTimes(1);
113
+ expect(analytics_1.default).toBeCalledWith({
114
+ app: 'test',
115
+ plugins: [{ plugin: 'foo' }],
116
+ });
117
+ expect(aws_pinpoint_1.default).toHaveBeenCalledTimes(1);
118
+ expect(aws_pinpoint_1.default).toBeCalledWith(expect.objectContaining({
119
+ fips: true,
120
+ getCredentials: expect.any(Function),
121
+ pinpointAppId: '1234',
122
+ }));
123
+ });
124
+ test('Amazon methods call dependencies', () => {
125
+ const opts = {
126
+ fips: true,
127
+ userPoolID: 'pool-id',
128
+ app: {
129
+ name: 'test',
130
+ id: '1234',
131
+ },
132
+ };
133
+ const telemetry = new _1.Amazon(opts);
134
+ telemetry.logPageView('foo');
135
+ expect(mockAnalyticsTrack).toHaveBeenCalledTimes(1);
136
+ expect(mockAnalyticsTrack.mock.calls[0]).toEqual([
137
+ 'pageView',
138
+ { pageView: 'foo' },
139
+ ]);
140
+ telemetry.logEvent({ eventType: 'foo' });
141
+ expect(mockAnalyticsTrack).toHaveBeenCalledTimes(2);
142
+ expect(mockAnalyticsTrack.mock.calls[1]).toEqual(['foo', { name: 'foo' }]);
143
+ });
144
+ test('Amazon track can handle undefined event or eventType', () => {
145
+ const opts = {
146
+ fips: true,
147
+ userPoolID: 'pool-id',
148
+ app: {
149
+ name: 'test',
150
+ id: '1234',
151
+ },
152
+ };
153
+ const telemetry = new _1.Amazon(opts);
154
+ telemetry.logPageView(undefined);
155
+ expect(mockAnalyticsTrack).toHaveBeenCalledTimes(1);
156
+ expect(mockAnalyticsTrack.mock.calls[0]).toEqual([
157
+ 'pageView',
158
+ { pageView: 'foo' },
159
+ ]);
160
+ telemetry.logEvent();
161
+ expect(mockAnalyticsTrack).toHaveBeenCalledTimes(2);
162
+ expect(mockAnalyticsTrack.mock.calls[1]).toEqual(['foo', { name: 'foo' }]);
163
+ telemetry.logEvent({});
164
+ expect(mockAnalyticsTrack).toHaveBeenCalledTimes(3);
165
+ expect(mockAnalyticsTrack.mock.calls[1]).toEqual(['foo', { name: 'foo' }]);
166
+ });
167
+ describe('getAccessPermissions', () => {
168
+ test('should call getItem', async () => {
169
+ const accessPropertiesMock = { access: { foo: 'foo', bar: 'bar' } };
170
+ getItemMock.mockResolvedValue({
171
+ properties: { telemetry: { arcgis: accessPropertiesMock } },
172
+ });
173
+ const result = await _1.Amazon.getAccessPermissions({
174
+ id: 'test_item_id',
175
+ authentication: 'bar',
176
+ });
177
+ expect(result).toEqual(accessPropertiesMock);
178
+ expect(getItemMock).toBeCalledTimes(1);
179
+ getItemMock.mockRestore();
180
+ });
181
+ });
182
+ describe('setAccessPermissions', () => {
183
+ test('should call setPortalItemAccessPermissions if scope is portal', async () => {
184
+ const result = await _1.Amazon.setAccessPermissions({
185
+ id: 'test_item_id',
186
+ authentication: 'bar',
187
+ username: 'test_username',
188
+ accessChangeset: [
189
+ {
190
+ action: 'add',
191
+ targetProperty: 'public',
192
+ },
193
+ ],
194
+ });
195
+ expect(set_portal_item_access_permissions_1.setPortalItemAccessPermissions).toBeCalledTimes(1);
196
+ });
197
+ });
198
+ });
199
+ //# sourceMappingURL=index.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/index.test.ts"],"names":[],"mappings":";;;AAAA,kEAAkC;AAClC,mFAAwD;AACxD,yEAAmD;AACnD,wBAA2B;AAE3B,6FAAsF;AAEtF,MAAM,kBAAkB,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;AACrC,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,EAAE;IACnC,OAAO;QACL,cAAc,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;YAChD,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACzB,CAAC,CAAC;KACH,CAAA;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACvC,OAAO;QACP,iBAAiB,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;YACjD,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;QAC7B,CAAC,CAAC;KACH,CAAA;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,GAAG,EAAE;IAC1B,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;QACvC,OAAO;YACL,KAAK,EAAE,kBAAkB;SAC1B,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACxC,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,EAAE;QACvC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3B,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAoB,CAAC;AAChD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAuB,CAAC;AAEtD,IAAI,CAAC,IAAI,CAAC,sCAAsC,CAAC,CAAC;AAElD,QAAQ,CAAC,QAAQ,EAAE,GAAG,EAAE;IACtB,UAAU,CAAC,GAAG,EAAE;QACb,mBAAuB,CAAC,SAAS,EAAE,CAAC;QACrC,sBAAiB,CAAC,SAAS,EAAE,CAAC;QAC9B,kBAAkB,CAAC,SAAS,EAAE,CAAC;IACjC,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,SAAS;SACtB,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,SAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CACvB,MAAM,CAAC,gBAAgB,CAAC;YACtB,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,QAAQ;SACf,CAAC,CACH,CAAC;QACF,MAAM,CAAC,mBAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,mBAAS,CAAC,CAAC,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;QACnE,MAAM,CAAC,sBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,sBAAiB,CAAC,CAAC,cAAc,CACtC,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,SAAS;YACf,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpC,aAAa,EAAE,SAAS;SACzB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,mCAAmC,EAAE,GAAG,EAAE;QAC7C,MAAM,IAAI,GAAG;YACX,UAAU,EAAE,SAAS;YACrB,GAAG,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,MAAM;aACX;SACF,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,SAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CACvB,MAAM,CAAC,gBAAgB,CAAC;YACtB,GAAG,EAAE;gBACH,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,MAAM;aACb;YACD,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,QAAQ;SACf,CAAC,CACH,CAAC;QACF,MAAM,CAAC,mBAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,mBAAS,CAAC,CAAC,cAAc,CAAC;YAC/B,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SAC7B,CAAC,CAAC;QACH,MAAM,CAAC,sBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,sBAAiB,CAAC,CAAC,cAAc,CACtC,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,SAAS;YACf,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpC,aAAa,EAAE,MAAM;SACtB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,gCAAgC,EAAE,GAAG,EAAE;QAC1C,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,SAAS;YACrB,GAAG,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,MAAM;aACX;SACF,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,SAAM,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,CAAC,SAAS,CAAC,CAAC,OAAO,CACvB,MAAM,CAAC,gBAAgB,CAAC;YACtB,GAAG,EAAE;gBACH,EAAE,EAAE,MAAM;gBACV,IAAI,EAAE,MAAM;aACb;YACD,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,SAAS;YACrB,IAAI,EAAE,QAAQ;SACf,CAAC,CACH,CAAC;QACF,MAAM,CAAC,mBAAS,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QAC3C,MAAM,CAAC,mBAAS,CAAC,CAAC,cAAc,CAAC;YAC/B,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;SAC7B,CAAC,CAAC;QACH,MAAM,CAAC,sBAAiB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACnD,MAAM,CAAC,sBAAiB,CAAC,CAAC,cAAc,CACtC,MAAM,CAAC,gBAAgB,CAAC;YACtB,IAAI,EAAE,IAAI;YACV,cAAc,EAAE,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC;YACpC,aAAa,EAAE,MAAM;SACtB,CAAC,CACH,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,kCAAkC,EAAE,GAAG,EAAE;QAC5C,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,SAAS;YACrB,GAAG,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,MAAM;aACX;SACF,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,SAAM,CAAC,IAAI,CAAC,CAAC;QACnC,SAAS,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7B,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/C,UAAU;YACV,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpB,CAAC,CAAC;QACH,SAAS,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;QACzC,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,sDAAsD,EAAE,GAAG,EAAE;QAChE,MAAM,IAAI,GAAG;YACX,IAAI,EAAE,IAAI;YACV,UAAU,EAAE,SAAS;YACrB,GAAG,EAAE;gBACH,IAAI,EAAE,MAAM;gBACZ,EAAE,EAAE,MAAM;aACX;SACF,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,SAAM,CAAC,IAAI,CAAC,CAAC;QACnC,SAAS,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;QACjC,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;YAC/C,UAAU;YACV,EAAE,QAAQ,EAAE,KAAK,EAAE;SACpB,CAAC,CAAC;QACH,SAAS,CAAC,QAAQ,EAAE,CAAC;QACrB,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;QAC3E,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QACvB,MAAM,CAAC,kBAAkB,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC,qBAAqB,EAAE,KAAK,IAAI,EAAE;YACrC,MAAM,oBAAoB,GAAG,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC;YAEpE,WAAW,CAAC,iBAAiB,CAAC;gBAC5B,UAAU,EAAE,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,EAAE;aAC5D,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,SAAM,CAAC,oBAAoB,CAAC;gBAC/C,EAAE,EAAE,cAAc;gBAClB,cAAc,EAAE,KAA+B;aAChD,CAAC,CAAC;YAEH,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAC7C,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;YACvC,WAAW,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;QACpC,IAAI,CAAC,+DAA+D,EAAE,KAAK,IAAI,EAAE;YAC/E,MAAM,MAAM,GAAG,MAAM,SAAM,CAAC,oBAAoB,CAAC;gBAC/C,EAAE,EAAE,cAAc;gBAClB,cAAc,EAAE,KAA+B;gBAC/C,QAAQ,EAAE,eAAe;gBACzB,eAAe,EAAE;oBACf;wBACE,MAAM,EAAE,KAAK;wBACb,cAAc,EAAE,QAAQ;qBACzB;iBACF;aACF,CAAC,CAAC;YAEH,MAAM,CAAC,mEAA8B,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC5D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.setPortalItemAccessPermissions = void 0;
4
+ const tslib_1 = require("tslib");
5
+ const arcgis_rest_portal_1 = require("@esri/arcgis-rest-portal");
6
+ const build_access_properties_1 = require("./build-access-properties");
7
+ async function setPortalItemAccessPermissions({ id, authentication, username, accessChangeset, }) {
8
+ const { properties = {} } = await (0, arcgis_rest_portal_1.getItem)(id, {
9
+ authentication,
10
+ });
11
+ const _a = properties.telemetry, _b = _a === void 0 ? {} : _a, { arcgis: { access: currentAccessProperties = {} } = {} } = _b, additionalTelemetryProperties = tslib_1.__rest(_b, ["arcgis"]);
12
+ const accessProperties = (0, build_access_properties_1.buildAccessProperties)(username, currentAccessProperties, accessChangeset);
13
+ return (0, arcgis_rest_portal_1.updateItem)({
14
+ item: {
15
+ id,
16
+ properties: Object.assign(Object.assign({}, properties), { telemetry: Object.assign(Object.assign({}, additionalTelemetryProperties), { arcgis: {
17
+ access: Object.assign({}, accessProperties),
18
+ } }) }),
19
+ },
20
+ authentication,
21
+ });
22
+ }
23
+ exports.setPortalItemAccessPermissions = setPortalItemAccessPermissions;
24
+ //# sourceMappingURL=set-portal-item-access-permissions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-portal-item-access-permissions.js","sourceRoot":"","sources":["../../src/set-portal-item-access-permissions.ts"],"names":[],"mappings":";;;;AAAA,iEAIkC;AAClC,uEAAkE;AAG3D,KAAK,UAAU,8BAA8B,CAAC,EACnD,EAAE,EACF,cAAc,EACd,QAAQ,EACR,eAAe,GACa;IAC5B,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,MAAM,IAAA,4BAAO,EAAC,EAAE,EAAE;QAC5C,cAAc;KACf,CAAC,CAAC;IACH,MACE,KAIE,UAAU,UADN,EAHN,qBAGI,EAAE,KAAA,EAHN,EACE,MAAM,EAAE,EAAE,MAAM,EAAE,uBAAuB,GAAG,EAAE,EAAE,GAAG,EAAE,OAEjD,EADD,6BAA6B,sBAFvB,UAGV,CACW,CAAC;IAEf,MAAM,gBAAgB,GAAG,IAAA,+CAAqB,EAC5C,QAAQ,EACR,uBAAuB,EACvB,eAAe,CAChB,CAAC;IAEF,OAAO,IAAA,+BAAU,EAAC;QAChB,IAAI,EAAE;YACJ,EAAE;YACF,UAAU,kCACL,UAAU,KACb,SAAS,kCACJ,6BAA6B,KAChC,MAAM,EAAE;wBACN,MAAM,oBAAO,gBAAgB,CAAE;qBAChC,MAEJ;SACF;QACD,cAAc;KACf,CAAC,CAAC;AACL,CAAC;AArCD,wEAqCC"}
@@ -0,0 +1,180 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ const set_portal_item_access_permissions_1 = require("./set-portal-item-access-permissions");
5
+ const portal = tslib_1.__importStar(require("@esri/arcgis-rest-portal"));
6
+ const buildAccessProperties = tslib_1.__importStar(require("./build-access-properties"));
7
+ jest.mock('@esri/arcgis-rest-portal');
8
+ const getItemMock = portal.getItem;
9
+ const updateItemMock = portal.updateItem;
10
+ jest.mock('./build-access-properties');
11
+ const buildAccessPropertiesMock = buildAccessProperties.buildAccessProperties;
12
+ afterEach(() => {
13
+ jest.resetAllMocks();
14
+ });
15
+ describe('setPortalItemAccessPermissions', () => {
16
+ test('should call getItem with correct arguments', async () => {
17
+ getItemMock.mockResolvedValue({
18
+ id: 'itemId',
19
+ properties: {},
20
+ });
21
+ const id = 'foo';
22
+ const authentication = 'bar';
23
+ const result = await (0, set_portal_item_access_permissions_1.setPortalItemAccessPermissions)({
24
+ id,
25
+ authentication,
26
+ username: 'baz',
27
+ accessChangeset: [],
28
+ });
29
+ expect(getItemMock).toBeCalledTimes(1);
30
+ expect(getItemMock).toBeCalledWith(id, { authentication });
31
+ });
32
+ test('should call buildAccessProperties with correct arguments', async () => {
33
+ getItemMock.mockResolvedValue({
34
+ id: 'itemId',
35
+ properties: {},
36
+ });
37
+ const username = 'test_username';
38
+ const accessChangeset = [];
39
+ const result = await (0, set_portal_item_access_permissions_1.setPortalItemAccessPermissions)({
40
+ id: 'foo',
41
+ authentication: 'bar',
42
+ username,
43
+ accessChangeset,
44
+ });
45
+ expect(buildAccessPropertiesMock).toBeCalledTimes(1);
46
+ expect(buildAccessPropertiesMock).toBeCalledWith(username, {}, accessChangeset);
47
+ });
48
+ test('should call updateItem with correct arguments and set empty access properties', async () => {
49
+ const id = 'foo';
50
+ const authentication = 'bar';
51
+ const username = 'test_username';
52
+ const accessChangeset = [];
53
+ getItemMock.mockResolvedValue({
54
+ id,
55
+ properties: {},
56
+ });
57
+ buildAccessPropertiesMock.mockReturnValue({});
58
+ const result = await (0, set_portal_item_access_permissions_1.setPortalItemAccessPermissions)({
59
+ id,
60
+ authentication,
61
+ username,
62
+ accessChangeset,
63
+ });
64
+ expect(updateItemMock).toBeCalledTimes(1);
65
+ expect(updateItemMock).toBeCalledWith({
66
+ item: {
67
+ id,
68
+ properties: {
69
+ telemetry: {
70
+ arcgis: {
71
+ access: {},
72
+ },
73
+ },
74
+ },
75
+ },
76
+ authentication,
77
+ });
78
+ });
79
+ test('should call updateItem with correct arguments, set public access properties, and keep existing properties', async () => {
80
+ const id = 'foo';
81
+ const authentication = 'bar';
82
+ const username = 'test_username';
83
+ const accessChangeset = [
84
+ { action: 'add', targetProperty: 'public' },
85
+ ];
86
+ getItemMock.mockResolvedValue({
87
+ id,
88
+ properties: {
89
+ existingProp1: 'existingProp1',
90
+ existingProp2: 'existingProp2',
91
+ },
92
+ });
93
+ buildAccessPropertiesMock.mockReturnValue({
94
+ public: {
95
+ updatedAt: '2020-01-01T00:00:00.000Z',
96
+ updatedBy: username,
97
+ },
98
+ });
99
+ const result = await (0, set_portal_item_access_permissions_1.setPortalItemAccessPermissions)({
100
+ id,
101
+ authentication,
102
+ username,
103
+ accessChangeset,
104
+ });
105
+ expect(updateItemMock).toBeCalledTimes(1);
106
+ expect(updateItemMock).toBeCalledWith({
107
+ item: {
108
+ id,
109
+ properties: {
110
+ existingProp1: 'existingProp1',
111
+ existingProp2: 'existingProp2',
112
+ telemetry: {
113
+ arcgis: {
114
+ access: {
115
+ public: {
116
+ updatedAt: '2020-01-01T00:00:00.000Z',
117
+ updatedBy: username,
118
+ },
119
+ },
120
+ },
121
+ },
122
+ },
123
+ },
124
+ authentication,
125
+ });
126
+ });
127
+ test('should call updateItem with correct arguments, set public access properties, keep existing telemetry properties', async () => {
128
+ const id = 'foo';
129
+ const authentication = 'bar';
130
+ const username = 'test_username';
131
+ const accessChangeset = [
132
+ { action: 'add', targetProperty: 'public' },
133
+ ];
134
+ getItemMock.mockResolvedValue({
135
+ id,
136
+ properties: {
137
+ telemetry: {
138
+ google: {
139
+ trackingId: 'google-tracking-id',
140
+ },
141
+ },
142
+ },
143
+ });
144
+ buildAccessPropertiesMock.mockReturnValue({
145
+ public: {
146
+ updatedAt: '2020-01-01T00:00:00.000Z',
147
+ updatedBy: username,
148
+ },
149
+ });
150
+ const result = await (0, set_portal_item_access_permissions_1.setPortalItemAccessPermissions)({
151
+ id,
152
+ authentication,
153
+ username,
154
+ accessChangeset,
155
+ });
156
+ expect(updateItemMock).toBeCalledTimes(1);
157
+ expect(updateItemMock).toBeCalledWith({
158
+ item: {
159
+ id,
160
+ properties: {
161
+ telemetry: {
162
+ google: {
163
+ trackingId: 'google-tracking-id',
164
+ },
165
+ arcgis: {
166
+ access: {
167
+ public: {
168
+ updatedAt: '2020-01-01T00:00:00.000Z',
169
+ updatedBy: username,
170
+ },
171
+ },
172
+ },
173
+ },
174
+ },
175
+ },
176
+ authentication,
177
+ });
178
+ });
179
+ });
180
+ //# sourceMappingURL=set-portal-item-access-permissions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set-portal-item-access-permissions.test.js","sourceRoot":"","sources":["../../src/set-portal-item-access-permissions.test.ts"],"names":[],"mappings":";;;AAAA,6FAAsF;AACtF,yEAAmD;AAEnD,yFAAmE;AAGnE,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,MAAM,CAAC,OAAoB,CAAC;AAChD,MAAM,cAAc,GAAG,MAAM,CAAC,UAAuB,CAAC;AAEtD,IAAI,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAC;AACvC,MAAM,yBAAyB,GAC7B,qBAAqB,CAAC,qBAAkC,CAAC;AAE3D,SAAS,CAAC,GAAG,EAAE;IACb,IAAI,CAAC,aAAa,EAAE,CAAC;AACvB,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAC9C,IAAI,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QAC5D,WAAW,CAAC,iBAAiB,CAAC;YAC5B,EAAE,EAAE,QAAQ;YACZ,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,MAAM,EAAE,GAAG,KAAK,CAAC;QACjB,MAAM,cAAc,GAAG,KAA+B,CAAC;QAEvD,MAAM,MAAM,GAAG,MAAM,IAAA,mEAA8B,EAAC;YAClD,EAAE;YACF,cAAc;YACd,QAAQ,EAAE,KAAK;YACf,eAAe,EAAE,EAAE;SACpB,CAAC,CAAC;QAEH,MAAM,CAAC,WAAW,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,CAAC,WAAW,CAAC,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;IAC7D,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,0DAA0D,EAAE,KAAK,IAAI,EAAE;QAC1E,WAAW,CAAC,iBAAiB,CAAC;YAC5B,EAAE,EAAE,QAAQ;YACZ,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,eAAe,CAAC;QACjC,MAAM,eAAe,GAAuB,EAAE,CAAC;QAE/C,MAAM,MAAM,GAAG,MAAM,IAAA,mEAA8B,EAAC;YAClD,EAAE,EAAE,KAAK;YACT,cAAc,EAAE,KAA+B;YAC/C,QAAQ;YACR,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,yBAAyB,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,CAAC,yBAAyB,CAAC,CAAC,cAAc,CAC9C,QAAQ,EACR,EAAE,EACF,eAAe,CAChB,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,+EAA+E,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,EAAE,GAAG,KAAK,CAAC;QACjB,MAAM,cAAc,GAAG,KAA+B,CAAC;QACvD,MAAM,QAAQ,GAAG,eAAe,CAAC;QACjC,MAAM,eAAe,GAAuB,EAAE,CAAC;QAE/C,WAAW,CAAC,iBAAiB,CAAC;YAC5B,EAAE;YACF,UAAU,EAAE,EAAE;SACf,CAAC,CAAC;QAEH,yBAAyB,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE9C,MAAM,MAAM,GAAG,MAAM,IAAA,mEAA8B,EAAC;YAClD,EAAE;YACF,cAAc;YACd,QAAQ;YACR,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC;YACpC,IAAI,EAAE;gBACJ,EAAE;gBACF,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,MAAM,EAAE;4BACN,MAAM,EAAE,EAAE;yBACX;qBACF;iBACF;aACF;YACD,cAAc;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,2GAA2G,EAAE,KAAK,IAAI,EAAE;QAC3H,MAAM,EAAE,GAAG,KAAK,CAAC;QACjB,MAAM,cAAc,GAAG,KAA+B,CAAC;QACvD,MAAM,QAAQ,GAAG,eAAe,CAAC;QACjC,MAAM,eAAe,GAAuB;YAC1C,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE;SAC5C,CAAC;QAEF,WAAW,CAAC,iBAAiB,CAAC;YAC5B,EAAE;YACF,UAAU,EAAE;gBACV,aAAa,EAAE,eAAe;gBAC9B,aAAa,EAAE,eAAe;aAC/B;SACF,CAAC,CAAC;QAEH,yBAAyB,CAAC,eAAe,CAAC;YACxC,MAAM,EAAE;gBACN,SAAS,EAAE,0BAA0B;gBACrC,SAAS,EAAE,QAAQ;aACpB;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAA,mEAA8B,EAAC;YAClD,EAAE;YACF,cAAc;YACd,QAAQ;YACR,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC;YACpC,IAAI,EAAE;gBACJ,EAAE;gBACF,UAAU,EAAE;oBACV,aAAa,EAAE,eAAe;oBAC9B,aAAa,EAAE,eAAe;oBAC9B,SAAS,EAAE;wBACT,MAAM,EAAE;4BACN,MAAM,EAAE;gCACN,MAAM,EAAE;oCACN,SAAS,EAAE,0BAA0B;oCACrC,SAAS,EAAE,QAAQ;iCACpB;6BACF;yBACF;qBACF;iBACF;aACF;YACD,cAAc;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,iHAAiH,EAAE,KAAK,IAAI,EAAE;QACjI,MAAM,EAAE,GAAG,KAAK,CAAC;QACjB,MAAM,cAAc,GAAG,KAA+B,CAAC;QACvD,MAAM,QAAQ,GAAG,eAAe,CAAC;QACjC,MAAM,eAAe,GAAuB;YAC1C,EAAE,MAAM,EAAE,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE;SAC5C,CAAC;QAEF,WAAW,CAAC,iBAAiB,CAAC;YAC5B,EAAE;YACF,UAAU,EAAE;gBACV,SAAS,EAAE;oBACT,MAAM,EAAE;wBACN,UAAU,EAAE,oBAAoB;qBACjC;iBACF;aACF;SACF,CAAC,CAAC;QAEH,yBAAyB,CAAC,eAAe,CAAC;YACxC,MAAM,EAAE;gBACN,SAAS,EAAE,0BAA0B;gBACrC,SAAS,EAAE,QAAQ;aACpB;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAA,mEAA8B,EAAC;YAClD,EAAE;YACF,cAAc;YACd,QAAQ;YACR,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,CAAC,cAAc,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM,CAAC,cAAc,CAAC,CAAC,cAAc,CAAC;YACpC,IAAI,EAAE;gBACJ,EAAE;gBACF,UAAU,EAAE;oBACV,SAAS,EAAE;wBACT,MAAM,EAAE;4BACN,UAAU,EAAE,oBAAoB;yBACjC;wBACD,MAAM,EAAE;4BACN,MAAM,EAAE;gCACN,MAAM,EAAE;oCACN,SAAS,EAAE,0BAA0B;oCACrC,SAAS,EAAE,QAAQ;iCACpB;6BACF;yBACF;qBACF;iBACF;aACF;YACD,cAAc;SACf,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,2 @@
1
+ import { AmazonTelemetryOptions } from './types';
2
+ export declare function getCredentials(IdentityPoolId: string, options?: Partial<AmazonTelemetryOptions>): Promise<any>;
@@ -0,0 +1 @@
1
+ import 'cross-fetch/polyfill';
@@ -0,0 +1,2 @@
1
+ import { IAccessChangeset } from './types';
2
+ export declare function buildAccessProperties(username: string, currentAccessProperties: Record<string, any>, accessChangeset: IAccessChangeset[]): Record<string, any>;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,6 @@
1
+ import { EventData, LogEventPayload } from './types';
2
+ export declare function createEventLog({ event, dimensionLookup, metricLookup, }: {
3
+ event: EventData;
4
+ dimensionLookup: Record<string, any>;
5
+ metricLookup: Record<string, any>;
6
+ }): LogEventPayload;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,8 @@
1
+ import { LogPageViewPayload } from './types';
2
+ export declare function createPageViewLog({ page, previousPage, options, dimensionLookup, metricLookup, }: {
3
+ page: string;
4
+ previousPage?: Record<string, string>;
5
+ options: Record<string, any>;
6
+ dimensionLookup: Record<string, any>;
7
+ metricLookup: Record<string, number>;
8
+ }): LogPageViewPayload;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,5 @@
1
+ export declare function formatTelemetryAttributes({ telemetryData, dimensionLookup, excludeKeys, }: {
2
+ telemetryData: Record<string, any>;
3
+ dimensionLookup?: Record<string, string>;
4
+ excludeKeys?: string[];
5
+ }): Record<string, any>;
@@ -0,0 +1,2 @@
1
+ import { Metrics } from './types';
2
+ export declare function formatTelemetryMetrics(telemetryData: Record<string, any>, metricLookup?: Record<string, any>): Metrics;
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,2 @@
1
+ import { IGetAccessPermissionsParams } from './types';
2
+ export declare function getPortalItemAccessPermissions({ id, authentication, }: IGetAccessPermissionsParams): Promise<Record<string, any>>;
@@ -0,0 +1,16 @@
1
+ import { AnalyticsInstance } from 'analytics';
2
+ import { AmazonTelemetryOptions, Dimensions, Metrics, IAmazon, PageViewOptions, EventOptions, ISetAccessPermissionsParams, IGetAccessPermissionsParams } from './types';
3
+ export declare class Amazon implements IAmazon<Dimensions, Metrics> {
4
+ analytics: AnalyticsInstance;
5
+ name: string;
6
+ previousPage: any;
7
+ dimensions: Dimensions;
8
+ metrics: Metrics;
9
+ disabled: boolean;
10
+ constructor(options: AmazonTelemetryOptions);
11
+ init(): Promise<void>;
12
+ static setAccessPermissions({ id, authentication, username, accessChangeset, }: ISetAccessPermissionsParams): Promise<import("@esri/arcgis-rest-portal").IUpdateItemResponse>;
13
+ static getAccessPermissions({ id, authentication, }: IGetAccessPermissionsParams): Promise<Record<string, any>>;
14
+ logPageView(page: string, options?: PageViewOptions): void;
15
+ logEvent(event?: EventOptions): void;
16
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,3 @@
1
+ import { IUpdateItemResponse } from '@esri/arcgis-rest-portal';
2
+ import { ISetAccessPermissionsParams } from './types';
3
+ export declare function setPortalItemAccessPermissions({ id, authentication, username, accessChangeset, }: ISetAccessPermissionsParams): Promise<IUpdateItemResponse>;