@apollo-annotation/shared 0.3.13 → 1.0.1

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,6 @@
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 { AnnotationFeature, AnnotationFeatureSnapshot } from '@apollo-annotation/mst';
3
3
  import type { Feature } from '@apollo-annotation/schemas';
4
- import { UndoMergeTranscriptsChange } from './UndoMergeTranscriptsChange.js';
5
4
  interface SerializedMergeTranscriptsChangeBase extends SerializedFeatureChange {
6
5
  typeName: 'MergeTranscriptsChange';
7
6
  }
@@ -16,20 +15,37 @@ interface SerializedMergeTranscriptsChangeMultiple extends SerializedMergeTransc
16
15
  changes: MergeTranscriptsChangeDetails[];
17
16
  }
18
17
  export type SerializedMergeTranscriptsChange = SerializedMergeTranscriptsChangeSingle | SerializedMergeTranscriptsChangeMultiple;
18
+ interface SerializedUndoMergeTranscriptsChangeBase extends SerializedFeatureChange {
19
+ typeName: 'UndoMergeTranscriptsChange';
20
+ }
21
+ export interface UndoMergeTranscriptsChangeDetails {
22
+ transcriptsToRestore: AnnotationFeatureSnapshot[];
23
+ parentFeatureId: string;
24
+ }
25
+ interface SerializedUndoMergeTranscriptsChangeSingle extends SerializedUndoMergeTranscriptsChangeBase, UndoMergeTranscriptsChangeDetails {
26
+ }
27
+ interface SerializedUndoMergeTranscriptsChangeMultiple extends SerializedUndoMergeTranscriptsChangeBase {
28
+ changes: UndoMergeTranscriptsChangeDetails[];
29
+ }
30
+ export type SerializedUndoMergeTranscriptsChange = SerializedUndoMergeTranscriptsChangeSingle | SerializedUndoMergeTranscriptsChangeMultiple;
19
31
  export declare class MergeTranscriptsChange extends FeatureChange {
20
32
  typeName: "MergeTranscriptsChange";
21
33
  changes: MergeTranscriptsChangeDetails[];
22
34
  constructor(json: SerializedMergeTranscriptsChange, options?: ChangeOptions);
23
35
  get notification(): string;
24
36
  toJSON(): SerializedMergeTranscriptsChange;
25
- executeOnServer(backend: ServerDataStore): Promise<void>;
26
37
  mergeTranscriptsOnServer(firstTranscript: Feature, secondTranscript: AnnotationFeatureSnapshot): void;
27
38
  mergeFeatureIntoTranscriptOnServer(secondFeatureChild: AnnotationFeatureSnapshot, firstTranscript: Feature): void;
28
- executeOnClient(dataStore: ClientDataStore): Promise<void>;
29
39
  mergeTranscriptsOnClient(firstTranscript: AnnotationFeature, secondTranscript: AnnotationFeatureSnapshot): void;
30
40
  mergeFeatureIntoTranscriptOnClient(secondFeatureChild: AnnotationFeatureSnapshot, firstTranscript: AnnotationFeature): void;
31
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
32
41
  getInverse(): UndoMergeTranscriptsChange;
33
42
  }
43
+ export declare class UndoMergeTranscriptsChange extends FeatureChange {
44
+ typeName: "UndoMergeTranscriptsChange";
45
+ changes: UndoMergeTranscriptsChangeDetails[];
46
+ constructor(json: SerializedUndoMergeTranscriptsChange, options?: ChangeOptions);
47
+ toJSON(): SerializedUndoMergeTranscriptsChange;
48
+ getInverse(): MergeTranscriptsChange;
49
+ }
34
50
  export {};
35
- //# sourceMappingURL=MergeTranscriptsChange.d.ts.map
51
+ //# sourceMappingURL=MergeAndUndoMergeTranscriptsChanges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MergeAndUndoMergeTranscriptsChanges.d.ts","sourceRoot":"","sources":["../../src/Changes/MergeAndUndoMergeTranscriptsChanges.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,uBAAuB,EAC7B,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EACV,iBAAiB,EACjB,yBAAyB,EAC1B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,4BAA4B,CAAA;AAMzD,UAAU,oCAAqC,SAAQ,uBAAuB;IAC5E,QAAQ,EAAE,wBAAwB,CAAA;CACnC;AAED,MAAM,WAAW,6BAA6B;IAC5C,eAAe,EAAE,yBAAyB,CAAA;IAC1C,gBAAgB,EAAE,yBAAyB,CAAA;IAC3C,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,sCACR,SAAQ,oCAAoC,EAC1C,6BAA6B;CAAG;AAEpC,UAAU,wCACR,SAAQ,oCAAoC;IAC5C,OAAO,EAAE,6BAA6B,EAAE,CAAA;CACzC;AAED,MAAM,MAAM,gCAAgC,GACxC,sCAAsC,GACtC,wCAAwC,CAAA;AAE5C,UAAU,wCACR,SAAQ,uBAAuB;IAC/B,QAAQ,EAAE,4BAA4B,CAAA;CACvC;AAED,MAAM,WAAW,iCAAiC;IAChD,oBAAoB,EAAE,yBAAyB,EAAE,CAAA;IACjD,eAAe,EAAE,MAAM,CAAA;CACxB;AAED,UAAU,0CACR,SAAQ,wCAAwC,EAC9C,iCAAiC;CAAG;AAExC,UAAU,4CACR,SAAQ,wCAAwC;IAChD,OAAO,EAAE,iCAAiC,EAAE,CAAA;CAC7C;AAED,MAAM,MAAM,oCAAoC,GAC5C,0CAA0C,GAC1C,4CAA4C,CAAA;AAEhD,qBAAa,sBAAuB,SAAQ,aAAa;IACvD,QAAQ,2BAAoC;IAC5C,OAAO,EAAE,6BAA6B,EAAE,CAAA;gBAE5B,IAAI,EAAE,gCAAgC,EAAE,OAAO,CAAC,EAAE,aAAa;IAK3E,IAAI,YAAY,WAEf;IAED,MAAM,IAAI,gCAAgC;IAiB1C,wBAAwB,CACtB,eAAe,EAAE,OAAO,EACxB,gBAAgB,EAAE,yBAAyB;IA+B7C,kCAAkC,CAChC,kBAAkB,EAAE,yBAAyB,EAC7C,eAAe,EAAE,OAAO;IA+F1B,wBAAwB,CACtB,eAAe,EAAE,iBAAiB,EAClC,gBAAgB,EAAE,yBAAyB;IA4B7C,kCAAkC,CAChC,kBAAkB,EAAE,yBAAyB,EAC7C,eAAe,EAAE,iBAAiB;IAuEpC,UAAU;CAuBX;AAED,qBAAa,0BAA2B,SAAQ,aAAa;IAC3D,QAAQ,+BAAwC;IAChD,OAAO,EAAE,iCAAiC,EAAE,CAAA;gBAG1C,IAAI,EAAE,oCAAoC,EAC1C,OAAO,CAAC,EAAE,aAAa;IAMzB,MAAM,IAAI,oCAAoC;IAgB9C,UAAU;CAqBX"}
@@ -1,12 +1,9 @@
1
1
  /* eslint-disable unicorn/prefer-structured-clone */
