@forge/teamwork-graph 1.1.1-next.0 → 1.2.0-next.2

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.
@@ -146,4 +146,42 @@ describe('TeamWorkGraphClient - setEntities', () => {
146
146
  const req = { entities: null };
147
147
  await expect(graphClient.setEntities(req)).rejects.toThrow('entities must be an array');
148
148
  });
149
+ it('posts organisation entities to /api/v1/entities/bulk and returns response', async () => {
150
+ const organisationEntity = {
151
+ schemaVersion: '2.0',
152
+ id: 'org-1',
153
+ updateSequenceNumber: 2,
154
+ displayName: 'pos 2',
155
+ url: 'https://workday.atlassian.com/path-to-org',
156
+ createdAt: '2024-07-09T14:27:37.000Z',
157
+ lastUpdatedAt: '2024-07-09T14:27:37.000Z',
158
+ permissions: {
159
+ accessControls: [
160
+ {
161
+ principals: [
162
+ {
163
+ type: 'EVERYONE'
164
+ }
165
+ ]
166
+ }
167
+ ]
168
+ },
169
+ parentKey: {
170
+ type: 'atlassian:organisation',
171
+ value: {
172
+ entityId: 'id of the parent org of this org'
173
+ }
174
+ },
175
+ 'atlassian:organisation': {}
176
+ };
177
+ const req = { entities: [organisationEntity] };
178
+ const expected = { success: false, results: [{ entityId: 'org-1', success: true }] };
179
+ mockFetch.mockResolvedValueOnce({
180
+ ok: true,
181
+ json: () => Promise.resolve(expected)
182
+ });
183
+ const result = await graphClient.setEntities(req);
184
+ expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/entities/bulk', expect.objectContaining({ method: 'POST' }));
185
+ expect(result).toEqual(expected);
186
+ });
149
187
  });
@@ -21,20 +21,10 @@ describe('Teamwork Graph Client', () => {
21
21
  jest.clearAllMocks();
22
22
  });
23
23
  describe('Context Validation', () => {
24
- const groupPayload = {
25
- id: 'group-123',
26
- name: 'Test Group'
27
- };
28
24
  const errorMessage = 'Please pass the context object in your method. Refer this - https://developer.atlassian.com/platform/forge/function-reference/';
29
25
  it('should throw error when context is missing for deleteEntity', async () => {
30
26
  await expect(graphClient.deleteEntity(undefined, 'entity-123')).rejects.toThrow(errorMessage);
31
27
  });
32
- it('should throw error when context is missing for setGroup', async () => {
33
- await expect(graphClient.setGroup(undefined, groupPayload)).rejects.toThrow(errorMessage);
34
- });
35
- it('should throw error when context is missing for deleteGroup', async () => {
36
- await expect(graphClient.deleteGroup(undefined, 'group-123')).rejects.toThrow(errorMessage);
37
- });
38
28
  it('should throw error when context is missing for fetchData', async () => {
39
29
  const config = {
40
30
  url: '/test',
@@ -84,37 +74,4 @@ describe('Teamwork Graph Client', () => {
84
74
  await expect(graphClient.deleteEntity(mockContext, entityId)).rejects.toThrow(errors_1.ForgeGraphAPIError);
85
75
  });
86
76
  });
87
- describe('deleteGroup', () => {
88
- const groupId = 'group-Folder/group-123';
89
- it('should successfully delete a group', async () => {
90
- const expectedResponse = { success: true };
91
- mockFetch.mockResolvedValueOnce({
92
- ok: true,
93
- json: () => Promise.resolve(expectedResponse)
94
- });
95
- const result = await graphClient.deleteGroup(mockContext, groupId);
96
- expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/group/?resourceId=group-Folder/group-123', {
97
- method: 'DELETE',
98
- redirect: 'follow',
99
- headers: { 'Content-Type': 'application/json' }
100
- });
101
- expect(result).toEqual(expectedResponse);
102
- });
103
- it('should throw ForgeGraphAPIError when delete request fails', async () => {
104
- const errorResponse = {
105
- ok: false,
106
- status: 404,
107
- statusText: 'Not Found',
108
- headers: {
109
- get: () => null
110
- },
111
- text: () => Promise.resolve(JSON.stringify({
112
- code: 'GROUP_NOT_FOUND',
113
- message: 'Group not found'
114
- }))
115
- };
116
- mockFetch.mockResolvedValueOnce(errorResponse);
117
- await expect(graphClient.deleteGroup(mockContext, groupId)).rejects.toThrow(errors_1.ForgeGraphAPIError);
118
- });
119
- });
120
77
  });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=group-operations.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-operations.test.d.ts","sourceRoot":"","sources":["../../src/__test__/group-operations.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,209 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const api_1 = require("@forge/api");
