@overmap-ai/core 1.0.63-selector-standardization.0 → 1.0.63-selector-standardization.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.
Files changed (37) hide show
  1. package/dist/overmap-core.js +52 -66
  2. package/dist/overmap-core.js.map +1 -1
  3. package/dist/overmap-core.umd.cjs +52 -66
  4. package/dist/overmap-core.umd.cjs.map +1 -1
  5. package/dist/sdk/services/AssetAttachmentService.d.ts +1 -1
  6. package/dist/sdk/services/AssetTypeAttachmentService.d.ts +1 -1
  7. package/dist/sdk/services/BaseAttachmentService.d.ts +1 -1
  8. package/dist/sdk/services/DocumentAttachmentService.d.ts +1 -1
  9. package/dist/sdk/services/IssueAttachmentService.d.ts +1 -1
  10. package/dist/sdk/services/ProjectAttachmentService.d.ts +1 -1
  11. package/dist/store/slices/assetAttachmentSlice.d.ts +1 -1
  12. package/dist/store/slices/assetSlice.d.ts +2 -3
  13. package/dist/store/slices/assetTypeAttachmentSlice.d.ts +1 -1
  14. package/dist/store/slices/assetTypeSlice.d.ts +1 -1
  15. package/dist/store/slices/categorySlice.d.ts +1 -1
  16. package/dist/store/slices/documentAttachmentSlice.d.ts +1 -1
  17. package/dist/store/slices/documentSlice.d.ts +1 -1
  18. package/dist/store/slices/fileSlice.d.ts +1 -1
  19. package/dist/store/slices/formRevisionSlice.d.ts +2 -2
  20. package/dist/store/slices/formSlice.d.ts +3 -3
  21. package/dist/store/slices/formSubmissionSlice.d.ts +1 -1
  22. package/dist/store/slices/issueAssociationSlice.d.ts +1 -1
  23. package/dist/store/slices/issueAttachmentSlice.d.ts +1 -1
  24. package/dist/store/slices/issueSlice.d.ts +1 -1
  25. package/dist/store/slices/issueTypeSlice.d.ts +1 -1
  26. package/dist/store/slices/licenseSlice.d.ts +1 -1
  27. package/dist/store/slices/organizationAccessSlice.d.ts +1 -1
  28. package/dist/store/slices/organizationSlice.d.ts +1 -1
  29. package/dist/store/slices/projectAccessSlice.d.ts +1 -1
  30. package/dist/store/slices/projectAttachmentSlice.d.ts +2 -2
  31. package/dist/store/slices/projectFileSlice.d.ts +1 -1
  32. package/dist/store/slices/projectSlice.d.ts +2 -2
  33. package/dist/store/slices/teamSlice.d.ts +1 -1
  34. package/dist/store/slices/userSlice.d.ts +2 -2
  35. package/dist/store/slices/workspaceSlice.d.ts +1 -1
  36. package/dist/typings/store.d.ts +1 -1
  37. package/package.json +1 -1
@@ -999,7 +999,7 @@ var __publicField = (obj, key, value) => {
999
999
  [selectAssetTypesMapping],
1000
1000
  (mapping) => Object.values(mapping)
1001
1001
  );
1002
- const selectAssetTypeId = (id) => (state) => {
1002
+ const selectAssetTypeById = (id) => (state) => {
1003
1003
  return state.assetTypeReducer.instances[id];
1004
1004
  };
1005
1005
  const selectAssetTypesByIds = restructureCreateSelectorWithArgs(
@@ -1123,19 +1123,7 @@ var __publicField = (obj, key, value) => {
1123
1123
  }
1124
1124
  );
1125
1125
  const selectNumberOfAssetsOfAssetType = (assetTypeId) => (state) => {
1126
- var _a2;
1127
- if (!assetTypeId)
1128
- return 0;
1129
- return (_a2 = selectAssetsOfAssetType(assetTypeId)(state)) == null ? void 0 : _a2.length;
1130
- };
1131
- const selectAssetTypesFromIds = (assetTypeIds) => (state) => {
1132
- return assetTypeIds.reduce((acc, assetTypeId) => {
1133
- const assetType = state.assetTypeReducer.instances[assetTypeId];
1134
- if (assetType) {
1135
- acc.push(assetType);
1136
- }
1137
- return acc;
1138
- }, []);
1126
+ return selectAssetsOfAssetType(assetTypeId)(state).length;
1139
1127
  };
1140
1128
  const assetReducer = assetSlice.reducer;
1141
1129
  const assetAttachmentAdapter = createModelAdapter((attachment) => attachment.offline_id);
@@ -1345,8 +1333,8 @@ var __publicField = (obj, key, value) => {
1345
1333
  return workspaces.find((workspace) => workspace.name.toLowerCase() === "main");
1346
1334
  }
1347
1335
  );
