@jbrowse/plugin-legacy-jbrowse 1.7.11 → 2.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 (91) hide show
  1. package/dist/JBrowse1Connection/configSchema.js +18 -28
  2. package/dist/JBrowse1Connection/configSchema.js.map +1 -0
  3. package/dist/JBrowse1Connection/index.js +10 -22
  4. package/dist/JBrowse1Connection/index.js.map +1 -0
  5. package/dist/JBrowse1Connection/jb1ConfigLoad.js +387 -501
  6. package/dist/JBrowse1Connection/jb1ConfigLoad.js.map +1 -0
  7. package/dist/JBrowse1Connection/jb1ConfigParse.js +414 -435
  8. package/dist/JBrowse1Connection/jb1ConfigParse.js.map +1 -0
  9. package/dist/JBrowse1Connection/jb1ToJb2.js +405 -546
  10. package/dist/JBrowse1Connection/jb1ToJb2.js.map +1 -0
  11. package/dist/JBrowse1Connection/model.js +49 -57
  12. package/dist/JBrowse1Connection/model.js.map +1 -0
  13. package/dist/JBrowse1Connection/types.js +2 -4
  14. package/dist/JBrowse1Connection/types.js.map +1 -0
  15. package/dist/JBrowse1Connection/util.js +123 -130
  16. package/dist/JBrowse1Connection/util.js.map +1 -0
  17. package/dist/JBrowse1TextSeachAdapter/HttpMap.js +181 -326
  18. package/dist/JBrowse1TextSeachAdapter/HttpMap.js.map +1 -0
  19. package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js +164 -185
  20. package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js.map +1 -0
  21. package/dist/JBrowse1TextSeachAdapter/configSchema.js +20 -33
  22. package/dist/JBrowse1TextSeachAdapter/configSchema.js.map +1 -0
  23. package/dist/JBrowse1TextSeachAdapter/index.js +10 -22
  24. package/dist/JBrowse1TextSeachAdapter/index.js.map +1 -0
  25. package/dist/NCListAdapter/NCListAdapter.js +164 -224
  26. package/dist/NCListAdapter/NCListAdapter.js.map +1 -0
  27. package/dist/NCListAdapter/NCListFeature.js +68 -125
  28. package/dist/NCListAdapter/NCListFeature.js.map +1 -0
  29. package/dist/NCListAdapter/configSchema.js +17 -26
  30. package/dist/NCListAdapter/configSchema.js.map +1 -0
  31. package/dist/NCListAdapter/index.js +8 -14
  32. package/dist/NCListAdapter/index.js.map +1 -0
  33. package/dist/index.js +97 -116
  34. package/dist/index.js.map +1 -0
  35. package/esm/JBrowse1Connection/configSchema.d.ts +2 -0
  36. package/esm/JBrowse1Connection/configSchema.js +18 -0
  37. package/esm/JBrowse1Connection/configSchema.js.map +1 -0
  38. package/esm/JBrowse1Connection/index.d.ts +2 -0
  39. package/esm/JBrowse1Connection/index.js +3 -0
  40. package/esm/JBrowse1Connection/index.js.map +1 -0
  41. package/esm/JBrowse1Connection/jb1ConfigLoad.d.ts +36 -0
  42. package/esm/JBrowse1Connection/jb1ConfigLoad.js +281 -0
  43. package/esm/JBrowse1Connection/jb1ConfigLoad.js.map +1 -0
  44. package/esm/JBrowse1Connection/jb1ConfigParse.d.ts +11 -0
  45. package/esm/JBrowse1Connection/jb1ConfigParse.js +377 -0
  46. package/esm/JBrowse1Connection/jb1ConfigParse.js.map +1 -0
  47. package/esm/JBrowse1Connection/jb1ToJb2.d.ts +49 -0
  48. package/esm/JBrowse1Connection/jb1ToJb2.js +424 -0
  49. package/esm/JBrowse1Connection/jb1ToJb2.js.map +1 -0
  50. package/esm/JBrowse1Connection/model.d.ts +15 -0
  51. package/esm/JBrowse1Connection/model.js +44 -0
  52. package/esm/JBrowse1Connection/model.js.map +1 -0
  53. package/esm/JBrowse1Connection/types.d.ts +91 -0
  54. package/esm/JBrowse1Connection/types.js +2 -0
  55. package/esm/JBrowse1Connection/types.js.map +1 -0
  56. package/esm/JBrowse1Connection/util.d.ts +26 -0
  57. package/esm/JBrowse1Connection/util.js +136 -0
  58. package/esm/JBrowse1Connection/util.js.map +1 -0
  59. package/esm/JBrowse1TextSeachAdapter/HttpMap.d.ts +39 -0
  60. package/esm/JBrowse1TextSeachAdapter/HttpMap.js +89 -0
  61. package/esm/JBrowse1TextSeachAdapter/HttpMap.js.map +1 -0
  62. package/esm/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.d.ts +33 -0
  63. package/esm/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js +67 -0
  64. package/esm/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.js.map +1 -0
  65. package/esm/JBrowse1TextSeachAdapter/configSchema.d.ts +2 -0
  66. package/esm/JBrowse1TextSeachAdapter/configSchema.js +20 -0
  67. package/esm/JBrowse1TextSeachAdapter/configSchema.js.map +1 -0
  68. package/esm/JBrowse1TextSeachAdapter/index.d.ts +2 -0
  69. package/esm/JBrowse1TextSeachAdapter/index.js +3 -0
  70. package/esm/JBrowse1TextSeachAdapter/index.js.map +1 -0
  71. package/esm/NCListAdapter/NCListAdapter.d.ts +31 -0
  72. package/esm/NCListAdapter/NCListAdapter.js +62 -0
  73. package/esm/NCListAdapter/NCListAdapter.js.map +1 -0
  74. package/esm/NCListAdapter/NCListFeature.d.ts +31 -0
  75. package/esm/NCListAdapter/NCListFeature.js +78 -0
  76. package/esm/NCListAdapter/NCListFeature.js.map +1 -0
  77. package/esm/NCListAdapter/configSchema.d.ts +2 -0
  78. package/esm/NCListAdapter/configSchema.js +16 -0
  79. package/esm/NCListAdapter/configSchema.js.map +1 -0
  80. package/esm/NCListAdapter/index.d.ts +1 -0
  81. package/esm/NCListAdapter/index.js +2 -0
  82. package/esm/NCListAdapter/index.js.map +1 -0
  83. package/esm/index.d.ts +6 -0
  84. package/esm/index.js +50 -0
  85. package/esm/index.js.map +1 -0
  86. package/package.json +15 -6
  87. package/dist/JBrowse1TextSeachAdapter/HttpMap.test.js +0 -118
  88. package/dist/JBrowse1TextSeachAdapter/JBrowse1TextSearchAdapter.test.js +0 -98
  89. package/dist/NCListAdapter/NCListAdapter.test.js +0 -108
  90. package/dist/declare.d.js +0 -1
  91. package/dist/index.test.js +0 -44
