@apollo-annotation/shared 0.1.20 → 0.2.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.
- package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.js +5 -2
- package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.js.map +1 -1
- package/dist/Changes/AddAssemblyFromExternalChange.js +4 -1
- package/dist/Changes/AddAssemblyFromExternalChange.js.map +1 -1
- package/dist/Changes/AddAssemblyFromFileChange.js +17 -11
- package/dist/Changes/AddAssemblyFromFileChange.js.map +1 -1
- package/dist/Changes/ImportJBrowseConfigChange.js +1 -1
- package/dist/Changes/ImportJBrowseConfigChange.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -7
- package/src/Changes/AddAssemblyAndFeaturesFromFileChange.ts +5 -2
- package/src/Changes/AddAssemblyFromExternalChange.ts +4 -1
- package/src/Changes/AddAssemblyFromFileChange.ts +25 -13
- package/src/Changes/DeleteUserChange.ts +1 -1
- package/src/Changes/ImportJBrowseConfigChange.ts +2 -1
- package/tsconfig.json +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@apollo-annotation/shared",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"scripts": {
|
|
6
6
|
"build": "yarn clean && tsc --build",
|
|
@@ -10,17 +10,15 @@
|
|
|
10
10
|
"test:ci": "NODE_V8_COVERAGE=./coverage glob -c \"tsx --test --test-reporter spec --experimental-test-coverage \" \"**/*.test.ts\""
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
|
-
"@apollo-annotation/common": "^0.
|
|
14
|
-
"@apollo-annotation/mst": "^0.
|
|
15
|
-
"@apollo-annotation/schemas": "^0.
|
|
13
|
+
"@apollo-annotation/common": "^0.2.0",
|
|
14
|
+
"@apollo-annotation/mst": "^0.2.0",
|
|
15
|
+
"@apollo-annotation/schemas": "^0.2.0",
|
|
16
16
|
"@gmod/gff": "1.2.0",
|
|
17
17
|
"@gmod/indexedfasta": "^2.0.4",
|
|
18
18
|
"@jbrowse/core": "^2.13.1",
|
|
19
19
|
"bson-objectid": "^2.0.4",
|
|
20
20
|
"generic-filehandle": "^3.0.0",
|
|
21
21
|
"jwt-decode": "^3.1.2",
|
|
22
|
-
"regenerator-runtime": "^0.13.9",
|
|
23
|
-
"socket.io-client": "^4.5.4",
|
|
24
22
|
"tslib": "^2.3.1"
|
|
25
23
|
},
|
|
26
24
|
"devDependencies": {
|
|
@@ -28,7 +26,6 @@
|
|
|
28
26
|
"@nestjs/core": "^10.1.0",
|
|
29
27
|
"@types/chai": "^4.3.19",
|
|
30
28
|
"@types/node": "^18.14.2",
|
|
31
|
-
"@types/rimraf": "^3",
|
|
32
29
|
"chai": "^5.1.1",
|
|
33
30
|
"chai-exclude": "^3.0.0",
|
|
34
31
|
"glob": "^11.0.0",
|
|
@@ -65,7 +65,7 @@ export class AddAssemblyAndFeaturesFromFileChange extends FromFileBaseChange {
|
|
|
65
65
|
* @returns
|
|
66
66
|
*/
|
|
67
67
|
async executeOnServer(backend: ServerDataStore) {
|
|
68
|
-
const { assemblyModel, fileModel, filesService, user } = backend
|
|
68
|
+
const { assemblyModel, checkModel, fileModel, filesService, user } = backend
|
|
69
69
|
const { assembly, changes, logger } = this
|
|
70
70
|
for (const change of changes) {
|
|
71
71
|
const { assemblyName, fileIds } = change
|
|
@@ -89,9 +89,12 @@ export class AddAssemblyAndFeaturesFromFileChange extends FromFileBaseChange {
|
|
|
89
89
|
if (assemblyDoc) {
|
|
90
90
|
throw new Error(`Assembly "${assemblyName}" already exists`)
|
|
91
91
|
}
|
|
92
|
+
// get checks
|
|
93
|
+
const checkDocs = await checkModel.find({ default: true }).exec()
|
|
94
|
+
const checks = checkDocs.map((checkDoc) => checkDoc._id.toHexString())
|
|
92
95
|
// Add assembly
|
|
93
96
|
const [newAssemblyDoc] = await assemblyModel.create([
|
|
94
|
-
{ _id: assembly, name: assemblyName, user, status: -1, fileId },
|
|
97
|
+
{ _id: assembly, name: assemblyName, user, status: -1, fileId, checks },
|
|
95
98
|
])
|
|
96
99
|
logger.debug?.(
|
|
97
100
|
`Added new assembly "${assemblyName}", docId "${newAssemblyDoc._id.toHexString()}"`,
|
|
@@ -67,7 +67,7 @@ export class AddAssemblyFromExternalChange extends AssemblySpecificChange {
|
|
|
67
67
|
* @returns
|
|
68
68
|
*/
|
|
69
69
|
async executeOnServer(backend: ServerDataStore) {
|
|
70
|
-
const { assemblyModel, refSeqModel, user } = backend
|
|
70
|
+
const { assemblyModel, checkModel, refSeqModel, user } = backend
|
|
71
71
|
const { assembly, changes, logger } = this
|
|
72
72
|
const { CHUNK_SIZE } = process.env
|
|
73
73
|
const customChunkSize = CHUNK_SIZE && Number(CHUNK_SIZE)
|
|
@@ -97,6 +97,8 @@ export class AddAssemblyFromExternalChange extends AssemblySpecificChange {
|
|
|
97
97
|
if (assemblyDoc) {
|
|
98
98
|
throw new Error(`Assembly "${assemblyName}" already exists`)
|
|
99
99
|
}
|
|
100
|
+
const checkDocs = await checkModel.find({ default: true }).exec()
|
|
101
|
+
const checks = checkDocs.map((checkDoc) => checkDoc._id.toHexString())
|
|
100
102
|
const [newAssemblyDoc] = await assemblyModel.create([
|
|
101
103
|
{
|
|
102
104
|
_id: assembly,
|
|
@@ -104,6 +106,7 @@ export class AddAssemblyFromExternalChange extends AssemblySpecificChange {
|
|
|
104
106
|
user,
|
|
105
107
|
status: -1,
|
|
106
108
|
externalLocation,
|
|
109
|
+
checks,
|
|
107
110
|
},
|
|
108
111
|
])
|
|
109
112
|
logger.debug?.(
|
|
@@ -87,34 +87,40 @@ export class AddAssemblyFromFileChange extends FromFileBaseChange {
|
|
|
87
87
|
throw new Error('No FILE_UPLOAD_FOLDER found in .env file')
|
|
88
88
|
}
|
|
89
89
|
|
|
90
|
-
const { fa, fai, gzi } = fileIds
|
|
91
|
-
const {
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
90
|
+
const { fa: faId, fai: faiId, gzi: gziId } = fileIds
|
|
91
|
+
const {
|
|
92
|
+
assemblyModel,
|
|
93
|
+
checkModel,
|
|
94
|
+
fileModel,
|
|
95
|
+
filesService,
|
|
96
|
+
refSeqModel,
|
|
97
|
+
user,
|
|
98
|
+
} = backend
|
|
99
|
+
|
|
100
|
+
const faDoc = await fileModel.findById(faId)
|
|
95
101
|
const faChecksum = faDoc?.checksum
|
|
96
102
|
if (!faChecksum) {
|
|
97
103
|
throw new Error(`No checksum for file document ${faDoc}`)
|
|
98
104
|
}
|
|
99
105
|
|
|
100
|
-
const faiDoc = await fileModel.findById(
|
|
106
|
+
const faiDoc = await fileModel.findById(faiId)
|
|
101
107
|
const faiChecksum = faiDoc?.checksum
|
|
102
108
|
if (!faiChecksum) {
|
|
103
109
|
throw new Error(`No checksum for file document ${faiDoc}`)
|
|
104
110
|
}
|
|
105
111
|
|
|
106
|
-
const gziDoc = await fileModel.findById(
|
|
112
|
+
const gziDoc = await fileModel.findById(gziId)
|
|
107
113
|
const gziChecksum = gziDoc?.checksum
|
|
108
114
|
if (!gziChecksum) {
|
|
109
115
|
throw new Error(`No checksum for file document ${gziDoc}`)
|
|
110
116
|
}
|
|
111
117
|
|
|
112
|
-
const
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
})
|
|
118
|
+
const fasta = filesService.getFileHandle(faDoc)
|
|
119
|
+
const fai = filesService.getFileHandle(faiDoc)
|
|
120
|
+
const gzi = filesService.getFileHandle(gziDoc)
|
|
121
|
+
const sequenceAdapter = new BgzipIndexedFasta({ fasta, fai, gzi })
|
|
117
122
|
const allSequenceSizes = await sequenceAdapter.getSequenceSizes()
|
|
123
|
+
await Promise.all([fasta.close(), fai.close(), gzi.close()])
|
|
118
124
|
|
|
119
125
|
const assemblyDoc = await assemblyModel
|
|
120
126
|
.findOne({ name: assemblyName })
|
|
@@ -122,6 +128,8 @@ export class AddAssemblyFromFileChange extends FromFileBaseChange {
|
|
|
122
128
|
if (assemblyDoc) {
|
|
123
129
|
throw new Error(`Assembly "${assemblyName}" already exists`)
|
|
124
130
|
}
|
|
131
|
+
const checkDocs = await checkModel.find({ default: true }).exec()
|
|
132
|
+
const checks = checkDocs.map((checkDoc) => checkDoc._id.toHexString())
|
|
125
133
|
const [newAssemblyDoc] = await assemblyModel.create([
|
|
126
134
|
{
|
|
127
135
|
_id: this.assembly,
|
|
@@ -129,6 +137,7 @@ export class AddAssemblyFromFileChange extends FromFileBaseChange {
|
|
|
129
137
|
user,
|
|
130
138
|
status: -1,
|
|
131
139
|
fileIds,
|
|
140
|
+
checks,
|
|
132
141
|
},
|
|
133
142
|
])
|
|
134
143
|
this.logger.debug?.(
|
|
@@ -157,7 +166,7 @@ export class AddAssemblyFromFileChange extends FromFileBaseChange {
|
|
|
157
166
|
assemblyName: string,
|
|
158
167
|
fileId: string,
|
|
159
168
|
) {
|
|
160
|
-
const { assemblyModel, fileModel, user } = backend
|
|
169
|
+
const { assemblyModel, checkModel, fileModel, user } = backend
|
|
161
170
|
// Get file checksum
|
|
162
171
|
const fileDoc = await fileModel.findById(fileId).exec()
|
|
163
172
|
if (!fileDoc) {
|
|
@@ -172,6 +181,8 @@ export class AddAssemblyFromFileChange extends FromFileBaseChange {
|
|
|
172
181
|
if (assemblyDoc) {
|
|
173
182
|
throw new Error(`Assembly "${assemblyName}" already exists`)
|
|
174
183
|
}
|
|
184
|
+
const checkDocs = await checkModel.find({ default: true }).exec()
|
|
185
|
+
const checks = checkDocs.map((checkDoc) => checkDoc._id.toHexString())
|
|
175
186
|
// Add assembly
|
|
176
187
|
const [newAssemblyDoc] = await assemblyModel.create([
|
|
177
188
|
{
|
|
@@ -180,6 +191,7 @@ export class AddAssemblyFromFileChange extends FromFileBaseChange {
|
|
|
180
191
|
user,
|
|
181
192
|
status: -1,
|
|
182
193
|
fileIds: { fa: fileId },
|
|
194
|
+
checks,
|
|
183
195
|
},
|
|
184
196
|
])
|
|
185
197
|
this.logger.debug?.(
|
|
@@ -13,7 +13,7 @@ export interface SerializedDeleteUserChangeBase extends SerializedChange {
|
|
|
13
13
|
userId: string
|
|
14
14
|
}
|
|
15
15
|
|
|
16
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-object-type
|
|
17
17
|
export interface DeleteUserChangeDetails {}
|
|
18
18
|
|
|
19
19
|
interface SerializedDeleteUserChangeSingle
|
|
@@ -39,7 +39,8 @@ export interface SerializedImportJBrowseConfigChange {
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
export function filterJBrowseConfig(config: JBrowseConfig): JBrowseConfig {
|
|
42
|
-
const { assemblies, internetAccounts, plugins, tracks, ...rest } =
|
|
42
|
+
const { __v, _id, assemblies, internetAccounts, plugins, tracks, ...rest } =
|
|
43
|
+
config
|
|
43
44
|
const filteredAssemblies = assemblies?.filter(
|
|
44
45
|
(a) => a.sequence.adapter.type !== 'ApolloSequenceAdapter',
|
|
45
46
|
)
|
package/tsconfig.json
CHANGED