@apollo-annotation/shared 0.3.13 → 1.0.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.
Files changed (170) hide show
  1. package/dist/Changes/{DeleteFeatureChange.d.ts → AddAndDeleteFeatureChanges.d.ts} +26 -11
  2. package/dist/Changes/AddAndDeleteFeatureChanges.d.ts.map +1 -0
  3. package/dist/Changes/AddAndDeleteFeatureChanges.js +117 -0
  4. package/dist/Changes/AddAndDeleteFeatureChanges.js.map +1 -0
  5. package/dist/Changes/AddAssemblyAliasesChange.d.ts +1 -4
  6. package/dist/Changes/AddAssemblyAliasesChange.d.ts.map +1 -1
  7. package/dist/Changes/AddAssemblyAliasesChange.js +0 -27
  8. package/dist/Changes/AddAssemblyAliasesChange.js.map +1 -1
  9. package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.d.ts +2 -11
  10. package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.d.ts.map +1 -1
  11. package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.js +2 -82
  12. package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.js.map +1 -1
  13. package/dist/Changes/AddAssemblyFromExternalChange.d.ts +1 -9
  14. package/dist/Changes/AddAssemblyFromExternalChange.d.ts.map +1 -1
  15. package/dist/Changes/AddAssemblyFromExternalChange.js +0 -72
  16. package/dist/Changes/AddAssemblyFromExternalChange.js.map +1 -1
  17. package/dist/Changes/AddAssemblyFromFileChange.d.ts +2 -17
  18. package/dist/Changes/AddAssemblyFromFileChange.d.ts.map +1 -1
  19. package/dist/Changes/AddAssemblyFromFileChange.js +2 -119
  20. package/dist/Changes/AddAssemblyFromFileChange.js.map +1 -1
  21. package/dist/Changes/AddFeaturesFromFileChange.d.ts +2 -11
  22. package/dist/Changes/AddFeaturesFromFileChange.d.ts.map +1 -1
  23. package/dist/Changes/AddFeaturesFromFileChange.js +2 -66
  24. package/dist/Changes/AddFeaturesFromFileChange.js.map +1 -1
  25. package/dist/Changes/AddRefSeqAliasesChange.d.ts +1 -4
  26. package/dist/Changes/AddRefSeqAliasesChange.d.ts.map +1 -1
  27. package/dist/Changes/AddRefSeqAliasesChange.js +0 -34
  28. package/dist/Changes/AddRefSeqAliasesChange.js.map +1 -1
  29. package/dist/Changes/DeleteAssemblyChange.d.ts +1 -9
  30. package/dist/Changes/DeleteAssemblyChange.d.ts.map +1 -1
  31. package/dist/Changes/DeleteAssemblyChange.js +0 -53
  32. package/dist/Changes/DeleteAssemblyChange.js.map +1 -1
  33. package/dist/Changes/DeleteUserChange.d.ts +1 -4
  34. package/dist/Changes/DeleteUserChange.d.ts.map +1 -1
  35. package/dist/Changes/DeleteUserChange.js +0 -19
  36. package/dist/Changes/DeleteUserChange.js.map +1 -1
  37. package/dist/Changes/FeatureAttributeChange.d.ts +1 -9
  38. package/dist/Changes/FeatureAttributeChange.d.ts.map +1 -1
  39. package/dist/Changes/FeatureAttributeChange.js +0 -82
  40. package/dist/Changes/FeatureAttributeChange.js.map +1 -1
  41. package/dist/Changes/ImportJBrowseConfigChange.d.ts +1 -4
  42. package/dist/Changes/ImportJBrowseConfigChange.d.ts.map +1 -1
  43. package/dist/Changes/ImportJBrowseConfigChange.js +1 -18
  44. package/dist/Changes/ImportJBrowseConfigChange.js.map +1 -1
  45. package/dist/Changes/LocationEndChange.d.ts +1 -9
  46. package/dist/Changes/LocationEndChange.d.ts.map +1 -1
  47. package/dist/Changes/LocationEndChange.js +0 -90
  48. package/dist/Changes/LocationEndChange.js.map +1 -1
  49. package/dist/Changes/LocationStartChange.d.ts +1 -9
  50. package/dist/Changes/LocationStartChange.d.ts.map +1 -1
  51. package/dist/Changes/LocationStartChange.js +0 -90
  52. package/dist/Changes/LocationStartChange.js.map +1 -1
  53. package/dist/Changes/MergeAndUndoMergeExonsChanges.d.ts +46 -0
  54. package/dist/Changes/MergeAndUndoMergeExonsChanges.d.ts.map +1 -0
  55. package/dist/Changes/MergeAndUndoMergeExonsChanges.js +83 -0
  56. package/dist/Changes/MergeAndUndoMergeExonsChanges.js.map +1 -0
  57. package/dist/Changes/{MergeTranscriptsChange.d.ts → MergeAndUndoMergeTranscriptsChanges.d.ts} +22 -6
  58. package/dist/Changes/MergeAndUndoMergeTranscriptsChanges.d.ts.map +1 -0
  59. package/dist/Changes/{MergeTranscriptsChange.js → MergeAndUndoMergeTranscriptsChanges.js} +40 -50
  60. package/dist/Changes/MergeAndUndoMergeTranscriptsChanges.js.map +1 -0
  61. package/dist/Changes/SplitAndUndoSplitExonChanges.d.ts +55 -0
  62. package/dist/Changes/SplitAndUndoSplitExonChanges.d.ts.map +1 -0
  63. package/dist/Changes/SplitAndUndoSplitExonChanges.js +115 -0
  64. package/dist/Changes/SplitAndUndoSplitExonChanges.js.map +1 -0
  65. package/dist/Changes/StrandChange.d.ts +1 -9
  66. package/dist/Changes/StrandChange.d.ts.map +1 -1
  67. package/dist/Changes/StrandChange.js +0 -77
  68. package/dist/Changes/StrandChange.js.map +1 -1
  69. package/dist/Changes/TypeChange.d.ts +1 -9
  70. package/dist/Changes/TypeChange.d.ts.map +1 -1
  71. package/dist/Changes/TypeChange.js +0 -77
  72. package/dist/Changes/TypeChange.js.map +1 -1
  73. package/dist/Changes/UserChange.d.ts +1 -4
  74. package/dist/Changes/UserChange.d.ts.map +1 -1
  75. package/dist/Changes/UserChange.js +0 -23
  76. package/dist/Changes/UserChange.js.map +1 -1
  77. package/dist/Changes/index.d.ts +29 -22
  78. package/dist/Changes/index.d.ts.map +1 -1
  79. package/dist/Changes/index.js +19 -24
  80. package/dist/Changes/index.js.map +1 -1
  81. package/dist/Validations/Validation.d.ts +2 -2
  82. package/dist/Validations/Validation.d.ts.map +1 -1
  83. package/dist/Validations/Validation.js +1 -1
  84. package/dist/Validations/Validation.js.map +1 -1
  85. package/dist/Validations/ValidationSet.d.ts +2 -2
  86. package/dist/Validations/ValidationSet.d.ts.map +1 -1
  87. package/dist/Validations/ValidationSet.js +2 -2
  88. package/dist/Validations/ValidationSet.js.map +1 -1
  89. package/dist/index.d.ts +0 -1
  90. package/dist/index.d.ts.map +1 -1
  91. package/dist/index.js +0 -1
  92. package/dist/index.js.map +1 -1
  93. package/dist/tsconfig.tsbuildinfo +1 -1
  94. package/package.json +9 -4
  95. package/src/Changes/{DeleteFeatureChange.ts → AddAndDeleteFeatureChanges.ts} +77 -107
  96. package/src/Changes/AddAssemblyAliasesChange.ts +0 -35
  97. package/src/Changes/AddAssemblyAndFeaturesFromFileChange.ts +5 -108
  98. package/src/Changes/AddAssemblyFromExternalChange.ts +0 -87
  99. package/src/Changes/AddAssemblyFromFileChange.ts +5 -169
  100. package/src/Changes/AddFeaturesFromFileChange.ts +5 -86
  101. package/src/Changes/AddRefSeqAliasesChange.ts +0 -44
  102. package/src/Changes/DeleteAssemblyChange.ts +0 -72
  103. package/src/Changes/DeleteUserChange.ts +0 -25
  104. package/src/Changes/FeatureAttributeChange.ts +0 -104
  105. package/src/Changes/ImportJBrowseConfigChange.ts +1 -27
  106. package/src/Changes/LocationEndChange.ts +0 -100
  107. package/src/Changes/LocationStartChange.ts +0 -100
  108. package/src/Changes/{MergeExonsChange.ts → MergeAndUndoMergeExonsChanges.ts} +70 -90
  109. package/src/Changes/{MergeTranscriptsChange.ts → MergeAndUndoMergeTranscriptsChanges.ts} +74 -66
  110. package/src/Changes/{SplitExonChange.ts → SplitAndUndoSplitExonChanges.ts} +95 -122
  111. package/src/Changes/StrandChange.ts +0 -94
  112. package/src/Changes/TypeChange.ts +0 -94
  113. package/src/Changes/UserChange.ts +0 -30
  114. package/src/Changes/index.ts +32 -24
  115. package/src/Validations/Validation.ts +2 -5
  116. package/src/Validations/ValidationSet.ts +3 -6
  117. package/src/index.ts +0 -1
  118. package/dist/Changes/AddFeatureChange.d.ts +0 -37
  119. package/dist/Changes/AddFeatureChange.d.ts.map +0 -1
  120. package/dist/Changes/AddFeatureChange.js +0 -169
  121. package/dist/Changes/AddFeatureChange.js.map +0 -1
  122. package/dist/Changes/DeleteFeatureChange.d.ts.map +0 -1
  123. package/dist/Changes/DeleteFeatureChange.js +0 -161
  124. package/dist/Changes/DeleteFeatureChange.js.map +0 -1
  125. package/dist/Changes/FromFileBaseChange.d.ts +0 -12
  126. package/dist/Changes/FromFileBaseChange.d.ts.map +0 -1
  127. package/dist/Changes/FromFileBaseChange.js +0 -196
  128. package/dist/Changes/FromFileBaseChange.js.map +0 -1
  129. package/dist/Changes/MergeExonsChange.d.ts +0 -30
  130. package/dist/Changes/MergeExonsChange.d.ts.map +0 -1
  131. package/dist/Changes/MergeExonsChange.js +0 -110
  132. package/dist/Changes/MergeExonsChange.js.map +0 -1
  133. package/dist/Changes/MergeTranscriptsChange.d.ts.map +0 -1
  134. package/dist/Changes/MergeTranscriptsChange.js.map +0 -1
  135. package/dist/Changes/SplitExonChange.d.ts +0 -34
  136. package/dist/Changes/SplitExonChange.d.ts.map +0 -1
  137. package/dist/Changes/SplitExonChange.js +0 -138
  138. package/dist/Changes/SplitExonChange.js.map +0 -1
  139. package/dist/Changes/UndoMergeExonsChange.d.ts +0 -28
  140. package/dist/Changes/UndoMergeExonsChange.d.ts.map +0 -1
  141. package/dist/Changes/UndoMergeExonsChange.js +0 -100
  142. package/dist/Changes/UndoMergeExonsChange.js.map +0 -1
  143. package/dist/Changes/UndoMergeTranscriptsChange.d.ts +0 -28
  144. package/dist/Changes/UndoMergeTranscriptsChange.d.ts.map +0 -1
  145. package/dist/Changes/UndoMergeTranscriptsChange.js +0 -100
  146. package/dist/Changes/UndoMergeTranscriptsChange.js.map +0 -1
  147. package/dist/Changes/UndoSplitExonChange.d.ts +0 -33
  148. package/dist/Changes/UndoSplitExonChange.d.ts.map +0 -1
  149. package/dist/Changes/UndoSplitExonChange.js +0 -107
  150. package/dist/Changes/UndoSplitExonChange.js.map +0 -1
  151. package/dist/Operations/GetAssembliesOperation.d.ts +0 -12
  152. package/dist/Operations/GetAssembliesOperation.d.ts.map +0 -1
  153. package/dist/Operations/GetAssembliesOperation.js +0 -16
  154. package/dist/Operations/GetAssembliesOperation.js.map +0 -1
  155. package/dist/Operations/GetFeaturesOperation.d.ts +0 -27
  156. package/dist/Operations/GetFeaturesOperation.d.ts.map +0 -1
  157. package/dist/Operations/GetFeaturesOperation.js +0 -38
  158. package/dist/Operations/GetFeaturesOperation.js.map +0 -1
  159. package/dist/Operations/index.d.ts +0 -9
  160. package/dist/Operations/index.d.ts.map +0 -1
  161. package/dist/Operations/index.js +0 -6
  162. package/dist/Operations/index.js.map +0 -1
  163. package/src/Changes/AddFeatureChange.ts +0 -236
  164. package/src/Changes/FromFileBaseChange.ts +0 -231
  165. package/src/Changes/UndoMergeExonsChange.ts +0 -149
  166. package/src/Changes/UndoMergeTranscriptsChange.ts +0 -153
  167. package/src/Changes/UndoSplitExonChange.ts +0 -174
  168. package/src/Operations/GetAssembliesOperation.ts +0 -28
  169. package/src/Operations/GetFeaturesOperation.ts +0 -58
  170. package/src/Operations/index.ts +0 -6
