@verii/endpoints-organizations-registrar 1.0.0-pre.1756100765 → 1.0.0-pre.1756224043

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 (24) hide show
  1. package/package.json +37 -35
  2. package/src/controllers/organizations/_did/controller.js +1 -1
  3. package/src/controllers/organizations/_did/invitations/_invitationId/controller.js +1 -1
  4. package/src/controllers/organizations/_did/invitations/controller.js +1 -1
  5. package/src/controllers/organizations/_did/services/controller.js +2 -2
  6. package/src/controllers/organizations/full/controller.js +1 -1
  7. package/src/controllers/signatories/controller.js +1 -1
  8. package/src/controllers/users/controller.js +2 -2
  9. package/src/entities/oauth/orchestrators/auth0-provisioner.js +5 -2
  10. package/src/entities/organization-services/orchestrators/add-service.js +2 -2
  11. package/src/entities/organization-services/orchestrators/delete-service.js +2 -2
  12. package/src/entities/organization-services/orchestrators/init-add-service-to-organization.js +2 -2
  13. package/src/entities/organizations/adapters/init-send-activation-emails-to-caos.js +2 -2
  14. package/src/entities/organizations/adapters/send-email-invitation-accepted-to-inviter.js +2 -2
  15. package/src/entities/organizations/adapters/send-email-notifications.js +2 -2
  16. package/src/entities/organizations/orchestrators/init-create-organization.js +3 -3
  17. package/src/entities/organizations/orchestrators/init-provision-group.js +2 -2
  18. package/src/entities/users/orchestrators/create-auth0-user.js +2 -2
  19. package/src/entities/users/orchestrators/get-or-create-auth0-user.js +6 -4
  20. package/src/entities/users/orchestrators/user-management.js +12 -4
  21. package/src/subscribers/notify-caos.js +3 -1
  22. package/src/subscribers/notify-inviters.js +1 -1
  23. package/src/subscribers/notify-signatory.js +1 -1
  24. package/src/subscribers/notify-support-and-groups.js +2 -2
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@verii/endpoints-organizations-registrar",
3
- "version": "1.0.0-pre.1756100765",
3
+ "version": "1.0.0-pre.1756224043",
4
4
  "description": "Organization Registrar",
5
5
  "repository": "https://github.com/LFDT-Verii/core",
6
6
  "main": "src/index.js",
@@ -9,8 +9,10 @@
9
9
  "access": "public"
10
10
  },
11
11
  "scripts": {
12
- "test": "jest --config ./jest.config.js --runInBand --coverage",
13
- "lint": "eslint . --format json >> eslint.json",
12
+ "test": "cross-env NODE_ENV=test node --test --test-concurrency=1 --test-timeout=900000 --experimental-test-module-mocks --experimental-test-coverage --test-reporter=spec --test-reporter-destination=stdout 'test/**/*.test.js'",
13
+ "test:ci": "NODE_ENV=test node --test --test-concurrency=1 --test-timeout=900000 --experimental-test-module-mocks --experimental-test-coverage --test-coverage-include='src/**' --test-reporter=spec --test-reporter=junit --test-reporter-destination=stdout --test-reporter-destination=test-results.junit.xml --test-reporter=lcov --test-reporter-destination=lcov.info 'test/**/*.test.js'",
14
+ "lint": "eslint --ext .js .",
15
+ "lint:ci": "eslint . --format json >> eslint-results.json",
14
16
  "lint:fix": "eslint --fix --ext .js ."
15
17
  },
