@apollo-annotation/shared 0.1.19 → 0.1.20
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.d.ts +33 -0
- package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.js +83 -0
- package/dist/Changes/AddAssemblyAndFeaturesFromFileChange.js.map +1 -0
- package/dist/Changes/AddAssemblyFromExternalChange.d.ts +34 -0
- package/dist/Changes/AddAssemblyFromExternalChange.js +97 -0
- package/dist/Changes/AddAssemblyFromExternalChange.js.map +1 -0
- package/dist/Changes/AddAssemblyFromFileChange.d.ts +43 -0
- package/dist/Changes/AddAssemblyFromFileChange.js +140 -0
- package/dist/Changes/AddAssemblyFromFileChange.js.map +1 -0
- package/dist/Changes/AddFeatureChange.d.ts +35 -0
- package/dist/Changes/AddFeatureChange.js +169 -0
- package/dist/Changes/AddFeatureChange.js.map +1 -0
- package/dist/Changes/AddFeaturesFromFileChange.d.ts +32 -0
- package/dist/Changes/AddFeaturesFromFileChange.js +76 -0
- package/dist/Changes/AddFeaturesFromFileChange.js.map +1 -0
- package/dist/Changes/AddRefSeqAliasesChange.d.ts +20 -0
- package/dist/Changes/AddRefSeqAliasesChange.js +61 -0
- package/dist/Changes/AddRefSeqAliasesChange.js.map +1 -0
- package/dist/Changes/DeleteAssemblyChange.d.ts +18 -0
- package/dist/Changes/DeleteAssemblyChange.js +72 -0
- package/dist/Changes/DeleteAssemblyChange.js.map +1 -0
- package/dist/Changes/DeleteFeatureChange.d.ts +42 -0
- package/dist/Changes/DeleteFeatureChange.js +143 -0
- package/dist/Changes/DeleteFeatureChange.js.map +1 -0
- package/dist/Changes/DeleteUserChange.d.ts +25 -0
- package/dist/Changes/DeleteUserChange.js +53 -0
- package/dist/Changes/DeleteUserChange.js.map +1 -0
- package/dist/Changes/FeatureAttributeChange.d.ts +31 -0
- package/dist/Changes/FeatureAttributeChange.js +112 -0
- package/dist/Changes/FeatureAttributeChange.js.map +1 -0
- package/dist/Changes/FromFileBaseChange.d.ts +9 -0
- package/dist/Changes/FromFileBaseChange.js +187 -0
- package/dist/Changes/FromFileBaseChange.js.map +1 -0
- package/dist/Changes/ImportJBrowseConfigChange.d.ts +43 -0
- package/dist/Changes/ImportJBrowseConfigChange.js +67 -0
- package/dist/Changes/ImportJBrowseConfigChange.js.map +1 -0
- package/dist/Changes/LocationEndChange.d.ts +32 -0
- package/dist/Changes/LocationEndChange.js +129 -0
- package/dist/Changes/LocationEndChange.js.map +1 -0
- package/dist/Changes/LocationStartChange.d.ts +32 -0
- package/dist/Changes/LocationStartChange.js +129 -0
- package/dist/Changes/LocationStartChange.js.map +1 -0
- package/dist/Changes/StrandChange.d.ts +31 -0
- package/dist/Changes/StrandChange.js +114 -0
- package/dist/Changes/StrandChange.js.map +1 -0
- package/dist/Changes/TypeChange.d.ts +31 -0
- package/dist/Changes/TypeChange.js +114 -0
- package/dist/Changes/TypeChange.js.map +1 -0
- package/dist/Changes/UserChange.d.ts +25 -0
- package/dist/Changes/UserChange.js +51 -0
- package/dist/Changes/UserChange.js.map +1 -0
- package/dist/Changes/index.d.ts +50 -0
- package/dist/Changes/index.js +55 -0
- package/dist/Changes/index.js.map +1 -0
- package/dist/Checks/CDSCheck.d.ts +8 -0
- package/dist/Checks/CDSCheck.js +197 -0
- package/dist/Checks/CDSCheck.js.map +1 -0
- package/dist/Checks/index.d.ts +1 -0
- package/dist/Checks/index.js +5 -0
- package/dist/Checks/index.js.map +1 -0
- package/dist/Common/index.d.ts +1 -0
- package/dist/Common/index.js +5 -0
- package/dist/Common/index.js.map +1 -0
- package/dist/Common/jwtPayload.d.ts +12 -0
- package/dist/Common/jwtPayload.js +16 -0
- package/dist/Common/jwtPayload.js.map +1 -0
- package/dist/GFF3/gff3ToAnnotationFeature.d.ts +3 -0
- package/dist/GFF3/gff3ToAnnotationFeature.js +211 -0
- package/dist/GFF3/gff3ToAnnotationFeature.js.map +1 -0
- package/dist/GFF3/gff3ToAnnotationFeature.test.d.ts +1 -0
- package/dist/GFF3/gff3ToAnnotationFeature.test.js +174 -0
- package/dist/GFF3/gff3ToAnnotationFeature.test.js.map +1 -0
- package/dist/GFF3/gffReservedKeys.d.ts +5 -0
- package/dist/GFF3/gffReservedKeys.js +34 -0
- package/dist/GFF3/gffReservedKeys.js.map +1 -0
- package/dist/GFF3/index.d.ts +2 -0
- package/dist/GFF3/index.js +6 -0
- package/dist/GFF3/index.js.map +1 -0
- package/dist/Messages.d.ts +28 -0
- package/dist/Messages.js +3 -0
- package/dist/Messages.js.map +1 -0
- package/dist/Operations/GetAssembliesOperation.d.ts +13 -0
- package/dist/Operations/GetAssembliesOperation.js +20 -0
- package/dist/Operations/GetAssembliesOperation.js.map +1 -0
- package/dist/Operations/GetFeaturesOperation.d.ts +26 -0
- package/dist/Operations/GetFeaturesOperation.js +42 -0
- package/dist/Operations/GetFeaturesOperation.js.map +1 -0
- package/dist/Operations/index.d.ts +8 -0
- package/dist/Operations/index.js +10 -0
- package/dist/Operations/index.js.map +1 -0
- package/dist/Validations/CoreValidation.d.ts +17 -0
- package/dist/Validations/CoreValidation.js +36 -0
- package/dist/Validations/CoreValidation.js.map +1 -0
- package/dist/Validations/ParentChildValidation.d.ts +17 -0
- package/dist/Validations/ParentChildValidation.js +61 -0
- package/dist/Validations/ParentChildValidation.js.map +1 -0
- package/dist/Validations/Validation.d.ts +27 -0
- package/dist/Validations/Validation.js +27 -0
- package/dist/Validations/Validation.js.map +1 -0
- package/dist/Validations/ValidationSet.d.ts +24 -0
- package/dist/Validations/ValidationSet.js +86 -0
- package/dist/Validations/ValidationSet.js.map +1 -0
- package/dist/Validations/index.d.ts +4 -0
- package/dist/Validations/index.js +8 -0
- package/dist/Validations/index.js.map +1 -0
- package/dist/Validations/soSequenceTypes.d.ts +2 -0
- package/dist/Validations/soSequenceTypes.js +1868 -0
- package/dist/Validations/soSequenceTypes.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +12 -0
- package/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/util.d.ts +4 -0
- package/dist/util.js +102 -0
- package/dist/util.js.map +1 -0
- package/package.json +8 -5
- package/src/Changes/AddAssemblyAndFeaturesFromFileChange.ts +6 -5
- package/src/Changes/AddAssemblyFromFileChange.ts +126 -41
- package/src/Checks/CDSCheck.ts +202 -252
- package/src/GFF3/gff3ToAnnotationFeature.test.ts +165 -5
- package/src/GFF3/gff3ToAnnotationFeature.ts +16 -16
- package/src/util.ts +1 -0
- package/test_data/braker.gff +13 -0
- package/test_data/example01.gff3 +26 -0
- package/test_data/example01.json +236 -0
- package/test_data/example02.json +225 -0
- package/test_data/example04.json +225 -0
- package/test_data/example05.gff3 +30 -0
- package/test_data/example06.gff3 +30 -0
- package/test_data/example07.gff3 +30 -0
- package/test_data/gene_mrna.gff3 +4 -0
- package/test_data/gene_representations.gff3 +1781 -0
- package/test_data/one_cds.gff3 +9 -0
- package/test_data/one_cds.json +67 -0
- package/test_data/two_cds.gff3 +9 -0
- package/test_data/two_cds.json +67 -0
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TypeChange = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/restrict-template-expressions */
|
|
5
|
+
/* eslint-disable @typescript-eslint/require-await */
|
|
6
|
+
/* eslint-disable @typescript-eslint/no-unnecessary-condition */
|
|
7
|
+
const common_1 = require("@apollo-annotation/common");
|
|
8
|
+
class TypeChange extends common_1.FeatureChange {
|
|
9
|
+
typeName = 'TypeChange';
|
|
10
|
+
changes;
|
|
11
|
+
constructor(json, options) {
|
|
12
|
+
super(json, options);
|
|
13
|
+
this.changes = 'changes' in json ? json.changes : [json];
|
|
14
|
+
}
|
|
15
|
+
toJSON() {
|
|
16
|
+
const { assembly, changedIds, changes, typeName } = this;
|
|
17
|
+
if (changes.length === 1) {
|
|
18
|
+
const [{ featureId, newType, oldType }] = changes;
|
|
19
|
+
return { typeName, changedIds, assembly, featureId, oldType, newType };
|
|
20
|
+
}
|
|
21
|
+
return { typeName, changedIds, assembly, changes };
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Applies the required change to database
|
|
25
|
+
* @param backend - parameters from backend
|
|
26
|
+
* @returns
|
|
27
|
+
*/
|
|
28
|
+
async executeOnServer(backend) {
|
|
29
|
+
const { featureModel, session } = backend;
|
|
30
|
+
const { changes, logger } = this;
|
|
31
|
+
const featuresForChanges = [];
|
|
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
|
+
for (const entry of changes) {
|
|
34
|
+
const { featureId, oldType } = entry;
|
|
35
|
+
// Search correct feature
|
|
36
|
+
const topLevelFeature = await featureModel
|
|
37
|
+
.findOne({ allIds: featureId })
|
|
38
|
+
.session(session)
|
|
39
|
+
.exec();
|
|
40
|
+
if (!topLevelFeature) {
|
|
41
|
+
const errMsg = `*** ERROR: The following featureId was not found in database ='${featureId}'`;
|
|
42
|
+
logger.error(errMsg);
|
|
43
|
+
throw new Error(errMsg);
|
|
44
|
+
// throw new NotFoundException(errMsg) -- This is causing runtime error because Exception comes from @nestjs/common!!!
|
|
45
|
+
}
|
|
46
|
+
logger.debug?.(`*** Feature found: ${JSON.stringify(topLevelFeature)}`);
|
|
47
|
+
const foundFeature = this.getFeatureFromId(topLevelFeature, featureId);
|
|
48
|
+
if (!foundFeature) {
|
|
49
|
+
const errMsg = 'ERROR when searching feature by featureId';
|
|
50
|
+
logger.error(errMsg);
|
|
51
|
+
throw new Error(errMsg);
|
|
52
|
+
}
|
|
53
|
+
logger.debug?.(`*** Found feature: ${JSON.stringify(foundFeature)}`);
|
|
54
|
+
if (foundFeature.type !== oldType) {
|
|
55
|
+
const errMsg = `*** ERROR: Feature's current type "${topLevelFeature.type}" doesn't match with expected value "${oldType}"`;
|
|
56
|
+
logger.error(errMsg);
|
|
57
|
+
throw new Error(errMsg);
|
|
58
|
+
}
|
|
59
|
+
featuresForChanges.push({ feature: foundFeature, topLevelFeature });
|
|
60
|
+
}
|
|
61
|
+
// Let's update objects.
|
|
62
|
+
for (const [idx, change] of changes.entries()) {
|
|
63
|
+
const { newType } = change;
|
|
64
|
+
const { feature, topLevelFeature } = featuresForChanges[idx];
|
|
65
|
+
feature.type = newType;
|
|
66
|
+
if (topLevelFeature._id.equals(feature._id)) {
|
|
67
|
+
topLevelFeature.markModified('type'); // Mark as modified. Without this save() -method is not updating data in database
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
topLevelFeature.markModified('children'); // Mark as modified. Without this save() -method is not updating data in database
|
|
71
|
+
}
|
|
72
|
+
try {
|
|
73
|
+
await topLevelFeature.save();
|
|
74
|
+
}
|
|
75
|
+
catch (error) {
|
|
76
|
+
logger.debug?.(`*** FAILED: ${error}`);
|
|
77
|
+
throw error;
|
|
78
|
+
}
|
|
79
|
+
logger.debug?.(`*** Object updated in Mongo. New object: ${JSON.stringify(topLevelFeature)}`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
async executeOnLocalGFF3(_backend) {
|
|
83
|
+
throw new Error('executeOnLocalGFF3 not implemented');
|
|
84
|
+
}
|
|
85
|
+
async executeOnClient(dataStore) {
|
|
86
|
+
if (!dataStore) {
|
|
87
|
+
throw new Error('No data store');
|
|
88
|
+
}
|
|
89
|
+
for (const [idx, changedId] of this.changedIds.entries()) {
|
|
90
|
+
const feature = dataStore.getFeature(changedId);
|
|
91
|
+
if (!feature) {
|
|
92
|
+
throw new Error(`Could not find feature with identifier "${changedId}"`);
|
|
93
|
+
}
|
|
94
|
+
feature.setType(this.changes[idx].newType);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
getInverse() {
|
|
98
|
+
const { assembly, changedIds, changes, logger, typeName } = this;
|
|
99
|
+
const inverseChangedIds = [...changedIds].reverse();
|
|
100
|
+
const inverseChanges = [...changes].reverse().map((endChange) => ({
|
|
101
|
+
featureId: endChange.featureId,
|
|
102
|
+
oldType: endChange.newType,
|
|
103
|
+
newType: endChange.oldType,
|
|
104
|
+
}));
|
|
105
|
+
return new TypeChange({
|
|
106
|
+
changedIds: inverseChangedIds,
|
|
107
|
+
typeName,
|
|
108
|
+
changes: inverseChanges,
|
|
109
|
+
assembly,
|
|
110
|
+
}, { logger });
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.TypeChange = TypeChange;
|
|
114
|
+
//# sourceMappingURL=TypeChange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TypeChange.js","sourceRoot":"","sources":["../../src/Changes/TypeChange.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Change, ChangeOptions, ClientDataStore, LocalGFF3DataStore, SerializedChange, ServerDataStore } from '@apollo-annotation/common';
|
|
2
|
+
export interface SerializedUserChangeBase extends SerializedChange {
|
|
3
|
+
typeName: 'UserChange';
|
|
4
|
+
userId: string;
|
|
5
|
+
}
|
|
6
|
+
export interface UserChangeDetails {
|
|
7
|
+
role: 'admin' | 'user' | 'readOnly';
|
|
8
|
+
}
|
|
9
|
+
export interface SerializedUserChangeSingle extends SerializedUserChangeBase, UserChangeDetails {
|
|
10
|
+
}
|
|
11
|
+
export interface SerializedUserChangeMultiple extends SerializedUserChangeBase {
|
|
12
|
+
changes: UserChangeDetails[];
|
|
13
|
+
}
|
|
14
|
+
export type SerializedUserChange = SerializedUserChangeSingle | SerializedUserChangeMultiple;
|
|
15
|
+
export declare class UserChange extends Change {
|
|
16
|
+
typeName: "UserChange";
|
|
17
|
+
changes: UserChangeDetails[];
|
|
18
|
+
userId: string;
|
|
19
|
+
constructor(json: SerializedUserChange, options?: ChangeOptions);
|
|
20
|
+
toJSON(): SerializedUserChange;
|
|
21
|
+
executeOnServer(backend: ServerDataStore): Promise<void>;
|
|
22
|
+
executeOnLocalGFF3(_backend: LocalGFF3DataStore): Promise<void>;
|
|
23
|
+
executeOnClient(_dataStore: ClientDataStore): Promise<void>;
|
|
24
|
+
getInverse(): UserChange;
|
|
25
|
+
}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UserChange = void 0;
|
|
4
|
+
/* eslint-disable @typescript-eslint/require-await */
|
|
5
|
+
const common_1 = require("@apollo-annotation/common");
|
|
6
|
+
class UserChange extends common_1.Change {
|
|
7
|
+
typeName = 'UserChange';
|
|
8
|
+
changes;
|
|
9
|
+
userId;
|
|
10
|
+
constructor(json, options) {
|
|
11
|
+
super(json, options);
|
|
12
|
+
this.changes = 'changes' in json ? json.changes : [json];
|
|
13
|
+
this.userId = json.userId;
|
|
14
|
+
}
|
|
15
|
+
toJSON() {
|
|
16
|
+
const { changes, typeName, userId } = this;
|
|
17
|
+
if (changes.length === 1) {
|
|
18
|
+
const [{ role }] = changes;
|
|
19
|
+
return { typeName, userId, role };
|
|
20
|
+
}
|
|
21
|
+
return { typeName, userId, changes };
|
|
22
|
+
}
|
|
23
|
+
async executeOnServer(backend) {
|
|
24
|
+
const { session, userModel } = backend;
|
|
25
|
+
const { changes, logger, userId } = this;
|
|
26
|
+
for (const change of changes) {
|
|
27
|
+
logger.debug?.(`change: ${JSON.stringify(changes)}`);
|
|
28
|
+
const { role } = change;
|
|
29
|
+
const user = await userModel
|
|
30
|
+
.findByIdAndUpdate(userId, { role })
|
|
31
|
+
.session(session)
|
|
32
|
+
.exec();
|
|
33
|
+
if (!user) {
|
|
34
|
+
const errMsg = `*** ERROR: User with id "${userId}" not found`;
|
|
35
|
+
logger.error(errMsg);
|
|
36
|
+
throw new Error(errMsg);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
async executeOnLocalGFF3(_backend) {
|
|
41
|
+
throw new Error('executeOnLocalGFF3 not implemented');
|
|
42
|
+
}
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
44
|
+
async executeOnClient(_dataStore) { }
|
|
45
|
+
getInverse() {
|
|
46
|
+
const { changes, logger, typeName, userId } = this;
|
|
47
|
+
return new UserChange({ typeName, changes, userId }, { logger });
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
exports.UserChange = UserChange;
|
|
51
|
+
//# sourceMappingURL=UserChange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserChange.js","sourceRoot":"","sources":["../../src/Changes/UserChange.ts"],"names":[],"mappings":";;;AAAA,qDAAqD;AACrD,sDAOkC;AAuBlC,MAAa,UAAW,SAAQ,eAAM;IACpC,QAAQ,GAAG,YAAqB,CAAA;IAChC,OAAO,CAAqB;IAC5B,MAAM,CAAQ;IAEd,YAAY,IAA0B,EAAE,OAAuB;QAC7D,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;QACxD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAA;IAC3B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAC1C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,EAAE,IAAI,EAAE,CAAC,GAAG,OAAO,CAAA;YAC1B,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;QACnC,CAAC;QACD,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,OAAwB;QAC5C,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;QACtC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAExC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,KAAK,EAAE,CAAC,WAAW,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;YACpD,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,CAAA;YACvB,MAAM,IAAI,GAAG,MAAM,SAAS;iBACzB,iBAAiB,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC;iBACnC,OAAO,CAAC,OAAO,CAAC;iBAChB,IAAI,EAAE,CAAA;YACT,IAAI,CAAC,IAAI,EAAE,CAAC;gBACV,MAAM,MAAM,GAAG,4BAA4B,MAAM,aAAa,CAAA;gBAC9D,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;gBACpB,MAAM,IAAI,KAAK,CAAC,MAAM,CAAC,CAAA;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,QAA4B;QACnD,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;IACvD,CAAC;IAED,gEAAgE;IAChE,KAAK,CAAC,eAAe,CAAC,UAA2B,IAAG,CAAC;IAErD,UAAU;QACR,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;QAClD,OAAO,IAAI,UAAU,CAAC,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,CAAA;IAClE,CAAC;CACF;AAlDD,gCAkDC"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { AddAssemblyAndFeaturesFromFileChange } from './AddAssemblyAndFeaturesFromFileChange';
|
|
2
|
+
import { AddAssemblyFromExternalChange } from './AddAssemblyFromExternalChange';
|
|
3
|
+
import { AddAssemblyFromFileChange } from './AddAssemblyFromFileChange';
|
|
4
|
+
import { AddFeatureChange } from './AddFeatureChange';
|
|
5
|
+
import { AddFeaturesFromFileChange } from './AddFeaturesFromFileChange';
|
|
6
|
+
import { AddRefSeqAliasesChange } from './AddRefSeqAliasesChange';
|
|
7
|
+
import { DeleteAssemblyChange } from './DeleteAssemblyChange';
|
|
8
|
+
import { DeleteFeatureChange } from './DeleteFeatureChange';
|
|
9
|
+
import { DeleteUserChange } from './DeleteUserChange';
|
|
10
|
+
import { FeatureAttributeChange } from './FeatureAttributeChange';
|
|
11
|
+
import { ImportJBrowseConfigChange } from './ImportJBrowseConfigChange';
|
|
12
|
+
import { LocationEndChange } from './LocationEndChange';
|
|
13
|
+
import { LocationStartChange } from './LocationStartChange';
|
|
14
|
+
import { StrandChange } from './StrandChange';
|
|
15
|
+
import { TypeChange } from './TypeChange';
|
|
16
|
+
import { UserChange } from './UserChange';
|
|
17
|
+
export declare const changes: {
|
|
18
|
+
AddAssemblyAndFeaturesFromFileChange: typeof AddAssemblyAndFeaturesFromFileChange;
|
|
19
|
+
AddAssemblyFromFileChange: typeof AddAssemblyFromFileChange;
|
|
20
|
+
AddAssemblyFromExternalChange: typeof AddAssemblyFromExternalChange;
|
|
21
|
+
AddFeatureChange: typeof AddFeatureChange;
|
|
22
|
+
AddFeaturesFromFileChange: typeof AddFeaturesFromFileChange;
|
|
23
|
+
DeleteAssemblyChange: typeof DeleteAssemblyChange;
|
|
24
|
+
DeleteFeatureChange: typeof DeleteFeatureChange;
|
|
25
|
+
DeleteUserChange: typeof DeleteUserChange;
|
|
26
|
+
FeatureAttributeChange: typeof FeatureAttributeChange;
|
|
27
|
+
ImportJBrowseConfigChange: typeof ImportJBrowseConfigChange;
|
|
28
|
+
LocationEndChange: typeof LocationEndChange;
|
|
29
|
+
LocationStartChange: typeof LocationStartChange;
|
|
30
|
+
StrandChange: typeof StrandChange;
|
|
31
|
+
TypeChange: typeof TypeChange;
|
|
32
|
+
UserChange: typeof UserChange;
|
|
33
|
+
AddRefSeqAliasesChange: typeof AddRefSeqAliasesChange;
|
|
34
|
+
};
|
|
35
|
+
export * from './AddAssemblyAndFeaturesFromFileChange';
|
|
36
|
+
export * from './AddAssemblyFromFileChange';
|
|
37
|
+
export * from './AddAssemblyFromExternalChange';
|
|
38
|
+
export * from './AddFeatureChange';
|
|
39
|
+
export * from './AddFeaturesFromFileChange';
|
|
40
|
+
export * from './DeleteAssemblyChange';
|
|
41
|
+
export * from './DeleteFeatureChange';
|
|
42
|
+
export * from './DeleteUserChange';
|
|
43
|
+
export * from './FeatureAttributeChange';
|
|
44
|
+
export * from './ImportJBrowseConfigChange';
|
|
45
|
+
export * from './LocationEndChange';
|
|
46
|
+
export * from './LocationStartChange';
|
|
47
|
+
export * from './StrandChange';
|
|
48
|
+
export * from './TypeChange';
|
|
49
|
+
export * from './UserChange';
|
|
50
|
+
export * from './AddRefSeqAliasesChange';
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.changes = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const AddAssemblyAndFeaturesFromFileChange_1 = require("./AddAssemblyAndFeaturesFromFileChange");
|
|
6
|
+
const AddAssemblyFromExternalChange_1 = require("./AddAssemblyFromExternalChange");
|
|
7
|
+
const AddAssemblyFromFileChange_1 = require("./AddAssemblyFromFileChange");
|
|
8
|
+
const AddFeatureChange_1 = require("./AddFeatureChange");
|
|
9
|
+
const AddFeaturesFromFileChange_1 = require("./AddFeaturesFromFileChange");
|
|
10
|
+
const AddRefSeqAliasesChange_1 = require("./AddRefSeqAliasesChange");
|
|
11
|
+
const DeleteAssemblyChange_1 = require("./DeleteAssemblyChange");
|
|
12
|
+
const DeleteFeatureChange_1 = require("./DeleteFeatureChange");
|
|
13
|
+
const DeleteUserChange_1 = require("./DeleteUserChange");
|
|
14
|
+
const FeatureAttributeChange_1 = require("./FeatureAttributeChange");
|
|
15
|
+
const ImportJBrowseConfigChange_1 = require("./ImportJBrowseConfigChange");
|
|
16
|
+
const LocationEndChange_1 = require("./LocationEndChange");
|
|
17
|
+
const LocationStartChange_1 = require("./LocationStartChange");
|
|
18
|
+
const StrandChange_1 = require("./StrandChange");
|
|
19
|
+
const TypeChange_1 = require("./TypeChange");
|
|
20
|
+
const UserChange_1 = require("./UserChange");
|
|
21
|
+
exports.changes = {
|
|
22
|
+
AddAssemblyAndFeaturesFromFileChange: AddAssemblyAndFeaturesFromFileChange_1.AddAssemblyAndFeaturesFromFileChange,
|
|
23
|
+
AddAssemblyFromFileChange: AddAssemblyFromFileChange_1.AddAssemblyFromFileChange,
|
|
24
|
+
AddAssemblyFromExternalChange: AddAssemblyFromExternalChange_1.AddAssemblyFromExternalChange,
|
|
25
|
+
AddFeatureChange: AddFeatureChange_1.AddFeatureChange,
|
|
26
|
+
AddFeaturesFromFileChange: AddFeaturesFromFileChange_1.AddFeaturesFromFileChange,
|
|
27
|
+
DeleteAssemblyChange: DeleteAssemblyChange_1.DeleteAssemblyChange,
|
|
28
|
+
DeleteFeatureChange: DeleteFeatureChange_1.DeleteFeatureChange,
|
|
29
|
+
DeleteUserChange: DeleteUserChange_1.DeleteUserChange,
|
|
30
|
+
FeatureAttributeChange: FeatureAttributeChange_1.FeatureAttributeChange,
|
|
31
|
+
ImportJBrowseConfigChange: ImportJBrowseConfigChange_1.ImportJBrowseConfigChange,
|
|
32
|
+
LocationEndChange: LocationEndChange_1.LocationEndChange,
|
|
33
|
+
LocationStartChange: LocationStartChange_1.LocationStartChange,
|
|
34
|
+
StrandChange: StrandChange_1.StrandChange,
|
|
35
|
+
TypeChange: TypeChange_1.TypeChange,
|
|
36
|
+
UserChange: UserChange_1.UserChange,
|
|
37
|
+
AddRefSeqAliasesChange: AddRefSeqAliasesChange_1.AddRefSeqAliasesChange,
|
|
38
|
+
};
|
|
39
|
+
tslib_1.__exportStar(require("./AddAssemblyAndFeaturesFromFileChange"), exports);
|
|
40
|
+
tslib_1.__exportStar(require("./AddAssemblyFromFileChange"), exports);
|
|
41
|
+
tslib_1.__exportStar(require("./AddAssemblyFromExternalChange"), exports);
|
|
42
|
+
tslib_1.__exportStar(require("./AddFeatureChange"), exports);
|
|
43
|
+
tslib_1.__exportStar(require("./AddFeaturesFromFileChange"), exports);
|
|
44
|
+
tslib_1.__exportStar(require("./DeleteAssemblyChange"), exports);
|
|
45
|
+
tslib_1.__exportStar(require("./DeleteFeatureChange"), exports);
|
|
46
|
+
tslib_1.__exportStar(require("./DeleteUserChange"), exports);
|
|
47
|
+
tslib_1.__exportStar(require("./FeatureAttributeChange"), exports);
|
|
48
|
+
tslib_1.__exportStar(require("./ImportJBrowseConfigChange"), exports);
|
|
49
|
+
tslib_1.__exportStar(require("./LocationEndChange"), exports);
|
|
50
|
+
tslib_1.__exportStar(require("./LocationStartChange"), exports);
|
|
51
|
+
tslib_1.__exportStar(require("./StrandChange"), exports);
|
|
52
|
+
tslib_1.__exportStar(require("./TypeChange"), exports);
|
|
53
|
+
tslib_1.__exportStar(require("./UserChange"), exports);
|
|
54
|
+
tslib_1.__exportStar(require("./AddRefSeqAliasesChange"), exports);
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Changes/index.ts"],"names":[],"mappings":";;;;AAAA,iGAA6F;AAC7F,mFAA+E;AAC/E,2EAAuE;AACvE,yDAAqD;AACrD,2EAAuE;AACvE,qEAAiE;AACjE,iEAA6D;AAC7D,+DAA2D;AAC3D,yDAAqD;AACrD,qEAAiE;AACjE,2EAAuE;AACvE,2DAAuD;AACvD,+DAA2D;AAC3D,iDAA6C;AAC7C,6CAAyC;AACzC,6CAAyC;AAE5B,QAAA,OAAO,GAAG;IACrB,oCAAoC,EAApC,2EAAoC;IACpC,yBAAyB,EAAzB,qDAAyB;IACzB,6BAA6B,EAA7B,6DAA6B;IAC7B,gBAAgB,EAAhB,mCAAgB;IAChB,yBAAyB,EAAzB,qDAAyB;IACzB,oBAAoB,EAApB,2CAAoB;IACpB,mBAAmB,EAAnB,yCAAmB;IACnB,gBAAgB,EAAhB,mCAAgB;IAChB,sBAAsB,EAAtB,+CAAsB;IACtB,yBAAyB,EAAzB,qDAAyB;IACzB,iBAAiB,EAAjB,qCAAiB;IACjB,mBAAmB,EAAnB,yCAAmB;IACnB,YAAY,EAAZ,2BAAY;IACZ,UAAU,EAAV,uBAAU;IACV,UAAU,EAAV,uBAAU;IACV,sBAAsB,EAAtB,+CAAsB;CACvB,CAAA;AAED,iFAAsD;AACtD,sEAA2C;AAC3C,0EAA+C;AAC/C,6DAAkC;AAClC,sEAA2C;AAC3C,iEAAsC;AACtC,gEAAqC;AACrC,6DAAkC;AAClC,mEAAwC;AACxC,sEAA2C;AAC3C,8DAAmC;AACnC,gEAAqC;AACrC,yDAA8B;AAC9B,uDAA4B;AAC5B,uDAA4B;AAC5B,mEAAwC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Check } from '@apollo-annotation/common';
|
|
2
|
+
import { AnnotationFeatureSnapshot, CheckResultSnapshot } from '@apollo-annotation/mst';
|
|
3
|
+
export declare class CDSCheck extends Check {
|
|
4
|
+
name: string;
|
|
5
|
+
version: number;
|
|
6
|
+
default: boolean;
|
|
7
|
+
checkFeature(feature: AnnotationFeatureSnapshot, getSequence: (start: number, end: number) => Promise<string>): Promise<CheckResultSnapshot[]>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CDSCheck = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const common_1 = require("@apollo-annotation/common");
|
|
6
|
+
const util_1 = require("@jbrowse/core/util");
|
|
7
|
+
const bson_objectid_1 = tslib_1.__importDefault(require("bson-objectid"));
|
|
8
|
+
var STOP_CODONS;
|
|
9
|
+
(function (STOP_CODONS) {
|
|
10
|
+
STOP_CODONS[STOP_CODONS["TAG"] = 0] = "TAG";
|
|
11
|
+
STOP_CODONS[STOP_CODONS["TAA"] = 1] = "TAA";
|
|
12
|
+
STOP_CODONS[STOP_CODONS["TGA"] = 2] = "TGA";
|
|
13
|
+
})(STOP_CODONS || (STOP_CODONS = {}));
|
|
14
|
+
const iupacComplements = {
|
|
15
|
+
G: 'C',
|
|
16
|
+
A: 'T',
|
|
17
|
+
T: 'A',
|
|
18
|
+
C: 'G',
|
|
19
|
+
R /* G or A */: 'Y',
|
|
20
|
+
Y /* T or C */: 'R',
|
|
21
|
+
M /* A or C */: 'K',
|
|
22
|
+
K /* G or T */: 'M',
|
|
23
|
+
S /* G or C */: 'S',
|
|
24
|
+
W /* A or T */: 'W',
|
|
25
|
+
H /* A or C or T */: 'D',
|
|
26
|
+
B /* G or T or C */: 'V',
|
|
27
|
+
V /* G or C or A */: 'B',
|
|
28
|
+
D /* G or A or T */: 'H',
|
|
29
|
+
N /* G or A or T or C */: 'N',
|
|
30
|
+
};
|
|
31
|
+
function reverseComplement(dna) {
|
|
32
|
+
const complement = [];
|
|
33
|
+
for (const nt of dna) {
|
|
34
|
+
const rc = iupacComplements[nt.toUpperCase()];
|
|
35
|
+
if (rc === undefined) {
|
|
36
|
+
throw new TypeError(`Cannot complement nucleotide: "${nt}"`);
|
|
37
|
+
}
|
|
38
|
+
if (nt === nt.toLowerCase()) {
|
|
39
|
+
complement.push(rc.toLowerCase());
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
complement.push(rc);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return complement.reverse().join('');
|
|
46
|
+
}
|
|
47
|
+
async function getCDSSequence(cdsLocation, strand, getSequence) {
|
|
48
|
+
const sequences = await Promise.all(cdsLocation.map(({ max, min }) => getSequence(min, max)));
|
|
49
|
+
if (strand === -1) {
|
|
50
|
+
return sequences.map((seq) => reverseComplement(seq)).join('');
|
|
51
|
+
}
|
|
52
|
+
return sequences.join('');
|
|
53
|
+
}
|
|
54
|
+
function splitSequenceInCodons(cds) {
|
|
55
|
+
const codons = [];
|
|
56
|
+
for (let i = 0; i <= cds.length - 3; i += 3) {
|
|
57
|
+
codons.push(cds.slice(i, i + 3));
|
|
58
|
+
}
|
|
59
|
+
return codons;
|
|
60
|
+
}
|
|
61
|
+
function getOriginalCodonLocation(cdsLocation, strand, index) {
|
|
62
|
+
let lengthToStart = index * 3;
|
|
63
|
+
let lengthToEnd = lengthToStart + 3;
|
|
64
|
+
let startLocation = undefined, endLocation = undefined;
|
|
65
|
+
for (const loc of cdsLocation) {
|
|
66
|
+
const locLength = loc.max - loc.min;
|
|
67
|
+
if (startLocation === undefined && locLength > lengthToStart) {
|
|
68
|
+
startLocation = loc.min + lengthToStart;
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
lengthToStart -= locLength;
|
|
72
|
+
}
|
|
73
|
+
if (endLocation === undefined && locLength > lengthToEnd) {
|
|
74
|
+
endLocation = loc.min + lengthToEnd;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
lengthToEnd -= locLength;
|
|
78
|
+
}
|
|
79
|
+
if (startLocation !== undefined && endLocation !== undefined) {
|
|
80
|
+
return [startLocation, endLocation];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
async function checkMRNA(feature, getSequence) {
|
|
86
|
+
const checkResults = [];
|
|
87
|
+
const { _id, max, min, refSeq, strand } = feature;
|
|
88
|
+
const cdsLocations = getCDSLocations(feature);
|
|
89
|
+
if (!cdsLocations) {
|
|
90
|
+
return checkResults;
|
|
91
|
+
}
|
|
92
|
+
const ids = [_id];
|
|
93
|
+
for (const cdsLocation of cdsLocations) {
|
|
94
|
+
const sequence = await getCDSSequence(cdsLocation, strand, getSequence);
|
|
95
|
+
const codons = splitSequenceInCodons(sequence);
|
|
96
|
+
if (sequence.length % 3 === 0) {
|
|
97
|
+
const lastCodon = codons.pop(); // Last codon is supposed to be a stop
|
|
98
|
+
if (lastCodon && !(lastCodon.toUpperCase() in STOP_CODONS)) {
|
|
99
|
+
checkResults.push({
|
|
100
|
+
_id: new bson_objectid_1.default().toHexString(),
|
|
101
|
+
name: 'MissingStopCodonCheck',
|
|
102
|
+
ids,
|
|
103
|
+
refSeq: refSeq.toString(),
|
|
104
|
+
start: max,
|
|
105
|
+
end: max,
|
|
106
|
+
message: `Feature "${_id}" is missing a stop codon`,
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
checkResults.push({
|
|
112
|
+
_id: new bson_objectid_1.default().toHexString(),
|
|
113
|
+
name: 'MultipleOfThreeCheck',
|
|
114
|
+
ids,
|
|
115
|
+
refSeq: refSeq.toString(),
|
|
116
|
+
start: min,
|
|
117
|
+
end: max,
|
|
118
|
+
message: `The coding sequence for feature "${_id}" is not a multiple of three`,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
for (const [idx, codon] of codons.entries()) {
|
|
122
|
+
const location = getOriginalCodonLocation(cdsLocation, strand, idx);
|
|
123
|
+
if (location && codon.toUpperCase() in STOP_CODONS) {
|
|
124
|
+
const [codonStart, codonEnd] = location;
|
|
125
|
+
checkResults.push({
|
|
126
|
+
_id: new bson_objectid_1.default().toHexString(),
|
|
127
|
+
name: 'InternalStopCodonCheck',
|
|
128
|
+
ids,
|
|
129
|
+
refSeq: refSeq.toString(),
|
|
130
|
+
start: codonStart,
|
|
131
|
+
end: codonEnd,
|
|
132
|
+
message: `The coding sequence for feature "${_id}" has an internal stop codon`,
|
|
133
|
+
});
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return checkResults;
|
|
138
|
+
}
|
|
139
|
+
function getCDSLocations(feature) {
|
|
140
|
+
if (feature.type !== 'mRNA') {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const { children, strand } = feature;
|
|
144
|
+
if (!children) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
const cdsChildren = Object.values(children).filter((child) => child.type === 'CDS');
|
|
148
|
+
if (cdsChildren.length === 0) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
const cdsLocations = [];
|
|
152
|
+
for (const cds of cdsChildren) {
|
|
153
|
+
const { max: cdsMax, min: cdsMin } = cds;
|
|
154
|
+
const locs = [];
|
|
155
|
+
for (const child of Object.values(children)) {
|
|
156
|
+
if (child.type !== 'exon') {
|
|
157
|
+
continue;
|
|
158
|
+
}
|
|
159
|
+
const [start, end] = (0, util_1.intersection2)(cdsMin, cdsMax, child.min, child.max);
|
|
160
|
+
if (start !== undefined && end !== undefined) {
|
|
161
|
+
locs.push({ min: start, max: end });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
locs.sort(({ min: a }, { min: b }) => a - b);
|
|
165
|
+
if (strand === -1) {
|
|
166
|
+
locs.reverse();
|
|
167
|
+
}
|
|
168
|
+
let nextPhase = 0;
|
|
169
|
+
const phasedLocs = locs.map((loc) => {
|
|
170
|
+
const phase = nextPhase;
|
|
171
|
+
nextPhase = ((3 - ((loc.max - loc.min - phase + 3) % 3)) % 3);
|
|
172
|
+
return { ...loc, phase };
|
|
173
|
+
});
|
|
174
|
+
cdsLocations.push(phasedLocs);
|
|
175
|
+
}
|
|
176
|
+
return cdsLocations;
|
|
177
|
+
}
|
|
178
|
+
class CDSCheck extends common_1.Check {
|
|
179
|
+
name = 'CDSCheck';
|
|
180
|
+
version = 1;
|
|
181
|
+
default = true;
|
|
182
|
+
async checkFeature(feature, getSequence) {
|
|
183
|
+
if (feature.type === 'mRNA') {
|
|
184
|
+
return checkMRNA(feature, getSequence);
|
|
185
|
+
}
|
|
186
|
+
if (!feature.children) {
|
|
187
|
+
return [];
|
|
188
|
+
}
|
|
189
|
+
const checkResults = [];
|
|
190
|
+
for (const child of Object.values(feature.children)) {
|
|
191
|
+
checkResults.push(...(await this.checkFeature(child, getSequence)));
|
|
192
|
+
}
|
|
193
|
+
return checkResults;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
exports.CDSCheck = CDSCheck;
|
|
197
|
+
//# sourceMappingURL=CDSCheck.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CDSCheck.js","sourceRoot":"","sources":["../../src/Checks/CDSCheck.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CDSCheck';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Checks/index.ts"],"names":[],"mappings":";;;AAAA,qDAA0B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './jwtPayload';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Common/index.ts"],"names":[],"mappings":";;;AAAA,uDAA4B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface JWTPayload {
|
|
2
|
+
username: string;
|
|
3
|
+
email: string;
|
|
4
|
+
role?: 'admin' | 'user' | 'readOnly' | 'none';
|
|
5
|
+
id: string;
|
|
6
|
+
}
|
|
7
|
+
export interface DecodedJWT extends JWTPayload {
|
|
8
|
+
iat: number;
|
|
9
|
+
exp: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function makeUserSessionId(userOrToken: DecodedJWT | string): string;
|
|
12
|
+
export declare function getDecodedToken(token: string): DecodedJWT;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.makeUserSessionId = makeUserSessionId;
|
|
4
|
+
exports.getDecodedToken = getDecodedToken;
|
|
5
|
+
const tslib_1 = require("tslib");
|
|
6
|
+
const jwt_decode_1 = tslib_1.__importDefault(require("jwt-decode"));
|
|
7
|
+
function makeUserSessionId(userOrToken) {
|
|
8
|
+
const user = typeof userOrToken === 'string'
|
|
9
|
+
? (0, jwt_decode_1.default)(userOrToken)
|
|
10
|
+
: userOrToken;
|
|
11
|
+
return `${user.id}-${user.iat}`;
|
|
12
|
+
}
|
|
13
|
+
function getDecodedToken(token) {
|
|
14
|
+
return (0, jwt_decode_1.default)(token);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=jwtPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwtPayload.js","sourceRoot":"","sources":["../../src/Common/jwtPayload.ts"],"names":[],"mappings":";;AAcA,8CAMC;AAED,0CAEC;;AAxBD,oEAAkC;AAclC,SAAgB,iBAAiB,CAAC,WAAgC;IAChE,MAAM,IAAI,GACR,OAAO,WAAW,KAAK,QAAQ;QAC7B,CAAC,CAAC,IAAA,oBAAS,EAAa,WAAW,CAAC;QACpC,CAAC,CAAC,WAAW,CAAA;IACjB,OAAO,GAAG,IAAI,CAAC,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,CAAA;AACjC,CAAC;AAED,SAAgB,eAAe,CAAC,KAAa;IAC3C,OAAO,IAAA,oBAAS,EAAa,KAAK,CAAC,CAAA;AACrC,CAAC"}
|