@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,100 +0,0 @@
1
- /* eslint-disable @typescript-eslint/require-await */
2
- import { FeatureChange, } from '@apollo-annotation/common';
3
- import { MergeTranscriptsChange } from './MergeTranscriptsChange.js';
4
- export class UndoMergeTranscriptsChange extends FeatureChange {
5
- typeName = 'UndoMergeTranscriptsChange';
6
- changes;
7
- constructor(json, options) {
8
- super(json, options);
9
- this.changes = 'changes' in json ? json.changes : [json];
10
- }
11
- toJSON() {
12
- const { assembly, changedIds, changes, typeName } = this;
13
- if (changes.length === 1) {
14
- const [{ transcriptsToRestore, parentFeatureId }] = changes;
15
- return {
16
- typeName,
17
- changedIds,
18
- assembly,
19
- transcriptsToRestore,
20
- parentFeatureId,
21
- };
22
- }
23
- return { typeName, changedIds, assembly, changes };
24
- }
25
- async executeOnServer(backend) {
26
- const { featureModel, session } = backend;
27
- const { changes } = this;
28
- for (const change of changes) {
29
- const { transcriptsToRestore, parentFeatureId } = change;
30
- if (transcriptsToRestore.length !== 2) {
31
- throw new Error(`Expected exactly two transcripts to restore. Got :${transcriptsToRestore.length}`);
32
- }
33
- const topLevelFeature = await featureModel
34
- .findOne({ allIds: parentFeatureId })
35
- .session(session)
36
- .exec();
37
- if (!topLevelFeature) {
38
- throw new Error(`Could not find feature with ID "${parentFeatureId}"`);
39
- }
40
- const parentFeature = this.getFeatureFromId(topLevelFeature, parentFeatureId);
41
- if (!parentFeature) {
42
- throw new Error(`Could not find feature with ID "${parentFeatureId}" in feature "${topLevelFeature._id.toString()}"`);
43
- }
44
- if (!parentFeature.children) {
45
- parentFeature.children = new Map();
46
- }
47
- for (const transcript of transcriptsToRestore) {
48
- this.addChild(parentFeature, transcript);
49
- const childIds = this.getChildFeatureIds(transcript);
50
- topLevelFeature.allIds.push(transcript._id, ...childIds);
51
- }
52
- await topLevelFeature.save();
53
- }
54
- }
55
- async executeOnLocalGFF3(_backend) {
56
- throw new Error('executeOnLocalGFF3 not implemented');
57
- }
58
- async executeOnClient(dataStore) {
59
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
60
- if (!dataStore) {
61
- throw new Error('No data store');
62
- }
63
- const { changes } = this;
64
- for (const change of changes) {
65
- const { transcriptsToRestore, parentFeatureId } = change;
66
- if (!parentFeatureId) {
67
- throw new Error('Parent ID is missing');
68
- }
69
- const parentFeature = dataStore.getFeature(parentFeatureId);
70
- if (!parentFeature) {
71
- throw new Error(`Could not find parent feature "${parentFeatureId}"`);
72
- }
73
- // create an ID for the parent feature if it does not have one
74
- if (!parentFeature.attributes.get('_id')) {
75
- parentFeature.setAttribute('_id', [parentFeature._id]);
76
- }
77
- for (const transcript of transcriptsToRestore) {
78
- parentFeature.addChild(transcript);
79
- }
80
- }
81
- }
82
- getInverse() {
83
- const { assembly, changedIds, changes, logger } = this;
84
- const inverseChangedIds = [...changedIds].reverse();
85
- const inverseChanges = [...changes]
86
- .reverse()
87
- .map((undoMergeTranscriptsChange) => ({
88
- firstTranscript: undoMergeTranscriptsChange.transcriptsToRestore[0],
89
- secondTranscript: undoMergeTranscriptsChange.transcriptsToRestore[1],
90
- parentFeatureId: undoMergeTranscriptsChange.parentFeatureId,
91
- }));
92
- return new MergeTranscriptsChange({
93
- changedIds: inverseChangedIds,
94
- typeName: 'MergeTranscriptsChange',
95
- changes: inverseChanges,
96
- assembly,
97
- }, { logger });
98
- }
99
- }
100
- //# sourceMappingURL=UndoMergeTranscriptsChange.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UndoMergeTranscriptsChange.js","sourceRoot":"","sources":["../../src/Changes/UndoMergeTranscriptsChange.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import { type ChangeOptions, type ClientDataStore, FeatureChange, type LocalGFF3DataStore, type SerializedFeatureChange, type ServerDataStore } from '@apollo-annotation/common';
2
- import type { AnnotationFeatureSnapshot } from '@apollo-annotation/mst';
3
- import { SplitExonChange } from './SplitExonChange.js';
4
- interface SerializedUndoSplitExonChangeBase extends SerializedFeatureChange {
5
- typeName: 'UndoSplitExonChange';
6
- }
7
- export interface UndoSplitExonChangeDetails {
8
- exonToRestore: AnnotationFeatureSnapshot;
9
- parentFeatureId: string;
10
- idsToDelete: string[];
11
- upstreamCut: number;
12
- downstreamCut: number;
13
- leftExonId: string;
14
- rightExonId: string;
15
- }
16
- interface SerializedUndoSplitExonChangeSingle extends SerializedUndoSplitExonChangeBase, UndoSplitExonChangeDetails {
17
- }
18
- interface SerializedUndoSplitExonChangeMultiple extends SerializedUndoSplitExonChangeBase {
19
- changes: UndoSplitExonChangeDetails[];
20
- }
21
- export type SerializedUndoSplitExonChange = SerializedUndoSplitExonChangeSingle | SerializedUndoSplitExonChangeMultiple;
22
- export declare class UndoSplitExonChange extends FeatureChange {
23
- typeName: "UndoSplitExonChange";
24
- changes: UndoSplitExonChangeDetails[];
25
- constructor(json: SerializedUndoSplitExonChange, options?: ChangeOptions);
26
- toJSON(): SerializedUndoSplitExonChange;
27
- executeOnServer(backend: ServerDataStore): Promise<void>;
28
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
29
- executeOnClient(dataStore: ClientDataStore): Promise<void>;
30
- getInverse(): SplitExonChange;
31
- }
32
- export {};
33
- //# sourceMappingURL=UndoSplitExonChange.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UndoSplitExonChange.d.ts","sourceRoot":"","sources":["../../src/Changes/UndoSplitExonChange.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,uBAAuB,EAC5B,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAA;AAClC,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAGvE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAA;AAEtD,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;AACzC,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+BjC,eAAe,CAAC,OAAO,EAAE,eAAe;IAsCxC,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB;IAI/C,eAAe,CAAC,SAAS,EAAE,eAAe;IA0BhD,UAAU;CAwBX"}
@@ -1,107 +0,0 @@
1
- /* eslint-disable @typescript-eslint/require-await */
2
- import { FeatureChange, } from '@apollo-annotation/common';
3
- import { findAndDeleteChildFeature } from './DeleteFeatureChange.js';
4
- import { SplitExonChange } from './SplitExonChange.js';
5
- export class UndoSplitExonChange extends FeatureChange {
6
- typeName = 'UndoSplitExonChange';
7
- changes;
8
- constructor(json, options) {
9
- super(json, options);
10
- this.changes = 'changes' in json ? json.changes : [json];
11
- }
12
- toJSON() {
13
- const { assembly, changedIds, changes, typeName } = this;
14
- if (changes.length === 1) {
15
- const [{ exonToRestore, parentFeatureId, idsToDelete, upstreamCut, downstreamCut, leftExonId, rightExonId, },] = changes;
16
- return {
17
- typeName,
18
- changedIds,
19
- assembly,
20
- exonToRestore,
21
- parentFeatureId,
22
- idsToDelete,
23
- upstreamCut,
24
- downstreamCut,
25
- leftExonId,
26
- rightExonId,
27
- };
28
- }
29
- return { typeName, changedIds, assembly, changes };
30
- }
31
- async executeOnServer(backend) {
32
- const { featureModel, session } = backend;
33
- const { changes } = this;
34
- for (const change of changes) {
35
- const { exonToRestore, parentFeatureId, idsToDelete } = change;
36
- const topLevelFeature = await featureModel
37
- .findOne({ allIds: parentFeatureId })
38
- .session(session)
39
- .exec();
40
- if (!topLevelFeature) {
41
- throw new Error(`Could not find feature with ID "${parentFeatureId}"`);
42
- }
43
- const parentFeature = this.getFeatureFromId(topLevelFeature, parentFeatureId);
44
- if (!parentFeature) {
45
- throw new Error(`Could not find feature with ID "${parentFeatureId}" in feature "${topLevelFeature._id.toString()}"`);
46
- }
47
- if (!parentFeature.children) {
48
- parentFeature.children = new Map();
49
- }
50
- this.addChild(parentFeature, exonToRestore);
51
- const childIds = this.getChildFeatureIds(exonToRestore);
52
- topLevelFeature.allIds.push(exonToRestore._id, ...childIds);
53
- topLevelFeature.allIds = topLevelFeature.allIds.filter((id) => !idsToDelete.includes(id));
54
- idsToDelete.map((id) => findAndDeleteChildFeature(topLevelFeature, id, this));
55
- await topLevelFeature.save();
56
- }
57
- }
58
- async executeOnLocalGFF3(_backend) {
59
- throw new Error('executeOnLocalGFF3 not implemented');
60
- }
61
- async executeOnClient(dataStore) {
62
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
63
- if (!dataStore) {
64
- throw new Error('No data store');
65
- }
66
- const { changes } = this;
67
- for (const change of changes) {
68
- const { exonToRestore, parentFeatureId, idsToDelete } = change;
69
- if (!parentFeatureId) {
70
- throw new Error('Parent ID is missing');
71
- }
72
- const parentFeature = dataStore.getFeature(parentFeatureId);
73
- if (!parentFeature) {
74
- throw new Error(`Could not find parent feature "${parentFeatureId}"`);
75
- }
76
- // create an ID for the parent feature if it does not have one
77
- if (!parentFeature.attributes.get('_id')) {
78
- parentFeature.setAttribute('_id', [parentFeature._id]);
79
- }
80
- parentFeature.addChild(exonToRestore);
81
- idsToDelete.map((id) => {
82
- parentFeature.deleteChild(id);
83
- });
84
- }
85
- }
86
- getInverse() {
87
- const { assembly, changedIds, changes, logger } = this;
88
- const inverseChangedIds = [...changedIds].reverse();
89
- const inverseChanges = [...changes]
90
- .reverse()
91
- .map((undoSplitExonChange) => ({
92
- parentFeatureId: undoSplitExonChange.parentFeatureId,
93
- exonToBeSplit: undoSplitExonChange.exonToRestore,
94
- upstreamCut: undoSplitExonChange.upstreamCut,
95
- downstreamCut: undoSplitExonChange.downstreamCut,
96
- leftExonId: undoSplitExonChange.leftExonId,
97
- rightExonId: undoSplitExonChange.rightExonId,
98
- }));
99
- return new SplitExonChange({
100
- changedIds: inverseChangedIds,
101
- typeName: 'SplitExonChange',
102
- changes: inverseChanges,
103
- assembly,
104
- }, { logger });
105
- }
106
- }
107
- //# sourceMappingURL=UndoSplitExonChange.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UndoSplitExonChange.js","sourceRoot":"","sources":["../../src/Changes/UndoSplitExonChange.ts"],"names":[],"mappings":"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"}
@@ -1,12 +0,0 @@
1
- import { type LocalGFF3DataStore, Operation, type SerializedOperation, type ServerDataStore } from '@apollo-annotation/common';
2
- interface SerializedGetAssembliesOperation extends SerializedOperation {
3
- typeName: 'GetAssembliesOperation';
4
- }
5
- export declare class GetAssembliesOperation extends Operation {
6
- typeName: "GetAssembliesOperation";
7
- toJSON(): SerializedGetAssembliesOperation;
8
- executeOnServer(backend: ServerDataStore): Promise<any[]>;
9
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
10
- }
11
- export {};
12
- //# sourceMappingURL=GetAssembliesOperation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GetAssembliesOperation.d.ts","sourceRoot":"","sources":["../../src/Operations/GetAssembliesOperation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EACvB,SAAS,EACT,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAA;AAElC,UAAU,gCAAiC,SAAQ,mBAAmB;IACpE,QAAQ,EAAE,wBAAwB,CAAA;CACnC;AAED,qBAAa,sBAAuB,SAAQ,SAAS;IACnD,QAAQ,2BAAoC;IAE5C,MAAM,IAAI,gCAAgC;IAK1C,eAAe,CAAC,OAAO,EAAE,eAAe;IAIlC,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB;CAGtD"}
@@ -1,16 +0,0 @@
1
- /* eslint-disable @typescript-eslint/require-await */
2
- import { Operation, } from '@apollo-annotation/common';
3
- export class GetAssembliesOperation extends Operation {
4
- typeName = 'GetAssembliesOperation';
5
- toJSON() {
6
- const { typeName } = this;
7
- return { typeName };
8
- }
9
- executeOnServer(backend) {
10
- return backend.assemblyModel.find({ status: 0 }).exec();
11
- }
12
- async executeOnLocalGFF3(_backend) {
13
- throw new Error('executeOnLocalGFF3 not implemented');
14
- }
15
- }
16
- //# sourceMappingURL=GetAssembliesOperation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GetAssembliesOperation.js","sourceRoot":"","sources":["../../src/Operations/GetAssembliesOperation.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,OAAO,EAEL,SAAS,GAGV,MAAM,2BAA2B,CAAA;AAMlC,MAAM,OAAO,sBAAuB,SAAQ,SAAS;IACnD,QAAQ,GAAG,wBAAiC,CAAA;IAE5C,MAAM;QACJ,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QACzB,OAAO,EAAE,QAAQ,EAAE,CAAA;IACrB,CAAC;IAED,eAAe,CAAC,OAAwB;QACtC,OAAO,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;IACzD,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAA4B;QACnD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;CACF"}
@@ -1,27 +0,0 @@
1
- import { type LocalGFF3DataStore, Operation, type OperationOptions, type SerializedOperation, type ServerDataStore } from '@apollo-annotation/common';
2
- interface SerializedGetFeaturesOperation extends SerializedOperation {
3
- typeName: 'GetFeaturesOperation';
4
- refSeq: string;
5
- start: number;
6
- end: number;
7
- }
8
- export declare class GetFeaturesOperation extends Operation {
9
- typeName: "GetFeaturesOperation";
10
- refSeq: string;
11
- start: number;
12
- end: number;
13
- constructor(json: SerializedGetFeaturesOperation, options?: OperationOptions);
14
- toJSON(): SerializedGetFeaturesOperation;
15
- /**
16
- * Fetch features based on Reference seq, Start and End -values
17
- * @param request - Contain search criteria i.e. refSeq, start and end -parameters
18
- * @returns Return Array of features if search was successful
19
- * or if search data was not found or in case of error throw exception
20
- */
21
- executeOnServer(backend: ServerDataStore): Promise<(import("@apollo-annotation/schemas").FeatureDocument & Required<{
22
- _id: import("mongoose").Types.ObjectId;
23
- }>)[]>;
24
- executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
25
- }
26
- export {};
27
- //# sourceMappingURL=GetFeaturesOperation.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GetFeaturesOperation.d.ts","sourceRoot":"","sources":["../../src/Operations/GetFeaturesOperation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,kBAAkB,EACvB,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAA;AAElC,UAAU,8BAA+B,SAAQ,mBAAmB;IAClE,QAAQ,EAAE,sBAAsB,CAAA;IAChC,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,QAAQ,yBAAkC;IAC1C,MAAM,EAAE,MAAM,CAAA;IACd,KAAK,EAAE,MAAM,CAAA;IACb,GAAG,EAAE,MAAM,CAAA;gBAGT,IAAI,EAAE,8BAA8B,EACpC,OAAO,CAAC,EAAE,gBAAgB;IAQ5B,MAAM,IAAI,8BAA8B;IAKxC;;;;;OAKG;IACH,eAAe,CAAC,OAAO,EAAE,eAAe;;;IAWlC,kBAAkB,CAAC,QAAQ,EAAE,kBAAkB;CAGtD"}
@@ -1,38 +0,0 @@
1
- /* eslint-disable @typescript-eslint/require-await */
2
- import { Operation, } from '@apollo-annotation/common';
3
- export class GetFeaturesOperation extends Operation {
4
- typeName = 'GetFeaturesOperation';
5
- refSeq;
6
- start;
7
- end;
8
- constructor(json, options) {
9
- super(json, options);
10
- this.refSeq = json.refSeq;
11
- this.start = json.start;
12
- this.end = json.end;
13
- }
14
- toJSON() {
15
- const { end, refSeq, start, typeName } = this;
16
- return { typeName, refSeq, start, end };
17
- }
18
- /**
19
- * Fetch features based on Reference seq, Start and End -values
20
- * @param request - Contain search criteria i.e. refSeq, start and end -parameters
21
- * @returns Return Array of features if search was successful
22
- * or if search data was not found or in case of error throw exception
23
- */
24
- executeOnServer(backend) {
25
- return backend.featureModel
26
- .find({
27
- refSeq: this.refSeq,
28
- min: { $lte: this.end },
29
- max: { $gte: this.start },
30
- status: 0,
31
- })
32
- .exec();
33
- }
34
- async executeOnLocalGFF3(_backend) {
35
- throw new Error('executeOnLocalGFF3 not implemented');
36
- }
37
- }
38
- //# sourceMappingURL=GetFeaturesOperation.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GetFeaturesOperation.js","sourceRoot":"","sources":["../../src/Operations/GetFeaturesOperation.ts"],"names":[],"mappings":"AAAA,qDAAqD;AACrD,OAAO,EAEL,SAAS,GAIV,MAAM,2BAA2B,CAAA;AASlC,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD,QAAQ,GAAG,sBAA+B,CAAA;IAC1C,MAAM,CAAQ;IACd,KAAK,CAAQ;IACb,GAAG,CAAQ;IAEX,YACE,IAAoC,EACpC,OAA0B;QAE1B,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;QACpB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;QACzB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAA;QACvB,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAA;IACrB,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;QAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAA;IACzC,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,OAAwB;QACtC,OAAO,OAAO,CAAC,YAAY;aACxB,IAAI,CAAC;YACJ,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE;YACvB,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE;YACzB,MAAM,EAAE,CAAC;SACV,CAAC;aACD,IAAI,EAAE,CAAA;IACX,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAA4B;QACnD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;CACF"}
@@ -1,9 +0,0 @@
1
- import { GetAssembliesOperation } from './GetAssembliesOperation.js';
2
- import { GetFeaturesOperation } from './GetFeaturesOperation.js';
3
- export declare const operations: {
4
- GetAssembliesOperation: typeof GetAssembliesOperation;
5
- GetFeaturesOperation: typeof GetFeaturesOperation;
6
- };
7
- export * from './GetAssembliesOperation.js';
8
- export * from './GetFeaturesOperation.js';
9
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/Operations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,eAAO,MAAM,UAAU;;;CAAmD,CAAA;AAC1E,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA"}
@@ -1,6 +0,0 @@
1
- import { GetAssembliesOperation } from './GetAssembliesOperation.js';
2
- import { GetFeaturesOperation } from './GetFeaturesOperation.js';
3
- export const operations = { GetAssembliesOperation, GetFeaturesOperation };
4
- export * from './GetAssembliesOperation.js';
5
- export * from './GetFeaturesOperation.js';
6
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Operations/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,6BAA6B,CAAA;AACpE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAA;AAEhE,MAAM,CAAC,MAAM,UAAU,GAAG,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,CAAA;AAC1E,cAAc,6BAA6B,CAAA;AAC3C,cAAc,2BAA2B,CAAA"}
@@ -1,236 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
2
- /* eslint-disable @typescript-eslint/restrict-template-expressions */
3
- /* eslint-disable @typescript-eslint/require-await */
4
- /* eslint-disable @typescript-eslint/no-unnecessary-condition */
5
- import {
6
- type ChangeOptions,
7
- type ClientDataStore,
8
- FeatureChange,
9
- type LocalGFF3DataStore,
10
- type SerializedFeatureChange,
11
- type ServerDataStore,
12
- } from '@apollo-annotation/common'
13
- import type { AnnotationFeatureSnapshot } from '@apollo-annotation/mst'
14
-
15
- import { DeleteFeatureChange } from './DeleteFeatureChange.js'
16
-
17
- interface SerializedAddFeatureChangeBase extends SerializedFeatureChange {
18
- typeName: 'AddFeatureChange'
19
- }
20
-
21
- export interface AddFeatureChangeDetails {
22
- addedFeature: AnnotationFeatureSnapshot
23
- parentFeatureId?: string // Parent feature to where feature will be added
24
- copyFeature?: boolean // Are we copying or adding a new child feature
25
- allIds?: string[]
26
- }
27
-
28
- interface SerializedAddFeatureChangeSingle
29
- extends SerializedAddFeatureChangeBase,
30
- AddFeatureChangeDetails {}
31
-
32
- interface SerializedAddFeatureChangeMultiple
33
- extends SerializedAddFeatureChangeBase {
34
- changes: AddFeatureChangeDetails[]
35
- }
36
-
37
- export type SerializedAddFeatureChange =
38
- | SerializedAddFeatureChangeSingle
39
- | SerializedAddFeatureChangeMultiple
40
-
41
- export class AddFeatureChange extends FeatureChange {
42
- typeName = 'AddFeatureChange' as const
43
- changes: AddFeatureChangeDetails[]
44
-
45
- constructor(json: SerializedAddFeatureChange, options?: ChangeOptions) {
46
- super(json, options)
47
- this.changes = 'changes' in json ? json.changes : [json]
48
- }
49
- // eslint-disable-next-line @typescript-eslint/class-literal-property-style
50
- get notification() {
51
- return 'Feature added successfully'
52
- }
53
-
54
- toJSON(): SerializedAddFeatureChange {
55
- const { assembly, changedIds, changes, typeName } = this
56
- if (changes.length === 1) {
57
- const [{ addedFeature, allIds, copyFeature, parentFeatureId }] = changes
58
- return {
59
- typeName,
60
- changedIds,
61
- assembly,
62
- addedFeature,
63
- parentFeatureId,
64
- copyFeature,
65
- allIds,
66
- }
67
- }
68
- return { typeName, changedIds, assembly, changes }
69
- }
70
-
71
- /**
72
- * Applies the required change to database
73
- * @param backend - parameters from backend
74
- * @returns
75
- */
76
- async executeOnServer(backend: ServerDataStore) {
77
- const { assemblyModel, featureModel, refSeqModel, session, user } = backend
78
- const { assembly, changes, logger } = this
79
-
80
- const assemblyDoc = await assemblyModel
81
- .findById(assembly)
82
- .session(session)
83
- .exec()
84
- if (!assemblyDoc) {
85
- const errMsg = `*** ERROR: Assembly with id "${assembly}" not found`
86
- logger.error(errMsg)
87
- throw new Error(errMsg)
88
- }
89
-
90
- let featureCnt = 0
91
- logger.debug?.(`changes: ${JSON.stringify(changes)}`)
92
-
93
- const { INDEXED_IDS } = process.env
94
- let idsToIndex: string[] | undefined
95
- if (INDEXED_IDS) {
96
- idsToIndex = INDEXED_IDS.split(',')
97
- }
98
-
99
- // Loop the changes
100
- for (const change of changes) {
101
- logger.debug?.(`change: ${JSON.stringify(change)}`)
102
- const { addedFeature, allIds, copyFeature, parentFeatureId } = change
103
- const { _id, refSeq } = addedFeature
104
- const refSeqDoc = await refSeqModel
105
- .findById(refSeq)
106
- .session(session)
107
- .exec()
108
- if (!refSeqDoc) {
109
- throw new Error(
110
- `RefSeq was not found by assembly "${assembly}" and seq_id "${refSeq}" not found`,
111
- )
112
- }
113
-
114
- // CopyFeature is called from CopyFeature.tsx
115
- if (copyFeature) {
116
- const indexedIds = this.getIndexedIds(addedFeature, idsToIndex)
117
- // Add into Mongo
118
- const [newFeatureDoc] = await featureModel.create(
119
- [{ ...addedFeature, allIds, indexedIds, status: -1, user }],
120
- { session },
121
- )
122
- logger.debug?.(
123
- `Copied feature, docId "${newFeatureDoc._id}" to assembly "${assembly}"`,
124
- )
125
- featureCnt++
126
- } else {
127
- const indexedIds = this.getIndexedIds(addedFeature, idsToIndex)
128
- // Adding new child feature
129
- if (parentFeatureId) {
130
- const topLevelFeature = await featureModel
131
- .findOne({ allIds: parentFeatureId })
132
- .session(session)
133
- .exec()
134
- if (!topLevelFeature) {
135
- throw new Error(
136
- `Could not find feature with ID "${parentFeatureId}"`,
137
- )
138
- }
139
- const parentFeature = this.getFeatureFromId(
140
- topLevelFeature,
141
- parentFeatureId,
142
- )
143
- if (!parentFeature) {
144
- throw new Error(
145
- `Could not find feature with ID "${parentFeatureId}" in feature "${topLevelFeature._id}"`,
146
- )
147
- }
148
- this.addChild(parentFeature, addedFeature)
149
- const childIds = this.getChildFeatureIds(addedFeature)
150
- topLevelFeature.allIds.push(_id, ...childIds)
151
- if (indexedIds.length > 0 && !topLevelFeature.indexedIds) {
152
- topLevelFeature.indexedIds = []
153
- }
154
- topLevelFeature.indexedIds?.push(...indexedIds)
155
- await topLevelFeature.save()
156
- } else {
157
- const childIds = this.getChildFeatureIds(addedFeature)
158
- const allIdsV2 = [_id, ...childIds]
159
- const [newFeatureDoc] = await featureModel.create(
160
- [{ allIds: allIdsV2, indexedIds, status: 0, ...addedFeature }],
161
- { session },
162
- )
163
- logger.verbose?.(`Added docId "${newFeatureDoc._id}"`)
164
- }
165
- }
166
- featureCnt++
167
- }
168
- logger.debug?.(`Added ${featureCnt} new feature(s) into database.`)
169
- }
170
-
171
- async executeOnLocalGFF3(_backend: LocalGFF3DataStore) {
172
- throw new Error('executeOnLocalGFF3 not implemented')
173
- }
174
-
175
- async executeOnClient(dataStore: ClientDataStore) {
176
- if (!dataStore) {
177
- throw new Error('No data store')
178
- }
179
- const { assembly, changes } = this
180
- for (const change of changes) {
181
- const { addedFeature, parentFeatureId } = change
182
- if (parentFeatureId) {
183
- let parentFeature = dataStore.getFeature(parentFeatureId)
184
- // maybe the parent feature hasn't been loaded yet
185
- if (!parentFeature) {
186
- await dataStore.loadFeatures([
187
- {
188
- assemblyName: assembly,
189
- refName: addedFeature.refSeq,
190
- start: addedFeature.min,
191
- end: addedFeature.max,
192
- },
193
- ])
194
- parentFeature = dataStore.getFeature(parentFeatureId)
195
- if (!parentFeature) {
196
- throw new Error(
197
- `Could not find parent feature "${parentFeatureId}"`,
198
- )
199
- }
200
- }
201
- // create an ID for the parent feature if it does not have one
202
- if (!parentFeature.attributes.get('_id')) {
203
- parentFeature.setAttribute('_id', [parentFeature._id])
204
- }
205
- parentFeature.addChild(addedFeature)
206
- } else {
207
- dataStore.addFeature(assembly, addedFeature)
208
- }
209
- }
210
- }
211
-
212
- getInverse() {
213
- const { assembly, changedIds, changes, logger } = this
214
- const inverseChangedIds = [...changedIds].reverse()
215
- const inverseChanges = [...changes].reverse().map((addFeatureChange) => ({
216
- deletedFeature: addFeatureChange.addedFeature,
217
- parentFeatureId: addFeatureChange.parentFeatureId,
218
- }))
219
-
220
- return new DeleteFeatureChange(
221
- {
222
- changedIds: inverseChangedIds,
223
- typeName: 'DeleteFeatureChange',
224
- changes: inverseChanges,
225
- assembly,
226
- },
227
- { logger },
228
- )
229
- }
230
- }
231
-
232
- export function isAddFeatureChange(
233
- change: unknown,
234
- ): change is AddFeatureChange {
235
- return (change as AddFeatureChange).typeName === 'AddFeatureChange'
236
- }