16
18
  "dependencies": {
@@ -23,32 +25,32 @@
23
25
  "@spencejs/spence-events": "~0.10.2",
24
26
  "@spencejs/spence-factories": "0.10.2",
25
27
  "@spencejs/spence-mongo-repos": "~0.10.2",
26
- "@verii/auth": "1.0.0-pre.1756100765",
27
- "@verii/aws-clients": "1.0.0-pre.1756100765",
28
- "@verii/base-contract-io": "1.0.0-pre.1756100765",
29
- "@verii/blockchain-functions": "1.0.0-pre.1756100765",
30
- "@verii/common-functions": "1.0.0-pre.1756100765",
31
- "@verii/common-schemas": "1.0.0-pre.1756100765",
32
- "@verii/config": "1.0.0-pre.1756100765",
33
- "@verii/contract-permissions": "1.0.0-pre.1756100765",
34
- "@verii/country-data": "1.0.0-pre.1756100765",
35
- "@verii/crypto": "1.0.0-pre.1756100765",
36
- "@verii/csv-parser": "1.0.0-pre.1756100765",
37
- "@verii/db-kms": "1.0.0-pre.1756100765",
38
- "@verii/did-doc": "1.0.0-pre.1756100765",
39
- "@verii/did-web": "1.0.0-pre.1756100765",
40
- "@verii/endpoints-credential-types-registrar": "1.0.0-pre.1756100765",
41
- "@verii/fastify-plugins": "1.0.0-pre.1756100765",
42
- "@verii/fineract-client": "1.0.0-pre.1756100765",
43
- "@verii/image-processing": "1.0.0-pre.1756100765",
44
- "@verii/jwt": "1.0.0-pre.1756100765",
45
- "@verii/organizations-registry": "1.0.0-pre.1756100765",
46
- "@verii/rest-queries": "1.0.0-pre.1756100765",
47
- "@verii/spencer-mongo-extensions": "1.0.0-pre.1756100765",
48
- "@verii/tests-helpers": "1.0.0-pre.1756100765",
49
- "@verii/validation": "1.0.0-pre.1756100765",
50
- "@verii/vc-checks": "1.0.0-pre.1756100765",
51
- "@verii/verii-verification": "1.0.0-pre.1756100765",
28
+ "@verii/auth": "1.0.0-pre.1756224043",
29
+ "@verii/aws-clients": "1.0.0-pre.1756224043",
30
+ "@verii/base-contract-io": "1.0.0-pre.1756224043",
31
+ "@verii/blockchain-functions": "1.0.0-pre.1756224043",
32
+ "@verii/common-functions": "1.0.0-pre.1756224043",
33
+ "@verii/common-schemas": "1.0.0-pre.1756224043",
34
+ "@verii/config": "1.0.0-pre.1756224043",
35
+ "@verii/contract-permissions": "1.0.0-pre.1756224043",
36
+ "@verii/country-data": "1.0.0-pre.1756224043",
37
+ "@verii/crypto": "1.0.0-pre.1756224043",
38
+ "@verii/csv-parser": "1.0.0-pre.1756224043",
39
+ "@verii/db-kms": "1.0.0-pre.1756224043",
40
+ "@verii/did-doc": "1.0.0-pre.1756224043",
41
+ "@verii/did-web": "1.0.0-pre.1756224043",
42
+ "@verii/endpoints-credential-types-registrar": "1.0.0-pre.1756224043",
43
+ "@verii/fastify-plugins": "1.0.0-pre.1756224043",
44
+ "@verii/fineract-client": "1.0.0-pre.1756224043",
45
+ "@verii/image-processing": "1.0.0-pre.1756224043",
46
+ "@verii/jwt": "1.0.0-pre.1756224043",
47
+ "@verii/organizations-registry": "1.0.0-pre.1756224043",
48
+ "@verii/rest-queries": "1.0.0-pre.1756224043",
49
+ "@verii/spencer-mongo-extensions": "1.0.0-pre.1756224043",
50
+ "@verii/tests-helpers": "1.0.0-pre.1756224043",
51
+ "@verii/validation": "1.0.0-pre.1756224043",
52
+ "@verii/vc-checks": "1.0.0-pre.1756224043",
53
+ "@verii/verii-verification": "1.0.0-pre.1756224043",
52
54
  "auth0": "4.28.0",
53
55
  "bs58": "~6.0.0",
54
56
  "date-fns": "~3.6.0",
@@ -59,15 +61,15 @@
59
61
  "http-errors": "~2.0.0",
60
62
  "lodash": "~4.17.21",
61
63
  "mongodb": "~6.18.0",
62
- "nanoid": "~3.3.8",
64
+ "nanoid": "~3.3.11",
63
65
  "sprintf-js": "1.1.3",
64
66
  "uuid": "~9.0.1"
65
67
  },
