@overmap-ai/core 1.0.34 → 1.0.35-projects-licensing.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.
@@ -626,15 +626,15 @@ const wrapMigration = (migrator) => (state) => {
626
626
  };
627
627
  const migrations = [initialVersioning, signOut, signOut, createOutboxState];
628
628
  const manifest = Object.fromEntries(migrations.map((migration2, i) => [i, wrapMigration(migration2)]));
629
- const initialState$l = {
629
+ const initialState$m = {
630
630
  accessToken: "",
631
631
  refreshToken: "",
632
632
  isLoggedIn: false
633
633
  };
634
634
  const authSlice = createSlice({
635
635
  name: "auth",
636
- initialState: initialState$l,
637
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$l)),
636
+ initialState: initialState$m,
637
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$m)),
638
638
  reducers: {
639
639
  setTokens: (state, action) => {
640
640
  state.accessToken = action.payload.accessToken;
@@ -1338,7 +1338,7 @@ const getLocalRelativeDateString = memoize((date, min, max) => {
1338
1338
  return getLocalDateString(date);
1339
1339
  return relative.format(days, "days");
1340
1340
  });
1341
- const initialState$k = {
1341
+ const initialState$l = {
1342
1342
  categories: {},
1343
1343
  usedCategoryColors: [],
1344
1344
  categoryVisibility: {
@@ -1348,8 +1348,8 @@ const initialState$k = {
1348
1348
  };
1349
1349
  const categorySlice = createSlice({
1350
1350
  name: "categories",
1351
- initialState: initialState$k,
1352
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$k)),
1351
+ initialState: initialState$l,
1352
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$l)),
1353
1353
  reducers: {
1354
1354
  setCategories: (state, action) => {
1355
1355
  if (!Array.isArray(action.payload))
@@ -1482,13 +1482,13 @@ const selectHiddenCategoryCount = (state) => {
1482
1482
  return hiddenCategoryCount;
1483
1483
  };
1484
1484
  const categoryReducer = categorySlice.reducer;
1485
- const initialState$j = {
1485
+ const initialState$k = {
1486
1486
  components: {}
1487
1487
  };
1488
1488
  const componentSlice = createSlice({
1489
1489
  name: "components",
1490
- initialState: initialState$j,
1491
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
1490
+ initialState: initialState$k,
1491
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$k)),
1492
1492
  reducers: {
1493
1493
  addComponent: (state, action) => {
1494
1494
  state.components[action.payload.offline_id] = action.payload;
@@ -1600,13 +1600,13 @@ const {
1600
1600
  removeAllComponentsOfType
1601
1601
  } = componentSlice.actions;
1602
1602
  const componentReducer = componentSlice.reducer;
1603
- const initialState$i = {
1603
+ const initialState$j = {
1604
1604
  completionsByComponentId: {}
1605
1605
  };
1606
1606
  const componentStageCompletionSlice = createSlice({
1607
1607
  name: "componentStageCompletions",
1608
- initialState: initialState$i,
1609
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
1608
+ initialState: initialState$j,
1609
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$j)),
1610
1610
  reducers: {
1611
1611
  addStageCompletion: (state, action) => {
1612
1612
  let stageToCompletionDateMapping = state.completionsByComponentId[action.payload.component];
@@ -1657,13 +1657,13 @@ const selectCompletedStageIdsForComponent = (component) => (state) => {
1657
1657
  return Object.keys(state.componentStageCompletionReducer.completionsByComponentId[component.offline_id] ?? {});
1658
1658
  };
1659
1659
  const componentStageCompletionReducer = componentStageCompletionSlice.reducer;
1660
- const initialState$h = {
1660
+ const initialState$i = {
1661
1661
  stages: {}
1662
1662
  };
1663
1663
  const componentStageSlice = createSlice({
1664
1664
  name: "componentStages",
1665
- initialState: initialState$h,
1666
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
1665
+ initialState: initialState$i,
1666
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$i)),
1667
1667
  reducers: {
1668
1668
  addStages: (state, action) => {
1669
1669
  Object.assign(state.stages, toOfflineIdRecord(action.payload));
@@ -1723,14 +1723,14 @@ const selectStagesFromStageIds = restructureCreateSelectorWithArgs(
1723
1723
  );
1724
1724
  const { addStages, updateStages, removeStages } = componentStageSlice.actions;
1725
1725
  const componentStageReducer = componentStageSlice.reducer;
1726
- const initialState$g = {
1726
+ const initialState$h = {
1727
1727
  componentTypes: {},
1728
1728
  hiddenComponentTypeIds: {}
1729
1729
  };
1730
1730
  const componentTypeSlice = createSlice({
1731
1731
  name: "componentTypes",
1732
- initialState: initialState$g,
1733
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$g)),
1732
+ initialState: initialState$h,
1733
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$h)),
1734
1734
  reducers: {
1735
1735
  addComponentType: (state, action) => {
1736
1736
  state.componentTypes[action.payload.offline_id] = action.payload;
@@ -1789,13 +1789,13 @@ const selectComponentTypesByName = restructureCreateSelectorWithArgs(
1789
1789
  const selectHiddenComponentTypeIds = (state) => state.componentTypeReducer.hiddenComponentTypeIds;
1790
1790
  const { addComponentType, setComponentTypes, toggleComponentTypeVisibility, deleteComponentType } = componentTypeSlice.actions;
1791
1791
  const componentTypeReducer = componentTypeSlice.reducer;
1792
- const initialState$f = {
1792
+ const initialState$g = {
1793
1793
  workspaces: {},
1794
1794
  activeWorkspaceId: null
1795
1795
  };
1796
1796
  const workspaceSlice = createSlice({
1797
1797
  name: "workspace",
1798
- initialState: initialState$f,
1798
+ initialState: initialState$g,
1799
1799
  // The `reducers` field lets us define reducers and generate associated actions
1800
1800
  reducers: {
1801
1801
  setWorkspaces: (state, action) => {
@@ -1852,7 +1852,7 @@ const selectPermittedWorkspaceIds = createSelector(
1852
1852
  );
1853
1853
  const workspaceReducer = workspaceSlice.reducer;
1854
1854
  const maxRecentIssues = 10;
1855
- const initialState$e = {
1855
+ const initialState$f = {
1856
1856
  issues: {},
1857
1857
  attachments: {},
1858
1858
  comments: {},
@@ -1864,9 +1864,9 @@ const initialState$e = {
1864
1864
  };
1865
1865
  const issueSlice = createSlice({
1866
1866
  name: "issues",
1867
- initialState: initialState$e,
1867
+ initialState: initialState$f,
1868
1868
  extraReducers: (builder) => builder.addCase("RESET", (state) => {
1869
- Object.assign(state, initialState$e);
1869
+ Object.assign(state, initialState$f);
1870
1870
  }),
1871
1871
  reducers: {
1872
1872
  setIssues: (state, action) => {
@@ -2197,15 +2197,15 @@ const selectRecentIssuesAsSearchResults = createSelector(
2197
2197
  }
2198
2198
  );
2199
2199
  const issueReducer = issueSlice.reducer;
2200
- const initialState$d = {
2200
+ const initialState$e = {
2201
2201
  s3Urls: {}
2202
2202
  };
2203
2203
  const msPerHour = 1e3 * 60 * 60;
2204
2204
  const msPerWeek = msPerHour * 24 * 7;
2205
2205
  const fileSlice = createSlice({
2206
2206
  name: "file",
2207
- initialState: initialState$d,
2208
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
2207
+ initialState: initialState$e,
2208
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$e)),
2209
2209
  reducers: {
2210
2210
  setUploadUrl: (state, action) => {
2211
2211
  const { url, fields, sha1 } = action.payload;
@@ -2232,7 +2232,7 @@ const selectUploadUrl = (sha1) => (state) => {
2232
2232
  return url;
2233
2233
  };
2234
2234
  const fileReducer = fileSlice.reducer;
2235
- const initialState$c = {
2235
+ const initialState$d = {
2236
2236
  // TODO: Change first MapStyle.SATELLITE to MaptStyle.None when project creation map is fixed
2237
2237
  mapStyle: MapStyle.SATELLITE,
2238
2238
  showTooltips: false,
@@ -2240,8 +2240,8 @@ const initialState$c = {
2240
2240
  };
2241
2241
  const mapSlice = createSlice({
2242
2242
  name: "map",
2243
- initialState: initialState$c,
2244
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
2243
+ initialState: initialState$d,
2244
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$d)),
2245
2245
  reducers: {
2246
2246
  setMapStyle: (state, action) => {
2247
2247
  state.mapStyle = action.payload;
@@ -2283,7 +2283,11 @@ var VerificationCodeType = /* @__PURE__ */ ((VerificationCodeType2) => {
2283
2283
  VerificationCodeType2[VerificationCodeType2["RESET_PASSWORD"] = 10] = "RESET_PASSWORD";
2284
2284
  return VerificationCodeType2;
2285
2285
  })(VerificationCodeType || {});
2286
- const initialState$b = {
2286
+ var LicenseLevel = /* @__PURE__ */ ((LicenseLevel2) => {
2287
+ LicenseLevel2[LicenseLevel2["PRO"] = 0] = "PRO";
2288
+ return LicenseLevel2;
2289
+ })(LicenseLevel || {});
2290
+ const initialState$c = {
2287
2291
  users: {},
2288
2292
  currentUser: {
2289
2293
  id: 0,
@@ -2294,8 +2298,8 @@ const initialState$b = {
2294
2298
  };
2295
2299
  const userSlice = createSlice({
2296
2300
  name: "users",
2297
- initialState: initialState$b,
2298
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
2301
+ initialState: initialState$c,
2302
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$c)),
2299
2303
  reducers: {
2300
2304
  setUsers: (state, action) => {
2301
2305
  const usersMapping = {};
@@ -2357,13 +2361,13 @@ const selectUser = (userId) => (state) => {
2357
2361
  const selectUsersAsMapping = (state) => state.userReducer.users;
2358
2362
  const selectFavouriteProjects = (state) => state.userReducer.currentUser.profile.favourite_project_ids;
2359
2363
  const userReducer = userSlice.reducer;
2360
- const initialState$a = {
2364
+ const initialState$b = {
2361
2365
  organizationAccesses: {}
2362
2366
  };
2363
2367
  const organizationAccessSlice = createSlice({
2364
2368
  name: "organizationAccess",
2365
- initialState: initialState$a,
2366
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
2369
+ initialState: initialState$b,
2370
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$b)),
2367
2371
  reducers: {
2368
2372
  setOrganizationAccesses: (state, action) => {
2369
2373
  if (!Array.isArray(action.payload))
@@ -2426,14 +2430,14 @@ const selectOrganizationAccessUserMapping = (state) => {
2426
2430
  return organizationAccesses;
2427
2431
  };
2428
2432
  const organizationAccessReducer = organizationAccessSlice.reducer;
2429
- const initialState$9 = {
2433
+ const initialState$a = {
2430
2434
  organizations: {},
2431
2435
  activeOrganizationId: null
2432
2436
  };
2433
2437
  const organizationSlice = createSlice({
2434
2438
  name: "organizations",
2435
- initialState: initialState$9,
2436
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$9)),
2439
+ initialState: initialState$a,
2440
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$a)),
2437
2441
  reducers: {
2438
2442
  setOrganizations: (state, action) => {
2439
2443
  for (const org of action.payload) {
@@ -2525,14 +2529,14 @@ const createOfflineAction = (request2, baseUrl) => {
2525
2529
  }
2526
2530
  };
2527
2531
  };
2528
- const initialState$8 = {
2532
+ const initialState$9 = {
2529
2533
  deletedRequests: [],
2530
2534
  latestRetryTime: 0
2531
2535
  };
2532
2536
  const outboxSlice = createSlice({
2533
2537
  name: "outbox",
2534
- initialState: initialState$8,
2535
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$8)),
2538
+ initialState: initialState$9,
2539
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$9)),
2536
2540
  reducers: {
2537
2541
  // enqueueActions is a reducer that does nothing but enqueue API request to the Redux Offline outbox
2538
2542
  // Whenever an issue is being created, a reducer addIssue() is responsible for adding it to the offline store
@@ -2564,13 +2568,13 @@ const selectDeletedRequests = (state) => state.outboxReducer.deletedRequests;
2564
2568
  const selectLatestRetryTime = (state) => state.outboxReducer.latestRetryTime;
2565
2569
  const { enqueueRequest, markForDeletion, markAsDeleted, _setLatestRetryTime } = outboxSlice.actions;
2566
2570
  const outboxReducer = outboxSlice.reducer;
2567
- const initialState$7 = {
2571
+ const initialState$8 = {
2568
2572
  projectAccesses: {}
2569
2573
  };
2570
2574
  const projectAccessSlice = createSlice({
2571
2575
  name: "projectAccess",
2572
- initialState: initialState$7,
2573
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$7)),
2576
+ initialState: initialState$8,
2577
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$8)),
2574
2578
  reducers: {
2575
2579
  setProjectAccesses: (state, action) => {
2576
2580
  if (!Array.isArray(action.payload))
@@ -2638,7 +2642,7 @@ const selectProjectAccessUserMapping = (state) => {
2638
2642
  return projectAccesses;
2639
2643
  };
2640
2644
  const projectAccessReducer = projectAccessSlice.reducer;
2641
- const initialState$6 = {
2645
+ const initialState$7 = {
2642
2646
  projects: {},
2643
2647
  activeProjectId: null,
2644
2648
  recentProjectIds: [],
@@ -2647,7 +2651,7 @@ const initialState$6 = {
2647
2651
  };
2648
2652
  const projectSlice = createSlice({
2649
2653
  name: "projects",
2650
- initialState: initialState$6,
2654
+ initialState: initialState$7,
2651
2655
  reducers: {
2652
2656
  setProjects: (state, action) => {
2653
2657
  const projectsMap = {};
@@ -2767,7 +2771,7 @@ const selectSortedProjectUsers = createSelector(
2767
2771
  });
2768
2772
  }
2769
2773
  );
2770
- const initialState$5 = {
2774
+ const initialState$6 = {
2771
2775
  projectFiles: {},
2772
2776
  activeProjectFileId: null,
2773
2777
  isImportingProjectFile: false,
@@ -2775,8 +2779,8 @@ const initialState$5 = {
2775
2779
  };
2776
2780
  const projectFileSlice = createSlice({
2777
2781
  name: "projectFiles",
2778
- initialState: initialState$5,
2779
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$5)),
2782
+ initialState: initialState$6,
2783
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$6)),
2780
2784
  reducers: {
2781
2785
  addOrReplaceProjectFiles: (state, action) => {
2782
2786
  for (let fileObj of action.payload) {
@@ -2877,12 +2881,12 @@ const selectProjectFiles = createSelector(
2877
2881
  const selectActiveProjectFileId = (state) => state.projectFileReducer.activeProjectFileId;
2878
2882
  const selectIsImportingProjectFile = (state) => state.projectFileReducer.isImportingProjectFile;
2879
2883
  const projectFileReducer = projectFileSlice.reducer;
2880
- const initialState$4 = {
2884
+ const initialState$5 = {
2881
2885
  isRehydrated: false
2882
2886
  };
2883
2887
  const rehydratedSlice = createSlice({
2884
2888
  name: "rehydrated",
2885
- initialState: initialState$4,
2889
+ initialState: initialState$5,
2886
2890
  // The `reducers` field lets us define reducers and generate associated actions
2887
2891
  reducers: {
2888
2892
  setRehydrated: (state, action) => {
@@ -2892,7 +2896,7 @@ const rehydratedSlice = createSlice({
2892
2896
  });
2893
2897
  const selectRehydrated = (state) => state.rehydratedReducer.isRehydrated;
2894
2898
  const rehydratedReducer = rehydratedSlice.reducer;
2895
- const initialState$3 = {
2899
+ const initialState$4 = {
2896
2900
  useIssueTemplate: false,
2897
2901
  placementMode: false,
2898
2902
  enableClustering: true,
@@ -2907,8 +2911,8 @@ const initialState$3 = {
2907
2911
  };
2908
2912
  const settingSlice = createSlice({
2909
2913
  name: "settings",
2910
- initialState: initialState$3,
2911
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$3)),
2914
+ initialState: initialState$4,
2915
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$4)),
2912
2916
  reducers: {
2913
2917
  setEnableDuplicateIssues: (state, action) => {
2914
2918
  state.useIssueTemplate = action.payload;
@@ -2971,7 +2975,7 @@ function considerCachingRevision(revision, formId2, preferPending = false) {
2971
2975
  function getLatestRevisionFromCache(formId2) {
2972
2976
  return LATEST_REVISION_CACHE[formId2];
2973
2977
  }
2974
- const initialState$2 = {
2978
+ const initialState$3 = {
2975
2979
  userForms: {},
2976
2980
  revisions: {},
2977
2981
  submissions: {},
@@ -2979,8 +2983,8 @@ const initialState$2 = {
2979
2983
  };
2980
2984
  const userFormSlice = createSlice({
2981
2985
  name: "userForms",
2982
- initialState: initialState$2,
2983
- extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$2)),
2986
+ initialState: initialState$3,
2987
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$3)),
2984
2988
  reducers: {
2985
2989
  setUserForms: (state, action) => {
2986
2990
  state.userForms = {};
@@ -3228,12 +3232,12 @@ const selectNumberOfUserForms = createSelector([selectUserFormMapping], (userFor
3228
3232
  return Object.keys(userForms).length;
3229
3233
  });
3230
3234
  const userFormReducer = userFormSlice.reducer;
3231
- const initialState$1 = {
3235
+ const initialState$2 = {
3232
3236
  emailDomains: {}
3233
3237
  };
3234
3238
  const emailDomainsSlice = createSlice({
3235
3239
  name: "emailDomains",
3236
- initialState: initialState$1,
3240
+ initialState: initialState$2,
3237
3241
  reducers: {
3238
3242
  setEmailDomains: (state, action) => {
3239
3243
  const emailDomains = {};
@@ -3260,6 +3264,70 @@ const selectSortedEmailDomains = (state) => Object.values(state.emailDomainsRedu
3260
3264
  (ed1, ed2) => ed1.domain.localeCompare(ed2.domain)
3261
3265
  );
3262
3266
  const emailDomainsReducer = emailDomainsSlice.reducer;
3267
+ const initialState$1 = {
3268
+ licenses: {}
3269
+ };
3270
+ const licenseSlice = createSlice({
3271
+ name: "license",
3272
+ initialState: initialState$1,
3273
+ extraReducers: (builder) => builder.addCase("RESET", (state) => Object.assign(state, initialState$1)),
3274
+ reducers: {
3275
+ setLicenses: (state, action) => {
3276
+ if (!Array.isArray(action.payload))
3277
+ throw new Error("Expected an array of License");
3278
+ if (action.payload.filter(onlyUniqueOfflineIds).length !== action.payload.length) {
3279
+ throw new Error("Tried to use setLicenses reducer with duplicate ID's");
3280
+ }
3281
+ const licenses = {};
3282
+ for (const license of action.payload) {
3283
+ licenses[license.offline_id] = license;
3284
+ }
3285
+ state.licenses = licenses;
3286
+ }
3287
+ }
3288
+ });
3289
+ const { setLicenses } = licenseSlice.actions;
3290
+ const selectLicenses = (state) => {
3291
+ return state.licenseReducer.licenses;
3292
+ };
3293
+ const selectLicense = (licenseId) => (state) => state.licenseReducer.licenses[licenseId];
3294
+ const selectActiveLicense = createSelector(
3295
+ [selectLicenses, selectActiveProjectId],
3296
+ (licenses, activeProjectId) => {
3297
+ const activeLicense = Object.values(licenses).find((license) => license.project === activeProjectId);
3298
+ return activeLicense ?? null;
3299
+ }
3300
+ );
3301
+ const selectLicencesMapping = createSelector(
3302
+ [selectLicenses],
3303
+ (licenses) => Object.values(licenses).reduce((accum, license) => ({ ...accum, [license.project]: license }), {})
3304
+ );
3305
+ const selectSortedLicenses = createSelector(
3306
+ [selectActiveLicense, selectLicenses, selectProjects],
3307
+ (activeLicense, licenses, projects) => {
3308
+ return Object.values(licenses).sort((licenseA, licenseB) => {
3309
+ if (activeLicense) {
3310
+ if (activeLicense.offline_id === licenseA.offline_id) {
3311
+ return -1;
3312
+ } else if (activeLicense.offline_id === licenseB.offline_id) {
3313
+ return 1;
3314
+ }
3315
+ }
3316
+ const projectIds = Object.keys(projects);
3317
+ if (!licenseA.project || !(licenseA.project in projectIds)) {
3318
+ return 1;
3319
+ } else if (!licenseB.project || !(licenseB.project in projectIds)) {
3320
+ return -1;
3321
+ }
3322
+ return projects[licenseA.project].name.toLowerCase().localeCompare(
3323
+ projects[licenseB.project].name.toLowerCase(),
3324
+ void 0,
3325
+ { numeric: true }
3326
+ );
3327
+ });
3328
+ }
3329
+ );
3330
+ const licenseReducer = licenseSlice.reducer;
3263
3331
  const initialState = {
3264
3332
  version: 0
3265
3333
  };
@@ -3304,7 +3372,8 @@ const overmapReducers = {
3304
3372
  userFormReducer,
3305
3373
  userReducer,
3306
3374
  workspaceReducer,
3307
- emailDomainsReducer
3375
+ emailDomainsReducer,
3376
+ licenseReducer
3308
3377
  };
3309
3378
  const overmapReducer = combineReducers(overmapReducers);
3310
3379
  const resetStore = "RESET";
@@ -4916,6 +4985,7 @@ class MainService extends BaseApiService {
4916
4985
  }
4917
4986
  store.dispatch(setCurrentUser(data.user));
4918
4987
  store.dispatch(addUsers(data.project_owners));
4988
+ store.dispatch(setLicenses(data.licenses));
4919
4989
  const organizationsData = data.organizations;
4920
4990
  store.dispatch(setOrganizations(organizationsData));
4921
4991
  const validProjects = projects.filter((project) => !project.invited);
@@ -11250,6 +11320,7 @@ export {
11250
11320
  IssuePriority,
11251
11321
  IssueService,
11252
11322
  IssueStatus,
11323
+ LicenseLevel,
11253
11324
  MainService,
11254
11325
  MapStyle,
11255
11326
  MultiSelectField,
@@ -11395,6 +11466,8 @@ export {
11395
11466
  issueReducer,
11396
11467
  issueSlice,
11397
11468
  issueToSearchResult,
11469
+ licenseReducer,
11470
+ licenseSlice,
11398
11471
  literalToCoordinates,
11399
11472
  logOnlyOnce,
11400
11473
  makeClient,
@@ -11461,6 +11534,7 @@ export {
11461
11534
  searchIssues,
11462
11535
  selectAccessToken,
11463
11536
  selectActiveIssueId,
11537
+ selectActiveLicense,
11464
11538
  selectActiveOrganization,
11465
11539
  selectActiveOrganizationAccess,
11466
11540
  selectActiveOrganizationId,
@@ -11521,6 +11595,9 @@ export {
11521
11595
  selectLatestFormRevision,
11522
11596
  selectLatestRetryTime,
11523
11597
  selectLatestRevisionByFormId,
11598
+ selectLicencesMapping,
11599
+ selectLicense,
11600
+ selectLicenses,
11524
11601
  selectMainWorkspace,
11525
11602
  selectMapStyle,
11526
11603
  selectNumberOfComponentTypesMatchingCaseInsensitiveName,
@@ -11554,6 +11631,7 @@ export {
11554
11631
  selectRevisionsForForm,
11555
11632
  selectShowTooltips,
11556
11633
  selectSortedEmailDomains,
11634
+ selectSortedLicenses,
11557
11635
  selectSortedOrganizationUsers,
11558
11636
  selectSortedProjectUsers,
11559
11637
  selectSortedProjects,
@@ -11598,6 +11676,7 @@ export {
11598
11676
  setIsImportingProjectFile,
11599
11677
  setIssueComments,
11600
11678
  setIssues,
11679
+ setLicenses,
11601
11680
  setLoggedIn,
11602
11681
  setMapStyle,
11603
11682
  setOrganizationAccesses,