@iebh/tera-fy 2.2.13 → 2.3.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/CHANGELOG.md +14 -0
- package/api.md +321 -299
- package/dist/lib/syncro/entities.js +5 -4
- package/dist/lib/syncro/entities.js.map +1 -1
- package/dist/lib/terafy.client.d.ts +1 -1
- package/dist/lib/terafy.client.js +1 -0
- package/dist/lib/terafy.client.js.map +1 -1
- package/dist/lib/terafy.server.d.ts +15 -0
- package/dist/lib/terafy.server.js +37 -0
- package/dist/lib/terafy.server.js.map +1 -1
- package/dist/terafy.es2019.js +1 -1
- package/dist/terafy.js +1 -1
- package/lib/syncro/entities.ts +5 -4
- package/lib/terafy.client.ts +17 -0
- package/lib/terafy.server.ts +43 -0
- package/package.json +1 -1
package/api.md
CHANGED
|
@@ -155,18 +155,20 @@
|
|
|
155
155
|
* [Parameters][151]
|
|
156
156
|
* [uiConfirm][152]
|
|
157
157
|
* [Parameters][153]
|
|
158
|
-
* [
|
|
158
|
+
* [uiJson][154]
|
|
159
159
|
* [Parameters][155]
|
|
160
|
-
* [
|
|
160
|
+
* [uiPanic][156]
|
|
161
161
|
* [Parameters][157]
|
|
162
|
-
* [
|
|
162
|
+
* [uiProgress][158]
|
|
163
163
|
* [Parameters][159]
|
|
164
|
-
* [
|
|
164
|
+
* [uiPrompt][160]
|
|
165
165
|
* [Parameters][161]
|
|
166
|
-
* [
|
|
166
|
+
* [uiThrow][162]
|
|
167
167
|
* [Parameters][163]
|
|
168
|
-
* [
|
|
168
|
+
* [uiWindow][164]
|
|
169
169
|
* [Parameters][165]
|
|
170
|
+
* [uiSplat][166]
|
|
171
|
+
* [Parameters][167]
|
|
170
172
|
|
|
171
173
|
## ProjectFile
|
|
172
174
|
|
|
@@ -177,131 +179,131 @@ A project file fetched from TERA
|
|
|
177
179
|
The TERA compatible unique ID of the file
|
|
178
180
|
NOTE: This is computed each time from the Base64 of the file path
|
|
179
181
|
|
|
180
|
-
Type: [String][
|
|
182
|
+
Type: [String][168]
|
|
181
183
|
|
|
182
184
|
### sbId
|
|
183
185
|
|
|
184
186
|
The raw Supabase UUID of the file
|
|
185
187
|
|
|
186
|
-
Type: [String][
|
|
188
|
+
Type: [String][168]
|
|
187
189
|
|
|
188
190
|
### name
|
|
189
191
|
|
|
190
192
|
Relative name path (can contain prefix directories) for the human readable file name
|
|
191
193
|
|
|
192
|
-
Type: [String][
|
|
194
|
+
Type: [String][168]
|
|
193
195
|
|
|
194
196
|
### icon
|
|
195
197
|
|
|
196
198
|
CSS class to use as the file icon
|
|
197
199
|
|
|
198
|
-
Type: [String][
|
|
200
|
+
Type: [String][168]
|
|
199
201
|
|
|
200
202
|
### path
|
|
201
203
|
|
|
202
204
|
Full path to the file
|
|
203
205
|
This is also used as the unique identifier within the project
|
|
204
206
|
|
|
205
|
-
Type: [String][
|
|
207
|
+
Type: [String][168]
|
|
206
208
|
|
|
207
209
|
### url
|
|
208
210
|
|
|
209
211
|
Fully qualified URL to view / access / download the file from TERA
|
|
210
212
|
This will usually open an edit UI within the TERA site
|
|
211
213
|
|
|
212
|
-
Type: [String][
|
|
214
|
+
Type: [String][168]
|
|
213
215
|
|
|
214
216
|
### teraUrl
|
|
215
217
|
|
|
216
218
|
Rewrite of the URL where the absolute URL has been removed in place of a relative path, assuming the owner project is active
|
|
217
219
|
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
|
|
218
220
|
|
|
219
|
-
Type: [String][
|
|
221
|
+
Type: [String][168]
|
|
220
222
|
|
|
221
223
|
### parsedName
|
|
222
224
|
|
|
223
225
|
An object representing meta file parts of a file name
|
|
224
226
|
|
|
225
|
-
Type: [Object][
|
|
227
|
+
Type: [Object][169]
|
|
226
228
|
|
|
227
229
|
#### Properties
|
|
228
230
|
|
|
229
|
-
* `basename` **[String][
|
|
230
|
-
* `filename` **[String][
|
|
231
|
-
* `ext` **[String][
|
|
232
|
-
* `dirName` **[String][
|
|
231
|
+
* `basename` **[String][168]** The filename + extention (i.e. everything without directory name)
|
|
232
|
+
* `filename` **[String][168]** The file portion of the name (basename without the extension)
|
|
233
|
+
* `ext` **[String][168]** The extension portion of the name (always lower case)
|
|
234
|
+
* `dirName` **[String][168]** The directory path portion of the name
|
|
233
235
|
|
|
234
236
|
### created
|
|
235
237
|
|
|
236
238
|
A date representing when the file was created
|
|
237
239
|
|
|
238
|
-
Type: [Date][
|
|
240
|
+
Type: [Date][170]
|
|
239
241
|
|
|
240
242
|
### createdFormatted
|
|
241
243
|
|
|
242
244
|
A human readable, formatted version of "created"
|
|
243
245
|
|
|
244
|
-
Type: [String][
|
|
246
|
+
Type: [String][168]
|
|
245
247
|
|
|
246
248
|
### modified
|
|
247
249
|
|
|
248
250
|
A date representing when the file was created
|
|
249
251
|
|
|
250
|
-
Type: [Date][
|
|
252
|
+
Type: [Date][170]
|
|
251
253
|
|
|
252
254
|
### modifiedFormatted
|
|
253
255
|
|
|
254
256
|
A human readable, formatted version of "modified"
|
|
255
257
|
|
|
256
|
-
Type: [String][
|
|
258
|
+
Type: [String][168]
|
|
257
259
|
|
|
258
260
|
### accessed
|
|
259
261
|
|
|
260
262
|
A date representing when the file was last accessed
|
|
261
263
|
|
|
262
|
-
Type: [Date][
|
|
264
|
+
Type: [Date][170]
|
|
263
265
|
|
|
264
266
|
### accessedFormatted
|
|
265
267
|
|
|
266
268
|
A human readable, formatted version of "accessed"
|
|
267
269
|
|
|
268
|
-
Type: [String][
|
|
270
|
+
Type: [String][168]
|
|
269
271
|
|
|
270
272
|
### size
|
|
271
273
|
|
|
272
274
|
Size, in bytes, of the file
|
|
273
275
|
|
|
274
|
-
Type: [Number][
|
|
276
|
+
Type: [Number][171]
|
|
275
277
|
|
|
276
278
|
### sizeFormatted
|
|
277
279
|
|
|
278
280
|
A human readable, formatted version of the file size
|
|
279
281
|
|
|
280
|
-
Type: [String][
|
|
282
|
+
Type: [String][168]
|
|
281
283
|
|
|
282
284
|
### mime
|
|
283
285
|
|
|
284
286
|
The associated mime type for the file
|
|
285
287
|
|
|
286
|
-
Type: [String][
|
|
288
|
+
Type: [String][168]
|
|
287
289
|
|
|
288
290
|
### meta
|
|
289
291
|
|
|
290
292
|
Additional meta information for the file
|
|
291
293
|
|
|
292
|
-
Type: [Object][
|
|
294
|
+
Type: [Object][169]
|
|
293
295
|
|
|
294
296
|
### isFolder
|
|
295
297
|
|
|
296
298
|
Whether this is a folder or not
|
|
297
299
|
|
|
298
|
-
Type: [boolean][
|
|
300
|
+
Type: [boolean][172]
|
|
299
301
|
|
|
300
302
|
### files
|
|
301
303
|
|
|
302
304
|
If it is a folder, it will have an array of files in the folder
|
|
303
305
|
|
|
304
|
-
Type: [Array][
|
|
306
|
+
Type: [Array][173]<[ProjectFile][1]>
|
|
305
307
|
|
|
306
308
|
### getContents
|
|
307
309
|
|
|
@@ -311,9 +313,9 @@ Fetch the raw file contents as a Blob
|
|
|
311
313
|
|
|
312
314
|
#### Parameters
|
|
313
315
|
|
|
314
|
-
* `options` **[Object][
|
|
316
|
+
* `options` **[Object][169]?** Additioanl options to mutate behaviour
|
|
315
317
|
|
|
316
|
-
Returns **[Promise][
|
|
318
|
+
Returns **[Promise][174]<[Blob][175]>** The eventual raw file contents as a Blob
|
|
317
319
|
|
|
318
320
|
### setContents
|
|
319
321
|
|
|
@@ -323,9 +325,9 @@ Overwrite the contents of a file with new content
|
|
|
323
325
|
|
|
324
326
|
#### Parameters
|
|
325
327
|
|
|
326
|
-
* `contents` **(File | [Blob][
|
|
328
|
+
* `contents` **(File | [Blob][175] | [FormData][176] | [Object][169] | [Array][173])** The new file contents
|
|
327
329
|
|
|
328
|
-
Returns **[Promise][
|
|
330
|
+
Returns **[Promise][174]\<void>** A promise which resolves when the operation has completed
|
|
329
331
|
|
|
330
332
|
### getRefs
|
|
331
333
|
|
|
@@ -333,7 +335,7 @@ Returns **[Promise][172]\<void>** A promise which resolves when the operation ha
|
|
|
333
335
|
|
|
334
336
|
Fetch the file contents as an array of Reflib refs
|
|
335
337
|
|
|
336
|
-
Returns **[Promise][
|
|
338
|
+
Returns **[Promise][174]<[Array][173]\<RefLibRef>>** An eventual array of RefLib references
|
|
337
339
|
|
|
338
340
|
### setRefs
|
|
339
341
|
|
|
@@ -343,18 +345,18 @@ Overwrite the contents of a file with a new collection of Reflib refs
|
|
|
343
345
|
|
|
344
346
|
#### Parameters
|
|
345
347
|
|
|
346
|
-
* `refs` **[Array][
|
|
348
|
+
* `refs` **[Array][173]\<RefLibRef>** Collection of references for the selected library
|
|
347
349
|
|
|
348
|
-
Returns **[Promise][
|
|
350
|
+
Returns **[Promise][174]\<void>** A promise which resolves when the operation has completed
|
|
349
351
|
|
|
350
352
|
### serialize
|
|
351
353
|
|
|
352
|
-
* **See**: [https://developer.mozilla.org/en-US/docs/Web/API/Web\_Workers\_API/Structured\_clone\_algorithm][
|
|
354
|
+
* **See**: [https://developer.mozilla.org/en-US/docs/Web/API/Web\_Workers\_API/Structured\_clone\_algorithm][177]
|
|
353
355
|
|
|
354
356
|
Compress a file state down into a serializable entity
|
|
355
357
|
By default this computes a Structured Clone which can be stringified
|
|
356
358
|
|
|
357
|
-
Returns **[Object][
|
|
359
|
+
Returns **[Object][169]** A Structured Clone compatible representation of this ProjectFile instance
|
|
358
360
|
|
|
359
361
|
### deserialize
|
|
360
362
|
|
|
@@ -364,7 +366,7 @@ as it's not included in the serialized output.
|
|
|
364
366
|
|
|
365
367
|
#### Parameters
|
|
366
368
|
|
|
367
|
-
* `data` **[Object][
|
|
369
|
+
* `data` **[Object][169]** An input object created via `ProjectFiles.serialize()` (MUST include a 'tera' property added manually)
|
|
368
370
|
|
|
369
371
|
Returns **[ProjectFile][1]** A ProjectFile instance setup against the deserializzed data
|
|
370
372
|
|
|
@@ -376,23 +378,23 @@ Main Tera-Fy Client (class singleton) to be used in a frontend browser
|
|
|
376
378
|
|
|
377
379
|
Various settings to configure behaviour
|
|
378
380
|
|
|
379
|
-
Type: [Object][
|
|
381
|
+
Type: [Object][169]
|
|
380
382
|
|
|
381
383
|
#### Properties
|
|
382
384
|
|
|
383
|
-
* `session` **[String][
|
|
384
|
-
* `devMode` **[Boolean][
|
|
385
|
-
* `verbosity` **[Number][
|
|
385
|
+
* `session` **[String][168]** Unique session signature for this instance of TeraFy, used to sign server messages, if falsy `getEntropicString(16)` is used to populate
|
|
386
|
+
* `devMode` **[Boolean][172]** Operate in Dev-Mode - i.e. force outer refresh when encountering an existing TeraFy instance + be more tolerent of weird iframe origins
|
|
387
|
+
* `verbosity` **[Number][171]** Verbosity level, the higher the more chatty TeraFY will be. Set to zero to disable all `debug()` call output
|
|
386
388
|
* `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
|
|
387
|
-
* `modeFallback` **[String][
|
|
388
|
-
* `modeOverrides` **[Object][
|
|
389
|
-
* `modeTimeout` **[Number][
|
|
390
|
-
* `siteUrl` **[String][
|
|
391
|
-
* `restrictOrigin` **[String][
|
|
392
|
-
* `List` **[Array][
|
|
393
|
-
* `handshakeInterval` **[Number][
|
|
394
|
-
* `handshakeTimeout` **[Number][
|
|
395
|
-
* `debugPaths` **[Array][
|
|
389
|
+
* `modeFallback` **[String][168]** Method to use when all method detection fails
|
|
390
|
+
* `modeOverrides` **[Object][169]<[Object][169]<[Function][178]>>** Functions to run when switching to specific modes, these are typically used to augment config. Called as `(config:Object)`
|
|
391
|
+
* `modeTimeout` **[Number][171]** How long entities have in 'detect' mode to identify themselves
|
|
392
|
+
* `siteUrl` **[String][168]** The TERA URL to connect to
|
|
393
|
+
* `restrictOrigin` **[String][168]** URL to restrict communications to
|
|
394
|
+
* `List` **[Array][173]<[String][168]>** of sandbox allowables for the embedded if in embed mode
|
|
395
|
+
* `handshakeInterval` **[Number][171]** Interval in milliseconds when sanning for a handshake
|
|
396
|
+
* `handshakeTimeout` **[Number][171]** Interval in milliseconds for when to give up trying to handshake
|
|
397
|
+
* `debugPaths` **[Array][173]<([String][168] | [Array][173]<[String][168]>)>?** List of paths (in either dotted or array notation) to enter debugging mode if a change is detected in dev mode e.g. `{debugPaths: ['foo.bar.baz']}`. This really slows down state writes so should only be used for debugging
|
|
396
398
|
|
|
397
399
|
### events
|
|
398
400
|
|
|
@@ -404,13 +406,13 @@ Type: Mitt
|
|
|
404
406
|
|
|
405
407
|
DOMElements for this TeraFy instance
|
|
406
408
|
|
|
407
|
-
Type: [Object][
|
|
409
|
+
Type: [Object][169]
|
|
408
410
|
|
|
409
411
|
#### Properties
|
|
410
412
|
|
|
411
413
|
* `el` **DOMElement** The main tera-fy div wrapper
|
|
412
414
|
* `iframe` **DOMElement** The internal iFrame element (if `settings.mode == 'child'`)
|
|
413
|
-
* `popup` **[Window][
|
|
415
|
+
* `popup` **[Window][179]** The popup window context (if `settings.mode == 'popup'`)
|
|
414
416
|
* `stylesheet` **DOMElement** The corresponding stylesheet
|
|
415
417
|
|
|
416
418
|
### methods
|
|
@@ -418,13 +420,13 @@ Type: [Object][167]
|
|
|
418
420
|
List of function stubs mapped from the server to here
|
|
419
421
|
This array is forms the reference of `TeraFy.METHOD()` objects to provide locally which will be mapped via `TeraFy.rpc(METHOD, ...args)`
|
|
420
422
|
|
|
421
|
-
Type: [Array][
|
|
423
|
+
Type: [Array][173]<[String][168]>
|
|
422
424
|
|
|
423
425
|
### plugins
|
|
424
426
|
|
|
425
427
|
Loaded plugins via Use()
|
|
426
428
|
|
|
427
|
-
Type: [Array][
|
|
429
|
+
Type: [Array][173]\<TeraFyPlugin>
|
|
428
430
|
|
|
429
431
|
### namespaces
|
|
430
432
|
|
|
@@ -432,7 +434,7 @@ Active namespaces we are subscribed to
|
|
|
432
434
|
Each key is the namespace name with the value as the local reactive \ observer \ object equivelent
|
|
433
435
|
The key string is always of the form `${ENTITY}::${ID}` e.g. `projects:1234`
|
|
434
436
|
|
|
435
|
-
Type: [Object][
|
|
437
|
+
Type: [Object][169]<[Object][169]>
|
|
436
438
|
|
|
437
439
|
### send
|
|
438
440
|
|
|
@@ -440,9 +442,9 @@ Send a message + wait for a response object
|
|
|
440
442
|
|
|
441
443
|
#### Parameters
|
|
442
444
|
|
|
443
|
-
* `message` **[Object][
|
|
445
|
+
* `message` **[Object][169]** Message object to send
|
|
444
446
|
|
|
445
|
-
Returns **[Promise][
|
|
447
|
+
Returns **[Promise][174]\<any>** A promise which resolves when the operation has completed with the remote reply
|
|
446
448
|
|
|
447
449
|
### sendRaw
|
|
448
450
|
|
|
@@ -451,7 +453,7 @@ This function does not return or wait for a reply - use `send()` for that
|
|
|
451
453
|
|
|
452
454
|
#### Parameters
|
|
453
455
|
|
|
454
|
-
* `message` **[Object][
|
|
456
|
+
* `message` **[Object][169]** Message object to send
|
|
455
457
|
|
|
456
458
|
### rpc
|
|
457
459
|
|
|
@@ -459,10 +461,10 @@ Call an RPC function in the server instance
|
|
|
459
461
|
|
|
460
462
|
#### Parameters
|
|
461
463
|
|
|
462
|
-
* `method` **[String][
|
|
464
|
+
* `method` **[String][168]** The method name to call
|
|
463
465
|
* `args` **...any?** Optional arguments to pass to the function
|
|
464
466
|
|
|
465
|
-
Returns **[Promise][
|
|
467
|
+
Returns **[Promise][174]\<any>** The resolved output of the server function
|
|
466
468
|
|
|
467
469
|
### acceptMessage
|
|
468
470
|
|
|
@@ -470,9 +472,9 @@ Accept an incoming message
|
|
|
470
472
|
|
|
471
473
|
#### Parameters
|
|
472
474
|
|
|
473
|
-
* `rawMessage` **[MessageEvent][
|
|
475
|
+
* `rawMessage` **[MessageEvent][180]** Raw message event to process
|
|
474
476
|
|
|
475
|
-
Returns **[Promise][
|
|
477
|
+
Returns **[Promise][174]** A promise which will resolve when the message has been processed
|
|
476
478
|
|
|
477
479
|
### acceptPostboxes
|
|
478
480
|
|
|
@@ -485,22 +487,22 @@ This function can only be called once and will return the existing init() worker
|
|
|
485
487
|
|
|
486
488
|
#### Parameters
|
|
487
489
|
|
|
488
|
-
* `options` **[Object][
|
|
490
|
+
* `options` **[Object][169]?** Additional options to merge into `settings` via `set`
|
|
489
491
|
|
|
490
|
-
Returns **[Promise][
|
|
492
|
+
Returns **[Promise][174]<[TeraFy][33]>** An eventual promise which will resovle with this terafy instance
|
|
491
493
|
|
|
492
494
|
### detectMode
|
|
493
495
|
|
|
494
496
|
Populate `settings.mode`
|
|
495
497
|
Try to communicate with a parent frame, if none assume we need to fallback to child mode
|
|
496
498
|
|
|
497
|
-
Returns **[Promise][
|
|
499
|
+
Returns **[Promise][174]<[String][168]>** A promise which will resolve with the detected mode to use
|
|
498
500
|
|
|
499
501
|
### injectComms
|
|
500
502
|
|
|
501
503
|
Find an existing active TERA server OR initalize one
|
|
502
504
|
|
|
503
|
-
Returns **[Promise][
|
|
505
|
+
Returns **[Promise][174]** A promise which will resolve when the loading has completed and we have found a parent TERA instance or initiallized a child
|
|
504
506
|
|
|
505
507
|
### handshakeLoop
|
|
506
508
|
|
|
@@ -508,20 +510,20 @@ Keep trying to handshake until the target responds
|
|
|
508
510
|
|
|
509
511
|
#### Parameters
|
|
510
512
|
|
|
511
|
-
* `options` **[Object][
|
|
513
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
512
514
|
|
|
513
515
|
#### Properties
|
|
514
516
|
|
|
515
|
-
* `handshakeInterval` **[Number][
|
|
516
|
-
* `handshakeTimeout` **[Number][
|
|
517
|
+
* `handshakeInterval` **[Number][171]?** Interval in milliseconds when sanning for a handshake, defaults to global setting
|
|
518
|
+
* `handshakeTimeout` **[Number][171]?** Interval in milliseconds for when to give up trying to handshake, defaults to global setting
|
|
517
519
|
|
|
518
|
-
Returns **[Promise][
|
|
520
|
+
Returns **[Promise][174]** A promise which will either resolve when the handshake is successful OR fail with 'TIMEOUT'
|
|
519
521
|
|
|
520
522
|
### injectStylesheet
|
|
521
523
|
|
|
522
524
|
Inject a local stylesheet to handle TERA server functionality
|
|
523
525
|
|
|
524
|
-
Returns **[Promise][
|
|
526
|
+
Returns **[Promise][174]** A promise which will resolve when the loading has completed and we have found a parent TERA instance or initiallized a child
|
|
525
527
|
|
|
526
528
|
### injectMethods
|
|
527
529
|
|
|
@@ -536,7 +538,7 @@ This function will only act if `settings.devMode` is truthy
|
|
|
536
538
|
|
|
537
539
|
* `msg` **...any?** Output to show
|
|
538
540
|
* `method` **(`"INFO"` | `"LOG"` | `"WARN"` | `"ERROR"`)** Logging method to use (optional, default `'LOG'`)
|
|
539
|
-
* `verboseLevel` **[Number][
|
|
541
|
+
* `verboseLevel` **[Number][171]** The verbosity level to trigger at. If `settings.verbosity` is lower than this, the message is ignored (optional, default `1`)
|
|
540
542
|
|
|
541
543
|
### set
|
|
542
544
|
|
|
@@ -545,11 +547,11 @@ This function also routes 'special' keys like `devMode` to their internal handle
|
|
|
545
547
|
|
|
546
548
|
#### Parameters
|
|
547
549
|
|
|
548
|
-
* `key` **([String][
|
|
550
|
+
* `key` **([String][168] | [Object][169])** Either a single setting key to set or an object to merge
|
|
549
551
|
* `value` **any** The value to set if `key` is a string
|
|
550
|
-
* `options` **[Object][
|
|
552
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
551
553
|
|
|
552
|
-
* `options.ignoreNullish` **[Boolean][
|
|
554
|
+
* `options.ignoreNullish` **[Boolean][172]** If falsy, this forces the setting of undefined or null values rather than ignoring them when specifying values by string (optional, default `true`)
|
|
553
555
|
|
|
554
556
|
Returns **[TeraFy][33]** This chainable terafy instance
|
|
555
557
|
|
|
@@ -561,9 +563,9 @@ Set or merge settings - but only in dev mode and only if the value is not undefi
|
|
|
561
563
|
|
|
562
564
|
#### Parameters
|
|
563
565
|
|
|
564
|
-
* `key` **([String][
|
|
566
|
+
* `key` **([String][168] | [Object][169])** Either a single setting key to set or an object to merge
|
|
565
567
|
* `value` **any** The value to set if `key` is a string
|
|
566
|
-
* `options` **[Object][
|
|
568
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
567
569
|
|
|
568
570
|
Returns **[TeraFy][33]** This chainable terafy instance
|
|
569
571
|
|
|
@@ -573,8 +575,8 @@ Include a TeraFy client plugin
|
|
|
573
575
|
|
|
574
576
|
#### Parameters
|
|
575
577
|
|
|
576
|
-
* `source` **([Function][
|
|
577
|
-
* `options` **[Object][
|
|
578
|
+
* `source` **([Function][178] | [Object][169] | [String][168])** Either the JS module class, singleton object or URL to fetch it from. Eventually constructed as invoked as `(teraClient:TeraFy, options:Object)`
|
|
579
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour during construction (pass options to init() to intialize later options)
|
|
578
580
|
|
|
579
581
|
Returns **[TeraFy][33]** This chainable terafy instance
|
|
580
582
|
|
|
@@ -584,8 +586,8 @@ Internal function used by use() to merge an external declared singleton against
|
|
|
584
586
|
|
|
585
587
|
#### Parameters
|
|
586
588
|
|
|
587
|
-
* `target` **[Object][
|
|
588
|
-
* `source` **[Object][
|
|
589
|
+
* `target` **[Object][169]** Initalied class instance to extend
|
|
590
|
+
* `source` **[Object][169]** Initalized source object to extend from
|
|
589
591
|
|
|
590
592
|
### toggleDevMode
|
|
591
593
|
|
|
@@ -597,7 +599,7 @@ This function also accepts meta values:
|
|
|
597
599
|
|
|
598
600
|
#### Parameters
|
|
599
601
|
|
|
600
|
-
* `devModeEnabled` **(`"toggle"` | `"proxy"` | [Boolean][
|
|
602
|
+
* `devModeEnabled` **(`"toggle"` | `"proxy"` | [Boolean][172])** Optional boolean to force dev mode or specify other behaviour (optional, default `'toggle'`)
|
|
601
603
|
|
|
602
604
|
Returns **[TeraFy][33]** This chainable terafy instance
|
|
603
605
|
|
|
@@ -608,7 +610,7 @@ This is usually because the server component wants to perform some user activity
|
|
|
608
610
|
|
|
609
611
|
#### Parameters
|
|
610
612
|
|
|
611
|
-
* `isFocused` **([String][
|
|
613
|
+
* `isFocused` **([String][168] | [Boolean][172])** Whether to fullscreen the embedded component (optional, default `'toggle'`)
|
|
612
614
|
|
|
613
615
|
### getEntropicString
|
|
614
616
|
|
|
@@ -616,9 +618,9 @@ Generate random entropic character string in Base64
|
|
|
616
618
|
|
|
617
619
|
#### Parameters
|
|
618
620
|
|
|
619
|
-
* `maxLength` **[Number][
|
|
621
|
+
* `maxLength` **[Number][171]** Maximum lengh of the genrated string (optional, default `32`)
|
|
620
622
|
|
|
621
|
-
Returns **[String][
|
|
623
|
+
Returns **[String][168]** 
|
|
622
624
|
|
|
623
625
|
### selectProjectFile
|
|
624
626
|
|
|
@@ -630,7 +632,7 @@ This is an pre-requisite step for requireProject()
|
|
|
630
632
|
|
|
631
633
|
* `options` **any?** 
|
|
632
634
|
|
|
633
|
-
Returns **[Promise][
|
|
635
|
+
Returns **[Promise][174]** A promise which will resolve if the there is a user and they are logged in
|
|
634
636
|
|
|
635
637
|
## mountNamespace
|
|
636
638
|
|
|
@@ -639,17 +641,17 @@ This generally creates whatever framework flavoured reactive/observer/object is
|
|
|
639
641
|
|
|
640
642
|
### Parameters
|
|
641
643
|
|
|
642
|
-
* `name` **[String][
|
|
644
|
+
* `name` **[String][168]** The alias of the namespace, this should be alphanumeric + hyphens + underscores
|
|
643
645
|
|
|
644
|
-
Returns **[Promise][
|
|
646
|
+
Returns **[Promise][174]\<Reactive>** A promise which resolves to the reactive object
|
|
645
647
|
|
|
646
648
|
## Actual namespace mounting function designed to be overriden by plugins
|
|
647
649
|
|
|
648
650
|
### Parameters
|
|
649
651
|
|
|
650
|
-
* `name` **[String][
|
|
652
|
+
* `name` **[String][168]** The alias of the namespace, this should be alphanumeric + hyphens + underscores
|
|
651
653
|
|
|
652
|
-
Returns **[Promise][
|
|
654
|
+
Returns **[Promise][174]** A promise which resolves when the mount operation has completed
|
|
653
655
|
|
|
654
656
|
## unmountNamespace
|
|
655
657
|
|
|
@@ -658,17 +660,17 @@ This function will remove the namespace from `namespaces`, cleaning up any memor
|
|
|
658
660
|
|
|
659
661
|
### Parameters
|
|
660
662
|
|
|
661
|
-
* `name` **[String][
|
|
663
|
+
* `name` **[String][168]** The name of the namespace to unmount
|
|
662
664
|
|
|
663
|
-
Returns **[Promise][
|
|
665
|
+
Returns **[Promise][174]** A promise which resolves when the operation has completed
|
|
664
666
|
|
|
665
667
|
## Actual namespace unmounting function designed to be overriden by plugins
|
|
666
668
|
|
|
667
669
|
### Parameters
|
|
668
670
|
|
|
669
|
-
* `name` **[String][
|
|
671
|
+
* `name` **[String][168]** The name of the namespace to unmount
|
|
670
672
|
|
|
671
|
-
Returns **[Promise][
|
|
673
|
+
Returns **[Promise][174]** A promise which resolves when the operation has completed
|
|
672
674
|
|
|
673
675
|
## handshake
|
|
674
676
|
|
|
@@ -676,9 +678,9 @@ Return basic server information as a form of validation
|
|
|
676
678
|
|
|
677
679
|
### Properties
|
|
678
680
|
|
|
679
|
-
* `date` **[Date][
|
|
681
|
+
* `date` **[Date][170]** Server date
|
|
680
682
|
|
|
681
|
-
Returns **[Promise][
|
|
683
|
+
Returns **[Promise][174]<[Object][169]>** Basic promise result
|
|
682
684
|
|
|
683
685
|
## setServerVerbosity
|
|
684
686
|
|
|
@@ -686,7 +688,7 @@ RPC callback to set the server verbostiy level
|
|
|
686
688
|
|
|
687
689
|
### Parameters
|
|
688
690
|
|
|
689
|
-
* `verbosity` **[Number][
|
|
691
|
+
* `verbosity` **[Number][171]** The desired server verbosity level
|
|
690
692
|
|
|
691
693
|
## User
|
|
692
694
|
|
|
@@ -694,22 +696,22 @@ User / active session within TERA
|
|
|
694
696
|
|
|
695
697
|
### Properties
|
|
696
698
|
|
|
697
|
-
* `id` **[String][
|
|
698
|
-
* `email` **[String][
|
|
699
|
-
* `name` **[String][
|
|
700
|
-
* `isSubscribed` **[Boolean][
|
|
699
|
+
* `id` **[String][168]** Unique identifier of the user
|
|
700
|
+
* `email` **[String][168]** The email address of the current user
|
|
701
|
+
* `name` **[String][168]** The provided full name of the user
|
|
702
|
+
* `isSubscribed` **[Boolean][172]** Whether the active user has a TERA subscription
|
|
701
703
|
|
|
702
704
|
## getUser
|
|
703
705
|
|
|
704
706
|
Fetch the current session user
|
|
705
707
|
|
|
706
|
-
Returns **[Promise][
|
|
708
|
+
Returns **[Promise][174]<[User][90]>** The current logged in user or null if none
|
|
707
709
|
|
|
708
710
|
## getCredentials
|
|
709
711
|
|
|
710
712
|
Provide an object of credentials for 3rd party services like Firebase/Supabase
|
|
711
713
|
|
|
712
|
-
Returns **[Object][
|
|
714
|
+
Returns **[Object][169]** An object containing 3rd party service credentials
|
|
713
715
|
|
|
714
716
|
## requireUser
|
|
715
717
|
|
|
@@ -719,11 +721,11 @@ This is an pre-requisite step for requireProject()
|
|
|
719
721
|
|
|
720
722
|
### Parameters
|
|
721
723
|
|
|
722
|
-
* `options` **[Object][
|
|
724
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
723
725
|
|
|
724
|
-
* `options.forceRetry` **[Boolean][
|
|
726
|
+
* `options.forceRetry` **[Boolean][172]** Forcabily try to refresh the user state (optional, default `false`)
|
|
725
727
|
|
|
726
|
-
Returns **[Promise][
|
|
728
|
+
Returns **[Promise][174]<[User][90]>** The current logged in user or null if none
|
|
727
729
|
|
|
728
730
|
## Project
|
|
729
731
|
|
|
@@ -733,13 +735,13 @@ Project entry within TERA
|
|
|
733
735
|
|
|
734
736
|
Get the currently active project, if any
|
|
735
737
|
|
|
736
|
-
Returns **[Promise][
|
|
738
|
+
Returns **[Promise][174]<([Project][96] | null)>** The currently active project, if any
|
|
737
739
|
|
|
738
740
|
## getProjects
|
|
739
741
|
|
|
740
742
|
Get a list of projects the current session user has access to
|
|
741
743
|
|
|
742
|
-
Returns **[Promise][
|
|
744
|
+
Returns **[Promise][174]<[Array][173]<[Project][96]>>** Collection of projects the user has access to
|
|
743
745
|
|
|
744
746
|
## setActiveProject
|
|
745
747
|
|
|
@@ -747,7 +749,7 @@ Set the currently active project within TERA
|
|
|
747
749
|
|
|
748
750
|
### Parameters
|
|
749
751
|
|
|
750
|
-
* `project` **([Object][
|
|
752
|
+
* `project` **([Object][169] | [String][168])** The project to set as active - either the full Project object or its ID
|
|
751
753
|
|
|
752
754
|
## requireProject
|
|
753
755
|
|
|
@@ -756,14 +758,14 @@ Note that this function will percist in asking the uesr even if they try to canc
|
|
|
756
758
|
|
|
757
759
|
### Parameters
|
|
758
760
|
|
|
759
|
-
* `options` **[Object][
|
|
761
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
760
762
|
|
|
761
|
-
* `options.autoSetActiveProject` **[Boolean][
|
|
762
|
-
* `options.title` **[String][
|
|
763
|
-
* `options.noSelectTitle` **[String][
|
|
764
|
-
* `options.noSelectBody` **[String][
|
|
763
|
+
* `options.autoSetActiveProject` **[Boolean][172]** After selecting a project set that project as active in TERA (optional, default `true`)
|
|
764
|
+
* `options.title` **[String][168]** The title of the dialog to display (optional, default `"Select a project to work with"`)
|
|
765
|
+
* `options.noSelectTitle` **[String][168]** Dialog title when warning the user they need to select something (optional, default `'Select project'`)
|
|
766
|
+
* `options.noSelectBody` **[String][168]** Dialog body when warning the user they need to select something (optional, default `'A project needs to be selected to continue'`)
|
|
765
767
|
|
|
766
|
-
Returns **[Promise][
|
|
768
|
+
Returns **[Promise][174]<[Project][96]>** The active project
|
|
767
769
|
|
|
768
770
|
## selectProject
|
|
769
771
|
|
|
@@ -771,13 +773,13 @@ Prompt the user to select a project from those available
|
|
|
771
773
|
|
|
772
774
|
### Parameters
|
|
773
775
|
|
|
774
|
-
* `options` **[Object][
|
|
776
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
775
777
|
|
|
776
|
-
* `options.title` **[String][
|
|
777
|
-
* `options.allowCancel` **[Boolean][
|
|
778
|
-
* `options.setActive` **[Boolean][
|
|
778
|
+
* `options.title` **[String][168]** The title of the dialog to display (optional, default `"Select a project to work with"`)
|
|
779
|
+
* `options.allowCancel` **[Boolean][172]** Advertise cancelling the operation, the dialog can still be cancelled by closing it (optional, default `true`)
|
|
780
|
+
* `options.setActive` **[Boolean][172]** Also set the project as active when selected (optional, default `false`)
|
|
779
781
|
|
|
780
|
-
Returns **[Promise][
|
|
782
|
+
Returns **[Promise][174]<[Project][96]>** The active project
|
|
781
783
|
|
|
782
784
|
## getNamespace
|
|
783
785
|
|
|
@@ -786,9 +788,9 @@ This can be used for simpler apps which don't have their own reactive / observer
|
|
|
786
788
|
|
|
787
789
|
### Parameters
|
|
788
790
|
|
|
789
|
-
* `name` **[String][
|
|
791
|
+
* `name` **[String][168]** The alias of the namespace, this should be alphanumeric + hyphens + underscores
|
|
790
792
|
|
|
791
|
-
Returns **[Promise][
|
|
793
|
+
Returns **[Promise][174]<[Object][169]>** A promise which resolves to the namespace POJO state
|
|
792
794
|
|
|
793
795
|
## setNamespace
|
|
794
796
|
|
|
@@ -797,13 +799,13 @@ This can be used for simpler apps which don't have their own reactive / observer
|
|
|
797
799
|
|
|
798
800
|
### Parameters
|
|
799
801
|
|
|
800
|
-
* `name` **[String][
|
|
801
|
-
* `state` **[Object][
|
|
802
|
-
* `options` **[Object][
|
|
802
|
+
* `name` **[String][168]** The name of the namespace
|
|
803
|
+
* `state` **[Object][169]** The state to merge
|
|
804
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
803
805
|
|
|
804
806
|
* `options.method` **(`"merge"` | `"set"`)** How to handle the state. 'merge' (merge a partial state over the existing namespace state), 'set' (completely overwrite the existing namespace) (optional, default `'merge'`)
|
|
805
807
|
|
|
806
|
-
Returns **[Promise][
|
|
808
|
+
Returns **[Promise][174]<[Object][169]>** A promise which resolves to the namespace POJO state
|
|
807
809
|
|
|
808
810
|
## listNamespaces
|
|
809
811
|
|
|
@@ -811,9 +813,9 @@ Return a list of namespaces available to the current project
|
|
|
811
813
|
|
|
812
814
|
### Properties
|
|
813
815
|
|
|
814
|
-
* `name` **[String][
|
|
816
|
+
* `name` **[String][168]** The name of the namespace
|
|
815
817
|
|
|
816
|
-
Returns **[Promise][
|
|
818
|
+
Returns **[Promise][174]<[Array][173]<[Object][169]>>** Collection of available namespaces for the current project
|
|
817
819
|
|
|
818
820
|
## getProjectState
|
|
819
821
|
|
|
@@ -821,12 +823,12 @@ Return the current, full snapshot state of the active project
|
|
|
821
823
|
|
|
822
824
|
### Parameters
|
|
823
825
|
|
|
824
|
-
* `options` **[Object][
|
|
826
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
825
827
|
|
|
826
|
-
* `options.autoRequire` **[Boolean][
|
|
827
|
-
* `Paths` **[Array][
|
|
828
|
+
* `options.autoRequire` **[Boolean][172]** Run `requireProject()` automatically before continuing (optional, default `true`)
|
|
829
|
+
* `Paths` **[Array][173]<[String][168]>** to subscribe to e.g. \['/users/'],
|
|
828
830
|
|
|
829
|
-
Returns **[Promise][
|
|
831
|
+
Returns **[Promise][174]<[Object][169]>** The current project state snapshot
|
|
830
832
|
|
|
831
833
|
## setProjectState
|
|
832
834
|
|
|
@@ -838,13 +840,13 @@ Paths can be any valid Lodash.set() value such as:
|
|
|
838
840
|
|
|
839
841
|
### Parameters
|
|
840
842
|
|
|
841
|
-
* `path` **([String][
|
|
843
|
+
* `path` **([String][168] | [Array][173]<[String][168]>)** The sub-path within the project state to set
|
|
842
844
|
* `value` **any** The value to set
|
|
843
|
-
* `options` **[Object][
|
|
845
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
844
846
|
|
|
845
|
-
* `options.save` **[Boolean][
|
|
847
|
+
* `options.save` **[Boolean][172]** Save the changes to the server immediately, disable to queue up multiple writes (optional, default `true`)
|
|
846
848
|
|
|
847
|
-
Returns **[Promise][
|
|
849
|
+
Returns **[Promise][174]** A promise which resolves when the operation has been dispatched to the server
|
|
848
850
|
|
|
849
851
|
## setProjectStateDefaults
|
|
850
852
|
|
|
@@ -854,18 +856,18 @@ Set a nested value within the project state - just like `setProjectState()` - bu
|
|
|
854
856
|
|
|
855
857
|
### Parameters
|
|
856
858
|
|
|
857
|
-
* `path` **([String][
|
|
859
|
+
* `path` **([String][168] | [Array][173]<[String][168]>)** The sub-path within the project state to set
|
|
858
860
|
* `value` **any** The value to set
|
|
859
|
-
* `options` **[Object][
|
|
861
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour, see setProjectState() for the full list of supported options
|
|
860
862
|
|
|
861
|
-
Returns **[Promise][
|
|
863
|
+
Returns **[Promise][174]<[Boolean][172]>** A promise which resolves to whether any changes were made - True if defaults were applied, false otherwise
|
|
862
864
|
|
|
863
865
|
## setProjectStateRefresh
|
|
864
866
|
|
|
865
867
|
Force refetching the remote project state into local
|
|
866
868
|
This is only ever needed when saving large quantities of data that need to be immediately available
|
|
867
869
|
|
|
868
|
-
Returns **[Promise][
|
|
870
|
+
Returns **[Promise][174]** A promise which resolves when the operation has completed
|
|
869
871
|
|
|
870
872
|
## FileFilters
|
|
871
873
|
|
|
@@ -873,10 +875,10 @@ Data structure for a file filter
|
|
|
873
875
|
|
|
874
876
|
### Properties
|
|
875
877
|
|
|
876
|
-
* `library` **[Boolean][
|
|
877
|
-
* `filename` **[String][
|
|
878
|
-
* `basename` **[String][
|
|
879
|
-
* `ext` **[String][
|
|
878
|
+
* `library` **[Boolean][172]?** Restrict to library files only
|
|
879
|
+
* `filename` **[String][168]?** CSV of @momsfriendlydevco/match expressions to filter the filename by (filenames are the basename sans extension)
|
|
880
|
+
* `basename` **[String][168]?** CSV of @momsfriendlydevco/match expressions to filter the basename by
|
|
881
|
+
* `ext` **[String][168]?** CSV of @momsfriendlydevco/match expressions to filter the file extension by
|
|
880
882
|
|
|
881
883
|
## selectProjectFile
|
|
882
884
|
|
|
@@ -884,22 +886,22 @@ Prompt the user to select a library to operate on
|
|
|
884
886
|
|
|
885
887
|
### Parameters
|
|
886
888
|
|
|
887
|
-
* `options` **[Object][
|
|
889
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
888
890
|
|
|
889
|
-
* `options.title` **[String][
|
|
890
|
-
* `options.hint` **([String][
|
|
891
|
-
* `options.save` **[Boolean][
|
|
892
|
-
* `options.saveFilename` **[String][
|
|
891
|
+
* `options.title` **[String][168]** The title of the dialog to display (optional, default `"Select a file"`)
|
|
892
|
+
* `options.hint` **([String][168] | [Array][173]<[String][168]>)?** Hints to identify the file to select in array order of preference
|
|
893
|
+
* `options.save` **[Boolean][172]** Set to truthy if saving a new file, UI will adjust to allowing overwrite OR new file name input (optional, default `false`)
|
|
894
|
+
* `options.saveFilename` **[String][168]?** File name to save as, if omitted the hinting system is used otherwise 'My File.unknown' is assumed
|
|
893
895
|
* `options.filters` **[FileFilters][118]?** Optional file filters
|
|
894
|
-
* `options.allowUpload` **[Boolean][
|
|
895
|
-
* `options.allowRefresh` **[Boolean][
|
|
896
|
-
* `options.allowDownloadZip` **[Boolean][
|
|
897
|
-
* `options.allowCancel` **[Boolean][
|
|
898
|
-
* `options.autoRequire` **[Boolean][
|
|
899
|
-
* `options.showHiddenFiles` **[Boolean][
|
|
896
|
+
* `options.allowUpload` **[Boolean][172]** Allow uploading new files (optional, default `true`)
|
|
897
|
+
* `options.allowRefresh` **[Boolean][172]** Allow the user to manually refresh the file list (optional, default `true`)
|
|
898
|
+
* `options.allowDownloadZip` **[Boolean][172]** Allow the user to download a Zip of all files (optional, default `true`)
|
|
899
|
+
* `options.allowCancel` **[Boolean][172]** Allow cancelling the operation. Will throw `'CANCEL'` as the promise rejection if acationed (optional, default `true`)
|
|
900
|
+
* `options.autoRequire` **[Boolean][172]** Run `requireProject()` automatically before continuing (optional, default `true`)
|
|
901
|
+
* `options.showHiddenFiles` **[Boolean][172]** Whether hidden data.json files should be shown (optional, default `false`)
|
|
900
902
|
* `options.filter` **[FileFilters][118]?** Optional file filters
|
|
901
903
|
|
|
902
|
-
Returns **[Promise][
|
|
904
|
+
Returns **[Promise][174]<[ProjectFile][1]>** The eventually selected file, if in save mode new files are created as stubs
|
|
903
905
|
|
|
904
906
|
## getProjectFiles
|
|
905
907
|
|
|
@@ -907,13 +909,13 @@ Fetch the files associated with a given project
|
|
|
907
909
|
|
|
908
910
|
### Parameters
|
|
909
911
|
|
|
910
|
-
* `options` **[Object][
|
|
912
|
+
* `options` **[Object][169]** Options which mutate behaviour
|
|
911
913
|
|
|
912
|
-
* `options.autoRequire` **[Boolean][
|
|
913
|
-
* `options.lazy` **[Boolean][
|
|
914
|
-
* `options.meta` **[Boolean][
|
|
914
|
+
* `options.autoRequire` **[Boolean][172]** Run `requireProject()` automatically before continuing (optional, default `true`)
|
|
915
|
+
* `options.lazy` **[Boolean][172]** 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`)
|
|
916
|
+
* `options.meta` **[Boolean][172]** Pull meta information for each file entity (optional, default `true`)
|
|
915
917
|
|
|
916
|
-
Returns **[Promise][
|
|
918
|
+
Returns **[Promise][174]<[Array][173]<[ProjectFile][1]>>** A collection of project files for the given project
|
|
917
919
|
|
|
918
920
|
## getProjectFileContents
|
|
919
921
|
|
|
@@ -921,8 +923,8 @@ Fetch the raw contents of a file by its ID
|
|
|
921
923
|
|
|
922
924
|
### Parameters
|
|
923
925
|
|
|
924
|
-
* `id` **[String][
|
|
925
|
-
* `options` **[Object][
|
|
926
|
+
* `id` **[String][168]?** File ID to retrieve the contents of
|
|
927
|
+
* `options` **[Object][169]?** Additioanl options to mutate behaviour
|
|
926
928
|
|
|
927
929
|
* `options.format` **(`"blob"` | `"json"`)** The format to retrieve the file in (optional, default `'blob'`)
|
|
928
930
|
|
|
@@ -934,13 +936,13 @@ Fetch a project file by its name
|
|
|
934
936
|
|
|
935
937
|
### Parameters
|
|
936
938
|
|
|
937
|
-
* `name` **[String][
|
|
938
|
-
* `options` **([Object][
|
|
939
|
+
* `name` **[String][168]** The file name (or path if inside a directory)
|
|
940
|
+
* `options` **([Object][169] | [String][168])?** Additional options to mutate behaviour, if a string is given `options.subkey` is assumed
|
|
939
941
|
|
|
940
|
-
* `options.subkey` **[String][
|
|
941
|
-
* `options.cache` **[Boolean][
|
|
942
|
+
* `options.subkey` **[String][168]?** If specified only the extracted subkey is returned rather than the full object
|
|
943
|
+
* `options.cache` **[Boolean][172]** Use the existing file cache if possible, set to false to force a refresh of files from the server first (optional, default `true`)
|
|
942
944
|
|
|
943
|
-
Returns **[Promise][
|
|
945
|
+
Returns **[Promise][174]<[ProjectFile][1]>** The eventual fetched ProjectFile (or requested subkey)
|
|
944
946
|
|
|
945
947
|
## createProjectFile
|
|
946
948
|
|
|
@@ -949,9 +951,9 @@ This creates an empty file which can then be written to
|
|
|
949
951
|
|
|
950
952
|
### Parameters
|
|
951
953
|
|
|
952
|
-
* `name` **[String][
|
|
954
|
+
* `name` **[String][168]** The name + relative directory path component
|
|
953
955
|
|
|
954
|
-
Returns **[Promise][
|
|
956
|
+
Returns **[Promise][174]<[ProjectFile][1]>** The eventual ProjectFile created
|
|
955
957
|
|
|
956
958
|
## moveProjectFile
|
|
957
959
|
|
|
@@ -960,17 +962,17 @@ The file's unique ID (UUID) remains the same, but its 'name' (relative path) and
|
|
|
960
962
|
|
|
961
963
|
### Parameters
|
|
962
964
|
|
|
963
|
-
* `sourceId` **[String][
|
|
964
|
-
* `newName` **[String][
|
|
965
|
+
* `sourceId` **[String][168]** The unique ID (UUID) of the file to move.
|
|
966
|
+
* `newName` **[String][168]** The new relative name for the file (e.g., "documents/report-final.pdf" or "image.png").
|
|
965
967
|
This path is relative to the project's root file directory.
|
|
966
|
-
* `options` **[Object][
|
|
968
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour.
|
|
967
969
|
|
|
968
|
-
* `options.autoRequire` **[Boolean][
|
|
969
|
-
* `options.overwrite` **[Boolean][
|
|
970
|
+
* `options.autoRequire` **[Boolean][172]** Run `requireProject()` automatically before continuing. (optional, default `true`)
|
|
971
|
+
* `options.overwrite` **[Boolean][172]** If true (default), moving a file to a `newName` that already exists will overwrite the existing file.
|
|
970
972
|
This aligns with the default behavior of the underlying Supabase storage `move` operation.
|
|
971
973
|
If set to false, the function would ideally check and prevent overwrite, but current implementation relies on underlying storage behavior. (optional, default `true`)
|
|
972
974
|
|
|
973
|
-
Returns **[Promise][
|
|
975
|
+
Returns **[Promise][174]<([ProjectFile][1] | null)>** A promise which resolves to the updated ProjectFile object for the moved file if found after the operation,
|
|
974
976
|
or null if the file could not be located post-move (e.g., if its ID changed unexpectedly or it was deleted).
|
|
975
977
|
|
|
976
978
|
## deleteProjectFile
|
|
@@ -979,9 +981,9 @@ Remove a project file by its ID
|
|
|
979
981
|
|
|
980
982
|
### Parameters
|
|
981
983
|
|
|
982
|
-
* `id` **[String][
|
|
984
|
+
* `id` **[String][168]** The File ID to remove
|
|
983
985
|
|
|
984
|
-
Returns **[Promise][
|
|
986
|
+
Returns **[Promise][174]** A promise which resolves when the operation has completed
|
|
985
987
|
|
|
986
988
|
## setProjectFileContents
|
|
987
989
|
|
|
@@ -989,18 +991,18 @@ Save (or overwrite) a file within a project
|
|
|
989
991
|
|
|
990
992
|
### Parameters
|
|
991
993
|
|
|
992
|
-
* `id` **([String][
|
|
993
|
-
* `contents` **(File | [Blob][
|
|
994
|
-
* `options` **[Object][
|
|
994
|
+
* `id` **([String][168] | [ProjectFile][1])?** ProjectFile or ID of the same to overwrite, if omitted a file is prompted for
|
|
995
|
+
* `contents` **(File | [Blob][175] | [FormData][176] | [Object][169] | [Array][173])** The new file contents
|
|
996
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
995
997
|
|
|
996
|
-
* `options.id` **([String][
|
|
997
|
-
* `options.autoRequire` **[Boolean][
|
|
998
|
-
* `options.hint` **([String][
|
|
999
|
-
* `options.filename` **[String][
|
|
1000
|
-
* `options.title` **[String][
|
|
1001
|
-
* `options.meta` **[Object][
|
|
998
|
+
* `options.id` **([String][168] | [ProjectFile][1])?** Alternate method to specify the file ID to save as, if omitted one will be prompted for
|
|
999
|
+
* `options.autoRequire` **[Boolean][172]** Run `requireProject()` automatically before continuing (optional, default `true`)
|
|
1000
|
+
* `options.hint` **([String][168] | [Array][173]<[String][168]>)?** Hint(s) to store against the library. Generally corresponds to the current operation being performed - e.g. 'deduped'
|
|
1001
|
+
* `options.filename` **[String][168]?** Suggested filename if `id` is unspecified
|
|
1002
|
+
* `options.title` **[String][168]** Dialog title if `id` is unspecified and a prompt is necessary (optional, default `'Save citation library'`)
|
|
1003
|
+
* `options.meta` **[Object][169]?** Optional meta data to merge into the file data
|
|
1002
1004
|
|
|
1003
|
-
Returns **[Promise][
|
|
1005
|
+
Returns **[Promise][174]** A promise which will resolve when the write operation has completed
|
|
1004
1006
|
|
|
1005
1007
|
## createProjectFolder
|
|
1006
1008
|
|
|
@@ -1010,16 +1012,16 @@ This operation is idempotent: if the folder (via its placeholder) already exists
|
|
|
1010
1012
|
|
|
1011
1013
|
### Parameters
|
|
1012
1014
|
|
|
1013
|
-
* `folderPath` **[String][
|
|
1014
|
-
* `options` **[Object][
|
|
1015
|
+
* `folderPath` **[String][168]** The relative path of the folder to create (e.g., "myDocuments/reports").
|
|
1016
|
+
* `options` **[Object][169]?** Additional options.
|
|
1015
1017
|
|
|
1016
|
-
* `options.autoRequire` **[Boolean][
|
|
1018
|
+
* `options.autoRequire` **[Boolean][172]** Automatically run `requireProject()` to ensure an active project context. (optional, default `true`)
|
|
1017
1019
|
|
|
1018
1020
|
<!---->
|
|
1019
1021
|
|
|
1020
|
-
* Throws **[Error][
|
|
1022
|
+
* Throws **[Error][181]** If no project is active (and autoRequire is false), or if folderPath is invalid, or if the creation fails.
|
|
1021
1023
|
|
|
1022
|
-
Returns **[Promise][
|
|
1024
|
+
Returns **[Promise][174]\<void>** A promise that resolves when the folder is created or ensured.
|
|
1023
1025
|
|
|
1024
1026
|
## deleteProjectFolder
|
|
1025
1027
|
|
|
@@ -1028,16 +1030,16 @@ This involves listing all files under the given folder path (prefix) and removin
|
|
|
1028
1030
|
|
|
1029
1031
|
### Parameters
|
|
1030
1032
|
|
|
1031
|
-
* `folderPath` **[String][
|
|
1032
|
-
* `options` **[Object][
|
|
1033
|
+
* `folderPath` **[String][168]** The relative path of the folder to delete (e.g., "myDocuments/reports").
|
|
1034
|
+
* `options` **[Object][169]?** Additional options.
|
|
1033
1035
|
|
|
1034
|
-
* `options.autoRequire` **[Boolean][
|
|
1036
|
+
* `options.autoRequire` **[Boolean][172]** Automatically run `requireProject()` to ensure an active project context. (optional, default `true`)
|
|
1035
1037
|
|
|
1036
1038
|
<!---->
|
|
1037
1039
|
|
|
1038
|
-
* Throws **[Error][
|
|
1040
|
+
* Throws **[Error][181]** If no project is active (and autoRequire is false), or if folderPath is invalid, or if deletion fails.
|
|
1039
1041
|
|
|
1040
|
-
Returns **[Promise][
|
|
1042
|
+
Returns **[Promise][174]\<null>** A promise that resolves with null when the folder and its contents are deleted.
|
|
1041
1043
|
|
|
1042
1044
|
## selectProjectLibrary
|
|
1043
1045
|
|
|
@@ -1045,19 +1047,19 @@ Prompt the user to select a library to operate on and return a array of referenc
|
|
|
1045
1047
|
|
|
1046
1048
|
### Parameters
|
|
1047
1049
|
|
|
1048
|
-
* `options` **[Object][
|
|
1050
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
1049
1051
|
|
|
1050
|
-
* `options.title` **[String][
|
|
1051
|
-
* `options.hint` **([String][
|
|
1052
|
-
* `options.allowUpload` **[Boolean][
|
|
1053
|
-
* `options.allowRefresh` **[Boolean][
|
|
1054
|
-
* `options.allowDownloadZip` **[Boolean][
|
|
1055
|
-
* `options.allowCancel` **[Boolean][
|
|
1056
|
-
* `options.autoRequire` **[Boolean][
|
|
1052
|
+
* `options.title` **[String][168]** The title of the dialog to display (optional, default `"Select a citation library"`)
|
|
1053
|
+
* `options.hint` **([String][168] | [Array][173]<[String][168]>)?** Hints to identify the library to select in array order of preference. Generally corresponds to the previous stage - e.g. 'deduped', 'review1', 'review2', 'dedisputed'
|
|
1054
|
+
* `options.allowUpload` **[Boolean][172]** Allow uploading new files (optional, default `true`)
|
|
1055
|
+
* `options.allowRefresh` **[Boolean][172]** Allow the user to manually refresh the file list (optional, default `true`)
|
|
1056
|
+
* `options.allowDownloadZip` **[Boolean][172]** Allow the user to download a Zip of all files (optional, default `true`)
|
|
1057
|
+
* `options.allowCancel` **[Boolean][172]** Allow cancelling the operation. Will throw `'CANCEL'` as the promise rejection if acationed (optional, default `true`)
|
|
1058
|
+
* `options.autoRequire` **[Boolean][172]** Run `requireProject()` automatically before continuing (optional, default `true`)
|
|
1057
1059
|
* `options.filters` **[FileFilters][118]?** Optional file filters, defaults to citation library selection only
|
|
1058
1060
|
* `options` **...any?** Additional options - see `getProjectLibrary()`
|
|
1059
1061
|
|
|
1060
|
-
Returns **[Promise][
|
|
1062
|
+
Returns **[Promise][174]<[Array][173]\<Ref>>** A collection of references from the selected file
|
|
1061
1063
|
|
|
1062
1064
|
## getProjectLibrary
|
|
1063
1065
|
|
|
@@ -1065,15 +1067,15 @@ Fetch + convert a project file into a library of citations
|
|
|
1065
1067
|
|
|
1066
1068
|
### Parameters
|
|
1067
1069
|
|
|
1068
|
-
* `id` **[String][
|
|
1069
|
-
* `options` **[Object][
|
|
1070
|
+
* `id` **[String][168]** File ID to read
|
|
1071
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
1070
1072
|
|
|
1071
|
-
* `options.format` **[String][
|
|
1072
|
-
* `options.autoRequire` **[Boolean][
|
|
1073
|
-
* `options.filter` **[Function][
|
|
1074
|
-
* `options.find` **[Function][
|
|
1073
|
+
* `options.format` **[String][168]** Format for the file. ENUM: 'pojo' (return a parsed JS collection), 'blob' (raw JS Blob object), 'file' (named JS File object) (optional, default `'json'`)
|
|
1074
|
+
* `options.autoRequire` **[Boolean][172]** Run `requireProject()` automatically before continuing (optional, default `true`)
|
|
1075
|
+
* `options.filter` **[Function][178]?** Optional async file filter, called each time as `(File:ProjectFile)`
|
|
1076
|
+
* `options.find` **[Function][178]?** Optional async final stage file filter to reduce all candidates down to one subject file
|
|
1075
1077
|
|
|
1076
|
-
Returns **([Promise][
|
|
1078
|
+
Returns **([Promise][174]<[Array][173]\<Ref>> | [Promise][174]\<any>)** A collection of references (default bevahiour) or a whatever format was requested
|
|
1077
1079
|
|
|
1078
1080
|
## setProjectLibrary
|
|
1079
1081
|
|
|
@@ -1081,33 +1083,33 @@ Save back a citation library from some input
|
|
|
1081
1083
|
|
|
1082
1084
|
### Parameters
|
|
1083
1085
|
|
|
1084
|
-
* `id` **[String][
|
|
1085
|
-
* `refs` **([Array][
|
|
1086
|
-
* `options` **[Object][
|
|
1086
|
+
* `id` **[String][168]?** File ID to save back to, if omitted a file will be prompted for
|
|
1087
|
+
* `refs` **([Array][173]\<RefLibRef> | [Blob][175] | File)?** Collection of references for the selected library or the raw Blob/File
|
|
1088
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
1087
1089
|
|
|
1088
|
-
* `options.id` **[String][
|
|
1089
|
-
* `options.refs` **([Array][
|
|
1090
|
-
* `options.format` **[String][
|
|
1091
|
-
* `options.autoRequire` **[Boolean][
|
|
1092
|
-
* `options.hint` **[String][
|
|
1093
|
-
* `options.filename` **[String][
|
|
1094
|
-
* `options.title` **[String][
|
|
1095
|
-
* `options.overwrite` **[Boolean][
|
|
1096
|
-
* `options.meta` **[Object][
|
|
1090
|
+
* `options.id` **[String][168]?** Alternate method to specify the file ID to save as, if omitted one will be prompted for
|
|
1091
|
+
* `options.refs` **([Array][173]\<RefLibRef> | [Blob][175] | File)?** Alternate method to specify the refs to save as an array or raw Blob/File
|
|
1092
|
+
* `options.format` **[String][168]** Input format used. ENUM: 'pojo' (return a parsed JS collection), 'blob' (raw JS Blob object), 'file' (named JS File object) (optional, default `'json'`)
|
|
1093
|
+
* `options.autoRequire` **[Boolean][172]** Run `requireProject()` automatically before continuing (optional, default `true`)
|
|
1094
|
+
* `options.hint` **[String][168]?** Hint to store against the library. Generally corresponds to the current operation being performed - e.g. 'deduped'
|
|
1095
|
+
* `options.filename` **[String][168]?** Suggested filename if `id` is unspecified
|
|
1096
|
+
* `options.title` **[String][168]** Dialog title if `id` is unspecified and a prompt is necessary (optional, default `'Save citation library'`)
|
|
1097
|
+
* `options.overwrite` **[Boolean][172]** Allow existing file upsert (optional, default `true`)
|
|
1098
|
+
* `options.meta` **[Object][169]?** Optional meta data to merge into the file data
|
|
1097
1099
|
|
|
1098
|
-
Returns **[Promise][
|
|
1100
|
+
Returns **[Promise][174]** A promise which resolves when the save operation has completed
|
|
1099
1101
|
|
|
1100
1102
|
## projectLog
|
|
1101
1103
|
|
|
1102
1104
|
Create a log entry for the currently active project
|
|
1103
1105
|
|
|
1104
|
-
The required log object can be of various forms. See [https://tera-tools.com/api/logs.json][
|
|
1106
|
+
The required log object can be of various forms. See [https://tera-tools.com/api/logs.json][182] for the full list
|
|
1105
1107
|
|
|
1106
1108
|
### Parameters
|
|
1107
1109
|
|
|
1108
|
-
* `log` **[Object][
|
|
1110
|
+
* `log` **[Object][169]** The log entry to create
|
|
1109
1111
|
|
|
1110
|
-
Returns **[Promise][
|
|
1112
|
+
Returns **[Promise][174]** A promise which resolves when the operation has completed
|
|
1111
1113
|
|
|
1112
1114
|
## setPage
|
|
1113
1115
|
|
|
@@ -1116,10 +1118,10 @@ This is usually called by a tool nested within the tera-tools.com embed
|
|
|
1116
1118
|
|
|
1117
1119
|
### Parameters
|
|
1118
1120
|
|
|
1119
|
-
* `options` **([Object][
|
|
1121
|
+
* `options` **([Object][169] | [String][168])** Context information about the page, if this is a string, its assumed to popupate `url`
|
|
1120
1122
|
|
|
1121
|
-
* `options.path` **[String][
|
|
1122
|
-
* `options.title` **[String][
|
|
1123
|
+
* `options.path` **[String][168]?** The URL path segment to restore on next refresh
|
|
1124
|
+
* `options.title` **[String][168]?** The page title associated with the path
|
|
1123
1125
|
|
|
1124
1126
|
## uiAlert
|
|
1125
1127
|
|
|
@@ -1127,15 +1129,15 @@ Display simple text within TERA
|
|
|
1127
1129
|
|
|
1128
1130
|
### Parameters
|
|
1129
1131
|
|
|
1130
|
-
* `text` **[String][
|
|
1131
|
-
* `options` **[Object][
|
|
1132
|
+
* `text` **[String][168]?** Text to display, if specified this populates `options.body`
|
|
1133
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
1132
1134
|
|
|
1133
|
-
* `options.body` **[String][
|
|
1134
|
-
* `options.isHtml` **[Boolean][
|
|
1135
|
-
* `options.title` **[String][
|
|
1135
|
+
* `options.body` **[String][168]** The body text to display (optional, default `"Alert!"`)
|
|
1136
|
+
* `options.isHtml` **[Boolean][172]** If falsy the text is rendered as plain-text otherwise it will be assumed as HTML content (optional, default `false`)
|
|
1137
|
+
* `options.title` **[String][168]** The title of the alert box (optional, default `'TERA'`)
|
|
1136
1138
|
* `options.buttons` **(`"ok"` | `false`)** Button set to use or falsy to disable (optional, default `'ok'`)
|
|
1137
1139
|
|
|
1138
|
-
Returns **[Promise][
|
|
1140
|
+
Returns **[Promise][174]** A promise which resolves when the alert has been dismissed
|
|
1139
1141
|
|
|
1140
1142
|
## uiConfirm
|
|
1141
1143
|
|
|
@@ -1143,14 +1145,30 @@ Present a simple ok/cancel dialog to the user
|
|
|
1143
1145
|
|
|
1144
1146
|
### Parameters
|
|
1145
1147
|
|
|
1146
|
-
* `text` **[String][
|
|
1147
|
-
* `options` **[Object][
|
|
1148
|
+
* `text` **[String][168]?** Text to display, if specified this populates `options.body`
|
|
1149
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
1148
1150
|
|
|
1149
|
-
* `options.body` **[String][
|
|
1150
|
-
* `options.isHtml` **[Boolean][
|
|
1151
|
-
* `options.title` **[String][
|
|
1151
|
+
* `options.body` **[String][168]** The body text to display (optional, default `"Confirm?"`)
|
|
1152
|
+
* `options.isHtml` **[Boolean][172]** If falsy the text is rendered as plain-text otherwise it will be assumed as HTML content (optional, default `false`)
|
|
1153
|
+
* `options.title` **[String][168]** The title of the confirmation box (optional, default `'TERA'`)
|
|
1152
1154
|
|
|
1153
|
-
Returns **[Promise][
|
|
1155
|
+
Returns **[Promise][174]** A promise which resolves with `Promise.resolve('OK')` or rejects with `Promise.reject('CANCEL')`
|
|
1156
|
+
|
|
1157
|
+
## uiJson
|
|
1158
|
+
|
|
1159
|
+
Present some JSON to the user
|
|
1160
|
+
|
|
1161
|
+
### Parameters
|
|
1162
|
+
|
|
1163
|
+
* `data` **([String][168] | [Object][169])?** Data to display, if (and this doesn't contain 'body' or 'title') this populates `options.body`
|
|
1164
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
1165
|
+
|
|
1166
|
+
* `options.body` **[String][168]** The body text to display above the JSON (optional, default `""`)
|
|
1167
|
+
* `options.isHtml` **[Boolean][172]** If falsy the text is rendered as plain-text otherwise it will be assumed as HTML content (optional, default `false`)
|
|
1168
|
+
* `options.json` **([String][168] | [Object][169])?** The JSON data to display
|
|
1169
|
+
* `options.title` **[String][168]** The title of the confirmation box (optional, default `'TERA'`)
|
|
1170
|
+
|
|
1171
|
+
Returns **[Promise][174]** A promise which resolves with `Promise.resolve('OK')`
|
|
1154
1172
|
|
|
1155
1173
|
## uiPanic
|
|
1156
1174
|
|
|
@@ -1158,7 +1176,7 @@ Trigger a fatal error, killing the outer TERA site
|
|
|
1158
1176
|
|
|
1159
1177
|
### Parameters
|
|
1160
1178
|
|
|
1161
|
-
* `text` **[String][
|
|
1179
|
+
* `text` **[String][168]?** Text to display
|
|
1162
1180
|
|
|
1163
1181
|
## uiProgress
|
|
1164
1182
|
|
|
@@ -1167,18 +1185,18 @@ All options are cumulative - i.e. they are merged with other options previously
|
|
|
1167
1185
|
|
|
1168
1186
|
### Parameters
|
|
1169
1187
|
|
|
1170
|
-
* `options` **([Object][
|
|
1188
|
+
* `options` **([Object][169] | [Boolean][172])?** Additional options to mutate behaviour, if boolean false `{close: true}` is assumed
|
|
1171
1189
|
|
|
1172
|
-
* `options.title` **[String][
|
|
1173
|
-
* `options.backdrop` **[String][
|
|
1174
|
-
* `options.body` **[String][
|
|
1175
|
-
* `options.bodyHtml` **[Boolean][
|
|
1176
|
-
* `options.close` **[Boolean][
|
|
1177
|
-
* `options.text` **[String][
|
|
1178
|
-
* `options.progress` **[Number][
|
|
1179
|
-
* `options.maxProgress` **[Number][
|
|
1190
|
+
* `options.title` **[String][168]** Window title, can only be set on the initial call (optional, default `'TERA'`)
|
|
1191
|
+
* `options.backdrop` **[String][168]** Set to `'static'` to prevent user being able to click outside the modal to close (optional, default `true`)
|
|
1192
|
+
* `options.body` **[String][168]** Window body text, can only be set on the initial call (optional, default `''`)
|
|
1193
|
+
* `options.bodyHtml` **[Boolean][172]** Treat body text as HTML (optional, default `false`)
|
|
1194
|
+
* `options.close` **[Boolean][172]** Close the existing dialog, if true the dialog is disposed and options reset (optional, default `false`)
|
|
1195
|
+
* `options.text` **[String][168]?** The text of the task being conducted
|
|
1196
|
+
* `options.progress` **[Number][171]?** The current progress of the task being conducted, this is assumed to be a value less than `maxProgress`
|
|
1197
|
+
* `options.maxProgress` **[Number][171]?** The maximum value that the progress can be
|
|
1180
1198
|
|
|
1181
|
-
Returns **[Promise][
|
|
1199
|
+
Returns **[Promise][174]** A promise which resolves when the dialog has been updated
|
|
1182
1200
|
|
|
1183
1201
|
## uiPrompt
|
|
1184
1202
|
|
|
@@ -1186,17 +1204,17 @@ Prompt the user for an input, responding with a Promisable value
|
|
|
1186
1204
|
|
|
1187
1205
|
### Parameters
|
|
1188
1206
|
|
|
1189
|
-
* `text` **[String][
|
|
1190
|
-
* `options` **[Object][
|
|
1207
|
+
* `text` **[String][168]?** Text to display, if specified this populates `options.body`
|
|
1208
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
1191
1209
|
|
|
1192
|
-
* `options.body` **[String][
|
|
1193
|
-
* `options.isHtml` **[Boolean][
|
|
1194
|
-
* `options.value` **[String][
|
|
1195
|
-
* `options.title` **[String][
|
|
1196
|
-
* `options.placeholder` **[String][
|
|
1197
|
-
* `options.required` **[Boolean][
|
|
1210
|
+
* `options.body` **[String][168]?** Optional additional body text
|
|
1211
|
+
* `options.isHtml` **[Boolean][172]** If truthy, treat the body as HTML (optional, default `false`)
|
|
1212
|
+
* `options.value` **[String][168]?** Current or default value to display pre-filled
|
|
1213
|
+
* `options.title` **[String][168]** The dialog title to display (optional, default `'Input required'`)
|
|
1214
|
+
* `options.placeholder` **[String][168]?** Optional placeholder text
|
|
1215
|
+
* `options.required` **[Boolean][172]** Treat nullish or empty inputs as a cancel operation (optional, default `true`)
|
|
1198
1216
|
|
|
1199
|
-
Returns **[Promise][
|
|
1217
|
+
Returns **[Promise][174]\<any>** Either the eventual user value or a throw with `Promise.reject('CANCEL')`
|
|
1200
1218
|
|
|
1201
1219
|
## uiThrow
|
|
1202
1220
|
|
|
@@ -1204,7 +1222,7 @@ Catch an error using the TERA error handler
|
|
|
1204
1222
|
|
|
1205
1223
|
### Parameters
|
|
1206
1224
|
|
|
1207
|
-
* `error` **([Error][
|
|
1225
|
+
* `error` **([Error][181] | [Object][169] | [String][168])** Error to handle, generally an Error object but can be a POJO or a scalar string
|
|
1208
1226
|
|
|
1209
1227
|
Returns **Void** This function is fatal
|
|
1210
1228
|
|
|
@@ -1214,13 +1232,13 @@ Open a popup window containing a new site
|
|
|
1214
1232
|
|
|
1215
1233
|
### Parameters
|
|
1216
1234
|
|
|
1217
|
-
* `url` **[String][
|
|
1218
|
-
* `options` **[Object][
|
|
1235
|
+
* `url` **[String][168]** The URL to open
|
|
1236
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
1219
1237
|
|
|
1220
|
-
* `options.width` **[Number][
|
|
1221
|
-
* `options.height` **[Number][
|
|
1222
|
-
* `options.center` **[Boolean][
|
|
1223
|
-
* `options.permissions` **[Object][
|
|
1238
|
+
* `options.width` **[Number][171]** The desired width of the window (optional, default `500`)
|
|
1239
|
+
* `options.height` **[Number][171]** The desired height of the window (optional, default `600`)
|
|
1240
|
+
* `options.center` **[Boolean][172]** Attempt to center the window on the screen (optional, default `true`)
|
|
1241
|
+
* `options.permissions` **[Object][169]?** Additional permissions to set on opening, defaults to a suitable set of permission for popups (see code)
|
|
1224
1242
|
|
|
1225
1243
|
Returns **WindowProxy** The opened window object (if `noopener` is not set in permissions)
|
|
1226
1244
|
|
|
@@ -1231,10 +1249,10 @@ This function is ideally called within a requestFocus() wrapper
|
|
|
1231
1249
|
|
|
1232
1250
|
### Parameters
|
|
1233
1251
|
|
|
1234
|
-
* `content` **(DOMElement | [String][
|
|
1235
|
-
* `options` **[Object][
|
|
1252
|
+
* `content` **(DOMElement | [String][168] | `false`)** Either a prepared DOM element or string to compile, set to falsy to remove existing content
|
|
1253
|
+
* `options` **[Object][169]?** Additional options to mutate behaviour
|
|
1236
1254
|
|
|
1237
|
-
* `options.logo` **([Boolean][
|
|
1255
|
+
* `options.logo` **([Boolean][172] | [String][168])** Add a logo to the output, if boolean true the Tera-tools logo is used otherwise specify a path or URL (optional, default `false`)
|
|
1238
1256
|
|
|
1239
1257
|
[1]: #projectfile
|
|
1240
1258
|
|
|
@@ -1542,56 +1560,60 @@ This function is ideally called within a requestFocus() wrapper
|
|
|
1542
1560
|
|
|
1543
1561
|
[153]: #parameters-49
|
|
1544
1562
|
|
|
1545
|
-
[154]: #
|
|
1563
|
+
[154]: #uijson
|
|
1546
1564
|
|
|
1547
1565
|
[155]: #parameters-50
|
|
1548
1566
|
|
|
1549
|
-
[156]: #
|
|
1567
|
+
[156]: #uipanic
|
|
1550
1568
|
|
|
1551
1569
|
[157]: #parameters-51
|
|
1552
1570
|
|
|
1553
|
-
[158]: #
|
|
1571
|
+
[158]: #uiprogress
|
|
1554
1572
|
|
|
1555
1573
|
[159]: #parameters-52
|
|
1556
1574
|
|
|
1557
|
-
[160]: #
|
|
1575
|
+
[160]: #uiprompt
|
|
1558
1576
|
|
|
1559
1577
|
[161]: #parameters-53
|
|
1560
1578
|
|
|
1561
|
-
[162]: #
|
|
1579
|
+
[162]: #uithrow
|
|
1562
1580
|
|
|
1563
1581
|
[163]: #parameters-54
|
|
1564
1582
|
|
|
1565
|
-
[164]: #
|
|
1583
|
+
[164]: #uiwindow
|
|
1566
1584
|
|
|
1567
1585
|
[165]: #parameters-55
|
|
1568
1586
|
|
|
1569
|
-
[166]:
|
|
1587
|
+
[166]: #uisplat
|
|
1588
|
+
|
|
1589
|
+
[167]: #parameters-56
|
|
1590
|
+
|
|
1591
|
+
[168]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/String
|
|
1570
1592
|
|
|
1571
|
-
[
|
|
1593
|
+
[169]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Object
|
|
1572
1594
|
|
|
1573
|
-
[
|
|
1595
|
+
[170]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Date
|
|
1574
1596
|
|
|
1575
|
-
[
|
|
1597
|
+
[171]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Number
|
|
1576
1598
|
|
|
1577
|
-
[
|
|
1599
|
+
[172]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Boolean
|
|
1578
1600
|
|
|
1579
|
-
[
|
|
1601
|
+
[173]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Array
|
|
1580
1602
|
|
|
1581
|
-
[
|
|
1603
|
+
[174]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Promise
|
|
1582
1604
|
|
|
1583
|
-
[
|
|
1605
|
+
[175]: https://developer.mozilla.org/docs/Web/API/Blob
|
|
1584
1606
|
|
|
1585
|
-
[
|
|
1607
|
+
[176]: https://developer.mozilla.org/docs/Web/API/FormData
|
|
1586
1608
|
|
|
1587
|
-
[
|
|
1609
|
+
[177]: https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Structured_clone_algorithm
|
|
1588
1610
|
|
|
1589
|
-
[
|
|
1611
|
+
[178]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Statements/function
|
|
1590
1612
|
|
|
1591
|
-
[
|
|
1613
|
+
[179]: https://developer.mozilla.org/docs/Web/API/Window
|
|
1592
1614
|
|
|
1593
|
-
[
|
|
1615
|
+
[180]: https://developer.mozilla.org/docs/Web/API/MessageEvent
|
|
1594
1616
|
|
|
1595
|
-
[
|
|
1617
|
+
[181]: https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/Error
|
|
1596
1618
|
|
|
1597
|
-
[
|
|
1619
|
+
[182]: https://tera-tools.com/api/logs.json
|