66
68
  "devDependencies": {
67
69
  "@verii/common-functions": "0.5.0-build",
68
- "@verii/sample-data": "1.0.0-pre.1756100765",
69
- "@verii/server-provider": "1.0.0-pre.1756100765",
70
- "@verii/test-regexes": "1.0.0-pre.1756100765",
70
+ "@verii/sample-data": "1.0.0-pre.1756224043",
71
+ "@verii/server-provider": "1.0.0-pre.1756224043",
72
+ "@verii/test-regexes": "1.0.0-pre.1756224043",
71
73
  "eslint": "8.57.1",
72
74
  "eslint-config-airbnb-base": "14.2.1",
73
75
  "eslint-config-prettier": "8.10.2",
@@ -78,9 +80,9 @@
78
80
  "eslint-plugin-prettier": "4.2.5",
79
81
  "eslint-watch": "7.0.0",
80
82
  "ethers": "6.15.0",
81
- "jest": "29.7.0",
83
+ "expect": "29.7.0",
82
84
  "nock": "15.0.0-beta.5",
83
85
  "prettier": "2.8.8"
84
86
  },
85
- "gitHead": "90dc37c28dec2f448c472b20541e052552b7612a"
87
+ "gitHead": "21747614a1db416654bba4c198d1c1b883dbe6a5"
86
88
  }
