@sjcrh/proteinpaint-front 2.214.0 → 2.216.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/bundles.tgz CHANGED
Binary file
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sjcrh/proteinpaint-front",
3
- "version": "2.214.0",
3
+ "version": "2.216.0",
4
4
  "browser": "src/app.js",
5
5
  "main": "src/index.js",
6
6
  "bin": "init.js",
@@ -14,7 +14,7 @@
14
14
  "test:integration": "echo 'TODO: front integration tests'"
15
15
  },
16
16
  "devDependencies": {
17
- "@sjcrh/proteinpaint-client": "2.214.0",
17
+ "@sjcrh/proteinpaint-client": "2.216.0",
18
18
  "webpack": "^5.76.0",
19
19
  "webpack-cli": "^4.9.2",
20
20
  "webpack-node-externals": "^3.0.0"
@@ -32,5 +32,5 @@
32
32
  "url": "https://github.com/stjude/proteinpaint",
33
33
  "directory": "front"
34
34
  },
35
- "_buildTime": "2026-09-28T20:05:27Z"
35
+ "_buildTime": "2026-10-03T02:09:11Z"
36
36
  }
@@ -47,6 +47,7 @@
47
47
  },
48
48
  {
49
49
  "label": "Remote BCF file",
50
+ "configFeature": "ALLOW_remotefilefromurl",
50
51
  "download": "https://proteinpaint.stjude.org/ppdemo/hg38/bcf/bcfDemoFiles.tar.gz",
51
52
  "message": "If the index file is not available at the same URL or named differently, please include <code>.indexURL</code> in the BCF object.",
52
53
  "urlparam": "?genome=hg38&gene=p53&mds3bcfurl=remote,https://proteinpaint.stjude.org/ppdemo/hg38/bcf/test.bcf.gz",
@@ -299,6 +299,7 @@
299
299
  },
