firetruss-worker 3.1.1 → 3.1.3

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.
@@ -3,7 +3,7 @@
3
3
  const fireworkers = [];
4
4
  const apps = {};
5
5
  // This version is filled in by the build, don't reformat the line.
6
- const VERSION = '3.1.1';
6
+ const VERSION = '3.1.3';
7
7
 
8
8
 
9
9
  class LocalStorage {
@@ -269,6 +269,13 @@ class Fireworker {
269
269
  } catch (e) {
270
270
  const error = {name: e.name, message: e.message};
271
271
  if (message.error) error.cause = `${message.error.name}: ${message.error.message}`;
272
+ if (message.result) {
273
+ try {
274
+ error.cause = `result: ${JSON.stringify(message.result)}`;
275
+ } catch (e2) {
276
+ error.cause = `result JSON error: ${e2.name}: ${e2.message}`;
277
+ }
278
+ }
272
279
  this._port.postMessage([{msg: 'crash', error}]);
273
280
  }
274
281
  }
@@ -455,9 +462,9 @@ class Fireworker {
455
462
  return {committed: !stale, snapshots};
456
463
  }, error => {
457
464
  if (error.message === 'set' || error.message === 'disconnect') {
458
- return ref.once('value').then(snapshot => {
459
- return {committed: false, snapshots: [snapshot], writeSerial: this._lastWriteSerial};
460
- });
465
+ return ref.once('value').then(snapshot => ({committed: false, snapshots: [{
466
+ path: transactionPath, value: snapshot.val(), writeSerial: this._lastWriteSerial
467
+ }]}));
461
468
  }
462
469
  error.committedValue = committedValue;
463
470
  return Promise.reject(error);
@@ -1 +1 @@
1
- {"version":3,"file":"worker.es2015.js","sources":["../src/worker.js"],"sourcesContent":["/* globals firebase */\n\nconst fireworkers = [];\nconst apps = {};\n// This version is filled in by the build, don't reformat the line.\nconst VERSION = '3.1.1';\n\n\nclass LocalStorage {\n constructor() {\n this._items = [];\n this._pendingItems = [];\n this._initialized = false;\n this._flushPending = this.flushPending.bind(this);\n }\n\n init(items) {\n if (!this._initialized) {\n this._items = items;\n this._initialized = true;\n }\n }\n\n _update(item) {\n if (!this._pendingItems.length) Promise.resolve().then(this._flushPending);\n this._pendingItems.push(item);\n }\n\n flushPending() {\n if (!this._pendingItems.length) return;\n if (!fireworkers.length) {\n setTimeout(this._flushPending, 200);\n return;\n }\n fireworkers[0]._send({msg: 'updateLocalStorage', items: this._pendingItems});\n this._pendingItems = [];\n }\n\n get length() {return this._items.length;}\n\n key(n) {\n return this._items[n].key;\n }\n\n getItem(key) {\n for (const item of this._items) {\n if (item.key === key) return item.value;\n }\n return null;\n }\n\n setItem(key, value) {\n let targetItem;\n for (const item of this._items) {\n if (item.key === key) {\n targetItem = item;\n item.value = value;\n break;\n }\n }\n if (!targetItem) {\n targetItem = {key, value};\n this._items.push(targetItem);\n }\n this._update(targetItem);\n }\n\n removeItem(key) {\n for (let i = 0; i < this._items.length; i++) {\n if (this._items[i].key === key) {\n this._items.splice(i, 1);\n this._update({key, value: null});\n break;\n }\n }\n }\n\n clear() {\n for (const item in this._items) {\n this._update({key: item.key, value: null});\n }\n this._items = [];\n }\n}\n\nself.localStorage = new LocalStorage();\n\n\nclass Branch {\n constructor() {\n this._root = null;\n }\n\n set(value) {\n this._root = value;\n }\n\n diff(value, pathPrefix) {\n const updates = {};\n const segments = pathPrefix === '/' ? [''] : pathPrefix.split('/');\n if (this._diffRecursively(this._root, value, segments, updates)) {\n this._root = value;\n updates[pathPrefix] = value;\n }\n return updates;\n }\n\n _diffRecursively(oldValue, newValue, segments, updates) {\n if (oldValue === undefined) oldValue = null;\n if (newValue === undefined) newValue = null;\n if (oldValue === null) return newValue !== null;\n if (oldValue instanceof Object && newValue instanceof Object) {\n let replace = true;\n const keysToReplace = [];\n for (const childKey in newValue) {\n if (!Object.hasOwn(newValue, childKey)) continue;\n const replaceChild = this._diffRecursively(\n oldValue[childKey], newValue[childKey], segments.concat(childKey), updates);\n if (replaceChild) {\n keysToReplace.push(childKey);\n } else {\n replace = false;\n }\n }\n if (replace) return true;\n for (const childKey in oldValue) {\n if (!Object.hasOwn(oldValue, childKey) || Object.hasOwn(newValue, childKey)) continue;\n updates[segments.concat(childKey).join('/')] = null;\n delete oldValue[childKey];\n }\n for (const childKey of keysToReplace) {\n updates[segments.concat(childKey).join('/')] = newValue[childKey];\n oldValue[childKey] = newValue[childKey];\n }\n } else {\n return newValue !== oldValue;\n }\n }\n}\n\n\nexport default class Fireworker {\n constructor(port) {\n this._port = port;\n this._lastWriteSerial = 0;\n this._app = undefined;\n this._cachedAuth = undefined;\n this._cachedDatabase = undefined;\n this._lastJsonUser = undefined;\n this._configError = Fireworker._staticConfigError;\n this._callbacks = {};\n this._messages = [];\n this._flushMessageQueue = this._flushMessageQueue.bind(this);\n port.onmessage = this._receive.bind(this);\n }\n\n get _auth() {\n if (this._cachedAuth) return this._cachedAuth;\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n return this._cachedAuth = this._app.auth();\n }\n\n get _database() {\n if (this._cachedDatabase) return this._cachedDatabase;\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n if (Fireworker._databaseWrapperCallback) {\n this._cachedDatabase = Fireworker._databaseWrapperCallback(this._app.database());\n } else {\n this._cachedDatabase = this._app.database();\n }\n return this._cachedDatabase;\n }\n\n init({storage, config}) {\n if (storage) self.localStorage.init(storage);\n if (config) {\n try {\n this._app = apps[config.databaseURL];\n if (!this._app) {\n this._app = apps[config.databaseURL] = firebase.initializeApp(config, config.databaseURL);\n // If the API key looks invalid then assume that we're running against Cinderbase rather\n // than Firebase and override the configuration appropriately.\n if (config.apiKey && config.apiKey.length < 20) {\n this._app.database().INTERNAL.forceWebSockets();\n this._app.auth().useEmulator(config.databaseURL, {disableWarnings: true});\n }\n }\n this._app.database();\n this._app.auth();\n this._configError = Fireworker._staticConfigError;\n } catch (e) {\n this._configError = e;\n throw e;\n }\n } else if (this._configError) {\n throw this._configError;\n }\n return {\n exposedFunctionNames: Object.keys(Fireworker._exposed),\n version: VERSION,\n firebaseSdkVersion: firebase.SDK_VERSION\n };\n }\n\n destroy() {\n for (const key in this._callbacks) {\n const callback = this._callbacks[key];\n if (callback.cancel) callback.cancel();\n }\n this._callbacks = {};\n this._port.onmessage = null;\n this._messages = [];\n const k = fireworkers.indexOf(this);\n if (k >= 0) fireworkers[k] = null;\n }\n\n enableFirebaseLogging({value}) {\n firebase.database.enableLogging(value);\n }\n\n ping() {\n // Noop, placeholder for legacy Firetruss clients.\n }\n\n bounceConnection() {\n this._database.goOffline();\n this._database.goOnline();\n }\n\n _receive(event) {\n Fireworker._firstMessageReceived = true;\n for (const message of event.data) this._receiveMessage(message);\n }\n\n _receiveMessage(message) {\n let promise;\n try {\n const fn = this[message.msg];\n if (typeof fn !== 'function') throw new Error('Unknown message: ' + message.msg);\n if (message.writeSerial) {\n this._lastWriteSerial = Math.max(this._lastWriteSerial, message.writeSerial);\n }\n promise = Promise.resolve(fn.call(this, message));\n } catch (e) {\n e.immediateFailure = true;\n promise = Promise.reject(e);\n }\n if (!message.oneWay) {\n promise.then(result => {\n this._send({msg: 'resolve', id: message.id, result});\n }, error => {\n this._send({msg: 'reject', id: message.id, error: errorToJson(error)});\n });\n }\n }\n\n _send(message) {\n if (!this._messages.length) Promise.resolve().then(this._flushMessageQueue);\n this._messages.push(message);\n }\n\n _flushMessageQueue() {\n try {\n this._port.postMessage(this._messages);\n } catch {\n for (const message of this._messages) {\n try {\n this._port.postMessage([message]);\n } catch (e) {\n const error = {name: e.name, message: e.message};\n if (message.error) error.cause = `${message.error.name}: ${message.error.message}`;\n this._port.postMessage([{msg: 'crash', error}]);\n }\n }\n }\n this._messages = [];\n }\n\n call({name, args}) {\n try {\n return Promise.resolve(Fireworker._exposed[name].apply(null, args));\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n authWithCustomToken({url, authToken}) {\n return this._auth.signInWithCustomToken(authToken)\n .then(result => userToJson(result.user));\n }\n\n authAnonymously({url}) {\n return this._auth.signInAnonymously()\n .then(result => userToJson(result.user));\n }\n\n unauth({url}) {\n return this._auth.signOut().catch(e => {\n // We can ignore the error if the user is signed out anyway, but make sure to notify all\n // authCallbacks otherwise we end up in a bogus state!\n if (this._auth.currentUser === null) {\n for (const callbackId in this._callbacks) {\n if (!Object.hasOwn(this._callbacks, callbackId)) continue;\n const callback = this._callbacks[callbackId];\n if (callback.auth) callback(null);\n }\n } else {\n return Promise.reject(e);\n }\n });\n }\n\n onAuth({url, callbackId}) {\n const authCallback = this._callbacks[callbackId] = this._onAuthCallback.bind(this, callbackId);\n authCallback.auth = true;\n authCallback.cancel = this._auth.onIdTokenChanged(authCallback);\n }\n\n _onAuthCallback(callbackId, user) {\n userToJson(user).then(jsonUser => {\n if (areEqualValues(this._lastJsonUser, jsonUser)) return;\n this._lastJsonUser = jsonUser;\n this._send({msg: 'callback', id: callbackId, args: [jsonUser]});\n });\n }\n\n set({url, value}) {\n return this._createRef(url).set(value);\n }\n\n update({url, value}) {\n return this._createRef(url).update(value);\n }\n\n once({url}) {\n return this._createRef(url).once('value').then(snapshot => this._snapshotToJson(snapshot));\n }\n\n on({listenerKey, url, spec, eventType, callbackId, options}) {\n options = options || {};\n if (options.sync) options.branch = new Branch();\n options.cancel = this.off.bind(this, {listenerKey, url, spec, eventType, callbackId});\n const snapshotCallback = this._callbacks[callbackId] =\n this._onSnapshotCallback.bind(this, callbackId, options);\n snapshotCallback.listenerKey = listenerKey;\n snapshotCallback.eventType = eventType;\n snapshotCallback.cancel = options.cancel;\n const cancelCallback = this._onCancelCallback.bind(this, callbackId);\n this._createRef(url, spec).on(eventType, snapshotCallback, cancelCallback);\n }\n\n off({listenerKey, url, spec, eventType, callbackId}) {\n let snapshotCallback;\n if (callbackId) {\n // Callback IDs will not be reused across on() calls, so it's safe to just delete it.\n snapshotCallback = this._callbacks[callbackId];\n delete this._callbacks[callbackId];\n } else {\n for (const key of Object.keys(this._callbacks)) {\n if (!Object.hasOwn(this._callbacks, key)) continue;\n const callback = this._callbacks[key];\n if (callback.listenerKey === listenerKey &&\n (!eventType || callback.eventType === eventType)) {\n delete this._callbacks[key];\n }\n }\n }\n this._createRef(url, spec).off(eventType, snapshotCallback);\n }\n\n _onSnapshotCallback(callbackId, options, snapshot) {\n if (options.sync && options.rest) {\n const path = decodeURIComponent(\n snapshot.ref.toString().replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n let value;\n try {\n value = normalizeFirebaseValue(snapshot.val());\n } catch (e) {\n options.cancel();\n this._onCancelCallback(callbackId, e);\n return;\n }\n const updates = options.branch.diff(value, path);\n for (const childPath in updates) {\n if (!Object.hasOwn(updates, childPath)) continue;\n this._send({\n msg: 'callback', id: callbackId,\n args: [null, {\n path: childPath, value: updates[childPath], writeSerial: this._lastWriteSerial\n }]\n });\n }\n } else {\n try {\n const snapshotJson = this._snapshotToJson(snapshot);\n if (options.sync) options.branch.set(snapshotJson.value);\n this._send({msg: 'callback', id: callbackId, args: [null, snapshotJson]});\n options.rest = true;\n } catch (e) {\n options.cancel();\n this._onCancelCallback(callbackId, e);\n }\n }\n }\n\n _onCancelCallback(callbackId, error) {\n delete this._callbacks[callbackId];\n this._send({msg: 'callback', id: callbackId, args: [errorToJson(error)]});\n }\n\n transaction({url, oldValue, relativeUpdates}) {\n const transactionPath = decodeURIComponent(url.replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n const ref = this._createRef(url);\n const branch = new Branch();\n let stale, committedValue;\n\n return ref.transaction(value => {\n committedValue = undefined;\n value = normalizeFirebaseValue(value);\n stale = !areEqualNormalFirebaseValues(value, oldValue);\n if (stale) value = oldValue;\n if (relativeUpdates) {\n for (const relativePath in relativeUpdates) {\n if (!Object.hasOwn(relativeUpdates, relativePath)) continue;\n if (relativePath) {\n const segments = relativePath.split('/');\n if (value === undefined || value === null) value = {};\n let object = value;\n for (let i = 0; i < segments.length - 1; i++) {\n const key = segments[i];\n let child = object[key];\n if (child === undefined || child === null) child = object[key] = {};\n object = child;\n }\n object[segments[segments.length - 1]] = relativeUpdates[relativePath];\n } else {\n value = relativeUpdates[relativePath];\n }\n }\n }\n branch.set(value);\n if (!stale) {\n committedValue = value;\n return value;\n }\n }).then(result => {\n const snapshots = [];\n const updates = branch.diff(normalizeFirebaseValue(result.snapshot.val()), transactionPath);\n for (const path in updates) {\n if (!Object.hasOwn(updates, path)) continue;\n snapshots.push({\n path, value: updates[path], writeSerial: result.writeSerial || this._lastWriteSerial\n });\n }\n return {committed: !stale, snapshots};\n }, error => {\n if (error.message === 'set' || error.message === 'disconnect') {\n return ref.once('value').then(snapshot => {\n return {committed: false, snapshots: [snapshot], writeSerial: this._lastWriteSerial};\n });\n }\n error.committedValue = committedValue;\n return Promise.reject(error);\n });\n }\n\n _snapshotToJson(snapshot) {\n const path =\n decodeURIComponent(snapshot.ref.toString().replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n return {\n path, value: normalizeFirebaseValue(snapshot.val()), writeSerial: this._lastWriteSerial\n };\n }\n\n onDisconnect({url, method, value}) {\n const onDisconnect = this._createRef(url).onDisconnect();\n return onDisconnect[method](value);\n }\n\n _createRef(url, spec) {\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n try {\n let ref = this._database.refFromURL(url);\n if (spec) {\n switch (spec.by) {\n case '$key': ref = ref.orderByKey(); break;\n case '$value': ref = ref.orderByValue(); break;\n default: ref = ref.orderByChild(spec.by); break;\n }\n if (spec.at !== undefined) ref = ref.equalTo(spec.at);\n else if (spec.from !== undefined) ref = ref.startAt(spec.from);\n else if (spec.to !== undefined) ref = ref.endAt(spec.to);\n if (spec.first !== undefined) ref = ref.limitToFirst(spec.first);\n else if (spec.last !== undefined) ref = ref.limitToLast(spec.last);\n }\n return ref;\n } catch (e) {\n e.extra = {url, spec};\n throw e;\n }\n }\n\n static expose(fn, name) {\n name = name || fn.name;\n if (!name) {\n Fireworker._signalStaticConfigError(\n new Error(`Cannot expose a function with no name: ${fn}`));\n }\n if (Object.hasOwn(Fireworker._exposed, name)) {\n Fireworker._signalStaticConfigError(new Error(`Function ${name}() already exposed`));\n }\n if (Fireworker._firstMessageReceived) {\n Fireworker._signalStaticConfigError(new Error('Too late to expose function, worker in use'));\n }\n Fireworker._exposed[name] = fn;\n }\n\n static setDatabaseWrapperCallback(fn) {\n if (Fireworker._databaseWrapperCallback) {\n Fireworker._signalStaticConfigError(new Error('Database wrapper callback already set'));\n }\n if (Fireworker._firstMessageReceived) {\n Fireworker._signalStaticConfigError(\n new Error('Too late to set database wrapper callback, worker in use'));\n }\n Fireworker._databaseWrapperCallback = fn;\n }\n\n static _signalStaticConfigError(error) {\n if (!Fireworker._staticConfigError) Fireworker._staticConfigError = error;\n for (const fireworker of fireworkers) {\n if (fireworker && !fireworker._configError) fireworker._configError = error;\n }\n throw error;\n }\n}\n\nFireworker._exposed = {};\nFireworker._firstMessageReceived = false;\nFireworker._databaseWrapperCallback = undefined;\nFireworker._staticConfigError = undefined;\n\nfunction errorToJson(error) {\n const json = {name: error.name, message: error.message};\n const propertyNames = Object.getOwnPropertyNames(error);\n for (const propertyName of propertyNames) {\n const type = typeof error[propertyName];\n if (type === 'string' || type === 'number' || type === 'boolean') {\n json[propertyName] = error[propertyName];\n }\n }\n return json;\n}\n\nfunction normalizeFirebaseValue(value) {\n if (Array.isArray(value)) {\n const normalValue = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n if (item === undefined || item === null) continue;\n normalValue[i] = normalizeFirebaseValue(item);\n }\n return normalValue;\n }\n if (value instanceof Object) {\n for (const key in value) {\n if (Object.hasOwn(value, key)) value[key] = normalizeFirebaseValue(value[key]);\n }\n }\n return value;\n}\n\nfunction userToJson(user) {\n if (!user) return Promise.resolve(user);\n const json = user.toJSON();\n delete json.stsTokenManager;\n return user.getIdTokenResult().then(result => {\n delete result.claims.exp;\n delete result.claims.iat;\n json.claims = result.claims;\n return json;\n });\n}\n\n\nfunction areEqualNormalFirebaseValues(a, b) {\n if (a === b) return true;\n if ((a === null || a === undefined) && (b === null || b === undefined)) return true;\n if (a === null || b === null) return false;\n if (!(typeof a === 'object' && typeof b === 'object')) return false;\n for (const key in a) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n if (!areEqualNormalFirebaseValues(a[key], b[key])) return false;\n }\n for (const key in b) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n }\n return true;\n}\n\nfunction areEqualValues(a, b) {\n if (a === b) return true;\n if (a === null && b === null || a === undefined && b === undefined) return true;\n if (a === null || b === null || a === undefined || b === undefined) return false;\n if (!(typeof a === 'object' && typeof b === 'object')) return false;\n for (const key in a) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n if (!areEqualValues(a[key], b[key])) return false;\n }\n for (const key in b) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n }\n if (Array.isArray(a) || Array.isArray(b)) {\n if (!Array.isArray(a) || !Array.isArray(b)) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!areEqualValues(a[i], b[i])) return false;\n }\n }\n return true;\n}\n\nfunction acceptConnections() {\n if (typeof onconnect === 'undefined') {\n fireworkers.push(new Fireworker(self));\n } else {\n self.onconnect = function(event) {\n fireworkers.push(new Fireworker(event.ports[0]));\n };\n }\n self.localStorage.flushPending();\n}\n\nself.window = self;\nacceptConnections();\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.es2015.js","sources":["../src/worker.js"],"sourcesContent":["/* globals firebase */\n\nconst fireworkers = [];\nconst apps = {};\n// This version is filled in by the build, don't reformat the line.\nconst VERSION = '3.1.3';\n\n\nclass LocalStorage {\n constructor() {\n this._items = [];\n this._pendingItems = [];\n this._initialized = false;\n this._flushPending = this.flushPending.bind(this);\n }\n\n init(items) {\n if (!this._initialized) {\n this._items = items;\n this._initialized = true;\n }\n }\n\n _update(item) {\n if (!this._pendingItems.length) Promise.resolve().then(this._flushPending);\n this._pendingItems.push(item);\n }\n\n flushPending() {\n if (!this._pendingItems.length) return;\n if (!fireworkers.length) {\n setTimeout(this._flushPending, 200);\n return;\n }\n fireworkers[0]._send({msg: 'updateLocalStorage', items: this._pendingItems});\n this._pendingItems = [];\n }\n\n get length() {return this._items.length;}\n\n key(n) {\n return this._items[n].key;\n }\n\n getItem(key) {\n for (const item of this._items) {\n if (item.key === key) return item.value;\n }\n return null;\n }\n\n setItem(key, value) {\n let targetItem;\n for (const item of this._items) {\n if (item.key === key) {\n targetItem = item;\n item.value = value;\n break;\n }\n }\n if (!targetItem) {\n targetItem = {key, value};\n this._items.push(targetItem);\n }\n this._update(targetItem);\n }\n\n removeItem(key) {\n for (let i = 0; i < this._items.length; i++) {\n if (this._items[i].key === key) {\n this._items.splice(i, 1);\n this._update({key, value: null});\n break;\n }\n }\n }\n\n clear() {\n for (const item in this._items) {\n this._update({key: item.key, value: null});\n }\n this._items = [];\n }\n}\n\nself.localStorage = new LocalStorage();\n\n\nclass Branch {\n constructor() {\n this._root = null;\n }\n\n set(value) {\n this._root = value;\n }\n\n diff(value, pathPrefix) {\n const updates = {};\n const segments = pathPrefix === '/' ? [''] : pathPrefix.split('/');\n if (this._diffRecursively(this._root, value, segments, updates)) {\n this._root = value;\n updates[pathPrefix] = value;\n }\n return updates;\n }\n\n _diffRecursively(oldValue, newValue, segments, updates) {\n if (oldValue === undefined) oldValue = null;\n if (newValue === undefined) newValue = null;\n if (oldValue === null) return newValue !== null;\n if (oldValue instanceof Object && newValue instanceof Object) {\n let replace = true;\n const keysToReplace = [];\n for (const childKey in newValue) {\n if (!Object.hasOwn(newValue, childKey)) continue;\n const replaceChild = this._diffRecursively(\n oldValue[childKey], newValue[childKey], segments.concat(childKey), updates);\n if (replaceChild) {\n keysToReplace.push(childKey);\n } else {\n replace = false;\n }\n }\n if (replace) return true;\n for (const childKey in oldValue) {\n if (!Object.hasOwn(oldValue, childKey) || Object.hasOwn(newValue, childKey)) continue;\n updates[segments.concat(childKey).join('/')] = null;\n delete oldValue[childKey];\n }\n for (const childKey of keysToReplace) {\n updates[segments.concat(childKey).join('/')] = newValue[childKey];\n oldValue[childKey] = newValue[childKey];\n }\n } else {\n return newValue !== oldValue;\n }\n }\n}\n\n\nexport default class Fireworker {\n constructor(port) {\n this._port = port;\n this._lastWriteSerial = 0;\n this._app = undefined;\n this._cachedAuth = undefined;\n this._cachedDatabase = undefined;\n this._lastJsonUser = undefined;\n this._configError = Fireworker._staticConfigError;\n this._callbacks = {};\n this._messages = [];\n this._flushMessageQueue = this._flushMessageQueue.bind(this);\n port.onmessage = this._receive.bind(this);\n }\n\n get _auth() {\n if (this._cachedAuth) return this._cachedAuth;\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n return this._cachedAuth = this._app.auth();\n }\n\n get _database() {\n if (this._cachedDatabase) return this._cachedDatabase;\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n if (Fireworker._databaseWrapperCallback) {\n this._cachedDatabase = Fireworker._databaseWrapperCallback(this._app.database());\n } else {\n this._cachedDatabase = this._app.database();\n }\n return this._cachedDatabase;\n }\n\n init({storage, config}) {\n if (storage) self.localStorage.init(storage);\n if (config) {\n try {\n this._app = apps[config.databaseURL];\n if (!this._app) {\n this._app = apps[config.databaseURL] = firebase.initializeApp(config, config.databaseURL);\n // If the API key looks invalid then assume that we're running against Cinderbase rather\n // than Firebase and override the configuration appropriately.\n if (config.apiKey && config.apiKey.length < 20) {\n this._app.database().INTERNAL.forceWebSockets();\n this._app.auth().useEmulator(config.databaseURL, {disableWarnings: true});\n }\n }\n this._app.database();\n this._app.auth();\n this._configError = Fireworker._staticConfigError;\n } catch (e) {\n this._configError = e;\n throw e;\n }\n } else if (this._configError) {\n throw this._configError;\n }\n return {\n exposedFunctionNames: Object.keys(Fireworker._exposed),\n version: VERSION,\n firebaseSdkVersion: firebase.SDK_VERSION\n };\n }\n\n destroy() {\n for (const key in this._callbacks) {\n const callback = this._callbacks[key];\n if (callback.cancel) callback.cancel();\n }\n this._callbacks = {};\n this._port.onmessage = null;\n this._messages = [];\n const k = fireworkers.indexOf(this);\n if (k >= 0) fireworkers[k] = null;\n }\n\n enableFirebaseLogging({value}) {\n firebase.database.enableLogging(value);\n }\n\n ping() {\n // Noop, placeholder for legacy Firetruss clients.\n }\n\n bounceConnection() {\n this._database.goOffline();\n this._database.goOnline();\n }\n\n _receive(event) {\n Fireworker._firstMessageReceived = true;\n for (const message of event.data) this._receiveMessage(message);\n }\n\n _receiveMessage(message) {\n let promise;\n try {\n const fn = this[message.msg];\n if (typeof fn !== 'function') throw new Error('Unknown message: ' + message.msg);\n if (message.writeSerial) {\n this._lastWriteSerial = Math.max(this._lastWriteSerial, message.writeSerial);\n }\n promise = Promise.resolve(fn.call(this, message));\n } catch (e) {\n e.immediateFailure = true;\n promise = Promise.reject(e);\n }\n if (!message.oneWay) {\n promise.then(result => {\n this._send({msg: 'resolve', id: message.id, result});\n }, error => {\n this._send({msg: 'reject', id: message.id, error: errorToJson(error)});\n });\n }\n }\n\n _send(message) {\n if (!this._messages.length) Promise.resolve().then(this._flushMessageQueue);\n this._messages.push(message);\n }\n\n _flushMessageQueue() {\n try {\n this._port.postMessage(this._messages);\n } catch {\n for (const message of this._messages) {\n try {\n this._port.postMessage([message]);\n } catch (e) {\n const error = {name: e.name, message: e.message};\n if (message.error) error.cause = `${message.error.name}: ${message.error.message}`;\n if (message.result) {\n try {\n error.cause = `result: ${JSON.stringify(message.result)}`;\n } catch (e2) {\n error.cause = `result JSON error: ${e2.name}: ${e2.message}`;\n }\n }\n this._port.postMessage([{msg: 'crash', error}]);\n }\n }\n }\n this._messages = [];\n }\n\n call({name, args}) {\n try {\n return Promise.resolve(Fireworker._exposed[name].apply(null, args));\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n authWithCustomToken({url, authToken}) {\n return this._auth.signInWithCustomToken(authToken)\n .then(result => userToJson(result.user));\n }\n\n authAnonymously({url}) {\n return this._auth.signInAnonymously()\n .then(result => userToJson(result.user));\n }\n\n unauth({url}) {\n return this._auth.signOut().catch(e => {\n // We can ignore the error if the user is signed out anyway, but make sure to notify all\n // authCallbacks otherwise we end up in a bogus state!\n if (this._auth.currentUser === null) {\n for (const callbackId in this._callbacks) {\n if (!Object.hasOwn(this._callbacks, callbackId)) continue;\n const callback = this._callbacks[callbackId];\n if (callback.auth) callback(null);\n }\n } else {\n return Promise.reject(e);\n }\n });\n }\n\n onAuth({url, callbackId}) {\n const authCallback = this._callbacks[callbackId] = this._onAuthCallback.bind(this, callbackId);\n authCallback.auth = true;\n authCallback.cancel = this._auth.onIdTokenChanged(authCallback);\n }\n\n _onAuthCallback(callbackId, user) {\n userToJson(user).then(jsonUser => {\n if (areEqualValues(this._lastJsonUser, jsonUser)) return;\n this._lastJsonUser = jsonUser;\n this._send({msg: 'callback', id: callbackId, args: [jsonUser]});\n });\n }\n\n set({url, value}) {\n return this._createRef(url).set(value);\n }\n\n update({url, value}) {\n return this._createRef(url).update(value);\n }\n\n once({url}) {\n return this._createRef(url).once('value').then(snapshot => this._snapshotToJson(snapshot));\n }\n\n on({listenerKey, url, spec, eventType, callbackId, options}) {\n options = options || {};\n if (options.sync) options.branch = new Branch();\n options.cancel = this.off.bind(this, {listenerKey, url, spec, eventType, callbackId});\n const snapshotCallback = this._callbacks[callbackId] =\n this._onSnapshotCallback.bind(this, callbackId, options);\n snapshotCallback.listenerKey = listenerKey;\n snapshotCallback.eventType = eventType;\n snapshotCallback.cancel = options.cancel;\n const cancelCallback = this._onCancelCallback.bind(this, callbackId);\n this._createRef(url, spec).on(eventType, snapshotCallback, cancelCallback);\n }\n\n off({listenerKey, url, spec, eventType, callbackId}) {\n let snapshotCallback;\n if (callbackId) {\n // Callback IDs will not be reused across on() calls, so it's safe to just delete it.\n snapshotCallback = this._callbacks[callbackId];\n delete this._callbacks[callbackId];\n } else {\n for (const key of Object.keys(this._callbacks)) {\n if (!Object.hasOwn(this._callbacks, key)) continue;\n const callback = this._callbacks[key];\n if (callback.listenerKey === listenerKey &&\n (!eventType || callback.eventType === eventType)) {\n delete this._callbacks[key];\n }\n }\n }\n this._createRef(url, spec).off(eventType, snapshotCallback);\n }\n\n _onSnapshotCallback(callbackId, options, snapshot) {\n if (options.sync && options.rest) {\n const path = decodeURIComponent(\n snapshot.ref.toString().replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n let value;\n try {\n value = normalizeFirebaseValue(snapshot.val());\n } catch (e) {\n options.cancel();\n this._onCancelCallback(callbackId, e);\n return;\n }\n const updates = options.branch.diff(value, path);\n for (const childPath in updates) {\n if (!Object.hasOwn(updates, childPath)) continue;\n this._send({\n msg: 'callback', id: callbackId,\n args: [null, {\n path: childPath, value: updates[childPath], writeSerial: this._lastWriteSerial\n }]\n });\n }\n } else {\n try {\n const snapshotJson = this._snapshotToJson(snapshot);\n if (options.sync) options.branch.set(snapshotJson.value);\n this._send({msg: 'callback', id: callbackId, args: [null, snapshotJson]});\n options.rest = true;\n } catch (e) {\n options.cancel();\n this._onCancelCallback(callbackId, e);\n }\n }\n }\n\n _onCancelCallback(callbackId, error) {\n delete this._callbacks[callbackId];\n this._send({msg: 'callback', id: callbackId, args: [errorToJson(error)]});\n }\n\n transaction({url, oldValue, relativeUpdates}) {\n const transactionPath = decodeURIComponent(url.replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n const ref = this._createRef(url);\n const branch = new Branch();\n let stale, committedValue;\n\n return ref.transaction(value => {\n committedValue = undefined;\n value = normalizeFirebaseValue(value);\n stale = !areEqualNormalFirebaseValues(value, oldValue);\n if (stale) value = oldValue;\n if (relativeUpdates) {\n for (const relativePath in relativeUpdates) {\n if (!Object.hasOwn(relativeUpdates, relativePath)) continue;\n if (relativePath) {\n const segments = relativePath.split('/');\n if (value === undefined || value === null) value = {};\n let object = value;\n for (let i = 0; i < segments.length - 1; i++) {\n const key = segments[i];\n let child = object[key];\n if (child === undefined || child === null) child = object[key] = {};\n object = child;\n }\n object[segments[segments.length - 1]] = relativeUpdates[relativePath];\n } else {\n value = relativeUpdates[relativePath];\n }\n }\n }\n branch.set(value);\n if (!stale) {\n committedValue = value;\n return value;\n }\n }).then(result => {\n const snapshots = [];\n const updates = branch.diff(normalizeFirebaseValue(result.snapshot.val()), transactionPath);\n for (const path in updates) {\n if (!Object.hasOwn(updates, path)) continue;\n snapshots.push({\n path, value: updates[path], writeSerial: result.writeSerial || this._lastWriteSerial\n });\n }\n return {committed: !stale, snapshots};\n }, error => {\n if (error.message === 'set' || error.message === 'disconnect') {\n return ref.once('value').then(snapshot => ({committed: false, snapshots: [{\n path: transactionPath, value: snapshot.val(), writeSerial: this._lastWriteSerial\n }]}));\n }\n error.committedValue = committedValue;\n return Promise.reject(error);\n });\n }\n\n _snapshotToJson(snapshot) {\n const path =\n decodeURIComponent(snapshot.ref.toString().replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n return {\n path, value: normalizeFirebaseValue(snapshot.val()), writeSerial: this._lastWriteSerial\n };\n }\n\n onDisconnect({url, method, value}) {\n const onDisconnect = this._createRef(url).onDisconnect();\n return onDisconnect[method](value);\n }\n\n _createRef(url, spec) {\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n try {\n let ref = this._database.refFromURL(url);\n if (spec) {\n switch (spec.by) {\n case '$key': ref = ref.orderByKey(); break;\n case '$value': ref = ref.orderByValue(); break;\n default: ref = ref.orderByChild(spec.by); break;\n }\n if (spec.at !== undefined) ref = ref.equalTo(spec.at);\n else if (spec.from !== undefined) ref = ref.startAt(spec.from);\n else if (spec.to !== undefined) ref = ref.endAt(spec.to);\n if (spec.first !== undefined) ref = ref.limitToFirst(spec.first);\n else if (spec.last !== undefined) ref = ref.limitToLast(spec.last);\n }\n return ref;\n } catch (e) {\n e.extra = {url, spec};\n throw e;\n }\n }\n\n static expose(fn, name) {\n name = name || fn.name;\n if (!name) {\n Fireworker._signalStaticConfigError(\n new Error(`Cannot expose a function with no name: ${fn}`));\n }\n if (Object.hasOwn(Fireworker._exposed, name)) {\n Fireworker._signalStaticConfigError(new Error(`Function ${name}() already exposed`));\n }\n if (Fireworker._firstMessageReceived) {\n Fireworker._signalStaticConfigError(new Error('Too late to expose function, worker in use'));\n }\n Fireworker._exposed[name] = fn;\n }\n\n static setDatabaseWrapperCallback(fn) {\n if (Fireworker._databaseWrapperCallback) {\n Fireworker._signalStaticConfigError(new Error('Database wrapper callback already set'));\n }\n if (Fireworker._firstMessageReceived) {\n Fireworker._signalStaticConfigError(\n new Error('Too late to set database wrapper callback, worker in use'));\n }\n Fireworker._databaseWrapperCallback = fn;\n }\n\n static _signalStaticConfigError(error) {\n if (!Fireworker._staticConfigError) Fireworker._staticConfigError = error;\n for (const fireworker of fireworkers) {\n if (fireworker && !fireworker._configError) fireworker._configError = error;\n }\n throw error;\n }\n}\n\nFireworker._exposed = {};\nFireworker._firstMessageReceived = false;\nFireworker._databaseWrapperCallback = undefined;\nFireworker._staticConfigError = undefined;\n\nfunction errorToJson(error) {\n const json = {name: error.name, message: error.message};\n const propertyNames = Object.getOwnPropertyNames(error);\n for (const propertyName of propertyNames) {\n const type = typeof error[propertyName];\n if (type === 'string' || type === 'number' || type === 'boolean') {\n json[propertyName] = error[propertyName];\n }\n }\n return json;\n}\n\nfunction normalizeFirebaseValue(value) {\n if (Array.isArray(value)) {\n const normalValue = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n if (item === undefined || item === null) continue;\n normalValue[i] = normalizeFirebaseValue(item);\n }\n return normalValue;\n }\n if (value instanceof Object) {\n for (const key in value) {\n if (Object.hasOwn(value, key)) value[key] = normalizeFirebaseValue(value[key]);\n }\n }\n return value;\n}\n\nfunction userToJson(user) {\n if (!user) return Promise.resolve(user);\n const json = user.toJSON();\n delete json.stsTokenManager;\n return user.getIdTokenResult().then(result => {\n delete result.claims.exp;\n delete result.claims.iat;\n json.claims = result.claims;\n return json;\n });\n}\n\n\nfunction areEqualNormalFirebaseValues(a, b) {\n if (a === b) return true;\n if ((a === null || a === undefined) && (b === null || b === undefined)) return true;\n if (a === null || b === null) return false;\n if (!(typeof a === 'object' && typeof b === 'object')) return false;\n for (const key in a) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n if (!areEqualNormalFirebaseValues(a[key], b[key])) return false;\n }\n for (const key in b) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n }\n return true;\n}\n\nfunction areEqualValues(a, b) {\n if (a === b) return true;\n if (a === null && b === null || a === undefined && b === undefined) return true;\n if (a === null || b === null || a === undefined || b === undefined) return false;\n if (!(typeof a === 'object' && typeof b === 'object')) return false;\n for (const key in a) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n if (!areEqualValues(a[key], b[key])) return false;\n }\n for (const key in b) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n }\n if (Array.isArray(a) || Array.isArray(b)) {\n if (!Array.isArray(a) || !Array.isArray(b)) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!areEqualValues(a[i], b[i])) return false;\n }\n }\n return true;\n}\n\nfunction acceptConnections() {\n if (typeof onconnect === 'undefined') {\n fireworkers.push(new Fireworker(self));\n } else {\n self.onconnect = function(event) {\n fireworkers.push(new Fireworker(event.ports[0]));\n };\n }\n self.localStorage.flushPending();\n}\n\nself.window = self;\nacceptConnections();\n"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  const fireworkers = [];
10
10
  const apps = {};
11
11
  // This version is filled in by the build, don't reformat the line.
12
- const VERSION = '3.1.1';
12
+ const VERSION = '3.1.3';
13
13
 
14
14
 
15
15
  class LocalStorage {
@@ -275,6 +275,13 @@
275
275
  } catch (e) {
276
276
  const error = {name: e.name, message: e.message};
277
277
  if (message.error) error.cause = `${message.error.name}: ${message.error.message}`;
278
+ if (message.result) {
279
+ try {
280
+ error.cause = `result: ${JSON.stringify(message.result)}`;
281
+ } catch (e2) {
282
+ error.cause = `result JSON error: ${e2.name}: ${e2.message}`;
283
+ }
284
+ }
278
285
  this._port.postMessage([{msg: 'crash', error}]);
279
286
  }
280
287
  }
@@ -461,9 +468,9 @@
461
468
  return {committed: !stale, snapshots};
462
469
  }, error => {
463
470
  if (error.message === 'set' || error.message === 'disconnect') {
464
- return ref.once('value').then(snapshot => {
465
- return {committed: false, snapshots: [snapshot], writeSerial: this._lastWriteSerial};
466
- });
471
+ return ref.once('value').then(snapshot => ({committed: false, snapshots: [{
472
+ path: transactionPath, value: snapshot.val(), writeSerial: this._lastWriteSerial
473
+ }]}));
467
474
  }
468
475
  error.committedValue = committedValue;
469
476
  return Promise.reject(error);
@@ -1 +1 @@
1
- {"version":3,"file":"worker.umd.js","sources":["../src/worker.js"],"sourcesContent":["/* globals firebase */\n\nconst fireworkers = [];\nconst apps = {};\n// This version is filled in by the build, don't reformat the line.\nconst VERSION = '3.1.1';\n\n\nclass LocalStorage {\n constructor() {\n this._items = [];\n this._pendingItems = [];\n this._initialized = false;\n this._flushPending = this.flushPending.bind(this);\n }\n\n init(items) {\n if (!this._initialized) {\n this._items = items;\n this._initialized = true;\n }\n }\n\n _update(item) {\n if (!this._pendingItems.length) Promise.resolve().then(this._flushPending);\n this._pendingItems.push(item);\n }\n\n flushPending() {\n if (!this._pendingItems.length) return;\n if (!fireworkers.length) {\n setTimeout(this._flushPending, 200);\n return;\n }\n fireworkers[0]._send({msg: 'updateLocalStorage', items: this._pendingItems});\n this._pendingItems = [];\n }\n\n get length() {return this._items.length;}\n\n key(n) {\n return this._items[n].key;\n }\n\n getItem(key) {\n for (const item of this._items) {\n if (item.key === key) return item.value;\n }\n return null;\n }\n\n setItem(key, value) {\n let targetItem;\n for (const item of this._items) {\n if (item.key === key) {\n targetItem = item;\n item.value = value;\n break;\n }\n }\n if (!targetItem) {\n targetItem = {key, value};\n this._items.push(targetItem);\n }\n this._update(targetItem);\n }\n\n removeItem(key) {\n for (let i = 0; i < this._items.length; i++) {\n if (this._items[i].key === key) {\n this._items.splice(i, 1);\n this._update({key, value: null});\n break;\n }\n }\n }\n\n clear() {\n for (const item in this._items) {\n this._update({key: item.key, value: null});\n }\n this._items = [];\n }\n}\n\nself.localStorage = new LocalStorage();\n\n\nclass Branch {\n constructor() {\n this._root = null;\n }\n\n set(value) {\n this._root = value;\n }\n\n diff(value, pathPrefix) {\n const updates = {};\n const segments = pathPrefix === '/' ? [''] : pathPrefix.split('/');\n if (this._diffRecursively(this._root, value, segments, updates)) {\n this._root = value;\n updates[pathPrefix] = value;\n }\n return updates;\n }\n\n _diffRecursively(oldValue, newValue, segments, updates) {\n if (oldValue === undefined) oldValue = null;\n if (newValue === undefined) newValue = null;\n if (oldValue === null) return newValue !== null;\n if (oldValue instanceof Object && newValue instanceof Object) {\n let replace = true;\n const keysToReplace = [];\n for (const childKey in newValue) {\n if (!Object.hasOwn(newValue, childKey)) continue;\n const replaceChild = this._diffRecursively(\n oldValue[childKey], newValue[childKey], segments.concat(childKey), updates);\n if (replaceChild) {\n keysToReplace.push(childKey);\n } else {\n replace = false;\n }\n }\n if (replace) return true;\n for (const childKey in oldValue) {\n if (!Object.hasOwn(oldValue, childKey) || Object.hasOwn(newValue, childKey)) continue;\n updates[segments.concat(childKey).join('/')] = null;\n delete oldValue[childKey];\n }\n for (const childKey of keysToReplace) {\n updates[segments.concat(childKey).join('/')] = newValue[childKey];\n oldValue[childKey] = newValue[childKey];\n }\n } else {\n return newValue !== oldValue;\n }\n }\n}\n\n\nexport default class Fireworker {\n constructor(port) {\n this._port = port;\n this._lastWriteSerial = 0;\n this._app = undefined;\n this._cachedAuth = undefined;\n this._cachedDatabase = undefined;\n this._lastJsonUser = undefined;\n this._configError = Fireworker._staticConfigError;\n this._callbacks = {};\n this._messages = [];\n this._flushMessageQueue = this._flushMessageQueue.bind(this);\n port.onmessage = this._receive.bind(this);\n }\n\n get _auth() {\n if (this._cachedAuth) return this._cachedAuth;\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n return this._cachedAuth = this._app.auth();\n }\n\n get _database() {\n if (this._cachedDatabase) return this._cachedDatabase;\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n if (Fireworker._databaseWrapperCallback) {\n this._cachedDatabase = Fireworker._databaseWrapperCallback(this._app.database());\n } else {\n this._cachedDatabase = this._app.database();\n }\n return this._cachedDatabase;\n }\n\n init({storage, config}) {\n if (storage) self.localStorage.init(storage);\n if (config) {\n try {\n this._app = apps[config.databaseURL];\n if (!this._app) {\n this._app = apps[config.databaseURL] = firebase.initializeApp(config, config.databaseURL);\n // If the API key looks invalid then assume that we're running against Cinderbase rather\n // than Firebase and override the configuration appropriately.\n if (config.apiKey && config.apiKey.length < 20) {\n this._app.database().INTERNAL.forceWebSockets();\n this._app.auth().useEmulator(config.databaseURL, {disableWarnings: true});\n }\n }\n this._app.database();\n this._app.auth();\n this._configError = Fireworker._staticConfigError;\n } catch (e) {\n this._configError = e;\n throw e;\n }\n } else if (this._configError) {\n throw this._configError;\n }\n return {\n exposedFunctionNames: Object.keys(Fireworker._exposed),\n version: VERSION,\n firebaseSdkVersion: firebase.SDK_VERSION\n };\n }\n\n destroy() {\n for (const key in this._callbacks) {\n const callback = this._callbacks[key];\n if (callback.cancel) callback.cancel();\n }\n this._callbacks = {};\n this._port.onmessage = null;\n this._messages = [];\n const k = fireworkers.indexOf(this);\n if (k >= 0) fireworkers[k] = null;\n }\n\n enableFirebaseLogging({value}) {\n firebase.database.enableLogging(value);\n }\n\n ping() {\n // Noop, placeholder for legacy Firetruss clients.\n }\n\n bounceConnection() {\n this._database.goOffline();\n this._database.goOnline();\n }\n\n _receive(event) {\n Fireworker._firstMessageReceived = true;\n for (const message of event.data) this._receiveMessage(message);\n }\n\n _receiveMessage(message) {\n let promise;\n try {\n const fn = this[message.msg];\n if (typeof fn !== 'function') throw new Error('Unknown message: ' + message.msg);\n if (message.writeSerial) {\n this._lastWriteSerial = Math.max(this._lastWriteSerial, message.writeSerial);\n }\n promise = Promise.resolve(fn.call(this, message));\n } catch (e) {\n e.immediateFailure = true;\n promise = Promise.reject(e);\n }\n if (!message.oneWay) {\n promise.then(result => {\n this._send({msg: 'resolve', id: message.id, result});\n }, error => {\n this._send({msg: 'reject', id: message.id, error: errorToJson(error)});\n });\n }\n }\n\n _send(message) {\n if (!this._messages.length) Promise.resolve().then(this._flushMessageQueue);\n this._messages.push(message);\n }\n\n _flushMessageQueue() {\n try {\n this._port.postMessage(this._messages);\n } catch {\n for (const message of this._messages) {\n try {\n this._port.postMessage([message]);\n } catch (e) {\n const error = {name: e.name, message: e.message};\n if (message.error) error.cause = `${message.error.name}: ${message.error.message}`;\n this._port.postMessage([{msg: 'crash', error}]);\n }\n }\n }\n this._messages = [];\n }\n\n call({name, args}) {\n try {\n return Promise.resolve(Fireworker._exposed[name].apply(null, args));\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n authWithCustomToken({url, authToken}) {\n return this._auth.signInWithCustomToken(authToken)\n .then(result => userToJson(result.user));\n }\n\n authAnonymously({url}) {\n return this._auth.signInAnonymously()\n .then(result => userToJson(result.user));\n }\n\n unauth({url}) {\n return this._auth.signOut().catch(e => {\n // We can ignore the error if the user is signed out anyway, but make sure to notify all\n // authCallbacks otherwise we end up in a bogus state!\n if (this._auth.currentUser === null) {\n for (const callbackId in this._callbacks) {\n if (!Object.hasOwn(this._callbacks, callbackId)) continue;\n const callback = this._callbacks[callbackId];\n if (callback.auth) callback(null);\n }\n } else {\n return Promise.reject(e);\n }\n });\n }\n\n onAuth({url, callbackId}) {\n const authCallback = this._callbacks[callbackId] = this._onAuthCallback.bind(this, callbackId);\n authCallback.auth = true;\n authCallback.cancel = this._auth.onIdTokenChanged(authCallback);\n }\n\n _onAuthCallback(callbackId, user) {\n userToJson(user).then(jsonUser => {\n if (areEqualValues(this._lastJsonUser, jsonUser)) return;\n this._lastJsonUser = jsonUser;\n this._send({msg: 'callback', id: callbackId, args: [jsonUser]});\n });\n }\n\n set({url, value}) {\n return this._createRef(url).set(value);\n }\n\n update({url, value}) {\n return this._createRef(url).update(value);\n }\n\n once({url}) {\n return this._createRef(url).once('value').then(snapshot => this._snapshotToJson(snapshot));\n }\n\n on({listenerKey, url, spec, eventType, callbackId, options}) {\n options = options || {};\n if (options.sync) options.branch = new Branch();\n options.cancel = this.off.bind(this, {listenerKey, url, spec, eventType, callbackId});\n const snapshotCallback = this._callbacks[callbackId] =\n this._onSnapshotCallback.bind(this, callbackId, options);\n snapshotCallback.listenerKey = listenerKey;\n snapshotCallback.eventType = eventType;\n snapshotCallback.cancel = options.cancel;\n const cancelCallback = this._onCancelCallback.bind(this, callbackId);\n this._createRef(url, spec).on(eventType, snapshotCallback, cancelCallback);\n }\n\n off({listenerKey, url, spec, eventType, callbackId}) {\n let snapshotCallback;\n if (callbackId) {\n // Callback IDs will not be reused across on() calls, so it's safe to just delete it.\n snapshotCallback = this._callbacks[callbackId];\n delete this._callbacks[callbackId];\n } else {\n for (const key of Object.keys(this._callbacks)) {\n if (!Object.hasOwn(this._callbacks, key)) continue;\n const callback = this._callbacks[key];\n if (callback.listenerKey === listenerKey &&\n (!eventType || callback.eventType === eventType)) {\n delete this._callbacks[key];\n }\n }\n }\n this._createRef(url, spec).off(eventType, snapshotCallback);\n }\n\n _onSnapshotCallback(callbackId, options, snapshot) {\n if (options.sync && options.rest) {\n const path = decodeURIComponent(\n snapshot.ref.toString().replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n let value;\n try {\n value = normalizeFirebaseValue(snapshot.val());\n } catch (e) {\n options.cancel();\n this._onCancelCallback(callbackId, e);\n return;\n }\n const updates = options.branch.diff(value, path);\n for (const childPath in updates) {\n if (!Object.hasOwn(updates, childPath)) continue;\n this._send({\n msg: 'callback', id: callbackId,\n args: [null, {\n path: childPath, value: updates[childPath], writeSerial: this._lastWriteSerial\n }]\n });\n }\n } else {\n try {\n const snapshotJson = this._snapshotToJson(snapshot);\n if (options.sync) options.branch.set(snapshotJson.value);\n this._send({msg: 'callback', id: callbackId, args: [null, snapshotJson]});\n options.rest = true;\n } catch (e) {\n options.cancel();\n this._onCancelCallback(callbackId, e);\n }\n }\n }\n\n _onCancelCallback(callbackId, error) {\n delete this._callbacks[callbackId];\n this._send({msg: 'callback', id: callbackId, args: [errorToJson(error)]});\n }\n\n transaction({url, oldValue, relativeUpdates}) {\n const transactionPath = decodeURIComponent(url.replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n const ref = this._createRef(url);\n const branch = new Branch();\n let stale, committedValue;\n\n return ref.transaction(value => {\n committedValue = undefined;\n value = normalizeFirebaseValue(value);\n stale = !areEqualNormalFirebaseValues(value, oldValue);\n if (stale) value = oldValue;\n if (relativeUpdates) {\n for (const relativePath in relativeUpdates) {\n if (!Object.hasOwn(relativeUpdates, relativePath)) continue;\n if (relativePath) {\n const segments = relativePath.split('/');\n if (value === undefined || value === null) value = {};\n let object = value;\n for (let i = 0; i < segments.length - 1; i++) {\n const key = segments[i];\n let child = object[key];\n if (child === undefined || child === null) child = object[key] = {};\n object = child;\n }\n object[segments[segments.length - 1]] = relativeUpdates[relativePath];\n } else {\n value = relativeUpdates[relativePath];\n }\n }\n }\n branch.set(value);\n if (!stale) {\n committedValue = value;\n return value;\n }\n }).then(result => {\n const snapshots = [];\n const updates = branch.diff(normalizeFirebaseValue(result.snapshot.val()), transactionPath);\n for (const path in updates) {\n if (!Object.hasOwn(updates, path)) continue;\n snapshots.push({\n path, value: updates[path], writeSerial: result.writeSerial || this._lastWriteSerial\n });\n }\n return {committed: !stale, snapshots};\n }, error => {\n if (error.message === 'set' || error.message === 'disconnect') {\n return ref.once('value').then(snapshot => {\n return {committed: false, snapshots: [snapshot], writeSerial: this._lastWriteSerial};\n });\n }\n error.committedValue = committedValue;\n return Promise.reject(error);\n });\n }\n\n _snapshotToJson(snapshot) {\n const path =\n decodeURIComponent(snapshot.ref.toString().replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n return {\n path, value: normalizeFirebaseValue(snapshot.val()), writeSerial: this._lastWriteSerial\n };\n }\n\n onDisconnect({url, method, value}) {\n const onDisconnect = this._createRef(url).onDisconnect();\n return onDisconnect[method](value);\n }\n\n _createRef(url, spec) {\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n try {\n let ref = this._database.refFromURL(url);\n if (spec) {\n switch (spec.by) {\n case '$key': ref = ref.orderByKey(); break;\n case '$value': ref = ref.orderByValue(); break;\n default: ref = ref.orderByChild(spec.by); break;\n }\n if (spec.at !== undefined) ref = ref.equalTo(spec.at);\n else if (spec.from !== undefined) ref = ref.startAt(spec.from);\n else if (spec.to !== undefined) ref = ref.endAt(spec.to);\n if (spec.first !== undefined) ref = ref.limitToFirst(spec.first);\n else if (spec.last !== undefined) ref = ref.limitToLast(spec.last);\n }\n return ref;\n } catch (e) {\n e.extra = {url, spec};\n throw e;\n }\n }\n\n static expose(fn, name) {\n name = name || fn.name;\n if (!name) {\n Fireworker._signalStaticConfigError(\n new Error(`Cannot expose a function with no name: ${fn}`));\n }\n if (Object.hasOwn(Fireworker._exposed, name)) {\n Fireworker._signalStaticConfigError(new Error(`Function ${name}() already exposed`));\n }\n if (Fireworker._firstMessageReceived) {\n Fireworker._signalStaticConfigError(new Error('Too late to expose function, worker in use'));\n }\n Fireworker._exposed[name] = fn;\n }\n\n static setDatabaseWrapperCallback(fn) {\n if (Fireworker._databaseWrapperCallback) {\n Fireworker._signalStaticConfigError(new Error('Database wrapper callback already set'));\n }\n if (Fireworker._firstMessageReceived) {\n Fireworker._signalStaticConfigError(\n new Error('Too late to set database wrapper callback, worker in use'));\n }\n Fireworker._databaseWrapperCallback = fn;\n }\n\n static _signalStaticConfigError(error) {\n if (!Fireworker._staticConfigError) Fireworker._staticConfigError = error;\n for (const fireworker of fireworkers) {\n if (fireworker && !fireworker._configError) fireworker._configError = error;\n }\n throw error;\n }\n}\n\nFireworker._exposed = {};\nFireworker._firstMessageReceived = false;\nFireworker._databaseWrapperCallback = undefined;\nFireworker._staticConfigError = undefined;\n\nfunction errorToJson(error) {\n const json = {name: error.name, message: error.message};\n const propertyNames = Object.getOwnPropertyNames(error);\n for (const propertyName of propertyNames) {\n const type = typeof error[propertyName];\n if (type === 'string' || type === 'number' || type === 'boolean') {\n json[propertyName] = error[propertyName];\n }\n }\n return json;\n}\n\nfunction normalizeFirebaseValue(value) {\n if (Array.isArray(value)) {\n const normalValue = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n if (item === undefined || item === null) continue;\n normalValue[i] = normalizeFirebaseValue(item);\n }\n return normalValue;\n }\n if (value instanceof Object) {\n for (const key in value) {\n if (Object.hasOwn(value, key)) value[key] = normalizeFirebaseValue(value[key]);\n }\n }\n return value;\n}\n\nfunction userToJson(user) {\n if (!user) return Promise.resolve(user);\n const json = user.toJSON();\n delete json.stsTokenManager;\n return user.getIdTokenResult().then(result => {\n delete result.claims.exp;\n delete result.claims.iat;\n json.claims = result.claims;\n return json;\n });\n}\n\n\nfunction areEqualNormalFirebaseValues(a, b) {\n if (a === b) return true;\n if ((a === null || a === undefined) && (b === null || b === undefined)) return true;\n if (a === null || b === null) return false;\n if (!(typeof a === 'object' && typeof b === 'object')) return false;\n for (const key in a) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n if (!areEqualNormalFirebaseValues(a[key], b[key])) return false;\n }\n for (const key in b) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n }\n return true;\n}\n\nfunction areEqualValues(a, b) {\n if (a === b) return true;\n if (a === null && b === null || a === undefined && b === undefined) return true;\n if (a === null || b === null || a === undefined || b === undefined) return false;\n if (!(typeof a === 'object' && typeof b === 'object')) return false;\n for (const key in a) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n if (!areEqualValues(a[key], b[key])) return false;\n }\n for (const key in b) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n }\n if (Array.isArray(a) || Array.isArray(b)) {\n if (!Array.isArray(a) || !Array.isArray(b)) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!areEqualValues(a[i], b[i])) return false;\n }\n }\n return true;\n}\n\nfunction acceptConnections() {\n if (typeof onconnect === 'undefined') {\n fireworkers.push(new Fireworker(self));\n } else {\n self.onconnect = function(event) {\n fireworkers.push(new Fireworker(event.ports[0]));\n };\n }\n self.localStorage.flushPending();\n}\n\nself.window = self;\nacceptConnections();\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.umd.js","sources":["../src/worker.js"],"sourcesContent":["/* globals firebase */\n\nconst fireworkers = [];\nconst apps = {};\n// This version is filled in by the build, don't reformat the line.\nconst VERSION = '3.1.3';\n\n\nclass LocalStorage {\n constructor() {\n this._items = [];\n this._pendingItems = [];\n this._initialized = false;\n this._flushPending = this.flushPending.bind(this);\n }\n\n init(items) {\n if (!this._initialized) {\n this._items = items;\n this._initialized = true;\n }\n }\n\n _update(item) {\n if (!this._pendingItems.length) Promise.resolve().then(this._flushPending);\n this._pendingItems.push(item);\n }\n\n flushPending() {\n if (!this._pendingItems.length) return;\n if (!fireworkers.length) {\n setTimeout(this._flushPending, 200);\n return;\n }\n fireworkers[0]._send({msg: 'updateLocalStorage', items: this._pendingItems});\n this._pendingItems = [];\n }\n\n get length() {return this._items.length;}\n\n key(n) {\n return this._items[n].key;\n }\n\n getItem(key) {\n for (const item of this._items) {\n if (item.key === key) return item.value;\n }\n return null;\n }\n\n setItem(key, value) {\n let targetItem;\n for (const item of this._items) {\n if (item.key === key) {\n targetItem = item;\n item.value = value;\n break;\n }\n }\n if (!targetItem) {\n targetItem = {key, value};\n this._items.push(targetItem);\n }\n this._update(targetItem);\n }\n\n removeItem(key) {\n for (let i = 0; i < this._items.length; i++) {\n if (this._items[i].key === key) {\n this._items.splice(i, 1);\n this._update({key, value: null});\n break;\n }\n }\n }\n\n clear() {\n for (const item in this._items) {\n this._update({key: item.key, value: null});\n }\n this._items = [];\n }\n}\n\nself.localStorage = new LocalStorage();\n\n\nclass Branch {\n constructor() {\n this._root = null;\n }\n\n set(value) {\n this._root = value;\n }\n\n diff(value, pathPrefix) {\n const updates = {};\n const segments = pathPrefix === '/' ? [''] : pathPrefix.split('/');\n if (this._diffRecursively(this._root, value, segments, updates)) {\n this._root = value;\n updates[pathPrefix] = value;\n }\n return updates;\n }\n\n _diffRecursively(oldValue, newValue, segments, updates) {\n if (oldValue === undefined) oldValue = null;\n if (newValue === undefined) newValue = null;\n if (oldValue === null) return newValue !== null;\n if (oldValue instanceof Object && newValue instanceof Object) {\n let replace = true;\n const keysToReplace = [];\n for (const childKey in newValue) {\n if (!Object.hasOwn(newValue, childKey)) continue;\n const replaceChild = this._diffRecursively(\n oldValue[childKey], newValue[childKey], segments.concat(childKey), updates);\n if (replaceChild) {\n keysToReplace.push(childKey);\n } else {\n replace = false;\n }\n }\n if (replace) return true;\n for (const childKey in oldValue) {\n if (!Object.hasOwn(oldValue, childKey) || Object.hasOwn(newValue, childKey)) continue;\n updates[segments.concat(childKey).join('/')] = null;\n delete oldValue[childKey];\n }\n for (const childKey of keysToReplace) {\n updates[segments.concat(childKey).join('/')] = newValue[childKey];\n oldValue[childKey] = newValue[childKey];\n }\n } else {\n return newValue !== oldValue;\n }\n }\n}\n\n\nexport default class Fireworker {\n constructor(port) {\n this._port = port;\n this._lastWriteSerial = 0;\n this._app = undefined;\n this._cachedAuth = undefined;\n this._cachedDatabase = undefined;\n this._lastJsonUser = undefined;\n this._configError = Fireworker._staticConfigError;\n this._callbacks = {};\n this._messages = [];\n this._flushMessageQueue = this._flushMessageQueue.bind(this);\n port.onmessage = this._receive.bind(this);\n }\n\n get _auth() {\n if (this._cachedAuth) return this._cachedAuth;\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n return this._cachedAuth = this._app.auth();\n }\n\n get _database() {\n if (this._cachedDatabase) return this._cachedDatabase;\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n if (Fireworker._databaseWrapperCallback) {\n this._cachedDatabase = Fireworker._databaseWrapperCallback(this._app.database());\n } else {\n this._cachedDatabase = this._app.database();\n }\n return this._cachedDatabase;\n }\n\n init({storage, config}) {\n if (storage) self.localStorage.init(storage);\n if (config) {\n try {\n this._app = apps[config.databaseURL];\n if (!this._app) {\n this._app = apps[config.databaseURL] = firebase.initializeApp(config, config.databaseURL);\n // If the API key looks invalid then assume that we're running against Cinderbase rather\n // than Firebase and override the configuration appropriately.\n if (config.apiKey && config.apiKey.length < 20) {\n this._app.database().INTERNAL.forceWebSockets();\n this._app.auth().useEmulator(config.databaseURL, {disableWarnings: true});\n }\n }\n this._app.database();\n this._app.auth();\n this._configError = Fireworker._staticConfigError;\n } catch (e) {\n this._configError = e;\n throw e;\n }\n } else if (this._configError) {\n throw this._configError;\n }\n return {\n exposedFunctionNames: Object.keys(Fireworker._exposed),\n version: VERSION,\n firebaseSdkVersion: firebase.SDK_VERSION\n };\n }\n\n destroy() {\n for (const key in this._callbacks) {\n const callback = this._callbacks[key];\n if (callback.cancel) callback.cancel();\n }\n this._callbacks = {};\n this._port.onmessage = null;\n this._messages = [];\n const k = fireworkers.indexOf(this);\n if (k >= 0) fireworkers[k] = null;\n }\n\n enableFirebaseLogging({value}) {\n firebase.database.enableLogging(value);\n }\n\n ping() {\n // Noop, placeholder for legacy Firetruss clients.\n }\n\n bounceConnection() {\n this._database.goOffline();\n this._database.goOnline();\n }\n\n _receive(event) {\n Fireworker._firstMessageReceived = true;\n for (const message of event.data) this._receiveMessage(message);\n }\n\n _receiveMessage(message) {\n let promise;\n try {\n const fn = this[message.msg];\n if (typeof fn !== 'function') throw new Error('Unknown message: ' + message.msg);\n if (message.writeSerial) {\n this._lastWriteSerial = Math.max(this._lastWriteSerial, message.writeSerial);\n }\n promise = Promise.resolve(fn.call(this, message));\n } catch (e) {\n e.immediateFailure = true;\n promise = Promise.reject(e);\n }\n if (!message.oneWay) {\n promise.then(result => {\n this._send({msg: 'resolve', id: message.id, result});\n }, error => {\n this._send({msg: 'reject', id: message.id, error: errorToJson(error)});\n });\n }\n }\n\n _send(message) {\n if (!this._messages.length) Promise.resolve().then(this._flushMessageQueue);\n this._messages.push(message);\n }\n\n _flushMessageQueue() {\n try {\n this._port.postMessage(this._messages);\n } catch {\n for (const message of this._messages) {\n try {\n this._port.postMessage([message]);\n } catch (e) {\n const error = {name: e.name, message: e.message};\n if (message.error) error.cause = `${message.error.name}: ${message.error.message}`;\n if (message.result) {\n try {\n error.cause = `result: ${JSON.stringify(message.result)}`;\n } catch (e2) {\n error.cause = `result JSON error: ${e2.name}: ${e2.message}`;\n }\n }\n this._port.postMessage([{msg: 'crash', error}]);\n }\n }\n }\n this._messages = [];\n }\n\n call({name, args}) {\n try {\n return Promise.resolve(Fireworker._exposed[name].apply(null, args));\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n authWithCustomToken({url, authToken}) {\n return this._auth.signInWithCustomToken(authToken)\n .then(result => userToJson(result.user));\n }\n\n authAnonymously({url}) {\n return this._auth.signInAnonymously()\n .then(result => userToJson(result.user));\n }\n\n unauth({url}) {\n return this._auth.signOut().catch(e => {\n // We can ignore the error if the user is signed out anyway, but make sure to notify all\n // authCallbacks otherwise we end up in a bogus state!\n if (this._auth.currentUser === null) {\n for (const callbackId in this._callbacks) {\n if (!Object.hasOwn(this._callbacks, callbackId)) continue;\n const callback = this._callbacks[callbackId];\n if (callback.auth) callback(null);\n }\n } else {\n return Promise.reject(e);\n }\n });\n }\n\n onAuth({url, callbackId}) {\n const authCallback = this._callbacks[callbackId] = this._onAuthCallback.bind(this, callbackId);\n authCallback.auth = true;\n authCallback.cancel = this._auth.onIdTokenChanged(authCallback);\n }\n\n _onAuthCallback(callbackId, user) {\n userToJson(user).then(jsonUser => {\n if (areEqualValues(this._lastJsonUser, jsonUser)) return;\n this._lastJsonUser = jsonUser;\n this._send({msg: 'callback', id: callbackId, args: [jsonUser]});\n });\n }\n\n set({url, value}) {\n return this._createRef(url).set(value);\n }\n\n update({url, value}) {\n return this._createRef(url).update(value);\n }\n\n once({url}) {\n return this._createRef(url).once('value').then(snapshot => this._snapshotToJson(snapshot));\n }\n\n on({listenerKey, url, spec, eventType, callbackId, options}) {\n options = options || {};\n if (options.sync) options.branch = new Branch();\n options.cancel = this.off.bind(this, {listenerKey, url, spec, eventType, callbackId});\n const snapshotCallback = this._callbacks[callbackId] =\n this._onSnapshotCallback.bind(this, callbackId, options);\n snapshotCallback.listenerKey = listenerKey;\n snapshotCallback.eventType = eventType;\n snapshotCallback.cancel = options.cancel;\n const cancelCallback = this._onCancelCallback.bind(this, callbackId);\n this._createRef(url, spec).on(eventType, snapshotCallback, cancelCallback);\n }\n\n off({listenerKey, url, spec, eventType, callbackId}) {\n let snapshotCallback;\n if (callbackId) {\n // Callback IDs will not be reused across on() calls, so it's safe to just delete it.\n snapshotCallback = this._callbacks[callbackId];\n delete this._callbacks[callbackId];\n } else {\n for (const key of Object.keys(this._callbacks)) {\n if (!Object.hasOwn(this._callbacks, key)) continue;\n const callback = this._callbacks[key];\n if (callback.listenerKey === listenerKey &&\n (!eventType || callback.eventType === eventType)) {\n delete this._callbacks[key];\n }\n }\n }\n this._createRef(url, spec).off(eventType, snapshotCallback);\n }\n\n _onSnapshotCallback(callbackId, options, snapshot) {\n if (options.sync && options.rest) {\n const path = decodeURIComponent(\n snapshot.ref.toString().replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n let value;\n try {\n value = normalizeFirebaseValue(snapshot.val());\n } catch (e) {\n options.cancel();\n this._onCancelCallback(callbackId, e);\n return;\n }\n const updates = options.branch.diff(value, path);\n for (const childPath in updates) {\n if (!Object.hasOwn(updates, childPath)) continue;\n this._send({\n msg: 'callback', id: callbackId,\n args: [null, {\n path: childPath, value: updates[childPath], writeSerial: this._lastWriteSerial\n }]\n });\n }\n } else {\n try {\n const snapshotJson = this._snapshotToJson(snapshot);\n if (options.sync) options.branch.set(snapshotJson.value);\n this._send({msg: 'callback', id: callbackId, args: [null, snapshotJson]});\n options.rest = true;\n } catch (e) {\n options.cancel();\n this._onCancelCallback(callbackId, e);\n }\n }\n }\n\n _onCancelCallback(callbackId, error) {\n delete this._callbacks[callbackId];\n this._send({msg: 'callback', id: callbackId, args: [errorToJson(error)]});\n }\n\n transaction({url, oldValue, relativeUpdates}) {\n const transactionPath = decodeURIComponent(url.replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n const ref = this._createRef(url);\n const branch = new Branch();\n let stale, committedValue;\n\n return ref.transaction(value => {\n committedValue = undefined;\n value = normalizeFirebaseValue(value);\n stale = !areEqualNormalFirebaseValues(value, oldValue);\n if (stale) value = oldValue;\n if (relativeUpdates) {\n for (const relativePath in relativeUpdates) {\n if (!Object.hasOwn(relativeUpdates, relativePath)) continue;\n if (relativePath) {\n const segments = relativePath.split('/');\n if (value === undefined || value === null) value = {};\n let object = value;\n for (let i = 0; i < segments.length - 1; i++) {\n const key = segments[i];\n let child = object[key];\n if (child === undefined || child === null) child = object[key] = {};\n object = child;\n }\n object[segments[segments.length - 1]] = relativeUpdates[relativePath];\n } else {\n value = relativeUpdates[relativePath];\n }\n }\n }\n branch.set(value);\n if (!stale) {\n committedValue = value;\n return value;\n }\n }).then(result => {\n const snapshots = [];\n const updates = branch.diff(normalizeFirebaseValue(result.snapshot.val()), transactionPath);\n for (const path in updates) {\n if (!Object.hasOwn(updates, path)) continue;\n snapshots.push({\n path, value: updates[path], writeSerial: result.writeSerial || this._lastWriteSerial\n });\n }\n return {committed: !stale, snapshots};\n }, error => {\n if (error.message === 'set' || error.message === 'disconnect') {\n return ref.once('value').then(snapshot => ({committed: false, snapshots: [{\n path: transactionPath, value: snapshot.val(), writeSerial: this._lastWriteSerial\n }]}));\n }\n error.committedValue = committedValue;\n return Promise.reject(error);\n });\n }\n\n _snapshotToJson(snapshot) {\n const path =\n decodeURIComponent(snapshot.ref.toString().replace(/.*?:\\/\\/[^/]*/, '').replace(/\\/$/, ''));\n return {\n path, value: normalizeFirebaseValue(snapshot.val()), writeSerial: this._lastWriteSerial\n };\n }\n\n onDisconnect({url, method, value}) {\n const onDisconnect = this._createRef(url).onDisconnect();\n return onDisconnect[method](value);\n }\n\n _createRef(url, spec) {\n if (!this._app) throw new Error('Must provide Firebase configuration data first');\n try {\n let ref = this._database.refFromURL(url);\n if (spec) {\n switch (spec.by) {\n case '$key': ref = ref.orderByKey(); break;\n case '$value': ref = ref.orderByValue(); break;\n default: ref = ref.orderByChild(spec.by); break;\n }\n if (spec.at !== undefined) ref = ref.equalTo(spec.at);\n else if (spec.from !== undefined) ref = ref.startAt(spec.from);\n else if (spec.to !== undefined) ref = ref.endAt(spec.to);\n if (spec.first !== undefined) ref = ref.limitToFirst(spec.first);\n else if (spec.last !== undefined) ref = ref.limitToLast(spec.last);\n }\n return ref;\n } catch (e) {\n e.extra = {url, spec};\n throw e;\n }\n }\n\n static expose(fn, name) {\n name = name || fn.name;\n if (!name) {\n Fireworker._signalStaticConfigError(\n new Error(`Cannot expose a function with no name: ${fn}`));\n }\n if (Object.hasOwn(Fireworker._exposed, name)) {\n Fireworker._signalStaticConfigError(new Error(`Function ${name}() already exposed`));\n }\n if (Fireworker._firstMessageReceived) {\n Fireworker._signalStaticConfigError(new Error('Too late to expose function, worker in use'));\n }\n Fireworker._exposed[name] = fn;\n }\n\n static setDatabaseWrapperCallback(fn) {\n if (Fireworker._databaseWrapperCallback) {\n Fireworker._signalStaticConfigError(new Error('Database wrapper callback already set'));\n }\n if (Fireworker._firstMessageReceived) {\n Fireworker._signalStaticConfigError(\n new Error('Too late to set database wrapper callback, worker in use'));\n }\n Fireworker._databaseWrapperCallback = fn;\n }\n\n static _signalStaticConfigError(error) {\n if (!Fireworker._staticConfigError) Fireworker._staticConfigError = error;\n for (const fireworker of fireworkers) {\n if (fireworker && !fireworker._configError) fireworker._configError = error;\n }\n throw error;\n }\n}\n\nFireworker._exposed = {};\nFireworker._firstMessageReceived = false;\nFireworker._databaseWrapperCallback = undefined;\nFireworker._staticConfigError = undefined;\n\nfunction errorToJson(error) {\n const json = {name: error.name, message: error.message};\n const propertyNames = Object.getOwnPropertyNames(error);\n for (const propertyName of propertyNames) {\n const type = typeof error[propertyName];\n if (type === 'string' || type === 'number' || type === 'boolean') {\n json[propertyName] = error[propertyName];\n }\n }\n return json;\n}\n\nfunction normalizeFirebaseValue(value) {\n if (Array.isArray(value)) {\n const normalValue = {};\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n if (item === undefined || item === null) continue;\n normalValue[i] = normalizeFirebaseValue(item);\n }\n return normalValue;\n }\n if (value instanceof Object) {\n for (const key in value) {\n if (Object.hasOwn(value, key)) value[key] = normalizeFirebaseValue(value[key]);\n }\n }\n return value;\n}\n\nfunction userToJson(user) {\n if (!user) return Promise.resolve(user);\n const json = user.toJSON();\n delete json.stsTokenManager;\n return user.getIdTokenResult().then(result => {\n delete result.claims.exp;\n delete result.claims.iat;\n json.claims = result.claims;\n return json;\n });\n}\n\n\nfunction areEqualNormalFirebaseValues(a, b) {\n if (a === b) return true;\n if ((a === null || a === undefined) && (b === null || b === undefined)) return true;\n if (a === null || b === null) return false;\n if (!(typeof a === 'object' && typeof b === 'object')) return false;\n for (const key in a) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n if (!areEqualNormalFirebaseValues(a[key], b[key])) return false;\n }\n for (const key in b) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n }\n return true;\n}\n\nfunction areEqualValues(a, b) {\n if (a === b) return true;\n if (a === null && b === null || a === undefined && b === undefined) return true;\n if (a === null || b === null || a === undefined || b === undefined) return false;\n if (!(typeof a === 'object' && typeof b === 'object')) return false;\n for (const key in a) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n if (!areEqualValues(a[key], b[key])) return false;\n }\n for (const key in b) {\n if (!Object.hasOwn(a, key) || !Object.hasOwn(b, key)) return false;\n }\n if (Array.isArray(a) || Array.isArray(b)) {\n if (!Array.isArray(a) || !Array.isArray(b)) return false;\n if (a.length !== b.length) return false;\n for (let i = 0; i < a.length; i++) {\n if (!areEqualValues(a[i], b[i])) return false;\n }\n }\n return true;\n}\n\nfunction acceptConnections() {\n if (typeof onconnect === 'undefined') {\n fireworkers.push(new Fireworker(self));\n } else {\n self.onconnect = function(event) {\n fireworkers.push(new Fireworker(event.ports[0]));\n };\n }\n self.localStorage.flushPending();\n}\n\nself.window = self;\nacceptConnections();\n"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fireworker=t()})(this,function(){let s=[],a={};self.localStorage=new class{constructor(){this._items=[],this._pendingItems=[],this._initialized=!1,this._flushPending=this.flushPending.bind(this)}init(e){this._initialized||(this._items=e,this._initialized=!0)}_update(e){this._pendingItems.length||Promise.resolve().then(this._flushPending),this._pendingItems.push(e)}flushPending(){this._pendingItems.length&&(s.length?(s[0]._send({msg:"updateLocalStorage",items:this._pendingItems}),this._pendingItems=[]):setTimeout(this._flushPending,200))}get length(){return this._items.length}key(e){return this._items[e].key}getItem(e){for(var t of this._items)if(t.key===e)return t.value;return null}setItem(e,t){let s;for(var a of this._items)if(a.key===e){(s=a).value=t;break}s||(s={key:e,value:t},this._items.push(s)),this._update(s)}removeItem(t){for(let e=0;e<this._items.length;e++)if(this._items[e].key===t){this._items.splice(e,1),this._update({key:t,value:null});break}}clear(){for(var e in this._items)this._update({key:e.key,value:null});this._items=[]}};class c{constructor(){this._root=null}set(e){this._root=e}diff(e,t){var s={},a="/"===t?[""]:t.split("/");return this._diffRecursively(this._root,e,a,s)&&(this._root=e,s[t]=e),s}_diffRecursively(t,s,a,r){if(void 0===s&&(s=null),null===(t=void 0===t?null:t))return null!==s;if(!(t instanceof Object&&s instanceof Object))return s!==t;{let e=!0;var i,n,l,o=[];for(i in s)Object.hasOwn(s,i)&&(this._diffRecursively(t[i],s[i],a.concat(i),r)?o.push(i):e=!1);if(e)return!0;for(n in t)Object.hasOwn(t,n)&&!Object.hasOwn(s,n)&&(r[a.concat(n).join("/")]=null,delete t[n]);for(l of o)r[a.concat(l).join("/")]=s[l],t[l]=s[l]}}}class r{constructor(e){this._port=e,this._lastWriteSerial=0,this._app=void 0,this._cachedAuth=void 0,this._cachedDatabase=void 0,this._lastJsonUser=void 0,this._configError=r._staticConfigError,this._callbacks={},this._messages=[],this._flushMessageQueue=this._flushMessageQueue.bind(this),e.onmessage=this._receive.bind(this)}get _auth(){if(this._cachedAuth)return this._cachedAuth;if(this._app)return this._cachedAuth=this._app.auth();throw new Error("Must provide Firebase configuration data first")}get _database(){if(!this._cachedDatabase){if(!this._app)throw new Error("Must provide Firebase configuration data first");r._databaseWrapperCallback?this._cachedDatabase=r._databaseWrapperCallback(this._app.database()):this._cachedDatabase=this._app.database()}return this._cachedDatabase}init({storage:e,config:t}){if(e&&self.localStorage.init(e),t)try{this._app=a[t.databaseURL],this._app||(this._app=a[t.databaseURL]=firebase.initializeApp(t,t.databaseURL),t.apiKey&&t.apiKey.length<20&&(this._app.database().INTERNAL.forceWebSockets(),this._app.auth().useEmulator(t.databaseURL,{disableWarnings:!0}))),this._app.database(),this._app.auth(),this._configError=r._staticConfigError}catch(e){throw this._configError=e}else if(this._configError)throw this._configError;return{exposedFunctionNames:Object.keys(r._exposed),version:"3.1.1",firebaseSdkVersion:firebase.SDK_VERSION}}destroy(){for(var e in this._callbacks){e=this._callbacks[e];e.cancel&&e.cancel()}this._callbacks={},this._port.onmessage=null,this._messages=[];var t=s.indexOf(this);0<=t&&(s[t]=null)}enableFirebaseLogging({value:e}){firebase.database.enableLogging(e)}ping(){}bounceConnection(){this._database.goOffline(),this._database.goOnline()}_receive(e){r._firstMessageReceived=!0;for(var t of e.data)this._receiveMessage(t)}_receiveMessage(t){let s;try{var e=this[t.msg];if("function"!=typeof e)throw new Error("Unknown message: "+t.msg);t.writeSerial&&(this._lastWriteSerial=Math.max(this._lastWriteSerial,t.writeSerial)),s=Promise.resolve(e.call(this,t))}catch(e){e.immediateFailure=!0,s=Promise.reject(e)}t.oneWay||s.then(e=>{this._send({msg:"resolve",id:t.id,result:e})},e=>{this._send({msg:"reject",id:t.id,error:i(e)})})}_send(e){this._messages.length||Promise.resolve().then(this._flushMessageQueue),this._messages.push(e)}_flushMessageQueue(){try{this._port.postMessage(this._messages)}catch{for(var t of this._messages)try{this._port.postMessage([t])}catch(e){var s={name:e.name,message:e.message};t.error&&(s.cause=t.error.name+": "+t.error.message),this._port.postMessage([{msg:"crash",error:s}])}}this._messages=[]}call({name:e,args:t}){try{return Promise.resolve(r._exposed[e].apply(null,t))}catch(e){return Promise.reject(e)}}authWithCustomToken({authToken:e}){return this._auth.signInWithCustomToken(e).then(e=>n(e.user))}authAnonymously({}){return this._auth.signInAnonymously().then(e=>n(e.user))}unauth({}){return this._auth.signOut().catch(e=>{if(null!==this._auth.currentUser)return Promise.reject(e);for(var t in this._callbacks)Object.hasOwn(this._callbacks,t)&&(t=this._callbacks[t]).auth&&t(null)})}onAuth({callbackId:e}){e=this._callbacks[e]=this._onAuthCallback.bind(this,e);e.auth=!0,e.cancel=this._auth.onIdTokenChanged(e)}_onAuthCallback(t,e){n(e).then(e=>{!function t(s,a){if(s===a)return!0;if(null===s&&null===a||void 0===s&&void 0===a)return!0;if(null===s||null===a||void 0===s||void 0===a)return!1;if("object"!=typeof s||"object"!=typeof a)return!1;for(var e in s){if(!Object.hasOwn(s,e)||!Object.hasOwn(a,e))return!1;if(!t(s[e],a[e]))return!1}for(var r in a)if(!Object.hasOwn(s,r)||!Object.hasOwn(a,r))return!1;if(Array.isArray(s)||Array.isArray(a)){if(!Array.isArray(s)||!Array.isArray(a))return!1;if(s.length!==a.length)return!1;for(let e=0;e<s.length;e++)if(!t(s[e],a[e]))return!1}return!0}(this._lastJsonUser,e)&&(this._lastJsonUser=e,this._send({msg:"callback",id:t,args:[e]}))})}set({url:e,value:t}){return this._createRef(e).set(t)}update({url:e,value:t}){return this._createRef(e).update(t)}once({url:e}){return this._createRef(e).once("value").then(e=>this._snapshotToJson(e))}on({listenerKey:e,url:t,spec:s,eventType:a,callbackId:r,options:i}){(i=i||{}).sync&&(i.branch=new c),i.cancel=this.off.bind(this,{listenerKey:e,url:t,spec:s,eventType:a,callbackId:r});var n=this._callbacks[r]=this._onSnapshotCallback.bind(this,r,i),e=(n.listenerKey=e,n.eventType=a,n.cancel=i.cancel,this._onCancelCallback.bind(this,r));this._createRef(t,s).on(a,n,e)}off({listenerKey:e,url:t,spec:s,eventType:a,callbackId:r}){let i;if(r)i=this._callbacks[r],delete this._callbacks[r];else for(var n of Object.keys(this._callbacks)){var l;Object.hasOwn(this._callbacks,n)&&((l=this._callbacks[n]).listenerKey!==e||a&&l.eventType!==a||delete this._callbacks[n])}this._createRef(t,s).off(a,i)}_onSnapshotCallback(t,s,a){if(s.sync&&s.rest){var r=decodeURIComponent(a.ref.toString().replace(/.*?:\/\/[^/]*/,"").replace(/\/$/,""));let e;try{e=h(a.val())}catch(e){return s.cancel(),void this._onCancelCallback(t,e)}var i,n=s.branch.diff(e,r);for(i in n)Object.hasOwn(n,i)&&this._send({msg:"callback",id:t,args:[null,{path:i,value:n[i],writeSerial:this._lastWriteSerial}]})}else try{var e=this._snapshotToJson(a);s.sync&&s.branch.set(e.value),this._send({msg:"callback",id:t,args:[null,e]}),s.rest=!0}catch(e){s.cancel(),this._onCancelCallback(t,e)}}_onCancelCallback(e,t){delete this._callbacks[e],this._send({msg:"callback",id:e,args:[i(t)]})}transaction({url:e,oldValue:s,relativeUpdates:i}){let r=decodeURIComponent(e.replace(/.*?:\/\/[^/]*/,"").replace(/\/$/,"")),t=this._createRef(e),n=new c,l,o;return t.transaction(e=>{if(o=void 0,e=h(e),(l=!function e(t,s){if(t===s)return!0;if(null==t&&null==s)return!0;if(null===t||null===s)return!1;if("object"!=typeof t||"object"!=typeof s)return!1;for(var a in t){if(!Object.hasOwn(t,a)||!Object.hasOwn(s,a))return!1;if(!e(t[a],s[a]))return!1}for(var r in s)if(!Object.hasOwn(t,r)||!Object.hasOwn(s,r))return!1;return!0}(e,s))&&(e=s),i)for(var t in i)if(Object.hasOwn(i,t))if(t){var a=t.split("/");let s=e=null==e?{}:e;for(let t=0;t<a.length-1;t++){var r=a[t];let e=s[r];null==e&&(e=s[r]={}),s=e}s[a[a.length-1]]=i[t]}else e=i[t];if(n.set(e),!l)return o=e}).then(e=>{var t,s=[],a=n.diff(h(e.snapshot.val()),r);for(t in a)Object.hasOwn(a,t)&&s.push({path:t,value:a[t],writeSerial:e.writeSerial||this._lastWriteSerial});return{committed:!l,snapshots:s}},e=>"set"===e.message||"disconnect"===e.message?t.once("value").then(e=>({committed:!1,snapshots:[e],writeSerial:this._lastWriteSerial})):(e.committedValue=o,Promise.reject(e)))}_snapshotToJson(e){return{path:decodeURIComponent(e.ref.toString().replace(/.*?:\/\/[^/]*/,"").replace(/\/$/,"")),value:h(e.val()),writeSerial:this._lastWriteSerial}}onDisconnect({url:e,method:t,value:s}){return this._createRef(e).onDisconnect()[t](s)}_createRef(t,s){if(!this._app)throw new Error("Must provide Firebase configuration data first");try{let e=this._database.refFromURL(t);if(s){switch(s.by){case"$key":e=e.orderByKey();break;case"$value":e=e.orderByValue();break;default:e=e.orderByChild(s.by)}void 0!==s.at?e=e.equalTo(s.at):void 0!==s.from?e=e.startAt(s.from):void 0!==s.to&&(e=e.endAt(s.to)),void 0!==s.first?e=e.limitToFirst(s.first):void 0!==s.last&&(e=e.limitToLast(s.last))}return e}catch(e){throw e.extra={url:t,spec:s},e}}static expose(e,t){(t=t||e.name)||r._signalStaticConfigError(new Error("Cannot expose a function with no name: "+e)),Object.hasOwn(r._exposed,t)&&r._signalStaticConfigError(new Error(`Function ${t}() already exposed`)),r._firstMessageReceived&&r._signalStaticConfigError(new Error("Too late to expose function, worker in use")),r._exposed[t]=e}static setDatabaseWrapperCallback(e){r._databaseWrapperCallback&&r._signalStaticConfigError(new Error("Database wrapper callback already set")),r._firstMessageReceived&&r._signalStaticConfigError(new Error("Too late to set database wrapper callback, worker in use")),r._databaseWrapperCallback=e}static _signalStaticConfigError(e){r._staticConfigError||(r._staticConfigError=e);for(var t of s)t&&!t._configError&&(t._configError=e);throw e}}function i(e){var t,s={name:e.name,message:e.message};for(t of Object.getOwnPropertyNames(e)){var a=typeof e[t];"string"!=a&&"number"!=a&&"boolean"!=a||(s[t]=e[t])}return s}function h(t){if(Array.isArray(t)){var s={};for(let e=0;e<t.length;e++){var a=t[e];null!=a&&(s[e]=h(a))}return s}if(t instanceof Object)for(var e in t)Object.hasOwn(t,e)&&(t[e]=h(t[e]));return t}function n(e){if(!e)return Promise.resolve(e);let t=e.toJSON();return delete t.stsTokenManager,e.getIdTokenResult().then(e=>(delete e.claims.exp,delete e.claims.iat,t.claims=e.claims,t))}return r._exposed={},r._firstMessageReceived=!1,r._databaseWrapperCallback=void 0,r._staticConfigError=void 0,self.window=self,"undefined"==typeof onconnect?s.push(new r(self)):self.onconnect=function(e){s.push(new r(e.ports[0]))},self.localStorage.flushPending(),r});
1
+ ((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).Fireworker=t()})(this,function(){let s=[],a={};self.localStorage=new class{constructor(){this._items=[],this._pendingItems=[],this._initialized=!1,this._flushPending=this.flushPending.bind(this)}init(e){this._initialized||(this._items=e,this._initialized=!0)}_update(e){this._pendingItems.length||Promise.resolve().then(this._flushPending),this._pendingItems.push(e)}flushPending(){this._pendingItems.length&&(s.length?(s[0]._send({msg:"updateLocalStorage",items:this._pendingItems}),this._pendingItems=[]):setTimeout(this._flushPending,200))}get length(){return this._items.length}key(e){return this._items[e].key}getItem(e){for(var t of this._items)if(t.key===e)return t.value;return null}setItem(e,t){let s;for(var a of this._items)if(a.key===e){(s=a).value=t;break}s||(s={key:e,value:t},this._items.push(s)),this._update(s)}removeItem(t){for(let e=0;e<this._items.length;e++)if(this._items[e].key===t){this._items.splice(e,1),this._update({key:t,value:null});break}}clear(){for(var e in this._items)this._update({key:e.key,value:null});this._items=[]}};class c{constructor(){this._root=null}set(e){this._root=e}diff(e,t){var s={},a="/"===t?[""]:t.split("/");return this._diffRecursively(this._root,e,a,s)&&(this._root=e,s[t]=e),s}_diffRecursively(t,s,a,r){if(void 0===s&&(s=null),null===(t=void 0===t?null:t))return null!==s;if(!(t instanceof Object&&s instanceof Object))return s!==t;{let e=!0;var i,n,l,o=[];for(i in s)Object.hasOwn(s,i)&&(this._diffRecursively(t[i],s[i],a.concat(i),r)?o.push(i):e=!1);if(e)return!0;for(n in t)Object.hasOwn(t,n)&&!Object.hasOwn(s,n)&&(r[a.concat(n).join("/")]=null,delete t[n]);for(l of o)r[a.concat(l).join("/")]=s[l],t[l]=s[l]}}}class r{constructor(e){this._port=e,this._lastWriteSerial=0,this._app=void 0,this._cachedAuth=void 0,this._cachedDatabase=void 0,this._lastJsonUser=void 0,this._configError=r._staticConfigError,this._callbacks={},this._messages=[],this._flushMessageQueue=this._flushMessageQueue.bind(this),e.onmessage=this._receive.bind(this)}get _auth(){if(this._cachedAuth)return this._cachedAuth;if(this._app)return this._cachedAuth=this._app.auth();throw new Error("Must provide Firebase configuration data first")}get _database(){if(!this._cachedDatabase){if(!this._app)throw new Error("Must provide Firebase configuration data first");r._databaseWrapperCallback?this._cachedDatabase=r._databaseWrapperCallback(this._app.database()):this._cachedDatabase=this._app.database()}return this._cachedDatabase}init({storage:e,config:t}){if(e&&self.localStorage.init(e),t)try{this._app=a[t.databaseURL],this._app||(this._app=a[t.databaseURL]=firebase.initializeApp(t,t.databaseURL),t.apiKey&&t.apiKey.length<20&&(this._app.database().INTERNAL.forceWebSockets(),this._app.auth().useEmulator(t.databaseURL,{disableWarnings:!0}))),this._app.database(),this._app.auth(),this._configError=r._staticConfigError}catch(e){throw this._configError=e}else if(this._configError)throw this._configError;return{exposedFunctionNames:Object.keys(r._exposed),version:"3.1.3",firebaseSdkVersion:firebase.SDK_VERSION}}destroy(){for(var e in this._callbacks){e=this._callbacks[e];e.cancel&&e.cancel()}this._callbacks={},this._port.onmessage=null,this._messages=[];var t=s.indexOf(this);0<=t&&(s[t]=null)}enableFirebaseLogging({value:e}){firebase.database.enableLogging(e)}ping(){}bounceConnection(){this._database.goOffline(),this._database.goOnline()}_receive(e){r._firstMessageReceived=!0;for(var t of e.data)this._receiveMessage(t)}_receiveMessage(t){let s;try{var e=this[t.msg];if("function"!=typeof e)throw new Error("Unknown message: "+t.msg);t.writeSerial&&(this._lastWriteSerial=Math.max(this._lastWriteSerial,t.writeSerial)),s=Promise.resolve(e.call(this,t))}catch(e){e.immediateFailure=!0,s=Promise.reject(e)}t.oneWay||s.then(e=>{this._send({msg:"resolve",id:t.id,result:e})},e=>{this._send({msg:"reject",id:t.id,error:i(e)})})}_send(e){this._messages.length||Promise.resolve().then(this._flushMessageQueue),this._messages.push(e)}_flushMessageQueue(){try{this._port.postMessage(this._messages)}catch{for(var t of this._messages)try{this._port.postMessage([t])}catch(e){var s={name:e.name,message:e.message};if(t.error&&(s.cause=t.error.name+": "+t.error.message),t.result)try{s.cause="result: "+JSON.stringify(t.result)}catch(e){s.cause=`result JSON error: ${e.name}: `+e.message}this._port.postMessage([{msg:"crash",error:s}])}}this._messages=[]}call({name:e,args:t}){try{return Promise.resolve(r._exposed[e].apply(null,t))}catch(e){return Promise.reject(e)}}authWithCustomToken({authToken:e}){return this._auth.signInWithCustomToken(e).then(e=>n(e.user))}authAnonymously({}){return this._auth.signInAnonymously().then(e=>n(e.user))}unauth({}){return this._auth.signOut().catch(e=>{if(null!==this._auth.currentUser)return Promise.reject(e);for(var t in this._callbacks)Object.hasOwn(this._callbacks,t)&&(t=this._callbacks[t]).auth&&t(null)})}onAuth({callbackId:e}){e=this._callbacks[e]=this._onAuthCallback.bind(this,e);e.auth=!0,e.cancel=this._auth.onIdTokenChanged(e)}_onAuthCallback(t,e){n(e).then(e=>{!function t(s,a){if(s===a)return!0;if(null===s&&null===a||void 0===s&&void 0===a)return!0;if(null===s||null===a||void 0===s||void 0===a)return!1;if("object"!=typeof s||"object"!=typeof a)return!1;for(var e in s){if(!Object.hasOwn(s,e)||!Object.hasOwn(a,e))return!1;if(!t(s[e],a[e]))return!1}for(var r in a)if(!Object.hasOwn(s,r)||!Object.hasOwn(a,r))return!1;if(Array.isArray(s)||Array.isArray(a)){if(!Array.isArray(s)||!Array.isArray(a))return!1;if(s.length!==a.length)return!1;for(let e=0;e<s.length;e++)if(!t(s[e],a[e]))return!1}return!0}(this._lastJsonUser,e)&&(this._lastJsonUser=e,this._send({msg:"callback",id:t,args:[e]}))})}set({url:e,value:t}){return this._createRef(e).set(t)}update({url:e,value:t}){return this._createRef(e).update(t)}once({url:e}){return this._createRef(e).once("value").then(e=>this._snapshotToJson(e))}on({listenerKey:e,url:t,spec:s,eventType:a,callbackId:r,options:i}){(i=i||{}).sync&&(i.branch=new c),i.cancel=this.off.bind(this,{listenerKey:e,url:t,spec:s,eventType:a,callbackId:r});var n=this._callbacks[r]=this._onSnapshotCallback.bind(this,r,i),e=(n.listenerKey=e,n.eventType=a,n.cancel=i.cancel,this._onCancelCallback.bind(this,r));this._createRef(t,s).on(a,n,e)}off({listenerKey:e,url:t,spec:s,eventType:a,callbackId:r}){let i;if(r)i=this._callbacks[r],delete this._callbacks[r];else for(var n of Object.keys(this._callbacks)){var l;Object.hasOwn(this._callbacks,n)&&((l=this._callbacks[n]).listenerKey!==e||a&&l.eventType!==a||delete this._callbacks[n])}this._createRef(t,s).off(a,i)}_onSnapshotCallback(t,s,a){if(s.sync&&s.rest){var r=decodeURIComponent(a.ref.toString().replace(/.*?:\/\/[^/]*/,"").replace(/\/$/,""));let e;try{e=h(a.val())}catch(e){return s.cancel(),void this._onCancelCallback(t,e)}var i,n=s.branch.diff(e,r);for(i in n)Object.hasOwn(n,i)&&this._send({msg:"callback",id:t,args:[null,{path:i,value:n[i],writeSerial:this._lastWriteSerial}]})}else try{var e=this._snapshotToJson(a);s.sync&&s.branch.set(e.value),this._send({msg:"callback",id:t,args:[null,e]}),s.rest=!0}catch(e){s.cancel(),this._onCancelCallback(t,e)}}_onCancelCallback(e,t){delete this._callbacks[e],this._send({msg:"callback",id:e,args:[i(t)]})}transaction({url:e,oldValue:s,relativeUpdates:i}){let r=decodeURIComponent(e.replace(/.*?:\/\/[^/]*/,"").replace(/\/$/,"")),t=this._createRef(e),n=new c,l,o;return t.transaction(e=>{if(o=void 0,e=h(e),(l=!function e(t,s){if(t===s)return!0;if(null==t&&null==s)return!0;if(null===t||null===s)return!1;if("object"!=typeof t||"object"!=typeof s)return!1;for(var a in t){if(!Object.hasOwn(t,a)||!Object.hasOwn(s,a))return!1;if(!e(t[a],s[a]))return!1}for(var r in s)if(!Object.hasOwn(t,r)||!Object.hasOwn(s,r))return!1;return!0}(e,s))&&(e=s),i)for(var t in i)if(Object.hasOwn(i,t))if(t){var a=t.split("/");let s=e=null==e?{}:e;for(let t=0;t<a.length-1;t++){var r=a[t];let e=s[r];null==e&&(e=s[r]={}),s=e}s[a[a.length-1]]=i[t]}else e=i[t];if(n.set(e),!l)return o=e}).then(e=>{var t,s=[],a=n.diff(h(e.snapshot.val()),r);for(t in a)Object.hasOwn(a,t)&&s.push({path:t,value:a[t],writeSerial:e.writeSerial||this._lastWriteSerial});return{committed:!l,snapshots:s}},e=>"set"===e.message||"disconnect"===e.message?t.once("value").then(e=>({committed:!1,snapshots:[{path:r,value:e.val(),writeSerial:this._lastWriteSerial}]})):(e.committedValue=o,Promise.reject(e)))}_snapshotToJson(e){return{path:decodeURIComponent(e.ref.toString().replace(/.*?:\/\/[^/]*/,"").replace(/\/$/,"")),value:h(e.val()),writeSerial:this._lastWriteSerial}}onDisconnect({url:e,method:t,value:s}){return this._createRef(e).onDisconnect()[t](s)}_createRef(t,s){if(!this._app)throw new Error("Must provide Firebase configuration data first");try{let e=this._database.refFromURL(t);if(s){switch(s.by){case"$key":e=e.orderByKey();break;case"$value":e=e.orderByValue();break;default:e=e.orderByChild(s.by)}void 0!==s.at?e=e.equalTo(s.at):void 0!==s.from?e=e.startAt(s.from):void 0!==s.to&&(e=e.endAt(s.to)),void 0!==s.first?e=e.limitToFirst(s.first):void 0!==s.last&&(e=e.limitToLast(s.last))}return e}catch(e){throw e.extra={url:t,spec:s},e}}static expose(e,t){(t=t||e.name)||r._signalStaticConfigError(new Error("Cannot expose a function with no name: "+e)),Object.hasOwn(r._exposed,t)&&r._signalStaticConfigError(new Error(`Function ${t}() already exposed`)),r._firstMessageReceived&&r._signalStaticConfigError(new Error("Too late to expose function, worker in use")),r._exposed[t]=e}static setDatabaseWrapperCallback(e){r._databaseWrapperCallback&&r._signalStaticConfigError(new Error("Database wrapper callback already set")),r._firstMessageReceived&&r._signalStaticConfigError(new Error("Too late to set database wrapper callback, worker in use")),r._databaseWrapperCallback=e}static _signalStaticConfigError(e){r._staticConfigError||(r._staticConfigError=e);for(var t of s)t&&!t._configError&&(t._configError=e);throw e}}function i(e){var t,s={name:e.name,message:e.message};for(t of Object.getOwnPropertyNames(e)){var a=typeof e[t];"string"!=a&&"number"!=a&&"boolean"!=a||(s[t]=e[t])}return s}function h(t){if(Array.isArray(t)){var s={};for(let e=0;e<t.length;e++){var a=t[e];null!=a&&(s[e]=h(a))}return s}if(t instanceof Object)for(var e in t)Object.hasOwn(t,e)&&(t[e]=h(t[e]));return t}function n(e){if(!e)return Promise.resolve(e);let t=e.toJSON();return delete t.stsTokenManager,e.getIdTokenResult().then(e=>(delete e.claims.exp,delete e.claims.iat,t.claims=e.claims,t))}return r._exposed={},r._firstMessageReceived=!1,r._databaseWrapperCallback=void 0,r._staticConfigError=void 0,self.window=self,"undefined"==typeof onconnect?s.push(new r(self)):self.onconnect=function(e){s.push(new r(e.ports[0]))},self.localStorage.flushPending(),r});
2
2
  //# sourceMappingURL=worker.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker.umd.min.js","sources":["../src/worker.js"],"names":["fireworkers","apps","self","localStorage","constructor","this","_items","_pendingItems","_initialized","_flushPending","flushPending","bind","init","items","_update","item","length","Promise","resolve","then","push","_send","msg","setTimeout","key","n","getItem","value","setItem","let","targetItem","removeItem","i","splice","clear","Branch","_root","set","diff","pathPrefix","updates","segments","split","_diffRecursively","oldValue","newValue","undefined","Object","replace","childKey","keysToReplace","hasOwn","concat","join","Fireworker","port","_port","_lastWriteSerial","_app","_cachedAuth","_cachedDatabase","_lastJsonUser","_configError","_staticConfigError","_callbacks","_messages","_flushMessageQueue","onmessage","_receive","_auth","auth","Error","_database","_databaseWrapperCallback","database","storage","config","databaseURL","firebase","initializeApp","apiKey","INTERNAL","forceWebSockets","useEmulator","disableWarnings","e","exposedFunctionNames","keys","_exposed","version","firebaseSdkVersion","SDK_VERSION","destroy","callback","cancel","k","indexOf","enableFirebaseLogging","enableLogging","ping","bounceConnection","goOffline","goOnline","event","_firstMessageReceived","message","data","_receiveMessage","promise","fn","writeSerial","Math","max","call","immediateFailure","reject","oneWay","result","id","error","errorToJson","postMessage","name","cause","args","apply","authWithCustomToken","authToken","signInWithCustomToken","userToJson","user","authAnonymously","signInAnonymously","unauth","signOut","catch","currentUser","callbackId","onAuth","authCallback","_onAuthCallback","onIdTokenChanged","jsonUser","areEqualValues","a","b","Array","isArray","url","_createRef","update","once","snapshot","_snapshotToJson","on","listenerKey","spec","eventType","options","sync","branch","off","snapshotCallback","_onSnapshotCallback","cancelCallback","_onCancelCallback","rest","path","decodeURIComponent","ref","toString","normalizeFirebaseValue","val","childPath","snapshotJson","transaction","relativeUpdates","transactionPath","stale","committedValue","areEqualNormalFirebaseValues","relativePath","object","child","snapshots","committed","onDisconnect","method","refFromURL","by","orderByKey","orderByValue","orderByChild","at","equalTo","from","startAt","to","endAt","first","limitToFirst","last","limitToLast","extra","expose","_signalStaticConfigError","setDatabaseWrapperCallback","fireworker","propertyName","json","getOwnPropertyNames","type","normalValue","toJSON","stsTokenManager","getIdTokenResult","claims","exp","iat","window","onconnect","ports"],"mappings":"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"}
1
+ {"version":3,"file":"worker.umd.min.js","sources":["../src/worker.js"],"names":["fireworkers","apps","self","localStorage","constructor","this","_items","_pendingItems","_initialized","_flushPending","flushPending","bind","init","items","_update","item","length","Promise","resolve","then","push","_send","msg","setTimeout","key","n","getItem","value","setItem","let","targetItem","removeItem","i","splice","clear","Branch","_root","set","diff","pathPrefix","updates","segments","split","_diffRecursively","oldValue","newValue","undefined","Object","replace","childKey","keysToReplace","hasOwn","concat","join","Fireworker","port","_port","_lastWriteSerial","_app","_cachedAuth","_cachedDatabase","_lastJsonUser","_configError","_staticConfigError","_callbacks","_messages","_flushMessageQueue","onmessage","_receive","_auth","auth","Error","_database","_databaseWrapperCallback","database","storage","config","databaseURL","firebase","initializeApp","apiKey","INTERNAL","forceWebSockets","useEmulator","disableWarnings","e","exposedFunctionNames","keys","_exposed","version","firebaseSdkVersion","SDK_VERSION","destroy","callback","cancel","k","indexOf","enableFirebaseLogging","enableLogging","ping","bounceConnection","goOffline","goOnline","event","_firstMessageReceived","message","data","_receiveMessage","promise","fn","writeSerial","Math","max","call","immediateFailure","reject","oneWay","result","id","error","errorToJson","postMessage","name","cause","JSON","stringify","e2","args","apply","authWithCustomToken","authToken","signInWithCustomToken","userToJson","user","authAnonymously","signInAnonymously","unauth","signOut","catch","currentUser","callbackId","onAuth","authCallback","_onAuthCallback","onIdTokenChanged","jsonUser","areEqualValues","a","b","Array","isArray","url","_createRef","update","once","snapshot","_snapshotToJson","on","listenerKey","spec","eventType","options","sync","branch","off","snapshotCallback","_onSnapshotCallback","cancelCallback","_onCancelCallback","rest","path","decodeURIComponent","ref","toString","normalizeFirebaseValue","val","childPath","snapshotJson","transaction","relativeUpdates","transactionPath","stale","committedValue","areEqualNormalFirebaseValues","relativePath","object","child","snapshots","committed","onDisconnect","method","refFromURL","by","orderByKey","orderByValue","orderByChild","at","equalTo","from","startAt","to","endAt","first","limitToFirst","last","limitToLast","extra","expose","_signalStaticConfigError","setDatabaseWrapperCallback","fireworker","propertyName","json","getOwnPropertyNames","type","normalValue","toJSON","stsTokenManager","getIdTokenResult","claims","exp","iat","window","onconnect","ports"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "firetruss-worker",
3
- "version": "3.1.1",
3
+ "version": "3.1.3",
4
4
  "description": "Web worker component for pkaminski/firetruss",
5
5
  "scripts": {
6
6
  "setup": "rm -rf node_modules; npm install;"
package/src/worker.js CHANGED
@@ -3,7 +3,7 @@
3
3
  const fireworkers = [];
4
4
  const apps = {};
5
5
  // This version is filled in by the build, don't reformat the line.
6
- const VERSION = '3.1.1';
6
+ const VERSION = '3.1.3';
7
7
 
8
8
 
9
9
  class LocalStorage {
@@ -269,6 +269,13 @@ export default class Fireworker {
269
269
  } catch (e) {
270
270
  const error = {name: e.name, message: e.message};
271
271
  if (message.error) error.cause = `${message.error.name}: ${message.error.message}`;
272
+ if (message.result) {
273
+ try {
274
+ error.cause = `result: ${JSON.stringify(message.result)}`;
275
+ } catch (e2) {
276
+ error.cause = `result JSON error: ${e2.name}: ${e2.message}`;
277
+ }
278
+ }
272
279
  this._port.postMessage([{msg: 'crash', error}]);
273
280
  }
274
281
  }
@@ -455,9 +462,9 @@ export default class Fireworker {
455
462
  return {committed: !stale, snapshots};
456
463
  }, error => {
457
464
  if (error.message === 'set' || error.message === 'disconnect') {
458
- return ref.once('value').then(snapshot => {
459
- return {committed: false, snapshots: [snapshot], writeSerial: this._lastWriteSerial};
460
- });
465
+ return ref.once('value').then(snapshot => ({committed: false, snapshots: [{
466
+ path: transactionPath, value: snapshot.val(), writeSerial: this._lastWriteSerial
467
+ }]}));
461
468
  }
462
469
  error.committedValue = committedValue;
463
470
  return Promise.reject(error);