2
- /* eslint-disable @typescript-eslint/require-await */
3
2
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
4
3
  import { FeatureChange, } from '@apollo-annotation/common';
5
4
  import { doesIntersect2 } from '@jbrowse/core/util';
6
5
  import { getSnapshot } from '@jbrowse/mobx-state-tree';
7
6
  import { attributesToRecords, stringifyAttributes } from '../util.js';
8
- import { findAndDeleteChildFeature } from './DeleteFeatureChange.js';
9
- import { UndoMergeTranscriptsChange } from './UndoMergeTranscriptsChange.js';
10
7
  export class MergeTranscriptsChange extends FeatureChange {
11
8
  typeName = 'MergeTranscriptsChange';
12
9
  changes;
@@ -33,33 +30,6 @@ export class MergeTranscriptsChange extends FeatureChange {
33
30
  }
34
31
  return { typeName, changedIds, assembly, changes };
35
32
  }
36
- async executeOnServer(backend) {
37
- const { featureModel, session } = backend;
38
- const { changes, logger } = this;
39
- for (const change of changes) {
40
- const { firstTranscript, secondTranscript } = change;
41
- const topLevelFeature = await featureModel
42
- .findOne({ allIds: firstTranscript._id })
43
- .session(session)
44
- .exec();
45
- if (!topLevelFeature) {
46
- const errMsg = `*** ERROR: The following featureId was not found in database ='${firstTranscript._id}'`;
47
- logger.error(errMsg);
48
- throw new Error(errMsg);
49
- }
50
- const mergedTranscript = this.getFeatureFromId(topLevelFeature, firstTranscript._id);
51
- if (!mergedTranscript) {
52
- const errMsg = 'ERROR when searching feature by featureId';
53
- logger.error(errMsg);
54
- throw new Error(errMsg);
55
- }
56
- this.mergeTranscriptsOnServer(mergedTranscript, secondTranscript);
57
- const deletedIds = findAndDeleteChildFeature(topLevelFeature, secondTranscript._id, this);
58
- deletedIds.push(secondTranscript._id);
59
- topLevelFeature.allIds = topLevelFeature.allIds.filter((id) => !deletedIds.includes(id));
60
- await topLevelFeature.save();
61
- }
62
- }
63
33
  mergeTranscriptsOnServer(firstTranscript, secondTranscript) {
64
34
  firstTranscript.min = Math.min(firstTranscript.min, secondTranscript.min);
65
35
  firstTranscript.max = Math.max(firstTranscript.max, secondTranscript.max);
@@ -137,22 +107,6 @@ export class MergeTranscriptsChange extends FeatureChange {
137
107
  this.addChild(firstTranscript, secondFeatureChild);
138
108
  }
139
109
  }
140
- /* --------------------------------- */
141
- async executeOnClient(dataStore) {
142
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
143
- if (!dataStore) {
144
- throw new Error('No data store');
145
- }
146
- for (const [idx, changedId] of this.changedIds.entries()) {
147
- const { firstTranscript, secondTranscript } = this.changes[idx];
148
- const mergedTranscript = dataStore.getFeature(firstTranscript._id);
149
- if (!mergedTranscript) {
150
- throw new Error(`Could not find feature with identifier "${changedId}"`);
151
- }
152
- this.mergeTranscriptsOnClient(mergedTranscript, secondTranscript);
153
- mergedTranscript.parent?.deleteChild(secondTranscript._id);
154
- }
155
- }
156
110
  mergeTranscriptsOnClient(firstTranscript, secondTranscript) {
157
111
  firstTranscript.setMin(Math.min(firstTranscript.min, secondTranscript.min));
158
112
  firstTranscript.setMax(Math.max(firstTranscript.max, secondTranscript.max));
@@ -214,9 +168,6 @@ export class MergeTranscriptsChange extends FeatureChange {
214
168
  firstTranscript.addChild(secondFeatureChild);
215
169
  }
216
170
  }
