@iebh/tera-fy 1.9.0 → 1.10.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/api.md CHANGED
@@ -22,123 +22,126 @@
22
22
  * [mime][18]
23
23
  * [meta][19]
24
24
  * [getContents][20]
25
- * [setContents][21]
26
- * [Parameters][22]
27
- * [getRefs][23]
28
- * [setRefs][24]
29
- * [Parameters][25]
30
- * [serialize][26]
31
- * [deserialize][27]
32
- * [Parameters][28]
33
- * [TeraFy][29]
34
- * [settings][30]
35
- * [Properties][31]
36
- * [events][32]
37
- * [dom][33]
38
- * [Properties][34]
39
- * [methods][35]
40
- * [plugins][36]
41
- * [send][37]
42
- * [Parameters][38]
43
- * [sendRaw][39]
44
- * [Parameters][40]
45
- * [rpc][41]
46
- * [Parameters][42]
47
- * [acceptMessage][43]
48
- * [Parameters][44]
49
- * [acceptPostboxes][45]
50
- * [createProjectStatePatch][46]
51
- * [Parameters][47]
52
- * [applyProjectStatePatchLocal][48]
53
- * [Parameters][49]
54
- * [init][50]
55
- * [Parameters][51]
56
- * [detectMode][52]
57
- * [injectComms][53]
58
- * [injectStylesheet][54]
59
- * [injectMethods][55]
60
- * [debug][56]
61
- * [Parameters][57]
62
- * [set][58]
63
- * [Parameters][59]
64
- * [setIfDev][60]
65
- * [Parameters][61]
66
- * [use][62]
67
- * [Parameters][63]
68
- * [mixin][64]
69
- * [Parameters][65]
70
- * [toggleDevMode][66]
71
- * [Parameters][67]
72
- * [toggleFocus][68]
73
- * [Parameters][69]
74
- * [selectProjectFile][70]
75
- * [Parameters][71]
76
- * [getProjectFiles][72]
77
- * [Parameters][73]
78
- * [getProjectFile][74]
79
- * [Parameters][75]
80
- * [createProjectFile][76]
81
- * [Parameters][77]
82
- * [handshake][78]
83
- * [Properties][79]
84
- * [setServerVerbosity][80]
85
- * [Parameters][81]
86
- * [User][82]
87
- * [Properties][83]
88
- * [getUser][84]
89
- * [requireUser][85]
90
- * [Parameters][86]
91
- * [Project][87]
92
- * [getProject][88]
93
- * [getProjects][89]
94
- * [setActiveProject][90]
95
- * [Parameters][91]
96
- * [requireProject][92]
97
- * [Parameters][93]
98
- * [selectProject][94]
99
- * [Parameters][95]
100
- * [getProjectState][96]
101
- * [Parameters][97]
102
- * [setProjectState][98]
103
- * [Parameters][99]
104
- * [setProjectStateDefaults][100]
105
- * [Parameters][101]
106
- * [setProjectStateFlush][102]
107
- * [setProjectStateRefresh][103]
108
- * [saveProjectState][104]
109
- * [replaceProjectState][105]
110
- * [Parameters][106]
111
- * [applyProjectStatePatch][107]
112
- * [Parameters][108]
113
- * [subscribeProjectState][109]
114
- * [FileFilters][110]
115
- * [Properties][111]
116
- * [selectProjectFile][112]
117
- * [Parameters][113]
118
- * [deleteProjectFile][114]
119
- * [Parameters][115]
120
- * [setProjectFile][116]
121
- * [Parameters][117]
122
- * [selectProjectLibrary][118]
123
- * [Parameters][119]
124
- * [getProjectLibrary][120]
125
- * [Parameters][121]
126
- * [setProjectLibrary][122]
127
- * [Parameters][123]
128
- * [projectLog][124]
129
- * [Parameters][125]
130
- * [setPageUrl][126]
131
- * [Parameters][127]
132
- * [setPageTitle][128]
133
- * [Parameters][129]
134
- * [uiAlert][130]
135
- * [Parameters][131]
136
- * [uiProgress][132]
137
- * [Parameters][133]
138
- * [uiWindow][134]
139
- * [Parameters][135]
140
- * [uiSplat][136]
141
- * [Parameters][137]
25
+ * [Parameters][21]
26
+ * [setContents][22]
27
+ * [Parameters][23]
28
+ * [getRefs][24]
29
+ * [setRefs][25]
30
+ * [Parameters][26]
31
+ * [serialize][27]
32
+ * [deserialize][28]
33
+ * [Parameters][29]
34
+ * [TeraFy][30]
35
+ * [settings][31]
36
+ * [Properties][32]
37
+ * [events][33]
38
+ * [dom][34]
39
+ * [Properties][35]
40
+ * [methods][36]
41
+ * [plugins][37]
42
+ * [send][38]
43
+ * [Parameters][39]
44
+ * [sendRaw][40]
45
+ * [Parameters][41]
46
+ * [rpc][42]
47
+ * [Parameters][43]
48
+ * [acceptMessage][44]
49
+ * [Parameters][45]
50
+ * [acceptPostboxes][46]
51
+ * [createProjectStatePatch][47]
52
+ * [Parameters][48]
53
+ * [applyProjectStatePatchLocal][49]
54
+ * [Parameters][50]
55
+ * [init][51]
56
+ * [Parameters][52]
57
+ * [detectMode][53]
58
+ * [injectComms][54]
59
+ * [injectStylesheet][55]
60
+ * [injectMethods][56]
61
+ * [debug][57]
62
+ * [Parameters][58]
63
+ * [set][59]
64
+ * [Parameters][60]
65
+ * [setIfDev][61]
66
+ * [Parameters][62]
67
+ * [use][63]
68
+ * [Parameters][64]
69
+ * [mixin][65]
70
+ * [Parameters][66]
71
+ * [toggleDevMode][67]
72
+ * [Parameters][68]
73
+ * [toggleFocus][69]
74
+ * [Parameters][70]
75
+ * [selectProjectFile][71]
76
+ * [Parameters][72]
77
+ * [getProjectFiles][73]
78
+ * [Parameters][74]
79
+ * [getProjectFile][75]
80
+ * [Parameters][76]
81
+ * [createProjectFile][77]
82
+ * [Parameters][78]
83
+ * [handshake][79]
84
+ * [Properties][80]
85
+ * [setServerVerbosity][81]
86
+ * [Parameters][82]
87
+ * [User][83]
88
+ * [Properties][84]
89
+ * [getUser][85]
90
+ * [requireUser][86]
91
+ * [Parameters][87]
92
+ * [Project][88]
93
+ * [getProject][89]
94
+ * [getProjects][90]
95
+ * [setActiveProject][91]
96
+ * [Parameters][92]
97
+ * [requireProject][93]
98
+ * [Parameters][94]
99
+ * [selectProject][95]
100
+ * [Parameters][96]
101
+ * [getProjectState][97]
102
+ * [Parameters][98]
103
+ * [setProjectState][99]
104
+ * [Parameters][100]
105
+ * [setProjectStateDefaults][101]
106
+ * [Parameters][102]
107
+ * [setProjectStateFlush][103]
108
+ * [setProjectStateRefresh][104]
109
+ * [saveProjectState][105]
110
+ * [replaceProjectState][106]
111
+ * [Parameters][107]
112
+ * [applyProjectStatePatch][108]
113
+ * [Parameters][109]
114
+ * [subscribeProjectState][110]
115
+ * [FileFilters][111]
116
+ * [Properties][112]
117
+ * [selectProjectFile][113]
118
+ * [Parameters][114]
119
+ * [getProjectFileContents][115]
120
+ * [Parameters][116]
121
+ * [deleteProjectFile][117]
122
+ * [Parameters][118]
123
+ * [setProjectFile][119]
124
+ * [Parameters][120]
125
+ * [selectProjectLibrary][121]
126
+ * [Parameters][122]
127
+ * [getProjectLibrary][123]
128
+ * [Parameters][124]
129
+ * [setProjectLibrary][125]
130
+ * [Parameters][126]
131
+ * [projectLog][127]
132
+ * [Parameters][128]
133
+ * [setPageUrl][129]
134
+ * [Parameters][130]
135
+ * [setPageTitle][131]
136
+ * [Parameters][132]
137
+ * [uiAlert][133]
138
+ * [Parameters][134]
139
+ * [uiProgress][135]
140
+ * [Parameters][136]
141
+ * [uiWindow][137]
142
+ * [Parameters][138]
143
+ * [uiSplat][139]
144
+ * [Parameters][140]
142
145
 
143
146
  ## ProjectFile
144
147
 
@@ -148,113 +151,113 @@ A project file fetched from TERA
148
151
 
149
152
  A UUID string representing the unique ID of the file
150
153
 
151
- Type: [String][138]
154
+ Type: [String][141]
152
155
 
153
156
  ### name
154
157
 
155
158
  Relative name path (can contain prefix directories) for the human readable file name
156
159
 
157
- Type: [String][138]
160
+ Type: [String][141]
158
161
 
159
162
  ### icon
160
163
 
161
164
  CSS class to use as the file icon
162
165
 
163
- Type: [String][138]
166
+ Type: [String][141]
164
167
 
165
168
  ### path
166
169
 
167
170
  Full path to the file
168
171
  This is also used as the unique identifier within the project
169
172
 
170
- Type: [String][138]
173
+ Type: [String][141]
171
174
 
172
175
  ### url
173
176
 
174
177
  Fully qualified URL to view / access / download the file from TERA
175
178
  This will usually open an edit UI within the TERA site
176
179
 
177
- Type: [String][138]
180
+ Type: [String][141]
178
181
 
179
182
  ### teraUrl
180
183
 
181
184
  Rewrite of the URL where the absolute URL has been removed in place of a relative path, assuming the owner project is active
182
185
  This is used to direct to the edit/view/download UI when the files project is active and is usually used in place of URL for TERA related operations
183
186
 
