@loveluthien/carta-frontend 6.0.0-dev

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 (148) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.md +34 -0
  2. package/.github/pull_request_template.md +23 -0
  3. package/.github/workflows/continuous_integration.yml +139 -0
  4. package/.github/workflows/deploy.yml +30 -0
  5. package/.husky/pre-commit +16 -0
  6. package/.husky/pre-push +42 -0
  7. package/.prettierignore +1 -0
  8. package/.prettierrc.json +18 -0
  9. package/CHANGELOG.md +363 -0
  10. package/COPYING.md +636 -0
  11. package/README.md +112 -0
  12. package/babel.config.json +10 -0
  13. package/build/ast_wrapper.wasm +0 -0
  14. package/build/carta_computation.wasm +0 -0
  15. package/build/carta_icon_128px.png +0 -0
  16. package/build/carta_logo.png +0 -0
  17. package/build/gsl_wrapper.wasm +0 -0
  18. package/build/index.html +147 -0
  19. package/build/manifest.json +15 -0
  20. package/build/robots.txt +3 -0
  21. package/build/static/css/546.aa44a897.css +1 -0
  22. package/build/static/css/async/359.4d8f6ff7.css +1 -0
  23. package/build/static/css/async/403.ea9edfac.css +1 -0
  24. package/build/static/css/async/462.8bde08e0.css +1 -0
  25. package/build/static/css/index.c1f77b92.css +1 -0
  26. package/build/static/font/blueprint-icons-16.5fb1af27.woff2 +0 -0
  27. package/build/static/font/blueprint-icons-16.79f603d1.woff +0 -0
  28. package/build/static/font/blueprint-icons-16.83d51978.eot +0 -0
  29. package/build/static/font/blueprint-icons-16.af0c342f.ttf +0 -0
  30. package/build/static/font/blueprint-icons-20.83fddc09.ttf +0 -0
  31. package/build/static/font/blueprint-icons-20.9a51bc58.woff +0 -0
  32. package/build/static/font/blueprint-icons-20.d61315fe.eot +0 -0
  33. package/build/static/font/blueprint-icons-20.ebf16e9a.woff2 +0 -0
  34. package/build/static/image/allmaps.03f2ba92.png +0 -0
  35. package/build/static/image/gamma.6fca425b.png +0 -0
  36. package/build/static/image/linear.c7941b64.png +0 -0
  37. package/build/static/image/log.7fce6aee.png +0 -0
  38. package/build/static/image/power.5dac9727.png +0 -0
  39. package/build/static/image/sqrt.0ec2b3f1.png +0 -0
  40. package/build/static/image/squared.798b23aa.png +0 -0
  41. package/build/static/js/546.b5841ade.js +489 -0
  42. package/build/static/js/546.b5841ade.js.LICENSE.txt +925 -0
  43. package/build/static/js/async/359.97257512.js +1 -0
  44. package/build/static/js/async/403.b00f768c.js +1 -0
  45. package/build/static/js/async/462.92c07a07.js +1 -0
  46. package/build/static/js/async/905.70044ee8.js +1 -0
  47. package/build/static/js/async/907.dc17f1d2.js +1 -0
  48. package/build/static/js/async/blueprint-icons-16px-paths.e17db832.js +1 -0
  49. package/build/static/js/async/blueprint-icons-20px-paths.6ad43f5f.js +1 -0
  50. package/build/static/js/async/blueprint-icons-all-paths-loader.61cc0f7b.js +1 -0
  51. package/build/static/js/async/blueprint-icons-all-paths.0c699441.js +1 -0
  52. package/build/static/js/async/blueprint-icons-split-paths-by-size-loader.5cff79f5.js +1 -0
  53. package/build/static/js/index.8fc34b4d.js +1344 -0
  54. package/build/static/js/index.9a30d560.worker.js +1 -0
  55. package/build/static/js/zfp_wrapper.wasm +0 -0
  56. package/build/static/svg/blueprint-icons-16.130888ef.svg +2097 -0
  57. package/build/static/svg/blueprint-icons-20.c8456d56.svg +2097 -0
  58. package/build/zfp_wrapper.wasm +0 -0
  59. package/declarations.d.ts +18 -0
  60. package/docs_website/.prettierignore +1 -0
  61. package/docs_website/api/api.md +13 -0
  62. package/docs_website/babel.config.js +3 -0
  63. package/docs_website/docs/assets/enable-code-snippets.png +0 -0
  64. package/docs_website/docs/code-snippet-tutorial/_category_.json +8 -0
  65. package/docs_website/docs/code-snippet-tutorial/basics.md +97 -0
  66. package/docs_website/docs/code-snippet-tutorial/image-blending.mdx +57 -0
  67. package/docs_website/docs/code-snippet-tutorial/image-fitting.mdx +44 -0
  68. package/docs_website/docs/code-snippet-tutorial/image-properties.mdx +84 -0
  69. package/docs_website/docs/code-snippet-tutorial/moment-images.mdx +31 -0
  70. package/docs_website/docs/code-snippet-tutorial/pv-images.mdx +28 -0
  71. package/docs_website/docs/code-snippet-tutorial/quick-start.mdx +82 -0
  72. package/docs_website/docs/code-snippet-tutorial/regions.mdx +49 -0
  73. package/docs_website/docs/contributing/_category_.json +7 -0
  74. package/docs_website/docs/contributing/developer-tips.md +61 -0
  75. package/docs_website/docs/contributing/documentation-guidelines.md +87 -0
  76. package/docs_website/docs/contributing/github-workflow.md +146 -0
  77. package/docs_website/docs/contributing/release-guidelines.md +73 -0
  78. package/docs_website/docs/contributing/unit-test-guidelines.md +79 -0
  79. package/docs_website/docs/documents.mdx +15 -0
  80. package/docs_website/docusaurus.config.js +167 -0
  81. package/docs_website/package-lock.json +16769 -0
  82. package/docs_website/package.json +121 -0
  83. package/docs_website/patches/@docusaurus+core+3.9.2.patch +20 -0
  84. package/docs_website/sidebars.js +33 -0
  85. package/docs_website/static/.nojekyll +0 -0
  86. package/docs_website/static/img/carta_icon_128px.png +0 -0
  87. package/docs_website/versioned_docs/version-4.1.0/api-packages.json +1 -0
  88. package/docs_website/versioned_docs/version-4.1.0/api-typedoc.json +214112 -0
  89. package/docs_website/versioned_docs/version-4.1.0/assets/enable-code-snippets.png +0 -0
  90. package/docs_website/versioned_docs/version-4.1.0/code-snippet-tutorial/_category_.json +8 -0
  91. package/docs_website/versioned_docs/version-4.1.0/code-snippet-tutorial/basics.md +97 -0
  92. package/docs_website/versioned_docs/version-4.1.0/code-snippet-tutorial/image-fitting.mdx +42 -0
  93. package/docs_website/versioned_docs/version-4.1.0/code-snippet-tutorial/image-properties.mdx +86 -0
  94. package/docs_website/versioned_docs/version-4.1.0/code-snippet-tutorial/moment-images.mdx +31 -0
  95. package/docs_website/versioned_docs/version-4.1.0/code-snippet-tutorial/pv-images.mdx +28 -0
  96. package/docs_website/versioned_docs/version-4.1.0/code-snippet-tutorial/quick-start.mdx +82 -0
  97. package/docs_website/versioned_docs/version-4.1.0/code-snippet-tutorial/regions.mdx +49 -0
  98. package/docs_website/versioned_docs/version-4.1.0/contributing/_category_.json +7 -0
  99. package/docs_website/versioned_docs/version-4.1.0/contributing/developer-tips.md +36 -0
  100. package/docs_website/versioned_docs/version-4.1.0/contributing/documentation-guidelines.md +87 -0
  101. package/docs_website/versioned_docs/version-4.1.0/contributing/github-workflow.md +141 -0
  102. package/docs_website/versioned_docs/version-4.1.0/contributing/release-guidelines.md +73 -0
  103. package/docs_website/versioned_docs/version-4.1.0/contributing/unit-test-guidelines.md +79 -0
  104. package/docs_website/versioned_docs/version-4.1.0/documents.mdx +15 -0
  105. package/docs_website/versioned_docs/version-5.0.0/api-packages.json +1 -0
  106. package/docs_website/versioned_docs/version-5.0.0/api-typedoc.json +315266 -0
  107. package/docs_website/versioned_docs/version-5.0.0/assets/enable-code-snippets.png +0 -0
  108. package/docs_website/versioned_docs/version-5.0.0/code-snippet-tutorial/_category_.json +8 -0
  109. package/docs_website/versioned_docs/version-5.0.0/code-snippet-tutorial/basics.md +97 -0
  110. package/docs_website/versioned_docs/version-5.0.0/code-snippet-tutorial/image-blending.mdx +57 -0
  111. package/docs_website/versioned_docs/version-5.0.0/code-snippet-tutorial/image-fitting.mdx +44 -0
  112. package/docs_website/versioned_docs/version-5.0.0/code-snippet-tutorial/image-properties.mdx +86 -0
  113. package/docs_website/versioned_docs/version-5.0.0/code-snippet-tutorial/moment-images.mdx +31 -0
  114. package/docs_website/versioned_docs/version-5.0.0/code-snippet-tutorial/pv-images.mdx +28 -0
  115. package/docs_website/versioned_docs/version-5.0.0/code-snippet-tutorial/quick-start.mdx +82 -0
  116. package/docs_website/versioned_docs/version-5.0.0/code-snippet-tutorial/regions.mdx +49 -0
  117. package/docs_website/versioned_docs/version-5.0.0/contributing/_category_.json +7 -0
  118. package/docs_website/versioned_docs/version-5.0.0/contributing/developer-tips.md +36 -0
  119. package/docs_website/versioned_docs/version-5.0.0/contributing/documentation-guidelines.md +87 -0
  120. package/docs_website/versioned_docs/version-5.0.0/contributing/github-workflow.md +141 -0
  121. package/docs_website/versioned_docs/version-5.0.0/contributing/release-guidelines.md +73 -0
  122. package/docs_website/versioned_docs/version-5.0.0/contributing/unit-test-guidelines.md +79 -0
  123. package/docs_website/versioned_docs/version-5.0.0/documents.mdx +15 -0
  124. package/docs_website/versioned_sidebars/version-4.1.0-sidebars.json +8 -0
  125. package/docs_website/versioned_sidebars/version-5.0.0-sidebars.json +8 -0
  126. package/docs_website/versions.json +4 -0
  127. package/eslint.config.mjs +86 -0
  128. package/jest.config.js +101 -0
  129. package/package.json +186 -0
  130. package/patches/golden-layout+1.5.9.patch +24 -0
  131. package/patches/react-split-pane+0.1.92.patch +20 -0
  132. package/rsbuild.config.ts +75 -0
  133. package/schemas/.github/workflows/AddToCartaVisProject.yml +23 -0
  134. package/schemas/.prettierrc.json +18 -0
  135. package/schemas/CMakeLists.txt +15 -0
  136. package/schemas/README.md +1 -0
  137. package/schemas/_config.yml +7 -0
  138. package/schemas/controller_config_schema_1.json +343 -0
  139. package/schemas/controller_config_schema_2.json +685 -0
  140. package/schemas/layout_schema_2.json +440 -0
  141. package/schemas/preference_backend_schema_1.json +81 -0
  142. package/schemas/preference_backend_schema_2.json +118 -0
  143. package/schemas/preference_schema_1.json +410 -0
  144. package/schemas/preferences_schema_2.json +421 -0
  145. package/schemas/schemacompiler.c +200 -0
  146. package/schemas/snippet_schema_1.json +45 -0
  147. package/schemas/workspace_schema_1.json +573 -0
  148. package/scripts/make_colormaps.py +161 -0
