@forge/teamwork-graph 4.0.0-next.2-experimental-fd4d1a2 → 4.0.0-next.3

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.
@@ -52,8 +52,8 @@ describe('TeamWorkGraphClient - Validators', () => {
52
52
  });
53
53
  });
54
54
  describe('validateSetUsersRequest', () => {
55
- it('should pass with valid users array', () => {
56
- const users = [{ id: '1', name: 'User 1' }];
55
+ it('should pass with valid users array with emails', () => {
56
+ const users = [{ externalId: '1', name: 'User 1', emails: [{ value: 'user@example.com', primary: true }] }];
57
57
  expect(() => (0, validators_1.validateSetUsersRequest)(users)).not.toThrow();
58
58
  });
59
59
  it('should throw validation error for non-array input', () => {
@@ -65,8 +65,22 @@ describe('TeamWorkGraphClient - Validators', () => {
65
65
  expect(() => (0, validators_1.validateSetUsersRequest)([])).toThrow(errors_1.ForgeTeamWorkGraphValidationError);
66
66
  });
67
67
  it('should throw validation error for array exceeding max length', () => {
68
- const users = Array(validators_1.MAX_BULK_USERS + 1).fill({ id: '1', name: 'User' });
68
+ const users = Array(validators_1.MAX_BULK_USERS + 1).fill({
69
+ externalId: '1',
70
+ name: 'User',
71
+ emails: [{ value: 'user@example.com', primary: true }]
72
+ });
73
+ expect(() => (0, validators_1.validateSetUsersRequest)(users)).toThrow(errors_1.ForgeTeamWorkGraphValidationError);
74
+ });
75
+ it('should throw validation error for user without emails', () => {
76
+ const users = [{ externalId: '1', name: 'User 1' }];
77
+ expect(() => (0, validators_1.validateSetUsersRequest)(users)).toThrow(errors_1.ForgeTeamWorkGraphValidationError);
78
+ expect(() => (0, validators_1.validateSetUsersRequest)(users)).toThrow('Each user must have at least one email address');
79
+ });
80
+ it('should throw validation error for user with empty emails array', () => {
81
+ const users = [{ externalId: '1', name: 'User 1', emails: [] }];
69
82
  expect(() => (0, validators_1.validateSetUsersRequest)(users)).toThrow(errors_1.ForgeTeamWorkGraphValidationError);
83
+ expect(() => (0, validators_1.validateSetUsersRequest)(users)).toThrow('Each user must have at least one email address');
70
84
  });
71
85
  });
72
86
  describe('validateSetGroupsRequest', () => {
@@ -27,7 +27,7 @@ export declare type UserPayload = {
27
27
  nickname?: string;
28
28
  displayName?: string;
29
29
  photos?: UserPhoto[];
30
- emails?: UserEmail[];
30
+ emails: UserEmail[];
31
31
  extendedProfile?: UserExtendedProfile;
32
32
  updateSequenceNumber?: number;
33
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/types/users.ts"],"names":[],"mappings":"AAGA,oBAAY,QAAQ,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAGF,oBAAY,IAAI,GAAG;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,mBAAmB,CAAC;CACvC,CAAC"}
1
+ {"version":3,"file":"users.d.ts","sourceRoot":"","sources":["../../src/types/users.ts"],"names":[],"mappings":"AAGA,oBAAY,QAAQ,GAAG;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,oBAAY,SAAS,GAAG;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;AAEF,oBAAY,eAAe,GAAG;IAC5B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,oBAAY,mBAAmB,GAAG;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;CAClC,CAAC;AAEF,oBAAY,WAAW,GAAG;IACxB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,eAAe,CAAC,EAAE,mBAAmB,CAAC;IACtC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B,CAAC;AAGF,oBAAY,IAAI,GAAG;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,MAAM,CAAC,EAAE,SAAS,EAAE,CAAC;IACrB,eAAe,CAAC,EAAE,mBAAmB,CAAC;CACvC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../src/utils/validators.ts"],"names":[],"mappings":"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"}
@@ -67,6 +67,12 @@ exports.validateSetObjectsRequest = validateSetObjectsRequest;
67
67
  function validateSetUsersRequest(users) {
68
68
  validateArray(users, 'users');
69
69
  validateArrayMaxLength(users, 'Bulk user ingestion', exports.MAX_BULK_USERS, 'users');
70
+ const userWithoutEmail = users.find((user) => !user.emails || !Array.isArray(user.emails) || user.emails.length === 0);
71
+ if (userWithoutEmail) {
72
+ throw new errors_1.ForgeTeamWorkGraphValidationError('Each user must have at least one email address', 'users', {
73
+ invalidUser: userWithoutEmail.externalId || userWithoutEmail
74
+ });
75
+ }
70
76
  }
71
77
  exports.validateSetUsersRequest = validateSetUsersRequest;
72
78
  function validateSetGroupsRequest(groups) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forge/teamwork-graph",
3
- "version": "4.0.0-next.2-experimental-fd4d1a2",
3
+ "version": "4.0.0-next.3",
4
4
  "description": "Forge TeamworkGraph SDK",
5
5
  "author": "Atlassian",
6
6
  "license": "UNLICENSED",
@@ -23,7 +23,7 @@
23
23
  "jest-when": "^3.6.0"
24
24
  },
25
25
  "dependencies": {
26
- "@forge/api": "^7.0.1-next.1-experimental-fd4d1a2",
26
+ "@forge/api": "^7.0.1-next.0",
27
27
  "uuid": "^9.0.1"
28
28
  },
29
29
  "publishConfig": {