217
- async executeOnLocalGFF3(_backend) {
218
- throw new Error('executeOnLocalGFF3 not implemented');
219
- }
220
171
  getInverse() {
221
172
  const { assembly, changedIds, changes, logger } = this;
222
173
  const inverseChangedIds = [...changedIds].reverse();
@@ -238,4 +189,43 @@ export class MergeTranscriptsChange extends FeatureChange {
238
189
  }, { logger });
239
190
  }
240
191
  }
241
- //# sourceMappingURL=MergeTranscriptsChange.js.map
192
+ export class UndoMergeTranscriptsChange extends FeatureChange {
193
+ typeName = 'UndoMergeTranscriptsChange';
194
+ changes;
195
+ constructor(json, options) {
196
+ super(json, options);
197
+ this.changes = 'changes' in json ? json.changes : [json];
198
+ }
199
+ toJSON() {
200
+ const { assembly, changedIds, changes, typeName } = this;
201
+ if (changes.length === 1) {
202
+ const [{ transcriptsToRestore, parentFeatureId }] = changes;
203
+ return {
204
+ typeName,
205
+ changedIds,
206
+ assembly,
207
+ transcriptsToRestore,
208
+ parentFeatureId,
209
+ };
210
+ }
211
+ return { typeName, changedIds, assembly, changes };
212
+ }
213
+ getInverse() {
214
+ const { assembly, changedIds, changes, logger } = this;
215
+ const inverseChangedIds = [...changedIds].reverse();
216
+ const inverseChanges = [...changes]
217
+ .reverse()
218
+ .map((undoMergeTranscriptsChange) => ({
219
+ firstTranscript: undoMergeTranscriptsChange.transcriptsToRestore[0],
220
+ secondTranscript: undoMergeTranscriptsChange.transcriptsToRestore[1],
221
+ parentFeatureId: undoMergeTranscriptsChange.parentFeatureId,
222
+ }));
223
+ return new MergeTranscriptsChange({
224
+ changedIds: inverseChangedIds,
225
+ typeName: 'MergeTranscriptsChange',
226
+ changes: inverseChanges,
227
+ assembly,
228
+ }, { logger });
229
+ }
230
+ }
231
+ //# sourceMappingURL=MergeAndUndoMergeTranscriptsChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MergeAndUndoMergeTranscriptsChanges.js","sourceRoot":"","sources":["../../src/Changes/MergeAndUndoMergeTranscriptsChanges.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import { type ChangeOptions, FeatureChange, type SerializedFeatureChange } from '@apollo-annotation/common';
2
+ import type { AnnotationFeatureSnapshot } from '@apollo-annotation/mst';
3
+ interface SerializedSplitExonChangeBase extends SerializedFeatureChange {
4
+ typeName: 'SplitExonChange';
5
+ }
6
+ export interface SplitExonChangeDetails {
7
+ exonToBeSplit: AnnotationFeatureSnapshot;
8
+ parentFeatureId: string;
9
+ upstreamCut: number;
10
+ downstreamCut: number;
11
+ leftExonId: string;
12
+ rightExonId: string;
13
+ }
14
+ interface SerializedSplitExonChangeSingle extends SerializedSplitExonChangeBase, SplitExonChangeDetails {
15
+ }
16
+ interface SerializedSplitExonChangeMultiple extends SerializedSplitExonChangeBase {
17
+ changes: SplitExonChangeDetails[];
18
+ }
19
+ export type SerializedSplitExonChange = SerializedSplitExonChangeSingle | SerializedSplitExonChangeMultiple;
20
+ interface SerializedUndoSplitExonChangeBase extends SerializedFeatureChange {
21
+ typeName: 'UndoSplitExonChange';
22
+ }
23
+ export interface UndoSplitExonChangeDetails {
24
+ exonToRestore: AnnotationFeatureSnapshot;
25
+ parentFeatureId: string;
26
+ idsToDelete: string[];
27
+ upstreamCut: number;
28
+ downstreamCut: number;
29
+ leftExonId: string;
30
+ rightExonId: string;
31
+ }
32
+ interface SerializedUndoSplitExonChangeSingle extends SerializedUndoSplitExonChangeBase, UndoSplitExonChangeDetails {
33
+ }
34
+ interface SerializedUndoSplitExonChangeMultiple extends SerializedUndoSplitExonChangeBase {
35
+ changes: UndoSplitExonChangeDetails[];
36
+ }
37
+ export type SerializedUndoSplitExonChange = SerializedUndoSplitExonChangeSingle | SerializedUndoSplitExonChangeMultiple;
38
+ export declare class SplitExonChange extends FeatureChange {
39
+ typeName: "SplitExonChange";
40
+ changes: SplitExonChangeDetails[];
41
+ constructor(json: SerializedSplitExonChange, options?: ChangeOptions);
42
+ get notification(): string;
43
+ toJSON(): SerializedSplitExonChange;
44
+ getInverse(): UndoSplitExonChange;
45
+ makeSplitExons(exonToBeSplit: AnnotationFeatureSnapshot, upstreamCut: number, downstreamCut: number, leftExonId: string, rightExonId: string): [AnnotationFeatureSnapshot, AnnotationFeatureSnapshot];
46
+ }
47
+ export declare class UndoSplitExonChange extends FeatureChange {
48
+ typeName: "UndoSplitExonChange";
49
+ changes: UndoSplitExonChangeDetails[];
50
+ constructor(json: SerializedUndoSplitExonChange, options?: ChangeOptions);
51
+ toJSON(): SerializedUndoSplitExonChange;
52
+ getInverse(): SplitExonChange;
53
+ }
54
+ export {};
55
+ //# sourceMappingURL=SplitAndUndoSplitExonChanges.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitAndUndoSplitExonChanges.d.ts","sourceRoot":"","sources":["../../src/Changes/SplitAndUndoSplitExonChanges.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,uBAAuB,EAC7B,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAEvE,UAAU,6BAA8B,SAAQ,uBAAuB;IACrE,QAAQ,EAAE,iBAAiB,CAAA;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,EAAE,yBAAyB,CAAA;IACxC,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB;AAED,UAAU,+BACR,SAAQ,6BAA6B,EACnC,sBAAsB;CAAG;AAE7B,UAAU,iCACR,SAAQ,6BAA6B;IACrC,OAAO,EAAE,sBAAsB,EAAE,CAAA;CAClC;AAED,MAAM,MAAM,yBAAyB,GACjC,+BAA+B,GAC/B,iCAAiC,CAAA;AAErC,UAAU,iCAAkC,SAAQ,uBAAuB;IACzE,QAAQ,EAAE,qBAAqB,CAAA;CAChC;AAED,MAAM,WAAW,0BAA0B;IACzC,aAAa,EAAE,yBAAyB,CAAA;IACxC,eAAe,EAAE,MAAM,CAAA;IACvB,WAAW,EAAE,MAAM,EAAE,CAAA;IACrB,WAAW,EAAE,MAAM,CAAA;IACnB,aAAa,EAAE,MAAM,CAAA;IACrB,UAAU,EAAE,MAAM,CAAA;IAClB,WAAW,EAAE,MAAM,CAAA;CACpB;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,eAAgB,SAAQ,aAAa;IAChD,QAAQ,oBAA6B;IACrC,OAAO,EAAE,sBAAsB,EAAE,CAAA;gBAErB,IAAI,EAAE,yBAAyB,EAAE,OAAO,CAAC,EAAE,aAAa;IAKpE,IAAI,YAAY,WAEf;IAED,MAAM,IAAI,yBAAyB;IA6BnC,UAAU;IAwBV,cAAc,CACZ,aAAa,EAAE,yBAAyB,EACxC,WAAW,EAAE,MAAM,EACnB,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,EAClB,WAAW,EAAE,MAAM,GAClB,CAAC,yBAAyB,EAAE,yBAAyB,CAAC;CAsB1D;AAED,qBAAa,mBAAoB,SAAQ,aAAa;IACpD,QAAQ,wBAAiC;IACzC,OAAO,EAAE,0BAA0B,EAAE,CAAA;gBAEzB,IAAI,EAAE,6BAA6B,EAAE,OAAO,CAAC,EAAE,aAAa;IAKxE,MAAM,IAAI,6BAA6B;IA+BvC,UAAU;CAwBX"}
@@ -0,0 +1,115 @@
1
+ /* eslint-disable @typescript-eslint/no-unsafe-assignment */
2
+ import { FeatureChange, } from '@apollo-annotation/common';
3
+ export class SplitExonChange extends FeatureChange {
4
+ typeName = 'SplitExonChange';
5
+ changes;
6
+ constructor(json, options) {
7
+ super(json, options);
8
+ this.changes = 'changes' in json ? json.changes : [json];
9
+ }
10
+ // eslint-disable-next-line @typescript-eslint/class-literal-property-style
11
+ get notification() {
12
+ return 'Exon successfully split';
13
+ }
14
+ toJSON() {
15
+ const { assembly, changedIds, changes, typeName } = this;
16
+ if (changes.length === 1) {
17
+ const [{ exonToBeSplit, parentFeatureId, upstreamCut, downstreamCut, leftExonId, rightExonId, },] = changes;
18
+ return {
19
+ typeName,
20
+ changedIds,
21
+ assembly,
22
+ exonToBeSplit,
23
+ parentFeatureId,
24
+ upstreamCut,
25
+ downstreamCut,
26
+ leftExonId,
27
+ rightExonId,
28
+ };
29
+ }
30
+ return { typeName, changedIds, assembly, changes };
31
+ }
32
+ getInverse() {
33
+ const { assembly, changedIds, changes, logger } = this;
34
+ const inverseChangedIds = [...changedIds].reverse();
35
+ const inverseChanges = [...changes].reverse().map((splitExonChange) => ({
36
+ exonToRestore: splitExonChange.exonToBeSplit,
37
+ parentFeatureId: splitExonChange.parentFeatureId,
38
+ idsToDelete: [splitExonChange.leftExonId, splitExonChange.rightExonId],
39
+ upstreamCut: splitExonChange.upstreamCut,
40
+ downstreamCut: splitExonChange.downstreamCut,
41
+ leftExonId: splitExonChange.leftExonId,
42
+ rightExonId: splitExonChange.rightExonId,
43
+ }));
44
+ logger.debug?.(`INVERSE CHANGE '${JSON.stringify(inverseChanges)}'`);
45
+ return new UndoSplitExonChange({
46
+ changedIds: inverseChangedIds,
47
+ typeName: 'UndoSplitExonChange',
48
+ changes: inverseChanges,
49
+ assembly,
50
+ }, { logger });
51
+ }
52
+ makeSplitExons(exonToBeSplit, upstreamCut, downstreamCut, leftExonId, rightExonId) {
53
+ // eslint-disable-next-line unicorn/prefer-structured-clone
54
+ const exon = JSON.parse(JSON.stringify(exonToBeSplit));
55
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
56
+ delete exon.attributes._id;
57
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
58
+ delete exon.attributes.gff_id;
59
+ const leftExon = structuredClone(exon);
60
+ leftExon._id = leftExonId;
61
+ leftExon.max = upstreamCut;
62
+ const rightExon = structuredClone(exon);
63
+ rightExon.min = downstreamCut;
64
+ rightExon._id = rightExonId;
65
+ return [leftExon, rightExon];
66
+ }
67
+ }
68
+ export class UndoSplitExonChange extends FeatureChange {
69
+ typeName = 'UndoSplitExonChange';
70
+ changes;
71
+ constructor(json, options) {
72
+ super(json, options);
73
+ this.changes = 'changes' in json ? json.changes : [json];
74
+ }
75
+ toJSON() {
76
+ const { assembly, changedIds, changes, typeName } = this;
77
+ if (changes.length === 1) {
78
+ const [{ exonToRestore, parentFeatureId, idsToDelete, upstreamCut, downstreamCut, leftExonId, rightExonId, },] = changes;
79
+ return {
80
+ typeName,
81
+ changedIds,
82
+ assembly,
83
+ exonToRestore,
84
+ parentFeatureId,
85
+ idsToDelete,
86
+ upstreamCut,
87
+ downstreamCut,
88
+ leftExonId,
89
+ rightExonId,
90
+ };
91
+ }
92
+ return { typeName, changedIds, assembly, changes };
93
+ }
94
+ getInverse() {
95
+ const { assembly, changedIds, changes, logger } = this;
96
+ const inverseChangedIds = [...changedIds].reverse();
97
+ const inverseChanges = [...changes]
98
+ .reverse()
99
+ .map((undoSplitExonChange) => ({
100
+ parentFeatureId: undoSplitExonChange.parentFeatureId,
101
+ exonToBeSplit: undoSplitExonChange.exonToRestore,
102
+ upstreamCut: undoSplitExonChange.upstreamCut,
103
+ downstreamCut: undoSplitExonChange.downstreamCut,
104
+ leftExonId: undoSplitExonChange.leftExonId,
105
+ rightExonId: undoSplitExonChange.rightExonId,
106
+ }));
107
+ return new SplitExonChange({
108
+ changedIds: inverseChangedIds,
109
+ typeName: 'SplitExonChange',
110
+ changes: inverseChanges,
111
+ assembly,
112
+ }, { logger });
113
+ }
114
+ }
115
+ //# sourceMappingURL=SplitAndUndoSplitExonChanges.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SplitAndUndoSplitExonChanges.js","sourceRoot":"","sources":["../../src/Changes/SplitAndUndoSplitExonChanges.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
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
  interface SerializedStrandChangeBase extends SerializedFeatureChange {
3
3
  typeName: 'StrandChange';
4
4
  }