@@ -0,0 +1,31 @@
1
+ import { Feature, SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature';
2
+ /**
3
+ * wrapper to adapt nclist features to act like jbrowse 2 features
4
+ */
5
+ export default class NCListFeature implements Feature {
6
+ private ncFeature;
7
+ private parentHandle?;
8
+ private uniqueId;
9
+ constructor(ncFeature: any, parent?: Feature, id?: string);
10
+ set(): void;
11
+ jb2TagToJb1Tag(tag: string): string;
12
+ jb1TagToJb2Tag(tag: string): string;
13
+ get(attrName: string): any;
14
+ /**
15
+ * Get an array listing which data keys are present in this feature.
16
+ */
17
+ tags(): string[];
18
+ /**
19
+ * Get the unique ID of this feature.
20
+ */
21
+ id(): string;
22
+ /**
23
+ * Get this feature's parent feature, or undefined if none.
24
+ */
25
+ parent(): Feature | undefined;
26
+ /**
27
+ * Get an array of child features, or undefined if none.
28
+ */
29
+ children(): Feature[] | undefined;
30
+ toJSON(): SimpleFeatureSerialized;
31
+ }
@@ -0,0 +1,78 @@
1
+ const jb2ToJb1 = { refName: 'seq_id' };
2
+ const jb1ToJb2 = { seq_id: 'refName' };
3
+ /**
4
+ * wrapper to adapt nclist features to act like jbrowse 2 features
5
+ */
6
+ export default class NCListFeature {
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ constructor(ncFeature, parent, id) {
9
+ this.ncFeature = ncFeature;
10
+ this.uniqueId = id || ncFeature.id();
11
+ this.parentHandle = parent;
12
+ }
13
+ set() {
14
+ throw new Error('not implemented');
15
+ }
16
+ jb2TagToJb1Tag(tag) {
17
+ // @ts-ignore
18
+ const mapped = jb2ToJb1[tag] || tag;
19
+ return mapped.toLowerCase();
20
+ }
21
+ jb1TagToJb2Tag(tag) {
22
+ const t = tag.toLowerCase();
23
+ // @ts-ignore
24
+ const mapped = jb1ToJb2[t] || t;
25
+ return mapped;
26
+ }
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ get(attrName) {
29
+ const attr = this.ncFeature.get(this.jb2TagToJb1Tag(attrName));
30
+ if (attr && attrName === 'subfeatures') {
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+ return attr.map((subfeature) => new NCListFeature(subfeature, this));
33
+ }
34
+ return attr;
35
+ }
36
+ /**
37
+ * Get an array listing which data keys are present in this feature.
38
+ */
39
+ tags() {
40
+ return this.ncFeature.tags().map((t) => this.jb1TagToJb2Tag(t));
41
+ }
42
+ /**
43
+ * Get the unique ID of this feature.
44
+ */
45
+ id() {
46
+ return this.uniqueId;
47
+ }
48
+ /**
49
+ * Get this feature's parent feature, or undefined if none.
50
+ */
51
+ parent() {
52
+ return this.parentHandle;
53
+ }
54
+ /**
55
+ * Get an array of child features, or undefined if none.
56
+ */
57
+ children() {
58
+ return this.get('subfeatures');
59
+ }
60
+ toJSON() {
61
+ const data = { uniqueId: this.id() };
62
+ this.ncFeature.tags().forEach((tag) => {
63
+ const mappedTag = this.jb1TagToJb2Tag(tag);
64
+ const value = this.ncFeature.get(tag);
65
+ if (mappedTag === 'subfeatures') {
66
+ data.subfeatures = (value || []).map((f) => {
67
+ // note: was new NCListFeature(f, `${this.id()}-${i}`, this).toJSON()
68
+ return new NCListFeature(f, this).toJSON();
69
+ });
70
+ }
71
+ else {
72
+ data[mappedTag] = value;
73
+ }
74
+ });
75
+ return data;
76
+ }
77
+ }
78
+ //# sourceMappingURL=NCListFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NCListFeature.js","sourceRoot":"","sources":["../../src/NCListAdapter/NCListFeature.ts"],"names":[],"mappings":"AAKA,MAAM,QAAQ,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAA;AAEtC,MAAM,QAAQ,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,CAAA;AAEtC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAKhC,8DAA8D;IAC9D,YAAoB,SAAc,EAAE,MAAgB,EAAE,EAAW;QAA7C,cAAS,GAAT,SAAS,CAAK;QAChC,IAAI,CAAC,QAAQ,GAAG,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE,CAAA;QACpC,IAAI,CAAC,YAAY,GAAG,MAAM,CAAA;IAC5B,CAAC;IAED,GAAG;QACD,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,aAAa;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAA;QACnC,OAAO,MAAM,CAAC,WAAW,EAAE,CAAA;IAC7B,CAAC;IAED,cAAc,CAAC,GAAW;QACxB,MAAM,CAAC,GAAG,GAAG,CAAC,WAAW,EAAE,CAAA;QAC3B,aAAa;QACb,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;QAC/B,OAAO,MAAM,CAAA;IACf,CAAC;IAED,8DAA8D;IAC9D,GAAG,CAAC,QAAgB;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAA;QAC9D,IAAI,IAAI,IAAI,QAAQ,KAAK,aAAa,EAAE;YACtC,8DAA8D;YAC9D,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,UAAe,EAAE,EAAE,CAAC,IAAI,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC,CAAA;SAC1E;QACD,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;OAEG;IACH,IAAI;QACF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAA;IACzE,CAAC;IAED;;OAEG;IACH,EAAE;QACA,OAAO,IAAI,CAAC,QAAQ,CAAA;IACtB,CAAC;IAED;;OAEG;IACH,MAAM;QACJ,OAAO,IAAI,CAAC,YAAY,CAAA;IAC1B,CAAC;IAED;;OAEG;IACH,QAAQ;QACN,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAA;IAChC,CAAC;IAED,MAAM;QACJ,MAAM,IAAI,GAA4B,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,CAAA;QAC7D,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAA;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;YACrC,IAAI,SAAS,KAAK,aAAa,EAAE;gBAC/B,IAAI,CAAC,WAAW,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAU,EAAE,EAAE;oBAClD,qEAAqE;oBACrE,OAAO,IAAI,aAAa,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,MAAM,EAAE,CAAA;gBAC5C,CAAC,CAAC,CAAA;aACH;iBAAM;gBACL,IAAI,CAAC,SAAS,CAAC,GAAG,KAAK,CAAA;aACxB;QACH,CAAC,CAAC,CAAA;QACF,OAAO,IAAI,CAAA;IACb,CAAC;CACF"}
@@ -0,0 +1,2 @@
1
+ declare const _default: import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
2
+ export default _default;
@@ -0,0 +1,16 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ export default ConfigurationSchema('NCListAdapter', {
3
+ rootUrlTemplate: {
4
+ type: 'fileLocation',
5
+ defaultValue: {
6
+ uri: '/path/to/my/{refseq}/trackData.json',
7
+ locationType: 'UriLocation',
8
+ },
9
+ },
10
+ refNames: {
11
+ type: 'stringArray',
12
+ defaultValue: [],
13
+ description: 'List of refNames used by the NCList used for aliasing',
14
+ },
15
+ }, { explicitlyTyped: true });
16
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/NCListAdapter/configSchema.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE,eAAe,mBAAmB,CAChC,eAAe,EACf;IACE,eAAe,EAAE;QACf,IAAI,EAAE,cAAc;QACpB,YAAY,EAAE;YACZ,GAAG,EAAE,qCAAqC;YAC1C,YAAY,EAAE,aAAa;SAC5B;KACF;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,aAAa;QACnB,YAAY,EAAE,EAAE;QAChB,WAAW,EAAE,uDAAuD;KACrE;CACF,EACD,EAAE,eAAe,EAAE,IAAI,EAAE,CAC1B,CAAA"}
@@ -0,0 +1 @@
1
+ export { default as configSchema } from './configSchema';
@@ -0,0 +1,2 @@
1
+ export { default as configSchema } from './configSchema';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/NCListAdapter/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAA"}
package/esm/index.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import Plugin from '@jbrowse/core/Plugin';
2
+ import PluginManager from '@jbrowse/core/PluginManager';
3
+ export default class LegacyJBrowsePlugin extends Plugin {
4
+ name: string;
5
+ install(pluginManager: PluginManager): void;
6
+ }
package/esm/index.js ADDED
@@ -0,0 +1,50 @@
1
+ import AdapterType from '@jbrowse/core/pluggableElementTypes/AdapterType';
2
+ import TextSearchAdapterType from '@jbrowse/core/pluggableElementTypes/TextSearchAdapterType';
3
+ import ConnectionType from '@jbrowse/core/pluggableElementTypes/ConnectionType';
4
+ import Plugin from '@jbrowse/core/Plugin';
5
+ import { configSchema as ncListAdapterConfigSchema } from './NCListAdapter';
6
+ import { AdapterClass as JBrowse1TextSearchAdapterClass, configSchema as jbrowse1AdapterConfigSchema, } from './JBrowse1TextSeachAdapter';
7
+ import { getFileName } from '@jbrowse/core/util/tracks';
8
+ import { configSchema as jbrowse1ConfigSchema, modelFactory as jbrowse1ModelFactory, } from './JBrowse1Connection';
9
+ export default class LegacyJBrowsePlugin extends Plugin {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.name = 'LegacyJBrowsePlugin';
13
+ }
14
+ install(pluginManager) {
15
+ pluginManager.addAdapterType(() => new AdapterType({
16
+ name: 'NCListAdapter',
17
+ configSchema: ncListAdapterConfigSchema,
18
+ getAdapterClass: () => import('./NCListAdapter/NCListAdapter').then(r => r.default),
19
+ }));
20
+ pluginManager.addToExtensionPoint('Core-guessAdapterForLocation', (adapterGuesser) => {
21
+ return (file, index, adapterHint) => {
22
+ const regexGuess = /trackData.jsonz?$/i;
23
+ const adapterName = 'NCListAdapter';
24
+ const fileName = getFileName(file);
25
+ if (regexGuess.test(fileName) || adapterHint === adapterName) {
26
+ return {
27
+ type: adapterName,
28
+ rootUrlTemplate: file,
29
+ };
30
+ }
31
+ return adapterGuesser(file, index, adapterHint);
32
+ };
33
+ });
34
+ pluginManager.addTextSearchAdapterType(() => new TextSearchAdapterType({
35
+ name: 'JBrowse1TextSearchAdapter',
36
+ configSchema: jbrowse1AdapterConfigSchema,
37
+ AdapterClass: JBrowse1TextSearchAdapterClass,
38
+ description: 'A JBrowse 1 text search adapter',
39
+ }));
40
+ pluginManager.addConnectionType(() => new ConnectionType({
41
+ name: 'JBrowse1Connection',
42
+ configSchema: jbrowse1ConfigSchema,
43
+ stateModel: jbrowse1ModelFactory(pluginManager),
44
+ displayName: 'JBrowse 1 Data',
45
+ description: 'A JBrowse 1 data directory',
46
+ url: '//jbrowse.org/',
47
+ }));
48
+ }
49
+ }
50
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AACzE,OAAO,qBAAqB,MAAM,2DAA2D,CAAA;AAC7F,OAAO,cAAc,MAAM,oDAAoD,CAAA;AAC/E,OAAO,MAAM,MAAM,sBAAsB,CAAA;AAGzC,OAAO,EAAE,YAAY,IAAI,yBAAyB,EAAE,MAAM,iBAAiB,CAAA;AAC3E,OAAO,EACL,YAAY,IAAI,8BAA8B,EAC9C,YAAY,IAAI,2BAA2B,GAC5C,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAAkB,WAAW,EAAE,MAAM,2BAA2B,CAAA;AAEvE,OAAO,EACL,YAAY,IAAI,oBAAoB,EACpC,YAAY,IAAI,oBAAoB,GACrC,MAAM,sBAAsB,CAAA;AAE7B,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,MAAM;IAAvD;;QACE,SAAI,GAAG,qBAAqB,CAAA;IAwD9B,CAAC;IAtDC,OAAO,CAAC,aAA4B;QAClC,aAAa,CAAC,cAAc,CAC1B,GAAG,EAAE,CACH,IAAI,WAAW,CAAC;YACd,IAAI,EAAE,eAAe;YACrB,YAAY,EAAE,yBAAyB;YACvC,eAAe,EAAE,GAAG,EAAE,CACpB,MAAM,CAAC,+BAA+B,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;SAC/D,CAAC,CACL,CAAA;QACD,aAAa,CAAC,mBAAmB,CAC/B,8BAA8B,EAC9B,CAAC,cAA8B,EAAE,EAAE;YACjC,OAAO,CACL,IAAkB,EAClB,KAAoB,EACpB,WAAoB,EACpB,EAAE;gBACF,MAAM,UAAU,GAAG,oBAAoB,CAAA;gBACvC,MAAM,WAAW,GAAG,eAAe,CAAA;gBACnC,MAAM,QAAQ,GAAG,WAAW,CAAC,IAAI,CAAC,CAAA;gBAClC,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,WAAW,KAAK,WAAW,EAAE;oBAC5D,OAAO;wBACL,IAAI,EAAE,WAAW;wBACjB,eAAe,EAAE,IAAI;qBACtB,CAAA;iBACF;gBACD,OAAO,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE,WAAW,CAAC,CAAA;YACjD,CAAC,CAAA;QACH,CAAC,CACF,CAAA;QAED,aAAa,CAAC,wBAAwB,CACpC,GAAG,EAAE,CACH,IAAI,qBAAqB,CAAC;YACxB,IAAI,EAAE,2BAA2B;YACjC,YAAY,EAAE,2BAA2B;YACzC,YAAY,EAAE,8BAA8B;YAC5C,WAAW,EAAE,iCAAiC;SAC/C,CAAC,CACL,CAAA;QAED,aAAa,CAAC,iBAAiB,CAC7B,GAAG,EAAE,CACH,IAAI,cAAc,CAAC;YACjB,IAAI,EAAE,oBAAoB;YAC1B,YAAY,EAAE,oBAAoB;YAClC,UAAU,EAAE,oBAAoB,CAAC,aAAa,CAAC;YAC/C,WAAW,EAAE,gBAAgB;YAC7B,WAAW,EAAE,4BAA4B;YACzC,GAAG,EAAE,gBAAgB;SACtB,CAAC,CACL,CAAA;IACH,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/plugin-legacy-jbrowse",
3
- "version": "1.7.11",
3
+ "version": "2.0.0",
4
4
  "description": "JBrowse 2 plugin for connecting to and reading JBrowse 1 data",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -20,17 +20,21 @@
