@apollo-annotation/shared 0.3.6 → 0.3.7

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 (66) hide show
  1. package/dist/Changes/AddAssemblyAliasesChange.d.ts +16 -0
  2. package/dist/Changes/AddAssemblyAliasesChange.js +50 -0
  3. package/dist/Changes/AddAssemblyAliasesChange.js.map +1 -0
  4. package/dist/Changes/AddFeatureChange.d.ts +1 -0
  5. package/dist/Changes/AddFeatureChange.js +5 -25
  6. package/dist/Changes/AddFeatureChange.js.map +1 -1
  7. package/dist/Changes/DeleteFeatureChange.d.ts +9 -8
  8. package/dist/Changes/DeleteFeatureChange.js +37 -32
  9. package/dist/Changes/DeleteFeatureChange.js.map +1 -1
  10. package/dist/Changes/FeatureAttributeChange.d.ts +2 -1
  11. package/dist/Changes/FeatureAttributeChange.js +14 -6
  12. package/dist/Changes/FeatureAttributeChange.js.map +1 -1
  13. package/dist/Changes/ImportJBrowseConfigChange.d.ts +3 -0
  14. package/dist/Changes/ImportJBrowseConfigChange.js +17 -13
  15. package/dist/Changes/ImportJBrowseConfigChange.js.map +1 -1
  16. package/dist/Changes/LocationEndChange.js +40 -37
  17. package/dist/Changes/LocationEndChange.js.map +1 -1
  18. package/dist/Changes/LocationStartChange.js +40 -37
  19. package/dist/Changes/LocationStartChange.js.map +1 -1
  20. package/dist/Changes/MergeExonsChange.d.ts +30 -0
  21. package/dist/Changes/MergeExonsChange.js +130 -0
  22. package/dist/Changes/MergeExonsChange.js.map +1 -0
  23. package/dist/Changes/MergeTranscriptsChange.d.ts +36 -0
  24. package/dist/Changes/MergeTranscriptsChange.js +246 -0
  25. package/dist/Changes/MergeTranscriptsChange.js.map +1 -0
  26. package/dist/Changes/SplitExonChange.d.ts +33 -0
  27. package/dist/Changes/SplitExonChange.js +142 -0
  28. package/dist/Changes/SplitExonChange.js.map +1 -0
  29. package/dist/Changes/UndoMergeExonsChange.d.ts +27 -0
  30. package/dist/Changes/UndoMergeExonsChange.js +104 -0
  31. package/dist/Changes/UndoMergeExonsChange.js.map +1 -0
  32. package/dist/Changes/UndoMergeTranscriptsChange.d.ts +27 -0
  33. package/dist/Changes/UndoMergeTranscriptsChange.js +104 -0
  34. package/dist/Changes/UndoMergeTranscriptsChange.js.map +1 -0
  35. package/dist/Changes/UndoSplitExonChange.d.ts +32 -0
  36. package/dist/Changes/UndoSplitExonChange.js +111 -0
  37. package/dist/Changes/UndoSplitExonChange.js.map +1 -0
  38. package/dist/Changes/index.d.ts +21 -0
  39. package/dist/Changes/index.js +21 -0
  40. package/dist/Changes/index.js.map +1 -1
  41. package/dist/GFF3/annotationFeatureToGFF3.js +7 -1
  42. package/dist/GFF3/annotationFeatureToGFF3.js.map +1 -1
  43. package/dist/Validations/ParentChildValidation.js +3 -1
  44. package/dist/Validations/ParentChildValidation.js.map +1 -1
  45. package/dist/tsconfig.tsbuildinfo +1 -1
  46. package/dist/util.d.ts +2 -0
  47. package/dist/util.js +13 -0
  48. package/dist/util.js.map +1 -1
  49. package/package.json +4 -4
  50. package/src/Changes/AddAssemblyAliasesChange.ts +69 -0
  51. package/src/Changes/AddFeatureChange.ts +5 -29
  52. package/src/Changes/DeleteFeatureChange.ts +42 -36
  53. package/src/Changes/FeatureAttributeChange.ts +16 -7
  54. package/src/Changes/ImportJBrowseConfigChange.ts +33 -18
  55. package/src/Changes/LocationEndChange.ts +41 -50
  56. package/src/Changes/LocationStartChange.ts +41 -50
  57. package/src/Changes/MergeExonsChange.ts +185 -0
  58. package/src/Changes/MergeTranscriptsChange.ts +379 -0
  59. package/src/Changes/SplitExonChange.ts +249 -0
  60. package/src/Changes/UndoMergeExonsChange.ts +149 -0
  61. package/src/Changes/UndoMergeTranscriptsChange.ts +153 -0
  62. package/src/Changes/UndoSplitExonChange.ts +174 -0
  63. package/src/Changes/index.ts +21 -0
  64. package/src/GFF3/annotationFeatureToGFF3.ts +7 -1
  65. package/src/Validations/ParentChildValidation.ts +3 -2
  66. package/src/util.ts +16 -0