@@ -0,0 +1,573 @@
1
+ {
2
+ "$schema": "http://json-schema.org/draft-07/schema#",
3
+ "title": "Workspace",
4
+ "description": "Schema for CARTA Workspaces (Version 1)",
5
+ "$id": "https://cartavis.org/schemas/workspace_schema_1.json",
6
+ "type": "object",
7
+ "definitions": {
8
+ "point-2d": {
9
+ "type": "object",
10
+ "required": ["x", "y"],
11
+ "properties": {
12
+ "x": {
13
+ "type": "number"
14
+ },
15
+ "y": {
16
+ "type": "number"
17
+ }
18
+ }
19
+ },
20
+ "color-rgb": {
21
+ "type": "object",
22
+ "required": ["r", "g", "b"],
23
+ "properties": {
24
+ "r": {
25
+ "type": "integer",
26
+ "minimum": 0,
27
+ "maximum": 255
28
+ },
29
+ "g": {
30
+ "type": "integer",
31
+ "minimum": 0,
32
+ "maximum": 255
33
+ },
34
+ "b": {
35
+ "type": "integer",
36
+ "minimum": 0,
37
+ "maximum": 255
38
+ },
39
+ "a": {
40
+ "type": "number",
41
+ "minimum": 0,
42
+ "maximum": 1,
43
+ "default": 1
44
+ }
45
+ }
46
+ },
47
+ "render-config": {
48
+ "type": "object",
49
+ "properties": {
50
+ "scaling": {
51
+ "type": "integer",
52
+ "minimum": 0,
53
+ "maximum": 7
54
+ },
55
+ "colorMap": {
56
+ "type": "string"
57
+ },
58
+ "customColormapHexEnd": {
59
+ "type": "string"
60
+ },
61
+ "customColormapHexStart": {
62
+ "type": "string"
63
+ },
64
+ "bias": {
65
+ "type": "number"
66
+ },
67
+ "contrast": {
68
+ "type": "number"
69
+ },
70
+ "gamma": {
71
+ "type": "number"
72
+ },
73
+ "alpha": {
74
+ "type": "number"
75
+ },
76
+ "inverted": {
77
+ "type": "boolean"
78
+ },
79
+ "useCubeHistogram": {
80
+ "type": "boolean"
81
+ },
82
+ "useCubeHistogramContours": {
83
+ "type": "boolean"
84
+ },
85
+ "scaleMin": {
86
+ "type": "array",
87
+ "items": {
88
+ "type": "number"
89
+ }
90
+ },
91
+ "scaleMax": {
92
+ "type": "array",
93
+ "items": {
94
+ "type": "number"
95
+ }
96
+ },
97
+ "selectedPercentile": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "number",
101
+ "maximum": 100,
102
+ "minimum": -1
103
+ }
104
+ },
105
+ "visible": {
106
+ "type": "boolean"
107
+ }
108
+ }
109
+ },
110
+ "contour-config": {
111
+ "type": "object",
112
+ "properties": {
113
+ "levels": {
114
+ "type": "array",
115
+ "items": {
116
+ "type": "number"
117
+ }
118
+ },
119
+ "smoothingMode": {
120
+ "type": "number",
121
+ "enum": [0, 1, 2]
122
+ },
123
+ "smoothingFactor": {
124
+ "type": "number"
125
+ },
126
+ "color": {
127
+ "$ref": "#/definitions/color-rgb"
128
+ },
129
+ "colormapEnabled": {
130
+ "type": "boolean"
131
+ },
132
+ "colormap": {
133
+ "type": "string"
134
+ },
135
+ "colormapContrast": {
136
+ "type": "number"
137
+ },
138
+ "colormapBias": {
139
+ "type": "number"
140
+ },
141
+ "dashMode": {
142
+ "type": "string",
143
+ "enum": ["None", "Dashed", "Negative only"]
144
+ },
145
+ "thickness": {
146
+ "type": "number"
147
+ },
148
+ "visible": {
149
+ "type": "boolean"
150
+ }
151
+ }
152
+ },
153
+ "vector-overlay-config": {
154
+ "type": "object",
155
+ "properties": {
156
+ "angularSource": {
157
+ "type": "integer",
158
+ "enum": [-1, 0, 1]
159
+ },
160
+ "intensitySource": {
161
+ "type": "integer"
162
+ },
163
+ "fractionalIntensity": {
164
+ "type": "boolean"
165
+ },
166
+ "pixelAveragingEnabled": {
167
+ "type": "boolean"
168
+ },
169
+ "pixelAveraging": {
170
+ "type": "number"
171
+ },
172
+ "thresholdEnabled": {
173
+ "type": "boolean"
174
+ },
175
+ "threshold": {
176
+ "type": "number"
177
+ },
178
+ "debiasing": {
179
+ "type": "boolean"
180
+ },
181
+ "qError": {
182
+ "type": "number"
183
+ },
184
+ "uError": {
185
+ "type": "number"
186
+ },
187
+ "visible": {
188
+ "type": "boolean"
189
+ },
190
+ "thickness": {
191
+ "type": "number"
192
+ },
193
+ "colormapEnabled": {
194
+ "type": "boolean"
195
+ },
196
+ "color": {
197
+ "$ref": "#/definitions/color-rgb"
198
+ },
199
+ "colormap": {
200
+ "type": "string"
201
+ },
202
+ "colormapContrast": {
203
+ "type": "number"
204
+ },
205
+ "colormapBias": {
206
+ "type": "number"
207
+ },
208
+ "lengthMin": {
209
+ "type": "number"
210
+ },
211
+ "lengthMax": {
212
+ "type": "number"
213
+ },
214
+ "intensityMin": {
215
+ "type": "number"
216
+ },
217
+ "intensityMax": {
218
+ "type": "number"
219
+ },
220
+ "rotationOffset": {
221
+ "type": "number"
222
+ }
223
+ }
224
+ },
225
+ "references": {
226
+ "type": "object",
227
+ "properties": {
228
+ "spatial": {
229
+ "description": "ID of the spatial reference file",
230
+ "type": "integer",
231
+ "minimum": 0
232
+ },
233
+ "spectral": {
234
+ "description": "ID of the spectral reference file",
235
+ "type": "integer",
236
+ "minimum": 0
237
+ },
238
+ "raster": {
239
+ "description": "ID of the raster reference file",
240
+ "type": "integer",
241
+ "minimum": 0
242
+ }
243
+ }
244
+ },
245
+ "annotation-style-point": {
246
+ "type": "object",
247
+ "properties": {
248
+ "pointShape": {
249
+ "type": "number"
250
+ },
251
+ "pointWidth": {
252
+ "type": "number"
253
+ }
254
+ }
255
+ },
256
+ "annotation-style-text": {
257
+ "type": "object",
258
+ "properties": {
259
+ "textLabel0": {
260
+ "type": "string"
261
+ },
262
+ "fontSize": {
263
+ "type": "number"
264
+ },
265
+ "fontStyle": {
266
+ "type": "string"
267
+ },
268
+ "font": {
269
+ "type": "string"
270
+ },
271
+ "textPosition": {
272
+ "type": "number"
273
+ }
274
+ }
275
+ },
276
+ "annotation-style-vector": {
277
+ "type": "object",
278
+ "properties": {
279
+ "pointerWidth": {
280
+ "type": "number"
281
+ },
282
+ "pointerLength": {
283
+ "type": "number"
284
+ }
285
+ }
286
+ },
287
+ "annotation-style-compass": {
288
+ "type": "object",
289
+ "properties": {
290
+ "textLabel0": {
291
+ "type": "string"
292
+ },
293
+ "textLabel1": {
294
+ "type": "string"
295
+ },
296
+ "isNorthArrow": {
297
+ "type": "boolean"
298
+ },
299
+ "isEastArrow": {
300
+ "type": "boolean"
301
+ },
302
+ "fontSize": {
303
+ "type": "number"
304
+ },
305
+ "fontStyle": {
306
+ "type": "string"
307
+ },
308
+ "font": {
309
+ "type": "string"
310
+ },
311
+ "northTextOffset": {
312
+ "$ref": "#/definitions/point-2d"
313
+ },
314
+ "eastTextOffset": {
315
+ "$ref": "#/definitions/point-2d"
316
+ },
317
+ "pointerWidth": {
318
+ "type": "number"
319
+ },
320
+ "pointerLength": {
321
+ "type": "number"
322
+ },
323
+ "length": {
324
+ "type": "number"
325
+ }
326
+ }
327
+ },
328
+ "annotation-style-ruler": {
329
+ "type": "object",
330
+ "properties": {
331
+ "fontSize": {
332
+ "type": "number"
333
+ },
334
+ "fontStyle": {
335
+ "type": "string"
336
+ },
337
+ "font": {
338
+ "type": "string"
339
+ },
340
+ "auxiliaryLineVisible": {
341
+ "type": "boolean"
342
+ },
343
+ "auxiliaryLineDashLength": {
344
+ "type": "number"
345
+ },
346
+ "auxiliaryTextVisible": {
347
+ "type": "boolean"
348
+ },
349
+ "textOffset": {
350
+ "$ref": "#/definitions/point-2d"
351
+ },
352
+ "xTextOffset": {
353
+ "$ref": "#/definitions/point-2d"
354
+ },
355
+ "yTextOffset": {
356
+ "$ref": "#/definitions/point-2d"
357
+ }
358
+ }
359
+ },
360
+ "annotation-style": {
361
+ "type": "object",
362
+ "anyOf": [
363
+ {
364
+ "$ref": "#/definitions/annotation-style-point"
365
+ },
366
+ {
367
+ "$ref": "#/definitions/annotation-style-text"
368
+ },
369
+ {
370
+ "$ref": "#/definitions/annotation-style-vector"
371
+ },
372
+ {
373
+ "$ref": "#/definitions/annotation-style-compass"
374
+ },
375
+ {
376
+ "$ref": "#/definitions/annotation-style-ruler"
377
+ }
378
+ ]
379
+ },
380
+ "region": {
381
+ "type": "object",
382
+ "required": ["id", "points", "rotation", "type"],
383
+ "properties": {
384
+ "id": {
385
+ "type": "integer",
386
+ "minimum": 1
387
+ },
388
+ "points": {
389
+ "type": "array",
390
+ "items": {
391
+ "$ref": "#/definitions/point-2d"
392
+ }
393
+ },
394
+ "rotation": {
395
+ "type": "number"
396
+ },
397
+ "type": {
398
+ "type": "integer",
399
+ "minimum": 0
400
+ },
401
+ "name": {
402
+ "type": "string"
403
+ },
404
+ "color": {
405
+ "type": "string"
406
+ },
407
+ "lineWidth": {
408
+ "type": "number",
409
+ "minimum": 0
410
+ },
411
+ "dashes": {
412
+ "type": "array",
413
+ "items": {
414
+ "type": "number",
415
+ "minimum": 0
416
+ }
417
+ },
418
+ "locked": {
419
+ "type": "boolean"
420
+ },
421
+ "annotationStyles": {
422
+ "$ref": "#/definitions/annotation-style"
423
+ }
424
+ }
425
+ },
426
+ "file": {
427
+ "type": "object",
428
+ "required": ["id", "filename"],
429
+ "properties": {
430
+ "id": {
431
+ "description": "ID of the file",
432
+ "type": "integer",
433
+ "minimum": 0
434
+ },
435
+ "directory": {
436
+ "description": "Directory of the file, relative to the top-level folder",
437
+ "type": "string"
438
+ },
439
+ "filename": {
440
+ "description": "Name of the file",
441
+ "type": "string"
442
+ },
443
+ "hdu": {
444
+ "description": "HDU to load. If none is specified, the first image HDU will be used",
445
+ "type": "string"
446
+ },
447
+ "references": {
448
+ "$ref": "#/definitions/references"
449
+ },
450
+ "center": {
451
+ "description": "The centre coordinates of the viewport",
452
+ "$ref": "#/definitions/point-2d"
453
+ },
454
+ "zoomLevel": {
455
+ "description": "The zoom level of the viewport",
456
+ "type": "number",
457
+ "minimum": 0
458
+ },
459
+ "channel": {
460
+ "description": "The selected channel",
461
+ "type": "integer",
462
+ "minimum": 0
463
+ },
464
+ "stokes": {
465
+ "description": "The selected polarization",
466
+ "type": "integer",
467
+ "minimum": 0
468
+ },
469
+ "renderConfig": {
470
+ "$ref": "#/definitions/render-config"
471
+ },
472
+ "contourConfig": {
473
+ "$ref": "#/definitions/contour-config"
474
+ },
475
+ "vectorOverlayConfig": {
476
+ "$ref": "#/definitions/vector-overlay-config"
477
+ },
478
+ "regionsSet": {
479
+ "type": "object",
480
+ "properties": {
481
+ "selectedRegion": {
482
+ "type": "integer"
483
+ },
484
+ "regions": {
485
+ "type": "array",
486
+ "items": {
487
+ "$ref": "#/definitions/region"
488
+ }
489
+ }
490
+ }
491
+ }
492
+ }
493
+ },
494
+ "color-blending": {
495
+ "type": "object",
496
+ "properties": {
497
+ "imageListIndex": {
498
+ "type": "number"
499
+ },
500
+ "selectedFrameId": {
501
+ "type": "array",
502
+ "items": {
503
+ "type": "number"
504
+ }
505
+ },
506
+ "alpha": {
507
+ "type": "array",
508
+ "items": {
509
+ "type": "number"
510
+ }
511
+ }
512
+ }
513
+ }
514
+ },
515
+ "required": ["workspaceVersion", "frontendVersion", "files"],
516
+ "properties": {
517
+ "id": {
518
+ "type": "string"
519
+ },
520
+ "name": {
521
+ "description": "Optional workspace name. Filename will be used if this is missing",
522
+ "type": "string"
523
+ },
524
+ "editable": {
525
+ "description": "Whether the workspace is editable",
526
+ "type": "boolean"
527
+ },
528
+ "workspaceVersion": {
529
+ "description": "The version of the workspace",
530
+ "type": "integer",
531
+ "minimum": 0
532
+ },
533
+ "frontendVersion": {
534
+ "description": "The version of the frontend targeted by this workspace",
535
+ "type": "string"
536
+ },
537
+ "description": {
538
+ "description": "Optional workspace description",
539
+ "type": "string"
540
+ },
541
+ "files": {
542
+ "type": "array",
543
+ "items": {
544
+ "$ref": "#/definitions/file"
545
+ }
546
+ },
547
+ "colorBlendingImages": {
548
+ "type": "array",
549
+ "items": {
550
+ "$ref": "#/definitions/color-blending"
551
+ }
552
+ },
553
+ "references": {
554
+ "$ref": "#/definitions/references"
555
+ },
556
+ "selectedFile": {
557
+ "description": "ID of the currently active file",
558
+ "type": "integer"
559
+ },
560
+ "thumbnail": {
561
+ "description": "A data URL containing a base64-encoded JPEG",
562
+ "type": "string"
563
+ },
564
+ "date": {
565
+ "description": "The modification date as a unix timestamp",
566
+ "type": "number"
567
+ },
568
+ "shared": {
569
+ "description": "Whether the workspace is shared between multiple users",
570
+ "type": "boolean"
571
+ }
572
+ }
573
+ }