4
+ const graph_1 = require("../graph");
5
+ jest.mock('@forge/api');
6
+ describe('TeamWorkGraphClient - Group Operations', () => {
7
+ let graphClient;
8
+ let mockFetch;
9
+ beforeEach(() => {
10
+ graphClient = new graph_1.TeamWorkGraphClient();
11
+ mockFetch = jest.fn();
12
+ api_1.__fetchProduct.mockReturnValue(mockFetch);
13
+ jest.clearAllMocks();
14
+ });
15
+ describe('setGroups', () => {
16
+ const groupPayload = {
17
+ externalId: 'developers',
18
+ displayName: 'Development Team',
19
+ members: [
20
+ {
21
+ externalId: 'user-123',
22
+ type: 'USER'
23
+ },
24
+ {
25
+ externalId: 'user-456',
26
+ type: 'USER'
27
+ }
28
+ ]
29
+ };
30
+ it('should successfully create groups in bulk', async () => {
31
+ const expectedResponse = {
32
+ success: true,
33
+ results: [
34
+ {
35
+ externalId: 'developers',
36
+ success: true
37
+ }
38
+ ]
39
+ };
40
+ mockFetch.mockResolvedValueOnce({
41
+ ok: true,
42
+ json: () => Promise.resolve(expectedResponse)
43
+ });
44
+ const result = await graphClient.setGroups({
45
+ groups: [groupPayload]
46
+ });
47
+ expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/groups/bulk', {
48
+ method: 'POST',
49
+ body: JSON.stringify({ groups: [groupPayload] }),
50
+ redirect: 'follow',
51
+ headers: { 'Content-Type': 'application/json' }
52
+ });
53
+ expect(result).toEqual(expectedResponse);
54
+ });
55
+ it('should successfully create groups without members', async () => {
56
+ const groupWithoutMembers = {
57
+ externalId: 'admins',
58
+ displayName: 'Administrators'
59
+ };
60
+ const expectedResponse = {
61
+ success: true,
62
+ results: [
63
+ {
64
+ externalId: 'admins',
65
+ success: true
66
+ }
67
+ ]
68
+ };
69
+ mockFetch.mockResolvedValueOnce({
70
+ ok: true,
71
+ json: () => Promise.resolve(expectedResponse)
72
+ });
73
+ const result = await graphClient.setGroups({
74
+ groups: [groupWithoutMembers]
75
+ });
76
+ expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/groups/bulk', {
77
+ method: 'POST',
78
+ body: JSON.stringify({ groups: [groupWithoutMembers] }),
79
+ redirect: 'follow',
80
+ headers: { 'Content-Type': 'application/json' }
81
+ });
82
+ expect(result).toEqual(expectedResponse);
83
+ });
84
+ it('should throw error when groups array is empty', async () => {
85
+ await expect(graphClient.setGroups({
86
+ groups: []
87
+ })).rejects.toThrow('groups array cannot be empty');
88
+ });
89
+ it('should throw error when groups array exceeds limit', async () => {
90
+ const manyGroups = Array(101).fill(groupPayload);
91
+ await expect(graphClient.setGroups({
92
+ groups: manyGroups
93
+ })).rejects.toThrow('Bulk group ingestion supports maximum 100 groups');
94
+ });
95
+ it('should throw error when groups is not an array', async () => {
96
+ await expect(graphClient.setGroups({
97
+ groups: null
98
+ })).rejects.toThrow('groups must be an array');
99
+ });
100
+ });
101
+ describe('deleteGroupsByExternalId', () => {
102
+ it('should successfully delete groups in bulk', async () => {
103
+ const expectedResponse = {
104
+ success: true,
105
+ results: [
106
+ { externalId: 'developers', success: true },
107
+ { externalId: 'admins', success: true }
108
+ ]
109
+ };
110
+ mockFetch.mockResolvedValueOnce({
111
+ ok: true,
112
+ json: () => Promise.resolve(expectedResponse)
113
+ });
114
+ const result = await graphClient.deleteGroupsByExternalId({
115
+ externalIds: ['developers', 'admins']
116
+ });
117
+ expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/groups/bulk/delete', {
118
+ method: 'POST',
119
+ body: JSON.stringify({ externalIds: ['developers', 'admins'] }),
120
+ redirect: 'follow',
121
+ headers: { 'Content-Type': 'application/json' }
122
+ });
123
+ expect(result).toEqual(expectedResponse);
124
+ });
125
+ it('should throw error when externalIds array is empty', async () => {
126
+ await expect(graphClient.deleteGroupsByExternalId({
127
+ externalIds: []
128
+ })).rejects.toThrow('externalIds array cannot be empty');
129
+ });
130
+ it('should throw error when externalIds is not an array', async () => {
131
+ await expect(graphClient.deleteGroupsByExternalId({
132
+ externalIds: null
133
+ })).rejects.toThrow('externalIds must be an array');
134
+ });
135
+ });
136
+ describe('getGroupByExternalId', () => {
137
+ const expectedGroup = {
138
+ id: 'ari:cloud:identity:group/123',
139
+ externalId: 'developers',
140
+ displayName: 'Development Team',
141
+ members: [
142
+ {
143
+ externalId: 'user-123',
144
+ type: 'USER'
145
+ },
146
+ {
147
+ externalId: 'user-456',
148
+ type: 'USER'
149
+ }
150
+ ],
151
+ meta: {
152
+ resourceType: 'Group',
153
+ created: '2024-01-01T00:00:00Z',
154
+ lastModified: '2024-01-01T00:00:00Z',
155
+ location: 'https://example.com/v2/Groups/123'
156
+ }
157
+ };
158
+ it('should successfully get group by external ID', async () => {
159
+ mockFetch.mockResolvedValueOnce({
160
+ ok: true,
161
+ json: () => Promise.resolve(expectedGroup)
162
+ });
163
+ const result = await graphClient.getGroupByExternalId({
164
+ externalId: 'developers'
165
+ });
166
+ expect(mockFetch).toHaveBeenCalledWith('/graph/connector/api/v1/groups?externalId=developers', {
167
+ method: 'GET',
168
+ redirect: 'follow',
169
+ headers: { 'Content-Type': 'application/json' }
170
+ });
171
+ expect(result).toEqual({
172
+ success: true,
173
+ group: expectedGroup
174
+ });
175
+ });
176
+ it('should handle group not found', async () => {
177
+ const errorResponse = {
178
+ ok: false,
179
+ status: 404,
180
+ statusText: 'Not Found',
181
+ headers: {
182
+ get: () => null
183
+ },
184
+ text: () => Promise.resolve(JSON.stringify({
185
+ code: 'GROUP_NOT_FOUND',
186
+ message: 'Group not found'
187
+ }))
188
+ };
189
+ mockFetch.mockResolvedValueOnce(errorResponse);
190
+ const result = await graphClient.getGroupByExternalId({
191
+ externalId: 'nonexistent-group'
192
+ });
193
+ expect(result).toEqual({
194
+ success: false,
195
+ error: 'Group not found'
196
+ });
197
+ });
198
+ it('should throw error when externalId is missing', async () => {
199
+ await expect(graphClient.getGroupByExternalId({
200
+ externalId: ''
201
+ })).rejects.toThrow('externalId is required');
202
+ });
203
+ it('should throw error when externalId is null', async () => {
204
+ await expect(graphClient.getGroupByExternalId({
205
+ externalId: null
206
+ })).rejects.toThrow('externalId is required');
207
+ });
208
+ });
209
+ });
package/out/graph.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { Result } from '@forge/api';
2
- import { TeamWorkGraph, ForgeExtendedContext, GroupObject, RequestConfig, BulkEntityRequest, BulkEntityResponse, BulkUsersRequest, BulkUsersResponse, DeleteUsersByExternalIdRequest, DeleteUsersByExternalIdResponse, GetUserByExternalIdRequest, GetUserByExternalIdResponse, MapUsersRequest, MapUsersResponse } from './types';
2
+ import { TeamWorkGraph, ForgeExtendedContext, RequestConfig, BulkEntityRequest, BulkEntityResponse, BulkUsersRequest, BulkUsersResponse, DeleteUsersByExternalIdRequest, DeleteUsersByExternalIdResponse, GetUserByExternalIdRequest, GetUserByExternalIdResponse, MapUsersRequest, MapUsersResponse, BulkGroupsRequest, BulkGroupsResponse, DeleteGroupsByExternalIdRequest, DeleteGroupsByExternalIdResponse, GetGroupByExternalIdRequest, GetGroupByExternalIdResponse } from './types';
3
3
  export declare class TeamWorkGraphClient implements TeamWorkGraph {
4
4
  setEntities: (request: BulkEntityRequest) => Promise<BulkEntityResponse>;
5
5
  deleteEntity: (context: ForgeExtendedContext, entityId: string) => Promise<Result>;
6
- setGroup: (context: ForgeExtendedContext, group: GroupObject) => Promise<Result>;
7
- deleteGroup: (context: ForgeExtendedContext, groupId: string) => Promise<Result>;
6
+ setGroups: (request: BulkGroupsRequest) => Promise<BulkGroupsResponse>;
7
+ deleteGroupsByExternalId: (request: DeleteGroupsByExternalIdRequest) => Promise<DeleteGroupsByExternalIdResponse>;
8
+ getGroupByExternalId: (request: GetGroupByExternalIdRequest) => Promise<GetGroupByExternalIdResponse>;
8
9
  setUsers: (request: BulkUsersRequest) => Promise<BulkUsersResponse>;
9
10
  deleteUsersByExternalId: (request: DeleteUsersByExternalIdRequest) => Promise<DeleteUsersByExternalIdResponse>;
10
11
  getUserByExternalId: (request: GetUserByExternalIdRequest) => Promise<GetUserByExternalIdResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAsB,MAAM,YAAY,CAAC;AAErF,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAOjB,qBAAa,mBAAoB,YAAW,aAAa;IACvD,WAAW,YAAmB,iBAAiB,KAAG,QAAQ,kBAAkB,CAAC,CAe3E;IAEF,YAAY,YAAmB,oBAAoB,YAAY,MAAM,KAAG,QAAQ,MAAM,CAAC,CAIrF;IAEF,QAAQ,YAAmB,oBAAoB,SAAS,WAAW,KAAG,QAAQ,MAAM,CAAC,CAGnF;IAEF,WAAW,YAAmB,oBAAoB,WAAW,MAAM,KAAG,QAAQ,MAAM,CAAC,CAInF;IAEF,QAAQ,YAAmB,gBAAgB,KAAG,QAAQ,iBAAiB,CAAC,CAetE;IAEF,uBAAuB,YACZ,8BAA8B,KACtC,QAAQ,+BAA+B,CAAC,CAczC;IAEF,mBAAmB,YAAmB,0BAA0B,KAAG,QAAQ,2BAA2B,CAAC,CAsBrG;IAEF,QAAQ,YAAmB,eAAe,KAAG,QAAQ,gBAAgB,CAAC,CA+BpE;IAEF,SAAS,YAAmB,oBAAoB,iBAAiB,aAAa,mBAAmB,GAAG,KAAK,GAAG,kBAuB1G;IAEF,aAAa,YAAmB,oBAAoB,QAAQ,GAAG,0BAA0B,GAAG,KAAK,GAAG,kBAIlG;YAEY,WAAW;YAIX,YAAY;IAI1B,OAAO,CAAC,eAAe;YAQT,eAAe;YAaf,iBAAiB;YAajB,cAAc;YAYd,WAAW;CAY1B;AAED,eAAO,MAAM,aAAa,qBAA4B,CAAC"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../src/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAA+B,MAAM,EAAsB,MAAM,YAAY,CAAC;AAErF,OAAO,EACL,aAAa,EACb,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,EAC/B,gCAAgC,EAChC,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,SAAS,CAAC;AAQjB,qBAAa,mBAAoB,YAAW,aAAa;IACvD,WAAW,YAAmB,iBAAiB,KAAG,QAAQ,kBAAkB,CAAC,CAe3E;IAEF,YAAY,YAAmB,oBAAoB,YAAY,MAAM,KAAG,QAAQ,MAAM,CAAC,CAIrF;IAKF,SAAS,YAAmB,iBAAiB,KAAG,QAAQ,kBAAkB,CAAC,CAezE;IAKF,wBAAwB,YACb,+BAA+B,KACvC,QAAQ,gCAAgC,CAAC,CAc1C;IAKF,oBAAoB,YAAmB,2BAA2B,KAAG,QAAQ,4BAA4B,CAAC,CAsBxG;IAEF,QAAQ,YAAmB,gBAAgB,KAAG,QAAQ,iBAAiB,CAAC,CAetE;IAEF,uBAAuB,YACZ,8BAA8B,KACtC,QAAQ,+BAA+B,CAAC,CAczC;IAEF,mBAAmB,YAAmB,0BAA0B,KAAG,QAAQ,2BAA2B,CAAC,CAsBrG;IAEF,QAAQ,YAAmB,eAAe,KAAG,QAAQ,gBAAgB,CAAC,CA+BpE;IAEF,SAAS,YAAmB,oBAAoB,iBAAiB,aAAa,mBAAmB,GAAG,KAAK,GAAG,kBAuB1G;IAEF,aAAa,YAAmB,oBAAoB,QAAQ,GAAG,0BAA0B,GAAG,KAAK,GAAG,kBAIlG;YAEY,WAAW;YAIX,YAAY;IAI1B,OAAO,CAAC,eAAe;YAQT,eAAe;YAaf,iBAAiB;YAajB,cAAc;YAYd,WAAW;CAY1B;AAED,eAAO,MAAM,aAAa,qBAA4B,CAAC"}