@@ -0,0 +1,16 @@
1
+ import { AssemblySpecificChange, type Change, type ChangeOptions, type ClientDataStore, type LocalGFF3DataStore, type SerializedAssemblySpecificChange, type ServerDataStore } from '@apollo-annotation/common';
2
+ export interface SerializedAssemblyAliasesChange extends SerializedAssemblySpecificChange {
3
+ typeName: 'AddAssemblyAliasesChange';
4
+ aliases: string[];
5
+ }
6
+ export declare class AddAssemblyAliasesChange extends AssemblySpecificChange {
7
+ typeName: "AddAssemblyAliasesChange";
8
+ aliases: string[];
9
+ constructor(json: SerializedAssemblyAliasesChange, options?: ChangeOptions);
10
+ executeOnClient(clientDataStore: ClientDataStore): Promise<void>;
11
+ getInverse(): Change;
12
+ toJSON(): SerializedAssemblyAliasesChange;
13
+ executeOnServer(backend: ServerDataStore): Promise<void>;
14
+ executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<unknown>;
15
+ get notification(): string;
16
+ }
@@ -0,0 +1,50 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AddAssemblyAliasesChange = void 0;
4
+ const common_1 = require("@apollo-annotation/common");
5
+ const util_1 = require("@jbrowse/core/util");
6
+ class AddAssemblyAliasesChange extends common_1.AssemblySpecificChange {
7
+ typeName = 'AddAssemblyAliasesChange';
8
+ aliases;
9
+ constructor(json, options) {
10
+ super(json, options);
11
+ this.aliases = json.aliases;
12
+ }
13
+ executeOnClient(clientDataStore) {
14
+ const { assemblyManager } = (0, util_1.getSession)(clientDataStore);
15
+ const assembly = assemblyManager.get(this.assembly);
16
+ if (!assembly) {
17
+ throw new Error(`assembly ${this.assembly} not found`);
18
+ }
19
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-call, @typescript-eslint/no-unsafe-member-access
20
+ assembly.configuration.aliases.set(this.aliases);
21
+ return Promise.resolve();
22
+ }
23
+ getInverse() {
24
+ throw new Error('Method not implemented.');
25
+ }
26
+ toJSON() {
27
+ const { assembly, aliases, typeName } = this;
28
+ return { assembly, typeName, aliases };
29
+ }
30
+ async executeOnServer(backend) {
31
+ const { assemblyModel } = backend;
32
+ const { assembly, logger, aliases } = this;
33
+ logger.debug?.(`Updating assembly aliases for assembly: ${assembly}, aliases: ${JSON.stringify(aliases)}`);
34
+ const asm = await assemblyModel.findById(assembly);
35
+ if (!asm) {
36
+ throw new Error(`Assembly with ID ${assembly} not found`);
37
+ }
38
+ asm.aliases = aliases;
39
+ await asm.save();
40
+ }
41
+ executeOnLocalGFF3(_backend) {
42
+ throw new Error('Method not implemented.');
43
+ }
44
+ // eslint-disable-next-line @typescript-eslint/class-literal-property-style
45
+ get notification() {
46
+ return 'Assembly aliases have been added.';
47
+ }
48
+ }
49
+ exports.AddAssemblyAliasesChange = AddAssemblyAliasesChange;
50
+ //# sourceMappingURL=AddAssemblyAliasesChange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AddAssemblyAliasesChange.js","sourceRoot":"","sources":["../../src/Changes/AddAssemblyAliasesChange.ts"],"names":[],"mappings":";;;AAAA,sDAQkC;AAClC,6CAA+C;AAQ/C,MAAa,wBAAyB,SAAQ,+BAAsB;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,IAAA,iBAAU,EAAC,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,yGAAyG;QACzG,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;AAnDD,4DAmDC"}
@@ -20,6 +20,7 @@ export declare class AddFeatureChange extends FeatureChange {
20
20
  typeName: "AddFeatureChange";
21
21
  changes: AddFeatureChangeDetails[];
22
22
  constructor(json: SerializedAddFeatureChange, options?: ChangeOptions);
23
+ get notification(): string;
23
24
  toJSON(): SerializedAddFeatureChange;
24
25
  /**
25
26
  * Applies the required change to database
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.AddFeatureChange = void 0;
4
4
  exports.isAddFeatureChange = isAddFeatureChange;
5
5
  /* eslint-disable @typescript-eslint/restrict-template-expressions */
6
- /* eslint-disable @typescript-eslint/no-unsafe-assignment */
7
6
  /* eslint-disable @typescript-eslint/require-await */
8
7
  /* eslint-disable @typescript-eslint/no-unnecessary-condition */
9
8
  const common_1 = require("@apollo-annotation/common");
@@ -15,6 +14,10 @@ class AddFeatureChange extends common_1.FeatureChange {
15
14
  super(json, options);
16
15
  this.changes = 'changes' in json ? json.changes : [json];
17
16
  }
17
+ // eslint-disable-next-line @typescript-eslint/class-literal-property-style
18
+ get notification() {
19
+ return 'Feature added successfully';
20
+ }
18
21
  toJSON() {
19
22
  const { assembly, changedIds, changes, typeName } = this;
20
23
  if (changes.length === 1) {
@@ -83,30 +86,7 @@ class AddFeatureChange extends common_1.FeatureChange {
83
86
  if (!parentFeature) {
84
87
  throw new Error(`Could not find feature with ID "${parentFeatureId}" in feature "${topLevelFeature._id}"`);
85
88
  }
86
- if (!parentFeature.children) {
87
- parentFeature.children = new Map();
88
- }
89
- if (!parentFeature.attributes?._id) {
90
- let { attributes } = parentFeature;
91
- if (!attributes) {
92
- attributes = {};
93
- }
94
- attributes = {
95
- _id: [parentFeature._id.toString()],
96
- // eslint-disable-next-line unicorn/prefer-structured-clone
97
- ...JSON.parse(JSON.stringify(attributes)),
98
- };
99
- parentFeature.attributes = attributes;
100
- }
101
- parentFeature.children.set(_id, {
102
- allIds: [],
103
- ...addedFeature,
104
- // eslint-disable-next-line @typescript-eslint/ban-ts-comment
105
- // @ts-expect-error
106
- _id,
107
- });
108
- // Child features should be sorted for click and drag of gene glyphs to work properly
109
- parentFeature.children = new Map([...parentFeature.children.entries()].sort((a, b) => a[1].min - b[1].min));
89
+ this.addChild(parentFeature, addedFeature);
110
90
  const childIds = this.getChildFeatureIds(addedFeature);
111
91
  topLevelFeature.allIds.push(_id, ...childIds);
112
92
  await topLevelFeature.save();
@@ -1 +1 @@
1
- {"version":3,"file":"AddFeatureChange.js","sourceRoot":"","sources":["../../src/Changes/AddFeatureChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AddFeatureChange.js","sourceRoot":"","sources":["../../src/Changes/AddFeatureChange.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ export declare class DeleteFeatureChange extends FeatureChange {
19
19
  typeName: "DeleteFeatureChange";
20
20
  changes: DeleteFeatureChangeDetails[];
21
21
  constructor(json: SerializedDeleteFeatureChange, options?: ChangeOptions);
22
+ get notification(): string;
22
23
  toJSON(): SerializedDeleteFeatureChange;
23
24
  /**
24
25
  * Applies the required change to database
@@ -26,17 +27,17 @@ export declare class DeleteFeatureChange extends FeatureChange {
26
27
  * @returns
27
28
  */
28
29
  executeOnServer(backend: ServerDataStore): Promise<void>;
29
- /**
30
- * Delete feature's subfeatures that match an ID and return the IDs of any
31
- * sub-subfeatures that were deleted
32
- * @param feature -
33
- * @param featureIdToDelete -
34
- * @returns - list of deleted feature IDs
35
- */
36
- findAndDeleteChildFeature(feature: Feature, featureIdToDelete: string): string[];
37
30
  executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
38
31
  executeOnClient(dataStore: ClientDataStore): Promise<void>;
39
32
  getInverse(): AddFeatureChange;
40
33
  }
34
+ /**
35
+ * Delete feature's subfeatures that match an ID and return the IDs of any
36
+ * sub-subfeatures that were deleted
37
+ * @param feature -
38
+ * @param featureIdToDelete -
39
+ * @returns - list of deleted feature IDs
40
+ */
41
+ export declare function findAndDeleteChildFeature(feature: Feature, featureIdToDelete: string, change: FeatureChange): string[];
41
42
  export declare function isDeleteFeatureChange(change: unknown): change is DeleteFeatureChange;
42
43
  export {};
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.DeleteFeatureChange = void 0;
4
+ exports.findAndDeleteChildFeature = findAndDeleteChildFeature;
4
5
  exports.isDeleteFeatureChange = isDeleteFeatureChange;
5
6
  /* eslint-disable @typescript-eslint/restrict-template-expressions */
6
7
  /* eslint-disable @typescript-eslint/require-await */
@@ -14,6 +15,10 @@ class DeleteFeatureChange extends common_1.FeatureChange {
14
15
  super(json, options);
15
16
  this.changes = 'changes' in json ? json.changes : [json];
16
17
  }
18
+ // eslint-disable-next-line @typescript-eslint/class-literal-property-style
19
+ get notification() {
20
+ return 'Feature deleted successfully';
21
+ }
17
22
  toJSON() {
18
23
  const { assembly, changedIds, changes, typeName } = this;
19
24
  if (changes.length === 1) {
@@ -52,7 +57,7 @@ class DeleteFeatureChange extends common_1.FeatureChange {
52
57
  logger.debug?.(`Feature "${deletedFeature._id}" deleted from document "${featureDoc._id}". Whole document deleted.`);
53
58
  continue;
54
59
  }
55
- const deletedIds = this.findAndDeleteChildFeature(featureDoc, deletedFeature._id);
60
+ const deletedIds = findAndDeleteChildFeature(featureDoc, deletedFeature._id, this);
56
61
  deletedIds.push(deletedFeature._id);
57
62
  featureDoc.allIds = featureDoc.allIds.filter((id) => !deletedIds.includes(id));
58
63
  // Save updated document in Mongo
@@ -67,34 +72,6 @@ class DeleteFeatureChange extends common_1.FeatureChange {
67
72
  logger.debug?.(`Feature "${deletedFeature._id}" deleted from document "${featureDoc._id}"`);
68
73
  }
69
74
  }
70
- /**
71
- * Delete feature's subfeatures that match an ID and return the IDs of any
72
- * sub-subfeatures that were deleted
73
- * @param feature -
74
- * @param featureIdToDelete -
75
- * @returns - list of deleted feature IDs
76
- */
77
- findAndDeleteChildFeature(feature, featureIdToDelete) {
78
- if (!feature.children) {
79
- throw new Error(`Feature ${feature._id} has no children`);
80
- }
81
- const { _id, children } = feature;
82
- const child = children.get(featureIdToDelete);
83
- if (child) {
84
- const deletedIds = this.getChildFeatureIds(child);
85
- children.delete(featureIdToDelete);
86
- return deletedIds;
87
- }
88
- for (const [, childFeature] of children) {
89
- try {
90
- return this.findAndDeleteChildFeature(childFeature, featureIdToDelete);
91
- }
92
- catch {
93
- // pass
94
- }
95
- }
96
- throw new Error(`Feature "${featureIdToDelete}" not found in ${_id}`);
97
- }
98
75
  async executeOnLocalGFF3(_backend) {
99
76
  throw new Error('executeOnLocalGFF3 not implemented');
100
77
  }
@@ -123,9 +100,9 @@ class DeleteFeatureChange extends common_1.FeatureChange {
123
100
  const inverseChangedIds = [...changedIds].reverse();
124
101
  const inverseChanges = [...changes]
125
102
  .reverse()
126
- .map((deleteFeatuerChange) => ({
127
- addedFeature: deleteFeatuerChange.deletedFeature,
128
- parentFeatureId: deleteFeatuerChange.parentFeatureId,
103
+ .map((deleteFeatureChange) => ({
104
+ addedFeature: deleteFeatureChange.deletedFeature,
105
+ parentFeatureId: deleteFeatureChange.parentFeatureId,
129
106
  }));
130
107
  logger.debug?.(`INVERSE CHANGE '${JSON.stringify(inverseChanges)}'`);
131
108
  return new AddFeatureChange_1.AddFeatureChange({
@@ -137,6 +114,34 @@ class DeleteFeatureChange extends common_1.FeatureChange {
137
114
  }
138
115
  }
139
116
  exports.DeleteFeatureChange = DeleteFeatureChange;
117
+ /**
118
+ * Delete feature's subfeatures that match an ID and return the IDs of any
119
+ * sub-subfeatures that were deleted
120
+ * @param feature -
121
+ * @param featureIdToDelete -
122
+ * @returns - list of deleted feature IDs
123
+ */
124
+ function findAndDeleteChildFeature(feature, featureIdToDelete, change) {
125
+ if (!feature.children) {
126
+ throw new Error(`Feature ${feature._id} has no children`);
127
+ }
128
+ const { _id, children } = feature;
129
+ const child = children.get(featureIdToDelete);
130
+ if (child) {
131
+ const deletedIds = change.getChildFeatureIds(child);
132
+ children.delete(featureIdToDelete);
133
+ return deletedIds;
134
+ }
135
+ for (const [, childFeature] of children) {
136
+ try {
137
+ return findAndDeleteChildFeature(childFeature, featureIdToDelete, change);
138
+ }
139
+ catch {
140
+ // pass
141
+ }
142
+ }
143
+ throw new Error(`Feature "${featureIdToDelete}" not found in ${_id}`);
144
+ }
140
145
  function isDeleteFeatureChange(change) {
141
146
  return change.typeName === 'DeleteFeatureChange';
142
147
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DeleteFeatureChange.js","sourceRoot":"","sources":["../../src/Changes/DeleteFeatureChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeleteFeatureChange.js","sourceRoot":"","sources":["../../src/Changes/DeleteFeatureChange.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,8 @@ interface SerializedFeatureAttributeChangeBase extends SerializedFeatureChange {
4
4
  }
5
5
  export interface FeatureAttributeChangeDetails {
6
6
  featureId: string;
7
- attributes: Record<string, string[]>;
7
+ oldAttributes: Record<string, string[]>;
8
+ newAttributes: Record<string, string[]>;
8
9
  }
9
10
  interface SerializedFeatureAttributeChangeSingle extends SerializedFeatureAttributeChangeBase, FeatureAttributeChangeDetails {
10
11
  }
@@ -16,8 +16,15 @@ class FeatureAttributeChange extends common_1.FeatureChange {
16
16
  toJSON() {
17
17
  const { assembly, changedIds, changes, typeName } = this;
18
18
  if (changes.length === 1) {
19
- const [{ attributes, featureId }] = changes;
20
- return { typeName, changedIds, assembly, featureId, attributes };
19
+ const [{ oldAttributes, newAttributes, featureId }] = changes;
20
+ return {
21
+ typeName,
22
+ changedIds,
23
+ assembly,
24
+ featureId,
25
+ oldAttributes,
26
+ newAttributes,
27
+ };
21
28
  }
22
29
  return { typeName, changedIds, assembly, changes };
23
30
  }
@@ -56,9 +63,9 @@ class FeatureAttributeChange extends common_1.FeatureChange {
56
63
  }
57
64
  // Let's update objects
58
65
  for (const [idx, change] of changes.entries()) {
59
- const { attributes } = change;
66
+ const { newAttributes } = change;
60
67
  const { feature, topLevelFeature } = featuresForChanges[idx];
61
- feature.attributes = attributes;
68
+ feature.attributes = newAttributes;
62
69
  if (topLevelFeature._id.equals(feature._id)) {
63
70
  topLevelFeature.markModified('attributes'); // Mark as modified. Without this save() -method is not updating data in database
64
71
  }
@@ -87,7 +94,7 @@ class FeatureAttributeChange extends common_1.FeatureChange {
87
94
  if (!feature) {
88
95
  throw new Error(`Could not find feature with identifier "${changedId}"`);
89
96
  }
90
- feature.setAttributes(new Map(Object.entries(this.changes[idx].attributes)));
97
+ feature.setAttributes(new Map(Object.entries(this.changes[idx].newAttributes)));
91
98
  }
92
99
  }
93
100
  getInverse() {
@@ -95,7 +102,8 @@ class FeatureAttributeChange extends common_1.FeatureChange {
95
102
  const inverseChangedIds = [...changedIds].reverse();
96
103
  const inverseChanges = [...changes].reverse().map((oneChange) => ({
97
104
  featureId: oneChange.featureId,
98
- attributes: oneChange.attributes,
105
+ oldAttributes: oneChange.newAttributes,
106
+ newAttributes: oneChange.oldAttributes,
99
107
  }));
100
108
  return new FeatureAttributeChange({
101
109
  changedIds: inverseChangedIds,
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureAttributeChange.js","sourceRoot":"","sources":["../../src/Changes/FeatureAttributeChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"FeatureAttributeChange.js","sourceRoot":"","sources":["../../src/Changes/FeatureAttributeChange.ts"],"names":[],"mappings":"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"}
@@ -18,6 +18,9 @@ interface JBrowseInternetAccount {
18
18
  }
19
19
  export interface JBrowseConfig {
20
20
  assemblies?: JBrowseAssembly[];
21
+ configuration?: {
22
+ ApolloPlugin?: Record<string, unknown>;
23
+ };
21
24
  tracks?: JBrowseTrack[];
22
25
  plugins?: JBrowsePlugin[];
23
26
  internetAccounts?: JBrowseInternetAccount[];
@@ -5,23 +5,27 @@ exports.filterJBrowseConfig = filterJBrowseConfig;
5
5
  /* eslint-disable @typescript-eslint/require-await */
6
6
  const common_1 = require("@apollo-annotation/common");
7
7
  function filterJBrowseConfig(config) {
8
- const { __v, _id, assemblies, internetAccounts, plugins, tracks, ...rest } = config;
9
- const filteredAssemblies = assemblies?.filter((a) => a.sequence.adapter.type !== 'ApolloSequenceAdapter');
10
- const filteredTracks = tracks?.filter((t) => t.type !== 'ApolloTrack');
11
- const filteredPlugins = plugins?.filter((p) => p.name !== 'Apollo');
12
- const filteredInternetAccounts = internetAccounts?.filter((i) => i.type !== 'ApolloInternetAccount');
8
+ const { __v, _id, assemblies, configuration, internetAccounts, plugins, tracks, ...rest } = config;
9
+ // Need to make sure that configuration.ApolloPlugin.hasRole isn't set
13
10
  const filteredConfig = rest;
14
- if (filteredAssemblies) {
15
- filteredConfig.assemblies = filteredAssemblies;
11
+ if (assemblies) {
12
+ filteredConfig.assemblies = assemblies.filter((a) => a.sequence.adapter.type !== 'ApolloSequenceAdapter');
16
13
  }
17
- if (filteredTracks) {
18
- filteredConfig.tracks = filteredTracks;
14
+ if (configuration?.ApolloPlugin?.hasRole) {
15
+ const { hasRole, ...apolloPluginRest } = configuration.ApolloPlugin;
16
+ filteredConfig.configuration = {
17
+ ...configuration,
18
+ ApolloPlugin: apolloPluginRest,
19
+ };
19
20
  }
20
- if (filteredPlugins) {
21
- filteredConfig.plugins = filteredPlugins;
21
+ if (internetAccounts) {
22
+ filteredConfig.internetAccounts = internetAccounts.filter((i) => i.type !== 'ApolloInternetAccount');
22
23
  }
23
- if (filteredInternetAccounts) {
24
- filteredConfig.internetAccounts = filteredInternetAccounts;
24
+ if (plugins) {
25
+ filteredConfig.plugins = plugins.filter((p) => p.name !== 'Apollo');
26
+ }
27
+ if (tracks) {
28
+ filteredConfig.trackss = tracks.filter((t) => t.type !== 'ApolloTrack');
25
29
  }
26
30
  return filteredConfig;
27
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ImportJBrowseConfigChange.js","sourceRoot":"","sources":["../../src/Changes/ImportJBrowseConfigChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImportJBrowseConfigChange.js","sourceRoot":"","sources":["../../src/Changes/ImportJBrowseConfigChange.ts"],"names":[],"mappings":"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"}
@@ -29,15 +29,31 @@ class LocationEndChange extends common_1.FeatureChange {
29
29
  async executeOnServer(backend) {
30
30
  const { featureModel, session } = backend;
31
31
  const { changes, logger } = this;
32
- const featuresForChanges = [];
33
32
  // 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.
33
+ const topLevelFeatures = [];
34
34
  for (const change of changes) {
35
- const { featureId, oldEnd } = change;
36
- // Search correct feature
37
- const topLevelFeature = await featureModel
38
- .findOne({ allIds: featureId })
39
- .session(session)
40
- .exec();
35
+ const { featureId, oldEnd, newEnd } = change;
36
+ // See if we already have top-level feature for this feature
37
+ let topLevelFeature;
38
+ let feature;
39
+ for (const tlv of topLevelFeatures) {
40
+ const childFeature = this.getFeatureFromId(tlv, featureId);
41
+ if (childFeature) {
42
+ topLevelFeature = tlv;
43
+ feature = childFeature;
44
+ break;
45
+ }
46
+ }
47
+ if (!topLevelFeature) {
48
+ // Don't already have top-level feature, so let's query it
49
+ topLevelFeature = await featureModel
50
+ .findOne({ allIds: featureId })
51
+ .session(session)
52
+ .exec();
53
+ if (topLevelFeature) {
54
+ topLevelFeatures.push(topLevelFeature);
55
+ }
56
+ }
41
57
  if (!topLevelFeature) {
42
58
  const errMsg = `*** ERROR: The following featureId was not found in database ='${featureId}'`;
43
59
  logger.error(errMsg);
@@ -45,35 +61,20 @@ class LocationEndChange extends common_1.FeatureChange {
45
61
  // throw new NotFoundException(errMsg) -- This is causing runtime error because Exception comes from @nestjs/common!!!
46
62
  }
47
63
  logger.debug?.(`*** TOP level feature found: ${JSON.stringify(topLevelFeature)}`);
48
- const foundFeature = this.getFeatureFromId(topLevelFeature, featureId);
49
- if (!foundFeature) {
64
+ if (!feature) {
65
+ feature = this.getFeatureFromId(topLevelFeature, featureId);
66
+ }
67
+ if (!feature) {
50
68
  const errMsg = 'ERROR when searching feature by featureId';
51
69
  logger.error(errMsg);
52
70
  throw new Error(errMsg);
53
71
  }
54
- logger.debug?.(`*** Found feature: ${JSON.stringify(foundFeature)}`);
55
- if (foundFeature.max === oldEnd) {
56
- featuresForChanges.push({ feature: foundFeature, topLevelFeature });
57
- }
58
- else {
59
- if (foundFeature.children) {
60
- for (const [, childFeature] of foundFeature.children) {
61
- if (childFeature.max === oldEnd) {
62
- logger.debug?.(`*************** UPDATE CHILD FEATURE ID= ${featureId}, CHILD: ${JSON.stringify(childFeature)}`);
63
- featuresForChanges.push({
64
- feature: childFeature,
65
- topLevelFeature,
66
- });
67
- break;
68
- }
69
- }
70
- }
72
+ logger.debug?.(`*** Found feature: ${JSON.stringify(feature)}`);
73
+ if (feature.max !== oldEnd) {
74
+ const errMsg = 'Expected previous max does not match';
75
+ logger.error(errMsg);
76
+ throw new Error(errMsg);
71
77
  }
72
- }
73
- // Let's update objects.
74
- for (const [idx, change] of changes.entries()) {
75
- const { newEnd } = change;
76
- const { feature, topLevelFeature } = featuresForChanges[idx];
77
78
  feature.max = newEnd;
78
79
  if (topLevelFeature._id.equals(feature._id)) {
79
80
  topLevelFeature.markModified('end'); // Mark as modified. Without this save() -method is not updating data in database
@@ -81,14 +82,15 @@ class LocationEndChange extends common_1.FeatureChange {
81
82
  else {
82
83
  topLevelFeature.markModified('children'); // Mark as modified. Without this save() -method is not updating data in database
83
84
  }
85
+ }
86
+ for (const tlv of topLevelFeatures) {
84
87
  try {
85
- await topLevelFeature.save();
88
+ await tlv.save();
86
89
  }
87
90
  catch (error) {
88
91
  logger.debug?.(`*** FAILED: ${error}`);
89
92
  throw error;
90
93
  }
91
- logger.debug?.(`*** Object updated in Mongo. New object: ${JSON.stringify(topLevelFeature)}`);
92
94
  }
93
95
  }
94
96
  async executeOnLocalGFF3(_backend) {
@@ -98,12 +100,13 @@ class LocationEndChange extends common_1.FeatureChange {
98
100
  if (!dataStore) {
99
101
  throw new Error('No data store');
100
102
  }
101
- for (const [idx, changedId] of this.changedIds.entries()) {
102
- const feature = dataStore.getFeature(changedId);
103
+ for (const change of this.changes) {
104
+ const { featureId, newEnd } = change;
105
+ const feature = dataStore.getFeature(featureId);
103
106
  if (!feature) {
104
- throw new Error(`Could not find feature with identifier "${changedId}"`);
107
+ throw new Error(`Could not find feature with identifier "${featureId}"`);
105
108
  }
106
- feature.setMax(this.changes[idx].newEnd);
109
+ feature.setMax(newEnd);
107
110
  }
108
111
  }
109
112
  getInverse() {
@@ -1 +1 @@
1
- {"version":3,"file":"LocationEndChange.js","sourceRoot":"","sources":["../../src/Changes/LocationEndChange.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LocationEndChange.js","sourceRoot":"","sources":["../../src/Changes/LocationEndChange.ts"],"names":[],"mappings":"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"}