@iebh/tera-fy 2.3.1 → 2.3.2
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/.vscode/settings.json +5 -0
- package/CHANGELOG.md +15 -0
- package/api.md +34 -35
- package/dist/lib/projectFile.d.ts +3 -3
- package/dist/lib/projectFile.js +4 -3
- package/dist/lib/projectFile.js.map +1 -1
- package/dist/lib/syncro/entities.js +11 -10
- package/dist/lib/syncro/entities.js.map +1 -1
- package/dist/lib/syncro/keyed.d.ts +2 -2
- package/dist/lib/syncro/keyed.js +23 -23
- package/dist/lib/syncro/keyed.js.map +1 -1
- package/dist/lib/syncro/syncro.d.ts +15 -13
- package/dist/lib/syncro/syncro.js +84 -59
- package/dist/lib/syncro/syncro.js.map +1 -1
- package/dist/lib/terafy.bootstrapper.d.ts +2 -2
- package/dist/lib/terafy.bootstrapper.js +15 -16
- package/dist/lib/terafy.bootstrapper.js.map +1 -1
- package/dist/lib/terafy.client.d.ts +24 -25
- package/dist/lib/terafy.client.js +50 -48
- package/dist/lib/terafy.client.js.map +1 -1
- package/dist/lib/terafy.proxy.js +4 -2
- package/dist/lib/terafy.proxy.js.map +1 -1
- package/dist/lib/terafy.server.d.ts +21 -7
- package/dist/lib/terafy.server.js +51 -53
- package/dist/lib/terafy.server.js.map +1 -1
- package/dist/plugin.vue2.es2019.js +210 -1224
- package/dist/plugins/base.d.ts +2 -2
- package/dist/plugins/base.js +1 -0
- package/dist/plugins/base.js.map +1 -1
- package/dist/plugins/firebase.d.ts +4 -4
- package/dist/plugins/firebase.js +7 -7
- package/dist/plugins/firebase.js.map +1 -1
- package/dist/plugins/vue2.d.ts +1 -1
- package/dist/plugins/vue2.js +6 -5
- package/dist/plugins/vue2.js.map +1 -1
- package/dist/plugins/vue3.js +6 -5
- package/dist/plugins/vue3.js.map +1 -1
- package/dist/terafy.bootstrapper.es2019.js +2 -2
- package/dist/terafy.bootstrapper.js +2 -2
- package/dist/terafy.es2019.js +2 -2
- package/dist/terafy.js +2 -2
- package/dist/utils/mixin.js +1 -1
- package/dist/utils/mixin.js.map +1 -1
- package/dist/utils/pDefer.d.ts +5 -1
- package/dist/utils/pDefer.js +6 -1
- package/dist/utils/pDefer.js.map +1 -1
- package/dist/utils/pathTools.d.ts +1 -1
- package/dist/utils/pathTools.js +2 -2
- package/dist/utils/pathTools.js.map +1 -1
- package/eslint.config.js +21 -7
- package/lib/projectFile.ts +5 -4
- package/lib/syncro/entities.ts +11 -10
- package/lib/syncro/keyed.ts +24 -24
- package/lib/syncro/syncro.ts +97 -60
- package/lib/terafy.bootstrapper.ts +15 -16
- package/lib/terafy.client.ts +61 -61
- package/lib/terafy.proxy.ts +8 -5
- package/lib/terafy.server.ts +72 -57
- package/package.json +5 -3
- package/plugins/base.ts +3 -2
- package/plugins/firebase.ts +12 -11
- package/plugins/vue2.ts +7 -6
- package/plugins/vue3.ts +6 -5
- package/utils/mixin.ts +1 -1
- package/utils/pDefer.ts +7 -2
- package/utils/pathTools.ts +3 -3
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
/* eslint-disable no-unused-vars */
|
|
2
3
|
import { isEmpty, cloneDeep, random, sample, throttle, isEqual } from 'lodash-es';
|
|
3
4
|
import { doc as FirestoreDocRef, getDoc as FirestoreGetDoc, onSnapshot as FirestoreOnSnapshot, setDoc as FirestoreSetDoc, updateDoc as FirestoreUpdateDoc, } from 'firebase/firestore';
|
|
4
|
-
// @ts-
|
|
5
|
+
// @ts-expect-error No declaration file for marshal
|
|
5
6
|
import marshal from '@momsfriendlydevco/marshal';
|
|
6
7
|
import { nanoid } from 'nanoid';
|
|
7
8
|
import PromiseRetry from 'p-retry';
|
|
@@ -20,7 +21,7 @@ export default class Syncro {
|
|
|
20
21
|
*
|
|
21
22
|
* @param {*...} [msg] The message to output
|
|
22
23
|
*/
|
|
23
|
-
debug(...msg) { }
|
|
24
|
+
debug(...msg) { }
|
|
24
25
|
/**
|
|
25
26
|
* @interface
|
|
26
27
|
* Debugging printer specifically for error messages
|
|
@@ -48,7 +49,7 @@ export default class Syncro {
|
|
|
48
49
|
* Various Misc config for the Syncro instance
|
|
49
50
|
*
|
|
50
51
|
* @type {Object}
|
|
51
|
-
* @property {Number}
|
|
52
|
+
* @property {Number} heartbeatInterval Time in milliseconds between heartbeat beacons
|
|
52
53
|
* @property {String} syncroRegistryUrl The prefix Sync worker URL, used to populate Syncros and determine their active status
|
|
53
54
|
* @property {Object} context Additional named parameters to pass to callbacks like initState
|
|
54
55
|
*/
|
|
@@ -59,7 +60,7 @@ export default class Syncro {
|
|
|
59
60
|
};
|
|
60
61
|
/**
|
|
61
62
|
* Whether the next heartbeat should be marked as 'dirty'
|
|
62
|
-
* This indicates that at least one change has
|
|
63
|
+
* This indicates that at least one change has occurred since the last heartbeat and the server should perform a flush (but not a clean)
|
|
63
64
|
* This flag is only transmitted once in the next heartbeat before being reset
|
|
64
65
|
*
|
|
65
66
|
* @see markDirty()
|
|
@@ -70,7 +71,7 @@ export default class Syncro {
|
|
|
70
71
|
* Actions to preform when we are destroying this instance
|
|
71
72
|
* This is an array of function callbacks to execute in parallel when `destroy()` is called
|
|
72
73
|
*
|
|
73
|
-
* @type {Array<
|
|
74
|
+
* @type {Array<function>}
|
|
74
75
|
*/
|
|
75
76
|
this._destroyActions = [];
|
|
76
77
|
this.path = path;
|
|
@@ -98,7 +99,7 @@ export default class Syncro {
|
|
|
98
99
|
}
|
|
99
100
|
/**
|
|
100
101
|
* Function to return whatever the local framework uses as a reactive object
|
|
101
|
-
* This should respond with an object of mandatory functions to watch for changes and
|
|
102
|
+
* This should respond with an object of mandatory functions to watch for changes and re-merge them
|
|
102
103
|
*
|
|
103
104
|
* @param {Object} value Initial value of the reactive
|
|
104
105
|
*
|
|
@@ -110,7 +111,7 @@ export default class Syncro {
|
|
|
110
111
|
*/
|
|
111
112
|
getReactive(value) {
|
|
112
113
|
console.warn('Syncro.getReactive has not been subclassed, assuming a POJO response');
|
|
113
|
-
|
|
114
|
+
const doc = { ...value };
|
|
114
115
|
return {
|
|
115
116
|
doc,
|
|
116
117
|
setState(state) {
|
|
@@ -129,7 +130,7 @@ export default class Syncro {
|
|
|
129
130
|
;
|
|
130
131
|
/**
|
|
131
132
|
* Returns the split entity + ID relationship from a given session path
|
|
132
|
-
* This
|
|
133
|
+
* This function checks for valid UUID format strings + that the entity is a known/supported entity (see `knownEntities`)
|
|
133
134
|
* NOTE: When used by itself (i.e. ignoring response) this function can also act as a guard that a path is valid
|
|
134
135
|
*
|
|
135
136
|
* INPUT: `widgets::UUID` -> `{entity:'widgets', id:UUID}`
|
|
@@ -142,11 +143,11 @@ export default class Syncro {
|
|
|
142
143
|
* @returns {PathSplitResult} An object composed of the session path components
|
|
143
144
|
*/
|
|
144
145
|
static pathSplit(path, options) {
|
|
145
|
-
|
|
146
|
+
const settings = {
|
|
146
147
|
allowAsterisk: false,
|
|
147
148
|
...options,
|
|
148
149
|
};
|
|
149
|
-
|
|
150
|
+
const pathMatcher = new RegExp(
|
|
150
151
|
// Compose the patch matching expression - note double escapes for backslashes to avoid encoding as raw string values
|
|
151
152
|
'^'
|
|
152
153
|
+ '(?<entity>\\w+?)' // Any alpha-numeric sequence as the entity name (non-greedy capture)
|
|
@@ -158,7 +159,7 @@ export default class Syncro {
|
|
|
158
159
|
+ (settings.allowAsterisk ? '\\*' : '') // ... and (optionally) an asterisk
|
|
159
160
|
+ ']+?))?'
|
|
160
161
|
+ '$');
|
|
161
|
-
|
|
162
|
+
const extracted = { ...pathMatcher.exec(path)?.groups };
|
|
162
163
|
if (!extracted || !extracted.entity || !extracted.id)
|
|
163
164
|
throw new Error(`Invalid session path syntax "${path}"`);
|
|
164
165
|
if (Syncro.SyncroEntities && !(extracted.entity in Syncro.SyncroEntities))
|
|
@@ -178,7 +179,7 @@ export default class Syncro {
|
|
|
178
179
|
* This applies the following mutations to the incoming object:
|
|
179
180
|
*
|
|
180
181
|
* 1. Arrays are converted to Objects (Firestore cannot store nested arrays)
|
|
181
|
-
* 2. All non-POJO objects (e.g. Dates) to a
|
|
182
|
+
* 2. All non-POJO objects (e.g. Dates) to a symmetric object
|
|
182
183
|
*
|
|
183
184
|
* @param {Object} snapshot The current state to convert
|
|
184
185
|
* @returns {Object} A Firebase compatible object
|
|
@@ -250,26 +251,28 @@ export default class Syncro {
|
|
|
250
251
|
* @returns {Object} A JavaScript POJO representing the converted state
|
|
251
252
|
*/
|
|
252
253
|
static fromFirestoreFields(fields = {}) {
|
|
253
|
-
|
|
254
|
-
for (
|
|
255
|
-
|
|
256
|
-
|
|
254
|
+
const result = {};
|
|
255
|
+
for (const key in fields) {
|
|
256
|
+
const value = fields[key];
|
|
257
|
+
const isDocumentType = [
|
|
257
258
|
'stringValue', 'booleanValue', 'doubleValue',
|
|
258
259
|
'integerValue', 'timestampValue', 'mapValue', 'arrayValue', 'nullValue', // Added nullValue
|
|
259
260
|
].find(t => t === Object.keys(value)[0]); // Check the first key of the value object
|
|
260
261
|
if (isDocumentType) {
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
262
|
+
switch (isDocumentType) {
|
|
263
|
+
case 'mapValue':
|
|
264
|
+
result[key] = Syncro.fromFirestoreFields(value.mapValue.fields || {});
|
|
265
|
+
break;
|
|
266
|
+
case 'arrayValue': {
|
|
267
|
+
const list = value.arrayValue.values;
|
|
268
|
+
result[key] = !!list ? list.map((l) => Syncro.fromFirestoreFields(l)) : [];
|
|
269
|
+
break;
|
|
270
|
+
}
|
|
271
|
+
case 'nullValue':
|
|
272
|
+
result[key] = null;
|
|
273
|
+
break;
|
|
274
|
+
default:
|
|
275
|
+
result[key] = value[isDocumentType];
|
|
273
276
|
}
|
|
274
277
|
}
|
|
275
278
|
else {
|
|
@@ -287,7 +290,7 @@ export default class Syncro {
|
|
|
287
290
|
* @returns {Promise<Object|Null>} An eventual snapshot of the given path, if the entity doesn't exist null is returned
|
|
288
291
|
*/
|
|
289
292
|
static getSnapshot(path) {
|
|
290
|
-
|
|
293
|
+
const { fsCollection, fsId } = Syncro.pathSplit(path);
|
|
291
294
|
return Promise.resolve()
|
|
292
295
|
.then(async () => FirestoreGetDoc(// Set up binding and wait for it to come ready
|
|
293
296
|
FirestoreDocRef(Syncro.firestore, fsCollection, fsId)))
|
|
@@ -307,11 +310,11 @@ export default class Syncro {
|
|
|
307
310
|
* @returns {Promise<*>} The state object after it has been applied
|
|
308
311
|
*/
|
|
309
312
|
static setSnapshot(path, state, options) {
|
|
310
|
-
|
|
313
|
+
const settings = {
|
|
311
314
|
method: 'merge',
|
|
312
315
|
...options,
|
|
313
316
|
};
|
|
314
|
-
|
|
317
|
+
const { fsCollection, fsId } = Syncro.pathSplit(path);
|
|
315
318
|
const docRef = FirestoreDocRef(Syncro.firestore, fsCollection, fsId);
|
|
316
319
|
const firestoreData = Syncro.toFirestore(state);
|
|
317
320
|
return Promise.resolve()
|
|
@@ -329,26 +332,46 @@ export default class Syncro {
|
|
|
329
332
|
* Mount the remote Firestore document against this Syncro instance
|
|
330
333
|
*
|
|
331
334
|
* @param {Object} [options] Additional options to mutate behaviour
|
|
332
|
-
* @param {Object} [options.
|
|
335
|
+
* @param {Object} [options.initialState] State to use if no state is already loaded, overrides the entities own `initState` function fetcher
|
|
333
336
|
* @param {Number} [options.retries=3] Number of times to retry if a mounted Syncro fails its sanity checks
|
|
334
337
|
* @returns {Promise<Syncro>} A promise which resolves as this syncro instance when completed
|
|
335
338
|
*/
|
|
336
339
|
mount(options) {
|
|
337
|
-
|
|
340
|
+
const settings = {
|
|
338
341
|
initialState: null,
|
|
339
342
|
retries: 5,
|
|
340
343
|
retryMinTime: 250,
|
|
341
344
|
...options,
|
|
342
345
|
};
|
|
343
|
-
|
|
344
|
-
let reactive; // Eventual response from reactive() with the
|
|
346
|
+
const { fsCollection, fsId, entity } = Syncro.pathSplit(this.path);
|
|
347
|
+
let reactive; // Eventual response from reactive() with the initial value
|
|
345
348
|
let doc; // Eventual Firebase document
|
|
346
349
|
return PromiseRetry(async () => {
|
|
347
|
-
await this.setHeartbeat(false); // Disable any existing heartbeat
|
|
350
|
+
await this.setHeartbeat(false); // Disable any existing heartbeat
|
|
348
351
|
// Set up binding and wait for it to come ready
|
|
349
352
|
this.docRef = FirestoreDocRef(Syncro.firestore, fsCollection, fsId);
|
|
350
|
-
//
|
|
353
|
+
// Initialize state
|
|
351
354
|
let initialState = await this.getFirestoreState();
|
|
355
|
+
// If we have a project that has `users` (written by the invite system)
|
|
356
|
+
// but lacks core data like `name` 9implying a full sync hasn't happened),
|
|
357
|
+
// we assume the document is corrupted/partial.
|
|
358
|
+
if (this.path.startsWith('projects::') &&
|
|
359
|
+
initialState &&
|
|
360
|
+
!isEmpty(initialState) &&
|
|
361
|
+
initialState.users &&
|
|
362
|
+
(!initialState.type && !initialState.name && !initialState.created)) {
|
|
363
|
+
this.debugError('Zombie state detected (Partial document). Forcing repair...');
|
|
364
|
+
// Force the backend to wipe and re-sync this entity
|
|
365
|
+
const repairRes = await fetch(`${this.config.syncroRegistryUrl}/${this.path}?drop=1&force=1`);
|
|
366
|
+
if (repairRes.ok) {
|
|
367
|
+
this.debug('Repair signal sent successfully. Reloading local state...');
|
|
368
|
+
// Fetch the newly corrected state from Firestore
|
|
369
|
+
initialState = await this.getFirestoreState();
|
|
370
|
+
}
|
|
371
|
+
else {
|
|
372
|
+
console.error('[Syncro] Self-healing failed', repairRes.statusText);
|
|
373
|
+
}
|
|
374
|
+
}
|
|
352
375
|
// Construct a reactive component
|
|
353
376
|
reactive = this.getReactive(initialState);
|
|
354
377
|
if (!reactive.doc || !reactive.setState || !reactive.getState || !reactive.watch)
|
|
@@ -357,26 +380,26 @@ export default class Syncro {
|
|
|
357
380
|
this.debug('Initial state', { doc });
|
|
358
381
|
// Subscribe to remote updates
|
|
359
382
|
const unsubscribe = FirestoreOnSnapshot(this.docRef, snapshot => {
|
|
360
|
-
|
|
383
|
+
const snapshotData = Syncro.fromFirestore(snapshot.data());
|
|
361
384
|
this.debug('Incoming snapshot', { snapshotData });
|
|
362
385
|
reactive.setState(snapshotData);
|
|
363
386
|
});
|
|
364
|
-
this._destroyActions.push(unsubscribe);
|
|
387
|
+
this._destroyActions.push(unsubscribe);
|
|
365
388
|
// Optionally create the doc if it has no content
|
|
366
389
|
if (!isEmpty(doc)) { // Doc already has content - skip
|
|
367
390
|
// Do nothing
|
|
368
391
|
}
|
|
369
|
-
else if (settings.initialState) { // Provided an
|
|
392
|
+
else if (settings.initialState) { // Provided an initialState
|
|
370
393
|
this.debug('Populate initial Syncro state (from provided initialState)');
|
|
371
394
|
await this.setFirestoreState(settings.initialState, { method: 'set' });
|
|
372
395
|
}
|
|
373
396
|
else {
|
|
397
|
+
// Doc is empty (or was missing).
|
|
374
398
|
this.debug(`Populate initial Syncro state (from "${entity}" Syncro worker)`);
|
|
375
399
|
const response = await fetch(`${this.config.syncroRegistryUrl}/${this.path}`);
|
|
376
400
|
if (!response.ok) {
|
|
377
401
|
throw new Error(`Failed to check Syncro "${fsCollection}::${fsId}" status - ${response.statusText}`);
|
|
378
402
|
}
|
|
379
|
-
// Assuming the fetch populates the syncro state server-side, no local state set needed here
|
|
380
403
|
}
|
|
381
404
|
// Setup local state watcher
|
|
382
405
|
reactive.watch(throttle((newState) => {
|
|
@@ -395,7 +418,7 @@ export default class Syncro {
|
|
|
395
418
|
factor: 3,
|
|
396
419
|
onFailedAttempt: async (e) => {
|
|
397
420
|
this.debugError(`[Attempt ${e.attemptNumber}/${e.attemptNumber + e.retriesLeft - 1}] to mount syncro`, e);
|
|
398
|
-
await this.destroy();
|
|
421
|
+
await this.destroy();
|
|
399
422
|
},
|
|
400
423
|
});
|
|
401
424
|
}
|
|
@@ -427,7 +450,7 @@ export default class Syncro {
|
|
|
427
450
|
throw new Error('Unknown call signature for set() - call with string+value or object');
|
|
428
451
|
}
|
|
429
452
|
// }}}
|
|
430
|
-
|
|
453
|
+
const settings = {
|
|
431
454
|
delta: true,
|
|
432
455
|
flush: true,
|
|
433
456
|
forceFlush: false,
|
|
@@ -459,13 +482,14 @@ export default class Syncro {
|
|
|
459
482
|
* Schedule Syncro heartbeats
|
|
460
483
|
* This populates the `sync` presence meta-information
|
|
461
484
|
*
|
|
462
|
-
* @param {Boolean} [enable=true] Whether to enable
|
|
485
|
+
* @param {Boolean} [enable=true] Whether to enable heartbeats
|
|
463
486
|
*
|
|
464
487
|
* @param {Object} [options] Additional options to mutate behaviour
|
|
465
488
|
* @param {Boolean} [options.immediate=false] Fire a heartbeat as soon as this function is called, this is only really useful on mount
|
|
489
|
+
* @returns Promise that resolves to void or void
|
|
466
490
|
*/
|
|
467
491
|
setHeartbeat(enable = true, options) {
|
|
468
|
-
|
|
492
|
+
const settings = {
|
|
469
493
|
immediate: true,
|
|
470
494
|
...options,
|
|
471
495
|
};
|
|
@@ -485,7 +509,7 @@ export default class Syncro {
|
|
|
485
509
|
}
|
|
486
510
|
}
|
|
487
511
|
/**
|
|
488
|
-
* Perform one heartbeat pulse to the server to indicate
|
|
512
|
+
* Perform one heartbeat pulse to the server to indicate presence within this Syncro
|
|
489
513
|
* This function is automatically called by a timer if `setHeartbeat(true)` (the default behaviour)
|
|
490
514
|
*
|
|
491
515
|
* @returns {Promise} A promise which resolves when the operation has completed
|
|
@@ -520,10 +544,11 @@ export default class Syncro {
|
|
|
520
544
|
* @param {Object} [options] Additional options to mutate behaviour
|
|
521
545
|
* @param {'merge'|'set'} [options.method='merge'] How to apply the new state. 'merge' (merge in partial data to an existing Syncro), 'set' (overwrite the entire Syncro state)
|
|
522
546
|
*
|
|
547
|
+
* @param {number} retries How many tries to take before erroring
|
|
523
548
|
* @returns {Promise} A promise which resolves when the operation has completed
|
|
524
549
|
*/
|
|
525
550
|
async setFirestoreState(state, options, retries = 0) {
|
|
526
|
-
|
|
551
|
+
const settings = {
|
|
527
552
|
method: 'merge',
|
|
528
553
|
...options,
|
|
529
554
|
};
|
|
@@ -590,26 +615,26 @@ export default class Syncro {
|
|
|
590
615
|
* @returns {Promise} A promise which resolves when the operation has completed
|
|
591
616
|
*/
|
|
592
617
|
flush(options) {
|
|
593
|
-
|
|
618
|
+
const settings = {
|
|
594
619
|
destroy: false,
|
|
595
620
|
...options,
|
|
596
621
|
};
|
|
597
622
|
return fetch(`${this.config.syncroRegistryUrl}/${this.path}/flush` + (settings.destroy ? '?destroy=1' : ''))
|
|
598
623
|
.then(response => response.ok
|
|
599
624
|
? null
|
|
600
|
-
: Promise.reject(response.statusText || 'An error
|
|
625
|
+
: Promise.reject(response.statusText || 'An error occurred'));
|
|
601
626
|
}
|
|
602
627
|
}
|
|
603
628
|
/**
|
|
604
629
|
* Build a chaotic random tree structure based on dice rolls
|
|
605
|
-
* This
|
|
630
|
+
* This function is mainly used for sync testing
|
|
606
631
|
*
|
|
607
632
|
* @param {Number} [depth=0] The current depth we are starting at, changes the nature of branches based on probability
|
|
608
633
|
*
|
|
609
|
-
* @returns {*} The current branch
|
|
634
|
+
* @returns {*} The current branch contents
|
|
610
635
|
*/
|
|
611
636
|
export function randomBranch(depth = 0) {
|
|
612
|
-
|
|
637
|
+
const dice = // Roll a dice to pick the content
|
|
613
638
|
depth == 0 ? 10 // first roll is always '10'
|
|
614
639
|
: random(0, 11 - depth, false); // Subsequent rolls bias downwards based on depth (to avoid recursion)
|
|
615
640
|
return (dice == 0 ? false
|
|
@@ -637,10 +662,10 @@ const marshalBaseConfig = {
|
|
|
637
662
|
{
|
|
638
663
|
id: `~array`,
|
|
639
664
|
recursive: true,
|
|
640
|
-
test: v => Array.isArray(v),
|
|
641
|
-
serialize: v => ({ _: '~array', ...v }),
|
|
642
|
-
deserialize: v => {
|
|
643
|
-
|
|
665
|
+
test: (v) => Array.isArray(v),
|
|
666
|
+
serialize: (v) => ({ _: '~array', ...v }),
|
|
667
|
+
deserialize: (v) => {
|
|
668
|
+
const arr = Array.from({ length: Object.keys(v).length - 1 });
|
|
644
669
|
Object.entries(v)
|
|
645
670
|
.filter(([k]) => k !== '_')
|
|
646
671
|
.forEach(([k, val]) => arr[+k] = val); // Changed v to val to avoid shadowing
|
|
@@ -649,7 +674,7 @@ const marshalBaseConfig = {
|
|
|
649
674
|
},
|
|
650
675
|
{
|
|
651
676
|
id: '~function',
|
|
652
|
-
test: v => typeof v == 'function',
|
|
677
|
+
test: (v) => typeof v == 'function',
|
|
653
678
|
serialize: (v, path) => {
|
|
654
679
|
console.warn('Marshal Warning: Stripping function from path', path.join('.'));
|
|
655
680
|
throw new Error('Function serializing is forbidden');
|
|
@@ -659,7 +684,7 @@ const marshalBaseConfig = {
|
|
|
659
684
|
},
|
|
660
685
|
},
|
|
661
686
|
...marshal.settings.modules // Use default Marshal modules excepting...
|
|
662
|
-
.filter(mod => mod.id != '~function') // Remove the Marshal function module as this upsets Cloudflare workers by using the `eval` built-in
|
|
687
|
+
.filter((mod) => mod.id != '~function') // Remove the Marshal function module as this upsets Cloudflare workers by using the `eval` built-in
|
|
663
688
|
],
|
|
664
689
|
};
|
|
665
690
|
//# sourceMappingURL=syncro.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"syncro.js","sourceRoot":"","sources":["../../../lib/syncro/syncro.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"syncro.js","sourceRoot":"","sources":["../../../lib/syncro/syncro.ts"],"names":[],"mappings":"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"}
|
|
@@ -11,10 +11,10 @@ interface DeferredMethod {
|
|
|
11
11
|
export default class TeraFy {
|
|
12
12
|
settings: Record<string, any>;
|
|
13
13
|
/**
|
|
14
|
-
* Download the remote TERA-fy client,
|
|
14
|
+
* Download the remote TERA-fy client, initialize it and mix it in with this class instance
|
|
15
15
|
*
|
|
16
16
|
* @param {Object} [options] Additional options to merge into `settings` via `set`
|
|
17
|
-
* @returns {Promise<TeraFy>} An eventual promise which will
|
|
17
|
+
* @returns {Promise<TeraFy>} An eventual promise which will resolve with this terafy instance
|
|
18
18
|
*/
|
|
19
19
|
init(options?: any): Promise<this>;
|
|
20
20
|
/**
|
|
@@ -7,23 +7,23 @@ import { merge } from 'lodash-es';
|
|
|
7
7
|
*/
|
|
8
8
|
export default class TeraFy {
|
|
9
9
|
/**
|
|
10
|
-
* Download the remote TERA-fy client,
|
|
10
|
+
* Download the remote TERA-fy client, initialize it and mix it in with this class instance
|
|
11
11
|
*
|
|
12
12
|
* @param {Object} [options] Additional options to merge into `settings` via `set`
|
|
13
|
-
* @returns {Promise<TeraFy>} An eventual promise which will
|
|
13
|
+
* @returns {Promise<TeraFy>} An eventual promise which will resolve with this terafy instance
|
|
14
14
|
*/
|
|
15
15
|
init(options) {
|
|
16
16
|
// FIXME: Note this needs to point at the live site
|
|
17
|
-
|
|
17
|
+
const getUrl = (client) => `https://dev.tera-tools.com/api/tera-fy/${client}.js`;
|
|
18
18
|
return Promise.resolve()
|
|
19
19
|
.then(() => this.settings.clientType == 'esm' ?
|
|
20
20
|
this.bootstrapperImport(getUrl(this.settings.client))
|
|
21
21
|
.then(exported => typeof exported == 'function' ? exported : Promise.reject("Tera-fy import didn't return a class"))
|
|
22
22
|
: Promise.reject(`Unsupported TERA-fy clientType "${this.settings.clientType}"`))
|
|
23
23
|
.then((TeraClient) => {
|
|
24
|
-
|
|
24
|
+
const tc = new TeraClient();
|
|
25
25
|
if (!tc.mixin)
|
|
26
|
-
throw new Error(
|
|
26
|
+
throw new Error("TERA-fy client doesn't expose a mixin() method");
|
|
27
27
|
tc.mixin(this, tc);
|
|
28
28
|
// Merge settings object
|
|
29
29
|
merge(this.settings, tc.settings, options || {}); // Use options passed to init here
|
|
@@ -31,11 +31,11 @@ export default class TeraFy {
|
|
|
31
31
|
.then(() => {
|
|
32
32
|
console.log('IAM', this);
|
|
33
33
|
if (!this.init || typeof this.init != 'function')
|
|
34
|
-
throw new Error(
|
|
34
|
+
throw new Error("Newly mixed-in TERA-fy client doesn't expose a init() method");
|
|
35
35
|
if (!this.detectMode || typeof this.detectMode != 'function')
|
|
36
|
-
throw new Error(
|
|
36
|
+
throw new Error("Newly mixed-in TERA-fy client doesn't expose a detectMode() method");
|
|
37
37
|
})
|
|
38
|
-
// Run all deferred methods as an
|
|
38
|
+
// Run all deferred methods as an sequential promise chain
|
|
39
39
|
.then(() => this.bootstrapperDeferredMethods.reduce((chain, dm) => {
|
|
40
40
|
return chain.then(() => {
|
|
41
41
|
if (dm.method == 'use' && typeof dm.args[0] == 'string') { // Wrap `use(pluginClient:String,options:Object)` method to fetch plugin from remote
|
|
@@ -50,7 +50,7 @@ export default class TeraFy {
|
|
|
50
50
|
return Promise.resolve(this[dm.method].apply(this, dm.args));
|
|
51
51
|
}
|
|
52
52
|
});
|
|
53
|
-
}, Promise.resolve(
|
|
53
|
+
}, Promise.resolve())) // Initialize reduce chain correctly
|
|
54
54
|
.then(() => { delete this.bootstrapperDeferredMethods; }) // Use type assertion for delete
|
|
55
55
|
.then(() => console.log('TYBS', 'Init'))
|
|
56
56
|
// Call the *actual* init method mixed in from the client
|
|
@@ -76,11 +76,11 @@ export default class TeraFy {
|
|
|
76
76
|
window['installMod${moduleId}'](mod);
|
|
77
77
|
`;
|
|
78
78
|
// Create cleanup function
|
|
79
|
-
|
|
79
|
+
const cleanup = () => {
|
|
80
80
|
// console.warn('CLEANUP', moduleId); // Keep console.warn commented out unless needed
|
|
81
81
|
delete window[`installMod${moduleId}`]; // Use type assertion for delete
|
|
82
82
|
if (script.parentNode) { // Check if script is still in DOM
|
|
83
|
-
script.
|
|
83
|
+
script.remove();
|
|
84
84
|
}
|
|
85
85
|
};
|
|
86
86
|
// Create stub function to accept payload + quit
|
|
@@ -89,13 +89,12 @@ export default class TeraFy {
|
|
|
89
89
|
resolve(payload);
|
|
90
90
|
cleanup();
|
|
91
91
|
};
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
reject(new Error(`Failed to load module from ${url} - ${error ? error.toString() : event}`));
|
|
92
|
+
script.addEventListener('error', (event) => {
|
|
93
|
+
reject(new Error(`Failed to load module script from ${url}. Event type: ${event.type}`));
|
|
95
94
|
cleanup();
|
|
96
|
-
};
|
|
95
|
+
});
|
|
97
96
|
// Append stub script element and quit
|
|
98
|
-
document.head.
|
|
97
|
+
document.head.append(script);
|
|
99
98
|
});
|
|
100
99
|
}
|
|
101
100
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"terafy.bootstrapper.js","sourceRoot":"","sources":["../../lib/terafy.bootstrapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,KAAK,EAAC,MAAM,WAAW,CAAC;AAYhC;;;;;EAKE;AACF,MAAM,CAAC,OAAO,OAAO,MAAM;IAO1B;;;;;MAKE;IACF,IAAI,CAAC,OAAa;QACjB,mDAAmD;QACnD,
|
|
1
|
+
{"version":3,"file":"terafy.bootstrapper.js","sourceRoot":"","sources":["../../lib/terafy.bootstrapper.ts"],"names":[],"mappings":"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"}
|