@@ -1,7 +1,21 @@
1
- import { type ChangeOptions, type ClientDataStore, FeatureChange, type LocalGFF3DataStore, type SerializedFeatureChange, type ServerDataStore } from '@apollo-annotation/common';
1
+ import { type ChangeOptions, FeatureChange, type SerializedFeatureChange } from '@apollo-annotation/common';
2
2
  import type { AnnotationFeatureSnapshot } from '@apollo-annotation/mst';
3
3
  import type { Feature } from '@apollo-annotation/schemas';
4
- import { AddFeatureChange } from './AddFeatureChange.js';
4
+ interface SerializedAddFeatureChangeBase extends SerializedFeatureChange {
5
+ typeName: 'AddFeatureChange';
6
+ }
7
+ export interface AddFeatureChangeDetails {
8
+ addedFeature: AnnotationFeatureSnapshot;
9
+ parentFeatureId?: string;
10
+ copyFeature?: boolean;
11
+ allIds?: string[];
12
+ }
13
+ interface SerializedAddFeatureChangeSingle extends SerializedAddFeatureChangeBase, AddFeatureChangeDetails {
14
+ }
15
+ interface SerializedAddFeatureChangeMultiple extends SerializedAddFeatureChangeBase {
16
+ changes: AddFeatureChangeDetails[];
17
+ }
18
+ export type SerializedAddFeatureChange = SerializedAddFeatureChangeSingle | SerializedAddFeatureChangeMultiple;
5
19
  interface SerializedDeleteFeatureChangeBase extends SerializedFeatureChange {
6
20
  typeName: 'DeleteFeatureChange';
7
21
  }