184
- Type: [String][138]
187
+ Type: [String][141]
185
188
 
186
189
  ### parsedName
187
190
 
188
191
  An object representing meta file parts of a file name
189
192
 
190
- Type: [Object][139]
193
+ Type: [Object][142]
191
194
 
192
195
  #### Properties
193
196
 
194
- * `basename` **[String][138]** The filename + extention (i.e. everything without directory name)
195
- * `filename` **[String][138]** The file portion of the name (basename without the extension)
196
- * `ext` **[String][138]** The extension portion of the name (always lower case)
197
- * `dirName` **[String][138]** The directory path portion of the name
197
+ * `basename` **[String][141]** The filename + extention (i.e. everything without directory name)
198
+ * `filename` **[String][141]** The file portion of the name (basename without the extension)
199
+ * `ext` **[String][141]** The extension portion of the name (always lower case)
200
+ * `dirName` **[String][141]** The directory path portion of the name
198
201
 
199
202
  ### created
200
203
 
201
204
  A date representing when the file was created
202
205
 
203
- Type: [Date][140]
206
+ Type: [Date][143]
204
207
 
205
208
  ### createdFormatted
206
209
 
207
210
  A human readable, formatted version of "created"
208
211
 
209
- Type: [String][138]
212
+ Type: [String][141]
210
213
 
211
214
  ### modified
212
215
 
213
216
  A date representing when the file was created
214
217
 
215
- Type: [Date][140]
218
+ Type: [Date][143]
216
219
 
217
220
  ### modifiedFormatted
218
221
 
219
222
  A human readable, formatted version of "modified"
220
223
 
221
- Type: [String][138]
224
+ Type: [String][141]
222
225
 
223
226
  ### accessed
224
227
 
225
228
  A date representing when the file was last accessed
226
229
 
227
- Type: [Date][140]
230
+ Type: [Date][143]
228
231
 
229
232
  ### accessedFormatted
230
233
 
231
234
  A human readable, formatted version of "accessed"
232
235
 
233
- Type: [String][138]
236
+ Type: [String][141]
234
237
 
235
238
  ### size
236
239
 
237
240
  Size, in bytes, of the file
238
241
 
239
- Type: [Number][141]
242
+ Type: [Number][144]
240
243
 
241
244
  ### sizeFormatted
242
245
 
243
246
  A human readable, formatted version of the file size
244
247
 
245
- Type: [String][138]
248
+ Type: [String][141]
246
249
 
247
250
  ### mime
248
251
 
249
252
  The associated mime type for the file
250
253
 
251
- Type: [String][138]
254
+ Type: [String][141]
252
255
 
253
256
  ### meta
254
257
 
255
258
  Additional meta information for the file
256
259
 
257
- Type: [Object][139]
260
+ Type: [Object][142]
258
261
 
259
262
  ### getContents
260
263
 
@@ -262,7 +265,9 @@ Type: [Object][139]
262
265
 
263
266
  Fetch the raw file contents as a Blob
264
267
 
265
- returns {Blob} The eventual raw file contents as a Blob
268
+ #### Parameters
269
+
270
+ * `options` **[Object][142]?** Additioanl options to mutate behaviourreturns {Blob} The eventual raw file contents as a Blob
266
271
 
267
272
  ### setContents
268
273
 
@@ -272,9 +277,9 @@ Overwrite the contents of a file with new content
272
277
 
273
278
  #### Parameters
274
279
 
275
- * `contents` **(File | [Blob][142] | [FormData][143] | [Object][139] | [Array][144])** The new file contents
280
+ * `contents` **(File | [Blob][145] | [FormData][146] | [Object][142] | [Array][147])** The new file contents
276
281
 
277
- Returns **[Promise][145]** A promise which resolves when the operation has completed
282
+ Returns **[Promise][148]** A promise which resolves when the operation has completed
278
283
 
279
284
  ### getRefs
280
285
 
@@ -282,7 +287,7 @@ Returns **[Promise][145]** A promise which resolves when the operation has compl
282
287
 
283
288
  Fetch the file contents as an array of Reflib refs
284
289
 
285
- Returns **[Promise][145]<[Array][144]\<Ref>>** An eventual array of RefLib references
290
+ Returns **[Promise][148]<[Array][147]\<Ref>>** An eventual array of RefLib references
286
291
 
287
292
  ### setRefs
288
293
 
@@ -293,18 +298,18 @@ Overwrite the contents of a file with a new collection of Reflib refs
293
298
  #### Parameters
294
299
 
295
300
  * `refs` &#x20;
296
- * `Collection` **[Array][144]\<RefLibRef>** of references for the selected library
301
+ * `Collection` **[Array][147]\<RefLibRef>** of references for the selected library
297
302
 
298
- Returns **[Promise][145]** A promise which resolves when the operation has completed
303
+ Returns **[Promise][148]** A promise which resolves when the operation has completed
299
304
 
300
305
  ### serialize
301
306
 
