@overmap-ai/core 1.0.75-more-clean-ups.0 → 1.0.76

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 (140) hide show
  1. package/dist/overmap-core.js +4763 -3634
  2. package/dist/overmap-core.umd.cjs +11 -11
  3. package/dist/sdk/services/AgentService.d.ts +6 -6
  4. package/dist/sdk/services/AssetAttachmentService.d.ts +9 -9
  5. package/dist/sdk/services/AssetProcedureAttachmentService.d.ts +39 -0
  6. package/dist/sdk/services/AssetProcedureFieldValuesAttachmentService.d.ts +15 -0
  7. package/dist/sdk/services/AssetProcedureFieldValuesService.d.ts +21 -0
  8. package/dist/sdk/services/AssetProcedureFieldsAttachmentService.d.ts +12 -0
  9. package/dist/sdk/services/AssetProcedureFieldsService.d.ts +8 -0
  10. package/dist/sdk/services/AssetProcedureInstanceService.d.ts +10 -0
  11. package/dist/sdk/services/AssetProcedureService.d.ts +10 -0
  12. package/dist/sdk/services/AssetService.d.ts +5 -5
  13. package/dist/sdk/services/AssetStageCompletionService.d.ts +4 -4
  14. package/dist/sdk/services/AssetStageService.d.ts +6 -6
  15. package/dist/sdk/services/AssetTypeAttachmentService.d.ts +9 -9
  16. package/dist/sdk/services/AssetTypeFieldValuesAttachmentService.d.ts +4 -4
  17. package/dist/sdk/services/AssetTypeFieldValuesService.d.ts +9 -9
  18. package/dist/sdk/services/AssetTypeFieldsAttachmentService.d.ts +3 -3
  19. package/dist/sdk/services/AssetTypeFieldsService.d.ts +2 -2
  20. package/dist/sdk/services/AssetTypeService.d.ts +4 -4
  21. package/dist/sdk/services/BaseAttachmentService.d.ts +14 -14
  22. package/dist/sdk/services/CategoryService.d.ts +4 -4
  23. package/dist/sdk/services/DocumentAttachmentService.d.ts +9 -9
  24. package/dist/sdk/services/DocumentService.d.ts +5 -5
  25. package/dist/sdk/services/EmailDomainsService.d.ts +3 -3
  26. package/dist/sdk/services/FormRevisionAttachmentService.d.ts +3 -3
  27. package/dist/sdk/services/FormRevisionService.d.ts +2 -2
  28. package/dist/sdk/services/FormService.d.ts +3 -12
  29. package/dist/sdk/services/FormSubmissionAttachmentService.d.ts +4 -4
  30. package/dist/sdk/services/FormSubmissionService.d.ts +4 -9
  31. package/dist/sdk/services/GeoImageService.d.ts +5 -5
  32. package/dist/sdk/services/IssueAssociationService.d.ts +3 -3
  33. package/dist/sdk/services/IssueAttachmentService.d.ts +10 -9
  34. package/dist/sdk/services/IssueCommentAttachmentService.d.ts +40 -0
  35. package/dist/sdk/services/IssueCommentService.d.ts +4 -4
  36. package/dist/sdk/services/IssueService.d.ts +4 -4
  37. package/dist/sdk/services/IssueTypeAttachmentService.d.ts +40 -0
  38. package/dist/sdk/services/IssueTypeFieldValuesAttachmentService.d.ts +4 -4
  39. package/dist/sdk/services/IssueTypeFieldValuesService.d.ts +4 -4
  40. package/dist/sdk/services/IssueTypeFieldsAttachmentService.d.ts +3 -3
  41. package/dist/sdk/services/IssueTypeFieldsService.d.ts +2 -2
  42. package/dist/sdk/services/IssueTypeService.d.ts +4 -4
  43. package/dist/sdk/services/IssueUpdateService.d.ts +2 -2
  44. package/dist/sdk/services/LicenseService.d.ts +2 -2
  45. package/dist/sdk/services/OrganizationAccessService.d.ts +2 -5
  46. package/dist/sdk/services/OrganizationService.d.ts +3 -3
  47. package/dist/sdk/services/ProjectAccessService.d.ts +3 -6
  48. package/dist/sdk/services/ProjectAttachmentService.d.ts +11 -11
  49. package/dist/sdk/services/ProjectFileService.d.ts +3 -3
  50. package/dist/sdk/services/ProjectService.d.ts +5 -5
  51. package/dist/sdk/services/TeamService.d.ts +7 -7
  52. package/dist/sdk/services/UserService.d.ts +2 -2
  53. package/dist/sdk/services/index.d.ts +9 -0
  54. package/dist/store/adapters/index.d.ts +2 -0
  55. package/dist/store/adapters/modelAdapter.d.ts +15 -0
  56. package/dist/store/adapters/selectionAdapter.d.ts +13 -0
  57. package/dist/store/index.d.ts +1 -1
  58. package/dist/store/slices/agentsSlice.d.ts +8 -9
  59. package/dist/store/slices/assetAttachmentSlice.d.ts +20 -19
  60. package/dist/store/slices/assetProcedureAttachmentSlice.d.ts +47 -0
  61. package/dist/store/slices/assetProcedureFieldValuesAttachmentSlice.d.ts +68 -0
  62. package/dist/store/slices/assetProcedureFieldValuesSlice.d.ts +68 -0
  63. package/dist/store/slices/assetProcedureFieldsAttachmentSlice.d.ts +67 -0
  64. package/dist/store/slices/assetProcedureFieldsSlice.d.ts +68 -0
  65. package/dist/store/slices/assetProcedureInstanceSlice.d.ts +69 -0
  66. package/dist/store/slices/assetProcedureSlice.d.ts +68 -0
  67. package/dist/store/slices/assetSlice.d.ts +21 -16
  68. package/dist/store/slices/assetStageCompletionSlice.d.ts +29 -24
  69. package/dist/store/slices/assetStageSlice.d.ts +29 -24
  70. package/dist/store/slices/assetTypeAttachmentSlice.d.ts +20 -19
  71. package/dist/store/slices/assetTypeFieldValuesAttachmentSlice.d.ts +20 -15
  72. package/dist/store/slices/assetTypeFieldValuesSlice.d.ts +21 -16
  73. package/dist/store/slices/assetTypeFieldsAttachmentSlice.d.ts +20 -15
  74. package/dist/store/slices/assetTypeFieldsSlice.d.ts +35 -30
  75. package/dist/store/slices/assetTypeSlice.d.ts +20 -15
  76. package/dist/store/slices/authSlice.d.ts +3 -3
  77. package/dist/store/slices/categorySlice.d.ts +10 -8
  78. package/dist/store/slices/documentAttachmentSlice.d.ts +20 -19
  79. package/dist/store/slices/documentSlice.d.ts +4 -5
  80. package/dist/store/slices/emailDomainsSlice.d.ts +15 -13
  81. package/dist/store/slices/fileSlice.d.ts +2 -2
  82. package/dist/store/slices/formRevisionAttachmentSlice.d.ts +19 -14
  83. package/dist/store/slices/formRevisionSlice.d.ts +29 -25
  84. package/dist/store/slices/formSlice.d.ts +14 -17
  85. package/dist/store/slices/formSubmissionAttachmentSlice.d.ts +19 -14
  86. package/dist/store/slices/formSubmissionSlice.d.ts +20 -15
  87. package/dist/store/slices/geoImageSlice.d.ts +28 -23
  88. package/dist/store/slices/index.d.ts +9 -0
  89. package/dist/store/slices/issueAssociationSlice.d.ts +18 -13
  90. package/dist/store/slices/issueAttachmentSlice.d.ts +18 -17
  91. package/dist/store/slices/issueCommentAttachmentSlice.d.ts +47 -0
  92. package/dist/store/slices/issueCommentSlice.d.ts +15 -10
  93. package/dist/store/slices/issueSlice.d.ts +15 -10
  94. package/dist/store/slices/issueTypeAttachmentSlice.d.ts +47 -0
  95. package/dist/store/slices/issueTypeFieldValuesAttachmentSlice.d.ts +20 -15
  96. package/dist/store/slices/issueTypeFieldValuesSlice.d.ts +20 -15
  97. package/dist/store/slices/issueTypeFieldsAttachmentSlice.d.ts +20 -15
  98. package/dist/store/slices/issueTypeFieldsSlice.d.ts +36 -31
  99. package/dist/store/slices/issueTypeSlice.d.ts +15 -13
  100. package/dist/store/slices/issueUpdateSlice.d.ts +14 -9
  101. package/dist/store/slices/licenseSlice.d.ts +12 -13
  102. package/dist/store/slices/organizationAccessSlice.d.ts +15 -13
  103. package/dist/store/slices/organizationSlice.d.ts +45 -11
  104. package/dist/store/slices/outboxSlice.d.ts +2 -2
  105. package/dist/store/slices/projectAccessSlice.d.ts +17 -12
  106. package/dist/store/slices/projectAttachmentSlice.d.ts +19 -18
  107. package/dist/store/slices/projectFileSlice.d.ts +19 -14
  108. package/dist/store/slices/projectSlice.d.ts +42 -17
  109. package/dist/store/slices/rehydratedSlice.d.ts +2 -2
  110. package/dist/store/slices/teamSlice.d.ts +13 -11
  111. package/dist/store/slices/userSlice.d.ts +47 -10
  112. package/dist/store/slices/versioningSlice.d.ts +1 -2
  113. package/dist/store/store.d.ts +54 -46
  114. package/dist/store/typings.d.ts +5 -2
  115. package/dist/typings/models/agents.d.ts +2 -2
  116. package/dist/typings/models/assets.d.ts +36 -14
  117. package/dist/typings/models/attachments.d.ts +12 -3
  118. package/dist/typings/models/base.d.ts +65 -19
  119. package/dist/typings/models/categories.d.ts +3 -3
  120. package/dist/typings/models/documents.d.ts +4 -4
  121. package/dist/typings/models/emailDomain.d.ts +3 -3
  122. package/dist/typings/models/emailVerification.d.ts +5 -5
  123. package/dist/typings/models/fields.d.ts +5 -5
  124. package/dist/typings/models/forms.d.ts +8 -9
  125. package/dist/typings/models/geoImages.d.ts +5 -5
  126. package/dist/typings/models/index.d.ts +0 -2
  127. package/dist/typings/models/issueTypes.d.ts +3 -3
  128. package/dist/typings/models/issues.d.ts +14 -66
  129. package/dist/typings/models/license.d.ts +3 -3
  130. package/dist/typings/models/organizations.d.ts +9 -3
  131. package/dist/typings/models/projects.d.ts +11 -6
  132. package/dist/typings/models/store.d.ts +10 -1
  133. package/dist/typings/models/teams.d.ts +4 -4
  134. package/dist/typings/models/users.d.ts +2 -4
  135. package/dist/utils/offline.d.ts +4 -3
  136. package/dist/utils/utils.d.ts +3 -2
  137. package/package.json +5 -5
  138. package/dist/store/adapter.d.ts +0 -15
  139. package/dist/typings/models/access.d.ts +0 -12
  140. package/dist/typings/models/geo.d.ts +0 -13