@@ -15,20 +29,21 @@ interface SerializedDeleteFeatureChangeMultiple extends SerializedDeleteFeatureC
15
29
  changes: DeleteFeatureChangeDetails[];
16
30
  }
17
31
  export type SerializedDeleteFeatureChange = SerializedDeleteFeatureChangeSingle | SerializedDeleteFeatureChangeMultiple;
32
+ export declare class AddFeatureChange extends FeatureChange {
33
+ typeName: "AddFeatureChange";
34
+ changes: AddFeatureChangeDetails[];
35
+ constructor(json: SerializedAddFeatureChange, options?: ChangeOptions);
36
+ get notification(): string;
37
+ toJSON(): SerializedAddFeatureChange;
38
+ getInverse(): DeleteFeatureChange;
39
+ }
40
+ export declare function isAddFeatureChange(change: unknown): change is AddFeatureChange;
18
41
  export declare class DeleteFeatureChange extends FeatureChange {
19
42
  typeName: "DeleteFeatureChange";
20
43
  changes: DeleteFeatureChangeDetails[];
21
44
  constructor(json: SerializedDeleteFeatureChange, options?: ChangeOptions);
22
45
  get notification(): string;
23
46
  toJSON(): SerializedDeleteFeatureChange;
24
- /**
25
- * Applies the required change to database
26
- * @param backend - parameters from backend
27
- * @returns
28
- */
29
- executeOnServer(backend: ServerDataStore): Promise<void>;
30
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
31
- executeOnClient(dataStore: ClientDataStore): Promise<void>;
32
47
  getInverse(): AddFeatureChange;
33
48
  }