1348
- const selectWorkspaceById = (workspaceId) => (state) => {
1349
- return state.workspaceReducer.instances[workspaceId];
1336
+ const selectWorkspaceById = (id) => (state) => {
1337
+ return state.workspaceReducer.instances[id];
1350
1338
  };
1351
1339
  const selectPermittedWorkspaceIds = toolkit.createSelector(
1352
1340
  [selectWorkspaceMapping],
@@ -1547,8 +1535,8 @@ var __publicField = (obj, key, value) => {
1547
1535
  return Object.values(issueTypes);
1548
1536
  }
1549
1537
  );
1550
- const selectIssueTypeById = (issueTypeId) => (state) => {
1551
- return state.issueTypeReducer.instances[issueTypeId];
1538
+ const selectIssueTypeById = (id) => (state) => {
1539
+ return state.issueTypeReducer.instances[id];
1552
1540
  };
1553
1541
  const selectIssueTypesByIds = (issueTypeIds) => (state) => {
1554
1542
  const issueTypes = [];
@@ -1579,8 +1567,7 @@ var __publicField = (obj, key, value) => {
1579
1567
  )
1580
1568
  );
1581
1569
  const selectIssuesOfIssueTypeCount = (issueTypeId) => (state) => {
1582
- var _a2;
1583
- return ((_a2 = selectIssuesOfIssueType(issueTypeId)(state)) == null ? void 0 : _a2.length) ?? 0;
1570
+ return selectIssuesOfIssueType(issueTypeId)(state).length;
1584
1571
  };
1585
1572
  const issueTypeReducer = issueTypeSlice.reducer;
1586
1573
  const initialState$q = {
@@ -1745,8 +1732,8 @@ var __publicField = (obj, key, value) => {
1745
1732
  return void 0;
1746
1733
  return state.userReducer.users[userId];
1747
1734
  };
1748
- const selectUserById = (userId) => (state) => {
1749
- return state.userReducer.users[userId];
1735
+ const selectUserById = (id) => (state) => {
1736
+ return state.userReducer.users[id];
1750
1737
  };
1751
1738
  const selectUsersByIds = restructureCreateSelectorWithArgs(
1752
1739
  toolkit.createSelector([selectUsersMapping, (_state, userIds) => userIds], (usersMapping, userIds) => {
@@ -1781,8 +1768,8 @@ var __publicField = (obj, key, value) => {
1781
1768
  const selectOrganizationAccesses = (state) => {
1782
1769
  return state.organizationAccessReducer.instances;
1783
1770
  };
1784
- const selectOrganizationAccess = (organizationAccessId) => (state) => {
1785
- return state.organizationAccessReducer.instances[organizationAccessId];
1771
+ const selectOrganizationAccessById = (id) => (state) => {
1772
+ return state.organizationAccessReducer.instances[id];
1786
1773
  };
1787
1774
  const selectActiveOrganizationAccess = toolkit.createSelector(
1788
1775
  [selectCurrentUser, selectOrganizationAccesses],
@@ -1822,7 +1809,7 @@ var __publicField = (obj, key, value) => {
1822
1809
  const selectLicenses = (state) => {
1823
1810
  return state.licenseReducer.instances;
1824
1811
  };
1825
- const selectLicense = (licenseId) => (state) => state.licenseReducer.instances[licenseId];
1812
+ const selectLicense = (id) => (state) => state.licenseReducer.instances[id];
1826
1813
  const selectActiveLicense = (state) => Object.values(state.licenseReducer.instances).find(
1827
1814
  (license) => license.project === state.projectReducer.activeProjectId
1828
1815
  ) ?? null;
@@ -1859,8 +1846,8 @@ var __publicField = (obj, key, value) => {
1859
1846
  return Object.values(projectAccesses);
1860
1847
  }
1861
1848
  );
1862
- const selectProjectAccessById = (projectAccessId) => (state) => {
1863
- return state.projectAccessReducer.instances[projectAccessId];
1849
+ const selectProjectAccessById = (id) => (state) => {
1850
+ return state.projectAccessReducer.instances[id];
1864
1851
  };
1865
1852
  const selectActiveProjectAccess = (state) => {
1866
1853
  const currentUser = state.userReducer.currentUser;
@@ -1955,7 +1942,7 @@ var __publicField = (obj, key, value) => {
1955
1942
  addActiveProjectFormSubmissionsCount
1956
1943
  } = projectSlice.actions;
1957
1944
  const projectReducer = projectSlice.reducer;
1958
- const selectProjects = (state) => state.projectReducer.projects;
1945
+ const selectProjectMapping = (state) => state.projectReducer.projects;
1959
1946
  const selectActiveProjectId = (state) => state.projectReducer.activeProjectId;
1960
1947
  const selectActiveProject = (state) => {
1961
1948
  const activeProjectId = selectActiveProjectId(state);
@@ -1964,8 +1951,8 @@ var __publicField = (obj, key, value) => {
1964
1951
  }
1965
1952
  return state.projectReducer.projects[activeProjectId] ?? null;
1966
1953
  };
1967
- const selectProjectById = (projectId) => (state) => {
1968
- return state.projectReducer.projects[projectId];
1954
+ const selectProjectById = (id) => (state) => {
1955
+ return state.projectReducer.projects[id];
1969
1956
  };
1970
1957
  const selectProjectUsersIds = toolkit.createSelector(
1971
1958
  [selectProjectAccessMapping],
@@ -1976,7 +1963,7 @@ var __publicField = (obj, key, value) => {
1976
1963
  (projectUserIds, users) => projectUserIds.reduce((accum, userId) => ({ ...accum, [userId]: users[userId] }), {})
1977
1964
  );
1978
1965
  const selectProjectsWithAccess = toolkit.createSelector(
1979
- [selectProjects],
1966
+ [selectProjectMapping],
1980
1967
  (projects) => Object.values(projects).filter((project) => !project.invited)
1981
1968
  );
1982
1969
  const selectSortedProjectUsers = toolkit.createSelector(
@@ -2026,17 +2013,20 @@ var __publicField = (obj, key, value) => {
2026
2013
  [selectOrganizations],
2027
2014
  (organizations) => Object.values(organizations).filter((organization) => organization.has_access)
2028
2015
  );
2029
- const selectOrganizationById = (organizationId) => (state) => {
2030
- return state.organizationReducer.organizations[organizationId];
2016
+ const selectOrganizationById = (id) => (state) => {
2017
+ return state.organizationReducer.organizations[id];
2031
2018
  };
2032
2019
  const selectOrganizationUsersIds = toolkit.createSelector(
2033
2020
  [selectOrganizationAccesses],
2034
2021
  (organizationAccesses) => Object.values(organizationAccesses).map((organizationAccess) => organizationAccess.user)
2035
2022
  );
2036
2023
  const selectProjectsOfOrganization = restructureCreateSelectorWithArgs(
2037
- toolkit.createSelector([selectProjects, (_, organizationId) => organizationId], (projects, organizationId) => {
2038
- return Object.values(projects).filter((project) => project.organization_owner === organizationId);
2039
- })
2024
+ toolkit.createSelector(
2025
+ [selectProjectMapping, (_, organizationId) => organizationId],
2026
+ (projects, organizationId) => {
2027
+ return Object.values(projects).filter((project) => project.organization_owner === organizationId);
2028
+ }
2029
+ )
2040
2030
  );
2041
2031
  const selectLicensesOfOrganization = restructureCreateSelectorWithArgs(
2042
2032
  toolkit.createSelector([selectLicenses, (_, organizationId) => organizationId], (licenses, organizationId) => {
@@ -2254,16 +2244,13 @@ var __publicField = (obj, key, value) => {
2254
2244
  [selectProjectAttachmentMapping],
2255
2245
  (mapping) => Object.values(mapping)
2256
2246
  );
2257
- const selectProjectAttachment = (attachmentId) => (state) => {
2258
- return state.projectAttachmentReducer.instances[attachmentId];
2247
+ const selectProjectAttachment = (id) => (state) => {
2248
+ return state.projectAttachmentReducer.instances[id];
2259
2249
  };
2260
2250
  const selectAttachmentsOfProject = restructureCreateSelectorWithArgs(
2261
- toolkit.createSelector(
2262
- [selectAllProjectAttachments, (_state, projectId) => projectId],
2263
- (attachments, projectId) => {
2264
- return attachments.filter(({ project }) => projectId === project);
2265
- }
2266
- )
2251
+ toolkit.createSelector([selectAllProjectAttachments, (_, projectId) => projectId], (attachments, projectId) => {
2252
+ return attachments.filter(({ project }) => projectId === project);
2253
+ })
2267
2254
  );
2268
2255
  const selectAttachmentsOfProjectByType = restructureCreateSelectorWithArgs(
2269
2256
  toolkit.createSelector(
@@ -2340,7 +2327,7 @@ var __publicField = (obj, key, value) => {
2340
2327
  [selectFormRevisionMapping],
2341
2328
  (formRevisions) => Object.values(formRevisions)
2342
2329
  );
2343
- const selectFormRevisionId = (formRevisionId) => (state) => {
2330
+ const selectFormRevisionById = (formRevisionId) => (state) => {
2344
2331
  return state.formRevisionReducer.instances[formRevisionId];
2345
2332
  };
2346
2333
  const _selectLatestFormRevision = (formRevisions, formId) => {
@@ -3105,8 +3092,8 @@ var __publicField = (obj, key, value) => {
3105
3092
  const selectTeams = toolkit.createSelector([selectTeamsMapping], (teams) => {
3106
3093
  return Object.values(teams);
3107
3094
  });
3108
- const selectTeamById = (teamId) => (state) => {
3109
- return state.teamReducer.instances[teamId];
3095
+ const selectTeamById = (id) => (state) => {
3096
+ return state.teamReducer.instances[id];
3110
3097
  };
3111
3098
  const selectTeamsOfOrganization = restructureCreateSelectorWithArgs(
3112
3099
  toolkit.createSelector(
@@ -3258,8 +3245,8 @@ var __publicField = (obj, key, value) => {
3258
3245
  }
3259
3246
  )
3260
3247
  );
3261
- const selectIssueAttachment = (attachmentId) => (root) => {
3262
- return root.issueAttachmentReducer.instances[attachmentId];
3248
+ const selectIssueAttachmentById = (id) => (root) => {
3249
+ return root.issueAttachmentReducer.instances[id];
3263
3250
  };
3264
3251
  const selectAttachmentsOfIssueByType = restructureCreateSelectorWithArgs(
3265
3252
  toolkit.createSelector(
@@ -3482,7 +3469,7 @@ var __publicField = (obj, key, value) => {
3482
3469
  throw new Error("Tried to delete main workspace");
3483
3470
  }
3484
3471
  const categoriesInThisWorkspace = new Set(
3485
- (selectCategoriesOfWorkspace(workspaceId)(draft) ?? []).map((category) => category.offline_id)
3472
+ selectCategoriesOfWorkspace(workspaceId)(draft).map((category) => category.offline_id)
3486
3473
  );
3487
3474
  for (const issue of issuesVisibleInWorkspace) {
3488
3475
  if (issue.category && categoriesInThisWorkspace.has(issue.category)) {
@@ -4293,7 +4280,7 @@ var __publicField = (obj, key, value) => {
4293
4280
  async deleteAllAssetsOfAssetType(assetTypeId) {
4294
4281
  const { store } = this.client;
4295
4282
  const state = store.getState();
4296
- const allAssetsOfAssetType = selectAssetsOfAssetType(assetTypeId)(state) ?? [];
4283
+ const allAssetsOfAssetType = selectAssetsOfAssetType(assetTypeId)(state);
4297
4284
  const allAssetsOfAssetTypeIds = allAssetsOfAssetType.map((c) => c.offline_id);
4298
4285
  const affectedOfflineIds = [assetTypeId, ...allAssetsOfAssetTypeIds];
4299
4286
  store.dispatch(deleteAssets(allAssetsOfAssetTypeIds));
@@ -4802,11 +4789,11 @@ var __publicField = (obj, key, value) => {
4802
4789
  async delete(assetTypeId) {
4803
4790
  const { store } = this.client;
4804
4791
  const state = store.getState();
4805
- const assetType = selectAssetTypeId(assetTypeId)(state);
4792
+ const assetType = selectAssetTypeById(assetTypeId)(state);
4806
4793
  if (!assetType) {
4807
4794
  throw new Error(`Expected asset type with offline_id ${assetTypeId} to exist`);
4808
4795
  }
4809
- const stagesOfAssetType = selectStagesOfAssetType(assetTypeId)(state) ?? [];
4796
+ const stagesOfAssetType = selectStagesOfAssetType(assetTypeId)(state);
4810
4797
  const attachmentsOfAssetType = selectAttachmentsOfAssetType(assetTypeId)(state);
4811
4798
  this.dispatch(deleteAssetType(assetTypeId));
4812
4799
  if (stagesOfAssetType.length > 0) {
@@ -4975,7 +4962,7 @@ var __publicField = (obj, key, value) => {
4975
4962
  __publicField(this, "removeAttachments", deleteIssueAttachments);
4976
4963
  __publicField(this, "removeAttachment", deleteIssueAttachment);
4977
4964
  __publicField(this, "setAttachment", setIssueAttachment);
4978
- __publicField(this, "selectAttachment", selectIssueAttachment);
4965
+ __publicField(this, "selectAttachment", selectIssueAttachmentById);
4979
4966
  }
4980
4967
  buildOfflineAttachment(data) {
4981
4968
  return offline({
@@ -5278,7 +5265,7 @@ var __publicField = (obj, key, value) => {
5278
5265
  if (!issueTypeToDelete) {
5279
5266
  throw new Error(`IssueType with offline_id ${issueTypeId} does not exist in the store.`);
5280
5267
  }
5281
- const issuesOfIssueType = selectIssuesOfIssueType(issueTypeId)(state) ?? [];
5268
+ const issuesOfIssueType = selectIssuesOfIssueType(issueTypeId)(state);
5282
5269
  this.dispatch(removeIssueType(issueTypeId));
5283
5270
  this.dispatch(deleteIssues(issuesOfIssueType.map((issue) => issue.offline_id)));
5284
5271
  const promise = this.enqueueRequest({
@@ -5522,7 +5509,7 @@ var __publicField = (obj, key, value) => {
5522
5509
  async delete(projectId) {
5523
5510
  const { store } = this.client;
5524
5511
  const state = store.getState();
5525
- const projects = selectProjects(state);
5512
+ const projects = selectProjectMapping(state);
5526
5513
  const project = projects[projectId];
5527
5514
  if (!project) {
5528
5515
  throw new Error("Expected project to exist");
@@ -5870,11 +5857,11 @@ var __publicField = (obj, key, value) => {
5870
5857
  throw new Error("Expected form to exist");
5871
5858
  }
5872
5859
  const formSubmissions = selectFormSubmissionsOfForm(formId)(state);
5873
- if (formSubmissions && formSubmissions.length > 0) {
5860
+ if (formSubmissions.length > 0) {
5874
5861
  this.dispatch(deleteFormSubmissions(formSubmissions.map(({ offline_id }) => offline_id)));
5875
5862
  }
5876
5863
  const formRevisions = selectFormRevisionsOfForm(formId)(state);
5877
- if (formRevisions && formRevisions.length > 0) {
5864
+ if (formRevisions.length > 0) {
5878
5865
  this.dispatch(deleteFormRevisions(formRevisions.map(({ offline_id }) => offline_id)));
5879
5866
  }
5880
5867
  this.dispatch(deleteForm(formId));
@@ -5888,10 +5875,10 @@ var __publicField = (obj, key, value) => {
5888
5875
  });
5889
5876
  } catch (e) {
5890
5877
  this.dispatch(addForm(form));
5891
- if (formRevisions && formRevisions.length > 0) {
5878
+ if (formRevisions.length > 0) {
5892
5879
  this.dispatch(addFormRevisions(formRevisions));
5893
5880
  }
5894
- if (formSubmissions && formSubmissions.length > 0) {
5881
+ if (formSubmissions.length > 0) {
5895
5882
  this.dispatch(addFormSubmissions(formSubmissions));
5896
5883
  }
5897
5884
  throw e;
@@ -7851,11 +7838,10 @@ var __publicField = (obj, key, value) => {
7851
7838
  exports2.selectAssetTypeAttachment = selectAssetTypeAttachment;
7852
7839
  exports2.selectAssetTypeAttachmentMapping = selectAssetTypeAttachmentMapping;
7853
7840
  exports2.selectAssetTypeAttachments = selectAssetTypeAttachments;
7854
- exports2.selectAssetTypeId = selectAssetTypeId;
7841
+ exports2.selectAssetTypeById = selectAssetTypeById;
7855
7842
  exports2.selectAssetTypeStagesMapping = selectAssetTypeStagesMapping;
7856
7843
  exports2.selectAssetTypes = selectAssetTypes;
7857
7844
  exports2.selectAssetTypesByIds = selectAssetTypesByIds;
7858
- exports2.selectAssetTypesFromIds = selectAssetTypesFromIds;
7859
7845
  exports2.selectAssetTypesMapping = selectAssetTypesMapping;
7860
7846
  exports2.selectAssets = selectAssets;
7861
7847
  exports2.selectAssetsByIds = selectAssetsByIds;
@@ -7904,7 +7890,7 @@ var __publicField = (obj, key, value) => {
7904
7890
  exports2.selectFormOfAssetType = selectFormOfAssetType;
7905
7891
  exports2.selectFormOfIssueType = selectFormOfIssueType;
7906
7892
  exports2.selectFormRevisionAttachmentsMapping = selectFormRevisionAttachmentsMapping;
7907
- exports2.selectFormRevisionId = selectFormRevisionId;
7893
+ exports2.selectFormRevisionById = selectFormRevisionById;
7908
7894
  exports2.selectFormRevisionMapping = selectFormRevisionMapping;
7909
7895
  exports2.selectFormRevisions = selectFormRevisions;
7910
7896
  exports2.selectFormRevisionsOfForm = selectFormRevisionsOfForm;
@@ -7934,7 +7920,7 @@ var __publicField = (obj, key, value) => {
7934
7920
  exports2.selectIssueAssociationsOfAsset = selectIssueAssociationsOfAsset;
7935
7921
  exports2.selectIssueAssociationsOfIssue = selectIssueAssociationsOfIssue;
7936
7922
  exports2.selectIssueAssociationsToIssue = selectIssueAssociationsToIssue;
7937
- exports2.selectIssueAttachment = selectIssueAttachment;
7923
+ exports2.selectIssueAttachmentById = selectIssueAttachmentById;
7938
7924
  exports2.selectIssueAttachmentMapping = selectIssueAttachmentMapping;
7939
7925
  exports2.selectIssueAttachments = selectIssueAttachments;
7940
7926
  exports2.selectIssueById = selectIssueById;
@@ -7963,7 +7949,7 @@ var __publicField = (obj, key, value) => {
7963
7949
  exports2.selectMainWorkspace = selectMainWorkspace;
7964
7950
  exports2.selectNumberOfAssetsOfAssetType = selectNumberOfAssetsOfAssetType;
7965
7951
  exports2.selectOrganization = selectOrganization;
7966
- exports2.selectOrganizationAccess = selectOrganizationAccess;
7952
+ exports2.selectOrganizationAccessById = selectOrganizationAccessById;
7967
7953
  exports2.selectOrganizationAccessForUser = selectOrganizationAccessForUser;
7968
7954
  exports2.selectOrganizationAccessUserMapping = selectOrganizationAccessUserMapping;
7969
7955
  exports2.selectOrganizationAccesses = selectOrganizationAccesses;
@@ -7985,9 +7971,9 @@ var __publicField = (obj, key, value) => {
7985
7971
  exports2.selectProjectFileById = selectProjectFileById;
7986
7972
  exports2.selectProjectFileMapping = selectProjectFileMapping;
7987
7973
  exports2.selectProjectFiles = selectProjectFiles;
7974
+ exports2.selectProjectMapping = selectProjectMapping;
7988
7975
  exports2.selectProjectUsersAsMapping = selectProjectUsersAsMapping;
7989
7976
  exports2.selectProjectUsersIds = selectProjectUsersIds;
7990
- exports2.selectProjects = selectProjects;
7991
7977
  exports2.selectProjectsOfOrganization = selectProjectsOfOrganization;
7992
7978
  exports2.selectProjectsWithAccess = selectProjectsWithAccess;
7993
7979
  exports2.selectRecentIssueIds = selectRecentIssueIds;