300
300
  {
301
301
  "label": "Remote File",
302
+ "configFeature": "ALLOW_remotefilefromurl",
302
303
  "urlparam": "?block=on&genome=hg19&bedjurl=Remote%20file,https://hgdownload.soe.ucsc.edu/gbdb/hg19/knownGene.bb",
303
304
  "runargs": {
304
305
  "parseurl": true,
@@ -67,6 +67,7 @@
67
67
  },
68
68
  {
69
69
  "label": "Remote File",
70
+ "configFeature": "ALLOW_remotefilefromurl",
70
71
  "urlparam": "?block=on&genome=hg19&bigwigurl=BigWig%20remote%20file,https://hgdownload.soe.ucsc.edu/goldenPath/hg19/phyloP100way/hg19.100way.phyloP100way.bw",
71
72
  "runargs":{
72
73
  "parseurl": true,
@@ -158,16 +158,6 @@
158
158
  "sandboxJson":"arc",
159
159
  "searchterms": []
160
160
  },
161
- {
162
- "type": "card",
163
- "name": "ASE",
164
- "section": "tracks",
165
- "ribbon": {"text": "beta"},
166
- "description": "Allele-specific expression analysis",
167
- "image": "https://proteinpaint.stjude.org/ppdemo/images/ase-square.png",
168
- "sandboxJson": "ase",
169
- "searchterms": ["Allele-specific gene expression"]
170
- },
171
161
  {
172
162
  "type": "card",
173
163
  "name": "Gene Fusion",
package/src/index.js CHANGED
@@ -1 +1,45 @@
1
- export { runproteinpaint } from '@sjcrh/proteinpaint-client'
1
+ import { runproteinpaint } from '@sjcrh/proteinpaint-client'
2
+ export { runproteinpaint }
3
+
4
+ // this entry is only bundled as the PP server's /bin/proteinpaint.js, and so
5
+ // the startup check of this page's client version against the served bundle applies
6
+ runproteinpaint.enableBundleCheck?.()
7
+ mayRetryChunkLoads()
8
+
9
+ /*
10
+ Chunk filenames have a content hash (see webpack.config.js). A chunk request may fail when:
11
+ - a new deployment has replaced the chunks that an already loaded page expects, or
12
+ - during a rolling deployment, an updated page requests a new chunk from a host that
13
+ still serves the previous version
14
+
15
+ Retry a failed chunk load, which may reach an updated host in the second case,
16
+ then notify the user if it still fails.
17
+ */
18
+ function mayRetryChunkLoads() {
19
+ // __webpack_require__ is replaced by webpack with its runtime, which has
20
+ // .e() to load a chunk and .u() to get a chunk's filename
21
+ if (typeof __webpack_require__ != 'function' || !__webpack_require__.e || !__webpack_require__.u) return
22
+ const ensureChunk = __webpack_require__.e
23
+ const getChunkFilename = __webpack_require__.u
24
+ const retryDelays = [1000, 3000] // milliseconds
25
+ const retries = {} // {chunkId: number of retries}
26
+
27
+ // a retried chunk URL has a query parameter, so that a failed response is not reused from a cache
28
+ __webpack_require__.u = chunkId => getChunkFilename(chunkId) + (retries[chunkId] ? `?retry=${retries[chunkId]}` : '')
29
+
30
+ __webpack_require__.e = async (chunkId, ...args) => {
31
+ for (let i = 0; ; i++) {
32
+ try {
33
+ return await ensureChunk(chunkId, ...args)
34
+ } catch (e) {
35
+ if (e?.name != 'ChunkLoadError') throw e
36
+ if (i >= retryDelays.length) {
37
+ runproteinpaint.onChunkLoadError?.(e)
38
+ throw e
39
+ }
40
+ retries[chunkId] = i + 1
41
+ await new Promise(resolve => setTimeout(resolve, retryDelays[i]))
42
+ }
43
+ }
44
+ }
45
+ }
@@ -1,99 +0,0 @@
1
- {
2
- "ppcalls": [
3
- {
4
- "download":"https://proteinpaint.stjude.org/ppdemo/hg38/ase/aseDemoData.tar.gz",
5
- "runargs": {
6
- "parseurl": true,
7
- "block": true,
8
- "nobox": 1,
9
- "noheader": 1,
10
- "genome": "hg38",
11
- "position": "chr5:1252462-1297568",
12
- "nativetracks": "RefGene",
13
- "tracks": [{
14
- "type": "mdssvcnv",
15
- "name": "ASE Demo",
16
- "checkvcf": {
17
- "file": "proteinpaint_demo/hg38/ase/vcf.gz"
18
- },
19
- "checkrnabam": {
20
- "hetsnp_minbaf": 0.2,
21
- "hetsnp_maxbaf": 0.8,
22
- "samples": {
23
- "sample1": {
24
- "file": "proteinpaint_demo/hg38/ase/sample1.bam",
25
- "totalreads": 172048689,
26
- "pairedend": true
27
- },
28
- "sample2": {
29
- "file": "proteinpaint_demo/hg38/ase/sample2.bam",
30
- "totalreads": 151710239,
31
- "pairedend": true
32
- },
33
- "sample3": {
34
- "file": "proteinpaint_demo/hg38/ase/sample3.bam",
35
- "totalreads": 167864903,
36
- "pairedend": true
37
- },
38
- "sample4": {
39
- "file": "proteinpaint_demo/hg38/ase/sample4.bam",
40
- "totalreads": 153196442,
41
- "pairedend": true
42
- },
43
- "sample12": {
44
- "file": "proteinpaint_demo/hg38/ase/sample12.bam",
45
- "totalreads": 155650314,
46
- "pairedend": true
47
- },
48
- "sample5": {
49
- "file": "proteinpaint_demo/hg38/ase/sample5.bam",
50
- "totalreads": 144649042,
51
- "pairedend": true
52
- },
53
- "sample6": {
54
- "file": "proteinpaint_demo/hg38/ase/sample6.bam",
55
- "totalreads": 170516947,
56
- "pairedend": true
57
- },
58
- "sample7": {
59
- "file": "proteinpaint_demo/hg38/ase/sample7.bam",
60
- "totalreads": 167971047,
61
- "pairedend": true
62
- },
63
- "sample8": {
64
- "file": "proteinpaint_demo/hg38/ase/sample8.bam",
65
- "totalreads": 137990338,
66
- "pairedend": true
67
- },
68
- "sample9": {
69
- "file": "proteinpaint_demo/hg38/ase/sample9.bam",
70
- "totalreads": 150401722,
71
- "pairedend": true
72
- },
73
- "sample10": {
74
- "file": "proteinpaint_demo/hg38/ase/sample10.bam",
75
- "totalreads": 131681552,
76
- "pairedend": true
77
- },
78
- "sample11": {
79
- "file": "proteinpaint_demo/hg38/ase/sample11.bam",
80
- "totalreads": 150240544,
81
- "pairedend": true
82
- }
83
- }
84
- }
85
- }]
86
- },
87
- "testSpec": {
88
- "timeout": 7000,
89
- "expected": { "rect": 5, "line": 10 }
90
- }
91
- }
92
- ],
93
- "buttons": [
94
- {
95
- "name": "Documentation",
96
- "link": "https://github.com/stjude/proteinpaint/wiki/Tracks#Track-ASE-single-sample"
97
- }
98
- ]
99
- }