34
49
  /**
@@ -41,4 +56,4 @@ export declare class DeleteFeatureChange extends FeatureChange {
41
56
  export declare function findAndDeleteChildFeature(feature: Feature, featureIdToDelete: string, change: FeatureChange): string[];
42
57
  export declare function isDeleteFeatureChange(change: unknown): change is DeleteFeatureChange;
43
58
  export {};
44
- //# sourceMappingURL=DeleteFeatureChange.d.ts.map
59
+ //# sourceMappingURL=AddAndDeleteFeatureChanges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddAndDeleteFeatureChanges.d.ts","sourceRoot":"","sources":["../../src/Changes/AddAndDeleteFeatureChanges.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,uBAAuB,EAC7B,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AACvE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAEzD,UAAU,8BAA+B,SAAQ,uBAAuB;IACtE,QAAQ,EAAE,kBAAkB,CAAA;CAC7B;AAED,MAAM,WAAW,uBAAuB;IACtC,YAAY,EAAE,yBAAyB,CAAA;IACvC,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,WAAW,CAAC,EAAE,OAAO,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,UAAU,gCACR,SAAQ,8BAA8B,EACpC,uBAAuB;CAAG;AAE9B,UAAU,kCACR,SAAQ,8BAA8B;IACtC,OAAO,EAAE,uBAAuB,EAAE,CAAA;CACnC;AAED,MAAM,MAAM,0BAA0B,GAClC,gCAAgC,GAChC,kCAAkC,CAAA;AAEtC,UAAU,iCAAkC,SAAQ,uBAAuB;IACzE,QAAQ,EAAE,qBAAqB,CAAA;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,cAAc,EAAE,yBAAyB,CAAA;IACzC,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,UAAU,mCACR,SAAQ,iCAAiC,EACvC,0BAA0B;CAAG;AAEjC,UAAU,qCACR,SAAQ,iCAAiC;IACzC,OAAO,EAAE,0BAA0B,EAAE,CAAA;CACtC;AAED,MAAM,MAAM,6BAA6B,GACrC,mCAAmC,GACnC,qCAAqC,CAAA;AAEzC,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,QAAQ,qBAA8B;IACtC,OAAO,EAAE,uBAAuB,EAAE,CAAA;gBAEtB,IAAI,EAAE,0BAA0B,EAAE,OAAO,CAAC,EAAE,aAAa;IAKrE,IAAI,YAAY,WAEf;IAED,MAAM,IAAI,0BAA0B;IAiBpC,UAAU;CAkBX;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,OAAO,GACd,MAAM,IAAI,gBAAgB,CAE5B;AAED,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,wBAAiC;IACzC,OAAO,EAAE,0BAA0B,EAAE,CAAA;gBAEzB,IAAI,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,aAAa;IAKxE,IAAI,YAAY,WAEf;IAED,MAAM,IAAI,6BAA6B;IASvC,UAAU;CAoBX;AAED;;;;;;GAMG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,EAChB,iBAAiB,EAAE,MAAM,EACzB,MAAM,EAAE,aAAa,GACpB,MAAM,EAAE,CAoBV;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,OAAO,GACd,MAAM,IAAI,mBAAmB,CAE/B"}
@@ -0,0 +1,117 @@
1
+ /* eslint-disable @typescript-eslint/restrict-template-expressions */
2
+ /* eslint-disable @typescript-eslint/no-unnecessary-condition */
3
+ import { FeatureChange, } from '@apollo-annotation/common';
4
+ export class AddFeatureChange extends FeatureChange {
5
+ typeName = 'AddFeatureChange';
6
+ changes;
7
+ constructor(json, options) {
8
+ super(json, options);
9
+ this.changes = 'changes' in json ? json.changes : [json];
10
+ }
11
+ // eslint-disable-next-line @typescript-eslint/class-literal-property-style
12
+ get notification() {
13
+ return 'Feature added successfully';
14
+ }
15
+ toJSON() {
16
+ const { assembly, changedIds, changes, typeName } = this;
17
+ if (changes.length === 1) {
18
+ const [{ addedFeature, allIds, copyFeature, parentFeatureId }] = changes;
19
+ return {
20
+ typeName,
21
+ changedIds,
22
+ assembly,
23
+ addedFeature,
24
+ parentFeatureId,
25
+ copyFeature,
26
+ allIds,
27
+ };
28
+ }
29
+ return { typeName, changedIds, assembly, changes };
30
+ }
31
+ getInverse() {
32
+ const { assembly, changedIds, changes, logger } = this;
33
+ const inverseChangedIds = [...changedIds].reverse();
34
+ const inverseChanges = [...changes].reverse().map((addFeatureChange) => ({
35
+ deletedFeature: addFeatureChange.addedFeature,
36
+ parentFeatureId: addFeatureChange.parentFeatureId,
37
+ }));
38
+ return new DeleteFeatureChange({
39
+ changedIds: inverseChangedIds,
40
+ typeName: 'DeleteFeatureChange',
41
+ changes: inverseChanges,
42
+ assembly,
43
+ }, { logger });
44
+ }
45
+ }
46
+ export function isAddFeatureChange(change) {
47
+ return change.typeName === 'AddFeatureChange';
48
+ }
49
+ export class DeleteFeatureChange extends FeatureChange {
50
+ typeName = 'DeleteFeatureChange';
51
+ changes;
52
+ constructor(json, options) {
53
+ super(json, options);
54
+ this.changes = 'changes' in json ? json.changes : [json];
55
+ }
56
+ // eslint-disable-next-line @typescript-eslint/class-literal-property-style
57
+ get notification() {
58
+ return 'Feature deleted successfully';
59
+ }
60
+ toJSON() {
61
+ const { assembly, changedIds, changes, typeName } = this;
62
+ if (changes.length === 1) {
63
+ const [{ deletedFeature, parentFeatureId }] = changes;
64
+ return { typeName, changedIds, assembly, deletedFeature, parentFeatureId };
65
+ }
66
+ return { typeName, changedIds, assembly, changes };
67
+ }
68
+ getInverse() {
69
+ const { assembly, changedIds, changes, logger } = this;
70
+ const inverseChangedIds = [...changedIds].reverse();
71
+ const inverseChanges = [...changes]
72
+ .reverse()
73
+ .map((deleteFeatureChange) => ({
74
+ addedFeature: deleteFeatureChange.deletedFeature,
75
+ parentFeatureId: deleteFeatureChange.parentFeatureId,
76
+ }));
77
+ logger.debug?.(`INVERSE CHANGE '${JSON.stringify(inverseChanges)}'`);
78
+ return new AddFeatureChange({
79
+ changedIds: inverseChangedIds,
80
+ typeName: 'AddFeatureChange',
81
+ changes: inverseChanges,
82
+ assembly,
83
+ }, { logger });
84
+ }
85
+ }
86
+ /**
87
+ * Delete feature's subfeatures that match an ID and return the IDs of any
88
+ * sub-subfeatures that were deleted
89
+ * @param feature -
90
+ * @param featureIdToDelete -
91
+ * @returns - list of deleted feature IDs
92
+ */
93
+ export function findAndDeleteChildFeature(feature, featureIdToDelete, change) {
94
+ if (!feature.children) {
95
+ throw new Error(`Feature ${feature._id} has no children`);
96
+ }
97
+ const { _id, children } = feature;
98
+ const child = children.get(featureIdToDelete);
99
+ if (child) {
100
+ const deletedIds = change.getChildFeatureIds(child);
101
+ children.delete(featureIdToDelete);
102
+ return deletedIds;
103
+ }
104
+ for (const [, childFeature] of children) {
105
+ try {
106
+ return findAndDeleteChildFeature(childFeature, featureIdToDelete, change);
107
+ }
108
+ catch {
109
+ // pass
110
+ }
111
+ }
112
+ throw new Error(`Feature "${featureIdToDelete}" not found in ${_id}`);
113
+ }
114
+ export function isDeleteFeatureChange(change) {
115
+ return change.typeName === 'DeleteFeatureChange';
116
+ }
117
+ //# sourceMappingURL=AddAndDeleteFeatureChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddAndDeleteFeatureChanges.js","sourceRoot":"","sources":["../../src/Changes/AddAndDeleteFeatureChanges.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { AssemblySpecificChange, type Change, type ChangeOptions, type ClientDataStore, type LocalGFF3DataStore, type SerializedAssemblySpecificChange, type ServerDataStore } from '@apollo-annotation/common';
1
+ import { AssemblySpecificChange, type Change, type ChangeOptions, type SerializedAssemblySpecificChange } from '@apollo-annotation/common';
2
2
  export interface SerializedAssemblyAliasesChange extends SerializedAssemblySpecificChange {
3
3
  typeName: 'AddAssemblyAliasesChange';
4
4
  aliases: string[];
@@ -7,11 +7,8 @@ export declare class AddAssemblyAliasesChange extends AssemblySpecificChange {
7
7
  typeName: "AddAssemblyAliasesChange";
8
8
  aliases: string[];
9
9
  constructor(json: SerializedAssemblyAliasesChange, options?: ChangeOptions);
10
- executeOnClient(clientDataStore: ClientDataStore): Promise<void>;
11
10
  getInverse(): Change;
12
11
  toJSON(): SerializedAssemblyAliasesChange;
13
- executeOnServer(backend: ServerDataStore): Promise<void>;
14
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<unknown>;
15
12
  get notification(): string;
16
13
  }
17
14
  //# sourceMappingURL=AddAssemblyAliasesChange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddAssemblyAliasesChange.d.ts","sourceRoot":"","sources":["../../src/Changes/AddAssemblyAliasesChange.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EACtB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAA;AAGlC,MAAM,WAAW,+BACf,SAAQ,gCAAgC;IACxC,QAAQ,EAAE,0BAA0B,CAAA;IACpC,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,qBAAa,wBAAyB,SAAQ,sBAAsB;IAClE,QAAQ,6BAAsC;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAA;gBAEL,IAAI,EAAE,+BAA+B,EAAE,OAAO,CAAC,EAAE,aAAa;IAK1E,eAAe,CAAC,eAAe,EAAE,eAAe;IAUhD,UAAU,IAAI,MAAM;IAIpB,MAAM,IAAI,+BAA+B;IAKnC,eAAe,CAAC,OAAO,EAAE,eAAe;IAc9C,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE,IAAI,YAAY,IAAI,MAAM,CAEzB;CACF"}
1
+ {"version":3,"file":"AddAssemblyAliasesChange.d.ts","sourceRoot":"","sources":["../../src/Changes/AddAssemblyAliasesChange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,MAAM,EACX,KAAK,aAAa,EAClB,KAAK,gCAAgC,EACtC,MAAM,2BAA2B,CAAA;AAElC,MAAM,WAAW,+BACf,SAAQ,gCAAgC;IACxC,QAAQ,EAAE,0BAA0B,CAAA;IACpC,OAAO,EAAE,MAAM,EAAE,CAAA;CAClB;AAED,qBAAa,wBAAyB,SAAQ,sBAAsB;IAClE,QAAQ,6BAAsC;IAC9C,OAAO,EAAE,MAAM,EAAE,CAAA;gBAEL,IAAI,EAAE,+BAA+B,EAAE,OAAO,CAAC,EAAE,aAAa;IAK1E,UAAU,IAAI,MAAM;IAIpB,MAAM,IAAI,+BAA+B;IAMzC,IAAI,YAAY,IAAI,MAAM,CAEzB;CACF"}
@@ -1,8 +1,4 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2
- /* eslint-disable @typescript-eslint/no-unsafe-call */
3
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
4
1
  import { AssemblySpecificChange, } from '@apollo-annotation/common';
5
- import { getSession } from '@jbrowse/core/util';
6
2
  export class AddAssemblyAliasesChange extends AssemblySpecificChange {
7
3
  typeName = 'AddAssemblyAliasesChange';
8
4
  aliases;
@@ -10,15 +6,6 @@ export class AddAssemblyAliasesChange extends AssemblySpecificChange {
10
6
  super(json, options);
11
7
  this.aliases = json.aliases;
12
8
  }
13
- executeOnClient(clientDataStore) {
14
- const { assemblyManager } = getSession(clientDataStore);
15
- const assembly = assemblyManager.get(this.assembly);
16
- if (!assembly) {
17
- throw new Error(`assembly ${this.assembly} not found`);
18
- }
19
- assembly.configuration.aliases.set(this.aliases);
20
- return Promise.resolve();
21
- }
22
9
  getInverse() {
23
10
  throw new Error('Method not implemented.');
24
11
  }
@@ -26,20 +13,6 @@ export class AddAssemblyAliasesChange extends AssemblySpecificChange {
26
13
  const { assembly, aliases, typeName } = this;
27
14
  return { assembly, typeName, aliases };
28
15
  }
29
- async executeOnServer(backend) {
30
- const { assemblyModel } = backend;
31
- const { assembly, logger, aliases } = this;
32
- logger.debug?.(`Updating assembly aliases for assembly: ${assembly}, aliases: ${JSON.stringify(aliases)}`);
33
- const asm = await assemblyModel.findById(assembly);
34
- if (!asm) {
35
- throw new Error(`Assembly with ID ${assembly} not found`);
36
- }
37
- asm.aliases = aliases;
38
- await asm.save();
39
- }
40
- executeOnLocalGFF3(_backend) {
41
- throw new Error('Method not implemented.');
42
- }
43
16
  // eslint-disable-next-line @typescript-eslint/class-literal-property-style
44
17
  get notification() {
45
18
  return 'Assembly aliases have been added.';
@@ -1 +1 @@
1
- {"version":3,"file":"AddAssemblyAliasesChange.js","sourceRoot":"","sources":["../../src/Changes/AddAssemblyAliasesChange.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,sDAAsD;AACtD,4DAA4D;AAC5D,OAAO,EACL,sBAAsB,GAOvB,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAQ/C,MAAM,OAAO,wBAAyB,SAAQ,sBAAsB;IAClE,QAAQ,GAAG,0BAAmC,CAAA;IAC9C,OAAO,CAAU;IAEjB,YAAY,IAAqC,EAAE,OAAuB;QACxE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,CAAC;IAED,eAAe,CAAC,eAAgC;QAC9C,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,CAAC,eAAe,CAAC,CAAA;QACvD,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACnD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,QAAQ,YAAY,CAAC,CAAA;QACxD,CAAC;QACD,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAChD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC1B,CAAC;IAED,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC5C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACxC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAwB;QAC5C,MAAM,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;QACjC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAA;QAC1C,MAAM,CAAC,KAAK,EAAE,CACZ,2CAA2C,QAAQ,cAAc,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAC3F,CAAA;QACD,MAAM,GAAG,GAAG,MAAM,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAClD,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,oBAAoB,QAAQ,YAAY,CAAC,CAAA;QAC3D,CAAC;QACD,GAAG,CAAC,OAAO,GAAG,OAAO,CAAA;QACrB,MAAM,GAAG,CAAC,IAAI,EAAE,CAAA;IAClB,CAAC;IAED,kBAAkB,CAAC,QAA4B;QAC7C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,2EAA2E;IAC3E,IAAI,YAAY;QACd,OAAO,mCAAmC,CAAA;IAC5C,CAAC;CACF"}
1
+ {"version":3,"file":"AddAssemblyAliasesChange.js","sourceRoot":"","sources":["../../src/Changes/AddAssemblyAliasesChange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAIvB,MAAM,2BAA2B,CAAA;AAQlC,MAAM,OAAO,wBAAyB,SAAQ,sBAAsB;IAClE,QAAQ,GAAG,0BAAmC,CAAA;IAC9C,OAAO,CAAU;IAEjB,YAAY,IAAqC,EAAE,OAAuB;QACxE,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAA;IAC7B,CAAC;IAED,UAAU;QACR,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC5C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACxC,CAAC;IAED,2EAA2E;IAC3E,IAAI,YAAY;QACd,OAAO,mCAAmC,CAAA;IAC5C,CAAC;CACF"}
@@ -1,5 +1,4 @@
1
- import type { ChangeOptions, ClientDataStore, LocalGFF3DataStore, SerializedAssemblySpecificChange, ServerDataStore } from '@apollo-annotation/common';
2
- import { FromFileBaseChange } from './FromFileBaseChange.js';
1
+ import { AssemblySpecificChange, type ChangeOptions, type SerializedAssemblySpecificChange } from '@apollo-annotation/common';
3
2
  export interface SerializedAddAssemblyAndFeaturesFromFileChangeBase extends SerializedAssemblySpecificChange {
4
3
  typeName: 'AddAssemblyAndFeaturesFromFileChange';
5
4
  }
@@ -19,20 +18,12 @@ export interface SerializedAddAssemblyAndFeaturesFromFileChangeMultiple extends
19
18
  changes: AddAssemblyAndFeaturesFromFileChangeDetails[];
20
19
  }
21
20
  export type SerializedAddAssemblyAndFeaturesFromFileChange = SerializedAddAssemblyAndFeaturesFromFileChangeSingle | SerializedAddAssemblyAndFeaturesFromFileChangeMultiple;
22
- export declare class AddAssemblyAndFeaturesFromFileChange extends FromFileBaseChange {
21
+ export declare class AddAssemblyAndFeaturesFromFileChange extends AssemblySpecificChange {
23
22
  typeName: "AddAssemblyAndFeaturesFromFileChange";
24
23
  changes: AddAssemblyAndFeaturesFromFileChangeDetails[];
25
24
  constructor(json: SerializedAddAssemblyAndFeaturesFromFileChange, options?: ChangeOptions);
26
25
  get notification(): string;
27
26
  toJSON(): SerializedAddAssemblyAndFeaturesFromFileChange;
28
- /**
29
- * Applies the required change to database
30
- * @param backend - parameters from backend
31
- * @returns
32
- */
33
- executeOnServer(backend: ServerDataStore): Promise<void>;
34
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
35
- executeOnClient(_dataStore: ClientDataStore): Promise<void>;
36
27
  getInverse(): AddAssemblyAndFeaturesFromFileChange;
37
28
  }
38
29
  //# sourceMappingURL=AddAssemblyAndFeaturesFromFileChange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddAssemblyAndFeaturesFromFileChange.d.ts","sourceRoot":"","sources":["../../src/Changes/AddAssemblyAndFeaturesFromFileChange.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gCAAgC,EAChC,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,WAAW,kDACf,SAAQ,gCAAgC;IACxC,QAAQ,EAAE,sCAAsC,CAAA;CACjD;AAED,MAAM,WAAW,2CAA2C;IAC1D,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACvB,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACzD;AAED,MAAM,WAAW,oDACf,SAAQ,kDAAkD,EACxD,2CAA2C;CAAG;AAElD,MAAM,WAAW,sDACf,SAAQ,kDAAkD;IAC1D,OAAO,EAAE,2CAA2C,EAAE,CAAA;CACvD;AAED,MAAM,MAAM,8CAA8C,GACtD,oDAAoD,GACpD,sDAAsD,CAAA;AAE1D,qBAAa,oCAAqC,SAAQ,kBAAkB;IAC1E,QAAQ,yCAAkD;IAC1D,OAAO,EAAE,2CAA2C,EAAE,CAAA;gBAGpD,IAAI,EAAE,8CAA8C,EACpD,OAAO,CAAC,EAAE,aAAa;IAMzB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,MAAM,IAAI,8CAA8C;IASxD;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe;IAiFxC,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB;IAK/C,eAAe,CAAC,UAAU,EAAE,eAAe;IAEjD,UAAU;CAOX"}
1
+ {"version":3,"file":"AddAssemblyAndFeaturesFromFileChange.d.ts","sourceRoot":"","sources":["../../src/Changes/AddAssemblyAndFeaturesFromFileChange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,gCAAgC,EACtC,MAAM,2BAA2B,CAAA;AAElC,MAAM,WAAW,kDACf,SAAQ,gCAAgC;IACxC,QAAQ,EAAE,sCAAsC,CAAA;CACjD;AAED,MAAM,WAAW,2CAA2C;IAC1D,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAA;IACvB,YAAY,CAAC,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE,CAAA;CACzD;AAED,MAAM,WAAW,oDACf,SAAQ,kDAAkD,EACxD,2CAA2C;CAAG;AAElD,MAAM,WAAW,sDACf,SAAQ,kDAAkD;IAC1D,OAAO,EAAE,2CAA2C,EAAE,CAAA;CACvD;AAED,MAAM,MAAM,8CAA8C,GACtD,oDAAoD,GACpD,sDAAsD,CAAA;AAE1D,qBAAa,oCAAqC,SAAQ,sBAAsB;IAC9E,QAAQ,yCAAkD;IAC1D,OAAO,EAAE,2CAA2C,EAAE,CAAA;gBAGpD,IAAI,EAAE,8CAA8C,EACpD,OAAO,CAAC,EAAE,aAAa;IAMzB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,MAAM,IAAI,8CAA8C;IASxD,UAAU;CAOX"}
@@ -1,10 +1,5 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2
- /* eslint-disable @typescript-eslint/no-unsafe-argument */
3
- /* eslint-disable @typescript-eslint/no-unsafe-call */
4
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
5
- /* eslint-disable @typescript-eslint/require-await */
6
- import { FromFileBaseChange } from './FromFileBaseChange.js';
7
- export class AddAssemblyAndFeaturesFromFileChange extends FromFileBaseChange {
1
+ import { AssemblySpecificChange, } from '@apollo-annotation/common';
2
+ export class AddAssemblyAndFeaturesFromFileChange extends AssemblySpecificChange {
8
3
  typeName = 'AddAssemblyAndFeaturesFromFileChange';
9
4
  changes;
10
5
  constructor(json, options) {
@@ -22,81 +17,6 @@ export class AddAssemblyAndFeaturesFromFileChange extends FromFileBaseChange {
22
17
  }
23
18
  return { typeName, assembly, changes };
24
19
  }
25
- /**
26
- * Applies the required change to database
27
- * @param backend - parameters from backend
28
- * @returns
29
- */
30
- async executeOnServer(backend) {
31
- const { assemblyModel, checkModel, fileModel, filesService, user } = backend;
32
- const { assembly, changes, logger } = this;
33
- for (const change of changes) {
34
- const { assemblyName, fileIds, parseOptions } = change;
35
- const fileId = fileIds.fa;
36
- const { FILE_UPLOAD_FOLDER } = process.env;
37
- if (!FILE_UPLOAD_FOLDER) {
38
- throw new Error('No FILE_UPLOAD_FOLDER found in .env file');
39
- }
40
- // Get file checksum
41
- const fileDoc = await fileModel.findById(fileId).exec();
42
- if (!fileDoc) {
43
- throw new Error(`File "${fileId}" not found in Mongo`);
44
- }
45
- logger.debug?.(`FileId "${fileId}", checksum "${fileDoc.checksum}"`);
46
- // Check and add new assembly
47
- const assemblyDoc = await assemblyModel
48
- .findOne({ name: assemblyName })
49
- .exec();
50
- if (assemblyDoc) {
51
- throw new Error(`Assembly "${assemblyName}" already exists`);
52
- }
53
- // get checks
54
- const checkDocs = await checkModel.find({ isDefault: true }).exec();
55
- const checks = checkDocs.map((checkDoc) => checkDoc._id.toHexString());
56
- // Add assembly
57
- const [newAssemblyDoc] = await assemblyModel.create([
58
- { _id: assembly, name: assemblyName, user, status: -1, fileId, checks },
59
- ]);
60
- logger.debug?.(`Added new assembly "${assemblyName}", docId "${newAssemblyDoc._id.toHexString()}"`);
61
- logger.debug?.(`File type: "${fileDoc.type}"`);
62
- // Add refSeqs
63
- // We cannot use Mongo 'session' / transaction here because Mongo has 16 MB limit for transaction
64
- await this.addRefSeqIntoDb(fileDoc, newAssemblyDoc._id.toString(), backend);
65
- const { bufferSize = 10_000, strict = true } = parseOptions ?? {};
66
- const featureStream = filesService.parseGFF3(filesService.getFileStream(fileDoc), { bufferSize });
67
- let featureCount = 0;
68
- let errorCount = 0;
69
- for await (const gff3Feature of featureStream) {
70
- // Add new feature into database
71
- try {
72
- await this.addFeatureIntoDb(gff3Feature, backend);
73
- }
74
- catch (error) {
75
- // if the first feature is an error, assume the file isn't valid and throw
76
- if (strict || featureCount === 0) {
77
- throw error;
78
- }
79
- if (errorCount <= 99) {
80
- logger.warn('Error parsing feature');
81
- logger.warn(error);
82
- if (errorCount === 99) {
83
- logger.warn('Reached 100 parsing errors, omitting further warnings from log');
84
- }
85
- }
86
- errorCount++;
87
- }
88
- featureCount++;
89
- if (featureCount % 1000 === 0) {
90
- logger.debug?.(`Processed ${featureCount} features`);
91
- }
92
- }
93
- }
94
- }
95
- async executeOnLocalGFF3(_backend) {
96
- throw new Error('executeOnLocalGFF3 not implemented');
97
- }
98
- // eslint-disable-next-line @typescript-eslint/no-empty-function
99
- async executeOnClient(_dataStore) { }
100
20
  getInverse() {
101
21
  const { assembly, changes, logger, typeName } = this;
102
22
  return new AddAssemblyAndFeaturesFromFileChange({ typeName, changes, assembly }, { logger });
@@ -1 +1 @@
1
- {"version":3,"file":"AddAssemblyAndFeaturesFromFileChange.js","sourceRoot":"","sources":["../../src/Changes/AddAssemblyAndFeaturesFromFileChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AddAssemblyAndFeaturesFromFileChange.js","sourceRoot":"","sources":["../../src/Changes/AddAssemblyAndFeaturesFromFileChange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAGvB,MAAM,2BAA2B,CAAA;AA0BlC,MAAM,OAAO,oCAAqC,SAAQ,sBAAsB;IAC9E,QAAQ,GAAG,sCAA+C,CAAA;IAC1D,OAAO,CAA+C;IAEtD,YACE,IAAoD,EACpD,OAAuB;QAEvB,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,YAAY;QACd,OAAO,aAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,2DAA2D,CAAA;IAC7G,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAA;YAC3C,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,CAAA;QACtD,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACxC,CAAC;IAED,UAAU;QACR,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QACpD,OAAO,IAAI,oCAAoC,CAC7C,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC/B,EAAE,MAAM,EAAE,CACX,CAAA;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { AssemblySpecificChange, type ChangeOptions, type ClientDataStore, type LocalGFF3DataStore, type SerializedAssemblySpecificChange, type ServerDataStore } from '@apollo-annotation/common';
1
+ import { AssemblySpecificChange, type ChangeOptions, type SerializedAssemblySpecificChange } from '@apollo-annotation/common';
2
2
  export interface SerializedAddAssemblyFromExternalChangeBase extends SerializedAssemblySpecificChange {
3
3
  typeName: 'AddAssemblyFromExternalChange';
4
4
  }
@@ -22,14 +22,6 @@ export declare class AddAssemblyFromExternalChange extends AssemblySpecificChang
22
22
  constructor(json: SerializedAddAssemblyFromExternalChange, options?: ChangeOptions);
23
23
  get notification(): string;
24
24
  toJSON(): SerializedAddAssemblyFromExternalChange;
25
- /**
26
- * Applies the required change to database
27
- * @param backend - parameters from backend
28
- * @returns
29
- */
30
- executeOnServer(backend: ServerDataStore): Promise<void>;
31
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
32
- executeOnClient(_dataStore: ClientDataStore): Promise<void>;
33
25
  getInverse(): AddAssemblyFromExternalChange;
34
26
  }
35
27
  //# sourceMappingURL=AddAssemblyFromExternalChange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddAssemblyFromExternalChange.d.ts","sourceRoot":"","sources":["../../src/Changes/AddAssemblyFromExternalChange.ts"],"names":[],"mappings":"AAKA,OAAO,EACL,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,kBAAkB,EACvB,KAAK,gCAAgC,EACrC,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAA;AAIlC,MAAM,WAAW,2CACf,SAAQ,gCAAgC;IACxC,QAAQ,EAAE,+BAA+B,CAAA;CAC1C;AAED,MAAM,WAAW,oCAAoC;IACnD,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5D;AAED,MAAM,WAAW,6CACf,SAAQ,2CAA2C,EACjD,oCAAoC;CAAG;AAE3C,MAAM,WAAW,+CACf,SAAQ,2CAA2C;IACnD,OAAO,EAAE,oCAAoC,EAAE,CAAA;CAChD;AAED,MAAM,MAAM,uCAAuC,GAC/C,6CAA6C,GAC7C,+CAA+C,CAAA;AAEnD,qBAAa,6BAA8B,SAAQ,sBAAsB;IACvE,QAAQ,kCAA2C;IACnD,OAAO,EAAE,oCAAoC,EAAE,CAAA;gBAG7C,IAAI,EAAE,uCAAuC,EAC7C,OAAO,CAAC,EAAE,aAAa;IAMzB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,MAAM,IAAI,uCAAuC;IASjD;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe;IAiExC,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB;IAK/C,eAAe,CAAC,UAAU,EAAE,eAAe;IAEjD,UAAU;CAOX"}
1
+ {"version":3,"file":"AddAssemblyFromExternalChange.d.ts","sourceRoot":"","sources":["../../src/Changes/AddAssemblyFromExternalChange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,gCAAgC,EACtC,MAAM,2BAA2B,CAAA;AAElC,MAAM,WAAW,2CACf,SAAQ,gCAAgC;IACxC,QAAQ,EAAE,+BAA+B,CAAA;CAC1C;AAED,MAAM,WAAW,oCAAoC;IACnD,YAAY,EAAE,MAAM,CAAA;IACpB,gBAAgB,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;CAC5D;AAED,MAAM,WAAW,6CACf,SAAQ,2CAA2C,EACjD,oCAAoC;CAAG;AAE3C,MAAM,WAAW,+CACf,SAAQ,2CAA2C;IACnD,OAAO,EAAE,oCAAoC,EAAE,CAAA;CAChD;AAED,MAAM,MAAM,uCAAuC,GAC/C,6CAA6C,GAC7C,+CAA+C,CAAA;AAEnD,qBAAa,6BAA8B,SAAQ,sBAAsB;IACvE,QAAQ,kCAA2C;IACnD,OAAO,EAAE,oCAAoC,EAAE,CAAA;gBAG7C,IAAI,EAAE,uCAAuC,EAC7C,OAAO,CAAC,EAAE,aAAa;IAMzB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,MAAM,IAAI,uCAAuC;IASjD,UAAU;CAOX"}
@@ -1,10 +1,4 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-member-access */
2
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
3
- /* eslint-disable @typescript-eslint/no-unnecessary-condition */
4
- /* eslint-disable @typescript-eslint/require-await */
5
1
  import { AssemblySpecificChange, } from '@apollo-annotation/common';
6
- import { BgzipIndexedFasta, IndexedFasta } from '@gmod/indexedfasta';
7
- import { RemoteFile } from 'generic-filehandle2';
8
2
  export class AddAssemblyFromExternalChange extends AssemblySpecificChange {
9
3
  typeName = 'AddAssemblyFromExternalChange';
10
4
  changes;
@@ -23,72 +17,6 @@ export class AddAssemblyFromExternalChange extends AssemblySpecificChange {
23
17
  }
24
18
  return { typeName, assembly, changes };
25
19
  }
26
- /**
27
- * Applies the required change to database
28
- * @param backend - parameters from backend
29
- * @returns
30
- */
31
- async executeOnServer(backend) {
32
- const { assemblyModel, checkModel, refSeqModel, user } = backend;
33
- const { assembly, changes, logger } = this;
34
- const { CHUNK_SIZE } = process.env;
35
- const customChunkSize = CHUNK_SIZE && Number(CHUNK_SIZE);
36
- for (const change of changes) {
37
- const { assemblyName, externalLocation } = change;
38
- const { fa, fai, gzi } = externalLocation;
39
- const sequenceAdapter = gzi
40
- ? new BgzipIndexedFasta({
41
- fasta: new RemoteFile(fa, { fetch }),
42
- fai: new RemoteFile(fai, { fetch }),
43
- gzi: new RemoteFile(gzi, { fetch }),
44
- })
45
- : new IndexedFasta({
46
- fasta: new RemoteFile(fa, { fetch }),
47
- fai: new RemoteFile(fai, { fetch }),
48
- });
49
- const allSequenceSizes = await sequenceAdapter.getSequenceSizes();
50
- if (!allSequenceSizes) {
51
- throw new Error('No data read from indexed fasta getSequenceSizes');
52
- }
53
- const assemblyDoc = await assemblyModel
54
- .findOne({ name: assemblyName })
55
- .exec();
56
- if (assemblyDoc) {
57
- throw new Error(`Assembly "${assemblyName}" already exists`);
58
- }
59
- const checkDocs = await checkModel.find({ default: true }).exec();
60
- const checks = checkDocs.map((checkDoc) => checkDoc._id.toHexString());
61
- const [newAssemblyDoc] = await assemblyModel.create([
62
- {
63
- _id: assembly,
64
- name: assemblyName,
65
- user,
66
- status: -1,
67
- externalLocation,
68
- checks,
69
- },
70
- ]);
71
- logger.debug?.(`Added new assembly "${assemblyName}", docId "${newAssemblyDoc._id}"`);
72
- for (const sequenceName in allSequenceSizes) {
73
- const [newRefSeqDoc] = await refSeqModel.create([
74
- {
75
- name: sequenceName,
76
- assembly: newAssemblyDoc._id,
77
- length: allSequenceSizes[sequenceName],
78
- ...(customChunkSize ? { chunkSize: customChunkSize } : null),
79
- user,
80
- status: -1,
81
- },
82
- ]);
83
- logger.debug?.(`Added new refSeq "${sequenceName}", docId "${newRefSeqDoc._id}"`);
84
- }
85
- }
86
- }
87
- async executeOnLocalGFF3(_backend) {
88
- throw new Error('executeOnLocalGFF3 not implemented');
89
- }
90
- // eslint-disable-next-line @typescript-eslint/no-empty-function
91
- async executeOnClient(_dataStore) { }
92
20
  getInverse() {
93
21
  const { assembly, changes, logger, typeName } = this;
94
22
  return new AddAssemblyFromExternalChange({ typeName, changes, assembly }, { logger });
@@ -1 +1 @@
1
- {"version":3,"file":"AddAssemblyFromExternalChange.js","sourceRoot":"","sources":["../../src/Changes/AddAssemblyFromExternalChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AddAssemblyFromExternalChange.js","sourceRoot":"","sources":["../../src/Changes/AddAssemblyFromExternalChange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,GAGvB,MAAM,2BAA2B,CAAA;AAyBlC,MAAM,OAAO,6BAA8B,SAAQ,sBAAsB;IACvE,QAAQ,GAAG,+BAAwC,CAAA;IACnD,OAAO,CAAwC;IAE/C,YACE,IAA6C,EAC7C,OAAuB;QAEvB,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,SAAS,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,IAAI,YAAY;QACd,OAAO,aAAa,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,YAAY,2DAA2D,CAAA;IAC7G,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAC,GAAG,OAAO,CAAA;YACpD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,gBAAgB,EAAE,CAAA;QAC/D,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACxC,CAAC;IAED,UAAU;QACR,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QACpD,OAAO,IAAI,6BAA6B,CACtC,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,EAC/B,EAAE,MAAM,EAAE,CACX,CAAA;IACH,CAAC;CACF"}
@@ -1,5 +1,4 @@
1
- import type { ChangeOptions, ClientDataStore, LocalGFF3DataStore, SerializedAssemblySpecificChange, ServerDataStore } from '@apollo-annotation/common';
2
- import { FromFileBaseChange } from './FromFileBaseChange.js';
1
+ import { AssemblySpecificChange, type ChangeOptions, type SerializedAssemblySpecificChange } from '@apollo-annotation/common';
3
2
  export interface SerializedAddAssemblyFromFileChangeBase extends SerializedAssemblySpecificChange {
4
3
  typeName: 'AddAssemblyFromFileChange';
5
4
  }
@@ -19,26 +18,12 @@ export interface SerializedAddAssemblyFromFileChangeMultiple extends SerializedA
19
18
  changes: AddAssemblyFromFileChangeDetails[];
20
19
  }
21
20
  export type SerializedAddAssemblyFromFileChange = SerializedAddAssemblyFromFileChangeSingle | SerializedAddAssemblyFromFileChangeMultiple;
22
- export declare class AddAssemblyFromFileChange extends FromFileBaseChange {
21
+ export declare class AddAssemblyFromFileChange extends AssemblySpecificChange {
23
22
  typeName: "AddAssemblyFromFileChange";
24
23
  changes: AddAssemblyFromFileChangeDetails[];
25
24
  constructor(json: SerializedAddAssemblyFromFileChange, options?: ChangeOptions);
26
25
  get notification(): string;
27
26
  toJSON(): SerializedAddAssemblyFromFileChange;
28
- /**
29
- * Applies the required change to database
30
- * @param backend - parameters from backend
31
- * @returns
32
- */
33
- executeOnServer(backend: ServerDataStore): Promise<void>;
34
- executeOnServerIndexed(backend: ServerDataStore, assemblyName: string, fileIds: {
35
- fa: string;
36
- fai: string;
37
- gzi: string;
38
- }): Promise<void>;
39
- executeOnServerFasta(backend: ServerDataStore, assemblyName: string, fileId: string): Promise<void>;
40
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
41
- executeOnClient(_dataStore: ClientDataStore): Promise<void>;
42
27
  getInverse(): AddAssemblyFromFileChange;
43
28
  }
44
29
  //# sourceMappingURL=AddAssemblyFromFileChange.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"AddAssemblyFromFileChange.d.ts","sourceRoot":"","sources":["../../src/Changes/AddAssemblyFromFileChange.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EACb,eAAe,EACf,kBAAkB,EAClB,gCAAgC,EAChC,eAAe,EAChB,MAAM,2BAA2B,CAAA;AAGlC,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAA;AAE5D,MAAM,WAAW,uCACf,SAAQ,gCAAgC;IACxC,QAAQ,EAAE,2BAA2B,CAAA;CACtC;AAED,MAAM,WAAW,gCAAgC;IAC/C,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACnE;AAED,MAAM,WAAW,yCACf,SAAQ,uCAAuC,EAC7C,gCAAgC;CAAG;AAEvC,MAAM,WAAW,2CACf,SAAQ,uCAAuC;IAC/C,OAAO,EAAE,gCAAgC,EAAE,CAAA;CAC5C;AAED,MAAM,MAAM,mCAAmC,GAC3C,yCAAyC,GACzC,2CAA2C,CAAA;AAE/C,qBAAa,yBAA0B,SAAQ,kBAAkB;IAC/D,QAAQ,8BAAuC;IAC/C,OAAO,EAAE,gCAAgC,EAAE,CAAA;gBAGzC,IAAI,EAAE,mCAAmC,EACzC,OAAO,CAAC,EAAE,aAAa;IAMzB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,MAAM,IAAI,mCAAmC;IAS7C;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe;IAUxC,sBAAsB,CAC1B,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE;IAoF7C,oBAAoB,CACxB,OAAO,EAAE,eAAe,EACxB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM;IA0CV,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB;IAK/C,eAAe,CAAC,UAAU,EAAE,eAAe;IAEjD,UAAU;CAOX"}
1
+ {"version":3,"file":"AddAssemblyFromFileChange.d.ts","sourceRoot":"","sources":["../../src/Changes/AddAssemblyFromFileChange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,sBAAsB,EACtB,KAAK,aAAa,EAClB,KAAK,gCAAgC,EACtC,MAAM,2BAA2B,CAAA;AAElC,MAAM,WAAW,uCACf,SAAQ,gCAAgC;IACxC,QAAQ,EAAE,2BAA2B,CAAA;CACtC;AAED,MAAM,WAAW,gCAAgC;IAC/C,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAA;CACnE;AAED,MAAM,WAAW,yCACf,SAAQ,uCAAuC,EAC7C,gCAAgC;CAAG;AAEvC,MAAM,WAAW,2CACf,SAAQ,uCAAuC;IAC/C,OAAO,EAAE,gCAAgC,EAAE,CAAA;CAC5C;AAED,MAAM,MAAM,mCAAmC,GAC3C,yCAAyC,GACzC,2CAA2C,CAAA;AAE/C,qBAAa,yBAA0B,SAAQ,sBAAsB;IACnE,QAAQ,8BAAuC;IAC/C,OAAO,EAAE,gCAAgC,EAAE,CAAA;gBAGzC,IAAI,EAAE,mCAAmC,EACzC,OAAO,CAAC,EAAE,aAAa;IAMzB,IAAI,YAAY,IAAI,MAAM,CAEzB;IAED,MAAM,IAAI,mCAAmC;IAS7C,UAAU;CAOX"}