20
20
  "main": "dist/index.js",
21
21
  "files": [
22
22
  "dist",
23
- "src"
23
+ "src",
24
+ "esm"
24
25
  ],
25
26
  "scripts": {
26
- "build": "babel src --root-mode upward --out-dir dist --extensions .ts,.js,.tsx,.jsx",
27
+ "build": "npm-run-all build:*",
27
28
  "test": "cd ../..; jest plugins/legacy-jbrowse",
28
29
  "prepublishOnly": "yarn test",
29
30
  "prepack": "yarn build; yarn useDist",
30
31
  "postpack": "yarn useSrc",
31
32
  "useDist": "node ../../scripts/useDist.js",
32
33
  "useSrc": "node ../../scripts/useSrc.js",
33
- "postbuild": "tsc --build tsconfig.build.json"
34
+ "prebuild": "npm run clean",
35
+ "build:esm": "tsc --build tsconfig.build.esm.json",
36
+ "build:es5": "tsc --build tsconfig.build.es5.json",
37
+ "clean": "rimraf dist esm *.tsbuildinfo"
34
38
  },
35
39
  "dependencies": {
36
40
  "@babel/runtime": "^7.17.9",
@@ -42,11 +46,16 @@
42
46
  },
43
47
  "peerDependencies": {
44
48
  "@jbrowse/core": "^1.0.0",
45
- "mobx-state-tree": "3.14.1",
49
+ "mobx": "^6.0.0",
50
+ "mobx-react": "^7.0.0",
51
+ "mobx-state-tree": "^5.0.0",
46
52
  "rxjs": "^6.0.0"
47
53
  },