302
- * **See**: [https://developer.mozilla.org/en-US/docs/Web/API/Web\_Workers\_API/Structured\_clone\_algorithm][146]
307
+ * **See**: [https://developer.mozilla.org/en-US/docs/Web/API/Web\_Workers\_API/Structured\_clone\_algorithm][149]
303
308
 
304
309
  Compress a file state down into a serializable entity
305
310
  By default this computes a Structured Clone which can be stringified
306
311
 
307
- Returns **[Object][139]** A Structured Clone compatible representation of this ProjectFile instance
312
+ Returns **[Object][142]** A Structured Clone compatible representation of this ProjectFile instance
308
313
 
309
314
  ### deserialize
310
315
 
@@ -312,7 +317,7 @@ Restore an entity created with serialize
312
317
 
313
318
  #### Parameters
314
319
 
315
- * `data` **[Object][139]** An input object created via `ProjectFiles.serialize()`
320
+ * `data` **[Object][142]** An input object created via `ProjectFiles.serialize()`
316
321
 
317
322
  Returns **[ProjectFile][1]** A ProjectFile instance setup against the deserializzed data
318
323
 
@@ -324,19 +329,19 @@ Main Tera-Fy Client (class singleton) to be used in a frontend browser
324
329
 
325
330
  Various settings to configure behaviour
326
331
 
327
- Type: [Object][139]
332
+ Type: [Object][142]
328
333
 
329
334
  #### Properties
330
335
 
331
- * `devMode` **[Boolean][147]** Operate in devMode - i.e. force outer refresh when encountering an existing TeraFy instance
332
- * `verbosity` **[Number][141]** Verbosity level, the higher the more chatty TeraFY will be. Set to zero to disable all `debug()` call output
336
+ * `devMode` **[Boolean][150]** Operate in devMode - i.e. force outer refresh when encountering an existing TeraFy instance
337
+ * `verbosity` **[Number][144]** Verbosity level, the higher the more chatty TeraFY will be. Set to zero to disable all `debug()` call output
333
338
  * `mode` **(`"detect"` | `"parent"` | `"child"` | `"popup"`)** How to communicate with TERA. 'parent' assumes that the parent of the current document is TERA, 'child' spawns an iFrame and uses TERA there, 'detect' tries parent and switches to `modeFallback` if communication fails
334
- * `modeFallback` **[String][138]** Method to use when all method detection fails
335
- * `modeTimeout` **[Number][141]** How long entities have in 'detect' mode to identify themselves
336
- * `siteUrl` **[String][138]** The TERA URL to connect to
337
- * `restrictOrigin` **[String][138]** URL to restrict communications to
338
- * `List` **[Array][144]<[String][138]>** of sandbox allowables for the embedded if in embed mode
339
- * `handshakeInterval` **[Number][141]** Interval in milliseconds when sanning for a handshake
339
+ * `modeFallback` **[String][141]** Method to use when all method detection fails
340
+ * `modeTimeout` **[Number][144]** How long entities have in 'detect' mode to identify themselves
341
+ * `siteUrl` **[String][141]** The TERA URL to connect to
342
+ * `restrictOrigin` **[String][141]** URL to restrict communications to
343
+ * `List` **[Array][147]<[String][141]>** of sandbox allowables for the embedded if in embed mode
344
+ * `handshakeInterval` **[Number][144]** Interval in milliseconds when sanning for a handshake
340
345
 
341
346
  ### events
342
347
 
@@ -348,13 +353,13 @@ Type: Mitt
348
353
 
349
354
  DOMElements for this TeraFy instance
350
355
 
351
- Type: [Object][139]
356
+ Type: [Object][142]
352
357
 
353
358
  #### Properties
354
359
 
355
360
  * `el` **DOMElement** The main tera-fy div wrapper
356
361
  * `iframe` **DOMElement** The internal iFrame element (if `settings.mode == 'child'`)
357
- * `popup` **[Window][148]** The popup window context (if `settings.mode == 'popup'`)
362
+ * `popup` **[Window][151]** The popup window context (if `settings.mode == 'popup'`)
358
363
  * `stylesheet` **DOMElement** The corresponding stylesheet
359
364
 
360
365
  ### methods
@@ -362,13 +367,13 @@ Type: [Object][139]
362
367
  List of function stubs mapped from the server to here
363
368
  This array is forms the reference of `TeraFy.METHOD()` objects to provide locally which will be mapped via `TeraFy.rpc(METHOD, ...args)`
364
369
 
365
- Type: [Array][144]<[String][138]>
370
+ Type: [Array][147]<[String][141]>
366
371
 
367
372
  ### plugins
368
373
 
369
374
  Loaded plugins via Use()
370
375
 
371
- Type: [Array][144]\<TeraFyPlugin>
376
+ Type: [Array][147]\<TeraFyPlugin>
372
377
 
373
378
  ### send
374
379
 
@@ -376,9 +381,9 @@ Send a message + wait for a response object
376
381
 
377
382
  #### Parameters
378
383
 
379
- * `message` **[Object][139]** Message object to send
384
+ * `message` **[Object][142]** Message object to send
380
385
 
381
- Returns **[Promise][145]\<any>** A promise which resolves when the operation has completed with the remote reply
386
+ Returns **[Promise][148]\<any>** A promise which resolves when the operation has completed with the remote reply
382
387
 
383
388
  ### sendRaw
384
389
 
@@ -387,7 +392,7 @@ This function does not return or wait for a reply - use `send()` for that
387
392
 
388
393
  #### Parameters
389
394
 
390
- * `message` **[Object][139]** Message object to send
395
+ * `message` **[Object][142]** Message object to send
391
396
 
392
397
  ### rpc
393
398
 
@@ -395,10 +400,10 @@ Call an RPC function in the server instance
395
400
 
396
401
  #### Parameters
397
402
 
398
- * `method` **[String][138]** The method name to call
403
+ * `method` **[String][141]** The method name to call
399
404
  * `args` **...any**&#x20;
400
405
 
401
- Returns **[Promise][145]\<any>** The resolved output of the server function
406
+ Returns **[Promise][148]\<any>** The resolved output of the server function
402
407
 
403
408
  ### acceptMessage
404
409
 
@@ -407,7 +412,7 @@ Accept an incoming message
407
412
  #### Parameters
408
413
 
409
414
  * `rawMessage` &#x20;
410
- * `Raw` **[MessageEvent][149]** message event to process
415
+ * `Raw` **[MessageEvent][152]** message event to process
411
416
 
412
417
  ### acceptPostboxes
413
418
 
@@ -416,27 +421,27 @@ Listening postboxes, these correspond to outgoing message IDs that expect a resp
416
421
  ### createProjectStatePatch
417
422
 
418
423
  Create + transmit a new project state patch base on the current and previous states
419
- The transmitted patch follows the [JSPatch][150] standard
424
+ The transmitted patch follows the [JSPatch][153] standard
420
425
  This function accepts an entire projectState instance, computes the delta and transmits that to the server for merging
421
426
 
422
427
  #### Parameters
423
428
 
424
- * `newState` **[Object][139]** The local projectState to accept
425
- * `oldState` **[Object][139]** The previous projectState to examine against
429
+ * `newState` **[Object][142]** The local projectState to accept
430
+ * `oldState` **[Object][142]** The previous projectState to examine against
426
431
 
427
- Returns **[Promise][145]** A promise which will resolve when the operation has completed
432
+ Returns **[Promise][148]** A promise which will resolve when the operation has completed
428
433
 
429
434
  ### applyProjectStatePatchLocal
430
435
 
431
436
  Client function which accepts a patch from the server and applies it to local project state
432
- The patch should follow the [JSPatch][150] standard
437
+ The patch should follow the [JSPatch][153] standard
433
438
  This function is expected to be sub-classed by a plugin
434
439
 
435
440
  #### Parameters
436
441
 
437
- * `patch` **[Array][144]** A JSPatch patch to apply
442
+ * `patch` **[Array][147]** A JSPatch patch to apply
438
443
 
439
- Returns **[Promise][145]** A promise which will resolve when the operation has completed
444
+ Returns **[Promise][148]** A promise which will resolve when the operation has completed
440
445
 
441
446
  ### init
442
447
 
@@ -445,28 +450,28 @@ This function can only be called once and will return the existing init() worker
445
450
 
446
451
  #### Parameters
447
452
 
448
- * `options` **[Object][139]?** Additional options to merge into `settings` via `set`
453
+ * `options` **[Object][142]?** Additional options to merge into `settings` via `set`
449
454
 
450
- Returns **[Promise][145]<[TeraFy][29]>** An eventual promise which will resovle with this terafy instance
455
+ Returns **[Promise][148]<[TeraFy][30]>** An eventual promise which will resovle with this terafy instance
451
456
 
452
457
  ### detectMode
453
458
 
454
459
  Populate `settings.mode`
455
460
  Try to communicate with a parent frame, if none assume we need to fallback to child mode
456
461
 
457
- Returns **[Promise][145]<[String][138]>** A promise which will resolve with the detected mode to use
462
+ Returns **[Promise][148]<[String][141]>** A promise which will resolve with the detected mode to use
458
463
 
459
464
  ### injectComms
460
465
 
461
466
  Find an existing active TERA server OR initalize one
462
467
 
463
- Returns **[Promise][145]** A promise which will resolve when the loading has completed and we have found a parent TERA instance or initiallized a child
468
+ Returns **[Promise][148]** A promise which will resolve when the loading has completed and we have found a parent TERA instance or initiallized a child
464
469
 
465
470
  ### injectStylesheet
466
471
 
467
472
  Inject a local stylesheet to handle TERA server functionality
468
473
 
469
- Returns **[Promise][145]** A promise which will resolve when the loading has completed and we have found a parent TERA instance or initiallized a child
474
+ Returns **[Promise][148]** A promise which will resolve when the loading has completed and we have found a parent TERA instance or initiallized a child
470
475
 
471
476
  ### injectMethods
472
477
 
@@ -481,7 +486,7 @@ This function will only act if `settings.devMode` is truthy
481
486
 
482
487
  * `msg` **...any**&#x20;
483
488
  * `method` **(`"INFO"` | `"LOG"` | `"WARN"` | `"ERROR"`)** Logging method to use (optional, default `'LOG'`)
484
- * `verboseLevel` **[Number][141]** The verbosity level to trigger at. If `settings.verbosity` is lower than this, the message is ignored (optional, default `1`)
489
+ * `verboseLevel` **[Number][144]** The verbosity level to trigger at. If `settings.verbosity` is lower than this, the message is ignored (optional, default `1`)
485
490
 
486
491
  ### set
487
492
 
@@ -490,13 +495,13 @@ This function also routes 'special' keys like `devMode` to their internal handle
490
495
 
491
496
  #### Parameters
492
497
 
493
- * `key` **([String][138] | [Object][139])** Either a single setting key to set or an object to merge
498
+ * `key` **([String][141] | [Object][142])** Either a single setting key to set or an object to merge
494
499
  * `value` **any** The value to set if `key` is a string
495
- * `options` **[Object][139]?** Additional options to mutate behaviour
500
+ * `options` **[Object][142]?** Additional options to mutate behaviour
496
501
 
497
- * `options.ignoreNullish` **[Boolean][147]** If falsy, this forces the setting of undefined or null values rather than ignoring them when specifying values by string (optional, default `true`)
502
+ * `options.ignoreNullish` **[Boolean][150]** If falsy, this forces the setting of undefined or null values rather than ignoring them when specifying values by string (optional, default `true`)
498
503
 
499
- Returns **[TeraFy][29]** This chainable terafy instance
504
+ Returns **[TeraFy][30]** This chainable terafy instance
500
505
 
501
506
  ### setIfDev
502
507
 
@@ -506,11 +511,11 @@ Set or merge settings - but only in dev mode and only if the value is not undefi
506
511
 
507
512
  #### Parameters
508
513
 
509
- * `key` **([String][138] | [Object][139])** Either a single setting key to set or an object to merge
514
+ * `key` **([String][141] | [Object][142])** Either a single setting key to set or an object to merge
510
515
  * `value` **any** The value to set if `key` is a string
511
- * `options` **[Object][139]?** Additional options to mutate behaviour
516
+ * `options` **[Object][142]?** Additional options to mutate behaviour
512
517
 
513
- Returns **[TeraFy][29]** This chainable terafy instance
518
+ Returns **[TeraFy][30]** This chainable terafy instance
514
519
 
515
520
  ### use
516
521
 
@@ -519,10 +524,10 @@ Include a TeraFy client plugin
519
524
  #### Parameters
520
525
 
521
526
  * `mod` &#x20;
522
- * `options` **[Object][139]?** Additional options to mutate behaviour during construction (pass options to init() to intialize later options)
523
- * `The` **[Object][139]** module function to include. Invoked as `(teraClient:TeraFy, options:Object)`
527
+ * `options` **[Object][142]?** Additional options to mutate behaviour during construction (pass options to init() to intialize later options)
528
+ * `The` **[Object][142]** module function to include. Invoked as `(teraClient:TeraFy, options:Object)`
524
529
 
525
- Returns **[TeraFy][29]** This chainable terafy instance
530
+ Returns **[TeraFy][30]** This chainable terafy instance
526
531
 
527
532
  ### mixin
528
533
 
@@ -530,8 +535,8 @@ Internal function used by use() to merge an external declared singleton against
530
535
 
531
536
  #### Parameters
532
537
 
533
- * `target` **[Object][139]** Initalied class instance to extend
534
- * `source` **[Object][139]** Initalized source object to extend from
538
+ * `target` **[Object][142]** Initalied class instance to extend
539
+ * `source` **[Object][142]** Initalized source object to extend from
535
540
 
536
541
  ### toggleDevMode
537
542
 
@@ -543,9 +548,9 @@ This function also accepts meta values:
543
548
 
544
549
  #### Parameters
545
550
 
546
- * `devModeEnabled` **(`"toggle"` | `"proxy"` | [Boolean][147])** Optional boolean to force dev mode or specify other behaviour (optional, default `'toggle'`)
551
+ * `devModeEnabled` **(`"toggle"` | `"proxy"` | [Boolean][150])** Optional boolean to force dev mode or specify other behaviour (optional, default `'toggle'`)
547
552
 
548
- Returns **[TeraFy][29]** This chainable terafy instance
553
+ Returns **[TeraFy][30]** This chainable terafy instance
549
554
 
550
555
  ### toggleFocus
551
556
 
@@ -554,7 +559,7 @@ This is usually because the server component wants to perform some user activity
554
559
 
555
560
  #### Parameters
556
561
 
557
- * `isFocused` **([String][138] | [Boolean][147])** Whether to fullscreen the embedded component (optional, default `'toggle'`)
562
+ * `isFocused` **([String][141] | [Boolean][150])** Whether to fullscreen the embedded component (optional, default `'toggle'`)
558
563
 
559
564
  ### selectProjectFile
560
565
 
@@ -566,7 +571,7 @@ This is an pre-requisite step for requireProject()
566
571
 
567
572
  * `options` &#x20;
568
573
 
569
- Returns **[Promise][145]** A promise which will resolve if the there is a user and they are logged in
574
+ Returns **[Promise][148]** A promise which will resolve if the there is a user and they are logged in
570
575
 
571
576
  ### getProjectFiles
572
577
 
@@ -574,13 +579,13 @@ Fetch the files associated with a given project
574
579
 
575
580
  #### Parameters
576
581
 
577
- * `options` **[Object][139]** Options which mutate behaviour
582
+ * `options` **[Object][142]** Options which mutate behaviour
578
583
 
579
- * `options.autoRequire` **[Boolean][147]** Run `requireProject()` automatically before continuing (optional, default `true`)
580
- * `options.lazy` **[Boolean][147]** If true, use the fastest method to retrieve the file list such as the cache. If false, force a refresh each time (optional, default `true`)
581
- * `options.meta` **[Boolean][147]** Pull meta information for each file entity (optional, default `true`)
584
+ * `options.autoRequire` **[Boolean][150]** Run `requireProject()` automatically before continuing (optional, default `true`)
585
+ * `options.lazy` **[Boolean][150]** If true, use the fastest method to retrieve the file list such as the cache. If false, force a refresh each time (optional, default `true`)
586
+ * `options.meta` **[Boolean][150]** Pull meta information for each file entity (optional, default `true`)
582
587
 
583
- Returns **[Promise][145]<[Array][144]<[ProjectFile][1]>>** A collection of project files for the given project
588
+ Returns **[Promise][148]<[Array][147]<[ProjectFile][1]>>** A collection of project files for the given project
584
589
 
585
590
  ### getProjectFile
586
591
 
@@ -589,13 +594,13 @@ Fetch a project file by its name
589
594
  #### Parameters
590
595
 
591
596
  * `id` &#x20;
592
- * `name` **[String][138]** The name + relative directory path component
593
- * `options` **([Object][139] | [String][138])?** Additional options to mutate behaviour, if a string is given `options.subkey` is assumed
597
+ * `name` **[String][141]** The name + relative directory path component
598
+ * `options` **([Object][142] | [String][141])?** Additional options to mutate behaviour, if a string is given `options.subkey` is assumed
594
599
 
595
- * `options.subkey` **[String][138]?** If specified only the extracted subkey is returned rather than the full object
596
- * `options.cache` **[Boolean][147]** Use the existing file cache if possible, set to false to force a refresh of files from the server first (optional, default `true`)
600
+ * `options.subkey` **[String][141]?** If specified only the extracted subkey is returned rather than the full object
601
+ * `options.cache` **[Boolean][150]** Use the existing file cache if possible, set to false to force a refresh of files from the server first (optional, default `true`)
597
602
 
598
- Returns **[Promise][145]<[ProjectFile][1]>** The eventual fetched ProjectFile (or requested subkey)
603
+ Returns **[Promise][148]<[ProjectFile][1]>** The eventual fetched ProjectFile (or requested subkey)
599
604
 
600
605
  ### createProjectFile
601
606
 
@@ -604,9 +609,9 @@ This creates an empty file which can then be written to
604
609
 
605
610
  #### Parameters
606
611
 
607
- * `name` **[String][138]** The name + relative directory path component
612
+ * `name` **[String][141]** The name + relative directory path component
608
613
 
609
- Returns **[Promise][145]<[ProjectFile][1]>** The eventual ProjectFile created
614
+ Returns **[Promise][148]<[ProjectFile][1]>** The eventual ProjectFile created
610
615
 
611
616
  ## handshake
612
617
 
@@ -614,9 +619,9 @@ Return basic server information as a form of validation
614
619
 
615
620
  ### Properties
616
621
 
617
- * `date` **[Date][140]** Server date
622
+ * `date` **[Date][143]** Server date
618
623
 
619
- Returns **[Promise][145]<[Object][139]>** Basic promise result
624
+ Returns **[Promise][148]<[Object][142]>** Basic promise result
620
625
 
621
626
  ## setServerVerbosity
622
627
 
@@ -624,7 +629,7 @@ RPC callback to set the server verbostiy level
624
629
 
625
630
  ### Parameters
626
631
 
627
- * `verbosity` **[Number][141]** The desired server verbosity level
632
+ * `verbosity` **[Number][144]** The desired server verbosity level
628
633
 
629
634
  ## User
630
635
 
@@ -632,16 +637,16 @@ User / active session within TERA
632
637
 
633
638
  ### Properties
634
639
 
635
- * `id` **[String][138]** Unique identifier of the user
636
- * `email` **[String][138]** The email address of the current user
637
- * `name` **[String][138]** The provided full name of the user
638
- * `isSubscribed` **[Boolean][147]** Whether the active user has a TERA subscription
640
+ * `id` **[String][141]** Unique identifier of the user
641
+ * `email` **[String][141]** The email address of the current user
642
+ * `name` **[String][141]** The provided full name of the user
643
+ * `isSubscribed` **[Boolean][150]** Whether the active user has a TERA subscription
639
644
 
640
645
  ## getUser
641
646
 
642
647
  Fetch the current session user
643
648
 
644
- Returns **[Promise][145]<[User][82]>** The current logged in user or null if none
649
+ Returns **[Promise][148]<[User][83]>** The current logged in user or null if none
645
650
 
646
651
  ## requireUser
647
652
 
@@ -651,11 +656,11 @@ This is an pre-requisite step for requireProject()
651
656
 
652
657
  ### Parameters
653
658
 
654
- * `options` **[Object][139]?** Additional options to mutate behaviour
659
+ * `options` **[Object][142]?** Additional options to mutate behaviour
655
660
 
656
- * `options.forceRetry` **[Boolean][147]** Forcabily try to refresh the user state (optional, default `false`)
661
+ * `options.forceRetry` **[Boolean][150]** Forcabily try to refresh the user state (optional, default `false`)
657
662
 
658
- Returns **[Promise][145]<[User][82]>** The current logged in user or null if none
663
+ Returns **[Promise][148]<[User][83]>** The current logged in user or null if none
659
664
 
660
665
  ## Project
661
666
 
@@ -665,13 +670,13 @@ Project entry within TERA
665
670
 
666
671
  Get the currently active project, if any
667
672
 
668
- Returns **[Promise][145]<([Project][87] | null)>** The currently active project, if any
673
+ Returns **[Promise][148]<([Project][88] | null)>** The currently active project, if any
669
674
 
670
675
  ## getProjects
671
676
 
672
677
  Get a list of projects the current session user has access to
673
678
 
674
- Returns **[Promise][145]<[Array][144]<[Project][87]>>** Collection of projects the user has access to
679
+ Returns **[Promise][148]<[Array][147]<[Project][88]>>** Collection of projects the user has access to
675
680
 
676
681
  ## setActiveProject
677
682
 
@@ -679,7 +684,7 @@ Set the currently active project within TERA
679
684
 
680
685
  ### Parameters
681
686
 
682
- * `project` **([Object][139] | [String][138])** The project to set as active - either the full Project object or its ID
687
+ * `project` **([Object][142] | [String][141])** The project to set as active - either the full Project object or its ID
683
688
 
684
689
  ## requireProject
685
690
 
@@ -688,14 +693,14 @@ Note that this function will percist in asking the uesr even if they try to canc
688
693
 
689
694
  ### Parameters
690
695
 
691
- * `options` **[Object][139]?** Additional options to mutate behaviour
696
+ * `options` **[Object][142]?** Additional options to mutate behaviour
692
697
 
693
- * `options.autoSetActiveProject` **[Boolean][147]** After selecting a project set that project as active in TERA (optional, default `true`)
694
- * `options.title` **[String][138]** The title of the dialog to display (optional, default `"Select a project to work with"`)
695
- * `options.noSelectTitle` **[String][138]** Dialog title when warning the user they need to select something (optional, default `'Select project'`)
696
- * `options.noSelectBody` **[String][138]** Dialog body when warning the user they need to select something (optional, default `'A project needs to be selected to continue'`)
698
+ * `options.autoSetActiveProject` **[Boolean][150]** After selecting a project set that project as active in TERA (optional, default `true`)
699
+ * `options.title` **[String][141]** The title of the dialog to display (optional, default `"Select a project to work with"`)
700
+ * `options.noSelectTitle` **[String][141]** Dialog title when warning the user they need to select something (optional, default `'Select project'`)
701
+ * `options.noSelectBody` **[String][141]** Dialog body when warning the user they need to select something (optional, default `'A project needs to be selected to continue'`)
697
702
 
698
- Returns **[Promise][145]<[Project][87]>** The active project
703
+ Returns **[Promise][148]<[Project][88]>** The active project
699
704
 
700
705
  ## selectProject
701
706
 
@@ -703,13 +708,13 @@ Prompt the user to select a project from those available
703
708
 
704
709
  ### Parameters
705
710
 
706
- * `options` **[Object][139]?** Additional options to mutate behaviour
711
+ * `options` **[Object][142]?** Additional options to mutate behaviour
707
712
 
708
- * `options.title` **[String][138]** The title of the dialog to display (optional, default `"Select a project to work with"`)
709
- * `options.allowCancel` **[Boolean][147]** Advertise cancelling the operation, the dialog can still be cancelled by closing it (optional, default `true`)
710
- * `options.setActive` **[Boolean][147]** Also set the project as active when selected (optional, default `false`)
713
+ * `options.title` **[String][141]** The title of the dialog to display (optional, default `"Select a project to work with"`)
714
+ * `options.allowCancel` **[Boolean][150]** Advertise cancelling the operation, the dialog can still be cancelled by closing it (optional, default `true`)
715
+ * `options.setActive` **[Boolean][150]** Also set the project as active when selected (optional, default `false`)
711
716
 
712
- Returns **[Promise][145]<[Project][87]>** The active project
717
+ Returns **[Promise][148]<[Project][88]>** The active project
713
718
 
714
719
  ## getProjectState
715
720
 
@@ -717,12 +722,12 @@ Return the current, full snapshot state of the active project
717
722
 
718
723
  ### Parameters
719
724
 
720
- * `options` **[Object][139]?** Additional options to mutate behaviour
725
+ * `options` **[Object][142]?** Additional options to mutate behaviour
721
726
 
722
- * `options.autoRequire` **[Boolean][147]** Run `requireProject()` automatically before continuing (optional, default `true`)
723
- * `Paths` **[Array][144]<[String][138]>** to subscribe to e.g. \['/users/'],
727
+ * `options.autoRequire` **[Boolean][150]** Run `requireProject()` automatically before continuing (optional, default `true`)
728
+ * `Paths` **[Array][147]<[String][141]>** to subscribe to e.g. \['/users/'],
724
729
 
725
- Returns **[Promise][145]<[Object][139]>** The current project state snapshot
730
+ Returns **[Promise][148]<[Object][142]>** The current project state snapshot
726
731
 
727
732
  ## setProjectState
728
733
 
@@ -734,13 +739,13 @@ Paths can be any valid Lodash.set() value such as:
734
739
 
735
740
  ### Parameters
736
741
 
737
- * `path` **([String][138] | [Array][144]<[String][138]>)** The sub-path within the project state to set
742
+ * `path` **([String][141] | [Array][147]<[String][141]>)** The sub-path within the project state to set
738
743
  * `value` **any** The value to set
739
- * `options` **[Object][139]?** Additional options to mutate behaviour
744
+ * `options` **[Object][142]?** Additional options to mutate behaviour
740
745
 
741
- * `options.save` **[Boolean][147]** Save the changes to the server immediately, disable to queue up multiple writes (optional, default `true`)
746
+ * `options.save` **[Boolean][150]** Save the changes to the server immediately, disable to queue up multiple writes (optional, default `true`)
742
747
 
743
- Returns **[Promise][145]** A promise which resolves when the operation has been dispatched to the server
748
+ Returns **[Promise][148]** A promise which resolves when the operation has been dispatched to the server
744
749
 
745
750
  ## setProjectStateDefaults
746
751
 
@@ -750,31 +755,31 @@ Set a nested value within the project state - just like `setProjectState()` - bu
750
755
 
751
756
  ### Parameters
752
757
 
753
- * `path` **([String][138] | [Array][144]<[String][138]>)** The sub-path within the project state to set
758
+ * `path` **([String][141] | [Array][147]<[String][141]>)** The sub-path within the project state to set
754
759
  * `value` **any** The value to set
755
- * `options` **[Object][139]?** Additional options to mutate behaviour, see setProjectState() for the full list of supported options
760
+ * `options` **[Object][142]?** Additional options to mutate behaviour, see setProjectState() for the full list of supported options
756
761
 
757
- Returns **[Promise][145]<[Boolean][147]>** A promise which resolves to whether any changes were made - True if defaults were applied, false otherwise
762
+ Returns **[Promise][148]<[Boolean][150]>** A promise which resolves to whether any changes were made - True if defaults were applied, false otherwise
758
763
 
759
764
  ## setProjectStateFlush
760
765
 
761
766
  Force copying local changes to the server
762
767
  This is only ever needed when saving large quantities of data that need to be immediately available
763
768
 
764
- Returns **[Promise][145]** A promise which resolves when the operation has completed
769
+ Returns **[Promise][148]** A promise which resolves when the operation has completed
765
770
 
766
771
  ## setProjectStateRefresh
767
772
 
768
773
  Force refetching the remote project state into local
769
774
  This is only ever needed when saving large quantities of data that need to be immediately available
770
775
 
771
- Returns **[Promise][145]** A promise which resolves when the operation has completed
776
+ Returns **[Promise][148]** A promise which resolves when the operation has completed
772
777
 
773
778
  ## saveProjectState
774
779
 
775
780
  Force-Save the currently active project state
776
781
 
777
- Returns **[Promise][145]** A promise which resolves when the operation has completed
782
+ Returns **[Promise][148]** A promise which resolves when the operation has completed
778
783
 
779
784
  ## replaceProjectState
780
785
 
@@ -785,9 +790,9 @@ You almost never want to use this function directly, see `setProjectState(path,
785
790
 
786
791
  ### Parameters
787
792
 
788
- * `newState` **[Object][139]** The new state to replace the current state with
793
+ * `newState` **[Object][142]** The new state to replace the current state with
789
794
 
790
- Returns **[Promise][145]** A promise which resolves when the operation has completed
795
+ Returns **[Promise][148]** A promise which resolves when the operation has completed
791
796
 
792
797
  ## applyProjectStatePatch
793
798
 
@@ -795,9 +800,9 @@ Apply a computed `just-diff` patch to the current project state
795
800
 
796
801
  ### Parameters
797
802
 
798
- * `Patch` **[Object][139]** to apply
803
+ * `Patch` **[Object][142]** to apply
799
804
 
800
- Returns **[Promise][145]** A promise which resolves when the operation has completed
805
+ Returns **[Promise][148]** A promise which resolves when the operation has completed
801
806
 
802
807
  ## subscribeProjectState
803
808
 
@@ -805,7 +810,7 @@ Subscribe to project state changes
805
810
  This will dispatch an RPC call to the source object `applyProjectStatePatchLocal()` function with the patch
806
811
  If the above call fails the subscriber is assumed as dead and unsubscribed from the polling list
807
812
 
808
- Returns **[Promise][145]<[Function][151]>** A promise which resolves when a subscription has been created, call the resulting function to unsubscribe
813
+ Returns **[Promise][148]<[Function][154]>** A promise which resolves when a subscription has been created, call the resulting function to unsubscribe
809
814
 
810
815
  ## FileFilters
811
816
 
@@ -813,10 +818,10 @@ Data structure for a file filter
813
818
 
814
819
  ### Properties
815
820
 
816
- * `library` **[Boolean][147]?** Restrict to library files only
817
- * `filename` **[String][138]?** CSV of @momsfriendlydevco/match expressions to filter the filename by (filenames are the basename sans extension)
818
- * `basename` **[String][138]?** CSV of @momsfriendlydevco/match expressions to filter the basename by
819
- * `ext` **[String][138]?** CSV of @momsfriendlydevco/match expressions to filter the file extension by
821
+ * `library` **[Boolean][150]?** Restrict to library files only
822
+ * `filename` **[String][141]?** CSV of @momsfriendlydevco/match expressions to filter the filename by (filenames are the basename sans extension)
823
+ * `basename` **[String][141]?** CSV of @momsfriendlydevco/match expressions to filter the basename by
824
+ * `ext` **[String][141]?** CSV of @momsfriendlydevco/match expressions to filter the file extension by
820
825
 
821
826
  ## selectProjectFile
822
827
 
@@ -824,20 +829,33 @@ Prompt the user to select a library to operate on
824
829
 
825
830
  ### Parameters
826
831
 
827
- * `options` **[Object][139]?** Additional options to mutate behaviour
832
+ * `options` **[Object][142]?** Additional options to mutate behaviour
833
+
834
+ * `options.title` **[String][141]** The title of the dialog to display (optional, default `"Select a file"`)
835
+ * `options.hint` **([String][141] | [Array][147]<[String][141]>)?** Hints to identify the file to select in array order of preference
836
+ * `options.save` **[Boolean][150]** Set to truthy if saving a new file, UI will adjust to allowing overwrite OR new file name input (optional, default `false`)
837
+ * `options.filters` **[FileFilters][111]?** Optional file filters
838
+ * `options.allowUpload` **[Boolean][150]** Allow uploading new files (optional, default `true`)
839
+ * `options.allowRefresh` **[Boolean][150]** Allow the user to manually refresh the file list (optional, default `true`)
840
+ * `options.allowDownloadZip` **[Boolean][150]** Allow the user to download a Zip of all files (optional, default `true`)
841
+ * `options.allowCancel` **[Boolean][150]** Allow cancelling the operation. Will throw `'CANCEL'` as the promise rejection if acationed (optional, default `true`)
842
+ * `options.autoRequire` **[Boolean][150]** Run `requireProject()` automatically before continuing (optional, default `true`)
843
+ * `options.filter` **[FileFilters][111]?** Optional file filters
844
+
845
+ Returns **[Promise][148]<[ProjectFile][1]>** The eventually selected file, if in save mode new files are created as stubs
846
+
847
+ ## getProjectFileContents
848
+
849
+ Fetch the raw contents of a file by its ID
850
+
851
+ ### Parameters
852
+
853
+ * `id` **[String][141]?** File ID to retrieve the contents of
854
+ * `options` **[Object][142]?** Additioanl options to mutate behaviour
828
855
 
829
- * `options.title` **[String][138]** The title of the dialog to display (optional, default `"Select a file"`)
830
- * `options.hint` **([String][138] | [Array][144]<[String][138]>)?** Hints to identify the file to select in array order of preference
831
- * `options.save` **[Boolean][147]** Set to truthy if saving a new file, UI will adjust to allowing overwrite OR new file name input (optional, default `false`)
832
- * `options.filters` **[FileFilters][110]?** Optional file filters
833
- * `options.allowUpload` **[Boolean][147]** Allow uploading new files (optional, default `true`)
834
- * `options.allowRefresh` **[Boolean][147]** Allow the user to manually refresh the file list (optional, default `true`)
835
- * `options.allowDownloadZip` **[Boolean][147]** Allow the user to download a Zip of all files (optional, default `true`)
836
- * `options.allowCancel` **[Boolean][147]** Allow cancelling the operation. Will throw `'CANCEL'` as the promise rejection if acationed (optional, default `true`)
837
- * `options.autoRequire` **[Boolean][147]** Run `requireProject()` automatically before continuing (optional, default `true`)
838
- * `options.filter` **[FileFilters][110]?** Optional file filters
856
+ * `options.format` **(`"blob"` | `"json"`)** The format to retrieve the file in (optional, default `'blob'`)
839
857
 
840
- Returns **[Promise][145]<[ProjectFile][1]>** The eventually selected file, if in save mode new files are created as stubs
858
+ Returns **any** The file contents in the requested format
841
859
 
842
860
  ## deleteProjectFile
843
861
 
@@ -845,9 +863,9 @@ Remove a project file by its ID
845
863
 
846
864
  ### Parameters
847
865
 
848
- * `id` **[String][138]** The File ID to remove
866
+ * `id` **[String][141]** The File ID to remove
849
867
 
850
- Returns **[Promise][145]** A promise which resolves when the operation has completed
868
+ Returns **[Promise][148]** A promise which resolves when the operation has completed
851
869
 
852
870
  ## setProjectFile
853
871
 
@@ -855,10 +873,10 @@ Replace a project files contents
855
873
 
856
874
  ### Parameters
857
875
 
858
- * `id` **[String][138]** File to overwrite
859
- * `contents` **(File | [Blob][142] | [FormData][143] | [Object][139] | [Array][144])** The new file contents
876
+ * `id` **[String][141]** File to overwrite
877
+ * `contents` **(File | [Blob][145] | [FormData][146] | [Object][142] | [Array][147])** The new file contents
860
878
 
861
- Returns **[Promise][145]** A promise which will resolve when the write operation has completed
879
+ Returns **[Promise][148]** A promise which will resolve when the write operation has completed
862
880
 
863
881
  ## selectProjectLibrary
864
882
 
@@ -866,18 +884,18 @@ Prompt the user to select a library to operate on and return a array of referenc
866
884
 
867
885
  ### Parameters
868
886
 
869
- * `options` **[Object][139]?** Additional options to mutate behaviour
887
+ * `options` **[Object][142]?** Additional options to mutate behaviour
870
888
 
871
- * `options.title` **[String][138]** The title of the dialog to display (optional, default `"Select a citation library"`)
872
- * `options.hint` **([String][138] | [Array][144]<[String][138]>)?** Hints to identify the library to select in array order of preference. Generally corresponds to the previous stage - e.g. 'deduped', 'review1', 'review2', 'dedisputed'
873
- * `options.allowUpload` **[Boolean][147]** Allow uploading new files (optional, default `true`)
874
- * `options.allowRefresh` **[Boolean][147]** Allow the user to manually refresh the file list (optional, default `true`)
875
- * `options.allowDownloadZip` **[Boolean][147]** Allow the user to download a Zip of all files (optional, default `true`)
876
- * `options.allowCancel` **[Boolean][147]** Allow cancelling the operation. Will throw `'CANCEL'` as the promise rejection if acationed (optional, default `true`)
877
- * `options.autoRequire` **[Boolean][147]** Run `requireProject()` automatically before continuing (optional, default `true`)
878
- * `options.filters` **[FileFilters][110]?** Optional file filters, defaults to citation library selection only
889
+ * `options.title` **[String][141]** The title of the dialog to display (optional, default `"Select a citation library"`)
890
+ * `options.hint` **([String][141] | [Array][147]<[String][141]>)?** Hints to identify the library to select in array order of preference. Generally corresponds to the previous stage - e.g. 'deduped', 'review1', 'review2', 'dedisputed'
891
+ * `options.allowUpload` **[Boolean][150]** Allow uploading new files (optional, default `true`)
892
+ * `options.allowRefresh` **[Boolean][150]** Allow the user to manually refresh the file list (optional, default `true`)
893
+ * `options.allowDownloadZip` **[Boolean][150]** Allow the user to download a Zip of all files (optional, default `true`)
894
+ * `options.allowCancel` **[Boolean][150]** Allow cancelling the operation. Will throw `'CANCEL'` as the promise rejection if acationed (optional, default `true`)
895
+ * `options.autoRequire` **[Boolean][150]** Run `requireProject()` automatically before continuing (optional, default `true`)
896
+ * `options.filters` **[FileFilters][111]?** Optional file filters, defaults to citation library selection only
879
897
 
880
- Returns **[Promise][145]<[Array][144]\<Ref>>** A collection of references from the selected file
898
+ Returns **[Promise][148]<[Array][147]\<Ref>>** A collection of references from the selected file
881
899
 
882
900
  ## getProjectLibrary
883
901
 
@@ -885,15 +903,15 @@ Fetch + convert a project file into a library of citations
885
903
 
886
904
  ### Parameters
887
905
 
888
- * `id` **[String][138]** File ID to read
889
- * `options` **[Object][139]?** Additional options to mutate behaviour
906
+ * `id` **[String][141]** File ID to read
907
+ * `options` **[Object][142]?** Additional options to mutate behaviour
890
908
 
891
- * `options.format` **[String][138]** Format for the file. ENUM: 'pojo' (return a parsed JS collection), 'blob' (raw JS Blob object), 'file' (named JS File object) (optional, default `'json'`)
892
- * `options.autoRequire` **[Boolean][147]** Run `requireProject()` automatically before continuing (optional, default `true`)
893
- * `options.filter` **[Function][151]?** Optional async file filter, called each time as `(File:ProjectFile)`
894
- * `options.find` **[Function][151]?** Optional async final stage file filter to reduce all candidates down to one subject file
909
+ * `options.format` **[String][141]** Format for the file. ENUM: 'pojo' (return a parsed JS collection), 'blob' (raw JS Blob object), 'file' (named JS File object) (optional, default `'json'`)
910
+ * `options.autoRequire` **[Boolean][150]** Run `requireProject()` automatically before continuing (optional, default `true`)
911
+ * `options.filter` **[Function][154]?** Optional async file filter, called each time as `(File:ProjectFile)`
912
+ * `options.find` **[Function][154]?** Optional async final stage file filter to reduce all candidates down to one subject file
895
913
 
896
- Returns **([Promise][145]<[Array][144]\<Ref>> | [Promise][145]\<any>)** A collection of references (default bevahiour) or a whatever format was requested
914
+ Returns **([Promise][148]<[Array][147]\<Ref>> | [Promise][148]\<any>)** A collection of references (default bevahiour) or a whatever format was requested
897
915
 
898
916
  ## setProjectLibrary
899
917
 
@@ -901,33 +919,33 @@ Save back a citation library from some input
901
919
 
902
920
  ### Parameters
903
921
 
904
- * `id` **[String][138]?** File ID to save back to, if omitted a file will be prompted for
905
- * `refs` **([Array][144]\<RefLibRef> | [Blob][142] | File)?** Collection of references for the selected library or the raw Blob/File
906
- * `options` **[Object][139]?** Additional options to mutate behaviour
922
+ * `id` **[String][141]?** File ID to save back to, if omitted a file will be prompted for
923
+ * `refs` **([Array][147]\<RefLibRef> | [Blob][145] | File)?** Collection of references for the selected library or the raw Blob/File
924
+ * `options` **[Object][142]?** Additional options to mutate behaviour
907
925
 
908
- * `options.id` **[String][138]?** Alternate method to specify the file ID to save as, if omitted one will be prompted for
909
- * `options.refs` **([Array][144]\<RefLibRef> | [Blob][142] | File)?** Alternate method to specify the refs to save as an array or raw Blob/File
910
- * `options.format` **[String][138]** Input format used. ENUM: 'pojo' (return a parsed JS collection), 'blob' (raw JS Blob object), 'file' (named JS File object) (optional, default `'json'`)
911
- * `options.autoRequire` **[Boolean][147]** Run `requireProject()` automatically before continuing (optional, default `true`)
912
- * `options.hint` **[String][138]?** Hint to store against the library. Generally corresponds to the current operation being performed - e.g. 'deduped'
913
- * `options.filename` **[String][138]?** Suggested filename if `id` is unspecified
914
- * `options.title` **[String][138]** Dialog title if `id` is unspecified and a prompt is necessary (optional, default `'Save citation library'`)
915
- * `options.overwrite` **[Boolean][147]** Allow existing file upsert (optional, default `true`)
916
- * `options.meta` **[Object][139]?** Optional meta data to merge into the file data
926
+ * `options.id` **[String][141]?** Alternate method to specify the file ID to save as, if omitted one will be prompted for
927
+ * `options.refs` **([Array][147]\<RefLibRef> | [Blob][145] | File)?** Alternate method to specify the refs to save as an array or raw Blob/File
928
+ * `options.format` **[String][141]** Input format used. ENUM: 'pojo' (return a parsed JS collection), 'blob' (raw JS Blob object), 'file' (named JS File object) (optional, default `'json'`)
929
+ * `options.autoRequire` **[Boolean][150]** Run `requireProject()` automatically before continuing (optional, default `true`)
930
+ * `options.hint` **[String][141]?** Hint to store against the library. Generally corresponds to the current operation being performed - e.g. 'deduped'
931
+ * `options.filename` **[String][141]?** Suggested filename if `id` is unspecified
932
+ * `options.title` **[String][141]** Dialog title if `id` is unspecified and a prompt is necessary (optional, default `'Save citation library'`)
933
+ * `options.overwrite` **[Boolean][150]** Allow existing file upsert (optional, default `true`)
934
+ * `options.meta` **[Object][142]?** Optional meta data to merge into the file data
917
935
 
918
- Returns **[Promise][145]** A promise which resolves when the save operation has completed
936
+ Returns **[Promise][148]** A promise which resolves when the save operation has completed
919
937
 
920
938
  ## projectLog
921
939
 
922
940
  Create a log entry for the currently active project
923
941
 
924
- The required log object can be of various forms. See [https://tera-tools.com/api/logs.json][152] for the full list
942
+ The required log object can be of various forms. See [https://tera-tools.com/api/logs.json][155] for the full list
925
943
 
926
944
  ### Parameters
927
945
 
928
- * `log` **[Object][139]** The log entry to create
946
+ * `log` **[Object][142]** The log entry to create
929
947
 
930
- Returns **[Promise][145]** A promise which resolves when the operation has completed
948
+ Returns **[Promise][148]** A promise which resolves when the operation has completed
931
949
 
932
950
  ## setPageUrl
933
951
 
@@ -936,7 +954,7 @@ This only really makes a difference to tools within the tera-tools.com site wher
936
954
 
937
955
  ### Parameters
938
956
 
939
- * `url` **[String][138]** The URL to restore on next refresh
957
+ * `url` **[String][141]** The URL to restore on next refresh
940
958
 
941
959
  ## setPageTitle
942
960
 
@@ -945,7 +963,7 @@ This is usually called by a tool nested within the tera-tools.com embed
945
963
 
946
964
  ### Parameters
947
965
 
948
- * `title` **[String][138]** The current page title
966
+ * `title` **[String][141]** The current page title
949
967
 
950
968
  ## uiAlert
951
969
 
@@ -953,13 +971,13 @@ Display simple text within TERA
953
971
 
954
972
  ### Parameters
955
973
 
956
- * `text` **[String][138]** The text to display
957
- * `options` **[Object][139]?** Additional options to mutate behaviour
974
+ * `text` **[String][141]** The text to display
975
+ * `options` **[Object][142]?** Additional options to mutate behaviour
958
976
 
959
- * `options.title` **[String][138]** The title of the alert box (optional, default `'TERA'`)
960
- * `options.isHtml` **[Boolean][147]** If falsy the text is rendered as plain-text otherwise it will be assumed as HTML content (optional, default `false`)
977
+ * `options.title` **[String][141]** The title of the alert box (optional, default `'TERA'`)
978
+ * `options.isHtml` **[Boolean][150]** If falsy the text is rendered as plain-text otherwise it will be assumed as HTML content (optional, default `false`)
961
979
 
962
- Returns **[Promise][145]** A promise which resolves when the alert has been dismissed
980
+ Returns **[Promise][148]** A promise which resolves when the alert has been dismissed
963
981
 
964
982
  ## uiProgress
965
983
 
@@ -968,17 +986,17 @@ All options are cumulative - i.e. they are merged with other options previously
968
986
 
969
987
  ### Parameters
970
988
 
971
- * `options` **([Object][139] | [Boolean][147])?** Additional options to mutate behaviour, if boolean false `{close: true}` is assumed
989
+ * `options` **([Object][142] | [Boolean][150])?** Additional options to mutate behaviour, if boolean false `{close: true}` is assumed
972
990
 
973
- * `options.title` **[String][138]** Window title, can only be set on the initial call (optional, default `'TERA'`)
974
- * `options.body` **[String][138]** Window body text, can only be set on the initial call (optional, default `''`)
975
- * `options.bodyHtml` **[Boolean][147]** Treat body text as HTML (optional, default `false`)
976
- * `options.close` **[Boolean][147]** Close the existing dialog, if true the dialog is disposed and options reset (optional, default `false`)
977
- * `options.text` **[String][138]?** The text of the task being conducted
978
- * `options.progress` **[Number][141]?** The current progress of the task being conducted, this is assumed to be a value less than `maxProgress`
979
- * `options.maxProgress` **[Number][141]?** The maximum value that the progress can be
991
+ * `options.title` **[String][141]** Window title, can only be set on the initial call (optional, default `'TERA'`)
992
+ * `options.body` **[String][141]** Window body text, can only be set on the initial call (optional, default `''`)
993
+ * `options.bodyHtml` **[Boolean][150]** Treat body text as HTML (optional, default `false`)
994
+ * `options.close` **[Boolean][150]** Close the existing dialog, if true the dialog is disposed and options reset (optional, default `false`)
995
+ * `options.text` **[String][141]?** The text of the task being conducted
996
+ * `options.progress` **[Number][144]?** The current progress of the task being conducted, this is assumed to be a value less than `maxProgress`
997
+ * `options.maxProgress` **[Number][144]?** The maximum value that the progress can be
980
998
 
981
- Returns **[Promise][145]** A promise which resolves when the dialog has been updated
999
+ Returns **[Promise][148]** A promise which resolves when the dialog has been updated
982
1000
 
983
1001
  ## uiWindow
984
1002
 
@@ -986,13 +1004,13 @@ Open a popup window containing a new site
986
1004
 
987
1005
  ### Parameters
988
1006
 
989
- * `url` **[String][138]** The URL to open
990
- * `options` **[Object][139]?** Additional options to mutate behaviour
1007
+ * `url` **[String][141]** The URL to open
1008
+ * `options` **[Object][142]?** Additional options to mutate behaviour
991
1009
 
992
- * `options.width` **[Number][141]** The desired width of the window (optional, default `500`)
993
- * `options.height` **[Number][141]** The desired height of the window (optional, default `600`)
994
- * `options.center` **[Boolean][147]** Attempt to center the window on the screen (optional, default `true`)
995
- * `options.permissions` **[Object][139]?** Additional permissions to set on opening, defaults to a suitable set of permission for popups (see code)
1010
+ * `options.width` **[Number][144]** The desired width of the window (optional, default `500`)
1011
+ * `options.height` **[Number][144]** The desired height of the window (optional, default `600`)
1012
+ * `options.center` **[Boolean][150]** Attempt to center the window on the screen (optional, default `true`)
1013
+ * `options.permissions` **[Object][142]?** Additional permissions to set on opening, defaults to a suitable set of permission for popups (see code)
996
1014
 
997
1015
  Returns **WindowProxy** The opened window object (if `noopener` is not set in permissions)
998
1016
 
@@ -1003,10 +1021,10 @@ This function is ideally called within a requestFocus() wrapper
1003
1021
 
1004
1022
  ### Parameters
1005
1023
 
1006
- * `content` **(DOMElement | [String][138] | `false`)** Either a prepared DOM element or string to compile, set to falsy to remove existing content
1007
- * `options` **[Object][139]?** Additional options to mutate behaviour
1024
+ * `content` **(DOMElement | [String][141] | `false`)** Either a prepared DOM element or string to compile, set to falsy to remove existing content
1025
+ * `options` **[Object][142]?** Additional options to mutate behaviour
1008
1026
 
1009
- * `options.logo` **([Boolean][147] | [String][138])** Add a logo to the output, if boolean true the Tera-tools logo is used otherwise specify a path or URL (optional, default `false`)
1027
+ * `options.logo` **([Boolean][150] | [String][141])** Add a logo to the output, if boolean true the Tera-tools logo is used otherwise specify a path or URL (optional, default `false`)
1010
1028
 
1011
1029
  [1]: #projectfile
1012
1030
 
@@ -1048,266 +1066,272 @@ This function is ideally called within a requestFocus() wrapper
1048
1066
 
1049
1067
  [20]: #getcontents
1050
1068
 
1051
- [21]: #setcontents
1069
+ [21]: #parameters
1070
+
1071
+ [22]: #setcontents
1072
+
1073
+ [23]: #parameters-1
1074
+
1075
+ [24]: #getrefs
1052
1076
 
1053
- [22]: #parameters
1077
+ [25]: #setrefs
1054
1078
 
1055
- [23]: #getrefs
1079
+ [26]: #parameters-2
1056
1080
 
1057
- [24]: #setrefs
1081
+ [27]: #serialize
1058
1082
 
1059
- [25]: #parameters-1
1083
+ [28]: #deserialize
1060
1084
 
1061
- [26]: #serialize
1085
+ [29]: #parameters-3
1062
1086
 
1063
- [27]: #deserialize
1087
+ [30]: #terafy
1064
1088
 
1065
- [28]: #parameters-2
1089
+ [31]: #settings
1066
1090
 
1067
- [29]: #terafy
1091
+ [32]: #properties-1
1068
1092
 
1069
- [30]: #settings
1093
+ [33]: #events
1070
1094
 
1071
- [31]: #properties-1
1095
+ [34]: #dom
1072
1096
 
1073
- [32]: #events
1097
+ [35]: #properties-2
1074
1098
 
1075
- [33]: #dom
1099
+ [36]: #methods
1076
1100
 
1077
- [34]: #properties-2
1101
+ [37]: #plugins
1078
1102
 
1079
- [35]: #methods
1103
+ [38]: #send
1080
1104
 
1081
- [36]: #plugins
1105
+ [39]: #parameters-4
1082
1106
 
1083
- [37]: #send
1107
+ [40]: #sendraw
1084
1108
 
1085
- [38]: #parameters-3
1109
+ [41]: #parameters-5
1086
1110
 
1087
- [39]: #sendraw
1111
+ [42]: #rpc
1088
1112
 
1089
- [40]: #parameters-4
1113
+ [43]: #parameters-6
1090
1114
 
1091
- [41]: #rpc
1115
+ [44]: #acceptmessage
1092
1116
 
1093
- [42]: #parameters-5
1117
+ [45]: #parameters-7
1094
1118
 
1095
- [43]: #acceptmessage
1119
+ [46]: #acceptpostboxes
1096
1120
 
1097
- [44]: #parameters-6
1121
+ [47]: #createprojectstatepatch
1098
1122
 
1099
- [45]: #acceptpostboxes
1123
+ [48]: #parameters-8
1100
1124
 
1101
- [46]: #createprojectstatepatch
1125
+ [49]: #applyprojectstatepatchlocal
1102
1126
 
1103
- [47]: #parameters-7
1127
+ [50]: #parameters-9
1104
1128
 
1105
- [48]: #applyprojectstatepatchlocal
1129
+ [51]: #init
1106
1130
 
1107
- [49]: #parameters-8
1131
+ [52]: #parameters-10
1108
1132
 
1109
- [50]: #init
1133
+ [53]: #detectmode
1110
1134
 
1111
- [51]: #parameters-9
1135
+ [54]: #injectcomms
1112
1136
 
1113
- [52]: #detectmode
1137
+ [55]: #injectstylesheet
1114
1138
 
1115
- [53]: #injectcomms
1139
+ [56]: #injectmethods
1116
1140
 
1117
- [54]: #injectstylesheet
1141
+ [57]: #debug
1118
1142
 
1119
- [55]: #injectmethods
1143
+ [58]: #parameters-11
1120
1144
 
1121
- [56]: #debug
1145
+ [59]: #set
1122
1146
 
1123
- [57]: #parameters-10
1147
+ [60]: #parameters-12
1124
1148
 
1125
- [58]: #set
1149
+ [61]: #setifdev
1126
1150
 
1127
- [59]: #parameters-11
1151
+ [62]: #parameters-13
1128
1152
 
1129
- [60]: #setifdev
1153
+ [63]: #use
1130
1154
 
1131
- [61]: #parameters-12
1155
+ [64]: #parameters-14
1132
1156
 
1133
- [62]: #use
1157
+ [65]: #mixin
1134
1158
 
1135
- [63]: #parameters-13
1159
+ [66]: #parameters-15
1136
1160
 
1137
- [64]: #mixin
1161
+ [67]: #toggledevmode
1138
1162
 
1139
- [65]: #parameters-14
1163
+ [68]: #parameters-16
1140
1164
 
1141
- [66]: #toggledevmode
1165
+ [69]: #togglefocus
1142
1166
 
1143
- [67]: #parameters-15
1167
+ [70]: #parameters-17
1144
1168
 
1145
- [68]: #togglefocus
1169
+ [71]: #selectprojectfile
1146
1170
 
1147
- [69]: #parameters-16
1171
+ [72]: #parameters-18
1148
1172
 
1149
- [70]: #selectprojectfile
1173
+ [73]: #getprojectfiles
1150
1174
 
1151
- [71]: #parameters-17
1175
+ [74]: #parameters-19
1152
1176
 
1153
- [72]: #getprojectfiles
1177
+ [75]: #getprojectfile
1154
1178
 
1155
- [73]: #parameters-18
1179
+ [76]: #parameters-20
1156
1180
 
1157
- [74]: #getprojectfile
1181
+ [77]: #createprojectfile
1158
1182
 
1159
- [75]: #parameters-19
1183
+ [78]: #parameters-21
1160
1184
 
1161
- [76]: #createprojectfile
1185
+ [79]: #handshake
1162
1186
 
1163
- [77]: #parameters-20
1187
+ [80]: #properties-3
1164
1188
 
1165
- [78]: #handshake
1189
+ [81]: #setserververbosity
1166
1190
 
1167
- [79]: #properties-3
1191
+ [82]: #parameters-22
1168
1192
 
1169
- [80]: #setserververbosity
1193
+ [83]: #user
1170
1194
 
1171
- [81]: #parameters-21
1195
+ [84]: #properties-4
1172
1196
 
1173
- [82]: #user
1197
+ [85]: #getuser
1174
1198
 
1175
- [83]: #properties-4
1199
+ [86]: #requireuser
1176
1200
 
1177
- [84]: #getuser
1201
+ [87]: #parameters-23
1178
1202
 
1179
- [85]: #requireuser
1203
+ [88]: #project
1180
1204
 
1181
- [86]: #parameters-22
1205
+ [89]: #getproject
1182
1206
 
1183
- [87]: #project
1207
+ [90]: #getprojects
1184
1208
 
1185
- [88]: #getproject
1209
+ [91]: #setactiveproject
1186
1210
 
1187
- [89]: #getprojects
1211
+ [92]: #parameters-24
1188
1212
 
1189
- [90]: #setactiveproject
1213
+ [93]: #requireproject
1190
1214
 
1191
- [91]: #parameters-23
1215
+ [94]: #parameters-25
1192
1216
 
1193
- [92]: #requireproject
1217
+ [95]: #selectproject
1194
1218
 
1195
- [93]: #parameters-24
1219
+ [96]: #parameters-26
1196
1220
 
1197
- [94]: #selectproject
1221
+ [97]: #getprojectstate
1198
1222
 
1199
- [95]: #parameters-25
1223
+ [98]: #parameters-27
1200
1224
 
1201
- [96]: #getprojectstate
1225
+ [99]: #setprojectstate
1202
1226
 
1203
- [97]: #parameters-26
1227
+ [100]: #parameters-28
1204
1228
 
1205
- [98]: #setprojectstate
1229
+ [101]: #setprojectstatedefaults
1206
1230
 
1207
- [99]: #parameters-27
1231
+ [102]: #parameters-29
1208
1232
 
1209
- [100]: #setprojectstatedefaults
1233
+ [103]: #setprojectstateflush
1210
1234
 
1211
- [101]: #parameters-28
1235
+ [104]: #setprojectstaterefresh
1212
1236
 
1213
- [102]: #setprojectstateflush
1237
+ [105]: #saveprojectstate
1214
1238
 
1215
- [103]: #setprojectstaterefresh
1239
+ [106]: #replaceprojectstate
1216
1240
 
1217
- [104]: #saveprojectstate
1241
+ [107]: #parameters-30
1218
1242
 
1219
- [105]: #replaceprojectstate
1243
+ [108]: #applyprojectstatepatch
1220
1244
 
1221
- [106]: #parameters-29
1245
+ [109]: #parameters-31
1222
1246
 
1223
- [107]: #applyprojectstatepatch
1247
+ [110]: #subscribeprojectstate
1224
1248
 
1225
- [108]: #parameters-30
1249
+ [111]: #filefilters
1226
1250
 
1227
- [109]: #subscribeprojectstate
1251
+ [112]: #properties-5
1228
1252
 
1229
- [110]: #filefilters
1253
+ [113]: #selectprojectfile-1
1230
1254
 
1231
- [111]: #properties-5
1255
+ [114]: #parameters-32
1232
1256
 
1233
- [112]: #selectprojectfile-1
1257
+ [115]: #getprojectfilecontents
1234
1258
 
1235
- [113]: #parameters-31
1259
+ [116]: #parameters-33
1236
1260
 
1237
- [114]: #deleteprojectfile
1261
+ [117]: #deleteprojectfile
1238
1262
 
1239
- [115]: #parameters-32
1263
+ [118]: #parameters-34
1240
1264
 
1241
- [116]: #setprojectfile
1265
+ [119]: #setprojectfile
1242
1266
 
1243
- [117]: #parameters-33
1267
+ [120]: #parameters-35
1244
1268
 
1245
- [118]: #selectprojectlibrary
1269
+ [121]: #selectprojectlibrary
1246
1270
 
1247
- [119]: #parameters-34
1271
+ [122]: #parameters-36
1248
1272
 
1249
- [120]: #getprojectlibrary
1273
+ [123]: #getprojectlibrary
1250
1274
 
1251
- [121]: #parameters-35
1275
+ [124]: #parameters-37
1252
1276
 
1253
- [122]: #setprojectlibrary
1277
+ [125]: #setprojectlibrary
1254
1278
 
1255
- [123]: #parameters-36
1279
+ [126]: #parameters-38
1256
1280
 
1257
- [124]: #projectlog
1281
+ [127]: #projectlog
1258
1282
 
1259
- [125]: #parameters-37
1283
+ [128]: #parameters-39
1260
1284
 
1261
- [126]: #setpageurl
1285
+ [129]: #setpageurl
1262
1286
 
1263
- [127]: #parameters-38
1287
+ [130]: #parameters-40
1264
1288
 
1265
- [128]: #setpagetitle
1289
+ [131]: #setpagetitle
1266
1290
 
1267
- [129]: #parameters-39
1291
+ [132]: #parameters-41
1268
1292
 
1269
- [130]: #uialert
1293
+ [133]: #uialert
1270
1294
 
1271
- [131]: #parameters-40
1295
+ [134]: #parameters-42
1272
1296
 
1273
- [132]: #uiprogress
1297
+ [135]: #uiprogress
1274
1298
 
1275
- [133]: #parameters-41
1299
+ [136]: #parameters-43
1276
1300
 
1277
- [134]: #uiwindow
1301
+ [137]: #uiwindow
1278
1302
 
1279
- [135]: #parameters-42
1303
+ [138]: #parameters-44
1280
1304
 
1281
- [136]: #uisplat
1305
+ [139]: #uisplat
1282
1306
 
1283
- [137]: #parameters-43
1307
+ [140]: #parameters-45
1284
1308
 
1285
- [138]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
1309
+ [141]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
1286
1310
 
1287
- [139]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
1311
+ [142]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
1288
1312
 
1289
- [140]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date
1313
+ [143]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date
1290
1314
 
1291
- [141]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
1315
+ [144]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
1292
1316
 
1293
- [142]: https://developer.mozilla.org/docs/Web/API/Blob
1317
+ [145]: https://developer.mozilla.org/docs/Web/API/Blob
1294
1318
 
1295
- [143]: https://developer.mozilla.org/docs/Web/API/FormData
1319
+ [146]: https://developer.mozilla.org/docs/Web/API/FormData
1296
1320
 
1297
- [144]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
1321
+ [147]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
1298
1322
 
1299
- [145]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
1323
+ [148]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
1300
1324
 
1301
- [146]: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
1325
+ [149]: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
1302
1326
 
1303
- [147]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
1327
+ [150]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
1304
1328
 
1305
- [148]: https://developer.mozilla.org/docs/Web/API/Window
1329
+ [151]: https://developer.mozilla.org/docs/Web/API/Window
1306
1330
 
1307
- [149]: https://developer.mozilla.org/docs/Web/API/MessageEvent
1331
+ [152]: https://developer.mozilla.org/docs/Web/API/MessageEvent
1308
1332
 
1309
- [150]: http://jsonpatch.com
1333
+ [153]: http://jsonpatch.com
1310
1334
 
1311
- [151]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
1335
+ [154]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
1312
1336
 
1313
- [152]: https://tera-tools.com/api/logs.json
1337
+ [155]: https://tera-tools.com/api/logs.json