package/out/graph.js CHANGED
@@ -6,6 +6,7 @@ const error_handling_1 = require("./error-handling");
6
6
  const STARGATE_BASE = '/graph/connector';
7
7
  const MAX_BULK_ENTITIES = 100;
8
8
  const MAX_BULK_USERS = 100;
9
+ const MAX_BULK_GROUPS = 100;
9
10
  const MAX_USER_MAPPINGS = 100;
10
11
  class TeamWorkGraphClient {
11
12
  setEntities = async (request) => {
@@ -27,14 +28,54 @@ class TeamWorkGraphClient {
27
28
  const path = '/api/v1/entity/?resourceId=' + entityId;
28
29
  return this.sendDeleteRequest(path);
29
30
  };
30
- setGroup = async (context, group) => {
31
- this.validateContext(context);
32
- return this.sendPostRequest('/api/v1/group', group);
31
+ setGroups = async (request) => {
32
+ const { groups } = request;
33
+ if (!Array.isArray(groups)) {
34
+ throw new Error('groups must be an array');
35
+ }
36
+ if (groups.length === 0) {
37
+ throw new Error('groups array cannot be empty');
38
+ }
39
+ if (groups.length > MAX_BULK_GROUPS) {
40
+ throw new Error(`Bulk group ingestion supports maximum ${MAX_BULK_GROUPS} groups. Received ${groups.length}`);
41
+ }
42
+ const response = await this.sendPostRequest('/api/v1/groups/bulk', { groups });
43
+ return response;
33
44
  };
34
- deleteGroup = async (context, groupId) => {
35
- this.validateContext(context);
36
- const path = '/api/v1/group/?resourceId=' + groupId;
37
- return this.sendDeleteRequest(path);
45
+ deleteGroupsByExternalId = async (request) => {
46
+ const { externalIds } = request;
47
+ if (!Array.isArray(externalIds)) {
48
+ throw new Error('externalIds must be an array');
49
+ }
50
+ if (externalIds.length === 0) {
51
+ throw new Error('externalIds array cannot be empty');
52
+ }
53
+ const response = await this.sendPostRequest('/api/v1/groups/bulk/delete', {
54
+ externalIds
55
+ });
56
+ return response;
57
+ };
58
+ getGroupByExternalId = async (request) => {
59
+ const { externalId } = request;
60
+ if (!externalId || externalId.trim() === '') {
61
+ throw new Error('externalId is required');
62
+ }
63
+ try {
64
+ const url = new URL('/api/v1/groups', 'https://teamwork-graph.atlassian.net/api');
65
+ url.searchParams.set('externalId', externalId);
66
+ const path = url.pathname + url.search;
67
+ const response = await this.sendGetRequest(path);
68
+ return {
69
+ success: true,
70
+ group: response
71
+ };
72
+ }
73
+ catch (error) {
74
+ return {
75
+ success: false,
76
+ error: error instanceof Error ? error.message : 'Unknown error'
77
+ };
78
+ }
38
79
  };
39
80
  setUsers = async (request) => {
40
81
  const { users } = request;
@@ -69,7 +110,7 @@ class TeamWorkGraphClient {
69
110
  throw new Error('externalId is required');
70
111
  }
71
112
  try {
72
- const url = new URL('/api/v1/users', 'https://example.com');
113
+ const url = new URL('/api/v1/users', 'https://teamwork-graph.atlassian.net/api');
73
114
  url.searchParams.set('externalId', externalId);
74
115
  const path = url.pathname + url.search;
75
116
  const response = await this.sendGetRequest(path);
@@ -46,18 +46,6 @@ export declare type BaseEntityProperties = {
46
46
  permissions?: Permissions;
47
47
  associations?: Associations;
48
48
  };
49
- export declare type GroupObject = {
50
- id?: string;
51
- email?: string;
52
- name?: string;
53
- description?: string;
54
- adminCreated?: boolean;
55
- directMembersCount?: string;
56
- kind?: string;
57
- etag?: string;
58
- aliases?: string[];
59
- nonEditableAliases?: string[];
60
- };
61
49
  export declare type AssociationObject = {
62
50
  associationType: string;
63
51
  values: string[];
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAE1B,oBAAY,SAAS,GAAG;IACtB,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,UAAU,GAAG,qBAAqB,GAAG,WAAW,CAAC;IAC1E,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACpB,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC1B,UAAU,EAAE,SAAS,EAAE,CAAC;CACzB,CAAC;AAEF,oBAAY,qBAAqB,GAAG;IAClC,aAAa,EAAE,SAAS,CAAC;CAC1B,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,cAAc,CAAC,EAAE,aAAa,EAAE,CAAC;IACjC,iBAAiB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC7C,CAAC;AAGF,oBAAY,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC;AAGF,oBAAY,oBAAoB,GAAG;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,oBAAoB,EAAE,MAAM,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,MAAM,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,SAAS,CAAC,EAAE,eAAe,GAAG,MAAM,CAAC;IACrC,YAAY,CAAC,EAAE,kBAAkB,GAAG,MAAM,CAAC;IAC3C,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,YAAY,CAAC,EAAE,YAAY,CAAC;CAC7B,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,oBAAY,YAAY,GAAG;IACzB,GAAG,EAAE,iBAAiB,EAAE,CAAC;CAC1B,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,CAAC;AAEF,oBAAY,oBAAoB,GAAG;IACjC,SAAS,EAAE;QAAE,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QAAE,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC;IAC/B,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;CACrC,CAAC;AAEF,oBAAY,aAAa,GAAG;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC7B,OAAO,CAAC,EAAE,GAAG,CAAC;CACf,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { DocumentEntity } from './document';
2
2
  import { MessageEntity } from './message';
3
- export { DocumentEntity, MessageEntity };
4
- export declare type Entity = DocumentEntity | MessageEntity;
3
+ import { OrganisationEntity } from './organisation';
4
+ export { DocumentEntity, MessageEntity, OrganisationEntity };
5
+ export declare type Entity = DocumentEntity | MessageEntity | OrganisationEntity;
5
6
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/entities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;AAGzC,oBAAY,MAAM,GAAG,cAAc,GAAG,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/types/entities/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAGpD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,kBAAkB,EAAE,CAAC;AAG7D,oBAAY,MAAM,GAAG,cAAc,GAAG,aAAa,GAAG,kBAAkB,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { BaseEntityProperties } from '../common';
2
+ export declare type OrganisationAttributes = {};
3
+ export declare type OrganisationEntity = BaseEntityProperties & {
4
+ displayName: string;
5
+ lastUpdatedAt: string;
6
+ permissions: NonNullable<BaseEntityProperties['permissions']>;
7
+ 'atlassian:organisation': OrganisationAttributes;
8
+ };
9
+ //# sourceMappingURL=organisation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organisation.d.ts","sourceRoot":"","sources":["../../../src/types/entities/organisation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjD,oBAAY,sBAAsB,GAAG,EAAE,CAAC;AAExC,oBAAY,kBAAkB,GAAG,oBAAoB,GAAG;IACtD,WAAW,EAAE,MAAM,CAAC;IACpB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC,oBAAoB,CAAC,aAAa,CAAC,CAAC,CAAC;IAC9D,wBAAwB,EAAE,sBAAsB,CAAC;CAClD,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,15 +1,16 @@
1
1
  import { Result } from '@forge/api';
2
- import { ForgeExtendedContext, GroupObject, RequestConfig, BulkEntityRequest, BulkEntityResponse, BulkUsersRequest, BulkUsersResponse, DeleteUsersByExternalIdRequest, DeleteUsersByExternalIdResponse, GetUserByExternalIdRequest, GetUserByExternalIdResponse, MapUsersRequest, MapUsersResponse } from './';
2
+ import { ForgeExtendedContext, RequestConfig, BulkEntityRequest, BulkEntityResponse, BulkUsersRequest, BulkUsersResponse, DeleteUsersByExternalIdRequest, DeleteUsersByExternalIdResponse, GetUserByExternalIdRequest, GetUserByExternalIdResponse, MapUsersRequest, MapUsersResponse, BulkGroupsRequest, BulkGroupsResponse, DeleteGroupsByExternalIdRequest, DeleteGroupsByExternalIdResponse, GetGroupByExternalIdRequest, GetGroupByExternalIdResponse } from './';
3
3
  export interface TeamWorkGraph {
4
4
  setEntities(request: BulkEntityRequest): Promise<BulkEntityResponse>;
5
5
  deleteEntity(context: ForgeExtendedContext, entityId: string): Promise<Result>;
6
- setGroup(context: ForgeExtendedContext, group: GroupObject): Promise<Result>;
7
- deleteGroup(context: ForgeExtendedContext, groupId: string): Promise<Result>;
8
6
  fetchData(context: ForgeExtendedContext, requestConfig: RequestConfig, onResult: Function): Promise<Result>;
9
7
  transformData(context: ForgeExtendedContext, data: any, transformMethod: Function): Promise<any>;
10
8
  setUsers(request: BulkUsersRequest): Promise<BulkUsersResponse>;
11
9
  deleteUsersByExternalId(request: DeleteUsersByExternalIdRequest): Promise<DeleteUsersByExternalIdResponse>;
12
10
  getUserByExternalId(request: GetUserByExternalIdRequest): Promise<GetUserByExternalIdResponse>;
13
11
  mapUsers(request: MapUsersRequest): Promise<MapUsersResponse>;
12
+ setGroups(request: BulkGroupsRequest): Promise<BulkGroupsResponse>;
13
+ deleteGroupsByExternalId(request: DeleteGroupsByExternalIdRequest): Promise<DeleteGroupsByExternalIdResponse>;
14
+ getGroupByExternalId(request: GetGroupByExternalIdRequest): Promise<GetGroupByExternalIdResponse>;
14
15
  }
15
16
  //# sourceMappingURL=graph.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/types/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,WAAW,EACX,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EACjB,MAAM,IAAI,CAAC;AAEZ,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrE,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,QAAQ,CAAC,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7E,WAAW,CAAC,OAAO,EAAE,oBAAoB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7E,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5G,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGjG,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC3G,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC/F,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC/D"}
1
+ {"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../src/types/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,8BAA8B,EAC9B,+BAA+B,EAC/B,0BAA0B,EAC1B,2BAA2B,EAC3B,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,+BAA+B,EAC/B,gCAAgC,EAChC,2BAA2B,EAC3B,4BAA4B,EAC7B,MAAM,IAAI,CAAC;AAEZ,MAAM,WAAW,aAAa;IAC5B,WAAW,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACrE,YAAY,CAAC,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/E,SAAS,CAAC,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5G,aAAa,CAAC,OAAO,EAAE,oBAAoB,EAAE,IAAI,EAAE,GAAG,EAAE,eAAe,EAAE,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;IAGjG,QAAQ,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAChE,uBAAuB,CAAC,OAAO,EAAE,8BAA8B,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAC3G,mBAAmB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAC/F,QAAQ,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAG9D,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;IACnE,wBAAwB,CAAC,OAAO,EAAE,+BAA+B,GAAG,OAAO,CAAC,gCAAgC,CAAC,CAAC;IAC9G,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,4BAA4B,CAAC,CAAC;CACnG"}
@@ -0,0 +1,24 @@
1
+ export declare type GroupMember = {
2
+ externalId: string;
3
+ type: string;
4
+ updateSequenceNumber?: number;
5
+ displayName?: string;
6
+ };
7
+ export declare type GroupPayload = {
8
+ externalId: string;
9
+ displayName?: string;
10
+ members?: GroupMember[];
11
+ };
12
+ export declare type Group = {
13
+ id: string;
14
+ externalId: string;
15
+ displayName?: string;
16
+ members?: GroupMember[];
17
+ meta?: {
18
+ resourceType: string;
19
+ created: string;
20
+ lastModified: string;
21
+ location: string;
22
+ };
23
+ };
24
+ //# sourceMappingURL=groups.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groups.d.ts","sourceRoot":"","sources":["../../src/types/groups.ts"],"names":[],"mappings":"AACA,oBAAY,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,oBAAY,YAAY,GAAG;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;CACzB,CAAC;AAGF,oBAAY,KAAK,GAAG;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IACxB,IAAI,CAAC,EAAE;QACL,YAAY,EAAE,MAAM,CAAC;QACrB,OAAO,EAAE,MAAM,CAAC;QAChB,YAAY,EAAE,MAAM,CAAC;QACrB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;CACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -2,5 +2,6 @@ export * from './common';
2
2
  export * from './entities';
3
3
  export * from './requests';
4
4
  export * from './users';
5
+ export * from './groups';
5
6
  export * from './graph';
6
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAExB,cAAc,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AACA,cAAc,UAAU,CAAC;AAGzB,cAAc,YAAY,CAAC;AAG3B,cAAc,YAAY,CAAC;AAG3B,cAAc,SAAS,CAAC;AAGxB,cAAc,UAAU,CAAC;AAEzB,cAAc,SAAS,CAAC"}
@@ -5,4 +5,5 @@ tslib_1.__exportStar(require("./common"), exports);
5
5
  tslib_1.__exportStar(require("./entities"), exports);
6
6
  tslib_1.__exportStar(require("./requests"), exports);
7
7
  tslib_1.__exportStar(require("./users"), exports);
8
+ tslib_1.__exportStar(require("./groups"), exports);
8
9
  tslib_1.__exportStar(require("./graph"), exports);
@@ -1,4 +1,4 @@
1
- import { Entity, UserPayload, User } from './';
1
+ import { Entity, UserPayload, User, GroupPayload, Group } from './';
2
2
  export declare type BulkEntityRequest = {
3
3
  entities: Array<Entity>;
4
4
  };
@@ -59,4 +59,34 @@ export declare type MapUsersResponse = {
59
59
  error?: string;
60
60
  }>;
61
61
  };
62
+ export declare type BulkGroupsRequest = {
63
+ groups: GroupPayload[];
64
+ };
65
+ export declare type BulkGroupsResponse = {
66
+ success: boolean;
67
+ results: Array<{
68
+ externalId: string;
69
+ success: boolean;
70
+ error?: string;
71
+ }>;
72
+ };
73
+ export declare type DeleteGroupsByExternalIdRequest = {
74
+ externalIds: string[];
75
+ };
76
+ export declare type DeleteGroupsByExternalIdResponse = {
77
+ success: boolean;
78
+ results: Array<{
79
+ externalId: string;
80
+ success: boolean;
81
+ error?: string;
82
+ }>;
83
+ };
84
+ export declare type GetGroupByExternalIdRequest = {
85
+ externalId: string;
86
+ };
87
+ export declare type GetGroupByExternalIdResponse = {
88
+ success: boolean;
89
+ group?: Group;
90
+ error?: string;
91
+ };
62
92
  //# sourceMappingURL=requests.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/types/requests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAG/C,oBAAY,iBAAiB,GAAG;IAC9B,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;CACzB,CAAC;AAEF,oBAAY,kBAAkB,GAAG;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ,CAAC;AAGF,oBAAY,gBAAgB,GAAG;IAC7B,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB,CAAC;AAEF,oBAAY,iBAAiB,GAAG;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ,CAAC;AAEF,oBAAY,8BAA8B,GAAG;IAC3C,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC;AAEF,oBAAY,+BAA+B,GAAG;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ,CAAC;AAEF,oBAAY,0BAA0B,GAAG;IACvC,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,2BAA2B,GAAG;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,IAAI,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAGF,oBAAY,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,cAAc,EAAE,WAAW,EAAE,CAAC;CAC/B,CAAC;AAEF,oBAAY,gBAAgB,GAAG;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,KAAK,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"requests.d.ts","sourceRoot":"","sources":["../../src/types/requests.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/teamwork-graph",
3
- "version": "1.1.1-next.0",
3
+ "version": "1.2.0-next.2",
4
4
  "description": "Forge TeamworkGraph SDK",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",