@@ -18,14 +18,6 @@ export declare class StrandChange extends FeatureChange {
18
18
  changes: StrandChangeDetails[];
19
19
  constructor(json: SerializedStrandChange, options?: ChangeOptions);
20
20
  toJSON(): SerializedStrandChange;
21
- /**
22
- * Applies the required change to database
23
- * @param backend - parameters from backend
24
- * @returns
25
- */
26
- executeOnServer(backend: ServerDataStore): Promise<void>;
27
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
28
- executeOnClient(dataStore: ClientDataStore): Promise<void>;
29
21
  getInverse(): StrandChange;
30
22
  }
31
23
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"StrandChange.d.ts","sourceRoot":"","sources":["../../src/Changes/StrandChange.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAA;AAGlC,UAAU,0BAA2B,SAAQ,uBAAuB;IAClE,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;CAC9B;AAED,UAAU,4BACR,SAAQ,0BAA0B,EAChC,mBAAmB;CAAG;AAE1B,UAAU,8BAA+B,SAAQ,0BAA0B;IACzE,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B;AAED,KAAK,sBAAsB,GACvB,4BAA4B,GAC5B,8BAA8B,CAAA;AAElC,qBAAa,YAAa,SAAQ,aAAa;IAC7C,QAAQ,iBAA0B;IAClC,OAAO,EAAE,mBAAmB,EAAE,CAAA;gBAElB,IAAI,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,aAAa;IAKjE,MAAM,IAAI,sBAAsB;IAShC;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe;IAiExC,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB;IAI/C,eAAe,CAAC,SAAS,EAAE,eAAe;IAahD,UAAU;CAkBX"}
1
+ {"version":3,"file":"StrandChange.d.ts","sourceRoot":"","sources":["../../src/Changes/StrandChange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,uBAAuB,EAC7B,MAAM,2BAA2B,CAAA;AAElC,UAAU,0BAA2B,SAAQ,uBAAuB;IAClE,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,UAAU,mBAAmB;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;IAC7B,SAAS,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,CAAA;CAC9B;AAED,UAAU,4BACR,SAAQ,0BAA0B,EAChC,mBAAmB;CAAG;AAE1B,UAAU,8BAA+B,SAAQ,0BAA0B;IACzE,OAAO,EAAE,mBAAmB,EAAE,CAAA;CAC/B;AAED,KAAK,sBAAsB,GACvB,4BAA4B,GAC5B,8BAA8B,CAAA;AAElC,qBAAa,YAAa,SAAQ,aAAa;IAC7C,QAAQ,iBAA0B;IAClC,OAAO,EAAE,mBAAmB,EAAE,CAAA;gBAElB,IAAI,EAAE,sBAAsB,EAAE,OAAO,CAAC,EAAE,aAAa;IAKjE,MAAM,IAAI,sBAAsB;IAShC,UAAU;CAkBX"}
@@ -1,6 +1,3 @@
1
- /* eslint-disable @typescript-eslint/restrict-template-expressions */
2
- /* eslint-disable @typescript-eslint/require-await */
3
- /* eslint-disable @typescript-eslint/no-unnecessary-condition */
4
1
  import { FeatureChange, } from '@apollo-annotation/common';
5
2
  export class StrandChange extends FeatureChange {
6
3
  typeName = 'StrandChange';
@@ -17,80 +14,6 @@ export class StrandChange extends FeatureChange {
17
14
  }
18
15
  return { typeName, changedIds, assembly, changes };
19
16
  }
20
- /**
21
- * Applies the required change to database
22
- * @param backend - parameters from backend
23
- * @returns
24
- */
25
- async executeOnServer(backend) {
26
- const { featureModel, session } = backend;
27
- const { changes, logger } = this;
28
- const featuresForChanges = [];
29
- // Let's first check that all features are found and those old values match with expected ones. We do this just to be sure that all changes can be done.
30
- for (const entry of changes) {
31
- const { featureId, oldStrand } = entry;
32
- // Search correct feature
33
- const topLevelFeature = await featureModel
34
- .findOne({ allIds: featureId })
35
- .session(session)
36
- .exec();
37
- if (!topLevelFeature) {
38
- const errMsg = `*** ERROR: The following featureId was not found in database ='${featureId}'`;
39
- logger.error(errMsg);
40
- throw new Error(errMsg);
41
- // throw new NotFoundException(errMsg) -- This is causing runtime error because Exception comes from @nestjs/common!!!
42
- }
43
- logger.debug?.(`*** Feature found: ${JSON.stringify(topLevelFeature)}`);
44
- const foundFeature = this.getFeatureFromId(topLevelFeature, featureId);
45
- if (!foundFeature) {
46
- const errMsg = 'ERROR when searching feature by featureId';
47
- logger.error(errMsg);
48
- throw new Error(errMsg);
49
- }
50
- logger.debug?.(`*** Found feature: ${JSON.stringify(foundFeature)}`);
51
- if (foundFeature.strand !== oldStrand) {
52
- const errMsg = `*** ERROR: Feature's current strand "${topLevelFeature.strand}" doesn't match with expected value "${oldStrand}"`;
53
- logger.error(errMsg);
54
- throw new Error(errMsg);
55
- }
56
- featuresForChanges.push({ feature: foundFeature, topLevelFeature });
57
- }
58
- // Let's update objects.
59
- for (const [idx, change] of changes.entries()) {
60
- const { newStrand } = change;
61
- const { feature, topLevelFeature } = featuresForChanges[idx];
62
- feature.strand = newStrand;
63
- if (topLevelFeature._id.equals(feature._id)) {
64
- topLevelFeature.markModified('strand'); // Mark as modified. Without this save() -method is not updating data in database
65
- }
66
- else {
67
- topLevelFeature.markModified('children'); // Mark as modified. Without this save() -method is not updating data in database
68
- }
69
- try {
70
- await topLevelFeature.save();
71
- }
72
- catch (error) {
73
- logger.debug?.(`*** FAILED: ${error}`);
74
- throw error;
75
- }
76
- logger.debug?.(`*** Object updated in Mongo. New object: ${JSON.stringify(topLevelFeature)}`);
77
- }
78
- }
79
- async executeOnLocalGFF3(_backend) {
80
- throw new Error('executeOnLocalGFF3 not implemented');
81
- }
82
- async executeOnClient(dataStore) {
83
- if (!dataStore) {
84
- throw new Error('No data store');
85
- }
86
- for (const [idx, changedId] of this.changedIds.entries()) {
87
- const feature = dataStore.getFeature(changedId);
88
- if (!feature) {
89
- throw new Error(`Could not find feature with identifier "${changedId}"`);
90
- }
91
- feature.setStrand(this.changes[idx].newStrand);
92
- }
93
- }
94
17
  getInverse() {
95
18
  const { assembly, changedIds, changes, logger, typeName } = this;
96
19
  const inverseChangedIds = [...changedIds].reverse();
@@ -1 +1 @@
1
- {"version":3,"file":"StrandChange.js","sourceRoot":"","sources":["../../src/Changes/StrandChange.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,qDAAqD;AACrD,gEAAgE;AAChE,OAAO,EAGL,aAAa,GAId,MAAM,2BAA2B,CAAA;AAyBlC,MAAM,OAAO,YAAa,SAAQ,aAAa;IAC7C,QAAQ,GAAG,cAAuB,CAAA;IAClC,OAAO,CAAuB;IAE9B,YAAY,IAA4B,EAAE,OAAuB;QAC/D,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,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,OAAO,CAAA;YACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;QAC5E,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACpD,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,eAAe,CAAC,OAAwB;QAC5C,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;QACzC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAChC,MAAM,kBAAkB,GAGlB,EAAE,CAAA;QACR,wJAAwJ;QACxJ,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;YAEtC,yBAAyB;YACzB,MAAM,eAAe,GAAG,MAAM,YAAY;iBACvC,OAAO,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC;iBAC9B,OAAO,CAAC,OAAO,CAAC;iBAChB,IAAI,EAAE,CAAA;YAET,IAAI,CAAC,eAAe,EAAE,CAAC;gBACrB,MAAM,MAAM,GAAG,kEAAkE,SAAS,GAAG,CAAA;gBAC7F,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;gBACvB,uHAAuH;YACzH,CAAC;YACD,MAAM,CAAC,KAAK,EAAE,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,CAAC,CAAA;YAEvE,MAAM,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,EAAE,SAAS,CAAC,CAAA;YACtE,IAAI,CAAC,YAAY,EAAE,CAAC;gBAClB,MAAM,MAAM,GAAG,2CAA2C,CAAA;gBAC1D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC;YACD,MAAM,CAAC,KAAK,EAAE,CAAC,sBAAsB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;YACpE,IAAI,YAAY,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACtC,MAAM,MAAM,GAAG,wCAAwC,eAAe,CAAC,MAAM,wCAAwC,SAAS,GAAG,CAAA;gBACjI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC;YACD,kBAAkB,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,CAAC,CAAA;QACrE,CAAC;QAED,wBAAwB;QACxB,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;YAC9C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAA;YAC5B,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAA;YAC5D,OAAO,CAAC,MAAM,GAAG,SAAS,CAAA;YAC1B,IAAI,eAAe,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5C,eAAe,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA,CAAC,iFAAiF;YAC1H,CAAC;iBAAM,CAAC;gBACN,eAAe,CAAC,YAAY,CAAC,UAAU,CAAC,CAAA,CAAC,iFAAiF;YAC5H,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,eAAe,CAAC,IAAI,EAAE,CAAA;YAC9B,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,CAAC,KAAK,EAAE,CAAC,eAAe,KAAK,EAAE,CAAC,CAAA;gBACtC,MAAM,KAAK,CAAA;YACb,CAAC;YACD,MAAM,CAAC,KAAK,EAAE,CACZ,4CAA4C,IAAI,CAAC,SAAS,CACxD,eAAe,CAChB,EAAE,CACJ,CAAA;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAA4B;QACnD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,SAA0B;QAC9C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;QAClC,CAAC;QACD,KAAK,MAAM,CAAC,GAAG,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC;YACzD,MAAM,OAAO,GAAG,SAAS,CAAC,UAAU,CAAC,SAAS,CAAC,CAAA;YAC/C,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,IAAI,KAAK,CAAC,2CAA2C,SAAS,GAAG,CAAC,CAAA;YAC1E,CAAC;YACD,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;QAChD,CAAC;IACH,CAAC;IAED,UAAU;QACR,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAChE,MAAM,iBAAiB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,EAAE,CAAA;QACnD,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAChE,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;SAC/B,CAAC,CAAC,CAAA;QACH,OAAO,IAAI,YAAY,CACrB;YACE,UAAU,EAAE,iBAAiB;YAC7B,QAAQ;YACR,OAAO,EAAE,cAAc;YACvB,QAAQ;SACT,EACD,EAAE,MAAM,EAAE,CACX,CAAA;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"StrandChange.js","sourceRoot":"","sources":["../../src/Changes/StrandChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,GAEd,MAAM,2BAA2B,CAAA;AAwBlC,MAAM,OAAO,YAAa,SAAQ,aAAa;IAC7C,QAAQ,GAAG,cAAuB,CAAA;IAClC,OAAO,CAAuB;IAE9B,YAAY,IAA4B,EAAE,OAAuB;QAC/D,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,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QACxD,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,GAAG,OAAO,CAAA;YACrD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,CAAA;QAC5E,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACpD,CAAC;IAED,UAAU;QACR,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAChE,MAAM,iBAAiB,GAAG,CAAC,GAAG,UAAU,CAAC,CAAC,OAAO,EAAE,CAAA;QACnD,MAAM,cAAc,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;YAChE,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,SAAS,EAAE,SAAS,CAAC,SAAS;SAC/B,CAAC,CAAC,CAAA;QACH,OAAO,IAAI,YAAY,CACrB;YACE,UAAU,EAAE,iBAAiB;YAC7B,QAAQ;YACR,OAAO,EAAE,cAAc;YACvB,QAAQ;SACT,EACD,EAAE,MAAM,EAAE,CACX,CAAA;IACH,CAAC;CACF"}
@@ -1,4 +1,4 @@
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
  interface SerializedTypeChangeBase extends SerializedFeatureChange {
3
3
  typeName: 'TypeChange';
4
4
  }
@@ -18,14 +18,6 @@ export declare class TypeChange extends FeatureChange {
18
18
  changes: TypeChangeDetails[];
19
19
  constructor(json: SerializedTypeChange, options?: ChangeOptions);
20
20
  toJSON(): SerializedTypeChange;
21
- /**
22
- * Applies the required change to database
23
- * @param backend - parameters from backend
24
- * @returns
25
- */
26
- executeOnServer(backend: ServerDataStore): Promise<void>;
27
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
28
- executeOnClient(dataStore: ClientDataStore): Promise<void>;
29
21
  getInverse(): TypeChange;
30
22
  }
31
23
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"TypeChange.d.ts","sourceRoot":"","sources":["../../src/Changes/TypeChange.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAA;AAGlC,UAAU,wBAAyB,SAAQ,uBAAuB;IAChE,QAAQ,EAAE,YAAY,CAAA;CACvB;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,0BACR,SAAQ,wBAAwB,EAC9B,iBAAiB;CAAG;AAExB,UAAU,4BAA6B,SAAQ,wBAAwB;IACrE,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAC5B,0BAA0B,GAC1B,4BAA4B,CAAA;AAEhC,qBAAa,UAAW,SAAQ,aAAa;IAC3C,QAAQ,eAAwB;IAChC,OAAO,EAAE,iBAAiB,EAAE,CAAA;gBAEhB,IAAI,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,aAAa;IAK/D,MAAM,IAAI,oBAAoB;IAS9B;;;;OAIG;IACG,eAAe,CAAC,OAAO,EAAE,eAAe;IAiExC,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB;IAI/C,eAAe,CAAC,SAAS,EAAE,eAAe;IAahD,UAAU;CAkBX"}
1
+ {"version":3,"file":"TypeChange.d.ts","sourceRoot":"","sources":["../../src/Changes/TypeChange.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,aAAa,EAClB,aAAa,EACb,KAAK,uBAAuB,EAC7B,MAAM,2BAA2B,CAAA;AAElC,UAAU,wBAAyB,SAAQ,uBAAuB;IAChE,QAAQ,EAAE,YAAY,CAAA;CACvB;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;CAChB;AAED,UAAU,0BACR,SAAQ,wBAAwB,EAC9B,iBAAiB;CAAG;AAExB,UAAU,4BAA6B,SAAQ,wBAAwB;IACrE,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAC5B,0BAA0B,GAC1B,4BAA4B,CAAA;AAEhC,qBAAa,UAAW,SAAQ,aAAa;IAC3C,QAAQ,eAAwB;IAChC,OAAO,EAAE,iBAAiB,EAAE,CAAA;gBAEhB,IAAI,EAAE,oBAAoB,EAAE,OAAO,CAAC,EAAE,aAAa;IAK/D,MAAM,IAAI,oBAAoB;IAS9B,UAAU;CAkBX"}
@@ -1,6 +1,3 @@
1
- /* eslint-disable @typescript-eslint/restrict-template-expressions */
2
- /* eslint-disable @typescript-eslint/require-await */
3
- /* eslint-disable @typescript-eslint/no-unnecessary-condition */
4
1
  import { FeatureChange, } from '@apollo-annotation/common';
5
2
  export class TypeChange extends FeatureChange {
6
3
  typeName = 'TypeChange';
@@ -17,80 +14,6 @@ export class TypeChange extends FeatureChange {
17
14
  }
18
15
  return { typeName, changedIds, assembly, changes };
19
16
  }
20
- /**
21
- * Applies the required change to database
22
- * @param backend - parameters from backend
23
- * @returns
24
- */
25
- async executeOnServer(backend) {
26
- const { featureModel, session } = backend;
27
- const { changes, logger } = this;
28
- const featuresForChanges = [];
29
- // Let's first check that all features are found and those old values match with expected ones. We do this just to be sure that all changes can be done.
30
- for (const entry of changes) {
31
- const { featureId, oldType } = entry;
32
- // Search correct feature
33
- const topLevelFeature = await featureModel
34
- .findOne({ allIds: featureId })
35
- .session(session)
36
- .exec();
37
- if (!topLevelFeature) {
38
- const errMsg = `*** ERROR: The following featureId was not found in database ='${featureId}'`;
39
- logger.error(errMsg);
40
- throw new Error(errMsg);
41
- // throw new NotFoundException(errMsg) -- This is causing runtime error because Exception comes from @nestjs/common!!!
42
- }
43
- logger.debug?.(`*** Feature found: ${JSON.stringify(topLevelFeature)}`);
44
- const foundFeature = this.getFeatureFromId(topLevelFeature, featureId);
45
- if (!foundFeature) {
46
- const errMsg = 'ERROR when searching feature by featureId';
47
- logger.error(errMsg);
48
- throw new Error(errMsg);
49
- }
50
- logger.debug?.(`*** Found feature: ${JSON.stringify(foundFeature)}`);
51
- if (foundFeature.type !== oldType) {
52
- const errMsg = `*** ERROR: Feature's current type "${topLevelFeature.type}" doesn't match with expected value "${oldType}"`;
53
- logger.error(errMsg);
54
- throw new Error(errMsg);
55
- }
56
- featuresForChanges.push({ feature: foundFeature, topLevelFeature });
57
- }
58
- // Let's update objects.
59
- for (const [idx, change] of changes.entries()) {
60
- const { newType } = change;
61
- const { feature, topLevelFeature } = featuresForChanges[idx];
62
- feature.type = newType;
63
- if (topLevelFeature._id.equals(feature._id)) {
64
- topLevelFeature.markModified('type'); // Mark as modified. Without this save() -method is not updating data in database
65
- }
66
- else {
67
- topLevelFeature.markModified('children'); // Mark as modified. Without this save() -method is not updating data in database
68
- }
69
- try {
70
- await topLevelFeature.save();
71
- }
72
- catch (error) {
73
- logger.debug?.(`*** FAILED: ${error}`);
74
- throw error;
75
- }
76
- logger.debug?.(`*** Object updated in Mongo. New object: ${JSON.stringify(topLevelFeature)}`);
77
- }
78
- }
79
- async executeOnLocalGFF3(_backend) {
80
- throw new Error('executeOnLocalGFF3 not implemented');
81
- }
82
- async executeOnClient(dataStore) {
83
- if (!dataStore) {
84
- throw new Error('No data store');
85
- }
86
- for (const [idx, changedId] of this.changedIds.entries()) {
87
- const feature = dataStore.getFeature(changedId);
88
- if (!feature) {
89
- throw new Error(`Could not find feature with identifier "${changedId}"`);
90
- }
91
- feature.setType(this.changes[idx].newType);
92
- }
93
- }
94
17
  getInverse() {
95
18
  const { assembly, changedIds, changes, logger, typeName } = this;
96
19
  const inverseChangedIds = [...changedIds].reverse();