@@ -46,7 +46,7 @@ const {
46
46
  const organizationController = async (fastify) => {
47
47
  const { sendError } = fastify;
48
48
 
49
- const auth0Provisioner = initAuth0Provisioner(fastify.config);
49
+ const auth0Provisioner = await initAuth0Provisioner(fastify.config);
50
50
  const provisionAuth0ClientGrants =
51
51
  initProvisionAuth0ClientGrants(auth0Provisioner);
52
52
 
@@ -17,7 +17,7 @@ const {
17
17
  const invitationController = async (fastify) => {
18
18
  const sendEmailToInvitee = initSendEmailInvitee(fastify);
19
19
 
20
- const getOrCreateAuth0User = initGetOrCreateAuth0User(fastify);
20
+ const getOrCreateAuth0User = await initGetOrCreateAuth0User(fastify);
21
21
 
22
22
  fastify.get(
23
23
  '/',
@@ -27,7 +27,7 @@ const invitationsController = async (fastify) => {
27
27
  await tableRegistry.invitations()
28
28
  );
29
29
 
30
- const getOrCreateAuth0User = initGetOrCreateAuth0User(fastify);
30
+ const getOrCreateAuth0User = await initGetOrCreateAuth0User(fastify);
31
31
  const sendEmailToInvitee = initSendEmailInvitee(fastify);
32
32
 
33
33
  fastify.post(
@@ -29,8 +29,8 @@ const {
29
29
  } = require('../../../../entities');
30
30
 
31
31
  const servicesController = async (fastify) => {
32
- const deleteService = initDeleteService(fastify);
33
- const addService = initAddService(fastify);
32
+ const deleteService = await initDeleteService(fastify);
33
+ const addService = await initAddService(fastify);
34
34
 
35
35
  fastify
36
36
  .get(
@@ -38,7 +38,7 @@ const {
38
38
 
39
39
  const fullOrganizationController = async (fastify) => {
40
40
  const transformToFinder = initTransformOrganizationFilter();
41
- const createOrganization = initCreateOrganization(fastify);
41
+ const createOrganization = await initCreateOrganization(fastify);
42
42
 
43
43
  fastify
44
44
  .get(
@@ -6,7 +6,7 @@ const {
6
6
 
7
7
  const signatoriesController = async (fastify) => {
8
8
  const { sendEmailToSignatoryForOrganizationApproval } =
9
- initSendEmailNotifications(fastify);
9
+ await initSendEmailNotifications(fastify);
10
10
 
11
11
  fastify.post(
12
12
  '/send-reminder',
@@ -12,8 +12,8 @@ const {
12
12
  } = require('../../entities');
13
13
 
14
14
  const userController = async (fastify) => {
15
- const createAuth0User = initCreateAuth0User(fastify);
16
- const { getUserWithRoles, softDeleteUser } = initUserManagement(
15
+ const createAuth0User = await initCreateAuth0User(fastify);
16
+ const { getUserWithRoles, softDeleteUser } = await initUserManagement(
17
17
  fastify.config
18
18
  );
19
19
 
@@ -1,4 +1,3 @@
1
- const { ManagementClient } = require('auth0');
2
1
  const { kebabCase, trim, map, join, includes } = require('lodash/fp');
3
2
  const { nanoid } = require('nanoid');
4
3
  const {
@@ -27,7 +26,7 @@ const initRoleNameToRoleId = ({
27
26
  }
28
27
  };
29
28
  };
30
- const initAuth0Provisioner = ({
29
+ const initAuth0Provisioner = async ({
31
30
  auth0Domain,
32
31
  auth0ManagementApiAudience,
33
32
  auth0ClientId,
@@ -40,6 +39,10 @@ const initAuth0Provisioner = ({
40
39
  auth0ClientFinanceAdminRoleId,
41
40
  auth0ClientSystemUserRoleId,
42
41
  }) => {
42
+ // Use of async import for patching around https://github.com/nodejs/node/issues/58231
43
+ // Remove if migrating to esm
44
+ const { ManagementClient } = await import('auth0');
45
+
43
46
  const auth0ManagementClient = new ManagementClient({
44
47
  domain: auth0Domain,
45
48
  audience: auth0ManagementApiAudience,
@@ -30,8 +30,8 @@ const {
30
30
  initAddServiceToOrganization,
31
31
  } = require('./init-add-service-to-organization');
32
32
 
33
- const initAddService = (fastify) => {
34
- const addServiceToOrganization = initAddServiceToOrganization(fastify);
33
+ const initAddService = async (fastify) => {
34
+ const addServiceToOrganization = await initAddServiceToOrganization(fastify);
35
35
 
36
36
  return async (did, newService, context) => {
37
37
  const { repos } = context;
@@ -29,8 +29,8 @@ const {
29
29
  const { removeMonitor } = require('../../monitors');
30
30
  const { initAuth0Provisioner } = require('../../oauth');
31
31
 
32
- const initDeleteService = (fastify) => {
33
- const { removeAuth0Client } = initAuth0Provisioner(fastify.config);
32
+ const initDeleteService = async (fastify) => {
33
+ const { removeAuth0Client } = await initAuth0Provisioner(fastify.config);
34
34
  const buildOrganizationModificationsOnServiceChange =
35
35
  initBuildOrganizationModificationsOnServiceChange(fastify);
36
36
 
@@ -32,8 +32,8 @@ const {
32
32
  getServiceConsentType,
33
33
  } = require('../domains');
34
34
 
35
- const initAddServiceToOrganization = (fastify) => {
36
- const auth0Provisioner = initAuth0Provisioner(fastify.config);
35
+ const initAddServiceToOrganization = async (fastify) => {
36
+ const auth0Provisioner = await initAuth0Provisioner(fastify.config);
37
37
  const provisionAuth0Clients = initProvisionAuth0Clients(auth0Provisioner);
38
38
 
39
39
  const buildOrganizationModificationsOnServiceChange =
@@ -24,12 +24,12 @@ const {
24
24
  initOrganizationRegistrarEmails,
25
25
  } = require('./init-organization-registrar-emails');
26
26
 
27
- const initSendActivationEmailsToCAOs = (initCtx) => {
27
+ const initSendActivationEmailsToCAOs = async (initCtx) => {
28
28
  const { sendEmail, config, sendError } = initCtx;
29
29
  const { emailToCAOsForServicesActivation } =
30
30
  initOrganizationRegistrarEmails(config);
31
31
 
32
- const { getUsersByIds } = initAuth0Provisioner(config);
32
+ const { getUsersByIds } = await initAuth0Provisioner(config);
33
33
 
34
34
  return async (
35
35
  organization,
@@ -31,9 +31,9 @@ const mergeCaoServices = async (addedServices, caoServiceRefs) => {
31
31
  )(addedServices);
32
32
  };
33
33
 
34
- const initSendEmailInvitationAcceptedToInviter = (fastify) => {
34
+ const initSendEmailInvitationAcceptedToInviter = async (fastify) => {
35
35
  const { sendEmail } = fastify;
36
- const { getUsersByIds } = initAuth0Provisioner(fastify.config);
36
+ const { getUsersByIds } = await initAuth0Provisioner(fastify.config);
37
37
  const { emailToGroupForInvitationAccepted } = initOrganizationRegistrarEmails(
38
38
  fastify.config
39
39
  );
@@ -23,7 +23,7 @@ const {
23
23
  initOrganizationRegistrarEmails,
24
24
  } = require('./init-organization-registrar-emails');
25
25
 
26
- const initSendEmailNotifications = (initCtx) => {
26
+ const initSendEmailNotifications = async (initCtx) => {
27
27
  const { config } = initCtx;
28
28
  const {
29
29
  emailToNewOrgForServicesActivated,
@@ -31,7 +31,7 @@ const initSendEmailNotifications = (initCtx) => {
31
31
  emailToSupportForServicesAddedAndNeedActivation,
32
32
  emailToRegisteredOrgForServicesActivated,
33
33
  } = initOrganizationRegistrarEmails(config);
34
- const { getUsersByIds } = initAuth0Provisioner(config);
34
+ const { getUsersByIds } = await initAuth0Provisioner(config);
35
35
 
36
36
  const shouldSendEmailForServicesActivated = (
37
37
  activatedServiceIds,
@@ -36,12 +36,12 @@ const {
36
36
  getServiceConsentType,
37
37
  } = require('../../organization-services/domains/get-service-consent-type');
38
38
 
39
- const initCreateOrganization = (fastify) => {
39
+ const initCreateOrganization = async (fastify) => {
40
40
  const buildOrganizationModificationsOnServiceChange =
41
41
  initBuildOrganizationModificationsOnServiceChange(fastify);
42
42
 
43
- const provisionGroup = initProvisionGroup(fastify);
44
- const auth0Provisioner = initAuth0Provisioner(fastify.config);
43
+ const provisionGroup = await initProvisionGroup(fastify);
44
+ const auth0Provisioner = await initAuth0Provisioner(fastify.config);
45
45
  const provisionAuth0Clients = initProvisionAuth0Clients(auth0Provisioner);
46
46
 
47
47
  return async (
@@ -4,8 +4,8 @@ const {
4
4
  hasAdminOrganizationScope,
5
5
  } = require('../../oauth');
6
6
 
7
- const initProvisionGroup = (fastify) => {
8
- const auth0Provisioner = initAuth0Provisioner(fastify.config);
7
+ const initProvisionGroup = async (fastify) => {
8
+ const auth0Provisioner = await initAuth0Provisioner(fastify.config);
9
9
 
10
10
  return async (organization, context) => {
11
11
  const { sendError } = fastify;
@@ -18,9 +18,9 @@
18
18
  const { compact, map, isEmpty } = require('lodash/fp');
19
19
  const { RoleNames, initAuth0Provisioner } = require('../../oauth');
20
20
 
21
- const initCreateAuth0User = (fastify) => {
21
+ const initCreateAuth0User = async (fastify) => {
22
22
  const { createAuth0User, addRoleToAuth0User, createPasswordChangeTicket } =
23
- initAuth0Provisioner(fastify.config);
23
+ await initAuth0Provisioner(fastify.config);
24
24
 
25
25
  return async (
26
26
  { userPayload, registrarRole = null, tokenWalletRole = null, groupId },
@@ -20,10 +20,12 @@ const { initUserManagement } = require('./user-management');
20
20
  const { RoleNames, initAuth0Provisioner } = require('../../oauth');
21
21
  const { initCreateAuth0User } = require('./create-auth0-user');
22
22
 
23
- const initGetOrCreateAuth0User = (fastify) => {
24
- const createAuth0User = initCreateAuth0User(fastify);
25
- const { createPasswordChangeTicket } = initAuth0Provisioner(fastify.config);
26
- const { getUserByEmail } = initUserManagement(fastify.config);
23
+ const initGetOrCreateAuth0User = async (fastify) => {
24
+ const createAuth0User = await initCreateAuth0User(fastify);
25
+ const { createPasswordChangeTicket } = await initAuth0Provisioner(
26
+ fastify.config
27
+ );
28
+ const { getUserByEmail } = await initUserManagement(fastify.config);
27
29
 
28
30
  return async (email, givenName, familyName, req) => {
29
31
  const existingUser = first(await getUserByEmail(email));
@@ -15,7 +15,6 @@
15
15
  *
16
16
  */
17
17
 
18
- const { ManagementClient } = require('auth0');
19
18
  const {
20
19
  camelCase,
21
20
  flow,
@@ -28,7 +27,16 @@ const {
28
27
  } = require('lodash/fp');
29
28
  const { initAuth0RoleArrToRolesObj } = require('../../oauth');
30
29
 
31
- const initManagementClient = ({ domain, clientId, clientSecret, audience }) => {
30
+ const initManagementClient = async ({
31
+ domain,
32
+ clientId,
33
+ clientSecret,
34
+ audience,
35
+ }) => {
36
+ // Use of async import for patching around https://github.com/nodejs/node/issues/58231
37
+ // Remove if migrating to esm
38
+ const { ManagementClient } = await import('auth0');
39
+
32
40
  return new ManagementClient({
33
41
  audience,
34
42
  domain,
@@ -37,7 +45,7 @@ const initManagementClient = ({ domain, clientId, clientSecret, audience }) => {
37
45
  });
38
46
  };
39
47
 
40
- const initUserManagement = ({
48
+ const initUserManagement = async ({
41
49
  auth0ManagementApiAudience,
42
50
  auth0Domain,
43
51
  auth0ClientId,
@@ -47,7 +55,7 @@ const initUserManagement = ({
47
55
  auth0ClientFinanceAdminRoleId,
48
56
  auth0ClientSystemUserRoleId,
49
57
  } = {}) => {
50
- const managementClient = initManagementClient({
58
+ const managementClient = await initManagementClient({
51
59
  audience: auth0ManagementApiAudience,
52
60
  domain: auth0Domain,
53
61
  clientId: auth0ClientId,
@@ -17,7 +17,9 @@
17
17
  const { initSendActivationEmailsToCAOs } = require('../entities');
18
18
 
19
19
  const notifyCaos = async (fastify) => {
20
- const sendActivationEmailsToCAOs = initSendActivationEmailsToCAOs(fastify);
20
+ const sendActivationEmailsToCAOs = await initSendActivationEmailsToCAOs(
21
+ fastify
22
+ );
21
23
 
22
24
  const eventHandler = (
23
25
  {
@@ -18,7 +18,7 @@ const { initSendEmailInvitationAcceptedToInviter } = require('../entities');
18
18
 
19
19
  const notifyInviters = async (fastify) => {
20
20
  const sendEmailInvitationAcceptedToInviter =
21
- initSendEmailInvitationAcceptedToInviter(fastify);
21
+ await initSendEmailInvitationAcceptedToInviter(fastify);
22
22
 
23
23
  const eventHandler = (
24
24
  { payload: { organization, invitation, addedServices, caoServiceRefs } },
@@ -22,7 +22,7 @@ const {
22
22
 
23
23
  const notifySignatory = async (fastify) => {
24
24
  const { sendEmailToSignatoryForOrganizationApproval } =
25
- initSendEmailNotifications(fastify);
25
+ await initSendEmailNotifications(fastify);
26
26
 
27
27
  fastify
28
28
  .pubsub('notifySignatory')
@@ -25,8 +25,8 @@ const notifySupportAndGroups = async (fastify) => {
25
25
  sendOrganizationCreatedNotification,
26
26
  sendServiceNotificationToGroup,
27
27
  sendServiceNotification,
28
- } = initSendEmailNotifications(fastify);
29
- const { getUsersByIds } = initAuth0Provisioner(fastify.config);
28
+ } = await initSendEmailNotifications(fastify);
29
+ const { getUsersByIds } = await initAuth0Provisioner(fastify.config);
30
30
 
31
31
  fastify
32
32
  .pubsub('notifySupportAndGroups')