@@ -1,40 +1,62 @@
1
- import { BaseSerializedObject, ISerializedField } from '@overmap-ai/forms';
2
- import { ColorModel, CreatedByModel, IconModel, OfflineModel, SubmittedAtModel, TimestampedModel } from './base';
1
+ import { CanvasMarkableModel, ColorModel, CreatedByModel, IconModel, IndexedModel, MarkableModel, SubmittedAtModel, TimestampedModel, UUIDModel } from './base';
3
2
  import { FieldsAttachmentModel, FieldsModel, FieldValuesModel } from './fields';
4
- import { CanvasMarkableModel, MarkableModel } from './geo';
5
- export interface Asset extends OfflineModel, TimestampedModel, SubmittedAtModel, CreatedByModel, MarkableModel, CanvasMarkableModel {
3
+ export interface Asset extends UUIDModel, TimestampedModel, SubmittedAtModel, CreatedByModel, MarkableModel, CanvasMarkableModel, IndexedModel {
6
4
  asset_type: string;
7
- created_at?: string;
8
5
  label: string | null;
9
6
  description?: string;
10
- project: number;
7
+ project: string;
11
8
  }
12
- export interface AssetType extends OfflineModel, TimestampedModel, SubmittedAtModel, CreatedByModel, IconModel, ColorModel {
13
- organization: number;
9
+ export interface AssetType extends UUIDModel, TimestampedModel, SubmittedAtModel, CreatedByModel, IconModel, ColorModel {
10
+ organization: string;
14
11
  name?: string;
15
12
  description?: string;
16
13
  }
17
- export interface AssetStage extends OfflineModel, TimestampedModel, SubmittedAtModel, CreatedByModel, ColorModel {
14
+ export interface AssetProcedure extends UUIDModel, TimestampedModel, SubmittedAtModel, CreatedByModel, IconModel, ColorModel {
15
+ organization: string;
16
+ name?: string | null;
17
+ description?: string | null;
18
+ }
19
+ export interface AssetProcedureInstance extends UUIDModel, TimestampedModel, SubmittedAtModel, CreatedByModel, IndexedModel {
20
+ asset_procedure: string;
18
21
  asset_type: string;
22
+ project: string;
23
+ }
24
+ export interface AssetStage extends UUIDModel, TimestampedModel, SubmittedAtModel, CreatedByModel, ColorModel {
25
+ asset_procedure: string;
19
26
  name?: string | null;
20
27
  description?: string | null;
21
28
  priority: number;
22
29
  }
23
- export interface AssetStageCompletion extends OfflineModel, TimestampedModel, SubmittedAtModel, CreatedByModel {
30
+ export interface AssetStageCompletion extends UUIDModel, TimestampedModel, SubmittedAtModel, CreatedByModel {
24
31
  asset: string;
25
32
  stage: string;
33
+ asset_procedure_instance: string;
26
34
  }
27
35
  export type CompletedStagesMapping = Record<string, Record<string, string>>;
28
- export interface AssetTypeFields<TFields extends BaseSerializedObject = ISerializedField> extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsModel<TFields> {
36
+ export interface AssetTypeFields extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsModel {
29
37
  asset_type: string;
30
38
  }
31
- export interface AssetTypeFieldsAttachment extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
39
+ export interface AssetTypeFieldsAttachment extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
40
+ fields_revision: string;
41
+ }
42
+ export interface AssetTypeFieldValues extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldValuesModel {
43
+ fields_revision: string;
44
+ asset: string;
45
+ }
46
+ export interface AssetTypeFieldValuesAttachment extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
47
+ field_values: string;
48
+ }
49
+ export interface AssetProcedureFields extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsModel {
50
+ asset_procedure: string;
51
+ }
52
+ export interface AssetProcedureFieldsAttachment extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
32
53
  fields_revision: string;
33
54
  }
34
- export interface AssetTypeFieldValues extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldValuesModel {
55
+ export interface AssetProcedureFieldValues extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldValuesModel {
35
56
  fields_revision: string;
57
+ asset_procedure_instance: string;
36
58
  asset: string;
37
59
  }
38
- export interface AssetTypeFieldValuesAttachment extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
60
+ export interface AssetProcedureFieldValuesAttachment extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
39
61
  field_values: string;
40
62
  }
@@ -1,20 +1,29 @@
1
1
  import { FileModel, FileWithNameModel } from '../files';
2
- import { CreatedByModel, OfflineModel, SubmittedAtModel } from './base';
3
- export interface Attachment extends OfflineModel, SubmittedAtModel, FileWithNameModel, CreatedByModel {
2
+ import { CreatedByModel, SubmittedAtModel, UUIDModel } from './base';
3
+ export interface Attachment extends UUIDModel, SubmittedAtModel, FileWithNameModel, CreatedByModel {
4
4
  description?: string;
5
5
  file_type: string;
6
6
  }
7
7
  export interface IssueAttachment extends Attachment {
8
8
  issue: string;
9
9
  }
10
+ export interface IssueTypeAttachment extends Attachment {
11
+ issue_type: string;
12
+ }
13
+ export interface IssueCommentAttachment extends Attachment {
14
+ issue_comment: string;
15
+ }
10
16
  export interface AssetAttachment extends Attachment {
11
17
  asset: string;
12
18
  }
13
19
  export interface AssetTypeAttachment extends Attachment {
14
20
  asset_type: string;
15
21
  }
22
+ export interface AssetProcedureAttachment extends Attachment {
23
+ asset_procedure: string;
24
+ }
16
25
  export interface ProjectAttachment extends Attachment {
17
- project: number;
26
+ project: string;
18
27
  }
19
28
  export interface DocumentAttachment extends Attachment {
20
29
  document: string;
@@ -1,29 +1,59 @@
1
+ import { IconType } from '@overmap-ai/blocks';
2
+ import { MultiPoint, Point } from 'geojson';
3
+ import { COMMON_AUTO_FIELDS } from '../../utils';
1
4
  import { CSSColor } from '../colors';
2
5
  import { User } from './users';
6
+ export type UUID<T> = T & {
7
+ uuid: string;
8
+ };
9
+ export type UUIDModelMapping<TModel extends UUIDModel> = Record<TModel["uuid"], TModel>;
10
+ type FilteredKeys<T> = {
11
+ [P in keyof T]: T[P] extends never ? never : P;
12
+ }[keyof T];
13
+ type ExcludeNeverFields<O> = {
14
+ [K in FilteredKeys<O>]: O[K];
15
+ };
16
+ type PropertyUndefined<T> = {
17
+ [P in keyof T]?: T[P];
18
+ };
19
+ export type CommonAutoFields = (typeof COMMON_AUTO_FIELDS)[number];
20
+ /**
21
+ * Represents a model instance that has been submitted to the backend. Some properties (depending on which model, but in
22
+ * all cases, the `offline_id`) are guaranteed to be set.
23
+ */
24
+ export type Submitted<TModel> = Omit<TModel, CommonAutoFields> & PropertyUndefined<ExcludeNeverFields<{
25
+ created_at: "created_at" extends keyof TModel ? undefined : never;
26
+ updated_at: "updated_at" extends keyof TModel ? undefined : never;
27
+ index: "index" extends keyof TModel ? undefined : never;
28
+ revision: "revision" extends keyof TModel ? undefined : never;
29
+ }>>;
30
+ /**
31
+ * Represents a model instance that has been submitted to the backend, accepted, then downloaded. Created models
32
+ * typically have additional properties that are only known once it has been processed and accepted by the API, such as
33
+ * the `created_at` timestamp, which is the time at which the data was written to the database.
34
+ */
35
+ export type Created<TModel> = TModel;
36
+ /**
37
+ * Model instances that are stored in the Redux store can be already-created (and will likely be gotten with the initial
38
+ * data load), or to-be-created. In the former case, you will get a `Created<TModel>`. In the latter case, you will get
39
+ * a `Submitted<TModel>`.
40
+ */
41
+ export type Stored<TModel> = Created<TModel> | Submitted<TModel>;
42
+ export type Payload<TModel> = Omit<TModel, CommonAutoFields | "uuid" | "id" | "submitted_at" | "created_by">;
3
43
  export interface Model {
4
44
  }
5
- export interface OfflineModel extends Model {
6
- offline_id: string;
45
+ export interface IdModel extends Model {
46
+ id: number;
47
+ }
48
+ export interface UUIDModel extends Model {
49
+ uuid: string;
7
50
  }
8
51
  export interface SubmittedAtModel extends Model {
9
52
  submitted_at: string;
10
53
  }
11
54
  export interface TimestampedModel extends Model {
12
- created_at?: string;
13
- updated_at?: string;
14
- }
15
- export type Offline<T> = T & {
16
- offline_id: string;
17
- };
18
- export type OfflineIdMapping<TModel extends OfflineModel> = Record<TModel["offline_id"], TModel>;
19
- export type Payload<TModel> = Omit<TModel, "offline_id" | "created_at" | "updated_at" | "id" | "submitted_at" | "created_by">;
20
- export type MaybePayload<TModel extends OfflineModel> = Payload<TModel> & {
21
- offline_id?: string | null;
22
- };
23
- export interface FileObject {
24
- file_sha1: string;
25
- file: string;
26
- objectURL?: string;
55
+ created_at: string;
56
+ updated_at: string;
27
57
  }
28
58
  export interface OptionalFileModel {
29
59
  file_sha1?: string | null;
@@ -31,10 +61,10 @@ export interface OptionalFileModel {
31
61
  objectURL?: string;
32
62
  }
33
63
  export interface OwnedByOrganization {
34
- organization_owner: number;
64
+ organization_owner: string;
35
65
  }
36
66
  export interface IconModel {
37
- icon: string;
67
+ icon: IconType;
38
68
  }
39
69
  export interface ColorModel {
40
70
  color: CSSColor;
@@ -42,3 +72,19 @@ export interface ColorModel {
42
72
  export interface CreatedByModel {
43
73
  created_by?: User["id"] | null;
44
74
  }
75
+ export interface IndexedModel {
76
+ index: number;
77
+ }
78
+ export interface BoundableModel {
79
+ bounds?: MultiPoint;
80
+ }
81
+ export interface CanvasBoundableModel {
82
+ canvas_bounds?: MultiPoint;
83
+ }
84
+ export interface MarkableModel {
85
+ geo_marker?: Point;
86
+ }
87
+ export interface CanvasMarkableModel {
88
+ canvas_marker?: Point;
89
+ }
90
+ export {};
@@ -1,8 +1,8 @@
1
1
  import { CSSColor } from '../colors';
2
- import { CreatedByModel, OfflineModel, SubmittedAtModel, TimestampedModel } from './base';
3
- export interface Category extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel {
2
+ import { CreatedByModel, SubmittedAtModel, TimestampedModel, UUIDModel } from './base';
3
+ export interface Category extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel {
4
4
  name: string;
5
5
  description?: string;
6
6
  color: CSSColor;
7
- project: number;
7
+ project: string;
8
8
  }
@@ -1,11 +1,11 @@
1
- import { ColorModel, CreatedByModel, IconModel, OfflineModel, SubmittedAtModel, TimestampedModel } from './base';
2
- export interface Document extends OfflineModel, SubmittedAtModel, CreatedByModel, TimestampedModel, IconModel, ColorModel {
1
+ import { ColorModel, CreatedByModel, IconModel, SubmittedAtModel, TimestampedModel, UUIDModel } from './base';
2
+ export interface Document extends UUIDModel, SubmittedAtModel, CreatedByModel, TimestampedModel, IconModel, ColorModel {
3
3
  title: string | null;
4
4
  description: string | null;
5
5
  content: string | null;
6
6
  parent_document: string | null;
7
7
  children_documents: string[];
8
- project?: number;
9
- organization?: number;
8
+ project?: string;
9
+ organization?: string;
10
10
  }
11
11
  export type MovePosition = "left" | "right" | "left-child" | "right-child";
@@ -1,5 +1,5 @@
1
- import { OfflineModel } from './base';
2
- export interface EmailDomain extends OfflineModel {
1
+ import { UUIDModel } from './base';
2
+ export interface EmailDomain extends UUIDModel {
3
3
  domain: string;
4
- organization: number;
4
+ organization: string;
5
5
  }
@@ -1,9 +1,9 @@
1
- import { OfflineModel } from './base';
1
+ import { UUIDModel } from './base';
2
2
  import { RegistrationPayload } from './users';
3
3
  export type EmailVerificationPayload = undefined | RegistrationPayload | Omit<RegistrationPayload, "username" | "email">;
4
4
  export interface EmailVerificationReturn {
5
5
  username?: string;
6
- project?: number;
6
+ project?: string;
7
7
  }
8
8
  export declare enum VerificationCodeType {
9
9
  USER_REGISTRATION = 0,
@@ -13,10 +13,10 @@ export declare enum VerificationCodeType {
13
13
  ADD_EMAIL_DOMAIN = 8,
14
14
  RESET_PASSWORD = 10
15
15
  }
16
- export interface VerificationCode extends OfflineModel {
16
+ export interface VerificationCode extends UUIDModel {
17
17
  verification_code: string;
18
18
  verification_type: VerificationCodeType;
19
19
  organization?: number;
20
- project?: number;
21
- user?: number;
20
+ project?: string;
21
+ user?: string;
22
22
  }
@@ -1,12 +1,12 @@
1
- import { BaseSerializedObject, FieldValue, ISerializedField } from '@overmap-ai/forms';
1
+ import { SerializedFieldSection, SerializedFieldValues } from '@overmap-ai/forms';
2
2
  import { FileWithNameModel } from '../files';
3
- export interface FieldsModel<TFields extends BaseSerializedObject = ISerializedField> {
4
- fields: TFields[];
5
- revision: number | "Pending";
3
+ export interface FieldsModel {
4
+ fields: SerializedFieldSection[];
5
+ revision: number;
6
6
  }
7
7
  export interface FieldValuesModel {
8
8
  published_at?: string | null;
9
- values: Record<string, FieldValue>;
9
+ values: SerializedFieldValues;
10
10
  }
11
11
  export interface FieldsAttachmentModel extends FileWithNameModel {
12
12
  field_identifier: string;
@@ -1,24 +1,23 @@
1
- import { BaseSerializedObject, ISerializedField } from '@overmap-ai/forms';
2
- import { CreatedByModel, OfflineModel, Payload, SubmittedAtModel, TimestampedModel } from './base';
1
+ import { CreatedByModel, IndexedModel, Payload, SubmittedAtModel, TimestampedModel, UUIDModel } from './base';
3
2
  import { FieldsAttachmentModel, FieldsModel, FieldValuesAttachmentModel, FieldValuesModel } from './fields';
4
- export interface Form extends OfflineModel, SubmittedAtModel, CreatedByModel {
5
- organization: number;
3
+ export interface Form extends UUIDModel, SubmittedAtModel, CreatedByModel {
4
+ organization: string;
6
5
  }
7
- export interface FormRevision<TFields extends BaseSerializedObject = ISerializedField> extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsModel<TFields> {
6
+ export interface FormRevision extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsModel {
8
7
  form: string;
9
8
  title: string;
10
9
  description?: string;
11
10
  }
12
11
  export type FormRevisionPayload = Omit<Payload<FormRevision>, "revision">;
13
- export interface FormSubmission extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldValuesModel {
12
+ export interface FormSubmission extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldValuesModel, IndexedModel {
14
13
  form_revision: string;
15
- project: number;
14
+ project: string;
16
15
  issue?: string | null;
17
16
  asset?: string | null;
18
17
  }
19
- export interface FormSubmissionAttachment extends FieldValuesAttachmentModel {
18
+ export interface FormSubmissionAttachment extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldValuesAttachmentModel {
20
19
  form_submission: string;
21
20
  }
22
- export interface FormRevisionAttachment extends FieldsAttachmentModel {
21
+ export interface FormRevisionAttachment extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
23
22
  form_revision: string;
24
23
  }
@@ -1,14 +1,14 @@
1
1
  import { FileWithNameModel } from '../files';
2
- import { CreatedByModel, OfflineModel, SubmittedAtModel } from './base';
3
- import { CanvasMarkableModel, MarkableModel } from './geo';
4
- export interface GeoImage extends OfflineModel, SubmittedAtModel, CreatedByModel, MarkableModel, CanvasMarkableModel, FileWithNameModel {
2
+ import { CanvasMarkableModel, CreatedByModel, IndexedModel, MarkableModel, Payload, SubmittedAtModel, UUIDModel } from './base';
3
+ import { Project } from './projects';
4
+ export interface GeoImage extends UUIDModel, SubmittedAtModel, CreatedByModel, MarkableModel, CanvasMarkableModel, FileWithNameModel, IndexedModel {
5
5
  title?: string;
6
6
  description?: string;
7
- project: number;
7
+ project: Project["uuid"];
8
8
  direction?: number;
9
9
  original_date?: string;
10
10
  }
11
- export type GeoImagePayload = Omit<GeoImage, "offline_id" | "submitted_at" | "created_by" | "file_name" | "file_sha1" | "file"> & {
11
+ export type GeoImagePayload = Omit<Payload<GeoImage>, "file_name" | "file_sha1" | "file"> & {
12
12
  file: File;
13
13
  };
14
14
  export type BulkGeoImagePayload = Omit<GeoImagePayload, "project">;
@@ -1,4 +1,3 @@
1
- export * from './access';
2
1
  export * from './agents';
3
2
  export * from './assets';
4
3
  export * from './attachments';
@@ -9,7 +8,6 @@ export * from './emailDomain';
9
8
  export * from './emailVerification';
10
9
  export * from './fields';
11
10
  export * from './forms';
12
- export * from './geo';
13
11
  export * from './geoImages';
14
12
  export * from './issues';
15
13
  export * from './issueTypes';
@@ -1,7 +1,7 @@
1
- import { ColorModel, CreatedByModel, IconModel, OfflineModel, SubmittedAtModel } from './base';
1
+ import { ColorModel, CreatedByModel, IconModel, SubmittedAtModel, UUIDModel } from './base';
2
2
  import { Organization } from './organizations';
3
- export interface IssueType extends OfflineModel, SubmittedAtModel, IconModel, ColorModel, CreatedByModel {
3
+ export interface IssueType extends UUIDModel, SubmittedAtModel, IconModel, ColorModel, CreatedByModel {
4
4
  name?: string;
5
5
  description?: string;
6
- organization: Organization["id"];
6
+ organization: Organization["uuid"];
7
7
  }
@@ -1,83 +1,31 @@
1
- import { BaseSerializedObject, ISerializedField } from '@overmap-ai/forms';
2
1
  import { IssuePriority, IssueStatus, IssueUpdateChange } from '../../enums';
3
2
  import { CSSColor } from '../colors';
4
- import { CreatedByModel, Offline, OfflineModel, SubmittedAtModel, TimestampedModel } from './base';
3
+ import { CanvasMarkableModel, CreatedByModel, IndexedModel, MarkableModel, SubmittedAtModel, TimestampedModel, UUIDModel } from './base';
5
4
  import { FieldsAttachmentModel, FieldsModel, FieldValuesModel } from './fields';
6
- import { CanvasMarkableModel, MarkableModel } from './geo';
7
5
  import { User } from './users';
8
- /**
9
- * Represents a model instance that has been submitted to the backend. Some properties (depending on which model, but in
10
- * all cases, the `offline_id`) are guaranteed to be set.
11
- */
12
- export type Submitted<TModel> = Offline<TModel> & (TModel extends Issue ? SubmittedIssue : Omit<TModel, "created_at" | "id">);
13
- /**
14
- * Represents a model instance that has been submitted to the backend, accepted, then downloaded. Created models
15
- * typically have additional properties that are only known once it has been processed and accepted by the API, such as
16
- * the `created_at` timestamp, which is the time at which the data was written to the database.
17
- */
18
- export type Created<TModel> = Submitted<TModel> & (TModel extends Issue ? CreatedIssue : TModel extends IssueComment ? CreatedIssueComment : TModel);
19
- /**
20
- * Model instances that are stored in the Redux store can be already-created (and will likely be gotten with the initial
21
- * data load), or to-be-created. In the former case, you will get a `Created<TModel>`. In the latter case, you will get
22
- * a `Submitted<TModel>`.
23
- */
24
- export type Stored<TModel> = Created<TModel> | Submitted<TModel>;
25
- /**
26
- * Represents the properties you can always expect on any object representing an issue. These are the minimal details
27
- * required when creating an issue.
28
- */
29
- export interface Issue extends OfflineModel, SubmittedAtModel, CreatedByModel, MarkableModel, CanvasMarkableModel {
6
+ export interface Issue extends UUIDModel, SubmittedAtModel, CreatedByModel, MarkableModel, CanvasMarkableModel, IndexedModel {
30
7
  title?: string | null;
31
8
  description?: string | null;
32
9
  priority: IssuePriority;
33
10
  status: IssueStatus;
34
- assigned_to?: number | null;
11
+ assigned_to?: User["id"] | null;
35
12
  due_date?: string | Date | null;
36
13
  category?: string | null;
37
- issue_type?: string | null;
38
- project: number;
39
- }
40
- /**
41
- * These details need to be provided by the frontend code before submitting to the backend.
42
- */
43
- export interface SubmittedIssue extends OfflineModel, CreatedByModel {
44
- submitted_at: string;
45
- status: Exclude<Issue["status"], undefined>;
46
- priority: Exclude<Issue["priority"], undefined>;
47
- }
48
- /**
49
- * These details exist on issues that have been successfully submitted, accepted, created, and serialized by the
50
- * backend, then downloaded by the frontend.
51
- */
52
- export interface CreatedIssue extends Issue {
53
- title: Exclude<Issue["title"], undefined>;
54
- description: Exclude<Issue["description"], undefined>;
55
- assigned_to: Exclude<Issue["assigned_to"], undefined>;
56
- due_date: Exclude<Issue["due_date"], undefined>;
57
- category: Exclude<Issue["category"], undefined>;
58
- geo_marker: Exclude<Issue["geo_marker"], undefined>;
59
- created_at: string;
14
+ issue_type: string;
15
+ project: string;
60
16
  }
61
- export interface IssueComment extends OfflineModel, SubmittedAtModel, TimestampedModel {
17
+ export interface IssueComment extends UUIDModel, SubmittedAtModel, TimestampedModel {
62
18
  issue: string;
63
19
  content: string;
64
20
  author?: number;
65
21
  }
66
- export interface SubmittedIssueComment {
67
- created_at: Exclude<IssueComment["created_at"], undefined>;
68
- }
69
- export interface CreatedIssueComment {
70
- author: Exclude<IssueComment["author"], undefined>;
71
- created_at: Exclude<IssueComment["created_at"], undefined>;
72
- }
73
- export type IssueCommentPayload = Omit<IssueComment, "author" | "created_at" | "offline_id">;
74
22
  export interface IssueUpdateChangeTypes {
75
23
  status: IssueStatus;
76
24
  priority: IssuePriority;
77
25
  category: {
78
26
  name: string;
79
27
  color: CSSColor;
80
- offline_id: OfflineModel["offline_id"];
28
+ uuid: UUIDModel["uuid"];
81
29
  } | null;
82
30
  description: string;
83
31
  title: string;
@@ -87,26 +35,26 @@ export interface IssueUpdateChangeTypes {
87
35
  } | null;
88
36
  due_date: string;
89
37
  }
90
- export interface IssueUpdate extends OfflineModel, CreatedByModel {
38
+ export interface IssueUpdate extends UUIDModel, CreatedByModel {
91
39
  submitted_at: string;
92
- issue: OfflineModel["offline_id"];
40
+ issue: UUIDModel["uuid"];
93
41
  changes: Partial<Record<IssueUpdateChange, IssueUpdateChangeTypes[IssueUpdateChange]>>;
94
42
  }
95
- export interface IssueAssociation extends OfflineModel, SubmittedAtModel, CreatedByModel {
43
+ export interface IssueAssociation extends UUIDModel, SubmittedAtModel, CreatedByModel {
96
44
  associated_issue: string;
97
45
  issue?: string;
98
46
  asset?: string;
99
47
  }
100
- export interface IssueTypeFields<TFields extends BaseSerializedObject = ISerializedField> extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsModel<TFields> {
48
+ export interface IssueTypeFields extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsModel {
101
49
  issue_type: string;
102
50
  }
103
- export interface IssueTypeFieldsAttachment extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
51
+ export interface IssueTypeFieldsAttachment extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
104
52
  fields_revision: string;
105
53
  }
106
- export interface IssueTypeFieldValues extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldValuesModel {
54
+ export interface IssueTypeFieldValues extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldValuesModel {
107
55
  fields_revision: string;
108
56
  issue: string;
109
57
  }
110
- export interface IssueTypeFieldValuesAttachment extends OfflineModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
58
+ export interface IssueTypeFieldValuesAttachment extends UUIDModel, SubmittedAtModel, TimestampedModel, CreatedByModel, FieldsAttachmentModel {
111
59
  field_values: string;
112
60
  }
@@ -1,10 +1,10 @@
1
1
  import { LicenseLevel, LicenseStatus } from '../../enums';
2
- import { OfflineModel, OwnedByOrganization } from './base';
2
+ import { OwnedByOrganization, UUIDModel } from './base';
3
3
  export interface Transaction {
4
4
  id: string;
5
5
  }
6
- export interface License extends OfflineModel, OwnedByOrganization {
7
- project: number | null;
6
+ export interface License extends UUIDModel, OwnedByOrganization {
7
+ project: string | null;
8
8
  level: LicenseLevel;
9
9
  status: LicenseStatus;
10
10
  is_special: boolean;
@@ -1,6 +1,12 @@
1
- import { CreatedByModel, Model } from './base';
2
- export interface Organization extends Model, CreatedByModel {
3
- id: number;
1
+ import { OrganizationAccessLevel } from '../../enums';
2
+ import { CreatedByModel, UUIDModel } from './base';
3
+ import { User } from './users';
4
+ export interface Organization extends UUIDModel, CreatedByModel {
4
5
  name: string;
5
6
  has_access: boolean;
6
7
  }
8
+ export interface OrganizationAccess extends UUIDModel {
9
+ user: User["id"];
10
+ organization: string;
11
+ access_level: OrganizationAccessLevel;
12
+ }
@@ -1,14 +1,19 @@
1
+ import { ProjectAccessLevel } from '../../enums';
1
2
  import { FileWithNameModel } from '../files';
2
- import { Model, OfflineModel, OwnedByOrganization, SubmittedAtModel } from './base';
3
- import { BoundableModel, CanvasBoundableModel } from './geo';
4
- export interface Project extends Model, BoundableModel, CanvasBoundableModel, OwnedByOrganization {
5
- id: number;
3
+ import { BoundableModel, CanvasBoundableModel, OwnedByOrganization, SubmittedAtModel, UUIDModel } from './base';
4
+ import { User } from './users';
5
+ export interface Project extends UUIDModel, BoundableModel, CanvasBoundableModel, OwnedByOrganization {
6
6
  name: string;
7
7
  invited?: boolean;
8
8
  issues_count?: number;
9
9
  form_submissions_count?: number;
10
10
  }
11
- export interface ProjectFile extends OfflineModel, SubmittedAtModel, FileWithNameModel, BoundableModel, CanvasBoundableModel {
11
+ export interface ProjectFile extends UUIDModel, SubmittedAtModel, FileWithNameModel, BoundableModel, CanvasBoundableModel {
12
12
  z_index: number;
13
- project: number;
13
+ project: Project["uuid"];
14
+ }
15
+ export interface ProjectAccess extends UUIDModel {
16
+ user: User["id"];
17
+ project: Project["uuid"];
18
+ access_level: ProjectAccessLevel;
14
19
  }
@@ -1,5 +1,5 @@
1
1
  import { OfflineState } from '@redux-offline/redux-offline/lib/types';
2
- import { AgentsState, AssetAttachmentState, AssetStageCompletionState, AssetStageState, AssetState, AssetTypeAttachmentState, AssetTypeFieldsAttachmentState, AssetTypeFieldsState, AssetTypeFieldValuesAttachmentState, AssetTypeFieldValuesState, AssetTypeState, AuthState, CategoryState, DocumentAttachmentState, DocumentState, EmailDomainState, FileState, FormRevisionAttachmentState, FormRevisionState, FormState, FormSubmissionAttachmentState, FormSubmissionState, GeoImageSliceState, IssueAssociationSliceState, IssueAttachmentState, IssueCommentState, IssueState, IssueTypeFieldsAttachmentState, IssueTypeFieldsState, IssueTypeFieldValuesAttachmentState, IssueTypeFieldValuesState, IssueTypeState, IssueUpdateState, LicenseState, OrganizationAccessState, OrganizationState, OutboxState, ProjectAccessState, ProjectAttachmentState, ProjectFileState, ProjectState, RehydratedState, TeamState, UserState, VERSION_REDUCER_KEY, VersioningState } from '../../store';
2
+ import { AgentsState, AssetAttachmentState, AssetProcedureAttachmentState, AssetProcedureFieldsAttachmentState, AssetProcedureFieldsState, AssetProcedureFieldValuesAttachmentState, AssetProcedureFieldValuesState, AssetProcedureInstanceState, AssetProcedureState, AssetStageCompletionState, AssetStageState, AssetState, AssetTypeAttachmentState, AssetTypeFieldsAttachmentState, AssetTypeFieldsState, AssetTypeFieldValuesAttachmentState, AssetTypeFieldValuesState, AssetTypeState, AuthState, CategoryState, DocumentAttachmentState, DocumentState, EmailDomainState, FileState, FormRevisionAttachmentState, FormRevisionState, FormState, FormSubmissionAttachmentState, FormSubmissionState, GeoImageSliceState, IssueAssociationSliceState, IssueAttachmentState, IssueCommentAttachmentState, IssueCommentState, IssueState, IssueTypeAttachmentState, IssueTypeFieldsAttachmentState, IssueTypeFieldsState, IssueTypeFieldValuesAttachmentState, IssueTypeFieldValuesState, IssueTypeState, IssueUpdateState, LicenseState, OrganizationAccessState, OrganizationState, OutboxState, ProjectAccessState, ProjectAttachmentState, ProjectFileState, ProjectState, RehydratedState, TeamState, UserState, VERSION_REDUCER_KEY, VersioningState } from '../../store';
3
3
  export interface BaseState {
4
4
  outboxReducer: OutboxState;
5
5
  offline: OfflineState;
@@ -18,8 +18,10 @@ export interface OvermapRootState extends BaseState {
18
18
  issueReducer: IssueState;
19
19
  issueAttachmentReducer: IssueAttachmentState;
20
20
  issueCommentReducer: IssueCommentState;
21
+ issueCommentAttachmentReducer: IssueCommentAttachmentState;
21
22
  issueUpdateReducer: IssueUpdateState;
22
23
  issueTypeReducer: IssueTypeState;
24
+ issueTypeAttachmentReducer: IssueTypeAttachmentState;
23
25
  organizationReducer: OrganizationState;
24
26
  projectReducer: ProjectState;
25
27
  projectAttachmentReducer: ProjectAttachmentState;
@@ -49,4 +51,11 @@ export interface OvermapRootState extends BaseState {
49
51
  assetTypeFieldValuesReducer: AssetTypeFieldValuesState;
50
52
  assetTypeFieldsAttachmentReducer: AssetTypeFieldsAttachmentState;
51
53
  assetTypeFieldValuesAttachmentReducer: AssetTypeFieldValuesAttachmentState;
54
+ assetProcedureReducer: AssetProcedureState;
55
+ assetProcedureAttachmentReducer: AssetProcedureAttachmentState;
56
+ assetProcedureInstanceReducer: AssetProcedureInstanceState;
57
+ assetProcedureFieldsReducer: AssetProcedureFieldsState;
58
+ assetProcedureFieldValuesReducer: AssetProcedureFieldValuesState;
59
+ assetProcedureFieldsAttachmentReducer: AssetProcedureFieldsAttachmentState;
60
+ assetProcedureFieldValuesAttachmentReducer: AssetProcedureFieldValuesAttachmentState;
52
61
  }
@@ -1,9 +1,9 @@
1
- import { ColorModel, IconModel, OfflineModel, SubmittedAtModel } from './base';
1
+ import { ColorModel, IconModel, SubmittedAtModel, UUIDModel } from './base';
2
2
  import { Organization } from './organizations';
3
3
  import { User } from './users';
4
- export interface Team extends OfflineModel, SubmittedAtModel, IconModel, ColorModel {
4
+ export interface Team extends UUIDModel, SubmittedAtModel, IconModel, ColorModel {
5
5
  name: string;
6
- parent: OfflineModel["offline_id"] | null;
7
- organization: Organization["id"];
6
+ parent: Team["uuid"] | null;
7
+ organization: Organization["uuid"];
8
8
  members: User["id"][];
9
9
  }
@@ -1,10 +1,8 @@
1
- import { OptionalFileModel } from './base';
1
+ import { IdModel, OptionalFileModel } from './base';
2
2
  export interface Profile extends OptionalFileModel {
3
- favourite_project_ids: number[];
4
3
  tour_step: number;
5
4
  }
6
- export interface User {
7
- id: number;
5
+ export interface User extends IdModel {
8
6
  username: string;
9
7
  email: string;
10
8
  profile: Profile;