48
54
  "publishConfig": {
49
55
  "access": "public"
50
56
  },
51
- "gitHead": "5c21beb48a21f08b0091d293f09ac99174c48f77"
57
+ "distModule": "esm/index.js",
58
+ "srcModule": "src/index.ts",
59
+ "module": "esm/index.js",
60
+ "gitHead": "ecc7f5d47351a5ea04bc00f3a6eb6dfb607342e6"
52
61
  }
@@ -1,118 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
-
7
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
-
9
- var _path = _interopRequireDefault(require("path"));
10
-
11
- var _meta = _interopRequireDefault(require("../../test_data/names/meta.json"));
12
-
13
- var _ = _interopRequireDefault(require("../../test_data/names/0.json"));
14
-
15
- var _f = _interopRequireDefault(require("../../test_data/names/f.json"));
16
-
17
- var _HttpMap = _interopRequireDefault(require("./HttpMap"));
18
-
19
- describe('test JBrowse1 hash implementation', function () {
20
- test('read from meta', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
21
- var mockFetch, rootTemplate, spy, hashMap;
22
- return _regenerator.default.wrap(function _callee$(_context) {
23
- while (1) {
24
- switch (_context.prev = _context.next) {
25
- case 0:
26
- mockFetch = function _mockFetch(url) {
27
- var response = {};
28
-
29
- if (url.includes('names/meta.json')) {
30
- response = _meta.default;
31
- }
32
-
33
- return Promise.resolve(new Response(JSON.stringify(response)));
34
- };
35
-
36
- rootTemplate = _path.default.join(__dirname, '..', '..', '..', '..', 'test_data', 'names').replace(/\\/g, '\\\\');
37
- spy = jest.spyOn(global, 'fetch'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
-
39
- spy.mockImplementation(mockFetch);
40
- hashMap = new _HttpMap.default({
41
- url: rootTemplate
42
- });
43
- _context.next = 7;
44
- return hashMap.getBucket('apple');
45
-
46
- case 7:
47
- _context.t0 = expect;
48
- _context.next = 10;
49
- return hashMap.getHashHexCharacters();
50
-
51
- case 10:
52
- _context.t1 = _context.sent;
53
- (0, _context.t0)(_context.t1).toBe(1);
54
- _context.t2 = expect;
55
- _context.next = 15;
56
- return hashMap.getCompress();
57
-
58
- case 15:
59
- _context.t3 = _context.sent;
60
- (0, _context.t2)(_context.t3).toBe(0);
61
-
62
- case 17:
63
- case "end":
64
- return _context.stop();
65
- }
66
- }
67
- }, _callee);
68
- })));
69
- test('get bucket contents', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
70
- var mockFetch, rootTemplate, spy, hashMap;
71
- return _regenerator.default.wrap(function _callee2$(_context2) {
72
- while (1) {
73
- switch (_context2.prev = _context2.next) {
74
- case 0:
75
- mockFetch = function _mockFetch2(url) {
76
- var response = {};
77
-
78
- if (url.includes('names/meta.json')) {
79
- response = _meta.default;
80
- }
81
-
82
- if (url.includes('names/0.json')) {
83
- response = _.default;
84
- }
85
-
86
- if (url.includes('names/f.json')) {
87
- response = _f.default;
88
- }
89
-
90
- return Promise.resolve(new Response(JSON.stringify(response)));
91
- };
92
-
93
- rootTemplate = _path.default.join(__dirname, '..', '..', '..', '..', 'test_data', 'names').replace(/\\/g, '\\\\');
94
- spy = jest.spyOn(global, 'fetch'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
95
-
96
- spy.mockImplementation(mockFetch);
97
- hashMap = new _HttpMap.default({
98
- url: rootTemplate
99
- });
100
- _context2.next = 7;
101
- return hashMap.getBucket('apple');
102
-
103
- case 7:
104
- expect(spy).toHaveBeenLastCalledWith("".concat(rootTemplate, "/0.json"));
105
- _context2.next = 10;
106
- return hashMap.getBucket('apple3');
107
-
108
- case 10:
109
- expect(spy).toHaveBeenLastCalledWith("".concat(rootTemplate, "/f.json"));
110
-
111
- case 11:
112
- case "end":
113
- return _context2.stop();
114
- }
115
- }
116
- }, _callee2);
117
- })));
118
- });
@@ -1,98 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
-
7
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
-
9
- var _BaseResults = _interopRequireDefault(require("@jbrowse/core/TextSearch/BaseResults"));
10
-
11
- var _path = _interopRequireDefault(require("path"));
12
-
13
- var _meta = _interopRequireDefault(require("../../test_data/names/meta.json"));
14
-
15
- var _ = _interopRequireDefault(require("../../test_data/names/0.json"));
16
-
17
- var _f = _interopRequireDefault(require("../../test_data/names/f.json"));
18
-
19
- var _JBrowse1TextSearchAdapter = _interopRequireDefault(require("./JBrowse1TextSearchAdapter"));
20
-
21
- var _configSchema = _interopRequireDefault(require("./configSchema"));
22
-
23
- test('adapter can fetch files from names index', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
24
- var mockFetch, rootTemplate, spy, urlPath, args, adapter, results, results2, test2;
25
- return _regenerator.default.wrap(function _callee$(_context) {
26
- while (1) {
27
- switch (_context.prev = _context.next) {
28
- case 0:
29
- mockFetch = function _mockFetch(url) {
30
- var response = {};
31
-
32
- if (url.includes('names/meta.json')) {
33
- response = _meta.default;
34
- }
35
-
36
- if (url.includes('names/0.json')) {
37
- response = _.default;
38
- }
39
-
40
- if (url.includes('names/f.json')) {
41
- response = _f.default;
42
- }
43
-
44
- return Promise.resolve(new Response(JSON.stringify(response)));
45
- };
46
-
47
- rootTemplate = _path.default.join(__dirname, '..', '..', '..', '..', 'test_data', 'names').replace(/\\/g, '\\\\');
48
- spy = jest.spyOn(global, 'fetch'); // eslint-disable-next-line @typescript-eslint/no-explicit-any
49
-
50
- spy.mockImplementation(mockFetch);
51
- urlPath = decodeURI(new URL("file://".concat(rootTemplate)).href);
52
- args = {
53
- type: 'JBrowse1TextSearchAdapter',
54
- textSearchAdapterId: 'JBrowse1GenerateNamesAdapterTest',
55
- namesIndexLocation: {
56
- uri: urlPath,
57
- locationType: 'UriLocation'
58
- }
59
- }; // create adapter
60
-
61
- adapter = new _JBrowse1TextSearchAdapter.default(_configSchema.default.create(args)); // prefix search
62
-
63
- _context.next = 9;
64
- return adapter.searchIndex({
65
- searchType: 'prefix',
66
- queryString: 'apple'
67
- });
68
-
69
- case 9:
70
- results = _context.sent;
71
- // check results are of type BaseResult for prefix search
72
- expect(results[0] instanceof _BaseResults.default).toBeTruthy();
73
- expect(results[0].getLabel()).toEqual('Apple1');
74
- expect(results[1].getLabel()).toEqual('Apple2');
75
- expect(results[2].getLabel()).toEqual('Apple3'); // exact search
76
-
77
- _context.next = 16;
78
- return adapter.searchIndex({
79
- searchType: 'exact',
80
- queryString: 'apple3'
81
- });
82
-
83
- case 16:
84
- results2 = _context.sent;
85
- // check results are of type location for exact search
86
- expect(results2.length).toEqual(5);
87
- test2 = results2[0];
88
- expect(test2 instanceof _BaseResults.default).toBeTruthy();
89
- expect(test2.getLabel()).toEqual('Apple3');
90
- expect(test2.getLocation()).toEqual('ctgA:17399-23000');
91
-
92
- case 22:
93
- case "end":
94
- return _context.stop();
95
- }
96
- }
97
- }, _callee);
98
- })));
@@ -1,108 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
-
7
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
-
9
- var _fs = require("fs");
10
-
11
- var _path = _interopRequireDefault(require("path"));
12
-
13
- var _url = require("url");
14
-
15
- var _operators = require("rxjs/operators");
16
-
17
- var _NCListAdapter = _interopRequireDefault(require("./NCListAdapter"));
18
-
19
- var _configSchema = _interopRequireDefault(require("./configSchema"));
20
-
21
- function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
22
-
23
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
24
-
25
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
26
-
27
- test('adapter can fetch features from ensembl_genes test set', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
28
- var rootTemplate, args, adapter, features, featuresArray, featuresJsonArray, _iterator, _step, feature;
29
-
30
- return _regenerator.default.wrap(function _callee$(_context) {
31
- while (1) {
32
- switch (_context.prev = _context.next) {
33
- case 0:
34
- rootTemplate = _path.default.join(__dirname, '..', '..', 'test_data', 'ensembl_genes', '{refseq}', 'trackData.json').replace(/\\/g, '\\\\');
35
- _context.next = 3;
36
- return _fs.promises.stat(rootTemplate.replace('{refseq}', '21'));
37
-
38
- case 3:
39
- // will throw if doesnt exist
40
- args = {
41
- refNames: [],
42
- rootUrlTemplate: {
43
- uri: decodeURI(new _url.URL("file://".concat(rootTemplate)).href),
44
- locationType: 'UriLocation'
45
- }
46
- };
47
- adapter = new _NCListAdapter.default(_configSchema.default.create(args));
48
- features = adapter.getFeatures({
49
- assemblyName: 'volvox',
50
- refName: '21',
51
- start: 34960388,
52
- end: 35960388
53
- });
54
- _context.next = 8;
55
- return features.pipe((0, _operators.toArray)()).toPromise();
56
-
57
- case 8:
58
- featuresArray = _context.sent;
59
- expect(featuresArray[0].get('refName')).toBe('21');
60
- expect(featuresArray[0].id()).toBe("test-21,0,0,19,22,0");
61
- featuresJsonArray = featuresArray.map(function (f) {
62
- return f.toJSON();
63
- });
64
- expect(featuresJsonArray.length).toEqual(94);
65
- _iterator = _createForOfIteratorHelper(featuresJsonArray);
66
-
67
- try {
68
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
69
- feature = _step.value;
70
- expect(feature).toMatchSnapshot({
71
- uniqueId: expect.any(String)
72
- });
73
- }
74
- } catch (err) {
75
- _iterator.e(err);
76
- } finally {
77
- _iterator.f();
78
- }
79
-
80
- _context.t0 = expect;
81
- _context.next = 18;
82
- return adapter.hasDataForRefName('ctgA');
83
-
84
- case 18:
85
- _context.t1 = _context.sent;
86
- (0, _context.t0)(_context.t1).toBe(false);
87
- _context.t2 = expect;
88
- _context.next = 23;
89
- return adapter.hasDataForRefName('21');
90
-
91
- case 23:
92
- _context.t3 = _context.sent;
93
- (0, _context.t2)(_context.t3).toBe(true);
94
- _context.t4 = expect;
95
- _context.next = 28;
96
- return adapter.hasDataForRefName('20');
97
-
98
- case 28:
99
- _context.t5 = _context.sent;
100
- (0, _context.t4)(_context.t5).toBe(false);
101
-
102
- case 30:
103
- case "end":
104
- return _context.stop();
105
- }
106
- }
107
- }, _callee);
108
- })));
package/dist/declare.d.js DELETED
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,44 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _PluginManager = _interopRequireDefault(require("@jbrowse/core/PluginManager"));
6
-
7
- var _mobxStateTree = require("mobx-state-tree");
8
-
9
- var _ = _interopRequireDefault(require("."));
10
-
11
- test('plugin in a stock JBrowse', function () {
12
- var originalConsoleWarn = console.warn;
13
- console.warn = jest.fn();
14
- var pluginManager = new _PluginManager.default([new _.default()]);
15
- pluginManager.createPluggableElements();
16
- pluginManager.configure();
17
- console.warn = originalConsoleWarn;
18
- expect(function () {
19
- return pluginManager.addPlugin(new _.default());
20
- }).toThrow(/JBrowse already configured, cannot add plugins/);
21
- var NCListAdapter = pluginManager.getAdapterType('NCListAdapter');
22
- var config = NCListAdapter.configSchema.create({
23
- type: 'NCListAdapter'
24
- });
25
- expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
26
- });
27
- test('test creating a text search adapter', function () {
28
- console.warn = jest.fn();
29
- var pluginManager = new _PluginManager.default([new _.default()]);
30
- pluginManager.createPluggableElements();
31
- pluginManager.configure();
32
- var JB1TextSearchAdapter = pluginManager.getTextSearchAdapterType('JBrowse1TextSearchAdapter');
33
- var config = JB1TextSearchAdapter.configSchema.create({
34
- type: 'JBrowse1TextSearchAdapter',
35
- textSearchAdapterId: 'JBrowse1GenerateNamesAdapterTest',
36
- namesIndexLocation: {
37
- uri: 'names/',
38
- locationType: 'UriLocation'
39
- },
40
- tracks: [],
41
- assemblies: []
42
- });
43
- expect((0, _mobxStateTree.getSnapshot)(config)).toMatchSnapshot();
44
- });